diff --git a/cpu/sources/layout7/layout_specific.move b/cpu/sources/layout7/layout_specific.move index 1e7e3de..b965cf3 100644 --- a/cpu/sources/layout7/layout_specific.move +++ b/cpu/sources/layout7/layout_specific.move @@ -77,28 +77,28 @@ module cpu_addr::layout_specific_7 { const MM_PERIODIC_COLUMN__POSEIDON__POSEIDON__PARTIAL_ROUND_KEY1: u64 = 0x143; // 335 const MM_RANGE_CHECK16__PERM__PUBLIC_MEMORY_PROD: u64 = 0x14f; - // 14 - const OFFSET_BITWISE_BEGIN_ADDR: u64 = 0xe; // 15 - const OFFSET_BITWISE_STOP_ADDR: u64 = 0xf; - // 20 - const OFFSET_N_PUBLIC_MEMORY_PAGES: u64 = 0x14; - // 8 - const OFFSET_OUTPUT_BEGIN_ADDR: u64 = 0x8; + const OFFSET_BITWISE_BEGIN_ADDR: u64 = 0xf; + // 16 + const OFFSET_BITWISE_STOP_PTR: u64 = 0x10; + // 21 + const OFFSET_N_PUBLIC_MEMORY_PAGES: u64 = 0x15; // 9 - const OFFSET_OUTPUT_STOP_PTR: u64 = 0x9; + const OFFSET_OUTPUT_BEGIN_ADDR: u64 = 0x9; // 10 - const OFFSET_PEDERSEN_BEGIN_ADDR: u64 = 0xa; + const OFFSET_OUTPUT_STOP_PTR: u64 = 0xa; // 11 - const OFFSET_PEDERSEN_STOP_PTR: u64 = 0xb; - // 16 - const OFFSET_POSEIDON_BEGIN_ADDR: u64 = 0x10; - // 17 - const OFFSET_POSEIDON_STOP_PTR: u64 = 0x11; + const OFFSET_PEDERSEN_BEGIN_ADDR: u64 = 0xb; // 12 - const OFFSET_RANGE_CHECK_BEGIN_ADDR: u64 = 0xc; + const OFFSET_PEDERSEN_STOP_PTR: u64 = 0xc; + // 17 + const OFFSET_POSEIDON_BEGIN_ADDR: u64 = 0x11; + // 18 + const OFFSET_POSEIDON_STOP_PTR: u64 = 0x12; // 13 - const OFFSET_RANGE_CHECK_STOP_PTR: u64 = 0xd; + const OFFSET_RANGE_CHECK_BEGIN_ADDR: u64 = 0xd; + // 14 + const OFFSET_RANGE_CHECK_STOP_PTR: u64 = 0xe; // 0 const OUTPUT_BUILTIN_BIT: u256 = 0x0; // 1 @@ -182,7 +182,7 @@ module cpu_addr::layout_specific_7 { // "bitwise" memory segment. set_el(ctx, MM_INITIAL_BITWISE_ADDR, *borrow(public_input, OFFSET_BITWISE_BEGIN_ADDR)); validate_builtin_pointers( - *borrow(ctx, MM_INITIAL_BITWISE_ADDR), *borrow(public_input, OFFSET_BITWISE_STOP_ADDR), + *borrow(ctx, MM_INITIAL_BITWISE_ADDR), *borrow(public_input, OFFSET_BITWISE_STOP_PTR), BITWISE__RATIO, 5, n_steps); set_el(ctx, MM_DILUTED_CHECK__PERMUTATION__PUBLIC_MEMORY_PROD, 1); diff --git a/cpu/sources/layout7/public_memory_offsets.move b/cpu/sources/layout7/public_memory_offsets.move index b158509..3e4185d 100644 --- a/cpu/sources/layout7/public_memory_offsets.move +++ b/cpu/sources/layout7/public_memory_offsets.move @@ -2,8 +2,8 @@ module cpu_addr::public_memory_offsets_7 { // This line is used for generating constants DO NOT REMOVE! // 1 const EADDRESS_OF_PAGE_0_IS_NOT_PART_OF_THE_PUBLIC_INPUT: u64 = 0x1; - // 21 - const OFFSET_PUBLIC_MEMORY: u64 = 0x15; + // 22 + const OFFSET_PUBLIC_MEMORY: u64 = 0x16; // 0 const PAGE_INFO_ADDRESS_OFFSET: u64 = 0x0; // 2 diff --git a/verifier/scripts/script.move b/verifier/scripts/script.move index e38d35f..6c8d292 100644 --- a/verifier/scripts/script.move +++ b/verifier/scripts/script.move @@ -11,14 +11,15 @@ script { init_stark_verifier(signer, 96, 30); init_gps_statement_verifier( signer, - 2512868110374320373201527039528844198060791559490644211790716345994094747600, - 382450030162484995497251732956824096484321811411123989415157331925872358847 + 988080400528720010398639244351885480706475299330001427790099377094461351470, + 160268921359133235574810995023520895391777547407923205700393332203861498631, + 1104316318711847786071125527957082259001554753246760931396914052122269757907 ); init_compiled_program(signer, vector[ 290341444919459839, - 9, + 11, 1226245742482522112, - 542, + 778, 74168662805676031, 0, 2345108766317314046, @@ -253,7 +254,7 @@ script { 5193354047062507520, 2345108766317314046, 290341444919459839, - 26, + 30, 1226245742482522112, 3618502788666131213697322783095070105623107215331596699973092056135872020248, 4617174774030761984, @@ -284,122 +285,136 @@ script { 4612671208762736652, 4617174765440827405, 4612671217352671246, + 4612671221647638543, + 4612671225942605840, 5191102238658887680, 5198983563776655360, 6, 5189976364521848832, - 9, + 11, 5191102273018626048, 5191102277313593344, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020243, + 3618502788666131213697322783095070105623107215331596699973092056135872020241, 1191342862550269952, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020209, - 4623648724265959423, + 3618502788666131213697322783095070105623107215331596699973092056135872020207, + 4623648724266090495, 5191102238658887680, 5198983563776655360, - 16, + 18, 5191102273018626048, - 5191102324558233600, + 5191102333148168192, 5189976364521848832, - 9, + 11, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020204, + 3618502788666131213697322783095070105623107215331596699973092056135872020202, 4623648719970271231, 5191102234363920384, 5198983563776655360, 6, 5198983563776655360, - 16, + 18, 5191102242953854976, 5189976364521848832, - 9, + 11, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020241, - 4623930190653390864, - 4612671182993522713, + 3618502788666131213697322783095070105623107215331596699973092056135872020239, + 4623930190653653010, + 4612671182993522717, 5198983563776655360, - 16, + 18, 5193354051357474816, 2345108766317314046, 290341444919459839, - 29, - 4622804286449221633, + 35, + 4622804286449090561, 1, - 4614922939857338370, + 4614922931267403778, 4614922982807011331, - 4614922948447272964, - 4614922952742240261, - 4614922957037207558, - 4614922961332174855, - 4614922965627142152, - 4614922969922109449, - 4613797087195136010, + 4614922939857338372, + 4614922944152305669, + 4614922948447272966, + 4614922952742240263, + 4614922957037207560, + 4614922961332174857, + 4614922965627142154, + 4614922969922109451, + 4613797087195136012, 122550255383924, - 4613797087195136011, + 4613797087195136013, 8098989891770344814, - 4613797087195136012, + 4613797087195136014, 138277649577220228665140075, - 4613797087195136013, + 4613797087195136015, 435459224417, - 4613797087195136014, + 4613797087195136016, 27700496658166629, - 4613797087195136015, + 4613797087195136017, 435458895728, - 4613797087195136016, + 4613797087195136018, 118083203326315, - 4613797087195136017, + 4613797087195136019, 8101821134059892590, - 4613797087195136018, + 4613797087195136020, 9062164042692704905798619969846, - 4613797087195136019, + 4613797087195136021, + 27413455001448292, + 4613797087195136022, + 30809880779386724, + 4613797087195136023, 1, - 4613797087195136020, + 4613797087195136024, 3, - 4613797087195136021, + 4613797087195136025, 1, - 4613797087195136022, + 4613797087195136026, 2, - 4613797087195136023, + 4613797087195136027, 5, - 4613797087195136024, + 4613797087195136028, 7, - 4613797087195136025, + 4613797087195136029, 16, - 4613797087195136026, + 4613797087195136030, 6, - 4613797087195136027, + 4613797087195136031, 1, + 4613797087195136032, + 7, + 4613797087195136033, + 7, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020131, + 3618502788666131213697322783095070105623107215331596699973092056135872020119, 5198420613823102976, 1, - 5191102221479018496, + 5191102212889083904, 5198420613822971904, - 10, + 12, 5198420613822906368, - 19, - 5188850460319383552, + 23, + 5188850460319252480, 1226245742482522112, - 36, + 38, 4614641507830300671, - 4617174774030762012, - 5188850468911874048, + 4617174774030762018, + 5188850468912267264, 5201798300658860031, 5189976364521848832, 64, 1226245742482522112, - 12, - 5188850460321939456, - 5188850464616906752, - 5188850468911874048, - 5188850473206841344, - 5188850477501808640, - 5188850481796775936, - 5188850486091743232, - 5188850490386710528, - 5188850494681677824, + 14, + 5188850460322332672, + 5188850464617299968, + 5188850468912267264, + 5188850473207234560, + 5188850477502201856, + 5188850481797169152, + 5188850486092136448, + 5188850490387103744, + 5188850494682071040, + 5188850498977038336, + 5188850503272005632, 2345108766317314046, 146226256843603965, 5, @@ -430,7 +445,7 @@ script { 5191102242953854976, 5193354038472572928, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020304, + 3618502788666131213697322783095070105623107215331596699973092056135872020290, 5191102238658887680, 5191102242953854976, 5198983563776458752, @@ -479,7 +494,7 @@ script { 290341444919459839, 2, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020024, + 3618502788666131213697322783095070105623107215331596699973092056135872020010, 4613797087195136000, 0, 4613797087195136001, @@ -495,7 +510,7 @@ script { 1226245742482522112, 16, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020008, + 3618502788666131213697322783095070105623107215331596699973092056135872019994, 4617174769735794688, 5188850464614744064, 4623367219223429121, @@ -560,8 +575,10 @@ script { 4623648689905041407, 2345108766317314046, 290341444919459839, - 11, + 14, 5191102260133724160, + 5191102208594116608, + 5191102212889083904, 5191102217184051200, 5191102221479018496, 5191102225773985792, @@ -571,21 +588,24 @@ script { 5191102242953854976, 5191102247248822272, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020234, - 4617174752555925505, - 4617174756850892802, - 4617174761145860099, - 4617174765440827396, - 4617174769735794693, - 4617174774030761990, - 4617174778325729287, - 4617174743965990920, - 5191102212889083904, - 5193354021292703744, - 5191102298788429824, + 3618502788666131213697322783095070105623107215331596699973092056135872020220, + 4617174743965990913, + 4617174748260958210, + 4617174752555925507, + 4617174756850892804, + 4617174761145860101, + 4617174765440827398, + 4617174769735794695, + 4617174774030761992, + 4617174778325729289, + 4617174735376056330, + 4614922926972436492, + 5191102204299149312, + 5193354012702769152, + 5191102307378364416, 1226245742482522112, - 69, - 4617174774030761994, + 75, + 4617174774030761997, 5198420613823102976, 1, 5193354051357474816, @@ -595,12 +615,13 @@ script { 0, 5198983563776655360, 1, - 5191102298788429824, + 5191102307378364416, 5188850460320104448, + 5191102311673331712, 1226245742482522112, - 14, - 4617174778325729288, - 4612389708017336318, + 16, + 4617174778325729290, + 4612389708017532926, 5193354034177605632, 5193354034177605632, 5193354038472572928, @@ -610,58 +631,65 @@ script { 5191102281608560640, 5193354012702769152, 5191102290198495232, + 5191102294493462528, + 5191102298788429824, 2345108766317314046, - 146226256843603965, + 146226256843603964, 9, + 5191102212889083904, 5191102217184051200, 5191102221479018496, 5191102225773985792, 5191102230068953088, 5191102234363920384, - 5191102238658887680, 2345108766317314046, 290341444919459839, 0, 290341444919459839, 1, 145944781866893311, - 13, + 14, + 5191102212889083904, 5191102217184051200, 5191102221479018496, 5191102225773985792, 5191102230068953088, 5191102234363920384, 5191102238658887680, - 5191102242953854976, + 5191102247248822272, 1226245742482522112, - 35, + 39, 74168662805676031, - 11, + 12, + 5191102212889083904, 5191102217184051200, 5191102221479018496, 5191102225773985792, 5191102230068953088, 5191102234363920384, 5191102238658887680, - 5191102242953854976, + 5191102247248822272, 1226245742482522112, - 70, - 5191102242953854976, - 5198983563776458752, + 74, + 5191102238658887680, + 5198983563776393216, 3618502788666131213697322783095070105623107215331596699973092056135872020480, + 5191102247248822272, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020443, + 3618502788666131213697322783095070105623107215331596699973092056135872020440, 2345108766317314046, 5188850460319907840, 4612389708016353279, + 5188850473204809728, + 4612389712311320575, 5191102242953854976, 5188850468909842432, 5188850464614875136, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020357, - 4612389712311320575, + 3618502788666131213697322783095070105623107215331596699973092056135872020344, + 4612389716606287871, 5198983563776327680, - 2, + 3, 5193354047062507520, 2345108766317314046, 5198983563776458752, @@ -670,42 +698,43 @@ script { 2345108766317314046, 290341444919459839, 4, - 5191102230068953088, + 5191102225773985792, 5191102264428691456, 5191102260133724160, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872019904, - 5191102242953854976, + 3618502788666131213697322783095070105623107215331596699973092056135872019877, + 5191102238658887680, 1226245742482522112, 3618502788666131213697322783095070105623107215331596699973092056135872020469, 5189976364521848832, 4, 4611826758063128575, - 5191102234363920384, - 5188850468909842432, + 5191102230068953088, + 5188850468909776896, 5189976364521848832, 1, - 5188850464614875136, + 5188850464614809600, 5188287514661257216, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020250, - 5188850460319907840, + 3618502788666131213697322783095070105623107215331596699973092056135872020237, + 5188850460319842304, 4611826758060965887, 4611826762355933145, 4622241336494227458, 2, 4614922982807011331, + 5191102217184051200, 5191102221479018496, - 5191102225773985792, 5193353879558782976, 5193354034177605632, - 5191102238658887680, + 5191102234363920384, 5198983563776655360, 1, - 5191102247248822272, + 5191102242953854976, 5188850460320104448, + 5191102247248822272, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020388, + 3618502788666131213697322783095070105623107215331596699973092056135872020382, 4623648711380271103, 5193354034177605632, 5193354034177605632, @@ -715,33 +744,71 @@ script { 5191102268723658752, 2345108766317314046, 290341444919459839, - 2, - 5191102242953854976, + 4, + 5191102238658887680, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020428, + 3618502788666131213697322783095070105623107215331596699973092056135872020427, 4617174774030761984, - 5188287510366617600, - 4612389708016091135, - 5188287514661519360, - 4612389712311058431, - 5188287510366486528, - 4622241336496455681, - 3618502788666131213697322783095070105623107215331596699973092056135872020479, - 5198983563776065536, + 5188287514661584896, + 5188850473204744192, + 5201798304953827326, + 145944781866893311, + 16, + 4613797087195136003, + 4, + 5188287510366420992, + 4623648719970074623, + 4612671182993391618, + 5198983563776655360, + 1, + 5191102247248822272, + 5189976364521848832, + 3, + 1226245742482522112, + 3618502788666131213697322783095070105623107215331596699973092056135872020276, + 74168662805676031, + 6, + 4612108233039708161, + 4612108237334675458, + 4613797087195136003, + 0, + 4612671182992736257, + 4612671187287703554, + 5198983563776000000, 2, - 5191102260133724160, - 5191102264428691456, + 5200109472273432576, + 5198983563776720896, + 3618502788666131213697322783095070105623107215331596699973092056135872020479, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020294, - 5198983563776065536, + 3618502788666131213697322783095070105623107215331596699973092056135872020261, + 5198983563776000000, 2, - 5199546513730011136, + 5198983563776720896, + 3618502788666131213697322783095070105623107215331596699973092056135872020479, + 5200109472273432576, + 5198983563776720896, + 3618502788666131213697322783095070105623107215331596699973092056135872020479, + 5201798296363630592, + 5191102221479018496, 5191102225773985792, 5191102230068953088, - 5191102234363920384, - 5198983563776327680, + 5198983563776262144, 1, - 5200109463683497984, + 5201798283478532096, + 2345108766317314046, + 5191102204299149312, + 5191102208594116608, + 5191102212889083904, + 5191102217184051200, + 5191102221479018496, + 5191102225773985792, + 5191102230068953088, + 5191102234363920384, + 5191102238658887680, + 5191102242953854976, + 5191102247248822272, + 1226245742482522112, + 3618502788666131213697322783095070105623107215331596699973092056135872020248, 2345108766317314046 ]); } diff --git a/verifier/sources/cpu/layout7/fri.move b/verifier/sources/cpu/layout7/fri.move index 9d906c9..a053e72 100644 --- a/verifier/sources/cpu/layout7/fri.move +++ b/verifier/sources/cpu/layout7/fri.move @@ -75,7 +75,6 @@ module verifier_addr::fri_7 { ); // Todo // initFriGroups(fri_ctx); - // emit LogGas("FRI offset precomputation", gasleft()); let channel_ptr = MM_CHANNEL; let merkle_queue_ptr = MM_MERKLE_QUEUE; @@ -115,9 +114,6 @@ module verifier_addr::fri_7 { // fri_coset_size // ); - // emit LogGas( - // string(abi.encodePacked("FRI layer ", bytes1(uint8(48 + fri_step)))), gasleft()); - // Layer is done, verify the current layer and move to next layer. // ctx[mmMerkleQueue: merkleQueueIdx) holds the indices // and values of the merkle leaves that need verification. @@ -129,13 +125,9 @@ module verifier_addr::fri_7 { // n_live_queries // ); - // emit LogGas( - // string(abi.encodePacked("Merkle of FRI layer ", bytes1(uint8(48 + fri_step)))), - // gasleft()); fri_step = fri_step + 1; }; verify_last_layer(ctx, proof, n_live_queries); - // emit LogGas("last FRI layer", gasleft()); } } \ No newline at end of file diff --git a/verifier/sources/cpu/layout7/stark_verifier.move b/verifier/sources/cpu/layout7/stark_verifier.move index b5a217f..6bf670c 100644 --- a/verifier/sources/cpu/layout7/stark_verifier.move +++ b/verifier/sources/cpu/layout7/stark_verifier.move @@ -235,28 +235,28 @@ module verifier_addr::stark_verifier_7 { const N_INTERACTION_ELEMENTS: u64 = 0x6; // MASK_SIZE + CONSTRAINTS_DEGREE_BOUND const N_OODS_VALUES: u64 = 0xc2; - // 6 - const OFFSET_EXECUTION_BEGIN_ADDR: u64 = 0x6; // 7 - const OFFSET_EXECUTION_STOP_PTR: u64 = 0x7; - // 3 - const OFFSET_LAYOUT_CODE: u64 = 0x3; - // 0 - const OFFSET_LOG_N_STEPS: u64 = 0x0; - // 20 - const OFFSET_N_PUBLIC_MEMORY_PAGES: u64 = 0x14; + const OFFSET_EXECUTION_BEGIN_ADDR: u64 = 0x7; + // 8 + const OFFSET_EXECUTION_STOP_PTR: u64 = 0x8; // 4 - const OFFSET_PROGRAM_BEGIN_ADDR: u64 = 0x4; - // 5 - const OFFSET_PROGRAM_STOP_PTR: u64 = 0x5; + const OFFSET_LAYOUT_CODE: u64 = 0x4; + // 1 + const OFFSET_LOG_N_STEPS: u64 = 0x1; // 21 - const OFFSET_PUBLIC_MEMORY: u64 = 0x15; - // 18 - const OFFSET_PUBLIC_MEMORY_PADDING_ADDR: u64 = 0x12; + const OFFSET_N_PUBLIC_MEMORY_PAGES: u64 = 0x15; + // 5 + const OFFSET_PROGRAM_BEGIN_ADDR: u64 = 0x5; + // 6 + const OFFSET_PROGRAM_STOP_PTR: u64 = 0x6; + // 22 + const OFFSET_PUBLIC_MEMORY: u64 = 0x16; + // 19 + const OFFSET_PUBLIC_MEMORY_PADDING_ADDR: u64 = 0x13; + // 3 + const OFFSET_RC_MAX: u64 = 0x3; // 2 - const OFFSET_RC_MAX: u64 = 0x2; - // 1 - const OFFSET_RC_MIN: u64 = 0x1; + const OFFSET_RC_MIN: u64 = 0x2; // 3 const PROOF_PARAMS_FRI_LAST_LAYER_LOG_DEG_BOUND_OFFSET: u64 = 0x3; // 5 @@ -455,7 +455,6 @@ module verifier_addr::stark_verifier_7 { } = borrow_global_mut(address_of(signer)); if (*checkpoint == CHECKPOINT1_CFFL) { adjust_query_indices_and_prepare_eval_points(ctx); - // emit LogGas("Prepare evaluation points", gasleft()); let tmp = *borrow(ctx, MM_TRACE_COMMITMENT); read_query_responses_and_decommit( signer, @@ -466,7 +465,6 @@ module verifier_addr::stark_verifier_7 { MM_TRACE_QUERY_RESPONSES, tmp ); - // emit LogGas("Read and decommit trace", gasleft()); tmp = *borrow(ctx, MM_TRACE_COMMITMENT + 1); if (has_interaction()) { @@ -479,7 +477,6 @@ module verifier_addr::stark_verifier_7 { MM_TRACE_QUERY_RESPONSES + N_COLUMNS_IN_TRACE0, tmp ); - // emit LogGas("Read and decommit second trace", gasleft()); }; *checkpoint = CHECKPOINT2_CFFL; return false @@ -499,15 +496,12 @@ module verifier_addr::stark_verifier_7 { *checkpoint = CHECKPOINT3_CFFL; }; - // emit LogGas("Read and decommit composition", gasleft()); - if (cpu_oods_7::fallback(signer, ctx)) { *checkpoint = CHECKPOINT1_CFFL; true } else { false } - // emit LogGas("OODS virtual oracle", gasleft()); } // Reads the last FRI layer (i.e. the polynomial's coefficients) from the channel. @@ -600,7 +594,6 @@ module verifier_addr::stark_verifier_7 { }; // Send constraint polynomial random element. send_field_elements(ctx, channel_ptr, 1, MM_COMPOSITION_ALPHA); - // emit LogGas("Generate coefficients", gasleft()); hash = read_hash(ctx, proof, channel_ptr, true); set_el(ctx, MM_OODS_COMMITMENT, hash); @@ -618,12 +611,9 @@ module verifier_addr::stark_verifier_7 { return false }; - // emit LogGas("Read OODS commitments", gasleft()); if (*checkpoint == CHECKPOINT3_VP) { if (oods_consistency_check(signer, ctx, public_input)) { - // emit LogGas("OODS consistency check", gasleft()); send_field_elements(ctx, channel_ptr, 1, MM_OODS_ALPHA); - // emit LogGas("Generate OODS coefficients", gasleft()); let hash = read_hash(ctx, proof, channel_ptr, true); set_el(ctx, MM_FRI_COMMITMENTS, hash); @@ -647,7 +637,6 @@ module verifier_addr::stark_verifier_7 { read_last_fri_layer(ctx, proof); // Generate queries. - // emit LogGas("Read FRI commitments", gasleft()); let tmp = (*borrow(ctx, MM_PROOF_OF_WORK_BITS) as u8); verify_proof_of_work(ctx, proof, channel_ptr, tmp); @@ -666,7 +655,6 @@ module verifier_addr::stark_verifier_7 { *checkpoint = CHECKPOINT4_VP; }; }; - // emit LogGas("Send queries", gasleft()); if (*checkpoint == CHECKPOINT4_VP) { if (compute_first_fri_layer(signer, ctx, proof)) { diff --git a/verifier/sources/gps/gps_output_parser.move b/verifier/sources/gps/gps_output_parser.move index 7eef5ee..4664199 100644 --- a/verifier/sources/gps/gps_output_parser.move +++ b/verifier/sources/gps/gps_output_parser.move @@ -115,10 +115,10 @@ module verifier_addr::gps_output_parser { let task_metadata_offset = METADATA_TASKS_OFFSET; - // Skip the 5 first output cells which contain the bootloader config, the number of tasks - // and the size and program hash of the first task. curAddr points to the output of the - // first task. - let cur_addr = output_start_address + 5; + // Skip the first 6 output cells, which contain the bootloader config (3 cells), the number + // of tasks and the size and program hash of the first task. curAddr points to the output of + // the first task. + let cur_addr = output_start_address + 6; // Skip the main page. let cur_page = FIRST_CONTINUOUS_PAGE_INDEX; diff --git a/verifier/sources/gps/gps_statement_verifier.move b/verifier/sources/gps/gps_statement_verifier.move index f4fddae..d434810 100644 --- a/verifier/sources/gps/gps_statement_verifier.move +++ b/verifier/sources/gps/gps_statement_verifier.move @@ -62,41 +62,46 @@ module verifier_addr::gps_statement_verifier { const METADATA_TASKS_OFFSET: u64 = 0x1; // 3 const METADATA_TASK_HEADER_SIZE: u64 = 0x3; - // 6 - const OFFSET_EXECUTION_BEGIN_ADDR: u64 = 0x6; + // 11 + const N_BUILTINS: u256 = 0xb; + // N_BUILTINS + const N_MAIN_ARGS: u256 = 0xb; + // N_BUILTINS + const N_MAIN_RETURN_VALUES: u256 = 0xb; // 7 - const OFFSET_EXECUTION_STOP_PTR: u64 = 0x7; + const OFFSET_EXECUTION_BEGIN_ADDR: u64 = 0x7; // 8 - const OFFSET_OUTPUT_BEGIN_ADDR: u64 = 0x8; + const OFFSET_EXECUTION_STOP_PTR: u64 = 0x8; // 9 - const OFFSET_OUTPUT_STOP_PTR: u64 = 0x9; + const OFFSET_OUTPUT_BEGIN_ADDR: u64 = 0x9; + // 10 + const OFFSET_OUTPUT_STOP_PTR: u64 = 0xa; // 2 const PAGE_INFO_HASH_OFFSET: u64 = 0x2; // 3 const PAGE_INFO_SIZE: u64 = 0x3; // 1 const PAGE_INFO_SIZE_OFFSET: u64 = 0x1; - // 728 - const PROGRAM_SIZE: u256 = 0x2d8; + // 794 + const PROGRAM_SIZE: u256 = 0x31a; // End of generating constants! - const N_BUILTINS: u256 = 9; - const N_MAIN_ARGS: u256 = 9; - const N_MAIN_RETURN_VALUES: u256 = 9; - struct ConstructorConfig has key { hashed_supported_cairo_verifiers: u256, - simple_bootloader_program_hash: u256 + simple_bootloader_program_hash: u256, + applicative_bootloader_program_hash: u256 } public entry fun init_gps_statement_verifier( signer: &signer, hashed_supported_cairo_verifiers: u256, - simple_bootloader_program_hash: u256 + simple_bootloader_program_hash: u256, + applicative_bootloader_program_hash: u256 ) { move_to(signer, ConstructorConfig { hashed_supported_cairo_verifiers, simple_bootloader_program_hash, + applicative_bootloader_program_hash }); } @@ -296,7 +301,7 @@ module verifier_addr::gps_statement_verifier { N_MAIN_ARGS + N_MAIN_RETURN_VALUES + // Bootloader config size = - 2 + + 3 + // Number of tasks cell = 1 + 2 * @@ -361,18 +366,22 @@ module verifier_addr::gps_statement_verifier { { let ConstructorConfig { hashed_supported_cairo_verifiers, - simple_bootloader_program_hash + simple_bootloader_program_hash, + applicative_bootloader_program_hash } = borrow_global(address_of(signer)); let output_address = *borrow(cairo_aux_input, OFFSET_OUTPUT_BEGIN_ADDR); - // Force that memory[outputAddress] and memory[outputAddress + 1] contain the - // bootloader config (which is 2 words size). + // Force that memory[outputAddress: outputAddress + 3] contain the bootloader config + // (which is 3 words size). push_back(&mut public_memory, output_address); push_back(&mut public_memory, *simple_bootloader_program_hash); push_back(&mut public_memory, output_address + 1); - push_back(&mut public_memory, *hashed_supported_cairo_verifiers); + push_back(&mut public_memory, *applicative_bootloader_program_hash); push_back(&mut public_memory, output_address + 2); + push_back(&mut public_memory, *hashed_supported_cairo_verifiers); + // Force that memory[outputAddress + 3] = nTasks. + push_back(&mut public_memory, output_address + 3); push_back(&mut public_memory, n_tasks); - output_address = output_address + 3; + output_address = output_address + 4; let current_metadata_offset = METADATA_TASKS_OFFSET; @@ -403,6 +412,7 @@ module verifier_addr::gps_statement_verifier { // Force that memory[outputAddress] = outputSize. push_back(&mut public_memory, output_address); push_back(&mut public_memory, output_size); + // Force that memory[outputAddress + 1] = programHash. push_back(&mut public_memory, output_address + 1); push_back(&mut public_memory, program_hash); diff --git a/verifier/sources/test/constructor.move b/verifier/sources/test/constructor.move index cd27047..52fb6a4 100644 --- a/verifier/sources/test/constructor.move +++ b/verifier/sources/test/constructor.move @@ -14,14 +14,15 @@ module verifier_addr::constructor { test_init_stark_verifier(signer, 96, 30); init_gps_statement_verifier( signer, - 2512868110374320373201527039528844198060791559490644211790716345994094747600, - 382450030162484995497251732956824096484321811411123989415157331925872358847 + 988080400528720010398639244351885480706475299330001427790099377094461351470, + 160268921359133235574810995023520895391777547407923205700393332203861498631, + 1104316318711847786071125527957082259001554753246760931396914052122269757907 ); init_compiled_program(signer, vector[ 290341444919459839, - 9, + 11, 1226245742482522112, - 542, + 778, 74168662805676031, 0, 2345108766317314046, @@ -256,7 +257,7 @@ module verifier_addr::constructor { 5193354047062507520, 2345108766317314046, 290341444919459839, - 26, + 30, 1226245742482522112, 3618502788666131213697322783095070105623107215331596699973092056135872020248, 4617174774030761984, @@ -287,122 +288,136 @@ module verifier_addr::constructor { 4612671208762736652, 4617174765440827405, 4612671217352671246, + 4612671221647638543, + 4612671225942605840, 5191102238658887680, 5198983563776655360, 6, 5189976364521848832, - 9, + 11, 5191102273018626048, 5191102277313593344, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020243, + 3618502788666131213697322783095070105623107215331596699973092056135872020241, 1191342862550269952, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020209, - 4623648724265959423, + 3618502788666131213697322783095070105623107215331596699973092056135872020207, + 4623648724266090495, 5191102238658887680, 5198983563776655360, - 16, + 18, 5191102273018626048, - 5191102324558233600, + 5191102333148168192, 5189976364521848832, - 9, + 11, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020204, + 3618502788666131213697322783095070105623107215331596699973092056135872020202, 4623648719970271231, 5191102234363920384, 5198983563776655360, 6, 5198983563776655360, - 16, + 18, 5191102242953854976, 5189976364521848832, - 9, + 11, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020241, - 4623930190653390864, - 4612671182993522713, + 3618502788666131213697322783095070105623107215331596699973092056135872020239, + 4623930190653653010, + 4612671182993522717, 5198983563776655360, - 16, + 18, 5193354051357474816, 2345108766317314046, 290341444919459839, - 29, - 4622804286449221633, + 35, + 4622804286449090561, 1, - 4614922939857338370, + 4614922931267403778, 4614922982807011331, - 4614922948447272964, - 4614922952742240261, - 4614922957037207558, - 4614922961332174855, - 4614922965627142152, - 4614922969922109449, - 4613797087195136010, + 4614922939857338372, + 4614922944152305669, + 4614922948447272966, + 4614922952742240263, + 4614922957037207560, + 4614922961332174857, + 4614922965627142154, + 4614922969922109451, + 4613797087195136012, 122550255383924, - 4613797087195136011, + 4613797087195136013, 8098989891770344814, - 4613797087195136012, + 4613797087195136014, 138277649577220228665140075, - 4613797087195136013, + 4613797087195136015, 435459224417, - 4613797087195136014, + 4613797087195136016, 27700496658166629, - 4613797087195136015, + 4613797087195136017, 435458895728, - 4613797087195136016, + 4613797087195136018, 118083203326315, - 4613797087195136017, + 4613797087195136019, 8101821134059892590, - 4613797087195136018, + 4613797087195136020, 9062164042692704905798619969846, - 4613797087195136019, + 4613797087195136021, + 27413455001448292, + 4613797087195136022, + 30809880779386724, + 4613797087195136023, 1, - 4613797087195136020, + 4613797087195136024, 3, - 4613797087195136021, + 4613797087195136025, 1, - 4613797087195136022, + 4613797087195136026, 2, - 4613797087195136023, + 4613797087195136027, 5, - 4613797087195136024, + 4613797087195136028, 7, - 4613797087195136025, + 4613797087195136029, 16, - 4613797087195136026, + 4613797087195136030, 6, - 4613797087195136027, + 4613797087195136031, 1, + 4613797087195136032, + 7, + 4613797087195136033, + 7, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020131, + 3618502788666131213697322783095070105623107215331596699973092056135872020119, 5198420613823102976, 1, - 5191102221479018496, + 5191102212889083904, 5198420613822971904, - 10, + 12, 5198420613822906368, - 19, - 5188850460319383552, + 23, + 5188850460319252480, 1226245742482522112, - 36, + 38, 4614641507830300671, - 4617174774030762012, - 5188850468911874048, + 4617174774030762018, + 5188850468912267264, 5201798300658860031, 5189976364521848832, 64, 1226245742482522112, - 12, - 5188850460321939456, - 5188850464616906752, - 5188850468911874048, - 5188850473206841344, - 5188850477501808640, - 5188850481796775936, - 5188850486091743232, - 5188850490386710528, - 5188850494681677824, + 14, + 5188850460322332672, + 5188850464617299968, + 5188850468912267264, + 5188850473207234560, + 5188850477502201856, + 5188850481797169152, + 5188850486092136448, + 5188850490387103744, + 5188850494682071040, + 5188850498977038336, + 5188850503272005632, 2345108766317314046, 146226256843603965, 5, @@ -433,7 +448,7 @@ module verifier_addr::constructor { 5191102242953854976, 5193354038472572928, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020304, + 3618502788666131213697322783095070105623107215331596699973092056135872020290, 5191102238658887680, 5191102242953854976, 5198983563776458752, @@ -482,7 +497,7 @@ module verifier_addr::constructor { 290341444919459839, 2, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020024, + 3618502788666131213697322783095070105623107215331596699973092056135872020010, 4613797087195136000, 0, 4613797087195136001, @@ -498,7 +513,7 @@ module verifier_addr::constructor { 1226245742482522112, 16, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020008, + 3618502788666131213697322783095070105623107215331596699973092056135872019994, 4617174769735794688, 5188850464614744064, 4623367219223429121, @@ -563,8 +578,10 @@ module verifier_addr::constructor { 4623648689905041407, 2345108766317314046, 290341444919459839, - 11, + 14, 5191102260133724160, + 5191102208594116608, + 5191102212889083904, 5191102217184051200, 5191102221479018496, 5191102225773985792, @@ -574,21 +591,24 @@ module verifier_addr::constructor { 5191102242953854976, 5191102247248822272, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020234, - 4617174752555925505, - 4617174756850892802, - 4617174761145860099, - 4617174765440827396, - 4617174769735794693, - 4617174774030761990, - 4617174778325729287, - 4617174743965990920, - 5191102212889083904, - 5193354021292703744, - 5191102298788429824, + 3618502788666131213697322783095070105623107215331596699973092056135872020220, + 4617174743965990913, + 4617174748260958210, + 4617174752555925507, + 4617174756850892804, + 4617174761145860101, + 4617174765440827398, + 4617174769735794695, + 4617174774030761992, + 4617174778325729289, + 4617174735376056330, + 4614922926972436492, + 5191102204299149312, + 5193354012702769152, + 5191102307378364416, 1226245742482522112, - 69, - 4617174774030761994, + 75, + 4617174774030761997, 5198420613823102976, 1, 5193354051357474816, @@ -598,12 +618,13 @@ module verifier_addr::constructor { 0, 5198983563776655360, 1, - 5191102298788429824, + 5191102307378364416, 5188850460320104448, + 5191102311673331712, 1226245742482522112, - 14, - 4617174778325729288, - 4612389708017336318, + 16, + 4617174778325729290, + 4612389708017532926, 5193354034177605632, 5193354034177605632, 5193354038472572928, @@ -613,58 +634,65 @@ module verifier_addr::constructor { 5191102281608560640, 5193354012702769152, 5191102290198495232, + 5191102294493462528, + 5191102298788429824, 2345108766317314046, - 146226256843603965, + 146226256843603964, 9, + 5191102212889083904, 5191102217184051200, 5191102221479018496, 5191102225773985792, 5191102230068953088, 5191102234363920384, - 5191102238658887680, 2345108766317314046, 290341444919459839, 0, 290341444919459839, 1, 145944781866893311, - 13, + 14, + 5191102212889083904, 5191102217184051200, 5191102221479018496, 5191102225773985792, 5191102230068953088, 5191102234363920384, 5191102238658887680, - 5191102242953854976, + 5191102247248822272, 1226245742482522112, - 35, + 39, 74168662805676031, - 11, + 12, + 5191102212889083904, 5191102217184051200, 5191102221479018496, 5191102225773985792, 5191102230068953088, 5191102234363920384, 5191102238658887680, - 5191102242953854976, + 5191102247248822272, 1226245742482522112, - 70, - 5191102242953854976, - 5198983563776458752, + 74, + 5191102238658887680, + 5198983563776393216, 3618502788666131213697322783095070105623107215331596699973092056135872020480, + 5191102247248822272, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020443, + 3618502788666131213697322783095070105623107215331596699973092056135872020440, 2345108766317314046, 5188850460319907840, 4612389708016353279, + 5188850473204809728, + 4612389712311320575, 5191102242953854976, 5188850468909842432, 5188850464614875136, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020357, - 4612389712311320575, + 3618502788666131213697322783095070105623107215331596699973092056135872020344, + 4612389716606287871, 5198983563776327680, - 2, + 3, 5193354047062507520, 2345108766317314046, 5198983563776458752, @@ -673,42 +701,43 @@ module verifier_addr::constructor { 2345108766317314046, 290341444919459839, 4, - 5191102230068953088, + 5191102225773985792, 5191102264428691456, 5191102260133724160, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872019904, - 5191102242953854976, + 3618502788666131213697322783095070105623107215331596699973092056135872019877, + 5191102238658887680, 1226245742482522112, 3618502788666131213697322783095070105623107215331596699973092056135872020469, 5189976364521848832, 4, 4611826758063128575, - 5191102234363920384, - 5188850468909842432, + 5191102230068953088, + 5188850468909776896, 5189976364521848832, 1, - 5188850464614875136, + 5188850464614809600, 5188287514661257216, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020250, - 5188850460319907840, + 3618502788666131213697322783095070105623107215331596699973092056135872020237, + 5188850460319842304, 4611826758060965887, 4611826762355933145, 4622241336494227458, 2, 4614922982807011331, + 5191102217184051200, 5191102221479018496, - 5191102225773985792, 5193353879558782976, 5193354034177605632, - 5191102238658887680, + 5191102234363920384, 5198983563776655360, 1, - 5191102247248822272, + 5191102242953854976, 5188850460320104448, + 5191102247248822272, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020388, + 3618502788666131213697322783095070105623107215331596699973092056135872020382, 4623648711380271103, 5193354034177605632, 5193354034177605632, @@ -718,33 +747,71 @@ module verifier_addr::constructor { 5191102268723658752, 2345108766317314046, 290341444919459839, - 2, - 5191102242953854976, + 4, + 5191102238658887680, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020428, + 3618502788666131213697322783095070105623107215331596699973092056135872020427, 4617174774030761984, - 5188287510366617600, - 4612389708016091135, - 5188287514661519360, - 4612389712311058431, - 5188287510366486528, - 4622241336496455681, - 3618502788666131213697322783095070105623107215331596699973092056135872020479, - 5198983563776065536, + 5188287514661584896, + 5188850473204744192, + 5201798304953827326, + 145944781866893311, + 16, + 4613797087195136003, + 4, + 5188287510366420992, + 4623648719970074623, + 4612671182993391618, + 5198983563776655360, + 1, + 5191102247248822272, + 5189976364521848832, + 3, + 1226245742482522112, + 3618502788666131213697322783095070105623107215331596699973092056135872020276, + 74168662805676031, + 6, + 4612108233039708161, + 4612108237334675458, + 4613797087195136003, + 0, + 4612671182992736257, + 4612671187287703554, + 5198983563776000000, 2, - 5191102260133724160, - 5191102264428691456, + 5200109472273432576, + 5198983563776720896, + 3618502788666131213697322783095070105623107215331596699973092056135872020479, 1226245742482522112, - 3618502788666131213697322783095070105623107215331596699973092056135872020294, - 5198983563776065536, + 3618502788666131213697322783095070105623107215331596699973092056135872020261, + 5198983563776000000, 2, - 5199546513730011136, + 5198983563776720896, + 3618502788666131213697322783095070105623107215331596699973092056135872020479, + 5200109472273432576, + 5198983563776720896, + 3618502788666131213697322783095070105623107215331596699973092056135872020479, + 5201798296363630592, + 5191102221479018496, 5191102225773985792, 5191102230068953088, - 5191102234363920384, - 5198983563776327680, + 5198983563776262144, 1, - 5200109463683497984, + 5201798283478532096, + 2345108766317314046, + 5191102204299149312, + 5191102208594116608, + 5191102212889083904, + 5191102217184051200, + 5191102221479018496, + 5191102225773985792, + 5191102230068953088, + 5191102234363920384, + 5191102238658887680, + 5191102242953854976, + 5191102247248822272, + 1226245742482522112, + 3618502788666131213697322783095070105623107215331596699973092056135872020248, 2345108766317314046 ]); } diff --git a/verifier/sources/test/gps_statement_verifier_test_data.move b/verifier/sources/test/gps_statement_verifier_test_data.move index bf1ed6c..9067e00 100644 --- a/verifier/sources/test/gps_statement_verifier_test_data.move +++ b/verifier/sources/test/gps_statement_verifier_test_data.move @@ -1,353 +1,235 @@ -// test data is taken from https://dashboard.tenderly.co/tx/mainnet/0x587790da89108585d1400d7156416b62ca3079f55fd71b873b50d2af39c03d75/debugger?trace=0.1.1 +// test data is taken from https://dashboard.tenderly.co/tx/mainnet/0x0463944ad23fe5a31a609331321c45766f0959aa711a227215367d77d5bb491a/debugger?trace=0.1.1 #[test_only] module verifier_addr::gps_statement_verifier_test_data { public fun pre_registered_facts_(): vector { vector[ - 90374861002239632883146525806296082229390106108247837426675086315668045719761, - 56179984307737135325919351184789470684532458739302700119337202059111297536095, - 19190820922101267664215359754841501926553775541624241835940789063091042960464, - 66586306965550603250910956553732177691905041135943809483521167389721193902029, - 68443066659093902002674439413897714857136051230929887104012199028945057695626, - 23192747390799604015430652824310028313406567091172154104214555033819721960689, - 97283375723887248194450477128146682165031810510343354567282663123280809221661, - 80968054135729823233098444019380404866236903770867981797552678178437726896436, - 113739474458047985875134190238202909490865559207753141829375000051595492879090, - 20946212888909783695959691982338390660827109775859716352857773793588687912713, - 18236560283595263861680501190348216068035274366239795797554205265777798677847, - 3475479194832868407252076218244065764153368218389092265849466931110185742916, - 36540216028641017149922661842736303619839298998394385602444281694375903052249, - 26751428622798066946593928384877292663892571316476265809625637633982414766613, - 108989866619290065012341693446604475344491203869097610514645397579480237619250, - 1706752348348350474316359563606222616037273166550736401876700743583814423394, - 102942953147077953577589898780534969926714763267459649931943250340206611985712, - 94996409189514341198972986074256390453367838049543555656374742468620736799996, - 7630635281270509304868970434369247630120859000564221113883913918139204902212, - 80068896147766953807751265463552510608474307949535623210047793435449947310989, - 114295154860226915328731256983284563858045735337125703450891967138442818857632, - 8417308633700696570178253158247249244774146709181695323743846714363528183003, - 79877103184977587145722178107489386645267945862174438383674182972620613464854, - 106622138440118238983021857248984299671297827476239310122691154542315572030452, - 35407789176729882023043346870195508198735280297753316525720822423999599438423, - 97247116699888635887092397993480624001232228530526374282764628633193826110296, - 99382438699614618382213388767371054426929963780766253748605072450548089096844, - 90037562315543375628611111594410050182085992774909526018552910702672849371547, - 66330217308210720753442297318980762487735785518018287993987132182462864714651, - 109571841541340825468209355313413891725787430962867981137038973523064361371237, - 109937365287439598906500883782213142231907427443560869688630243469916952399010, - 113385865575537621107394117379981261347666776727074493318494347737026645700795, - 23122203662614098324643090809541223981196048012147350120265330136512811004930, - 1056405680268605560294856755247691653342780261320667366779585585236155642442, - 87661505103736964751275757691313253648970106905164251785999294346436602113608, - 102687685640516492079118532882253008979682440349285359822275299001352415439951, - 23905697917661649423247972005223309598503440259943287872839907444179363364504, - 9956032705630556713599707735790616984651366117863346977335729174033595071931, - 96738810824213402847756679585491770521220456489714866058023318212839351509101, - 63834959162310767538843963137616271394241929873922387589022016011695315860778, - 21289049327692527859432450424389138860663521299399575156176885744994266527501, - 86232104727778949950935448711080979246717811947975337571968163691683226474146, - 102313560892902765619089366797567032814530208108882506079988386739661925842265, - 99515437057018328544294475001053112012841277062790484232940716266599397988057, - 10668736116974850029457233946177110228200385721657622520766124553543632184384, - 76103409895220100604235711728933125215091844418169113707022087801198846966165, - 113010486737795247946614252243717974083103498894976661835631581742069108908557, - 49364954754557103458724625605552951667693246646850685161342184015024079107074, - 21101393901139303402053518578563147748604228725946476106009553379297289500360, - 49057143170402849511933489439129029796978255118420492401606558513886701176184, - 105354731550163339410107008027797505967674200410979413601900457972614432198832, - 90565076274237802796740807405316931168975598712441947294022211662139222564246, - 110086539187109278267772369060252173502692807704231807386629478288955820606553, - 91701366154883661998080407194984734883588360864725838195350520660916272224550, - 10142247108685080334892437554414866974972072085399771470436015465089292126074, - 29846338217282302211720587287700154483319699420383757799056426384711488791337, - 27938671957139595210220691902146898397681086789544505455972136928035908911847, - 82397658054668831145706925873152499116096413535619458060749379405000904989250, - 114350224661168995256315748222052165337018756369447544642618460051770218058663, - 109449309974240654711094492499272317932638372062015147273552600751522531927132, - 72754288117656108990702924709275729187164329684458390959556709486333489176219, - 3549079161997778458715558469415602786285474423103849383204864453585494590598, - 34180556474406191060669719433425086607404936459323656751147442645349487160742, - 43765057642094157918166183142218037077738095098377774018701635793727204014420, - 90338052431962724685534383491983206853366403753213758686231057853304211136459, - 78593063359401999309183237875655244819560333354895701115347297264562942709344, - 74397434760339478525253859888632724196286728764602353655830333545367635693211, - 26331198787662591149683874088792836750375707093253627370654392720192174963831, - 112966566532689715129209330793849427993777907280780183292673865937361135937791, - 114353287122562499920403540458455011940628482725948814589329826696105247950135, - 74793741954496830626288812339382886908941319930944040532593327777657290557145, - 34816126872178744582897783663511921391868282525489350295187750768827352316016, - 21192453921598015764696235205121701434331412370431684436751933143838798473874, - 44058201973227503740034396715380727969112740245779215366320280890003333982477, - 29533018075707303783434947446180013484050458337692795871871452151406143646581, - 1515089686428457373979034688329533927928349613916887567879601389354743370622, - 109180325929866834046270827904451567568497733033134200374019349511256767897440, - 74803672184456742013297129602262186562311733420299114203575638766212190585231, - 115238366101742584162835591700054714193217723931612061275619410075644648428546, - 32468678250053212505585649596015464999877799621553994413247029896773066667413, - 83364528782048618142708226118279656717061858624081534727039416012820163224633, - 7354024309730882796394228327040203349880364428944973235716092765476455492827, - 1262870503500310307550645023858402879272209665433488597993297460482425337681, - 98335980330019236625060043875409342710228293575666239080011807480414732765509, - 50946595616360816829923577986994745828151869137771049307445926030578784109485, - 36091201194688256622898407911670913963302847417436669790744715657240876899240, - 8808253819130602704597917725112680472256833111887576050377948899492705923474, - 41172636646503426875678768053851629635776602665650552436822695192637817118749, - 57345710549584635654376568872517963763578746035456680536854183592502432570300, - 8592690889905210972890398735532689180019458953833470005607590901672380695210, - 4166477994583105470567754255283418669459564354509224410886188538894147142981, - 68098757309841651586951304259266886311988607392802233236113645028486168507396, - 24991295910751946290113312312609549408787761745773777699987177576591735352986, - 44579876644222395824149806086725617918387553747425122027470825518990251740243, - 15227406251604233210603812810167629530808202085136198556337441549511877890960, - 22759540127952266669819370265282379758525372733374540416507802513771255892716, - 43127206729995927237848006162371109890076978014461685775634432683267685856426, - 41713821958160636851968483405352077418860766134587223705294185412188684305270, - 26208125733708805609633428661679389703362429167499430915810971395717416747145, - 76610189760043808548699718210259885776088478988479636720437380804721153098755, - 89512216112173270344143296040145603274650163871066984128619395954363420721339, - 20460714744270138307212528049453329198095121561210823963362966657556483034334, - 26132924683195836720371956609390091423632291995299668692240211036108215269474, - 5833487682800299469138526098834355959268474110834809916356825665675462740090, - 104168692497517601592269866592849005457185792813289145227648260949961420864131, - 25331304506557690176407806936878770676661143952534511069637066064175583660259, - 112018639779265106474848771291281771837615571390662122133274809689481075308680, - 43241577635777865484894036547205004558146528317683229065146611241513131335510, - 44298908683033041834217230570717599544704508151662319940657234279904124414826, - 63552330732732459467178499721380645650878694771142132740091085775704359351779, - 43787187384165832627764329527271795808183561866472090676239822547264004758022, - 75945073431498078448020725259869395714443637284325161544957599542351223232505, - 3487179213006642983436008189858169851299213853792874972837855149736029401094, - 19194865307362108242290006920339162915830230902494071902265621916750355946629, - 97568969073055749633422855926655463704707484230994155156931576401701347016144, - 102238434528026988975197954301433106354948626029658627734228689550897160347614, - 66594741843714574534308635729583698167667776410737504500354069533715403500323, - 51777580934224258187544418755076951133541389668871178609223423989089924081639, - 21589639526269990982086909365872153956502020087277655108454424960163541671436, - 81384416940325143552201510640904753937666873078017876860068735190840262769922, - 49133513547692332775728603722476218340473115481627222594095172309501801157474, - 73734380932306603407515307721321779934177802377409864424716732654369673246710, - 2246242615905913254289602438933399890848860254152406286075054315866149677898, - 32674031223765518728565388665708213082065722640384335713247313951353485898957, - 28746886696149701919814134856061510367100204788242834599828602344175436902511, - 39167172499001521372424096108110778083374328793564421932890271511530920922273, - 5568791916240257974108514411297609833792444630749693797301395811224369646704, - 20648755118034012175088350428474024653337183431348871734331406995784145356367, - 106801795140800106612769951485343336194859968206661756633407649315203733828610, - 109233825391360408160515995038642668597144657585165770780785494193129195973941, - 77207505616123334879940117435155892191723326029288634557447400993849107713194, - 71610279175603669325936289183255885935727478053095853966547197850172747643407, - 89854640986939055245084861674373301917111961062361634149692827460746570066714, - 28247203691230740736613218045571786984629316425418178432608500161341110986189, - 59546743490332337201206414807226390307040560870249265640051968488562401608969, - 67929796707307015787838902159703874270177935518815265738049224573505381516441, - 57982897878633836389748479999846361296323406155916672564734814105139336792326, - 5461101373327848068206149863625709449986120412484976573069494600867225573415, - 54401079502624290280637309817524422947364512646040178118146883186731670847433, - 53102394760090565318361765484915161408407391495275264713850980546504698071462, - 24501533376177415438581018233386276735001596213114459694543770889792806631869, - 72170518293491644299982561780267540456189083097892772096830683423147466350620, - 89507430817958911598180398286809748833831052705273225052362178213089962642044, - 67727286488218425278181697875293999012012205750711984730448971351278910880253, - 111984454683772058542342557774797911429133885429421697069813212466318625115156, - 42436203951095614276310175924323536573731986909545123056564849774774169323368, - 85023143561303097272838976016423923190713891008789243794345887371857933417910, - 99962596389093098242681956517398169865641769947647874231354223362282205536340, - 4270535965963330775428152393255854474388157601236085526291615686178712188684, - 100168155884200604754471294981242410393814206647200645914158150624040943080154, - 9991161355592366583927099508561253591100964250276828785969078804632480435554, - 12314720405934725856472482624757170035114847372996256646716937313000588318203, - 2860919010955558408902310701877023431625693793673332335478827641334278686496, - 53094136923778396041833543082867956503544790133841216723133125587353218061827, - 45746601333313207603396211822734047207695070342325060667493306720808686166843, - 58889503653460048861316482416593039235957417643084033605562781818588299363408, - 19368273464556807576443231344257895007603950181611406270234178574102198049241, - 78437754394508682181120265468852233510477922885972762279767165050640422908939, - 107538822353976920407659621462926481071876578481681250153246538133147091592488, - 81016917794819082013368717221409367332826911122547583627440080895211636369050, - 94293980226690299092075171178403633264221836625859365988598967109306027221531, - 104532237909964133266639106750455032124167279431562592209984567674658989713190, - 102950073621149083428450437087243856943209426516709316481928340843275371462474, - 6207133171417225337016777381163053708908918883458415563002474230906668287644, - 53700790273498931152022815278706540759909711478884140534791079723526570596577, - 70115235540639500263001553659924939690859425790641278583800508331421213921461, - 35543200975794353588671421892926038694759482084523519733723837344262948638759, - 87352361273830059962387057433686873189979881697522907386537051414764832172457, - 7638629750848859240414806726354174351530887514426388188836129131290143265737, - 6516500991100747974194383587733989479753199121089574498737264556690984433230, - 93253296820582360795148765795065795381150137981997115109302523734642323873758, - 12449016597987910792497122276112041776099425301434980259388955793910933741083, - 11271285254221084100339796453752441804606125007367969431803009806036452833376, - 65829413880709257096044183138202605328645291488368914113133511052795333207246, - 28977904135508914161376386492741539135190407185163903874658869603086213454138, - 25836751905377616080744783025854541008462131129032624784576753428459625661668, - 67180466814834338156096152655854391237210342648669413756773929230094046403193, - 99357718082860025927471361993254462596480088012760268171607745179113742355191, - 71955653087845635064868533213226682826487548825435565236859397491549375786842, - 36297888985448358751250303659804599846791541289095708937632688923150803732077, - 100695121743117099387138389582703227077322918542033961629411067185278558763932, - 52162983126768334363716226677678035098080091988154254090178342535424805338565, - 112708429459258541488478246774539856801569052293461484378174484054096804735367, - 6386940711335736617244249800843112627661703411239408108695797540986788303958, - 48667387465383679028757190831127811623386562948341819793981442700703531129212, - 98215133989567460358501006150820012098364412504237534897797904556278505940724, - 77914337789836865570785786657698936879706644099756179733695564224308773670876, - 100314242064051268461604597834245157603560021911340348660139774644451738907842, - 92879867477996008917340699058326590131009703424452440666887051426021661821602, - 99484689145824940566079253082487092284723654220927015492765678371484126993578, - 55338944734571646593272291826201840015142400248235325107497286768141895185337, - 89826434292930901862075608993436828951224280168302092068798800553885757762928, - 33740109116378228749257439646234270163722585879874698746225292557855187850594, - 100356465946439001515953663863857685534425581725095420766368764978292427052708, - 81039394128577152210104571162034485951807254911082897846587060509332682379842, - 8408001468728275572399671384230777274726355120930410580597806906081473572834, - 10908895775073442916551780239275092031518888963057215550848907527664597344536, - 84854642649047683943166963643528804747997917768241541006172310483130917139714, - 33057615236450367976028992204116567940277523026857601485825454840800733335275, - 84705360793393705597425798431296817504392775934169299899880924245986783457718, - 111525682337395407150935900613453144787831145518929570787046943285397888693020, - 105402484238252043386406911631640919028148671900230248753956083168227090236594, - 70647607073050492724378996153615617582748975980544650427971195959951966195543, - 66521794811092307186268561977757872649616489656369434186016615885501699943928, - 89597831476817284710027736327994254225523609056361102418859489827421817774092, - 44604079989059949810225055984527460558032314898040234301558288230903056056928, - 110906681986217791515164760429651240169704675531605153783110893850933566462598, - 95605426720075704009708031938371632287665713591343546809539080823718941837468, - 43398017903547626946267019207185022673547202566576083953106515696551664433428, - 60883525320865361397118947610586986350422623916272247377418475239685689025023, - 105013515056650599904740120254050683007636634057992254769196256228963989758384, - 32970019925085424528938038041082657559781113875649582716431251558142614988993, - 47152734265221658771537186547896388953873827616302729821741905644792654885212, - 10001610022538043596518167287631681217109070720896899004297617607149737011860, - 86184537192912747434336926622761274738006624813378474991310593685521681282478, - 5358504471205796191359974070296605502493139653740431802490387627691657510322, - 83019212589565586195475052280463738452376535486172402079583211203400216456992, - 77312752118832772627173761036118263107052792662245258723454628828356346552872, - 91168167042411679201023714451010680219591301896110952914192246461237354981878, - 22932757472394911110965504071941120916104593208650355772387363295265959734953, - 115556511265393988531138660976576937508980119423457984460560732355986628567729, - 49471586771056006153882338624844003952601160760394299194484706708275122110249, - 40437284636905544491914836688765577730310598705029996999052422836776316633143, - 72670924227959953093823635758133023387589265147796294862753188605738013306166, - 76217708915337615135870563303026608590541334136059805638260396806525183027158, - 111382703162449060635417094044983829969538219785638291828194112078925781095548, - 71412195454643078215201625799979658826539129274678134190054591601317598249139, - 109427188924527536161388844770403365839616648247890550908426860021567063950012, - 34454801564526576746496304309335628982206605439276368979136436152558472936330, - 16909116389666417078832685940824942416785511928990223451431211956701429161798, - 87698582301117846663147606779269880643388131451192642717957297114727730507100, - 43592905395241141792523085541682153713270987086400852743794878114759318992839, - 35184881368193554939773858899269834363473610511261389836413145556903303508884, - 20220176479835329664361860803150382635023778080712173078993999986143667000970, - 16016175334500266720236929020842862694644806123842897753176802503629958457499, - 102801360790614342848922227882473633660570608752016158214990663013058048355226, - 58431985744980537888010270219770316522367177923668906666628944289651836422428, - 113151842259347069612843052101577985618353246939906832913902457845822885426657, - 21668648605876017813903250563208915552089304347193092661525061207363925567050, - 103458678315326790746664464092071139733777152999140279888112890480728137219425, - 15046497898873536583433477709389552494193312533290755199833917193885405409120, - 102257627722241440926290718199198015612965738563678274220811766728449922160690, - 115352438831125187782321151378343525556314774435648261250884644770831391669260, - 72754165224345357763276290774245956611804378986384287501670219759415895189580, - 63726005931456256957505969253224519513310091889261588362935543718245788508457, - 44910251191483746483195517495699591749009017563959493187235656765833916481579, - 23891996609610598674739214035443938398487118816513787774310642097646987106723, - 68266911273245661253246325983957102041600367995682669862953183177017341901079, - 76174792321053692273480049383512989579457418003909718073166397476710458124125, - 47741193980648316938868907515514122407908396634142457645264132883247206333355, - 68473348894505681101767093394679965408224360400687139735774118053839909527213, - 61962461050948177191714559364559630784308260342947110988646257809326620368732, - 109729562325274107495619813763747075773585249281577287546399510824941904297909, - 85278121045714762581195625982775632570870179662735113302305732775223026440845, - 35390066325352698385900039374380681482743106636864486587171008494181912419887, - 61817986976212291111023385674831911785692691752663229372150154623715801331268, - 104234714165077845426216586074895633703167537283045981826348831938989156603755, - 93997636807741001761200701186260237871922197808951631015346841691626896732544, - 10948685650569138662147662505124157383288551691964930130973677887234145173522, - 80419721870958136651594847806145379485816582975173301021693736480838794125039, - 30773599383919394844596593330745836609535996514201436551409942197904827833532, - 40006530683475617958269827175640823237905182350116335160529910058104695590290, - 53849083177701012677475696718832279545668013005495554861802582918816713436455, - 95062237045823435960704034970581429750768877035581485426250629888695567087980, - 66565540519856756044007830722509397433296158097795398649671945575310058673004, - 39910363287325882412565859791023302366163357027308058559734685947857918538423, - 100815578824152841371671582238880601229587082377654179508910110650249629797310, - 60044329725468581040651033165515865473651351328741547772936320556187068085715, - 107441649315090941799812354769686631343966197022610469971649947922005943294627, - 5420203213397319930360262451591483749541054436628730884965825787226514268456, - 79585000017390150979950952749344164240760428925339239295394732518310958149575, - 89480796618561168258046443591555412691805195353504281175317787258023352728850, - 75037195320414958249842856145783252179990471454671744930888469370195821105735, - 65766498003253658061204236689716157588363836833499059332956339571362302226956, - 114762279852430786779099679169231341750181664569709199004559936775015990441490, - 50051880330277542189027601672807972182905492084169218833523433588740583180287, - 37996097415291066390258091736392940373514369166754297151185763737393838492432, - 62331102659092603468993012258473653222062664522783032836120274183826356567333, - 51692730657084392082330891620940978627212406377981169456802474380362701895582, - 111028881613454007057478165478909084922629661509351112415149062759630943602221, - 78149070343913994174633022395370974896836526242393742991700142705465522394529, - 10304839652382864223365413862325260732385458467314371939325634836577168445257, - 72521233370857443499470980698659506422624493121069688547587420249462139567486, - 114957718573641314614026631676136179454763280757663675235443335936702914145984, - 20689504506796055625163882195238611576705359891216904935059102451468001008254, - 554589963636248486584305117640692170193922996101985470491449219568595439251, - 64871221219644051384069730546034243411449442047187300401570233079245744891736, - 50586518593293896659897980968470618799519050664592829618180035470611324252338, - 19717124532419724483984803632312259298765659984327821525416679282428215186251, - 22562694164111251845384808896156304616355277198956316500309259843686643229628, - 51125264080386233104180456617957528157930327534338850308651690670883500460220, - 374340456899941854719739759392094674445269077109061426513720694124205662498, - 52538748706636200788049368975247774959339216114060527728059633691695500867966, - 33770322910019572260472350939958958287221433992449045075563915890242061272315, - 965534793006240744780482282382415853268386714713034818677993718493886390048, - 83902059269517575542001470122915769599929870377644672915056065158067237659001, - 54375593449838212717956792827813290169046354991295381708082156142791765436986, - 17420649344075512221387251100364985687006164972804173854699920954044400010000, - 74518494131489310311353579115350638439647803086046611566609640243763096050725, - 28374065878646213296858599426330774017872696614359698141919542590347811111512, - 30758218608091659106461649222808638483013860783527871337597522166292465352218, - 35843639259905122085584547456558463243612763457594040538567538344953469172026, - 52929326380918711676851214279593897811317324422293900643096498444224459844557, - 14616845223833807134733223894180176216871022135762440273494335773116505423539, - 42473140559320482613645994604530844722244857545886887399757773750565944039844, - 69819310414707620797348683070854363770428466915113011098105646854801597032594, - 56835281031690316643215962958272171067530513585378185566333365248441117645733, - 23588242194293587675223132834161092830894990128308214792256090492047707235649, - 84583123918412912762643134957836889219032119926164397061106474584409131503686, - 65145076675255995691686715098764150982016729771212182560522187586131502437269, - 19891926584061921708574808237380626403529652809168185542944606417865203890913, - 80271903429617696818560549855658385467833969902706569264310959391178200051867, - 28403239590581348651418868157536093184233111654668794397435824758130907593957, - 46842532816204932482654365318010615652607796125623392516870612584008877559021, - 113799478533654745789404356170561708569557912461575923985299474316830917576218, - 22204092650669188080428834926348346893141843565768467443817642005190061938534, - 85073583308415162873330650849457267649067476895673752854621131078817434114283, - 54387469193842630440271885538882808959845473434650182285977367017730998271563, - 24845907658939965648076968540982236998396386353405369089334752455410210457170, - 7843650733535794317512162496151154461668526314956360144464708872605590141728, - 30444065430454221503165776166096724198402072784554113203617623082626758982642, - 52773436799266363904529174477358630044232608139712289586307297317202109807558, - 61271831955088839873570916762791904000517501748802934616044626950730196585295, - 75202083776185890391598549034260320636936474502595321868782806602616015374763, - 35114637603570773235686342746137658551930444862719508680393551330993193572056 + 27101464376719035594454148439599482959726980019518827689600328897711817982961, + 91456082911913394318747570194267480418992192230906516193635156127091393581113, + 108184547597408539968479155756125471828793685894093547262444667646358535240744, + 86956606448328244678854881733876094150722343246483741934039893973056174795618, + 65262313687746555652797958410800819251522245690787897701651124176567955667965, + 69353322571138455543023456883985514454537612338356516670371734217303783507692, + 100459940732707000553086420378620721916425831394412703755523683384574797862305, + 100608418548787735572776972102715939195322994969022521517881602728936376507753, + 11260909144762877056805556437292657461057779548647059810911200658760389508842, + 111451409347955521090616020009200309845813728030701944453899679184200885179529, + 63186594176920922624555384781620316025308157503035409545192924056624858905522, + 9030989960051069462141122925392334112116259915953427256705797238662847679818, + 66113451742649631822125884246701242945331406519357285478427051906895158335779, + 58776863840105071799794888046253261259442530685622736409261376329471516955373, + 67462097491423487922079859704675264727336536088851383964422810873671766050737, + 93251299735811492979864707318695058857260087473906032317682090236352439354782, + 80628781706785272213579153786706484985693999378788413200909436498475659346952, + 92808636160753033629222276303028670960736627578029043910476071527073468453818, + 83602831575308878841335028008443571072209909084313641755713657257987291187803, + 92337692529052094724382937864894595613943751350314079710922147238834423331266, + 63055461940248124250110543979585287796277568629012514098686705226472809578122, + 31798274311134916343042626166323442107636463458916142830966618940091707178600, + 43244863425144386942676865292140596167303434352653977882635981945998017509249, + 60143714500343700815883315408669539261154519389358126704177489716974716194930, + 94254754803974120596504341593802897191443115921567068827552314143332629930263, + 52835089886604294974217016939614515951351194839959748745470091197513508732642, + 41092928442117494101878358719873677026238673956651888427274395581543079033530, + 66177135996707494846073154697476855107339842111182655329940144742158576909074, + 9423340735836264473302234705605153252338343711533122530545363096683399379634, + 48981704681227486750796217862081017151122265418247478668722287537041722074588, + 50834166158782919776327970335639970964535209833884671639155512138315668510195, + 35394136214332982152740049405128466127787608122356574525450114408891704234014, + 27060911029240996971172484999327411896540736606625434548572340162813246730780, + 36067449284924461225007703685665003666869118560336018451529192994051736480568, + 103979098134950717525797881079975166999496789564800494245343326402683391133462, + 33033190160720684986428308168875976582567887088584165089879039254838414062725, + 7241983707466989033174900747340770298547266698714495978123616294680790506206, + 82906063898747866487240687207335154701178563775532934522475589287790834705664, + 96281950106355916546045998954123819593734999609942562583353684346776581672784, + 49474726221605913949794510617057856569259579917273329589821967914879994449719, + 64581631477560971332244685485934614981183605701490093062866011396861796816106, + 109901636066098217302736631438103894842397173539522848310106352512330853279850, + 106068931214455561879213039476306120207870995004823794946337257607835624713890, + 84258298434634851163618459573181217757443078566009463513125351857829217264302, + 38694306379740917860109000036826951771473892061924293081561746223114340494210, + 3269208601455620373354710083374991262286648655798783011465637002344883608370, + 59671458382284978583167258880713239420032038884662846740305705384249554747605, + 41554011353645758488375722591699940620845528376164773705942272126116086536576, + 7518505402476830960256703332271437670513616881846170302711098291130129926535, + 70610874623347347138649055672662779705013457821206463270959509002591708989598, + 24267431584825326431006341054264447323631320332326703504067453602847938688933, + 4907822709198932665164293252601915952815274193011980735411057298343651922748, + 51773284032873960054778504942341324898509739587888655336179593935448961815971, + 55720490976191454904422171670349622224340324693085067895663178801329543210735, + 42071949620586911601240921832895330947134091229431977398503741088856728718779, + 82780997218723102292188185799264142118061681348405188108591742095245233864459, + 91844507657039317799949536288986759989179168668544093579724562678146059832458, + 18067198210519290169389144620614488302002704473747595477061667399400824715106, + 52830211663796377146045925984227269520227475060311159097973936677184711897258, + 113837572351452360384974428743133568754288451032864371031612613460768500471666, + 113727705857960424864358220287729940216877333360931781352021877705531620323914, + 48628201661400727990993792689092381298219285477325663138366991742519458259158, + 45609292370126924662276519911250605854179730055520973927929464918179295665359, + 107457799686771067136193041606943858555068941830490568338881682744985483239152, + 47194943206312436473338157717289919513042252732320624446671191226570855638556, + 80095969477194624100957637620715700797513841523276777128308359896222541569785, + 102639858558530508706482404730723600976350082802782152379063871504220325670839, + 11055885050220061015333048528673207219174592137037860113814703635850565079614, + 43197417261254944894781093542079296013137545105783999387092360755946613923516, + 51317636517022999862828017610112402859753127512978410431304386780648086524379, + 102596763209475049315187209026889111912975779014224588567432405206372161983954, + 30741929307913641393470385955934291024611125237647399778889075633877693512857, + 70984371863202225610775666592449231073258302535694258180281515266613843938932, + 81259946990650362142108598986005748016331912639095074738771740413578083346100, + 99620712179354187493600934194329029268126118561197944357999875401810230880633, + 82506715886580156396128823442309860888389620947145063566111908405576238793051, + 83017408053386658701861614761524778303365208099245709269097442314020555864387, + 107591388959806774518034980331288017896835964723428997886558726815173538290474, + 107602354575561670584598693883515928609381093046488274531601867831831680609742, + 114084285272434239160964181549158012565704353514579157524797614400600085668188, + 89586035531051743904248757032938347516762968342814963771868462626899198295601, + 101409121721177377874103573673607584134622408291981207896880813087100547558413, + 32754547555309156410273787868454234314179974594019955490957720453119159307985, + 71726657906475754503314797854762275845423152269380515994920397721080973858841, + 112980242345353032117896703785615757764724000550628538045195499246370506519997, + 36374337213423663511103164323937960114391922163798519070728182061444359374627, + 1114810820191916831536258239820754329434985021237000712649689908944890185830, + 29618001288579753764689330618018488844122027426659072273223207457979908013704, + 95834086782483863827249812771108552160482206588658617064009385987164039612817, + 38712031872862245767983406040549842649372018775843340539236491852417623212251, + 68701318827009762357525292904356162807834959212173873445274480732113677781831, + 56968607873733329168955214871019087663031394408092093070829346904138520202542, + 26593402968142934993982421237812244633369175543684124252616425983804782013840, + 92776296607106202717880154680310275729894261315317490022136887364794400918389, + 68744874000589506645697460360262094699815757240114477160471998565254836333770, + 64202530265343987286431708851510723131414537556956615568441894164454271803831, + 86656476323674752410668129930744655595554731129016721856654222398539420625732, + 43491978802951520311439410297411821585135386477657007341601094246117160973727, + 3664731490453648873058735571007818578412365782289059163567333052109866774220, + 59251100972947281328980927800095738776215652715763694572968092599289081615359, + 115090682876918639671081149765015863308485115674112974442079544402259684163300, + 45759648901226945977293798612317811859748541263231810762419359399648760165758, + 38757108672443199052256222945223719735193991555716891631884607579525454565478, + 107785532069358862200265243965566641574385615033012034094117111448153359866314, + 90097045412079696636280978446242445927409093738785327579367606844468190128694, + 48501778268929337757886099514772486381224086093595362842899517859507626555337, + 63067381312131379757694035057943326490803055173565381202711341669911994373789, + 111152775778387535800179487150129282843060923992337292106717906224742566037603, + 76831803408030146030840021952234780771265172279770948692502468490913456987226, + 112291085112072284165872982955469283943819543206373379778193290622103029474990, + 84521252298605156930375274919395343170659224949450659916591738619902300330709, + 60103859092155342133486567229082904747071715848278847655756136186612679417720, + 47462536407828514451205766808061837000012641975283842962091776912296028694025, + 21843264259062502697399271334531235546982904317290624346863632483585072424793, + 94371700035873934619742028173883069249442995034182625479279858589257915323259, + 105859508419378187138696723333138122583484094419364428669178062287359308813638, + 59521434463037394966620815434937491877998509475089710492825403895675419278402, + 94182198076026072632453307255780736767024501337071974659142234034335507124212, + 78971534033420542161334675297795490194208938355498477793714106830552097067368, + 110598312512293344881693169371361946534670313245148243963044344825201971078468, + 5211508983624553416922036621226872774669644427747160218638682644955815435714, + 15313920231649948587976663276383630874082498198378244263486521971924611402262, + 64343320517686416833374198632875752234313688808761311507078541194844641296988, + 16686454405877437413000757936083285481735084464326635191008925386040387515911, + 3213284395122931445197767306248353864345624446107289952774972659954006321280, + 38087494805827891732652036844039569395366369547050662494497209318417819081194, + 21580259249383016474814731241999047789259372973940919114466074602377458264609, + 49217451671124743363504495174281141266009863415555627612223425171110304721448, + 51109100777814785737672819738577061287485840978712895459416726519655464958089, + 88000330733439378169709286779434151365569681225219968866374228358804587165935, + 18184140366638626169612367271686589599082501426148881008847483876394732788577, + 309639131605679565952649958952506513470451422827657121581695603917031019883, + 101069021309597593744330313595544574209031420120789466422271262866462872925500, + 30209023093496608790762226456910385212568658327347931974903543006217788043832, + 65449084283932427834437791596262116819628008006771329758469914506990606328136, + 18638564722014994877287943175852691438440776987126604753564152072389357744202, + 62192120488544764554065446024950485980822775411202248000642236470955315227926, + 83013724241286879905940844821766746636542715187260363455674364837801963184158, + 89591348791360807946777888149486545723698907171532549358975904532173808046668, + 101392454713969448484836938120446078631934381767570864197829206062993819436836, + 37615794898622481112874883657243579984395733434439157900982889629095787357142, + 113791299962125432261499831104988963326353463774157514522188553300576252359591, + 18600823276954240203392465455971009514044959654932187110246909891087626409909, + 32792319356478183158288376120941186147320447078410507725638294420145835812708, + 34908590816111782434961714165434269058420635817873360617478338997836228977854, + 23650867166358324703656811823250372235557524367939451655083421389861367325065, + 4112823449316372805418261758431382476571105294772735270696225706633360005360, + 17224563630611898513135818196020626847068434513070438661149566961403938310534, + 57824232276571206314273987900199981977936305040778574087434395091540451243373, + 89107832647367994071365122794194416888741462956421293580402257582466844883995, + 94366898714546080844542701089710465172844088010698714683327783628414361030213, + 17275580390886866742525874011797474528038552681205537059488379752976828105810, + 51063985958838041774644920628342131691237671853533781267987031132617771881222, + 107967100698102682524170921683566970674774108304623276605012539814741215865204, + 41355455731160809799943436487182360267685048013192109135232711432331234335458, + 35173858189088646469351377684868582564050952298496661362711773458623040849385, + 28715455700373224795398277627523494369452573083525235585109796575041221185054, + 112520407003952670568055326406975652768315278498246199060793005549221334071827, + 112951778659601384812473624098398437569337414043449854654360322815395139467314, + 100126751522420518017769708515893760852624495219953339259495959473512334584067, + 15629363121637484344699235183970269297024227870560206128028887571239553736646, + 6783291422328696145706529380174267870823318488902255078392546195615544444455, + 11965299765592268733017185314867941414550798302061612003535430759254488491044, + 25082940141552313034484855998366025040019347601102316387490725081943489038876, + 24750283138741335844257950502474407923438208129558191915256339758098458612598, + 4356052220669559023270435938794867928662229022719766636249807327955371610894, + 66958909113570151043247681591488888840258949363811537320740433474734593099061, + 64055113961767704722769030002025126519140247959774210298196866157771674554633, + 105438263361826454815837049069029790030176986054586369549046534515672721154321, + 67246523973540428903678151705692020235131863652970261791266049836445507741533, + 66090218015535204311060870191809952477893862479641582650881744739361665554445, + 35899916435675319326405165135920680234768702854361209979068489052081496794208, + 78345796628015105906370500491352381045105640462254824584302905312004811616049, + 87313044971204589082207653948660684071225606272757931697321178950889697352902, + 17183691967748839197880614314996937020804340134387836085657256586659317657226, + 23554970728120322316819511916300263014868125720925910234892188304360721279402, + 8864610436960957474568515192183711113556948669560080675116772792132588287188, + 28265481196752380862002416483239374254466469529825929322759515099289605302753, + 108149573225606672702811917211427380678419872309910489211648561942422750114998, + 22170355546519740977259085691601306558284476144564460283173602927145641348032, + 42709827479099221083803804406671757231647105291653645927917668591489262649469, + 26344892732182372090480258335247117510761444269428435768585821095120664696556, + 100283949472041932721381294994742616712392332437341577231491595109147596064881, + 102891726053593882100727124115225914745132502766697557165609584620713814156958, + 112981301016221275771727995157807351432121072058283506165533516636070074183724, + 12166956777762379030600651341471793957880047521120902180791142268224807246846, + 24883360599945054623691755524450646130220071493813498758678355181751212548175, + 32781187081663995145115024581186940550453730349284479546336468830499510017411, + 74788060394737099998540351321147254947260040918433401064574925660870752034758, + 106491862966236077474413751676581789336343844409637543134053763080332057733041, + 104556575691285819808967561215634177792579469270466969923915737284078542718582, + 57175901001067228642129164834088773933711861823511401243250780837825835177831, + 55552370356997005053585826061965532099899906332555319485860343695234563951665, + 14704120863787938506570641106803042509936203268356957496656626871442243769046, + 4008580799461678955172540798330528214222942123212973596987696872667563797442, + 53908064761071558496314306708540935670494248461695944038950711729155009650380, + 109896320507380741135992336232771263324428982207368641571210961257441180953207, + 24880935792640139819058833096318759746664645576977910480631460845554414077507, + 23993394589707941792196922701700498043829192936437431434550904232148687871751, + 93661238756426254789525107036019667948632185995516126866523494470279215452579, + 88034329482536486542833133262331782113651052348050634900748403823100861907255, + 36535987246376260219677461838317555662227690086193778062933289249635274929859, + 53815352246553719371301485641630549574220315827421788812725745205103292544426, + 107686579874175964593341391052582816511017778112014419722782470371851987212928, ] } public fun registered_facts_(): vector { vector[ - 0xe728ecb87d44440d884553a51b5f2ba18003366e68c650b61b1dfe65be630676, - 0x7e6869c4a47d470392c1b5ff4fa6f453e5c5a68b53e5eb4d73e0f69366a01767, - 0x7ad1870222674cef05e0ea3a3b0af8d5878ff86382ae6a753ec91e695f3dcc31, - 0x20823ccb7bf03eea6e1270de64c6af2d2c2059b4444dfdd95eb2762c2606d2d6, - 0x08dcc6bd91a3edc3402f8cbbf30cf228e42e460342cb0ffe193be42633ddabc2, - 0x772ee225d58fbea20bed74ffbe05763d854abfd8b251dcb4a1c95df4457b9ecc, - 0xf2f71cf7a390d0d6ec5a8af28c297cb43c831115b7b2ecf5f1831e56ff32aa77, - 0x37021c50c4ea0a93ffe70510c3efeea88dd811241b85b14b99c5534fc8a74643, - 0x350bc7b3e1518226dde007ec55212c92ba4423160ee92fee3fdd541a541f5f07, - 0xcf1261ecc36dc27395cdee8f757dd4ce3ae6e086c2e4ba3c90069365112c11a3, - 0xc2a1aa2be1f6e1530ac3a0c04e9dc1bc4c03f725a40632f19103e8954ba88137, - 0x50c6a2ce282e8944449b1aa01660f3f91b9e4fd0d0ebb42c441b7d9b6e2d36c3, - 0x76fa68f38b13df0e27b95482060e81b92247bf21dc09586758c2bbe6e84375aa, - 0xee1471bc28695d1167fa0241932bcf1b1126cfac41e2ac1cdfc0323f73c25a80 + 0x4acdf3d99f921812ac45de2ccc183492a72f24a241286ccd11afc0b2ec2b6d4e, + 0x9ec9377e98efa72410e773abe8d478312307aa351fab830431a49010078b38ea, + 0x2de9c483dfb45ebee93847b6cde68db6930b1614493c1660e5e9b1a26280d80f, + 0x4ec7b22700f3bceac7e6d1177310a4483daf873fba22a925a0215911fc751024, + 0xb1856cf2865bbc9763b3a7094ae64ef425178eaea913ed8bc1819d8e2ec5dbcc, + 0xeb1303a3d19bf91d6415b1b088ddf059f9a224bf35f3c194fdd64c5dd8238ed8, + 0x6f7b5dbb6b4f8b40e8d35d745f1d906bcb6b3f53191a8fe72ae001ef3ed186ff, + 0xaae22111f54f6382848d8390af451041e3f46458f15ca99c8721abcc7b98b3b0, + 0x04d574d84d6e43dc56040155fbfa581ddf977781830618ad7cebbdbca4304e93, + 0xb8e32546ccc20a92b98941852b3102e77a9214ffcbf65d0eab3bc2ced0a27198, + 0xeac6b64c0ed2e43a3214e863a2d2ad62801ac9cffd88329af07b5007c59a91cd, + 0x14259fbc231ad1e8b4ded14a579dc479a108efaced9eab86cd70d0db9e8d5456, + 0xa475f948627712c28b651c457cf26f91749dc53bac7fd4b2912e090c26d461fc, + 0x1c27495a828a4dca6acd004a17d0ffe378055f1b7c5fb20109ae8c37fd2c3d18, + 0xbddad8b459a49ecca86ad16309eafeb97fcb8084815e895246184e5040cbdf50, + 0x44deb18ff10c2b60d90b978f4646fe3a2f414ad0f0c9c0441f33b2ca042d9759, + 0xf568b6c52490421fb7139039651ba910dda1ac615bd076b15ca0607ee810e47c ] } @@ -371,1070 +253,978 @@ module verifier_addr::gps_statement_verifier_test_data { public fun proof_(): vector { vector[ - 114466098897597402921659719709029092930640158257605074943353303056672207405056, - 110716645003116774241504247235358442981402102604932742519169372952660021346304, - 64129366726357284689725737553456410958830515816794986629944529799175703887872, - 1780736778964192366546933766518918945947503627722816931995060120033865240166, - 2287089742226975924720501489434571104340803709409031654827394060964237519911, - 2586870648411840282288346400780155287784653597845275189722207879579091056698, - 2237650286063529741562129108954136266859535902083769633630357699741510752465, - 2043599315485679511955295551648588971389256465202336760150479451513582699043, - 2074630453024902369311214052034490492356579366365547032549078403776288837141, - 1140656450332239236517458398648072920690300180154294115530233270343527102776, - 339074222333523841283795216614182875876567909518507289961249286850086248655, - 397612820379595263384513675320147679697063149209120136968689786663601998732, - 890252942442315641916806609943362398057137084160327008582850126123841401069, - 609984464738082880334611966620647569135958421218326394134583119697808559914, - 1315494620912915069821324580527981973536790070056752449795197986617000006593, - 300624682652420252863564071043178809198031830122192328689349574956699676204, - 2547705600302086972022371031867119775466913383806980188921824164790232255719, - 623968920639319688882054495152447806025106048605522081878646795082871233811, - 1342177322901655332420562622691591392100100357148928145984151097058460708456, - 1714310403566504166231006079116003353569451879132185283707149313962609876392, - 2384595626292489060015207031317576770881100017446242792162316344528486902408, - 798304122166842829400797224542975534200929668532793061160733421682444396210, - 1055898699579750344145349456166146455290839986524719611646020071822400593596, - 2106021294731348329796292813965827701086038850334716537993958891180283658428, - 3296008873334817469179037044706997522914968805013614651032973348184455104000, - 3393693580643468873375475045386983520167790590680569130291671550778441705245, - 1374958250610270833469389232367579565620344953523669070672691865909525150916, - 2033105341143767278693368855018816898192858298082858649706032497751322924566, - 2514511612464884054370475396567544217887199705287220059560404728822444531848, - 309568055189030799994555222321220489927345566596823577367934927586105675605, - 3155501599354225066276754398978302095167427731419388469587427183198207398474, - 2656150356188972846960571629459199996640225430750462664456641936306473772083, - 3002952853075238617498841689553174289777123809888559050666588767964108716174, - 2401588011544100652139717765280181652305423904897482498333064231968693043456, - 1448207903822279301028230625066893131135296078454443896749810480627349468761, - 2591024233552006128634714126288321372673604343299380691839946937566925638049, - 2277042679282650429443892868304432861123594667376439215008158766165142712810, - 3108615648705123739133811065006363776749141611349849118233607639636660146491, - 3208093766812089849667839652230094271894102105033344716083192125025859338204, - 608528274072603959469416940210315473891123684740014978236855472909806957944, - 3298939945715304707173420951719416013698528318625782392714877188608250949187, - 3275205846218065313217085795462882008036317144702328631195675136989799675439, - 345508629977459705991119225641468263978323220379348297669105721123687589080, - 2536042613536253158955590271951576629017139519184134774086208866232742416853, - 2694637163239942934607258341075305656853919338256229864591757671027336076286, - 1074368344267201973711028061049445307215469701340903831420234935824024905175, - 875615142492322680358457282959757539415656147279929670707959297448362324540, - 2531875903907314731070409126074381837519311237054850501685223269871983628565, - 2672147300369737509950383946064752099814716857222678888178233438056099736727, - 2962771202700555703235902399460329895428299987695770127591978435511838111600, - 3229109229822013103050274057929724829014237369630772200476097356857734093942, - 2250554918483567429604919561558977125285526842489201840494998341168825267673, - 2793705494310526480239233428934475641435813542091073292381694887369871279919, - 1656713118779711244553065463729036163916320605097804459171533970380038897075, - 886492290345721437532011422603961944542837706582786887370632279245166618233, - 1367377859354333541354447704196826274360151157117558262060563051738196377402, - 1188504623500152324201960526724977241284016448226340302395821720436364489426, - 807854943593010869142066858421593959004435827970153626426452912143086361300, - 3500017114531146492696497599766693166416200594438158317617506647186663850751, - 3530464620049927299046312009098297609559866228957579780342355263505477175624, - 822561139464231521349523157789141232840158037074717141358974119231458315650, - 3087074144855237577633029689493800193934285802798230089509832229447743356880, - 315541335858046413794984848129208947387790442101552659771723676899082165378, - 2445932542062636594368430143120274868180773580880954952240478338934741426718, - 3617725292111359580607169479864228741005107534403183965572919080548698282087, - 3464251623134423241162623947703706712200431383602916190750321547584100708563, - 1527640583408586094989756445886355511416052487144469141266737674524422481532, - 461828297422470533508875213004476311295539176138857727105016913916259711768, - 2085121452202452539790974378150421625098051301789815177217711239601904634184, - 2378020496680010987245421404981988059806479971652338478997644650306826580234, - 1136047246650769120415923373706032384183115264985707709314699644325731193391, - 231010202702853859109104016474419986209039972298236694758326085815768530920, - 882537367671996391506707821730010491500807865388204172263010289778089117827, - 2139727862971999167830636948895550347965912488943502872589135750611121770185, - 3124116267396097260599734771831091478433568020641476820981119105165027949766, - 2640384779739586724998828109631238584637414781555444871880788198580126048224, - 2179084900609767280526640663460518140594545583147266604039131376170526866893, - 1403197673234752833648926575384585960957958668844551808674151774599378375897, - 1031114182116295901493289954330033244373023488565828292467411049577762695799, - 1115214429995841024624021598768389172056365957840873903115161567587317935727, - 50780786031480959585217312990383185749191035970916938425693718821240197323, - 2953199238676428053891391485168521715953626127276685517387917680234113898440, - 613320407673747600347955292759584283841441051181579809119850122967160520684, - 1321169910290529179697914368866654874739694985839088465466821144941742255120, - 2236096579860672254748720579254076347690568662325186460983272659163638333300, - 101944269337106642419120194352917002857388120856412179311619228582462893373, - 242269019568367280995791662601930980790400909342390385873337615809214119658, - 581308931129551104196989200532582295554358606780892198277803168521360361487, - 1077257893117634415574759251652424300998499350408993216844412045127139877370, - 636756659785510421333017080501180227063005553791690309941584290265286937935, - 1782304250066487741430333731698634719256517643637302451760635809688936266257, - 2742651612103736258341417729537631897542093136382519760985404838981036287647, - 3458241115538719194599112388660823820438391086090365840132123434754256029571, - 545197563298764457141268927983294832908519891187114813350922140214244156249, - 164612847557993611929293986361124121794877712522527151108550814901554167639, - 80773937600924086333051291094307972324777976036726003177111375547372551633, - 47746428608120739003605180505081237583912534196552862646513940009789405346, - 152376451464186164357695627937906280967666130583040007548565820511548790588, - 2653775720728649822133650450616960578424495196876562007045306467825811108998, - 154734234232965298521835958727543006982267795949628615592119138226649820267, - 2561984113586956550352533579856887800600393864605381829360681963437262965241, - 1102483782255053166587835643926787692076343188274618769380612516608136448028, - 3196014386669841661669453388666491847881661405818117399213152875589274945412, - 1588529672341049774682719042467102448987108904301428178961311159175987487389, - 683386397753749661788800333274925718748905511853156081994006176672886995263, - 3002678417463615849264322606972421968569730920039291900546707887522364222776, - 48919524436562190028140035911590886515984527035053072226036461832106534874, - 3256406038022885444964669879736292830652929100649755669588010721114629698269, - 1836164388715795169779033713623846150464282965250135199411793361864963242044, - 357924121265152026326762576222965667068008736313964740044973401660315437990, - 1947530766974849665185712725893506855908410771016127355313101728771506319294, - 1123636673850296741808787653065875762505313881779513735319538357072059649262, - 3594396813994374989075738662740139052747006534705533963005742981091063678316, - 262833848576365474048963861655732483143805086759927007494847530433992728170, - 2525098986371802718062444273269658397687761209862853305668821930156589747763, - 2648851971556407268158720272208799555696071918411960630658772141756647470702, - 2100715748494862746819614427284717757671032062065143829846978682953274263862, - 2678493305112811208449429197453282948254201968744433869201219705682808703899, - 3001631168883389093205744077121773208867495805595165376180278456211441810184, - 2324242827323406479748995512063753274148793138587004684164085588417341509915, - 1447676751552581968352111265960695373649675196657380608952218480704841146819, - 2178886336940609347303889904972839947046009549450321568097607011510712576668, - 2234067831497937710941817116533343585893374151153025757541401495722178211489, - 918221792333127379183843712796031695432894838807885567908582069384023576487, - 140270815896309935020944850747940708677572655589967112506838310548714718939, - 2806797282996898755342966790542066112510357362659707932787988296264906010535, - 1358375331019612182750542255536316280261876788381430058885632704295537469567, - 1465712594359052727506132584734827107839500839740856874346817351384763116658, - 804393091662873225670703920869287571870590456942136605267038116014297825400, - 1662022290065488508550436593351221727641467406401235686054897646348570024633, - 1381894516573892069285096455642992759315065740643506718117627097974442041027, - 2741302113247263858636115172188320719169913667564061242305687276471791559550, - 1144939958714813237586805856274334706130349798462862848079341429660760871699, - 2067139946891237797209344517323490639392711955265534508500884672176008685015, - 307420211528759774429880373497457973180822178394753353611506939957421014891, - 2727929680807976904656108441783507559535104636010644047270048324440989396490, - 1756598284694415638071487709456172519834776433594461484795316246221868396696, - 1769916796563616575007407741935603198625541525933937096592753201491843595872, - 1571998726982824575544537434870288309596408876051985252364787741187832414012, - 1389558229730844955689307769808670327149031562203675737026324745675708989610, - 948087640971613048828021593943917548909449788294087593749555835766117544905, - 1631859661329868053334272264597967122910342845253985727140564546477821645712, - 701237868128463201185314325651909343591236936177537576029978874378851171212, - 2120840038324686973997782655694643852169610389604755704995021790200760135950, - 780526219815191278580026415720505815103737369600870849256166967706319189755, - 1778064243733844391424608134323765255641254228098139795349757407847292798773, - 1784180863289380024820884994058437942740823129838946455670224321601770147602, - 2978934091907874888367278339333780396850852892600401485026076897170461243710, - 48262780358557252293175936449118085322942815524354237839997486279622624164, - 1124294080344185063684336585477010620330484046265659492435527420177653457686, - 520331025447559557154182181908235392625106671591546756014944246524736836636, - 688156699203391958432900851827650087806799977770677962658358699821580640596, - 840567957635654092070516455074281231439745730239598469415101421865619789173, - 2832015331455065123333398324340822922190108739915143460919659230524234078335, - 826436606623713497883320293489419467168311962873185252850858105123097896536, - 805685400632413357965757429143291791690403433412372137936520102113863801210, - 424027858543446814101585605690606648035222881601047496930864206897840194031, - 2152149031132795148493642030800746506307052054141596107183925485724105785946, - 3461500347791799900919391300761019953044183698735303809843060116621324152769, - 931440117998439434700788473811388456990892587933519418854800291164365685441, - 3577327278059728717360276541380259470488734382512522841252030322613072399478, - 2780797077016848210429513778813120316334437025362968067746114157624030752655, - 2956712611342719319932107565991121685233091466189363557057688162206780966454, - 2204969127722700121313626030250502630198775138262071470763623888519596448443, - 2370809556076311507591074961001732323131649704079015600677082198959774126503, - 2008192185569340415118180586376392634404314682678450270778422562978621384032, - 1126427564679229113132734816287849194847096541477318427616033389189036753633, - 2682435341959735706632977415560041740453091023004368591221814358308588695059, - 3080582156863580945788078225325516185726619659278163704178463946150047375399, - 3362478257277704449834711148720867819479104539459472339013094129591010229936, - 1912624143965032793300369372847646346753867714083649895258005526023094363498, - 1097536063799575781881494747309887422983667510377066328603324307205643176407, - 823470899908696214910483264727384453403728948544678957583102933009985286449, - 3401507251079791503997115209038170664018965661819428525271315943189277020591, - 2321476154905675435335469889143995786686673559002994737558474898570458035288, - 2476164294215428860198935220776460415299410996469465025619544327536247676775, - 2889006939357850739569630286376393390187807424637404657918889089420753586078, - 1548370397392878456812252708315008453454420233580826493753247412956426128933, - 1242519865848635983196056687589083399756647227263943909323394230758328625613, - 1308531695293773768331887177612084441330926982637778035147839649737448438530, - 595057818360555994493802658203209284025711707579401242577281663291337213555, - 3477218626515298856332639230622521298249676860148105592807306688679143940620, - 756457905069894146392028720718964803403476880813417563347350542897085502942, - 92715595982005253164894866075054944731178655512334191836614802690530203297, - 3093830016820757542377726612287556953368871478981039695499325360817990771214, - 2701910353920756930182170760936032480207242372165200186120149628439847831074, - 2318782132784713472824964695756598062763270928886365368846447400386154741525, - 330097604209073765914394138722404126689149004335249327934169769655604409953, - 969946812618629783071696238356673123224113110145812489345149134570617493302, - 2907907264668575270660534757373337815361698700386168564992528573131793389460, - 2911131517779489429507604400694025480838527939286034904072929457970431097133, - 358132840025826923555803886693541437320753360712160218768824920757071917417, - 858663374635700781770504604836248356396208276256789188289786888527724655624, - 2199297879977222304601423019671004822458525991606660722509541892048575033843, - 3136631345480349701314498279358706574695948897818261699430376081131948510824, - 3480326506526158260077487696040350943799691056953038916304925833798225565539, - 1647554536321279847947190462009898915960741253196980999129816155634219399382, - 33838048675682845360369147990842320388133226725834829652260604138885511905280, - 61233825820586960745294803953852818660002315554434681293120199779693543555072, - 28819940002741502193476169419002567039693771744067573579449401568957367844864, - 80334937416197318986141012895190850104615851090450353689348348080612117053440, - 50776663726994031486074073604860097130829416064433693601453197531283640549376, - 66804643741021140784247841965831856220514900209404592576696934854484346011648, - 28990216158062484468568057560523359698235479204062426835973190366731146625024, - 904535691816312598455373741803380142176926790077828477872769401483708512529, - 1335831800872017820784915409781985602132412411337145888929198640384375428719, - 476549055490480680466068931306534360876571015350891464543514317847846694199, - 54405268569973518217619946306987681174926392554757702381566814925506523286, - 1056986537013328329681132492959010692930982761526794828025595924132894079852, - 3603611086035460641978376957640001376908837655399388810053386805079234195663, - 1405282392436199965025810386194039295830272912086180912974509381008018923980, - 1843248558264485048698564311514031849235812305431151804018468771642601775083, - 2694056386875780343176089284128399270791852766403609506993516323028368979155, - 1900627617374749500810144478016915940662633499485022067135739129553340980824, - 3149778270588408477154042379324252680277784103180649160987503457468040564555, - 1738535262972492359267869878898366179806853831018728569108124395778807388616, - 841779056093625457168581633403059096263111335546887887339154646331872619597, - 312622465460065409112453735074540014568623946627856007772144513957164841741, - 2053983738177825717023224052544293048926759842516304000976025655621319052835, - 1446174358594057658024402003740236537423263134131479591001554582225534936969, - 206767050398819590865573933224538252272090055221483092345159236255836074549, - 3202529844546733368616555737130117853220208751518368376595503673633587992345, - 3258293595154503702772823195085875638526659782306818636414055997377513623843, - 3285059450287569453735804999646691721357939589213174514711268108402852515020, - 1894560051670429228986755830550676633208783850738132126859196157031527929841, - 2021054969185862312769211215986019938360089621046232036005950854295109164808, - 1504391100943426170151587529030877453828710488961303810839100041499553994562, - 493154860649035921074911688964217174986845890154580101507566332909406366189, - 1084559767842711658637670387988763004761967473031179479375277400298921510959, - 2464394063668846014943520830415570105051634180295799013221548721535824134176, - 477939712280075106931391187255812683606664691478237114446709869335959571040, - 3327057078560308040146985239150025041742428165678708272794740488791550562583, - 1786787329586402422556475824400541534152729163927351937890189079428868641726, - 3563094182677914195699364232043545525662590149915790515002561034811154081399, - 3211547051901369957020123947552706459565654592447995868367140047555303010139, - 1357370798398993956253926390289004909220269169202194239788702199745449718019, - 1894540864975518827965382541396544839059218678745822357814695844190916962493, - 3151276694371467594003842433644580866128844490977572929851191514490105756626, - 1801554093996699168265288629256535195790872956717412028240877306011508105062, - 2789406417183310762708700553125860036262823670027495053898461708088704587983, - 1267182925998277512766292054036545867763917324264751863032784921716311132401, - 67825830138012047671275945682026375204934514777726590672552476853528661279, - 40563763010091068255531133778634157504659080580856717983594500489084341292, - 3484532553611563472345570494629615859267843567271297058295062938643449513727, - 1362556539031316842981828527727104695716970042398559511360010670723382607470, - 3339370454068581545302112647339229865554164642063375965027186031436528340705, - 1083873784271977990260858695102844391849364903290542064049592188374167327952, - 1389886340583614945397945181868749175525649759142173838725524012007930328049, - 2779039954984693039614213732983524221548661566426957220308156855285970041152, - 2615720890799765497185636470580929509338617148225884004161451582335961637407, - 1286027833445993400796556597917545724482496114672231786175031013816681242500, - 13284724375107692207277927753512328181659991785529369467837660726700818820, - 1029930772741369357258147304903488159288618667661271548212919109701505657170, - 1620160803552609054595924914223128745119435233869402130349914423988789961336, - 3212123579990287633959090220143158644050612673554632900509540269427971790054, - 2766016988042823859052302655697089704134661116433613842045689084955275511570, - 2282262457415722050040986728295429461747243470640709563116740634322459440496, - 2487213028621769438053346157168724058046825161102488003489544399973389413590, - 2001870532431647985206957011652312954479697730683049492306386502942285127248, - 1742437806487018452426425321372372009896726992194427141808437023845567669069, - 2480029152074651456733187163571619505193787422365341254849805107424358923590, - 1257811644455240100623886062452056382061030525515497844499537408519901360839, - 3587660042432691383556822678509367253676301967102955966278764436257580378091, - 1036097199191453306438477076820796104136587426912040093325405575095150526720, - 1922129753175897456162426791013373504500081362932830230426994440682956720243, - 986174543655472670397311518917567728685407770211106079902654438195965004558, - 2726764680405384018253398441808554239902159600596421714270824585816884226675, - 459607181319645804948665331438728552787280770553034255008831187621543022375, - 5122894908359966063365751743241561245605455810076508980447074811081, - 83718749466962388620911615421148385298650014273112149469944142395096897198986, - 43711605704822398324241292148449209614402636105982424406443823254517295079588, - 65500429363734838827157394117012489860186086168422119287569807678264450414218, - 33537051029132212527094391704322616216212784863734218771553272009255589966823, - 112675869663977562049684123786204722284980489543422233833560800265679453780591, - 19106865631520460071229802252978009784582162662152718781881240968429180429970, - 33831626081108025405067279443211659438246666358324228021544366300727074493006, - 23723224571929310735813411906537454118952746963183976722269309406316137248548, - 106470200134999127433670842910184766606739713772093434507902029486334029833878, - 14545826288328346327953146493603897272528887949671468600883506225946551838876, - 53002610724952530313262994986622261394657249910689791526629463550407527676660, - 48384023345459032411282022257215617161214633896796740585781143199455905581712, - 35673629172361436349247031907115104555634548306062162653876938015825379972948, - 51088912636636397565993393840403918769892580606452224352254172689704533927149, - 95680208397649814826778374465369434470136582992927992299429079164898776944205, - 36858470188984309647705060111549224959739505071502776214320283058449701572372, - 40830941715535670092733035876626691569910407068707341797890725745943223109978, - 11232834818206279374577291173061663555236957387943784868731786124835850959544, - 88272970895927443614280188735300548788191382678030807157818510431133135666336, - 36736603234748438347480202075174247342675537696720368250297333844948261900824, - 75616778840879027174451981039486953840519716840250161647827727285117310936807, - 58031978260407270142230446396235762254529832577126248315964063019978997539314, - 60557900304514990719057254891179518044689179467556838799930436479867209905243, - 78631734937232927166027959597071502656760473528802871267742619872161859409204, - 23285337143129722152072598240933982098993035529789768740813863854530756331637, - 68200638364156541796644976607479443711071780661233297145797255339769642277530, - 14307015834338446644259588385916232386681250759634915141053997056327374548973, - 112719093765128945850437472969864814218711249974781318227452309308038502144370, - 24643628569962052617539958716950596732612952910988347189532899559436622286567, - 27606017883093531545731974566710596383790207294254519715401465877979385292859, - 94751873871174573795876561420309055968321646850374828404681608610085650725371, - 80908248952234935298643164912785220466334954603037034673461821250520759984350, - 27652952113126783942387844436282820153206618568253353333643746642252812450792, - 27943567263356048480887597870648279456768260888326451604891014595921415839767, - 33684066256731503613161616246244683940130357348486207340361264868247566992628, - 78468371288213674859446236515672688741463822953694453091298105537484566046664, - 64114248988195124801942626614523395276613396420945133508411020972430676309311, - 110227974979953002518127061226863241272696148968557389403526057193228839855565, - 91711550354482965795314108343944793685427394272962475998560699912773788097232, - 38936477686205790176194093691408215722623544322446430426551302252301218678893, - 5945370887744678956062776804595660457048733638966958580225149533330171036189, - 104489668759339440608638534195644107637528629062045167684643002321400515511702, - 27785915197642349144353067128356622170191836754140686023805641478129604107696, - 105705723774489535413388557501104011432650936812063078372753606113474223043672, - 65838548966405103034336953845062472074701760207825385990690915500025153263588, - 82475318371639166174398190818611121152695163296707070374415903524047680391539, - 47128383456361497970610568260424702841772577391578739416360536899494886002806, - 4529681166212240359323236008953476124662488412181034535072831604694714601174, - 744980919727796616079546926248375347022766328755313479155547101585922063154, - 4198780618612501878719986408788629051760360219465199976154609259083268846721, - 71216608987664173085813616361210502538017162449802886776073006379364194016878, - 84615003215733932053916728412529520363110902180545043978686686492736840650205, - 33843343793197617505447576767028770290632809183688593336492847611148934068899, - 69523355675795506066195831463501277218517053538178374118007715608711960525066, - 70120549592585058929526162507092489656021799999938874772315008536871107394570, - 33947188661904171072709483794382097880989335982627767088011488698402839670711, - 26602964741052060438595533248405705993970545077606550827816165516060869653799, - 88828255283001875391087831546685812974115887858425595959051092877883146913291, - 71890783684334222172710977479990620202453473677471549651135237657843168433292, - 42825086741826667034750533239354998130344619959120556617244628889219739672251, - 66620768634717683446438775615818150050641030544391099193640110107270895454458, - 84996429229274412460027540575465661856667554578449483868216320175839806195012, - 53693039866835650921391975343695369753148993666420211489575548457871160270516, - 17771831976972655551871336978925064161516676839461699562486468908495921284485, - 18598158870303205016599028244184643704663282771387848273727715699545805357533, - 22603100858811009017407062648760290651275831692075970365836296365751778836743, - 29041569994034576141924479338282412397023286704282632940033653588077763332494, - 27947383386651487205732730993980520873202503283402661209481610067116813654177, - 33943903214336270789250426047094010253280994870680798836263831543772386246519, - 39079831878151192754459594274380646495990099321610798612726219045094445806165, - 72880935233777993086753102413958527232347045824026823128098391517127299491786, - 105353200216332217751925392387707370441281489716372886111825059236469991982889, - 36971021860660551869895771272555791166645906669401869570081381919597683241612, - 35505081497938917724987499104474188641484133761483010556860613659536121392675, - 20802356340404360106876947201820277354367072984867808044904771426359676806867, - 716455942994242721466281753274692511151551884634528527251984483345858431978, - 44632355576691192172532478481808022957105840786505689092245286360536167862836, - 83776751524024614822539636578374999281114485928264503936490383713799448289897, - 32717774063052543329479846720482763958932143981318227319753254552343824838894, - 70512951009823879740332711005947246598396469789713979413548021236194040247845, - 68437099114543490227591381128072981566525408688162808082536274631277998166869, - 113509052059337784260125424997552337603248109670184509288591649173701187464353, - 9695612962063646261387126421026269613170360811660486047250348630043212608536, - 66514054106373819005200463012324936097175828474366340293794866273942491648287, - 72448942975306440065608409600193202802254245948075487380376748889017710538538, - 54485319747357578381976620682370562646291146906097780364027171961488617007582, - 80285319983166218001325805221698229145190321279538983258234772235838093032061, - 101203592895805960625180366363589038819263216819596938950396845347290164318056, - 115481350630409366120220452121520908863047909800664671801561593962401009331077, - 74438738833804372089676842471028790139658180985885115554842556654668052469383, - 38433369308175658950629098098641798723723273336843197329449635131176045924611, - 13529759111194759370093691938159083518181921332139108410431085159839832393870, - 35467026098268967052702463613555407439189798426065178763600221684296048373621, - 98528752210974460366146830585974554883204698887084464027639616967312681739247, - 90337387788097239360510222133066023718764166765637863849230632839120175298855, - 55439791072001510379101981094763023368089864386324728632572478417532207087220, - 101695869175450871442749413345459359669989074127078717160832983448640264206276, - 41978042015795360227569591786924992760146467725682030208371802862283796399057, - 50443401543122174088163388989962169352887262352362265992548036352189822240932, - 85490144258825235538717912742830630617753851714236232987112852036753946552584, - 46549608081954226070337000736633576324829636115622779142725596659788075154162, - 40212410027108081002148963864219063633213703344689647143748641477980737975066, - 31010266524091581391347900258750298269965975462810434632210118634741420035816, - 15570975741206013202703645472489813028234611105130464962077760152009058876232, - 9529896527850213794149811723566820750198005202139671842537171593567850617759, - 18946759728494821653697715776657346490328496472732993992754285333578947794536, - 74890877435746196118373136834314561954517187147789133354737992087121153124205, - 47881759218698537841953911213824888724891157122579275164567503560568158304167, - 78517067881815479360345869123677526747148663658781262598427308203436376861088, - 10141087486947210756937204786716762812278232805665687497435959757921350291325, - 66815115718016017409432833517224851283814862704808484745336603562995571084354, - 101432570211964534330515438975033574653700973111791924467224620583506410626291, - 93264420025797271932721798945123457876169615449505548439917065299804903793714, - 3709108657508524580516963046209208524883380466392737649823365877039465506667, - 55648290236406947524537146947465131201329205317823063795888113720627903501198, - 32760360351098980211452001826162388397765967152869503041418530570654466140719, - 105344161979320749940314286561612691390715348309361756623117528356563526685789, - 56911312277369349664808468685946335944868920859712047819145208192878954780728, - 13659425608505718503703269583400463017791679607413981031391316066102348221127, - 104483316977280435356440319408559879392032867569332920549044554014091951683676, - 52489163980213729615478573444472480025433353447272689825745216122864327189353, - 106613916633718244382524605373263906549194296544380547971860117033473388867514, - 50206425143956471327757572314197325435285172917111865592634856798946895425853, - 5850130021942245828090309861139022524376474313240207619232546494259819577034, - 85424744940116999111634385388386899553627117182435911524425188756627203031717, - 75169739890999371678924968048245925898479436416301436834596127406260645251533, - 69708466396593342910902678088616989190405778106966160600698203859540835865838, - 111788492647834739739306191904649971498572930193482137088010470726656748772563, - 48144433719264070519699847046590347927703082856091681467250593030684023677081, - 18550453799722885219238599120686787032996105073860408933631159819349246593538, - 101838942571427185130222850891529400626762461263489576940506617419418292954853, - 24530231394997732949908155650418251547160056233844996340620479432380196725639, - 97639523467915967504256308598234451280268002395351415371529414308425042097947, - 42047221623489365487971716772496658336169407072475831181669667670242875170930, - 97383763206491521779987607633615498300006773376772517118663248138642777166176, - 109534771444315142328573602230855319248749298834745690944355013248566266527992, - 83612355577269523099257266318843667189555876476647762967781509440483584201395, - 39999229784552194167662980536828179105342264641335367270069886610964140271986, - 54829232723420664062545955558903399490749051750165603166253185514200764475540, - 60824020928240671218908339932942492615097332113553200994868964876256818888040, - 99619363728425470103413527625506745828782803218975101467156479806365826064101, - 48416062327805944141859960121958528425490201704511568702557591124927802970624, - 93167341193231308852123581154103444249900647189226594277253127451096348364783, - 35953184085559623233575562911099117662979709098355782402117009127049335417365, - 91323591838543204011386233139477432779998591121533913929126149135110431644401, - 9121567185578066390894084778299093886721109104415789559770692926973623387861, - 110050184962029748724614114155590646297360986134507612998864903487979295813318, - 28009779013825302757940164086446577295912751579517499263287349588680273182622, - 40542864334231448402505396000703497635146524672261829869663983316436374404682, - 30364998160924260158230332091356595856011621361119586163347252431785537729969, - 42165311846331008082335672439965592296522039381104153423505701970824708238968, - 82949382124157260164221988634853072015870009303291077395047308700593940105746, - 23661978819064130033390493418630066505420956422873364375973771557094118908986, - 71439357325074695200577969890670085443155534688980716736156657507462000617874, - 65222403890941215470196284322642737895031492927489322557676579172454723167419, - 23884502676228836782994213160292595875441702183755228978516899252873753375293, - 39734889793047810692407388906487802189542193453784059461473107986407220636587, - 80537316903822935583701552055479621707315142291808595634286840610880861487789, - 40004355866152635278238516559579643159588366469491689793660350673850509056941, - 50408340914521576937831518392871761508257903377343918339690709824609005338624 + 20051924366182757261228191116724392202498113547380760641506867839604122189824, + 58547959890991206549288424944709450002109501778187333800880461385008481828864, + 59564925894131311282573490437320923945708545482801534488300453992685667090432, + 3580178241199932098549852185050086664528502769705547349056090490588295397873, + 2935797186135969177507466851007877016731113791113512712329761972667592161213, + 333143606317917778390080192386649882674497429851233376816795621091135958065, + 839297426430646653721137988175298090181746093243937367895757405422488511468, + 2965519866403715012719006155349235579228715393828752763038566122012972905446, + 44725833332108460404957034560214875574392107688183777332249061501102354969, + 3080200517379189059023913490760358239029937105387749266410179543305582822458, + 1084329422717417848640361359867660523451536003004782758462794104218106406158, + 2657404736338981878510636430946293563168140338713640203697158146123216592474, + 3425915592039337839038582821195385184621457500504160041429118139963230931156, + 3175898384564729249295550809331451492862173581905309326821653174345620043228, + 2523211397315268157357227030825636448230383108443804527789886698509719373117, + 718607011731502561117821672091814280292180809880627037185151459205362590778, + 2821015490184084318527070455424574644482729979633338557375733515266445278088, + 2668454184514301798032637816901294584388450306129806700006276674540646319039, + 2679399997863520171061066683326577540831958862159499632006667408681125706594, + 1715894452737826020952181370969023355587063022899010593458592245105737454454, + 3142838288048455484778367205796137687256655526955553417146568972548973947843, + 3375650347512983690322944909474303004945367155166842821062897008874978057789, + 2670287052349248461205349032107130312961872400065784075132393112701042429612, + 2933242444617001912193186972252124636995214010242088743126457266327004542992, + 1745406853662330219947374488032901113416746937129284282895525113602901872141, + 3147471557640229973586610773481846128091135427771338593893314251011864704070, + 552570966204231286935230299373532637260835291644764920079432283425085529899, + 508628109195953079763589158630970924635934148721099376688435768065908765670, + 3153958434568764525713877432921085590313338970973297002057850979007782995139, + 2990942978413288820488042924545680561998509003486592104804924825927655013754, + 593958228099838776798030511636576363759735539491153577646571859529363978788, + 3476751074123201164249060549162782231850827786458132305950293710186207613227, + 3203460157790089767399066347373949980798413254614886344840961614454083996206, + 1801062528644024597639539897366957588479965995645160385193533534247656764880, + 3585273793115512097883333331976962127309004663356749232305822493874597296727, + 1707363811815882739038222258249653420399300550578393706590955724794545688178, + 583525156342029371926819437153837678409746135714543917715887404469649461379, + 3372523132970077469105522452082367434266056432995314432672525056223497104410, + 3547045930157694211438151232024329165180082036454885447071648642084369123592, + 1451549608329388369615580099854302792206570602003207959660091538818967109438, + 1802349734654177091560463828804220583619637210592458698510599831367585894271, + 2549912649775467179658725163503478240741432644321920738190611359381984417150, + 1325867245510984679510033587315495278154436051223490070744999624618479752201, + 1067467716015303559373566586467810769062467588625952876341630922266208528094, + 2283184714379293209563104129653260785444789647845820521589649072819814788532, + 2441675900820030276194076819528633689828957834368573885504424490661019550296, + 1669679658184330764173783746085417559659581800974487239579683279204619720071, + 1998181257791666669202020311809834644625507749737979135760252163141582756562, + 224585733485936621090806411657780731194180052708654617330871003292573179047, + 1596127646790656828862476649873542835986790848767293266450616008267791831622, + 2563627340404009169015250607229623525195340859381706151040380371655766242292, + 3212855198024020537228646575810413962681482693517392462100839254348214243833, + 3192425802363632962898030117215839941351037183263285891798277100488242655690, + 949452161940451007345866322091684201216355586566217390498896505959006857167, + 117883233481764876719854607568297681265424867841417375026381409167177986428, + 1087839048913137330179557370969901205572760339088868380422780644519485923409, + 1714948761204585444593312745169018060262769339317948363994509879019931384439, + 2682136934483884557596554683330838931463996249972394519318214109380164874256, + 2821736573611232088233135756741679361115596466832685699372255641349252487760, + 1740139780961354332161495220790564022577817448667076928388036000952548851306, + 694050761446211338851497712796917775450627225663664986426282362184018236361, + 3341125707469048893408511693158697183194517214318139203485361340093658754699, + 3532856943654709947252457044237500246279653032391738369480838635928422818304, + 1289748247629737380415418117426594696510643538612663287210455859719913692060, + 1770701667013929865587691390068901154980442141028764399651123637121646493810, + 1665717641966163971717583229114044101194461371318104296355722264388781402371, + 3228592368341406333454491834620256867264650006005459778432557988699478094906, + 2032808539977986636237630637068841475343262075418072840349364396319593517921, + 157534854523076333150647695946710629697373353662409040461239541057515765612, + 1600674773570639806610983423046179452503716889930043505134620222224641912091, + 1877168181821789808068432744585446524707429703767721394683098046935774403067, + 3135534193537120610825656533652791337309343639390708709501501158787359255270, + 2552938911941273341694862643418193131413058360984664678050714891281303892617, + 1201130760239566076637458836272576284245870940633813646448640410430859772683, + 1315307167110793532481095178153418812105762310686191524997260663530456560412, + 3002750076543726130419795179911988585386834997662063873143832717730236616881, + 3274629175330426231499913926476474751334570242491566470792611289158161391019, + 2737027230608854004133919048672606412138794646380979480189728428834267174547, + 1740997984304307222842935353502667566867232357373539239828012596539697296025, + 3515277410543336564105758704358714739923579115401860842950749788268920529333, + 2825458635340611316654073647216864582566845380705549924831612672129842343315, + 997927843678935306741906847616263944082087176352876555570290895781823928712, + 1657701862321592768598390755826653694789824305538396050059172928981614846280, + 766216500731173780613966482322601420235751022784957063561207493682985202343, + 1790239317970754168501696092750023991157813935515909801752320519584872017643, + 1096451406089778300251586111198848915449117638812071557961902779057122438848, + 200162065711688115743573130390097865649708078455106615474513273839256024060, + 3532280946705552970959137958954702682217042237245846804073049744948595016919, + 910326160364417330905467994006169685102904093150279413829533216516380509275, + 3508819015910057808449764825157636565019238819527722778106020238725570972893, + 3477951114985457023666762337383997740983608051003552838985905001929541556376, + 3261471123691008507426046532034343308139020087683858212430331778583643961616, + 333602859854896759395509653494323125972944359568166109528122909028387175421, + 997328574991408306807443779977202737206296661418321518104534149459186354158, + 3077882522293853622480143842548105286426077173098383124240737781279790120629, + 3100727901790292206298558460734024134185859759637912948949042785838837262324, + 112052201072328630201990361068444155997157247829188102388457206347974692325, + 2023980136523972328542918124979299492998791673567505413952429943924426411479, + 2967179321836843240810932204089087311352707563966463048542589740824127386286, + 2536862275884259310264428812544625449740603881649522248210067196382497416592, + 1197794243694633996930294201293193843136853929479343017748729516544847833080, + 2528326809793434781157326801520373127303513510513112377326115252897729122657, + 241208639033535972978245843757643134621740400837576230239228184847731684098, + 237890176837414235662871309946165796123622964710357962165080183017858101071, + 1536808392488492901201857997241981194629283545415891232158677886391968970072, + 1188863071037629725647252487742757476364916643763900943121280386765348660294, + 3390205007383253631364615929512506042148308086830617968983778920836571999280, + 918369508639508343583609673435455934852332669653529707310212130589586368608, + 2213273293651550038833982458143099288860015028349187904349478844242935047653, + 542163609178254609003592496126518378055419806683405635495997158596750587108, + 823064072960721350645037544781582253279910947355687891231096192351981278475, + 2392976977984704141231679528772020310620721521982705111198938544090695961702, + 933075149784272868914967406648935896569914893770220889255650244018120547409, + 1200105554909293748580721375618572372997480301365035393877907516863606323278, + 3363453597853889739688929634398525951942842229190036257765386119664690772462, + 1841484623730454302563378439049599822469635069717571808343393920872356615000, + 2201380068663550352883349010778340772870014701087938525843533256816511428316, + 1036971591884613949228389333564951023521323402515407299758829559462215752753, + 2955823694561575749297690872815647266314467237182049242111639992925125700867, + 1533678994332905249816288335355243064783980210807259291122981734692906563559, + 845985764321399244289772844742253612803502002328705540075344703920743263769, + 1693254852182429978293863162557703788429663550904390789176977433142252895301, + 3156989727696895737220343863839424434665963781482332444373318253292372492504, + 1508634177433549688098822794153818168699273880310336230873013186276291988162, + 1543297446066998216040684317571290940069104023765110547505354445479994714347, + 2669299424244298085363515103612339558256108155323156240797723897202549169434, + 550029241648255850711075117660444221476830939773548786132458229817617665480, + 3022046644006799905105780692099996627957973770320302090592594897214697868907, + 312899119939642465615190984456055580495471631502439117107497431177999620569, + 2885585200539020284020973741452907376577884990812025214988576506739965952935, + 3198540540562635980031463365155796135271840723234211490137619079546623236217, + 2049473232277575898025591010507739895783414345977666335873720005411631296533, + 3073659952991501010176475167141761914262176045683037187432346076188334405109, + 1151316644902114263425769689871293017353463642591704342479242287183087017333, + 1713319922853383101405743688296577572111304729375724961250219963251523887722, + 444667986180575335362400784075454866346266797041541776397869451075740980414, + 1679058676646178564648522342783220136838413933697541229302276801599992832670, + 198879704261102161956384303641474825449033723305076305936988640526131832642, + 74833313090103861246938553989570200411107136917293932293265653986658556490, + 3246246114472154629913928837495511767612405739713109776173445936224683412223, + 78534767957816983285810641318671123481680836680901824077711862976668079549, + 1004512430976667061687547491184318580692559842520799675155838844378387644944, + 2910926648250095422010378614866727254542827003953754961765493099738859400181, + 3301410606968886472835114440156367318356162810801279630915419247195117014246, + 1551163466233590165236594915994030435189588165969263621257956719645545479951, + 2300943388077773254023297631682259568500542735214358503283370600756583287909, + 2396509615445117236834858298647046243169811679211831208389779725860132398113, + 3505166383376579004083868708301401316764334403462527577394140229128860691457, + 1613855824387311755243837349674588523758205622049916103975379760570632617120, + 1369098662878381062513866347435299705296910172186433130475875067268187790295, + 1044392780461674880509768813466107596097379400299227125107917852750433682528, + 135772882875931732404905544144756374335158084445779680486599079360933317593, + 1027685774422293812034652301930693771695996660521332913784147072384518510284, + 66142128797792584077972609499042416878683935876748472421478724509656463888, + 2721776224862575537039487717966085421426316038518320024931415934646303540518, + 1568985087429408676656079337229632726109881585695193159904091056716579361662, + 1765642335312595699124263444068205813826611848509787815953569452936062584146, + 2766303162359009372483789449784928102143818840615616469083498193847607804066, + 2552222671318478810712038966953862800744734730198831273905139296110040584893, + 236079816122978962158825865520030874061318903549620068332228640921541460941, + 3448161831966643374096155429111657197460738215541052662152726752093704557407, + 740965610354024311658468735604639740223430614384319825782351028973339865468, + 1151153598907278788725731280017443950060086326738355207451987002045927673773, + 3290896972389131023762828625214810528351789060154994823943430297593454735071, + 319305210206850346231146079938402700357543963127369186189703253232056513229, + 2430615310723943290015972748316317542219271669637924520482317784555061815495, + 1462233708208066177892662375772653603398171911331085634046711804102901320395, + 3449166049285055861715766614131640714633973848224423431848173764365019825037, + 491837297508452599640919055693434966556091827680786583607195442669706760569, + 1896970410689862940116761052504744002009662202684248743794587257740654296543, + 1547593543655969485430320776660501379358590080341680117091275315149682105621, + 1254400911628444102749387241965027616403939696739239031022235429614607051484, + 2269059336725409745494845752695673735424978087361064366541010458207856193870, + 2366810492422533960729815484812502016470563456940337371413275555179947348455, + 177587817212218063130137913622216530664248137208492127692162812645407186188, + 2585067925659923983972918359316499633776055781456161441408678687606576714216, + 382377098740087192336969311731695871688065051778053767949789672414606529796, + 271773468985483254096700038993481230328893467376775003459490166093223390818, + 1397074165340959945576653552523643197304639663070737809338395689302281788939, + 2509131777467819563013706374487577174564918879390338213902625802126272970812, + 1261394932606296934253797978208345966334001938088817352166574197158582534122, + 1225730492121185705143067023705212595182093941078199962618099987194945087044, + 2005991653422723800674795914019101181794660454249186013086386896921414009652, + 1926649520341487681005804867422359167798300366331644919070229009030270557380, + 3502886594245420656072628488533111092289955671853608320718063093493164349350, + 2565231484460992274781978426489942176805434058242240237737428718491716410773, + 3198977672721468660852390416393710568371885341547662344913659661564542572478, + 3537898969356580950791589949675943552655166330421551069500806590065573194947, + 1574379927652649846988118150472737594880728851320051826488894965095495500832, + 2534962405123539939578227823509654207210024292716318481876923478602467607008, + 1080592921533556375164180242995649341175311740798098429591015990165078147961, + 402274529565145444322751466203844672226207342819736873247351194933077885883, + 1264898363718175737978380139066418212534327121862556090226197348227491161910, + 2415847192886857340280287061176100113094636916290890629280836846958730651751, + 851422384607752430683723576032961213924270801281177950145871920855905065316, + 681670120041026381601096410898491500343181853741925134205251315927817972235, + 3212850636049050070804690171192914693704600030894691440623700772437835249682, + 82650880322777074401108222084971917369949717092867831041438828286618909016064, + 71533910696506404505048382604556511206388130076391462222258449325993794469888, + 95109433147376181815975010982959314742805583834073813783736575482229369602048, + 11535282994689630272960153975541722018562448826171132951365129829387411128320, + 103305838936027848580287464535005696694354760923507324025341811440248330125312, + 35140133362596824586307310051891018982899527470180771252640921641157270700032, + 14691139694788824933226700526257674679562589673404410479257064011656467578880, + 3252874971284501483908156056853798228137218461986691592182862151372266732762, + 3193238512864370065324325427695543601936297049881891882633286948397766796943, + 1609098112755177247812862497143320878491932284860652165028366252870507633761, + 1922853213805210638608393234625550205596054500557295850210261182000467013390, + 882649401269833327142715526031010908120061841698502433312375321765192089985, + 3581062605121142381048495941153606194743921256541403813980841192242419237479, + 3479505149278046820021023381930916966898950522117728568016509549815592526479, + 2973971217029275391226586825777532138436182883046103065013349662650331337985, + 3175796838484588652822400344097673947046673308156586748275348308516535687824, + 2339396217449241407000184624101084918234306799344726295975735060824877591061, + 1427306321944146814924160099412449471312603422179412200863728186053366920631, + 516836690599020479387901990735525343282017587519709952329668872437065420580, + 693769334385343127415343415856428513865044111696727486065723567178604921218, + 2693416700285651933574031960782920127980289602870234710529111261735151927351, + 563903617558882199673738973308051813569149119799730285102883282810726946076, + 1296173720972644310147763259527462832986238089844839733141298083324393957684, + 1739964228550375069486381063323328490940206589320630693251241271169571288842, + 584757986770578138746346803551808285900778990728307439634596108438804469391, + 2166115653442090021574724707233598905232647250596745997048287917733877925373, + 612778039220301029310795875105685071854734762444744138521809904055666880870, + 2795762388546471417090959721296934660129288938145549422105259302203114074579, + 1227011061529115816507038043830474657338577316295952877629035610956065909854, + 1564739862845020251609529437232873165754445286371096713568431119075865771637, + 2743785442755914289779156072919748760279646825578480265747127133194979523307, + 2217976975044959864780420588759367134066165974132410232098562792667895983339, + 1476868718350008758668637944679243615206789925750227801928231559696207081157, + 3525239662663198282652661364293556227167903292590701117018531593386384968107, + 1192631944922483504114761410856294451485005838768394387857350570070277818053, + 806920092314519433921476229930819255336085160834208424471644890198080103435, + 1432822913439631588470315556450620621696090667525629106217173545371489786655, + 1147948357229359799297611992634122969127495757062041616958796453005877355156, + 1848504347522011354700461358776610390712926717003788395925676777487480974480, + 1392507483368610361436391473371977214174722414092931863686973532860909917788, + 3606303271188734154101515702508791032291051398581068459648350938326613075211, + 3078312271831674346726234353677009180077703001205346646754095108127498207441, + 921396514404029642553860538346959219979243024710810162084041803156158515725, + 19870676476850298322887709040616121247624049175823267924586508882327998992, + 2739528102915248096711642215205056316857629380426764696374633951449208794901, + 2669863550439038713697597223331025219950314533108587522857675571755402851971, + 2327735310216167138228272646779960967626926475870671581735625400617337971392, + 3094450341942684608637015522248977049642491314569194946531439204456746499151, + 3568663974383995199332406086397946991830441502283632729470150882077326850497, + 3125820943483293537784939755763982135993906077298328381187465126789562519279, + 1009759239580559478613166494164627031475514838230278031734793465760768056922, + 1447956844232889858264946874786443582814409329206392073601679766192984093600, + 1108769724420426907277499835885487058548763542939592184359327413048058768719, + 1751956144493739241822884810295374937834942853959085741483387002823348091085, + 3274334066097308195178532657349829278028341967958065573675378426000163220213, + 404796272940305309341692872706240418815698548138599050214939848353115024615, + 2951246398443666407698629967229504227225278292756945831720889873314536404818, + 3568399456153969528128968999063328221287697591434673567255556450996418445473, + 3058870909788297133503711501862106484663886511332566247426824595059055301630, + 179635894713489030085048717436197936416166282950705046772634627985324019680, + 722341974693003004746354944991567363280020069534314562813659520274515438716, + 1733758325654174990748770844053602522539018792023423883530254620655254998221, + 604605316938005884306278776106204982021750603733667540618892226508223795499, + 2199443864380354577708566738553977417997684884350108646199298360568190938443, + 3130778174802501379453298901240885026874278176524930180250917645265967060525, + 831842441952661903975606228783841027747169854137308140236131974418414986527, + 517378688958664445087293821046538902463341493048899005257396571793126932596, + 932072949513683354305553981869969577282850715538998197013745116087937560455, + 3599715649477083278272405629589858499710289370410240347172159298401495627623, + 1576061144679930023932279075698871418776799008529691508492847929577513203127, + 3181213671517955694453438554782260712640951310460154930023667236936370411160, + 3001192578213332479989133668075525416038900005017605053499176829209, + 97788689540970662666837521565432496051246817103980904794525624399771131779797, + 23258681754399660052622038090778903755239044817045097285642324234895994715681, + 114883318891923124811085249405155791252159008298826304817298407499693841177422, + 70309957461210025531647267790839461478254702381774017479816669627556412350630, + 2399707371895922246313364984414343575981192652980080875047003950583716275121, + 115493349992250647308763399745157354078192405271666647853482725775044653664476, + 102232999085121001084505203179920440305490123395071718418996756108212593181551, + 83256141324143814050882812885408736017158661542531939649451398065686885061150, + 27637253058260953816126587615033676519443098054167228174738792460158203875161, + 72243593701397444051046216511710741007961892398193235464494181545481178188686, + 29287755744407383952128407635983189952805150201287322000573534152688299267180, + 62974117438605348371161614994318122706482653467527080927599617603039538185699, + 60283014534557977024828472889146849528798982150220620657596681863227975299713, + 4414916034268645237410096900791330630840539551391116313300929866384123555275, + 88628631583343149839806514709251273997578650671905884781122922878830000243461, + 100906611108875260406358612209375522700444118119960419215737100916225302109144, + 65172867939939261307909070360221062648577747930766525106375554029428429974010, + 71401068680239420907497341622870582894861268744404852176327679365572014576925, + 37609267468178306591601986677670019116079032264049744029661291457017362705319, + 103560293982234601888218181408833354223134098710692648884746054123423198843212, + 12830451774374837094594003395128723146949868061326134106032538607998055238522, + 84741453964107525133222756416814559111034936910126240170627971738458832648494, + 83643401837454159873927958283880493379993061503803983998874479498286955074812, + 11750380116441338002569324422141991650551189570490866476500609354969710140949, + 9081978224191061123512806982142573241786758415913219379829602720578578913455, + 86926496743001610421544197144268214356039652261457994731183427571703369948591, + 104639625106896184144383113692624548328888581237573891679425980390079233052803, + 68325233818532678007235063882497256829184974970358867976580904530460924883692, + 113753384004912033150674373779981967181410457909126045907952238654980947197649, + 42967952494077770145151269158439981916979403565149267764400870605620302018407, + 50655627169578117289947727869498412322190556947025876317102158306515880721622, + 93977236214378623170863207894648956145083972966142238472957365591121824311246, + 113495499191867914938846062219249384793459735804639893523273534610887521739683, + 64633443372734766169507593196875157171721031648820733283043224050953585599975, + 46851553745450920423625857296182539691705059901170126040139625817837881031092, + 32452835515298159692936504633271850881499006133217717420771630054032203705393, + 31892905259630691042654656807019619445557702743787830206898685041317423262547, + 25317167217535575443795930403917510574370691530291488160595733547693821636089, + 91215280139140677028909018136853406060322929664495001903187666417768931840494, + 77973880061744725679623230749983085777979816335188946105435255222858188853244, + 41610915350258204733832020810373914027307998812937163402237790619840011641108, + 8648385607651294290996516624116251140385592460677239697636268045602297663797, + 77110863082286768946619754917157238919800045383352328472603503857722210628058, + 7343696855169890062922344747617482839826533819511401623813394286852608096706, + 54364595109153246349104963222479994259950062408444301673941724812012827102433, + 12835844047271640316872978849606799634215440586014198877188168854622688258348, + 78576580374508738365288948636519482911588709579797938172795420554829629897728, + 81723127956836158598925381590524523974049375263674291106850493971807475875520, + 80139432109542605967982209416817165897124214645347256125885239459740374086182, + 1906481236813372884680897191639028314501581382549709533614833412938757591453, + 101934302717392820788755239941164576956774431438587199254636829826575462105007, + 54681488654270106237849383069765986910727231165407586650381369182026873314301, + 99747178028587624812291996101350233841998292294947949254925864668070759919926, + 112639393057558191748704074841671448208857614010642769296508916491961564433141, + 23618069658743680938052675083475732640903207013292816392353938541745367269625, + 23479118660072014012611187551207184769271046560920500206699242258501293590027, + 113387687631293332363351661715887847002712772864012166376276809514240307787811, + 98190252101962859911310901467377897109426952641950217217600911686374903508995, + 18110563161342060364737971999132379960669349981982095856191189767606371426086, + 71282292773649082956417419257179962489305908413703310565743094094310812712165, + 92237470163670123675337304872094955931087269180743071761295219799410463460950, + 81300890421399771716759381995654471204509248012894394474978250253212804784500, + 54983980855362666778148051201086244181120290561085049778945407658846479207431, + 37141951477564281025194442522815503566935359103351050391419479015282363742875, + 59526767232940285148499871426405714486631757432451516517001690250267763695763, + 83367537342917449549922882580074863598049334261331755633154059779815382566366, + 41075723997644351052227026141157212236817350026161446004376762773832064533987, + 66916889113139144685180608989266750363120700873897732977105073532421843596882, + 75974654635983055466658029544135603565975095634417424318020477941789549530339, + 76939242397111972889702441055097737614481887139872269059819610438859529550233, + 41271479120487048555592716221066943981672513301373865356079115641998177231177, + 5239415102084738631046664014414302771496227086603123645888240731336865181379, + 38021540141638309079467168056996874846943330840181708361163451649361122325820, + 12975331332627221807578488378815690067850992664547302371080417607379427673218, + 26813306847079622861536368508755473512851333652846776800710649087782336255176, + 31770273922520992825038646819252802571024089552587719033091097394742949398176, + 67807841241164256591004557088954404657095726886642283626087339326148238721062, + 44515240399159693189010695772288426300086154494840930977302155034690427450891, + 2311266606868444281026155406269096397976416611000613629484813224793192070325, + 4573887427783512796721832358491335594539907870341179007793003306962190767360, + 3193899118025555243373056403808976920198806530429130036471769386604314330935, + 46100516672904715818786076355404376842719334738847567875089767422813964581909, + 90158576940730531843600970916263066858604881453098956480626122583774127976165, + 102490170016197357020214386061485632895771749719233927354269841812301841701368, + 111602241617851349485803693694935489163640972606385209155253118382922470527877, + 7698598519004237839227654135783612022223698852340910758713772397181245587644, + 78043745582869569638979088615293034177276239971548129310053302311707010434006, + 950440449343910540087332449338154369041748058526828023001827278356799111298, + 36760148057307886058317807736556890078048869726203678688059899406705601572280, + 23387290669587461076080256961679015081619289746748737687172407717525614866590, + 4259682511656659772032000863120999834997457568772788279208766096150129362604, + 33054706115377100655357215413853292785134096054025850744028511661536453162660, + 14586796938418538044554384687039255205617045167357611334132701230241155638300, + 55112121720922491619127844854757607377178790623648611181777747053581711627708, + 19944431122665761293959425169303248428193069970370247414038740438331527910720, + 40003638683956431549013950360913843958473867978762739338122910538704637688830, + 112700717899974088074717151105138931435270483311853837766035219145131374731034, + 78522311430912305620005975212602410581096091841488532402227711397960589411087, + 43115520188606585345929741510677274820534960574736664147998330885916426730944, + 86474574142625330309632422840351560493864554927832058955639152398269628721386, + 54254521737266731459089720862198747100781828742033480769848427801765848698630, + 12040155302841561665902772407333676042750646099440808630010303728385351932783, + 26661898886195325614710515908003284763097904717129361585241714364047930376682, + 108110154650894503296906686284039475320289783412894846713421613634294840489981, + 28622779357155831286700503168459968470602994411058453545309238038867096627174, + 105842424055014304970559318788552481096513933374417554151202263784516882699703, + 19551446035643685986719842721935587248955481844881640720224957989100207398666, + 4569731649736951082667410405048115196903729290750830249789042914298016774323, + 5217446006227934206412005927052560631794888345670268710374741423780093270169, + 43468358768767881109664489800508315124513418758523768889781292263995459764631, + 110008680224288073044758910343421484325368873460843961546867120339378095719461, + 99879174293299218074658685852458622080637786434115210134316071404334432636940, + 56754911312468230324324969330549484087167716071577470686797599201135087773649, + 105324726590616057171062145863077077317555383698079814246926969602363411615173, + 23032355085982987219833569958094014861742029343991766950253469702421364092792, + 79666982400447775669571405982992515973767428703649412401875286018064459223163, + 13890100377768581468131091299229479028538840524764137686495300382909773136968, + 53656387986366236815490309378761837899781414752053106388217736506460033366534, + 99342164087257615541104061647593039694414549626352128717244596925261435989245, + 55336537403386517991161804623659751379565182245075447883441410964134319811954, + 91462065653847134054446002869040978291984829973434655470766105787329481558211, + 86657766447359145445968715751347780329193714514082750323757760942703642431230, + 45552240553231893068853765435140775251364088445058628845231195354910958376532, + 85320073513301503127866327426026987454844166087789772957958376789124549852270, + 101304763791769804656280124685085574691522990893413272794360713030363011820439, + 113170945525349880175101192412498273734421251750983490325553218747626086991867, + 94231373568842458339030518620429234609620248986944614651656065103870091443889, + 8359568379867986627017368250327230250037495444907555387026715479953354696479, + 2118859838982111666601643730924045225480810550878659883882863989193988343624, + 19074939309499955740162021226390060131414840617468598123787840972944491201319, + 8795037185091184427251978455447750888829013702104509661135268277108166073553, + 51112220548916460014893005890621193414858771976868909589320056063453052499330, + 21047935232147313295701525304869832831618007951026716987320476407938766678835, + 89157111863245155408105900039889338785417629527086722391311597094721500348845, + 10454701354914164591485675972160157115476238964108413326675978869981609564664, + 81265609660505976121593661125254265269070286961503847868178681073067894267604, + 15971265217341652634236512546193548253337989780731197648692435223895558380776, + 28247665909177130615436971271245906512764583733106117729934030219307432248057, + 85400528176288961876335247068275207677433106805244101050116343949593885549588, + 57519772106177721556824838053320680649478531646523721031541067527134600093988, + 99562005355767889079011532508939862749189745374224374701070279117780516804713, + 26731924424610429548948833227611326961604756695898310729281040996175735003611, + 48304303473428440623602596567386579152849538060622244200306191011392006439058, + 113749732029736821845723176957016305651580888336813472119939359291736359919539, + 36431459449446463751920798747858861057119298438211355805963373492502557045083, + 48145611645075594197016581522267906303657182949284752119503196601878643320344, + 48160119762007255264722889288569803463741752228460541513087817188174738506075, + 27271252432316272308404262777917031249984465724942331229042855060504090478232, + 35746151040192210479426747370387388650722752959724550806218743334913547939413, + 82819280744057889528555099266352319431756954613285801145098935222835652586837, + 17629373670065341983263899493048807532340385601123514456613995166361890143176, + 96388676847237541765320978855544491745631004003392497301313853169220207401086, + 85647464908003571541067186162552596335743595545679433606476110151205807781333, + 32992603419274721611808798573639512803194296300555425345478482295526989920612, + 45411414467735549344689077243462780917232570069746047511072559991081693697085, + 27206442761033217362547414141803256036288076556230958327312223588770580276080, + 60645012895970742760824589312185749198556312471766146440036233162877676010919, + 33948733575876878413899339848073883047313626656453500308157548656626647332127, + 106048713458770619490484676406903866387008207794995789291018272881434691584289, + 83114567552205228398425857901505842218300981261436030167112798338734022983680 ] } public fun task_meta_data_(): vector { vector[ - 287, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 33, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 145, + 578, + 770346231394331402493200980986217737662224545740427952627288191358999988146, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 2, + 73, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 314, + 3114724292040200590153042023978438629733352741898912919152162079752811928849, 1, 1, 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 24, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 349, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 26, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 28, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, 20, - 3485280386001712778192330279103973322645241679001461923469191557000342180556, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 44, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 2, + 19, + 16830627573509542901909952446321116535677491650708854009406762893086223513, + 2, + 2, 1, 0, - 31, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 32, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 386, - 3114724292040200590153042023978438629733352741898912919152162079752811928849, + 40, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 28, + 3132276987043003322156864789671024834394494565216642852233970862560717996714, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 324, + 3114724292040200590153042023978438629733352741898912919152162079752811928849, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 74, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 28, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 35, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 46, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 56, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 58, + 16830627573509542901909952446321116535677491650708854009406762893086223513, + 2, + 2, 1, 0, - 372, + 2, + 128, 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 145, - 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 67, + 16830627573509542901909952446321116535677491650708854009406762893086223513, 2, 2, 1, 0, 2, 31, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 33, 3174901404014912024702042974619036870715605532092680335571201877913899936957, 2, 2, 1, 0, 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 24, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 29, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 52, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 19, + 16830627573509542901909952446321116535677491650708854009406762893086223513, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 345, + 3114724292040200590153042023978438629733352741898912919152162079752811928849, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 36, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 32, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 92, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 27, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 329, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 68, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 583, + 770346231394331402493200980986217737662224545740427952627288191358999988146, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 2, + 32, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, 34, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 33, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 19, + 16830627573509542901909952446321116535677491650708854009406762893086223513, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 41, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 73, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 27, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 131, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 371, + 372, 3114724292040200590153042023978438629733352741898912919152162079752811928849, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 32, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 56, + 32, 3174901404014912024702042974619036870715605532092680335571201877913899936957, 2, 2, 1, 0, 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 40, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 32, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 19, - 16830627573509542901909952446321116535677491650708854009406762893086223513, + 22, + 3132276987043003322156864789671024834394494565216642852233970862560717996714, 2, 2, 1, 0, 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 42, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 26, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 50, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 34, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 339, + 3114724292040200590153042023978438629733352741898912919152162079752811928849, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 50, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 35, - 3485280386001712778192330279103973322645241679001461923469191557000342180556, - 1, + 19, + 16830627573509542901909952446321116535677491650708854009406762893086223513, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, 19, - 16830627573509542901909952446321116535677491650708854009406762893086223513, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, 2, 2, 1, 0, 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 68, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 43, + 16830627573509542901909952446321116535677491650708854009406762893086223513, + 2, + 2, 1, + 0, + 2, + 23, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 2, + 2, 1, 0, - 34, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 341, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 189, + 41, 3174901404014912024702042974619036870715605532092680335571201877913899936957, 2, 2, 1, 0, 2, - 49, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 40, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 42, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 47, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 40, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 131, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 40, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 45, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 40, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, - 0, - 22, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, 1, 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 16, + 870416688472957011629074007467550018055852172609119282538763648655121542866, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 336, + 3114724292040200590153042023978438629733352741898912919152162079752811928849, 1, 1, 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 40, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, - 0, - 37, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, 1, 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 131, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 19, + 28, 16830627573509542901909952446321116535677491650708854009406762893086223513, 2, 2, 1, 0, 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 63, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 398, - 3114724292040200590153042023978438629733352741898912919152162079752811928849, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 16, + 870416688472957011629074007467550018055852172609119282538763648655121542866, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 24, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 29, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 36, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 42, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 31, + 27, 3174901404014912024702042974619036870715605532092680335571201877913899936957, 2, 2, 1, 0, 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 28, - 3132276987043003322156864789671024834394494565216642852233970862560717996714, + 566, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 2, 2, 1, 0, 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, @@ -1445,210 +1235,208 @@ module verifier_addr::gps_statement_verifier_test_data { 1, 0, 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 74, + 26, 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 395, + 3114724292040200590153042023978438629733352741898912919152162079752811928849, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 26, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 44, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 362, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 44, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 46, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 370, + 478, 770346231394331402493200980986217737662224545740427952627288191358999988146, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 19, + 16830627573509542901909952446321116535677491650708854009406762893086223513, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 53, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 131, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 68, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 32, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 38, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 26, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 24, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 19, + 3132276987043003322156864789671024834394494565216642852233970862560717996714, + 2, + 2, 1, 0, - 383, - 3114724292040200590153042023978438629733352741898912919152162079752811928849, + 2, + 24, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 29, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 383, + 3114724292040200590153042023978438629733352741898912919152162079752811928849, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 28, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, - 0, - 19, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, 1, 0, - 2, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 131, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 20, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 34, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, 0, @@ -1659,1935 +1447,794 @@ module verifier_addr::gps_statement_verifier_test_data { 1, 0, 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 47, + 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, + 2, + 43, + 16830627573509542901909952446321116535677491650708854009406762893086223513, + 2, + 2, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 2, + 35, + 3485280386001712778192330279103973322645241679001461923469191557000342180556, 1, 1, 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 128, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 1, 1, 0, - 40, - 3174901404014912024702042974619036870715605532092680335571201877913899936957, + 543, + 770346231394331402493200980986217737662224545740427952627288191358999988146, 2, 2, 1, 0, 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, + 32, + 1161178844461337253856226043908368523817098764221830529880464854589141231910, 1, 1, + 0 + ] + } + + public fun cairo_aux_input_(): vector { + vector[ 0, - 22, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, - 1, - 0, - 2, - 159, - 3174901404014912024702042974619036870715605532092680335571201877913899936957, - 2, - 2, - 1, - 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 35, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 41, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 366, - 3114724292040200590153042023978438629733352741898912919152162079752811928849, - 1, - 1, - 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 19, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, - 1, - 0, - 2, - 19, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, - 1, - 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 31, - 3174901404014912024702042974619036870715605532092680335571201877913899936957, - 2, - 2, - 1, - 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 19, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, - 1, - 0, - 2, - 24, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 62, - 3485280386001712778192330279103973322645241679001461923469191557000342180556, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 33, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 25, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 19, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, - 1, - 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 368, - 3114724292040200590153042023978438629733352741898912919152162079752811928849, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 46, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, - 1, - 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 19, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, - 1, - 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 229, - 3174901404014912024702042974619036870715605532092680335571201877913899936957, - 2, - 2, - 1, - 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 19, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, - 1, - 0, - 2, - 35, - 3174901404014912024702042974619036870715605532092680335571201877913899936957, - 2, - 2, - 1, - 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 23, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 41, - 3485280386001712778192330279103973322645241679001461923469191557000342180556, - 1, - 1, - 0, - 19, - 16830627573509542901909952446321116535677491650708854009406762893086223513, - 2, - 2, - 1, - 0, - 2, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 401, - 3114724292040200590153042023978438629733352741898912919152162079752811928849, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 20, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0, - 15, - 3383082961563516565935611087683915026448707331436034043529592588079494402084, - 1, - 1, - 0 - ] - } - - public fun cairo_aux_input_(): vector { - vector[ 22, 0, 65535, 42800643258479064999893963318903811951182475189843316, 1, 5, - 731, - 2266515, - 2266515, - 2275839, - 2275839, - 2313321, - 2374143, - 2473930, - 2898431, - 3739191, - 5519871, - 5592285, + 797, + 2258529, + 2258529, + 2271789, + 2271789, + 2309409, + 2370093, + 2469296, + 2894381, + 3735141, + 5515821, + 5594877, 1, 290341444919459839, - 316, - 1325, - 3738486017942147354074018955379605676380083248664771915059705441906271431260, - 2266520, - 13, - 17547433874568682364848743965628382726429958981359604444957274631418163566655, - 2266535, - 13, - 7749116299797804088782267083740692628522862646799994425166213362944845351795, - 2266550, - 31, - 87554665547788902652191211055552226292573802503575884354337098466019513989161, - 2266583, - 13, - 16423204365463446208451886498635606282964612473735287676559025469370460789388, - 2266598, - 13, - 97660122090897676532976515536327685597178575392752118881746790001570319873489, - 2266613, - 21, - 15965293420646717632864890657656682147622030860431407741801362099169557217709, - 2266636, - 13, - 77829889301625120538273005884313576598117954809598182291464062324272311851508, - 2266651, - 13, - 11778056442410921545249586642918560827771268787305038501308366172627797709355, - 2266666, - 13, - 18364277121799742307672296674198834436703612301135900164520182929833498436739, - 2266681, - 13, - 21735447457064466173789256559509900293066787207553930468556444172373225281461, - 2266696, - 13, - 22523711334875090006439121766082922691595913204702125885692194992296419047826, - 2266711, - 13, - 83624106647297961694100343609754693980591162537481165480406799232614728629864, - 2266726, - 18, - 12486902211487510464343379655038142220436001470959615777475506675720761639871, - 2266746, - 13, - 20368200422104918220519150850184338115948143567048556895605142949756303382836, - 2266761, - 21, - 113854322277280286702186143613114340856969339550867337189315522099690118807628, - 2266784, - 13, - 31870597192008675990789996732130802915269720314152591261375941749709282920042, - 2266799, - 29, - 78382287317814472613239610149858545458010980340439738349488415526720261028545, - 2266830, - 384, - 9604218879067086476450192001546736143005731221600403399601510368417734636675, - 2267216, - 13, - 108197861132473313249010672006165508360866429075008462995213606270743445529443, - 2267231, - 13, - 66455774903168871171775447035719286712818684437227643871113694350175053599259, - 2267246, - 13, - 113089238278051186666329417209709318846936850786968743510017013481312171697258, - 2267261, - 13, - 67300239502169829984827395910149621987908120813874487937762978716235919128774, - 2267276, - 13, - 1319479363738867415310423366591370060174080372736046678750889716055912908869, - 2267291, - 13, - 50341686347463363975540907088317675866497103246666224706270212848355710053249, - 2267306, - 23, - 53385008667300485454352502235295700900313479021440159070204738203587876213815, - 2267331, - 13, - 47952981617598173204861359590160150882829120273191290014690019036497533355420, - 2267346, - 13, - 29519829429459552726331414080679705228047802739300994349547441016589236612958, - 2267361, - 13, - 4062667582948901981125064593866651847854399257395388836917295081179780010419, - 2267376, - 13, - 77552672658804527886622009595958277477338765289709038331221320726845995570224, - 2267391, - 370, - 87176638373429881563771645808207478092744372113238562113310463087785928676223, - 2267763, - 141, - 48064734020692671281681583947507149069905407499460852865177568341956674539391, - 2267904, + 181, + 1112, + 108159683325254583964790756644460122910517331870185263233511979246998600094497, + 2258535, + 276, + 453425719564509579252444155063442396816996660198944915605085900436195035698, + 2258811, + 300, + 75909175415926980144221870630858698708228605580576014724891293963746962699740, + 2259113, + 69, + 39348362476065081563075155654793687828827986543727350120578605793708978492144, + 2259182, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2267908, - 29, - 55020604747999751144766410071495837706391593304816802067600654139344476472302, - 2267939, - 29, - 38069407101166142589186488872691045214678860535725877323685482716309627272853, - 2267968, + 2259186, + 312, + 33778167325380602842040738638081419381953156783438266597089002243423818772213, + 2259500, + 18, + 72845840507390938665829714690706261784812559298671374215353089286569521953960, + 2259520, + 126, + 4086169658976402829172121196104631901258579624136920675859109693896946865691, + 2259648, + 22, + 68302349028179870718784876200018956997653429799905322549923643890090765475890, + 2259672, + 347, + 46042630818423582625150856001583865753809423652942521604798729773469054255047, + 2260021, + 24, + 17586534442980140922459407304196892407031165586002902854888120458941643657053, + 2260047, + 26, + 87655268016507359446575326494116791817343794976621812448500895376511937762679, + 2260075, + 126, + 6531167554639779511681417646392800684633522380786908984780100748557669955211, + 2260203, + 18, + 75981192916383743300419599299134571533113687199364507581107778742221142168359, + 2260223, + 126, + 28369596765970963169558614816981161306365969819446930754327991393539700747215, + 2260351, + 40, + 93191656590062527307480139504589942974812332004046693234877017900405966948338, + 2260391, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2267972, - 13, - 44970084016831525541570776319152382257812079308583480796258135444484613981097, - 2267987, - 13, - 59603688867327028912595477755667343640430387301033490625265021919473611285520, - 2268002, - 21, - 112822960997405385250880865172546852662002745233424121099627244148901664382691, - 2268025, - 21, - 59628663938955621477784530808098673749845708264989579564619840394146696195260, - 2268048, - 13, - 17949273684339190294337900335309548739518897736989935008854829935178883751151, - 2268063, - 13, - 59090163270784393647497955222477046385041081282189003095794136150866230106173, - 2268078, - 13, - 49994288545631855436389578568567951181692086323179687017564411955572764850227, - 2268093, - 13, - 107755674082549605593455841646298997364609393127720581007320654455074001117114, - 2268108, - 13, - 53375535463579479009722567978732540420534839369019031140437462362571150012504, - 2268123, - 13, - 78178855365907429141169985361665480054207121267550887149338497257672211414532, - 2268138, - 13, - 46952556118908061533885795492790521753380889087260133576836576454813203516133, - 2268153, - 25, - 65505401367081327828932196628708715608735259056446170881570707614857075765429, - 2268180, - 13, - 66026361140859557541008850650466709875963212091612367158332178247107839518916, - 2268195, - 13, - 107829965356734395629855344211653560164573781413614607235772505599388207683848, - 2268210, - 13, - 47788005912333847330029912808563183895034631365400945745335507500311468346122, - 2268225, - 13, - 67097593983398640255167993896281494296807532312522342136901066105309779400809, - 2268240, - 13, - 66420507535419775976095280336359771823704045946479200814130315195703991328481, - 2268255, - 13, - 16101592567572099802258242269752106492460917275051456854102468577257503200525, - 2268270, - 13, - 8216914045633627635302660948386070992614456000204188124777614757064223091991, - 2268285, - 32, - 8249043304272555286383677937581365286849505296414458278799771542306309708354, - 2268319, - 31, - 14448283915147148090721060764299709837384068077654347287803008805520651873069, - 2268352, - 13, - 63620408241887794436708548307677866819562529926322073154982043971282555238076, - 2268367, - 13, - 40775361516480445645928872142071563084052839066150511676312787604993166027176, - 2268382, - 71, - 81428569813509542871211713748051351028867604297100493265050464642642328771229, - 2268455, - 25, - 88754086850511571257566892242699603077236826049312766737019092497484382382654, - 2268482, - 369, - 23654506707858200740506342004476864923902189622928950125779369066913145575662, - 2268853, - 13, - 96208148133995054905102420138122451420246586398511887337527574742531702470486, - 2268868, - 13, - 113580635962155504213985295208618498406180863096226059830568771794861181155798, - 2268883, - 13, - 15131752458185413449864157052139300410518252387356086659475433480661225043965, - 2268898, - 52, - 23292176179045539781094344551380243030756494413337668722244515255672054637467, - 2268950, + 2260395, + 15, + 92134496710264923268784296692794574757391954638365201565932660185408679313702, + 2260410, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2268954, - 13, - 57153597448868926539855853259434541268978238846106320683353613318997514641125, - 2268969, - 21, - 101934626186394811002215974973967070319928197907754643548771079104417124673451, - 2268992, - 13, - 90273910915094742302208054546284628459686672579135471102191495914048843751896, - 2269007, - 15, - 10517329873685287928347917452554263006484835250651675277402969825090693879091, - 2269022, + 2260414, + 30, + 49028342319506355513569504000350316561631956027511081536970337812818351641863, + 2260446, + 38, + 113177362647573478732188533286928645268252122830606846586369968611741234924097, + 2260486, + 24, + 102377044720736269383502526217783886550366061696462435993382455340847202705822, + 2260510, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2269026, - 13, - 32026386706763484826260746686598106487693280486851488027571476178437691385322, - 2269041, - 13, - 23773726363363889882063090755216308036304380843201433744947905016392994838657, - 2269056, - 13, - 41030362719810092683936274861450690350552465887466419308301904892257547233654, - 2269071, - 23, - 43941438731016487879152402389159872199639416703899443666740619174832009465853, - 2269096, - 32, - 64262148212514546925252206696334335492506587371076276693676160603339172930660, - 2269130, - 13, - 68341019389705627980778368317494788023562860879287409751129335977589469383175, - 2269145, - 13, - 105387488867899480423644778850592712967009719216306825976651608464991419450128, - 2269160, + 2260514, + 126, + 94298391095823037252392921384543649559444010215348763914987613221700547282246, + 2260642, + 322, + 84268307082188536662766333873313326464644861199992144800628482064285830896429, + 2260966, + 72, + 57294878926950293228418156819699019735125520474433291010660170373696339284464, + 2261040, + 26, + 54195498117316579281312215738746355724338470164375876894828885766963282993930, + 2261068, 33, - 13591654946129562002126815849765202989478154191387850999585354603681987556608, - 2269195, - 13, - 34270444613361640342413800364934734339012567552276261799984462745479619954700, - 2269210, - 15, - 41505602055864495605599765308553890615017909984116535819894217270687541833396, - 2269225, + 63429629463884871490591619801889761442529114060076734043006321594554796276980, + 2261103, + 42, + 114127067808630492449532613981774758514111988743301872023350193024657779190327, + 2261145, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2269229, - 13, - 3769287855047212670746572370221712130308489579424507215803811578866267898712, - 2269244, - 13, - 31370787985741923543987162524256894942054258596652034598712511104865600444974, - 2269259, - 32, - 34630032254591326189593478112278114576012885618625550621676339357910707072768, - 2269293, - 185, - 83385977172841354803010250811967014891455960772752491520365105313848269196944, - 2269478, + 2261149, + 126, + 100285938302575443306028185576810891366274124306315272212318406774288904661496, + 2261277, + 54, + 75417573357388476441387259908083563392710404976082096437106680754244724384428, + 2261333, + 18, + 63417742796741394723222235061663872785016976010236156529912252646910510680674, + 2261353, + 54, + 10706247399106893811780398164396488022556306032611275763508851225745667708978, + 2261407, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2269482, - 47, - 40040710529486463528160309423888679749598092331568072034784758397540908659408, - 2269531, - 13, - 71612927899092120281646356542123617181923889912794580826450400800692036713006, - 2269546, - 13, - 44012142378419477750713609346157284295753679742209888754526411900039665857693, - 2269561, - 13, - 101843670418999456948427896406373492501821426286997839388750200399233238851189, - 2269576, - 13, - 28069551324574210136584999023693559816928302893113954505255164861429813301816, - 2269591, - 13, - 60175915174506209947472820473705896360935259759680169086237455133563322456952, - 2269606, - 13, - 41096248539080902012335908903629976797268443829389275819032147119815537030757, - 2269621, - 13, - 110172376562109234563576542816780235176526300459897105622376991879209519467060, - 2269636, - 13, - 69579800812617228639975727002282320280970416517447717937145151344094549941734, - 2269651, - 13, - 62386842416018343607951302144487056964043593374773699385206155027294300711440, - 2269666, - 43, - 20871429405776545914229403370773660140457373936402646322219872837579579821238, - 2269711, - 18, - 81863837939287035754254393824982882478413491085191273481277469436776945463741, - 2269729, + 2261411, + 126, + 8168147911727448033045841768706387147487691916450343566517475295537830861473, + 2261539, + 63, + 16797885139070284427806510036091194601864005709246279448018537205242287078106, + 2261602, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2269733, - 13, - 33524573947235248159031667742931922584539051986897345494862764207129288050319, - 2269748, - 13, - 69521000597239388942372657320674767194907555617754681109956726791473658443605, - 2269763, - 23, - 19333004966186931025290210878917055376746563238947430820528204421600490397764, - 2269788, - 33, - 114538966562508480487306343703514606823959763866639996944378894505183253199316, - 2269821, + 2261606, + 27, + 104599833568811498980281749537106112397842842525679395829202605186447689175265, + 2261633, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2269825, - 13, - 23236918250172311602781477328388532201735037001805541327865365168585411214842, - 2269840, - 13, - 105851611282041282513707883601256324522689411261384600746651542387186342808480, - 2269855, - 21, - 38197667859649411000933830685010063810574316966869325032581897279942887585954, - 2269878, + 2261637, + 22, + 41589231935784250288101749324915310038444862062154897143405068972781798496878, + 2261661, + 27, + 67649664018757551633140347668349111068997336214318027975461900382143535967663, + 2261690, + 50, + 98382245141742303540497582637425526624937923254437876177681574477134056950611, + 2261742, 15, - 35286812457174555875797358524458990887912628413423846628850954885701346229990, - 2269893, + 39554081028025071673929685017386559178063435483494063212989814043110621955142, + 2261757, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2269897, - 13, - 9512427045245182242115231663553009124511054318334034076587958558290302487891, - 2269912, - 23, - 1865492192868670323762985258715873222797206408856588641103318564553555534330, - 2269937, - 61, - 66131895278688795224924961547421010783264442512377881130698816194287616015304, - 2270000, - 396, - 107740934040042529506042050940342987633499028376421113701731846542377195833346, - 2270398, - 13, - 1409894499338718311294081048510373269919784393236879434635482247077277969566, - 2270413, - 13, - 27737204604813478263586254532546870980777853392293252569614338867416992810044, - 2270428, - 13, - 79832665129243348758748415009326940971010959505579980076313438578999760992399, - 2270443, - 13, - 102478941373693375549956812878110788122021892505473864300770875588150313734259, - 2270458, - 13, - 102012951842710597862104186156947376854037776965882991185148952165890002586085, - 2270473, - 13, - 76417106370236909197698632830251002752640107513140805673821788821848914531605, - 2270488, - 13, - 22435116408947348327245372133214018721152854778436903019268345353280913011456, - 2270503, - 13, - 105705119183636876264718310030378962194781350046315627498090284580495264370027, - 2270518, - 13, - 102766566643346153656602938271234186934905554932621998168803365409410211928359, - 2270533, - 13, - 9121952504245628783421233306095476353441981972713852108173642399482807715362, - 2270548, - 27, - 73962617910028455031750644930484898213642860638335615505960304395715369766787, - 2270575, + 2261761, + 343, + 61867061762631080397039859396427086552971134327403291518803164307070112163452, + 2262106, + 126, + 37287387337884950785663123944758301454245350245626950353330438651281010212868, + 2262234, + 18, + 103823043936746121580612356941681003964515184180584633412780840285489182826432, + 2262254, + 32, + 22235548079483935519036695407413349677202788300590825828960599096657182647476, + 2262286, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2270579, - 13, - 8831422292954978039820857396332222926832474211950777587716620825000083972572, - 2270594, - 13, - 40572365482736356093128943044181419120902273798347181151252205407631489241195, - 2270609, - 23, - 89250748423108410433426805530288370741296549548481331392390410131674645550761, - 2270634, - 24, - 81549167029416228276298291834761499942693222494464278511836160118839531888493, - 2270658, + 2262290, + 30, + 61210749463834014188384764254889857657842513661451339727711485064845251317178, + 2262322, + 126, + 48132242733335597524986545716469275513153902570441286684900837252545397009611, + 2262450, + 90, + 27724819022433037398624501662269446392272548778122371378099534104565908944407, + 2262542, + 18, + 47831116660515042123683352924747014931785894197167863095465330177902756368416, + 2262562, + 327, + 113915862507073401603931995775961980516631190078649231097201784345556137404714, + 2262891, + 18, + 73385903330434529251249733873638023505670618710488177452378849242730107885698, + 2262911, + 66, + 96523176909135670534474049291282157494497911456476046244794251066453268797675, + 2262979, + 276, + 37707077187323332166651572540609903157722623748975430633213382948027482495477, + 2263255, + 305, + 96006993955014586057886123256182927495678556482778177083790577552081640404388, + 2263562, + 28, + 90577585272725654967767403854809224542810122630912321790494801133408222339125, + 2263590, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2270662, - 13, - 50617150871833309590669450601767195305257359442043990275346253785921825685523, - 2270677, - 13, - 33430900398633986517281079257144137252508017497740903641363497653974577820811, - 2270692, + 2263594, + 126, + 14696700228260665650958561517052667543313818209929890841601967720422332232359, + 2263722, + 126, + 20237185893880423576004649188345299137913457163170529561086789811207847877185, + 2263850, + 32, + 99620145058578040780714052319183936368076571749446334689299615266580645676643, + 2263884, 15, - 50230332337520685819185379138149452056832273984668817287076054372737095794497, - 2270707, + 77160875032479215417895302577702148957098208454658253636702598864535200520251, + 2263899, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2270711, - 13, - 26060925092766365537594808786411019471359171000744630748109876443668095574495, - 2270726, - 72, - 59459343261488222241516647373960842913983844065521095207405120949305175621737, - 2270800, - 23, - 108755407944954751424523955182999093272333942296063567678673195334683898056168, - 2270825, - 13, - 22018963762857268261670859061450709880770233577299661065335739506114948260887, - 2270840, - 13, - 27410879735734622901935339387522081912852630802358973783531965565496342592994, - 2270855, - 13, - 115051908501650433486349656472921125208288198903694481169626026310325357961367, - 2270870, - 13, - 60740395827095520779518889177055275450153884591539634076336325020431564259180, - 2270885, - 13, - 107608543370604485897185172608940593045601889266102192628086906595657461680354, - 2270900, - 13, - 54301232650620405282150921550704173106940321772844823253577771145810237274572, - 2270915, - 23, - 71001026239654102627783021045192028004378429518001617729030071341791993700678, - 2270940, - 13, - 39710331032306793130081840425783792614983779976172544992206655537207962881684, - 2270955, - 368, - 86228116464310301360748609286259135771787178854372648849330443378803188365171, - 2271325, - 13, - 90934068311573248722739105736697871875321060266296858867995899289609929170760, - 2271340, - 13, - 60305257785916118467838148903191765734542105780958274452012125448613510492887, - 2271355, - 13, - 51401161016891800236336681251420895859620859407315871435682395575461292037667, - 2271370, - 13, - 114177592566358431801118905052278585803747165624180204340602079186159186337997, - 2271385, - 13, - 35661633721065798164415647656008442441357723199639894901776828568429795199717, - 2271400, - 13, - 82349699136419260729230443597024633782650419044899208188595644723534136245953, - 2271415, - 23, - 69025101069346951954891138790729467561911682541231331355337876983949834338135, - 2271440, - 13, - 43406849504705766813672330637076814332626783947908226980978492522256322052223, - 2271455, - 13, - 15440490610290693769667909648934087358334865811320491223180387657859650330565, - 2271470, - 13, - 101964713174837234807848138856280220588136366074194237516902136033462236404731, - 2271485, - 13, - 105997758417939381780729164461854539956541824706340289421408142190097348892967, - 2271500, - 13, - 28293664940003478151276898044436426309475362961994627383454087843703219197093, - 2271515, - 13, - 81086627291954452130349548412898875706733522636406240105554011765340971112443, - 2271530, - 23, - 72640942761827334315861408342746491750707228201961321011312224914716610059208, - 2271555, - 381, - 33840524889259858333414022007684051439677150456073715913529506418358116235769, - 2271938, - 13, - 105946227983176322453887267764053751256522172809891671893946446751718853485449, - 2271953, - 13, - 22595354440732576425392828562541577548198859376250894026241317624038577550319, - 2271968, - 13, - 20735080705311195214497435069522671791599589004785685625907346304577792655026, - 2271983, - 13, - 3717365762107344560916051106621169961692354235759971629760655354282473666703, - 2271998, - 13, - 68683489074338144235560823860661221782129418929397392812363463286742922180268, - 2272013, - 13, - 45258559815785269488947491982280695712012831886878261760888502847292198939068, - 2272028, - 13, - 49068331313789774651664260109136845019112371397057062280767095425530508166733, - 2272043, - 15, - 42866694272843561216655084552054463702253369532658098965305760590461982875458, - 2272058, + 2263903, + 39, + 14724808758487862421763073813056399698019227084386331274446203332157214704717, + 2263944, + 18, + 20974843714423015710862768253457107977213713417147559254700754093223894345902, + 2263964, + 129, + 112808016275006364635742014260784279446697500340275209940477275634880383992620, + 2264095, + 370, + 69993999044844497010964713354123394175837470058374832340857199333114146130699, + 2264467, + 30, + 113136476176533813793738018052140770479800723981620104636311819816524404634861, + 2264499, + 28, + 22452977083472444674363347418776934564040924850355930962004592778457742199631, + 2264527, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2272062, - 23, - 13452234504386868024300380086452624521173045180735000414201203996374969250888, - 2272087, - 21, - 2516882355477689653480682651720422432222384971628206685919721968375084071062, - 2272110, - 13, - 67717854541806545879146558135668960658860285830505493770541267993000707799711, - 2272125, - 21, - 3180885961777905706120335813868067672297872833147344016828642602716765871269, - 2272148, - 13, - 105307210864548887535573007835558722068888893367639633587387049012908019345652, - 2272163, - 13, - 12768134566470995582764057350320150021729292616888699505893840628128007306324, - 2272178, - 15, - 61703941465235564090047569048521242612613733115950745635386679977961219640467, - 2272193, + 2264531, + 38, + 40453141232564260649330309709274202401585112448873991410504280492329212786315, + 2264571, + 30, + 45295303788668599858130473036347130981385165902129676706036835339574134448610, + 2264603, + 18, + 14453536782359748305593076132293879612675867456725991711677484085525517516148, + 2264621, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2272197, - 13, - 352304168337812887967785102338327453972413431901628724773838900526380570280, - 2272212, - 13, - 21541427396646134104803824239554169320998824022482996201192644633993070817844, - 2272227, - 13, - 108712839909786098570999032775030610237052542651863731737221776493023558897377, - 2272242, - 13, - 30842377896707169066580849364607582142751707568073630837035141746986942573021, - 2272257, - 36, - 101631606894952747928372667614118201532579869183378626517739816407383121950103, - 2272293, + 2264625, + 126, + 103457074036171477179768480208364886764494911086136167424013557979340599095357, + 2264753, + 38, + 114873416681311814402338778351684648921050653039752593399182103389154236868368, + 2264791, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2272297, - 13, - 45992099988025865683067625033591460925902090396260789334126711471367000425997, - 2272312, + 2264795, + 24, + 25052612474594788837830448377168640787571561398831887419065756324448908060892, + 2264821, + 48, + 42359507020172875235565488421160357292838929858440080032107321822516204600422, + 2264871, + 337, + 30020702866042201657581712079259664331811285349378060377050170881546615364326, + 2265210, 18, - 47526585918989854830900804799384412735007966826051680446979175520559887998269, - 2272330, + 96041184210224246917622029493677259120406181715539057328855880320353474698220, + 2265230, + 48, + 93826853247378981917868756024123429304611886460966725527769890776225795968203, + 2265280, + 15, + 65034555809898060373838620184286664361259620389662387014287405466811760868178, + 2265295, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2272334, - 155, - 92238284230275447675689003164036098486344446477384991430151443302770981428325, - 2272489, + 2265299, + 126, + 31480224738892305278949747572911177396899673035347035635480518598850820944569, + 2265427, + 15, + 102432693526852832238327151532093237825857584533418968047003546227120490603388, + 2265442, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2272493, - 13, - 75688085463112208987088477207381799661566839388531332561869644310083419771368, - 2272508, - 13, - 38163259503195403483842107750655621268609759837719564316535701393517188341763, - 2272523, - 13, - 51766413065712307825083095337541457781748304925116889398730811632539318687662, - 2272538, - 13, - 112551939080843303612511427122817842705674423188167498554341087120877783058051, - 2272553, - 13, - 105193811535542580637141816563277261137448564736345686805730683730741937888195, - 2272568, - 33, - 51185566474189321079313199641437131414920591732012712663071165309052890118227, - 2272603, - 13, - 76805679156363176957868890394140638133137778067104912738980399695263567714328, - 2272618, + 2265446, + 66, + 37019838979316247432581356689085081342022708078884530150009204176181743005690, + 2265514, 39, - 14093333600073593206250191256484550401514721317905141272317990813291797983934, - 2272659, - 13, - 90663817623605477526523143748596942518048077680062674853633824120631801114734, - 2272674, - 13, - 92378620427750605893727407350914891874123798377571678369049494973984675668282, - 2272689, - 13, - 81462533139870796175988831623605870310507911484871454579175552094369268197623, - 2272704, - 23, - 94831642400111668134733198591158936503505226287851557955034619473829492960395, - 2272729, - 23, - 15715011832978093245173673088951410696365572592972865536997607200576513473583, - 2272754, - 13, - 37959794424869967671951520859647034208937186725511979995416396185083474107343, - 2272769, - 364, - 73570037145074924376207425203414313098792984669962494219074542839904305812896, - 2273135, - 21, - 71912149988373534823333988897472062516110733476742624890118857409811302951862, - 2273158, - 13, - 92969431474449877997398271052720817776072602622303207897078411022490784600039, - 2273173, - 13, - 48223322899725661350216931143894854270789074290575038068815920112319896331367, - 2273188, - 13, - 24239842023625090742969717664583781733191293590703146593722243108162882505419, - 2273203, - 21, - 33797590529267400952470162676299880380103524729131606187233717840791323063611, - 2273226, - 13, - 85611908204867317363822548712877315799126060413495968584985583396976699439462, - 2273241, - 13, - 78055971213963855639433611741110131187637742103309386310586422272275843159653, - 2273256, - 13, - 44190694051865475145065411445671264701129711527715868275063855205720681168689, - 2273271, - 13, - 63109263541026814562695058501020054865604595058251352380318982771988237069808, - 2273286, - 13, - 85655342575202947367370764520717270539203408476043033343200674408269517419482, - 2273301, - 13, - 29330667365919874889580466549096210989402190893561358829896558417040601140318, - 2273316, - 15, - 92933721621340465162882999919496681751235238531175328260883889634561014604041, - 2273331, + 83229038521862017377359146899064922312814630410031266438201543760995969616016, + 2265553, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2273335, - 15, - 75157105369245749776371848651135377732836746923748035041854729254077404496747, - 2273350, + 2265557, + 19, + 103763692732487562580798933111389606204859394408357006848869192854565919306693, + 2265576, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2273354, - 13, - 99115721182987437908544511893189109380896577022455105558435746207832874036961, - 2273369, - 13, - 55181072994394712004725464108442580865822629026721778724207251703051165063461, - 2273384, - 13, - 49733592482627140815925535804823062589660936915003869798979654868429388357071, - 2273399, - 13, - 83879074632355062725941412228032871981899178275860482478822445576264155966325, - 2273414, - 23, - 87026141828509190413825465867999132191037286739113986633690485453098163927336, - 2273439, - 13, - 86311137709250797179230410727173416152320919703493094786908172589923629237476, - 2273454, - 27, - 91588853178519344831378494523223543948574728059102328366124983294203037985685, - 2273481, + 2265580, + 339, + 46871604666942216896871563629003769940507734556718117299323563602339415066088, + 2265921, + 37, + 87717773370321308483473632583135495821946894373278018474913412687094314886310, + 2265958, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2273485, - 13, - 59593668697032315490297292319850195112423621694974593388044049940624855417869, - 2273500, - 13, - 48206249183093295241511205280607891755818981062481119386123186268834564027115, - 2273515, - 13, - 103884090596045256649230952255995802297388154076335965769462190868831845158956, - 2273530, - 15, - 55071995515677942005477831570690270849578796434844850529546813104988971533660, - 2273545, + 2265962, + 38, + 115108227398056821843753320296317963855689442760352834732799751796116754068811, + 2266002, + 40, + 74959744365032345563183974813869214915739410344436971291201865568853939257451, + 2266044, + 45, + 44922322390932053059564712128669255989222390190347666970036974715003069826533, + 2266091, + 38, + 41428354903860142183484456586777527123122622116995170522052284594674274784621, + 2266131, + 129, + 54670819718644121351143189331776896446838232848631589170075551709653840666756, + 2266262, + 38, + 105666884265750621826720834449956679321186729426489219139008156848020914452901, + 2266302, + 38, + 8250922467773110914037597977269175225238307189572279084022067728949489475541, + 2266342, + 14, + 51319736419912621787361201998170210876315911552916175549194035015720997932524, + 2266358, + 334, + 87927463858485485607460857632204178386471915507001558521241925602766167280232, + 2266694, + 38, + 48951263859686433706041905624045567109115186766489774122768148372317788351159, + 2266734, + 129, + 31537544647929804337272402275047744436427921567468213222441393610226716298683, + 2266865, + 18, + 108184579769964475457053867409147447143896392530665778971672664465863150007535, + 2266885, + 18, + 74099071150426500303610721545954872170062908256585977107703038755621495706848, + 2266905, + 24, + 102756507638466010740597576585004919905562812765344902663007694107887721898926, + 2266929, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2273549, + 2266933, + 14, + 40181329072972128849443474313761697393623350877481703293962876681332387379314, + 2266949, 22, - 61677704043528762498668908741230755680401772683700568567609217935818023782514, - 2273573, - 13, - 88665894235731545806950637121015068548450374559749572699273666264185932257793, - 2273588, - 13, - 42342702638299191831072664123033132552756854514857603184894032046371883700603, - 2273603, - 13, - 42616428035343920816127850359824775019056586820051892019804076622058170589491, - 2273618, - 60, - 49660383232157800684891069272942641642755493180329243823499709362831363963390, - 2273680, - 13, - 82553507209180094877025148987428519469606410378324633698936423414710482732585, - 2273695, - 13, - 89765262767149696096031027169709122177426545865308614656506108435620404257975, - 2273710, - 13, - 44117247516472028516514196015322826197928068047992230749704026425558477644612, - 2273725, - 13, - 81455047520890812473163880114381906923195178177981741856936829261230035339568, - 2273740, - 13, - 91029927454867114709944443207985795767635544697527735492257867603973629254603, - 2273755, - 13, - 64634409512883308393731056542786258701069863267512254943889811204553538330140, - 2273770, - 13, - 8916470997323035504684138105114930962163923347346480321385750229806805588686, - 2273785, - 13, - 115390033550027412757993675183284780322511226856183920035626476334524069887581, - 2273800, - 13, - 89414587084100759176733110910823765359298720486127967829372126690063379493255, - 2273815, - 13, - 94101559349895398750339966655654135139453588861464609548572231592265122222669, - 2273830, - 13, - 71895358833990320556028528261998029462372620142058487339736001137062228821962, - 2273845, - 31, - 64905071884767670368638853556324805624646874704147066334927950462141728677715, - 2273878, - 21, - 111189087266794143158150421864191886535037543331909665606147691508907076715207, - 2273901, - 13, - 552683344713332275705658562291580644656610294627976405720649299230770672476, - 2273916, - 13, - 5419504063454618218843523901623816760002091898232477461287622052497744154633, - 2273931, + 85859347251982377480896965293454447173258984839684021452888801213067958069139, + 2266973, + 27, + 110619407211662069551514847710221383659550278189269302491313418303547180124514, + 2267002, + 34, + 27257109774872161291245265517043003914569177786907813201311904124490631672942, + 2267038, + 40, + 84310047913891779484337506476882742709933945803112374149624581003032809156863, + 2267080, + 18, + 4893253207277057734383082417555375901339451893053493801323904436838314735039, + 2267100, 23, - 36357252912472128365648121532283241506260417763224945559430262131343665082625, - 2273956, - 13, - 52728844592367855688730073033225390296963652590724170054648368711008652429253, - 2273971, - 15, - 6513439748644590633698485335307501633364564643196625204634754513655932171130, - 2273986, + 36859057398984817917098737454320148548227667734275394081726239970813398880616, + 2267123, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2273990, - 13, - 53664486155040811623892370859894368461765217414215090858245043609980714971614, - 2274005, - 13, - 80750356051770599757143477317538840431479750414049020139450031095413315493420, - 2274020, - 13, - 44170059243939309615583402817213692517473429337866964922656866918317407644883, - 2274035, - 13, - 86761180335930791761296312146191897465700311051952904315972026105382853633530, - 2274050, - 13, - 3148257962744337082464638354611990422327497099896932111625811098525137986186, - 2274065, - 13, - 41238638637924119446298556899127714478382605267193578761734383482787892434952, - 2274080, - 13, - 3827914826917535469988788169354447227672970869086890122867846023570859221257, - 2274095, - 366, - 64713531846529596169973662360823053840661115927619674642606872754470697712978, - 2274463, - 13, - 34073704140565111185233666845273346453543063974668778726888441414152868976177, - 2274478, - 42, - 9741801428700007924023553406832493590361244759989138329835076204236698573426, - 2274520, + 2267127, + 276, + 98118830697833809140352239936256239073857662346890506774457932610696796102728, + 2267403, + 288, + 70919221502725038978288153093395204660760162253209755322765561528836250283845, + 2267693, + 126, + 18022695176549690462482228624958516468399582551634384623601950923964087808847, + 2267821, + 15, + 63834795905983506724351425518092854289526942242256409840078187566857273800327, + 2267836, + 2, + 78338746147236970124700731725183845421594913511827187288591969170390706184117, + 2267840, + 126, + 36616352104093968446065743421913630678324320999263317600102855470416838455653, + 2267968, + 24, + 83492336257296945205368714814392752790117843209669613252750950320805933755883, + 2267994, + 18, + 50787921893121886451817143471944913815185329398699990333027705784004801195, + 2268014, + 393, + 34624993455259206988476690866500702305944228312010244686056440422411769674735, + 2268409, + 22, + 31348869051886635342360552398354564679751972992574110582817118473418475409720, + 2268431, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2274524, - 13, - 33157678654524600432967932881325894506693514427078003676872947920205383816131, - 2274539, - 13, - 82274285243027927135163362250458313620077337412481259315033696816695071962966, - 2274554, - 13, - 61905219055703587310447922381444603538224067455052180693739170161646317344206, - 2274569, - 13, - 109295591946199220713406463851822499518788146799399441146461127612624918109264, - 2274584, - 13, - 9679321425811673395243733849728728609910614284480804106377304172420445162841, - 2274599, + 2268435, + 42, + 94068761735789843120507783177836352714038099395939371474520203099711886603382, + 2268479, + 360, + 39634753550027745873302414143994295075103769184679784010223269874558303125138, + 2268841, + 42, + 4465925615463424424959654182394341067233014195993076059273642523923000643294, + 2268885, + 126, + 103171262272977814431679826670145724006949312641657865479876480991828229923627, + 2269013, + 18, + 76231585681615782624964527497700568524341326483301864342611324411368601403950, + 2269033, + 44, + 97607157007177998142133844706858529541595642659530549058516589517627495188609, + 2269079, + 276, + 67052328391125942531847059195202777655672042716818359711693786604233812509575, + 2269355, + 200, + 90638163491600566532176953637959849041974054036839285831061108413634451462622, + 2269557, + 18, + 34770535574276989455663305320289996124544453579867180343235216255817696847774, + 2269577, 15, - 77400580104748839600557012666185292075103759369095124524925691511007992983385, - 2274614, + 43111468487465572815480345970274794499959488420664142889127259152918063434243, + 2269592, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2274618, - 13, - 17096237184588200685930185547059017625148073597210419901114122531607911043328, - 2274633, - 13, - 38468640427359885474552077323549074312308474788673662403318883371618841119343, - 2274648, - 13, - 97300780751369013566574705493094200434690844456167134140578862101840669057677, - 2274663, - 13, - 54636958088154111396724725812747377193726067759113012872115294394596445183853, - 2274678, - 21, - 65098396101912539352142601547637724172446574104574279088308808851886818878174, - 2274701, - 13, - 109802353012223215534633344130642902994307831223840801331799072199894294698292, - 2274716, - 13, - 2523700439463386419856910650254922830347173429208128775446580318548709984247, - 2274731, - 13, - 3948853393212046138164091772190649816773588195037970838604236455322659667814, - 2274746, - 13, - 99701624586582659967015121878716402265831949118220456023839676146604265683365, - 2274761, - 13, - 76391199978499573397453547496444186813855042569132542395238662836767782642444, - 2274776, - 13, - 53098026581408757586483226758389788785283864033165077314484568808161625551654, - 2274791, - 21, - 31749371499604142890178874833447706424161534124574105802604183989805254590196, - 2274814, - 13, - 112164381360247602594933306593823699138443817899283537992935931075813827047855, - 2274829, - 13, - 75636609247336213688178201473074569997497991430252526973306837976687551786686, - 2274844, - 13, - 37473963826752474771999309524081310447125644757540982160355720460970669753800, - 2274859, - 225, - 94877924725905917245976254298586867589924113738102489802615448399020691187081, - 2275084, + 2269596, + 51, + 87704432963162477600246931455316959360709062268589227471073808689817853648697, + 2269649, + 129, + 59556200493082060099083970589568124131609326215379728576499026272014432241254, + 2269780, + 126, + 76839724231680913148909361823669051514457877567903128547151398001040123176596, + 2269908, + 66, + 96355830607328773777053018810930300085677128583268938161018968496900273509869, + 2269976, + 30, + 39468499120508060253888031731137657037156269974721433126863011425294399540306, + 2270008, + 36, + 112513698832469585979513351052724491342142158568191849435048626614815681577861, + 2270046, + 18, + 32745286691452957988129578985740127719129131445919206624132834868656556258450, + 2270066, + 18, + 97840974000825051236724654429973324143052865276560454022335511830020307020824, + 2270086, + 22, + 91534269384007038363594034475821231822072358362529203668691058863615715189937, + 2270108, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2275088, - 13, - 21424322251915011760457304058352897466514553363086817736093030455333485033287, - 2275103, + 2270112, + 22, + 102821563436411382214211321518799031953978893214498023608474475148026725067165, + 2270136, 15, - 35304760090550459700485563552543791950577403744278669997998979886418858759901, - 2275118, + 80670735393636773634577542532173302038525394215776183167565406721542119785374, + 2270151, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2275122, - 31, - 76690686068159581513339381992667303049520214491463793263413097445363180516689, - 2275153, + 2270155, + 22, + 1966071146098075783044130069675736592784763473435178323663365739340278492068, + 2270179, + 18, + 24451141566961190142004302233020087904174167289118236472805611901087325517261, + 2270199, + 18, + 114754219864317296024300738196141048994406602178869806769568482192648439314401, + 2270219, + 27, + 56444875345170033054535971469593993723111244639450706037118400703191369646225, + 2270248, + 381, + 69001884614450971601433687904047899528452843182062286221538837353423108638708, + 2270631, + 18, + 65538120149206772920043397365931352925508805270417236919957698816531285906798, + 2270651, + 18, + 41037110864910989547492764441285023597469191366067614899815717209175558121676, + 2270671, + 26, + 85447314367325215762550095758369287817099784072393260158819518427994586160497, + 2270699, + 18, + 45664803817058084260650699514645603312813334512188918427403915793180541321578, + 2270719, + 18, + 89785500129838482064004927555392981474898918336939068828550118222852214223725, + 2270739, + 18, + 114851405863031222351423697073787345547521290280302866421152752022936305082186, + 2270759, + 129, + 18164596072138944715442625331388641396823069599755559789317594225814772056942, + 2270890, + 18, + 111272224162349705764297180748181160131614824597581052535353834685475613622903, + 2270910, + 32, + 71852526336405727731992890443660406115443980616193867380909958716992267857894, + 2270944, + 15, + 74221941311309103498435789247226320960648665118865826628209390447972971648646, + 2270959, + 2, + 78338746147236970124700731725183845421594913511827187288591969170390706184117, + 2270963, + 43, + 50804257623319687001314727842301687405560176124783954189104698651298622346181, + 2271006, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2275157, - 13, - 38071302992902672670217620456140697088438581820198908983897690272977669005669, - 2275172, - 21, - 74062772662687791403197544986696686370932855968369635839156922067251311544383, - 2275195, - 13, - 46700405563823858749014678713554494319834011121907170089010399099756454317278, - 2275210, - 13, - 8360197310869401138898747984436519789425270006761454573364425154425397294061, - 2275225, - 13, - 37345737471962928321646795650221154936533218694709409582188888245924105284562, - 2275240, - 13, - 76329176045853327397827066926153425233263539377240458185231327522368659884668, - 2275255, - 13, - 51165095216412898665266098383199195993466108420832609966696157533973658887512, - 2275270, + 2271010, 39, - 8694770951800705147288602006997578261088660472545167497867993454986774215525, - 2275311, - 15, - 2232998850732757996026835613652542242994469471222165064133301466852118947076, - 2275326, + 82310196288293092880199097050874823376346833025478999665475254091852731141284, + 2271049, 2, 78338746147236970124700731725183845421594913511827187288591969170390706184117, - 2275330, - 13, - 56959477025172224455209639691228449581961339654408633081171384561252864362634, - 2275345, - 13, - 10893688972514420983117987293954356290386359441336972240383861536511860934194, - 2275360, - 399, - 53274788599268239546529822773925978916092142455549074124681282311879153182890, - 2275761, - 13, - 74299798615312998618478698245393781612899652464720274055652198245543220767597, - 2275776, - 13, - 92382115381821907922215673753072855145247673959821648259633950587471687917866, - 2275791, - 18, - 30172024673412102830121284456785764211979110438579097758830557403781776009323, - 2275811, - 13, - 36936527765950551676412164956756148227556267624811854840240040265229057689385, - 2275826, - 13, - 68419931065524346375303390552415953520841885773146565506619908716585705071710, - 861188609419564084015083556068676459166478778038881359457809452673842858492, - 142169183933652432380336624393897576851073070152193201252544990504594771245, - 3469611596332664218008507347870182155450945120872578171781621929919427297542, - 1120783225105500472886960707578856680524451699826408436808377624124459660804, - 3109412906550742373552260327593879584368267517865428559029589769160129002541, - 3243015875726958762897512282413425159040780330160415570645061436015993367756, - 2818177121361950092924800583196987650373841278319041492446377342321998652588, - 3026764980178574262222400636234638800181176342699805475714570982070282949979, - 550258153495008696661163036876812516525820967976066034994164769862516405820, - 416230735957070076441464414259160370865161595055510852601185576999032668223, - 363396650917283632181085178556077467549785065665433532524390812312011986350, - 3571297215599978199753087183833552560212724085727624994174662358904076635445, - 3202180765366681681299897553177352596039525911979182989539709446744568064417, - 2816977406181882372518626780849235479682916369335124865385603133614143752342, - 406592581932948285871592003286338979441279378428577342904106294745242755237, - 2383117637623135039657023767738790009854472901781671216340466928219542250961, - 478255279029967512224971320973143919374743701172368175727298367018241621807, - 2182585426434601707205492756477582277326526101185378732600770356004041810515, - 1222019694889770534963155149230951568090687448161383130526209150939783559152, - 2680780664537925978125503409174749238058535341332208959653559871549377030307, - 374337815963302084233382772039623608873075796940464245403650215830862222434, - 1494346327877591323134473742310434385695875446731862588284394068263255564212, - 642432568764147748591929734504195578406494764698542287643097285236249754744, - 1716868821333285070508982056691099191130906481275434356227562814747464613333, - 1251883991644952235549668171896829896820163225596644480680205788613431884636, - 1893207860042646798515101002703647088433427160068190981566349510553351972841, - 1146623148113124044615500954975749825786565292091391956725728380527171218948, - 810887733765759682831659580200238018996898940356558894659319201168420184361, - 1127103456941127679640348313742637629159290150436921991829022438606530256101, - 1716777801251652087993637374734275602212701547772866985632857690318635391741, - 2123895083757203596615040341098116758704155874955022431693045405135268726534, - 196568201005436923907044163927471611657789320612771531029076553558749654538, - 2936843461702900664933903606184290556828093876295442494769142357697108416825, - 3404305683532880034723798159037615212818659428073237353220185452679443733461, - 3393082602495152474126365926446991301599644697703144825691831280418466896665, - 1698603095046899192614569727641305963107176354227883071899839179061051826667, - 581847092499259015759035618673554986643663921729966197258143128306509779030, - 6710941353317542144541092667280849039693782493897957976061487176689942739, - 3061208232461674415218178326756345732408525194477397555793889395944111543, - 78856689713439591325909351765867990632796120058252883496361430249241332229, - 2511691852597988372209628188276609157336876551967975615350141341028099961461, - 1736355849000948534762651901635784302315550284057718769860747556699991694992, - 1068766622234613034208947310823919391697612574820827082976322734521167672963, - 244963516346766472510084835312603963239931928314614553570509095465528521648, - 2180733676293685867021179332443928495123972617804499355642274335091279358424, - 542431924236813677186724418323781046190424908329918861145840794400883874426, - 2551865283700752159237246162547864255771850941426743041352579017023618739545, - 310468010165055573926005567764274404782628189118021060330211550709104940361, - 140713772188804039847396337009134767591052110641975861816054621361000993173, - 2525226834592916959442393115378999183741656091501611133029330186192942843001, - 3212375519952365594243790907169599319681444370255987881456960371115719544622, - 567216303243442533194491670074381853118278735053887913407759255942312126322, - 1149185159326395029688630904925131469865638676476950027814142188273950180807, - 821820633082175265529194850164923651608617033162160031925347151019959101338, - 2935637088003399861563444809734099112949430299124865999374825434781861830620, - 1296947871509179871850043775278632097843685580675185198753771026885640727913, - 1573379742107982990727353922328000041826221372272014138568549290151945866991, - 394263145194521198352953229125913130988676607507566550397597440847448331386, - 437636362495576215040869956166471235864907721399533097668519285634741048918, - 2132677312674762857700150415399458886863108249730954652237929114978270111666, - 1642775369794069196479402911807153843567293618805455393017044512589422690251, - 942426450007951984392192518489622693591676006189251124100410682940938152006, - 1827907891968373889853027127372552236278229476140088058599427575974162229298, - 3354654977748220898199961468885812250363595669385088829787437394585961528317, - 2414253707697157190073454073585060616611824585124165552440404689163179888552, - 1650923232610209048646048765331314451833213723963088038196918339998167602887, - 113397139624633067633156422392410986513051598787077295869474052017943647167, - 609800328691744828410932737655983509359953128502675482761115364792378307459, - 243470528834137630788812617229740872592160129672441417060836905815720263878, - 2812364936821307249109539801075390289287077005652649771139659641438528529807, - 1692248309389430937135851295194988032115171677092177489452765802698504239092, - 1434253818636229821546897896352855897794349797959770470121327018154284149800, - 2010682451246294606734765618876503210280606839741293277430270051582816002888, - 1221576437511647981962606632093295582017856636222427289286502790227498576113, - 630768165082481412967237324400121001656500607983340003935478666043973159373, - 804550778255486359721534448038497007139100824549572392219025451401366654571, - 2509405422579278993467464802987442883923997756314350093904754698655272281435, - 230322511138199514444432916410872573354392476025877843612257669508718156168, - 434096614508797479463291690518814504168086788605958962461649211197925570692, - 1501811813258361604071078006468632491988688644702953825498108954920519520008, - 2882982445519693408857052804061410678843841563008654228812807663226439561752, - 518869548748741950356062444028433245632475224810625612452721570315254285154, - 2595229702210972170795870914076768975618309054211788285044916702359112663819, - 2789475747320341346714869090990098730825471290243867544939257356032422631927, - 3021423904136100399420564756125538866649443384218345759132762767488927121901, - 3470072539146028737697831059922285349625921745686943456098631834736538513230, - 296832114912645368383858205207698130752073611255689118024692618517239185691, - 2562673875044080168939281665245533457996357295390300507103545024746030199615, - 3572176640836192239415456157280369916561273295658442093353040206706054951045, - 2848158501354991175021646799538038067563488282479904337827371395065278495157, - 102950434812874625402097083157182824861858194414063711174166419600553014181, - 1486323433493324402524888070458829882551243518422048250698374833559089260820, - 3208814801214087779688248916776721010687354077056081723931202672773878888941, - 2791567775849532297181476147696583719220230115011530058335644680117172080123, - 2235032008321774486325763532722701935219503936929081481682516227864367568407, - 592284390184751479985931280444783054260246785281850795678418559337548629734, - 390683870566096622968833817313745177669500468120625014424115528998810399779, - 3110691796330732484439006901404700651354694372816443484753104198586884384651, - 2444614225556616965677631614072556335440465173131661092997431343602506179484, - 2386506893371035367797010929557965767594569328487056274732669316394593214090, - 985718089293755807100092882514673037718074802425850404888611296905880615735, - 2365313498788565081614723939935710915555438624324335421229411011850664978462, - 2751609933031503045570717838909537391508339073565113369646306686587414634645, - 709418963298017268861363387108720702487826680412475179177944279942789785420, - 1907361680299590730675954600213074559334267264715916003088596512463555159119, - 3276563199475151306050538563091086553070251481701780021983716540769405628800, - 2972642734182643475394568567170312432365860846563755432529810857275455081499, - 425164320957393025437358755230063011507729374914138588988244646111343301823, - 3559707156732813327444472961623408136363819685273216405824028443892009501595, - 1627154000312260994431362465796048237259205663643677826240173075754304409976, - 978917089820616846266957253956461358728442465542876496262477450769874236376, - 346355236078510422426265313193171280607329136716705847231631007951611512698, - 316179610607211928380094103319534007928433340147182435947697504273517696615, - 2769473235676236857837052240478468885386654130708654974522904007205212947198, - 3273703505418872921921958863206735880229665688062763137606839754576556254611, - 3397427904428479816149340714385029180783089428338888559696506253876730991035, - 273396532134878085479258931108469249048622026285347764422481613061299287009, - 3565069599248317153452884864831279625076552078403945764722732447257084736088, - 3051414564343916789546958768334277845488736407740466494549809448179734756312, - 146750697919270022094432517700325927863514826787632368889893659520102633886, - 701885260756582344676704802559552925454358940676394084440223717957719805026, - 3428007399814096673254036282132435555425508460792469804428790971897733462163, - 914185908163270002133628759218993144034609160669792554111753479796045908313, - 524364526989685374907470318832186811437138954579977221453380381545518003033, - 1750700714903697708789718769124617152122195697123766484866944410868161971334, - 3287364644433022347116471045093230276031351368680760941129736750525087364830, - 2936398610182025614221594764943387849186676585211507577448788438498363417741, - 2353806544362665801840851354402231997471386461910141989996204623012395190376, - 1970141484971479373367527464449730593831874109262958782830543219487755255549, - 2393001591091529634760775424274881106661161797787191264296704494135080081377, - 2986606227259797722728369872804687298312253404217711972276159885672395255781, - 1895946695404106706947665326066559408208472176175703435285956512475957975543, - 1762356880044076889133856391675955384742710633798060761092994744648803681186, - 2376332339438019949540406736683284669215436558764141646234289425872250407714, - 1454976756676506843834296852446961771834473533454679073022417832857844894280, - 3548717794036887389548126075656668467057503009362313380257306181680385432581, - 965241988315227716419528016626328013623255115148047367598661016235428881472, - 364880470834340305656935466216573841491934395424487640998741517728075702652, - 2943398669550548190119897431262450183350472258799776593046925981023716929613, - 1448893857877452099597797155990678455277492286196553328412559163460378406221, - 1967481703172034532302291358157585036772430714320826461895477504253467787953, - 1325116985943935753797887026630510021999397105461424798371959688253221720342, - 2244622584920201730469439979893779654797150697429908221750550695114727636643, - 169421573908055569991679575627836830771160548739798159322462977095419291543, - 3095353763021763132566808185927306376406441767197745234247623641668407026312, - 1637340732530826646685902483519187879128294395545641724746044080108537320120, - 2294638457073272537380020652695805717451239479365560694926997691483900522709, - 1511366086802150243381238347922537557119352659921740484743601427611619799947, - 449428874493014357689284337690118381073239027368218521143371134362111769967, - 789682299596422945430069482574964319996794394882071176174058195011249469236, - 1084646862036354820409677700650699471864689661540217570329038731766739745205, - 78313880568815415355689662768930383042413140407006907408827845898228459940, - 356730105053361007857946113733839271044570452187014785515057265402328900429, - 234447037302476071968955219443368291760842844044519645486061976938132001423, - 2864422421311223063065427107781164541105240179822943356994920660882030317191, - 3220645513991770454830495359216702225738943217482751372374718117330072393321, - 35463109005973856944267069961705373986481909202559901998341156287817035506, - 952685587725119719066600350420803913063772382660689573594377138248265145726, - 752278194749177501493207399775926786061969166389064447953421142385745746087, - 2407348891063562262340882487501047709565400595257319006697201502933032707705, - 2463236356334325311251324372658459484411355441347448855372618996173032798473, - 2238179254064346364750464242776610666087953652801062085815768413875346396670, - 2802067085290870597935376309647815417818438178673940519081066667085272619330, - 2850335204360184195160225792945229847649912882393119826243003484121732080190, - 2470906391011157074848813029116011314321612957249816861338213895656078721145, - 2719124002389172942986323146717035094528812523569546471352767152752445448963, - 2231066334653800932432384670741847975321040198568834250178859804516478952571, - 2007545335999051836581333921231488913131319511359925956916354095167897717684, - 900055562911287563940939510518487860351444667545109216940154217563401258097, - 1785540044869890181738962662522696257112879586388985307150812891597163215144, - 3124957575510209676082035971129521944842511675997179494828222629358951850767, - 1043583892633525799267826910378029686330928692101917134824866886797301795924, - 2263814851238579887064085298532078321704597461027488639412693726621149012246, - 2178509090720733389462854288103494638309930461144580510806584326405126010226, - 3476125633826865086547635951618454636451132068386227939577574613425245274771, - 2259455312626966012641202975060147344918171603610064951002792385026849505887, - 305098219340569262959057929565627812075087945751515521330521567108712996106, - 2181302674128260211904148775356825065078036339592813338196413555567742282640, - 760001455233186214410668552162505595305171111386683529356117224501683716324, - 354000225697404900870934738845677552563144002135569724070635649184053068105, - 399746424720372601138503667692569207016506368222915655998246787269616563724, - 554038204075908614213636945466743711617750620995687318831362470141508850409, - 2414771763935056185515481317306102708097824540261617925672175647015584206638, - 436746505235351055124662611865059320594057790450596556503388308755572767601, - 1904032220774100883797625565070536195320261418193481759584640157146933348823, - 1585439592880267412357132988830450467294429187320155238313804981684103525304, - 2322641174567695905841903688399071847554604969491382105191878122061642897018, - 602944564805727049733612211740339068742069094439594360678132608096168984979, - 1208816517344716362456642101212950321451690046312184637589966461797871634826, - 1163748913684498566654974106370875829814517662801941919875773020671871445098, - 959518410079127715364330421000746491444338089403401618253019546230069982226, - 1675448091199059377170355681736783139463972613557485608633727295912202124848, - 1338461125234499703535531840041244336562142530765501780376258549778937873027, - 316789915981552919902716897538992166283892819738045579523670056652962656888, - 227955266610905211997334709807725722601588305008304119214249131018436323179, - 3381709505301028886192008685347707064024982525465981014487000424583724835047, - 451365838752100251651348038508237755501866172396086100168483912659280171734, - 1699997412555572818497550806208645583147667168198229131308436528170087009843, - 1465618277854710037531614366862433171917180117646667450615728687783059195833, - 381563838882669571134823269935860235474773812088273508885326290803258788424, - 3229122275928244842779644396992588751080818603473878466826718848082184225800, - 545387606087798164201110498513880963313000432429739921745585781892827620714, - 1208843514159268800663356459448970743482977805309097336706069141333928090126, - 3081663276582045868670977015875591027712331446847140634196640892417602385042, - 2291459491084933902041971665587536796091610110151808783511318573418867613127, - 2579771028898170514367854798207663546250691197248404002132166532149500283094, - 1777677994552518087374208961183375546840369438269188915624159194157076605380, - 422750871133655539833057120264959405545699402290245738869892411959027543551, - 492105516878092234407177319016174343957353422311138711424918171234565348986, - 1997967498961771614767095518974654922072224379745382308582938497617164686599, - 2304519903845617059363343833017194483031025019549672838855236609160222467365, - 2037374818970872092183633157023568593809011066091700956119322729105523014752, - 636153306624412577699280395923794564102367218463095219467229164563422015965, - 1328970312319045443911038331054000465835381334923381537091318109029345297339, - 1082674288667004001861638703121367025882049837457398286907762890864425846595, - 1543133337879949191106127951281603263108678831179403122875709477973408634234, - 1905375318811423424712042847444525894516840487996533927079091730368193537367, - 2651452647531898083081421692466881636074162574420661632112604368377034534873, - 3439901802466664016217956018725281603223385619234730842239164643504294950421, - 1443707951733771578508504623874685583067806190341928981999870884162098791029, - 19187465678615367566037675296367650342991516934889422972543839982073838308, - 3159344563370380045122321632113041403581194950834353484256587676167443492473, - 2535058710022946254196420242835973894386237482165006464554303013112854234308, - 2533404330028318305658063438235289234738359608848155038189233299207833719466, - 247140142821206022719057061597808887064858561859040104053312898890139793605, - 2515475874044065763107644236201597744513003147172500758001764952901826639170, - 1606182728937939913503915284073016241541643250868645854306908600376258372854, - 2704345336818944808163488926211595770342366650429972372904237916877697933890, - 3477809458907892176598592002154905922508759789345810763617372614186434974879, - 1353070205347713666351222548360697785337466176163739008008203029676702241524, - 2486995756785466441560055616765927902119197147714703044730735680601235679713, - 2676016451894542161844447636669903736203432411684743089788676004126118646443, - 2398895504226657284425306915928410731335098952170094535121452722159706389076, - 2239569092251890704279258123611921328787842267278251340748069435550379098577, - 2564330015787539727359700428301176920917076956693456991714848982708804202178, - 2892003336524304503545781706362133757665371608867888384068674117354306183774, - 1903443365794668136223397001294311391096789080380048487334795513758317962655, - 1845213504315532531064618105258155515949624940429872146623399030317040750435, - 1572059801848264322896597464575753794067171900058472370000596282550420744260, - 6799394487666764881370838689361824361195279802524726680585941417312696717, - 3497800705422481130531985782551507934273110167710848792228344934912929059019, - 2039451191166655550961667769072671543028963574744944718127079086545241018123, - 1381611106704896200142046525539531778217780460040076466592167235185869223523, - 2284837010474970189156574090064312845595668863684423526506998525924184226942, - 2853634638693036507172406509231762001156732526154224301004576497686958171868, - 115361031826947783113569769012489635432051339124039379484672548872245117930, - 2758790354713409492048663080335963047613400294462365114741343950961217313373, - 1418033626146774244049004361471532687712701849587621784444624364295939734899, - 795261739013585270722925143244842683567622304320596485343541001696326805409, - 975036563637557276193061080456064217187689026982310633242626933360145174991, - 1341234347475160929733826826982973681419938456208862179841623721756763932164, - 2451440061706370067883702393073771679325794890860375459204301869186893679177, - 1980903426900734452211358520187861857298342051445852122163213552218694767781, - 2122646717105342807380734101698698825216226769742570741618932185473597891170, - 1446307280231779270014643473172919715425826105025476020078029270709450229973, - 2432030101786106351553013637665908340613427075909648499685419582078117461484, - 240863509881275778911612615140219342484299816835792356948243889225183584998, - 2640497825282391992894113737542622435936690904631354045597848233846740849201, - 2957842877858826718564636415880893029786492524571917343268496216484818447454, - 1107572147290276598511260800766004476775289192116241104664234707914144984522, - 2929022399969869417658883061182255351433026349027286013934562886835852304805, - 2015954564455252396117910517671968966657174893041698274583685548761989465869, - 1047232942496770226131072810890531616863788923606886694941294090055331083297, - 2603165995764421054266947249597916356455949374049327099629110196805599690398, - 3178438030933303030296314146514319337448377010888123585240676253016848544924, - 1205036124728126013443049262820495401935766458617781953075081357123366373358, - 2859071470903123215941379173616378765201138164489966743921998749898784038260, - 495629542948242330406793497348190807517544509817118954026760747106255957843, - 2485968859119873746753392015904479404142774373000270829706421244984290479229, - 1109938482118692492079335381688463364857692544498421523494146971183482279398, - 3467942464842524535447312618038774425601167550490936041206414140186281753555, - 1697094864697730934551685518599365314517885702791790177430086252698604132625, - 1182522281365162709665580610038546439203976792105772581138557260282413339226, - 3602750309865719399531612416079109940347494444518133603094383879808771533878, - 726162074880131088492127584761223503250140802961950104590801495971920783324, - 2702711139218570391989114447285447716528174571087566071101996482939011620583, - 626918669206429324146316130074740537497468312715039913892232997294678254482, - 1173634494310687204996944643080826184642119267303996441290549321256778832310, - 2236028653577525715587031077010201854858546916782669302107650836994224782362, - 1406284570482579351411295180877941322895051278168578202813022614699763019785, - 3582714780704727321154655511991682460660998075499719278312356603861359304241, - 745754906463186079309916658460224416697349781327698908552453469527113060685, - 3108484778555354241102246010985306823216416374250779070070282861250540745099, - 1473460922097070038404187709358028262948785219277892941528673113402833339413, - 1933051635790941272072407214641350282116556087285958257450309399223640754222, - 2214807174148262592184483089027274211735313220687115252715771700415773617091, - 2685995859199255735908931833227218111970218952013763995869390604684794213360, - 2076946837981690174016457284072413597786014029624352945870476579904117265731, - 1411592527736154033597614685133849488044445632571645914052068241835307426655, - 9144483735458468465869145251434357970770374538461244223904262638033354716, - 3046516396230573134330664409547084681796979465193022532488546214762559533560, - 1269880941960518141121487029271360252283761921819689106740884103406851081193, - 167919751045922404470403821095219172832068346192445578106780616576745571952, - 490473839282914456610657040790181292799816203427869870111950927042219165359, - 1872638411447472972998138987397795894653212492570434463817786355427301454595, - 1093199526301354028293336415723351778627940319301628190945691077485785004611, - 1520936286506615456350667809541660910065200949163459142701762137750817293073, - 2790679280848501832107568777301296835751977659482291965921382563508358074274, - 675473802100924139654691630254806397954815518786006019121910233568774810804, - 2433396182903790226479160672278353366013121312445713562886171704351781750097, - 3260013426325476537931435767983411651603999651030224847777480176107129898714, - 1438148345761987421561558574735843211494706875722043389711513221682081904215, - 624154737344416215382306902613934981314994424462002321816823740770873052810, - 3364301920688053143551586712567939689977855041388070008552185235325830012062, - 2742607410429140355505366222756016022624428305509523620471032129641760085291, - 834240928133332873967572763960120336410554032725539634170571207479303927637, - 2693551910222869100808470627750063997576571726544082775086617714497310627108, - 2496672517668546063801485485101257007469619195579455116580093831122412148295, - 649544699826039218830738029380235641854027202144223059213775638936251543855, - 1290615906997290748208255360740731454289981570772397658879970024524871460003, - 632567800935459049740744098083221187821104059314788313978689913263252688789, - 2348437863095261407316568167910979152453013572595655851042083255625006891624, - 2481215200769461327932558612643415039838457081027256604870638707666156202850, - 57122707881135124965534576605147904075123889890659190204392608475906841103, - 2439476559823258978320004142231553407228843241022947558491415430683059942123, - 2561322912744615171166894324106518420053898199929890610436084715445762908107, - 3232402799020273123701672899620163879959024531795856118904701543579107478288, - 438963245466416667030274468984203196494549069586215159473149318689786606805 + 2271053, + 33, + 107445873352303768368973480805161701983252623752484514436684713074458913952878, + 2271088, + 126, + 30857584566168441037003880491416034517963922335279529428842321726534660370796, + 2271216, + 279, + 100818495293489323122031748669918934958362124820015560597878350855011412957754, + 2271495, + 262, + 99826020602760946796777744766062549105733702163016091423407923971224833934850, + 2271759, + 30, + 95969816778727904588790047382661719919917584188616986868284629025457696244680, + 384523815407694544148508281298941070810767632062254128134739339029866103847, + 2036815893572306222094282334798040348077053643021334097778473136881135944932, + 1015996371504523385190095285520666967054400305776402413747381643815212437372, + 1180712173673164323239857505744024942231213867890225629918517084768864000626, + 1855692576244303789783607951383077588380004924420518133185649860538934562273, + 471575767076522170124580482546472249362034079973634357159169769454748272840, + 941034987709213244647594536513994104823267906585638383903692845698353440963, + 1662013026644327359943788662255511623293608054161118102840242684690043797589, + 3355650968778537588834201098838263241730325267897090859129417865582349108111, + 2592122995289139387899575935264022963273079128037556704404695508234875057630, + 2817058652347036970352232029104425754578335942897040290012581812128675005683, + 661789943959381048421293367165381039414638840549419225083366925540098625861, + 1933446995753035187597860915419607909340339962981745484377941572666501456819, + 2944411797360156976253893840966085164651103705619755485891630536127923707329, + 1738680416691256429115035986276706063860645536848148319451627454398512001432, + 3315317746674256577364103392251934397470735887236295944257242614413637035953, + 538442274500323651489653977469304652884945210877550553013446868730791440943, + 2528114544448818755041204402780122822243844986352317289237110100546617383255, + 1227075363979841827683765122290785156820652634761977380036069664810069338178, + 1291118229092798295018207746678961009552728323970234812199642273664628357480, + 2070758657196816526545941713570116707237618373969264290218861562045990851949, + 119945377220878249646812184869356760992730911454838275400426919902575583453, + 1423404771977813184150044300524300340628800661734290122285891906782811105596, + 1507389709865275160124464039421739862379940335140979563356089831830648042315, + 479125008438178374916188544934095171828454280087011187057190266941013453457, + 605331443698260299792096958903512765531695526166697398604547093335860415208, + 3524554272224648073342541809913240628034871925550537511023892320714065256329, + 3241353003813109578146811737095757983314440183348108471887476565821909767900, + 2911896034396800139921603397421727053650013205238700762412901019947782879550, + 1584545676165091933601720247378600726123608468408997025580335526468960189281, + 962292230749144807773409231731226568442325857382179559460656426503074850845, + 58989611973273747812284067551538898035848878602524991300827499654405860675, + 1023009572555565396689494643363418266799527442317688295176108573572849092974, + 1723840450431227203069070912348051762624989193544332281878151359084330105311, + 796267721199969650612335492436185269676637701557081598284556660228630120127, + 3459319556494952832513575616781671826507915904482241442985695827028755159244, + 1517336686140015230780227358543879365198404216097228258437774063425480633628, + 817259787929400674351847611682032867540215632619931775674400826461889771899, + 1454915648882612297523238762985374566821108966118278941200122129768462185060, + 226791402448868176390876055977309955508582222221661319776689151368982827877, + 1199483406849496543882969675601432243973962759584454836585313981854737493800, + 1798875085601575318212759245882611605827582261534752974185591035383094581888, + 212221115759963018378037869623017845337173661361156855254342172756737390341, + 505749657674099577700870049267737124667368048309347176310125556346484850819, + 1483420649192869398244312616253488413005155795960176196158934507133227091490, + 1238561259404857929778772679851708493337656548542883865756561140075125773504, + 3237624849301677544199899507828235458811546959067850827608825383115735938089, + 139945288197198536724594091963144099727181966118334440291719789968816576040, + 2925688848029516285285132306735299682587227016563098129988169788339920958488, + 278531488529136521458589343589840269863932385138120648677177092364792040500, + 1729826740656138090144382744306232812863094762113768711682780382829923142681, + 1101726583342989121419811902001940126924999896524252872370114488179069390678, + 2391897940814891346952596559369713641771885824789110137782181943015668451166, + 592495854970854014608326314037023333727196178923578542412381637952896189927, + 679339820167343701292514866497797454833169220802672795475507323680685661444, + 3035274013865416169173235423957775981816520570379408992691080891047666399809, + 3395953400709547668209833620371429015103046257634229927441649418781335851720, + 2775483252470082337491779194313341891016519795608460527723684658033330654085, + 131038638528722288244730274453715045787417917109996811000504214918838842864, + 1938156539637843243948223025791539524699812040386144402518104137664550104844, + 2404446634182747264135191093783469854047409791017287203618088080953046507797, + 954368625297364712904393861558789027551387460724942139570862573227809166515, + 1213792134060212084478742622509888165028442853962174021162280204981587216061, + 2860796650388604972178583763874112519033562551707899915450725526190516648476, + 1646402414647439252253566377435269349583569701580593810560963003678628158260, + 2938734449123156131342047298863130369902125050055101643170576967526103158530, + 1298420377265335776175175710111683397456734338252981408444521940672126425310, + 1109968665319502992615309872563459573995980428078870386977958448581292722991, + 426444454809953967742632922940236282576685235867835562381182109486371954162, + 2338960816895352905985619476363170190988571435978267722388669229913021914002, + 1354069528649459304064740732084073637614475292139977989343990477185856646820, + 733428668952036052311170590299262199029076203465373959846945178327701224743, + 1132140788870866030444529400369746835493884598562684436522063319960793674479, + 262441752933164580660131567121007948399869696180441449499825912607141233569, + 1543742206333469378486616898443605198012445542239511185505236268813047859856, + 1089132363018330772362795060119273858821771508482801604619880193070797336714, + 158769540015797117139688537318828674474149435010547470245506769451692662730, + 3215475561780130740356182360506262560078041724621216559725857181464738866596, + 1244207990831325484119231578526407698076640133560666994009014146389795097339, + 1939930649078800908611292253553832529197243966996117812059441403259703919173, + 3089587694433216891792222996423889364968479945126103468174580504072602923923, + 2207738284350389904420535075001889914616647925372937352716739902213070953217, + 1276347967077640857854070099216079684935585569936890521560857780521643955153, + 1356930619418305517129457941277907379736274757644669409146193397669312098942, + 1335612991869895783070413558645558917255046030754117914591712604221523707150, + 1192159067201636444982609858891878949860503409044808229032867833298388904810, + 2495210530748640799557660577879340642915537157096782429001774456066022404166, + 862479508833129751863990029171197327897553832862717359106895498522284617051, + 1450741074687773307033200760589717715625967253526404133154902987267079882265, + 395602919986012092522857933039861693402263994627228338126772394716278711852, + 1762481448598679782703742919754663606175097175018635428885247084505217239481, + 835028608299067759244649202013728427582328168374551491542819907119112595875, + 2133299734103535407953303389778992991791013335005766096012773746883089440613, + 3275570089747097956042812429462775324637275329103064260236818078675589971936, + 2395565665263036692762386967758405690404273814129293828728618385904972603155, + 1035014511296552820375982003697435802175163921183070108921826126983175285286, + 644587463039152020338333720500668062582941386576099192059968889300148522582, + 3290284115361932523011466339934236496776323565776792372121863032486285090059, + 529974054324067115854339412315969505101864978872483794351502707711382248871, + 1153082777288777205016980914460827888900454155830210280257382779163191814722, + 2570758719079662297268359577955831726053683231572591674511360401206711104423, + 2026325576694155490122809676385537475426455579163076436779197973105710519273, + 1372251664669060762527378549403313476465874255674687182718745180590061883998, + 703808098522441754990837686136066214024871418903153284326708023994649797216, + 3408056555405950378176300729773123013931492834014065368667888389921394764110, + 1025879300267847728756990784529633998921352114646879467669702701541321891576, + 1745585408335742923266465771915253878429734408902410223362652499614947864794, + 410216650566224553487281780983725596035544085902558654934462234984896695725, + 2510535194774825060812020093332984354192515538778345071338135142088746659327, + 1383004848119953308999995550407143482411715374312910341975982397157812103135, + 3169253578701826585928665470975197468597348392047967736699626936974339328620, + 3491265693475874640518949686683932720454038662509842623980482218472201553794, + 203108818662973319396731719910472185793552950520345653404769964574115883381, + 3286366418309453781908099971890876054530781990829025988025456949142065686596, + 2703759107269581802566482401631204915271314308598988973615138720012412224390, + 17794645344209403509949627854649305187092099531614114493860218983350321257, + 3245082497552456208032697130682432016855630168563938823672260235879188541507, + 1758683211311471913050707961678122222842750942370608218907144424063905260689, + 2736840234964532061977174248191266352259270335000478029534362315392398505071, + 1569093244742975372351696348041127369829564984657401349601314596242489655227, + 3044569766472006976255492818188139314205073029272118129351127712173630433707, + 2276139454742389201407048102232356955257859262444415390881996990665171754960, + 2271330238477864690437308184259073826350364063856579854727267153239381606021, + 1664743708515056329005077696454315325603423788091497387087008246792300513521, + 2731333708504110502322003172054634660791600318328603489238292377348021165080, + 319305266418153164245115386264722654346826236106687743623035353444395141856, + 443131568205747486204742300642922599185128828643619726736087780581804505330, + 1655559340120177568929872733854214432267853911766540164202433906616417177204, + 2699125143501902987910648497123378314129042030048653952127711457753958085574, + 85228280904257745649415588394243949283105564597497467254329298193946973978, + 899376207806551713568417381810772447445378845116611513038009821364614865420, + 1125614965139469613849744218444630987442996275058788890012168487568630587410, + 1462437488809413283860199428889155582072083067736255884301575392337394383945, + 2956268650043290741827358135472564225351394911530672124431223418496779392560, + 104194110303225051759627476575450892886307576931096787935898367051799632534, + 1083915606527441912340875914276822128796399867159573400956556740348980402136, + 1991749042333623530961467339637843933991455166467862744637674472809297066530, + 1328038287232311194994595180356770790864807213523998783161183107711508395721, + 1777528279345144777348853341106165357942138770613545216888660042524973146783, + 3422186085841124101706218393926292572958618351190433718689173742366636789935, + 791540310090297410153357218593759580564719215957320044518562509599228518999, + 2310763958451793467638254487805146751269167270023512506695975364240932104285, + 1306267774569560958478798263540601610194192683315013741548211324313376591837, + 3165207062817494709059275619293352372490987322781741001625606878867788276044, + 1869377580346711082669495328810903261640209306567679306596971286667949691889, + 982821152224532971613244568957464117356658266088435023576888387557490048176, + 2886899825307555407307674449391484719297075258351795838170498536573338619368, + 3536272670612609775373874599354230509051570405559109809762908889289373092078, + 3197772871617731649518277689647758796767131055443625918968275812767739131504, + 3323139207740105043854986212204796493303470461696878890871850633628464779260, + 3524890877330003938387449840560657512844488920515851245995737241292531419704, + 1111886679953415580450447223388809227451862438322851613480482667342088148969, + 582446181279350175270083887339906307945145039132981075570209905947515232363, + 2761475029215800263017980051779430424697950073705969862601223333062549112602, + 2131352294048312120282191127149494502301911083392995335829747170606761380464, + 2331379109504898216851352414204050085569278009783610036725255815818296153351, + 2537757020310253835618122656789050082182719133718887835311025439097865800577, + 1891088344877999264660223997085201499873054347296662605898855829377275075440, + 1900897999777901221224260410949744765863378932949043614534299772092843622629, + 1916584693293810272424245387314265456079878150230788880098039899492704276959, + 389589186197577367335412588614310343346403033640769835346629436920940461371, + 2204061627194663655625045644952682514707154395868563377327575167517970851474, + 800705216806183592565500478682682215757515615090930237248853596751657496402, + 2922107259720641025722057172409443338979958727253737365389919882724221497300, + 1503097514803712102004545846356992152972784752113978147960101457548774877187, + 737389777844170108341747428455673409008571513366880107417695494954719594005, + 3332106345641221758691558737799020256361405476227155795721304748176717568673, + 2433615098341599858156111901482128673091409388700350174629155759598441776551, + 747506050388879121770615891555847185859485526966269429104065410358826515913, + 3063727330688781442685630185725444626171543360416902998532011988285818080479, + 592715835295710933222484649421157826688798727798679638087161205115554770356, + 3049280056848635285811530706388035945389568336040313786110277437485456662693, + 2484531564345355737446215822371865703855020616854479067207043406233621223554, + 753343038088035222310448883315041812068147146598446952985453134162970748977, + 798535193840188407111084465095607501407854787417163800506689974577975043504, + 2502275966313583263891717410179185589692280117249075914140499044033751747193, + 1197871910642983923208685640942269816070109644167641620388356819069494573373, + 749879208887947200530632834691770742854026816212600395134027872252722559905, + 2522007298524253210689304638141190115040483107220983048859413756936045685082, + 1339114124308210488210509214968551998514125907177061750267510788015131176651, + 2922242034116140488367194891259923509287194930542042766793403457302207346205, + 1410234440539801316559624489515909765273971073844461149278256790683128639611, + 2445118360142956848017940719598916243494555531424085566930501388934975284456 ] } diff --git a/verifier/sources/test/test_gps_statement_verifier.move b/verifier/sources/test/test_gps_statement_verifier.move index ec764da..6c9190b 100644 --- a/verifier/sources/test/test_gps_statement_verifier.move +++ b/verifier/sources/test/test_gps_statement_verifier.move @@ -84,7 +84,7 @@ module verifier_addr::test_gps_statement_verifier { // check if fact hash was registered assert!( - is_valid(address_of(signer), 72956752610473131951346251166088128464181887574427943765049219704282062358780), + is_valid(address_of(signer), 0xf4c454a0af3a6d019d64903dec2e854fa65eb1525fd8078b77fcc1a28ad6fc20), 1 );