From b2f61d9ee0463186e63e431243b24a6e10fe9115 Mon Sep 17 00:00:00 2001 From: Tom French Date: Tue, 22 Oct 2024 11:59:57 +0100 Subject: [PATCH] . --- .../1327_concrete_in_generic/Nargo.toml | 5 - .../1327_concrete_in_generic/Prover.toml | 1 - .../1327_concrete_in_generic/src/main.nr | 64 -- .../execution_success/1_mul/Nargo.toml | 7 - .../execution_success/1_mul/Prover.toml | 3 - .../execution_success/1_mul/src/main.nr | 9 - .../execution_success/2_div/Nargo.toml | 6 - .../execution_success/2_div/Prover.toml | 3 - .../execution_success/2_div/src/main.nr | 7 - .../execution_success/3_add/Nargo.toml | 6 - .../execution_success/3_add/Prover.toml | 3 - .../execution_success/3_add/src/main.nr | 8 - .../execution_success/4_sub/Nargo.toml | 6 - .../execution_success/4_sub/Prover.toml | 3 - .../execution_success/4_sub/src/main.nr | 5 - .../execution_success/5_over/Nargo.toml | 6 - .../execution_success/5_over/Prover.toml | 2 - .../execution_success/5_over/src/main.nr | 9 - test_programs/execution_success/6/Nargo.toml | 6 - test_programs/execution_success/6/Prover.toml | 39 - test_programs/execution_success/6/src/main.nr | 18 - .../execution_success/6_array/Nargo.toml | 6 - .../execution_success/6_array/Prover.toml | 8 - .../execution_success/6_array/src/main.nr | 52 -- test_programs/execution_success/7/Nargo.toml | 6 - test_programs/execution_success/7/Prover.toml | 38 - test_programs/execution_success/7/src/main.nr | 9 - .../execution_success/7_function/Nargo.toml | 6 - .../execution_success/7_function/Prover.toml | 6 - .../execution_success/7_function/src/main.nr | 139 --- .../acir_inside_brillig_recursion/Nargo.toml | 6 - .../acir_inside_brillig_recursion/Prover.toml | 1 - .../acir_inside_brillig_recursion/src/main.nr | 17 - .../aes128_encrypt/Nargo.toml | 7 - .../aes128_encrypt/Prover.toml | 4 - .../aes128_encrypt/src/main.nr | 40 - .../arithmetic_binary_operations/Nargo.toml | 6 - .../arithmetic_binary_operations/Prover.toml | 3 - .../arithmetic_binary_operations/src/main.nr | 15 - .../array_dynamic/Nargo.toml | 6 - .../array_dynamic/Prover.toml | 9 - .../array_dynamic/src/main.nr | 38 - .../array_dynamic_blackbox_input/Nargo.toml | 7 - .../array_dynamic_blackbox_input/Prover.toml | 4 - .../array_dynamic_blackbox_input/src/main.nr | 27 - .../array_dynamic_main_output/Nargo.toml | 7 - .../array_dynamic_main_output/Prover.toml | 2 - .../array_dynamic_main_output/src/main.nr | 4 - .../Nargo.toml | 7 - .../Prover.toml | 23 - .../src/main.nr | 20 - .../execution_success/array_eq/Nargo.toml | 6 - .../execution_success/array_eq/Prover.toml | 2 - .../execution_success/array_eq/src/main.nr | 4 - .../array_if_cond_simple/Nargo.toml | 7 - .../array_if_cond_simple/Prover.toml | 2 - .../array_if_cond_simple/src/main.nr | 8 - .../execution_success/array_len/Nargo.toml | 6 - .../execution_success/array_len/Prover.toml | 3 - .../execution_success/array_len/src/main.nr | 24 - .../execution_success/array_neq/Nargo.toml | 6 - .../execution_success/array_neq/Prover.toml | 2 - .../execution_success/array_neq/src/main.nr | 4 - .../execution_success/array_sort/Nargo.toml | 5 - .../execution_success/array_sort/Prover.toml | 1 - .../execution_success/array_sort/src/main.nr | 6 - .../array_to_slice/Nargo.toml | 7 - .../array_to_slice/Prover.toml | 2 - .../array_to_slice/src/main.nr | 56 -- .../array_to_slice_constant_length/Nargo.toml | 7 - .../Prover.toml | 1 - .../src/main.nr | 12 - .../execution_success/as_witness/Nargo.toml | 6 - .../execution_success/as_witness/Prover.toml | 1 - .../execution_success/as_witness/src/main.nr | 5 - .../execution_success/assert/Nargo.toml | 6 - .../execution_success/assert/Prover.toml | 1 - .../execution_success/assert/src/main.nr | 3 - .../assert_statement/Nargo.toml | 6 - .../assert_statement/Prover.toml | 2 - .../assert_statement/src/main.nr | 7 - .../assert_statement_recursive/Nargo.toml | 7 - .../assert_statement_recursive/Prover.toml | 2 - .../assert_statement_recursive/src/main.nr | 11 - .../execution_success/assign_ex/Nargo.toml | 6 - .../execution_success/assign_ex/Prover.toml | 2 - .../execution_success/assign_ex/src/main.nr | 14 - .../bench_2_to_17/Nargo.toml | 7 - .../bench_2_to_17/Prover.toml | 1 - .../bench_2_to_17/src/main.nr | 8 - .../bench_ecdsa_secp256k1/Nargo.toml | 7 - .../bench_ecdsa_secp256k1/Prover.toml | 169 ---- .../bench_ecdsa_secp256k1/src/main.nr | 6 - .../execution_success/bigint/Nargo.toml | 6 - .../execution_success/bigint/Prover.toml | 2 - .../execution_success/bigint/src/main.nr | 80 -- .../binary_operator_overloading/Nargo.toml | 7 - .../binary_operator_overloading/Prover.toml | 2 - .../binary_operator_overloading/src/main.nr | 150 ---- .../execution_success/bit_and/Nargo.toml | 6 - .../execution_success/bit_and/Prover.toml | 4 - .../execution_success/bit_and/src/main.nr | 16 - .../execution_success/bit_not/Nargo.toml | 7 - .../execution_success/bit_not/Prover.toml | 1 - .../execution_success/bit_not/src/main.nr | 8 - .../bit_shifts_comptime/Nargo.toml | 6 - .../bit_shifts_comptime/Prover.toml | 1 - .../bit_shifts_comptime/src/main.nr | 26 - .../bit_shifts_runtime/Nargo.toml | 6 - .../bit_shifts_runtime/Prover.toml | 2 - .../bit_shifts_runtime/src/main.nr | 20 - .../execution_success/blake3/Nargo.toml | 7 - .../execution_success/blake3/Prover.toml | 37 - .../execution_success/blake3/src/main.nr | 4 - .../execution_success/bool_not/Nargo.toml | 6 - .../execution_success/bool_not/Prover.toml | 1 - .../execution_success/bool_not/src/main.nr | 4 - .../execution_success/bool_or/Nargo.toml | 6 - .../execution_success/bool_or/Prover.toml | 2 - .../execution_success/bool_or/src/main.nr | 6 - .../break_and_continue/Nargo.toml | 7 - .../break_and_continue/src/main.nr | 15 - .../brillig_acir_as_brillig/Nargo.toml | 6 - .../brillig_acir_as_brillig/Prover.toml | 1 - .../brillig_acir_as_brillig/src/main.nr | 44 - .../brillig_array_to_slice/Nargo.toml | 7 - .../brillig_array_to_slice/Prover.toml | 1 - .../brillig_array_to_slice/src/main.nr | 20 - .../brillig_arrays/Nargo.toml | 6 - .../brillig_arrays/Prover.toml | 1 - .../brillig_arrays/src/main.nr | 30 - .../brillig_assert/Nargo.toml | 6 - .../brillig_assert/Prover.toml | 1 - .../brillig_assert/src/main.nr | 14 - .../brillig_blake2s/Nargo.toml | 6 - .../brillig_blake2s/Prover.toml | 35 - .../brillig_blake2s/src/main.nr | 12 - .../brillig_blake3/Nargo.toml | 7 - .../brillig_blake3/Prover.toml | 37 - .../brillig_blake3/src/main.nr | 4 - .../Nargo.toml | 6 - .../Prover.toml | 1 - .../src/main.nr | 91 -- .../brillig_calls/Nargo.toml | 6 - .../brillig_calls/Prover.toml | 1 - .../brillig_calls/src/main.nr | 60 -- .../brillig_calls_array/Nargo.toml | 6 - .../brillig_calls_array/Prover.toml | 1 - .../brillig_calls_array/src/main.nr | 35 - .../brillig_calls_conditionals/Nargo.toml | 6 - .../brillig_calls_conditionals/Prover.toml | 1 - .../brillig_calls_conditionals/src/main.nr | 38 - .../brillig_conditional/Nargo.toml | 6 - .../brillig_conditional/Prover.toml | 1 - .../brillig_conditional/src/main.nr | 12 - .../Nargo.toml | 6 - .../Prover.toml | 1 - .../src/main.nr | 16 - .../execution_success/brillig_cow/Nargo.toml | 6 - .../execution_success/brillig_cow/Prover.toml | 7 - .../execution_success/brillig_cow/src/main.nr | 49 -- .../brillig_cow_assign/Nargo.toml | 7 - .../brillig_cow_assign/Prover.toml | 2 - .../brillig_cow_assign/src/main.nr | 23 - .../brillig_cow_regression/Nargo.toml | 6 - .../brillig_cow_regression/Prover.toml | 229 ----- .../brillig_cow_regression/src/main.nr | 178 ---- .../brillig_ecdsa_secp256k1/Nargo.toml | 6 - .../brillig_ecdsa_secp256k1/Prover.toml | 169 ---- .../brillig_ecdsa_secp256k1/src/main.nr | 17 - .../brillig_ecdsa_secp256r1/Nargo.toml | 6 - .../brillig_ecdsa_secp256r1/Prover.toml | 20 - .../brillig_ecdsa_secp256r1/src/main.nr | 17 - .../brillig_fns_as_values/Nargo.toml | 6 - .../brillig_fns_as_values/Prover.toml | 1 - .../brillig_fns_as_values/src/main.nr | 36 - .../brillig_hash_to_field/Nargo.toml | 6 - .../brillig_hash_to_field/Prover.toml | 1 - .../brillig_hash_to_field/src/main.nr | 12 - .../brillig_identity_function/Nargo.toml | 6 - .../brillig_identity_function/Prover.toml | 2 - .../brillig_identity_function/src/main.nr | 34 - .../brillig_keccak/Nargo.toml | 6 - .../brillig_keccak/Prover.toml | 35 - .../brillig_keccak/src/main.nr | 26 - .../execution_success/brillig_loop/Nargo.toml | 6 - .../brillig_loop/Prover.toml | 1 - .../brillig_loop/src/main.nr | 34 - .../brillig_loop_size_regression/Nargo.toml | 7 - .../brillig_loop_size_regression/Prover.toml | 0 .../brillig_loop_size_regression/src/main.nr | 16 - .../brillig_nested_arrays/Nargo.toml | 5 - .../brillig_nested_arrays/Prover.toml | 2 - .../brillig_nested_arrays/src/main.nr | 43 - .../execution_success/brillig_not/Nargo.toml | 6 - .../execution_success/brillig_not/Prover.toml | 2 - .../execution_success/brillig_not/src/main.nr | 13 - .../brillig_oracle/Nargo.toml | 6 - .../brillig_oracle/Prover.toml | 2 - .../brillig_oracle/src/main.nr | 44 - .../brillig_pedersen/Nargo.toml | 6 - .../brillig_pedersen/Prover.toml | 7 - .../brillig_pedersen/src/main.nr | 20 - .../brillig_rc_regression_6123/Nargo.toml | 7 - .../brillig_rc_regression_6123/src/main.nr | 41 - .../brillig_recursion/Nargo.toml | 6 - .../brillig_recursion/Prover.toml | 1 - .../brillig_recursion/src/main.nr | 16 - .../brillig_references/Nargo.toml | 6 - .../brillig_references/Prover.toml | 1 - .../brillig_references/src/main.nr | 49 -- .../brillig_sha256/Nargo.toml | 6 - .../brillig_sha256/Prover.toml | 35 - .../brillig_sha256/src/main.nr | 15 - .../brillig_slices/Nargo.toml | 5 - .../brillig_slices/Prover.toml | 2 - .../brillig_slices/src/main.nr | 140 ---- .../brillig_unitialised_arrays/Nargo.toml | 6 - .../brillig_unitialised_arrays/Prover.toml | 2 - .../brillig_unitialised_arrays/src/main.nr | 14 - .../cast_and_shift_global/Nargo.toml | 7 - .../cast_and_shift_global/Prover.toml | 0 .../cast_and_shift_global/src/main.nr | 8 - .../execution_success/cast_bool/Nargo.toml | 6 - .../execution_success/cast_bool/Prover.toml | 2 - .../execution_success/cast_bool/src/main.nr | 6 - .../check_large_field_bits/Nargo.toml | 7 - .../check_large_field_bits/src/main.nr | 45 - .../closures_mut_ref/Nargo.toml | 5 - .../closures_mut_ref/Prover.toml | 1 - .../closures_mut_ref/src/main.nr | 30 - .../comptime_println/Nargo.toml | 7 - .../comptime_println/src/main.nr | 7 - .../comptime_slice_equality/Nargo.toml | 7 - .../comptime_slice_equality/src/main.nr | 6 - .../conditional_1/Nargo.toml | 6 - .../conditional_1/Prover.toml | 38 - .../conditional_1/src/main.nr | 91 -- .../conditional_2/Nargo.toml | 6 - .../conditional_2/Prover.toml | 2 - .../conditional_2/src/main.nr | 49 -- .../conditional_regression_421/Nargo.toml | 6 - .../conditional_regression_421/Prover.toml | 2 - .../conditional_regression_421/src/main.nr | 10 - .../conditional_regression_547/Nargo.toml | 6 - .../conditional_regression_547/Prover.toml | 1 - .../conditional_regression_547/src/main.nr | 16 - .../conditional_regression_661/Nargo.toml | 6 - .../conditional_regression_661/Prover.toml | 38 - .../conditional_regression_661/src/main.nr | 28 - .../Nargo.toml | 6 - .../Prover.toml | 38 - .../src/main.nr | 36 - .../Nargo.toml | 6 - .../Prover.toml | 1 - .../src/main.nr | 15 - .../execution_success/custom_entry/Nargo.toml | 7 - .../custom_entry/Prover.toml | 1 - .../custom_entry/src/foobarbaz.nr | 3 - .../execution_success/databus/Nargo.toml | 6 - .../execution_success/databus/Prover.toml | 3 - .../execution_success/databus/src/main.nr | 12 - .../databus_composite_calldata/Nargo.toml | 6 - .../databus_composite_calldata/Prover.toml | 11 - .../databus_composite_calldata/src/main.nr | 16 - .../databus_in_fn_with_empty_arr/Nargo.toml | 6 - .../databus_in_fn_with_empty_arr/Prover.toml | 3 - .../databus_in_fn_with_empty_arr/src/main.nr | 3 - .../databus_two_calldata/Nargo.toml | 6 - .../databus_two_calldata/Prover.toml | 3 - .../databus_two_calldata/src/main.nr | 11 - .../databus_two_calldata_simple/Nargo.toml | 6 - .../databus_two_calldata_simple/Prover.toml | 3 - .../databus_two_calldata_simple/src/main.nr | 5 - .../execution_success/debug_logs/Nargo.toml | 5 - .../execution_success/debug_logs/Prover.toml | 2 - .../execution_success/debug_logs/src/main.nr | 137 --- .../execution_success/derive/Nargo.toml | 7 - .../execution_success/derive/src/main.nr | 76 -- .../diamond_deps_0/Nargo.toml | 8 - .../diamond_deps_0/Prover.toml | 3 - .../diamond_deps_0/src/main.nr | 7 - .../double_verify_honk_proof/Nargo.toml | 6 - .../double_verify_honk_proof/Prover.toml | 5 - .../double_verify_honk_proof/src/main.nr | 29 - .../Nargo.toml | 6 - .../Prover.toml | 5 - .../src/main.nr | 30 - .../double_verify_nested_proof/Nargo.toml | 7 - .../double_verify_nested_proof/Prover.toml | 5 - .../double_verify_nested_proof/src/main.nr | 25 - .../double_verify_proof/Nargo.toml | 7 - .../double_verify_proof/Prover.toml | 5 - .../double_verify_proof/src/main.nr | 18 - .../double_verify_proof_recursive/Nargo.toml | 5 - .../double_verify_proof_recursive/Prover.toml | 5 - .../double_verify_proof_recursive/src/main.nr | 19 - .../ecdsa_secp256k1/Nargo.toml | 7 - .../ecdsa_secp256k1/Prover.toml | 209 ----- .../ecdsa_secp256k1/src/main.nr | 14 - .../ecdsa_secp256r1/Nargo.toml | 7 - .../ecdsa_secp256r1/Prover.toml | 20 - .../ecdsa_secp256r1/src/main.nr | 4 - .../ecdsa_secp256r1_3x/Nargo.toml | 7 - .../ecdsa_secp256r1_3x/Prover.toml | 57 -- .../ecdsa_secp256r1_3x/src/main.nr | 21 - .../execution_success/eddsa/Nargo.toml | 7 - .../execution_success/eddsa/Prover.toml | 3 - .../execution_success/eddsa/src/main.nr | 55 -- .../embedded_curve_ops/Nargo.toml | 6 - .../embedded_curve_ops/Prover.toml | 3 - .../embedded_curve_ops/src/main.nr | 22 - .../execution_success/empty/Nargo.toml | 5 - .../execution_success/empty/src/main.nr | 1 - .../field_attribute/Nargo.toml | 6 - .../field_attribute/Prover.toml | 1 - .../field_attribute/src/main.nr | 19 - .../execution_success/fold_2_to_17/Nargo.toml | 7 - .../fold_2_to_17/Prover.toml | 1 - .../fold_2_to_17/src/main.nr | 16 - .../fold_after_inlined_calls/Nargo.toml | 7 - .../fold_after_inlined_calls/Prover.toml | 1 - .../fold_after_inlined_calls/src/main.nr | 14 - .../execution_success/fold_basic/Nargo.toml | 7 - .../execution_success/fold_basic/Prover.toml | 2 - .../execution_success/fold_basic/src/main.nr | 13 - .../fold_basic_nested_call/Nargo.toml | 7 - .../fold_basic_nested_call/Prover.toml | 2 - .../fold_basic_nested_call/src/main.nr | 16 - .../fold_call_witness_condition/Nargo.toml | 7 - .../fold_call_witness_condition/Prover.toml | 3 - .../fold_call_witness_condition/src/main.nr | 16 - .../fold_complex_outputs/Nargo.toml | 7 - .../fold_complex_outputs/Prover.toml | 2 - .../fold_complex_outputs/src/main.nr | 72 -- .../fold_distinct_return/Nargo.toml | 7 - .../fold_distinct_return/Prover.toml | 2 - .../fold_distinct_return/src/main.nr | 10 - .../fold_fibonacci/Nargo.toml | 7 - .../fold_fibonacci/Prover.toml | 1 - .../fold_fibonacci/src/main.nr | 12 - .../fold_numeric_generic_poseidon/Nargo.toml | 7 - .../fold_numeric_generic_poseidon/Prover.toml | 2 - .../fold_numeric_generic_poseidon/src/main.nr | 33 - .../execution_success/generics/Nargo.toml | 6 - .../execution_success/generics/Prover.toml | 2 - .../execution_success/generics/src/main.nr | 82 -- .../global_consts/Nargo.toml | 6 - .../global_consts/Prover.toml | 4 - .../global_consts/src/baz.nr | 5 - .../global_consts/src/foo.nr | 11 - .../global_consts/src/foo/bar.nr | 5 - .../global_consts/src/main.nr | 126 --- .../hash_to_field/Nargo.toml | 6 - .../hash_to_field/Prover.toml | 1 - .../hash_to_field/src/main.nr | 3 - .../execution_success/hashmap/Nargo.toml | 6 - .../execution_success/hashmap/Prover.toml | 26 - .../execution_success/hashmap/src/main.nr | 361 -------- .../execution_success/hashmap/src/utils.nr | 10 - .../higher_order_functions/Nargo.toml | 6 - .../higher_order_functions/Prover.toml | 1 - .../higher_order_functions/src/main.nr | 99 --- .../if_else_chain/Nargo.toml | 6 - .../if_else_chain/Prover.toml | 2 - .../if_else_chain/src/main.nr | 15 - .../execution_success/import/Nargo.toml | 6 - .../execution_success/import/Prover.toml | 2 - .../execution_success/import/src/import.nr | 3 - .../execution_success/import/src/main.nr | 9 - .../inline_never_basic/Nargo.toml | 7 - .../inline_never_basic/Prover.toml | 2 - .../inline_never_basic/src/main.nr | 8 - .../integer_array_indexing/Nargo.toml | 6 - .../integer_array_indexing/Prover.toml | 2 - .../integer_array_indexing/src/main.nr | 10 - .../is_unconstrained/Nargo.toml | 6 - .../is_unconstrained/Prover.toml | 1 - .../is_unconstrained/src/main.nr | 16 - .../execution_success/keccak256/Nargo.toml | 6 - .../execution_success/keccak256/Prover.toml | 35 - .../execution_success/keccak256/src/main.nr | 21 - .../execution_success/loop/Nargo.toml | 6 - .../execution_success/loop/Prover.toml | 1 - .../execution_success/loop/src/main.nr | 23 - .../main_bool_arg/Nargo.toml | 6 - .../main_bool_arg/Prover.toml | 2 - .../main_bool_arg/src/main.nr | 8 - .../execution_success/main_return/Nargo.toml | 6 - .../execution_success/main_return/Prover.toml | 1 - .../execution_success/main_return/src/main.nr | 3 - .../merkle_insert/Nargo.toml | 6 - .../merkle_insert/Prover.toml | 11 - .../merkle_insert/src/main.nr | 21 - .../missing_closure_env/Nargo.toml | 7 - .../missing_closure_env/Prover.toml | 1 - .../missing_closure_env/src/main.nr | 16 - .../execution_success/modules/Nargo.toml | 6 - .../execution_success/modules/Prover.toml | 2 - .../execution_success/modules/src/foo.nr | 3 - .../execution_success/modules/src/main.nr | 14 - .../execution_success/modules_more/Nargo.toml | 6 - .../modules_more/Prover.toml | 4 - .../execution_success/modules_more/src/foo.nr | 5 - .../modules_more/src/foo/bar.nr | 3 - .../modules_more/src/main.nr | 5 - .../execution_success/modulus/Nargo.toml | 6 - .../execution_success/modulus/Prover.toml | 290 ------- .../execution_success/modulus/src/main.nr | 34 - .../nested_array_dynamic/Nargo.toml | 6 - .../nested_array_dynamic/Prover.toml | 29 - .../nested_array_dynamic/src/main.nr | 76 -- .../nested_array_dynamic_simple/Nargo.toml | 7 - .../nested_array_dynamic_simple/Prover.toml | 1 - .../nested_array_dynamic_simple/src/main.nr | 9 - .../nested_array_in_slice/Nargo.toml | 5 - .../nested_array_in_slice/Prover.toml | 1 - .../nested_array_in_slice/src/main.nr | 49 -- .../nested_arrays_from_brillig/Nargo.toml | 5 - .../nested_arrays_from_brillig/Prover.toml | 1 - .../nested_arrays_from_brillig/src/main.nr | 28 - .../Nargo.toml | 7 - .../Prover.toml | 2 - .../src/main.nr | 13 - .../no_predicates_basic/Nargo.toml | 7 - .../no_predicates_basic/Prover.toml | 2 - .../no_predicates_basic/src/main.nr | 8 - .../no_predicates_brillig/Nargo.toml | 7 - .../no_predicates_brillig/Prover.toml | 2 - .../no_predicates_brillig/src/main.nr | 16 - .../Nargo.toml | 7 - .../Prover.toml | 2 - .../src/main.nr | 33 - .../overlapping_dep_and_mod/Nargo.toml | 6 - .../overlapping_dep_and_mod/bin/Nargo.toml | 8 - .../overlapping_dep_and_mod/bin/Prover.toml | 0 .../overlapping_dep_and_mod/bin/src/main.nr | 14 - .../overlapping_dep_and_mod/foo/Nargo.toml | 7 - .../overlapping_dep_and_mod/foo/src/lib.nr | 5 - .../pedersen_check/Nargo.toml | 6 - .../pedersen_check/Prover.toml | 7 - .../pedersen_check/src/main.nr | 20 - .../pedersen_commitment/Nargo.toml | 6 - .../pedersen_commitment/Prover.toml | 7 - .../pedersen_commitment/src/main.nr | 9 - .../pedersen_hash/Nargo.toml | 6 - .../pedersen_hash/Prover.toml | 4 - .../pedersen_hash/src/main.nr | 8 - .../execution_success/poseidon2/Nargo.toml | 6 - .../execution_success/poseidon2/Prover.toml | 5 - .../execution_success/poseidon2/src/main.nr | 8 - .../poseidon_bn254_hash/Nargo.toml | 7 - .../poseidon_bn254_hash/Prover.toml | 4 - .../poseidon_bn254_hash/src/main.nr | 11 - .../poseidon_bn254_hash_width_3/Nargo.toml | 9 - .../poseidon_bn254_hash_width_3/Prover.toml | 4 - .../poseidon_bn254_hash_width_3/src/main.nr | 9 - .../poseidonsponge_x5_254/Nargo.toml | 7 - .../poseidonsponge_x5_254/Prover.toml | 1 - .../poseidonsponge_x5_254/src/main.nr | 8 - .../execution_success/pred_eq/Nargo.toml | 6 - .../execution_success/pred_eq/Prover.toml | 2 - .../execution_success/pred_eq/src/main.nr | 4 - .../execution_success/prelude/Nargo.toml | 7 - .../execution_success/prelude/src/main.nr | 31 - .../reference_only_used_as_alias/Nargo.toml | 7 - .../reference_only_used_as_alias/Prover.toml | 3 - .../reference_only_used_as_alias/src/main.nr | 88 -- .../execution_success/references/Nargo.toml | 6 - .../execution_success/references/Prover.toml | 1 - .../execution_success/references/src/main.nr | 226 ----- .../execution_success/regression/Nargo.toml | 6 - .../execution_success/regression/Prover.toml | 2 - .../execution_success/regression/src/main.nr | 132 --- .../regression_2660/Nargo.toml | 7 - .../regression_2660/Prover.toml | 1 - .../regression_2660/src/main.nr | 6 - .../regression_3051/Nargo.toml | 7 - .../regression_3051/src/main.nr | 24 - .../regression_3394/Nargo.toml | 6 - .../regression_3394/Prover.toml | 1 - .../regression_3394/src/main.nr | 4 - .../regression_3607/Nargo.toml | 6 - .../regression_3607/Prover.toml | 1 - .../regression_3607/src/main.nr | 8 - .../regression_3889/Nargo.toml | 7 - .../regression_3889/Prover.toml | 10 - .../regression_3889/src/main.nr | 22 - .../regression_4088/Nargo.toml | 5 - .../regression_4088/Prover.toml | 2 - .../regression_4088/src/main.nr | 27 - .../regression_4124/Nargo.toml | 7 - .../regression_4124/Prover.toml | 1 - .../regression_4124/src/main.nr | 39 - .../regression_4202/Nargo.toml | 7 - .../regression_4202/Prover.toml | 1 - .../regression_4202/src/main.nr | 14 - .../regression_4449/Nargo.toml | 6 - .../regression_4449/Prover.toml | 3 - .../regression_4449/src/main.nr | 13 - .../regression_4709/Nargo.toml | 6 - .../regression_4709/Prover.toml | 2 - .../regression_4709/src/main.nr | 271 ------ .../regression_5045/Nargo.toml | 7 - .../regression_5045/Prover.toml | 1 - .../regression_5045/src/main.nr | 20 - .../regression_5252/Nargo.toml | 7 - .../regression_5252/Prover.toml | 6 - .../regression_5252/src/main.nr | 23 - .../regression_5435/Nargo.toml | 7 - .../regression_5435/Prover.toml | 2 - .../regression_5435/src/main.nr | 20 - .../regression_5462/Nargo.toml | 7 - .../regression_5462/src/main.nr | 11 - .../regression_5615/Nargo.toml | 7 - .../regression_5615/src/main.nr | 12 - .../regression_capacity_tracker/Nargo.toml | 7 - .../regression_capacity_tracker/Prover.toml | 3 - .../regression_capacity_tracker/src/main.nr | 19 - .../regression_mem_op_predicate/Nargo.toml | 6 - .../regression_mem_op_predicate/Prover.toml | 2 - .../regression_mem_op_predicate/src/main.nr | 8 - .../Nargo.toml | 6 - .../Prover.toml | 1 - .../src/main.nr | 22 - .../Nargo.toml | 7 - .../Prover.toml | 18 - .../src/main.nr | 38 - .../Nargo.toml | 5 - .../Prover.toml | 2 - .../src/main.nr | 25 - .../execution_success/schnorr/Nargo.toml | 6 - .../execution_success/schnorr/Prover.toml | 70 -- .../execution_success/schnorr/src/main.nr | 28 - .../execution_success/sha256/Nargo.toml | 6 - .../execution_success/sha256/Prover.toml | 38 - .../execution_success/sha256/src/main.nr | 25 - .../sha256_regression/Nargo.toml | 7 - .../sha256_regression/Prover.toml | 14 - .../sha256_regression/src/main.nr | 39 - .../sha256_var_padding_regression/Nargo.toml | 7 - .../sha256_var_padding_regression/Prover.toml | 2 - .../sha256_var_padding_regression/src/main.nr | 29 - .../sha256_var_size_regression/Nargo.toml | 7 - .../sha256_var_size_regression/Prover.toml | 3 - .../sha256_var_size_regression/src/main.nr | 17 - .../Nargo.toml | 7 - .../Prover.toml | 2 - .../src/main.nr | 9 - .../execution_success/sha2_byte/Nargo.toml | 6 - .../execution_success/sha2_byte/Prover.toml | 5 - .../execution_success/sha2_byte/src/main.nr | 9 - .../side_effects_constrain_array/Nargo.toml | 7 - .../side_effects_constrain_array/Prover.toml | 1 - .../side_effects_constrain_array/src/main.nr | 17 - .../signed_arithmetic/Nargo.toml | 6 - .../signed_arithmetic/Prover.toml | 3 - .../signed_arithmetic/src/main.nr | 32 - .../execution_success/signed_cmp/Nargo.toml | 6 - .../execution_success/signed_cmp/Prover.toml | 1 - .../execution_success/signed_cmp/src/main.nr | 8 - .../signed_comparison/Nargo.toml | 6 - .../signed_comparison/Prover.toml | 3 - .../signed_comparison/src/main.nr | 11 - .../execution_success/signed_div/Nargo.toml | 6 - .../execution_success/signed_div/Prover.toml | 75 -- .../execution_success/signed_div/src/main.nr | 11 - .../signed_division/Nargo.toml | 6 - .../signed_division/Prover.toml | 3 - .../signed_division/src/main.nr | 20 - .../simple_2d_array/Nargo.toml | 6 - .../simple_2d_array/Prover.toml | 3 - .../simple_2d_array/src/main.nr | 8 - .../simple_add_and_ret_arr/Nargo.toml | 5 - .../simple_add_and_ret_arr/Prover.toml | 1 - .../simple_add_and_ret_arr/src/main.nr | 8 - .../simple_array_param/Nargo.toml | 5 - .../simple_array_param/Prover.toml | 1 - .../simple_array_param/src/main.nr | 6 - .../simple_bitwise/Nargo.toml | 5 - .../simple_bitwise/Prover.toml | 4 - .../simple_bitwise/src/main.nr | 9 - .../simple_comparison/Nargo.toml | 6 - .../simple_comparison/Prover.toml | 2 - .../simple_comparison/src/main.nr | 6 - .../execution_success/simple_mut/Nargo.toml | 5 - .../execution_success/simple_mut/Prover.toml | 1 - .../execution_success/simple_mut/src/main.nr | 6 - .../execution_success/simple_not/Nargo.toml | 5 - .../execution_success/simple_not/Prover.toml | 1 - .../execution_success/simple_not/src/main.nr | 4 - .../execution_success/simple_print/Nargo.toml | 5 - .../simple_print/Prover.toml | 2 - .../simple_print/src/main.nr | 7 - .../simple_program_addition/Nargo.toml | 6 - .../simple_program_addition/Prover.toml | 1 - .../simple_program_addition/src/main.nr | 5 - .../execution_success/simple_radix/Nargo.toml | 5 - .../simple_radix/Prover.toml | 1 - .../simple_radix/src/main.nr | 7 - .../simple_shield/Nargo.toml | 6 - .../simple_shield/Prover.toml | 11 - .../simple_shield/src/main.nr | 26 - .../simple_shift_left_right/Nargo.toml | 6 - .../simple_shift_left_right/Prover.toml | 1 - .../simple_shift_left_right/src/main.nr | 8 - .../single_verify_proof/Nargo.toml | 7 - .../single_verify_proof/Prover.toml | 4 - .../single_verify_proof/src/main.nr | 15 - .../slice_coercion/Nargo.toml | 7 - .../slice_coercion/Prover.toml | 2 - .../slice_coercion/src/main.nr | 27 - .../slice_dynamic_index/Nargo.toml | 6 - .../slice_dynamic_index/Prover.toml | 1 - .../slice_dynamic_index/src/main.nr | 308 ------- .../execution_success/slice_loop/Nargo.toml | 6 - .../execution_success/slice_loop/Prover.toml | 11 - .../execution_success/slice_loop/src/main.nr | 32 - .../execution_success/slice_regex/Nargo.toml | 7 - .../execution_success/slice_regex/src/main.nr | 788 ------------------ .../execution_success/slices/Nargo.toml | 5 - .../execution_success/slices/Prover.toml | 2 - .../execution_success/slices/src/main.nr | 344 -------- .../execution_success/strings/Nargo.toml | 6 - .../execution_success/strings/Prover.toml | 4 - .../execution_success/strings/src/main.nr | 84 -- .../execution_success/struct/Nargo.toml | 6 - .../execution_success/struct/Prover.toml | 2 - .../execution_success/struct/src/main.nr | 75 -- .../struct_array_inputs/Nargo.toml | 5 - .../struct_array_inputs/Prover.toml | 11 - .../struct_array_inputs/src/main.nr | 8 - .../struct_fields_ordering/Nargo.toml | 6 - .../struct_fields_ordering/Prover.toml | 3 - .../struct_fields_ordering/src/main.nr | 12 - .../struct_inputs/Nargo.toml | 6 - .../struct_inputs/Prover.toml | 19 - .../struct_inputs/src/foo.nr | 6 - .../struct_inputs/src/foo/bar.nr | 7 - .../struct_inputs/src/main.nr | 34 - .../execution_success/submodules/Nargo.toml | 5 - .../execution_success/submodules/Prover.toml | 2 - .../execution_success/submodules/src/main.nr | 15 - .../execution_success/to_be_bytes/Nargo.toml | 5 - .../execution_success/to_be_bytes/Prover.toml | 1 - .../execution_success/to_be_bytes/src/main.nr | 13 - .../execution_success/to_bits/Nargo.toml | 5 - .../execution_success/to_bits/src/main.nr | 21 - .../to_bytes_consistent/Nargo.toml | 5 - .../to_bytes_consistent/Prover.toml | 1 - .../to_bytes_consistent/src/main.nr | 13 - .../to_bytes_integration/Nargo.toml | 5 - .../to_bytes_integration/Prover.toml | 2 - .../to_bytes_integration/src/main.nr | 23 - .../execution_success/to_le_bytes/Nargo.toml | 5 - .../execution_success/to_le_bytes/Prover.toml | 2 - .../execution_success/to_le_bytes/src/main.nr | 13 - .../trait_as_return_type/Nargo.toml | 5 - .../trait_as_return_type/Prover.toml | 1 - .../trait_as_return_type/src/main.nr | 51 -- .../trait_impl_base_type/Nargo.toml | 5 - .../trait_impl_base_type/Prover.toml | 1 - .../trait_impl_base_type/src/main.nr | 107 --- .../trait_inheritance/Nargo.toml | 5 - .../trait_inheritance/Prover.toml | 0 .../trait_inheritance/src/main.nr | 33 - .../traits_in_crates_1/Nargo.toml | 7 - .../traits_in_crates_1/Prover.toml | 2 - .../traits_in_crates_1/crate1/Nargo.toml | 6 - .../traits_in_crates_1/crate1/src/lib.nr | 9 - .../traits_in_crates_1/crate2/Nargo.toml | 5 - .../traits_in_crates_1/crate2/src/lib.nr | 3 - .../traits_in_crates_1/src/main.nr | 5 - .../traits_in_crates_2/Nargo.toml | 7 - .../traits_in_crates_2/Prover.toml | 2 - .../traits_in_crates_2/crate1/Nargo.toml | 5 - .../traits_in_crates_2/crate1/src/lib.nr | 3 - .../traits_in_crates_2/crate2/Nargo.toml | 6 - .../traits_in_crates_2/crate2/src/lib.nr | 9 - .../traits_in_crates_2/src/main.nr | 5 - .../execution_success/tuple_inputs/Nargo.toml | 5 - .../tuple_inputs/Prover.toml | 12 - .../tuple_inputs/src/main.nr | 35 - .../execution_success/tuples/Nargo.toml | 5 - .../execution_success/tuples/Prover.toml | 2 - .../execution_success/tuples/src/main.nr | 22 - .../execution_success/type_aliases/Nargo.toml | 5 - .../type_aliases/Prover.toml | 1 - .../type_aliases/src/main.nr | 33 - .../execution_success/u128/Nargo.toml | 6 - .../execution_success/u128/Prover.toml | 7 - .../execution_success/u128/src/main.nr | 42 - .../execution_success/u16_support/Nargo.toml | 7 - .../execution_success/u16_support/Prover.toml | 1 - .../execution_success/u16_support/src/main.nr | 26 - .../execution_success/uhashmap/Nargo.toml | 6 - .../execution_success/uhashmap/Prover.toml | 26 - .../execution_success/uhashmap/src/main.nr | 356 -------- .../unary_operator_overloading/Nargo.toml | 7 - .../unary_operator_overloading/Prover.toml | 1 - .../unary_operator_overloading/src/main.nr | 36 - .../execution_success/unit_value/Nargo.toml | 7 - .../execution_success/unit_value/src/main.nr | 7 - .../unsafe_range_constraint/Nargo.toml | 7 - .../unsafe_range_constraint/Prover.toml | 1 - .../unsafe_range_constraint/src/main.nr | 5 - .../verify_honk_proof/Nargo.toml | 6 - .../verify_honk_proof/Prover.toml | 4 - .../verify_honk_proof/src/main.nr | 22 - .../wildcard_type/Nargo.toml | 6 - .../wildcard_type/Prover.toml | 1 - .../wildcard_type/src/main.nr | 23 - .../witness_compression/Nargo.toml | 7 - .../witness_compression/Prover.toml | 2 - .../witness_compression/src/main.nr | 7 - .../execution_success/workspace/Nargo.toml | 2 - .../workspace/crates/a/Nargo.toml | 5 - .../workspace/crates/a/Prover.toml | 2 - .../workspace/crates/a/src/main.nr | 3 - .../workspace/crates/b/Nargo.toml | 5 - .../workspace/crates/b/Prover.toml | 2 - .../workspace/crates/b/src/main.nr | 3 - .../workspace_default_member/Nargo.toml | 3 - .../workspace_default_member/Prover.toml | 2 - .../workspace_default_member/a/Nargo.toml | 5 - .../workspace_default_member/a/Prover.toml | 2 - .../workspace_default_member/a/src/main.nr | 3 - .../workspace_default_member/b/Nargo.toml | 5 - .../workspace_default_member/b/Prover.toml | 3 - .../workspace_default_member/b/src/main.nr | 3 - .../wrapping_operations/Nargo.toml | 6 - .../wrapping_operations/Prover.toml | 2 - .../wrapping_operations/src/main.nr | 6 - .../execution_success/xor/Nargo.toml | 5 - .../execution_success/xor/Prover.toml | 2 - .../execution_success/xor/src/main.nr | 5 - 736 files changed, 12618 deletions(-) delete mode 100644 test_programs/execution_success/1327_concrete_in_generic/Nargo.toml delete mode 100644 test_programs/execution_success/1327_concrete_in_generic/Prover.toml delete mode 100644 test_programs/execution_success/1327_concrete_in_generic/src/main.nr delete mode 100644 test_programs/execution_success/1_mul/Nargo.toml delete mode 100644 test_programs/execution_success/1_mul/Prover.toml delete mode 100644 test_programs/execution_success/1_mul/src/main.nr delete mode 100644 test_programs/execution_success/2_div/Nargo.toml delete mode 100644 test_programs/execution_success/2_div/Prover.toml delete mode 100644 test_programs/execution_success/2_div/src/main.nr delete mode 100644 test_programs/execution_success/3_add/Nargo.toml delete mode 100644 test_programs/execution_success/3_add/Prover.toml delete mode 100644 test_programs/execution_success/3_add/src/main.nr delete mode 100644 test_programs/execution_success/4_sub/Nargo.toml delete mode 100644 test_programs/execution_success/4_sub/Prover.toml delete mode 100644 test_programs/execution_success/4_sub/src/main.nr delete mode 100644 test_programs/execution_success/5_over/Nargo.toml delete mode 100644 test_programs/execution_success/5_over/Prover.toml delete mode 100644 test_programs/execution_success/5_over/src/main.nr delete mode 100644 test_programs/execution_success/6/Nargo.toml delete mode 100644 test_programs/execution_success/6/Prover.toml delete mode 100644 test_programs/execution_success/6/src/main.nr delete mode 100644 test_programs/execution_success/6_array/Nargo.toml delete mode 100644 test_programs/execution_success/6_array/Prover.toml delete mode 100644 test_programs/execution_success/6_array/src/main.nr delete mode 100644 test_programs/execution_success/7/Nargo.toml delete mode 100644 test_programs/execution_success/7/Prover.toml delete mode 100644 test_programs/execution_success/7/src/main.nr delete mode 100644 test_programs/execution_success/7_function/Nargo.toml delete mode 100644 test_programs/execution_success/7_function/Prover.toml delete mode 100644 test_programs/execution_success/7_function/src/main.nr delete mode 100644 test_programs/execution_success/acir_inside_brillig_recursion/Nargo.toml delete mode 100644 test_programs/execution_success/acir_inside_brillig_recursion/Prover.toml delete mode 100644 test_programs/execution_success/acir_inside_brillig_recursion/src/main.nr delete mode 100644 test_programs/execution_success/aes128_encrypt/Nargo.toml delete mode 100644 test_programs/execution_success/aes128_encrypt/Prover.toml delete mode 100644 test_programs/execution_success/aes128_encrypt/src/main.nr delete mode 100644 test_programs/execution_success/arithmetic_binary_operations/Nargo.toml delete mode 100644 test_programs/execution_success/arithmetic_binary_operations/Prover.toml delete mode 100644 test_programs/execution_success/arithmetic_binary_operations/src/main.nr delete mode 100644 test_programs/execution_success/array_dynamic/Nargo.toml delete mode 100644 test_programs/execution_success/array_dynamic/Prover.toml delete mode 100644 test_programs/execution_success/array_dynamic/src/main.nr delete mode 100644 test_programs/execution_success/array_dynamic_blackbox_input/Nargo.toml delete mode 100644 test_programs/execution_success/array_dynamic_blackbox_input/Prover.toml delete mode 100644 test_programs/execution_success/array_dynamic_blackbox_input/src/main.nr delete mode 100644 test_programs/execution_success/array_dynamic_main_output/Nargo.toml delete mode 100644 test_programs/execution_success/array_dynamic_main_output/Prover.toml delete mode 100644 test_programs/execution_success/array_dynamic_main_output/src/main.nr delete mode 100644 test_programs/execution_success/array_dynamic_nested_blackbox_input/Nargo.toml delete mode 100644 test_programs/execution_success/array_dynamic_nested_blackbox_input/Prover.toml delete mode 100644 test_programs/execution_success/array_dynamic_nested_blackbox_input/src/main.nr delete mode 100644 test_programs/execution_success/array_eq/Nargo.toml delete mode 100644 test_programs/execution_success/array_eq/Prover.toml delete mode 100644 test_programs/execution_success/array_eq/src/main.nr delete mode 100644 test_programs/execution_success/array_if_cond_simple/Nargo.toml delete mode 100644 test_programs/execution_success/array_if_cond_simple/Prover.toml delete mode 100644 test_programs/execution_success/array_if_cond_simple/src/main.nr delete mode 100644 test_programs/execution_success/array_len/Nargo.toml delete mode 100644 test_programs/execution_success/array_len/Prover.toml delete mode 100644 test_programs/execution_success/array_len/src/main.nr delete mode 100644 test_programs/execution_success/array_neq/Nargo.toml delete mode 100644 test_programs/execution_success/array_neq/Prover.toml delete mode 100644 test_programs/execution_success/array_neq/src/main.nr delete mode 100644 test_programs/execution_success/array_sort/Nargo.toml delete mode 100644 test_programs/execution_success/array_sort/Prover.toml delete mode 100644 test_programs/execution_success/array_sort/src/main.nr delete mode 100644 test_programs/execution_success/array_to_slice/Nargo.toml delete mode 100644 test_programs/execution_success/array_to_slice/Prover.toml delete mode 100644 test_programs/execution_success/array_to_slice/src/main.nr delete mode 100644 test_programs/execution_success/array_to_slice_constant_length/Nargo.toml delete mode 100644 test_programs/execution_success/array_to_slice_constant_length/Prover.toml delete mode 100644 test_programs/execution_success/array_to_slice_constant_length/src/main.nr delete mode 100644 test_programs/execution_success/as_witness/Nargo.toml delete mode 100644 test_programs/execution_success/as_witness/Prover.toml delete mode 100644 test_programs/execution_success/as_witness/src/main.nr delete mode 100644 test_programs/execution_success/assert/Nargo.toml delete mode 100644 test_programs/execution_success/assert/Prover.toml delete mode 100644 test_programs/execution_success/assert/src/main.nr delete mode 100644 test_programs/execution_success/assert_statement/Nargo.toml delete mode 100644 test_programs/execution_success/assert_statement/Prover.toml delete mode 100644 test_programs/execution_success/assert_statement/src/main.nr delete mode 100644 test_programs/execution_success/assert_statement_recursive/Nargo.toml delete mode 100644 test_programs/execution_success/assert_statement_recursive/Prover.toml delete mode 100644 test_programs/execution_success/assert_statement_recursive/src/main.nr delete mode 100644 test_programs/execution_success/assign_ex/Nargo.toml delete mode 100644 test_programs/execution_success/assign_ex/Prover.toml delete mode 100644 test_programs/execution_success/assign_ex/src/main.nr delete mode 100644 test_programs/execution_success/bench_2_to_17/Nargo.toml delete mode 100644 test_programs/execution_success/bench_2_to_17/Prover.toml delete mode 100644 test_programs/execution_success/bench_2_to_17/src/main.nr delete mode 100644 test_programs/execution_success/bench_ecdsa_secp256k1/Nargo.toml delete mode 100644 test_programs/execution_success/bench_ecdsa_secp256k1/Prover.toml delete mode 100644 test_programs/execution_success/bench_ecdsa_secp256k1/src/main.nr delete mode 100644 test_programs/execution_success/bigint/Nargo.toml delete mode 100644 test_programs/execution_success/bigint/Prover.toml delete mode 100644 test_programs/execution_success/bigint/src/main.nr delete mode 100644 test_programs/execution_success/binary_operator_overloading/Nargo.toml delete mode 100644 test_programs/execution_success/binary_operator_overloading/Prover.toml delete mode 100644 test_programs/execution_success/binary_operator_overloading/src/main.nr delete mode 100644 test_programs/execution_success/bit_and/Nargo.toml delete mode 100644 test_programs/execution_success/bit_and/Prover.toml delete mode 100644 test_programs/execution_success/bit_and/src/main.nr delete mode 100644 test_programs/execution_success/bit_not/Nargo.toml delete mode 100644 test_programs/execution_success/bit_not/Prover.toml delete mode 100644 test_programs/execution_success/bit_not/src/main.nr delete mode 100644 test_programs/execution_success/bit_shifts_comptime/Nargo.toml delete mode 100644 test_programs/execution_success/bit_shifts_comptime/Prover.toml delete mode 100644 test_programs/execution_success/bit_shifts_comptime/src/main.nr delete mode 100644 test_programs/execution_success/bit_shifts_runtime/Nargo.toml delete mode 100644 test_programs/execution_success/bit_shifts_runtime/Prover.toml delete mode 100644 test_programs/execution_success/bit_shifts_runtime/src/main.nr delete mode 100644 test_programs/execution_success/blake3/Nargo.toml delete mode 100644 test_programs/execution_success/blake3/Prover.toml delete mode 100644 test_programs/execution_success/blake3/src/main.nr delete mode 100644 test_programs/execution_success/bool_not/Nargo.toml delete mode 100644 test_programs/execution_success/bool_not/Prover.toml delete mode 100644 test_programs/execution_success/bool_not/src/main.nr delete mode 100644 test_programs/execution_success/bool_or/Nargo.toml delete mode 100644 test_programs/execution_success/bool_or/Prover.toml delete mode 100644 test_programs/execution_success/bool_or/src/main.nr delete mode 100644 test_programs/execution_success/break_and_continue/Nargo.toml delete mode 100644 test_programs/execution_success/break_and_continue/src/main.nr delete mode 100644 test_programs/execution_success/brillig_acir_as_brillig/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_acir_as_brillig/Prover.toml delete mode 100644 test_programs/execution_success/brillig_acir_as_brillig/src/main.nr delete mode 100644 test_programs/execution_success/brillig_array_to_slice/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_array_to_slice/Prover.toml delete mode 100644 test_programs/execution_success/brillig_array_to_slice/src/main.nr delete mode 100644 test_programs/execution_success/brillig_arrays/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_arrays/Prover.toml delete mode 100644 test_programs/execution_success/brillig_arrays/src/main.nr delete mode 100644 test_programs/execution_success/brillig_assert/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_assert/Prover.toml delete mode 100644 test_programs/execution_success/brillig_assert/src/main.nr delete mode 100644 test_programs/execution_success/brillig_blake2s/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_blake2s/Prover.toml delete mode 100644 test_programs/execution_success/brillig_blake2s/src/main.nr delete mode 100644 test_programs/execution_success/brillig_blake3/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_blake3/Prover.toml delete mode 100644 test_programs/execution_success/brillig_blake3/src/main.nr delete mode 100644 test_programs/execution_success/brillig_block_parameter_liveness/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_block_parameter_liveness/Prover.toml delete mode 100644 test_programs/execution_success/brillig_block_parameter_liveness/src/main.nr delete mode 100644 test_programs/execution_success/brillig_calls/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_calls/Prover.toml delete mode 100644 test_programs/execution_success/brillig_calls/src/main.nr delete mode 100644 test_programs/execution_success/brillig_calls_array/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_calls_array/Prover.toml delete mode 100644 test_programs/execution_success/brillig_calls_array/src/main.nr delete mode 100644 test_programs/execution_success/brillig_calls_conditionals/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_calls_conditionals/Prover.toml delete mode 100644 test_programs/execution_success/brillig_calls_conditionals/src/main.nr delete mode 100644 test_programs/execution_success/brillig_conditional/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_conditional/Prover.toml delete mode 100644 test_programs/execution_success/brillig_conditional/src/main.nr delete mode 100644 test_programs/execution_success/brillig_constant_reference_regression/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_constant_reference_regression/Prover.toml delete mode 100644 test_programs/execution_success/brillig_constant_reference_regression/src/main.nr delete mode 100644 test_programs/execution_success/brillig_cow/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_cow/Prover.toml delete mode 100644 test_programs/execution_success/brillig_cow/src/main.nr delete mode 100644 test_programs/execution_success/brillig_cow_assign/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_cow_assign/Prover.toml delete mode 100644 test_programs/execution_success/brillig_cow_assign/src/main.nr delete mode 100644 test_programs/execution_success/brillig_cow_regression/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_cow_regression/Prover.toml delete mode 100644 test_programs/execution_success/brillig_cow_regression/src/main.nr delete mode 100644 test_programs/execution_success/brillig_ecdsa_secp256k1/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_ecdsa_secp256k1/Prover.toml delete mode 100644 test_programs/execution_success/brillig_ecdsa_secp256k1/src/main.nr delete mode 100644 test_programs/execution_success/brillig_ecdsa_secp256r1/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_ecdsa_secp256r1/Prover.toml delete mode 100644 test_programs/execution_success/brillig_ecdsa_secp256r1/src/main.nr delete mode 100644 test_programs/execution_success/brillig_fns_as_values/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_fns_as_values/Prover.toml delete mode 100644 test_programs/execution_success/brillig_fns_as_values/src/main.nr delete mode 100644 test_programs/execution_success/brillig_hash_to_field/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_hash_to_field/Prover.toml delete mode 100644 test_programs/execution_success/brillig_hash_to_field/src/main.nr delete mode 100644 test_programs/execution_success/brillig_identity_function/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_identity_function/Prover.toml delete mode 100644 test_programs/execution_success/brillig_identity_function/src/main.nr delete mode 100644 test_programs/execution_success/brillig_keccak/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_keccak/Prover.toml delete mode 100644 test_programs/execution_success/brillig_keccak/src/main.nr delete mode 100644 test_programs/execution_success/brillig_loop/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_loop/Prover.toml delete mode 100644 test_programs/execution_success/brillig_loop/src/main.nr delete mode 100644 test_programs/execution_success/brillig_loop_size_regression/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_loop_size_regression/Prover.toml delete mode 100644 test_programs/execution_success/brillig_loop_size_regression/src/main.nr delete mode 100644 test_programs/execution_success/brillig_nested_arrays/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_nested_arrays/Prover.toml delete mode 100644 test_programs/execution_success/brillig_nested_arrays/src/main.nr delete mode 100644 test_programs/execution_success/brillig_not/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_not/Prover.toml delete mode 100644 test_programs/execution_success/brillig_not/src/main.nr delete mode 100644 test_programs/execution_success/brillig_oracle/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_oracle/Prover.toml delete mode 100644 test_programs/execution_success/brillig_oracle/src/main.nr delete mode 100644 test_programs/execution_success/brillig_pedersen/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_pedersen/Prover.toml delete mode 100644 test_programs/execution_success/brillig_pedersen/src/main.nr delete mode 100644 test_programs/execution_success/brillig_rc_regression_6123/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_rc_regression_6123/src/main.nr delete mode 100644 test_programs/execution_success/brillig_recursion/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_recursion/Prover.toml delete mode 100644 test_programs/execution_success/brillig_recursion/src/main.nr delete mode 100644 test_programs/execution_success/brillig_references/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_references/Prover.toml delete mode 100644 test_programs/execution_success/brillig_references/src/main.nr delete mode 100644 test_programs/execution_success/brillig_sha256/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_sha256/Prover.toml delete mode 100644 test_programs/execution_success/brillig_sha256/src/main.nr delete mode 100644 test_programs/execution_success/brillig_slices/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_slices/Prover.toml delete mode 100644 test_programs/execution_success/brillig_slices/src/main.nr delete mode 100644 test_programs/execution_success/brillig_unitialised_arrays/Nargo.toml delete mode 100644 test_programs/execution_success/brillig_unitialised_arrays/Prover.toml delete mode 100644 test_programs/execution_success/brillig_unitialised_arrays/src/main.nr delete mode 100644 test_programs/execution_success/cast_and_shift_global/Nargo.toml delete mode 100644 test_programs/execution_success/cast_and_shift_global/Prover.toml delete mode 100644 test_programs/execution_success/cast_and_shift_global/src/main.nr delete mode 100644 test_programs/execution_success/cast_bool/Nargo.toml delete mode 100644 test_programs/execution_success/cast_bool/Prover.toml delete mode 100644 test_programs/execution_success/cast_bool/src/main.nr delete mode 100644 test_programs/execution_success/check_large_field_bits/Nargo.toml delete mode 100644 test_programs/execution_success/check_large_field_bits/src/main.nr delete mode 100644 test_programs/execution_success/closures_mut_ref/Nargo.toml delete mode 100644 test_programs/execution_success/closures_mut_ref/Prover.toml delete mode 100644 test_programs/execution_success/closures_mut_ref/src/main.nr delete mode 100644 test_programs/execution_success/comptime_println/Nargo.toml delete mode 100644 test_programs/execution_success/comptime_println/src/main.nr delete mode 100644 test_programs/execution_success/comptime_slice_equality/Nargo.toml delete mode 100644 test_programs/execution_success/comptime_slice_equality/src/main.nr delete mode 100644 test_programs/execution_success/conditional_1/Nargo.toml delete mode 100644 test_programs/execution_success/conditional_1/Prover.toml delete mode 100644 test_programs/execution_success/conditional_1/src/main.nr delete mode 100644 test_programs/execution_success/conditional_2/Nargo.toml delete mode 100644 test_programs/execution_success/conditional_2/Prover.toml delete mode 100644 test_programs/execution_success/conditional_2/src/main.nr delete mode 100644 test_programs/execution_success/conditional_regression_421/Nargo.toml delete mode 100644 test_programs/execution_success/conditional_regression_421/Prover.toml delete mode 100644 test_programs/execution_success/conditional_regression_421/src/main.nr delete mode 100644 test_programs/execution_success/conditional_regression_547/Nargo.toml delete mode 100644 test_programs/execution_success/conditional_regression_547/Prover.toml delete mode 100644 test_programs/execution_success/conditional_regression_547/src/main.nr delete mode 100644 test_programs/execution_success/conditional_regression_661/Nargo.toml delete mode 100644 test_programs/execution_success/conditional_regression_661/Prover.toml delete mode 100644 test_programs/execution_success/conditional_regression_661/src/main.nr delete mode 100644 test_programs/execution_success/conditional_regression_short_circuit/Nargo.toml delete mode 100644 test_programs/execution_success/conditional_regression_short_circuit/Prover.toml delete mode 100644 test_programs/execution_success/conditional_regression_short_circuit/src/main.nr delete mode 100644 test_programs/execution_success/conditional_regression_underflow/Nargo.toml delete mode 100644 test_programs/execution_success/conditional_regression_underflow/Prover.toml delete mode 100644 test_programs/execution_success/conditional_regression_underflow/src/main.nr delete mode 100644 test_programs/execution_success/custom_entry/Nargo.toml delete mode 100644 test_programs/execution_success/custom_entry/Prover.toml delete mode 100644 test_programs/execution_success/custom_entry/src/foobarbaz.nr delete mode 100644 test_programs/execution_success/databus/Nargo.toml delete mode 100644 test_programs/execution_success/databus/Prover.toml delete mode 100644 test_programs/execution_success/databus/src/main.nr delete mode 100644 test_programs/execution_success/databus_composite_calldata/Nargo.toml delete mode 100644 test_programs/execution_success/databus_composite_calldata/Prover.toml delete mode 100644 test_programs/execution_success/databus_composite_calldata/src/main.nr delete mode 100644 test_programs/execution_success/databus_in_fn_with_empty_arr/Nargo.toml delete mode 100644 test_programs/execution_success/databus_in_fn_with_empty_arr/Prover.toml delete mode 100644 test_programs/execution_success/databus_in_fn_with_empty_arr/src/main.nr delete mode 100644 test_programs/execution_success/databus_two_calldata/Nargo.toml delete mode 100644 test_programs/execution_success/databus_two_calldata/Prover.toml delete mode 100644 test_programs/execution_success/databus_two_calldata/src/main.nr delete mode 100644 test_programs/execution_success/databus_two_calldata_simple/Nargo.toml delete mode 100644 test_programs/execution_success/databus_two_calldata_simple/Prover.toml delete mode 100644 test_programs/execution_success/databus_two_calldata_simple/src/main.nr delete mode 100644 test_programs/execution_success/debug_logs/Nargo.toml delete mode 100644 test_programs/execution_success/debug_logs/Prover.toml delete mode 100644 test_programs/execution_success/debug_logs/src/main.nr delete mode 100644 test_programs/execution_success/derive/Nargo.toml delete mode 100644 test_programs/execution_success/derive/src/main.nr delete mode 100644 test_programs/execution_success/diamond_deps_0/Nargo.toml delete mode 100644 test_programs/execution_success/diamond_deps_0/Prover.toml delete mode 100644 test_programs/execution_success/diamond_deps_0/src/main.nr delete mode 100644 test_programs/execution_success/double_verify_honk_proof/Nargo.toml delete mode 100644 test_programs/execution_success/double_verify_honk_proof/Prover.toml delete mode 100644 test_programs/execution_success/double_verify_honk_proof/src/main.nr delete mode 100644 test_programs/execution_success/double_verify_honk_proof_recursive/Nargo.toml delete mode 100644 test_programs/execution_success/double_verify_honk_proof_recursive/Prover.toml delete mode 100644 test_programs/execution_success/double_verify_honk_proof_recursive/src/main.nr delete mode 100644 test_programs/execution_success/double_verify_nested_proof/Nargo.toml delete mode 100644 test_programs/execution_success/double_verify_nested_proof/Prover.toml delete mode 100644 test_programs/execution_success/double_verify_nested_proof/src/main.nr delete mode 100644 test_programs/execution_success/double_verify_proof/Nargo.toml delete mode 100644 test_programs/execution_success/double_verify_proof/Prover.toml delete mode 100644 test_programs/execution_success/double_verify_proof/src/main.nr delete mode 100644 test_programs/execution_success/double_verify_proof_recursive/Nargo.toml delete mode 100644 test_programs/execution_success/double_verify_proof_recursive/Prover.toml delete mode 100644 test_programs/execution_success/double_verify_proof_recursive/src/main.nr delete mode 100644 test_programs/execution_success/ecdsa_secp256k1/Nargo.toml delete mode 100644 test_programs/execution_success/ecdsa_secp256k1/Prover.toml delete mode 100644 test_programs/execution_success/ecdsa_secp256k1/src/main.nr delete mode 100644 test_programs/execution_success/ecdsa_secp256r1/Nargo.toml delete mode 100644 test_programs/execution_success/ecdsa_secp256r1/Prover.toml delete mode 100644 test_programs/execution_success/ecdsa_secp256r1/src/main.nr delete mode 100644 test_programs/execution_success/ecdsa_secp256r1_3x/Nargo.toml delete mode 100644 test_programs/execution_success/ecdsa_secp256r1_3x/Prover.toml delete mode 100644 test_programs/execution_success/ecdsa_secp256r1_3x/src/main.nr delete mode 100644 test_programs/execution_success/eddsa/Nargo.toml delete mode 100644 test_programs/execution_success/eddsa/Prover.toml delete mode 100644 test_programs/execution_success/eddsa/src/main.nr delete mode 100644 test_programs/execution_success/embedded_curve_ops/Nargo.toml delete mode 100644 test_programs/execution_success/embedded_curve_ops/Prover.toml delete mode 100644 test_programs/execution_success/embedded_curve_ops/src/main.nr delete mode 100644 test_programs/execution_success/empty/Nargo.toml delete mode 100644 test_programs/execution_success/empty/src/main.nr delete mode 100644 test_programs/execution_success/field_attribute/Nargo.toml delete mode 100644 test_programs/execution_success/field_attribute/Prover.toml delete mode 100644 test_programs/execution_success/field_attribute/src/main.nr delete mode 100644 test_programs/execution_success/fold_2_to_17/Nargo.toml delete mode 100644 test_programs/execution_success/fold_2_to_17/Prover.toml delete mode 100644 test_programs/execution_success/fold_2_to_17/src/main.nr delete mode 100644 test_programs/execution_success/fold_after_inlined_calls/Nargo.toml delete mode 100644 test_programs/execution_success/fold_after_inlined_calls/Prover.toml delete mode 100644 test_programs/execution_success/fold_after_inlined_calls/src/main.nr delete mode 100644 test_programs/execution_success/fold_basic/Nargo.toml delete mode 100644 test_programs/execution_success/fold_basic/Prover.toml delete mode 100644 test_programs/execution_success/fold_basic/src/main.nr delete mode 100644 test_programs/execution_success/fold_basic_nested_call/Nargo.toml delete mode 100644 test_programs/execution_success/fold_basic_nested_call/Prover.toml delete mode 100644 test_programs/execution_success/fold_basic_nested_call/src/main.nr delete mode 100644 test_programs/execution_success/fold_call_witness_condition/Nargo.toml delete mode 100644 test_programs/execution_success/fold_call_witness_condition/Prover.toml delete mode 100644 test_programs/execution_success/fold_call_witness_condition/src/main.nr delete mode 100644 test_programs/execution_success/fold_complex_outputs/Nargo.toml delete mode 100644 test_programs/execution_success/fold_complex_outputs/Prover.toml delete mode 100644 test_programs/execution_success/fold_complex_outputs/src/main.nr delete mode 100644 test_programs/execution_success/fold_distinct_return/Nargo.toml delete mode 100644 test_programs/execution_success/fold_distinct_return/Prover.toml delete mode 100644 test_programs/execution_success/fold_distinct_return/src/main.nr delete mode 100644 test_programs/execution_success/fold_fibonacci/Nargo.toml delete mode 100644 test_programs/execution_success/fold_fibonacci/Prover.toml delete mode 100644 test_programs/execution_success/fold_fibonacci/src/main.nr delete mode 100644 test_programs/execution_success/fold_numeric_generic_poseidon/Nargo.toml delete mode 100644 test_programs/execution_success/fold_numeric_generic_poseidon/Prover.toml delete mode 100644 test_programs/execution_success/fold_numeric_generic_poseidon/src/main.nr delete mode 100644 test_programs/execution_success/generics/Nargo.toml delete mode 100644 test_programs/execution_success/generics/Prover.toml delete mode 100644 test_programs/execution_success/generics/src/main.nr delete mode 100644 test_programs/execution_success/global_consts/Nargo.toml delete mode 100644 test_programs/execution_success/global_consts/Prover.toml delete mode 100644 test_programs/execution_success/global_consts/src/baz.nr delete mode 100644 test_programs/execution_success/global_consts/src/foo.nr delete mode 100644 test_programs/execution_success/global_consts/src/foo/bar.nr delete mode 100644 test_programs/execution_success/global_consts/src/main.nr delete mode 100644 test_programs/execution_success/hash_to_field/Nargo.toml delete mode 100644 test_programs/execution_success/hash_to_field/Prover.toml delete mode 100644 test_programs/execution_success/hash_to_field/src/main.nr delete mode 100644 test_programs/execution_success/hashmap/Nargo.toml delete mode 100644 test_programs/execution_success/hashmap/Prover.toml delete mode 100644 test_programs/execution_success/hashmap/src/main.nr delete mode 100644 test_programs/execution_success/hashmap/src/utils.nr delete mode 100644 test_programs/execution_success/higher_order_functions/Nargo.toml delete mode 100644 test_programs/execution_success/higher_order_functions/Prover.toml delete mode 100644 test_programs/execution_success/higher_order_functions/src/main.nr delete mode 100644 test_programs/execution_success/if_else_chain/Nargo.toml delete mode 100644 test_programs/execution_success/if_else_chain/Prover.toml delete mode 100644 test_programs/execution_success/if_else_chain/src/main.nr delete mode 100644 test_programs/execution_success/import/Nargo.toml delete mode 100644 test_programs/execution_success/import/Prover.toml delete mode 100644 test_programs/execution_success/import/src/import.nr delete mode 100644 test_programs/execution_success/import/src/main.nr delete mode 100644 test_programs/execution_success/inline_never_basic/Nargo.toml delete mode 100644 test_programs/execution_success/inline_never_basic/Prover.toml delete mode 100644 test_programs/execution_success/inline_never_basic/src/main.nr delete mode 100644 test_programs/execution_success/integer_array_indexing/Nargo.toml delete mode 100644 test_programs/execution_success/integer_array_indexing/Prover.toml delete mode 100644 test_programs/execution_success/integer_array_indexing/src/main.nr delete mode 100644 test_programs/execution_success/is_unconstrained/Nargo.toml delete mode 100644 test_programs/execution_success/is_unconstrained/Prover.toml delete mode 100644 test_programs/execution_success/is_unconstrained/src/main.nr delete mode 100644 test_programs/execution_success/keccak256/Nargo.toml delete mode 100644 test_programs/execution_success/keccak256/Prover.toml delete mode 100644 test_programs/execution_success/keccak256/src/main.nr delete mode 100644 test_programs/execution_success/loop/Nargo.toml delete mode 100644 test_programs/execution_success/loop/Prover.toml delete mode 100644 test_programs/execution_success/loop/src/main.nr delete mode 100644 test_programs/execution_success/main_bool_arg/Nargo.toml delete mode 100644 test_programs/execution_success/main_bool_arg/Prover.toml delete mode 100644 test_programs/execution_success/main_bool_arg/src/main.nr delete mode 100644 test_programs/execution_success/main_return/Nargo.toml delete mode 100644 test_programs/execution_success/main_return/Prover.toml delete mode 100644 test_programs/execution_success/main_return/src/main.nr delete mode 100644 test_programs/execution_success/merkle_insert/Nargo.toml delete mode 100644 test_programs/execution_success/merkle_insert/Prover.toml delete mode 100644 test_programs/execution_success/merkle_insert/src/main.nr delete mode 100644 test_programs/execution_success/missing_closure_env/Nargo.toml delete mode 100644 test_programs/execution_success/missing_closure_env/Prover.toml delete mode 100644 test_programs/execution_success/missing_closure_env/src/main.nr delete mode 100644 test_programs/execution_success/modules/Nargo.toml delete mode 100644 test_programs/execution_success/modules/Prover.toml delete mode 100644 test_programs/execution_success/modules/src/foo.nr delete mode 100644 test_programs/execution_success/modules/src/main.nr delete mode 100644 test_programs/execution_success/modules_more/Nargo.toml delete mode 100644 test_programs/execution_success/modules_more/Prover.toml delete mode 100644 test_programs/execution_success/modules_more/src/foo.nr delete mode 100644 test_programs/execution_success/modules_more/src/foo/bar.nr delete mode 100644 test_programs/execution_success/modules_more/src/main.nr delete mode 100644 test_programs/execution_success/modulus/Nargo.toml delete mode 100644 test_programs/execution_success/modulus/Prover.toml delete mode 100644 test_programs/execution_success/modulus/src/main.nr delete mode 100644 test_programs/execution_success/nested_array_dynamic/Nargo.toml delete mode 100644 test_programs/execution_success/nested_array_dynamic/Prover.toml delete mode 100644 test_programs/execution_success/nested_array_dynamic/src/main.nr delete mode 100644 test_programs/execution_success/nested_array_dynamic_simple/Nargo.toml delete mode 100644 test_programs/execution_success/nested_array_dynamic_simple/Prover.toml delete mode 100644 test_programs/execution_success/nested_array_dynamic_simple/src/main.nr delete mode 100644 test_programs/execution_success/nested_array_in_slice/Nargo.toml delete mode 100644 test_programs/execution_success/nested_array_in_slice/Prover.toml delete mode 100644 test_programs/execution_success/nested_array_in_slice/src/main.nr delete mode 100644 test_programs/execution_success/nested_arrays_from_brillig/Nargo.toml delete mode 100644 test_programs/execution_success/nested_arrays_from_brillig/Prover.toml delete mode 100644 test_programs/execution_success/nested_arrays_from_brillig/src/main.nr delete mode 100644 test_programs/execution_success/nested_dyn_array_regression_5782/Nargo.toml delete mode 100644 test_programs/execution_success/nested_dyn_array_regression_5782/Prover.toml delete mode 100644 test_programs/execution_success/nested_dyn_array_regression_5782/src/main.nr delete mode 100644 test_programs/execution_success/no_predicates_basic/Nargo.toml delete mode 100644 test_programs/execution_success/no_predicates_basic/Prover.toml delete mode 100644 test_programs/execution_success/no_predicates_basic/src/main.nr delete mode 100644 test_programs/execution_success/no_predicates_brillig/Nargo.toml delete mode 100644 test_programs/execution_success/no_predicates_brillig/Prover.toml delete mode 100644 test_programs/execution_success/no_predicates_brillig/src/main.nr delete mode 100644 test_programs/execution_success/no_predicates_numeric_generic_poseidon/Nargo.toml delete mode 100644 test_programs/execution_success/no_predicates_numeric_generic_poseidon/Prover.toml delete mode 100644 test_programs/execution_success/no_predicates_numeric_generic_poseidon/src/main.nr delete mode 100644 test_programs/execution_success/overlapping_dep_and_mod/Nargo.toml delete mode 100644 test_programs/execution_success/overlapping_dep_and_mod/bin/Nargo.toml delete mode 100644 test_programs/execution_success/overlapping_dep_and_mod/bin/Prover.toml delete mode 100644 test_programs/execution_success/overlapping_dep_and_mod/bin/src/main.nr delete mode 100644 test_programs/execution_success/overlapping_dep_and_mod/foo/Nargo.toml delete mode 100644 test_programs/execution_success/overlapping_dep_and_mod/foo/src/lib.nr delete mode 100644 test_programs/execution_success/pedersen_check/Nargo.toml delete mode 100644 test_programs/execution_success/pedersen_check/Prover.toml delete mode 100644 test_programs/execution_success/pedersen_check/src/main.nr delete mode 100644 test_programs/execution_success/pedersen_commitment/Nargo.toml delete mode 100644 test_programs/execution_success/pedersen_commitment/Prover.toml delete mode 100644 test_programs/execution_success/pedersen_commitment/src/main.nr delete mode 100644 test_programs/execution_success/pedersen_hash/Nargo.toml delete mode 100644 test_programs/execution_success/pedersen_hash/Prover.toml delete mode 100644 test_programs/execution_success/pedersen_hash/src/main.nr delete mode 100644 test_programs/execution_success/poseidon2/Nargo.toml delete mode 100644 test_programs/execution_success/poseidon2/Prover.toml delete mode 100644 test_programs/execution_success/poseidon2/src/main.nr delete mode 100644 test_programs/execution_success/poseidon_bn254_hash/Nargo.toml delete mode 100644 test_programs/execution_success/poseidon_bn254_hash/Prover.toml delete mode 100644 test_programs/execution_success/poseidon_bn254_hash/src/main.nr delete mode 100644 test_programs/execution_success/poseidon_bn254_hash_width_3/Nargo.toml delete mode 100644 test_programs/execution_success/poseidon_bn254_hash_width_3/Prover.toml delete mode 100644 test_programs/execution_success/poseidon_bn254_hash_width_3/src/main.nr delete mode 100644 test_programs/execution_success/poseidonsponge_x5_254/Nargo.toml delete mode 100644 test_programs/execution_success/poseidonsponge_x5_254/Prover.toml delete mode 100644 test_programs/execution_success/poseidonsponge_x5_254/src/main.nr delete mode 100644 test_programs/execution_success/pred_eq/Nargo.toml delete mode 100644 test_programs/execution_success/pred_eq/Prover.toml delete mode 100644 test_programs/execution_success/pred_eq/src/main.nr delete mode 100644 test_programs/execution_success/prelude/Nargo.toml delete mode 100644 test_programs/execution_success/prelude/src/main.nr delete mode 100644 test_programs/execution_success/reference_only_used_as_alias/Nargo.toml delete mode 100644 test_programs/execution_success/reference_only_used_as_alias/Prover.toml delete mode 100644 test_programs/execution_success/reference_only_used_as_alias/src/main.nr delete mode 100644 test_programs/execution_success/references/Nargo.toml delete mode 100644 test_programs/execution_success/references/Prover.toml delete mode 100644 test_programs/execution_success/references/src/main.nr delete mode 100644 test_programs/execution_success/regression/Nargo.toml delete mode 100644 test_programs/execution_success/regression/Prover.toml delete mode 100644 test_programs/execution_success/regression/src/main.nr delete mode 100644 test_programs/execution_success/regression_2660/Nargo.toml delete mode 100644 test_programs/execution_success/regression_2660/Prover.toml delete mode 100644 test_programs/execution_success/regression_2660/src/main.nr delete mode 100644 test_programs/execution_success/regression_3051/Nargo.toml delete mode 100644 test_programs/execution_success/regression_3051/src/main.nr delete mode 100644 test_programs/execution_success/regression_3394/Nargo.toml delete mode 100644 test_programs/execution_success/regression_3394/Prover.toml delete mode 100644 test_programs/execution_success/regression_3394/src/main.nr delete mode 100644 test_programs/execution_success/regression_3607/Nargo.toml delete mode 100644 test_programs/execution_success/regression_3607/Prover.toml delete mode 100644 test_programs/execution_success/regression_3607/src/main.nr delete mode 100644 test_programs/execution_success/regression_3889/Nargo.toml delete mode 100644 test_programs/execution_success/regression_3889/Prover.toml delete mode 100644 test_programs/execution_success/regression_3889/src/main.nr delete mode 100644 test_programs/execution_success/regression_4088/Nargo.toml delete mode 100644 test_programs/execution_success/regression_4088/Prover.toml delete mode 100644 test_programs/execution_success/regression_4088/src/main.nr delete mode 100644 test_programs/execution_success/regression_4124/Nargo.toml delete mode 100644 test_programs/execution_success/regression_4124/Prover.toml delete mode 100644 test_programs/execution_success/regression_4124/src/main.nr delete mode 100644 test_programs/execution_success/regression_4202/Nargo.toml delete mode 100644 test_programs/execution_success/regression_4202/Prover.toml delete mode 100644 test_programs/execution_success/regression_4202/src/main.nr delete mode 100644 test_programs/execution_success/regression_4449/Nargo.toml delete mode 100644 test_programs/execution_success/regression_4449/Prover.toml delete mode 100644 test_programs/execution_success/regression_4449/src/main.nr delete mode 100644 test_programs/execution_success/regression_4709/Nargo.toml delete mode 100644 test_programs/execution_success/regression_4709/Prover.toml delete mode 100644 test_programs/execution_success/regression_4709/src/main.nr delete mode 100644 test_programs/execution_success/regression_5045/Nargo.toml delete mode 100644 test_programs/execution_success/regression_5045/Prover.toml delete mode 100644 test_programs/execution_success/regression_5045/src/main.nr delete mode 100644 test_programs/execution_success/regression_5252/Nargo.toml delete mode 100644 test_programs/execution_success/regression_5252/Prover.toml delete mode 100644 test_programs/execution_success/regression_5252/src/main.nr delete mode 100644 test_programs/execution_success/regression_5435/Nargo.toml delete mode 100644 test_programs/execution_success/regression_5435/Prover.toml delete mode 100644 test_programs/execution_success/regression_5435/src/main.nr delete mode 100644 test_programs/execution_success/regression_5462/Nargo.toml delete mode 100644 test_programs/execution_success/regression_5462/src/main.nr delete mode 100644 test_programs/execution_success/regression_5615/Nargo.toml delete mode 100644 test_programs/execution_success/regression_5615/src/main.nr delete mode 100644 test_programs/execution_success/regression_capacity_tracker/Nargo.toml delete mode 100644 test_programs/execution_success/regression_capacity_tracker/Prover.toml delete mode 100644 test_programs/execution_success/regression_capacity_tracker/src/main.nr delete mode 100644 test_programs/execution_success/regression_mem_op_predicate/Nargo.toml delete mode 100644 test_programs/execution_success/regression_mem_op_predicate/Prover.toml delete mode 100644 test_programs/execution_success/regression_mem_op_predicate/src/main.nr delete mode 100644 test_programs/execution_success/regression_method_cannot_be_found/Nargo.toml delete mode 100644 test_programs/execution_success/regression_method_cannot_be_found/Prover.toml delete mode 100644 test_programs/execution_success/regression_method_cannot_be_found/src/main.nr delete mode 100644 test_programs/execution_success/regression_struct_array_conditional/Nargo.toml delete mode 100644 test_programs/execution_success/regression_struct_array_conditional/Prover.toml delete mode 100644 test_programs/execution_success/regression_struct_array_conditional/src/main.nr delete mode 100644 test_programs/execution_success/regression_unsafe_no_predicates/Nargo.toml delete mode 100644 test_programs/execution_success/regression_unsafe_no_predicates/Prover.toml delete mode 100644 test_programs/execution_success/regression_unsafe_no_predicates/src/main.nr delete mode 100644 test_programs/execution_success/schnorr/Nargo.toml delete mode 100644 test_programs/execution_success/schnorr/Prover.toml delete mode 100644 test_programs/execution_success/schnorr/src/main.nr delete mode 100644 test_programs/execution_success/sha256/Nargo.toml delete mode 100644 test_programs/execution_success/sha256/Prover.toml delete mode 100644 test_programs/execution_success/sha256/src/main.nr delete mode 100644 test_programs/execution_success/sha256_regression/Nargo.toml delete mode 100644 test_programs/execution_success/sha256_regression/Prover.toml delete mode 100644 test_programs/execution_success/sha256_regression/src/main.nr delete mode 100644 test_programs/execution_success/sha256_var_padding_regression/Nargo.toml delete mode 100644 test_programs/execution_success/sha256_var_padding_regression/Prover.toml delete mode 100644 test_programs/execution_success/sha256_var_padding_regression/src/main.nr delete mode 100644 test_programs/execution_success/sha256_var_size_regression/Nargo.toml delete mode 100644 test_programs/execution_success/sha256_var_size_regression/Prover.toml delete mode 100644 test_programs/execution_success/sha256_var_size_regression/src/main.nr delete mode 100644 test_programs/execution_success/sha256_var_witness_const_regression/Nargo.toml delete mode 100644 test_programs/execution_success/sha256_var_witness_const_regression/Prover.toml delete mode 100644 test_programs/execution_success/sha256_var_witness_const_regression/src/main.nr delete mode 100644 test_programs/execution_success/sha2_byte/Nargo.toml delete mode 100644 test_programs/execution_success/sha2_byte/Prover.toml delete mode 100644 test_programs/execution_success/sha2_byte/src/main.nr delete mode 100644 test_programs/execution_success/side_effects_constrain_array/Nargo.toml delete mode 100644 test_programs/execution_success/side_effects_constrain_array/Prover.toml delete mode 100644 test_programs/execution_success/side_effects_constrain_array/src/main.nr delete mode 100644 test_programs/execution_success/signed_arithmetic/Nargo.toml delete mode 100644 test_programs/execution_success/signed_arithmetic/Prover.toml delete mode 100644 test_programs/execution_success/signed_arithmetic/src/main.nr delete mode 100644 test_programs/execution_success/signed_cmp/Nargo.toml delete mode 100644 test_programs/execution_success/signed_cmp/Prover.toml delete mode 100644 test_programs/execution_success/signed_cmp/src/main.nr delete mode 100644 test_programs/execution_success/signed_comparison/Nargo.toml delete mode 100644 test_programs/execution_success/signed_comparison/Prover.toml delete mode 100644 test_programs/execution_success/signed_comparison/src/main.nr delete mode 100644 test_programs/execution_success/signed_div/Nargo.toml delete mode 100644 test_programs/execution_success/signed_div/Prover.toml delete mode 100644 test_programs/execution_success/signed_div/src/main.nr delete mode 100644 test_programs/execution_success/signed_division/Nargo.toml delete mode 100644 test_programs/execution_success/signed_division/Prover.toml delete mode 100644 test_programs/execution_success/signed_division/src/main.nr delete mode 100644 test_programs/execution_success/simple_2d_array/Nargo.toml delete mode 100644 test_programs/execution_success/simple_2d_array/Prover.toml delete mode 100644 test_programs/execution_success/simple_2d_array/src/main.nr delete mode 100644 test_programs/execution_success/simple_add_and_ret_arr/Nargo.toml delete mode 100644 test_programs/execution_success/simple_add_and_ret_arr/Prover.toml delete mode 100644 test_programs/execution_success/simple_add_and_ret_arr/src/main.nr delete mode 100644 test_programs/execution_success/simple_array_param/Nargo.toml delete mode 100644 test_programs/execution_success/simple_array_param/Prover.toml delete mode 100644 test_programs/execution_success/simple_array_param/src/main.nr delete mode 100644 test_programs/execution_success/simple_bitwise/Nargo.toml delete mode 100644 test_programs/execution_success/simple_bitwise/Prover.toml delete mode 100644 test_programs/execution_success/simple_bitwise/src/main.nr delete mode 100644 test_programs/execution_success/simple_comparison/Nargo.toml delete mode 100644 test_programs/execution_success/simple_comparison/Prover.toml delete mode 100644 test_programs/execution_success/simple_comparison/src/main.nr delete mode 100644 test_programs/execution_success/simple_mut/Nargo.toml delete mode 100644 test_programs/execution_success/simple_mut/Prover.toml delete mode 100644 test_programs/execution_success/simple_mut/src/main.nr delete mode 100644 test_programs/execution_success/simple_not/Nargo.toml delete mode 100644 test_programs/execution_success/simple_not/Prover.toml delete mode 100644 test_programs/execution_success/simple_not/src/main.nr delete mode 100644 test_programs/execution_success/simple_print/Nargo.toml delete mode 100644 test_programs/execution_success/simple_print/Prover.toml delete mode 100644 test_programs/execution_success/simple_print/src/main.nr delete mode 100644 test_programs/execution_success/simple_program_addition/Nargo.toml delete mode 100644 test_programs/execution_success/simple_program_addition/Prover.toml delete mode 100644 test_programs/execution_success/simple_program_addition/src/main.nr delete mode 100644 test_programs/execution_success/simple_radix/Nargo.toml delete mode 100644 test_programs/execution_success/simple_radix/Prover.toml delete mode 100644 test_programs/execution_success/simple_radix/src/main.nr delete mode 100644 test_programs/execution_success/simple_shield/Nargo.toml delete mode 100644 test_programs/execution_success/simple_shield/Prover.toml delete mode 100644 test_programs/execution_success/simple_shield/src/main.nr delete mode 100644 test_programs/execution_success/simple_shift_left_right/Nargo.toml delete mode 100644 test_programs/execution_success/simple_shift_left_right/Prover.toml delete mode 100644 test_programs/execution_success/simple_shift_left_right/src/main.nr delete mode 100644 test_programs/execution_success/single_verify_proof/Nargo.toml delete mode 100644 test_programs/execution_success/single_verify_proof/Prover.toml delete mode 100644 test_programs/execution_success/single_verify_proof/src/main.nr delete mode 100644 test_programs/execution_success/slice_coercion/Nargo.toml delete mode 100644 test_programs/execution_success/slice_coercion/Prover.toml delete mode 100644 test_programs/execution_success/slice_coercion/src/main.nr delete mode 100644 test_programs/execution_success/slice_dynamic_index/Nargo.toml delete mode 100644 test_programs/execution_success/slice_dynamic_index/Prover.toml delete mode 100644 test_programs/execution_success/slice_dynamic_index/src/main.nr delete mode 100644 test_programs/execution_success/slice_loop/Nargo.toml delete mode 100644 test_programs/execution_success/slice_loop/Prover.toml delete mode 100644 test_programs/execution_success/slice_loop/src/main.nr delete mode 100644 test_programs/execution_success/slice_regex/Nargo.toml delete mode 100644 test_programs/execution_success/slice_regex/src/main.nr delete mode 100644 test_programs/execution_success/slices/Nargo.toml delete mode 100644 test_programs/execution_success/slices/Prover.toml delete mode 100644 test_programs/execution_success/slices/src/main.nr delete mode 100644 test_programs/execution_success/strings/Nargo.toml delete mode 100644 test_programs/execution_success/strings/Prover.toml delete mode 100644 test_programs/execution_success/strings/src/main.nr delete mode 100644 test_programs/execution_success/struct/Nargo.toml delete mode 100644 test_programs/execution_success/struct/Prover.toml delete mode 100644 test_programs/execution_success/struct/src/main.nr delete mode 100644 test_programs/execution_success/struct_array_inputs/Nargo.toml delete mode 100644 test_programs/execution_success/struct_array_inputs/Prover.toml delete mode 100644 test_programs/execution_success/struct_array_inputs/src/main.nr delete mode 100644 test_programs/execution_success/struct_fields_ordering/Nargo.toml delete mode 100644 test_programs/execution_success/struct_fields_ordering/Prover.toml delete mode 100644 test_programs/execution_success/struct_fields_ordering/src/main.nr delete mode 100644 test_programs/execution_success/struct_inputs/Nargo.toml delete mode 100644 test_programs/execution_success/struct_inputs/Prover.toml delete mode 100644 test_programs/execution_success/struct_inputs/src/foo.nr delete mode 100644 test_programs/execution_success/struct_inputs/src/foo/bar.nr delete mode 100644 test_programs/execution_success/struct_inputs/src/main.nr delete mode 100644 test_programs/execution_success/submodules/Nargo.toml delete mode 100644 test_programs/execution_success/submodules/Prover.toml delete mode 100644 test_programs/execution_success/submodules/src/main.nr delete mode 100644 test_programs/execution_success/to_be_bytes/Nargo.toml delete mode 100644 test_programs/execution_success/to_be_bytes/Prover.toml delete mode 100644 test_programs/execution_success/to_be_bytes/src/main.nr delete mode 100644 test_programs/execution_success/to_bits/Nargo.toml delete mode 100644 test_programs/execution_success/to_bits/src/main.nr delete mode 100644 test_programs/execution_success/to_bytes_consistent/Nargo.toml delete mode 100644 test_programs/execution_success/to_bytes_consistent/Prover.toml delete mode 100644 test_programs/execution_success/to_bytes_consistent/src/main.nr delete mode 100644 test_programs/execution_success/to_bytes_integration/Nargo.toml delete mode 100644 test_programs/execution_success/to_bytes_integration/Prover.toml delete mode 100644 test_programs/execution_success/to_bytes_integration/src/main.nr delete mode 100644 test_programs/execution_success/to_le_bytes/Nargo.toml delete mode 100644 test_programs/execution_success/to_le_bytes/Prover.toml delete mode 100644 test_programs/execution_success/to_le_bytes/src/main.nr delete mode 100644 test_programs/execution_success/trait_as_return_type/Nargo.toml delete mode 100644 test_programs/execution_success/trait_as_return_type/Prover.toml delete mode 100644 test_programs/execution_success/trait_as_return_type/src/main.nr delete mode 100644 test_programs/execution_success/trait_impl_base_type/Nargo.toml delete mode 100644 test_programs/execution_success/trait_impl_base_type/Prover.toml delete mode 100644 test_programs/execution_success/trait_impl_base_type/src/main.nr delete mode 100644 test_programs/execution_success/trait_inheritance/Nargo.toml delete mode 100644 test_programs/execution_success/trait_inheritance/Prover.toml delete mode 100644 test_programs/execution_success/trait_inheritance/src/main.nr delete mode 100644 test_programs/execution_success/traits_in_crates_1/Nargo.toml delete mode 100644 test_programs/execution_success/traits_in_crates_1/Prover.toml delete mode 100644 test_programs/execution_success/traits_in_crates_1/crate1/Nargo.toml delete mode 100644 test_programs/execution_success/traits_in_crates_1/crate1/src/lib.nr delete mode 100644 test_programs/execution_success/traits_in_crates_1/crate2/Nargo.toml delete mode 100644 test_programs/execution_success/traits_in_crates_1/crate2/src/lib.nr delete mode 100644 test_programs/execution_success/traits_in_crates_1/src/main.nr delete mode 100644 test_programs/execution_success/traits_in_crates_2/Nargo.toml delete mode 100644 test_programs/execution_success/traits_in_crates_2/Prover.toml delete mode 100644 test_programs/execution_success/traits_in_crates_2/crate1/Nargo.toml delete mode 100644 test_programs/execution_success/traits_in_crates_2/crate1/src/lib.nr delete mode 100644 test_programs/execution_success/traits_in_crates_2/crate2/Nargo.toml delete mode 100644 test_programs/execution_success/traits_in_crates_2/crate2/src/lib.nr delete mode 100644 test_programs/execution_success/traits_in_crates_2/src/main.nr delete mode 100644 test_programs/execution_success/tuple_inputs/Nargo.toml delete mode 100644 test_programs/execution_success/tuple_inputs/Prover.toml delete mode 100644 test_programs/execution_success/tuple_inputs/src/main.nr delete mode 100644 test_programs/execution_success/tuples/Nargo.toml delete mode 100644 test_programs/execution_success/tuples/Prover.toml delete mode 100644 test_programs/execution_success/tuples/src/main.nr delete mode 100644 test_programs/execution_success/type_aliases/Nargo.toml delete mode 100644 test_programs/execution_success/type_aliases/Prover.toml delete mode 100644 test_programs/execution_success/type_aliases/src/main.nr delete mode 100644 test_programs/execution_success/u128/Nargo.toml delete mode 100644 test_programs/execution_success/u128/Prover.toml delete mode 100644 test_programs/execution_success/u128/src/main.nr delete mode 100644 test_programs/execution_success/u16_support/Nargo.toml delete mode 100644 test_programs/execution_success/u16_support/Prover.toml delete mode 100644 test_programs/execution_success/u16_support/src/main.nr delete mode 100644 test_programs/execution_success/uhashmap/Nargo.toml delete mode 100644 test_programs/execution_success/uhashmap/Prover.toml delete mode 100644 test_programs/execution_success/uhashmap/src/main.nr delete mode 100644 test_programs/execution_success/unary_operator_overloading/Nargo.toml delete mode 100644 test_programs/execution_success/unary_operator_overloading/Prover.toml delete mode 100644 test_programs/execution_success/unary_operator_overloading/src/main.nr delete mode 100644 test_programs/execution_success/unit_value/Nargo.toml delete mode 100644 test_programs/execution_success/unit_value/src/main.nr delete mode 100644 test_programs/execution_success/unsafe_range_constraint/Nargo.toml delete mode 100644 test_programs/execution_success/unsafe_range_constraint/Prover.toml delete mode 100644 test_programs/execution_success/unsafe_range_constraint/src/main.nr delete mode 100644 test_programs/execution_success/verify_honk_proof/Nargo.toml delete mode 100644 test_programs/execution_success/verify_honk_proof/Prover.toml delete mode 100644 test_programs/execution_success/verify_honk_proof/src/main.nr delete mode 100644 test_programs/execution_success/wildcard_type/Nargo.toml delete mode 100644 test_programs/execution_success/wildcard_type/Prover.toml delete mode 100644 test_programs/execution_success/wildcard_type/src/main.nr delete mode 100644 test_programs/execution_success/witness_compression/Nargo.toml delete mode 100644 test_programs/execution_success/witness_compression/Prover.toml delete mode 100644 test_programs/execution_success/witness_compression/src/main.nr delete mode 100644 test_programs/execution_success/workspace/Nargo.toml delete mode 100644 test_programs/execution_success/workspace/crates/a/Nargo.toml delete mode 100644 test_programs/execution_success/workspace/crates/a/Prover.toml delete mode 100644 test_programs/execution_success/workspace/crates/a/src/main.nr delete mode 100644 test_programs/execution_success/workspace/crates/b/Nargo.toml delete mode 100644 test_programs/execution_success/workspace/crates/b/Prover.toml delete mode 100644 test_programs/execution_success/workspace/crates/b/src/main.nr delete mode 100644 test_programs/execution_success/workspace_default_member/Nargo.toml delete mode 100644 test_programs/execution_success/workspace_default_member/Prover.toml delete mode 100644 test_programs/execution_success/workspace_default_member/a/Nargo.toml delete mode 100644 test_programs/execution_success/workspace_default_member/a/Prover.toml delete mode 100644 test_programs/execution_success/workspace_default_member/a/src/main.nr delete mode 100644 test_programs/execution_success/workspace_default_member/b/Nargo.toml delete mode 100644 test_programs/execution_success/workspace_default_member/b/Prover.toml delete mode 100644 test_programs/execution_success/workspace_default_member/b/src/main.nr delete mode 100644 test_programs/execution_success/wrapping_operations/Nargo.toml delete mode 100644 test_programs/execution_success/wrapping_operations/Prover.toml delete mode 100644 test_programs/execution_success/wrapping_operations/src/main.nr delete mode 100644 test_programs/execution_success/xor/Nargo.toml delete mode 100644 test_programs/execution_success/xor/Prover.toml delete mode 100644 test_programs/execution_success/xor/src/main.nr diff --git a/test_programs/execution_success/1327_concrete_in_generic/Nargo.toml b/test_programs/execution_success/1327_concrete_in_generic/Nargo.toml deleted file mode 100644 index 3adf969538c..00000000000 --- a/test_programs/execution_success/1327_concrete_in_generic/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "1327_concrete_in_generic" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/1327_concrete_in_generic/Prover.toml b/test_programs/execution_success/1327_concrete_in_generic/Prover.toml deleted file mode 100644 index e5fc42da053..00000000000 --- a/test_programs/execution_success/1327_concrete_in_generic/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -input = 1 \ No newline at end of file diff --git a/test_programs/execution_success/1327_concrete_in_generic/src/main.nr b/test_programs/execution_success/1327_concrete_in_generic/src/main.nr deleted file mode 100644 index 3e476107c29..00000000000 --- a/test_programs/execution_success/1327_concrete_in_generic/src/main.nr +++ /dev/null @@ -1,64 +0,0 @@ -// --- -fn new_concrete_c_over_d() -> C { - let d_method_interface = get_d_method_interface(); - C::new(d_method_interface) -} -// --- -// Map -struct B { - new_concrete_t_c_constructor: fn()->T_C, - } - -impl B { - fn new(new_concrete_t_c_constructor: fn() -> T_C) -> B { - B { new_concrete_t_c_constructor } - } - - fn get_t_c(self) -> T_C { - let new_concrete_t_c_constructor = self.new_concrete_t_c_constructor; - new_concrete_t_c_constructor() - } -} -// --- -// PrivateSet -struct C { - t_d_interface: MethodInterface, - } - -impl C { - fn new(t_d_interface: MethodInterface) -> Self { - C { t_d_interface } - } - - fn call_method_of_t_d(self, t_d: T_D) -> Field { - let some_method_on_t_d = self.t_d_interface.some_method_on_t_d; - some_method_on_t_d(t_d) - } -} -// --- -struct MethodInterface { - some_method_on_t_d: fn(T_D)->Field, - } -// --- -// Note -struct D { - d: Field, - } - -fn d_method(input: D) -> Field { - input.d * input.d -} - -fn get_d_method_interface() -> MethodInterface { - MethodInterface { some_method_on_t_d: d_method } -} -// --- -fn main(input: Field) -> pub Field { - let b: B> = B::new(new_concrete_c_over_d); - let c: C = b.get_t_c(); // PrivateMutable - let d: D = D { d: input }; // Note - let output = c.call_method_of_t_d(d); - - output -} -// --- diff --git a/test_programs/execution_success/1_mul/Nargo.toml b/test_programs/execution_success/1_mul/Nargo.toml deleted file mode 100644 index 94b36157cca..00000000000 --- a/test_programs/execution_success/1_mul/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "1_mul" -version = "0.1.0" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/1_mul/Prover.toml b/test_programs/execution_success/1_mul/Prover.toml deleted file mode 100644 index 9bff601c75a..00000000000 --- a/test_programs/execution_success/1_mul/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "3" -y = "4" -z = "429981696" diff --git a/test_programs/execution_success/1_mul/src/main.nr b/test_programs/execution_success/1_mul/src/main.nr deleted file mode 100644 index 8f4032dbd75..00000000000 --- a/test_programs/execution_success/1_mul/src/main.nr +++ /dev/null @@ -1,9 +0,0 @@ -// Test unsafe integer multiplication with overflow: 12^8 = 429 981 696 -// The circuit should handle properly the growth of the bit size -fn main(mut x: u32, y: u32, z: u32) { - x *= y; - x *= x; //144 - x *= x; //20736 - x *= x; //429 981 696 - assert(x == z); -} diff --git a/test_programs/execution_success/2_div/Nargo.toml b/test_programs/execution_success/2_div/Nargo.toml deleted file mode 100644 index f689c97f760..00000000000 --- a/test_programs/execution_success/2_div/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "2_div" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/2_div/Prover.toml b/test_programs/execution_success/2_div/Prover.toml deleted file mode 100644 index ee6f0ef229a..00000000000 --- a/test_programs/execution_success/2_div/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "7" -y = "3" -z = "2" \ No newline at end of file diff --git a/test_programs/execution_success/2_div/src/main.nr b/test_programs/execution_success/2_div/src/main.nr deleted file mode 100644 index e16cc5be229..00000000000 --- a/test_programs/execution_success/2_div/src/main.nr +++ /dev/null @@ -1,7 +0,0 @@ -// Testing integer division: 7/3 = 2 -fn main(mut x: u32, y: u32, z: u32) { - let a = x % y; - assert(x / y == z); - assert(a == x - z * y); - assert((50 as u64) % (9 as u64) == 5); -} diff --git a/test_programs/execution_success/3_add/Nargo.toml b/test_programs/execution_success/3_add/Nargo.toml deleted file mode 100644 index 0bd2caef024..00000000000 --- a/test_programs/execution_success/3_add/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "3_add" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/3_add/Prover.toml b/test_programs/execution_success/3_add/Prover.toml deleted file mode 100644 index 5d777c023db..00000000000 --- a/test_programs/execution_success/3_add/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "3" -y = "4" -z = "7" \ No newline at end of file diff --git a/test_programs/execution_success/3_add/src/main.nr b/test_programs/execution_success/3_add/src/main.nr deleted file mode 100644 index 480348dc1cf..00000000000 --- a/test_programs/execution_success/3_add/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -// Test integer addition: 3 + 4 = 7 -fn main(mut x: u32, y: u32, z: u32) { - x += y; - assert(x == z); - - x *= 8; - assert(x > 9); -} diff --git a/test_programs/execution_success/4_sub/Nargo.toml b/test_programs/execution_success/4_sub/Nargo.toml deleted file mode 100644 index b282bfe6287..00000000000 --- a/test_programs/execution_success/4_sub/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "4_sub" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/4_sub/Prover.toml b/test_programs/execution_success/4_sub/Prover.toml deleted file mode 100644 index 1240475dee3..00000000000 --- a/test_programs/execution_success/4_sub/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "12" -y = "2418266113" -z = "1876701195" \ No newline at end of file diff --git a/test_programs/execution_success/4_sub/src/main.nr b/test_programs/execution_success/4_sub/src/main.nr deleted file mode 100644 index 2b4fc395705..00000000000 --- a/test_programs/execution_success/4_sub/src/main.nr +++ /dev/null @@ -1,5 +0,0 @@ -// Test unsafe integer subtraction with underflow: 12 - 2418266113 = 1876701195 modulo 2^32 -fn main(mut x: u32, y: u32, z: u32) { - x = std::wrapping_sub(x,y); - assert(x == z); -} diff --git a/test_programs/execution_success/5_over/Nargo.toml b/test_programs/execution_success/5_over/Nargo.toml deleted file mode 100644 index dd9a21b44bf..00000000000 --- a/test_programs/execution_success/5_over/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "5_over" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/5_over/Prover.toml b/test_programs/execution_success/5_over/Prover.toml deleted file mode 100644 index 9a1986329ca..00000000000 --- a/test_programs/execution_success/5_over/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "43046721" -y = "3793632897" diff --git a/test_programs/execution_success/5_over/src/main.nr b/test_programs/execution_success/5_over/src/main.nr deleted file mode 100644 index 6c4153e4b49..00000000000 --- a/test_programs/execution_success/5_over/src/main.nr +++ /dev/null @@ -1,9 +0,0 @@ -// Test unsafe integer arithmetic -// Test odd bits integer -fn main(mut x: u32, y: u32) { - x = std::wrapping_mul(x,x); - assert(y == x); - - let c: u1 = 0; - assert(x as u1 > c); -} diff --git a/test_programs/execution_success/6/Nargo.toml b/test_programs/execution_success/6/Nargo.toml deleted file mode 100644 index 9774a5d8c47..00000000000 --- a/test_programs/execution_success/6/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "6" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/6/Prover.toml b/test_programs/execution_success/6/Prover.toml deleted file mode 100644 index 1c52aef063c..00000000000 --- a/test_programs/execution_success/6/Prover.toml +++ /dev/null @@ -1,39 +0,0 @@ - -# hello as bytes -# used : https://emn178.github.io/online-tools/sha256.html -x = [104, 101, 108, 108, 111] - -result = [ - 0x2c, - 0xf2, - 0x4d, - 0xba, - 0x5f, - 0xb0, - 0xa3, - 0x0e, - 0x26, - 0xe8, - 0x3b, - 0x2a, - 0xc5, - 0xb9, - 0xe2, - 0x9e, - 0x1b, - 0x16, - 0x1e, - 0x5c, - 0x1f, - 0xa7, - 0x42, - 0x5e, - 0x73, - 0x04, - 0x33, - 0x62, - 0x93, - 0x8b, - 0x98, - 0x24, -] diff --git a/test_programs/execution_success/6/src/main.nr b/test_programs/execution_success/6/src/main.nr deleted file mode 100644 index 8657199bd7f..00000000000 --- a/test_programs/execution_success/6/src/main.nr +++ /dev/null @@ -1,18 +0,0 @@ -// Sha256 circuit where the input is 5 bytes -// not five field elements since sha256 operates over -// bytes. -// -// If you do not cast, it will take all the bytes from the field element! -// Mimc input is an array of field elements -// The function is called mimc_bn254 to emphasize its parameters are chosen for bn254 curve, it should be used only with a proving system using the same curve (e.g Plonk from Aztec) - -fn main(x: [u8; 5], result: pub [u8; 32]) { - let mut digest = std::hash::sha256(x); - digest[0] = 5 as u8; - digest = std::hash::sha256(x); - assert(digest == result); - - let y = [12, 45, 78, 41]; - let h = std::hash::mimc::mimc_bn254(y); - assert(h == 18226366069841799622585958305961373004333097209608110160936134895615261821931); -} diff --git a/test_programs/execution_success/6_array/Nargo.toml b/test_programs/execution_success/6_array/Nargo.toml deleted file mode 100644 index c75df3e468e..00000000000 --- a/test_programs/execution_success/6_array/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "6_array" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/6_array/Prover.toml b/test_programs/execution_success/6_array/Prover.toml deleted file mode 100644 index 2e2ed310ba1..00000000000 --- a/test_programs/execution_success/6_array/Prover.toml +++ /dev/null @@ -1,8 +0,0 @@ -x = [104, 101, 108, 108, 111] -y = [10, 81, 18, 48, 0] -z = "59" -t = "10" - -#7128 -#15309 -#16349 \ No newline at end of file diff --git a/test_programs/execution_success/6_array/src/main.nr b/test_programs/execution_success/6_array/src/main.nr deleted file mode 100644 index d7180c260ff..00000000000 --- a/test_programs/execution_success/6_array/src/main.nr +++ /dev/null @@ -1,52 +0,0 @@ -//Basic tests for arrays -fn main(x: [u32; 5], y: [u32; 5], mut z: u32, t: u32) { - let mut c = 2301; - z = y[4]; - //Test 1: - for i in 0..5 { - c = z*z*y[i]; - z -= c; - } - assert(z == 0); //y[4]=0, so c and z are always 0 - //Test 2: - c = 2301 as u32; - for i in 0..5 { - c = t+2 as u32; - c = std::wrapping_mul(std::wrapping_mul(z,z),x[i]); - z =std::wrapping_add(z, std::wrapping_sub(x[i]*y[i] , c)); - } - assert(z == 3814912846); - //Test 3: - c = 2300001 as u32; - z = y[4]; - for i in 0..5 { - z = z + x[i]*y[i]; - for _i in 0..3 { - c = std::wrapping_sub(i as u32,2 as u32); - z = std::wrapping_mul(z,c); - } - } - assert(z == 41472); - //Test 4: - z = y[4]; - for i in 0..3 { - z += x[i] * y[i]; - for j in 0..2 { - z += x[i+j] - y[i+j]; - } - } - assert(z == 11539); - //Test 5: - let cc = if z < 1 { x } else { y }; - assert(cc[0] == y[0]); - // Test 6: for-each loops - for y_elem in y { - for x_elem in x { - assert(x_elem != y_elem); - } - } - // Test 7: Arrays of tuples/structs - let mut tuple_array = [(1, 2), (3, 4), (5, 6)]; - tuple_array[1] = (7, 8); - assert(tuple_array[1].1 == 8); -} diff --git a/test_programs/execution_success/7/Nargo.toml b/test_programs/execution_success/7/Nargo.toml deleted file mode 100644 index f69f89468d7..00000000000 --- a/test_programs/execution_success/7/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "7" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/7/Prover.toml b/test_programs/execution_success/7/Prover.toml deleted file mode 100644 index bc3784726d2..00000000000 --- a/test_programs/execution_success/7/Prover.toml +++ /dev/null @@ -1,38 +0,0 @@ - -# hello as bytes -# https://toolkitbay.com/tkb/tool/BLAKE2s_256 -x = [104, 101, 108, 108, 111] -result = [ - 0x19, - 0x21, - 0x3b, - 0xac, - 0xc5, - 0x8d, - 0xee, - 0x6d, - 0xbd, - 0xe3, - 0xce, - 0xb9, - 0xa4, - 0x7c, - 0xbb, - 0x33, - 0x0b, - 0x3d, - 0x86, - 0xf8, - 0xcc, - 0xa8, - 0x99, - 0x7e, - 0xb0, - 0x0b, - 0xe4, - 0x56, - 0xf1, - 0x40, - 0xca, - 0x25, -] diff --git a/test_programs/execution_success/7/src/main.nr b/test_programs/execution_success/7/src/main.nr deleted file mode 100644 index ad3fe1aadc8..00000000000 --- a/test_programs/execution_success/7/src/main.nr +++ /dev/null @@ -1,9 +0,0 @@ -// This is the same as Blake2s example. -// -// Pre-alpha dependencies must now be prefixed with the word "dep". -// The line below indicates that we would like to pull in the standard library dependency. - -fn main(x: [u8; 5], result: [u8; 32]) { - let digest = std::hash::blake2s(x); - assert(digest == result); -} diff --git a/test_programs/execution_success/7_function/Nargo.toml b/test_programs/execution_success/7_function/Nargo.toml deleted file mode 100644 index cec14ff7d6a..00000000000 --- a/test_programs/execution_success/7_function/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "7_function" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/7_function/Prover.toml b/test_programs/execution_success/7_function/Prover.toml deleted file mode 100644 index 9140e7f7530..00000000000 --- a/test_programs/execution_success/7_function/Prover.toml +++ /dev/null @@ -1,6 +0,0 @@ -x = "59" -y = "5" -a = "1" - -arr1=[3320379920, 1938147428, 1942509796, 1795943184, 24853, 0, 0, 0, 0] -arr2=[2912727897, 3590519536, 1687587470, 3896107618, 1092831095, 0, 0, 0, 0] \ No newline at end of file diff --git a/test_programs/execution_success/7_function/src/main.nr b/test_programs/execution_success/7_function/src/main.nr deleted file mode 100644 index 32227b841bd..00000000000 --- a/test_programs/execution_success/7_function/src/main.nr +++ /dev/null @@ -1,139 +0,0 @@ -//Tests for function calling -fn f1(mut x: Field) -> Field { - x = x + 1; - x = f2(x); - x -} - -fn f2(mut x: Field) -> Field { - x += 2; - x -} -// Simple example -fn test0(mut a: Field) { - a = f2(a); - assert(a == 3); -} -// Nested call -fn test1(mut a: Field) { - a = f1(a); - assert(a == 4); -} - -fn test2(z: Field, t: u32) { - let a = z + t as Field; - assert(a == 64); - let e = pow(z, t as Field); - assert(e == 714924299); -} - -fn pow(base: Field, exponent: Field) -> Field { - let mut r = 1 as Field; - let b: [u1; 32] = exponent.to_le_bits(); - for i in 1..33 { - r = r*r; - r = (b[32-i] as Field) * (r * base) + (1 - b[32-i] as Field) * r; - } - r -} - -fn test3(x: [u8; 3]) -> [u8; 3] { - let mut buffer = [0 as u8; 3]; - for i in 0..3 { - buffer[i] = x[i]; - } - assert(buffer == x); - buffer -} - -fn test_multiple(x: u32, y: u32) -> (u32, u32) { - (y, x) -} - -fn test_multiple2() -> my_struct { - my_struct { a: 5 as u32, b: 7 as u32 } -} - -fn test_multiple3(x: u32, y: u32) { - assert(x == y); -} - -struct my_struct { - a: u32, - b: u32, -} - -struct my2 { - aa: my_struct, - bb: my_struct, -} - -fn test_multiple4(s: my_struct) { - assert(s.a == s.b + 2); -} - -fn test_multiple5(a: (u32, u32)) { - assert(a.0 == a.1 + 2); -} - -fn test_multiple6(a: my2, b: my_struct, c: (my2, my_struct)) { - test_multiple4(a.aa); - test_multiple5((b.a, b.b)); - assert(c.0.aa.a == c.1.a); -} - -fn foo(a: [Field; N]) -> [Field; N] { - a -} - -fn bar() -> [Field; 1] { - foo([0]) -} - -fn main(x: u32, y: u32, a: Field, arr1: [u32; 9], arr2: [u32; 9]) { - let mut ss: my_struct = my_struct { b: x, a: x + 2 }; - test_multiple4(ss); - test_multiple5((ss.a, ss.b)); - let my = my2 { aa: ss, bb: ss }; - ss.a = 61; - test_multiple6(my, ss, (my, ss)); - - let my_block = { - let mut ab = f2(a); - ab = ab + a; - (x, ab) - }; - assert(my_block.1 == 4); - - test0(a); - test1(a); - test2(x as Field, y); - assert(bar()[0] == 0); - - let mut b = [0 as u8, 5 as u8, 2 as u8]; - let c = test3(b); - assert(b == c); - b[0] = 1 as u8; - let cc = test3(b); - assert(c != cc); - let e = test_multiple(x, y); - assert(e.1 == e.0 + 54 as u32); - let d = test_multiple2(); - assert(d.b == d.a + 2 as u32); - test_multiple3(y, y); - //Regression test for issue #628: - let result = first(arr_to_field(arr1), arr_to_field(arr2)); - assert(result[0] == arr1[0] as Field); -} -// Issue #628 -fn arr_to_field(arr: [u32; 9]) -> [Field; 9] { - let mut as_field: [Field; 9] = [0 as Field; 9]; - for i in 0..9 { - as_field[i] = arr[i] as Field; - } - as_field -} - -fn first(a: [Field; 9], _b: [Field; 9]) -> [Field; 9] { - a -} diff --git a/test_programs/execution_success/acir_inside_brillig_recursion/Nargo.toml b/test_programs/execution_success/acir_inside_brillig_recursion/Nargo.toml deleted file mode 100644 index 462532bb484..00000000000 --- a/test_programs/execution_success/acir_inside_brillig_recursion/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "acir_inside_brillig_recursion" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/acir_inside_brillig_recursion/Prover.toml b/test_programs/execution_success/acir_inside_brillig_recursion/Prover.toml deleted file mode 100644 index 8b137891791..00000000000 --- a/test_programs/execution_success/acir_inside_brillig_recursion/Prover.toml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test_programs/execution_success/acir_inside_brillig_recursion/src/main.nr b/test_programs/execution_success/acir_inside_brillig_recursion/src/main.nr deleted file mode 100644 index 49b7c00b6b9..00000000000 --- a/test_programs/execution_success/acir_inside_brillig_recursion/src/main.nr +++ /dev/null @@ -1,17 +0,0 @@ -fn main() { - unsafe { - assert_eq(fibonacci(3), fibonacci_hint(3)); - } -} - -unconstrained fn fibonacci_hint(x: u32) -> u32 { - fibonacci(x) -} - -fn fibonacci(x: u32) -> u32 { - if x <= 1 { - x - } else { - fibonacci(x - 1) + fibonacci(x - 2) - } -} diff --git a/test_programs/execution_success/aes128_encrypt/Nargo.toml b/test_programs/execution_success/aes128_encrypt/Nargo.toml deleted file mode 100644 index 29425131cff..00000000000 --- a/test_programs/execution_success/aes128_encrypt/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "aes128_encrypt" -type = "bin" -authors = [""] -compiler_version = ">=0.27.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/aes128_encrypt/Prover.toml b/test_programs/execution_success/aes128_encrypt/Prover.toml deleted file mode 100644 index b6b684790e1..00000000000 --- a/test_programs/execution_success/aes128_encrypt/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -inputs = "kevlovesrust" -iv = "0000000000000000" -key = "0000000000000000" -output = "F40E7EACAB28D0BAADB8E269EE7ACDBF" \ No newline at end of file diff --git a/test_programs/execution_success/aes128_encrypt/src/main.nr b/test_programs/execution_success/aes128_encrypt/src/main.nr deleted file mode 100644 index 31d907fea10..00000000000 --- a/test_programs/execution_success/aes128_encrypt/src/main.nr +++ /dev/null @@ -1,40 +0,0 @@ -unconstrained fn decode_ascii(ascii: u8) -> u8 { - if ascii < 58 { - ascii - 48 - } else if ascii < 71 { - ascii - 55 - } else { - ascii - 87 - } -} - -unconstrained fn decode_hex(s: str) -> [u8; M] { - let mut result: [u8; M] = [0; M]; - let as_bytes = s.as_bytes(); - for i in 0..N { - if i % 2 != 0 { - continue; - } - result[i/2] = decode_ascii(as_bytes[i]) * 16 + decode_ascii(as_bytes[i + 1]); - } - result -} - -unconstrained fn cipher(plaintext: [u8; 12], iv: [u8; 16], key: [u8; 16]) -> [u8; 16] { - let result = std::aes128::aes128_encrypt(plaintext, iv, key); - result.as_array() -} - -fn main(inputs: str<12>, iv: str<16>, key: str<16>, output: str<32>) { - let result: [u8; 16] = std::aes128::aes128_encrypt(inputs.as_bytes(), iv.as_bytes(), key.as_bytes()).as_array(); - - let output_bytes: [u8; 16] = unsafe { - decode_hex(output) - }; - assert(result == output_bytes); - - let unconstrained_result = unsafe { - cipher(inputs.as_bytes(), iv.as_bytes(), key.as_bytes()) - }; - assert(unconstrained_result == output_bytes); -} diff --git a/test_programs/execution_success/arithmetic_binary_operations/Nargo.toml b/test_programs/execution_success/arithmetic_binary_operations/Nargo.toml deleted file mode 100644 index c9160aa2592..00000000000 --- a/test_programs/execution_success/arithmetic_binary_operations/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "arithmetic_binary_operations" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/arithmetic_binary_operations/Prover.toml b/test_programs/execution_success/arithmetic_binary_operations/Prover.toml deleted file mode 100644 index 63382a9f640..00000000000 --- a/test_programs/execution_success/arithmetic_binary_operations/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "3" -y = "4" -z = "5" diff --git a/test_programs/execution_success/arithmetic_binary_operations/src/main.nr b/test_programs/execution_success/arithmetic_binary_operations/src/main.nr deleted file mode 100644 index 69554f413a4..00000000000 --- a/test_programs/execution_success/arithmetic_binary_operations/src/main.nr +++ /dev/null @@ -1,15 +0,0 @@ -// Tests a very simple program. -// -// The features being tested are: -// Binary addition, multiplication, division, constant modulo -// x = 3, y = 4, z = 5 -fn main(x: Field, y: Field, z: Field) -> pub Field { - //cast - assert(y as u1 == 0); - - let a = x + x; // 3 + 3 = 6 - let b = a - y; // 6 - 4 = 2 - let c = b * z; // 2 * 5 = 10 - let d = c / a; // 10 / 6 (This uses field inversion, so we test it by multiplying by `a`) - d * a -} diff --git a/test_programs/execution_success/array_dynamic/Nargo.toml b/test_programs/execution_success/array_dynamic/Nargo.toml deleted file mode 100644 index 25684b00377..00000000000 --- a/test_programs/execution_success/array_dynamic/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "array_dynamic" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/array_dynamic/Prover.toml b/test_programs/execution_success/array_dynamic/Prover.toml deleted file mode 100644 index 750b3129ec9..00000000000 --- a/test_programs/execution_success/array_dynamic/Prover.toml +++ /dev/null @@ -1,9 +0,0 @@ -x = [104, 101, 108, 108, 111] -z = "59" -t = "10" -index = [0,1,2,3,4] -index2 = [0,1,2,3,4] -offset = 1 -sublen = 2 - - diff --git a/test_programs/execution_success/array_dynamic/src/main.nr b/test_programs/execution_success/array_dynamic/src/main.nr deleted file mode 100644 index 6b51095bd8c..00000000000 --- a/test_programs/execution_success/array_dynamic/src/main.nr +++ /dev/null @@ -1,38 +0,0 @@ -fn main( - x: [u32; 5], - mut z: u32, - t: u32, - index: [Field; 5], - index2: [Field; 5], - offset: Field, - sublen: Field -) { - let idx = (z - 5 * t - 5) as Field; - //dynamic array test - dyn_array(x, idx, idx - 3); - //regression for issue 1283 - let mut s = 0; - let x3 = [246, 159, 32, 176, 8]; - for i in 0..5 { - s += x3[index[i]]; - } - assert(s != 0); - - if 3 < (sublen as u32) { - assert(index[offset + 3] == index2[3]); - } -} - -fn dyn_array(mut x: [u32; 5], y: Field, z: Field) { - assert(x[y] == 111); - assert(x[z] == 101); - x[z] = 0; - assert(x[y] == 111); - assert(x[1] == 0); - if y as u32 < 10 { - x[y] = x[y] - 2; - } else { - x[y] = 0; - } - assert(x[4] == 109); -} diff --git a/test_programs/execution_success/array_dynamic_blackbox_input/Nargo.toml b/test_programs/execution_success/array_dynamic_blackbox_input/Nargo.toml deleted file mode 100644 index 03da304acc3..00000000000 --- a/test_programs/execution_success/array_dynamic_blackbox_input/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "array_dynamic_blackbox_input" -type = "bin" -authors = [""] -compiler_version = ">=0.24.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/array_dynamic_blackbox_input/Prover.toml b/test_programs/execution_success/array_dynamic_blackbox_input/Prover.toml deleted file mode 100644 index cc60eb8a8ba..00000000000 --- a/test_programs/execution_success/array_dynamic_blackbox_input/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -index = "1" -leaf = ["51", "109", "224", "175", "60", "42", "79", "222", "117", "255", "174", "79", "126", "242", "74", "34", "100", "35", "20", "200", "109", "89", "191", "219", "41", "10", "118", "217", "165", "224", "215", "109"] -path = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63"] -root = [79, 230, 126, 184, 98, 125, 226, 58, 117, 45, 140, 15, 72, 118, 89, 173, 117, 161, 166, 0, 214, 125, 13, 16, 113, 81, 173, 156, 97, 15, 57, 216] diff --git a/test_programs/execution_success/array_dynamic_blackbox_input/src/main.nr b/test_programs/execution_success/array_dynamic_blackbox_input/src/main.nr deleted file mode 100644 index 260d609928b..00000000000 --- a/test_programs/execution_success/array_dynamic_blackbox_input/src/main.nr +++ /dev/null @@ -1,27 +0,0 @@ -fn main(leaf: [u8; 32], path: [u8; 64], index: u32, root: [u8; 32]) { - compute_root(leaf, path, index, root); -} - -fn compute_root(leaf: [u8; 32], path: [u8; 64], _index: u32, root: [u8; 32]) { - let mut current = leaf; - let mut index = _index; - - for i in 0..2 { - let mut hash_input = [0; 64]; - let offset = i * 32; - let is_right = (index & 1) != 0; - let a = if is_right { 32 } else { 0 }; - let b = if is_right { 0 } else { 32 }; - - for j in 0..32 { - hash_input[j + a] = current[j]; - hash_input[j + b] = path[offset + j]; - } - - current = std::hash::sha256(hash_input); - index = index >> 1; - } - - // Regression for issue #4258 - assert(root == current); -} diff --git a/test_programs/execution_success/array_dynamic_main_output/Nargo.toml b/test_programs/execution_success/array_dynamic_main_output/Nargo.toml deleted file mode 100644 index b202b7aba0a..00000000000 --- a/test_programs/execution_success/array_dynamic_main_output/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "array_dynamic_main_output" -type = "bin" -authors = [""] -compiler_version = ">=0.23.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/array_dynamic_main_output/Prover.toml b/test_programs/execution_success/array_dynamic_main_output/Prover.toml deleted file mode 100644 index 3f1d55b9b64..00000000000 --- a/test_programs/execution_success/array_dynamic_main_output/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -index = "5" -x = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] diff --git a/test_programs/execution_success/array_dynamic_main_output/src/main.nr b/test_programs/execution_success/array_dynamic_main_output/src/main.nr deleted file mode 100644 index 50feb71f983..00000000000 --- a/test_programs/execution_success/array_dynamic_main_output/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ -fn main(mut x: [Field; 10], index: u8) -> pub [Field; 10] { - x[index] = 0; - x -} diff --git a/test_programs/execution_success/array_dynamic_nested_blackbox_input/Nargo.toml b/test_programs/execution_success/array_dynamic_nested_blackbox_input/Nargo.toml deleted file mode 100644 index 07d867d433f..00000000000 --- a/test_programs/execution_success/array_dynamic_nested_blackbox_input/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "array_dynamic_nested_blackbox_input" -type = "bin" -authors = [""] -compiler_version = ">=0.24.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/array_dynamic_nested_blackbox_input/Prover.toml b/test_programs/execution_success/array_dynamic_nested_blackbox_input/Prover.toml deleted file mode 100644 index 1f291532414..00000000000 --- a/test_programs/execution_success/array_dynamic_nested_blackbox_input/Prover.toml +++ /dev/null @@ -1,23 +0,0 @@ -y = "3" -hash_result = [50, 53, 90, 252, 105, 236, 223, 30, 135, 229, 193, 172, 51, 139, 8, 32, 188, 104, 151, 115, 129, 168, 27, 71, 203, 47, 40, 228, 89, 177, 129, 100] - -[[x]] -a = "1" -b = ["2", "3", "20"] - -[x.bar] -inner = ["100", "101", "102"] - -[[x]] -a = "4" # idx = 3, flattened start idx = 7 -b = ["5", "6", "21"] # idx = 4, flattened start idx = 8 - -[x.bar] -inner = ["103", "104", "105"] # idx = 5, flattened start idx = 11 - -[[x]] -a = "7" -b = ["8", "9", "22"] - -[x.bar] -inner = ["106", "107", "108"] \ No newline at end of file diff --git a/test_programs/execution_success/array_dynamic_nested_blackbox_input/src/main.nr b/test_programs/execution_success/array_dynamic_nested_blackbox_input/src/main.nr deleted file mode 100644 index 15a2747eaa9..00000000000 --- a/test_programs/execution_success/array_dynamic_nested_blackbox_input/src/main.nr +++ /dev/null @@ -1,20 +0,0 @@ -struct Bar { - inner: [u8; 3], -} - -struct Foo { - a: Field, - b: [Field; 3], - bar: Bar, -} - -fn main(mut x: [Foo; 3], y: pub Field, hash_result: pub [u8; 32]) { - // Simple dynamic array set for entire inner most array - x[y - 1].bar.inner = [106, 107, 10]; - let mut hash_input = x[y - 1].bar.inner; - // Make sure that we are passing a dynamic array to the black box function call - // by setting the array using a dynamic index here - hash_input[y - 1] = 0; - let hash = std::hash::sha256(hash_input); - assert_eq(hash, hash_result); -} diff --git a/test_programs/execution_success/array_eq/Nargo.toml b/test_programs/execution_success/array_eq/Nargo.toml deleted file mode 100644 index 1020d4905b1..00000000000 --- a/test_programs/execution_success/array_eq/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "array_eq" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/array_eq/Prover.toml b/test_programs/execution_success/array_eq/Prover.toml deleted file mode 100644 index ecfed7de213..00000000000 --- a/test_programs/execution_success/array_eq/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -a = [77,75,108,209,54,16,50,202,155,210,174,185,217,0,170,77,69,217,234,216,10,201,66,51,116,196,81,167,37,77,7,102] -b = [77,75,108,209,54,16,50,202,155,210,174,185,217,0,170,77,69,217,234,216,10,201,66,51,116,196,81,167,37,77,7,102] diff --git a/test_programs/execution_success/array_eq/src/main.nr b/test_programs/execution_success/array_eq/src/main.nr deleted file mode 100644 index 5bbd595898c..00000000000 --- a/test_programs/execution_success/array_eq/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ -// Simple example of checking where two arrays are equal -fn main(a: [Field; 32], b: [Field; 32]) { - assert(a == b); -} diff --git a/test_programs/execution_success/array_if_cond_simple/Nargo.toml b/test_programs/execution_success/array_if_cond_simple/Nargo.toml deleted file mode 100644 index b885d22c019..00000000000 --- a/test_programs/execution_success/array_if_cond_simple/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "array_if_cond_simple" -type = "bin" -authors = [""] -compiler_version = ">=0.28.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/array_if_cond_simple/Prover.toml b/test_programs/execution_success/array_if_cond_simple/Prover.toml deleted file mode 100644 index 2825143e8ad..00000000000 --- a/test_programs/execution_success/array_if_cond_simple/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = true -y = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] \ No newline at end of file diff --git a/test_programs/execution_success/array_if_cond_simple/src/main.nr b/test_programs/execution_success/array_if_cond_simple/src/main.nr deleted file mode 100644 index ee2f762d43c..00000000000 --- a/test_programs/execution_success/array_if_cond_simple/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -fn main(x: bool, mut y: [u32; 30]) { - if x { - y[0] = 1; - } - - let z = y[0] + y[1]; - assert(z == 1); -} diff --git a/test_programs/execution_success/array_len/Nargo.toml b/test_programs/execution_success/array_len/Nargo.toml deleted file mode 100644 index 24ac6ff7f13..00000000000 --- a/test_programs/execution_success/array_len/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "array_len" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/array_len/Prover.toml b/test_programs/execution_success/array_len/Prover.toml deleted file mode 100644 index a5ffe607b73..00000000000 --- a/test_programs/execution_success/array_len/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -len3 = [1, 2, 3] -len4 = [1, 2, 3, 4] -x = 123 diff --git a/test_programs/execution_success/array_len/src/main.nr b/test_programs/execution_success/array_len/src/main.nr deleted file mode 100644 index d794690711a..00000000000 --- a/test_programs/execution_success/array_len/src/main.nr +++ /dev/null @@ -1,24 +0,0 @@ -fn len_plus_1(array: [T; N]) -> u32 { - array.len() + 1 -} - -fn add_lens(a: [T; N], b: [Field; M]) -> u32 { - a.len() + b.len() -} - -fn nested_call(b: [Field; N]) -> u32 { - len_plus_1(b) -} - -fn main(x: Field, len3: [u8; 3], len4: [Field; 4]) { - assert(len_plus_1(len3) == 4); - assert(len_plus_1(len4) == 5); - assert(add_lens(len3, len4) == 7); - assert(nested_call(len4) == 5); - // std::array::len returns a compile-time known value - assert(len4[len3.len()] == 4); - // Regression for #1023, ensure .len still works after calling to_le_bytes on a witness. - // This was needed because normally .len is evaluated before acir-gen where to_le_bytes - // on a witness is only evaluated during/after acir-gen. - assert(x.to_le_bytes::<8>().len() != 0); -} diff --git a/test_programs/execution_success/array_neq/Nargo.toml b/test_programs/execution_success/array_neq/Nargo.toml deleted file mode 100644 index 2e4bbdf97ee..00000000000 --- a/test_programs/execution_success/array_neq/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "array_neq" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/array_neq/Prover.toml b/test_programs/execution_success/array_neq/Prover.toml deleted file mode 100644 index 3aad77f6d4d..00000000000 --- a/test_programs/execution_success/array_neq/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -a = [77,75,108,209,54,16,50,202,155,210,174,185,217,0,170,77,69,217,234,216,10,201,66,51,116,196,81,167,37,77,7,102] -b = [44,75,108,209,54,16,50,202,155,210,174,185,217,0,170,77,69,217,234,216,10,201,66,51,116,196,81,167,37,77,7,102] diff --git a/test_programs/execution_success/array_neq/src/main.nr b/test_programs/execution_success/array_neq/src/main.nr deleted file mode 100644 index a3e51dc5066..00000000000 --- a/test_programs/execution_success/array_neq/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ -// Simple example of checking where two arrays are different -fn main(a: [Field; 32], b: [Field; 32]) { - assert(a != b); -} diff --git a/test_programs/execution_success/array_sort/Nargo.toml b/test_programs/execution_success/array_sort/Nargo.toml deleted file mode 100644 index 28e9c65a0dc..00000000000 --- a/test_programs/execution_success/array_sort/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "array_sort" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/array_sort/Prover.toml b/test_programs/execution_success/array_sort/Prover.toml deleted file mode 100644 index e0d79da4da6..00000000000 --- a/test_programs/execution_success/array_sort/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -xs = [2, 1, 3] diff --git a/test_programs/execution_success/array_sort/src/main.nr b/test_programs/execution_success/array_sort/src/main.nr deleted file mode 100644 index 4f40a2cee84..00000000000 --- a/test_programs/execution_success/array_sort/src/main.nr +++ /dev/null @@ -1,6 +0,0 @@ -fn main(xs: [u8; 3]) { - let sorted = xs.sort(); - assert(sorted[0] == 1); - assert(sorted[1] == 2); - assert(sorted[2] == 3); -} diff --git a/test_programs/execution_success/array_to_slice/Nargo.toml b/test_programs/execution_success/array_to_slice/Nargo.toml deleted file mode 100644 index 90c67b07b2b..00000000000 --- a/test_programs/execution_success/array_to_slice/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "array_to_slice" -type = "bin" -authors = [""] -compiler_version = ">=0.24.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/array_to_slice/Prover.toml b/test_programs/execution_success/array_to_slice/Prover.toml deleted file mode 100644 index 26fdbc19975..00000000000 --- a/test_programs/execution_success/array_to_slice/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "0" -y = "1" diff --git a/test_programs/execution_success/array_to_slice/src/main.nr b/test_programs/execution_success/array_to_slice/src/main.nr deleted file mode 100644 index 3ca8bfff2ae..00000000000 --- a/test_programs/execution_success/array_to_slice/src/main.nr +++ /dev/null @@ -1,56 +0,0 @@ -// Converts an array into a slice. -fn as_slice_push(xs: [T; N]) -> [T] { - let mut slice = &[]; - for elem in xs { - slice = slice.push_back(elem); - } - slice -} - -// Expected that x == 0 and y == 1 -fn main(x: Field, y: pub Field) { - let xs: [Field; 0] = []; - let ys: [Field; 1] = [1]; - let zs: [Field; 2] = [1, 2]; - let ws: [Field; 3] = [1; 3]; - let qs: [Field; 4] = [3, 2, 1, 0]; - - let mut dynamic: [Field; 4] = [3, 2, 1, 0]; - let dynamic_expected: [Field; 4] = [1000, 2, 1, 0]; - dynamic[x] = 1000; - - assert(x != y); - assert(xs.as_slice() == as_slice_push(xs)); - assert(ys.as_slice() == as_slice_push(ys)); - assert(zs.as_slice() == as_slice_push(zs)); - assert(ws.as_slice() == as_slice_push(ws)); - assert(qs.as_slice() == as_slice_push(qs)); - - assert(dynamic.as_slice()[0] == dynamic_expected[0]); - assert(dynamic.as_slice()[1] == dynamic_expected[1]); - assert(dynamic.as_slice()[2] == dynamic_expected[2]); - assert(dynamic.as_slice()[3] == dynamic_expected[3]); - assert(dynamic.as_slice().len() == 4); - - regression_4609_append_slices(x, y); - regression_4609_append_dynamic_slices(x, y); -} - -fn regression_4609_append_slices(x: Field, y: Field) { - let sl = [x, 1, 2, 3].as_slice(); - let sl2 = [y, 5, 6].as_slice(); - let sl3 = sl.append(sl2); - assert(sl3[0] == x); - assert(sl3[4] == y); -} - -fn regression_4609_append_dynamic_slices(x: Field, y: Field) { - let mut sl = [x, 1, 2, 3].as_slice(); - sl[x] = x + 10; - let mut sl2 = [y, 5, 6].as_slice(); - sl2[y] = y + 5; - let sl3 = sl.append(sl2); - assert(sl3[0] == 10); - assert(sl3[4] == y); - assert(sl3[5] == 6); -} diff --git a/test_programs/execution_success/array_to_slice_constant_length/Nargo.toml b/test_programs/execution_success/array_to_slice_constant_length/Nargo.toml deleted file mode 100644 index b338cf9b6ae..00000000000 --- a/test_programs/execution_success/array_to_slice_constant_length/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "array_to_slice_constant_length" -type = "bin" -authors = [""] -compiler_version = ">=0.26.0" - -[dependencies] diff --git a/test_programs/execution_success/array_to_slice_constant_length/Prover.toml b/test_programs/execution_success/array_to_slice_constant_length/Prover.toml deleted file mode 100644 index a52e9d3c46a..00000000000 --- a/test_programs/execution_success/array_to_slice_constant_length/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -val = "42" diff --git a/test_programs/execution_success/array_to_slice_constant_length/src/main.nr b/test_programs/execution_success/array_to_slice_constant_length/src/main.nr deleted file mode 100644 index 5668a9ff388..00000000000 --- a/test_programs/execution_success/array_to_slice_constant_length/src/main.nr +++ /dev/null @@ -1,12 +0,0 @@ -// Regression test for https://github.com/noir-lang/noir/issues/4722 - -unconstrained fn return_array(val: Field) -> [Field; 1] { - [val; 1] -} - -fn main(val: Field) { - unsafe { - let array = return_array(val); - assert_constant(array.as_slice().len()); - } -} diff --git a/test_programs/execution_success/as_witness/Nargo.toml b/test_programs/execution_success/as_witness/Nargo.toml deleted file mode 100644 index 18f3f99b5b5..00000000000 --- a/test_programs/execution_success/as_witness/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "as_witness" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/as_witness/Prover.toml b/test_programs/execution_success/as_witness/Prover.toml deleted file mode 100644 index cd8a5b5e03c..00000000000 --- a/test_programs/execution_success/as_witness/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -a = 42 \ No newline at end of file diff --git a/test_programs/execution_success/as_witness/src/main.nr b/test_programs/execution_success/as_witness/src/main.nr deleted file mode 100644 index a24f4af7669..00000000000 --- a/test_programs/execution_success/as_witness/src/main.nr +++ /dev/null @@ -1,5 +0,0 @@ -// Simple example of checking where two arrays are different -fn main(a: Field) -> pub Field { - std::as_witness(a); - a -} diff --git a/test_programs/execution_success/assert/Nargo.toml b/test_programs/execution_success/assert/Nargo.toml deleted file mode 100644 index 7780d53459e..00000000000 --- a/test_programs/execution_success/assert/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "assert" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/assert/Prover.toml b/test_programs/execution_success/assert/Prover.toml deleted file mode 100644 index 4dd6b405159..00000000000 --- a/test_programs/execution_success/assert/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "1" diff --git a/test_programs/execution_success/assert/src/main.nr b/test_programs/execution_success/assert/src/main.nr deleted file mode 100644 index 00e94414c0b..00000000000 --- a/test_programs/execution_success/assert/src/main.nr +++ /dev/null @@ -1,3 +0,0 @@ -fn main(x: Field) { - assert(x == 1); -} diff --git a/test_programs/execution_success/assert_statement/Nargo.toml b/test_programs/execution_success/assert_statement/Nargo.toml deleted file mode 100644 index c6a1daaed19..00000000000 --- a/test_programs/execution_success/assert_statement/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "assert_statement" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/assert_statement/Prover.toml b/test_programs/execution_success/assert_statement/Prover.toml deleted file mode 100644 index 5d1dc99124f..00000000000 --- a/test_programs/execution_success/assert_statement/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "3" -y = "3" diff --git a/test_programs/execution_success/assert_statement/src/main.nr b/test_programs/execution_success/assert_statement/src/main.nr deleted file mode 100644 index 2646a0b85c2..00000000000 --- a/test_programs/execution_success/assert_statement/src/main.nr +++ /dev/null @@ -1,7 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is assertion -fn main(x: Field, y: pub Field) { - assert(x == y, "x and y are not equal"); - assert_eq(x, y, "x and y are not equal"); -} diff --git a/test_programs/execution_success/assert_statement_recursive/Nargo.toml b/test_programs/execution_success/assert_statement_recursive/Nargo.toml deleted file mode 100644 index 2a5b02cad00..00000000000 --- a/test_programs/execution_success/assert_statement_recursive/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "assert_statement_recursive" -type = "bin" -authors = [""] -compiler_version = ">=0.23.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/assert_statement_recursive/Prover.toml b/test_programs/execution_success/assert_statement_recursive/Prover.toml deleted file mode 100644 index 5d1dc99124f..00000000000 --- a/test_programs/execution_success/assert_statement_recursive/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "3" -y = "3" diff --git a/test_programs/execution_success/assert_statement_recursive/src/main.nr b/test_programs/execution_success/assert_statement_recursive/src/main.nr deleted file mode 100644 index d89ea3d35bb..00000000000 --- a/test_programs/execution_success/assert_statement_recursive/src/main.nr +++ /dev/null @@ -1,11 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is assertion -// This is the same as the `assert_statement` test except we specify -// that the backend should use a prover which will construct proofs -// friendly to recursive verification in another SNARK. -#[recursive] -fn main(x: Field, y: pub Field) { - assert(x == y, "x and y are not equal"); - assert_eq(x, y, "x and y are not equal"); -} diff --git a/test_programs/execution_success/assign_ex/Nargo.toml b/test_programs/execution_success/assign_ex/Nargo.toml deleted file mode 100644 index 4ef7b3aa5a6..00000000000 --- a/test_programs/execution_success/assign_ex/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "assign_ex" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/assign_ex/Prover.toml b/test_programs/execution_success/assign_ex/Prover.toml deleted file mode 100644 index 8c12ebba6cf..00000000000 --- a/test_programs/execution_success/assign_ex/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "2" diff --git a/test_programs/execution_success/assign_ex/src/main.nr b/test_programs/execution_success/assign_ex/src/main.nr deleted file mode 100644 index b5cfc162cc4..00000000000 --- a/test_programs/execution_success/assign_ex/src/main.nr +++ /dev/null @@ -1,14 +0,0 @@ -fn main(x: Field, y: Field) { - let mut z = x + y; - assert(z == 3); - z = x * y; - assert(z == 2); - - regression_3057(); -} -// Ensure parsing parenthesized lvalues works -fn regression_3057() { - let mut array = [[0, 1], [2, 3]]; - (array[0])[1] = 2; - assert(array[0][1] == 2); -} diff --git a/test_programs/execution_success/bench_2_to_17/Nargo.toml b/test_programs/execution_success/bench_2_to_17/Nargo.toml deleted file mode 100644 index 47f49530483..00000000000 --- a/test_programs/execution_success/bench_2_to_17/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "bench_2_to_17" -type = "bin" -authors = [""] -compiler_version = ">=0.33.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/bench_2_to_17/Prover.toml b/test_programs/execution_success/bench_2_to_17/Prover.toml deleted file mode 100644 index 2d35b0614e3..00000000000 --- a/test_programs/execution_success/bench_2_to_17/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "3" \ No newline at end of file diff --git a/test_programs/execution_success/bench_2_to_17/src/main.nr b/test_programs/execution_success/bench_2_to_17/src/main.nr deleted file mode 100644 index ae80dfcf0b4..00000000000 --- a/test_programs/execution_success/bench_2_to_17/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -use std::hash::poseidon2; - -global len = 2450 * 2; -fn main(x: Field) { - let ped_input = [x; len]; - let mut val = poseidon2::Poseidon2::hash(ped_input, len); - assert(val != 0); -} diff --git a/test_programs/execution_success/bench_ecdsa_secp256k1/Nargo.toml b/test_programs/execution_success/bench_ecdsa_secp256k1/Nargo.toml deleted file mode 100644 index 7e83251cc5a..00000000000 --- a/test_programs/execution_success/bench_ecdsa_secp256k1/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "bench_ecdsa_secp256k1" -description = "ECDSA secp256k1 verification" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/bench_ecdsa_secp256k1/Prover.toml b/test_programs/execution_success/bench_ecdsa_secp256k1/Prover.toml deleted file mode 100644 index e78fc19cb71..00000000000 --- a/test_programs/execution_success/bench_ecdsa_secp256k1/Prover.toml +++ /dev/null @@ -1,169 +0,0 @@ - -hashed_message = [ - 0x3a, - 0x73, - 0xf4, - 0x12, - 0x3a, - 0x5c, - 0xd2, - 0x12, - 0x1f, - 0x21, - 0xcd, - 0x7e, - 0x8d, - 0x35, - 0x88, - 0x35, - 0x47, - 0x69, - 0x49, - 0xd0, - 0x35, - 0xd9, - 0xc2, - 0xda, - 0x68, - 0x06, - 0xb4, - 0x63, - 0x3a, - 0xc8, - 0xc1, - 0xe2, -] -pub_key_x = [ - 0xa0, - 0x43, - 0x4d, - 0x9e, - 0x47, - 0xf3, - 0xc8, - 0x62, - 0x35, - 0x47, - 0x7c, - 0x7b, - 0x1a, - 0xe6, - 0xae, - 0x5d, - 0x34, - 0x42, - 0xd4, - 0x9b, - 0x19, - 0x43, - 0xc2, - 0xb7, - 0x52, - 0xa6, - 0x8e, - 0x2a, - 0x47, - 0xe2, - 0x47, - 0xc7, -] -pub_key_y = [ - 0x89, - 0x3a, - 0xba, - 0x42, - 0x54, - 0x19, - 0xbc, - 0x27, - 0xa3, - 0xb6, - 0xc7, - 0xe6, - 0x93, - 0xa2, - 0x4c, - 0x69, - 0x6f, - 0x79, - 0x4c, - 0x2e, - 0xd8, - 0x77, - 0xa1, - 0x59, - 0x3c, - 0xbe, - 0xe5, - 0x3b, - 0x03, - 0x73, - 0x68, - 0xd7, -] -signature = [ - 0xe5, - 0x08, - 0x1c, - 0x80, - 0xab, - 0x42, - 0x7d, - 0xc3, - 0x70, - 0x34, - 0x6f, - 0x4a, - 0x0e, - 0x31, - 0xaa, - 0x2b, - 0xad, - 0x8d, - 0x97, - 0x98, - 0xc3, - 0x80, - 0x61, - 0xdb, - 0x9a, - 0xe5, - 0x5a, - 0x4e, - 0x8d, - 0xf4, - 0x54, - 0xfd, - 0x28, - 0x11, - 0x98, - 0x94, - 0x34, - 0x4e, - 0x71, - 0xb7, - 0x87, - 0x70, - 0xcc, - 0x93, - 0x1d, - 0x61, - 0xf4, - 0x80, - 0xec, - 0xbb, - 0x0b, - 0x89, - 0xd6, - 0xeb, - 0x69, - 0x69, - 0x01, - 0x61, - 0xe4, - 0x9a, - 0x71, - 0x5f, - 0xcd, - 0x55, -] diff --git a/test_programs/execution_success/bench_ecdsa_secp256k1/src/main.nr b/test_programs/execution_success/bench_ecdsa_secp256k1/src/main.nr deleted file mode 100644 index 60f182c7836..00000000000 --- a/test_programs/execution_success/bench_ecdsa_secp256k1/src/main.nr +++ /dev/null @@ -1,6 +0,0 @@ -use dep::std; - -fn main(hashed_message: [u8; 32], pub_key_x: [u8; 32], pub_key_y: [u8; 32], signature: [u8; 64]) { - let valid_signature = std::ecdsa_secp256k1::verify_signature(pub_key_x, pub_key_y, signature, hashed_message); - assert(valid_signature); -} diff --git a/test_programs/execution_success/bigint/Nargo.toml b/test_programs/execution_success/bigint/Nargo.toml deleted file mode 100644 index eee0920f188..00000000000 --- a/test_programs/execution_success/bigint/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "bigint" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/bigint/Prover.toml b/test_programs/execution_success/bigint/Prover.toml deleted file mode 100644 index c50874a8613..00000000000 --- a/test_programs/execution_success/bigint/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = [34,3,5,8,4] -y = [44,7,1,8,8] \ No newline at end of file diff --git a/test_programs/execution_success/bigint/src/main.nr b/test_programs/execution_success/bigint/src/main.nr deleted file mode 100644 index 8592e6fb230..00000000000 --- a/test_programs/execution_success/bigint/src/main.nr +++ /dev/null @@ -1,80 +0,0 @@ -use std::bigint; -use std::{bigint::Secpk1Fq, println}; - -fn main(mut x: [u8; 5], y: [u8; 5]) { - let a = bigint::Secpk1Fq::from_le_bytes(&[x[0], x[1], x[2], x[3], x[4]]); - let b = bigint::Secpk1Fq::from_le_bytes(&[y[0], y[1], y[2], y[3], y[4]]); - let mut a_be_bytes = [0; 32]; - let mut b_be_bytes = [0; 32]; - for i in 0..5 { - a_be_bytes[31-i] = x[i]; - b_be_bytes[31-i] = y[i]; - } - let a_field = std::field::bytes32_to_field(a_be_bytes); - let b_field = std::field::bytes32_to_field(b_be_bytes); - - // Regression for issue #4682 - let c = if x[0] != 0 { - test_unconstrained1(a, b) - } else { - unsafe { - test_unconstrained2(a, b) - } - }; - assert(c.array[0] == std::wrapping_mul(x[0], y[0])); - - let a_bytes = a.to_le_bytes(); - let b_bytes = b.to_le_bytes(); - for i in 0..5 { - assert(a_bytes[i] == x[i]); - assert(b_bytes[i] == y[i]); - } - // Regression for issue #4578 - let d = a * b; - assert(d / b == a); - - let d = d - b; - let mut result = [0; 32]; - let result_slice: [u8; 32] = (a_field * b_field - b_field).to_le_bytes(); - for i in 0..32 { - result[i] = result_slice[i]; - } - let d1 = bigint::Secpk1Fq::from_le_bytes_32(result); - assert(d1 == d); - big_int_example(x[0], x[1]); - - // Regression for issue #4882 - let num_b:[u8;32] = [ - 0, 0, 0, 240, 147, 245, 225, 67, 145, 112, 185, 121, 72, 232, 51, 40, 93, 88, 129, 129, 182, 69, 80, 184, 41, 160, 49, 225, 114, 78, 100, 48 - ]; - let num2_b:[u8;7] = [126, 193, 45, 39, 188, 84, 11]; - let num = bigint::Bn254Fr::from_le_bytes(num_b.as_slice()); - let num2 = bigint::Bn254Fr::from_le_bytes(num2_b.as_slice()); - - let ret_b:[u8;32] = [ - 131, 62, 210, 200, 215, 160, 214, 67, 145, 112, 185, 121, 72, 232, 51, 40, 93, 88, 129, 129, 182, 69, 80, 184, 41, 160, 49, 225, 114, 78, 100, 48 - ]; - let ret = bigint::Bn254Fr::from_le_bytes(ret_b.as_slice()); - assert(ret == num.mul(num2)); - let div = num.div(num2); - assert(div.mul(num2) == num); -} - -fn test_unconstrained1(a: Secpk1Fq, b: Secpk1Fq) -> Secpk1Fq { - let c = a * b; - c -} -unconstrained fn test_unconstrained2(a: Secpk1Fq, b: Secpk1Fq) -> Secpk1Fq { - let c = a + b; - test_unconstrained1(a, c) -} - -// docs:start:big_int_example -fn big_int_example(x: u8, y: u8) { - let a = Secpk1Fq::from_le_bytes(&[x, y, 0, 45, 2]); - let b = Secpk1Fq::from_le_bytes(&[y, x, 9]); - let c = (a + b) * b / a; - let d = c.to_le_bytes(); - println(d[0]); -} -// docs:end:big_int_example diff --git a/test_programs/execution_success/binary_operator_overloading/Nargo.toml b/test_programs/execution_success/binary_operator_overloading/Nargo.toml deleted file mode 100644 index a43f38bdf30..00000000000 --- a/test_programs/execution_success/binary_operator_overloading/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "binary_operator_overloading" -type = "bin" -authors = [""] -compiler_version = ">=0.20.0" - -[dependencies] diff --git a/test_programs/execution_success/binary_operator_overloading/Prover.toml b/test_programs/execution_success/binary_operator_overloading/Prover.toml deleted file mode 100644 index 516b7b4074c..00000000000 --- a/test_programs/execution_success/binary_operator_overloading/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = 3 -y = 9 diff --git a/test_programs/execution_success/binary_operator_overloading/src/main.nr b/test_programs/execution_success/binary_operator_overloading/src/main.nr deleted file mode 100644 index c2c831d0c1e..00000000000 --- a/test_programs/execution_success/binary_operator_overloading/src/main.nr +++ /dev/null @@ -1,150 +0,0 @@ -use std::ops::{Add, Sub, Mul, Div, Rem, BitAnd, BitOr, BitXor, Shl, Shr}; -use std::cmp::Ordering; - -// x = 3, y = 9 -fn main(x: u32, y: u32) { - let wx = Wrapper::new(x); - let wy = Wrapper::new(y); - - // expected x and expected y values - let ex: u32 = 3; - let ey: u32 = 9; - - assert((wx + wy).inner == ex + ey); - assert((wy - wx).inner == ey - ex); - assert((wx * wy).inner == ex * ey); - assert((wx / wy).inner == ex / ey); - assert((wx % wy).inner == ex % ey); - - assert((wx & wy).inner == (ex & ey)); - assert((wx | wy).inner == (ex | ey)); - assert((wx ^ wy).inner == (ex ^ ey)); - - assert((wy << x as u8).inner == (ey << ex as u8)); - assert((wy >> x as u8).inner == (ey >> ex as u8)); - - assert((wx == wy) == (ex == ey)); - assert((wx < wy) == (ex < ey)); - assert((wx <= wy) == (ex <= ey)); - assert((wx > wy) == (ex > ey)); - assert((wx >= wy) == (ex >= ey)); - assert(wx.cmp(wy) == ex.cmp(ey)); - - // Ensure operator overloading still works with more complex types - let pair_ascending = Pair { x: wx, y: wy }; - let pair_descending = Pair { x: wy, y: wx }; - - assert(pair_ascending != pair_descending); - - assert(pair_ascending < pair_descending); - assert(pair_ascending <= pair_descending); - assert(pair_descending > pair_ascending); - assert(pair_descending >= pair_ascending); - - assert(pair_ascending.cmp(pair_descending) == Ordering::less()); -} - -struct Wrapper { - inner: u32 -} - -impl Wrapper { - fn new(inner: u32) -> Self { - Wrapper { inner } - } -} - -impl Add for Wrapper { - fn add(self, other: Self) -> Self { - Wrapper::new(self.inner + other.inner) - } -} - -impl Sub for Wrapper { - fn sub(self, other: Self) -> Self { - Wrapper::new(self.inner - other.inner) - } -} - -impl Mul for Wrapper { - fn mul(self, other: Self) -> Self { - Wrapper::new(self.inner * other.inner) - } -} - -impl Div for Wrapper { - fn div(self, other: Self) -> Self { - Wrapper::new(self.inner / other.inner) - } -} - -impl Rem for Wrapper { - fn rem(self, other: Self) -> Self { - Wrapper::new(self.inner % other.inner) - } -} - -impl BitAnd for Wrapper { - fn bitand(self, other: Self) -> Self { - Wrapper::new(self.inner & other.inner) - } -} - -impl BitOr for Wrapper { - fn bitor(self, other: Self) -> Self { - Wrapper::new(self.inner | other.inner) - } -} - -impl BitXor for Wrapper { - fn bitxor(self, other: Self) -> Self { - Wrapper::new(self.inner ^ other.inner) - } -} - -impl Shl for Wrapper { - fn shl(self, other: u8) -> Self { - Wrapper::new(self.inner << other) - } -} - -impl Shr for Wrapper { - fn shr(self, other: u8) -> Self { - Wrapper::new(self.inner >> other) - } -} - -impl Eq for Wrapper { - fn eq(self, other: Self) -> bool { - self.inner == other.inner - } -} - -impl Ord for Wrapper { - fn cmp(self, other: Self) -> Ordering { - self.inner.cmp(other.inner) - } -} - -struct Pair { - x: Wrapper, - y: Wrapper, -} - -impl Eq for Pair { - fn eq(self, o: Self) -> bool { - (self.x == o.x) & (self.y == o.y) - } -} - -impl Ord for Pair { - fn cmp(self, o: Self) -> Ordering { - let mut result = self.x.cmp(o.x); - - if result == Ordering::equal() { - result = self.y.cmp(o.y); - } - - result - } -} diff --git a/test_programs/execution_success/bit_and/Nargo.toml b/test_programs/execution_success/bit_and/Nargo.toml deleted file mode 100644 index e9a28577079..00000000000 --- a/test_programs/execution_success/bit_and/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "bit_and" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/bit_and/Prover.toml b/test_programs/execution_success/bit_and/Prover.toml deleted file mode 100644 index 34a5b63e5b1..00000000000 --- a/test_programs/execution_success/bit_and/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -x = "0x00" -y = "0x10" -a = "0x00" -b = "0x10" diff --git a/test_programs/execution_success/bit_and/src/main.nr b/test_programs/execution_success/bit_and/src/main.nr deleted file mode 100644 index 5a0aa17e3ed..00000000000 --- a/test_programs/execution_success/bit_and/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -// You can only do bit operations with integers. -// (Kobi/Daira/Circom/#37) https://github.com/iden3/circom/issues/37 -fn main(x: Field, y: Field, a: Field, b: Field) { - let x_as_u8 = x as u8; - let y_as_u8 = y as u8; - - assert((x_as_u8 & y_as_u8) == x_as_u8); - //bitwise and with 1 bit: - let flag = (x == 0) & (y == 16); - assert(flag); - //bitwise and with odd bits: - let a_as_u8 = a as u8; - let b_as_u8 = b as u8; - assert((a_as_u8 & b_as_u8) == a_as_u8); -} - diff --git a/test_programs/execution_success/bit_not/Nargo.toml b/test_programs/execution_success/bit_not/Nargo.toml deleted file mode 100644 index e89a338595b..00000000000 --- a/test_programs/execution_success/bit_not/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "bit_not" -type = "bin" -authors = [""] -compiler_version = ">=0.23.0" - -[dependencies] diff --git a/test_programs/execution_success/bit_not/Prover.toml b/test_programs/execution_success/bit_not/Prover.toml deleted file mode 100644 index b4bcbcec177..00000000000 --- a/test_programs/execution_success/bit_not/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -four_as_u32 = 4 diff --git a/test_programs/execution_success/bit_not/src/main.nr b/test_programs/execution_success/bit_not/src/main.nr deleted file mode 100644 index 30b78d330ce..00000000000 --- a/test_programs/execution_success/bit_not/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -fn main(four_as_u32: u32) { - let four_as_u8: u8 = 4; - let not_four_as_u8: u8 = !four_as_u8; - assert_eq(not_four_as_u8, 251); - - let not_four_as_u32: u32 = !four_as_u32; - assert_eq(not_four_as_u32, 4294967291); -} diff --git a/test_programs/execution_success/bit_shifts_comptime/Nargo.toml b/test_programs/execution_success/bit_shifts_comptime/Nargo.toml deleted file mode 100644 index 81272be4e98..00000000000 --- a/test_programs/execution_success/bit_shifts_comptime/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "bit_shifts_comptime" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/bit_shifts_comptime/Prover.toml b/test_programs/execution_success/bit_shifts_comptime/Prover.toml deleted file mode 100644 index cfd62c406cb..00000000000 --- a/test_programs/execution_success/bit_shifts_comptime/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = 64 diff --git a/test_programs/execution_success/bit_shifts_comptime/src/main.nr b/test_programs/execution_success/bit_shifts_comptime/src/main.nr deleted file mode 100644 index 6d9736b6abb..00000000000 --- a/test_programs/execution_success/bit_shifts_comptime/src/main.nr +++ /dev/null @@ -1,26 +0,0 @@ -fn main(x: u64) { - let two: u64 = 2; - let three: u64 = 3; - // shifts on constant values - assert(two << 2 == 8); - assert((two << 3) / 8 == two); - assert((three >> 1) == 1); - // shifts on runtime values - assert(x << 1 == 128); - assert(x >> 2 == 16); - - regression_2250(); - - //regression for 3481 - assert(x << 63 == 0); - - assert_eq((1 as u64) << 32, 0x0100000000); -} - -fn regression_2250() { - let a: u1 = 1 >> 1; - assert(a == 0); - - let b: u32 = 1 >> 32; - assert(b == 0); -} diff --git a/test_programs/execution_success/bit_shifts_runtime/Nargo.toml b/test_programs/execution_success/bit_shifts_runtime/Nargo.toml deleted file mode 100644 index f60c7dbe658..00000000000 --- a/test_programs/execution_success/bit_shifts_runtime/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "bit_shifts_runtime" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/bit_shifts_runtime/Prover.toml b/test_programs/execution_success/bit_shifts_runtime/Prover.toml deleted file mode 100644 index 98d8630792e..00000000000 --- a/test_programs/execution_success/bit_shifts_runtime/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = 64 -y = 1 \ No newline at end of file diff --git a/test_programs/execution_success/bit_shifts_runtime/src/main.nr b/test_programs/execution_success/bit_shifts_runtime/src/main.nr deleted file mode 100644 index 059bbe84dac..00000000000 --- a/test_programs/execution_success/bit_shifts_runtime/src/main.nr +++ /dev/null @@ -1,20 +0,0 @@ -fn main(x: u64, y: u8) { - // runtime shifts on compile-time known values - assert(64 << y == 128); - assert(64 >> y == 32); - // runtime shifts on runtime values - assert(x << y == 128); - assert(x >> y == 32); - - // Bit-shift with signed integers - let mut a: i8 = y as i8; - let mut b: i8 = x as i8; - assert(b << 1 == -128); - assert(b >> 2 == 16); - assert(b >> y == 32); - a = -a; - assert(a << 7 == -128); - assert(a << y == -2); - - assert(x >> (x as u8) == 0); -} diff --git a/test_programs/execution_success/blake3/Nargo.toml b/test_programs/execution_success/blake3/Nargo.toml deleted file mode 100644 index 29f6ad5f11c..00000000000 --- a/test_programs/execution_success/blake3/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "blake3" -type = "bin" -authors = [""] -compiler_version = ">=0.22.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/blake3/Prover.toml b/test_programs/execution_success/blake3/Prover.toml deleted file mode 100644 index c807701479b..00000000000 --- a/test_programs/execution_success/blake3/Prover.toml +++ /dev/null @@ -1,37 +0,0 @@ -# hello as bytes -# https://connor4312.github.io/blake3/index.html -x = [104, 101, 108, 108, 111] -result = [ - 0xea, - 0x8f, - 0x16, - 0x3d, - 0xb3, - 0x86, - 0x82, - 0x92, - 0x5e, - 0x44, - 0x91, - 0xc5, - 0xe5, - 0x8d, - 0x4b, - 0xb3, - 0x50, - 0x6e, - 0xf8, - 0xc1, - 0x4e, - 0xb7, - 0x8a, - 0x86, - 0xe9, - 0x08, - 0xc5, - 0x62, - 0x4a, - 0x67, - 0x20, - 0x0f, -] diff --git a/test_programs/execution_success/blake3/src/main.nr b/test_programs/execution_success/blake3/src/main.nr deleted file mode 100644 index fb056bfa848..00000000000 --- a/test_programs/execution_success/blake3/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ -fn main(x: [u8; 5], result: [u8; 32]) { - let digest = std::hash::blake3(x); - assert(digest == result); -} diff --git a/test_programs/execution_success/bool_not/Nargo.toml b/test_programs/execution_success/bool_not/Nargo.toml deleted file mode 100644 index fe42e1efa11..00000000000 --- a/test_programs/execution_success/bool_not/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "bool_not" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/bool_not/Prover.toml b/test_programs/execution_success/bool_not/Prover.toml deleted file mode 100644 index 4dd6b405159..00000000000 --- a/test_programs/execution_success/bool_not/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "1" diff --git a/test_programs/execution_success/bool_not/src/main.nr b/test_programs/execution_success/bool_not/src/main.nr deleted file mode 100644 index 935d8cc074d..00000000000 --- a/test_programs/execution_success/bool_not/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ -fn main(x: u1) { - assert(!x == 0); -} - diff --git a/test_programs/execution_success/bool_or/Nargo.toml b/test_programs/execution_success/bool_or/Nargo.toml deleted file mode 100644 index e139a7a2947..00000000000 --- a/test_programs/execution_success/bool_or/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "bool_or" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/bool_or/Prover.toml b/test_programs/execution_success/bool_or/Prover.toml deleted file mode 100644 index a0397e89477..00000000000 --- a/test_programs/execution_success/bool_or/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "0" diff --git a/test_programs/execution_success/bool_or/src/main.nr b/test_programs/execution_success/bool_or/src/main.nr deleted file mode 100644 index 6cb959e61e6..00000000000 --- a/test_programs/execution_success/bool_or/src/main.nr +++ /dev/null @@ -1,6 +0,0 @@ -fn main(x: u1, y: u1) { - assert(x | y == 1); - - assert(x | y | x == 1); -} - diff --git a/test_programs/execution_success/break_and_continue/Nargo.toml b/test_programs/execution_success/break_and_continue/Nargo.toml deleted file mode 100644 index 483602478ba..00000000000 --- a/test_programs/execution_success/break_and_continue/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "break_and_continue" -type = "bin" -authors = [""] -compiler_version = ">=0.24.0" - -[dependencies] diff --git a/test_programs/execution_success/break_and_continue/src/main.nr b/test_programs/execution_success/break_and_continue/src/main.nr deleted file mode 100644 index 67dce03ac64..00000000000 --- a/test_programs/execution_success/break_and_continue/src/main.nr +++ /dev/null @@ -1,15 +0,0 @@ -unconstrained fn main() { - let mut count = 0; - - for i in 0..10 { - if i == 2 { - continue; - } - if i == 5 { - break; - } - count += 1; - } - - assert(count == 4); -} diff --git a/test_programs/execution_success/brillig_acir_as_brillig/Nargo.toml b/test_programs/execution_success/brillig_acir_as_brillig/Nargo.toml deleted file mode 100644 index aef4fd56d4f..00000000000 --- a/test_programs/execution_success/brillig_acir_as_brillig/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_acir_as_brillig" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_acir_as_brillig/Prover.toml b/test_programs/execution_success/brillig_acir_as_brillig/Prover.toml deleted file mode 100644 index 11497a473bc..00000000000 --- a/test_programs/execution_success/brillig_acir_as_brillig/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "0" diff --git a/test_programs/execution_success/brillig_acir_as_brillig/src/main.nr b/test_programs/execution_success/brillig_acir_as_brillig/src/main.nr deleted file mode 100644 index 1a595ecfb38..00000000000 --- a/test_programs/execution_success/brillig_acir_as_brillig/src/main.nr +++ /dev/null @@ -1,44 +0,0 @@ -fn main(x: u32) { - unsafe { - assert(entry_point(x) == 2); - swap_entry_point(x, x + 1); - assert(deep_entry_point(x) == 4); - } -} - -fn inner(x: u32) -> u32 { - x + 1 -} - -unconstrained fn entry_point(x: u32) -> u32 { - inner(x + 1) -} - -fn swap(x: u32, y: u32) -> (u32, u32) { - (y, x) -} - -unconstrained fn swap_entry_point(x: u32, y: u32) { - let swapped = swap(x, y); - assert(swapped.0 == y); - assert(swapped.1 == x); - let swapped_twice = swap(swapped.0, swapped.1); - assert(swapped_twice.0 == x); - assert(swapped_twice.1 == y); -} - -fn level_3(x: u32) -> u32 { - x + 1 -} - -fn level_2(x: u32) -> u32 { - level_3(x + 1) -} - -fn level_1(x: u32) -> u32 { - level_2(x + 1) -} - -unconstrained fn deep_entry_point(x: u32) -> u32 { - level_1(x + 1) -} diff --git a/test_programs/execution_success/brillig_array_to_slice/Nargo.toml b/test_programs/execution_success/brillig_array_to_slice/Nargo.toml deleted file mode 100644 index 58157c38c26..00000000000 --- a/test_programs/execution_success/brillig_array_to_slice/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "brillig_array_to_slice" -type = "bin" -authors = [""] -compiler_version = ">=0.25.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/brillig_array_to_slice/Prover.toml b/test_programs/execution_success/brillig_array_to_slice/Prover.toml deleted file mode 100644 index 11497a473bc..00000000000 --- a/test_programs/execution_success/brillig_array_to_slice/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "0" diff --git a/test_programs/execution_success/brillig_array_to_slice/src/main.nr b/test_programs/execution_success/brillig_array_to_slice/src/main.nr deleted file mode 100644 index f54adb39963..00000000000 --- a/test_programs/execution_success/brillig_array_to_slice/src/main.nr +++ /dev/null @@ -1,20 +0,0 @@ -unconstrained fn brillig_as_slice(x: Field) -> (u32, Field, Field) { - let mut dynamic: [Field; 1] = [1]; - dynamic[x] = 2; - assert(dynamic[0] == 2); - - let brillig_slice = dynamic.as_slice(); - assert(brillig_slice.len() == 1); - - (brillig_slice.len(), dynamic[0], brillig_slice[0]) -} - -fn main(x: Field) { - unsafe { - let (slice_len, dynamic_0, slice_0) = brillig_as_slice(x); - assert(slice_len == 1); - assert(dynamic_0 == 2); - assert(slice_0 == 2); - } -} - diff --git a/test_programs/execution_success/brillig_arrays/Nargo.toml b/test_programs/execution_success/brillig_arrays/Nargo.toml deleted file mode 100644 index a4433e380a9..00000000000 --- a/test_programs/execution_success/brillig_arrays/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_arrays" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_arrays/Prover.toml b/test_programs/execution_success/brillig_arrays/Prover.toml deleted file mode 100644 index 6371ea2b28b..00000000000 --- a/test_programs/execution_success/brillig_arrays/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = ["1", "2", "3"] diff --git a/test_programs/execution_success/brillig_arrays/src/main.nr b/test_programs/execution_success/brillig_arrays/src/main.nr deleted file mode 100644 index c7f0757f31e..00000000000 --- a/test_programs/execution_success/brillig_arrays/src/main.nr +++ /dev/null @@ -1,30 +0,0 @@ -// Tests a very simple program. -// -// The features being tested are array reads and writes -fn main(x: [Field; 3]) { - unsafe { - read_array(x); - read_write_array(x); - } -} - -unconstrained fn read_array(x: [Field; 3]) { - assert(x[0] == 1); - let y = [1, 5, 27]; - - assert(y[x[0]] == 5); -} - -unconstrained fn read_write_array(x: [Field; 3]) { - let mut y = x; - - y[0] = 5; - - assert(y[0] == 5); - assert(y[1] == 2); - assert(y[2] == 3); - - assert(x[0] == 1); - assert(x[1] == 2); - assert(x[2] == 3); -} diff --git a/test_programs/execution_success/brillig_assert/Nargo.toml b/test_programs/execution_success/brillig_assert/Nargo.toml deleted file mode 100644 index b7d9231ab75..00000000000 --- a/test_programs/execution_success/brillig_assert/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_assert" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_assert/Prover.toml b/test_programs/execution_success/brillig_assert/Prover.toml deleted file mode 100644 index 4dd6b405159..00000000000 --- a/test_programs/execution_success/brillig_assert/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "1" diff --git a/test_programs/execution_success/brillig_assert/src/main.nr b/test_programs/execution_success/brillig_assert/src/main.nr deleted file mode 100644 index c6c39b61bc9..00000000000 --- a/test_programs/execution_success/brillig_assert/src/main.nr +++ /dev/null @@ -1,14 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is using assert on brillig -fn main(x: Field) { - unsafe { - assert(1 == conditional(x as bool)); - } -} - -unconstrained fn conditional(x: bool) -> Field { - assert(x, f"Expected x to be false but got {x}"); - assert_eq(x, true, f"Expected x to be false but got {x}"); - 1 -} diff --git a/test_programs/execution_success/brillig_blake2s/Nargo.toml b/test_programs/execution_success/brillig_blake2s/Nargo.toml deleted file mode 100644 index a497b6f48cc..00000000000 --- a/test_programs/execution_success/brillig_blake2s/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_blake2s" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_blake2s/Prover.toml b/test_programs/execution_success/brillig_blake2s/Prover.toml deleted file mode 100644 index 8f95d95505f..00000000000 --- a/test_programs/execution_success/brillig_blake2s/Prover.toml +++ /dev/null @@ -1,35 +0,0 @@ -x = [104, 101, 108, 108, 111] -result = [ - 0x19, - 0x21, - 0x3b, - 0xac, - 0xc5, - 0x8d, - 0xee, - 0x6d, - 0xbd, - 0xe3, - 0xce, - 0xb9, - 0xa4, - 0x7c, - 0xbb, - 0x33, - 0x0b, - 0x3d, - 0x86, - 0xf8, - 0xcc, - 0xa8, - 0x99, - 0x7e, - 0xb0, - 0x0b, - 0xe4, - 0x56, - 0xf1, - 0x40, - 0xca, - 0x25, -] diff --git a/test_programs/execution_success/brillig_blake2s/src/main.nr b/test_programs/execution_success/brillig_blake2s/src/main.nr deleted file mode 100644 index 122142a9c80..00000000000 --- a/test_programs/execution_success/brillig_blake2s/src/main.nr +++ /dev/null @@ -1,12 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is blake2s in brillig -fn main(x: [u8; 5], result: [u8; 32]) { - unsafe { - assert(blake2s(x) == result); - } -} - -unconstrained fn blake2s(x: [u8; 5]) -> [u8; 32] { - std::hash::blake2s(x) -} diff --git a/test_programs/execution_success/brillig_blake3/Nargo.toml b/test_programs/execution_success/brillig_blake3/Nargo.toml deleted file mode 100644 index 879476dbdcf..00000000000 --- a/test_programs/execution_success/brillig_blake3/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "brillig_blake3" -type = "bin" -authors = [""] -compiler_version = ">=0.22.0" - -[dependencies] diff --git a/test_programs/execution_success/brillig_blake3/Prover.toml b/test_programs/execution_success/brillig_blake3/Prover.toml deleted file mode 100644 index c807701479b..00000000000 --- a/test_programs/execution_success/brillig_blake3/Prover.toml +++ /dev/null @@ -1,37 +0,0 @@ -# hello as bytes -# https://connor4312.github.io/blake3/index.html -x = [104, 101, 108, 108, 111] -result = [ - 0xea, - 0x8f, - 0x16, - 0x3d, - 0xb3, - 0x86, - 0x82, - 0x92, - 0x5e, - 0x44, - 0x91, - 0xc5, - 0xe5, - 0x8d, - 0x4b, - 0xb3, - 0x50, - 0x6e, - 0xf8, - 0xc1, - 0x4e, - 0xb7, - 0x8a, - 0x86, - 0xe9, - 0x08, - 0xc5, - 0x62, - 0x4a, - 0x67, - 0x20, - 0x0f, -] diff --git a/test_programs/execution_success/brillig_blake3/src/main.nr b/test_programs/execution_success/brillig_blake3/src/main.nr deleted file mode 100644 index 64852d775f4..00000000000 --- a/test_programs/execution_success/brillig_blake3/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ -unconstrained fn main(x: [u8; 5], result: [u8; 32]) { - let digest = std::hash::blake3(x); - assert(digest == result); -} diff --git a/test_programs/execution_success/brillig_block_parameter_liveness/Nargo.toml b/test_programs/execution_success/brillig_block_parameter_liveness/Nargo.toml deleted file mode 100644 index e094862a1dc..00000000000 --- a/test_programs/execution_success/brillig_block_parameter_liveness/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_block_parameter_liveness" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_block_parameter_liveness/Prover.toml b/test_programs/execution_success/brillig_block_parameter_liveness/Prover.toml deleted file mode 100644 index 6b7fd9c6ab6..00000000000 --- a/test_programs/execution_success/brillig_block_parameter_liveness/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -conditions = ["1", "0", "1", "0", "1"] diff --git a/test_programs/execution_success/brillig_block_parameter_liveness/src/main.nr b/test_programs/execution_success/brillig_block_parameter_liveness/src/main.nr deleted file mode 100644 index 6ddfc03622a..00000000000 --- a/test_programs/execution_success/brillig_block_parameter_liveness/src/main.nr +++ /dev/null @@ -1,91 +0,0 @@ -// Tests that we run liveness in block parameters by trying to create too many block parameters to fit in the stack - -// Uses up 10 stack items -struct Inner { - a: u64, - b: u64, - c: u64, - d: u64, - e: u64, - f: u64, - g: u64, - h: u64, - i: u64, - j: u64, -} - -// Uses up 50 stack items -struct Middle { - inner_a: Inner, - inner_b: Inner, - inner_c: Inner, - inner_d: Inner, - inner_e: Inner, -} - -// Uses up 500 stack items -struct Outer { - middle_a: Middle, - middle_b: Middle, - middle_c: Middle, - middle_d: Middle, - middle_e: Middle, - middle_f: Middle, - middle_g: Middle, - middle_h: Middle, -} - -// If we don't take into account block parameter liveness, this function will need 5*500=2500 stack items -unconstrained fn main(conditions: [bool; 5]) -> pub Outer { - let out0 = if conditions[0] { - let mut outer: Outer = std::mem::zeroed(); - outer.middle_a.inner_a.a = 1; - outer - } else { - let mut outer: Outer = std::mem::zeroed(); - outer.middle_f.inner_c.d = 2; - outer - }; - - let out1 = if conditions[1] { - let mut new_outer = out0; - new_outer.middle_a.inner_a.b = 3; - new_outer - } else { - let mut new_outer = out0; - new_outer.middle_f.inner_c.c = 4; - new_outer - }; - - let out2 = if conditions[2] { - let mut new_outer = out1; - new_outer.middle_a.inner_a.c = 5; - new_outer - } else { - let mut new_outer = out1; - new_outer.middle_f.inner_c.b = 6; - new_outer - }; - - let out3 = if conditions[3] { - let mut new_outer = out2; - new_outer.middle_a.inner_a.d = 7; - new_outer - } else { - let mut new_outer = out2; - new_outer.middle_f.inner_c.a = 8; - new_outer - }; - - let out4 = if conditions[4] { - let mut new_outer = out3; - new_outer.middle_a.inner_a.f = 9; - new_outer - } else { - let mut new_outer = out3; - new_outer.middle_f.inner_c.f = 10; - new_outer - }; - - out4 -} diff --git a/test_programs/execution_success/brillig_calls/Nargo.toml b/test_programs/execution_success/brillig_calls/Nargo.toml deleted file mode 100644 index 7cc53a33a8a..00000000000 --- a/test_programs/execution_success/brillig_calls/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_calls" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_calls/Prover.toml b/test_programs/execution_success/brillig_calls/Prover.toml deleted file mode 100644 index 11497a473bc..00000000000 --- a/test_programs/execution_success/brillig_calls/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "0" diff --git a/test_programs/execution_success/brillig_calls/src/main.nr b/test_programs/execution_success/brillig_calls/src/main.nr deleted file mode 100644 index 3e23da53b18..00000000000 --- a/test_programs/execution_success/brillig_calls/src/main.nr +++ /dev/null @@ -1,60 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is brillig calls -fn main(x: u32) { - unsafe { - assert(entry_point(x) == 2); - swap_entry_point(x, x + 1); - assert(deep_entry_point(x) == 4); - multiple_values_entry_point(x); - } -} - -unconstrained fn returns_multiple_values(x: u32) -> (u32, u32, u32, u32) { - (x + 1, x + 2, x + 3, x + 4) -} - -unconstrained fn multiple_values_entry_point(x: u32) { - let (a, b, c, d) = returns_multiple_values(x); - assert(a == x + 1); - assert(b == x + 2); - assert(c == x + 3); - assert(d == x + 4); -} - -unconstrained fn inner(x: u32) -> u32 { - x + 1 -} - -unconstrained fn entry_point(x: u32) -> u32 { - inner(x + 1) -} - -unconstrained fn swap(x: u32, y: u32) -> (u32, u32) { - (y, x) -} - -unconstrained fn swap_entry_point(x: u32, y: u32) { - let swapped = swap(x, y); - assert(swapped.0 == y); - assert(swapped.1 == x); - let swapped_twice = swap(swapped.0, swapped.1); - assert(swapped_twice.0 == x); - assert(swapped_twice.1 == y); -} - -unconstrained fn level_3(x: u32) -> u32 { - x + 1 -} - -unconstrained fn level_2(x: u32) -> u32 { - level_3(x + 1) -} - -unconstrained fn level_1(x: u32) -> u32 { - level_2(x + 1) -} - -unconstrained fn deep_entry_point(x: u32) -> u32 { - level_1(x + 1) -} diff --git a/test_programs/execution_success/brillig_calls_array/Nargo.toml b/test_programs/execution_success/brillig_calls_array/Nargo.toml deleted file mode 100644 index e360f2d6338..00000000000 --- a/test_programs/execution_success/brillig_calls_array/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_calls_array" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_calls_array/Prover.toml b/test_programs/execution_success/brillig_calls_array/Prover.toml deleted file mode 100644 index 99580ca45bc..00000000000 --- a/test_programs/execution_success/brillig_calls_array/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = ["1","2","3"] diff --git a/test_programs/execution_success/brillig_calls_array/src/main.nr b/test_programs/execution_success/brillig_calls_array/src/main.nr deleted file mode 100644 index 8b27a9bb202..00000000000 --- a/test_programs/execution_success/brillig_calls_array/src/main.nr +++ /dev/null @@ -1,35 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is brillig calls passing arrays around -fn main(x: [u32; 3]) { - unsafe { - assert(entry_point(x) == 9); - another_entry_point(x); - } -} - -unconstrained fn inner(x: [u32; 3]) -> [u32; 3] { - [x[0] + 1, x[1] + 1, x[2] + 1] -} - -unconstrained fn entry_point(x: [u32; 3]) -> u32 { - let y = inner(x); - y[0] + y[1] + y[2] -} - -unconstrained fn nested_fn_that_allocates(value: u32) -> u32 { - let x = [value, value, value]; - let y = inner(x); - y[0] + y[1] + y[2] -} - -unconstrained fn another_entry_point(x: [u32; 3]) { - assert(x[0] == 1); - assert(x[1] == 2); - assert(x[2] == 3); - assert(nested_fn_that_allocates(1) == 6); - // x should be unchanged - assert(x[0] == 1); - assert(x[1] == 2); - assert(x[2] == 3); -} diff --git a/test_programs/execution_success/brillig_calls_conditionals/Nargo.toml b/test_programs/execution_success/brillig_calls_conditionals/Nargo.toml deleted file mode 100644 index 1553cd525ff..00000000000 --- a/test_programs/execution_success/brillig_calls_conditionals/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_calls_conditionals" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_calls_conditionals/Prover.toml b/test_programs/execution_success/brillig_calls_conditionals/Prover.toml deleted file mode 100644 index 99580ca45bc..00000000000 --- a/test_programs/execution_success/brillig_calls_conditionals/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = ["1","2","3"] diff --git a/test_programs/execution_success/brillig_calls_conditionals/src/main.nr b/test_programs/execution_success/brillig_calls_conditionals/src/main.nr deleted file mode 100644 index 318da4caf72..00000000000 --- a/test_programs/execution_success/brillig_calls_conditionals/src/main.nr +++ /dev/null @@ -1,38 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is brillig calls with conditionals -fn main(x: [u32; 3]) { - unsafe { - assert(entry_point(x[0]) == 7); - assert(entry_point(x[1]) == 8); - assert(entry_point(x[2]) == 9); - assert(entry_point(42) == 0); - } -} - -unconstrained fn inner_1() -> u32 { - 7 -} - -unconstrained fn inner_2() -> u32 { - 8 -} - -unconstrained fn inner_3() -> u32 { - 9 -} - -unconstrained fn entry_point(x: u32) -> u32 { - let mut result: u32 = 0; - - if x == 1 { - result = inner_1(); - } else if x == 2 { - result = inner_2(); - } else if x == 3 { - result = inner_3(); - } - - result -} - diff --git a/test_programs/execution_success/brillig_conditional/Nargo.toml b/test_programs/execution_success/brillig_conditional/Nargo.toml deleted file mode 100644 index 6a8be620fee..00000000000 --- a/test_programs/execution_success/brillig_conditional/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_conditional" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_conditional/Prover.toml b/test_programs/execution_success/brillig_conditional/Prover.toml deleted file mode 100644 index 4dd6b405159..00000000000 --- a/test_programs/execution_success/brillig_conditional/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "1" diff --git a/test_programs/execution_success/brillig_conditional/src/main.nr b/test_programs/execution_success/brillig_conditional/src/main.nr deleted file mode 100644 index 8ababf82319..00000000000 --- a/test_programs/execution_success/brillig_conditional/src/main.nr +++ /dev/null @@ -1,12 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is basic conditonal on brillig -fn main(x: Field) { - unsafe { - assert(4 == conditional(x == 1)); - } -} - -unconstrained fn conditional(x: bool) -> Field { - if x { 4 } else { 5 } -} diff --git a/test_programs/execution_success/brillig_constant_reference_regression/Nargo.toml b/test_programs/execution_success/brillig_constant_reference_regression/Nargo.toml deleted file mode 100644 index 2df127c83e8..00000000000 --- a/test_programs/execution_success/brillig_constant_reference_regression/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_constant_reference_regression" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_constant_reference_regression/Prover.toml b/test_programs/execution_success/brillig_constant_reference_regression/Prover.toml deleted file mode 100644 index 8fbe88fbb98..00000000000 --- a/test_programs/execution_success/brillig_constant_reference_regression/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -sorted_index = ["1", "0"] diff --git a/test_programs/execution_success/brillig_constant_reference_regression/src/main.nr b/test_programs/execution_success/brillig_constant_reference_regression/src/main.nr deleted file mode 100644 index c975d20a3b6..00000000000 --- a/test_programs/execution_success/brillig_constant_reference_regression/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -unconstrained fn main(sorted_index: [u32; 2]) { - let original = [ - 55, - 11 - ]; - - let mut sorted = original; // Stores the constant "original" into the sorted reference - - for i in 0..2 { - let index = sorted_index[i]; - let value = original[index]; - sorted[i] = value; // On first iteration, we should not mutate the original constant array, RC should be > 1 - } - - assert_eq(sorted[1], 55); -} diff --git a/test_programs/execution_success/brillig_cow/Nargo.toml b/test_programs/execution_success/brillig_cow/Nargo.toml deleted file mode 100644 index d191eb53ddf..00000000000 --- a/test_programs/execution_success/brillig_cow/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_cow" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_cow/Prover.toml b/test_programs/execution_success/brillig_cow/Prover.toml deleted file mode 100644 index 6533d218b15..00000000000 --- a/test_programs/execution_success/brillig_cow/Prover.toml +++ /dev/null @@ -1,7 +0,0 @@ -original = [0, 1, 2, 3, 4] -index = 2 - -[expected_result] -original = [0, 1, 2, 3, 4] -modified_once = [0, 1, 27, 3, 4] -modified_twice = [0, 1, 27, 27, 4] diff --git a/test_programs/execution_success/brillig_cow/src/main.nr b/test_programs/execution_success/brillig_cow/src/main.nr deleted file mode 100644 index 52ce8b8be3c..00000000000 --- a/test_programs/execution_success/brillig_cow/src/main.nr +++ /dev/null @@ -1,49 +0,0 @@ -// Tests the copy on write optimization for arrays. We look for cases where we are modifying an array in place when we shouldn't. - -global ARRAY_SIZE = 5; - -struct ExecutionResult { - original: [Field; ARRAY_SIZE], - modified_once: [Field; ARRAY_SIZE], - modified_twice: [Field; ARRAY_SIZE], -} - -impl ExecutionResult { - fn is_equal(self, other: ExecutionResult) -> bool { - (self.original == other.original) - & (self.modified_once == other.modified_once) - & (self.modified_twice == other.modified_twice) - } -} - -fn modify_in_inlined_constrained(original: [Field; ARRAY_SIZE], index: u64) -> ExecutionResult { - let mut modified = original; - - modified[index] = 27; - - let modified_once = modified; - - modified[index+1] = 27; - - ExecutionResult { original, modified_once, modified_twice: modified } -} - -unconstrained fn modify_in_unconstrained( - original: [Field; ARRAY_SIZE], - index: u64 -) -> ExecutionResult { - let mut modified = original; - - modified[index] = 27; - - let modified_once = modified; - - modified[index+1] = 27; - - ExecutionResult { original, modified_once, modified_twice: modified } -} - -unconstrained fn main(original: [Field; ARRAY_SIZE], index: u64, expected_result: ExecutionResult) { - assert(expected_result.is_equal(modify_in_unconstrained(original, index))); - assert(expected_result.is_equal(modify_in_inlined_constrained(original, index))); -} diff --git a/test_programs/execution_success/brillig_cow_assign/Nargo.toml b/test_programs/execution_success/brillig_cow_assign/Nargo.toml deleted file mode 100644 index a878566a372..00000000000 --- a/test_programs/execution_success/brillig_cow_assign/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "brillig_cow_assign" -type = "bin" -authors = [""] -compiler_version = ">=0.23.0" - -[dependencies] diff --git a/test_programs/execution_success/brillig_cow_assign/Prover.toml b/test_programs/execution_success/brillig_cow_assign/Prover.toml deleted file mode 100644 index 882c73b83f8..00000000000 --- a/test_programs/execution_success/brillig_cow_assign/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -items_to_update = 10 -index = 6 diff --git a/test_programs/execution_success/brillig_cow_assign/src/main.nr b/test_programs/execution_success/brillig_cow_assign/src/main.nr deleted file mode 100644 index e5c3e2bd2f5..00000000000 --- a/test_programs/execution_success/brillig_cow_assign/src/main.nr +++ /dev/null @@ -1,23 +0,0 @@ -global N = 10; - -unconstrained fn main() { - let mut arr = [0; N]; - let mut mid_change = arr; - - for i in 0..N { - if i == N / 2 { - mid_change = arr; - } - arr[i] = 27; - } - - // Expect: - // arr = [27, 27, 27, 27, 27, 27, 27, 27, 27, 27] - // mid_change = [27, 27, 27, 27, 27, 0, 0, 0, 0, 0] - - let modified_i = N / 2 + 1; - assert_eq(arr[modified_i], 27); - - // Fail here! - assert(mid_change[modified_i] != 27); -} diff --git a/test_programs/execution_success/brillig_cow_regression/Nargo.toml b/test_programs/execution_success/brillig_cow_regression/Nargo.toml deleted file mode 100644 index c5bf60a1e78..00000000000 --- a/test_programs/execution_success/brillig_cow_regression/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_cow_regression" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_cow_regression/Prover.toml b/test_programs/execution_success/brillig_cow_regression/Prover.toml deleted file mode 100644 index 44813823448..00000000000 --- a/test_programs/execution_success/brillig_cow_regression/Prover.toml +++ /dev/null @@ -1,229 +0,0 @@ -[kernel_data] -encrypted_logs_hash = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", -] -new_note_hashes = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", -] -new_l2_to_l1_msgs = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", -] -new_nullifiers = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", -] -unencrypted_logs_hash = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", -] - -[[kernel_data.new_contracts]] -contract_address = "0x0000000000000000000000000000000000000000000000000000000000000000" -portal_contract_address = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" - -[[kernel_data.public_data_update_requests]] -leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" -new_value = "0x0000000000000000000000000000000000000000000000000000000000000000" -old_value = "0x0000000000000000000000000000000000000000000000000000000000000000" diff --git a/test_programs/execution_success/brillig_cow_regression/src/main.nr b/test_programs/execution_success/brillig_cow_regression/src/main.nr deleted file mode 100644 index 3fce7fb2c7d..00000000000 --- a/test_programs/execution_success/brillig_cow_regression/src/main.nr +++ /dev/null @@ -1,178 +0,0 @@ -// Tests a performance regression found in aztec-packages with brillig cow optimization - -global MAX_NOTE_HASHES_PER_TX: u32 = 64; -global MAX_NULLIFIERS_PER_TX: u32 = 64; -global MAX_L2_TO_L1_MSGS_PER_TX: u32 = 2; -global MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX: u32 = 16; -global MAX_NEW_CONTRACTS_PER_TX: u32 = 1; -global NUM_ENCRYPTED_LOGS_HASHES_PER_TX: u32 = 1; -global NUM_UNENCRYPTED_LOGS_HASHES_PER_TX: u32 = 1; -global NUM_FIELDS_PER_SHA256: u32 = 2; -global TX_EFFECT_HASH_INPUT_SIZE = 169; -global TX_EFFECT_HASH_LOG_FIELDS: u32 = 4; -global TX_EFFECT_HASH_FULL_FIELDS: u32 = 165; - -struct PublicDataUpdateRequest { - leaf_slot : Field, - old_value : Field, - new_value : Field -} - -struct NewContractData { - contract_address: Field, - portal_contract_address: Field, -} - -impl NewContractData { - fn hash(self) -> Field { - std::hash::pedersen_hash([self.contract_address, self.portal_contract_address]) - } -} - -struct DataToHash { - new_note_hashes: [Field; MAX_NOTE_HASHES_PER_TX], - new_nullifiers: [Field; MAX_NULLIFIERS_PER_TX], - public_data_update_requests: [PublicDataUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX], - new_l2_to_l1_msgs: [Field; MAX_L2_TO_L1_MSGS_PER_TX], - encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256], - unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256], - new_contracts: [NewContractData; MAX_NEW_CONTRACTS_PER_TX], -} - -struct U256 { - // This is in big-endian order, typically because - // sha256 is usually in big endian order. - // Note: this means that inner[0] has the most significant 64 bits. - inner : [u64; 4] -} - -impl U256 { - pub fn from_bytes32(bytes: [u8; 32]) -> U256 { - // We use addition rather than a bitwise OR as the bitshifts ensure that none of the bytes overlap each other. - let high_0 = ((bytes[0] as u64) << 56) - + ((bytes[1] as u64) << 48) - + ((bytes[2] as u64) << 40) - + ((bytes[3] as u64) << 32) - + ((bytes[4] as u64) << 24) - + ((bytes[5] as u64) << 16) - + ((bytes[6] as u64) << 8) - + (bytes[7] as u64); - - let high_1 = ((bytes[8] as u64) << 56) - + ((bytes[9] as u64) << 48) - + ((bytes[10] as u64) << 40) - + ((bytes[11] as u64) << 32) - + ((bytes[12] as u64) << 24) - + ((bytes[13] as u64) << 16) - + ((bytes[14] as u64) << 8) - + (bytes[15] as u64); - - let low_0 = ((bytes[16] as u64) << 56) - + ((bytes[17] as u64) << 48) - + ((bytes[18] as u64) << 40) - + ((bytes[19] as u64) << 32) - + ((bytes[20] as u64) << 24) - + ((bytes[21] as u64) << 16) - + ((bytes[22] as u64) << 8) - + (bytes[23] as u64); - - let low_1 = ((bytes[24] as u64) << 56) - + ((bytes[25] as u64) << 48) - + ((bytes[26] as u64) << 40) - + ((bytes[27] as u64) << 32) - + ((bytes[28] as u64) << 24) - + ((bytes[29] as u64) << 16) - + ((bytes[30] as u64) << 8) - + (bytes[31] as u64); - - U256 { inner: [high_0, high_1, low_0, low_1] } - } - - pub fn to_u128_limbs(self) -> [Field; 2] { - let two_pow_64 = 2.pow_32(64); - - let high = (self.inner[0] as Field) * two_pow_64 + self.inner[1] as Field; - let low = (self.inner[2] as Field) * two_pow_64 + self.inner[3] as Field; - - [high, low] - } -} - -unconstrained fn main(kernel_data: DataToHash) -> pub [Field; NUM_FIELDS_PER_SHA256] { - let mut tx_effects_hash_inputs = [0; TX_EFFECT_HASH_INPUT_SIZE]; - - let new_note_hashes = kernel_data.new_note_hashes; - let new_nullifiers = kernel_data.new_nullifiers; - let public_data_update_requests = kernel_data.public_data_update_requests; - let l2ToL1Msgs = kernel_data.new_l2_to_l1_msgs; - let encryptedLogsHash = kernel_data.encrypted_logs_hash; - let unencryptedLogsHash = kernel_data.unencrypted_logs_hash; - - let mut offset = 0; - - for j in 0..MAX_NOTE_HASHES_PER_TX { - tx_effects_hash_inputs[offset + j] = new_note_hashes[j]; - } - offset += MAX_NOTE_HASHES_PER_TX ; - - for j in 0..MAX_NULLIFIERS_PER_TX { - tx_effects_hash_inputs[offset + j] = new_nullifiers[j]; - } - offset += MAX_NULLIFIERS_PER_TX ; - - for j in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX { - tx_effects_hash_inputs[offset + j * 2] = - public_data_update_requests[j].leaf_slot; - tx_effects_hash_inputs[offset + j * 2 + 1] = - public_data_update_requests[j].new_value; - } - offset += MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX * 2; - - for j in 0..MAX_L2_TO_L1_MSGS_PER_TX { - tx_effects_hash_inputs[offset + j] = l2ToL1Msgs[j]; - } - offset += MAX_L2_TO_L1_MSGS_PER_TX; - - let contract_leaf = kernel_data.new_contracts[0]; - tx_effects_hash_inputs[offset] = contract_leaf.hash(); - - offset += MAX_NEW_CONTRACTS_PER_TX; - - let new_contracts = kernel_data.new_contracts; - tx_effects_hash_inputs[offset] = new_contracts[0].contract_address; - - tx_effects_hash_inputs[offset + 1] = new_contracts[0].portal_contract_address; - - offset += MAX_NEW_CONTRACTS_PER_TX * 2; - - for j in 0..NUM_FIELDS_PER_SHA256 { - tx_effects_hash_inputs[offset + j] = encryptedLogsHash[j]; - } - - offset += NUM_ENCRYPTED_LOGS_HASHES_PER_TX * NUM_FIELDS_PER_SHA256; - - for j in 0..NUM_FIELDS_PER_SHA256 { - tx_effects_hash_inputs[offset + j] = unencryptedLogsHash[j]; - } - - offset += NUM_UNENCRYPTED_LOGS_HASHES_PER_TX * NUM_FIELDS_PER_SHA256; - assert_eq(offset, TX_EFFECT_HASH_INPUT_SIZE); // Sanity check - - let mut hash_input_flattened = [0; TX_EFFECT_HASH_FULL_FIELDS * 32 + TX_EFFECT_HASH_LOG_FIELDS * 16]; - for offset in 0..TX_EFFECT_HASH_FULL_FIELDS { - let input_as_bytes: [u8; 32] = tx_effects_hash_inputs[offset].to_be_bytes(); - for byte_index in 0..32 { - hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index]; - } - } - - for log_field_index in 0..TX_EFFECT_HASH_LOG_FIELDS { - let input_as_bytes: [u8; 16] = tx_effects_hash_inputs[TX_EFFECT_HASH_FULL_FIELDS + log_field_index].to_be_bytes(); - for byte_index in 0..16 { - hash_input_flattened[TX_EFFECT_HASH_FULL_FIELDS * 32 + log_field_index * 16 + byte_index] = input_as_bytes[byte_index]; - } - } - - let sha_digest = std::hash::sha256(hash_input_flattened); - U256::from_bytes32(sha_digest).to_u128_limbs() -} diff --git a/test_programs/execution_success/brillig_ecdsa_secp256k1/Nargo.toml b/test_programs/execution_success/brillig_ecdsa_secp256k1/Nargo.toml deleted file mode 100644 index 495a49f2247..00000000000 --- a/test_programs/execution_success/brillig_ecdsa_secp256k1/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_ecdsa_secp256k1" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_ecdsa_secp256k1/Prover.toml b/test_programs/execution_success/brillig_ecdsa_secp256k1/Prover.toml deleted file mode 100644 index e78fc19cb71..00000000000 --- a/test_programs/execution_success/brillig_ecdsa_secp256k1/Prover.toml +++ /dev/null @@ -1,169 +0,0 @@ - -hashed_message = [ - 0x3a, - 0x73, - 0xf4, - 0x12, - 0x3a, - 0x5c, - 0xd2, - 0x12, - 0x1f, - 0x21, - 0xcd, - 0x7e, - 0x8d, - 0x35, - 0x88, - 0x35, - 0x47, - 0x69, - 0x49, - 0xd0, - 0x35, - 0xd9, - 0xc2, - 0xda, - 0x68, - 0x06, - 0xb4, - 0x63, - 0x3a, - 0xc8, - 0xc1, - 0xe2, -] -pub_key_x = [ - 0xa0, - 0x43, - 0x4d, - 0x9e, - 0x47, - 0xf3, - 0xc8, - 0x62, - 0x35, - 0x47, - 0x7c, - 0x7b, - 0x1a, - 0xe6, - 0xae, - 0x5d, - 0x34, - 0x42, - 0xd4, - 0x9b, - 0x19, - 0x43, - 0xc2, - 0xb7, - 0x52, - 0xa6, - 0x8e, - 0x2a, - 0x47, - 0xe2, - 0x47, - 0xc7, -] -pub_key_y = [ - 0x89, - 0x3a, - 0xba, - 0x42, - 0x54, - 0x19, - 0xbc, - 0x27, - 0xa3, - 0xb6, - 0xc7, - 0xe6, - 0x93, - 0xa2, - 0x4c, - 0x69, - 0x6f, - 0x79, - 0x4c, - 0x2e, - 0xd8, - 0x77, - 0xa1, - 0x59, - 0x3c, - 0xbe, - 0xe5, - 0x3b, - 0x03, - 0x73, - 0x68, - 0xd7, -] -signature = [ - 0xe5, - 0x08, - 0x1c, - 0x80, - 0xab, - 0x42, - 0x7d, - 0xc3, - 0x70, - 0x34, - 0x6f, - 0x4a, - 0x0e, - 0x31, - 0xaa, - 0x2b, - 0xad, - 0x8d, - 0x97, - 0x98, - 0xc3, - 0x80, - 0x61, - 0xdb, - 0x9a, - 0xe5, - 0x5a, - 0x4e, - 0x8d, - 0xf4, - 0x54, - 0xfd, - 0x28, - 0x11, - 0x98, - 0x94, - 0x34, - 0x4e, - 0x71, - 0xb7, - 0x87, - 0x70, - 0xcc, - 0x93, - 0x1d, - 0x61, - 0xf4, - 0x80, - 0xec, - 0xbb, - 0x0b, - 0x89, - 0xd6, - 0xeb, - 0x69, - 0x69, - 0x01, - 0x61, - 0xe4, - 0x9a, - 0x71, - 0x5f, - 0xcd, - 0x55, -] diff --git a/test_programs/execution_success/brillig_ecdsa_secp256k1/src/main.nr b/test_programs/execution_success/brillig_ecdsa_secp256k1/src/main.nr deleted file mode 100644 index 45f13c79637..00000000000 --- a/test_programs/execution_success/brillig_ecdsa_secp256k1/src/main.nr +++ /dev/null @@ -1,17 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is ecdsa in brillig -fn main(hashed_message: [u8; 32], pub_key_x: [u8; 32], pub_key_y: [u8; 32], signature: [u8; 64]) { - unsafe { - assert(ecdsa(hashed_message, pub_key_x, pub_key_y, signature)); - } -} - -unconstrained fn ecdsa( - hashed_message: [u8; 32], - pub_key_x: [u8; 32], - pub_key_y: [u8; 32], - signature: [u8; 64] -) -> bool { - std::ecdsa_secp256k1::verify_signature(pub_key_x, pub_key_y, signature, hashed_message) -} diff --git a/test_programs/execution_success/brillig_ecdsa_secp256r1/Nargo.toml b/test_programs/execution_success/brillig_ecdsa_secp256r1/Nargo.toml deleted file mode 100644 index 0a71e782104..00000000000 --- a/test_programs/execution_success/brillig_ecdsa_secp256r1/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_ecdsa_secp256r1" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_ecdsa_secp256r1/Prover.toml b/test_programs/execution_success/brillig_ecdsa_secp256r1/Prover.toml deleted file mode 100644 index a45f799877b..00000000000 --- a/test_programs/execution_success/brillig_ecdsa_secp256r1/Prover.toml +++ /dev/null @@ -1,20 +0,0 @@ -hashed_message = [ - 84, 112, 91, 163, 186, 175, 219, 223, 186, 140, 95, 154, 112, 247, 168, 155, 238, 152, - 217, 6, 181, 62, 49, 7, 77, 167, 186, 236, 220, 13, 169, 173, -] -pub_key_x = [ - 85, 15, 71, 16, 3, 243, 223, 151, 195, 223, 80, 106, 199, 151, 246, 114, 31, 177, 161, - 251, 123, 143, 111, 131, 210, 36, 73, 138, 101, 200, 142, 36, -] -pub_key_y = [ - 19, 96, 147, 215, 1, 46, 80, 154, 115, 113, 92, 189, 11, 0, 163, 204, 15, 244, 181, - 192, 27, 63, 250, 25, 106, 177, 251, 50, 112, 54, 184, 230, -] -signature = [ - 44, 112, 168, 208, 132, 182, 43, 252, 92, 224, 54, 65, 202, 249, 247, 42, - 212, 218, 140, 129, 191, 230, 236, 148, 135, 187, 94, 27, 239, 98, 161, 50, - 24, 173, 158, 226, 158, 175, 53, 31, 220, 80, 241, 82, 12, 66, 94, 155, - 144, 138, 7, 39, 139, 67, 176, 236, 123, 135, 39, 120, 193, 78, 7, 132 -] - - diff --git a/test_programs/execution_success/brillig_ecdsa_secp256r1/src/main.nr b/test_programs/execution_success/brillig_ecdsa_secp256r1/src/main.nr deleted file mode 100644 index 32b562ec50c..00000000000 --- a/test_programs/execution_success/brillig_ecdsa_secp256r1/src/main.nr +++ /dev/null @@ -1,17 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is ecdsa in brillig -fn main(hashed_message: [u8; 32], pub_key_x: [u8; 32], pub_key_y: [u8; 32], signature: [u8; 64]) { - unsafe { - assert(ecdsa(hashed_message, pub_key_x, pub_key_y, signature)); - } -} - -unconstrained fn ecdsa( - hashed_message: [u8; 32], - pub_key_x: [u8; 32], - pub_key_y: [u8; 32], - signature: [u8; 64] -) -> bool { - std::ecdsa_secp256r1::verify_signature(pub_key_x, pub_key_y, signature, hashed_message) -} diff --git a/test_programs/execution_success/brillig_fns_as_values/Nargo.toml b/test_programs/execution_success/brillig_fns_as_values/Nargo.toml deleted file mode 100644 index decd9a9412a..00000000000 --- a/test_programs/execution_success/brillig_fns_as_values/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_fns_as_values" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_fns_as_values/Prover.toml b/test_programs/execution_success/brillig_fns_as_values/Prover.toml deleted file mode 100644 index 4dd6b405159..00000000000 --- a/test_programs/execution_success/brillig_fns_as_values/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "1" diff --git a/test_programs/execution_success/brillig_fns_as_values/src/main.nr b/test_programs/execution_success/brillig_fns_as_values/src/main.nr deleted file mode 100644 index 55b9d307905..00000000000 --- a/test_programs/execution_success/brillig_fns_as_values/src/main.nr +++ /dev/null @@ -1,36 +0,0 @@ -struct MyStruct { - operation: unconstrained fn (u32) -> u32, -} - -fn main(x: u32) { - unsafe { - assert(wrapper(increment, x) == x + 1); - assert(wrapper(increment_acir, x) == x + 1); - assert(wrapper(decrement, x) == x - 1); - assert(wrapper_with_struct(MyStruct { operation: increment }, x) == x + 1); - assert(wrapper_with_struct(MyStruct { operation: decrement }, x) == x - 1); - // https://github.com/noir-lang/noir/issues/1975 - assert(increment(x) == x + 1); - } -} - -unconstrained fn wrapper(func: unconstrained fn(u32) -> u32, param: u32) -> u32 { - func(param) -} - -unconstrained fn increment(x: u32) -> u32 { - x + 1 -} - -unconstrained fn decrement(x: u32) -> u32 { - x - 1 -} - -unconstrained fn wrapper_with_struct(my_struct: MyStruct, param: u32) -> u32 { - let func = my_struct.operation; - func(param) -} - -fn increment_acir(x: u32) -> u32 { - x + 1 -} diff --git a/test_programs/execution_success/brillig_hash_to_field/Nargo.toml b/test_programs/execution_success/brillig_hash_to_field/Nargo.toml deleted file mode 100644 index 7cfcc745f0d..00000000000 --- a/test_programs/execution_success/brillig_hash_to_field/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_hash_to_field" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_hash_to_field/Prover.toml b/test_programs/execution_success/brillig_hash_to_field/Prover.toml deleted file mode 100644 index ecdcfd1fb00..00000000000 --- a/test_programs/execution_success/brillig_hash_to_field/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -input = "27" \ No newline at end of file diff --git a/test_programs/execution_success/brillig_hash_to_field/src/main.nr b/test_programs/execution_success/brillig_hash_to_field/src/main.nr deleted file mode 100644 index d1ea635d49a..00000000000 --- a/test_programs/execution_success/brillig_hash_to_field/src/main.nr +++ /dev/null @@ -1,12 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is hash_to_field in brillig -fn main(input: Field) -> pub Field { - unsafe { - hash_to_field(input) - } -} - -unconstrained fn hash_to_field(input: Field) -> Field { - std::hash::hash_to_field(&[input]) -} diff --git a/test_programs/execution_success/brillig_identity_function/Nargo.toml b/test_programs/execution_success/brillig_identity_function/Nargo.toml deleted file mode 100644 index 8196884fe2b..00000000000 --- a/test_programs/execution_success/brillig_identity_function/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_identity_function" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_identity_function/Prover.toml b/test_programs/execution_success/brillig_identity_function/Prover.toml deleted file mode 100644 index 55cccb955a9..00000000000 --- a/test_programs/execution_success/brillig_identity_function/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "3" - diff --git a/test_programs/execution_success/brillig_identity_function/src/main.nr b/test_programs/execution_success/brillig_identity_function/src/main.nr deleted file mode 100644 index c2759fe054f..00000000000 --- a/test_programs/execution_success/brillig_identity_function/src/main.nr +++ /dev/null @@ -1,34 +0,0 @@ -struct myStruct { - foo: Field, - foo_arr: [Field; 2], -} -// Tests a very simple program. -// -// The features being tested is the identity function in Brillig -fn main(x: Field) { - unsafe { - assert(x == identity(x)); - // TODO: add support for array comparison - let arr = identity_array([x, x]); - assert(x == arr[0]); - assert(x == arr[1]); - - let s = myStruct { foo: x, foo_arr: [x, x] }; - let identity_struct = identity_struct(s); - assert(x == identity_struct.foo); - assert(x == identity_struct.foo_arr[0]); - assert(x == identity_struct.foo_arr[1]); - } -} - -unconstrained fn identity(x: Field) -> Field { - x -} - -unconstrained fn identity_array(arr: [Field; 2]) -> [Field; 2] { - arr -} - -unconstrained fn identity_struct(s: myStruct) -> myStruct { - s -} diff --git a/test_programs/execution_success/brillig_keccak/Nargo.toml b/test_programs/execution_success/brillig_keccak/Nargo.toml deleted file mode 100644 index 8cacf2186b8..00000000000 --- a/test_programs/execution_success/brillig_keccak/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_keccak" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_keccak/Prover.toml b/test_programs/execution_success/brillig_keccak/Prover.toml deleted file mode 100644 index d65c4011d3f..00000000000 --- a/test_programs/execution_success/brillig_keccak/Prover.toml +++ /dev/null @@ -1,35 +0,0 @@ -x = 0xbd -result = [ - 0x5a, - 0x50, - 0x2f, - 0x9f, - 0xca, - 0x46, - 0x7b, - 0x26, - 0x6d, - 0x5b, - 0x78, - 0x33, - 0x65, - 0x19, - 0x37, - 0xe8, - 0x05, - 0x27, - 0x0c, - 0xa3, - 0xf3, - 0xaf, - 0x1c, - 0x0d, - 0xd2, - 0x46, - 0x2d, - 0xca, - 0x4b, - 0x3b, - 0x1a, - 0xbf, -] diff --git a/test_programs/execution_success/brillig_keccak/src/main.nr b/test_programs/execution_success/brillig_keccak/src/main.nr deleted file mode 100644 index 9674ed92942..00000000000 --- a/test_programs/execution_success/brillig_keccak/src/main.nr +++ /dev/null @@ -1,26 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is keccak256 in brillig -fn main(x: Field, result: [u8; 32]) { - unsafe { - // We use the `as` keyword here to denote the fact that we want to take just the first byte from the x Field - // The padding is taken care of by the program - let digest = keccak256([x as u8], 1); - assert(digest == result); - //#1399: variable message size - let message_size = 4; - let hash_a = keccak256([1, 2, 3, 4], message_size); - let hash_b = keccak256([1, 2, 3, 4, 0, 0, 0, 0], message_size); - - assert(hash_a == hash_b); - - let message_size_big = 8; - let hash_c = keccak256([1, 2, 3, 4, 0, 0, 0, 0], message_size_big); - - assert(hash_a != hash_c); - } -} - -unconstrained fn keccak256(data: [u8; N], msg_len: u32) -> [u8; 32] { - std::hash::keccak256(data, msg_len) -} diff --git a/test_programs/execution_success/brillig_loop/Nargo.toml b/test_programs/execution_success/brillig_loop/Nargo.toml deleted file mode 100644 index 1212397c4db..00000000000 --- a/test_programs/execution_success/brillig_loop/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_loop" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_loop/Prover.toml b/test_programs/execution_success/brillig_loop/Prover.toml deleted file mode 100644 index 22cd5b7c12f..00000000000 --- a/test_programs/execution_success/brillig_loop/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -sum = "6" diff --git a/test_programs/execution_success/brillig_loop/src/main.nr b/test_programs/execution_success/brillig_loop/src/main.nr deleted file mode 100644 index 9de8c66b051..00000000000 --- a/test_programs/execution_success/brillig_loop/src/main.nr +++ /dev/null @@ -1,34 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is basic looping on brillig -fn main(sum: u32) { - unsafe { - assert(loop(4) == sum); - assert(loop_incl(3) == sum); - assert(plain_loop() == sum); - } -} - -unconstrained fn loop(x: u32) -> u32 { - let mut sum = 0; - for i in 0..x { - sum = sum + i; - } - sum -} - -unconstrained fn loop_incl(x: u32) -> u32 { - let mut sum = 0; - for i in 0..=x { - sum = sum + i; - } - sum -} - -unconstrained fn plain_loop() -> u32 { - let mut sum = 0; - for i in 0..4 { - sum = sum + i; - } - sum -} diff --git a/test_programs/execution_success/brillig_loop_size_regression/Nargo.toml b/test_programs/execution_success/brillig_loop_size_regression/Nargo.toml deleted file mode 100644 index d2a98e19742..00000000000 --- a/test_programs/execution_success/brillig_loop_size_regression/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "brillig_loop_size_regression" -type = "bin" -authors = [""] -compiler_version = ">=0.33.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/brillig_loop_size_regression/Prover.toml b/test_programs/execution_success/brillig_loop_size_regression/Prover.toml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/test_programs/execution_success/brillig_loop_size_regression/src/main.nr b/test_programs/execution_success/brillig_loop_size_regression/src/main.nr deleted file mode 100644 index 488304114b9..00000000000 --- a/test_programs/execution_success/brillig_loop_size_regression/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -struct EnumEmulation { - a: Option, - b: Option, - c: Option, -} - -unconstrained fn main() -> pub Field { - let mut emulated_enum = EnumEmulation { a: Option::some(1), b: Option::none(), c: Option::none() }; - - for _ in 0..1 { - assert_eq(emulated_enum.a.unwrap(), 1); - } - - emulated_enum.a = Option::some(2); - emulated_enum.a.unwrap() -} diff --git a/test_programs/execution_success/brillig_nested_arrays/Nargo.toml b/test_programs/execution_success/brillig_nested_arrays/Nargo.toml deleted file mode 100644 index c36c8a0a2bd..00000000000 --- a/test_programs/execution_success/brillig_nested_arrays/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "brillig_nested_arrays" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/brillig_nested_arrays/Prover.toml b/test_programs/execution_success/brillig_nested_arrays/Prover.toml deleted file mode 100644 index 26fdbc19975..00000000000 --- a/test_programs/execution_success/brillig_nested_arrays/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "0" -y = "1" diff --git a/test_programs/execution_success/brillig_nested_arrays/src/main.nr b/test_programs/execution_success/brillig_nested_arrays/src/main.nr deleted file mode 100644 index 77ab4ea19a6..00000000000 --- a/test_programs/execution_success/brillig_nested_arrays/src/main.nr +++ /dev/null @@ -1,43 +0,0 @@ -struct Header { - params: [Field; 3], -} - -struct MyNote { - plain: Field, - array: [Field; 2], - header: Header, -} - -unconstrained fn access_nested(notes: [MyNote; 2], x: Field, y: Field) -> Field { - notes[x].array[y] + notes[y].array[x] + notes[x].plain + notes[y].header.params[x] -} - -unconstrained fn create_inside_brillig() -> [MyNote; 2] { - let header = Header { params: [1, 2, 3] }; - let note0 = MyNote { array: [1, 2], plain: 3, header }; - let note1 = MyNote { array: [4, 5], plain: 6, header }; - [note0, note1] -} - -unconstrained fn assert_inside_brillig(notes: [MyNote; 2], x: Field, y: Field) { - assert(access_nested(notes, x, y) == (2 + 4 + 3 + 1)); -} - -unconstrained fn create_and_assert_inside_brillig(x: Field, y: Field) { - assert_inside_brillig(create_inside_brillig(), x, y); -} - -fn main(x: Field, y: Field) { - unsafe { - let header = Header { params: [1, 2, 3] }; - let note0 = MyNote { array: [1, 2], plain: 3, header }; - let note1 = MyNote { array: [4, 5], plain: 6, header }; - - assert(access_nested([note0, note1], x, y) == (2 + 4 + 3 + 1)); - - let notes = create_inside_brillig(); - assert_inside_brillig(notes, x, y); - create_and_assert_inside_brillig(x, y); - } -} - diff --git a/test_programs/execution_success/brillig_not/Nargo.toml b/test_programs/execution_success/brillig_not/Nargo.toml deleted file mode 100644 index ef882ea8da0..00000000000 --- a/test_programs/execution_success/brillig_not/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_not" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_not/Prover.toml b/test_programs/execution_success/brillig_not/Prover.toml deleted file mode 100644 index a0397e89477..00000000000 --- a/test_programs/execution_success/brillig_not/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "0" diff --git a/test_programs/execution_success/brillig_not/src/main.nr b/test_programs/execution_success/brillig_not/src/main.nr deleted file mode 100644 index 557d1e2e31f..00000000000 --- a/test_programs/execution_success/brillig_not/src/main.nr +++ /dev/null @@ -1,13 +0,0 @@ -// Tests a very simple Brillig function. -// -// The features being tested is not instruction on brillig -fn main(x: Field, y: Field) { - unsafe { - assert(false == not_operator(x as bool)); - assert(true == not_operator(y as bool)); - } -} - -unconstrained fn not_operator(x: bool) -> bool { - !x -} diff --git a/test_programs/execution_success/brillig_oracle/Nargo.toml b/test_programs/execution_success/brillig_oracle/Nargo.toml deleted file mode 100644 index 13bd913cef7..00000000000 --- a/test_programs/execution_success/brillig_oracle/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_oracle" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_oracle/Prover.toml b/test_programs/execution_success/brillig_oracle/Prover.toml deleted file mode 100644 index 161f4fb62c0..00000000000 --- a/test_programs/execution_success/brillig_oracle/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -_x = "10" - diff --git a/test_programs/execution_success/brillig_oracle/src/main.nr b/test_programs/execution_success/brillig_oracle/src/main.nr deleted file mode 100644 index 93465b87389..00000000000 --- a/test_programs/execution_success/brillig_oracle/src/main.nr +++ /dev/null @@ -1,44 +0,0 @@ -use std::slice; -use std::test::OracleMock; - -// Tests oracle usage in brillig/unconstrained functions -fn main(_x: Field) { - unsafe { - let size = 20; - // TODO: Add a method along the lines of `(0..size).to_array()`. - let mut mock_oracle_response = [0; 20]; - // TODO: Add an `array.reverse()` method. - let mut reversed_mock_oracle_response = [0; 20]; - for i in 0..size { - mock_oracle_response[i] = i; - reversed_mock_oracle_response[19 - i] = i; - } - - // TODO: this method of returning a slice feels hacky. - let _ = OracleMock::mock("get_number_sequence").with_params(size).returns((20, mock_oracle_response)); - let _ = OracleMock::mock("get_reverse_number_sequence").with_params(size).returns((20, reversed_mock_oracle_response)); - - get_number_sequence_wrapper(size as Field); - } -} - -// Define oracle functions which we have mocked above -#[oracle(get_number_sequence)] -unconstrained fn get_number_sequence(_size: Field) -> [Field] {} - -#[oracle(get_reverse_number_sequence)] -unconstrained fn get_reverse_number_sequence(_size: Field) -> [Field] {} - -unconstrained fn get_number_sequence_wrapper(size: Field) { - let slice = get_number_sequence(size); - for i in 0..20 as u32 { - assert(slice[i] == i as Field); - } - - let reversed_slice = get_reverse_number_sequence(size); - // Regression test that we have not overwritten memory - for i in 0..20 as u32 { - assert(slice[i] == reversed_slice[19 - i]); - } -} - diff --git a/test_programs/execution_success/brillig_pedersen/Nargo.toml b/test_programs/execution_success/brillig_pedersen/Nargo.toml deleted file mode 100644 index 6327caa0a09..00000000000 --- a/test_programs/execution_success/brillig_pedersen/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_pedersen" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_pedersen/Prover.toml b/test_programs/execution_success/brillig_pedersen/Prover.toml deleted file mode 100644 index db1ebdf6c51..00000000000 --- a/test_programs/execution_success/brillig_pedersen/Prover.toml +++ /dev/null @@ -1,7 +0,0 @@ -x = "0" -y = "1" -salt = "42" - -out_x = "0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402" -out_y = "0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126" -out_hash = "0x0d98561fb02ca04d00801dfdc118b2a24cea0351963587712a28d368041370e1" diff --git a/test_programs/execution_success/brillig_pedersen/src/main.nr b/test_programs/execution_success/brillig_pedersen/src/main.nr deleted file mode 100644 index 17c79f9d0ae..00000000000 --- a/test_programs/execution_success/brillig_pedersen/src/main.nr +++ /dev/null @@ -1,20 +0,0 @@ -unconstrained fn main(x: Field, y: Field, salt: Field, out_x: Field, out_y: Field, out_hash: Field) { - let res = std::hash::pedersen_commitment_with_separator([x, y], 0); - assert(res.x == out_x); - assert(res.y == out_y); - - let res_hash = std::hash::pedersen_hash_with_separator([x, y], 0); - assert_eq(res_hash, out_hash); - - assert(res_hash != res.x); - - let raw_data = [x, y]; - let mut state = 0; - for i in 0..(2 as u32) { - state = state * 8 + raw_data[i]; - } - state += salt; - let hash = std::hash::pedersen_commitment_with_separator([state], 0); - assert(std::hash::pedersen_commitment_with_separator([43], 0).x == hash.x); -} - diff --git a/test_programs/execution_success/brillig_rc_regression_6123/Nargo.toml b/test_programs/execution_success/brillig_rc_regression_6123/Nargo.toml deleted file mode 100644 index 533777df67f..00000000000 --- a/test_programs/execution_success/brillig_rc_regression_6123/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "brillig_rc_regression_6123" -type = "bin" -authors = [""] -compiler_version = ">=0.34.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/brillig_rc_regression_6123/src/main.nr b/test_programs/execution_success/brillig_rc_regression_6123/src/main.nr deleted file mode 100644 index 3eb29659944..00000000000 --- a/test_programs/execution_success/brillig_rc_regression_6123/src/main.nr +++ /dev/null @@ -1,41 +0,0 @@ -struct Builder { - note_hashes: BoundedVec, - nullifiers: BoundedVec, -} - -impl Builder { - fn append_note_hashes_with_logs(&mut self, num_note_hashes: u32) { - let index_offset = self.note_hashes.len(); - for i in 0..self.note_hashes.max_len() { - if i < num_note_hashes { - self.add_new_note_hash((index_offset + i) as Field); - } - } - } - - fn add_new_note_hash(&mut self, value: Field) { - self.note_hashes.push(value); - } -} - -fn swap_items(vec: &mut BoundedVec, from_index: u32, to_index: u32) { - let tmp = vec.storage[from_index]; - vec.storage[from_index] = vec.storage[to_index]; - vec.storage[to_index] = tmp; -} - -unconstrained fn main() { - let mut builder = Builder { note_hashes: BoundedVec::new(), nullifiers: BoundedVec::new() }; - - builder.append_note_hashes_with_logs(2); - builder.nullifiers.storage[1] = 27; - // Get ordered items before shuffling. - let note_hashes = builder.note_hashes.storage; - let original_first_note_hash = note_hashes[0]; - // Shuffle. - swap_items(&mut builder.note_hashes, 1, 0); - - for i in 0..1 { - assert_eq(note_hashes[i], original_first_note_hash); - } -} diff --git a/test_programs/execution_success/brillig_recursion/Nargo.toml b/test_programs/execution_success/brillig_recursion/Nargo.toml deleted file mode 100644 index 087eeefd5ac..00000000000 --- a/test_programs/execution_success/brillig_recursion/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_recursion" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_recursion/Prover.toml b/test_programs/execution_success/brillig_recursion/Prover.toml deleted file mode 100644 index 3a627b9188b..00000000000 --- a/test_programs/execution_success/brillig_recursion/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "10" diff --git a/test_programs/execution_success/brillig_recursion/src/main.nr b/test_programs/execution_success/brillig_recursion/src/main.nr deleted file mode 100644 index c69468013b1..00000000000 --- a/test_programs/execution_success/brillig_recursion/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -// Tests a very simple program. -// -// The feature being tested is brillig recursion -fn main(x: u32) { - unsafe { - assert(fibonacci(x) == 55); - } -} - -unconstrained fn fibonacci(x: u32) -> u32 { - if x <= 1 { - x - } else { - fibonacci(x - 1) + fibonacci(x - 2) - } -} diff --git a/test_programs/execution_success/brillig_references/Nargo.toml b/test_programs/execution_success/brillig_references/Nargo.toml deleted file mode 100644 index 0f64b862ba0..00000000000 --- a/test_programs/execution_success/brillig_references/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_references" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_references/Prover.toml b/test_programs/execution_success/brillig_references/Prover.toml deleted file mode 100644 index 151faa5a9b1..00000000000 --- a/test_programs/execution_success/brillig_references/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "2" \ No newline at end of file diff --git a/test_programs/execution_success/brillig_references/src/main.nr b/test_programs/execution_success/brillig_references/src/main.nr deleted file mode 100644 index e1f906beb0a..00000000000 --- a/test_programs/execution_success/brillig_references/src/main.nr +++ /dev/null @@ -1,49 +0,0 @@ -unconstrained fn main(mut x: Field) { - add1(&mut x); - assert(x == 3); - // https://github.com/noir-lang/noir/issues/1899 - // let mut s = S { y: x }; - // s.add2(); - // assert(s.y == 5); - // Test that normal mutable variables are still copied - let mut a = 0; - mutate_copy(a); - assert(a == 0); - // Test something 3 allocations deep - let mut nested_allocations = Nested { y: &mut &mut 0 }; - add1(*nested_allocations.y); - assert(**nested_allocations.y == 1); - // Test nested struct allocations with a mutable reference to an array. - let mut c = C { foo: 0, bar: &mut C2 { array: &mut [1, 2] } }; - *c.bar.array = [3, 4]; - let arr: [Field; 2] = *c.bar.array; - assert(arr[0] == 3); - assert(arr[1] == 4); -} - -unconstrained fn add1(x: &mut Field) { - *x += 1; -} - -struct S { y: Field } - -struct Nested { y: &mut &mut Field } - -struct C { - foo: Field, - bar: &mut C2, -} - -struct C2 { - array: &mut [Field; 2] -} - -impl S { - unconstrained fn add2(&mut self) { - self.y += 2; - } -} - -unconstrained fn mutate_copy(mut a: Field) { - a = 7; -} diff --git a/test_programs/execution_success/brillig_sha256/Nargo.toml b/test_programs/execution_success/brillig_sha256/Nargo.toml deleted file mode 100644 index 7140fa0fd0b..00000000000 --- a/test_programs/execution_success/brillig_sha256/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_sha256" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_sha256/Prover.toml b/test_programs/execution_success/brillig_sha256/Prover.toml deleted file mode 100644 index 374ae90ad78..00000000000 --- a/test_programs/execution_success/brillig_sha256/Prover.toml +++ /dev/null @@ -1,35 +0,0 @@ -x = 0xbd -result = [ - 0x68, - 0x32, - 0x57, - 0x20, - 0xaa, - 0xbd, - 0x7c, - 0x82, - 0xf3, - 0x0f, - 0x55, - 0x4b, - 0x31, - 0x3d, - 0x05, - 0x70, - 0xc9, - 0x5a, - 0xcc, - 0xbb, - 0x7d, - 0xc4, - 0xb5, - 0xaa, - 0xe1, - 0x12, - 0x04, - 0xc0, - 0x8f, - 0xfe, - 0x73, - 0x2b, -] diff --git a/test_programs/execution_success/brillig_sha256/src/main.nr b/test_programs/execution_success/brillig_sha256/src/main.nr deleted file mode 100644 index 5519fb2da64..00000000000 --- a/test_programs/execution_success/brillig_sha256/src/main.nr +++ /dev/null @@ -1,15 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is sha256 in brillig -fn main(x: Field, result: [u8; 32]) { - unsafe { - assert(result == sha256(x)); - } -} - -unconstrained fn sha256(x: Field) -> [u8; 32] { - // We use the `as` keyword here to denote the fact that we want to take just the first byte from the x Field - // The padding is taken care of by the program - std::hash::sha256([x as u8]) -} - diff --git a/test_programs/execution_success/brillig_slices/Nargo.toml b/test_programs/execution_success/brillig_slices/Nargo.toml deleted file mode 100644 index 5f6caad088a..00000000000 --- a/test_programs/execution_success/brillig_slices/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "brillig_slices" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/brillig_slices/Prover.toml b/test_programs/execution_success/brillig_slices/Prover.toml deleted file mode 100644 index f28f2f8cc48..00000000000 --- a/test_programs/execution_success/brillig_slices/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "5" -y = "10" diff --git a/test_programs/execution_success/brillig_slices/src/main.nr b/test_programs/execution_success/brillig_slices/src/main.nr deleted file mode 100644 index 89f838a3a57..00000000000 --- a/test_programs/execution_success/brillig_slices/src/main.nr +++ /dev/null @@ -1,140 +0,0 @@ -use std::slice; -unconstrained fn main(x: Field, y: Field) { - let mut slice: [Field] = &[y, x]; - assert(slice.len() == 2); - - slice = slice.push_back(7); - assert(slice.len() == 3); - assert(slice[0] == y); - assert(slice[1] == x); - assert(slice[2] == 7); - // Array set on slice target - slice[0] = x; - slice[1] = y; - slice[2] = 1; - - assert(slice[0] == x); - assert(slice[1] == y); - assert(slice[2] == 1); - - slice = push_front_to_slice(slice, 2); - assert(slice.len() == 4); - assert(slice[0] == 2); - assert(slice[1] == x); - assert(slice[2] == y); - assert(slice[3] == 1); - - let (item, popped_front_slice) = slice.pop_front(); - slice = popped_front_slice; - assert(item == 2); - - assert(slice.len() == 3); - assert(slice[0] == x); - assert(slice[1] == y); - assert(slice[2] == 1); - - let (popped_back_slice, another_item) = slice.pop_back(); - slice = popped_back_slice; - assert(another_item == 1); - - assert(slice.len() == 2); - assert(slice[0] == x); - assert(slice[1] == y); - - slice = slice.insert(1, 2); - assert(slice.len() == 3); - assert(slice[0] == x); - assert(slice[1] == 2); - assert(slice[2] == y); - - let (removed_slice, should_be_2) = slice.remove(1); - slice = removed_slice; - assert(should_be_2 == 2); - - assert(slice.len() == 2); - assert(slice[0] == x); - assert(slice[1] == y); - - let (slice_with_only_x, should_be_y) = slice.remove(1); - slice = slice_with_only_x; - assert(should_be_y == y); - - assert(slice.len() == 1); - assert(slice[0] == x); - - let (empty_slice, should_be_x) = slice.remove(0); - assert(should_be_x == x); - assert(empty_slice.len() == 0); - - regression_merge_slices(x, y); -} -// Tests slice passing to/from functions -unconstrained fn push_front_to_slice(slice: [T], item: T) -> [T] { - slice.push_front(item) -} -// The parameters to this function must come from witness values (inputs to main) -unconstrained fn regression_merge_slices(x: Field, y: Field) { - merge_slices_if(x, y); - merge_slices_else(x); -} - -unconstrained fn merge_slices_if(x: Field, y: Field) { - let slice = merge_slices_return(x, y); - assert(slice[2] == 10); - assert(slice.len() == 3); - - let slice = merge_slices_mutate(x, y); - assert(slice[3] == 5); - assert(slice.len() == 4); - - let slice = merge_slices_mutate_in_loop(x, y); - assert(slice[6] == 4); - assert(slice.len() == 7); -} - -unconstrained fn merge_slices_else(x: Field) { - let slice = merge_slices_return(x, 5); - assert(slice[0] == 0); - assert(slice[1] == 0); - assert(slice.len() == 2); - - let slice = merge_slices_mutate(x, 5); - assert(slice[2] == 5); - assert(slice.len() == 3); - - let slice = merge_slices_mutate_in_loop(x, 5); - assert(slice[2] == 5); - assert(slice.len() == 3); -} -// Test returning a merged slice without a mutation -unconstrained fn merge_slices_return(x: Field, y: Field) -> [Field] { - let slice = &[0; 2]; - if x != y { - if x != 20 { slice.push_back(y) } else { slice } - } else { - slice - } -} -// Test mutating a slice inside of an if statement -unconstrained fn merge_slices_mutate(x: Field, y: Field) -> [Field] { - let mut slice = &[0; 2]; - if x != y { - slice = slice.push_back(y); - slice = slice.push_back(x); - } else { - slice = slice.push_back(x); - } - slice -} -// Test mutating a slice inside of a loop in an if statement -unconstrained fn merge_slices_mutate_in_loop(x: Field, y: Field) -> [Field] { - let mut slice = &[0; 2]; - if x != y { - for i in 0..5 { - slice = slice.push_back(i as Field); - } - } else { - slice = slice.push_back(x); - } - slice -} diff --git a/test_programs/execution_success/brillig_unitialised_arrays/Nargo.toml b/test_programs/execution_success/brillig_unitialised_arrays/Nargo.toml deleted file mode 100644 index f23ecc787d0..00000000000 --- a/test_programs/execution_success/brillig_unitialised_arrays/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "brillig_unitialised_arrays" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/brillig_unitialised_arrays/Prover.toml b/test_programs/execution_success/brillig_unitialised_arrays/Prover.toml deleted file mode 100644 index b6626a67e19..00000000000 --- a/test_programs/execution_success/brillig_unitialised_arrays/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = 1 -y = 0 diff --git a/test_programs/execution_success/brillig_unitialised_arrays/src/main.nr b/test_programs/execution_success/brillig_unitialised_arrays/src/main.nr deleted file mode 100644 index d4b74162cfb..00000000000 --- a/test_programs/execution_success/brillig_unitialised_arrays/src/main.nr +++ /dev/null @@ -1,14 +0,0 @@ -fn main(x: Field, y: Field) -> pub Field { - unsafe { - let notes = create_notes(x, y); - sum_x(notes, x, y) - } -} - -fn sum_x(notes: [Field; 2], x: Field, y: Field) -> Field { - notes[x] + notes[y] -} - -unconstrained fn create_notes(x: Field, y: Field) -> [Field; 2] { - [x, y] -} diff --git a/test_programs/execution_success/cast_and_shift_global/Nargo.toml b/test_programs/execution_success/cast_and_shift_global/Nargo.toml deleted file mode 100644 index 92af6ed8333..00000000000 --- a/test_programs/execution_success/cast_and_shift_global/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "cast_and_shift_global" -type = "bin" -authors = [""] -compiler_version = ">=0.30.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/cast_and_shift_global/Prover.toml b/test_programs/execution_success/cast_and_shift_global/Prover.toml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/test_programs/execution_success/cast_and_shift_global/src/main.nr b/test_programs/execution_success/cast_and_shift_global/src/main.nr deleted file mode 100644 index 2c0158fc71a..00000000000 --- a/test_programs/execution_success/cast_and_shift_global/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -global THREE: u32 = 3; -global EIGHT: u32 = 1 << THREE as u8; -global SEVEN: u32 = EIGHT - 1; - -fn main() { - assert([0; EIGHT] == [0; 8]); - assert([0; SEVEN] == [0; 7]); -} diff --git a/test_programs/execution_success/cast_bool/Nargo.toml b/test_programs/execution_success/cast_bool/Nargo.toml deleted file mode 100644 index 6571019494e..00000000000 --- a/test_programs/execution_success/cast_bool/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "cast_bool" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/cast_bool/Prover.toml b/test_programs/execution_success/cast_bool/Prover.toml deleted file mode 100644 index f489cbac003..00000000000 --- a/test_programs/execution_success/cast_bool/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "10" -y = "10" \ No newline at end of file diff --git a/test_programs/execution_success/cast_bool/src/main.nr b/test_programs/execution_success/cast_bool/src/main.nr deleted file mode 100644 index 422d3b98f83..00000000000 --- a/test_programs/execution_success/cast_bool/src/main.nr +++ /dev/null @@ -1,6 +0,0 @@ -fn main(x: Field, y: Field) { - let z = x == y; - let t = z as u8; - assert(t == 1); -} - diff --git a/test_programs/execution_success/check_large_field_bits/Nargo.toml b/test_programs/execution_success/check_large_field_bits/Nargo.toml deleted file mode 100644 index 33d5dd66484..00000000000 --- a/test_programs/execution_success/check_large_field_bits/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "check_large_field_bits" -type = "bin" -authors = [""] -compiler_version = ">=0.35.0" - -[dependencies] diff --git a/test_programs/execution_success/check_large_field_bits/src/main.nr b/test_programs/execution_success/check_large_field_bits/src/main.nr deleted file mode 100644 index 542a06ecb6f..00000000000 --- a/test_programs/execution_success/check_large_field_bits/src/main.nr +++ /dev/null @@ -1,45 +0,0 @@ -// 2^32 + 1 -global A: Field = 4294967297; -global B: Field = 4294967297; - -// 2^33 + 2 -global C: Field = A + B; - -fn main() { - // 2 * (2^32 + 1) == 2^33 + 2 - assert(C == 8589934594); - - let mut leading_zeroes = 0; - let mut stop = false; - let bits: [u1; 64] = C.to_be_bits(); - for i in 0..64 { - if (bits[i] == 0) & !stop { - leading_zeroes += 1; - } else { - stop = true; - } - } - let size = 64 - leading_zeroes; - - // 8589934594 has 34 bits - assert(size == 34); - C.assert_max_bit_size::<34>(); - - assert( - C.to_be_bits() == [ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 - ] - ); - - // leading big-endian bits past 34 are 0's - assert( - C.to_be_bits() == [ - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 - ] - ); - assert( - C.to_be_bits() == [ - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 - ] - ); -} diff --git a/test_programs/execution_success/closures_mut_ref/Nargo.toml b/test_programs/execution_success/closures_mut_ref/Nargo.toml deleted file mode 100644 index 01936c7be65..00000000000 --- a/test_programs/execution_success/closures_mut_ref/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "closures_mut_ref" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/closures_mut_ref/Prover.toml b/test_programs/execution_success/closures_mut_ref/Prover.toml deleted file mode 100644 index 11497a473bc..00000000000 --- a/test_programs/execution_success/closures_mut_ref/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "0" diff --git a/test_programs/execution_success/closures_mut_ref/src/main.nr b/test_programs/execution_success/closures_mut_ref/src/main.nr deleted file mode 100644 index 5a743d1b633..00000000000 --- a/test_programs/execution_success/closures_mut_ref/src/main.nr +++ /dev/null @@ -1,30 +0,0 @@ -fn main(mut x: Field) { - let one = 1; - let add1 = |z| { - *z = *z + one; - }; - - let two = 2; - let add2 = |z| { - *z = *z + two; - }; - - add1(&mut x); - assert(x == 1); - - add2(&mut x); - assert(x == 3); - - issue_2120(); -} -// https://github.com/noir-lang/noir/issues/2120 -fn issue_2120() { - let x1 = &mut 42; - let set_x1 = |y| { *x1 = y; }; - - assert(*x1 == 42); - set_x1(44); - assert(*x1 == 44); - set_x1(*x1); - assert(*x1 == 44); -} diff --git a/test_programs/execution_success/comptime_println/Nargo.toml b/test_programs/execution_success/comptime_println/Nargo.toml deleted file mode 100644 index 7f8ae3a9cb9..00000000000 --- a/test_programs/execution_success/comptime_println/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "comptime_println" -type = "bin" -authors = [""] -compiler_version = ">=0.27.0" - -[dependencies] diff --git a/test_programs/execution_success/comptime_println/src/main.nr b/test_programs/execution_success/comptime_println/src/main.nr deleted file mode 100644 index f9770066c04..00000000000 --- a/test_programs/execution_success/comptime_println/src/main.nr +++ /dev/null @@ -1,7 +0,0 @@ -fn main() { - let x = comptime { - println("hello from compile-time!"); - 1 + 2 - }; - println(x); -} diff --git a/test_programs/execution_success/comptime_slice_equality/Nargo.toml b/test_programs/execution_success/comptime_slice_equality/Nargo.toml deleted file mode 100644 index 72700d87d8b..00000000000 --- a/test_programs/execution_success/comptime_slice_equality/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "comptime_slice_equality" -type = "bin" -authors = [""] -compiler_version = ">=0.31.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/comptime_slice_equality/src/main.nr b/test_programs/execution_success/comptime_slice_equality/src/main.nr deleted file mode 100644 index 83f82fca06f..00000000000 --- a/test_programs/execution_success/comptime_slice_equality/src/main.nr +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - comptime - { - assert_eq(&[1], &[1]); - } -} diff --git a/test_programs/execution_success/conditional_1/Nargo.toml b/test_programs/execution_success/conditional_1/Nargo.toml deleted file mode 100644 index 28ca01332df..00000000000 --- a/test_programs/execution_success/conditional_1/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "conditional_1" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/conditional_1/Prover.toml b/test_programs/execution_success/conditional_1/Prover.toml deleted file mode 100644 index baad8be126a..00000000000 --- a/test_programs/execution_success/conditional_1/Prover.toml +++ /dev/null @@ -1,38 +0,0 @@ -c=[2, 4, 3, 0, ] -a=0 -x = [104, 101, 108, 108, 111] - -result = [ - 0x2c, - 0xf2, - 0x4d, - 0xba, - 0x5f, - 0xb0, - 0xa3, - 0x0e, - 0x26, - 0xe8, - 0x3b, - 0x2a, - 0xc5, - 0xb9, - 0xe2, - 0x9e, - 0x1b, - 0x16, - 0x1e, - 0x5c, - 0x1f, - 0xa7, - 0x42, - 0x5e, - 0x73, - 0x04, - 0x33, - 0x62, - 0x93, - 0x8b, - 0x98, - 0x24, -] diff --git a/test_programs/execution_success/conditional_1/src/main.nr b/test_programs/execution_success/conditional_1/src/main.nr deleted file mode 100644 index e7d780263b8..00000000000 --- a/test_programs/execution_success/conditional_1/src/main.nr +++ /dev/null @@ -1,91 +0,0 @@ -fn sort(mut a: [u32; 4]) -> [u32; 4] { - for i in 1..4 { - for j in 0..i { - if a[i] < a[j] { - let c = a[j]; - a[j] = a[i]; - a[i] = c; - } - } - } - a -} - -fn must_be_zero(x: u8) { - assert(x == 0); -} - -fn main(a: u32, mut c: [u32; 4], x: [u8; 5], result: pub [u8; 32]) { - //Test case for short-circuit - let mut data = [0 as u32; 32]; - let mut ba = a; - for i in 0..32 { - let i_u32 = i as u32; - if i_u32 == a { - for j in 0..4 { - data[i + j] = c[4 - 1 - j]; - for k in 0..4 { - ba = ba +data[k]; - } - if ba == 4864 { - c[3]=ba; - } - } - } - } - assert(data[31] == 0); - assert(ba != 13); - //Test case for conditional with arrays from function parameters - let b = sort([1, 2, 3, 4]); - assert(b[0] == 1); - - if a == 0 { - must_be_zero(0); - c[0] = 3; - } else { - must_be_zero(1); - c[0] = 1; - c[1] = c[2] / a + 11 % a; - let f1 = a as Field; - assert(10 / f1 != 0); - } - assert(c[0] == 3); - - let mut y = 0; - if a == 0 { - let digest = std::hash::sha256(x); - y = digest[0]; - } else { - y = 5; - } - assert(y == result[0]); - c = sort(c); - assert(c[0] == 0); - //test 1 - let mut x: u32 = 0; - if a == 0 { - c[0] = 12; - if a != 0 { - x = 6; - } else { - x = 2; - assert(x == 2); - } - } else { - x = 5; - assert(x == 5); - } - if c[0] == 0 { - x = 3; - } - assert(x == 2); - //test2: loops - let mut x: u32 = 0; - x = a - a; - for i in 0..4 { - if c[i] == 0 { - x = i as u32 +2; - } - } - assert(x == 0); -} diff --git a/test_programs/execution_success/conditional_2/Nargo.toml b/test_programs/execution_success/conditional_2/Nargo.toml deleted file mode 100644 index 153c5d38b99..00000000000 --- a/test_programs/execution_success/conditional_2/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "conditional_2" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/conditional_2/Prover.toml b/test_programs/execution_success/conditional_2/Prover.toml deleted file mode 100644 index 73fa4a5e31a..00000000000 --- a/test_programs/execution_success/conditional_2/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -c=[2, 4, 3, 0, ] -a=0 diff --git a/test_programs/execution_success/conditional_2/src/main.nr b/test_programs/execution_success/conditional_2/src/main.nr deleted file mode 100644 index ea23ec3cf3b..00000000000 --- a/test_programs/execution_success/conditional_2/src/main.nr +++ /dev/null @@ -1,49 +0,0 @@ -fn must_be_zero(x: u8) { - assert(x == 0); -} - -fn test3(x: u8) { - if x == 0 { - must_be_zero(x); - } -} - -fn test4() -> [u32; 4] { - let b: [u32; 4] = [1, 2, 3, 4]; - b -} - -fn main(a: u32, mut c: [u32; 4]) { - test3(1); - - if a == 0 { - c = test4(); - } else { - assert(c[1] != 2); - } - if false { - c[1] = 5; - } - assert(c[1] == 2); - - test5(4); - // Test case for function synchronisation - let mut c_sync = 0; - if a == 42 { - c_sync = foo2(); - } else { - c_sync = foo2() + foo2(); - } - assert(c_sync == 6); -} - -fn test5(a: u32) { - if a > 1 { - let q = a / 2; - assert(q == 2); - } -} - -fn foo2() -> Field { - 3 -} diff --git a/test_programs/execution_success/conditional_regression_421/Nargo.toml b/test_programs/execution_success/conditional_regression_421/Nargo.toml deleted file mode 100644 index 987b51ae126..00000000000 --- a/test_programs/execution_success/conditional_regression_421/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "conditional_regression_421" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/conditional_regression_421/Prover.toml b/test_programs/execution_success/conditional_regression_421/Prover.toml deleted file mode 100644 index 73fa4a5e31a..00000000000 --- a/test_programs/execution_success/conditional_regression_421/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -c=[2, 4, 3, 0, ] -a=0 diff --git a/test_programs/execution_success/conditional_regression_421/src/main.nr b/test_programs/execution_success/conditional_regression_421/src/main.nr deleted file mode 100644 index 5789afb76db..00000000000 --- a/test_programs/execution_success/conditional_regression_421/src/main.nr +++ /dev/null @@ -1,10 +0,0 @@ -fn main(a: u32, mut c: [u32; 4]) { - //Issue reported in #421 - if a == c[0] { - assert(c[0] == 0); - } else if a == c[1] { - assert(c[1] == 0); - } else if a == c[2] { - assert(c[2] == 0); - } -} diff --git a/test_programs/execution_success/conditional_regression_547/Nargo.toml b/test_programs/execution_success/conditional_regression_547/Nargo.toml deleted file mode 100644 index 1a62c5af20c..00000000000 --- a/test_programs/execution_success/conditional_regression_547/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "conditional_regression_547" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/conditional_regression_547/Prover.toml b/test_programs/execution_success/conditional_regression_547/Prover.toml deleted file mode 100644 index 3d2b4b14efe..00000000000 --- a/test_programs/execution_success/conditional_regression_547/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = 1 \ No newline at end of file diff --git a/test_programs/execution_success/conditional_regression_547/src/main.nr b/test_programs/execution_success/conditional_regression_547/src/main.nr deleted file mode 100644 index e47d23516a5..00000000000 --- a/test_programs/execution_success/conditional_regression_547/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -fn main(x: Field) -> pub Field { - // Regression test for issue #547 - // Warning: it must be kept at the start of main - let arr: [u8; 2] = [1, 2]; - if arr[0] != arr[1] { - for i in 0..1 { - assert(i != 2); - } - } - // Regression for predicate simplification - x + safe_inverse(0) -} - -fn safe_inverse(n: Field) -> Field { - if n == 0 { 0 } else { 1 / n } -} diff --git a/test_programs/execution_success/conditional_regression_661/Nargo.toml b/test_programs/execution_success/conditional_regression_661/Nargo.toml deleted file mode 100644 index ed11341c5b0..00000000000 --- a/test_programs/execution_success/conditional_regression_661/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "conditional_regression_661" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/conditional_regression_661/Prover.toml b/test_programs/execution_success/conditional_regression_661/Prover.toml deleted file mode 100644 index baad8be126a..00000000000 --- a/test_programs/execution_success/conditional_regression_661/Prover.toml +++ /dev/null @@ -1,38 +0,0 @@ -c=[2, 4, 3, 0, ] -a=0 -x = [104, 101, 108, 108, 111] - -result = [ - 0x2c, - 0xf2, - 0x4d, - 0xba, - 0x5f, - 0xb0, - 0xa3, - 0x0e, - 0x26, - 0xe8, - 0x3b, - 0x2a, - 0xc5, - 0xb9, - 0xe2, - 0x9e, - 0x1b, - 0x16, - 0x1e, - 0x5c, - 0x1f, - 0xa7, - 0x42, - 0x5e, - 0x73, - 0x04, - 0x33, - 0x62, - 0x93, - 0x8b, - 0x98, - 0x24, -] diff --git a/test_programs/execution_success/conditional_regression_661/src/main.nr b/test_programs/execution_success/conditional_regression_661/src/main.nr deleted file mode 100644 index 26521a88358..00000000000 --- a/test_programs/execution_success/conditional_regression_661/src/main.nr +++ /dev/null @@ -1,28 +0,0 @@ -fn main(a: u32, mut c: [u32; 4]) { - // Regression for issue #661: - let mut c_661: [u32; 1] = [0]; - if a > 5 { - c_661 = issue_661_foo(issue_661_bar(c), a); - } else { - c_661 = issue_661_foo(issue_661_bar(c), a + 2); - } - assert(c_661[0] < 20000); -} - -fn test5(a: u32) { - if a > 1 { - let q = a / 2; - assert(q == 2); - } -} - -fn issue_661_foo(array: [u32; 4], b: u32) -> [u32; 1] { - [array[0] + b] -} - -fn issue_661_bar(a: [u32; 4]) -> [u32; 4] { - let mut b: [u32; 4] = [0; 4]; - b[0]=a[0]+1; - b -} - diff --git a/test_programs/execution_success/conditional_regression_short_circuit/Nargo.toml b/test_programs/execution_success/conditional_regression_short_circuit/Nargo.toml deleted file mode 100644 index 92f5a869bc4..00000000000 --- a/test_programs/execution_success/conditional_regression_short_circuit/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "conditional_regression_short_circuit" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/conditional_regression_short_circuit/Prover.toml b/test_programs/execution_success/conditional_regression_short_circuit/Prover.toml deleted file mode 100644 index baad8be126a..00000000000 --- a/test_programs/execution_success/conditional_regression_short_circuit/Prover.toml +++ /dev/null @@ -1,38 +0,0 @@ -c=[2, 4, 3, 0, ] -a=0 -x = [104, 101, 108, 108, 111] - -result = [ - 0x2c, - 0xf2, - 0x4d, - 0xba, - 0x5f, - 0xb0, - 0xa3, - 0x0e, - 0x26, - 0xe8, - 0x3b, - 0x2a, - 0xc5, - 0xb9, - 0xe2, - 0x9e, - 0x1b, - 0x16, - 0x1e, - 0x5c, - 0x1f, - 0xa7, - 0x42, - 0x5e, - 0x73, - 0x04, - 0x33, - 0x62, - 0x93, - 0x8b, - 0x98, - 0x24, -] diff --git a/test_programs/execution_success/conditional_regression_short_circuit/src/main.nr b/test_programs/execution_success/conditional_regression_short_circuit/src/main.nr deleted file mode 100644 index de5ad20a642..00000000000 --- a/test_programs/execution_success/conditional_regression_short_circuit/src/main.nr +++ /dev/null @@ -1,36 +0,0 @@ -fn main(a: u32, mut c: [u32; 4], x: [u8; 5], result: pub [u8; 32]) { - //regression for short-circuit2 - if 35 == a { - assert(false); - } - bar(a as Field); - - if a == 3 { - c = test4(); - } - assert(c[1] != 2); - call_intrinsic(x, result); -} - -fn foo() { - let mut x = 1; - x /= 0; -} - -fn bar(x: Field) { - if x == 15 { - foo(); - } -} - -fn call_intrinsic(x: [u8; 5], result: [u8; 32]) { - let mut digest = std::hash::sha256(x); - digest[0] = 5 as u8; - digest = std::hash::sha256(x); - assert(digest == result); -} - -fn test4() -> [u32; 4] { - let b: [u32; 4] = [1, 2, 3, 4]; - b -} diff --git a/test_programs/execution_success/conditional_regression_underflow/Nargo.toml b/test_programs/execution_success/conditional_regression_underflow/Nargo.toml deleted file mode 100644 index 75c4fb43b2f..00000000000 --- a/test_programs/execution_success/conditional_regression_underflow/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "conditional_regression_underflow" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/conditional_regression_underflow/Prover.toml b/test_programs/execution_success/conditional_regression_underflow/Prover.toml deleted file mode 100644 index ca65e8b9428..00000000000 --- a/test_programs/execution_success/conditional_regression_underflow/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "4" \ No newline at end of file diff --git a/test_programs/execution_success/conditional_regression_underflow/src/main.nr b/test_programs/execution_success/conditional_regression_underflow/src/main.nr deleted file mode 100644 index aaf3754a20f..00000000000 --- a/test_programs/execution_success/conditional_regression_underflow/src/main.nr +++ /dev/null @@ -1,15 +0,0 @@ -// Regression test for https://github.com/noir-lang/noir/issues/3493 -fn main(x: u8) { - if x == 10 { - x + 255; - } - if x == 9 { - x << 7; - } - if x == 128 { - x * 3; - } - if x == 7 { - x - 8; - } -} diff --git a/test_programs/execution_success/custom_entry/Nargo.toml b/test_programs/execution_success/custom_entry/Nargo.toml deleted file mode 100644 index 35cf2e080c1..00000000000 --- a/test_programs/execution_success/custom_entry/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "custom_entry" -type = "bin" -entry = "src/foobarbaz.nr" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/custom_entry/Prover.toml b/test_programs/execution_success/custom_entry/Prover.toml deleted file mode 100644 index 4dd6b405159..00000000000 --- a/test_programs/execution_success/custom_entry/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "1" diff --git a/test_programs/execution_success/custom_entry/src/foobarbaz.nr b/test_programs/execution_success/custom_entry/src/foobarbaz.nr deleted file mode 100644 index 00e94414c0b..00000000000 --- a/test_programs/execution_success/custom_entry/src/foobarbaz.nr +++ /dev/null @@ -1,3 +0,0 @@ -fn main(x: Field) { - assert(x == 1); -} diff --git a/test_programs/execution_success/databus/Nargo.toml b/test_programs/execution_success/databus/Nargo.toml deleted file mode 100644 index 72360f7aefe..00000000000 --- a/test_programs/execution_success/databus/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "databus" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/databus/Prover.toml b/test_programs/execution_success/databus/Prover.toml deleted file mode 100644 index 2d034508dd8..00000000000 --- a/test_programs/execution_success/databus/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "3" -y = "4" -z = [1,2,3,4] diff --git a/test_programs/execution_success/databus/src/main.nr b/test_programs/execution_success/databus/src/main.nr deleted file mode 100644 index ecc7794cf9e..00000000000 --- a/test_programs/execution_success/databus/src/main.nr +++ /dev/null @@ -1,12 +0,0 @@ -fn main(mut x: u32, y: call_data(0) u32, z: call_data(0) [u32; 4]) -> return_data u32 { - let a = z[x]; - unsafe { - a + foo(y) - } -} - -// Use an unconstrained function to force the compiler to avoid inlining -unconstrained fn foo(x: u32) -> u32 { - x + 1 -} - diff --git a/test_programs/execution_success/databus_composite_calldata/Nargo.toml b/test_programs/execution_success/databus_composite_calldata/Nargo.toml deleted file mode 100644 index 38c916e5d97..00000000000 --- a/test_programs/execution_success/databus_composite_calldata/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "databus_composite_calldata" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/databus_composite_calldata/Prover.toml b/test_programs/execution_success/databus_composite_calldata/Prover.toml deleted file mode 100644 index ab154c13372..00000000000 --- a/test_programs/execution_success/databus_composite_calldata/Prover.toml +++ /dev/null @@ -1,11 +0,0 @@ -zero = "0" -one = "1" -values = [[["12", "33"], ["37", "11"]],[["14", "37"], ["30", "10"]],[["10", "30"], ["30", "10"]]] - -[[foos]] -x = 1 -y = [1,2,3,4,5,6,7,8,9,0] - -[[foos]] -x = 2 -y = [1,2,3,5,6,8,7,8,9,0] \ No newline at end of file diff --git a/test_programs/execution_success/databus_composite_calldata/src/main.nr b/test_programs/execution_success/databus_composite_calldata/src/main.nr deleted file mode 100644 index e8b88e84d0d..00000000000 --- a/test_programs/execution_success/databus_composite_calldata/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -struct Foo { - x: u32, - y: [u32; 10], -} - -fn main( - foos: call_data(0) [Foo; 2], - values: call_data(0) [[[u32; 2]; 2]; 3], - zero: u32, - one: u32 -) -> pub u32 { - assert_eq(foos[zero].x + 1, foos[one].x); - assert_eq(foos[zero].y[3] + 2, foos[one].y[4]); - assert_eq(values[zero][one][zero], values[one][zero][one]); - foos[zero].x + foos[one].y[0] -} diff --git a/test_programs/execution_success/databus_in_fn_with_empty_arr/Nargo.toml b/test_programs/execution_success/databus_in_fn_with_empty_arr/Nargo.toml deleted file mode 100644 index 7c5caf7c771..00000000000 --- a/test_programs/execution_success/databus_in_fn_with_empty_arr/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "databus_in_fn_with_empty_arr" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/databus_in_fn_with_empty_arr/Prover.toml b/test_programs/execution_success/databus_in_fn_with_empty_arr/Prover.toml deleted file mode 100644 index e84e0dd7eec..00000000000 --- a/test_programs/execution_success/databus_in_fn_with_empty_arr/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -_empty = [] -value_1 = "1" -value_2 = "2" diff --git a/test_programs/execution_success/databus_in_fn_with_empty_arr/src/main.nr b/test_programs/execution_success/databus_in_fn_with_empty_arr/src/main.nr deleted file mode 100644 index 85671978a33..00000000000 --- a/test_programs/execution_success/databus_in_fn_with_empty_arr/src/main.nr +++ /dev/null @@ -1,3 +0,0 @@ -fn main(_empty: [u32; 0], value_1: u32, value_2: call_data(0) u32) { - assert_eq(value_1 + 1, value_2); -} diff --git a/test_programs/execution_success/databus_two_calldata/Nargo.toml b/test_programs/execution_success/databus_two_calldata/Nargo.toml deleted file mode 100644 index 15d4b01ac44..00000000000 --- a/test_programs/execution_success/databus_two_calldata/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "databus_two_calldata" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/databus_two_calldata/Prover.toml b/test_programs/execution_success/databus_two_calldata/Prover.toml deleted file mode 100644 index 1229857d3f5..00000000000 --- a/test_programs/execution_success/databus_two_calldata/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = [0,1,2,3] -y = [0,2,4] -z = [1,3,5,7] diff --git a/test_programs/execution_success/databus_two_calldata/src/main.nr b/test_programs/execution_success/databus_two_calldata/src/main.nr deleted file mode 100644 index 75df2a0953c..00000000000 --- a/test_programs/execution_success/databus_two_calldata/src/main.nr +++ /dev/null @@ -1,11 +0,0 @@ -// An simple program demonstrating two calldata array inputs and a single return data array. As an arbitrary example, -// the return data is computed as a linear combination of the calldata. -fn main(mut x: [u32; 4], y: call_data(0) [u32; 3], z: call_data(1) [u32; 4]) -> return_data [u32; 4] { - let mut result = [0; 4]; - for i in 0..3 { - let idx = x[i]; - result[idx] = y[idx] + z[idx]; - } - result[x[3]] = z[x[3]]; - result -} diff --git a/test_programs/execution_success/databus_two_calldata_simple/Nargo.toml b/test_programs/execution_success/databus_two_calldata_simple/Nargo.toml deleted file mode 100644 index 5104029c08e..00000000000 --- a/test_programs/execution_success/databus_two_calldata_simple/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "databus_two_calldata_simple" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/databus_two_calldata_simple/Prover.toml b/test_programs/execution_success/databus_two_calldata_simple/Prover.toml deleted file mode 100644 index 58257d1fe14..00000000000 --- a/test_programs/execution_success/databus_two_calldata_simple/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -idx = "1" -y = [7, 9] -z = [1,2,3,4] diff --git a/test_programs/execution_success/databus_two_calldata_simple/src/main.nr b/test_programs/execution_success/databus_two_calldata_simple/src/main.nr deleted file mode 100644 index 2477f0006c8..00000000000 --- a/test_programs/execution_success/databus_two_calldata_simple/src/main.nr +++ /dev/null @@ -1,5 +0,0 @@ -fn main(mut idx: u32, y: call_data(0) [u32; 2], z: call_data(1) [u32; 4]) -> return_data u32 { - let a = y[idx]; - let b = z[idx]; - a + b -} diff --git a/test_programs/execution_success/debug_logs/Nargo.toml b/test_programs/execution_success/debug_logs/Nargo.toml deleted file mode 100644 index 9550d50cf15..00000000000 --- a/test_programs/execution_success/debug_logs/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "debug_logs" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/debug_logs/Prover.toml b/test_programs/execution_success/debug_logs/Prover.toml deleted file mode 100644 index f28f2f8cc48..00000000000 --- a/test_programs/execution_success/debug_logs/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "5" -y = "10" diff --git a/test_programs/execution_success/debug_logs/src/main.nr b/test_programs/execution_success/debug_logs/src/main.nr deleted file mode 100644 index d1314406068..00000000000 --- a/test_programs/execution_success/debug_logs/src/main.nr +++ /dev/null @@ -1,137 +0,0 @@ -fn main(x: Field, y: pub Field) { - let string = "i: {i}, j: {j}"; - println(string); - - // TODO: fmtstr cannot be printed - // let fmt_str: fmtstr<14, (Field, Field)> = f"i: {x}, j: {y}"; - // let fmt_fmt_str = f"fmtstr: {fmt_str}, i: {x}"; - // println(fmt_fmt_str); - - // A `fmtstr` lets you easily perform string interpolation. - let fmt_str: fmtstr<14, (Field, Field)> = f"i: {x}, j: {y}"; - - let fmt_str = string_identity(fmt_str); - println(fmt_str); - - let fmt_str_no_type = f"i: {x}, j: {y}"; - println(fmt_str_no_type); - - let fmt_str_generic = string_with_generics(fmt_str_no_type); - println(fmt_str_generic); - - let s = myStruct { y: x, x: y }; - println(s); - - println(f"randomstring{x}{x}"); - - let fmt_str = string_with_partial_generics(f"i: {x}, s: {s}"); - println(fmt_str); - - println(x); - println([x, y]); - - let foo = fooStruct { my_struct: s, foo: 15 }; - println(f"s: {s}, foo: {foo}"); - - println(f"x: 0, y: 1"); - - let s_2 = myStruct { x: 20, y: 30 }; - println(f"s1: {s}, s2: {s_2}"); - - let bar = fooStruct { my_struct: s_2, foo: 20 }; - println(f"foo1: {foo}, foo2: {bar}"); - - let struct_string = if x != 5 { f"{foo}" } else { f"{bar}" }; - println(struct_string); - - let one_tuple = (1, 2, 3); - let another_tuple = (4, 5, 6); - println(f"one_tuple: {one_tuple}, another_tuple: {another_tuple}"); - println(one_tuple); - - let tuples_nested = (one_tuple, another_tuple); - println(f"tuples_nested: {tuples_nested}"); - println(tuples_nested); - - regression_2903(); - regression_2906(); - - let first_array = [1, 2, 3]; - let second_array = [4, 5, 6]; - let arrays_nested = [first_array, second_array]; - println(f"first_array: {first_array}, second_array: {second_array}"); - println(f"arrays_nested: {arrays_nested}"); - - let free_lambda = |x| x + 1; - let sentinel: u32 = 8888; - println(f"free_lambda: {free_lambda}, sentinel: {sentinel}"); - println(free_lambda); - - let one = 1; - let closured_lambda = |x| x + one; - println(f"closured_lambda: {closured_lambda}, sentinel: {sentinel}"); - println(closured_lambda); - - regression_4967(); -} - -fn string_identity(string: fmtstr<14, (Field, Field)>) -> fmtstr<14, (Field, Field)> { - string -} - -fn string_with_generics(string: fmtstr) -> fmtstr { - string -} - -fn string_with_partial_generics(string: fmtstr) -> fmtstr { - string -} - -struct myStruct { - y: Field, - x: Field, -} - -struct fooStruct { - my_struct: myStruct, - foo: Field, -} - -fn regression_2903() { - let v : [str<1>; 1] = ["1"; 1]; - println(v); // will print [1] - - let a = v[0]; - println(a); // will print `1` - - let bytes = ["aaa", "bbb", "ccc"]; - println(bytes); -} - -fn regression_2906() { - let array_two_vals = [1, 2]; - println(f"array_two_vals: {array_two_vals}"); - - let label_two_vals = "12"; - println(f"label_two_vals: {label_two_vals}"); - - let array_five_vals = [1, 2, 3, 4, 5]; - println(f"array_five_vals: {array_five_vals}"); - - let label_five_vals = "12345"; - println(f"label_five_vals: {label_five_vals}"); - - println(f"array_five_vals: {array_five_vals}, label_five_vals: {label_five_vals}"); -} - -fn regression_4967() { - let sentinel: u32 = 8888; - - let slice_of_tuples: [(i32, u8)] = &[(11, 22), (33, 44)]; - println(f"slice_of_tuples: {slice_of_tuples}, sentinel: {sentinel}"); - println(slice_of_tuples); - - let slice_of_tuples_coerced: [(i32, u8)] = [(11, 22), (33, 44)]; - println(f"slice_of_tuples: {slice_of_tuples_coerced}, sentinel: {sentinel}"); - println(slice_of_tuples_coerced); -} diff --git a/test_programs/execution_success/derive/Nargo.toml b/test_programs/execution_success/derive/Nargo.toml deleted file mode 100644 index f3846594305..00000000000 --- a/test_programs/execution_success/derive/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "derive" -type = "bin" -authors = [""] -compiler_version = ">=0.31.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/derive/src/main.nr b/test_programs/execution_success/derive/src/main.nr deleted file mode 100644 index f2f467eb761..00000000000 --- a/test_programs/execution_success/derive/src/main.nr +++ /dev/null @@ -1,76 +0,0 @@ -use std::hash::Hash; - -#[derive_via(derive_do_nothing)] -trait DoNothing { - fn do_nothing(self); -} - -#[derive(DoNothing)] -struct MyStruct { my_field: u32 } - -comptime fn derive_do_nothing(s: StructDefinition) -> Quoted { - let typ = s.as_type(); - let generics = s.generics().map(|g| quote { $g }).join(quote {,}); - quote { - impl<$generics> DoNothing for $typ { - fn do_nothing(_self: Self) { - // Traits can't tell us what to do - println("something"); - } - } - } -} - -// Test stdlib derive fns & multiple traits -// - We can derive Ord and Hash even though std::cmp::Ordering and std::hash::Hasher aren't imported -#[derive(Eq, Default, Hash, Ord)] -struct MyOtherStruct { - field1: A, - field2: B, - field3: MyOtherOtherStruct, -} - -#[derive(Eq, Default, Hash, Ord)] -struct MyOtherOtherStruct { - x: T, -} - -#[derive(Eq, Default, Hash, Ord)] -struct EmptyStruct { } - -fn main() { - let s = MyStruct { my_field: 1 }; - s.do_nothing(); - - let o: MyOtherStruct = MyOtherStruct::default(); - assert_eq(o, o); - - let o: MyOtherStruct]> = MyOtherStruct::default(); - assert_eq(o, o); - - // Field & str<2> above don't implement Ord - let o1 = MyOtherStruct { field1: 12 as u32, field2: 24 as i8, field3: MyOtherOtherStruct { x: 54 as i8 } }; - let o2 = MyOtherStruct { field1: 12 as u32, field2: 24 as i8, field3: MyOtherOtherStruct { x: 55 as i8 } }; - assert(o1 < o2); - - let mut hasher = TestHasher { result: 0 }; - o1.hash(&mut hasher); - assert_eq(hasher.finish(), 12 + 24 + 54); - - let empty = EmptyStruct {}; - assert_eq(empty, empty); -} - -struct TestHasher { - result: Field, -} - -impl std::hash::Hasher for TestHasher { - fn finish(self) -> Field { - self.result - } - - fn write(&mut self, input: Field) { - self.result += input; - } -} diff --git a/test_programs/execution_success/diamond_deps_0/Nargo.toml b/test_programs/execution_success/diamond_deps_0/Nargo.toml deleted file mode 100644 index 8b75d71ae12..00000000000 --- a/test_programs/execution_success/diamond_deps_0/Nargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "diamond_deps_0" -type = "bin" -authors = [""] - -[dependencies] -dep1 = { path = "../../test_libraries/diamond_deps_1" } -dep2 = { path = "../../test_libraries/diamond_deps_2" } diff --git a/test_programs/execution_success/diamond_deps_0/Prover.toml b/test_programs/execution_success/diamond_deps_0/Prover.toml deleted file mode 100644 index a713241e7dd..00000000000 --- a/test_programs/execution_success/diamond_deps_0/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = 1 -y = 1 -return = 5 \ No newline at end of file diff --git a/test_programs/execution_success/diamond_deps_0/src/main.nr b/test_programs/execution_success/diamond_deps_0/src/main.nr deleted file mode 100644 index 690d6fc9fc8..00000000000 --- a/test_programs/execution_success/diamond_deps_0/src/main.nr +++ /dev/null @@ -1,7 +0,0 @@ -use dep1::call_dep1_then_dep2; -use dep2::call_dep2; -use dep2::RESOLVE_THIS; - -fn main(x: Field, y: pub Field) -> pub Field { - call_dep1_then_dep2(x, y) + call_dep2(x, y) + RESOLVE_THIS -} diff --git a/test_programs/execution_success/double_verify_honk_proof/Nargo.toml b/test_programs/execution_success/double_verify_honk_proof/Nargo.toml deleted file mode 100644 index 5f819990c72..00000000000 --- a/test_programs/execution_success/double_verify_honk_proof/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "double_verify_honk_proof" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/double_verify_honk_proof/Prover.toml b/test_programs/execution_success/double_verify_honk_proof/Prover.toml deleted file mode 100644 index f8e7ba41a18..00000000000 --- a/test_programs/execution_success/double_verify_honk_proof/Prover.toml +++ /dev/null @@ -1,5 +0,0 @@ -key_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" -proof = ["0x0000000000000000000000000000000000000000000000000000000000000040", "0x0000000000000000000000000000000000000000000000000000000000000011", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000042ab5d6d1986846cf", "0x00000000000000000000000000000000000000000000000b75c020998797da78", "0x0000000000000000000000000000000000000000000000005a107acb64952eca", "0x000000000000000000000000000000000000000000000000000031e97a575e9d", "0x00000000000000000000000000000000000000000000000b5666547acf8bd5a4", "0x00000000000000000000000000000000000000000000000c410db10a01750aeb", "0x00000000000000000000000000000000000000000000000d722669117f9758a4", "0x000000000000000000000000000000000000000000000000000178cbf4206471", "0x000000000000000000000000000000000000000000000000e91b8a11e7842c38", "0x000000000000000000000000000000000000000000000007fd51009034b3357f", "0x000000000000000000000000000000000000000000000009889939f81e9c7402", "0x0000000000000000000000000000000000000000000000000000f94656a2ca48", "0x000000000000000000000000000000000000000000000006fb128b46c1ddb67f", "0x0000000000000000000000000000000000000000000000093fe27776f50224bd", "0x000000000000000000000000000000000000000000000004a0c80c0da527a081", "0x0000000000000000000000000000000000000000000000000001b52c2020d746", "0x0000000000000000000000000000005a9bae947e1e91af9e4033d8d6aa6ed632", "0x000000000000000000000000000000000025e485e013446d4ac7981c88ba6ecc", "0x000000000000000000000000000000ff1e0496e30ab24a63b32b2d1120b76e62", "0x00000000000000000000000000000000001afe0a8a685d7cd85d1010e55d9d7c", "0x000000000000000000000000000000b0804efd6573805f991458295f510a2004", "0x00000000000000000000000000000000000c81a178016e2fe18605022d5a8b0e", "0x000000000000000000000000000000eba51e76eb1cfff60a53a0092a3c3dea47", "0x000000000000000000000000000000000022e7466247b533282f5936ac4e6c15", "0x00000000000000000000000000000071b1d76edf770edff98f00ff4deec264cd", "0x00000000000000000000000000000000001e48128e68794d8861fcbb2986a383", "0x000000000000000000000000000000d3a2af4915ae6d86b097adc377fafda2d4", "0x000000000000000000000000000000000006359de9ca452dab3a4f1f8d9c9d98", "0x0000000000000000000000000000006cf7dd96d7636fda5953191b1ad776d491", "0x00000000000000000000000000000000001633d881a08d136e834cb13a28fcc6", "0x00000000000000000000000000000001254956cff6908b069fca0e6cf1c47eb1", "0x000000000000000000000000000000000006f4d4dd3890e997e75e75886bf8f7", "0x0000000000000000000000000000006cf7dd96d7636fda5953191b1ad776d491", "0x00000000000000000000000000000000001633d881a08d136e834cb13a28fcc6", "0x00000000000000000000000000000001254956cff6908b069fca0e6cf1c47eb1", "0x000000000000000000000000000000000006f4d4dd3890e997e75e75886bf8f7", "0x000000000000000000000000000000f968b227a358a305607f3efc933823d288", "0x00000000000000000000000000000000000eaf8adb390375a76d95e918b65e08", "0x000000000000000000000000000000bb34b4b447aae56f5e24f81c3acd6d547f", "0x00000000000000000000000000000000002175d012746260ebcfe339a91a81e1", "0x00000000000000000000000000000052eebbd1f6f7554e837f60c44000ed14b6", "0x00000000000000000000000000000000001c1c045a3ec94b8801f2272cc0b3f4", "0x0000000000000000000000000000004d2ef74134578f6b431a9df071ffca4292", "0x0000000000000000000000000000000000291326ade7aa6f0dfc8900eab5580b", "0x0000000000000000000000000000002433eec6418a6dba820c9527e2581fc8bc", "0x00000000000000000000000000000000000e88b7daad19af2ac2f9bdf9e50ee2", "0x000000000000000000000000000000dcfce2c427155cc3e4d035735d3dd5ece8", "0x00000000000000000000000000000000002d7d473cac1a15d0fee8b22c1a7b3e", "0x1a4249b90be4602c8ff40c7c276160ee41b2a0f8a238ce7706e9face2db03d48", "0x162204b9d54d3ffd285c393a5a1ff76ee681474fd780a21a3cf7fac5c24fc2b9", "0x30279eb953d8ee79b2155c69c04e6443c5de6bf7e02886256dd7b3cd3c9502a4", "0x0d32c1bd21baf43e72d5d82d461ef54833807ff81a877adc822f27a6db88d754", "0x0fe15e055c0803d5ebe6dd77689b70cfd82138f008810ce24535c992daaff27d", "0x1fba82c012671212ce2fc13fd09bf8fba4f7d5875ab8d37495d1ccfcff287331", "0x090738a5842fa4d2699b3726aa0dd97cb59569b4be2c6825335ec4969f859dc2", "0x0c6cb72dabbc28abcf4a50c203534e066c29f48c24ca64d672092f263df3f9d7", "0x0f27fbea0d9145f815c288b50fe7e8c10b8185d325b5264624fd57102855d05d", "0x2a815cd3fd1c43c72ee0130465250ff771d1e7be2347e4ada331b83265a03450", "0x148b4ecf2ad7ed17409417086867ee27bc1b0906dbc9cbb3714c285071e2db70", "0x08e700a42b1d6d36ee65f8ebedf47d3a44463ff9fa579dce13b7492e20142c3a", "0x2e23c69521d572ff2152c50f8c9a9191535f4cf37f95f1e0428692e78842b642", "0x14519e0354365923fb41400c19866135b45e975d56a0980260bc99f0390b1d5f", "0x04caded1f05738f736cb5bcf08d785e395e58eb7738523a20638aa16bc51593e", "0x28787eaccd38383215ea21ec02895c32d979f68ca155f534a2e2d377bff6698b", "0x20a1b81fa96c58cf11c5762c5ceb731efdcb081fca2d34d5c463d2cf40e6da18", "0x11789a06fe3bf53833741d180f068d29534d5bb58a5c64b8119542e62b189fb4", "0x23d00fcd032ace719ffcbc513bfa177a55b04377d76455c2788d999d05d011e2", "0x01f0e81b57b4a73cc118e51ede18f8724debf25c2d109db6ef45280f99f1a3fa", "0x156d1c9b61749810de728f259c2c1c1fd4dbff97101426e26087ca461c93307c", "0x1c5d619ac3a478cfd06d5eebfd879960bb321236be173813f5e78d1366d32c69", "0x250cfae4e1dfc551406f1f3d10b649a637dcb7bcb0f6f697994cf96afd35d0c1", "0x242b999f58cf5f53c874d1092bd38725aa9ea076f5bc8f176efa9ea23393874b", "0x2e15748255c4a5e0e9fe38047341b692a967257de27a85a3a38681bc9f1602ea", "0x01ef83886ea7017253699cb6371988eb8e21b4f7023d7479ece4907fe6d4a6fd", "0x08db2dbc271e375b9312f695c59c48f313235b3432cad50921c8d9ad6dd7ad7a", "0x199309f2c2cd45c15a4abb0e6554a1615ff5a6e9488a8d900bbf835fc8f664ef", "0x074be7a3d88e31ab1b59c9208c012bcfb1f85f351c709e68134996891db52b57", "0x301b1011354d2ebf46134fc4d6d734bb6ed8542d719f38f5e09a376a580cad7f", "0x12968f3eccaa27e44f14d5aaac6ecb70c00d040e07536292e685d7cab03fc563", "0x2110a023c8c22fd2ed70270a2d0a265b92a32ce2217ffe1be9a5d7d5c25f512f", "0x1e8cf4c60c53900f0430d5b44de5804fe8b38299bc803beeb4216e1a289cf624", "0x12301cb908ccb28a2616e29b831ec7105b5d3ebf45ff5fe91d50a9dd53a50b52", "0x0f1029ed107d84ff2d6d4a416cbd01da3f3d7bf5b2209ce93ba424f4b85616fc", "0x1b431d016611b8abd684afd9e92331c3325967b1116bfa91d4f44e2f8e2c9fc2", "0x281e335a0fd117064c8ace3f01e02b134a19e9b9220571ebfaaaa0e3a12d34db", "0x22559c106f77e2ae95677d5e38e288343e3b7168371aec7d3aaab9ef8150af70", "0x13f113b1d9b590149cf08c3f6e90589cda5c7b98528866b891256cb9d5d814e7", "0x10252ef388e4c80246962e98b9e976fab2cd25e1e6f1e3fd2a7d4786c5218a97", "0x16b890723dfdebd9912a9207255f95cb800222165b6fae97ec46e461f23e83f3", "0x25caf77c7d2e8e069341ec90f3c8f6d64319cfd2d77cab0625cf0377285ba11c", "0x016c84288b0bc3c50eebbe250cdd5a4ee50b2c65a24ac64d0c930cbdecb95141", "0x20a537c045b069d47dc6315f45b391f60681222381e5059ec7c8b17bf677d911", "0x2594c0edfcd4064d215a3d797bc8e3b2f401c61f3961ae96ccbec8f8fd29e81f", "0x1c831d7047483ca00ed59bdb84c47ffb8bbebbae92aa164c7b35fcffbb8a35d3", "0x2ea7f60de52b8cd6b0bd06f861fc1f2c5ed1d1fbfa53caccdb836400a03df434", "0x275c6c8bd115f7d2ce196439e2330fad305c6745bab0bf1ce3f2fa32dadc3c43", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x2b3f4e210619347288731e7f0eea1ae60dd8696fe87319044864d099a03a9536", "0x0fecd3d2aebedeb8be2b0b7e3a74de9ec8bd2cb72851541463729e0715aef48b", "0x10bee385ad0c2cd3ff88ef4d630840749e4367f9add4a300fc4f545a7778e92c", "0x1fe792730eeafbd22c4eb80e86e2b40108b1e55b2a08db786289eea5745b9e3b", "0x04d411679da432816b213cd5580dda1fd6c2f258684c036be19b5b26baca583c", "0x159f17b655d2b8a803e0cfb564918628be52d3baa950ca1b127854491624f8f4", "0x225340463867d9252a1269013536e2e1dd219aa18eadef13c324b63d44679334", "0x1885e231554e02abb40ed54b72ebf09b883d0298a6bc06fc645a30365f370ef2", "0x233344517f25170972b8ba35d01f2df2e073d322993abce7df26796126e93498", "0x08990e8faa13b18b4433ec417c5cc596885e11ffd372d5f612c08cc79a5d5c80", "0x1e960a0c892b755c28e21dcbed816c1b182d7da43bae07f8ee622bd4485f79e7", "0x27b58e2ee290a179d349ace82752528b2ff946d60c092b99ef42f53c25d0c99f", "0x2a5cf8a3193107d982edd253002c7a52ab876b445dde8307ab78fbdca022d93c", "0x2b1ab4d5277f8c82750c1c7bd043889b71465ec64a9afc1bfa37d06b1ebd0725", "0x2a0dbf5c4373a58a83d5f2a031ea0615bf12800e33b70c3191a7cbb15966ced8", "0x1f272bb4a19d14a0abdfebc9fc83125e10623b9aef730f8d25f2bf5bead38ea9", "0x2c2339cf0ae7aff56091a568c1e2c3f01f52d8ed13400737fd31eaabcaffb9bd", "0x21f5fefe6b5fa0b5da71089befb74a1a39e52b4f830cb330c3c284e154614dfd", "0x1e6f6ba4b2444586b380dc4e2b3fad111ff1f4754420a846f53ea0789ebfb0ad", "0x1193d170b0b2dd0c4a04331a4b4aa3f12920f182ec3ab547837e30f1116ca584", "0x00000000000000000000000000000025704a15c9e2ce8a69558e7bbcdcbc7784", "0x2e5d36112770fb6c985681cafe40a8c99ad13f702309e7969801dd0ed080e727", "0x0eefc2585f591bb457183134e19ad643966272234d645514bf7868d6dd8ae2cb", "0x300803e4e2339ad39b9c31f228949bbeaf9c74b7101e7be1930b088126247eaa", "0x2bb562a50ed944b438b83b01f200101a34faef7f296a75c84c731755ebddbc1a", "0x1288e0b9c742af39cbcac21357c1b29511b0bbdd3d0e3cf5e14b2eef68a28ab3", "0x20f089131cc96d86ff1cfb67fa3f51670f4bad30158751b2587354bbec76cdf9", "0x1a26c6d3e633f9bf8434cf755b5f1217dad0d455071a97a7bcf85b824f5cf07a", "0x0d7e9b8a51fccf910ec25bdbd13e70b34bd6ea6f4d629fa744f9cdf5f2beb1cf", "0x0b40f28ce428e64df9cf5a024133fc420f39decf5f6af020cc3211ab298d4631", "0x0ca4f189dde7a55fe829f46681232904f6670249a22e0deb47222bd309523a8a", "0x2c544f2e31143783977645edb2a6bdb39b875053963bfa1a5b3ae9de204a7ebe", "0x00aae4454eb48fb18ff60db6b9d015abea2e770a2f7d86d121522b834c791ba5", "0x07d74e351fd4cccf4e18475d25211efa8a359066fc693a5c8505ddb507e4b74b", "0x07d74e351fd4cccf4e18475d25211efa8a359066fc693a5c8505ddb507e4b74b", "0x2d9e5bff47207d82533e2445959941181cc890c5779bc7f24d6e8a7b9e425b5c", "0x0aea3c0c317c441a5775a9849108d7a6889b39128235f717b09b184aa08e4eb7", "0x1ca5bc6fb37c55a562f4991901c39902f42d14db71284116df74cb4e7d55e493", "0x220fed26d64cd69f40e6d145a423e4a3c8cd0dce747e7d51647441270ad4d774", "0x15be574c9358889257aa2a30ff7b5fcc31a57da7032296e2c1201c49a44bbdb6", "0x2de539925525bedd3b7f43a9c6bf0f713151a17f79ac7ff4a9cd27b15ffe892a", "0x083086693dbf465211741e2cbff70ff38eb08383faf22d397eb2742c8ad7396a", "0x1fdfa258a890598816e807c50058d7a1462edd5ff196a2eae0f862e454b49aa1", "0x10c434c6daaa8226fa8e3e302123dfdc4455cf68063df518949df5a65a945213", "0x0000000000000000000000000000006472a7874de2c454a4591ed7784df1c104", "0x000000000000000000000000000000000008c46ac53d2c4ad0c26a5d6c790082", "0x0000000000000000000000000000005e422f9cfb8725800de60dfe0a8d4104c0", "0x000000000000000000000000000000000000f10fd4e4de81a0c00073ec91c274", "0x000000000000000000000000000000b20813090eca76bc6aa4a699b1ec8d5d6d", "0x0000000000000000000000000000000000292cc9f8a744eb00e0903c29ce87a7", "0x000000000000000000000000000000350a368b415fbb99fa90a26a42b1a3affd", "0x0000000000000000000000000000000000280eb9275cb05a3435f464d1dc369d", "0x000000000000000000000000000000280df6505e20c7725fe6d29439f96ee05d", "0x000000000000000000000000000000000017ef5033a08535451e2747827aa94b", "0x0000000000000000000000000000002f9ba89ae91b4e4a4ff8ccbd0526faad2f", "0x00000000000000000000000000000000001c2013561dafcc02cb03220bdf23c4", "0x000000000000000000000000000000aac102c400f9e5da0321ded4510994434b", "0x00000000000000000000000000000000001ec8ab9cc834b492fde124962f04a1", "0x0000000000000000000000000000000673dbd698da8b8cce450d2a083aba9987", "0x00000000000000000000000000000000000a49e55bb040249cb41c63cea901cd", "0x000000000000000000000000000000133d92af8d76ee0c74a12081ee7b2ef8c4", "0x0000000000000000000000000000000000240f552d1c6cbb007650e4b142e0a5", "0x000000000000000000000000000000e29c6e7d982ec08d51c79d6261c28d742d", "0x000000000000000000000000000000000021baeec04d9be419c923626034e7b3", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x1e940a528b42d8230e7d4dff76262a80986c0d00b2c02a9bc0559e36212d1547", "0x1ceccf21ac39f70d76ad6f7fe0dcb33b6af04555a0b1959e4714d65925e4e253", "0x096139d757046cdbdb7ee89a95f112f70882a43a46c2f739d9be115dda013420", "0x2f9c8ac67c7825b08eff0e7f7656a671f4c64e5601f2efab35b1b795801eec04", "0x2077e648e1704851cdffd7e6e56311634a7b741bab77ca34d9dff12a6a2bfe99", "0x115d48c4a97aeb3c447a060f9e0d675b0dc7f4a05a3f5776e2f279f3a165d7dc", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x000000000000000000000000000000fd38c45c3ec5b841482a80e3a56ce82555", "0x00000000000000000000000000000000000ad70b03f092f60af3e0ce1bb29d2c", "0x0000000000000000000000000000007a184d5342c90c634c0b1a050f0b97c9fb", "0x0000000000000000000000000000000000271f42abcb3bc1f0332e4b3ca85e1d", "0x0000000000000000000000000000008256322bbe2c1b8cd9d84e5ff6123477f2", "0x000000000000000000000000000000000025cab962761681dd9547f4c78814df", "0x0000000000000000000000000000008c4234510e5825c02b9ac427bcbf8e279a", "0x000000000000000000000000000000000013a14e0d7fc073c44643af38cc5396"] -public_inputs = ["0x0000000000000000000000000000000000000000000000000000000000000003"] -verification_key = ["0x0000000000000000000000000000000000000000000000000000000000000040", "0x0000000000000000000000000000000000000000000000000000000000000011", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000003", "0x0000000000000000000000000000000000000000000000000000000000000004", "0x0000000000000000000000000000000000000000000000000000000000000005", "0x0000000000000000000000000000000000000000000000000000000000000006", "0x0000000000000000000000000000000000000000000000000000000000000007", "0x0000000000000000000000000000000000000000000000000000000000000008", "0x0000000000000000000000000000000000000000000000000000000000000009", "0x000000000000000000000000000000000000000000000000000000000000000a", "0x000000000000000000000000000000000000000000000000000000000000000b", "0x000000000000000000000000000000000000000000000000000000000000000c", "0x000000000000000000000000000000000000000000000000000000000000000d", "0x000000000000000000000000000000000000000000000000000000000000000e", "0x000000000000000000000000000000000000000000000000000000000000000f", "0x0000000000000000000000000000000000000000000000000000000000000010", "0x00000000000000000000000000000060e430ad1c23bfcf3514323aae3f206e84", "0x00000000000000000000000000000000001b5c3ff4c2458d8f481b1c068f27ae", "0x000000000000000000000000000000bb510ab2112def34980e4fc6998ad9dd16", "0x00000000000000000000000000000000000576e7c105b43e061e13cb877fefe1", "0x000000000000000000000000000000ced074785d11857b065d8199e6669a601c", "0x00000000000000000000000000000000000053b48a4098c1c0ae268f273952f7", "0x000000000000000000000000000000d1d4b26e941db8168cee8f6de548ae0fd8", "0x00000000000000000000000000000000001a9adf5a6dadc3d948bb61dfd63f4c", "0x0000000000000000000000000000009ce1faac6f8de6ebb18f1db17372c82ad5", "0x00000000000000000000000000000000002002681bb417184b2df070a16a3858", "0x000000000000000000000000000000161baa651a8092e0e84725594de5aba511", "0x00000000000000000000000000000000000be0064399c2a1efff9eb0cdcb2223", "0x0000000000000000000000000000008673be6fd1bdbe980a29d8c1ded54381e7", "0x000000000000000000000000000000000008a5158a7d9648cf1d234524c9fa0c", "0x0000000000000000000000000000002b4fce6e4b1c72062b296d49bca2aa4130", "0x00000000000000000000000000000000002e45a9eff4b6769e55fb710cded44f", "0x00000000000000000000000000000072b85bf733758b76bcf97333efb85a23e3", "0x000000000000000000000000000000000017da0ea508994fc82862715e4b5592", "0x00000000000000000000000000000094fa74695cf058dba8ff35aec95456c6c3", "0x0000000000000000000000000000000000211acddb851061c24b8f159e832bd1", "0x000000000000000000000000000000303b5e5c531384b9a792e11702ad3bcab0", "0x00000000000000000000000000000000000d336dff51a60b8833d5d7f6d4314c", "0x0000000000000000000000000000009f825dde88092070747180d581c342444a", "0x0000000000000000000000000000000000237fbd6511a03cca8cac01b555fe01", "0x0000000000000000000000000000007c313205159495df6d8de292079a4844ff", "0x000000000000000000000000000000000018facdfc468530dd45e8f7a1d38ce9", "0x0000000000000000000000000000000d1ce33446fc3dc4ab40ca38d92dac74e1", "0x00000000000000000000000000000000000852d8e3e0e8f4435af3e94222688b", "0x0000000000000000000000000000006c04ee19ec1dfec87ed47d6d04aa158de2", "0x000000000000000000000000000000000013240f97a584b45184c8ec31319b5f", "0x000000000000000000000000000000cefb5d240b07ceb4be26ea429b6dc9d9e0", "0x00000000000000000000000000000000002dad22022121d689f57fb38ca21349", "0x000000000000000000000000000000c9f189f2a91aeb664ce376d8b157ba98f8", "0x00000000000000000000000000000000002531a51ad54f124d58094b219818d2", "0x000000000000000000000000000000ef1e6db71809307f677677e62b4163f556", "0x0000000000000000000000000000000000272da4396fb2a7ee0638b9140e523d", "0x0000000000000000000000000000002e54c0244a7732c87bc4712a76dd8c83fb", "0x000000000000000000000000000000000007db77b3e04b7eba9643da57cbbe4d", "0x000000000000000000000000000000e0dfe1ddd7f74ae0d636c910c3e85830d8", "0x00000000000000000000000000000000000466fa9b57ec4664abd1505b490862", "0x0000000000000000000000000000009ee55ae8a32fe5384c79907067cc27192e", "0x00000000000000000000000000000000000799d0e465cec07ecb5238c854e830", "0x0000000000000000000000000000001d5910ad361e76e1c241247a823733c39f", "0x00000000000000000000000000000000002b03f2ccf7507564da2e6678bef8fe", "0x000000000000000000000000000000ee40d90bea71fba7a412dd61fcf34e8ceb", "0x0000000000000000000000000000000000140b0936c323fd2471155617b6af56", "0x0000000000000000000000000000002b90071823185c5ff8e440fd3d73b6fefc", "0x00000000000000000000000000000000002b6c10790a5f6631c87d652e059df4", "0x00000000000000000000000000000029a17181c7934fc3fdbd352eac5cb521b9", "0x00000000000000000000000000000000001f497cbf5284ff29a2d336e5991999", "0x000000000000000000000000000000072bd9c0c6beda1fdee6d4ff0432ba9e1b", "0x000000000000000000000000000000000013ea38a0bd2aa751a490a724fac818", "0x000000000000000000000000000000c599f63dcd3edd49f08ae5c3141c1e3493", "0x00000000000000000000000000000000002bdb36be0bea09950dd32a8ccf6fbc", "0x00000000000000000000000000000047f27f29724e7f19eba0340256a0bd4b7d", "0x00000000000000000000000000000000001c1c5ccf87a962129ca785f8f35120", "0x000000000000000000000000000000c5c71efdae00679bbe4a95096e012b1817", "0x000000000000000000000000000000000017a365de041e317817d0135f2b48e0", "0x0000000000000000000000000000008ae711ac402f7848d719c93a89ba8d39f1", "0x00000000000000000000000000000000002b6fb40ed8a1935226f4f9786a0499", "0x0000000000000000000000000000002f03a71501d83de1da5715a4e9462d6198", "0x00000000000000000000000000000000001644064443b8546f48eae693af47b8", "0x00000000000000000000000000000083763ab1b6e8fe269b2fe4c7b9c448c08d", "0x000000000000000000000000000000000021d7cc18c59676a8eeb47c0111c251", "0x000000000000000000000000000000b5f937153073e03ea7d51a996e0ebc2e6b", "0x000000000000000000000000000000000011ddd0e26457373eb06e0493177672", "0x000000000000000000000000000000c5f6eb9f6fc8fa99811a4a88c74a6d018b", "0x000000000000000000000000000000000025bcd07a0732c123567834f5109558", "0x000000000000000000000000000000aeb08a0b1a4442189448b4e97490568146", "0x000000000000000000000000000000000002a1744e4771705536a88f07e0f90f", "0x000000000000000000000000000000b938568293bd0724b0ea76c2ec34c4a829", "0x0000000000000000000000000000000000053296e8f3b9ad3af877dfa9c7c2a7", "0x000000000000000000000000000000f0ca1db6323996eba26bdc86dafef9d10b", "0x00000000000000000000000000000000001441a46c58af03d5645d52721d956a", "0x0000000000000000000000000000008bbf8f884013c66c28ba09c2fbd573b656", "0x0000000000000000000000000000000000206c391ca06fac27d1908e94570243", "0x0000000000000000000000000000002d4f5aaed88ba4f79612d53b804ca8f194", "0x00000000000000000000000000000000001674011c96392df08970fa6b7b4cb8", "0x0000000000000000000000000000009f88297c1729d76c4d9306853598c91325", "0x0000000000000000000000000000000000256f51adfcacc3c1e340be4d32d3e9", "0x0000000000000000000000000000000ab9955eec0d74eb799afed2a802b24d75", "0x00000000000000000000000000000000001fcbe43ea105b30d36ed0b21b03411", "0x000000000000000000000000000000d66b1d5433f1aa5305cd1edce7c22de466", "0x00000000000000000000000000000000002331546a256b8a3b751956806680d4", "0x000000000000000000000000000000e97954ad6cd6f45fb15c91434121db4304", "0x00000000000000000000000000000000002e20a97e09d50f227ced47e7a98250", "0x0000000000000000000000000000001ebbc27eb9ebededefba79522eb58ae89b", "0x0000000000000000000000000000000000090efa4974e566e81d1177b85a30be", "0x0000000000000000000000000000005eafa070b9c9632404052642e3bc14f9fd", "0x00000000000000000000000000000000001489068864102daca6a6b8bc4d448b", "0x0000000000000000000000000000009ebc91aaaac036a6477cadbe54e8556dfd", "0x00000000000000000000000000000000000ef6d835e2ed3343b95c82c8c54037", "0x00000000000000000000000000000033b28b529dff46e93af4e7422530478e4a", "0x000000000000000000000000000000000020a86c2f8591bf190bcddcc03c42fb", "0x000000000000000000000000000000a9679d0acc088f7dc27bf6d866bcd2dda2", "0x00000000000000000000000000000000002fb9d0d2d4099402bed74f738f64cc", "0x00000000000000000000000000000023b09f876a29a061582848a8b9a5870c12", "0x00000000000000000000000000000000001d5bb906f03f0d49e9c4791bc43af9", "0x00000000000000000000000000000017aac9854ea240d8ec97bf760c4d4ba870", "0x00000000000000000000000000000000000b227a556c414ada0dc75bb303e30e", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000009b624fa65d1a24b7f14a8f25f3789622af", "0x000000000000000000000000000000000013d47bff8c630e847b70e2732fd3f0", "0x00000000000000000000000000000061d21663e93132f32921075f4c936a84df", "0x00000000000000000000000000000000001a74ca4e118fb480b9b999902989a3"] -proof_b = ["0x0000000000000000000000000000000000000000000000000000000000000040", "0x0000000000000000000000000000000000000000000000000000000000000011", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000042ab5d6d1986846cf", "0x00000000000000000000000000000000000000000000000b75c020998797da78", "0x0000000000000000000000000000000000000000000000005a107acb64952eca", "0x000000000000000000000000000000000000000000000000000031e97a575e9d", "0x00000000000000000000000000000000000000000000000b5666547acf8bd5a4", "0x00000000000000000000000000000000000000000000000c410db10a01750aeb", "0x00000000000000000000000000000000000000000000000d722669117f9758a4", "0x000000000000000000000000000000000000000000000000000178cbf4206471", "0x000000000000000000000000000000000000000000000000e91b8a11e7842c38", "0x000000000000000000000000000000000000000000000007fd51009034b3357f", "0x000000000000000000000000000000000000000000000009889939f81e9c7402", "0x0000000000000000000000000000000000000000000000000000f94656a2ca48", "0x000000000000000000000000000000000000000000000006fb128b46c1ddb67f", "0x0000000000000000000000000000000000000000000000093fe27776f50224bd", "0x000000000000000000000000000000000000000000000004a0c80c0da527a081", "0x0000000000000000000000000000000000000000000000000001b52c2020d746", "0x0000000000000000000000000000005a9bae947e1e91af9e4033d8d6aa6ed632", "0x000000000000000000000000000000000025e485e013446d4ac7981c88ba6ecc", "0x000000000000000000000000000000ff1e0496e30ab24a63b32b2d1120b76e62", "0x00000000000000000000000000000000001afe0a8a685d7cd85d1010e55d9d7c", "0x000000000000000000000000000000b0804efd6573805f991458295f510a2004", "0x00000000000000000000000000000000000c81a178016e2fe18605022d5a8b0e", "0x000000000000000000000000000000eba51e76eb1cfff60a53a0092a3c3dea47", "0x000000000000000000000000000000000022e7466247b533282f5936ac4e6c15", "0x00000000000000000000000000000071b1d76edf770edff98f00ff4deec264cd", "0x00000000000000000000000000000000001e48128e68794d8861fcbb2986a383", "0x000000000000000000000000000000d3a2af4915ae6d86b097adc377fafda2d4", "0x000000000000000000000000000000000006359de9ca452dab3a4f1f8d9c9d98", "0x0000000000000000000000000000006cf7dd96d7636fda5953191b1ad776d491", "0x00000000000000000000000000000000001633d881a08d136e834cb13a28fcc6", "0x00000000000000000000000000000001254956cff6908b069fca0e6cf1c47eb1", "0x000000000000000000000000000000000006f4d4dd3890e997e75e75886bf8f7", "0x0000000000000000000000000000006cf7dd96d7636fda5953191b1ad776d491", "0x00000000000000000000000000000000001633d881a08d136e834cb13a28fcc6", "0x00000000000000000000000000000001254956cff6908b069fca0e6cf1c47eb1", "0x000000000000000000000000000000000006f4d4dd3890e997e75e75886bf8f7", "0x000000000000000000000000000000f968b227a358a305607f3efc933823d288", "0x00000000000000000000000000000000000eaf8adb390375a76d95e918b65e08", "0x000000000000000000000000000000bb34b4b447aae56f5e24f81c3acd6d547f", "0x00000000000000000000000000000000002175d012746260ebcfe339a91a81e1", "0x00000000000000000000000000000052eebbd1f6f7554e837f60c44000ed14b6", "0x00000000000000000000000000000000001c1c045a3ec94b8801f2272cc0b3f4", "0x0000000000000000000000000000004d2ef74134578f6b431a9df071ffca4292", "0x0000000000000000000000000000000000291326ade7aa6f0dfc8900eab5580b", "0x0000000000000000000000000000002433eec6418a6dba820c9527e2581fc8bc", "0x00000000000000000000000000000000000e88b7daad19af2ac2f9bdf9e50ee2", "0x000000000000000000000000000000dcfce2c427155cc3e4d035735d3dd5ece8", "0x00000000000000000000000000000000002d7d473cac1a15d0fee8b22c1a7b3e", "0x1a4249b90be4602c8ff40c7c276160ee41b2a0f8a238ce7706e9face2db03d48", "0x162204b9d54d3ffd285c393a5a1ff76ee681474fd780a21a3cf7fac5c24fc2b9", "0x30279eb953d8ee79b2155c69c04e6443c5de6bf7e02886256dd7b3cd3c9502a4", "0x0d32c1bd21baf43e72d5d82d461ef54833807ff81a877adc822f27a6db88d754", "0x0fe15e055c0803d5ebe6dd77689b70cfd82138f008810ce24535c992daaff27d", "0x1fba82c012671212ce2fc13fd09bf8fba4f7d5875ab8d37495d1ccfcff287331", "0x090738a5842fa4d2699b3726aa0dd97cb59569b4be2c6825335ec4969f859dc2", "0x0c6cb72dabbc28abcf4a50c203534e066c29f48c24ca64d672092f263df3f9d7", "0x0f27fbea0d9145f815c288b50fe7e8c10b8185d325b5264624fd57102855d05d", "0x2a815cd3fd1c43c72ee0130465250ff771d1e7be2347e4ada331b83265a03450", "0x148b4ecf2ad7ed17409417086867ee27bc1b0906dbc9cbb3714c285071e2db70", "0x08e700a42b1d6d36ee65f8ebedf47d3a44463ff9fa579dce13b7492e20142c3a", "0x2e23c69521d572ff2152c50f8c9a9191535f4cf37f95f1e0428692e78842b642", "0x14519e0354365923fb41400c19866135b45e975d56a0980260bc99f0390b1d5f", "0x04caded1f05738f736cb5bcf08d785e395e58eb7738523a20638aa16bc51593e", "0x28787eaccd38383215ea21ec02895c32d979f68ca155f534a2e2d377bff6698b", "0x20a1b81fa96c58cf11c5762c5ceb731efdcb081fca2d34d5c463d2cf40e6da18", "0x11789a06fe3bf53833741d180f068d29534d5bb58a5c64b8119542e62b189fb4", "0x23d00fcd032ace719ffcbc513bfa177a55b04377d76455c2788d999d05d011e2", "0x01f0e81b57b4a73cc118e51ede18f8724debf25c2d109db6ef45280f99f1a3fa", "0x156d1c9b61749810de728f259c2c1c1fd4dbff97101426e26087ca461c93307c", "0x1c5d619ac3a478cfd06d5eebfd879960bb321236be173813f5e78d1366d32c69", "0x250cfae4e1dfc551406f1f3d10b649a637dcb7bcb0f6f697994cf96afd35d0c1", "0x242b999f58cf5f53c874d1092bd38725aa9ea076f5bc8f176efa9ea23393874b", "0x2e15748255c4a5e0e9fe38047341b692a967257de27a85a3a38681bc9f1602ea", "0x01ef83886ea7017253699cb6371988eb8e21b4f7023d7479ece4907fe6d4a6fd", "0x08db2dbc271e375b9312f695c59c48f313235b3432cad50921c8d9ad6dd7ad7a", "0x199309f2c2cd45c15a4abb0e6554a1615ff5a6e9488a8d900bbf835fc8f664ef", "0x074be7a3d88e31ab1b59c9208c012bcfb1f85f351c709e68134996891db52b57", "0x301b1011354d2ebf46134fc4d6d734bb6ed8542d719f38f5e09a376a580cad7f", "0x12968f3eccaa27e44f14d5aaac6ecb70c00d040e07536292e685d7cab03fc563", "0x2110a023c8c22fd2ed70270a2d0a265b92a32ce2217ffe1be9a5d7d5c25f512f", "0x1e8cf4c60c53900f0430d5b44de5804fe8b38299bc803beeb4216e1a289cf624", "0x12301cb908ccb28a2616e29b831ec7105b5d3ebf45ff5fe91d50a9dd53a50b52", "0x0f1029ed107d84ff2d6d4a416cbd01da3f3d7bf5b2209ce93ba424f4b85616fc", "0x1b431d016611b8abd684afd9e92331c3325967b1116bfa91d4f44e2f8e2c9fc2", "0x281e335a0fd117064c8ace3f01e02b134a19e9b9220571ebfaaaa0e3a12d34db", "0x22559c106f77e2ae95677d5e38e288343e3b7168371aec7d3aaab9ef8150af70", "0x13f113b1d9b590149cf08c3f6e90589cda5c7b98528866b891256cb9d5d814e7", "0x10252ef388e4c80246962e98b9e976fab2cd25e1e6f1e3fd2a7d4786c5218a97", "0x16b890723dfdebd9912a9207255f95cb800222165b6fae97ec46e461f23e83f3", "0x25caf77c7d2e8e069341ec90f3c8f6d64319cfd2d77cab0625cf0377285ba11c", "0x016c84288b0bc3c50eebbe250cdd5a4ee50b2c65a24ac64d0c930cbdecb95141", "0x20a537c045b069d47dc6315f45b391f60681222381e5059ec7c8b17bf677d911", "0x2594c0edfcd4064d215a3d797bc8e3b2f401c61f3961ae96ccbec8f8fd29e81f", "0x1c831d7047483ca00ed59bdb84c47ffb8bbebbae92aa164c7b35fcffbb8a35d3", "0x2ea7f60de52b8cd6b0bd06f861fc1f2c5ed1d1fbfa53caccdb836400a03df434", "0x275c6c8bd115f7d2ce196439e2330fad305c6745bab0bf1ce3f2fa32dadc3c43", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x2b3f4e210619347288731e7f0eea1ae60dd8696fe87319044864d099a03a9536", "0x0fecd3d2aebedeb8be2b0b7e3a74de9ec8bd2cb72851541463729e0715aef48b", "0x10bee385ad0c2cd3ff88ef4d630840749e4367f9add4a300fc4f545a7778e92c", "0x1fe792730eeafbd22c4eb80e86e2b40108b1e55b2a08db786289eea5745b9e3b", "0x04d411679da432816b213cd5580dda1fd6c2f258684c036be19b5b26baca583c", "0x159f17b655d2b8a803e0cfb564918628be52d3baa950ca1b127854491624f8f4", "0x225340463867d9252a1269013536e2e1dd219aa18eadef13c324b63d44679334", "0x1885e231554e02abb40ed54b72ebf09b883d0298a6bc06fc645a30365f370ef2", "0x233344517f25170972b8ba35d01f2df2e073d322993abce7df26796126e93498", "0x08990e8faa13b18b4433ec417c5cc596885e11ffd372d5f612c08cc79a5d5c80", "0x1e960a0c892b755c28e21dcbed816c1b182d7da43bae07f8ee622bd4485f79e7", "0x27b58e2ee290a179d349ace82752528b2ff946d60c092b99ef42f53c25d0c99f", "0x2a5cf8a3193107d982edd253002c7a52ab876b445dde8307ab78fbdca022d93c", "0x2b1ab4d5277f8c82750c1c7bd043889b71465ec64a9afc1bfa37d06b1ebd0725", "0x2a0dbf5c4373a58a83d5f2a031ea0615bf12800e33b70c3191a7cbb15966ced8", "0x1f272bb4a19d14a0abdfebc9fc83125e10623b9aef730f8d25f2bf5bead38ea9", "0x2c2339cf0ae7aff56091a568c1e2c3f01f52d8ed13400737fd31eaabcaffb9bd", "0x21f5fefe6b5fa0b5da71089befb74a1a39e52b4f830cb330c3c284e154614dfd", "0x1e6f6ba4b2444586b380dc4e2b3fad111ff1f4754420a846f53ea0789ebfb0ad", "0x1193d170b0b2dd0c4a04331a4b4aa3f12920f182ec3ab547837e30f1116ca584", "0x00000000000000000000000000000025704a15c9e2ce8a69558e7bbcdcbc7784", "0x2e5d36112770fb6c985681cafe40a8c99ad13f702309e7969801dd0ed080e727", "0x0eefc2585f591bb457183134e19ad643966272234d645514bf7868d6dd8ae2cb", "0x300803e4e2339ad39b9c31f228949bbeaf9c74b7101e7be1930b088126247eaa", "0x2bb562a50ed944b438b83b01f200101a34faef7f296a75c84c731755ebddbc1a", "0x1288e0b9c742af39cbcac21357c1b29511b0bbdd3d0e3cf5e14b2eef68a28ab3", "0x20f089131cc96d86ff1cfb67fa3f51670f4bad30158751b2587354bbec76cdf9", "0x1a26c6d3e633f9bf8434cf755b5f1217dad0d455071a97a7bcf85b824f5cf07a", "0x0d7e9b8a51fccf910ec25bdbd13e70b34bd6ea6f4d629fa744f9cdf5f2beb1cf", "0x0b40f28ce428e64df9cf5a024133fc420f39decf5f6af020cc3211ab298d4631", "0x0ca4f189dde7a55fe829f46681232904f6670249a22e0deb47222bd309523a8a", "0x2c544f2e31143783977645edb2a6bdb39b875053963bfa1a5b3ae9de204a7ebe", "0x00aae4454eb48fb18ff60db6b9d015abea2e770a2f7d86d121522b834c791ba5", "0x07d74e351fd4cccf4e18475d25211efa8a359066fc693a5c8505ddb507e4b74b", "0x07d74e351fd4cccf4e18475d25211efa8a359066fc693a5c8505ddb507e4b74b", "0x2d9e5bff47207d82533e2445959941181cc890c5779bc7f24d6e8a7b9e425b5c", "0x0aea3c0c317c441a5775a9849108d7a6889b39128235f717b09b184aa08e4eb7", "0x1ca5bc6fb37c55a562f4991901c39902f42d14db71284116df74cb4e7d55e493", "0x220fed26d64cd69f40e6d145a423e4a3c8cd0dce747e7d51647441270ad4d774", "0x15be574c9358889257aa2a30ff7b5fcc31a57da7032296e2c1201c49a44bbdb6", "0x2de539925525bedd3b7f43a9c6bf0f713151a17f79ac7ff4a9cd27b15ffe892a", "0x083086693dbf465211741e2cbff70ff38eb08383faf22d397eb2742c8ad7396a", "0x1fdfa258a890598816e807c50058d7a1462edd5ff196a2eae0f862e454b49aa1", "0x10c434c6daaa8226fa8e3e302123dfdc4455cf68063df518949df5a65a945213", "0x0000000000000000000000000000006472a7874de2c454a4591ed7784df1c104", "0x000000000000000000000000000000000008c46ac53d2c4ad0c26a5d6c790082", "0x0000000000000000000000000000005e422f9cfb8725800de60dfe0a8d4104c0", "0x000000000000000000000000000000000000f10fd4e4de81a0c00073ec91c274", "0x000000000000000000000000000000b20813090eca76bc6aa4a699b1ec8d5d6d", "0x0000000000000000000000000000000000292cc9f8a744eb00e0903c29ce87a7", "0x000000000000000000000000000000350a368b415fbb99fa90a26a42b1a3affd", "0x0000000000000000000000000000000000280eb9275cb05a3435f464d1dc369d", "0x000000000000000000000000000000280df6505e20c7725fe6d29439f96ee05d", "0x000000000000000000000000000000000017ef5033a08535451e2747827aa94b", "0x0000000000000000000000000000002f9ba89ae91b4e4a4ff8ccbd0526faad2f", "0x00000000000000000000000000000000001c2013561dafcc02cb03220bdf23c4", "0x000000000000000000000000000000aac102c400f9e5da0321ded4510994434b", "0x00000000000000000000000000000000001ec8ab9cc834b492fde124962f04a1", "0x0000000000000000000000000000000673dbd698da8b8cce450d2a083aba9987", "0x00000000000000000000000000000000000a49e55bb040249cb41c63cea901cd", "0x000000000000000000000000000000133d92af8d76ee0c74a12081ee7b2ef8c4", "0x0000000000000000000000000000000000240f552d1c6cbb007650e4b142e0a5", "0x000000000000000000000000000000e29c6e7d982ec08d51c79d6261c28d742d", "0x000000000000000000000000000000000021baeec04d9be419c923626034e7b3", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x1e940a528b42d8230e7d4dff76262a80986c0d00b2c02a9bc0559e36212d1547", "0x1ceccf21ac39f70d76ad6f7fe0dcb33b6af04555a0b1959e4714d65925e4e253", "0x096139d757046cdbdb7ee89a95f112f70882a43a46c2f739d9be115dda013420", "0x2f9c8ac67c7825b08eff0e7f7656a671f4c64e5601f2efab35b1b795801eec04", "0x2077e648e1704851cdffd7e6e56311634a7b741bab77ca34d9dff12a6a2bfe99", "0x115d48c4a97aeb3c447a060f9e0d675b0dc7f4a05a3f5776e2f279f3a165d7dc", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x000000000000000000000000000000fd38c45c3ec5b841482a80e3a56ce82555", "0x00000000000000000000000000000000000ad70b03f092f60af3e0ce1bb29d2c", "0x0000000000000000000000000000007a184d5342c90c634c0b1a050f0b97c9fb", "0x0000000000000000000000000000000000271f42abcb3bc1f0332e4b3ca85e1d", "0x0000000000000000000000000000008256322bbe2c1b8cd9d84e5ff6123477f2", "0x000000000000000000000000000000000025cab962761681dd9547f4c78814df", "0x0000000000000000000000000000008c4234510e5825c02b9ac427bcbf8e279a", "0x000000000000000000000000000000000013a14e0d7fc073c44643af38cc5396"] \ No newline at end of file diff --git a/test_programs/execution_success/double_verify_honk_proof/src/main.nr b/test_programs/execution_success/double_verify_honk_proof/src/main.nr deleted file mode 100644 index c4be84e727b..00000000000 --- a/test_programs/execution_success/double_verify_honk_proof/src/main.nr +++ /dev/null @@ -1,29 +0,0 @@ - -// This circuit aggregates two Honk proof from `assert_statement_recursive`. -global SIZE_OF_PROOF_IF_LOGN_IS_28 : u32 = 463; -global HONK_IDENTIFIER : u32 = 1; -fn main( - verification_key: [Field; 128], - // This is the proof without public inputs attached. - // This means: the size of this does not change with the number of public inputs. - proof: [Field; SIZE_OF_PROOF_IF_LOGN_IS_28], - public_inputs: pub [Field; 1], - key_hash: Field, - // The second proof, currently set to be identical - proof_b: [Field; SIZE_OF_PROOF_IF_LOGN_IS_28] -) { - std::verify_proof_with_type( - verification_key, - proof, - public_inputs, - key_hash, - HONK_IDENTIFIER - ); - std::verify_proof_with_type( - verification_key, - proof_b, - public_inputs, - key_hash, - HONK_IDENTIFIER - ); -} diff --git a/test_programs/execution_success/double_verify_honk_proof_recursive/Nargo.toml b/test_programs/execution_success/double_verify_honk_proof_recursive/Nargo.toml deleted file mode 100644 index 618ba8a87b7..00000000000 --- a/test_programs/execution_success/double_verify_honk_proof_recursive/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "double_verify_honk_proof_recursive" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/double_verify_honk_proof_recursive/Prover.toml b/test_programs/execution_success/double_verify_honk_proof_recursive/Prover.toml deleted file mode 100644 index f8e7ba41a18..00000000000 --- a/test_programs/execution_success/double_verify_honk_proof_recursive/Prover.toml +++ /dev/null @@ -1,5 +0,0 @@ -key_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" -proof = ["0x0000000000000000000000000000000000000000000000000000000000000040", "0x0000000000000000000000000000000000000000000000000000000000000011", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000042ab5d6d1986846cf", "0x00000000000000000000000000000000000000000000000b75c020998797da78", "0x0000000000000000000000000000000000000000000000005a107acb64952eca", "0x000000000000000000000000000000000000000000000000000031e97a575e9d", "0x00000000000000000000000000000000000000000000000b5666547acf8bd5a4", "0x00000000000000000000000000000000000000000000000c410db10a01750aeb", "0x00000000000000000000000000000000000000000000000d722669117f9758a4", "0x000000000000000000000000000000000000000000000000000178cbf4206471", "0x000000000000000000000000000000000000000000000000e91b8a11e7842c38", "0x000000000000000000000000000000000000000000000007fd51009034b3357f", "0x000000000000000000000000000000000000000000000009889939f81e9c7402", "0x0000000000000000000000000000000000000000000000000000f94656a2ca48", "0x000000000000000000000000000000000000000000000006fb128b46c1ddb67f", "0x0000000000000000000000000000000000000000000000093fe27776f50224bd", "0x000000000000000000000000000000000000000000000004a0c80c0da527a081", "0x0000000000000000000000000000000000000000000000000001b52c2020d746", "0x0000000000000000000000000000005a9bae947e1e91af9e4033d8d6aa6ed632", "0x000000000000000000000000000000000025e485e013446d4ac7981c88ba6ecc", "0x000000000000000000000000000000ff1e0496e30ab24a63b32b2d1120b76e62", "0x00000000000000000000000000000000001afe0a8a685d7cd85d1010e55d9d7c", "0x000000000000000000000000000000b0804efd6573805f991458295f510a2004", "0x00000000000000000000000000000000000c81a178016e2fe18605022d5a8b0e", "0x000000000000000000000000000000eba51e76eb1cfff60a53a0092a3c3dea47", "0x000000000000000000000000000000000022e7466247b533282f5936ac4e6c15", "0x00000000000000000000000000000071b1d76edf770edff98f00ff4deec264cd", "0x00000000000000000000000000000000001e48128e68794d8861fcbb2986a383", "0x000000000000000000000000000000d3a2af4915ae6d86b097adc377fafda2d4", "0x000000000000000000000000000000000006359de9ca452dab3a4f1f8d9c9d98", "0x0000000000000000000000000000006cf7dd96d7636fda5953191b1ad776d491", "0x00000000000000000000000000000000001633d881a08d136e834cb13a28fcc6", "0x00000000000000000000000000000001254956cff6908b069fca0e6cf1c47eb1", "0x000000000000000000000000000000000006f4d4dd3890e997e75e75886bf8f7", "0x0000000000000000000000000000006cf7dd96d7636fda5953191b1ad776d491", "0x00000000000000000000000000000000001633d881a08d136e834cb13a28fcc6", "0x00000000000000000000000000000001254956cff6908b069fca0e6cf1c47eb1", "0x000000000000000000000000000000000006f4d4dd3890e997e75e75886bf8f7", "0x000000000000000000000000000000f968b227a358a305607f3efc933823d288", "0x00000000000000000000000000000000000eaf8adb390375a76d95e918b65e08", "0x000000000000000000000000000000bb34b4b447aae56f5e24f81c3acd6d547f", "0x00000000000000000000000000000000002175d012746260ebcfe339a91a81e1", "0x00000000000000000000000000000052eebbd1f6f7554e837f60c44000ed14b6", "0x00000000000000000000000000000000001c1c045a3ec94b8801f2272cc0b3f4", "0x0000000000000000000000000000004d2ef74134578f6b431a9df071ffca4292", "0x0000000000000000000000000000000000291326ade7aa6f0dfc8900eab5580b", "0x0000000000000000000000000000002433eec6418a6dba820c9527e2581fc8bc", "0x00000000000000000000000000000000000e88b7daad19af2ac2f9bdf9e50ee2", "0x000000000000000000000000000000dcfce2c427155cc3e4d035735d3dd5ece8", "0x00000000000000000000000000000000002d7d473cac1a15d0fee8b22c1a7b3e", "0x1a4249b90be4602c8ff40c7c276160ee41b2a0f8a238ce7706e9face2db03d48", "0x162204b9d54d3ffd285c393a5a1ff76ee681474fd780a21a3cf7fac5c24fc2b9", "0x30279eb953d8ee79b2155c69c04e6443c5de6bf7e02886256dd7b3cd3c9502a4", "0x0d32c1bd21baf43e72d5d82d461ef54833807ff81a877adc822f27a6db88d754", "0x0fe15e055c0803d5ebe6dd77689b70cfd82138f008810ce24535c992daaff27d", "0x1fba82c012671212ce2fc13fd09bf8fba4f7d5875ab8d37495d1ccfcff287331", "0x090738a5842fa4d2699b3726aa0dd97cb59569b4be2c6825335ec4969f859dc2", "0x0c6cb72dabbc28abcf4a50c203534e066c29f48c24ca64d672092f263df3f9d7", "0x0f27fbea0d9145f815c288b50fe7e8c10b8185d325b5264624fd57102855d05d", "0x2a815cd3fd1c43c72ee0130465250ff771d1e7be2347e4ada331b83265a03450", "0x148b4ecf2ad7ed17409417086867ee27bc1b0906dbc9cbb3714c285071e2db70", "0x08e700a42b1d6d36ee65f8ebedf47d3a44463ff9fa579dce13b7492e20142c3a", "0x2e23c69521d572ff2152c50f8c9a9191535f4cf37f95f1e0428692e78842b642", "0x14519e0354365923fb41400c19866135b45e975d56a0980260bc99f0390b1d5f", "0x04caded1f05738f736cb5bcf08d785e395e58eb7738523a20638aa16bc51593e", "0x28787eaccd38383215ea21ec02895c32d979f68ca155f534a2e2d377bff6698b", "0x20a1b81fa96c58cf11c5762c5ceb731efdcb081fca2d34d5c463d2cf40e6da18", "0x11789a06fe3bf53833741d180f068d29534d5bb58a5c64b8119542e62b189fb4", "0x23d00fcd032ace719ffcbc513bfa177a55b04377d76455c2788d999d05d011e2", "0x01f0e81b57b4a73cc118e51ede18f8724debf25c2d109db6ef45280f99f1a3fa", "0x156d1c9b61749810de728f259c2c1c1fd4dbff97101426e26087ca461c93307c", "0x1c5d619ac3a478cfd06d5eebfd879960bb321236be173813f5e78d1366d32c69", "0x250cfae4e1dfc551406f1f3d10b649a637dcb7bcb0f6f697994cf96afd35d0c1", "0x242b999f58cf5f53c874d1092bd38725aa9ea076f5bc8f176efa9ea23393874b", "0x2e15748255c4a5e0e9fe38047341b692a967257de27a85a3a38681bc9f1602ea", "0x01ef83886ea7017253699cb6371988eb8e21b4f7023d7479ece4907fe6d4a6fd", "0x08db2dbc271e375b9312f695c59c48f313235b3432cad50921c8d9ad6dd7ad7a", "0x199309f2c2cd45c15a4abb0e6554a1615ff5a6e9488a8d900bbf835fc8f664ef", "0x074be7a3d88e31ab1b59c9208c012bcfb1f85f351c709e68134996891db52b57", "0x301b1011354d2ebf46134fc4d6d734bb6ed8542d719f38f5e09a376a580cad7f", "0x12968f3eccaa27e44f14d5aaac6ecb70c00d040e07536292e685d7cab03fc563", "0x2110a023c8c22fd2ed70270a2d0a265b92a32ce2217ffe1be9a5d7d5c25f512f", "0x1e8cf4c60c53900f0430d5b44de5804fe8b38299bc803beeb4216e1a289cf624", "0x12301cb908ccb28a2616e29b831ec7105b5d3ebf45ff5fe91d50a9dd53a50b52", "0x0f1029ed107d84ff2d6d4a416cbd01da3f3d7bf5b2209ce93ba424f4b85616fc", "0x1b431d016611b8abd684afd9e92331c3325967b1116bfa91d4f44e2f8e2c9fc2", "0x281e335a0fd117064c8ace3f01e02b134a19e9b9220571ebfaaaa0e3a12d34db", "0x22559c106f77e2ae95677d5e38e288343e3b7168371aec7d3aaab9ef8150af70", "0x13f113b1d9b590149cf08c3f6e90589cda5c7b98528866b891256cb9d5d814e7", "0x10252ef388e4c80246962e98b9e976fab2cd25e1e6f1e3fd2a7d4786c5218a97", "0x16b890723dfdebd9912a9207255f95cb800222165b6fae97ec46e461f23e83f3", "0x25caf77c7d2e8e069341ec90f3c8f6d64319cfd2d77cab0625cf0377285ba11c", "0x016c84288b0bc3c50eebbe250cdd5a4ee50b2c65a24ac64d0c930cbdecb95141", "0x20a537c045b069d47dc6315f45b391f60681222381e5059ec7c8b17bf677d911", "0x2594c0edfcd4064d215a3d797bc8e3b2f401c61f3961ae96ccbec8f8fd29e81f", "0x1c831d7047483ca00ed59bdb84c47ffb8bbebbae92aa164c7b35fcffbb8a35d3", "0x2ea7f60de52b8cd6b0bd06f861fc1f2c5ed1d1fbfa53caccdb836400a03df434", "0x275c6c8bd115f7d2ce196439e2330fad305c6745bab0bf1ce3f2fa32dadc3c43", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x2b3f4e210619347288731e7f0eea1ae60dd8696fe87319044864d099a03a9536", "0x0fecd3d2aebedeb8be2b0b7e3a74de9ec8bd2cb72851541463729e0715aef48b", "0x10bee385ad0c2cd3ff88ef4d630840749e4367f9add4a300fc4f545a7778e92c", "0x1fe792730eeafbd22c4eb80e86e2b40108b1e55b2a08db786289eea5745b9e3b", "0x04d411679da432816b213cd5580dda1fd6c2f258684c036be19b5b26baca583c", "0x159f17b655d2b8a803e0cfb564918628be52d3baa950ca1b127854491624f8f4", "0x225340463867d9252a1269013536e2e1dd219aa18eadef13c324b63d44679334", "0x1885e231554e02abb40ed54b72ebf09b883d0298a6bc06fc645a30365f370ef2", "0x233344517f25170972b8ba35d01f2df2e073d322993abce7df26796126e93498", "0x08990e8faa13b18b4433ec417c5cc596885e11ffd372d5f612c08cc79a5d5c80", "0x1e960a0c892b755c28e21dcbed816c1b182d7da43bae07f8ee622bd4485f79e7", "0x27b58e2ee290a179d349ace82752528b2ff946d60c092b99ef42f53c25d0c99f", "0x2a5cf8a3193107d982edd253002c7a52ab876b445dde8307ab78fbdca022d93c", "0x2b1ab4d5277f8c82750c1c7bd043889b71465ec64a9afc1bfa37d06b1ebd0725", "0x2a0dbf5c4373a58a83d5f2a031ea0615bf12800e33b70c3191a7cbb15966ced8", "0x1f272bb4a19d14a0abdfebc9fc83125e10623b9aef730f8d25f2bf5bead38ea9", "0x2c2339cf0ae7aff56091a568c1e2c3f01f52d8ed13400737fd31eaabcaffb9bd", "0x21f5fefe6b5fa0b5da71089befb74a1a39e52b4f830cb330c3c284e154614dfd", "0x1e6f6ba4b2444586b380dc4e2b3fad111ff1f4754420a846f53ea0789ebfb0ad", "0x1193d170b0b2dd0c4a04331a4b4aa3f12920f182ec3ab547837e30f1116ca584", "0x00000000000000000000000000000025704a15c9e2ce8a69558e7bbcdcbc7784", "0x2e5d36112770fb6c985681cafe40a8c99ad13f702309e7969801dd0ed080e727", "0x0eefc2585f591bb457183134e19ad643966272234d645514bf7868d6dd8ae2cb", "0x300803e4e2339ad39b9c31f228949bbeaf9c74b7101e7be1930b088126247eaa", "0x2bb562a50ed944b438b83b01f200101a34faef7f296a75c84c731755ebddbc1a", "0x1288e0b9c742af39cbcac21357c1b29511b0bbdd3d0e3cf5e14b2eef68a28ab3", "0x20f089131cc96d86ff1cfb67fa3f51670f4bad30158751b2587354bbec76cdf9", "0x1a26c6d3e633f9bf8434cf755b5f1217dad0d455071a97a7bcf85b824f5cf07a", "0x0d7e9b8a51fccf910ec25bdbd13e70b34bd6ea6f4d629fa744f9cdf5f2beb1cf", "0x0b40f28ce428e64df9cf5a024133fc420f39decf5f6af020cc3211ab298d4631", "0x0ca4f189dde7a55fe829f46681232904f6670249a22e0deb47222bd309523a8a", "0x2c544f2e31143783977645edb2a6bdb39b875053963bfa1a5b3ae9de204a7ebe", "0x00aae4454eb48fb18ff60db6b9d015abea2e770a2f7d86d121522b834c791ba5", "0x07d74e351fd4cccf4e18475d25211efa8a359066fc693a5c8505ddb507e4b74b", "0x07d74e351fd4cccf4e18475d25211efa8a359066fc693a5c8505ddb507e4b74b", "0x2d9e5bff47207d82533e2445959941181cc890c5779bc7f24d6e8a7b9e425b5c", "0x0aea3c0c317c441a5775a9849108d7a6889b39128235f717b09b184aa08e4eb7", "0x1ca5bc6fb37c55a562f4991901c39902f42d14db71284116df74cb4e7d55e493", "0x220fed26d64cd69f40e6d145a423e4a3c8cd0dce747e7d51647441270ad4d774", "0x15be574c9358889257aa2a30ff7b5fcc31a57da7032296e2c1201c49a44bbdb6", "0x2de539925525bedd3b7f43a9c6bf0f713151a17f79ac7ff4a9cd27b15ffe892a", "0x083086693dbf465211741e2cbff70ff38eb08383faf22d397eb2742c8ad7396a", "0x1fdfa258a890598816e807c50058d7a1462edd5ff196a2eae0f862e454b49aa1", "0x10c434c6daaa8226fa8e3e302123dfdc4455cf68063df518949df5a65a945213", "0x0000000000000000000000000000006472a7874de2c454a4591ed7784df1c104", "0x000000000000000000000000000000000008c46ac53d2c4ad0c26a5d6c790082", "0x0000000000000000000000000000005e422f9cfb8725800de60dfe0a8d4104c0", "0x000000000000000000000000000000000000f10fd4e4de81a0c00073ec91c274", "0x000000000000000000000000000000b20813090eca76bc6aa4a699b1ec8d5d6d", "0x0000000000000000000000000000000000292cc9f8a744eb00e0903c29ce87a7", "0x000000000000000000000000000000350a368b415fbb99fa90a26a42b1a3affd", "0x0000000000000000000000000000000000280eb9275cb05a3435f464d1dc369d", "0x000000000000000000000000000000280df6505e20c7725fe6d29439f96ee05d", "0x000000000000000000000000000000000017ef5033a08535451e2747827aa94b", "0x0000000000000000000000000000002f9ba89ae91b4e4a4ff8ccbd0526faad2f", "0x00000000000000000000000000000000001c2013561dafcc02cb03220bdf23c4", "0x000000000000000000000000000000aac102c400f9e5da0321ded4510994434b", "0x00000000000000000000000000000000001ec8ab9cc834b492fde124962f04a1", "0x0000000000000000000000000000000673dbd698da8b8cce450d2a083aba9987", "0x00000000000000000000000000000000000a49e55bb040249cb41c63cea901cd", "0x000000000000000000000000000000133d92af8d76ee0c74a12081ee7b2ef8c4", "0x0000000000000000000000000000000000240f552d1c6cbb007650e4b142e0a5", "0x000000000000000000000000000000e29c6e7d982ec08d51c79d6261c28d742d", "0x000000000000000000000000000000000021baeec04d9be419c923626034e7b3", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x1e940a528b42d8230e7d4dff76262a80986c0d00b2c02a9bc0559e36212d1547", "0x1ceccf21ac39f70d76ad6f7fe0dcb33b6af04555a0b1959e4714d65925e4e253", "0x096139d757046cdbdb7ee89a95f112f70882a43a46c2f739d9be115dda013420", "0x2f9c8ac67c7825b08eff0e7f7656a671f4c64e5601f2efab35b1b795801eec04", "0x2077e648e1704851cdffd7e6e56311634a7b741bab77ca34d9dff12a6a2bfe99", "0x115d48c4a97aeb3c447a060f9e0d675b0dc7f4a05a3f5776e2f279f3a165d7dc", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x000000000000000000000000000000fd38c45c3ec5b841482a80e3a56ce82555", "0x00000000000000000000000000000000000ad70b03f092f60af3e0ce1bb29d2c", "0x0000000000000000000000000000007a184d5342c90c634c0b1a050f0b97c9fb", "0x0000000000000000000000000000000000271f42abcb3bc1f0332e4b3ca85e1d", "0x0000000000000000000000000000008256322bbe2c1b8cd9d84e5ff6123477f2", "0x000000000000000000000000000000000025cab962761681dd9547f4c78814df", "0x0000000000000000000000000000008c4234510e5825c02b9ac427bcbf8e279a", "0x000000000000000000000000000000000013a14e0d7fc073c44643af38cc5396"] -public_inputs = ["0x0000000000000000000000000000000000000000000000000000000000000003"] -verification_key = ["0x0000000000000000000000000000000000000000000000000000000000000040", "0x0000000000000000000000000000000000000000000000000000000000000011", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000003", "0x0000000000000000000000000000000000000000000000000000000000000004", "0x0000000000000000000000000000000000000000000000000000000000000005", "0x0000000000000000000000000000000000000000000000000000000000000006", "0x0000000000000000000000000000000000000000000000000000000000000007", "0x0000000000000000000000000000000000000000000000000000000000000008", "0x0000000000000000000000000000000000000000000000000000000000000009", "0x000000000000000000000000000000000000000000000000000000000000000a", "0x000000000000000000000000000000000000000000000000000000000000000b", "0x000000000000000000000000000000000000000000000000000000000000000c", "0x000000000000000000000000000000000000000000000000000000000000000d", "0x000000000000000000000000000000000000000000000000000000000000000e", "0x000000000000000000000000000000000000000000000000000000000000000f", "0x0000000000000000000000000000000000000000000000000000000000000010", "0x00000000000000000000000000000060e430ad1c23bfcf3514323aae3f206e84", "0x00000000000000000000000000000000001b5c3ff4c2458d8f481b1c068f27ae", "0x000000000000000000000000000000bb510ab2112def34980e4fc6998ad9dd16", "0x00000000000000000000000000000000000576e7c105b43e061e13cb877fefe1", "0x000000000000000000000000000000ced074785d11857b065d8199e6669a601c", "0x00000000000000000000000000000000000053b48a4098c1c0ae268f273952f7", "0x000000000000000000000000000000d1d4b26e941db8168cee8f6de548ae0fd8", "0x00000000000000000000000000000000001a9adf5a6dadc3d948bb61dfd63f4c", "0x0000000000000000000000000000009ce1faac6f8de6ebb18f1db17372c82ad5", "0x00000000000000000000000000000000002002681bb417184b2df070a16a3858", "0x000000000000000000000000000000161baa651a8092e0e84725594de5aba511", "0x00000000000000000000000000000000000be0064399c2a1efff9eb0cdcb2223", "0x0000000000000000000000000000008673be6fd1bdbe980a29d8c1ded54381e7", "0x000000000000000000000000000000000008a5158a7d9648cf1d234524c9fa0c", "0x0000000000000000000000000000002b4fce6e4b1c72062b296d49bca2aa4130", "0x00000000000000000000000000000000002e45a9eff4b6769e55fb710cded44f", "0x00000000000000000000000000000072b85bf733758b76bcf97333efb85a23e3", "0x000000000000000000000000000000000017da0ea508994fc82862715e4b5592", "0x00000000000000000000000000000094fa74695cf058dba8ff35aec95456c6c3", "0x0000000000000000000000000000000000211acddb851061c24b8f159e832bd1", "0x000000000000000000000000000000303b5e5c531384b9a792e11702ad3bcab0", "0x00000000000000000000000000000000000d336dff51a60b8833d5d7f6d4314c", "0x0000000000000000000000000000009f825dde88092070747180d581c342444a", "0x0000000000000000000000000000000000237fbd6511a03cca8cac01b555fe01", "0x0000000000000000000000000000007c313205159495df6d8de292079a4844ff", "0x000000000000000000000000000000000018facdfc468530dd45e8f7a1d38ce9", "0x0000000000000000000000000000000d1ce33446fc3dc4ab40ca38d92dac74e1", "0x00000000000000000000000000000000000852d8e3e0e8f4435af3e94222688b", "0x0000000000000000000000000000006c04ee19ec1dfec87ed47d6d04aa158de2", "0x000000000000000000000000000000000013240f97a584b45184c8ec31319b5f", "0x000000000000000000000000000000cefb5d240b07ceb4be26ea429b6dc9d9e0", "0x00000000000000000000000000000000002dad22022121d689f57fb38ca21349", "0x000000000000000000000000000000c9f189f2a91aeb664ce376d8b157ba98f8", "0x00000000000000000000000000000000002531a51ad54f124d58094b219818d2", "0x000000000000000000000000000000ef1e6db71809307f677677e62b4163f556", "0x0000000000000000000000000000000000272da4396fb2a7ee0638b9140e523d", "0x0000000000000000000000000000002e54c0244a7732c87bc4712a76dd8c83fb", "0x000000000000000000000000000000000007db77b3e04b7eba9643da57cbbe4d", "0x000000000000000000000000000000e0dfe1ddd7f74ae0d636c910c3e85830d8", "0x00000000000000000000000000000000000466fa9b57ec4664abd1505b490862", "0x0000000000000000000000000000009ee55ae8a32fe5384c79907067cc27192e", "0x00000000000000000000000000000000000799d0e465cec07ecb5238c854e830", "0x0000000000000000000000000000001d5910ad361e76e1c241247a823733c39f", "0x00000000000000000000000000000000002b03f2ccf7507564da2e6678bef8fe", "0x000000000000000000000000000000ee40d90bea71fba7a412dd61fcf34e8ceb", "0x0000000000000000000000000000000000140b0936c323fd2471155617b6af56", "0x0000000000000000000000000000002b90071823185c5ff8e440fd3d73b6fefc", "0x00000000000000000000000000000000002b6c10790a5f6631c87d652e059df4", "0x00000000000000000000000000000029a17181c7934fc3fdbd352eac5cb521b9", "0x00000000000000000000000000000000001f497cbf5284ff29a2d336e5991999", "0x000000000000000000000000000000072bd9c0c6beda1fdee6d4ff0432ba9e1b", "0x000000000000000000000000000000000013ea38a0bd2aa751a490a724fac818", "0x000000000000000000000000000000c599f63dcd3edd49f08ae5c3141c1e3493", "0x00000000000000000000000000000000002bdb36be0bea09950dd32a8ccf6fbc", "0x00000000000000000000000000000047f27f29724e7f19eba0340256a0bd4b7d", "0x00000000000000000000000000000000001c1c5ccf87a962129ca785f8f35120", "0x000000000000000000000000000000c5c71efdae00679bbe4a95096e012b1817", "0x000000000000000000000000000000000017a365de041e317817d0135f2b48e0", "0x0000000000000000000000000000008ae711ac402f7848d719c93a89ba8d39f1", "0x00000000000000000000000000000000002b6fb40ed8a1935226f4f9786a0499", "0x0000000000000000000000000000002f03a71501d83de1da5715a4e9462d6198", "0x00000000000000000000000000000000001644064443b8546f48eae693af47b8", "0x00000000000000000000000000000083763ab1b6e8fe269b2fe4c7b9c448c08d", "0x000000000000000000000000000000000021d7cc18c59676a8eeb47c0111c251", "0x000000000000000000000000000000b5f937153073e03ea7d51a996e0ebc2e6b", "0x000000000000000000000000000000000011ddd0e26457373eb06e0493177672", "0x000000000000000000000000000000c5f6eb9f6fc8fa99811a4a88c74a6d018b", "0x000000000000000000000000000000000025bcd07a0732c123567834f5109558", "0x000000000000000000000000000000aeb08a0b1a4442189448b4e97490568146", "0x000000000000000000000000000000000002a1744e4771705536a88f07e0f90f", "0x000000000000000000000000000000b938568293bd0724b0ea76c2ec34c4a829", "0x0000000000000000000000000000000000053296e8f3b9ad3af877dfa9c7c2a7", "0x000000000000000000000000000000f0ca1db6323996eba26bdc86dafef9d10b", "0x00000000000000000000000000000000001441a46c58af03d5645d52721d956a", "0x0000000000000000000000000000008bbf8f884013c66c28ba09c2fbd573b656", "0x0000000000000000000000000000000000206c391ca06fac27d1908e94570243", "0x0000000000000000000000000000002d4f5aaed88ba4f79612d53b804ca8f194", "0x00000000000000000000000000000000001674011c96392df08970fa6b7b4cb8", "0x0000000000000000000000000000009f88297c1729d76c4d9306853598c91325", "0x0000000000000000000000000000000000256f51adfcacc3c1e340be4d32d3e9", "0x0000000000000000000000000000000ab9955eec0d74eb799afed2a802b24d75", "0x00000000000000000000000000000000001fcbe43ea105b30d36ed0b21b03411", "0x000000000000000000000000000000d66b1d5433f1aa5305cd1edce7c22de466", "0x00000000000000000000000000000000002331546a256b8a3b751956806680d4", "0x000000000000000000000000000000e97954ad6cd6f45fb15c91434121db4304", "0x00000000000000000000000000000000002e20a97e09d50f227ced47e7a98250", "0x0000000000000000000000000000001ebbc27eb9ebededefba79522eb58ae89b", "0x0000000000000000000000000000000000090efa4974e566e81d1177b85a30be", "0x0000000000000000000000000000005eafa070b9c9632404052642e3bc14f9fd", "0x00000000000000000000000000000000001489068864102daca6a6b8bc4d448b", "0x0000000000000000000000000000009ebc91aaaac036a6477cadbe54e8556dfd", "0x00000000000000000000000000000000000ef6d835e2ed3343b95c82c8c54037", "0x00000000000000000000000000000033b28b529dff46e93af4e7422530478e4a", "0x000000000000000000000000000000000020a86c2f8591bf190bcddcc03c42fb", "0x000000000000000000000000000000a9679d0acc088f7dc27bf6d866bcd2dda2", "0x00000000000000000000000000000000002fb9d0d2d4099402bed74f738f64cc", "0x00000000000000000000000000000023b09f876a29a061582848a8b9a5870c12", "0x00000000000000000000000000000000001d5bb906f03f0d49e9c4791bc43af9", "0x00000000000000000000000000000017aac9854ea240d8ec97bf760c4d4ba870", "0x00000000000000000000000000000000000b227a556c414ada0dc75bb303e30e", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000009b624fa65d1a24b7f14a8f25f3789622af", "0x000000000000000000000000000000000013d47bff8c630e847b70e2732fd3f0", "0x00000000000000000000000000000061d21663e93132f32921075f4c936a84df", "0x00000000000000000000000000000000001a74ca4e118fb480b9b999902989a3"] -proof_b = ["0x0000000000000000000000000000000000000000000000000000000000000040", "0x0000000000000000000000000000000000000000000000000000000000000011", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000042ab5d6d1986846cf", "0x00000000000000000000000000000000000000000000000b75c020998797da78", "0x0000000000000000000000000000000000000000000000005a107acb64952eca", "0x000000000000000000000000000000000000000000000000000031e97a575e9d", "0x00000000000000000000000000000000000000000000000b5666547acf8bd5a4", "0x00000000000000000000000000000000000000000000000c410db10a01750aeb", "0x00000000000000000000000000000000000000000000000d722669117f9758a4", "0x000000000000000000000000000000000000000000000000000178cbf4206471", "0x000000000000000000000000000000000000000000000000e91b8a11e7842c38", "0x000000000000000000000000000000000000000000000007fd51009034b3357f", "0x000000000000000000000000000000000000000000000009889939f81e9c7402", "0x0000000000000000000000000000000000000000000000000000f94656a2ca48", "0x000000000000000000000000000000000000000000000006fb128b46c1ddb67f", "0x0000000000000000000000000000000000000000000000093fe27776f50224bd", "0x000000000000000000000000000000000000000000000004a0c80c0da527a081", "0x0000000000000000000000000000000000000000000000000001b52c2020d746", "0x0000000000000000000000000000005a9bae947e1e91af9e4033d8d6aa6ed632", "0x000000000000000000000000000000000025e485e013446d4ac7981c88ba6ecc", "0x000000000000000000000000000000ff1e0496e30ab24a63b32b2d1120b76e62", "0x00000000000000000000000000000000001afe0a8a685d7cd85d1010e55d9d7c", "0x000000000000000000000000000000b0804efd6573805f991458295f510a2004", "0x00000000000000000000000000000000000c81a178016e2fe18605022d5a8b0e", "0x000000000000000000000000000000eba51e76eb1cfff60a53a0092a3c3dea47", "0x000000000000000000000000000000000022e7466247b533282f5936ac4e6c15", "0x00000000000000000000000000000071b1d76edf770edff98f00ff4deec264cd", "0x00000000000000000000000000000000001e48128e68794d8861fcbb2986a383", "0x000000000000000000000000000000d3a2af4915ae6d86b097adc377fafda2d4", "0x000000000000000000000000000000000006359de9ca452dab3a4f1f8d9c9d98", "0x0000000000000000000000000000006cf7dd96d7636fda5953191b1ad776d491", "0x00000000000000000000000000000000001633d881a08d136e834cb13a28fcc6", "0x00000000000000000000000000000001254956cff6908b069fca0e6cf1c47eb1", "0x000000000000000000000000000000000006f4d4dd3890e997e75e75886bf8f7", "0x0000000000000000000000000000006cf7dd96d7636fda5953191b1ad776d491", "0x00000000000000000000000000000000001633d881a08d136e834cb13a28fcc6", "0x00000000000000000000000000000001254956cff6908b069fca0e6cf1c47eb1", "0x000000000000000000000000000000000006f4d4dd3890e997e75e75886bf8f7", "0x000000000000000000000000000000f968b227a358a305607f3efc933823d288", "0x00000000000000000000000000000000000eaf8adb390375a76d95e918b65e08", "0x000000000000000000000000000000bb34b4b447aae56f5e24f81c3acd6d547f", "0x00000000000000000000000000000000002175d012746260ebcfe339a91a81e1", "0x00000000000000000000000000000052eebbd1f6f7554e837f60c44000ed14b6", "0x00000000000000000000000000000000001c1c045a3ec94b8801f2272cc0b3f4", "0x0000000000000000000000000000004d2ef74134578f6b431a9df071ffca4292", "0x0000000000000000000000000000000000291326ade7aa6f0dfc8900eab5580b", "0x0000000000000000000000000000002433eec6418a6dba820c9527e2581fc8bc", "0x00000000000000000000000000000000000e88b7daad19af2ac2f9bdf9e50ee2", "0x000000000000000000000000000000dcfce2c427155cc3e4d035735d3dd5ece8", "0x00000000000000000000000000000000002d7d473cac1a15d0fee8b22c1a7b3e", "0x1a4249b90be4602c8ff40c7c276160ee41b2a0f8a238ce7706e9face2db03d48", "0x162204b9d54d3ffd285c393a5a1ff76ee681474fd780a21a3cf7fac5c24fc2b9", "0x30279eb953d8ee79b2155c69c04e6443c5de6bf7e02886256dd7b3cd3c9502a4", "0x0d32c1bd21baf43e72d5d82d461ef54833807ff81a877adc822f27a6db88d754", "0x0fe15e055c0803d5ebe6dd77689b70cfd82138f008810ce24535c992daaff27d", "0x1fba82c012671212ce2fc13fd09bf8fba4f7d5875ab8d37495d1ccfcff287331", "0x090738a5842fa4d2699b3726aa0dd97cb59569b4be2c6825335ec4969f859dc2", "0x0c6cb72dabbc28abcf4a50c203534e066c29f48c24ca64d672092f263df3f9d7", "0x0f27fbea0d9145f815c288b50fe7e8c10b8185d325b5264624fd57102855d05d", "0x2a815cd3fd1c43c72ee0130465250ff771d1e7be2347e4ada331b83265a03450", "0x148b4ecf2ad7ed17409417086867ee27bc1b0906dbc9cbb3714c285071e2db70", "0x08e700a42b1d6d36ee65f8ebedf47d3a44463ff9fa579dce13b7492e20142c3a", "0x2e23c69521d572ff2152c50f8c9a9191535f4cf37f95f1e0428692e78842b642", "0x14519e0354365923fb41400c19866135b45e975d56a0980260bc99f0390b1d5f", "0x04caded1f05738f736cb5bcf08d785e395e58eb7738523a20638aa16bc51593e", "0x28787eaccd38383215ea21ec02895c32d979f68ca155f534a2e2d377bff6698b", "0x20a1b81fa96c58cf11c5762c5ceb731efdcb081fca2d34d5c463d2cf40e6da18", "0x11789a06fe3bf53833741d180f068d29534d5bb58a5c64b8119542e62b189fb4", "0x23d00fcd032ace719ffcbc513bfa177a55b04377d76455c2788d999d05d011e2", "0x01f0e81b57b4a73cc118e51ede18f8724debf25c2d109db6ef45280f99f1a3fa", "0x156d1c9b61749810de728f259c2c1c1fd4dbff97101426e26087ca461c93307c", "0x1c5d619ac3a478cfd06d5eebfd879960bb321236be173813f5e78d1366d32c69", "0x250cfae4e1dfc551406f1f3d10b649a637dcb7bcb0f6f697994cf96afd35d0c1", "0x242b999f58cf5f53c874d1092bd38725aa9ea076f5bc8f176efa9ea23393874b", "0x2e15748255c4a5e0e9fe38047341b692a967257de27a85a3a38681bc9f1602ea", "0x01ef83886ea7017253699cb6371988eb8e21b4f7023d7479ece4907fe6d4a6fd", "0x08db2dbc271e375b9312f695c59c48f313235b3432cad50921c8d9ad6dd7ad7a", "0x199309f2c2cd45c15a4abb0e6554a1615ff5a6e9488a8d900bbf835fc8f664ef", "0x074be7a3d88e31ab1b59c9208c012bcfb1f85f351c709e68134996891db52b57", "0x301b1011354d2ebf46134fc4d6d734bb6ed8542d719f38f5e09a376a580cad7f", "0x12968f3eccaa27e44f14d5aaac6ecb70c00d040e07536292e685d7cab03fc563", "0x2110a023c8c22fd2ed70270a2d0a265b92a32ce2217ffe1be9a5d7d5c25f512f", "0x1e8cf4c60c53900f0430d5b44de5804fe8b38299bc803beeb4216e1a289cf624", "0x12301cb908ccb28a2616e29b831ec7105b5d3ebf45ff5fe91d50a9dd53a50b52", "0x0f1029ed107d84ff2d6d4a416cbd01da3f3d7bf5b2209ce93ba424f4b85616fc", "0x1b431d016611b8abd684afd9e92331c3325967b1116bfa91d4f44e2f8e2c9fc2", "0x281e335a0fd117064c8ace3f01e02b134a19e9b9220571ebfaaaa0e3a12d34db", "0x22559c106f77e2ae95677d5e38e288343e3b7168371aec7d3aaab9ef8150af70", "0x13f113b1d9b590149cf08c3f6e90589cda5c7b98528866b891256cb9d5d814e7", "0x10252ef388e4c80246962e98b9e976fab2cd25e1e6f1e3fd2a7d4786c5218a97", "0x16b890723dfdebd9912a9207255f95cb800222165b6fae97ec46e461f23e83f3", "0x25caf77c7d2e8e069341ec90f3c8f6d64319cfd2d77cab0625cf0377285ba11c", "0x016c84288b0bc3c50eebbe250cdd5a4ee50b2c65a24ac64d0c930cbdecb95141", "0x20a537c045b069d47dc6315f45b391f60681222381e5059ec7c8b17bf677d911", "0x2594c0edfcd4064d215a3d797bc8e3b2f401c61f3961ae96ccbec8f8fd29e81f", "0x1c831d7047483ca00ed59bdb84c47ffb8bbebbae92aa164c7b35fcffbb8a35d3", "0x2ea7f60de52b8cd6b0bd06f861fc1f2c5ed1d1fbfa53caccdb836400a03df434", "0x275c6c8bd115f7d2ce196439e2330fad305c6745bab0bf1ce3f2fa32dadc3c43", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x2b3f4e210619347288731e7f0eea1ae60dd8696fe87319044864d099a03a9536", "0x0fecd3d2aebedeb8be2b0b7e3a74de9ec8bd2cb72851541463729e0715aef48b", "0x10bee385ad0c2cd3ff88ef4d630840749e4367f9add4a300fc4f545a7778e92c", "0x1fe792730eeafbd22c4eb80e86e2b40108b1e55b2a08db786289eea5745b9e3b", "0x04d411679da432816b213cd5580dda1fd6c2f258684c036be19b5b26baca583c", "0x159f17b655d2b8a803e0cfb564918628be52d3baa950ca1b127854491624f8f4", "0x225340463867d9252a1269013536e2e1dd219aa18eadef13c324b63d44679334", "0x1885e231554e02abb40ed54b72ebf09b883d0298a6bc06fc645a30365f370ef2", "0x233344517f25170972b8ba35d01f2df2e073d322993abce7df26796126e93498", "0x08990e8faa13b18b4433ec417c5cc596885e11ffd372d5f612c08cc79a5d5c80", "0x1e960a0c892b755c28e21dcbed816c1b182d7da43bae07f8ee622bd4485f79e7", "0x27b58e2ee290a179d349ace82752528b2ff946d60c092b99ef42f53c25d0c99f", "0x2a5cf8a3193107d982edd253002c7a52ab876b445dde8307ab78fbdca022d93c", "0x2b1ab4d5277f8c82750c1c7bd043889b71465ec64a9afc1bfa37d06b1ebd0725", "0x2a0dbf5c4373a58a83d5f2a031ea0615bf12800e33b70c3191a7cbb15966ced8", "0x1f272bb4a19d14a0abdfebc9fc83125e10623b9aef730f8d25f2bf5bead38ea9", "0x2c2339cf0ae7aff56091a568c1e2c3f01f52d8ed13400737fd31eaabcaffb9bd", "0x21f5fefe6b5fa0b5da71089befb74a1a39e52b4f830cb330c3c284e154614dfd", "0x1e6f6ba4b2444586b380dc4e2b3fad111ff1f4754420a846f53ea0789ebfb0ad", "0x1193d170b0b2dd0c4a04331a4b4aa3f12920f182ec3ab547837e30f1116ca584", "0x00000000000000000000000000000025704a15c9e2ce8a69558e7bbcdcbc7784", "0x2e5d36112770fb6c985681cafe40a8c99ad13f702309e7969801dd0ed080e727", "0x0eefc2585f591bb457183134e19ad643966272234d645514bf7868d6dd8ae2cb", "0x300803e4e2339ad39b9c31f228949bbeaf9c74b7101e7be1930b088126247eaa", "0x2bb562a50ed944b438b83b01f200101a34faef7f296a75c84c731755ebddbc1a", "0x1288e0b9c742af39cbcac21357c1b29511b0bbdd3d0e3cf5e14b2eef68a28ab3", "0x20f089131cc96d86ff1cfb67fa3f51670f4bad30158751b2587354bbec76cdf9", "0x1a26c6d3e633f9bf8434cf755b5f1217dad0d455071a97a7bcf85b824f5cf07a", "0x0d7e9b8a51fccf910ec25bdbd13e70b34bd6ea6f4d629fa744f9cdf5f2beb1cf", "0x0b40f28ce428e64df9cf5a024133fc420f39decf5f6af020cc3211ab298d4631", "0x0ca4f189dde7a55fe829f46681232904f6670249a22e0deb47222bd309523a8a", "0x2c544f2e31143783977645edb2a6bdb39b875053963bfa1a5b3ae9de204a7ebe", "0x00aae4454eb48fb18ff60db6b9d015abea2e770a2f7d86d121522b834c791ba5", "0x07d74e351fd4cccf4e18475d25211efa8a359066fc693a5c8505ddb507e4b74b", "0x07d74e351fd4cccf4e18475d25211efa8a359066fc693a5c8505ddb507e4b74b", "0x2d9e5bff47207d82533e2445959941181cc890c5779bc7f24d6e8a7b9e425b5c", "0x0aea3c0c317c441a5775a9849108d7a6889b39128235f717b09b184aa08e4eb7", "0x1ca5bc6fb37c55a562f4991901c39902f42d14db71284116df74cb4e7d55e493", "0x220fed26d64cd69f40e6d145a423e4a3c8cd0dce747e7d51647441270ad4d774", "0x15be574c9358889257aa2a30ff7b5fcc31a57da7032296e2c1201c49a44bbdb6", "0x2de539925525bedd3b7f43a9c6bf0f713151a17f79ac7ff4a9cd27b15ffe892a", "0x083086693dbf465211741e2cbff70ff38eb08383faf22d397eb2742c8ad7396a", "0x1fdfa258a890598816e807c50058d7a1462edd5ff196a2eae0f862e454b49aa1", "0x10c434c6daaa8226fa8e3e302123dfdc4455cf68063df518949df5a65a945213", "0x0000000000000000000000000000006472a7874de2c454a4591ed7784df1c104", "0x000000000000000000000000000000000008c46ac53d2c4ad0c26a5d6c790082", "0x0000000000000000000000000000005e422f9cfb8725800de60dfe0a8d4104c0", "0x000000000000000000000000000000000000f10fd4e4de81a0c00073ec91c274", "0x000000000000000000000000000000b20813090eca76bc6aa4a699b1ec8d5d6d", "0x0000000000000000000000000000000000292cc9f8a744eb00e0903c29ce87a7", "0x000000000000000000000000000000350a368b415fbb99fa90a26a42b1a3affd", "0x0000000000000000000000000000000000280eb9275cb05a3435f464d1dc369d", "0x000000000000000000000000000000280df6505e20c7725fe6d29439f96ee05d", "0x000000000000000000000000000000000017ef5033a08535451e2747827aa94b", "0x0000000000000000000000000000002f9ba89ae91b4e4a4ff8ccbd0526faad2f", "0x00000000000000000000000000000000001c2013561dafcc02cb03220bdf23c4", "0x000000000000000000000000000000aac102c400f9e5da0321ded4510994434b", "0x00000000000000000000000000000000001ec8ab9cc834b492fde124962f04a1", "0x0000000000000000000000000000000673dbd698da8b8cce450d2a083aba9987", "0x00000000000000000000000000000000000a49e55bb040249cb41c63cea901cd", "0x000000000000000000000000000000133d92af8d76ee0c74a12081ee7b2ef8c4", "0x0000000000000000000000000000000000240f552d1c6cbb007650e4b142e0a5", "0x000000000000000000000000000000e29c6e7d982ec08d51c79d6261c28d742d", "0x000000000000000000000000000000000021baeec04d9be419c923626034e7b3", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x1e940a528b42d8230e7d4dff76262a80986c0d00b2c02a9bc0559e36212d1547", "0x1ceccf21ac39f70d76ad6f7fe0dcb33b6af04555a0b1959e4714d65925e4e253", "0x096139d757046cdbdb7ee89a95f112f70882a43a46c2f739d9be115dda013420", "0x2f9c8ac67c7825b08eff0e7f7656a671f4c64e5601f2efab35b1b795801eec04", "0x2077e648e1704851cdffd7e6e56311634a7b741bab77ca34d9dff12a6a2bfe99", "0x115d48c4a97aeb3c447a060f9e0d675b0dc7f4a05a3f5776e2f279f3a165d7dc", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x000000000000000000000000000000fd38c45c3ec5b841482a80e3a56ce82555", "0x00000000000000000000000000000000000ad70b03f092f60af3e0ce1bb29d2c", "0x0000000000000000000000000000007a184d5342c90c634c0b1a050f0b97c9fb", "0x0000000000000000000000000000000000271f42abcb3bc1f0332e4b3ca85e1d", "0x0000000000000000000000000000008256322bbe2c1b8cd9d84e5ff6123477f2", "0x000000000000000000000000000000000025cab962761681dd9547f4c78814df", "0x0000000000000000000000000000008c4234510e5825c02b9ac427bcbf8e279a", "0x000000000000000000000000000000000013a14e0d7fc073c44643af38cc5396"] \ No newline at end of file diff --git a/test_programs/execution_success/double_verify_honk_proof_recursive/src/main.nr b/test_programs/execution_success/double_verify_honk_proof_recursive/src/main.nr deleted file mode 100644 index 315b5e01b50..00000000000 --- a/test_programs/execution_success/double_verify_honk_proof_recursive/src/main.nr +++ /dev/null @@ -1,30 +0,0 @@ - -// This circuit aggregates two Honk proofs from `assert_statement_recursive`. -global SIZE_OF_PROOF_IF_LOGN_IS_28 : u32 = 463; -global HONK_IDENTIFIER : u32 = 1; -#[recursive] -fn main( - verification_key: [Field; 128], - // This is the proof without public inputs attached. - // This means: the size of this does not change with the number of public inputs. - proof: [Field; SIZE_OF_PROOF_IF_LOGN_IS_28], - public_inputs: pub [Field; 1], - key_hash: Field, - // The second proof, currently set to be identical to the first proof - proof_b: [Field; SIZE_OF_PROOF_IF_LOGN_IS_28] -) { - std::verify_proof_with_type( - verification_key, - proof, - public_inputs, - key_hash, - HONK_IDENTIFIER - ); - std::verify_proof_with_type( - verification_key, - proof_b, - public_inputs, - key_hash, - HONK_IDENTIFIER - ); -} diff --git a/test_programs/execution_success/double_verify_nested_proof/Nargo.toml b/test_programs/execution_success/double_verify_nested_proof/Nargo.toml deleted file mode 100644 index 3ead649c879..00000000000 --- a/test_programs/execution_success/double_verify_nested_proof/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "double_verify_nested_proof" -type = "bin" -authors = [""] -compiler_version = ">=0.24.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/double_verify_nested_proof/Prover.toml b/test_programs/execution_success/double_verify_nested_proof/Prover.toml deleted file mode 100644 index 2a2b4b33586..00000000000 --- a/test_programs/execution_success/double_verify_nested_proof/Prover.toml +++ /dev/null @@ -1,5 +0,0 @@ -key_hash = "0x13fd5b632ce9e9d12c9ac56c150ed09413df3edf40d1b7ab8ced9f262ec61b29" -proof_b = ["0x0000000000000000000000000000000000000000000000042ab5d6d1986846cf","0x00000000000000000000000000000000000000000000000b75c020998797da78","0x0000000000000000000000000000000000000000000000005a107acb64952eca","0x000000000000000000000000000000000000000000000000000031e97a575e9d","0x00000000000000000000000000000000000000000000000b5666547acf8bd5a4","0x00000000000000000000000000000000000000000000000c410db10a01750aeb","0x00000000000000000000000000000000000000000000000d722669117f9758a4","0x000000000000000000000000000000000000000000000000000178cbf4206471","0x000000000000000000000000000000000000000000000000e91b8a11e7842c38","0x000000000000000000000000000000000000000000000007fd51009034b3357f","0x000000000000000000000000000000000000000000000009889939f81e9c7402","0x0000000000000000000000000000000000000000000000000000f94656a2ca48","0x000000000000000000000000000000000000000000000006fb128b46c1ddb67f","0x0000000000000000000000000000000000000000000000093fe27776f50224bd","0x000000000000000000000000000000000000000000000004a0c80c0da527a081","0x0000000000000000000000000000000000000000000000000001b52c2020d746","0x0000000000000000000000000000004bdfb9b586a637ceebd99ff26dcd3af427","0x0000000000000000000000000000000000265c2a5caf8e033e32d192807f5353","0x000000000000000000000000000000c0ab1db6ea40ac087cdc82c4a61ab00c86","0x0000000000000000000000000000000000010800ea8010f4bd3dd432d1cc11ed","0x000000000000000000000000000000eb3db3c41e3e636d686fd2903b1b913a01","0x000000000000000000000000000000000009bbab6b90377114c9e33d2a302226","0x000000000000000000000000000000758726e60ef4b211cf1c965fe08293365b","0x0000000000000000000000000000000000290ec193bc7f4f9006b9cea136bff5","0x0000000000000000000000000000005a2a389cd1702b3aa37f30ed974147d343","0x00000000000000000000000000000000001d83087d6efe0db3f482730b8d5e32","0x000000000000000000000000000000ad015051ed84c11d061e63eddbc3c0417a","0x0000000000000000000000000000000000155011c8b0167ff694740c48d67683","0x00000000000000000000000000000010c638a3b13dba3e77be3f10a3d096927c","0x00000000000000000000000000000000002372b9853214a1f76e5636dc26f146","0x00000000000000000000000000000005d9ca201c07bd4216689677feb9227715","0x000000000000000000000000000000000001dcf09921797dffb8eb21abef187b","0x00000000000000000000000000000070af16c9644b777dcf84d69e820e1ed895","0x00000000000000000000000000000000002d5e8f7eb7a4e20964dd94dc141534","0x0000000000000000000000000000003636871dbe453b366c3351be6e84144683","0x0000000000000000000000000000000000206464e290e4f4764365038ac77edf","0x000000000000000000000000000000175c20da35cc833dd542af57de9b62a2da","0x00000000000000000000000000000000001d2e31de3715e05ff6278f88e5a0db","0x000000000000000000000000000000328610e4eabb48be78d3c75f7c159205c5","0x000000000000000000000000000000000026720634b8076fee0a17b358b04653","0x0000000000000000000000000000000e5f48906892ffbff91e8b58ceabba0949","0x000000000000000000000000000000000013c349df687926ccb712622fc72a36","0x000000000000000000000000000000a4b8c9046c7e7e4cc19bbf9a367668eac7","0x00000000000000000000000000000000002a81128e53672c33bb0dae0ff18f41","0x000000000000000000000000000000edb79df57c4a2303ed1e5c2d7ed1e1bdaf","0x000000000000000000000000000000000018d3cea4ce204eafd70c0ded024650","0x000000000000000000000000000000e5f82856854fe0a2d587f6a9ae8555f321","0x0000000000000000000000000000000000235480ec2adc05f04261054345e568","0x00000000000000000000000000000083607465f60b70b092f606853f4d9e96eb","0x000000000000000000000000000000000006569e3a3174bcb71efe46f7fb7e0f","0x000000000000000000000000000000cb4d5fc546f20f63e3b7cf60341956f36f","0x00000000000000000000000000000000000e14b1932630bf606a637eabb7c80f","0x000000000000000000000000000000786f31c2e082aa7e398e6323bb48a27472","0x00000000000000000000000000000000002dd72746f5e5a4a438def122ae6bba","0x000000000000000000000000000000d007be60a28b744e49279fab277c8bd623","0x00000000000000000000000000000000000e52e2b940b9cd8d001209cc40f7c8","0x000000000000000000000000000000dd4357e24a1bda0b5a6c5eee657cfe9091","0x0000000000000000000000000000000000047bb24b20feb0b66089a96671c901","0x0000000000000000000000000000003fe7f42f34e3360ef0fa8bd9c17e6190a3","0x0000000000000000000000000000000000161d17a3848118e91b435b553d34e9","0x216fa2905e105e0c767687f9b5e81c2e4ce03abe2993ac8dcd9e8d89e088966f","0x1288ba942d41c7f4b048e125454253bc7d7ffc0875365c0b8f75a2bb3ea90b42","0x1ad706f84cffcc62fa030f1bc57cb478a687aa74c1019beeda9bab4e40d35373","0x03050c8016b8041a557a46840ab4166a9c2531eb7c3985a447996a334e0caf5f","0x2b3c485da75bdaef8cec120bd08bc21e3ff717740114d13d3811006215a1fb24","0x008fc8c76c4d8cbba8653bf0919c047d379941be60c7afc7250bc6bfc5f29ad5","0x1993ae2a0da54e5e643533fdefbf54a0df21115b2ee79a63a7f477c2c9c4a5d5","0x22520fa7fde2d72b9776c07c9b897ef7ce48f8a7937ec0cacb01d3e23f72b78a","0x259b7b9c1dbfe88d613102f0e8548f0c770a1c83876b26a5cb4b6790740cb487","0x043006102e519b8011d089f51811337fbdedc856a73842f7c8197be176b08d38","0x2222bd509df909ce38b67b3172b24c8ce1e0e1dd0d811f4fae6957e3418415ac","0x1b1204474652fa85979f0274145680718bed80466f4c91ad58f37df1b4fe2395","0x08d57251b42c0697535617ae239d7f3ef9d1558c1bb71fa01c68e7b5fd266139","0x04ca7f21f1d0ba50ecf00c615d18bf8f7291bb04f513cbef78fb6d03ed9b0cb2","0x070ae1119c80846863a4cd971e535ff87fe34473eb5730b14e5b30212b7b78a1","0x1128027ded5032cc265c96ff81d76e2ce06420702fd4e5bc4e24fda695961651","0x1ef7a9e5885b934eee2b44335157309de2f60519e50a8471e5e24495dff2a9fe","0x2d0dad89e5633da796c0c897804575879bc5dc7ad3805b44260943101ac9609e","0x287edcbd60e9d636ba1cd1c9ff3ec2b71b694112c65876525f5e2f8209cd747f","0x24b1157a1cb5bdbd2829de066b8c5573584f9b8638bf9bad476a1fe1172da4b9","0x1f9825731638cd1c43f7cf035b808a1704f122453318cb88fe3b1164f034e170","0x07003a6552f3a6ab1ad3e0717be0af049767b554ff88986c4e48224632523405","0x288002c2ff29874077b2c216a35cb61ecc97d12750a3a86574d50acd42607095","0x0a12fc37918ce7dcbd0d354a05bdbb409a8e4530d86f3d8ce07231240590f65c","0x2ec631b05fc693b07286eecf6b6ac1aef0d073cdced8e050244ec7cf4e8f6e42","0x107bc98da225efe7749d51b9966c3edd6c245f2e5cf183a924ba982817e4525a","0x2ca603f77ea0ca42b6f38cd43bc3cc09442906373a2f197fdc976533066ac343","0x138ace5653809375aa9d95240fa9b6508860a471aed70bcc8b7dd52ae34809f3","0x21e1eb924951881c3d0ce5657d2e26a3e5150ce8f49c9e4d0476c5fdf1e43a54","0x2e2daec93f5e94f6784ce569883cf285da12244b38fb001b94bfb99bb4de060c","0x186a8d30c973bef6286115865a690a2528adbeea8376e5221fffeb6a135d9904","0x1e0d9d90628be31ebc16ef1d85d5f9e6fb8cb57e6a74e576f958cf21db45042e","0x124ceb5e1d9da6d0fe163e961643bb0423c926ef4e0c583eaba9e32d99ec6c7c","0x2db34cc38a50bfea50750830710c13b4d80f4ec0e8df8f186047ee36f338eeeb","0x0b174aa403b42235d5bdde8e9f5bb6c52ae62fec2884334cbe3e53418bd2463d","0x1571ebd9c3854c2f63418f206c6937495450ab9238a238b9c63fbf5867378c5b","0x24f92d1ab27e5810e5b7f4b31254526822f866602922258135c5eb5a2b21ca04","0x20cc7f5ba8df67d9c95642e2662654eb2305c6a280ce1747aec88a581ee50647","0x24112b99f63bbda7487709396dff22aae89ae809263021b65503ff7f809c7e38","0x06805c80f64efd1fa7f08382c9981aad9cecad78808da670477566674141bc48","0x146d4801d6f5898051ee0d7c95375a65ea0e6deeac6ffee1d9b9cf64da72dc3e","0x000000000000000000000000000000425b99a5c96b22ba0286d9ebeecf8e4559","0x0000000000000000000000000000000000110be4b8fe46a96303c205d3a1d61d","0x000000000000000000000000000000d9ff7ae757f2f0c91d1f1e71fac1b27b74","0x000000000000000000000000000000000009b0c285f6c221f6eba93b1e330ac4","0x0000000000000000000000000000004055cd5738a25ab1860a1e35555962dc19","0x00000000000000000000000000000000001a8726ccf54e17cf1b005e3e04879a","0x0000000000000000000000000000007be4dc343e9c2e0d4a9156f1ef9769f65a","0x00000000000000000000000000000000002b0e96f68f6509615ca0544dfa3107"] -public_inputs = ["0x0000000000000000000000000000000000000000000000000000000000000003"] -verification_key = ["0x2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd","0x0000000000000000000000000000000000000000000000000000000000080000","0x0000000000000000000000000000000000000000000000000000000000000005","0x0000000000000000000000000000000000000000000000000000000000080000","0x0000000000000000000000000000000000000000000000000000000000000011","0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000002","0x0000000000000000000000000000000000000000000000000000000000000003","0x0000000000000000000000000000000000000000000000000000000000000004","0x0000000000000000000000000000000000000000000000000000000000000005","0x0000000000000000000000000000000000000000000000000000000000000006","0x0000000000000000000000000000000000000000000000000000000000000007","0x0000000000000000000000000000000000000000000000000000000000000008","0x0000000000000000000000000000000000000000000000000000000000000009","0x000000000000000000000000000000000000000000000000000000000000000a","0x000000000000000000000000000000000000000000000000000000000000000b","0x000000000000000000000000000000000000000000000000000000000000000c","0x000000000000000000000000000000000000000000000000000000000000000d","0x000000000000000000000000000000000000000000000000000000000000000e","0x000000000000000000000000000000000000000000000000000000000000000f","0x0000000000000000000000000000000000000000000000000000000000000010","0x000000000000000000000000000000ba765ed919550454064328e0fd7c51ff4a","0x00000000000000000000000000000000000418b2f4104c289eb20cb95344c850","0x0000000000000000000000000000006defa500aab13c8cf3c00117db573bef2c","0x000000000000000000000000000000000026dea3ea8fb7e77b5bfa8443397dc7","0x0000000000000000000000000000009a5c33c4054817f3402e68aeca4728a405","0x00000000000000000000000000000000002abf5ea67ec384cb2e5998c7a48b3a","0x000000000000000000000000000000ee78817f7d959ea45abb27404e3371c708","0x0000000000000000000000000000000000260a979e8190a83b0bce1351b92d3c","0x000000000000000000000000000000ec447bd83a83883ce4c11573ce24845c74","0x000000000000000000000000000000000005b23c2076f50d10baa061a67b9200","0x00000000000000000000000000000058ffc16cfb64ec06a56a2b1a9047fb8f0c","0x000000000000000000000000000000000011d2f5833d720e1d0a02749471e7ad","0x000000000000000000000000000000416dd6c8c0d1cbb185b3c3197eac767d0b","0x000000000000000000000000000000000023b9c5a4e525926d64247ec92e0baf","0x000000000000000000000000000000a55f5f52ebc8936a58e413a1068d94d376","0x00000000000000000000000000000000000be3f377ccc88a6cb5df6f230da95e","0x00000000000000000000000000000070a162a08d4d4800f450af94888f8f3480","0x0000000000000000000000000000000000085883b02590372a7b36a1c57db4c3","0x00000000000000000000000000000045b0b661ea73930ee3327ccff8a0ca9ce1","0x00000000000000000000000000000000002854cab8629792eb07e9ef81bc46ee","0x00000000000000000000000000000067f365021e0e42117c43a39419d1d9cc73","0x000000000000000000000000000000000022c370b38f0a97eb3d718146f2284b","0x00000000000000000000000000000016de6670aba605233072b8eecfa9069b06","0x000000000000000000000000000000000002c29c49d66457bcbd4fa5bf6096fd","0x000000000000000000000000000000e32e8ce4f18ba30ce53245044d0c60508a","0x00000000000000000000000000000000001170220489121b8eedd58a4b5599df","0x000000000000000000000000000000139ed828b410380d053ec0f056656f5703","0x0000000000000000000000000000000000072aebdce25ba333c86769adec1362","0x000000000000000000000000000000aa352ee565f91fc2b73323fc824bc14636","0x00000000000000000000000000000000001f3e272a192808ec9283ee3bb4df4b","0x00000000000000000000000000000005c72c8c88be0259ae226ccb0488452b4b","0x00000000000000000000000000000000001c68407d694502b929b77cbbab8374","0x0000000000000000000000000000003716bda8267f29931ed0aa811e4607f1c6","0x000000000000000000000000000000000007d888936af2141bb2f6823a587e81","0x0000000000000000000000000000004cf1a4f39c5363f70ecc9e433d751ea529","0x00000000000000000000000000000000002e8a81232ec84e48032178f1ee6edb","0x000000000000000000000000000000388e8265061fa0c92c96fc85d99bac7891","0x00000000000000000000000000000000002e3c516222565332e6e7362400bc5f","0x0000000000000000000000000000003a68d13661a0906e5828fe8271a336bf64","0x00000000000000000000000000000000001412d3e67497c98e5ec2aaee8779f5","0x000000000000000000000000000000b5d123498733b5279d8bcbade0d8345ef7","0x00000000000000000000000000000000000fa572890537089a5fb36953e7a1ca","0x0000000000000000000000000000004d8ff057fc9936a693035266c80c6ea57d","0x00000000000000000000000000000000001907a614968d777fcc506f639799f6","0x00000000000000000000000000000010769533212d3cafbf6ac378c8055c33a2","0x00000000000000000000000000000000000eac32851272327acdc0890792dfb7","0x000000000000000000000000000000e3e32f343643d319a977beb0c2b0ab9b31","0x00000000000000000000000000000000000c10c4c9dce6ff648ef70f54d45ba6","0x00000000000000000000000000000025721304165b9b313b94cf2c77b61dc1ef","0x000000000000000000000000000000000024b8083b0f323c2703a7255caa7078","0x0000000000000000000000000000002b860372c65049c88f6532cbd360917b11","0x000000000000000000000000000000000011ee2ac2bc36cdfdc107eca47369f3","0x0000000000000000000000000000001c1b0233882acb5a78a977642e4dce91d5","0x000000000000000000000000000000000020922a70853993b3516eeb01d7c8a4","0x0000000000000000000000000000001f90b5fade69a55a2da8d2db3c62b62d7c","0x0000000000000000000000000000000000173312bb89c6722b548ff87a7487a2","0x0000000000000000000000000000009d618ffd933cf58a8a0953dc76f97cf108","0x00000000000000000000000000000000000ddc3b6d8e59cf0996ca71ad4132ca","0x000000000000000000000000000000ec4c6a253f431d3f3fc06aa0e5b0448b8c","0x0000000000000000000000000000000000153193287060386695f4f2d0d3525d","0x0000000000000000000000000000004bd25585edb9319128045c005d48491b1e","0x00000000000000000000000000000000001170f0ece62f8c572bca96b141d27f","0x0000000000000000000000000000003dd2e37b8edb1f56b785809d7710bf1c88","0x0000000000000000000000000000000000246cd041690f653f88ed0c56ad282a","0x00000000000000000000000000000034bc8a00ce9d452888e5fc2b5a7e14fed7","0x000000000000000000000000000000000026153c937447356a0c6d6be09d85eb","0x000000000000000000000000000000555388ad9364679246b07992f84b4e91b2","0x0000000000000000000000000000000000189da022421fbd8dfd7973084d978e","0x000000000000000000000000000000e8c0f9753e2a5a35acec051fafe2cecce5","0x0000000000000000000000000000000000285311c5e9a4cbb56a3f04f29d5443","0x00000000000000000000000000000092d2d0ac76a1be7f1fad96cbd997175312","0x00000000000000000000000000000000002436400260c9d3180beedd0bf49fec","0x000000000000000000000000000000887d86d95387bbb29616cc5c41ee4a2669","0x0000000000000000000000000000000000063bf32f8addf7a3e1cf6cd223cb71","0x000000000000000000000000000000d841dc7d9da6cc699e8377b2a04723fea0","0x00000000000000000000000000000000002ce091428268c212a2bcfea0edb338","0x00000000000000000000000000000012fe4771092fa47e4d6050701527133f09","0x00000000000000000000000000000000002f36672865c5ae4976486fdaf2d81d","0x0000000000000000000000000000008e6bced56a3d94dfe9d476da3a424b8eff","0x00000000000000000000000000000000002d6303cf28aa721f4e5348a0d83642","0x0000000000000000000000000000008c5807dace05b2079d200f7f71caffdaf7","0x000000000000000000000000000000000008f7beb50cb16f3b6210aff1bdb05d","0x0000000000000000000000000000004f9ee08a49536eb54a238b982c4dfd5446","0x000000000000000000000000000000000014f55e7065eabacf1a7d6cbf1f6765","0x00000000000000000000000000000021150153ec654b02a66d9bea056185877e","0x00000000000000000000000000000000000e7bf50a142b21057bcfd340a5e77c","0x00000000000000000000000000000038110629263a662f10464b375f988cccda","0x00000000000000000000000000000000001964a0ab814f71282cd159df492710","0x000000000000000000000000000000b9310dd49ea52ba735b9654ebced7bc67b","0x000000000000000000000000000000000019ad72f92554ce44921ca3f420f995","0x000000000000000000000000000000d67d7e81fa6e1cdfae6d84510a8cb7e257","0x00000000000000000000000000000000000a6ec9d85c10a85e8f31eaedb4e459"] -proof = ["0x0000000000000000000000000000000000000000000000042ab5d6d1986846cf","0x00000000000000000000000000000000000000000000000b75c020998797da78","0x0000000000000000000000000000000000000000000000005a107acb64952eca","0x000000000000000000000000000000000000000000000000000031e97a575e9d","0x00000000000000000000000000000000000000000000000b5666547acf8bd5a4","0x00000000000000000000000000000000000000000000000c410db10a01750aeb","0x00000000000000000000000000000000000000000000000d722669117f9758a4","0x000000000000000000000000000000000000000000000000000178cbf4206471","0x000000000000000000000000000000000000000000000000e91b8a11e7842c38","0x000000000000000000000000000000000000000000000007fd51009034b3357f","0x000000000000000000000000000000000000000000000009889939f81e9c7402","0x0000000000000000000000000000000000000000000000000000f94656a2ca48","0x000000000000000000000000000000000000000000000006fb128b46c1ddb67f","0x0000000000000000000000000000000000000000000000093fe27776f50224bd","0x000000000000000000000000000000000000000000000004a0c80c0da527a081","0x0000000000000000000000000000000000000000000000000001b52c2020d746","0x00000000000000000000000000000063cb03b1d83ae3942e11ca8ec63055898b","0x00000000000000000000000000000000001edaf70d547a857fbed6a9ff8a38c9","0x000000000000000000000000000000097fb881332193ff4489e213f600e6a007","0x00000000000000000000000000000000001f2903742639c3595d22b96d4d9c21","0x000000000000000000000000000000bca7215bb1bcdde52ed9cf845b7e54072d","0x0000000000000000000000000000000000188bd12b19073eb01e8be5bda41b3e","0x0000000000000000000000000000007d1a114656606c391bfb286ea4e14062a5","0x000000000000000000000000000000000026d8a3b8821da41b6b1d6b85872260","0x000000000000000000000000000000c49078b857741b82cba39d8a394c1876c1","0x00000000000000000000000000000000002f9b9f76f80a4ff456e60c024f8d03","0x0000000000000000000000000000004bab3e60680935219213ea32be70ec5100","0x00000000000000000000000000000000002c45bda56f0115cfde2678889694ab","0x0000000000000000000000000000006434e56313172088d5a6b10fdd1b94b4ca","0x000000000000000000000000000000000007ad41e7980534fc2f89e8ad7366ad","0x00000000000000000000000000000023d769c68ef65f0b4f06a01e655fb265e7","0x0000000000000000000000000000000000008d3b5d5b201ed6773c369fe20d10","0x0000000000000000000000000000005eacdd2121ba4b1cf0df09632df6991fcf","0x0000000000000000000000000000000000005e98e857c8c1eb16cef913e44f90","0x0000000000000000000000000000003449da35dc7c0b67b0c3e99ced603ea381","0x000000000000000000000000000000000022347c8daec6739b183413a787fd13","0x000000000000000000000000000000df23d8f1ac4ddfced428737db15e63f603","0x000000000000000000000000000000000015e03670ba72d84269d764d8f8e725","0x000000000000000000000000000000457a7f854dbab545c8c94ccdb8e4b9ad45","0x00000000000000000000000000000000000a268fc41b7031912cec59dc0a7078","0x00000000000000000000000000000022fcb55824b67af33225f8f2e614fbbdb4","0x0000000000000000000000000000000000235f698e6aee7bf8ca94f4a44db006","0x000000000000000000000000000000a327da390bd3e01e4a7b639605fdfd9c42","0x0000000000000000000000000000000000210196c4fb53d660a3824867b2b1c5","0x000000000000000000000000000000728fb44750fa2b956221bd441fa61e32d6","0x0000000000000000000000000000000000073db9e2cafdf0fe22b5090855533e","0x0000000000000000000000000000004fe310e93730876891eebab46db9496dbc","0x000000000000000000000000000000000007d3574fe79c87011abdbd51a46670","0x000000000000000000000000000000adc522f42e085c51403fc50c83f35904b9","0x00000000000000000000000000000000000d2d9ef8fc0031b4568842a99b34eb","0x00000000000000000000000000000098586d928c8abc7cc56d571c8eded52168","0x000000000000000000000000000000000024279c001a40e94d3d149ec01a468a","0x00000000000000000000000000000066122aaf47d9d5060a2ce1d17cc5201be0","0x00000000000000000000000000000000001c21031d83d52e27867a611229d2ca","0x000000000000000000000000000000838dfc066499f7715682f755b42f3a4869","0x00000000000000000000000000000000001f816d2c5b2e903496f1443cb91de3","0x0000000000000000000000000000007ef917b6df805f430f8a0833942a7c3094","0x00000000000000000000000000000000000a9cefe716f31dbe37485179d60f0e","0x00000000000000000000000000000028adb1040bd0c07448de51d5cac9fd0495","0x00000000000000000000000000000000000c66b25a22c8b3ba82ec09ab4bdef3","0x2cc791d253f03f47cc88f7f0aeae481762f4aa6426712772544aaeca72466cb7","0x14197950f448f679eeff75c4e83dac9f0ebd5aa194709ea3875fb4e4b15bc2f2","0x1a92022c2ed8f8a41e3f392e22f1875f6916543bbb22c3aaf50d703de649c381","0x2ee77a26e78d5e1093dabd3612beee4b515a4f159992138e13ecd3f0afcfba18","0x2c280cba627b147142a2d333ee856000298708f9b5df0cc8d23c26d0936d6869","0x1b2569bb6f6b60b6f743ff892a39a490770d4ad40a961a06149d4968b0487a40","0x2f80351e43621d69b7e620338b2822e15dec9e6a2de16e8d04bb559153cd53a3","0x15a78b8ae9b3be431b609250b69c7cb746c6a689b2122150f258c6f7d67409fc","0x1334c47f273be542576813933e89a9130a342846272b39a2eab3ab7fc022d5fe","0x1031bdcafc5c0dad81c8b6c4931c9b442cd0c8a0bb9a729cc2f6bf0a18dc1b82","0x177f92f0cef76c5c45f55d16fa2be426354cdd4af6ac9aaad479c9b47f88656d","0x0064c0e0ec8984d612189e5287d59eedc1a6de52fc78bf72028f744350c27a0e","0x2c06222cf0d415c976e6904f1706b77cf438636ada3222e1c31c4957d6877dac","0x173da534b7001f44f19bb3e3f8601ac94fbf90b2e39b7d4079d8fac2d65102ea","0x012909bcdbd1167010cf0084028e851f3448f58946f4951b1b8d544d86b138c8","0x2975c3987f110c06bd8ced1d8bb0d398ac72c6f196ea639bdde58fa4b899d4a0","0x05c196fb2f6ccfd92a38ae526af85bccc3695ea0e2561e7a211c60360187602d","0x18a288590dd0cbfe5b7652458c9caddc9eac2f08e5822b64141ed1b4e805bda3","0x0cd08c41605b22a7ae31c3961486f645a32bff0ccaef63b6d661ef356db78560","0x05d5e48184693259f722f84ea48f9b84667d1e9db19e1381b2279fe24b01484b","0x2187a6f6a2398e5f0137880a983ff6b682b5a7c2b62e4bdfff6ff6becd0d53ab","0x1d4764ca9346e8ac48675320521e0daba651f480efe932302e8a9673580fc0d8","0x00cfcb920adeb0293acf26e63aeac4489622e4c806b93f1c72f8491cba3d0196","0x1bcd6a556800b8385ba1250afd69999fe2bb5518a6ba2cc461a4afba21ffbedb","0x11a15b3c8ef0e4ac0ff151fba72b922f6c005519151a4f88557352265944aeea","0x063d550a154f2ce80b08fb169d137fa96dcea6a6c489e98e1390aa9a5db18928","0x25da993132041b9f667de044194f5c6b0cdae961cdea5f6dbbda8595f213ac08","0x22fcecc2e3794814bbb84700031cd75ec9817201c8c88df2e86407a14412f902","0x01583d25d2f91d646da02a520d3dbf758b0a0590a533bd1417a717fd0cd18915","0x18ebacffdc81e15547232dfc1a0e31ec2848a1e5b9c8509a92432c2549d93091","0x20a3d15aa70d04a841802fe1d990f56c6b9e6eadc17da2c0dfd2a817e6cf0430","0x0b497cc2e54412ce07c52effdce6c01de2c1a0e1d095a2a37f5351232400c0a1","0x14419bb69d02675b8d58e60ce88a2f4b6a43674461e4015e2e302285a42c5784","0x0c84db03ff77d0729bb68eab2d6d697b7caebd4ea3db781499492a6f0ef67765","0x1a676b1c6b0ab1c85b31af681e05751296c3d0a1a883668f5fe971827ce86fc9","0x08da949bf7603bfe20f3c152abe727051c6306cff322197e8fa56b390f565b5b","0x1fd77e041239f94e907dc3ae3069a70cbff726b9d8b3a368a4910c8a070a9c9a","0x03755d83a4f0fdfbb4fd1b2b465842e1bb707a419c2952a2ca9faba50d4be379","0x0ee90c8166adcb238d85c72a85db2248353610c55390a2ed54e59dd1c35c12d2","0x170bcd78efaa1b19bcfd065c2ec60b48aa1e62465df73e62f3bd291115315144","0x015d60e5cc5c7d67853993261bd9e3c6e56f95dee8724ce79c7601ee10c1a731","0x000000000000000000000000000000f0a8b99d65fc1555bafb688233a6489aea","0x0000000000000000000000000000000000043849f038ec96c8c1c6e242351361","0x0000000000000000000000000000001ad41d3dfebb280623d5b325f0a7aa38f7","0x00000000000000000000000000000000002e5f2119536daa9e6d1f9b82b797dd","0x000000000000000000000000000000e5570c2b6e74d0994e2fc8be1a9dab4160","0x00000000000000000000000000000000002ed426a78ed52d4c13f2c651a6d4ec","0x000000000000000000000000000000aba14637487e4d3ca30dc397416696c85c","0x000000000000000000000000000000000005ae1eb3eee0cdf5e5c7bb0ac9be07"] diff --git a/test_programs/execution_success/double_verify_nested_proof/src/main.nr b/test_programs/execution_success/double_verify_nested_proof/src/main.nr deleted file mode 100644 index 75a5fa9ebda..00000000000 --- a/test_programs/execution_success/double_verify_nested_proof/src/main.nr +++ /dev/null @@ -1,25 +0,0 @@ - -// This circuit aggregates two recursive proofs from `double_verify_proof_recursive`. -// Recursive aggregation is a backend-specific process and it is expected for backends -// to attach any extra data they may need (e.g. aggregation objects) to their proofs. -// Whether the proof we are verifying itself contains a recursive proof is expected to be -// a circuit constant by the barretenberg. Barretenberg hides this circuit constant in the -// proof serialization. Thus, we must have separate circuits for verifying a normal proof and a recursive proof -// with two different proof sizes. -fn main( - verification_key: [Field; 114], - // This is the proof without user-specified public inputs attached. - // - // This means: the size of this does not change with the number of public inputs unless - // they have been attached by the backend. - proof: [Field; 109], - public_inputs: pub [Field; 1], - // This is currently not public. It is fine given that the vk is a part of the circuit definition. - // I believe we want to eventually make it public too though. - key_hash: Field, - proof_b: [Field; 109] -) { - std::verify_proof(verification_key, proof, public_inputs, key_hash); - - std::verify_proof(verification_key, proof_b, public_inputs, key_hash); -} diff --git a/test_programs/execution_success/double_verify_proof/Nargo.toml b/test_programs/execution_success/double_verify_proof/Nargo.toml deleted file mode 100644 index c5954f54bdb..00000000000 --- a/test_programs/execution_success/double_verify_proof/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "double_verify_proof" -type = "bin" -authors = [""] -compiler_version = ">=0.24.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/double_verify_proof/Prover.toml b/test_programs/execution_success/double_verify_proof/Prover.toml deleted file mode 100644 index dff48212e50..00000000000 --- a/test_programs/execution_success/double_verify_proof/Prover.toml +++ /dev/null @@ -1,5 +0,0 @@ -key_hash = "0x096129b1c6e108252fc5c829c4cc9b7e8f0d1fd9f29c2532b563d6396645e08f" -proof = ["0x000000000000000000000000000000d62b795bec274279129a71195796825fcc","0x00000000000000000000000000000000000793ab763140f20a68a6bd2721fd74","0x00000000000000000000000000000053141d06d3307b36153f321511199e579c","0x00000000000000000000000000000000000a4b55d6c21f98a9c434911dcb5c67","0x0000000000000000000000000000005f9d324c0abd22cec92d99dbec438e9491","0x0000000000000000000000000000000000240dfafe1b53dc27147cbab14ea893","0x000000000000000000000000000000044a61d3aac32c6931247cf334a19d9611","0x000000000000000000000000000000000003f0f8cf4207bfa85c23ec9f8d0c88","0x00000000000000000000000000000002168a470e39ba2ac266f6b474de12045f","0x000000000000000000000000000000000025791e7d3feab542345c00ec5a30df","0x000000000000000000000000000000dcafd76d4c3640969c80e017b951ef6397","0x00000000000000000000000000000000001d27f75a1256771e88e0c86fc42dbc","0x0000000000000000000000000000007347ae7d2d9d7fc2b8f0baa014ee1fed9f","0x000000000000000000000000000000000018bd927f42bf7caf9555f56f09000d","0x000000000000000000000000000000041f765f83cbe5904c8f453f70a4531d10","0x00000000000000000000000000000000001858aabeeb5331a221419f4fed1c19","0x000000000000000000000000000000d254a54caaedf8287b9af951b2f2611121","0x000000000000000000000000000000000005ab493623c9563cf2e55ba5f18200","0x00000000000000000000000000000014f24cddc1a02440dc63637df8032c8074","0x000000000000000000000000000000000011950c16cef98471b1d78b935195a4","0x000000000000000000000000000000b0340b459e6bd5cc8f031c8654a502897f","0x00000000000000000000000000000000000e1cf3968dac4545a76a2ae58e512c","0x0000000000000000000000000000002adf7218aa06ca0d2c2e600dcc39193a2d","0x00000000000000000000000000000000001302e7e4b0f14749bd885ca25588b6","0x00000000000000000000000000000092009ce4056e79ab815d8cdfd4491138ae","0x000000000000000000000000000000000018af11e853c6cf2f0f6274b0da8133","0x000000000000000000000000000000dd3dc6f49232141718527b3a0e4b26e21d","0x00000000000000000000000000000000001a877853348a8b695c4f9a9aa4ce68","0x000000000000000000000000000000aecfc56ba07155450b368140d6324023b5","0x000000000000000000000000000000000029c11052798c57ece614617d33fcc2","0x000000000000000000000000000000eb106ffc816d16fb84e84b0b61157b2603","0x000000000000000000000000000000000026c3cac16206899a21cb5126841446","0x000000000000000000000000000000a782ed54805fe845068b362b58e2fa34ec","0x00000000000000000000000000000000000cf046a1bfcc666b7f28b572676073","0x000000000000000000000000000000b931c8dda60bb4aca4cc817f5540f1209f","0x000000000000000000000000000000000024ad50c3936fafc3d190e6a4874223","0x000000000000000000000000000000cce90cfbaf5671c8c8652db28a3a9566f7","0x000000000000000000000000000000000003574db9d0f84380c9635660f86354","0x0000000000000000000000000000003eb3e1dc31846a90f721e7a08c6d6dc4f7","0x000000000000000000000000000000000028999a700cd1abae1a288eebb9a91c","0x000000000000000000000000000000c1be4d385b11387e14eb9817050d772f78","0x000000000000000000000000000000000003c56b5bad8b4484c66ac921f1f102","0x000000000000000000000000000000ace245cabf0f00dc7fd253dd8af0377a14","0x0000000000000000000000000000000000107f1731fcf34b364c813599fa1df7","0x035b937d404932b542b706eb810ef4a7dca4566d4dde1ad6a8717f46167ead7e","0x17608cef3dc7960f41cb1295706df663727d45ee598a61e05e989d111449fb65","0x054712a950ad67da3aa860e49e6891f99b586b7f37caff94eb013fdb374b61ee","0x04b755083086c769b7f593e0e48d68dc54be808203351380ca5566a48149d8bb","0x17d7670b0915235f626fdc1d7e1134d2be906ef138d7843384b3ebc23b1d630f","0x064cf544ab5f4e3dab47960502cccc83321fb275068dfbdd3a2fcbc6dddcaa65","0x083338262712e2b66769ea40d9f412b18caa1bc81a51ff5a50b6c41f8c4b3d23","0x0cdd38958cab97defde00f4a5961b6fd676e29d9f2c352f6bb2c68b91f83f8af","0x02c8bdd005c2f43a0a8cbb2744916ce5c322dfa5b23367a829c12699f4036d32","0x25bac73c7e7b659fbea3135b7a0decf9db8dc3045bd2837dae337c64cc722546","0x19eb361aa419d37bce3d2e8b2b7692a02a9559e83d7f3d8fe9169970fbbc2cba","0x2494bd5106d00e05c7ea60e632e9fe03773b7f2c5b662aa37ec512a01f4a0775","0x18c52c2f2c6e7be1d7847c15e452a3a9c64316103d12e4b5b9a82fac4e940ee9","0x0e0342810456ef78f498c1bfa085a5f3cbc06db1f32fabd0ea9ad27dccac1680","0x024c13d6ef56af33ed7164ea8e47ddecc8a487b000d8b1b45edcd3895a503ba2","0x26e0d127f626bd39b55bc5d0c131dbf03fe006dc5c3edc57dda1e629799a4317","0x1b1140061bc52b15c4f5e100729a81968ee79dc03deb966a18850335a8e44a8b","0x1bb76f945199e71d531a89288912087a02dd0e83020e65d671485bf2e5e86e1a","0x29269900859c6d86e404185b415bf3b279cd100f38cfdb0077e8d6a299c4fd35","0x22b5e94bae2f6f0cdb424a3b12c4bf82cec3fb228e012c1974ed457827bbe012","0x18d3543a93249778e7a57936170dae85ffc47c2567f2d0076a32c0bb86fcf10a","0x03721dc2670206cde42a175fd56bcce32cf6cb8801450a8e8e4b3d4e07785973","0x2806db136dd214d3ac1478460855cae6a4324ab45cab35320d104fee26c260e8","0x1c3749f1937082afbbae9375b9be708cf339e1983e57ef4447f36cfa560c685c","0x1067b8cfb90ef08bcb48aea56b2716334241787c2004a95682d68a0685566fd0","0x0f41aee4416398f1d48ffc302403273cddef34a41f98507c53682041d82e51ff","0x10d854c9f0bfbdff7ca91a68f4978e9a79e7b14243d92f465f17bdf88d9f64f8","0x00000000000000000000000000000000018938b11099e0cdc05ddab84a153a97","0x0000000000000000000000000000000001d7dda1471f0dc3b3a3d3438c197982","0x00000000000000000000000000000000022682917da43ab9a6e9cbcece1db86d","0x2453913e6b0f36eab883ac4b0e0604d56aaeb9c55e641135173e63c342f1a660","0x05216c1b58dc43a49d01aaba3113b0e86be450fc17d28016e648e7162a1b67fb","0x152b34845a0222a2b41354c0d395a250d8363dc18748647d85acd89d6934ec56","0x1dfc6e971ce82b7dcda1f7f282713c6e22a8c79258a61209bda69719806da544","0x2968dd8b3af8e3953f1fbbd72f4c49b8270597bb27d4037adc157ac6083bee60","0x1b9425b88a4c7d39b3d75afe66917a9aa1d2055724392bc01fb918d84ff1410e","0x04ab571f236d8e750904dc307dd274003d9130f1a7110e4c1521cfb408877c73","0x2ad84f26fdc5831545272d02b806bb0e6dae44e71f73552c4eb9ff06030748c7","0x020e632b99d325db774b8630fb50b9a4e74d35b7f27d9fc02c65087ee747e42c","0x09a8c5a3171268cb61c02515c01c109889200ed13f415ae54df2078bbb887f92","0x1143281a9451abbb4c34c3fa84e7678c2af2e7ea8c05160a6f7f06988fc91af8","0x000000000000000000000000000000cbda736ca5cf6bc75413c2cc9e28ab0a68","0x00000000000000000000000000000000001ee78c9cc56aa5991062ae2e338587","0x000000000000000000000000000000bc9bfcdebb486f4cb314e681d2cc5f8df6","0x00000000000000000000000000000000000ad538431d04771bca7f633cb659ff","0x000000000000000000000000000000d45b317afcefa466a59bba9e171f1af70c","0x0000000000000000000000000000000000133c50180ea17932e4881124e7a7c6","0x000000000000000000000000000000fc9ed37f543775849f3e84eaa06f77f992","0x00000000000000000000000000000000001372873c9c051d1baff99248b8f70e"] -public_inputs = ["0x0000000000000000000000000000000000000000000000000000000000000003"] -verification_key = ["0x2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e80","0x0000000000000000000000000000000000000000000000000000000000000008","0x0000000000000000000000000000000000000000000000000000000000000005","0x0000000000000000000000000000000000000000000000000000000000000008","0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000092139c61bae1a44f0fc7689507414be688","0x00000000000000000000000000000000000160ce4e279582f91bde4f03f5e9a2","0x0000000000000000000000000000005dc2d37f658c3b2d60f24740eb13b65d79","0x000000000000000000000000000000000007e3e8a5d98a1177ec85bf88f163a5","0x000000000000000000000000000000dc3035fbd7ff16412a8fd7da587a935298","0x000000000000000000000000000000000023d08e2817ac16990004ed11d8fc66","0x000000000000000000000000000000356a5ad59c646c746a8d09f5d154e47c4f","0x00000000000000000000000000000000000708529196af3c8e16ffa580c26182","0x0000000000000000000000000000002ddfe70eb7a1280596e8e4a804f118a6dd","0x000000000000000000000000000000000013757e15a0905f298303784a161b21","0x000000000000000000000000000000a23a729df796935c7824e3a26be794829b","0x000000000000000000000000000000000005775b6c146c4a59856e869fe5a70e","0x000000000000000000000000000000eef0c9e088fd2d45aa40311082d1f2809b","0x00000000000000000000000000000000001d539ccbfc556d0ad59307a218de65","0x000000000000000000000000000000a2c848beceb6ab7806fd3b88037b8410fc","0x0000000000000000000000000000000000177004deeb1f9d401fd7b1af1a5ac8","0x0000000000000000000000000000002508eb63672a733f20de1a97644be4f540","0x00000000000000000000000000000000000d82d51f2f75d806285fd248c819b8","0x000000000000000000000000000000d002f9100cbba8a29f13b11513c53c59d0","0x000000000000000000000000000000000006cd3b0e3460533b9e5ea2cdc0fcbb","0x000000000000000000000000000000f45ea38a93b2f810c5633ddb54927c1c96","0x000000000000000000000000000000000021791de65f9a28ec7024b1a87ab4f3","0x000000000000000000000000000000926511a0439502c86885a8c6f0327aa7ad","0x000000000000000000000000000000000029fa14a969c5d81ed3abbbfb11220a","0x000000000000000000000000000000b84c3258e8206f560e5b5b18cbeafef87e","0x00000000000000000000000000000000002a910445cd8fc895e5d235cd8ea185","0x000000000000000000000000000000887e67f15e84bcb8507a5064a363f6043b","0x000000000000000000000000000000000014dc6643d801c3ef27c2066b6e2bb4","0x000000000000000000000000000000e38e900b42c314ba803088e8fbf125203f","0x000000000000000000000000000000000020690fd4869db418306046b38161dc","0x0000000000000000000000000000001e2fa856bf7951b8292b1e88185993629c","0x0000000000000000000000000000000000048a85e0bbac7c60ad3d78f601f63c","0x0000000000000000000000000000006f457719495073d3666d77a625aeab0c51","0x00000000000000000000000000000000002623ad892dc62b1fa7d0a650f0d470","0x000000000000000000000000000000dbfcc8a467e021c03b13f74a9f79c3a10c","0x0000000000000000000000000000000000295f6f10976c37bd9c6f96bb7187d5","0x000000000000000000000000000000c13ef9a937cc12420fb38d9ab8e848e85e","0x000000000000000000000000000000000003560a3b334e887532f605c9cb7628","0x0000000000000000000000000000009bcebf08a4599cdda0fb96312d4dc0c7a9","0x000000000000000000000000000000000015adc8bb1e01c835f48959d1237bd6","0x00000000000000000000000000000047762ab839e4ff63c77605a9f383da37c2","0x000000000000000000000000000000000016a8c3c53d89660cf271522cd301fb","0x000000000000000000000000000000f0c8539a0b5f94420a513f9c305b932bfe","0x00000000000000000000000000000000002957ba01d9de5638f808f88a692533","0x000000000000000000000000000000ab17c6189d67d3bf5dd2f3885de0151b6f","0x0000000000000000000000000000000000060d8aa43fdc434d1942263f364d95","0x0000000000000000000000000000005d292333b3adb497f00b4bc32d45229060","0x00000000000000000000000000000000001a1018a66221883639f2898a66f345","0x00000000000000000000000000000006555a806b1993291deba0dc44e2abf431","0x00000000000000000000000000000000000cacff7099a9d5e35a21f4a00b2dc3","0x000000000000000000000000000000f50c11ba95d349c36d143eefd12e494950","0x00000000000000000000000000000000001022e8c5f02d639bc9dd8bc4407f99","0x000000000000000000000000000000c76828795098eda73d50b4b585c60afc60","0x00000000000000000000000000000000002bf09c0ec7011e93888962f2406630","0x00000000000000000000000000000049e5c83a8978d832fb8e144548e3ca1adb","0x00000000000000000000000000000000000e0ec242c2e160a984f61ca5adf5f5","0x0000000000000000000000000000009c5d6e08a6605ab4513748ac0fa017dd1c","0x00000000000000000000000000000000001f54baa07558e5fb055bd9ba49c067","0x0000000000000000000000000000001e1ee7ee29bbb5e4b080c6091c1433ce62","0x000000000000000000000000000000000024aec62a9d9763499267dc98c33428","0x0000000000000000000000000000001a96755946ff16f0d6632365f0eb0ab4d4","0x000000000000000000000000000000000028cf3e22bcd53782ebc3e0490e27e5","0x00000000000000000000000000000043148d7d8c9ba43f2133fab4201435a364","0x0000000000000000000000000000000000234ce541f1f5117dd404cfaf01a229","0x000000000000000000000000000000a7fb95ffb461d9514a1070e2d2403982ef","0x00000000000000000000000000000000003016955028b6390f446c3fd0c5b424","0x00000000000000000000000000000008863c3b7cd7cddc20ba79ce915051c56e","0x000000000000000000000000000000000013ef666111b0be56a235983d397d2a","0x000000000000000000000000000000e3993f465fc9f56e93ac769e597b752c1c","0x0000000000000000000000000000000000217f7c4235161e9a3c16c45b6ca499","0x0000000000000000000000000000008ffa4cd96bc67b0b7df5678271e1114075","0x0000000000000000000000000000000000256467bfcb63d9fdcb5dde397757ad","0x00000000000000000000000000000054e5eb270bb64bde6e6ececadfd8c3236c","0x00000000000000000000000000000000000e52d1bd75812c33c6f3d79ee4b94c","0x000000000000000000000000000000484a2c641dce55bc2dd64ef0cd790a7fea","0x00000000000000000000000000000000000ff417d256be43e73c8b1aa85bdda3","0x0000000000000000000000000000000b72e7b7713ab5da44e0f864182e748a23","0x00000000000000000000000000000000001a221055f1625ad833a44705f5f74e","0x00000000000000000000000000000067a99a34e9b81a17ad001db02e29bcb82a","0x000000000000000000000000000000000018a6c02e398389827568fa960e86e2","0x000000000000000000000000000000bb29f26f9890d6cc6401f4921d5884edca","0x00000000000000000000000000000000000868357b28039385c5a5058b6d358e","0x00000000000000000000000000000036fb6e229dde8edf7ec858b12d7e8be485","0x00000000000000000000000000000000001060afe929554ca473103f5e68193c","0x00000000000000000000000000000015226e07e207744c0857074dcab883af4a","0x00000000000000000000000000000000000b1c02619282755533457230b19b4a","0x0000000000000000000000000000001f2a0277e4807e6e1cbabca21dde5eb5e1","0x00000000000000000000000000000000000d928deafed363659688ed4ccdef52","0x000000000000000000000000000000363f0c994e91cecad25835338edee2294f","0x00000000000000000000000000000000002eea648c8732596b1314fe2a4d2f05","0x000000000000000000000000000000b2671d2ae51d31c1210433c3972bb64578","0x00000000000000000000000000000000000ab49886c2b94bd0bd3f6ed1dbbe2c"] -proof_b = ["0x000000000000000000000000000000f05c69448ca29bdf52076f9b073bb30fed","0x000000000000000000000000000000000028c86bb3e27b4aaaaef126f7df5349","0x00000000000000000000000000000026ae031fc93594375dfc7f3bbe027f97d5","0x000000000000000000000000000000000000dd12c7290fe7f775796a233b8590","0x000000000000000000000000000000c1ee6631704de424d010c5c4ac8293ac49","0x00000000000000000000000000000000002f41818c9aa83f5c8d9bdd128015b9","0x000000000000000000000000000000b50a5801482f7e3a5de8ab3cce0f10b0d3","0x000000000000000000000000000000000022a0bc69c293dbf293b25bc9eef7f8","0x0000000000000000000000000000003b02abf1967ef394154dc15d763135e903","0x00000000000000000000000000000000000d8a2ee46acc6d1ed8d517b56d47c8","0x00000000000000000000000000000039bf0d1b3d8cf9de898f101c626e978d78","0x0000000000000000000000000000000000008faa7df2451a24d291a9b584f1a5","0x000000000000000000000000000000c1dae329ed7adf63a2d89a5f16fb98b6d8","0x00000000000000000000000000000000001ff0bc16fc0bd4aa2d6255690453c2","0x000000000000000000000000000000d12d7589f853a9b472613efa56689beaf1","0x00000000000000000000000000000000002d6fbc798f4403751df6aeee8bedd3","0x0000000000000000000000000000007c1fa069cb17194fecf88db9dd54a4ee36","0x0000000000000000000000000000000000268e026f9814822a42b2d59eec5d24","0x000000000000000000000000000000c3fb56beab774218cd63498fc050a5fd9b","0x00000000000000000000000000000000000071c014d7b5063f005a0bc2ee1af4","0x000000000000000000000000000000ae12b25371c6af42bbe0a85cddd2eaebc7","0x000000000000000000000000000000000026d270e1ffc9c7c344c694dfadda83","0x00000000000000000000000000000080280858c6be461716921caa3c26f3f6f3","0x000000000000000000000000000000000001dcdd3f39e27d0ce6aa5d14dff4c1","0x000000000000000000000000000000080e1d2c913c834ebcf7e0600c076c08fd","0x00000000000000000000000000000000002df3d142217694e65fb7c355d62764","0x000000000000000000000000000000e5e336f3f59d77e500f49771bfbeb12e83","0x000000000000000000000000000000000028fffe08bdc4c0690643d2e1a1275f","0x000000000000000000000000000000db5618b32afc13e18f21b39f3fbede9d11","0x00000000000000000000000000000000001d244818370d43fb7e8bc67e03787b","0x0000000000000000000000000000006bcc1fd3f9f78449ad1df1bc11bc379edd","0x000000000000000000000000000000000009ac9cbb285edbf5b3a973f3f5f1cb","0x000000000000000000000000000000fd885905b6c0fc95bb4dd0b11f6797d4b3","0x000000000000000000000000000000000021f07995cdd835145e19c38127c562","0x000000000000000000000000000000bbbf2b975c2c97ae4b45c4a52059e53ee3","0x000000000000000000000000000000000024158163788841cf4590bbc1e89a90","0x0000000000000000000000000000009aca93d2b1386ea412d4b36ea5bb9894a8","0x00000000000000000000000000000000002532d1d210e8ed4c2f5c00cbaaa475","0x000000000000000000000000000000634a88caa1d77cb6b5fe77cac31458fc31","0x00000000000000000000000000000000000bdf18bae92fce7cfddab5520cac6e","0x000000000000000000000000000000622e9626255170ccec77602c755aa193e1","0x000000000000000000000000000000000001d4edba370e04436a988bad05dada","0x000000000000000000000000000000b52934323a0aec8f803cdaafee2ab7bfb2","0x0000000000000000000000000000000000155312af5e0e25ca9fd61aef9e58ed","0x06270b517855f6f6a608e432883d1d1030a12a1e33022dc142b7728691421da2","0x2af7c794d7b720b25eb1df0afd8c8e3c15b6e518194c3caea7966a5f8210ff04","0x073fe573aeb27d81a5713be93e1365390dcbc3c8e7439ff1d36a84cc014f5642","0x11351b961147431e54535248b58b35cf5cddb9b13827899167617d7a96794d64","0x297c9421c9c3db286770787c35b86bc41583386491b4ae55e5fa81aefa21efc4","0x0f4eeca3ff4a3495f859898937688652d33f9b4dd3e003e12adf15278e0997c3","0x133e3d8b82721d40d919f2326810ba6f07eff3f7d20d86b2bde692a811522019","0x2c502f53c9698b73bb8c8f9b9cf2d705d16a64a7040348b4b39c637a2064316c","0x0cbc1971e1c566cde9d9125c91cdc88e817db182692f836c1a5170a6246eaf73","0x12c47793e7db706c637cd4b4d96d227f569850176b852b1fe8ad522ddb38ef0e","0x0cd7b300e9309a135285be1aeb02b152f97931a7357ab6d609a2cb1970aab877","0x2a7789dfe286c9d0a7592f1c9316e730cb14c9d843aefc4764d76e7f8571c96a","0x248ac54ce3dbf37796621882a4ac76046df5ab680da487fd85cce76b1ae392d3","0x149d1d07cebe320f77b03533e34912545cedeae62bd9778d37724728762b5710","0x00fe29daebdaed61309790e70e2dcefa3f3af4c6c965ce424b8dbcf09b8e4b49","0x2b75b3bace61b731d7f0c003a144b62b0a4fbe9f0d14ca89b0652b70210014b3","0x2588ef27cfb6e0d8c6f9a969b2da44fead30a02ed70a563fd15aa45bb671de1c","0x2b74d7674b55642697b4a1e226eddb0e4918b2d57aa5b99093dc46cadcdea000","0x244c626845d3a5040f08f01e9611f968ad675ca857789149b13a0cfa83a2e064","0x2cb8d02f90cae33fd7bcfb80af4aff067c4f5fc4b3f9228d5b8f768bc8f6c971","0x1372f3d1f04e0c39a50e823d5da03d70bebe19a1b8e28f8c2ff601cc0bfc0095","0x19af6601d2613426a50b7c35d60562a5f2f2634e6af56dac13459632e15570ee","0x13c2a16ed3b65dcd9414659be79af17995d344de34eaf962343b0f1e76c73a57","0x0dd5dcdbd50b8774831d4f01f930804d38b4266dfee085185530880a0c3903c0","0x07e91848d660b11b722638680ac60f20db9507fdc8d610ce762600f5a1aacd29","0x1f9c2a94d10c0a7fb60292cfc46fd3d2501181bea0ffe1f5f2501d474be3a785","0x14edb9c5bd389eae08a5ea2a7a1662894e1e878c142084d966a625bef68cf7c3","0x00000000000000000000000000000000cecd01810814d175f0a533f0067618c4","0x00000000000000000000000000000000f82935013ce5c82720c63e533af41db8","0x000000000000000000000000000000012185688171b6bed850e748b66f7222ac","0x2dd7f5ff2150155c2ac86ebe28d9ecbca2eea812b0021ab2bceae111cfea8325","0x04ea6c2daf2b9e827d2213c3d03953410dcf1ed67ba34a3c00e772be92606a8b","0x163f2bd18dcde52f99b9867c944780fd718d1612927053b139b280fc55013d1b","0x05e388fd160ccac30a8f7b18a4bd042f705e92b5937e8c0e9478e2ff623907c6","0x00ba3f6f527d6ed3ff17a63b1d5be3c42bdfae88fdf63311fc7b871157939309","0x16187d9daa8c2e5a1a9ab15be7ca6a8feebfb31bea76f9a3ca69381881c70561","0x0f64522e4904edb7377b14a7b9dad848829167324ef5c016346b3ad8251191ee","0x273bbe6000a4001dce369e5a36cc0b0ca3fd351665b688238aa8c556a6ca6b8e","0x022d2232efb2faa8307846c9a4c697aabad1b7f1336b35ad72fa8922975b49d9","0x0d82d478bff3955c4b0a34ef94427ca5f9da23147ad953c89f2e428277ec2825","0x18d886be90343010659c231583be61a138e28e37c24771e3cb61fbe2587d0671","0x000000000000000000000000000000196ba6a58dbeb7c34cb1d6287e23d434de","0x00000000000000000000000000000000001df8ae8a1589590f8863c1fefd8dfd","0x000000000000000000000000000000f30e11b2c5fbefa166cbb9f58c5f8e1a4c","0x000000000000000000000000000000000026420ade7666bc0ab1cf1fd9d0c534","0x0000000000000000000000000000000feb5b7d8260d25a1ee1ce76ff461673fc","0x00000000000000000000000000000000002bd2ac6223a80671b777bf5dca70a4","0x000000000000000000000000000000690f757006d2fa1ddb0114c9f268783537","0x000000000000000000000000000000000023ad36feadd91e50118f32e97a0204"] \ No newline at end of file diff --git a/test_programs/execution_success/double_verify_proof/src/main.nr b/test_programs/execution_success/double_verify_proof/src/main.nr deleted file mode 100644 index 8d73bb09aa5..00000000000 --- a/test_programs/execution_success/double_verify_proof/src/main.nr +++ /dev/null @@ -1,18 +0,0 @@ - -// This circuit aggregates two proofs from `assert_statement_recursive`. -fn main( - verification_key: [Field; 114], - // This is the proof without public inputs attached. - // - // This means: the size of this does not change with the number of public inputs. - proof: [Field; 93], - public_inputs: pub [Field; 1], - // This is currently not public. It is fine given that the vk is a part of the circuit definition. - // I believe we want to eventually make it public too though. - key_hash: Field, - proof_b: [Field; 93] -) { - std::verify_proof(verification_key, proof, public_inputs, key_hash); - - std::verify_proof(verification_key, proof_b, public_inputs, key_hash); -} diff --git a/test_programs/execution_success/double_verify_proof_recursive/Nargo.toml b/test_programs/execution_success/double_verify_proof_recursive/Nargo.toml deleted file mode 100644 index b7688b33bfd..00000000000 --- a/test_programs/execution_success/double_verify_proof_recursive/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "double_verify_proof_recursive" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/double_verify_proof_recursive/Prover.toml b/test_programs/execution_success/double_verify_proof_recursive/Prover.toml deleted file mode 100644 index dff48212e50..00000000000 --- a/test_programs/execution_success/double_verify_proof_recursive/Prover.toml +++ /dev/null @@ -1,5 +0,0 @@ -key_hash = "0x096129b1c6e108252fc5c829c4cc9b7e8f0d1fd9f29c2532b563d6396645e08f" -proof = ["0x000000000000000000000000000000d62b795bec274279129a71195796825fcc","0x00000000000000000000000000000000000793ab763140f20a68a6bd2721fd74","0x00000000000000000000000000000053141d06d3307b36153f321511199e579c","0x00000000000000000000000000000000000a4b55d6c21f98a9c434911dcb5c67","0x0000000000000000000000000000005f9d324c0abd22cec92d99dbec438e9491","0x0000000000000000000000000000000000240dfafe1b53dc27147cbab14ea893","0x000000000000000000000000000000044a61d3aac32c6931247cf334a19d9611","0x000000000000000000000000000000000003f0f8cf4207bfa85c23ec9f8d0c88","0x00000000000000000000000000000002168a470e39ba2ac266f6b474de12045f","0x000000000000000000000000000000000025791e7d3feab542345c00ec5a30df","0x000000000000000000000000000000dcafd76d4c3640969c80e017b951ef6397","0x00000000000000000000000000000000001d27f75a1256771e88e0c86fc42dbc","0x0000000000000000000000000000007347ae7d2d9d7fc2b8f0baa014ee1fed9f","0x000000000000000000000000000000000018bd927f42bf7caf9555f56f09000d","0x000000000000000000000000000000041f765f83cbe5904c8f453f70a4531d10","0x00000000000000000000000000000000001858aabeeb5331a221419f4fed1c19","0x000000000000000000000000000000d254a54caaedf8287b9af951b2f2611121","0x000000000000000000000000000000000005ab493623c9563cf2e55ba5f18200","0x00000000000000000000000000000014f24cddc1a02440dc63637df8032c8074","0x000000000000000000000000000000000011950c16cef98471b1d78b935195a4","0x000000000000000000000000000000b0340b459e6bd5cc8f031c8654a502897f","0x00000000000000000000000000000000000e1cf3968dac4545a76a2ae58e512c","0x0000000000000000000000000000002adf7218aa06ca0d2c2e600dcc39193a2d","0x00000000000000000000000000000000001302e7e4b0f14749bd885ca25588b6","0x00000000000000000000000000000092009ce4056e79ab815d8cdfd4491138ae","0x000000000000000000000000000000000018af11e853c6cf2f0f6274b0da8133","0x000000000000000000000000000000dd3dc6f49232141718527b3a0e4b26e21d","0x00000000000000000000000000000000001a877853348a8b695c4f9a9aa4ce68","0x000000000000000000000000000000aecfc56ba07155450b368140d6324023b5","0x000000000000000000000000000000000029c11052798c57ece614617d33fcc2","0x000000000000000000000000000000eb106ffc816d16fb84e84b0b61157b2603","0x000000000000000000000000000000000026c3cac16206899a21cb5126841446","0x000000000000000000000000000000a782ed54805fe845068b362b58e2fa34ec","0x00000000000000000000000000000000000cf046a1bfcc666b7f28b572676073","0x000000000000000000000000000000b931c8dda60bb4aca4cc817f5540f1209f","0x000000000000000000000000000000000024ad50c3936fafc3d190e6a4874223","0x000000000000000000000000000000cce90cfbaf5671c8c8652db28a3a9566f7","0x000000000000000000000000000000000003574db9d0f84380c9635660f86354","0x0000000000000000000000000000003eb3e1dc31846a90f721e7a08c6d6dc4f7","0x000000000000000000000000000000000028999a700cd1abae1a288eebb9a91c","0x000000000000000000000000000000c1be4d385b11387e14eb9817050d772f78","0x000000000000000000000000000000000003c56b5bad8b4484c66ac921f1f102","0x000000000000000000000000000000ace245cabf0f00dc7fd253dd8af0377a14","0x0000000000000000000000000000000000107f1731fcf34b364c813599fa1df7","0x035b937d404932b542b706eb810ef4a7dca4566d4dde1ad6a8717f46167ead7e","0x17608cef3dc7960f41cb1295706df663727d45ee598a61e05e989d111449fb65","0x054712a950ad67da3aa860e49e6891f99b586b7f37caff94eb013fdb374b61ee","0x04b755083086c769b7f593e0e48d68dc54be808203351380ca5566a48149d8bb","0x17d7670b0915235f626fdc1d7e1134d2be906ef138d7843384b3ebc23b1d630f","0x064cf544ab5f4e3dab47960502cccc83321fb275068dfbdd3a2fcbc6dddcaa65","0x083338262712e2b66769ea40d9f412b18caa1bc81a51ff5a50b6c41f8c4b3d23","0x0cdd38958cab97defde00f4a5961b6fd676e29d9f2c352f6bb2c68b91f83f8af","0x02c8bdd005c2f43a0a8cbb2744916ce5c322dfa5b23367a829c12699f4036d32","0x25bac73c7e7b659fbea3135b7a0decf9db8dc3045bd2837dae337c64cc722546","0x19eb361aa419d37bce3d2e8b2b7692a02a9559e83d7f3d8fe9169970fbbc2cba","0x2494bd5106d00e05c7ea60e632e9fe03773b7f2c5b662aa37ec512a01f4a0775","0x18c52c2f2c6e7be1d7847c15e452a3a9c64316103d12e4b5b9a82fac4e940ee9","0x0e0342810456ef78f498c1bfa085a5f3cbc06db1f32fabd0ea9ad27dccac1680","0x024c13d6ef56af33ed7164ea8e47ddecc8a487b000d8b1b45edcd3895a503ba2","0x26e0d127f626bd39b55bc5d0c131dbf03fe006dc5c3edc57dda1e629799a4317","0x1b1140061bc52b15c4f5e100729a81968ee79dc03deb966a18850335a8e44a8b","0x1bb76f945199e71d531a89288912087a02dd0e83020e65d671485bf2e5e86e1a","0x29269900859c6d86e404185b415bf3b279cd100f38cfdb0077e8d6a299c4fd35","0x22b5e94bae2f6f0cdb424a3b12c4bf82cec3fb228e012c1974ed457827bbe012","0x18d3543a93249778e7a57936170dae85ffc47c2567f2d0076a32c0bb86fcf10a","0x03721dc2670206cde42a175fd56bcce32cf6cb8801450a8e8e4b3d4e07785973","0x2806db136dd214d3ac1478460855cae6a4324ab45cab35320d104fee26c260e8","0x1c3749f1937082afbbae9375b9be708cf339e1983e57ef4447f36cfa560c685c","0x1067b8cfb90ef08bcb48aea56b2716334241787c2004a95682d68a0685566fd0","0x0f41aee4416398f1d48ffc302403273cddef34a41f98507c53682041d82e51ff","0x10d854c9f0bfbdff7ca91a68f4978e9a79e7b14243d92f465f17bdf88d9f64f8","0x00000000000000000000000000000000018938b11099e0cdc05ddab84a153a97","0x0000000000000000000000000000000001d7dda1471f0dc3b3a3d3438c197982","0x00000000000000000000000000000000022682917da43ab9a6e9cbcece1db86d","0x2453913e6b0f36eab883ac4b0e0604d56aaeb9c55e641135173e63c342f1a660","0x05216c1b58dc43a49d01aaba3113b0e86be450fc17d28016e648e7162a1b67fb","0x152b34845a0222a2b41354c0d395a250d8363dc18748647d85acd89d6934ec56","0x1dfc6e971ce82b7dcda1f7f282713c6e22a8c79258a61209bda69719806da544","0x2968dd8b3af8e3953f1fbbd72f4c49b8270597bb27d4037adc157ac6083bee60","0x1b9425b88a4c7d39b3d75afe66917a9aa1d2055724392bc01fb918d84ff1410e","0x04ab571f236d8e750904dc307dd274003d9130f1a7110e4c1521cfb408877c73","0x2ad84f26fdc5831545272d02b806bb0e6dae44e71f73552c4eb9ff06030748c7","0x020e632b99d325db774b8630fb50b9a4e74d35b7f27d9fc02c65087ee747e42c","0x09a8c5a3171268cb61c02515c01c109889200ed13f415ae54df2078bbb887f92","0x1143281a9451abbb4c34c3fa84e7678c2af2e7ea8c05160a6f7f06988fc91af8","0x000000000000000000000000000000cbda736ca5cf6bc75413c2cc9e28ab0a68","0x00000000000000000000000000000000001ee78c9cc56aa5991062ae2e338587","0x000000000000000000000000000000bc9bfcdebb486f4cb314e681d2cc5f8df6","0x00000000000000000000000000000000000ad538431d04771bca7f633cb659ff","0x000000000000000000000000000000d45b317afcefa466a59bba9e171f1af70c","0x0000000000000000000000000000000000133c50180ea17932e4881124e7a7c6","0x000000000000000000000000000000fc9ed37f543775849f3e84eaa06f77f992","0x00000000000000000000000000000000001372873c9c051d1baff99248b8f70e"] -public_inputs = ["0x0000000000000000000000000000000000000000000000000000000000000003"] -verification_key = ["0x2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e80","0x0000000000000000000000000000000000000000000000000000000000000008","0x0000000000000000000000000000000000000000000000000000000000000005","0x0000000000000000000000000000000000000000000000000000000000000008","0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000092139c61bae1a44f0fc7689507414be688","0x00000000000000000000000000000000000160ce4e279582f91bde4f03f5e9a2","0x0000000000000000000000000000005dc2d37f658c3b2d60f24740eb13b65d79","0x000000000000000000000000000000000007e3e8a5d98a1177ec85bf88f163a5","0x000000000000000000000000000000dc3035fbd7ff16412a8fd7da587a935298","0x000000000000000000000000000000000023d08e2817ac16990004ed11d8fc66","0x000000000000000000000000000000356a5ad59c646c746a8d09f5d154e47c4f","0x00000000000000000000000000000000000708529196af3c8e16ffa580c26182","0x0000000000000000000000000000002ddfe70eb7a1280596e8e4a804f118a6dd","0x000000000000000000000000000000000013757e15a0905f298303784a161b21","0x000000000000000000000000000000a23a729df796935c7824e3a26be794829b","0x000000000000000000000000000000000005775b6c146c4a59856e869fe5a70e","0x000000000000000000000000000000eef0c9e088fd2d45aa40311082d1f2809b","0x00000000000000000000000000000000001d539ccbfc556d0ad59307a218de65","0x000000000000000000000000000000a2c848beceb6ab7806fd3b88037b8410fc","0x0000000000000000000000000000000000177004deeb1f9d401fd7b1af1a5ac8","0x0000000000000000000000000000002508eb63672a733f20de1a97644be4f540","0x00000000000000000000000000000000000d82d51f2f75d806285fd248c819b8","0x000000000000000000000000000000d002f9100cbba8a29f13b11513c53c59d0","0x000000000000000000000000000000000006cd3b0e3460533b9e5ea2cdc0fcbb","0x000000000000000000000000000000f45ea38a93b2f810c5633ddb54927c1c96","0x000000000000000000000000000000000021791de65f9a28ec7024b1a87ab4f3","0x000000000000000000000000000000926511a0439502c86885a8c6f0327aa7ad","0x000000000000000000000000000000000029fa14a969c5d81ed3abbbfb11220a","0x000000000000000000000000000000b84c3258e8206f560e5b5b18cbeafef87e","0x00000000000000000000000000000000002a910445cd8fc895e5d235cd8ea185","0x000000000000000000000000000000887e67f15e84bcb8507a5064a363f6043b","0x000000000000000000000000000000000014dc6643d801c3ef27c2066b6e2bb4","0x000000000000000000000000000000e38e900b42c314ba803088e8fbf125203f","0x000000000000000000000000000000000020690fd4869db418306046b38161dc","0x0000000000000000000000000000001e2fa856bf7951b8292b1e88185993629c","0x0000000000000000000000000000000000048a85e0bbac7c60ad3d78f601f63c","0x0000000000000000000000000000006f457719495073d3666d77a625aeab0c51","0x00000000000000000000000000000000002623ad892dc62b1fa7d0a650f0d470","0x000000000000000000000000000000dbfcc8a467e021c03b13f74a9f79c3a10c","0x0000000000000000000000000000000000295f6f10976c37bd9c6f96bb7187d5","0x000000000000000000000000000000c13ef9a937cc12420fb38d9ab8e848e85e","0x000000000000000000000000000000000003560a3b334e887532f605c9cb7628","0x0000000000000000000000000000009bcebf08a4599cdda0fb96312d4dc0c7a9","0x000000000000000000000000000000000015adc8bb1e01c835f48959d1237bd6","0x00000000000000000000000000000047762ab839e4ff63c77605a9f383da37c2","0x000000000000000000000000000000000016a8c3c53d89660cf271522cd301fb","0x000000000000000000000000000000f0c8539a0b5f94420a513f9c305b932bfe","0x00000000000000000000000000000000002957ba01d9de5638f808f88a692533","0x000000000000000000000000000000ab17c6189d67d3bf5dd2f3885de0151b6f","0x0000000000000000000000000000000000060d8aa43fdc434d1942263f364d95","0x0000000000000000000000000000005d292333b3adb497f00b4bc32d45229060","0x00000000000000000000000000000000001a1018a66221883639f2898a66f345","0x00000000000000000000000000000006555a806b1993291deba0dc44e2abf431","0x00000000000000000000000000000000000cacff7099a9d5e35a21f4a00b2dc3","0x000000000000000000000000000000f50c11ba95d349c36d143eefd12e494950","0x00000000000000000000000000000000001022e8c5f02d639bc9dd8bc4407f99","0x000000000000000000000000000000c76828795098eda73d50b4b585c60afc60","0x00000000000000000000000000000000002bf09c0ec7011e93888962f2406630","0x00000000000000000000000000000049e5c83a8978d832fb8e144548e3ca1adb","0x00000000000000000000000000000000000e0ec242c2e160a984f61ca5adf5f5","0x0000000000000000000000000000009c5d6e08a6605ab4513748ac0fa017dd1c","0x00000000000000000000000000000000001f54baa07558e5fb055bd9ba49c067","0x0000000000000000000000000000001e1ee7ee29bbb5e4b080c6091c1433ce62","0x000000000000000000000000000000000024aec62a9d9763499267dc98c33428","0x0000000000000000000000000000001a96755946ff16f0d6632365f0eb0ab4d4","0x000000000000000000000000000000000028cf3e22bcd53782ebc3e0490e27e5","0x00000000000000000000000000000043148d7d8c9ba43f2133fab4201435a364","0x0000000000000000000000000000000000234ce541f1f5117dd404cfaf01a229","0x000000000000000000000000000000a7fb95ffb461d9514a1070e2d2403982ef","0x00000000000000000000000000000000003016955028b6390f446c3fd0c5b424","0x00000000000000000000000000000008863c3b7cd7cddc20ba79ce915051c56e","0x000000000000000000000000000000000013ef666111b0be56a235983d397d2a","0x000000000000000000000000000000e3993f465fc9f56e93ac769e597b752c1c","0x0000000000000000000000000000000000217f7c4235161e9a3c16c45b6ca499","0x0000000000000000000000000000008ffa4cd96bc67b0b7df5678271e1114075","0x0000000000000000000000000000000000256467bfcb63d9fdcb5dde397757ad","0x00000000000000000000000000000054e5eb270bb64bde6e6ececadfd8c3236c","0x00000000000000000000000000000000000e52d1bd75812c33c6f3d79ee4b94c","0x000000000000000000000000000000484a2c641dce55bc2dd64ef0cd790a7fea","0x00000000000000000000000000000000000ff417d256be43e73c8b1aa85bdda3","0x0000000000000000000000000000000b72e7b7713ab5da44e0f864182e748a23","0x00000000000000000000000000000000001a221055f1625ad833a44705f5f74e","0x00000000000000000000000000000067a99a34e9b81a17ad001db02e29bcb82a","0x000000000000000000000000000000000018a6c02e398389827568fa960e86e2","0x000000000000000000000000000000bb29f26f9890d6cc6401f4921d5884edca","0x00000000000000000000000000000000000868357b28039385c5a5058b6d358e","0x00000000000000000000000000000036fb6e229dde8edf7ec858b12d7e8be485","0x00000000000000000000000000000000001060afe929554ca473103f5e68193c","0x00000000000000000000000000000015226e07e207744c0857074dcab883af4a","0x00000000000000000000000000000000000b1c02619282755533457230b19b4a","0x0000000000000000000000000000001f2a0277e4807e6e1cbabca21dde5eb5e1","0x00000000000000000000000000000000000d928deafed363659688ed4ccdef52","0x000000000000000000000000000000363f0c994e91cecad25835338edee2294f","0x00000000000000000000000000000000002eea648c8732596b1314fe2a4d2f05","0x000000000000000000000000000000b2671d2ae51d31c1210433c3972bb64578","0x00000000000000000000000000000000000ab49886c2b94bd0bd3f6ed1dbbe2c"] -proof_b = ["0x000000000000000000000000000000f05c69448ca29bdf52076f9b073bb30fed","0x000000000000000000000000000000000028c86bb3e27b4aaaaef126f7df5349","0x00000000000000000000000000000026ae031fc93594375dfc7f3bbe027f97d5","0x000000000000000000000000000000000000dd12c7290fe7f775796a233b8590","0x000000000000000000000000000000c1ee6631704de424d010c5c4ac8293ac49","0x00000000000000000000000000000000002f41818c9aa83f5c8d9bdd128015b9","0x000000000000000000000000000000b50a5801482f7e3a5de8ab3cce0f10b0d3","0x000000000000000000000000000000000022a0bc69c293dbf293b25bc9eef7f8","0x0000000000000000000000000000003b02abf1967ef394154dc15d763135e903","0x00000000000000000000000000000000000d8a2ee46acc6d1ed8d517b56d47c8","0x00000000000000000000000000000039bf0d1b3d8cf9de898f101c626e978d78","0x0000000000000000000000000000000000008faa7df2451a24d291a9b584f1a5","0x000000000000000000000000000000c1dae329ed7adf63a2d89a5f16fb98b6d8","0x00000000000000000000000000000000001ff0bc16fc0bd4aa2d6255690453c2","0x000000000000000000000000000000d12d7589f853a9b472613efa56689beaf1","0x00000000000000000000000000000000002d6fbc798f4403751df6aeee8bedd3","0x0000000000000000000000000000007c1fa069cb17194fecf88db9dd54a4ee36","0x0000000000000000000000000000000000268e026f9814822a42b2d59eec5d24","0x000000000000000000000000000000c3fb56beab774218cd63498fc050a5fd9b","0x00000000000000000000000000000000000071c014d7b5063f005a0bc2ee1af4","0x000000000000000000000000000000ae12b25371c6af42bbe0a85cddd2eaebc7","0x000000000000000000000000000000000026d270e1ffc9c7c344c694dfadda83","0x00000000000000000000000000000080280858c6be461716921caa3c26f3f6f3","0x000000000000000000000000000000000001dcdd3f39e27d0ce6aa5d14dff4c1","0x000000000000000000000000000000080e1d2c913c834ebcf7e0600c076c08fd","0x00000000000000000000000000000000002df3d142217694e65fb7c355d62764","0x000000000000000000000000000000e5e336f3f59d77e500f49771bfbeb12e83","0x000000000000000000000000000000000028fffe08bdc4c0690643d2e1a1275f","0x000000000000000000000000000000db5618b32afc13e18f21b39f3fbede9d11","0x00000000000000000000000000000000001d244818370d43fb7e8bc67e03787b","0x0000000000000000000000000000006bcc1fd3f9f78449ad1df1bc11bc379edd","0x000000000000000000000000000000000009ac9cbb285edbf5b3a973f3f5f1cb","0x000000000000000000000000000000fd885905b6c0fc95bb4dd0b11f6797d4b3","0x000000000000000000000000000000000021f07995cdd835145e19c38127c562","0x000000000000000000000000000000bbbf2b975c2c97ae4b45c4a52059e53ee3","0x000000000000000000000000000000000024158163788841cf4590bbc1e89a90","0x0000000000000000000000000000009aca93d2b1386ea412d4b36ea5bb9894a8","0x00000000000000000000000000000000002532d1d210e8ed4c2f5c00cbaaa475","0x000000000000000000000000000000634a88caa1d77cb6b5fe77cac31458fc31","0x00000000000000000000000000000000000bdf18bae92fce7cfddab5520cac6e","0x000000000000000000000000000000622e9626255170ccec77602c755aa193e1","0x000000000000000000000000000000000001d4edba370e04436a988bad05dada","0x000000000000000000000000000000b52934323a0aec8f803cdaafee2ab7bfb2","0x0000000000000000000000000000000000155312af5e0e25ca9fd61aef9e58ed","0x06270b517855f6f6a608e432883d1d1030a12a1e33022dc142b7728691421da2","0x2af7c794d7b720b25eb1df0afd8c8e3c15b6e518194c3caea7966a5f8210ff04","0x073fe573aeb27d81a5713be93e1365390dcbc3c8e7439ff1d36a84cc014f5642","0x11351b961147431e54535248b58b35cf5cddb9b13827899167617d7a96794d64","0x297c9421c9c3db286770787c35b86bc41583386491b4ae55e5fa81aefa21efc4","0x0f4eeca3ff4a3495f859898937688652d33f9b4dd3e003e12adf15278e0997c3","0x133e3d8b82721d40d919f2326810ba6f07eff3f7d20d86b2bde692a811522019","0x2c502f53c9698b73bb8c8f9b9cf2d705d16a64a7040348b4b39c637a2064316c","0x0cbc1971e1c566cde9d9125c91cdc88e817db182692f836c1a5170a6246eaf73","0x12c47793e7db706c637cd4b4d96d227f569850176b852b1fe8ad522ddb38ef0e","0x0cd7b300e9309a135285be1aeb02b152f97931a7357ab6d609a2cb1970aab877","0x2a7789dfe286c9d0a7592f1c9316e730cb14c9d843aefc4764d76e7f8571c96a","0x248ac54ce3dbf37796621882a4ac76046df5ab680da487fd85cce76b1ae392d3","0x149d1d07cebe320f77b03533e34912545cedeae62bd9778d37724728762b5710","0x00fe29daebdaed61309790e70e2dcefa3f3af4c6c965ce424b8dbcf09b8e4b49","0x2b75b3bace61b731d7f0c003a144b62b0a4fbe9f0d14ca89b0652b70210014b3","0x2588ef27cfb6e0d8c6f9a969b2da44fead30a02ed70a563fd15aa45bb671de1c","0x2b74d7674b55642697b4a1e226eddb0e4918b2d57aa5b99093dc46cadcdea000","0x244c626845d3a5040f08f01e9611f968ad675ca857789149b13a0cfa83a2e064","0x2cb8d02f90cae33fd7bcfb80af4aff067c4f5fc4b3f9228d5b8f768bc8f6c971","0x1372f3d1f04e0c39a50e823d5da03d70bebe19a1b8e28f8c2ff601cc0bfc0095","0x19af6601d2613426a50b7c35d60562a5f2f2634e6af56dac13459632e15570ee","0x13c2a16ed3b65dcd9414659be79af17995d344de34eaf962343b0f1e76c73a57","0x0dd5dcdbd50b8774831d4f01f930804d38b4266dfee085185530880a0c3903c0","0x07e91848d660b11b722638680ac60f20db9507fdc8d610ce762600f5a1aacd29","0x1f9c2a94d10c0a7fb60292cfc46fd3d2501181bea0ffe1f5f2501d474be3a785","0x14edb9c5bd389eae08a5ea2a7a1662894e1e878c142084d966a625bef68cf7c3","0x00000000000000000000000000000000cecd01810814d175f0a533f0067618c4","0x00000000000000000000000000000000f82935013ce5c82720c63e533af41db8","0x000000000000000000000000000000012185688171b6bed850e748b66f7222ac","0x2dd7f5ff2150155c2ac86ebe28d9ecbca2eea812b0021ab2bceae111cfea8325","0x04ea6c2daf2b9e827d2213c3d03953410dcf1ed67ba34a3c00e772be92606a8b","0x163f2bd18dcde52f99b9867c944780fd718d1612927053b139b280fc55013d1b","0x05e388fd160ccac30a8f7b18a4bd042f705e92b5937e8c0e9478e2ff623907c6","0x00ba3f6f527d6ed3ff17a63b1d5be3c42bdfae88fdf63311fc7b871157939309","0x16187d9daa8c2e5a1a9ab15be7ca6a8feebfb31bea76f9a3ca69381881c70561","0x0f64522e4904edb7377b14a7b9dad848829167324ef5c016346b3ad8251191ee","0x273bbe6000a4001dce369e5a36cc0b0ca3fd351665b688238aa8c556a6ca6b8e","0x022d2232efb2faa8307846c9a4c697aabad1b7f1336b35ad72fa8922975b49d9","0x0d82d478bff3955c4b0a34ef94427ca5f9da23147ad953c89f2e428277ec2825","0x18d886be90343010659c231583be61a138e28e37c24771e3cb61fbe2587d0671","0x000000000000000000000000000000196ba6a58dbeb7c34cb1d6287e23d434de","0x00000000000000000000000000000000001df8ae8a1589590f8863c1fefd8dfd","0x000000000000000000000000000000f30e11b2c5fbefa166cbb9f58c5f8e1a4c","0x000000000000000000000000000000000026420ade7666bc0ab1cf1fd9d0c534","0x0000000000000000000000000000000feb5b7d8260d25a1ee1ce76ff461673fc","0x00000000000000000000000000000000002bd2ac6223a80671b777bf5dca70a4","0x000000000000000000000000000000690f757006d2fa1ddb0114c9f268783537","0x000000000000000000000000000000000023ad36feadd91e50118f32e97a0204"] \ No newline at end of file diff --git a/test_programs/execution_success/double_verify_proof_recursive/src/main.nr b/test_programs/execution_success/double_verify_proof_recursive/src/main.nr deleted file mode 100644 index 5137a538e42..00000000000 --- a/test_programs/execution_success/double_verify_proof_recursive/src/main.nr +++ /dev/null @@ -1,19 +0,0 @@ - -// This circuit aggregates two proofs from `assert_statement_recursive`. -#[recursive] -fn main( - verification_key: [Field; 114], - // This is the proof without public inputs attached. - // - // This means: the size of this does not change with the number of public inputs. - proof: [Field; 93], - public_inputs: pub [Field; 1], - // This is currently not public. It is fine given that the vk is a part of the circuit definition. - // I believe we want to eventually make it public too though. - key_hash: Field, - proof_b: [Field; 93] -) { - std::verify_proof(verification_key, proof, public_inputs, key_hash); - - std::verify_proof(verification_key, proof_b, public_inputs, key_hash); -} diff --git a/test_programs/execution_success/ecdsa_secp256k1/Nargo.toml b/test_programs/execution_success/ecdsa_secp256k1/Nargo.toml deleted file mode 100644 index 58fdf96f0e3..00000000000 --- a/test_programs/execution_success/ecdsa_secp256k1/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "ecdsa_secp256k1" -description = "ECDSA secp256k1 verification" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/ecdsa_secp256k1/Prover.toml b/test_programs/execution_success/ecdsa_secp256k1/Prover.toml deleted file mode 100644 index 412c7b36e4c..00000000000 --- a/test_programs/execution_success/ecdsa_secp256k1/Prover.toml +++ /dev/null @@ -1,209 +0,0 @@ - -hashed_message = [ - 0x3a, - 0x73, - 0xf4, - 0x12, - 0x3a, - 0x5c, - 0xd2, - 0x12, - 0x1f, - 0x21, - 0xcd, - 0x7e, - 0x8d, - 0x35, - 0x88, - 0x35, - 0x47, - 0x69, - 0x49, - 0xd0, - 0x35, - 0xd9, - 0xc2, - 0xda, - 0x68, - 0x06, - 0xb4, - 0x63, - 0x3a, - 0xc8, - 0xc1, - 0xe2, -] -message = [ - 0x49, - 0x6e, - 0x73, - 0x74, - 0x72, - 0x75, - 0x63, - 0x74, - 0x69, - 0x6f, - 0x6e, - 0x73, - 0x20, - 0x75, - 0x6e, - 0x63, - 0x6c, - 0x65, - 0x61, - 0x72, - 0x2c, - 0x20, - 0x61, - 0x73, - 0x6b, - 0x20, - 0x61, - 0x67, - 0x61, - 0x69, - 0x6e, - 0x20, - 0x6c, - 0x61, - 0x74, - 0x65, - 0x72, - 0x2e, -] -pub_key_x = [ - 0xa0, - 0x43, - 0x4d, - 0x9e, - 0x47, - 0xf3, - 0xc8, - 0x62, - 0x35, - 0x47, - 0x7c, - 0x7b, - 0x1a, - 0xe6, - 0xae, - 0x5d, - 0x34, - 0x42, - 0xd4, - 0x9b, - 0x19, - 0x43, - 0xc2, - 0xb7, - 0x52, - 0xa6, - 0x8e, - 0x2a, - 0x47, - 0xe2, - 0x47, - 0xc7, -] -pub_key_y = [ - 0x89, - 0x3a, - 0xba, - 0x42, - 0x54, - 0x19, - 0xbc, - 0x27, - 0xa3, - 0xb6, - 0xc7, - 0xe6, - 0x93, - 0xa2, - 0x4c, - 0x69, - 0x6f, - 0x79, - 0x4c, - 0x2e, - 0xd8, - 0x77, - 0xa1, - 0x59, - 0x3c, - 0xbe, - 0xe5, - 0x3b, - 0x03, - 0x73, - 0x68, - 0xd7, -] -signature = [ - 0xe5, - 0x08, - 0x1c, - 0x80, - 0xab, - 0x42, - 0x7d, - 0xc3, - 0x70, - 0x34, - 0x6f, - 0x4a, - 0x0e, - 0x31, - 0xaa, - 0x2b, - 0xad, - 0x8d, - 0x97, - 0x98, - 0xc3, - 0x80, - 0x61, - 0xdb, - 0x9a, - 0xe5, - 0x5a, - 0x4e, - 0x8d, - 0xf4, - 0x54, - 0xfd, - 0x28, - 0x11, - 0x98, - 0x94, - 0x34, - 0x4e, - 0x71, - 0xb7, - 0x87, - 0x70, - 0xcc, - 0x93, - 0x1d, - 0x61, - 0xf4, - 0x80, - 0xec, - 0xbb, - 0x0b, - 0x89, - 0xd6, - 0xeb, - 0x69, - 0x69, - 0x01, - 0x61, - 0xe4, - 0x9a, - 0x71, - 0x5f, - 0xcd, - 0x55, -] diff --git a/test_programs/execution_success/ecdsa_secp256k1/src/main.nr b/test_programs/execution_success/ecdsa_secp256k1/src/main.nr deleted file mode 100644 index 7f0999fc360..00000000000 --- a/test_programs/execution_success/ecdsa_secp256k1/src/main.nr +++ /dev/null @@ -1,14 +0,0 @@ -fn main( - message: [u8; 38], - hashed_message: [u8; 32], - pub_key_x: [u8; 32], - pub_key_y: [u8; 32], - signature: [u8; 64] -) { - // Hash the message, since secp256k1 expects a hashed_message - let expected = std::hash::sha256(message); - assert(hashed_message == expected); - - let valid_signature = std::ecdsa_secp256k1::verify_signature(pub_key_x, pub_key_y, signature, hashed_message); - assert(valid_signature); -} diff --git a/test_programs/execution_success/ecdsa_secp256r1/Nargo.toml b/test_programs/execution_success/ecdsa_secp256r1/Nargo.toml deleted file mode 100644 index 87e8d529566..00000000000 --- a/test_programs/execution_success/ecdsa_secp256r1/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "ecdsa_secp256r1" -description = "ECDSA secp256r1 verification" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/ecdsa_secp256r1/Prover.toml b/test_programs/execution_success/ecdsa_secp256r1/Prover.toml deleted file mode 100644 index a45f799877b..00000000000 --- a/test_programs/execution_success/ecdsa_secp256r1/Prover.toml +++ /dev/null @@ -1,20 +0,0 @@ -hashed_message = [ - 84, 112, 91, 163, 186, 175, 219, 223, 186, 140, 95, 154, 112, 247, 168, 155, 238, 152, - 217, 6, 181, 62, 49, 7, 77, 167, 186, 236, 220, 13, 169, 173, -] -pub_key_x = [ - 85, 15, 71, 16, 3, 243, 223, 151, 195, 223, 80, 106, 199, 151, 246, 114, 31, 177, 161, - 251, 123, 143, 111, 131, 210, 36, 73, 138, 101, 200, 142, 36, -] -pub_key_y = [ - 19, 96, 147, 215, 1, 46, 80, 154, 115, 113, 92, 189, 11, 0, 163, 204, 15, 244, 181, - 192, 27, 63, 250, 25, 106, 177, 251, 50, 112, 54, 184, 230, -] -signature = [ - 44, 112, 168, 208, 132, 182, 43, 252, 92, 224, 54, 65, 202, 249, 247, 42, - 212, 218, 140, 129, 191, 230, 236, 148, 135, 187, 94, 27, 239, 98, 161, 50, - 24, 173, 158, 226, 158, 175, 53, 31, 220, 80, 241, 82, 12, 66, 94, 155, - 144, 138, 7, 39, 139, 67, 176, 236, 123, 135, 39, 120, 193, 78, 7, 132 -] - - diff --git a/test_programs/execution_success/ecdsa_secp256r1/src/main.nr b/test_programs/execution_success/ecdsa_secp256r1/src/main.nr deleted file mode 100644 index 09f427c37d9..00000000000 --- a/test_programs/execution_success/ecdsa_secp256r1/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ -fn main(hashed_message: [u8; 32], pub_key_x: [u8; 32], pub_key_y: [u8; 32], signature: [u8; 64]) { - let valid_signature = std::ecdsa_secp256r1::verify_signature(pub_key_x, pub_key_y, signature, hashed_message); - assert(valid_signature); -} diff --git a/test_programs/execution_success/ecdsa_secp256r1_3x/Nargo.toml b/test_programs/execution_success/ecdsa_secp256r1_3x/Nargo.toml deleted file mode 100644 index 860b863a365..00000000000 --- a/test_programs/execution_success/ecdsa_secp256r1_3x/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "ecdsa_secp256r1_3x" -description = "Three ECDSA secp256r1 verifications" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/ecdsa_secp256r1_3x/Prover.toml b/test_programs/execution_success/ecdsa_secp256r1_3x/Prover.toml deleted file mode 100644 index e8edf26b2f3..00000000000 --- a/test_programs/execution_success/ecdsa_secp256r1_3x/Prover.toml +++ /dev/null @@ -1,57 +0,0 @@ -hashed_message = [ - 84, 112, 91, 163, 186, 175, 219, 223, 186, 140, 95, 154, 112, 247, 168, 155, 238, 152, - 217, 6, 181, 62, 49, 7, 77, 167, 186, 236, 220, 13, 169, 173, -] -pub_key_x = [ - 85, 15, 71, 16, 3, 243, 223, 151, 195, 223, 80, 106, 199, 151, 246, 114, 31, 177, 161, - 251, 123, 143, 111, 131, 210, 36, 73, 138, 101, 200, 142, 36, -] -pub_key_y = [ - 19, 96, 147, 215, 1, 46, 80, 154, 115, 113, 92, 189, 11, 0, 163, 204, 15, 244, 181, - 192, 27, 63, 250, 25, 106, 177, 251, 50, 112, 54, 184, 230, -] -signature = [ - 44, 112, 168, 208, 132, 182, 43, 252, 92, 224, 54, 65, 202, 249, 247, 42, - 212, 218, 140, 129, 191, 230, 236, 148, 135, 187, 94, 27, 239, 98, 161, 50, - 24, 173, 158, 226, 158, 175, 53, 31, 220, 80, 241, 82, 12, 66, 94, 155, - 144, 138, 7, 39, 139, 67, 176, 236, 123, 135, 39, 120, 193, 78, 7, 132 -] - -hashed_message_2 = [ - 84, 112, 91, 163, 186, 175, 219, 223, 186, 140, 95, 154, 112, 247, 168, 155, 238, 152, - 217, 6, 181, 62, 49, 7, 77, 167, 186, 236, 220, 13, 169, 173, -] -pub_key_x_2 = [ - 85, 15, 71, 16, 3, 243, 223, 151, 195, 223, 80, 106, 199, 151, 246, 114, 31, 177, 161, - 251, 123, 143, 111, 131, 210, 36, 73, 138, 101, 200, 142, 36, -] -pub_key_y_2 = [ - 19, 96, 147, 215, 1, 46, 80, 154, 115, 113, 92, 189, 11, 0, 163, 204, 15, 244, 181, - 192, 27, 63, 250, 25, 106, 177, 251, 50, 112, 54, 184, 230, -] -signature_2 = [ - 44, 112, 168, 208, 132, 182, 43, 252, 92, 224, 54, 65, 202, 249, 247, 42, - 212, 218, 140, 129, 191, 230, 236, 148, 135, 187, 94, 27, 239, 98, 161, 50, - 24, 173, 158, 226, 158, 175, 53, 31, 220, 80, 241, 82, 12, 66, 94, 155, - 144, 138, 7, 39, 139, 67, 176, 236, 123, 135, 39, 120, 193, 78, 7, 132 -] - - -hashed_message_3 = [ - 84, 112, 91, 163, 186, 175, 219, 223, 186, 140, 95, 154, 112, 247, 168, 155, 238, 152, - 217, 6, 181, 62, 49, 7, 77, 167, 186, 236, 220, 13, 169, 173, -] -pub_key_x_3 = [ - 85, 15, 71, 16, 3, 243, 223, 151, 195, 223, 80, 106, 199, 151, 246, 114, 31, 177, 161, - 251, 123, 143, 111, 131, 210, 36, 73, 138, 101, 200, 142, 36, -] -pub_key_y_3 = [ - 19, 96, 147, 215, 1, 46, 80, 154, 115, 113, 92, 189, 11, 0, 163, 204, 15, 244, 181, - 192, 27, 63, 250, 25, 106, 177, 251, 50, 112, 54, 184, 230, -] -signature_3 = [ - 44, 112, 168, 208, 132, 182, 43, 252, 92, 224, 54, 65, 202, 249, 247, 42, - 212, 218, 140, 129, 191, 230, 236, 148, 135, 187, 94, 27, 239, 98, 161, 50, - 24, 173, 158, 226, 158, 175, 53, 31, 220, 80, 241, 82, 12, 66, 94, 155, - 144, 138, 7, 39, 139, 67, 176, 236, 123, 135, 39, 120, 193, 78, 7, 132 -] \ No newline at end of file diff --git a/test_programs/execution_success/ecdsa_secp256r1_3x/src/main.nr b/test_programs/execution_success/ecdsa_secp256r1_3x/src/main.nr deleted file mode 100644 index b5bd633915f..00000000000 --- a/test_programs/execution_success/ecdsa_secp256r1_3x/src/main.nr +++ /dev/null @@ -1,21 +0,0 @@ -fn main( - hashed_message: [u8; 32], - pub_key_x: [u8; 32], - pub_key_y: [u8; 32], - signature: [u8; 64], - hashed_message_2: [u8; 32], - pub_key_x_2: [u8; 32], - pub_key_y_2: [u8; 32], - signature_2: [u8; 64], - hashed_message_3: [u8; 32], - pub_key_x_3: [u8; 32], - pub_key_y_3: [u8; 32], - signature_3: [u8; 64] -) { - let valid_signature = std::ecdsa_secp256r1::verify_signature(pub_key_x, pub_key_y, signature, hashed_message); - assert(valid_signature); - let valid_signature_2 = std::ecdsa_secp256r1::verify_signature(pub_key_x_2, pub_key_y_2, signature_2, hashed_message_2); - assert(valid_signature_2); - let valid_signature_3 = std::ecdsa_secp256r1::verify_signature(pub_key_x_3, pub_key_y_3, signature_3, hashed_message_3); - assert(valid_signature_3); -} diff --git a/test_programs/execution_success/eddsa/Nargo.toml b/test_programs/execution_success/eddsa/Nargo.toml deleted file mode 100644 index 0f545c2febc..00000000000 --- a/test_programs/execution_success/eddsa/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "eddsa" -description = "Eddsa verification" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/eddsa/Prover.toml b/test_programs/execution_success/eddsa/Prover.toml deleted file mode 100644 index 53555202ca6..00000000000 --- a/test_programs/execution_success/eddsa/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -_priv_key_a = 123 -_priv_key_b = 456 -msg = 789 diff --git a/test_programs/execution_success/eddsa/src/main.nr b/test_programs/execution_success/eddsa/src/main.nr deleted file mode 100644 index 407ca049806..00000000000 --- a/test_programs/execution_success/eddsa/src/main.nr +++ /dev/null @@ -1,55 +0,0 @@ -use std::compat; -use std::ec::consts::te::baby_jubjub; -use std::ec::tecurve::affine::Point as TEPoint; -use std::hash; -use std::eddsa::{eddsa_to_pub, eddsa_poseidon_verify, eddsa_verify}; -use std::hash::poseidon2::Poseidon2Hasher; - -fn main(msg: pub Field, _priv_key_a: Field, _priv_key_b: Field) { - // Skip this test for non-bn254 backends - if compat::is_bn254() { - let bjj = baby_jubjub(); - - let pub_key_a = bjj.curve.mul(_priv_key_a, bjj.curve.gen); - let pub_key_b = bjj.curve.mul(_priv_key_b, bjj.curve.gen); - let (pub_key_a_x, pub_key_a_y) = eddsa_to_pub(_priv_key_a); - let (pub_key_b_x, pub_key_b_y) = eddsa_to_pub(_priv_key_b); - assert(TEPoint::new(pub_key_a_x, pub_key_a_y) == pub_key_a); - assert(TEPoint::new(pub_key_b_x, pub_key_b_y) == pub_key_b); - // Manually computed as fields can't use modulo. Importantantly the commitment is within - // the subgroup order. Note that choice of hash is flexible for this step. - // let r_a = hash::pedersen_commitment([_priv_key_a, msg])[0] % bjj.suborder; // modulus computed manually - let r_a = 1414770703199880747815475415092878800081323795074043628810774576767372531818; - // let r_b = hash::pedersen_commitment([_priv_key_b, msg])[0] % bjj.suborder; // modulus computed manually - let r_b = 571799555715456644614141527517766533395606396271089506978608487688924659618; - - let r8_a = bjj.curve.mul(r_a, bjj.base8); - let r8_b = bjj.curve.mul(r_b, bjj.base8); - // let h_a: [Field; 6] = hash::poseidon::bn254::hash_5([ - // r8_a.x, - // r8_a.y, - // pub_key_a.x, - // pub_key_a.y, - // msg, - // ]); - // let h_b: [Field; 6] = hash::poseidon::bn254::hash_5([ - // r8_b.x, - // r8_b.y, - // pub_key_b.x, - // pub_key_b.y, - // msg, - // ]); - // let s_a = (r_a + _priv_key_a * h_a) % bjj.suborder; // modulus computed manually - let s_a = 30333430637424319196043722294837632681219980330991241982145549329256671548; - // let s_b = (r_b + _priv_key_b * h_b) % bjj.suborder; // modulus computed manually - let s_b = 1646085314320208098241070054368798527940102577261034947654839408482102287019; - // User A verifies their signature over the message - assert(eddsa_poseidon_verify(pub_key_a.x, pub_key_a.y, s_a, r8_a.x, r8_a.y, msg)); - // User B's signature over the message can't be used with user A's pub key - assert(!eddsa_poseidon_verify(pub_key_a.x, pub_key_a.y, s_b, r8_b.x, r8_b.y, msg)); - // User A's signature over the message can't be used with another message - assert(!eddsa_poseidon_verify(pub_key_a.x, pub_key_a.y, s_a, r8_a.x, r8_a.y, msg + 1)); - // Using a different hash should fail - assert(!eddsa_verify::(pub_key_a.x, pub_key_a.y, s_a, r8_a.x, r8_a.y, msg)); - } -} diff --git a/test_programs/execution_success/embedded_curve_ops/Nargo.toml b/test_programs/execution_success/embedded_curve_ops/Nargo.toml deleted file mode 100644 index 1c389149aaf..00000000000 --- a/test_programs/execution_success/embedded_curve_ops/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "embedded_curve_ops" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/embedded_curve_ops/Prover.toml b/test_programs/execution_success/embedded_curve_ops/Prover.toml deleted file mode 100644 index 7113b9cd038..00000000000 --- a/test_programs/execution_success/embedded_curve_ops/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -priv_key = "1" -pub_x = "0x0000000000000000000000000000000000000000000000000000000000000001" -pub_y = "0x0000000000000002cf135e7506a45d632d270d45f1181294833fc48d823f272c" \ No newline at end of file diff --git a/test_programs/execution_success/embedded_curve_ops/src/main.nr b/test_programs/execution_success/embedded_curve_ops/src/main.nr deleted file mode 100644 index 5372f73df23..00000000000 --- a/test_programs/execution_success/embedded_curve_ops/src/main.nr +++ /dev/null @@ -1,22 +0,0 @@ -fn main(priv_key: Field, pub_x: pub Field, pub_y: pub Field) { - let g1_y = 17631683881184975370165255887551781615748388533673675138860; - let g1 = std::embedded_curve_ops::EmbeddedCurvePoint { x: 1, y: g1_y, is_infinite: false }; - let scalar = std::embedded_curve_ops::EmbeddedCurveScalar { lo: priv_key, hi: 0 }; - // Test that multi_scalar_mul correctly derives the public key - let res = std::embedded_curve_ops::multi_scalar_mul([g1], [scalar]); - assert(res.x == pub_x); - assert(res.y == pub_y); - - // Test that double function calling embedded_curve_add works as expected - let pub_point = std::embedded_curve_ops::EmbeddedCurvePoint { x: pub_x, y: pub_y, is_infinite: false }; - let res = pub_point.double(); - let double = g1.add(g1); - - assert(double.x == res.x); - - // Test calling multi_scalar_mul with multiple points and scalars - let res = std::embedded_curve_ops::multi_scalar_mul([g1, g1], [scalar, scalar]); - - // The results should be double the g1 point because the scalars are 1 and we pass in g1 twice - assert(double.x == res.x); -} diff --git a/test_programs/execution_success/empty/Nargo.toml b/test_programs/execution_success/empty/Nargo.toml deleted file mode 100644 index 168911f2b2b..00000000000 --- a/test_programs/execution_success/empty/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "empty" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/empty/src/main.nr b/test_programs/execution_success/empty/src/main.nr deleted file mode 100644 index f328e4d9d04..00000000000 --- a/test_programs/execution_success/empty/src/main.nr +++ /dev/null @@ -1 +0,0 @@ -fn main() {} diff --git a/test_programs/execution_success/field_attribute/Nargo.toml b/test_programs/execution_success/field_attribute/Nargo.toml deleted file mode 100644 index 37487d0043c..00000000000 --- a/test_programs/execution_success/field_attribute/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "field_attribute" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/field_attribute/Prover.toml b/test_programs/execution_success/field_attribute/Prover.toml deleted file mode 100644 index 07890234a19..00000000000 --- a/test_programs/execution_success/field_attribute/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "3" diff --git a/test_programs/execution_success/field_attribute/src/main.nr b/test_programs/execution_success/field_attribute/src/main.nr deleted file mode 100644 index dda83db40de..00000000000 --- a/test_programs/execution_success/field_attribute/src/main.nr +++ /dev/null @@ -1,19 +0,0 @@ -// Test integer addition: 3 + 4 = 7 -fn main(mut x: u32) { - assert(x > foo()); -} - -#[field(bn254)] -fn foo() -> u32 { - 1 -} - -#[field(23)] -fn foo() -> u32 { - 2 -} - -#[field(bls12_381)] -fn foo() -> u32 { - 3 -} diff --git a/test_programs/execution_success/fold_2_to_17/Nargo.toml b/test_programs/execution_success/fold_2_to_17/Nargo.toml deleted file mode 100644 index 54e4c9a64e8..00000000000 --- a/test_programs/execution_success/fold_2_to_17/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "fold_2_to_17" -type = "bin" -authors = [""] -compiler_version = ">=0.25.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/fold_2_to_17/Prover.toml b/test_programs/execution_success/fold_2_to_17/Prover.toml deleted file mode 100644 index a56a84e61a4..00000000000 --- a/test_programs/execution_success/fold_2_to_17/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "2" diff --git a/test_programs/execution_success/fold_2_to_17/src/main.nr b/test_programs/execution_success/fold_2_to_17/src/main.nr deleted file mode 100644 index a3a747e4aee..00000000000 --- a/test_programs/execution_success/fold_2_to_17/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -use std::hash::poseidon2; - -global len = 2450 * 2 - 240; // for just under 2^17 gates -fn main(x: Field) { - let ped_input = [x; len]; - let mut val = poseidon2::Poseidon2::hash(ped_input, len); - let z = foo(x); - assert(val == z); -} - -#[fold] -fn foo(x: Field) -> Field { - let ped_input = [x; len]; - let mut val = poseidon2::Poseidon2::hash(ped_input, len); - val -} diff --git a/test_programs/execution_success/fold_after_inlined_calls/Nargo.toml b/test_programs/execution_success/fold_after_inlined_calls/Nargo.toml deleted file mode 100644 index d23924af083..00000000000 --- a/test_programs/execution_success/fold_after_inlined_calls/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "fold_after_inlined_calls" -type = "bin" -authors = [""] -compiler_version = ">=0.27.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/fold_after_inlined_calls/Prover.toml b/test_programs/execution_success/fold_after_inlined_calls/Prover.toml deleted file mode 100644 index 4dd6b405159..00000000000 --- a/test_programs/execution_success/fold_after_inlined_calls/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "1" diff --git a/test_programs/execution_success/fold_after_inlined_calls/src/main.nr b/test_programs/execution_success/fold_after_inlined_calls/src/main.nr deleted file mode 100644 index 84c81190b9b..00000000000 --- a/test_programs/execution_success/fold_after_inlined_calls/src/main.nr +++ /dev/null @@ -1,14 +0,0 @@ -fn main(x: u32) { - // We want to call a foldable function after a call to a function that is set to be inlined - assert(increment(x) == x + 1); - foo(x); -} - -#[fold] -fn foo(x: u32) { - assert(x == 1); -} - -fn increment(x: u32) -> u32 { - x + 1 -} diff --git a/test_programs/execution_success/fold_basic/Nargo.toml b/test_programs/execution_success/fold_basic/Nargo.toml deleted file mode 100644 index 575ba1f3ad1..00000000000 --- a/test_programs/execution_success/fold_basic/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "fold_basic" -type = "bin" -authors = [""] -compiler_version = ">=0.25.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/fold_basic/Prover.toml b/test_programs/execution_success/fold_basic/Prover.toml deleted file mode 100644 index f28f2f8cc48..00000000000 --- a/test_programs/execution_success/fold_basic/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "5" -y = "10" diff --git a/test_programs/execution_success/fold_basic/src/main.nr b/test_programs/execution_success/fold_basic/src/main.nr deleted file mode 100644 index 440779d2460..00000000000 --- a/test_programs/execution_success/fold_basic/src/main.nr +++ /dev/null @@ -1,13 +0,0 @@ -fn main(x: Field, y: pub Field) { - let z = foo(x, y); - let z2 = foo(x, y); - let z3 = foo(x, y); - assert(z == z2); - assert(z2 == z3); -} - -#[fold] -fn foo(x: Field, y: Field) -> Field { - assert(x != y); - x -} diff --git a/test_programs/execution_success/fold_basic_nested_call/Nargo.toml b/test_programs/execution_success/fold_basic_nested_call/Nargo.toml deleted file mode 100644 index 1b3c32999ae..00000000000 --- a/test_programs/execution_success/fold_basic_nested_call/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "fold_basic_nested_call" -type = "bin" -authors = [""] -compiler_version = ">=0.25.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/fold_basic_nested_call/Prover.toml b/test_programs/execution_success/fold_basic_nested_call/Prover.toml deleted file mode 100644 index f28f2f8cc48..00000000000 --- a/test_programs/execution_success/fold_basic_nested_call/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "5" -y = "10" diff --git a/test_programs/execution_success/fold_basic_nested_call/src/main.nr b/test_programs/execution_success/fold_basic_nested_call/src/main.nr deleted file mode 100644 index 6d02b734727..00000000000 --- a/test_programs/execution_success/fold_basic_nested_call/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -fn main(x: Field, y: pub Field) { - let z = func_with_nested_foo_call(x, y); - let z2 = func_with_nested_foo_call(x, y); - assert(z == z2); -} - -#[fold] -fn func_with_nested_foo_call(x: Field, y: Field) -> Field { - foo(x + 2, y) -} - -#[fold] -fn foo(x: Field, y: Field) -> Field { - assert(x != y); - x -} diff --git a/test_programs/execution_success/fold_call_witness_condition/Nargo.toml b/test_programs/execution_success/fold_call_witness_condition/Nargo.toml deleted file mode 100644 index cedaea348c5..00000000000 --- a/test_programs/execution_success/fold_call_witness_condition/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "fold_call_witness_condition" -type = "bin" -authors = [""] -compiler_version = ">=0.26.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/fold_call_witness_condition/Prover.toml b/test_programs/execution_success/fold_call_witness_condition/Prover.toml deleted file mode 100644 index a4d6339b661..00000000000 --- a/test_programs/execution_success/fold_call_witness_condition/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "10" -y = "10" -enable = false diff --git a/test_programs/execution_success/fold_call_witness_condition/src/main.nr b/test_programs/execution_success/fold_call_witness_condition/src/main.nr deleted file mode 100644 index 5dc75e4a99f..00000000000 --- a/test_programs/execution_success/fold_call_witness_condition/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -global NUM_RESULTS = 2; -fn main(x: Field, y: pub Field, enable: bool) -> pub [Field; NUM_RESULTS] { - let mut result = [0; NUM_RESULTS]; - for i in 0..NUM_RESULTS { - if enable { - result[i] = return_value(x, y); - } - } - result -} - -#[fold] -fn return_value(x: Field, y: Field) -> Field { - assert(x != y); - x -} diff --git a/test_programs/execution_success/fold_complex_outputs/Nargo.toml b/test_programs/execution_success/fold_complex_outputs/Nargo.toml deleted file mode 100644 index f00c6520b4a..00000000000 --- a/test_programs/execution_success/fold_complex_outputs/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "fold_complex_outputs" -type = "bin" -authors = [""] -compiler_version = ">=0.28.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/fold_complex_outputs/Prover.toml b/test_programs/execution_success/fold_complex_outputs/Prover.toml deleted file mode 100644 index a26b97d6471..00000000000 --- a/test_programs/execution_success/fold_complex_outputs/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "5" -y = "3" diff --git a/test_programs/execution_success/fold_complex_outputs/src/main.nr b/test_programs/execution_success/fold_complex_outputs/src/main.nr deleted file mode 100644 index 309d9747598..00000000000 --- a/test_programs/execution_success/fold_complex_outputs/src/main.nr +++ /dev/null @@ -1,72 +0,0 @@ -struct MyStruct { - x: u32, - y: u32, - z: u32, - nested_struct: InnerStruct -} - -struct InnerStruct { - small_array: [u32; 2], - big_array: [u32; 5], -} - -struct ParentStruct { - basic_array: [Field; 3], - id: u32, - my_structs: [MyStruct; 2], -} - -fn main(x: u32, y: pub u32) { - let nested_struct = InnerStruct { small_array: [1 as u32; 2], big_array: [0 as u32; 5] }; - let s = MyStruct { x, y, z: x + y, nested_struct }; - let parent = ParentStruct { basic_array: [1; 3], id: 100, my_structs: [s, s] }; - let new_parent = map_fields(parent); - - // Now check that the outputs are as we expect them to be - assert(new_parent.basic_array[0] == 1); - assert(new_parent.basic_array[1] == 18); - assert(new_parent.basic_array[2] == 1); - - let struct_0 = new_parent.my_structs[0]; - assert(struct_0.x == 5); - assert(struct_0.y == 3); - assert(struct_0.z == 8); - assert(struct_0.nested_struct.small_array == nested_struct.small_array); - assert(struct_0.nested_struct.big_array == nested_struct.big_array); - - let struct_1 = new_parent.my_structs[1]; - assert(struct_1.x == 50); - assert(struct_1.y == 30); - assert(struct_1.z == 80); - assert(struct_1.nested_struct.small_array == [5, 10]); - assert(struct_1.nested_struct.big_array == [15, 20, 25, 30, 35]); -} - -// Meaningless mapping to test whether the values returned are what we expect -#[fold] -fn map_fields(mut input: ParentStruct) -> ParentStruct { - let current_struct = input.my_structs[0]; - let mut sum = 0; - for value in current_struct.nested_struct.small_array { - sum += value; - } - for value in current_struct.nested_struct.big_array { - sum += value; - } - sum += (current_struct.x + current_struct.y + current_struct.z); - - input.basic_array[1] = sum as Field; - - input.my_structs[1].nested_struct.small_array = [5, 10]; - input.my_structs[1].nested_struct.big_array = [15, 20, 25, 30, 35]; - - // LHS input.my_structs[1].x == 50 - input.my_structs[1].x = input.my_structs[1].x * 10; - // LHS input.my_structs[1].y == 30 - input.my_structs[1].y = input.my_structs[1].y * 10; - // LHS input.my_structs[1].x == 80 - input.my_structs[1].z = input.my_structs[1].x + input.my_structs[1].y; - - input -} - diff --git a/test_programs/execution_success/fold_distinct_return/Nargo.toml b/test_programs/execution_success/fold_distinct_return/Nargo.toml deleted file mode 100644 index f18edb7e49d..00000000000 --- a/test_programs/execution_success/fold_distinct_return/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "fold_distinct_return" -type = "bin" -authors = [""] -compiler_version = ">=0.28.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/fold_distinct_return/Prover.toml b/test_programs/execution_success/fold_distinct_return/Prover.toml deleted file mode 100644 index f28f2f8cc48..00000000000 --- a/test_programs/execution_success/fold_distinct_return/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "5" -y = "10" diff --git a/test_programs/execution_success/fold_distinct_return/src/main.nr b/test_programs/execution_success/fold_distinct_return/src/main.nr deleted file mode 100644 index b0843a02b80..00000000000 --- a/test_programs/execution_success/fold_distinct_return/src/main.nr +++ /dev/null @@ -1,10 +0,0 @@ -fn main(x: u32, y: pub u32) { - let new_field = new_field_in_array([x, y, 3]); - assert(new_field[0] == 25); -} - -#[fold] -fn new_field_in_array(mut input: [u32; 3]) -> [u32; 3] { - input[0] = input[0] + 20; - input -} diff --git a/test_programs/execution_success/fold_fibonacci/Nargo.toml b/test_programs/execution_success/fold_fibonacci/Nargo.toml deleted file mode 100644 index 6d8214689b0..00000000000 --- a/test_programs/execution_success/fold_fibonacci/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "fold_fibonacci" -type = "bin" -authors = [""] -compiler_version = ">=0.28.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/fold_fibonacci/Prover.toml b/test_programs/execution_success/fold_fibonacci/Prover.toml deleted file mode 100644 index 3a627b9188b..00000000000 --- a/test_programs/execution_success/fold_fibonacci/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "10" diff --git a/test_programs/execution_success/fold_fibonacci/src/main.nr b/test_programs/execution_success/fold_fibonacci/src/main.nr deleted file mode 100644 index e150a586086..00000000000 --- a/test_programs/execution_success/fold_fibonacci/src/main.nr +++ /dev/null @@ -1,12 +0,0 @@ -fn main(x: u32) { - assert(fibonacci(x) == 55); -} - -#[fold] -fn fibonacci(x: u32) -> u32 { - if x <= 1 { - x - } else { - fibonacci(x - 1) + fibonacci(x - 2) - } -} diff --git a/test_programs/execution_success/fold_numeric_generic_poseidon/Nargo.toml b/test_programs/execution_success/fold_numeric_generic_poseidon/Nargo.toml deleted file mode 100644 index 8c2bc79ea8d..00000000000 --- a/test_programs/execution_success/fold_numeric_generic_poseidon/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "fold_numeric_generic_poseidon" -type = "bin" -authors = [""] -compiler_version = ">=0.27.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/fold_numeric_generic_poseidon/Prover.toml b/test_programs/execution_success/fold_numeric_generic_poseidon/Prover.toml deleted file mode 100644 index 00e821cf89d..00000000000 --- a/test_programs/execution_success/fold_numeric_generic_poseidon/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -enable = [true, false] -to_hash = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] diff --git a/test_programs/execution_success/fold_numeric_generic_poseidon/src/main.nr b/test_programs/execution_success/fold_numeric_generic_poseidon/src/main.nr deleted file mode 100644 index 8eaea086ec0..00000000000 --- a/test_programs/execution_success/fold_numeric_generic_poseidon/src/main.nr +++ /dev/null @@ -1,33 +0,0 @@ -use std::hash::{pedersen_hash_with_separator, poseidon2::Poseidon2}; - -global NUM_HASHES: u32 = 2; -global HASH_LENGTH = 10; - -#[fold] -pub fn poseidon_hash(inputs: [Field; N]) -> Field { - Poseidon2::hash(inputs, inputs.len()) -} - -fn main( - to_hash: [[Field; HASH_LENGTH]; NUM_HASHES], - enable: [bool; NUM_HASHES] -) -> pub [Field; NUM_HASHES + 1] { - let mut result = [0; NUM_HASHES + 1]; - for i in 0..NUM_HASHES { - let enable = enable[i]; - let to_hash = to_hash[i]; - if enable { - result[i] = poseidon_hash(to_hash); - } - } - - // We want to make sure that the foldable function with a numeric generic - // is monomorphized correctly. - let mut double_preimage = [0; 20]; - for i in 0..HASH_LENGTH * 2 { - double_preimage[i] = to_hash[0][i % HASH_LENGTH]; - } - result[NUM_HASHES] = poseidon_hash(double_preimage); - - result -} diff --git a/test_programs/execution_success/generics/Nargo.toml b/test_programs/execution_success/generics/Nargo.toml deleted file mode 100644 index 19c8ff28ec7..00000000000 --- a/test_programs/execution_success/generics/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "generics" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/generics/Prover.toml b/test_programs/execution_success/generics/Prover.toml deleted file mode 100644 index 85f1e9f96f2..00000000000 --- a/test_programs/execution_success/generics/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "2" -y = "2" diff --git a/test_programs/execution_success/generics/src/main.nr b/test_programs/execution_success/generics/src/main.nr deleted file mode 100644 index 329759caea0..00000000000 --- a/test_programs/execution_success/generics/src/main.nr +++ /dev/null @@ -1,82 +0,0 @@ -struct Bar { - one: Field, - two: Field, - other: T, -} - -fn foo(bar: Bar) { - assert(bar.one == bar.two); -} - -struct BigInt { - limbs: [u32; N], -} - -impl BigInt { - // `N` is in scope of all methods in the impl - fn first(first: BigInt, second: BigInt) -> Self { - assert(first.limbs != second.limbs); - first - } - - fn second(first: BigInt, second: Self) -> Self { - assert(first.limbs != second.limbs); - second - } -} - -impl Bar { - fn get_other(self) -> Field { - self.other - } -} - -impl Bar { - // This is to test that we can use turbofish on methods as well - fn zeroed(_self: Self) -> A { - std::mem::zeroed() - } -} - -fn main(x: Field, y: Field) { - let bar1: Bar = Bar { one: x, two: y, other: 0 }; - let bar2 = Bar { one: x, two: y, other: [0] }; - - foo(bar1); - foo(bar2); - // Test generic impls - let int1 = BigInt { limbs: [1] }; - let int2 = BigInt { limbs: [2] }; - let BigInt { limbs } = int1.second(int2).first(int1); - assert(limbs == int2.limbs); - // Test impl exclusively for Bar - assert(bar1.get_other() == bar1.other); - // Expected type error - // assert(bar2.get_other() == bar2.other); - let one = x; - let two = y; - let nested_generics: Bar> = Bar { one, two, other: Bar { one, two, other: 0 } }; - assert(nested_generics.other.other == bar1.get_other()); - - // Test turbofish operator - foo::(bar1); - - // Test that turbofish works on methods and that it uses the generics on the methods - // While still handling the generic on the impl (T in this case) that is implicitly added - // to the method. - assert(bar1.zeroed::() == 0); - - let _ = regression_2055([1, 2, 3]); -} - -fn regression_2055(bytes: [u8; LEN]) -> Field { - let mut f = 0; - let mut b = 1; - let mut len = LEN - 1; // FAILS - for i in 0..LEN { - let j = len - i; - f += (bytes[j] as Field) * b; - b *= 256; - } - f -} diff --git a/test_programs/execution_success/global_consts/Nargo.toml b/test_programs/execution_success/global_consts/Nargo.toml deleted file mode 100644 index 3b4d6be2353..00000000000 --- a/test_programs/execution_success/global_consts/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "global_consts" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/global_consts/Prover.toml b/test_programs/execution_success/global_consts/Prover.toml deleted file mode 100644 index 66f7feb1dda..00000000000 --- a/test_programs/execution_success/global_consts/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -a = [77,75,108,209,54,16,50,202,155,210,174,185,217,0,170,77,69,217,234,216,10,201,66,51,116,196,81,167,37,77,7,102] -b = [44,75,108,209,54,16,50,202,155,210,174,185,217,0,170,77,69,217,234,216,10,201,66,51,116,196,81,167,37,77,7,102] -c = [3, 3, 3] -d = [5, 5, 5, 5, 5] \ No newline at end of file diff --git a/test_programs/execution_success/global_consts/src/baz.nr b/test_programs/execution_success/global_consts/src/baz.nr deleted file mode 100644 index 384cf9d3569..00000000000 --- a/test_programs/execution_success/global_consts/src/baz.nr +++ /dev/null @@ -1,5 +0,0 @@ -pub fn from_baz(x: [Field; crate::foo::MAGIC_NUMBER]) { - for i in 0..crate::foo::MAGIC_NUMBER { - assert(x[i] == crate::foo::MAGIC_NUMBER as Field); - } -} diff --git a/test_programs/execution_success/global_consts/src/foo.nr b/test_programs/execution_success/global_consts/src/foo.nr deleted file mode 100644 index 50e331493dc..00000000000 --- a/test_programs/execution_success/global_consts/src/foo.nr +++ /dev/null @@ -1,11 +0,0 @@ -mod bar; - -global N: u32 = 5; -global MAGIC_NUMBER: u32 = 3; -global TYPE_INFERRED = 42; - -pub fn from_foo(x: [Field; bar::N]) { - for i in 0..bar::N { - assert(x[i] == bar::N as Field); - } -} diff --git a/test_programs/execution_success/global_consts/src/foo/bar.nr b/test_programs/execution_success/global_consts/src/foo/bar.nr deleted file mode 100644 index 61ac1e8e8ed..00000000000 --- a/test_programs/execution_success/global_consts/src/foo/bar.nr +++ /dev/null @@ -1,5 +0,0 @@ -global N: u32 = 5; - -pub fn from_bar(x: Field) -> Field { - x * N as Field -} diff --git a/test_programs/execution_success/global_consts/src/main.nr b/test_programs/execution_success/global_consts/src/main.nr deleted file mode 100644 index 0b382ff6b8b..00000000000 --- a/test_programs/execution_success/global_consts/src/main.nr +++ /dev/null @@ -1,126 +0,0 @@ -mod foo; -mod baz; - -global M: u32 = 32; -global L: Field = 10; // Unused globals currently allowed -global N: u32 = 5; -global T_LEN: u32 = 2; - -// Globals can reference other globals -global DERIVED: Field = M as Field + L; - -struct Dummy { - x: [Field; N], - y: [Field; foo::MAGIC_NUMBER] -} - -struct Test { - v: Field, -} -global VALS: [Test; 1] = [Test { v: 100 }]; -global NESTED = [VALS, VALS]; - -unconstrained fn calculate_global_value() -> Field { - 42 -} - -// Regression test for https://github.com/noir-lang/noir/issues/4318 -global CALCULATED_GLOBAL: Field = unsafe { calculate_global_value() }; - -fn main( - a: [Field; M + N - N], - b: [Field; 30 + N / 2], - c: pub [Field; foo::MAGIC_NUMBER], - d: [Field; foo::bar::N] -) { - let test_struct = Dummy { x: d, y: c }; - - for i in 0..foo::MAGIC_NUMBER { - assert(c[i] == foo::MAGIC_NUMBER as Field); - assert(test_struct.y[i] == foo::MAGIC_NUMBER as Field); - assert(test_struct.y[i] != NESTED[1][0].v); - } - - assert(N as Field != M as Field); - - let expected: u32 = 42; - assert(foo::TYPE_INFERRED == expected); - - let mut y = 5; - let mut x = M; - for i in 0..N * N { - let M: u32 = 10; - x = M; - - y = i; - } - assert(y == 24); - assert(x == 10); - - let q = multiplyByM(3); - assert(q == 96); - - arrays_neq(a, b); - - let t: [Field; T_LEN] = [N as Field, M as Field]; - assert(t[1] == 32); - - assert(15 == my_submodule::my_helper()); - - let add_submodules_N = my_submodule::N as Field + foo::bar::N as Field; - assert(15 == add_submodules_N); - let add_from_bar_N = my_submodule::N as Field + foo::bar::from_bar(1); - assert(15 == add_from_bar_N); - // Example showing an array filled with (my_submodule::N + 2) 0's - let sugared = [0; my_submodule::N + 2]; - assert(sugared[my_submodule::N + 1] == 0); - - let arr: [Field; my_submodule::N] = [N as Field; 10]; - assert((arr[0] == 5) & (arr[9] == 5)); - - foo::from_foo(d); - baz::from_baz(c); - assert(DERIVED == M as Field + L); - - assert(CALCULATED_GLOBAL == 42); -} - -fn multiplyByM(x: Field) -> Field { - x * M as Field -} - -fn arrays_neq(a: [Field; M], b: [Field; M]) { - assert(a != b); -} - -mod my_submodule { - global N: u32 = 10; - global L: Field = 50; - - fn my_bool_or(x: u1, y: u1) { - assert(x | y == 1); - } - - pub fn my_helper() -> Field { - let N: u32 = 15; // Like in Rust, local variables override globals - let x = N as Field; - x - } -} - -struct Foo { - a: Field, -} - -struct Bar {} - -impl Bar { - fn get_a() -> Field { - 1 - } -} - -// Regression for #1440 -global foo = Foo { - a: Bar::get_a(), -}; diff --git a/test_programs/execution_success/hash_to_field/Nargo.toml b/test_programs/execution_success/hash_to_field/Nargo.toml deleted file mode 100644 index a00a7bdc050..00000000000 --- a/test_programs/execution_success/hash_to_field/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "hash_to_field" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/hash_to_field/Prover.toml b/test_programs/execution_success/hash_to_field/Prover.toml deleted file mode 100644 index f6597d3f78a..00000000000 --- a/test_programs/execution_success/hash_to_field/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -input = "1" diff --git a/test_programs/execution_success/hash_to_field/src/main.nr b/test_programs/execution_success/hash_to_field/src/main.nr deleted file mode 100644 index bb4f829ec33..00000000000 --- a/test_programs/execution_success/hash_to_field/src/main.nr +++ /dev/null @@ -1,3 +0,0 @@ -fn main(input: Field) -> pub Field { - std::hash::hash_to_field(&[input]) -} diff --git a/test_programs/execution_success/hashmap/Nargo.toml b/test_programs/execution_success/hashmap/Nargo.toml deleted file mode 100644 index c09debc9833..00000000000 --- a/test_programs/execution_success/hashmap/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "hashmap" -type = "bin" -authors = [""] - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/hashmap/Prover.toml b/test_programs/execution_success/hashmap/Prover.toml deleted file mode 100644 index 84d4c0733e4..00000000000 --- a/test_programs/execution_success/hashmap/Prover.toml +++ /dev/null @@ -1,26 +0,0 @@ -# Input: 6 key-value entries for hashmap capacity of 8. -# These must be distinct (both key-to-key, and value-to-value) for correct testing. - -[[input]] -key = 2 -value = 17 - -[[input]] -key = 3 -value = 19 - -[[input]] -key = 5 -value = 23 - -[[input]] -key = 7 -value = 29 - -[[input]] -key = 11 -value = 31 - -[[input]] -key = 41 -value = 43 \ No newline at end of file diff --git a/test_programs/execution_success/hashmap/src/main.nr b/test_programs/execution_success/hashmap/src/main.nr deleted file mode 100644 index e8bc486e1e2..00000000000 --- a/test_programs/execution_success/hashmap/src/main.nr +++ /dev/null @@ -1,361 +0,0 @@ -mod utils; - -use std::collections::map::HashMap; -use std::hash::BuildHasherDefault; -use std::hash::poseidon2::Poseidon2Hasher; - -use utils::cut; - -type K = Field; -type V = Field; - -// It is more convenient and readable to use structs as input. -struct Entry{ - key: Field, - value: Field -} - -global HASHMAP_CAP: u32 = 8; -global HASHMAP_LEN = 6; - -global FIELD_CMP = |a: Field, b: Field| a.lt(b); - -global K_CMP = FIELD_CMP; -global V_CMP = FIELD_CMP; -global KV_CMP = |a: (K, V), b: (K, V)| a.0.lt(b.0); - -global ALLOCATE_HASHMAP = || -> HashMap> - HashMap::default(); - -fn main(input: [Entry; HASHMAP_LEN]) { - test_sequential(input[0].key, input[0].value); - test_multiple_equal_insert(input[1].key, input[1].value); - test_value_override(input[2].key, input[2].value, input[3].value); - test_insert_and_methods(input); - test_hashmaps_equality(input); - test_retain(); - test_iterators(); - test_mut_iterators(); - - doc_tests(); -} - -// Insert, get, remove. -fn test_sequential(key: K, value: V) { - let mut hashmap = ALLOCATE_HASHMAP(); - assert(hashmap.is_empty(), "New HashMap should be empty."); - - hashmap.insert(key, value); - assert(hashmap.len() == 1, "HashMap after one insert should have a length of 1 element."); - - let got = hashmap.get(key); - assert(got.is_some(), "Got none value."); - let got = got.unwrap_unchecked(); - assert(value == got, f"Inserted {value} but got {got} for the same key."); - - hashmap.remove(key); - assert(hashmap.is_empty(), "HashMap after one insert and corresponding removal should be empty."); - let got = hashmap.get(key); - assert(got.is_none(), "Value has been removed, but is still available (not none)."); -} - -// Insert same pair several times. -fn test_multiple_equal_insert(key: K, value: V) { - let mut hashmap = ALLOCATE_HASHMAP(); - assert(hashmap.is_empty(), "New HashMap should be empty."); - - for _ in 0..HASHMAP_LEN { - hashmap.insert(key, value); - } - - let len = hashmap.len(); - assert(len == 1, f"HashMap length must be 1, got {len}."); - - let got = hashmap.get(key); - assert(got.is_some(), "Got none value."); - let got = got.unwrap_unchecked(); - assert(value == got, f"Inserted {value} but got {got} for the same key."); -} - -// Override value for existing pair. -fn test_value_override(key: K, value: V, new_value: V) { - let mut hashmap = ALLOCATE_HASHMAP(); - assert(hashmap.is_empty(), "New hashmap should be empty."); - - hashmap.insert(key, value); - hashmap.insert(key, new_value); - assert(hashmap.len() == 1, "HashMap length is invalid."); - - let got = hashmap.get(key); - assert(got.is_some(), "Got none value."); - let got = got.unwrap_unchecked(); - assert(got == new_value, f"Expected {new_value}, but got {got}."); -} - -// Insert several distinct pairs and test auxiliary methods. -fn test_insert_and_methods(input: [Entry; HASHMAP_LEN]) { - let mut hashmap = ALLOCATE_HASHMAP(); - assert(hashmap.is_empty(), "New HashMap should be empty."); - - for entry in input { - hashmap.insert(entry.key, entry.value); - } - - assert(hashmap.len() == HASHMAP_LEN, "hashmap.len() does not match input lenght."); - - for entry in input { - assert(hashmap.contains_key(entry.key), f"Not found inserted key {entry.key}."); - } - - hashmap.clear(); - assert(hashmap.is_empty(), "HashMap after clear() should be empty."); -} - -// Insert several pairs and test retaining. -fn test_retain() { - let mut hashmap = ALLOCATE_HASHMAP(); - assert(hashmap.is_empty(), "New HashMap should be empty."); - - let (key, value) = (5, 11); - hashmap.insert(key, value); - let (key, value) = (2, 13); - hashmap.insert(key, value); - let (key, value) = (11, 5); - hashmap.insert(key, value); - - let predicate = |key: K, value: V| -> bool {key * value == 55}; - hashmap.retain(predicate); - - assert(hashmap.len() == 2, "HashMap should have retained 2 elements."); - assert(hashmap.get(2).is_none(), "Pair should have been removed, since it does not match predicate."); -} - -// Equality trait check. -fn test_hashmaps_equality(input: [Entry; HASHMAP_LEN]) { - let mut hashmap_1 = ALLOCATE_HASHMAP(); - let mut hashmap_2 = ALLOCATE_HASHMAP(); - - for entry in input { - hashmap_1.insert(entry.key, entry.value); - hashmap_2.insert(entry.key, entry.value); - } - - assert(hashmap_1 == hashmap_2, "HashMaps should be equal."); - - hashmap_2.remove(input[0].key); - - assert(hashmap_1 != hashmap_2, "HashMaps should not be equal."); -} - -// Test entries, keys, values. -fn test_iterators() { - let mut hashmap = ALLOCATE_HASHMAP(); - - hashmap.insert(2, 3); - hashmap.insert(5, 7); - hashmap.insert(11, 13); - - let keys: [K; 3] = cut(hashmap.keys()).sort_via(K_CMP); - let values: [V; 3] = cut(hashmap.values()).sort_via(V_CMP); - let entries: [(K, V); 3] = cut(hashmap.entries()).sort_via(KV_CMP); - - assert(keys == [2, 5, 11], "Got incorrect iteration of keys."); - assert(values == [3, 7, 13], "Got incorrect iteration of values."); - assert(entries == [(2, 3), (5, 7), (11, 13)], "Got incorrect iteration of entries."); -} - -// Test mutable iteration over keys, values and entries. -fn test_mut_iterators() { - let mut hashmap = ALLOCATE_HASHMAP(); - - hashmap.insert(2, 3); - hashmap.insert(5, 7); - hashmap.insert(11, 13); - - let f = |k: K| -> K{ k * 3}; - hashmap.iter_keys_mut(f); - - let f = |v: V| -> V{ v * 5}; - hashmap.iter_values_mut(f); - - let keys: [K; 3] = cut(hashmap.keys()).sort_via(K_CMP); - let values: [V; 3] = cut(hashmap.values()).sort_via(V_CMP); - - assert(keys == [6, 15, 33], f"Got incorrect iteration of keys: {keys}"); - assert(values == [15, 35, 65], "Got incorrect iteration of values."); - - let f = |k: K, v: V| -> (K, V){(k * 2, v * 2)}; - hashmap.iter_mut(f); - - let entries: [(K, V); 3] = cut(hashmap.entries()).sort_via(KV_CMP); - - assert(entries == [(12, 30), (30, 70), (66, 130)], "Got incorrect iteration of entries."); -} - -// docs:start:type_alias -type MyMap = HashMap>; -// docs:end:type_alias - -/// Tests examples from the stdlib hashmap documentation -fn doc_tests() { - // docs:start:default_example - let hashmap: HashMap> = HashMap::default(); - assert(hashmap.is_empty()); - // docs:end:default_example - - // docs:start:with_hasher_example - let my_hasher: BuildHasherDefault = Default::default(); - let hashmap: HashMap> = HashMap::with_hasher(my_hasher); - assert(hashmap.is_empty()); - // docs:end:with_hasher_example - - // docs:start:insert_example - let mut map: HashMap> = HashMap::default(); - map.insert(12, 42); - assert(map.len() == 1); - // docs:end:insert_example - - get_example(map); - - // docs:start:remove_example - map.remove(12); - assert(map.is_empty()); - - // If a key was not present in the map, remove does nothing - map.remove(12); - assert(map.is_empty()); - // docs:end:remove_example - - // docs:start:is_empty_example - assert(map.is_empty()); - - map.insert(1, 2); - assert(!map.is_empty()); - - map.remove(1); - assert(map.is_empty()); - // docs:end:is_empty_example - - // docs:start:len_example - // This is equivalent to checking map.is_empty() - assert(map.len() == 0); - - map.insert(1, 2); - map.insert(3, 4); - map.insert(5, 6); - assert(map.len() == 3); - - // 3 was already present as a key in the hash map, so the length is unchanged - map.insert(3, 7); - assert(map.len() == 3); - - map.remove(1); - assert(map.len() == 2); - // docs:end:len_example - - // docs:start:capacity_example - let empty_map: HashMap> = HashMap::default(); - assert(empty_map.len() == 0); - assert(empty_map.capacity() == 42); - // docs:end:capacity_example - - // docs:start:clear_example - assert(!map.is_empty()); - map.clear(); - assert(map.is_empty()); - // docs:end:clear_example - - // docs:start:contains_key_example - if map.contains_key(7) { - let value = map.get(7); - assert(value.is_some()); - } else { - println("No value for key 7!"); - } - // docs:end:contains_key_example - - entries_examples(map); - iter_examples(map); - - // docs:start:retain_example - map.retain(|k, v| (k != 0) & (v != 0)); - // docs:end:retain_example - - // docs:start:eq_example - let mut map1: HashMap> = HashMap::default(); - let mut map2: HashMap> = HashMap::default(); - - map1.insert(1, 2); - map1.insert(3, 4); - - map2.insert(3, 4); - map2.insert(1, 2); - - assert(map1 == map2); - // docs:end:eq_example -} - -// docs:start:get_example -fn get_example(map: HashMap>) { - let x = map.get(12); - - if x.is_some() { - assert(x.unwrap() == 42); - } -} -// docs:end:get_example - -fn entries_examples(map: HashMap>) { - // docs:start:entries_example - let entries = map.entries(); - - // The length of a hashmap may not be compile-time known, so we - // need to loop over its capacity instead - for i in 0..map.capacity() { - if i < entries.len() { - let (key, value) = entries.get(i); - println(f"{key} -> {value}"); - } - } - // docs:end:entries_example - - // docs:start:keys_example - let keys = map.keys(); - - for i in 0..keys.max_len() { - if i < keys.len() { - let key = keys.get_unchecked(i); - let value = map.get(key).unwrap_unchecked(); - println(f"{key} -> {value}"); - } - } - // docs:end:keys_example - - // docs:start:values_example - let values = map.values(); - - for i in 0..values.max_len() { - if i < values.len() { - let value = values.get_unchecked(i); - println(f"Found value {value}"); - } - } - // docs:end:values_example -} - -fn iter_examples(mut map: HashMap>) { - // docs:start:iter_mut_example - // Add 1 to each key in the map, and double the value associated with that key. - map.iter_mut(|k, v| (k + 1, v * 2)); - // docs:end:iter_mut_example - - // docs:start:iter_keys_mut_example - // Double each key, leaving the value associated with that key untouched - map.iter_keys_mut(|k| k * 2); - // docs:end:iter_keys_mut_example - - // docs:start:iter_values_mut_example - // Halve each value - map.iter_values_mut(|v| v / 2); - // docs:end:iter_values_mut_example -} diff --git a/test_programs/execution_success/hashmap/src/utils.nr b/test_programs/execution_success/hashmap/src/utils.nr deleted file mode 100644 index de6c78f5adf..00000000000 --- a/test_programs/execution_success/hashmap/src/utils.nr +++ /dev/null @@ -1,10 +0,0 @@ -// Compile-time: cuts the M first elements from the BoundedVec. -pub(crate) fn cut(input: BoundedVec) -> [T; M] { - assert(M < N, "M should be less than N."); - - let mut new = BoundedVec::new(); - for i in 0..M { - new.push(input.get(i)); - } - new.storage() -} diff --git a/test_programs/execution_success/higher_order_functions/Nargo.toml b/test_programs/execution_success/higher_order_functions/Nargo.toml deleted file mode 100644 index 8f8a79e7e83..00000000000 --- a/test_programs/execution_success/higher_order_functions/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "higher_order_functions" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/higher_order_functions/Prover.toml b/test_programs/execution_success/higher_order_functions/Prover.toml deleted file mode 100644 index b373bb827c4..00000000000 --- a/test_programs/execution_success/higher_order_functions/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -w = 1 \ No newline at end of file diff --git a/test_programs/execution_success/higher_order_functions/src/main.nr b/test_programs/execution_success/higher_order_functions/src/main.nr deleted file mode 100644 index 0a498e74ad1..00000000000 --- a/test_programs/execution_success/higher_order_functions/src/main.nr +++ /dev/null @@ -1,99 +0,0 @@ -fn main(w: Field) -> pub Field { - let f = if 3 * 7 > 200 as u32 { foo } else { bar }; - assert(f()[1] == 2); - // Lambdas: - assert(twice(|x| x * 2, 5) == 20); - assert((|x, y| x + y + 1)(2, 3) == 6); - // nested lambdas - assert( - (|a, b| { - a + (|c| c + 2)(b) - })(0, 1) - == 3 - ); - // Closures: - let a = 42; - let g = || a; - assert(g() == 42); - // When you copy mutable variables, - // the capture of the copies shouldn't change: - let mut x = 2; - x = x + 1; - let z = x; - // Add extra mutations to ensure we can mutate x without the - // captured z changing. - x = x + 1; - assert((|y| y + z)(1) == 4); - // When you capture mutable variables, - // again, the captured variable doesn't change: - let closure_capturing_mutable = (|y| y + x); - assert(closure_capturing_mutable(1) == 5); - x += 1; - assert(closure_capturing_mutable(1) == 5); - - regression_2154(); - - let ret = twice(add1, 3); - - test_array_functions(); - w + ret -} -/// Test the array functions in std::array -fn test_array_functions() { - let two = 2; // giving this a name, to ensure that the Option functions work with closures - let myarray: [i32; 3] = [1, 2, 3]; - assert(myarray.any(|n| n > 2)); - assert(myarray.any(|n| n > two)); - - let evens: [i32; 3] = myarray.map(|n| n * two); // [2, 4, 6] - assert(evens.all(|n| n > 1)); - assert(evens.all(|n| n >= two)); - - assert(evens.fold(0, |a, b| a + b) == 12); - assert(evens.fold(0, |a, b| a + b + two) == 18); - assert(evens.reduce(|a, b| a + b) == 12); - assert(evens.reduce(|a, b| a + b + two) == 16); - // TODO: is this a sort_via issue with the new backend, - // or something more general? - // - // currently it fails only with `--experimental-ssa` with - // "not yet implemented: Cast into signed" - // but it worked with the original ssa backend - // (before dropping it) - // - // opened #2121 for it - // https://github.com/noir-lang/noir/issues/2121 - // let descending = myarray.sort_via(|a, b| a >= b); - // assert(descending == [3, 2, 1]); - assert(evens.map(|n| n / 2) == myarray); - assert(evens.map(|n| n / two) == myarray); -} - -fn foo() -> [u32; 2] { - [1, 3] -} - -fn bar() -> [u32; 2] { - [3, 2] -} - -fn add1(x: Field) -> Field { - x + 1 -} - -fn twice(f: fn(Field) -> Field, x: Field) -> Field { - f(f(x)) -} -// Fixing an ICE, where rewriting the closures -// during monomorphization didn't correspond -// to an internal `if` type -// found by @jfecher: -// https://github.com/noir-lang/noir/pull/1959#issuecomment-1658992989 -// issue https://github.com/noir-lang/noir/issues/2154 -fn regression_2154() { - let x: u32 = 32; - - let closure_if_else = if x > 2 { || x } else { || x + 2342 }; - - assert(closure_if_else() == 32); -} diff --git a/test_programs/execution_success/if_else_chain/Nargo.toml b/test_programs/execution_success/if_else_chain/Nargo.toml deleted file mode 100644 index 2f0dc93d120..00000000000 --- a/test_programs/execution_success/if_else_chain/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "if_else_chain" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/if_else_chain/Prover.toml b/test_programs/execution_success/if_else_chain/Prover.toml deleted file mode 100644 index 84aeb36ac21..00000000000 --- a/test_programs/execution_success/if_else_chain/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -a=0 -c=[2, 4, 3, 0, ] diff --git a/test_programs/execution_success/if_else_chain/src/main.nr b/test_programs/execution_success/if_else_chain/src/main.nr deleted file mode 100644 index 2705d5b3111..00000000000 --- a/test_programs/execution_success/if_else_chain/src/main.nr +++ /dev/null @@ -1,15 +0,0 @@ -fn main(a: u32, mut c: [u32; 4]) { - if a == c[0] { - assert(c[0] == 0); - } else if a == c[1] { - assert(c[1] == 0); - } else if a == c[2] { - assert(c[2] == 0); - } else if a == c[3] { - // expect to match this case - assert(c[3] == 0); - } else { - assert(c[0] == 10); - } -} - diff --git a/test_programs/execution_success/import/Nargo.toml b/test_programs/execution_success/import/Nargo.toml deleted file mode 100644 index c92328f106c..00000000000 --- a/test_programs/execution_success/import/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "import" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/import/Prover.toml b/test_programs/execution_success/import/Prover.toml deleted file mode 100644 index 8c12ebba6cf..00000000000 --- a/test_programs/execution_success/import/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "2" diff --git a/test_programs/execution_success/import/src/import.nr b/test_programs/execution_success/import/src/import.nr deleted file mode 100644 index ef3f0d94c28..00000000000 --- a/test_programs/execution_success/import/src/import.nr +++ /dev/null @@ -1,3 +0,0 @@ -pub fn hello(x: Field) -> Field { - x -} diff --git a/test_programs/execution_success/import/src/main.nr b/test_programs/execution_success/import/src/main.nr deleted file mode 100644 index 0f5aa7e5460..00000000000 --- a/test_programs/execution_success/import/src/main.nr +++ /dev/null @@ -1,9 +0,0 @@ -mod import; -use crate::import::hello; - -fn main(x: Field, y: Field) { - let _k = std::hash::pedersen_commitment([x]); - let _l = hello(x); - - assert(x != import::hello(y)); -} diff --git a/test_programs/execution_success/inline_never_basic/Nargo.toml b/test_programs/execution_success/inline_never_basic/Nargo.toml deleted file mode 100644 index 16691770d76..00000000000 --- a/test_programs/execution_success/inline_never_basic/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "inline_never_basic" -type = "bin" -authors = [""] -compiler_version = ">=0.27.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/inline_never_basic/Prover.toml b/test_programs/execution_success/inline_never_basic/Prover.toml deleted file mode 100644 index fbe96700abe..00000000000 --- a/test_programs/execution_success/inline_never_basic/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "5" -y = "10" \ No newline at end of file diff --git a/test_programs/execution_success/inline_never_basic/src/main.nr b/test_programs/execution_success/inline_never_basic/src/main.nr deleted file mode 100644 index 505a1641c76..00000000000 --- a/test_programs/execution_success/inline_never_basic/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -fn main(x: Field, y: pub Field) { - basic_check(x, y); -} - -#['inline(never)] -fn basic_check(x: Field, y: Field) { - assert(x != y); -} diff --git a/test_programs/execution_success/integer_array_indexing/Nargo.toml b/test_programs/execution_success/integer_array_indexing/Nargo.toml deleted file mode 100644 index 6e639b64f58..00000000000 --- a/test_programs/execution_success/integer_array_indexing/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "integer_array_indexing" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/integer_array_indexing/Prover.toml b/test_programs/execution_success/integer_array_indexing/Prover.toml deleted file mode 100644 index 1496028f60a..00000000000 --- a/test_programs/execution_success/integer_array_indexing/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -arr = [1, 2, 3] -x = 2 diff --git a/test_programs/execution_success/integer_array_indexing/src/main.nr b/test_programs/execution_success/integer_array_indexing/src/main.nr deleted file mode 100644 index 1698c68161b..00000000000 --- a/test_programs/execution_success/integer_array_indexing/src/main.nr +++ /dev/null @@ -1,10 +0,0 @@ -global ARRAY_LEN: u32 = 3; - -fn main(arr: [Field; ARRAY_LEN], x: u32) -> pub Field { - let mut value = arr[ARRAY_LEN - 1]; - - value += arr[0 as u32]; - value += arr[1 as Field]; - - value + x as Field -} diff --git a/test_programs/execution_success/is_unconstrained/Nargo.toml b/test_programs/execution_success/is_unconstrained/Nargo.toml deleted file mode 100644 index deef68c7f72..00000000000 --- a/test_programs/execution_success/is_unconstrained/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "is_unconstrained" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/is_unconstrained/Prover.toml b/test_programs/execution_success/is_unconstrained/Prover.toml deleted file mode 100644 index 8b137891791..00000000000 --- a/test_programs/execution_success/is_unconstrained/Prover.toml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test_programs/execution_success/is_unconstrained/src/main.nr b/test_programs/execution_success/is_unconstrained/src/main.nr deleted file mode 100644 index d06366cf642..00000000000 --- a/test_programs/execution_success/is_unconstrained/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -use std::runtime::is_unconstrained; - -fn check(should_be_unconstrained: bool) { - assert_eq(should_be_unconstrained, is_unconstrained()); -} - -unconstrained fn unconstrained_intermediate() { - check(true); -} - -fn main() { - unsafe { - unconstrained_intermediate(); - } - check(false); -} diff --git a/test_programs/execution_success/keccak256/Nargo.toml b/test_programs/execution_success/keccak256/Nargo.toml deleted file mode 100644 index 7e48c3b342c..00000000000 --- a/test_programs/execution_success/keccak256/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "keccak256" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/keccak256/Prover.toml b/test_programs/execution_success/keccak256/Prover.toml deleted file mode 100644 index d65c4011d3f..00000000000 --- a/test_programs/execution_success/keccak256/Prover.toml +++ /dev/null @@ -1,35 +0,0 @@ -x = 0xbd -result = [ - 0x5a, - 0x50, - 0x2f, - 0x9f, - 0xca, - 0x46, - 0x7b, - 0x26, - 0x6d, - 0x5b, - 0x78, - 0x33, - 0x65, - 0x19, - 0x37, - 0xe8, - 0x05, - 0x27, - 0x0c, - 0xa3, - 0xf3, - 0xaf, - 0x1c, - 0x0d, - 0xd2, - 0x46, - 0x2d, - 0xca, - 0x4b, - 0x3b, - 0x1a, - 0xbf, -] diff --git a/test_programs/execution_success/keccak256/src/main.nr b/test_programs/execution_success/keccak256/src/main.nr deleted file mode 100644 index ff18cae0c9c..00000000000 --- a/test_programs/execution_success/keccak256/src/main.nr +++ /dev/null @@ -1,21 +0,0 @@ -// docs:start:keccak256 - -fn main(x: Field, result: [u8; 32]) { - // We use the `as` keyword here to denote the fact that we want to take just the first byte from the x Field - // The padding is taken care of by the program - let digest = std::hash::keccak256([x as u8], 1); - assert(digest == result); - - //#1399: variable message size - let message_size = 4; - let hash_a = std::hash::keccak256([1, 2, 3, 4], message_size); - let hash_b = std::hash::keccak256([1, 2, 3, 4, 0, 0, 0, 0], message_size); - - assert(hash_a == hash_b); - - let message_size_big = 8; - let hash_c = std::hash::keccak256([1, 2, 3, 4, 0, 0, 0, 0], message_size_big); - - assert(hash_a != hash_c); -} -// docs:end:keccak256 diff --git a/test_programs/execution_success/loop/Nargo.toml b/test_programs/execution_success/loop/Nargo.toml deleted file mode 100644 index 66c72338363..00000000000 --- a/test_programs/execution_success/loop/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "loop" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/loop/Prover.toml b/test_programs/execution_success/loop/Prover.toml deleted file mode 100644 index 0f44bf96f44..00000000000 --- a/test_programs/execution_success/loop/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -six_as_u32 = "6" diff --git a/test_programs/execution_success/loop/src/main.nr b/test_programs/execution_success/loop/src/main.nr deleted file mode 100644 index 8365cf6f801..00000000000 --- a/test_programs/execution_success/loop/src/main.nr +++ /dev/null @@ -1,23 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is basic looping. -fn main(six_as_u32: u32) { - assert_eq(loop(4), six_as_u32); - assert_eq(loop_incl(3), six_as_u32); -} - -fn loop(x: u32) -> u32 { - let mut sum = 0; - for i in 0..x { - sum = sum + i; - } - sum -} - -fn loop_incl(x: u32) -> u32 { - let mut sum = 0; - for i in 0..=x { - sum = sum + i; - } - sum -} diff --git a/test_programs/execution_success/main_bool_arg/Nargo.toml b/test_programs/execution_success/main_bool_arg/Nargo.toml deleted file mode 100644 index c1cedb6c657..00000000000 --- a/test_programs/execution_success/main_bool_arg/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "main_bool_arg" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/main_bool_arg/Prover.toml b/test_programs/execution_success/main_bool_arg/Prover.toml deleted file mode 100644 index f932e0b4817..00000000000 --- a/test_programs/execution_success/main_bool_arg/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = true -y = [true, false] \ No newline at end of file diff --git a/test_programs/execution_success/main_bool_arg/src/main.nr b/test_programs/execution_success/main_bool_arg/src/main.nr deleted file mode 100644 index 2c50d7dee16..00000000000 --- a/test_programs/execution_success/main_bool_arg/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -fn main(x: bool, y: [bool; 2]) { - if x { - assert(1 != 2); - } - - assert(x); - assert(y[0] != y[1]); -} diff --git a/test_programs/execution_success/main_return/Nargo.toml b/test_programs/execution_success/main_return/Nargo.toml deleted file mode 100644 index 793ae612730..00000000000 --- a/test_programs/execution_success/main_return/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "main_return" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/main_return/Prover.toml b/test_programs/execution_success/main_return/Prover.toml deleted file mode 100644 index 63e9878811a..00000000000 --- a/test_programs/execution_success/main_return/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "8" diff --git a/test_programs/execution_success/main_return/src/main.nr b/test_programs/execution_success/main_return/src/main.nr deleted file mode 100644 index 06347eb0919..00000000000 --- a/test_programs/execution_success/main_return/src/main.nr +++ /dev/null @@ -1,3 +0,0 @@ -fn main(x: pub Field) -> pub Field { - x -} diff --git a/test_programs/execution_success/merkle_insert/Nargo.toml b/test_programs/execution_success/merkle_insert/Nargo.toml deleted file mode 100644 index f09458411d8..00000000000 --- a/test_programs/execution_success/merkle_insert/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "merkle_insert" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/merkle_insert/Prover.toml b/test_programs/execution_success/merkle_insert/Prover.toml deleted file mode 100644 index 0656908c063..00000000000 --- a/test_programs/execution_success/merkle_insert/Prover.toml +++ /dev/null @@ -1,11 +0,0 @@ -old_root = "0x2131c74af6250d1246797588ff075b672e3d2e6805f9c6b313ade8f6b9e12802" -old_leaf = "0x2df8b940e5890e4e1377e05373fae69a1d754f6935e6a780b666947431f2cdcd" -old_hash_path = [ - "0x03542cb720369f19a74fd05b4edfbedb27a78514ad3283f1b3270a1656cced8e", - "0x1278272f6e617666b18c52349c4bbe94249a8ab59add2ee0a142168a92b7ffc2", - "0x2547cfd7699ad1f331fb77b30a3445c6043a4c62b5b1215356b2924607bf937b", -] -new_root = "0x25e2a8ee5b85e5b546ae27832b9b53f5fae5b371e3e7f8cddda839f41669fc68" -leaf = "0x23fe6c8f2426b793f0f156f57efbecbea52e951af761634a85e80cc1a9fb5003" -index = "0" -mimc_input = [12, 45, 78, 41] diff --git a/test_programs/execution_success/merkle_insert/src/main.nr b/test_programs/execution_success/merkle_insert/src/main.nr deleted file mode 100644 index a08088e847b..00000000000 --- a/test_programs/execution_success/merkle_insert/src/main.nr +++ /dev/null @@ -1,21 +0,0 @@ -use std::hash::mimc; - -fn main( - old_root: Field, - old_leaf: Field, - old_hash_path: [Field; 3], - new_root: pub Field, - leaf: Field, - index: Field, - mimc_input: [Field; 4] -) { - assert(old_root == std::merkle::compute_merkle_root(old_leaf, index, old_hash_path)); - - let calculated_root = std::merkle::compute_merkle_root(leaf, index, old_hash_path); - assert(new_root == calculated_root); - - let h = mimc::mimc_bn254(mimc_input); - // Regression test for PR #891 - std::println(h); - assert(h == 18226366069841799622585958305961373004333097209608110160936134895615261821931); -} diff --git a/test_programs/execution_success/missing_closure_env/Nargo.toml b/test_programs/execution_success/missing_closure_env/Nargo.toml deleted file mode 100644 index 284e61b1144..00000000000 --- a/test_programs/execution_success/missing_closure_env/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "missing_closure_env" -type = "bin" -authors = [""] -compiler_version = ">=0.23.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/missing_closure_env/Prover.toml b/test_programs/execution_success/missing_closure_env/Prover.toml deleted file mode 100644 index 2d76abaa89f..00000000000 --- a/test_programs/execution_success/missing_closure_env/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = 42 diff --git a/test_programs/execution_success/missing_closure_env/src/main.nr b/test_programs/execution_success/missing_closure_env/src/main.nr deleted file mode 100644 index 0bc99b0671c..00000000000 --- a/test_programs/execution_success/missing_closure_env/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -fn main(x: Field) { - let x1 = &mut 42; - let set_x1 = |y| { *x1 = y; }; - - assert(*x1 == 42); - set_x1(44); - assert(*x1 == 44); - set_x1(*x1); - assert(*x1 == 44); - assert(x == 42); -} - -#[test] -fn test_main() { - main(42); -} diff --git a/test_programs/execution_success/modules/Nargo.toml b/test_programs/execution_success/modules/Nargo.toml deleted file mode 100644 index ab1d6e962d7..00000000000 --- a/test_programs/execution_success/modules/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "modules" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/modules/Prover.toml b/test_programs/execution_success/modules/Prover.toml deleted file mode 100644 index c0a0cdfbeb0..00000000000 --- a/test_programs/execution_success/modules/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "2" -y = "13" diff --git a/test_programs/execution_success/modules/src/foo.nr b/test_programs/execution_success/modules/src/foo.nr deleted file mode 100644 index ef3f0d94c28..00000000000 --- a/test_programs/execution_success/modules/src/foo.nr +++ /dev/null @@ -1,3 +0,0 @@ -pub fn hello(x: Field) -> Field { - x -} diff --git a/test_programs/execution_success/modules/src/main.nr b/test_programs/execution_success/modules/src/main.nr deleted file mode 100644 index 167f7e671a0..00000000000 --- a/test_programs/execution_success/modules/src/main.nr +++ /dev/null @@ -1,14 +0,0 @@ -mod foo; -// This is a comment. -// -// `main` is the entry point to a binary -// -// You can have a `Binary` or a `Library` -// Release : 0.2 -// -// To run a proof on the command line, type `cargo run prove {proof_name}` -// -// To verify that proof, type `cargo run verify {proof_name}` -fn main(x: Field, y: pub Field) { - assert(x != foo::hello(y)); -} diff --git a/test_programs/execution_success/modules_more/Nargo.toml b/test_programs/execution_success/modules_more/Nargo.toml deleted file mode 100644 index bfcfe08fa79..00000000000 --- a/test_programs/execution_success/modules_more/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "modules_more" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/modules_more/Prover.toml b/test_programs/execution_success/modules_more/Prover.toml deleted file mode 100644 index 39a4ddb9d15..00000000000 --- a/test_programs/execution_success/modules_more/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ - - x = "5" - y = "15" - \ No newline at end of file diff --git a/test_programs/execution_success/modules_more/src/foo.nr b/test_programs/execution_success/modules_more/src/foo.nr deleted file mode 100644 index fa531a1a2f0..00000000000 --- a/test_programs/execution_success/modules_more/src/foo.nr +++ /dev/null @@ -1,5 +0,0 @@ -mod bar; - -fn hello(x: Field) -> Field { - x -} diff --git a/test_programs/execution_success/modules_more/src/foo/bar.nr b/test_programs/execution_success/modules_more/src/foo/bar.nr deleted file mode 100644 index 1665f720be6..00000000000 --- a/test_programs/execution_success/modules_more/src/foo/bar.nr +++ /dev/null @@ -1,3 +0,0 @@ -pub fn from_bar(x: Field) -> Field { - x -} diff --git a/test_programs/execution_success/modules_more/src/main.nr b/test_programs/execution_success/modules_more/src/main.nr deleted file mode 100644 index 93b76d62845..00000000000 --- a/test_programs/execution_success/modules_more/src/main.nr +++ /dev/null @@ -1,5 +0,0 @@ -mod foo; -// An example of the module system -fn main(x: Field, y: Field) { - assert(x != foo::bar::from_bar(y)); -} diff --git a/test_programs/execution_success/modulus/Nargo.toml b/test_programs/execution_success/modulus/Nargo.toml deleted file mode 100644 index 256eeef058f..00000000000 --- a/test_programs/execution_success/modulus/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "modulus" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/modulus/Prover.toml b/test_programs/execution_success/modulus/Prover.toml deleted file mode 100644 index d435609bb1a..00000000000 --- a/test_programs/execution_success/modulus/Prover.toml +++ /dev/null @@ -1,290 +0,0 @@ -bn254_modulus_be_bytes = [ - 48, - 100, - 78, - 114, - 225, - 49, - 160, - 41, - 184, - 80, - 69, - 182, - 129, - 129, - 88, - 93, - 40, - 51, - 232, - 72, - 121, - 185, - 112, - 145, - 67, - 225, - 245, - 147, - 240, - 0, - 0, - 1, -] -bn254_modulus_be_bits = [ - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, -] diff --git a/test_programs/execution_success/modulus/src/main.nr b/test_programs/execution_success/modulus/src/main.nr deleted file mode 100644 index 1627cc0dba2..00000000000 --- a/test_programs/execution_success/modulus/src/main.nr +++ /dev/null @@ -1,34 +0,0 @@ -fn main(bn254_modulus_be_bytes: [u8; 32], bn254_modulus_be_bits: [u1; 254]) { - let modulus_size = std::field::modulus_num_bits(); - // NOTE: The constraints used in this circuit will only work when testing nargo with the plonk bn254 backend - assert(modulus_size == 254); - - assert_reverse( - std::field::modulus_be_bytes(), - std::field::modulus_le_bytes() - ); - - let modulus_be_byte_array = std::field::modulus_be_bytes(); - for i in 0..32 { - assert(modulus_be_byte_array[i] == bn254_modulus_be_bytes[i]); - } - let modulus_le_byte_array = std::field::modulus_le_bytes(); - for i in 0..32 { - assert(modulus_le_byte_array[i] == bn254_modulus_be_bytes[31 - i]); - } - - let modulus_be_bits = std::field::modulus_be_bits(); - for i in 0..254 { - assert(modulus_be_bits[i] == bn254_modulus_be_bits[i]); - } - let modulus_le_bits = std::field::modulus_le_bits(); - for i in 0..254 { - assert(modulus_le_bits[i] == bn254_modulus_be_bits[253 - i]); - } -} - -fn assert_reverse(forwards: [u8], backwards: [u8]) { - for i in 0..32 { - assert_eq(forwards[i], backwards[31 - i]); - } -} diff --git a/test_programs/execution_success/nested_array_dynamic/Nargo.toml b/test_programs/execution_success/nested_array_dynamic/Nargo.toml deleted file mode 100644 index 72642bebc15..00000000000 --- a/test_programs/execution_success/nested_array_dynamic/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "nested_array_dynamic" -type = "bin" -authors = [""] - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/nested_array_dynamic/Prover.toml b/test_programs/execution_success/nested_array_dynamic/Prover.toml deleted file mode 100644 index 6c7e77b581d..00000000000 --- a/test_programs/execution_success/nested_array_dynamic/Prover.toml +++ /dev/null @@ -1,29 +0,0 @@ -y = "3" - -[[x]] -a = "1" -b = ["2", "3", "20"] - -[x.bar] -inner = ["100", "101", "102"] - -[[x]] -a = "4" # idx = 3, flattened start idx = 7 -b = ["5", "6", "21"] # idx = 4, flattened start idx = 8 - -[x.bar] -inner = ["103", "104", "105"] # idx = 5, flattened start idx = 11 - -[[x]] -a = "7" -b = ["8", "9", "22"] - -[x.bar] -inner = ["106", "107", "108"] - -[[x]] -a = "10" # idx = 9, flattened start idx = 21 -b = ["11", "12", "23"] # idx = 10, flattened start idx = 22 - -[x.bar] -inner = ["109", "110", "111"] # idx = 11, flattened start idx = 25 diff --git a/test_programs/execution_success/nested_array_dynamic/src/main.nr b/test_programs/execution_success/nested_array_dynamic/src/main.nr deleted file mode 100644 index 2c53822d6b9..00000000000 --- a/test_programs/execution_success/nested_array_dynamic/src/main.nr +++ /dev/null @@ -1,76 +0,0 @@ -struct Bar { - inner: [Field; 3], -} - -struct Foo { - a: Field, - b: [Field; 3], - bar: Bar, -} - -struct FooParent { - array: [Field; 3], - foos: [Foo; 4], -} - -fn main(mut x: [Foo; 4], y: pub Field) { - assert(x[y - 3].a == 1); - assert(x[y - 3].b == [2, 3, 20]); - assert(x[y - 2].a == 4); - assert(x[y - 2].b == [5, 6, 21]); - assert(x[y - 1].a == 7); - assert(x[y - 1].b == [8, 9, 22]); - assert(x[y].a == 10); - assert(x[y].b == [11, 12, 23]); - assert(x[y].bar.inner == [109, 110, 111]); - // Check dynamic array set - if y != 2 { - x[y].a = 50; - } else { - x[y].a = 100; - } - assert(x[3].a == 50); - - if y == 2 { - x[y - 1].b = [50, 51, 52]; - } else { - x[y - 1].b = [100, 101, 102]; - } - assert(x[2].b == [100, 101, 102]); - - assert(x[y - 3].bar.inner == [100, 101, 102]); - assert(x[y - 2].bar.inner == [103, 104, 105]); - assert(x[y - 1].bar.inner == [106, 107, 108]); - assert(x[y].bar.inner == [109, 110, 111]); - - let foo_parent_one = FooParent { array: [0, 1, 2], foos: x }; - let foo_parent_two = FooParent { array: [3, 4, 5], foos: x }; - let mut foo_parents = [foo_parent_one, foo_parent_two]; - - assert(foo_parents[y - 3].foos[y - 3].b == [2, 3, 20]); - assert(foo_parents[y - 3].foos[y - 2].b == [5, 6, 21]); - assert(foo_parents[y - 3].foos[y - 1].b == [100, 101, 102]); - assert(foo_parents[y - 3].foos[y].b == [11, 12, 23]); - - assert(foo_parents[y - 3].foos[y].a == 50); - - assert(foo_parents[1].foos[1].b == [5, 6, 21]); - if y == 2 { - foo_parents[y - 2].foos[y - 2].b = [10, 9, 8]; - } else { - foo_parents[y - 2].foos[y - 2].b = [20, 19, 18]; - } - assert(foo_parents[1].foos[1].b == [20, 19, 18]); - - assert(foo_parents[1].foos[1].b[2] == 18); - if y == 3 { - foo_parents[y - 2].foos[y - 2].b[y - 1] = 5000; - } else { - foo_parents[y - 2].foos[y - 2].b[y - 1] = 1000; - } - assert(foo_parents[1].foos[1].b[2] == 5000); - // Set a dynamic array value - foo_parents[y - 2].foos[y - 3].b = foo_parents[y - 2].foos[y - 2].b; - assert(foo_parents[1].foos[0].b == [20, 19, 5000]); -} - diff --git a/test_programs/execution_success/nested_array_dynamic_simple/Nargo.toml b/test_programs/execution_success/nested_array_dynamic_simple/Nargo.toml deleted file mode 100644 index 50ba1d194a6..00000000000 --- a/test_programs/execution_success/nested_array_dynamic_simple/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "nested_array_dynamic_simple" -type = "bin" -authors = [""] -compiler_version = ">=0.28.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/nested_array_dynamic_simple/Prover.toml b/test_programs/execution_success/nested_array_dynamic_simple/Prover.toml deleted file mode 100644 index 07890234a19..00000000000 --- a/test_programs/execution_success/nested_array_dynamic_simple/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "3" diff --git a/test_programs/execution_success/nested_array_dynamic_simple/src/main.nr b/test_programs/execution_success/nested_array_dynamic_simple/src/main.nr deleted file mode 100644 index 3b1908a463b..00000000000 --- a/test_programs/execution_success/nested_array_dynamic_simple/src/main.nr +++ /dev/null @@ -1,9 +0,0 @@ -fn main(x: Field) { - // x = 3 - let array: [[(Field, [Field; 1], [Field; 1]); 1]; 1] = [[(1, [2], [3])]]; - - let fetched_value = array[x - 3]; - assert(fetched_value[0].0 == 1); - assert(fetched_value[0].1[0] == 2); - assert(fetched_value[0].2[0] == 3); -} diff --git a/test_programs/execution_success/nested_array_in_slice/Nargo.toml b/test_programs/execution_success/nested_array_in_slice/Nargo.toml deleted file mode 100644 index 4f0748f79be..00000000000 --- a/test_programs/execution_success/nested_array_in_slice/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "nested_array_in_slice" -type = "bin" -authors = [""] -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/nested_array_in_slice/Prover.toml b/test_programs/execution_success/nested_array_in_slice/Prover.toml deleted file mode 100644 index 7127baac5bf..00000000000 --- a/test_programs/execution_success/nested_array_in_slice/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -y = "3" diff --git a/test_programs/execution_success/nested_array_in_slice/src/main.nr b/test_programs/execution_success/nested_array_in_slice/src/main.nr deleted file mode 100644 index 0890115e95a..00000000000 --- a/test_programs/execution_success/nested_array_in_slice/src/main.nr +++ /dev/null @@ -1,49 +0,0 @@ -struct Bar { - inner: [Field; 3], -} - -struct Foo { - a: Field, - b: [Field; 3], - bar: Bar, -} - -fn main(y: Field) { - let foo_one = Foo { a: 1, b: [2, 3, 20], bar: Bar { inner: [100, 101, 102] } }; - let foo_two = Foo { a: 4, b: [5, 6, 21], bar: Bar { inner: [103, 104, 105] } }; - let foo_three = Foo { a: 7, b: [8, 9, 22], bar: Bar { inner: [106, 107, 108] } }; - let foo_four = Foo { a: 10, b: [11, 12, 23], bar: Bar { inner: [109, 110, 111] } }; - let mut x = &[foo_one]; - x = x.push_back(foo_two); - x = x.push_back(foo_three); - x = x.push_back(foo_four); - - assert(x[y - 3].a == 1); - assert(x[y - 3].b == [2, 3, 20]); - assert(x[y - 2].a == 4); - assert(x[y - 2].b == [5, 6, 21]); - assert(x[y - 1].a == 7); - assert(x[y - 1].b == [8, 9, 22]); - assert(x[y].a == 10); - assert(x[y].b == [11, 12, 23]); - assert(x[y].bar.inner == [109, 110, 111]); - - if y != 2 { - x[y - 2].a = 50; - } else { - x[y - 2].a = 100; - } - assert(x[y - 2].a == 50); - - if y == 2 { - x[y - 1].b = [50, 51, 52]; - } else { - x[y - 1].b = [100, 101, 102]; - } - assert(x[2].b == [100, 101, 102]); - - assert(x[y - 3].bar.inner == [100, 101, 102]); - assert(x[y - 2].bar.inner == [103, 104, 105]); - assert(x[y - 1].bar.inner == [106, 107, 108]); - assert(x[y].bar.inner == [109, 110, 111]); -} diff --git a/test_programs/execution_success/nested_arrays_from_brillig/Nargo.toml b/test_programs/execution_success/nested_arrays_from_brillig/Nargo.toml deleted file mode 100644 index 02d2e6e6a4e..00000000000 --- a/test_programs/execution_success/nested_arrays_from_brillig/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "nested_arrays_from_brillig" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/nested_arrays_from_brillig/Prover.toml b/test_programs/execution_success/nested_arrays_from_brillig/Prover.toml deleted file mode 100644 index 1a59cd124a7..00000000000 --- a/test_programs/execution_success/nested_arrays_from_brillig/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -values = [1,2,3,4,5,6] \ No newline at end of file diff --git a/test_programs/execution_success/nested_arrays_from_brillig/src/main.nr b/test_programs/execution_success/nested_arrays_from_brillig/src/main.nr deleted file mode 100644 index 9664b4d1ce6..00000000000 --- a/test_programs/execution_success/nested_arrays_from_brillig/src/main.nr +++ /dev/null @@ -1,28 +0,0 @@ -struct Header { - params: [Field; 3], -} - -struct MyNote { - plain: Field, - array: [Field; 2], - header: Header, -} - -fn access_nested(notes: [MyNote; 2]) -> Field { - notes[0].array[1] + notes[1].array[0] + notes[0].plain + notes[1].header.params[0] -} - -unconstrained fn create_inside_brillig(values: [Field; 6]) -> [MyNote; 2] { - let header = Header { params: [values[0], values[1], values[2]] }; - let note0 = MyNote { array: [values[0], values[1]], plain: values[2], header }; - let note1 = MyNote { array: [values[3], values[4]], plain: values[5], header }; - [note0, note1] -} - -fn main(values: [Field; 6]) { - let notes = unsafe { - create_inside_brillig(values) - }; - assert(access_nested(notes) == (2 + 4 + 3 + 1)); -} - diff --git a/test_programs/execution_success/nested_dyn_array_regression_5782/Nargo.toml b/test_programs/execution_success/nested_dyn_array_regression_5782/Nargo.toml deleted file mode 100644 index b5cdd19e186..00000000000 --- a/test_programs/execution_success/nested_dyn_array_regression_5782/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "nested_dyn_array_regression_5782" -type = "bin" -authors = [""] -compiler_version = ">=0.33.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/nested_dyn_array_regression_5782/Prover.toml b/test_programs/execution_success/nested_dyn_array_regression_5782/Prover.toml deleted file mode 100644 index de2960def06..00000000000 --- a/test_programs/execution_success/nested_dyn_array_regression_5782/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -array = [5, 10] -i = 1 diff --git a/test_programs/execution_success/nested_dyn_array_regression_5782/src/main.nr b/test_programs/execution_success/nested_dyn_array_regression_5782/src/main.nr deleted file mode 100644 index b6a1238a9de..00000000000 --- a/test_programs/execution_success/nested_dyn_array_regression_5782/src/main.nr +++ /dev/null @@ -1,13 +0,0 @@ -fn main(mut array: [Field; 2], i: u32) { - assert_eq(array[i - 1], 5); - assert_eq(array[i], 10); - - array[i] = 2; - - let array2 = [array, array]; - - assert_eq(array2[0][0], 5); - assert_eq(array2[0][i], 2); - assert_eq(array2[i][0], 5); - assert_eq(array2[i][i], 2); -} diff --git a/test_programs/execution_success/no_predicates_basic/Nargo.toml b/test_programs/execution_success/no_predicates_basic/Nargo.toml deleted file mode 100644 index bcefd550fb0..00000000000 --- a/test_programs/execution_success/no_predicates_basic/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "no_predicates_basic" -type = "bin" -authors = [""] -compiler_version = ">=0.27.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/no_predicates_basic/Prover.toml b/test_programs/execution_success/no_predicates_basic/Prover.toml deleted file mode 100644 index f28f2f8cc48..00000000000 --- a/test_programs/execution_success/no_predicates_basic/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "5" -y = "10" diff --git a/test_programs/execution_success/no_predicates_basic/src/main.nr b/test_programs/execution_success/no_predicates_basic/src/main.nr deleted file mode 100644 index d6037c2ab26..00000000000 --- a/test_programs/execution_success/no_predicates_basic/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -fn main(x: Field, y: pub Field) { - basic_check(x, y); -} - -#[no_predicates] -fn basic_check(x: Field, y: Field) { - assert(x != y); -} diff --git a/test_programs/execution_success/no_predicates_brillig/Nargo.toml b/test_programs/execution_success/no_predicates_brillig/Nargo.toml deleted file mode 100644 index 328d78c8f99..00000000000 --- a/test_programs/execution_success/no_predicates_brillig/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "no_predicates_brillig" -type = "bin" -authors = [""] -compiler_version = ">=0.27.0" - -[dependencies] diff --git a/test_programs/execution_success/no_predicates_brillig/Prover.toml b/test_programs/execution_success/no_predicates_brillig/Prover.toml deleted file mode 100644 index 93a825f609f..00000000000 --- a/test_programs/execution_success/no_predicates_brillig/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "10" -y = "20" diff --git a/test_programs/execution_success/no_predicates_brillig/src/main.nr b/test_programs/execution_success/no_predicates_brillig/src/main.nr deleted file mode 100644 index 65e2e5d61fe..00000000000 --- a/test_programs/execution_success/no_predicates_brillig/src/main.nr +++ /dev/null @@ -1,16 +0,0 @@ -unconstrained fn main(x: u32, y: pub u32) { - intermediate_function(x, y); -} - -fn intermediate_function(x: u32, y: u32) { - basic_checks(x, y); -} - -#[no_predicates] -fn basic_checks(x: u32, y: u32) { - if x > y { - assert(x == 10); - } else { - assert(y == 20); - } -} diff --git a/test_programs/execution_success/no_predicates_numeric_generic_poseidon/Nargo.toml b/test_programs/execution_success/no_predicates_numeric_generic_poseidon/Nargo.toml deleted file mode 100644 index 1ce13c24287..00000000000 --- a/test_programs/execution_success/no_predicates_numeric_generic_poseidon/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "no_predicates_numeric_generic_poseidon" -type = "bin" -authors = [""] -compiler_version = ">=0.28.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/no_predicates_numeric_generic_poseidon/Prover.toml b/test_programs/execution_success/no_predicates_numeric_generic_poseidon/Prover.toml deleted file mode 100644 index 00e821cf89d..00000000000 --- a/test_programs/execution_success/no_predicates_numeric_generic_poseidon/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -enable = [true, false] -to_hash = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] diff --git a/test_programs/execution_success/no_predicates_numeric_generic_poseidon/src/main.nr b/test_programs/execution_success/no_predicates_numeric_generic_poseidon/src/main.nr deleted file mode 100644 index d6b463dbe30..00000000000 --- a/test_programs/execution_success/no_predicates_numeric_generic_poseidon/src/main.nr +++ /dev/null @@ -1,33 +0,0 @@ -use std::hash::poseidon2::Poseidon2; - -global NUM_HASHES: u32 = 2; -global HASH_LENGTH = 10; - -#[no_predicates] -pub fn poseidon_hash(inputs: [Field; N]) -> Field { - Poseidon2::hash(inputs, inputs.len()) -} - -fn main( - to_hash: [[Field; HASH_LENGTH]; NUM_HASHES], - enable: [bool; NUM_HASHES] -) -> pub [Field; NUM_HASHES + 1] { - let mut result = [0; NUM_HASHES + 1]; - for i in 0..NUM_HASHES { - let enable = enable[i]; - let to_hash = to_hash[i]; - if enable { - result[i] = poseidon_hash(to_hash); - } - } - - // We want to make sure that the function marked with `#[no_predicates]` with a numeric generic - // is monomorphized correctly. - let mut double_preimage = [0; 20]; - for i in 0..HASH_LENGTH * 2 { - double_preimage[i] = to_hash[0][i % HASH_LENGTH]; - } - result[NUM_HASHES] = poseidon_hash(double_preimage); - - result -} diff --git a/test_programs/execution_success/overlapping_dep_and_mod/Nargo.toml b/test_programs/execution_success/overlapping_dep_and_mod/Nargo.toml deleted file mode 100644 index b2c3e5f94be..00000000000 --- a/test_programs/execution_success/overlapping_dep_and_mod/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[workspace] -members = [ - "bin", - "foo", -] -default-member = "bin" diff --git a/test_programs/execution_success/overlapping_dep_and_mod/bin/Nargo.toml b/test_programs/execution_success/overlapping_dep_and_mod/bin/Nargo.toml deleted file mode 100644 index 57e704462db..00000000000 --- a/test_programs/execution_success/overlapping_dep_and_mod/bin/Nargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "overlapping_dep_and_mod" -type = "bin" -authors = [""] -compiler_version = ">=0.29.0" - -[dependencies] -foo = { path = "../foo" } diff --git a/test_programs/execution_success/overlapping_dep_and_mod/bin/Prover.toml b/test_programs/execution_success/overlapping_dep_and_mod/bin/Prover.toml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/test_programs/execution_success/overlapping_dep_and_mod/bin/src/main.nr b/test_programs/execution_success/overlapping_dep_and_mod/bin/src/main.nr deleted file mode 100644 index 16c940f12fc..00000000000 --- a/test_programs/execution_success/overlapping_dep_and_mod/bin/src/main.nr +++ /dev/null @@ -1,14 +0,0 @@ -// bin/main.nr - -fn main() -> pub Field { - assert(foo::bar() + dep::foo::bar() == 11); - assert(foo::bar() == 5); - assert(dep::foo::bar() == 6); - foo::bar() + dep::foo::bar() -} - -mod foo { - pub(crate) fn bar() -> Field { - 5 - } -} diff --git a/test_programs/execution_success/overlapping_dep_and_mod/foo/Nargo.toml b/test_programs/execution_success/overlapping_dep_and_mod/foo/Nargo.toml deleted file mode 100644 index 857d4e722a8..00000000000 --- a/test_programs/execution_success/overlapping_dep_and_mod/foo/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "foo" -type = "lib" -authors = [""] -compiler_version = ">=0.29.0" - -[dependencies] diff --git a/test_programs/execution_success/overlapping_dep_and_mod/foo/src/lib.nr b/test_programs/execution_success/overlapping_dep_and_mod/foo/src/lib.nr deleted file mode 100644 index 09283defed7..00000000000 --- a/test_programs/execution_success/overlapping_dep_and_mod/foo/src/lib.nr +++ /dev/null @@ -1,5 +0,0 @@ -// foo/lib.nr - -pub fn bar() -> Field { - 6 -} diff --git a/test_programs/execution_success/pedersen_check/Nargo.toml b/test_programs/execution_success/pedersen_check/Nargo.toml deleted file mode 100644 index 65fd3b5cf59..00000000000 --- a/test_programs/execution_success/pedersen_check/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "pedersen_check" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/pedersen_check/Prover.toml b/test_programs/execution_success/pedersen_check/Prover.toml deleted file mode 100644 index db1ebdf6c51..00000000000 --- a/test_programs/execution_success/pedersen_check/Prover.toml +++ /dev/null @@ -1,7 +0,0 @@ -x = "0" -y = "1" -salt = "42" - -out_x = "0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402" -out_y = "0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126" -out_hash = "0x0d98561fb02ca04d00801dfdc118b2a24cea0351963587712a28d368041370e1" diff --git a/test_programs/execution_success/pedersen_check/src/main.nr b/test_programs/execution_success/pedersen_check/src/main.nr deleted file mode 100644 index c71b2b570da..00000000000 --- a/test_programs/execution_success/pedersen_check/src/main.nr +++ /dev/null @@ -1,20 +0,0 @@ -fn main(x: Field, y: Field, salt: Field, out_x: Field, out_y: Field, out_hash: Field) { - let res = std::hash::pedersen_commitment([x, y]); - assert(res.x == out_x); - assert(res.y == out_y); - - let res_hash = std::hash::pedersen_hash_with_separator([x, y], 0); - assert_eq(res_hash, out_hash); - - assert(res_hash != res.x); - - let raw_data = [x, y]; - let mut state = 0; - for i in 0..2 { - state = state * 8 + raw_data[i]; - } - state += salt; - let hash = std::hash::pedersen_commitment([state]); - assert(std::hash::pedersen_commitment([43]).x == hash.x); -} - diff --git a/test_programs/execution_success/pedersen_commitment/Nargo.toml b/test_programs/execution_success/pedersen_commitment/Nargo.toml deleted file mode 100644 index e257ce252d8..00000000000 --- a/test_programs/execution_success/pedersen_commitment/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "pedersen_commitment" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/pedersen_commitment/Prover.toml b/test_programs/execution_success/pedersen_commitment/Prover.toml deleted file mode 100644 index 0279f7d2096..00000000000 --- a/test_programs/execution_success/pedersen_commitment/Prover.toml +++ /dev/null @@ -1,7 +0,0 @@ -x = "0" -y = "1" - -[expected_commitment] -x = "0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402" -y = "0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126" -is_infinite = false diff --git a/test_programs/execution_success/pedersen_commitment/src/main.nr b/test_programs/execution_success/pedersen_commitment/src/main.nr deleted file mode 100644 index 81c605a64dd..00000000000 --- a/test_programs/execution_success/pedersen_commitment/src/main.nr +++ /dev/null @@ -1,9 +0,0 @@ -// docs:start:pedersen-commitment - -fn main(x: Field, y: Field, expected_commitment: std::embedded_curve_ops::EmbeddedCurvePoint) { - let commitment = std::hash::pedersen_commitment([x, y]); - assert_eq(commitment.x, expected_commitment.x); - assert_eq(commitment.y, expected_commitment.y); -} -// docs:end:pedersen-commitment - diff --git a/test_programs/execution_success/pedersen_hash/Nargo.toml b/test_programs/execution_success/pedersen_hash/Nargo.toml deleted file mode 100644 index 6248a96b3c9..00000000000 --- a/test_programs/execution_success/pedersen_hash/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "pedersen_hash" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/pedersen_hash/Prover.toml b/test_programs/execution_success/pedersen_hash/Prover.toml deleted file mode 100644 index 931b121fa6a..00000000000 --- a/test_programs/execution_success/pedersen_hash/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -x = "0" -y = "1" - -expected_hash = "0x0d98561fb02ca04d00801dfdc118b2a24cea0351963587712a28d368041370e1" diff --git a/test_programs/execution_success/pedersen_hash/src/main.nr b/test_programs/execution_success/pedersen_hash/src/main.nr deleted file mode 100644 index f8ec56a9d98..00000000000 --- a/test_programs/execution_success/pedersen_hash/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -// docs:start:pedersen-hash - -fn main(x: Field, y: Field, expected_hash: Field) { - let hash = std::hash::pedersen_hash([x, y]); - assert_eq(hash, expected_hash); -} -// docs:end:pedersen-hash - diff --git a/test_programs/execution_success/poseidon2/Nargo.toml b/test_programs/execution_success/poseidon2/Nargo.toml deleted file mode 100644 index ad812b40398..00000000000 --- a/test_programs/execution_success/poseidon2/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "poseidon2" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/poseidon2/Prover.toml b/test_programs/execution_success/poseidon2/Prover.toml deleted file mode 100644 index b795ec36904..00000000000 --- a/test_programs/execution_success/poseidon2/Prover.toml +++ /dev/null @@ -1,5 +0,0 @@ -inputs = ["4218458030232820015255714794613421442512497197372123294583664908262453897094", - "4218458030232820015255714794613421442512497197372123294583664908262453897094", - "4218458030232820015255714794613421442512497197372123294583664908262453897094", - "4218458030232820015255714794613421442512497197372123294583664908262453897094"] -expected_hash = "0x2f43a0f83b51a6f5fc839dea0ecec74947637802a579fa9841930a25a0bcec11" diff --git a/test_programs/execution_success/poseidon2/src/main.nr b/test_programs/execution_success/poseidon2/src/main.nr deleted file mode 100644 index 3186617bfc8..00000000000 --- a/test_programs/execution_success/poseidon2/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -// docs:start:poseidon2 -use std::hash::poseidon2; - -fn main(inputs: [Field; 4], expected_hash: Field) { - let hash = poseidon2::Poseidon2::hash(inputs, inputs.len()); - assert_eq(hash, expected_hash); -} -// docs:end:poseidon2 diff --git a/test_programs/execution_success/poseidon_bn254_hash/Nargo.toml b/test_programs/execution_success/poseidon_bn254_hash/Nargo.toml deleted file mode 100644 index a8e2b3d5a2c..00000000000 --- a/test_programs/execution_success/poseidon_bn254_hash/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "poseidon_bn254_hash" -description = "Poseidon 254-bit permutation test on 3 elements with alpha = 5" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/poseidon_bn254_hash/Prover.toml b/test_programs/execution_success/poseidon_bn254_hash/Prover.toml deleted file mode 100644 index 8eecf9a3db2..00000000000 --- a/test_programs/execution_success/poseidon_bn254_hash/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -x1 = [1,2] -y1 = "0x115cc0f5e7d690413df64c6b9662e9cf2a3617f2743245519e19607a4417189a" -x2 = [1,2,3,4] -y2 = "0x299c867db6c1fdd79dcefa40e4510b9837e60ebb1ce0663dbaa525df65250465" diff --git a/test_programs/execution_success/poseidon_bn254_hash/src/main.nr b/test_programs/execution_success/poseidon_bn254_hash/src/main.nr deleted file mode 100644 index 5ea02d53e96..00000000000 --- a/test_programs/execution_success/poseidon_bn254_hash/src/main.nr +++ /dev/null @@ -1,11 +0,0 @@ -// docs:start:poseidon -use std::hash::poseidon; - -fn main(x1: [Field; 2], y1: pub Field, x2: [Field; 4], y2: pub Field) { - let hash1 = poseidon::bn254::hash_2(x1); - assert(hash1 == y1); - - let hash2 = poseidon::bn254::hash_4(x2); - assert(hash2 == y2); -} -// docs:end:poseidon diff --git a/test_programs/execution_success/poseidon_bn254_hash_width_3/Nargo.toml b/test_programs/execution_success/poseidon_bn254_hash_width_3/Nargo.toml deleted file mode 100644 index 7047f0aeef2..00000000000 --- a/test_programs/execution_success/poseidon_bn254_hash_width_3/Nargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "poseidon_bn254_hash_width_3" -type = "bin" -authors = [""] -compiler_version = ">=0.31.0" -# Test usage of `expression_width` field -expression_width = "3" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/poseidon_bn254_hash_width_3/Prover.toml b/test_programs/execution_success/poseidon_bn254_hash_width_3/Prover.toml deleted file mode 100644 index 8eecf9a3db2..00000000000 --- a/test_programs/execution_success/poseidon_bn254_hash_width_3/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -x1 = [1,2] -y1 = "0x115cc0f5e7d690413df64c6b9662e9cf2a3617f2743245519e19607a4417189a" -x2 = [1,2,3,4] -y2 = "0x299c867db6c1fdd79dcefa40e4510b9837e60ebb1ce0663dbaa525df65250465" diff --git a/test_programs/execution_success/poseidon_bn254_hash_width_3/src/main.nr b/test_programs/execution_success/poseidon_bn254_hash_width_3/src/main.nr deleted file mode 100644 index bb441a1ace3..00000000000 --- a/test_programs/execution_success/poseidon_bn254_hash_width_3/src/main.nr +++ /dev/null @@ -1,9 +0,0 @@ -use std::hash::poseidon; - -fn main(x1: [Field; 2], y1: pub Field, x2: [Field; 4], y2: pub Field) { - let hash1 = poseidon::bn254::hash_2(x1); - assert(hash1 == y1); - - let hash2 = poseidon::bn254::hash_4(x2); - assert(hash2 == y2); -} diff --git a/test_programs/execution_success/poseidonsponge_x5_254/Nargo.toml b/test_programs/execution_success/poseidonsponge_x5_254/Nargo.toml deleted file mode 100644 index de4b1a44668..00000000000 --- a/test_programs/execution_success/poseidonsponge_x5_254/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "poseidonsponge_x5_254" -description = "Variable-length Poseidon-128 sponge test on 7 elements with alpha = 5" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/poseidonsponge_x5_254/Prover.toml b/test_programs/execution_success/poseidonsponge_x5_254/Prover.toml deleted file mode 100644 index f8a6be57b24..00000000000 --- a/test_programs/execution_success/poseidonsponge_x5_254/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = [1,2,3,4,5,6,7] diff --git a/test_programs/execution_success/poseidonsponge_x5_254/src/main.nr b/test_programs/execution_success/poseidonsponge_x5_254/src/main.nr deleted file mode 100644 index 137f3e5d2a6..00000000000 --- a/test_programs/execution_success/poseidonsponge_x5_254/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -use std::hash::poseidon; - -fn main(x: [Field; 7]) { - // Test optimized sponge - let result = poseidon::bn254::sponge(x); - - assert(result == 0x080ae1669d62f0197190573d4a325bfb8d8fc201ce3127cbac0c47a7ac81ac48); -} diff --git a/test_programs/execution_success/pred_eq/Nargo.toml b/test_programs/execution_success/pred_eq/Nargo.toml deleted file mode 100644 index b5b4a9fdf61..00000000000 --- a/test_programs/execution_success/pred_eq/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "pred_eq" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/pred_eq/Prover.toml b/test_programs/execution_success/pred_eq/Prover.toml deleted file mode 100644 index 465ef562de4..00000000000 --- a/test_programs/execution_success/pred_eq/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "1" diff --git a/test_programs/execution_success/pred_eq/src/main.nr b/test_programs/execution_success/pred_eq/src/main.nr deleted file mode 100644 index d1e79a3e408..00000000000 --- a/test_programs/execution_success/pred_eq/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ -fn main(x: Field, y: Field) { - let p = x == y; - assert(p == true); -} diff --git a/test_programs/execution_success/prelude/Nargo.toml b/test_programs/execution_success/prelude/Nargo.toml deleted file mode 100644 index 35f223bce02..00000000000 --- a/test_programs/execution_success/prelude/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "prelude" -type = "bin" -authors = [""] -compiler_version = ">=0.20.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/prelude/src/main.nr b/test_programs/execution_success/prelude/src/main.nr deleted file mode 100644 index 4fe6080222e..00000000000 --- a/test_programs/execution_success/prelude/src/main.nr +++ /dev/null @@ -1,31 +0,0 @@ -fn main() { - let _xs: Vec = Vec::new(); - let _option: Option = Option::none(); - - print("42\n"); - println("42"); -} - -mod a { - // We don't want to give an error due to re-importing elements that are already in the prelude. - use std::collections::vec::Vec; - use std::option::Option; - - fn main() { - let _xs = Vec::new(); - let _option = Option::none(); - - print("42\n"); - println("42"); - } -} - -mod b { - fn main() { - let _xs = Vec::new(); - let _option = Option::none(); - - print("42\n"); - println("42"); - } -} diff --git a/test_programs/execution_success/reference_only_used_as_alias/Nargo.toml b/test_programs/execution_success/reference_only_used_as_alias/Nargo.toml deleted file mode 100644 index d7531756822..00000000000 --- a/test_programs/execution_success/reference_only_used_as_alias/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "reference_only_used_as_alias" -type = "bin" -authors = [""] -compiler_version = ">=0.33.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/reference_only_used_as_alias/Prover.toml b/test_programs/execution_success/reference_only_used_as_alias/Prover.toml deleted file mode 100644 index ef34b9eba70..00000000000 --- a/test_programs/execution_success/reference_only_used_as_alias/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -input = [0, 1, 2, 3] -context_input = 4 -randomness = 5 diff --git a/test_programs/execution_success/reference_only_used_as_alias/src/main.nr b/test_programs/execution_success/reference_only_used_as_alias/src/main.nr deleted file mode 100644 index c04d68d1748..00000000000 --- a/test_programs/execution_success/reference_only_used_as_alias/src/main.nr +++ /dev/null @@ -1,88 +0,0 @@ -struct ExampleEvent0 { - value0: Field, - value1: Field, -} - -trait EventInterface { - fn emit(self, _emit: fn[Env](Self) -> ()); -} - -impl EventInterface for ExampleEvent0 { - fn emit(self: ExampleEvent0, _emit: fn[Env](Self) -> ()) { - _emit(self); - } -} - -struct ExampleEvent1 { - value2: u8, - value3: u8, -} - -struct Context { - a: u32, - b: [u32; 3], - log_hashes: BoundedVec, -} - -struct LogHash { - value: Field, - counter: u32, - length: Field, - randomness: Field, -} - -impl Context { - fn emit_raw_log(&mut self, randomness: Field, _log: [u8; M], log_hash: Field) { - let log_hash = LogHash { value: log_hash, counter: 0, length: 0, randomness }; - self.log_hashes.push(log_hash); - } -} - -fn compute(_event: Event) -> ([u8; 5], Field) where Event: EventInterface { - ([0 as u8; 5], 0) -} - -fn emit_with_keys( - context: &mut Context, - randomness: Field, - event: Event, - inner_compute: fn(Event) -> ([u8; OB], Field) -) where Event: EventInterface { - let (log, log_hash) = inner_compute(event); - context.emit_raw_log(randomness, log, log_hash); -} - -pub fn encode_event_with_randomness( - context: &mut Context, - randomness: Field -) -> fn[(&mut Context, Field)](Event) -> () where Event: EventInterface { - | e: Event | { - unsafe { - func(context.a); - } - emit_with_keys(context, randomness, e, compute); - } -} - -unconstrained fn func(input: u32) { - let mut var = input; - let ref = &mut &mut var; - - for _ in 0..1 { - **ref = 2; - } - - assert(var == 2); - assert(**ref == 2); -} - -// This test aims to allocate a reference which is aliased and only accessed through its alias -// across multiple blocks. We want to guarantee that this allocation is not removed. -fn main(input: [Field; 4], randomness: Field, context_input: u32) { - let b = [context_input, context_input, context_input]; - let mut context = Context { a: context_input, b, log_hashes: BoundedVec::new() }; - - let event0 = ExampleEvent0 { value0: input[0], value1: input[1] }; - event0.emit(encode_event_with_randomness(&mut context, randomness)); -} - diff --git a/test_programs/execution_success/references/Nargo.toml b/test_programs/execution_success/references/Nargo.toml deleted file mode 100644 index c4be4d4218d..00000000000 --- a/test_programs/execution_success/references/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "references" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/references/Prover.toml b/test_programs/execution_success/references/Prover.toml deleted file mode 100644 index 151faa5a9b1..00000000000 --- a/test_programs/execution_success/references/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "2" \ No newline at end of file diff --git a/test_programs/execution_success/references/src/main.nr b/test_programs/execution_success/references/src/main.nr deleted file mode 100644 index 1a9be5f82b9..00000000000 --- a/test_programs/execution_success/references/src/main.nr +++ /dev/null @@ -1,226 +0,0 @@ -fn main(mut x: Field) { - add1(&mut x); - assert(x == 3); - - let mut s = S { y: x }; - s.add2(); - assert(s.y == 5); - // Regression for #1946: Method resolution error when calling &mut methods with a variable of type &mut T - let s_ref = &mut s; - s_ref.add2(); - assert(s.y == 7); - // Test that normal mutable variables are still copied - let mut a = 0; - mutate_copy(a); - assert(a == 0); - // Test something 3 allocations deep - let mut nested_allocations = Nested { y: &mut &mut 0 }; - add1(*nested_allocations.y); - assert(**nested_allocations.y == 1); - // Test nested struct allocations with a mutable reference to an array. - let mut c = C { foo: 0, bar: &mut C2 { array: &mut [1, 2] } }; - *c.bar.array = [3, 4]; - assert(*c.bar.array == [3, 4]); - - regression_1887(); - regression_2054(); - regression_2030(); - regression_2255(); - - assert(x == 3); - regression_2218_if_inner_if(x, 10); - regression_2218_if_inner_else(20, x); - regression_2218_else(x, 3); - regression_2218_loop(x, 10); - - regression_2560(s_ref); -} - -fn add1(x: &mut Field) { - *x += 1; -} - -struct S { y: Field } - -struct Nested { y: &mut &mut Field } - -struct C { - foo: Field, - bar: &mut C2, -} - -struct C2 { - array: &mut [Field; 2] -} - -impl S { - fn add2(&mut self) { - self.y += 2; - } - - fn get_y(self) -> Field { - self.y - } -} - -fn mutate_copy(mut a: Field) { - a = 7; -} -// Previously the `foo.bar` in `foo.bar.mutate()` would insert an automatic dereference -// of `foo` which caused the method to wrongly be mutating a copy of bar rather than the original. -fn regression_1887() { - let foo = &mut Foo { bar: Bar { x: 0 } }; - foo.bar.mutate(); - assert(foo.bar.x == 32); -} - -struct Foo { bar: Bar } -struct Bar { x: Field } - -impl Bar { - fn mutate(&mut self) { - self.x = 32; - } -} -// Ensure that mutating a variable does not also mutate its copy -fn regression_2054() { - let mut x = 2; - let z = x; - - x += 1; - assert(z == 2); -} -// The compiler was still trying to convert an LValue from an array of structs to struct of arrays indexing, -// even though this conversion was mostly removed elsewhere. -fn regression_2030() { - let ref = &mut 0; - let mut array = [ref, ref]; - let _ = *array[0]; - *array[0] = 1; -} -// The `mut x: &mut ...` caught a bug handling lvalues where a double-dereference would occur internally -// in one step rather than being tracked by two separate steps. This lead to assigning the 1 value to the -// incorrect outer `mut` reference rather than the correct `&mut` reference. -fn regression_2255() { - let x = &mut 0; - regression_2255_helper(x); - assert(*x == 1); -} - -fn regression_2255_helper(mut x: &mut Field) { - *x = 1; -} - -fn regression_2218(x: Field, y: Field) -> Field { - let q = &mut &mut 0; - let q1 = *q; - let q2 = *q; - - if x != y { - *q1 = 1; - // Make sure that we correct load reference aliases through multiple blocks - if x != 20 { - *q1 = 10; - *q2 = 2; // now we'd expect q1 == q2 == 2 - assert(*q1 == 2); - } else { - *q2 = 15; - assert(*q1 == 15); - } - } else { - *q2 = 20; - assert(*q1 == 20); - } - // Have to assign value to return it - let value = *q1; - value -} - -fn regression_2218_if_inner_if(x: Field, y: Field) { - let value = regression_2218(x, y); - assert(value == 2); -} - -fn regression_2218_if_inner_else(x: Field, y: Field) { - let value = regression_2218(x, y); - assert(value == 15); -} - -fn regression_2218_else(x: Field, y: Field) { - let value = regression_2218(x, y); - assert(value == 20); -} - -fn regression_2218_loop(x: Field, y: Field) { - let q = &mut &mut 0; - let q1 = *q; - let q2 = *q; - - for _ in 0..1 { - if x != y { - *q1 = 10; - *q2 = 2; // now we'd expect q1 == q2 == 2 - assert(*q1 == 2); - } else { - *q2 = 20; - assert(*q1 == 20); - } - } - assert(*q1 == 2); - - for _ in 0..1 { - for _ in 0..5 { - if x != y { - *q1 = 1; - // Make sure that we correct load reference aliases through multiple blocks - if x != 20 { - *q1 = 10; - *q2 = 2; // now we'd expect q1 == q2 == 2 - assert(*q1 == 2); - } - } else { - *q2 = 20; - assert(*q1 == 20); - } - } - if x != y { - *q1 = 1; - for _ in 0..5 { - // Make sure that we correct load reference aliases through multiple blocks - if x != 20 { - *q1 = 10; - *q2 = 2; // now we'd expect q1 == q2 == 2 - assert(*q1 == 2); - } - } - } else { - *q2 = 20; - assert(*q1 == 20); - } - } - assert(*q1 == 2); - - if x != y { - for _ in 0..5 { - if x != y { - *q1 = 1; - // Make sure that we correct load reference aliases through multiple blocks - if x != 20 { - *q1 = 10; - *q2 = 2; // now we'd expect q1 == q2 == 2 - assert(*q1 == 2); - } - } - } - } else { - *q2 = 20; - assert(*q1 == 20); - } - assert(*q1 == 2); -} -// This is more a feature test than a proper regression. -// Before, we never automatically dereferenced objects in method calls to their value types. -// Now, we insert as many `*` as necessary to get to `S`. -fn regression_2560(s_ref: &mut S) { - assert(s_ref.get_y() == 7); -} diff --git a/test_programs/execution_success/regression/Nargo.toml b/test_programs/execution_success/regression/Nargo.toml deleted file mode 100644 index 0f6961c41d3..00000000000 --- a/test_programs/execution_success/regression/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "regression" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/regression/Prover.toml b/test_programs/execution_success/regression/Prover.toml deleted file mode 100644 index 2875190982f..00000000000 --- a/test_programs/execution_success/regression/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = [0x3f, 0x1c, 0xb8, 0x99, 0xab] -z = 3 diff --git a/test_programs/execution_success/regression/src/main.nr b/test_programs/execution_success/regression/src/main.nr deleted file mode 100644 index e6226de29ef..00000000000 --- a/test_programs/execution_success/regression/src/main.nr +++ /dev/null @@ -1,132 +0,0 @@ -global NIBBLE_LENGTH: u32 = 16; - -struct U4 { - inner: u8, -} - -impl U4 { - fn zero() -> U4 { - U4 { inner: 0 } - } - - fn from_u8(x: u8) -> U4 { - U4 { inner: x % 16 } - } -} - -impl Eq for U4 { - fn eq(self, other: Self) -> bool { - self.inner == other.inner - } -} - -fn compact_decode(input: [u8; N], length: Field) -> ([U4; NIBBLE_LENGTH], Field) { - assert(2 * input.len() <= NIBBLE_LENGTH); - assert(length as u32 <= input.len()); - - let mut nibble = [U4::zero(); NIBBLE_LENGTH]; - - let first_nibble = U4::from_u8(input[0] >> 4); - let parity = first_nibble.inner as u1; - - if parity == 1 { - nibble[0] = U4::from_u8(input[0] & 0x0f); - for i in 1..input.len() { - if i as u32 < length as u32 { - let x = input[i]; - nibble[2*i - 1] = U4::from_u8(x >> 4); - nibble[2*i] = U4::from_u8(x & 0x0f); - } - } - } else { - for i in 0..2 { - if (i as u32) < length as u32 - 1 { - let x = input[i + 1]; - nibble[2*i] = U4::from_u8(x >> 4); - nibble[2*i + 1] = U4::from_u8(x & 0x0f); - } - } - } - - let out = (nibble, 2 * length + (parity as Field) - 2); - - out -} - -fn enc(value: [u8; N], value_length: Field) -> ([u8; 32], Field) { - assert(value.len() as u8 >= value_length as u8); - let mut out_value = [0; 32]; - if value_length == 0 { - let out = (out_value, value_length); - out - } else if value_length as u8 < 31 { - out_value[0] = 0x80 + value_length as u8; - - for i in 1..value.len() { - out_value[i] = value[i-1]; - } - - let out = (out_value, value_length + 1); - - out - } else { - let out = (out_value, 32); - out - } -} - -fn bitshift_literal_0() -> u64 { - let mut bits: u64 = 0; - bits |= 1 << 0; - - bits -} -fn bitshift_literal_4() -> u64 { - let mut bits: u64 = 0; - bits |= 1 << 4; - - bits -} -fn bitshift_variable(idx: u8) -> u64 { - let mut bits: u64 = 0; - bits |= 1 << idx; - - bits -} - -fn main(x: [u8; 5], z: Field) { - //Issue 1144 - let (nib, len) = compact_decode(x, z); - assert(len == 5); - assert( - [nib[0], nib[1], nib[2], nib[3], nib[4]] - == [U4::from_u8(15), U4::from_u8(1), U4::from_u8(12), U4::from_u8(11), U4::from_u8(8)] - ); - // Issue 1169 - let val1 = [ - 0xb8, 0x8f, 0x61, 0xe6, 0xfb, 0xda, 0x83, 0xfb, 0xff, 0xfa, 0xbe, 0x36, 0x41, 0x12, 0x13, - 0x74, 0x80, 0x39, 0x80, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00 - ]; - let val1_length = 20; - - let enc_val1 = enc(val1, val1_length); - - assert( - enc_val1.0 == [ - 0x94, 0xb8, 0x8f, 0x61, 0xe6, 0xfb, 0xda, 0x83, 0xfb, 0xff, 0xfa, 0xbe, 0x36, 0x41, - 0x12, 0x13, 0x74, 0x80, 0x39, 0x80, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00 - ] - ); - assert(enc_val1.1 == 21); - // Issue 2399 - let result_0 = bitshift_literal_0(); - assert(result_0 == 1); - let result_4 = bitshift_literal_4(); - assert(result_4 == 16); - let result_0 = bitshift_variable(0); - assert(result_0 == 1); - let result_4 = bitshift_variable(4); - assert(result_4 == 16); -} diff --git a/test_programs/execution_success/regression_2660/Nargo.toml b/test_programs/execution_success/regression_2660/Nargo.toml deleted file mode 100644 index 1ea0058684b..00000000000 --- a/test_programs/execution_success/regression_2660/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_2660" -version = "0.1.0" -type = "bin" -authors = [""] - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/regression_2660/Prover.toml b/test_programs/execution_success/regression_2660/Prover.toml deleted file mode 100644 index 4dd6b405159..00000000000 --- a/test_programs/execution_success/regression_2660/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "1" diff --git a/test_programs/execution_success/regression_2660/src/main.nr b/test_programs/execution_success/regression_2660/src/main.nr deleted file mode 100644 index f32bc924e3a..00000000000 --- a/test_programs/execution_success/regression_2660/src/main.nr +++ /dev/null @@ -1,6 +0,0 @@ -global foo = -1; - -fn main(x: i32) { - let y = x + foo; - assert(y == 0); -} diff --git a/test_programs/execution_success/regression_3051/Nargo.toml b/test_programs/execution_success/regression_3051/Nargo.toml deleted file mode 100644 index 844f74cdcb3..00000000000 --- a/test_programs/execution_success/regression_3051/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_3051" -type = "bin" -authors = [""] -compiler_version = ">=0.27.0" - -[dependencies] diff --git a/test_programs/execution_success/regression_3051/src/main.nr b/test_programs/execution_success/regression_3051/src/main.nr deleted file mode 100644 index 90eb652db7a..00000000000 --- a/test_programs/execution_success/regression_3051/src/main.nr +++ /dev/null @@ -1,24 +0,0 @@ -trait Foo { - fn foo(self) -> Field; -} - -impl Foo for Field { - fn foo(self) -> Field { - self + 1 - } -} - -trait Bar { - fn bar(self) -> u64; -} - -impl Bar for u64 { - fn bar(self) -> u64 { - self + 1 - } -} - -fn main() { - std::println(1.foo()); - std::println(1.bar()); -} diff --git a/test_programs/execution_success/regression_3394/Nargo.toml b/test_programs/execution_success/regression_3394/Nargo.toml deleted file mode 100644 index 4949962b16a..00000000000 --- a/test_programs/execution_success/regression_3394/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "regression_3394" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/regression_3394/Prover.toml b/test_programs/execution_success/regression_3394/Prover.toml deleted file mode 100644 index 8b137891791..00000000000 --- a/test_programs/execution_success/regression_3394/Prover.toml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test_programs/execution_success/regression_3394/src/main.nr b/test_programs/execution_success/regression_3394/src/main.nr deleted file mode 100644 index 59494253757..00000000000 --- a/test_programs/execution_success/regression_3394/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let x : i8 = -128; - std::println(x); -} diff --git a/test_programs/execution_success/regression_3607/Nargo.toml b/test_programs/execution_success/regression_3607/Nargo.toml deleted file mode 100644 index 8757f88b90e..00000000000 --- a/test_programs/execution_success/regression_3607/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "regression_3607" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/regression_3607/Prover.toml b/test_programs/execution_success/regression_3607/Prover.toml deleted file mode 100644 index 4dd6b405159..00000000000 --- a/test_programs/execution_success/regression_3607/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "1" diff --git a/test_programs/execution_success/regression_3607/src/main.nr b/test_programs/execution_success/regression_3607/src/main.nr deleted file mode 100644 index 9c7ef243f60..00000000000 --- a/test_programs/execution_success/regression_3607/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -fn main(mut x: u32) { - if x == 0 { - x = (x+1) / x; - } else { - x = (x+1) / x; - } - assert(x != 0); -} diff --git a/test_programs/execution_success/regression_3889/Nargo.toml b/test_programs/execution_success/regression_3889/Nargo.toml deleted file mode 100644 index d212d24473f..00000000000 --- a/test_programs/execution_success/regression_3889/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_3889" -version = "0.1.0" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/regression_3889/Prover.toml b/test_programs/execution_success/regression_3889/Prover.toml deleted file mode 100644 index a81ab67fe3e..00000000000 --- a/test_programs/execution_success/regression_3889/Prover.toml +++ /dev/null @@ -1,10 +0,0 @@ -[works] -a = "5" - -[fails] -a = "6" - - -[also_fails] -a = "7" - diff --git a/test_programs/execution_success/regression_3889/src/main.nr b/test_programs/execution_success/regression_3889/src/main.nr deleted file mode 100644 index 402a69a10da..00000000000 --- a/test_programs/execution_success/regression_3889/src/main.nr +++ /dev/null @@ -1,22 +0,0 @@ -mod Foo { - struct NewType{ - a: Field, - } -} - -mod Bar { - use crate::Foo::NewType as BarStruct; - use crate::Foo::NewType; -} - -mod Baz { - struct Works { - a: Field, - } - use crate::Bar::BarStruct; - use crate::Bar::NewType; -} - -fn main(works: Baz::Works, fails: Baz::BarStruct, also_fails: Bar::NewType) -> pub Field { - works.a + fails.a + also_fails.a -} diff --git a/test_programs/execution_success/regression_4088/Nargo.toml b/test_programs/execution_success/regression_4088/Nargo.toml deleted file mode 100644 index a5e7832b734..00000000000 --- a/test_programs/execution_success/regression_4088/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "regression_4088" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/regression_4088/Prover.toml b/test_programs/execution_success/regression_4088/Prover.toml deleted file mode 100644 index 839e31e7e40..00000000000 --- a/test_programs/execution_success/regression_4088/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -[note] -value = 0 diff --git a/test_programs/execution_success/regression_4088/src/main.nr b/test_programs/execution_success/regression_4088/src/main.nr deleted file mode 100644 index b2a050b5db3..00000000000 --- a/test_programs/execution_success/regression_4088/src/main.nr +++ /dev/null @@ -1,27 +0,0 @@ -trait Serialize { - fn serialize(self) -> [Field; N]; -} - -struct ValueNote { - value: Field, -} - -impl Serialize<1> for ValueNote { - fn serialize(self) -> [Field; 1] { - [self.value] - } -} - -fn check(serialized_note: [Field; N]) { - assert(serialized_note[0] == 0); -} - -fn oopsie(note: Note) where Note: Serialize { - let serialized_note = Note::serialize(note); - - check(serialized_note) -} - -fn main(mut note: ValueNote) { - oopsie(note); -} diff --git a/test_programs/execution_success/regression_4124/Nargo.toml b/test_programs/execution_success/regression_4124/Nargo.toml deleted file mode 100644 index 9b97d1ce087..00000000000 --- a/test_programs/execution_success/regression_4124/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_4124" -type = "bin" -authors = [""] -compiler_version = ">=0.22.0" - -[dependencies] diff --git a/test_programs/execution_success/regression_4124/Prover.toml b/test_programs/execution_success/regression_4124/Prover.toml deleted file mode 100644 index 533d1af92b9..00000000000 --- a/test_programs/execution_success/regression_4124/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -value = 0 diff --git a/test_programs/execution_success/regression_4124/src/main.nr b/test_programs/execution_success/regression_4124/src/main.nr deleted file mode 100644 index b0e1a394c32..00000000000 --- a/test_programs/execution_success/regression_4124/src/main.nr +++ /dev/null @@ -1,39 +0,0 @@ -use std::option::Option; - -trait MyDeserialize { - fn deserialize(fields: [Field; N]) -> Self; -} - -impl MyDeserialize<1> for Field { - fn deserialize(fields: [Field; 1]) -> Self { - fields[0] - } -} - -pub fn storage_read() -> [Field; N] { - std::mem::zeroed() -} - -struct PublicMutable { - storage_slot: Field, -} - -impl PublicMutable { - pub fn new(storage_slot: Field) -> Self { - assert(storage_slot != 0, "Storage slot 0 not allowed. Storage slots must start from 1."); - PublicMutable { storage_slot } - } - - pub fn read(_self: Self) -> T where T: MyDeserialize { - // storage_read returns slice here - let fields: [Field; T_SERIALIZED_LEN] = storage_read(); - T::deserialize(fields) - } -} - -fn main(value: Field) { - let ps: PublicMutable = PublicMutable::new(27); - - // error here - assert(ps.read() == value); -} diff --git a/test_programs/execution_success/regression_4202/Nargo.toml b/test_programs/execution_success/regression_4202/Nargo.toml deleted file mode 100644 index acfba12dd4f..00000000000 --- a/test_programs/execution_success/regression_4202/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_4202" -type = "bin" -authors = [""] -compiler_version = ">=0.23.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/regression_4202/Prover.toml b/test_programs/execution_success/regression_4202/Prover.toml deleted file mode 100644 index e9319802dfd..00000000000 --- a/test_programs/execution_success/regression_4202/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -input = [1, 2, 3, 4] diff --git a/test_programs/execution_success/regression_4202/src/main.nr b/test_programs/execution_success/regression_4202/src/main.nr deleted file mode 100644 index faa14f03912..00000000000 --- a/test_programs/execution_success/regression_4202/src/main.nr +++ /dev/null @@ -1,14 +0,0 @@ -fn main(input: [u32; 4]) { - let mut slice1: [u32] = &[1, 2, 3, 4]; - if slice1[0] == 3 { - slice1[1] = 4; - } - - if slice1[1] == 5 { - slice1[3] = 6; - } - - for i in 0..4 { - assert(slice1[i] == input[i]); - } -} diff --git a/test_programs/execution_success/regression_4449/Nargo.toml b/test_programs/execution_success/regression_4449/Nargo.toml deleted file mode 100644 index 925420a03a8..00000000000 --- a/test_programs/execution_success/regression_4449/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "regression_4449" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/regression_4449/Prover.toml b/test_programs/execution_success/regression_4449/Prover.toml deleted file mode 100644 index 81af476bcc9..00000000000 --- a/test_programs/execution_success/regression_4449/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ - -x = 0xbd -result = [204, 59, 83, 197, 18, 1, 128, 43, 247, 28, 104, 225, 106, 13, 20, 187, 42, 26, 67, 150, 48, 75, 238, 168, 121, 247, 142, 160, 71, 222, 97, 188] \ No newline at end of file diff --git a/test_programs/execution_success/regression_4449/src/main.nr b/test_programs/execution_success/regression_4449/src/main.nr deleted file mode 100644 index 66bab2e09f4..00000000000 --- a/test_programs/execution_success/regression_4449/src/main.nr +++ /dev/null @@ -1,13 +0,0 @@ -// Regression test for issue #4449 - -fn main(x: u8, result: [u8; 32]) { - let x = x % 31; - let mut digest = [0; 32]; - for i in 0..70 { - let y = x + i; - let a = [y, x, 32, 0, y + 1, y - 1, y - 2, 5]; - digest = std::sha256::digest(a); - } - - assert(digest == result); -} diff --git a/test_programs/execution_success/regression_4709/Nargo.toml b/test_programs/execution_success/regression_4709/Nargo.toml deleted file mode 100644 index 2e0ce3fb5af..00000000000 --- a/test_programs/execution_success/regression_4709/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "regression_4709" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/regression_4709/Prover.toml b/test_programs/execution_success/regression_4709/Prover.toml deleted file mode 100644 index dcfab705327..00000000000 --- a/test_programs/execution_success/regression_4709/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = 1 -y = 2 \ No newline at end of file diff --git a/test_programs/execution_success/regression_4709/src/main.nr b/test_programs/execution_success/regression_4709/src/main.nr deleted file mode 100644 index 1df09c53b55..00000000000 --- a/test_programs/execution_success/regression_4709/src/main.nr +++ /dev/null @@ -1,271 +0,0 @@ -// Regression test for issue #4709 -global EXPONENTIATE: [[Field; 257]; 257] = [ -[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], -[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], -[1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1, 2, 4, 8, 16, 32, 64, 128, 256, 255, 253, 249, 241, 225, 193, 129, 1], -[1, 3, 9, 27, 81, 243, 215, 131, 136, 151, 196, 74, 222, 152, 199, 83, 249, 233, 185, 41, 123, 112, 79, 237, 197, 77, 231, 179, 23, 69, 207, 107, 64, 192, 62, 186, 44, 132, 139, 160, 223, 155, 208, 110, 73, 219, 143, 172, 2, 6, 18, 54, 162, 229, 173, 5, 15, 45, 135, 148, 187, 47, 141, 166, 241, 209, 113, 82, 246, 224, 158, 217, 137, 154, 205, 101, 46, 138, 157, 214, 128, 127, 124, 115, 88, 7, 21, 63, 189, 53, 159, 220, 146, 181, 29, 87, 4, 12, 36, 108, 67, 201, 89, 10, 30, 90, 13, 39, 117, 94, 25, 75, 225, 161, 226, 164, 235, 191, 59, 177, 17, 51, 153, 202, 92, 19, 57, 171, 256, 254, 248, 230, 176, 14, 42, 126, 121, 106, 61, 183, 35, 105, 58, 174, 8, 24, 72, 216, 134, 145, 178, 20, 60, 180, 26, 78, 234, 188, 50, 150, 193, 65, 195, 71, 213, 125, 118, 97, 34, 102, 49, 147, 184, 38, 114, 85, 255, 251, 239, 203, 95, 28, 84, 252, 242, 212, 122, 109, 70, 210, 116, 91, 16, 48, 144, 175, 11, 33, 99, 40, 120, 103, 52, 156, 211, 119, 100, 43, 129, 130, 133, 142, 169, 250, 236, 194, 68, 204, 98, 37, 111, 76, 228, 170, 253, 245, 221, 149, 190, 56, 168, 247, 227, 167, 244, 218, 140, 163, 232, 182, 32, 96, 31, 93, 22, 66, 198, 80, 240, 206, 104, 55, 165, 238, 200, 86, 1], -[1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1, 4, 16, 64, 256, 253, 241, 193, 1], -[1, 5, 25, 125, 111, 41, 205, 254, 242, 182, 139, 181, 134, 156, 9, 45, 225, 97, 228, 112, 46, 230, 122, 96, 223, 87, 178, 119, 81, 148, 226, 102, 253, 237, 157, 14, 70, 93, 208, 12, 60, 43, 215, 47, 235, 147, 221, 77, 128, 126, 116, 66, 73, 108, 26, 130, 136, 166, 59, 38, 190, 179, 124, 106, 16, 80, 143, 201, 234, 142, 196, 209, 17, 85, 168, 69, 88, 183, 144, 206, 2, 10, 50, 250, 222, 82, 153, 251, 227, 107, 21, 105, 11, 55, 18, 90, 193, 194, 199, 224, 92, 203, 244, 192, 189, 174, 99, 238, 162, 39, 195, 204, 249, 217, 57, 28, 140, 186, 159, 24, 120, 86, 173, 94, 213, 37, 185, 154, 256, 252, 232, 132, 146, 216, 52, 3, 15, 75, 118, 76, 123, 101, 248, 212, 32, 160, 29, 145, 211, 27, 135, 161, 34, 170, 79, 138, 176, 109, 31, 155, 4, 20, 100, 243, 187, 164, 49, 245, 197, 214, 42, 210, 22, 110, 36, 180, 129, 131, 141, 191, 184, 149, 231, 127, 121, 91, 198, 219, 67, 78, 133, 151, 241, 177, 114, 56, 23, 115, 61, 48, 240, 172, 89, 188, 169, 74, 113, 51, 255, 247, 207, 7, 35, 175, 104, 6, 30, 150, 236, 152, 246, 202, 239, 167, 64, 63, 58, 33, 165, 54, 13, 65, 68, 83, 158, 19, 95, 218, 62, 53, 8, 40, 200, 229, 117, 71, 98, 233, 137, 171, 84, 163, 44, 220, 72, 103, 1], -[1, 6, 36, 216, 11, 66, 139, 63, 121, 212, 244, 179, 46, 19, 114, 170, 249, 209, 226, 71, 169, 243, 173, 10, 60, 103, 104, 110, 146, 105, 116, 182, 64, 127, 248, 203, 190, 112, 158, 177, 34, 204, 196, 148, 117, 188, 100, 86, 2, 12, 72, 175, 22, 132, 21, 126, 242, 167, 231, 101, 92, 38, 228, 83, 241, 161, 195, 142, 81, 229, 89, 20, 120, 206, 208, 220, 35, 210, 232, 107, 128, 254, 239, 149, 123, 224, 59, 97, 68, 151, 135, 39, 234, 119, 200, 172, 4, 24, 144, 93, 44, 7, 42, 252, 227, 77, 205, 202, 184, 76, 199, 166, 225, 65, 133, 27, 162, 201, 178, 40, 240, 155, 159, 183, 70, 163, 207, 214, 256, 251, 221, 41, 246, 191, 118, 194, 136, 45, 13, 78, 211, 238, 143, 87, 8, 48, 31, 186, 88, 14, 84, 247, 197, 154, 153, 147, 111, 152, 141, 75, 193, 130, 9, 54, 67, 145, 99, 80, 223, 53, 61, 109, 140, 69, 157, 171, 255, 245, 185, 82, 235, 125, 236, 131, 15, 90, 26, 156, 165, 219, 29, 174, 16, 96, 62, 115, 176, 28, 168, 237, 137, 51, 49, 37, 222, 47, 25, 150, 129, 3, 18, 108, 134, 33, 198, 160, 189, 106, 122, 218, 23, 138, 57, 85, 253, 233, 113, 164, 213, 250, 215, 5, 30, 180, 52, 55, 73, 181, 58, 91, 32, 192, 124, 230, 95, 56, 79, 217, 17, 102, 98, 74, 187, 94, 50, 43, 1], -[1, 7, 49, 86, 88, 102, 200, 115, 34, 238, 124, 97, 165, 127, 118, 55, 128, 125, 104, 214, 213, 206, 157, 71, 240, 138, 195, 80, 46, 65, 198, 101, 193, 66, 205, 150, 22, 154, 50, 93, 137, 188, 31, 217, 234, 96, 158, 78, 32, 224, 26, 182, 246, 180, 232, 82, 60, 163, 113, 20, 140, 209, 178, 218, 241, 145, 244, 166, 134, 167, 141, 216, 227, 47, 72, 247, 187, 24, 168, 148, 8, 56, 135, 174, 190, 45, 58, 149, 15, 105, 221, 5, 35, 245, 173, 183, 253, 229, 61, 170, 162, 106, 228, 54, 121, 76, 18, 126, 111, 6, 42, 37, 2, 14, 98, 172, 176, 204, 143, 230, 68, 219, 248, 194, 73, 254, 236, 110, 256, 250, 208, 171, 169, 155, 57, 142, 223, 19, 133, 160, 92, 130, 139, 202, 129, 132, 153, 43, 44, 51, 100, 186, 17, 119, 62, 177, 211, 192, 59, 156, 64, 191, 52, 107, 235, 103, 207, 164, 120, 69, 226, 40, 23, 161, 99, 179, 225, 33, 231, 75, 11, 77, 25, 175, 197, 94, 144, 237, 117, 48, 79, 39, 16, 112, 13, 91, 123, 90, 116, 41, 30, 210, 185, 10, 70, 233, 89, 109, 249, 201, 122, 83, 67, 212, 199, 108, 242, 152, 36, 252, 222, 12, 84, 74, 4, 28, 196, 87, 95, 151, 29, 203, 136, 181, 239, 131, 146, 251, 215, 220, 255, 243, 159, 85, 81, 53, 114, 27, 189, 38, 9, 63, 184, 3, 21, 147, 1], -[1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1, 8, 64, 255, 241, 129, 4, 32, 256, 249, 193, 2, 16, 128, 253, 225, 1], -[1, 9, 81, 215, 136, 196, 222, 199, 249, 185, 123, 79, 197, 231, 23, 207, 64, 62, 44, 139, 223, 208, 73, 143, 2, 18, 162, 173, 15, 135, 187, 141, 241, 113, 246, 158, 137, 205, 46, 157, 128, 124, 88, 21, 189, 159, 146, 29, 4, 36, 67, 89, 30, 13, 117, 25, 225, 226, 235, 59, 17, 153, 92, 57, 256, 248, 176, 42, 121, 61, 35, 58, 8, 72, 134, 178, 60, 26, 234, 50, 193, 195, 213, 118, 34, 49, 184, 114, 255, 239, 95, 84, 242, 122, 70, 116, 16, 144, 11, 99, 120, 52, 211, 100, 129, 133, 169, 236, 68, 98, 111, 228, 253, 221, 190, 168, 227, 244, 140, 232, 32, 31, 22, 198, 240, 104, 165, 200, 1, 9, 81, 215, 136, 196, 222, 199, 249, 185, 123, 79, 197, 231, 23, 207, 64, 62, 44, 139, 223, 208, 73, 143, 2, 18, 162, 173, 15, 135, 187, 141, 241, 113, 246, 158, 137, 205, 46, 157, 128, 124, 88, 21, 189, 159, 146, 29, 4, 36, 67, 89, 30, 13, 117, 25, 225, 226, 235, 59, 17, 153, 92, 57, 256, 248, 176, 42, 121, 61, 35, 58, 8, 72, 134, 178, 60, 26, 234, 50, 193, 195, 213, 118, 34, 49, 184, 114, 255, 239, 95, 84, 242, 122, 70, 116, 16, 144, 11, 99, 120, 52, 211, 100, 129, 133, 169, 236, 68, 98, 111, 228, 253, 221, 190, 168, 227, 244, 140, 232, 32, 31, 22, 198, 240, 104, 165, 200, 1], -[1, 10, 100, 229, 234, 27, 13, 130, 15, 150, 215, 94, 169, 148, 195, 151, 225, 194, 141, 125, 222, 164, 98, 209, 34, 83, 59, 76, 246, 147, 185, 51, 253, 217, 114, 112, 92, 149, 205, 251, 197, 171, 168, 138, 95, 179, 248, 167, 128, 252, 207, 14, 140, 115, 122, 192, 121, 182, 21, 210, 44, 183, 31, 53, 16, 160, 58, 66, 146, 175, 208, 24, 240, 87, 99, 219, 134, 55, 36, 103, 2, 20, 200, 201, 211, 54, 26, 3, 30, 43, 173, 188, 81, 39, 133, 45, 193, 131, 25, 250, 187, 71, 196, 161, 68, 166, 118, 152, 235, 37, 113, 102, 249, 177, 228, 224, 184, 41, 153, 245, 137, 85, 79, 19, 190, 101, 239, 77, 256, 247, 157, 28, 23, 230, 244, 127, 242, 107, 42, 163, 88, 109, 62, 106, 32, 63, 116, 132, 35, 93, 159, 48, 223, 174, 198, 181, 11, 110, 72, 206, 4, 40, 143, 145, 165, 108, 52, 6, 60, 86, 89, 119, 162, 78, 9, 90, 129, 5, 50, 243, 117, 142, 135, 65, 136, 75, 236, 47, 213, 74, 226, 204, 241, 97, 199, 191, 111, 82, 49, 233, 17, 170, 158, 38, 123, 202, 221, 154, 255, 237, 57, 56, 46, 203, 231, 254, 227, 214, 84, 69, 176, 218, 124, 212, 64, 126, 232, 7, 70, 186, 61, 96, 189, 91, 139, 105, 22, 220, 144, 155, 8, 80, 29, 33, 73, 216, 104, 12, 120, 172, 178, 238, 67, 156, 18, 180, 1], -[1, 11, 121, 46, 249, 169, 60, 146, 64, 190, 34, 117, 2, 22, 242, 92, 241, 81, 120, 35, 128, 123, 68, 234, 4, 44, 227, 184, 225, 162, 240, 70, 256, 246, 136, 211, 8, 88, 197, 111, 193, 67, 223, 140, 255, 235, 15, 165, 16, 176, 137, 222, 129, 134, 189, 23, 253, 213, 30, 73, 32, 95, 17, 187, 1, 11, 121, 46, 249, 169, 60, 146, 64, 190, 34, 117, 2, 22, 242, 92, 241, 81, 120, 35, 128, 123, 68, 234, 4, 44, 227, 184, 225, 162, 240, 70, 256, 246, 136, 211, 8, 88, 197, 111, 193, 67, 223, 140, 255, 235, 15, 165, 16, 176, 137, 222, 129, 134, 189, 23, 253, 213, 30, 73, 32, 95, 17, 187, 1, 11, 121, 46, 249, 169, 60, 146, 64, 190, 34, 117, 2, 22, 242, 92, 241, 81, 120, 35, 128, 123, 68, 234, 4, 44, 227, 184, 225, 162, 240, 70, 256, 246, 136, 211, 8, 88, 197, 111, 193, 67, 223, 140, 255, 235, 15, 165, 16, 176, 137, 222, 129, 134, 189, 23, 253, 213, 30, 73, 32, 95, 17, 187, 1, 11, 121, 46, 249, 169, 60, 146, 64, 190, 34, 117, 2, 22, 242, 92, 241, 81, 120, 35, 128, 123, 68, 234, 4, 44, 227, 184, 225, 162, 240, 70, 256, 246, 136, 211, 8, 88, 197, 111, 193, 67, 223, 140, 255, 235, 15, 165, 16, 176, 137, 222, 129, 134, 189, 23, 253, 213, 30, 73, 32, 95, 17, 187, 1], -[1, 12, 144, 186, 176, 56, 158, 97, 136, 90, 52, 110, 35, 163, 157, 85, 249, 161, 133, 54, 134, 66, 21, 252, 197, 51, 98, 148, 234, 238, 29, 91, 64, 254, 221, 82, 213, 243, 89, 40, 223, 106, 244, 101, 184, 152, 25, 43, 2, 24, 31, 115, 95, 112, 59, 194, 15, 180, 104, 220, 70, 69, 57, 170, 241, 65, 9, 108, 11, 132, 42, 247, 137, 102, 196, 39, 211, 219, 58, 182, 128, 251, 185, 164, 169, 229, 178, 80, 189, 212, 231, 202, 111, 47, 50, 86, 4, 48, 62, 230, 190, 224, 118, 131, 30, 103, 208, 183, 140, 138, 114, 83, 225, 130, 18, 216, 22, 7, 84, 237, 17, 204, 135, 78, 165, 181, 116, 107, 256, 245, 113, 71, 81, 201, 99, 160, 121, 167, 205, 147, 222, 94, 100, 172, 8, 96, 124, 203, 123, 191, 236, 5, 60, 206, 159, 109, 23, 19, 228, 166, 193, 3, 36, 175, 44, 14, 168, 217, 34, 151, 13, 156, 73, 105, 232, 214, 255, 233, 226, 142, 162, 145, 198, 63, 242, 77, 153, 37, 187, 188, 200, 87, 16, 192, 248, 149, 246, 125, 215, 10, 120, 155, 61, 218, 46, 38, 199, 75, 129, 6, 72, 93, 88, 28, 79, 177, 68, 45, 26, 55, 146, 210, 207, 171, 253, 209, 195, 27, 67, 33, 139, 126, 227, 154, 49, 74, 117, 119, 143, 174, 32, 127, 239, 41, 235, 250, 173, 20, 240, 53, 122, 179, 92, 76, 141, 150, 1], -[1, 13, 169, 141, 34, 185, 92, 168, 128, 122, 44, 58, 240, 36, 211, 173, 193, 196, 235, 228, 137, 239, 23, 42, 32, 159, 11, 143, 60, 9, 117, 236, 241, 49, 123, 57, 227, 124, 70, 139, 8, 104, 67, 100, 15, 195, 222, 59, 253, 205, 95, 207, 121, 31, 146, 99, 2, 26, 81, 25, 68, 113, 184, 79, 256, 244, 88, 116, 223, 72, 165, 89, 129, 135, 213, 199, 17, 221, 46, 84, 64, 61, 22, 29, 120, 18, 234, 215, 225, 98, 246, 114, 197, 248, 140, 21, 16, 208, 134, 200, 30, 133, 187, 118, 249, 153, 190, 157, 242, 62, 35, 198, 4, 52, 162, 50, 136, 226, 111, 158, 255, 231, 176, 232, 189, 144, 73, 178, 1, 13, 169, 141, 34, 185, 92, 168, 128, 122, 44, 58, 240, 36, 211, 173, 193, 196, 235, 228, 137, 239, 23, 42, 32, 159, 11, 143, 60, 9, 117, 236, 241, 49, 123, 57, 227, 124, 70, 139, 8, 104, 67, 100, 15, 195, 222, 59, 253, 205, 95, 207, 121, 31, 146, 99, 2, 26, 81, 25, 68, 113, 184, 79, 256, 244, 88, 116, 223, 72, 165, 89, 129, 135, 213, 199, 17, 221, 46, 84, 64, 61, 22, 29, 120, 18, 234, 215, 225, 98, 246, 114, 197, 248, 140, 21, 16, 208, 134, 200, 30, 133, 187, 118, 249, 153, 190, 157, 242, 62, 35, 198, 4, 52, 162, 50, 136, 226, 111, 158, 255, 231, 176, 232, 189, 144, 73, 178, 1], -[1, 14, 196, 174, 123, 180, 207, 71, 223, 38, 18, 252, 187, 48, 158, 156, 128, 250, 159, 170, 67, 167, 25, 93, 17, 238, 248, 131, 35, 233, 178, 179, 193, 132, 49, 172, 95, 45, 116, 82, 120, 138, 133, 63, 111, 12, 168, 39, 32, 191, 104, 171, 81, 106, 199, 216, 197, 188, 62, 97, 73, 251, 173, 109, 241, 33, 205, 43, 88, 204, 29, 149, 30, 163, 226, 80, 92, 3, 42, 74, 8, 112, 26, 107, 213, 155, 114, 54, 242, 47, 144, 217, 211, 127, 236, 220, 253, 201, 244, 75, 22, 51, 200, 230, 136, 105, 185, 20, 23, 65, 139, 147, 2, 28, 135, 91, 246, 103, 157, 142, 189, 76, 36, 247, 117, 96, 59, 55, 256, 243, 61, 83, 134, 77, 50, 186, 34, 219, 239, 5, 70, 209, 99, 101, 129, 7, 98, 87, 190, 90, 232, 164, 240, 19, 9, 126, 222, 24, 79, 78, 64, 125, 208, 85, 162, 212, 141, 175, 137, 119, 124, 194, 146, 245, 89, 218, 225, 66, 153, 86, 176, 151, 58, 41, 60, 69, 195, 160, 184, 6, 84, 148, 16, 224, 52, 214, 169, 53, 228, 108, 227, 94, 31, 177, 165, 254, 215, 183, 249, 145, 231, 150, 44, 102, 143, 203, 15, 210, 113, 40, 46, 130, 21, 37, 4, 56, 13, 182, 235, 206, 57, 27, 121, 152, 72, 237, 234, 192, 118, 110, 255, 229, 122, 166, 11, 154, 100, 115, 68, 181, 221, 10, 140, 161, 198, 202, 1], -[1, 15, 225, 34, 253, 197, 128, 121, 16, 240, 2, 30, 193, 68, 249, 137, 256, 242, 32, 223, 4, 60, 129, 136, 241, 17, 255, 227, 64, 189, 8, 120, 1, 15, 225, 34, 253, 197, 128, 121, 16, 240, 2, 30, 193, 68, 249, 137, 256, 242, 32, 223, 4, 60, 129, 136, 241, 17, 255, 227, 64, 189, 8, 120, 1, 15, 225, 34, 253, 197, 128, 121, 16, 240, 2, 30, 193, 68, 249, 137, 256, 242, 32, 223, 4, 60, 129, 136, 241, 17, 255, 227, 64, 189, 8, 120, 1, 15, 225, 34, 253, 197, 128, 121, 16, 240, 2, 30, 193, 68, 249, 137, 256, 242, 32, 223, 4, 60, 129, 136, 241, 17, 255, 227, 64, 189, 8, 120, 1, 15, 225, 34, 253, 197, 128, 121, 16, 240, 2, 30, 193, 68, 249, 137, 256, 242, 32, 223, 4, 60, 129, 136, 241, 17, 255, 227, 64, 189, 8, 120, 1, 15, 225, 34, 253, 197, 128, 121, 16, 240, 2, 30, 193, 68, 249, 137, 256, 242, 32, 223, 4, 60, 129, 136, 241, 17, 255, 227, 64, 189, 8, 120, 1, 15, 225, 34, 253, 197, 128, 121, 16, 240, 2, 30, 193, 68, 249, 137, 256, 242, 32, 223, 4, 60, 129, 136, 241, 17, 255, 227, 64, 189, 8, 120, 1, 15, 225, 34, 253, 197, 128, 121, 16, 240, 2, 30, 193, 68, 249, 137, 256, 242, 32, 223, 4, 60, 129, 136, 241, 17, 255, 227, 64, 189, 8, 120, 1], -[1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1, 16, 256, 241, 1], -[1, 17, 32, 30, 253, 189, 129, 137, 16, 15, 255, 223, 193, 197, 8, 136, 256, 240, 225, 227, 4, 68, 128, 120, 241, 242, 2, 34, 64, 60, 249, 121, 1, 17, 32, 30, 253, 189, 129, 137, 16, 15, 255, 223, 193, 197, 8, 136, 256, 240, 225, 227, 4, 68, 128, 120, 241, 242, 2, 34, 64, 60, 249, 121, 1, 17, 32, 30, 253, 189, 129, 137, 16, 15, 255, 223, 193, 197, 8, 136, 256, 240, 225, 227, 4, 68, 128, 120, 241, 242, 2, 34, 64, 60, 249, 121, 1, 17, 32, 30, 253, 189, 129, 137, 16, 15, 255, 223, 193, 197, 8, 136, 256, 240, 225, 227, 4, 68, 128, 120, 241, 242, 2, 34, 64, 60, 249, 121, 1, 17, 32, 30, 253, 189, 129, 137, 16, 15, 255, 223, 193, 197, 8, 136, 256, 240, 225, 227, 4, 68, 128, 120, 241, 242, 2, 34, 64, 60, 249, 121, 1, 17, 32, 30, 253, 189, 129, 137, 16, 15, 255, 223, 193, 197, 8, 136, 256, 240, 225, 227, 4, 68, 128, 120, 241, 242, 2, 34, 64, 60, 249, 121, 1, 17, 32, 30, 253, 189, 129, 137, 16, 15, 255, 223, 193, 197, 8, 136, 256, 240, 225, 227, 4, 68, 128, 120, 241, 242, 2, 34, 64, 60, 249, 121, 1, 17, 32, 30, 253, 189, 129, 137, 16, 15, 255, 223, 193, 197, 8, 136, 256, 240, 225, 227, 4, 68, 128, 120, 241, 242, 2, 34, 64, 60, 249, 121, 1], -[1, 18, 67, 178, 120, 104, 73, 29, 8, 144, 22, 139, 189, 61, 70, 232, 64, 124, 176, 84, 227, 231, 46, 57, 255, 221, 123, 158, 17, 49, 111, 199, 241, 226, 213, 236, 136, 135, 117, 50, 129, 9, 162, 89, 60, 52, 165, 143, 4, 72, 11, 198, 223, 159, 35, 116, 32, 62, 88, 42, 242, 244, 23, 157, 256, 239, 190, 79, 137, 153, 184, 228, 249, 113, 235, 118, 68, 196, 187, 25, 193, 133, 81, 173, 30, 26, 211, 200, 2, 36, 134, 99, 240, 208, 146, 58, 16, 31, 44, 21, 121, 122, 140, 207, 128, 248, 95, 168, 197, 205, 92, 114, 253, 185, 246, 59, 34, 98, 222, 141, 225, 195, 169, 215, 15, 13, 234, 100, 1, 18, 67, 178, 120, 104, 73, 29, 8, 144, 22, 139, 189, 61, 70, 232, 64, 124, 176, 84, 227, 231, 46, 57, 255, 221, 123, 158, 17, 49, 111, 199, 241, 226, 213, 236, 136, 135, 117, 50, 129, 9, 162, 89, 60, 52, 165, 143, 4, 72, 11, 198, 223, 159, 35, 116, 32, 62, 88, 42, 242, 244, 23, 157, 256, 239, 190, 79, 137, 153, 184, 228, 249, 113, 235, 118, 68, 196, 187, 25, 193, 133, 81, 173, 30, 26, 211, 200, 2, 36, 134, 99, 240, 208, 146, 58, 16, 31, 44, 21, 121, 122, 140, 207, 128, 248, 95, 168, 197, 205, 92, 114, 253, 185, 246, 59, 34, 98, 222, 141, 225, 195, 169, 215, 15, 13, 234, 100, 1], -[1, 19, 104, 177, 22, 161, 232, 39, 227, 201, 221, 87, 111, 53, 236, 115, 129, 138, 52, 217, 11, 209, 116, 148, 242, 229, 239, 172, 184, 155, 118, 186, 193, 69, 26, 237, 134, 233, 58, 74, 121, 243, 248, 86, 92, 206, 59, 93, 225, 163, 13, 247, 67, 245, 29, 37, 189, 250, 124, 43, 46, 103, 158, 175, 241, 210, 135, 252, 162, 251, 143, 147, 223, 125, 62, 150, 23, 180, 79, 216, 249, 105, 196, 126, 81, 254, 200, 202, 240, 191, 31, 75, 140, 90, 168, 108, 253, 181, 98, 63, 169, 127, 100, 101, 120, 224, 144, 166, 70, 45, 84, 54, 255, 219, 49, 160, 213, 192, 50, 179, 60, 112, 72, 83, 35, 151, 42, 27, 256, 238, 153, 80, 235, 96, 25, 218, 30, 56, 36, 170, 146, 204, 21, 142, 128, 119, 205, 40, 246, 48, 141, 109, 15, 28, 18, 85, 73, 102, 139, 71, 64, 188, 231, 20, 123, 24, 199, 183, 136, 14, 9, 171, 165, 51, 198, 164, 32, 94, 244, 10, 190, 12, 228, 220, 68, 7, 133, 214, 211, 154, 99, 82, 16, 47, 122, 5, 95, 6, 114, 110, 34, 132, 195, 107, 234, 77, 178, 41, 8, 152, 61, 131, 176, 3, 57, 55, 17, 66, 226, 182, 117, 167, 89, 149, 4, 76, 159, 194, 88, 130, 157, 156, 137, 33, 113, 91, 187, 212, 173, 203, 2, 38, 208, 97, 44, 65, 207, 78, 197, 145, 185, 174, 222, 106, 215, 230, 1], -[1, 20, 143, 33, 146, 93, 61, 192, 242, 214, 168, 19, 123, 147, 113, 204, 225, 131, 50, 229, 211, 108, 104, 24, 223, 91, 21, 163, 176, 179, 239, 154, 253, 177, 199, 125, 187, 142, 13, 3, 60, 172, 99, 181, 22, 183, 62, 212, 128, 247, 57, 112, 184, 82, 98, 161, 136, 150, 173, 119, 67, 55, 72, 155, 16, 63, 232, 14, 23, 203, 205, 245, 17, 83, 118, 47, 169, 39, 9, 180, 2, 40, 29, 66, 35, 186, 122, 127, 227, 171, 79, 38, 246, 37, 226, 151, 193, 5, 100, 201, 165, 216, 208, 48, 189, 182, 42, 69, 95, 101, 221, 51, 249, 97, 141, 250, 117, 27, 26, 6, 120, 87, 198, 105, 44, 109, 124, 167, 256, 237, 114, 224, 111, 164, 196, 65, 15, 43, 89, 238, 134, 110, 144, 53, 32, 126, 207, 28, 46, 149, 153, 233, 34, 166, 236, 94, 81, 78, 18, 103, 4, 80, 58, 132, 70, 115, 244, 254, 197, 85, 158, 76, 235, 74, 195, 45, 129, 10, 200, 145, 73, 175, 159, 96, 121, 107, 84, 138, 190, 202, 185, 102, 241, 194, 25, 243, 234, 54, 52, 12, 240, 174, 139, 210, 88, 218, 248, 77, 255, 217, 228, 191, 222, 71, 135, 130, 30, 86, 178, 219, 11, 220, 31, 106, 64, 252, 157, 56, 92, 41, 49, 209, 68, 75, 215, 188, 162, 156, 36, 206, 8, 160, 116, 7, 140, 230, 231, 251, 137, 170, 59, 152, 213, 148, 133, 90, 1], -[1, 21, 184, 9, 189, 114, 81, 159, 255, 215, 146, 239, 136, 29, 95, 196, 4, 84, 222, 36, 242, 199, 67, 122, 249, 89, 70, 185, 30, 116, 123, 13, 16, 79, 117, 144, 197, 25, 11, 231, 225, 99, 23, 226, 120, 207, 235, 52, 64, 59, 211, 62, 17, 100, 44, 153, 129, 139, 92, 133, 223, 57, 169, 208, 256, 236, 73, 248, 68, 143, 176, 98, 2, 42, 111, 18, 121, 228, 162, 61, 253, 173, 35, 221, 15, 58, 190, 135, 8, 168, 187, 72, 227, 141, 134, 244, 241, 178, 140, 113, 60, 232, 246, 26, 32, 158, 234, 31, 137, 50, 22, 205, 193, 198, 46, 195, 240, 157, 213, 104, 128, 118, 165, 124, 34, 200, 88, 49, 1, 21, 184, 9, 189, 114, 81, 159, 255, 215, 146, 239, 136, 29, 95, 196, 4, 84, 222, 36, 242, 199, 67, 122, 249, 89, 70, 185, 30, 116, 123, 13, 16, 79, 117, 144, 197, 25, 11, 231, 225, 99, 23, 226, 120, 207, 235, 52, 64, 59, 211, 62, 17, 100, 44, 153, 129, 139, 92, 133, 223, 57, 169, 208, 256, 236, 73, 248, 68, 143, 176, 98, 2, 42, 111, 18, 121, 228, 162, 61, 253, 173, 35, 221, 15, 58, 190, 135, 8, 168, 187, 72, 227, 141, 134, 244, 241, 178, 140, 113, 60, 232, 246, 26, 32, 158, 234, 31, 137, 50, 22, 205, 193, 198, 46, 195, 240, 157, 213, 104, 128, 118, 165, 124, 34, 200, 88, 49, 1], -[1, 22, 227, 111, 129, 11, 242, 184, 193, 134, 121, 92, 225, 67, 189, 46, 241, 162, 223, 23, 249, 81, 240, 140, 253, 169, 120, 70, 255, 213, 60, 35, 256, 235, 30, 146, 128, 246, 15, 73, 64, 123, 136, 165, 32, 190, 68, 211, 16, 95, 34, 234, 8, 176, 17, 117, 4, 88, 137, 187, 2, 44, 197, 222, 1, 22, 227, 111, 129, 11, 242, 184, 193, 134, 121, 92, 225, 67, 189, 46, 241, 162, 223, 23, 249, 81, 240, 140, 253, 169, 120, 70, 255, 213, 60, 35, 256, 235, 30, 146, 128, 246, 15, 73, 64, 123, 136, 165, 32, 190, 68, 211, 16, 95, 34, 234, 8, 176, 17, 117, 4, 88, 137, 187, 2, 44, 197, 222, 1, 22, 227, 111, 129, 11, 242, 184, 193, 134, 121, 92, 225, 67, 189, 46, 241, 162, 223, 23, 249, 81, 240, 140, 253, 169, 120, 70, 255, 213, 60, 35, 256, 235, 30, 146, 128, 246, 15, 73, 64, 123, 136, 165, 32, 190, 68, 211, 16, 95, 34, 234, 8, 176, 17, 117, 4, 88, 137, 187, 2, 44, 197, 222, 1, 22, 227, 111, 129, 11, 242, 184, 193, 134, 121, 92, 225, 67, 189, 46, 241, 162, 223, 23, 249, 81, 240, 140, 253, 169, 120, 70, 255, 213, 60, 35, 256, 235, 30, 146, 128, 246, 15, 73, 64, 123, 136, 165, 32, 190, 68, 211, 16, 95, 34, 234, 8, 176, 17, 117, 4, 88, 137, 187, 2, 44, 197, 222, 1], -[1, 23, 15, 88, 225, 35, 34, 11, 253, 165, 197, 162, 128, 117, 121, 213, 16, 111, 240, 123, 2, 46, 30, 176, 193, 70, 68, 22, 249, 73, 137, 67, 256, 234, 242, 169, 32, 222, 223, 246, 4, 92, 60, 95, 129, 140, 136, 44, 241, 146, 17, 134, 255, 211, 227, 81, 64, 187, 189, 235, 8, 184, 120, 190, 1, 23, 15, 88, 225, 35, 34, 11, 253, 165, 197, 162, 128, 117, 121, 213, 16, 111, 240, 123, 2, 46, 30, 176, 193, 70, 68, 22, 249, 73, 137, 67, 256, 234, 242, 169, 32, 222, 223, 246, 4, 92, 60, 95, 129, 140, 136, 44, 241, 146, 17, 134, 255, 211, 227, 81, 64, 187, 189, 235, 8, 184, 120, 190, 1, 23, 15, 88, 225, 35, 34, 11, 253, 165, 197, 162, 128, 117, 121, 213, 16, 111, 240, 123, 2, 46, 30, 176, 193, 70, 68, 22, 249, 73, 137, 67, 256, 234, 242, 169, 32, 222, 223, 246, 4, 92, 60, 95, 129, 140, 136, 44, 241, 146, 17, 134, 255, 211, 227, 81, 64, 187, 189, 235, 8, 184, 120, 190, 1, 23, 15, 88, 225, 35, 34, 11, 253, 165, 197, 162, 128, 117, 121, 213, 16, 111, 240, 123, 2, 46, 30, 176, 193, 70, 68, 22, 249, 73, 137, 67, 256, 234, 242, 169, 32, 222, 223, 246, 4, 92, 60, 95, 129, 140, 136, 44, 241, 146, 17, 134, 255, 211, 227, 81, 64, 187, 189, 235, 8, 184, 120, 190, 1], -[1, 24, 62, 203, 246, 250, 89, 80, 121, 77, 49, 148, 211, 181, 232, 171, 249, 65, 18, 175, 88, 56, 59, 131, 60, 155, 122, 101, 111, 94, 200, 174, 64, 251, 113, 142, 67, 66, 42, 237, 34, 45, 52, 220, 140, 19, 199, 150, 2, 48, 124, 149, 235, 243, 178, 160, 242, 154, 98, 39, 165, 105, 207, 85, 241, 130, 36, 93, 176, 112, 118, 5, 120, 53, 244, 202, 222, 188, 143, 91, 128, 245, 226, 27, 134, 132, 84, 217, 68, 90, 104, 183, 23, 38, 141, 43, 4, 96, 248, 41, 213, 229, 99, 63, 227, 51, 196, 78, 73, 210, 157, 170, 225, 3, 72, 186, 95, 224, 236, 10, 240, 106, 231, 147, 187, 119, 29, 182, 256, 233, 195, 54, 11, 7, 168, 177, 136, 180, 208, 109, 46, 76, 25, 86, 8, 192, 239, 82, 169, 201, 198, 126, 197, 102, 135, 156, 146, 163, 57, 83, 193, 6, 144, 115, 190, 191, 215, 20, 223, 212, 205, 37, 117, 238, 58, 107, 255, 209, 133, 108, 22, 14, 79, 97, 15, 103, 159, 218, 92, 152, 50, 172, 16, 127, 221, 164, 81, 145, 139, 252, 137, 204, 13, 55, 35, 69, 114, 166, 129, 12, 31, 230, 123, 125, 173, 40, 189, 167, 153, 74, 234, 219, 116, 214, 253, 161, 9, 216, 44, 28, 158, 194, 30, 206, 61, 179, 184, 47, 100, 87, 32, 254, 185, 71, 162, 33, 21, 247, 17, 151, 26, 110, 70, 138, 228, 75, 1], -[1, 25, 111, 205, 242, 139, 134, 9, 225, 228, 46, 122, 223, 178, 81, 226, 253, 157, 70, 208, 60, 215, 235, 221, 128, 116, 73, 26, 136, 59, 190, 124, 16, 143, 234, 196, 17, 168, 88, 144, 2, 50, 222, 153, 227, 21, 11, 18, 193, 199, 92, 244, 189, 99, 162, 195, 249, 57, 140, 159, 120, 173, 213, 185, 256, 232, 146, 52, 15, 118, 123, 248, 32, 29, 211, 135, 34, 79, 176, 31, 4, 100, 187, 49, 197, 42, 22, 36, 129, 141, 184, 231, 121, 198, 67, 133, 241, 114, 23, 61, 240, 89, 169, 113, 255, 207, 35, 104, 30, 236, 246, 239, 64, 58, 165, 13, 68, 158, 95, 62, 8, 200, 117, 98, 137, 84, 44, 72, 1, 25, 111, 205, 242, 139, 134, 9, 225, 228, 46, 122, 223, 178, 81, 226, 253, 157, 70, 208, 60, 215, 235, 221, 128, 116, 73, 26, 136, 59, 190, 124, 16, 143, 234, 196, 17, 168, 88, 144, 2, 50, 222, 153, 227, 21, 11, 18, 193, 199, 92, 244, 189, 99, 162, 195, 249, 57, 140, 159, 120, 173, 213, 185, 256, 232, 146, 52, 15, 118, 123, 248, 32, 29, 211, 135, 34, 79, 176, 31, 4, 100, 187, 49, 197, 42, 22, 36, 129, 141, 184, 231, 121, 198, 67, 133, 241, 114, 23, 61, 240, 89, 169, 113, 255, 207, 35, 104, 30, 236, 246, 239, 64, 58, 165, 13, 68, 158, 95, 62, 8, 200, 117, 98, 137, 84, 44, 72, 1], -[1, 26, 162, 100, 30, 9, 234, 173, 129, 13, 81, 50, 15, 133, 117, 215, 193, 135, 169, 25, 136, 195, 187, 236, 225, 196, 213, 141, 68, 226, 222, 118, 241, 98, 235, 199, 34, 113, 111, 59, 249, 49, 246, 228, 17, 185, 184, 158, 253, 153, 123, 114, 137, 221, 92, 79, 255, 205, 190, 57, 197, 239, 46, 168, 256, 231, 95, 157, 227, 248, 23, 84, 128, 244, 176, 207, 242, 124, 140, 42, 64, 122, 88, 232, 121, 62, 70, 21, 32, 61, 44, 116, 189, 31, 35, 139, 16, 159, 22, 58, 223, 144, 146, 198, 8, 208, 11, 29, 240, 72, 73, 99, 4, 104, 134, 143, 120, 36, 165, 178, 2, 52, 67, 200, 60, 18, 211, 89, 1, 26, 162, 100, 30, 9, 234, 173, 129, 13, 81, 50, 15, 133, 117, 215, 193, 135, 169, 25, 136, 195, 187, 236, 225, 196, 213, 141, 68, 226, 222, 118, 241, 98, 235, 199, 34, 113, 111, 59, 249, 49, 246, 228, 17, 185, 184, 158, 253, 153, 123, 114, 137, 221, 92, 79, 255, 205, 190, 57, 197, 239, 46, 168, 256, 231, 95, 157, 227, 248, 23, 84, 128, 244, 176, 207, 242, 124, 140, 42, 64, 122, 88, 232, 121, 62, 70, 21, 32, 61, 44, 116, 189, 31, 35, 139, 16, 159, 22, 58, 223, 144, 146, 198, 8, 208, 11, 29, 240, 72, 73, 99, 4, 104, 134, 143, 120, 36, 165, 178, 2, 52, 67, 200, 60, 18, 211, 89, 1], -[1, 27, 215, 151, 222, 83, 185, 112, 197, 179, 207, 192, 44, 160, 208, 219, 2, 54, 173, 45, 187, 166, 113, 224, 137, 101, 157, 127, 88, 63, 159, 181, 4, 108, 89, 90, 117, 75, 226, 191, 17, 202, 57, 254, 176, 126, 61, 105, 8, 216, 178, 180, 234, 150, 195, 125, 34, 147, 114, 251, 95, 252, 122, 210, 16, 175, 99, 103, 211, 43, 133, 250, 68, 37, 228, 245, 190, 247, 244, 163, 32, 93, 198, 206, 165, 86, 9, 243, 136, 74, 199, 233, 123, 237, 231, 69, 64, 186, 139, 155, 73, 172, 18, 229, 15, 148, 141, 209, 246, 217, 205, 138, 128, 115, 21, 53, 146, 87, 36, 201, 30, 39, 25, 161, 235, 177, 153, 19, 256, 230, 42, 106, 35, 174, 72, 145, 60, 78, 50, 65, 213, 97, 49, 38, 255, 203, 84, 212, 70, 91, 144, 33, 120, 156, 100, 130, 169, 194, 98, 76, 253, 149, 168, 167, 140, 182, 31, 66, 240, 55, 200, 3, 81, 131, 196, 152, 249, 41, 79, 77, 23, 107, 62, 132, 223, 110, 143, 6, 162, 5, 135, 47, 241, 82, 158, 154, 46, 214, 124, 7, 189, 220, 29, 12, 67, 10, 13, 94, 225, 164, 59, 51, 92, 171, 248, 14, 121, 183, 58, 24, 134, 20, 26, 188, 193, 71, 118, 102, 184, 85, 239, 28, 242, 109, 116, 48, 11, 40, 52, 119, 129, 142, 236, 204, 111, 170, 221, 56, 227, 218, 232, 96, 22, 80, 104, 238, 1], -[1, 28, 13, 107, 169, 106, 141, 93, 34, 181, 185, 40, 92, 6, 168, 78, 128, 243, 122, 75, 44, 204, 58, 82, 240, 38, 36, 237, 211, 254, 173, 218, 193, 7, 196, 91, 235, 155, 228, 216, 137, 238, 239, 10, 23, 130, 42, 148, 32, 125, 159, 83, 11, 51, 143, 149, 60, 138, 9, 252, 117, 192, 236, 183, 241, 66, 49, 87, 123, 103, 57, 54, 227, 188, 124, 131, 70, 161, 139, 37, 8, 224, 104, 85, 67, 77, 100, 230, 15, 163, 195, 63, 222, 48, 59, 110, 253, 145, 205, 86, 95, 90, 207, 142, 121, 47, 31, 97, 146, 233, 99, 202, 2, 56, 26, 214, 81, 212, 25, 186, 68, 105, 113, 80, 184, 12, 79, 156, 256, 229, 244, 150, 88, 151, 116, 164, 223, 76, 72, 217, 165, 251, 89, 179, 129, 14, 135, 182, 213, 53, 199, 175, 17, 219, 221, 20, 46, 3, 84, 39, 64, 250, 61, 166, 22, 102, 29, 41, 120, 19, 18, 247, 234, 127, 215, 109, 225, 132, 98, 174, 246, 206, 114, 108, 197, 119, 248, 5, 140, 65, 21, 74, 16, 191, 208, 170, 134, 154, 200, 203, 30, 69, 133, 126, 187, 96, 118, 220, 249, 33, 153, 172, 190, 180, 157, 27, 242, 94, 62, 194, 35, 209, 198, 147, 4, 112, 52, 171, 162, 167, 50, 115, 136, 210, 226, 160, 111, 24, 158, 55, 255, 201, 231, 43, 176, 45, 232, 71, 189, 152, 144, 177, 73, 245, 178, 101, 1], -[1, 29, 70, 231, 17, 236, 162, 72, 32, 157, 184, 196, 30, 99, 44, 248, 253, 141, 234, 104, 189, 84, 123, 226, 129, 143, 35, 244, 137, 118, 81, 36, 16, 207, 92, 98, 15, 178, 22, 124, 255, 199, 117, 52, 223, 42, 190, 113, 193, 200, 146, 122, 197, 59, 169, 18, 8, 232, 46, 49, 136, 89, 11, 62, 256, 228, 187, 26, 240, 21, 95, 185, 225, 100, 73, 61, 227, 158, 213, 9, 4, 116, 23, 153, 68, 173, 134, 31, 128, 114, 222, 13, 120, 139, 176, 221, 241, 50, 165, 159, 242, 79, 235, 133, 2, 58, 140, 205, 34, 215, 67, 144, 64, 57, 111, 135, 60, 198, 88, 239, 249, 25, 211, 208, 121, 168, 246, 195, 1, 29, 70, 231, 17, 236, 162, 72, 32, 157, 184, 196, 30, 99, 44, 248, 253, 141, 234, 104, 189, 84, 123, 226, 129, 143, 35, 244, 137, 118, 81, 36, 16, 207, 92, 98, 15, 178, 22, 124, 255, 199, 117, 52, 223, 42, 190, 113, 193, 200, 146, 122, 197, 59, 169, 18, 8, 232, 46, 49, 136, 89, 11, 62, 256, 228, 187, 26, 240, 21, 95, 185, 225, 100, 73, 61, 227, 158, 213, 9, 4, 116, 23, 153, 68, 173, 134, 31, 128, 114, 222, 13, 120, 139, 176, 221, 241, 50, 165, 159, 242, 79, 235, 133, 2, 58, 140, 205, 34, 215, 67, 144, 64, 57, 111, 135, 60, 198, 88, 239, 249, 25, 211, 208, 121, 168, 246, 195, 1], -[1, 30, 129, 15, 193, 136, 225, 68, 241, 34, 249, 17, 253, 137, 255, 197, 256, 227, 128, 242, 64, 121, 32, 189, 16, 223, 8, 240, 4, 120, 2, 60, 1, 30, 129, 15, 193, 136, 225, 68, 241, 34, 249, 17, 253, 137, 255, 197, 256, 227, 128, 242, 64, 121, 32, 189, 16, 223, 8, 240, 4, 120, 2, 60, 1, 30, 129, 15, 193, 136, 225, 68, 241, 34, 249, 17, 253, 137, 255, 197, 256, 227, 128, 242, 64, 121, 32, 189, 16, 223, 8, 240, 4, 120, 2, 60, 1, 30, 129, 15, 193, 136, 225, 68, 241, 34, 249, 17, 253, 137, 255, 197, 256, 227, 128, 242, 64, 121, 32, 189, 16, 223, 8, 240, 4, 120, 2, 60, 1, 30, 129, 15, 193, 136, 225, 68, 241, 34, 249, 17, 253, 137, 255, 197, 256, 227, 128, 242, 64, 121, 32, 189, 16, 223, 8, 240, 4, 120, 2, 60, 1, 30, 129, 15, 193, 136, 225, 68, 241, 34, 249, 17, 253, 137, 255, 197, 256, 227, 128, 242, 64, 121, 32, 189, 16, 223, 8, 240, 4, 120, 2, 60, 1, 30, 129, 15, 193, 136, 225, 68, 241, 34, 249, 17, 253, 137, 255, 197, 256, 227, 128, 242, 64, 121, 32, 189, 16, 223, 8, 240, 4, 120, 2, 60, 1, 30, 129, 15, 193, 136, 225, 68, 241, 34, 249, 17, 253, 137, 255, 197, 256, 227, 128, 242, 64, 121, 32, 189, 16, 223, 8, 240, 4, 120, 2, 60, 1], -[1, 31, 190, 236, 120, 122, 184, 50, 8, 248, 235, 89, 189, 205, 187, 143, 64, 185, 81, 198, 227, 98, 211, 116, 255, 195, 134, 42, 17, 13, 146, 157, 241, 18, 44, 79, 136, 104, 140, 228, 129, 144, 95, 118, 60, 61, 92, 25, 4, 124, 246, 173, 223, 231, 222, 200, 32, 221, 169, 99, 242, 49, 234, 58, 256, 226, 67, 21, 137, 135, 73, 207, 249, 9, 22, 168, 68, 52, 70, 114, 193, 72, 176, 59, 30, 159, 46, 141, 2, 62, 123, 215, 240, 244, 111, 100, 16, 239, 213, 178, 121, 153, 117, 29, 128, 113, 162, 139, 197, 196, 165, 232, 253, 133, 11, 84, 34, 26, 35, 57, 225, 36, 88, 158, 15, 208, 23, 199, 1, 31, 190, 236, 120, 122, 184, 50, 8, 248, 235, 89, 189, 205, 187, 143, 64, 185, 81, 198, 227, 98, 211, 116, 255, 195, 134, 42, 17, 13, 146, 157, 241, 18, 44, 79, 136, 104, 140, 228, 129, 144, 95, 118, 60, 61, 92, 25, 4, 124, 246, 173, 223, 231, 222, 200, 32, 221, 169, 99, 242, 49, 234, 58, 256, 226, 67, 21, 137, 135, 73, 207, 249, 9, 22, 168, 68, 52, 70, 114, 193, 72, 176, 59, 30, 159, 46, 141, 2, 62, 123, 215, 240, 244, 111, 100, 16, 239, 213, 178, 121, 153, 117, 29, 128, 113, 162, 139, 197, 196, 165, 232, 253, 133, 11, 84, 34, 26, 35, 57, 225, 36, 88, 158, 15, 208, 23, 199, 1], -[1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1, 32, 253, 129, 16, 255, 193, 8, 256, 225, 4, 128, 241, 2, 64, 249, 1], -[1, 33, 61, 214, 123, 204, 50, 108, 223, 163, 239, 177, 187, 3, 99, 183, 128, 112, 98, 150, 67, 155, 232, 203, 17, 47, 9, 40, 35, 127, 79, 37, 193, 201, 208, 182, 95, 51, 141, 27, 120, 105, 124, 237, 111, 65, 89, 110, 32, 28, 153, 166, 81, 103, 58, 115, 197, 76, 195, 10, 73, 96, 84, 202, 241, 243, 52, 174, 88, 77, 228, 71, 30, 219, 31, 252, 92, 209, 215, 156, 8, 7, 231, 170, 213, 90, 143, 93, 242, 19, 113, 131, 211, 24, 21, 179, 253, 125, 13, 172, 22, 212, 57, 82, 136, 119, 72, 63, 23, 245, 118, 39, 2, 66, 122, 171, 246, 151, 100, 216, 189, 69, 221, 97, 117, 6, 198, 109, 256, 224, 196, 43, 134, 53, 207, 149, 34, 94, 18, 80, 70, 254, 158, 74, 129, 145, 159, 107, 190, 102, 25, 54, 240, 210, 248, 217, 222, 130, 178, 220, 64, 56, 49, 75, 162, 206, 116, 230, 137, 152, 133, 20, 146, 192, 168, 147, 225, 229, 104, 91, 176, 154, 199, 142, 60, 181, 62, 247, 184, 161, 173, 55, 16, 14, 205, 83, 169, 180, 29, 186, 227, 38, 226, 5, 165, 48, 42, 101, 249, 250, 26, 87, 44, 167, 114, 164, 15, 238, 144, 126, 46, 233, 236, 78, 4, 132, 244, 85, 235, 45, 200, 175, 121, 138, 185, 194, 234, 12, 139, 218, 255, 191, 135, 86, 11, 106, 157, 41, 68, 188, 36, 160, 140, 251, 59, 148, 1], -[1, 34, 128, 240, 193, 137, 32, 60, 241, 227, 8, 15, 253, 121, 2, 68, 256, 223, 129, 17, 64, 120, 225, 197, 16, 30, 249, 242, 4, 136, 255, 189, 1, 34, 128, 240, 193, 137, 32, 60, 241, 227, 8, 15, 253, 121, 2, 68, 256, 223, 129, 17, 64, 120, 225, 197, 16, 30, 249, 242, 4, 136, 255, 189, 1, 34, 128, 240, 193, 137, 32, 60, 241, 227, 8, 15, 253, 121, 2, 68, 256, 223, 129, 17, 64, 120, 225, 197, 16, 30, 249, 242, 4, 136, 255, 189, 1, 34, 128, 240, 193, 137, 32, 60, 241, 227, 8, 15, 253, 121, 2, 68, 256, 223, 129, 17, 64, 120, 225, 197, 16, 30, 249, 242, 4, 136, 255, 189, 1, 34, 128, 240, 193, 137, 32, 60, 241, 227, 8, 15, 253, 121, 2, 68, 256, 223, 129, 17, 64, 120, 225, 197, 16, 30, 249, 242, 4, 136, 255, 189, 1, 34, 128, 240, 193, 137, 32, 60, 241, 227, 8, 15, 253, 121, 2, 68, 256, 223, 129, 17, 64, 120, 225, 197, 16, 30, 249, 242, 4, 136, 255, 189, 1, 34, 128, 240, 193, 137, 32, 60, 241, 227, 8, 15, 253, 121, 2, 68, 256, 223, 129, 17, 64, 120, 225, 197, 16, 30, 249, 242, 4, 136, 255, 189, 1, 34, 128, 240, 193, 137, 32, 60, 241, 227, 8, 15, 253, 121, 2, 68, 256, 223, 129, 17, 64, 120, 225, 197, 16, 30, 249, 242, 4, 136, 255, 189, 1], -[1, 35, 197, 213, 2, 70, 137, 169, 4, 140, 17, 81, 8, 23, 34, 162, 16, 46, 68, 67, 32, 92, 136, 134, 64, 184, 15, 11, 128, 111, 30, 22, 256, 222, 60, 44, 255, 187, 120, 88, 253, 117, 240, 176, 249, 234, 223, 95, 241, 211, 189, 190, 225, 165, 121, 123, 193, 73, 242, 246, 129, 146, 227, 235, 1, 35, 197, 213, 2, 70, 137, 169, 4, 140, 17, 81, 8, 23, 34, 162, 16, 46, 68, 67, 32, 92, 136, 134, 64, 184, 15, 11, 128, 111, 30, 22, 256, 222, 60, 44, 255, 187, 120, 88, 253, 117, 240, 176, 249, 234, 223, 95, 241, 211, 189, 190, 225, 165, 121, 123, 193, 73, 242, 246, 129, 146, 227, 235, 1, 35, 197, 213, 2, 70, 137, 169, 4, 140, 17, 81, 8, 23, 34, 162, 16, 46, 68, 67, 32, 92, 136, 134, 64, 184, 15, 11, 128, 111, 30, 22, 256, 222, 60, 44, 255, 187, 120, 88, 253, 117, 240, 176, 249, 234, 223, 95, 241, 211, 189, 190, 225, 165, 121, 123, 193, 73, 242, 246, 129, 146, 227, 235, 1, 35, 197, 213, 2, 70, 137, 169, 4, 140, 17, 81, 8, 23, 34, 162, 16, 46, 68, 67, 32, 92, 136, 134, 64, 184, 15, 11, 128, 111, 30, 22, 256, 222, 60, 44, 255, 187, 120, 88, 253, 117, 240, 176, 249, 234, 223, 95, 241, 211, 189, 190, 225, 165, 121, 123, 193, 73, 242, 246, 129, 146, 227, 235, 1], -[1, 36, 11, 139, 121, 244, 46, 114, 249, 226, 169, 173, 60, 104, 146, 116, 64, 248, 190, 158, 34, 196, 117, 100, 2, 72, 22, 21, 242, 231, 92, 228, 241, 195, 81, 89, 120, 208, 35, 232, 128, 239, 123, 59, 68, 135, 234, 200, 4, 144, 44, 42, 227, 205, 184, 199, 225, 133, 162, 178, 240, 159, 70, 207, 256, 221, 246, 118, 136, 13, 211, 143, 8, 31, 88, 84, 197, 153, 111, 141, 193, 9, 67, 99, 223, 61, 140, 157, 255, 185, 235, 236, 15, 26, 165, 29, 16, 62, 176, 168, 137, 49, 222, 25, 129, 18, 134, 198, 189, 122, 23, 57, 253, 113, 213, 215, 30, 52, 73, 58, 32, 124, 95, 79, 17, 98, 187, 50, 1, 36, 11, 139, 121, 244, 46, 114, 249, 226, 169, 173, 60, 104, 146, 116, 64, 248, 190, 158, 34, 196, 117, 100, 2, 72, 22, 21, 242, 231, 92, 228, 241, 195, 81, 89, 120, 208, 35, 232, 128, 239, 123, 59, 68, 135, 234, 200, 4, 144, 44, 42, 227, 205, 184, 199, 225, 133, 162, 178, 240, 159, 70, 207, 256, 221, 246, 118, 136, 13, 211, 143, 8, 31, 88, 84, 197, 153, 111, 141, 193, 9, 67, 99, 223, 61, 140, 157, 255, 185, 235, 236, 15, 26, 165, 29, 16, 62, 176, 168, 137, 49, 222, 25, 129, 18, 134, 198, 189, 122, 23, 57, 253, 113, 213, 215, 30, 52, 73, 58, 32, 124, 95, 79, 17, 98, 187, 50, 1], -[1, 37, 84, 24, 117, 217, 62, 238, 68, 203, 58, 90, 246, 107, 104, 250, 255, 183, 89, 209, 23, 80, 133, 38, 121, 108, 141, 77, 22, 43, 49, 14, 4, 148, 79, 96, 211, 97, 248, 181, 15, 41, 232, 103, 213, 171, 159, 229, 249, 218, 99, 65, 92, 63, 18, 152, 227, 175, 50, 51, 88, 172, 196, 56, 16, 78, 59, 127, 73, 131, 221, 210, 60, 164, 157, 155, 81, 170, 122, 145, 225, 101, 139, 3, 111, 252, 72, 94, 137, 186, 200, 204, 95, 174, 13, 224, 64, 55, 236, 251, 35, 10, 113, 69, 240, 142, 114, 106, 67, 166, 231, 66, 129, 147, 42, 12, 187, 237, 31, 119, 34, 230, 29, 45, 123, 182, 52, 125, 256, 220, 173, 233, 140, 40, 195, 19, 189, 54, 199, 167, 11, 150, 153, 7, 2, 74, 168, 48, 234, 177, 124, 219, 136, 149, 116, 180, 235, 214, 208, 243, 253, 109, 178, 161, 46, 160, 9, 76, 242, 216, 25, 154, 44, 86, 98, 28, 8, 39, 158, 192, 165, 194, 239, 105, 30, 82, 207, 206, 169, 85, 61, 201, 241, 179, 198, 130, 184, 126, 36, 47, 197, 93, 100, 102, 176, 87, 135, 112, 32, 156, 118, 254, 146, 5, 185, 163, 120, 71, 57, 53, 162, 83, 244, 33, 193, 202, 21, 6, 222, 247, 144, 188, 17, 115, 143, 151, 190, 91, 26, 191, 128, 110, 215, 245, 70, 20, 226, 138, 223, 27, 228, 212, 134, 75, 205, 132, 1], -[1, 38, 159, 131, 95, 12, 199, 109, 30, 112, 144, 75, 23, 103, 59, 186, 129, 19, 208, 194, 176, 6, 228, 183, 15, 56, 72, 166, 140, 180, 158, 93, 193, 138, 104, 97, 88, 3, 114, 220, 136, 28, 36, 83, 70, 90, 79, 175, 225, 69, 52, 177, 44, 130, 57, 110, 68, 14, 18, 170, 35, 45, 168, 216, 241, 163, 26, 217, 22, 65, 157, 55, 34, 7, 9, 85, 146, 151, 84, 108, 249, 210, 13, 237, 11, 161, 207, 156, 17, 132, 133, 171, 73, 204, 42, 54, 253, 105, 135, 247, 134, 209, 232, 78, 137, 66, 195, 214, 165, 102, 21, 27, 255, 181, 196, 252, 67, 233, 116, 39, 197, 33, 226, 107, 211, 51, 139, 142, 256, 219, 98, 126, 162, 245, 58, 148, 227, 145, 113, 182, 234, 154, 198, 71, 128, 238, 49, 63, 81, 251, 29, 74, 242, 201, 185, 91, 117, 77, 99, 164, 64, 119, 153, 160, 169, 254, 143, 37, 121, 229, 221, 174, 187, 167, 178, 82, 32, 188, 205, 80, 213, 127, 200, 147, 189, 243, 239, 87, 222, 212, 89, 41, 16, 94, 231, 40, 235, 192, 100, 202, 223, 250, 248, 172, 111, 106, 173, 149, 8, 47, 244, 20, 246, 96, 50, 101, 240, 125, 124, 86, 184, 53, 215, 203, 4, 152, 122, 10, 123, 48, 25, 179, 120, 191, 62, 43, 92, 155, 236, 230, 2, 76, 61, 5, 190, 24, 141, 218, 60, 224, 31, 150, 46, 206, 118, 115, 1], -[1, 39, 236, 209, 184, 237, 248, 163, 189, 175, 143, 180, 81, 75, 98, 224, 255, 179, 42, 96, 146, 40, 18, 188, 136, 164, 228, 154, 95, 107, 61, 66, 4, 156, 173, 65, 222, 177, 221, 138, 242, 186, 58, 206, 67, 43, 135, 125, 249, 202, 168, 127, 70, 160, 72, 238, 30, 142, 141, 102, 123, 171, 244, 7, 16, 110, 178, 3, 117, 194, 113, 38, 197, 230, 232, 53, 11, 172, 26, 243, 225, 37, 158, 251, 23, 126, 31, 181, 120, 54, 50, 151, 235, 170, 205, 28, 64, 183, 198, 12, 211, 5, 195, 152, 17, 149, 157, 212, 44, 174, 104, 201, 129, 148, 118, 233, 92, 247, 124, 210, 223, 216, 200, 90, 169, 166, 49, 112, 256, 218, 21, 48, 73, 20, 9, 94, 68, 82, 114, 77, 176, 182, 159, 33, 2, 78, 215, 161, 111, 217, 239, 69, 121, 93, 29, 103, 162, 150, 196, 191, 253, 101, 84, 192, 35, 80, 36, 119, 15, 71, 199, 51, 190, 214, 122, 132, 8, 55, 89, 130, 187, 97, 185, 19, 227, 115, 116, 155, 134, 86, 13, 250, 241, 147, 79, 254, 140, 63, 144, 219, 60, 27, 25, 204, 246, 85, 231, 14, 32, 220, 99, 6, 234, 131, 226, 76, 137, 203, 207, 106, 22, 87, 52, 229, 193, 74, 59, 245, 46, 252, 62, 105, 240, 108, 100, 45, 213, 83, 153, 56, 128, 109, 139, 24, 165, 10, 133, 47, 34, 41, 57, 167, 88, 91, 208, 145, 1], -[1, 40, 58, 7, 23, 149, 49, 161, 15, 86, 99, 105, 88, 179, 221, 102, 225, 5, 200, 33, 35, 115, 231, 245, 34, 75, 173, 238, 11, 183, 124, 77, 253, 97, 25, 229, 165, 175, 61, 127, 197, 170, 118, 94, 162, 55, 144, 106, 128, 237, 228, 125, 117, 54, 104, 48, 121, 214, 79, 76, 213, 39, 18, 206, 16, 126, 157, 112, 111, 71, 13, 6, 240, 91, 42, 138, 123, 37, 195, 90, 2, 80, 116, 14, 46, 41, 98, 65, 30, 172, 198, 210, 176, 101, 185, 204, 193, 10, 143, 66, 70, 230, 205, 233, 68, 150, 89, 219, 22, 109, 248, 154, 249, 194, 50, 201, 73, 93, 122, 254, 137, 83, 236, 188, 67, 110, 31, 212, 256, 217, 199, 250, 234, 108, 208, 96, 242, 171, 158, 152, 169, 78, 36, 155, 32, 252, 57, 224, 222, 142, 26, 12, 223, 182, 84, 19, 246, 74, 133, 180, 4, 160, 232, 28, 92, 82, 196, 130, 60, 87, 139, 163, 95, 202, 113, 151, 129, 20, 29, 132, 140, 203, 153, 209, 136, 43, 178, 181, 44, 218, 239, 51, 241, 131, 100, 145, 146, 186, 244, 251, 17, 166, 215, 119, 134, 220, 62, 167, 255, 177, 141, 243, 211, 216, 159, 192, 227, 85, 59, 47, 81, 156, 72, 53, 64, 247, 114, 191, 187, 27, 52, 24, 189, 107, 168, 38, 235, 148, 9, 103, 8, 63, 207, 56, 184, 164, 135, 3, 120, 174, 21, 69, 190, 147, 226, 45, 1], -[1, 41, 139, 45, 46, 87, 226, 14, 60, 147, 116, 130, 190, 80, 196, 69, 2, 82, 21, 90, 92, 174, 195, 28, 120, 37, 232, 3, 123, 160, 135, 138, 4, 164, 42, 180, 184, 91, 133, 56, 240, 74, 207, 6, 246, 63, 13, 19, 8, 71, 84, 103, 111, 182, 9, 112, 223, 148, 157, 12, 235, 126, 26, 38, 16, 142, 168, 206, 222, 107, 18, 224, 189, 39, 57, 24, 213, 252, 52, 76, 32, 27, 79, 155, 187, 214, 36, 191, 121, 78, 114, 48, 169, 247, 104, 152, 64, 54, 158, 53, 117, 171, 72, 125, 242, 156, 228, 96, 81, 237, 208, 47, 128, 108, 59, 106, 234, 85, 144, 250, 227, 55, 199, 192, 162, 217, 159, 94, 256, 216, 118, 212, 211, 170, 31, 243, 197, 110, 141, 127, 67, 177, 61, 188, 255, 175, 236, 167, 165, 83, 62, 229, 137, 220, 25, 254, 134, 97, 122, 119, 253, 93, 215, 77, 73, 166, 124, 201, 17, 183, 50, 251, 11, 194, 244, 238, 249, 186, 173, 154, 146, 75, 248, 145, 34, 109, 100, 245, 22, 131, 231, 219, 241, 115, 89, 51, 35, 150, 239, 33, 68, 218, 200, 233, 44, 5, 205, 181, 225, 230, 178, 102, 70, 43, 221, 66, 136, 179, 143, 209, 88, 10, 153, 105, 193, 203, 99, 204, 140, 86, 185, 132, 15, 101, 29, 161, 176, 20, 49, 210, 129, 149, 198, 151, 23, 172, 113, 7, 30, 202, 58, 65, 95, 40, 98, 163, 1], -[1, 42, 222, 72, 197, 50, 44, 49, 2, 84, 187, 144, 137, 100, 88, 98, 4, 168, 117, 31, 17, 200, 176, 196, 8, 79, 234, 62, 34, 143, 95, 135, 16, 158, 211, 124, 68, 29, 190, 13, 32, 59, 165, 248, 136, 58, 123, 26, 64, 118, 73, 239, 15, 116, 246, 52, 128, 236, 146, 221, 30, 232, 235, 104, 256, 215, 35, 185, 60, 207, 213, 208, 255, 173, 70, 113, 120, 157, 169, 159, 253, 89, 140, 226, 240, 57, 81, 61, 249, 178, 23, 195, 223, 114, 162, 122, 241, 99, 46, 133, 189, 228, 67, 244, 225, 198, 92, 9, 121, 199, 134, 231, 193, 139, 184, 18, 242, 141, 11, 205, 129, 21, 111, 36, 227, 25, 22, 153, 1, 42, 222, 72, 197, 50, 44, 49, 2, 84, 187, 144, 137, 100, 88, 98, 4, 168, 117, 31, 17, 200, 176, 196, 8, 79, 234, 62, 34, 143, 95, 135, 16, 158, 211, 124, 68, 29, 190, 13, 32, 59, 165, 248, 136, 58, 123, 26, 64, 118, 73, 239, 15, 116, 246, 52, 128, 236, 146, 221, 30, 232, 235, 104, 256, 215, 35, 185, 60, 207, 213, 208, 255, 173, 70, 113, 120, 157, 169, 159, 253, 89, 140, 226, 240, 57, 81, 61, 249, 178, 23, 195, 223, 114, 162, 122, 241, 99, 46, 133, 189, 228, 67, 244, 225, 198, 92, 9, 121, 199, 134, 231, 193, 139, 184, 18, 242, 141, 11, 205, 129, 21, 111, 36, 227, 25, 22, 153, 1], -[1, 43, 50, 94, 187, 74, 98, 102, 17, 217, 79, 56, 95, 230, 124, 192, 32, 91, 58, 181, 73, 55, 52, 180, 30, 5, 215, 250, 213, 164, 113, 233, 253, 85, 57, 138, 23, 218, 122, 106, 189, 160, 198, 33, 134, 108, 18, 3, 129, 150, 25, 47, 222, 37, 49, 51, 137, 237, 168, 28, 176, 115, 62, 96, 16, 174, 29, 219, 165, 156, 26, 90, 15, 131, 236, 125, 235, 82, 185, 245, 255, 171, 157, 69, 140, 109, 61, 53, 223, 80, 99, 145, 67, 54, 9, 130, 193, 75, 141, 152, 111, 147, 153, 154, 197, 247, 84, 14, 88, 186, 31, 48, 8, 87, 143, 238, 211, 78, 13, 45, 136, 194, 118, 191, 246, 41, 221, 251, 256, 214, 207, 163, 70, 183, 159, 155, 240, 40, 178, 201, 162, 27, 133, 65, 225, 166, 199, 76, 184, 202, 205, 77, 227, 252, 42, 7, 44, 93, 144, 24, 4, 172, 200, 119, 234, 39, 135, 151, 68, 97, 59, 224, 123, 149, 239, 254, 128, 107, 232, 210, 35, 220, 208, 206, 120, 20, 89, 229, 81, 142, 195, 161, 241, 83, 228, 38, 92, 101, 231, 167, 242, 126, 21, 132, 22, 175, 72, 12, 2, 86, 100, 188, 117, 148, 196, 204, 34, 177, 158, 112, 190, 203, 248, 127, 64, 182, 116, 105, 146, 110, 104, 103, 60, 10, 173, 243, 169, 71, 226, 209, 249, 170, 114, 19, 46, 179, 244, 212, 121, 63, 139, 66, 11, 216, 36, 6, 1], -[1, 44, 137, 117, 8, 95, 68, 165, 64, 246, 30, 35, 255, 169, 240, 23, 241, 67, 121, 184, 129, 22, 197, 187, 4, 176, 34, 211, 32, 123, 15, 146, 256, 213, 120, 140, 249, 162, 189, 92, 193, 11, 227, 222, 2, 88, 17, 234, 16, 190, 136, 73, 128, 235, 60, 70, 253, 81, 223, 46, 225, 134, 242, 111, 1, 44, 137, 117, 8, 95, 68, 165, 64, 246, 30, 35, 255, 169, 240, 23, 241, 67, 121, 184, 129, 22, 197, 187, 4, 176, 34, 211, 32, 123, 15, 146, 256, 213, 120, 140, 249, 162, 189, 92, 193, 11, 227, 222, 2, 88, 17, 234, 16, 190, 136, 73, 128, 235, 60, 70, 253, 81, 223, 46, 225, 134, 242, 111, 1, 44, 137, 117, 8, 95, 68, 165, 64, 246, 30, 35, 255, 169, 240, 23, 241, 67, 121, 184, 129, 22, 197, 187, 4, 176, 34, 211, 32, 123, 15, 146, 256, 213, 120, 140, 249, 162, 189, 92, 193, 11, 227, 222, 2, 88, 17, 234, 16, 190, 136, 73, 128, 235, 60, 70, 253, 81, 223, 46, 225, 134, 242, 111, 1, 44, 137, 117, 8, 95, 68, 165, 64, 246, 30, 35, 255, 169, 240, 23, 241, 67, 121, 184, 129, 22, 197, 187, 4, 176, 34, 211, 32, 123, 15, 146, 256, 213, 120, 140, 249, 162, 189, 92, 193, 11, 227, 222, 2, 88, 17, 234, 16, 190, 136, 73, 128, 235, 60, 70, 253, 81, 223, 46, 225, 134, 242, 111, 1], -[1, 45, 226, 147, 190, 69, 21, 174, 120, 3, 135, 164, 184, 56, 207, 63, 8, 103, 9, 148, 235, 38, 168, 107, 189, 24, 52, 27, 187, 191, 114, 247, 64, 53, 72, 156, 81, 47, 59, 85, 227, 192, 159, 216, 211, 243, 141, 177, 255, 167, 62, 220, 134, 119, 215, 166, 17, 251, 244, 186, 146, 145, 100, 131, 241, 51, 239, 218, 44, 181, 178, 43, 136, 209, 153, 203, 140, 132, 29, 20, 129, 151, 113, 202, 95, 163, 139, 87, 60, 130, 196, 82, 92, 28, 232, 160, 4, 180, 133, 74, 246, 19, 84, 182, 223, 12, 26, 142, 222, 224, 57, 252, 32, 155, 36, 78, 169, 152, 158, 171, 242, 96, 208, 108, 234, 250, 199, 217, 256, 212, 31, 110, 67, 188, 236, 83, 137, 254, 122, 93, 73, 201, 50, 194, 249, 154, 248, 109, 22, 219, 89, 150, 68, 233, 205, 230, 70, 66, 143, 10, 193, 204, 185, 101, 176, 210, 198, 172, 30, 65, 98, 41, 46, 14, 116, 80, 2, 90, 195, 37, 123, 138, 42, 91, 240, 6, 13, 71, 111, 112, 157, 126, 16, 206, 18, 39, 213, 76, 79, 214, 121, 48, 104, 54, 117, 125, 228, 237, 128, 106, 144, 55, 162, 94, 118, 170, 197, 127, 61, 175, 165, 229, 25, 97, 253, 77, 124, 183, 11, 238, 173, 75, 34, 245, 231, 115, 35, 33, 200, 5, 225, 102, 221, 179, 88, 105, 99, 86, 15, 161, 49, 149, 23, 7, 58, 40, 1], -[1, 46, 60, 190, 2, 92, 120, 123, 4, 184, 240, 246, 8, 111, 223, 235, 16, 222, 189, 213, 32, 187, 121, 169, 64, 117, 242, 81, 128, 234, 227, 162, 256, 211, 197, 67, 255, 165, 137, 134, 253, 73, 17, 11, 249, 146, 34, 22, 241, 35, 68, 44, 225, 70, 136, 88, 193, 140, 15, 176, 129, 23, 30, 95, 1, 46, 60, 190, 2, 92, 120, 123, 4, 184, 240, 246, 8, 111, 223, 235, 16, 222, 189, 213, 32, 187, 121, 169, 64, 117, 242, 81, 128, 234, 227, 162, 256, 211, 197, 67, 255, 165, 137, 134, 253, 73, 17, 11, 249, 146, 34, 22, 241, 35, 68, 44, 225, 70, 136, 88, 193, 140, 15, 176, 129, 23, 30, 95, 1, 46, 60, 190, 2, 92, 120, 123, 4, 184, 240, 246, 8, 111, 223, 235, 16, 222, 189, 213, 32, 187, 121, 169, 64, 117, 242, 81, 128, 234, 227, 162, 256, 211, 197, 67, 255, 165, 137, 134, 253, 73, 17, 11, 249, 146, 34, 22, 241, 35, 68, 44, 225, 70, 136, 88, 193, 140, 15, 176, 129, 23, 30, 95, 1, 46, 60, 190, 2, 92, 120, 123, 4, 184, 240, 246, 8, 111, 223, 235, 16, 222, 189, 213, 32, 187, 121, 169, 64, 117, 242, 81, 128, 234, 227, 162, 256, 211, 197, 67, 255, 165, 137, 134, 253, 73, 17, 11, 249, 146, 34, 22, 241, 35, 68, 44, 225, 70, 136, 88, 193, 140, 15, 176, 129, 23, 30, 95, 1], -[1, 47, 153, 252, 22, 6, 25, 147, 227, 132, 36, 150, 111, 77, 21, 216, 129, 152, 205, 126, 11, 3, 141, 202, 242, 66, 18, 75, 184, 167, 139, 108, 193, 76, 231, 63, 134, 130, 199, 101, 121, 33, 9, 166, 92, 212, 198, 54, 225, 38, 244, 160, 67, 65, 228, 179, 189, 145, 133, 83, 46, 106, 99, 27, 241, 19, 122, 80, 162, 161, 114, 218, 223, 201, 195, 170, 23, 53, 178, 142, 249, 138, 61, 40, 81, 209, 57, 109, 240, 229, 226, 85, 140, 155, 89, 71, 253, 69, 159, 20, 169, 233, 157, 183, 120, 243, 113, 171, 70, 206, 173, 164, 255, 163, 208, 10, 213, 245, 207, 220, 60, 250, 185, 214, 35, 103, 215, 82, 256, 210, 104, 5, 235, 251, 232, 110, 30, 125, 221, 107, 146, 180, 236, 41, 128, 105, 52, 131, 246, 254, 116, 55, 15, 191, 239, 182, 73, 90, 118, 149, 64, 181, 26, 194, 123, 127, 58, 156, 136, 224, 248, 91, 165, 45, 59, 203, 32, 219, 13, 97, 190, 192, 29, 78, 68, 112, 124, 174, 211, 151, 158, 230, 16, 238, 135, 177, 95, 96, 143, 39, 34, 56, 62, 87, 234, 204, 79, 115, 8, 119, 196, 217, 176, 48, 200, 148, 17, 28, 31, 172, 117, 102, 168, 186, 4, 188, 98, 237, 88, 24, 100, 74, 137, 14, 144, 86, 187, 51, 84, 93, 2, 94, 49, 247, 44, 12, 50, 37, 197, 7, 72, 43, 222, 154, 42, 175, 1], -[1, 48, 248, 82, 81, 33, 42, 217, 136, 103, 61, 101, 222, 119, 58, 214, 249, 130, 72, 115, 123, 250, 178, 63, 197, 204, 26, 220, 23, 76, 50, 87, 64, 245, 195, 108, 44, 56, 118, 10, 223, 167, 49, 39, 73, 163, 114, 75, 2, 96, 239, 164, 162, 66, 84, 177, 15, 206, 122, 202, 187, 238, 116, 171, 241, 3, 144, 230, 246, 243, 99, 126, 137, 151, 52, 183, 46, 152, 100, 174, 128, 233, 133, 216, 88, 112, 236, 20, 189, 77, 98, 78, 146, 69, 228, 150, 4, 192, 221, 71, 67, 132, 168, 97, 30, 155, 244, 147, 117, 219, 232, 85, 225, 6, 31, 203, 235, 229, 198, 252, 17, 45, 104, 109, 92, 47, 200, 91, 256, 209, 9, 175, 176, 224, 215, 40, 121, 154, 196, 156, 35, 138, 199, 43, 8, 127, 185, 142, 134, 7, 79, 194, 60, 53, 231, 37, 234, 181, 207, 170, 193, 12, 62, 149, 213, 201, 139, 247, 34, 90, 208, 218, 184, 94, 143, 182, 255, 161, 18, 93, 95, 191, 173, 80, 242, 51, 135, 55, 70, 19, 141, 86, 16, 254, 113, 27, 11, 14, 158, 131, 120, 106, 205, 74, 211, 105, 157, 83, 129, 24, 124, 41, 169, 145, 21, 237, 68, 180, 159, 179, 111, 188, 29, 107, 253, 65, 36, 186, 190, 125, 89, 160, 227, 102, 13, 110, 140, 38, 25, 172, 32, 251, 226, 54, 22, 28, 59, 5, 240, 212, 153, 148, 165, 210, 57, 166, 1], -[1, 49, 88, 200, 34, 124, 165, 118, 128, 104, 213, 157, 240, 195, 46, 198, 193, 205, 22, 50, 137, 31, 234, 158, 32, 26, 246, 232, 60, 113, 140, 178, 241, 244, 134, 141, 227, 72, 187, 168, 8, 135, 190, 58, 15, 221, 35, 173, 253, 61, 162, 228, 121, 18, 111, 42, 2, 98, 176, 143, 68, 248, 73, 236, 256, 208, 169, 57, 223, 133, 92, 139, 129, 153, 44, 100, 17, 62, 211, 59, 64, 52, 235, 207, 120, 226, 23, 99, 225, 231, 11, 25, 197, 144, 117, 79, 16, 13, 123, 116, 30, 185, 70, 89, 249, 122, 67, 199, 242, 36, 222, 84, 4, 196, 95, 29, 136, 239, 146, 215, 255, 159, 81, 114, 189, 9, 184, 21, 1, 49, 88, 200, 34, 124, 165, 118, 128, 104, 213, 157, 240, 195, 46, 198, 193, 205, 22, 50, 137, 31, 234, 158, 32, 26, 246, 232, 60, 113, 140, 178, 241, 244, 134, 141, 227, 72, 187, 168, 8, 135, 190, 58, 15, 221, 35, 173, 253, 61, 162, 228, 121, 18, 111, 42, 2, 98, 176, 143, 68, 248, 73, 236, 256, 208, 169, 57, 223, 133, 92, 139, 129, 153, 44, 100, 17, 62, 211, 59, 64, 52, 235, 207, 120, 226, 23, 99, 225, 231, 11, 25, 197, 144, 117, 79, 16, 13, 123, 116, 30, 185, 70, 89, 249, 122, 67, 199, 242, 36, 222, 84, 4, 196, 95, 29, 136, 239, 146, 215, 255, 159, 81, 114, 189, 9, 184, 21, 1], -[1, 50, 187, 98, 17, 79, 95, 124, 32, 58, 73, 52, 30, 215, 213, 113, 253, 57, 23, 122, 189, 198, 134, 18, 129, 25, 222, 49, 137, 168, 176, 62, 16, 29, 165, 26, 15, 236, 235, 185, 255, 157, 140, 61, 223, 99, 67, 9, 193, 141, 111, 153, 197, 84, 88, 31, 8, 143, 211, 13, 136, 118, 246, 221, 256, 207, 70, 159, 240, 178, 162, 133, 225, 199, 184, 205, 227, 42, 44, 144, 4, 200, 234, 135, 68, 59, 123, 239, 128, 232, 35, 208, 120, 89, 81, 195, 241, 228, 92, 231, 242, 21, 22, 72, 2, 100, 117, 196, 34, 158, 190, 248, 64, 116, 146, 104, 60, 173, 169, 226, 249, 114, 46, 244, 121, 139, 11, 36, 1, 50, 187, 98, 17, 79, 95, 124, 32, 58, 73, 52, 30, 215, 213, 113, 253, 57, 23, 122, 189, 198, 134, 18, 129, 25, 222, 49, 137, 168, 176, 62, 16, 29, 165, 26, 15, 236, 235, 185, 255, 157, 140, 61, 223, 99, 67, 9, 193, 141, 111, 153, 197, 84, 88, 31, 8, 143, 211, 13, 136, 118, 246, 221, 256, 207, 70, 159, 240, 178, 162, 133, 225, 199, 184, 205, 227, 42, 44, 144, 4, 200, 234, 135, 68, 59, 123, 239, 128, 232, 35, 208, 120, 89, 81, 195, 241, 228, 92, 231, 242, 21, 22, 72, 2, 100, 117, 196, 34, 158, 190, 248, 64, 116, 146, 104, 60, 173, 169, 226, 249, 114, 46, 244, 121, 139, 11, 36, 1], -[1, 51, 31, 39, 190, 181, 236, 214, 120, 209, 122, 54, 184, 132, 50, 237, 8, 151, 248, 55, 235, 163, 89, 170, 189, 130, 205, 175, 187, 28, 143, 97, 64, 180, 185, 183, 81, 19, 198, 75, 227, 12, 98, 115, 211, 224, 116, 5, 255, 155, 195, 179, 134, 152, 42, 86, 17, 96, 13, 149, 146, 250, 157, 40, 241, 212, 18, 147, 44, 188, 79, 174, 136, 254, 104, 164, 140, 201, 228, 63, 129, 154, 144, 148, 95, 219, 118, 107, 60, 233, 61, 27, 92, 66, 25, 247, 4, 204, 124, 156, 246, 210, 173, 85, 223, 65, 231, 216, 222, 14, 200, 177, 32, 90, 221, 220, 169, 138, 99, 166, 242, 6, 49, 186, 234, 112, 58, 131, 256, 206, 226, 218, 67, 76, 21, 43, 137, 48, 135, 203, 73, 125, 207, 20, 249, 106, 9, 202, 22, 94, 168, 87, 68, 127, 52, 82, 70, 229, 114, 160, 193, 77, 72, 74, 176, 238, 59, 182, 30, 245, 159, 142, 46, 33, 141, 252, 2, 102, 62, 78, 123, 105, 215, 171, 240, 161, 244, 108, 111, 7, 100, 217, 16, 45, 239, 110, 213, 69, 178, 83, 121, 3, 153, 93, 117, 56, 29, 194, 128, 103, 113, 109, 162, 38, 139, 150, 197, 24, 196, 230, 165, 191, 232, 10, 253, 53, 133, 101, 11, 47, 84, 172, 34, 192, 26, 41, 35, 243, 57, 80, 225, 167, 36, 37, 88, 119, 158, 91, 15, 251, 208, 71, 23, 145, 199, 126, 1], -[1, 52, 134, 29, 223, 31, 70, 42, 128, 231, 190, 114, 17, 113, 222, 236, 193, 13, 162, 200, 120, 72, 146, 139, 32, 122, 176, 157, 197, 221, 184, 59, 241, 196, 169, 50, 30, 18, 165, 99, 8, 159, 44, 232, 242, 248, 46, 79, 253, 49, 235, 141, 136, 133, 234, 89, 2, 104, 11, 58, 189, 62, 140, 84, 256, 205, 123, 228, 34, 226, 187, 215, 129, 26, 67, 143, 240, 144, 35, 21, 64, 244, 95, 57, 137, 185, 111, 118, 225, 135, 81, 100, 60, 36, 73, 198, 16, 61, 88, 207, 227, 239, 92, 158, 249, 98, 213, 25, 15, 9, 211, 178, 4, 208, 22, 116, 121, 124, 23, 168, 255, 153, 246, 199, 68, 195, 117, 173, 1, 52, 134, 29, 223, 31, 70, 42, 128, 231, 190, 114, 17, 113, 222, 236, 193, 13, 162, 200, 120, 72, 146, 139, 32, 122, 176, 157, 197, 221, 184, 59, 241, 196, 169, 50, 30, 18, 165, 99, 8, 159, 44, 232, 242, 248, 46, 79, 253, 49, 235, 141, 136, 133, 234, 89, 2, 104, 11, 58, 189, 62, 140, 84, 256, 205, 123, 228, 34, 226, 187, 215, 129, 26, 67, 143, 240, 144, 35, 21, 64, 244, 95, 57, 137, 185, 111, 118, 225, 135, 81, 100, 60, 36, 73, 198, 16, 61, 88, 207, 227, 239, 92, 158, 249, 98, 213, 25, 15, 9, 211, 178, 4, 208, 22, 116, 121, 124, 23, 168, 255, 153, 246, 199, 68, 195, 117, 173, 1], -[1, 53, 239, 74, 67, 210, 79, 75, 120, 192, 153, 142, 73, 14, 228, 5, 8, 167, 113, 78, 22, 138, 118, 86, 189, 251, 196, 108, 70, 112, 25, 40, 64, 51, 133, 110, 176, 76, 173, 174, 227, 209, 26, 93, 46, 125, 200, 63, 255, 151, 36, 109, 123, 94, 99, 107, 17, 130, 208, 230, 111, 229, 58, 247, 241, 180, 31, 101, 213, 238, 21, 85, 136, 12, 122, 41, 117, 33, 207, 177, 129, 155, 248, 37, 162, 105, 168, 166, 60, 96, 205, 71, 165, 7, 114, 131, 4, 212, 185, 39, 11, 69, 59, 43, 223, 254, 98, 54, 35, 56, 141, 20, 32, 154, 195, 55, 88, 38, 215, 87, 242, 233, 13, 175, 23, 191, 100, 160, 256, 204, 18, 183, 190, 47, 178, 182, 137, 65, 104, 115, 184, 243, 29, 252, 249, 90, 144, 179, 235, 119, 139, 171, 68, 6, 61, 149, 187, 145, 232, 217, 193, 206, 124, 147, 81, 181, 84, 83, 30, 48, 231, 164, 211, 132, 57, 194, 2, 106, 221, 148, 134, 163, 158, 150, 240, 127, 49, 27, 146, 28, 199, 10, 16, 77, 226, 156, 44, 19, 236, 172, 121, 245, 135, 216, 140, 224, 50, 80, 128, 102, 9, 220, 95, 152, 89, 91, 197, 161, 52, 186, 92, 250, 143, 126, 253, 45, 72, 218, 246, 188, 198, 214, 34, 3, 159, 203, 222, 201, 116, 237, 225, 103, 62, 202, 169, 219, 42, 170, 15, 24, 244, 82, 234, 66, 157, 97, 1], -[1, 54, 89, 180, 211, 86, 18, 201, 60, 156, 200, 6, 67, 20, 52, 238, 2, 108, 178, 103, 165, 172, 36, 145, 120, 55, 143, 12, 134, 40, 104, 219, 4, 216, 99, 206, 73, 87, 72, 33, 240, 110, 29, 24, 11, 80, 208, 181, 8, 175, 198, 155, 146, 174, 144, 66, 223, 220, 58, 48, 22, 160, 159, 105, 16, 93, 139, 53, 35, 91, 31, 132, 189, 183, 116, 96, 44, 63, 61, 210, 32, 186, 21, 106, 70, 182, 62, 7, 121, 109, 232, 192, 88, 126, 122, 163, 64, 115, 42, 212, 140, 107, 124, 14, 242, 218, 207, 127, 176, 252, 244, 69, 128, 230, 84, 167, 23, 214, 248, 28, 227, 179, 157, 254, 95, 247, 231, 138, 256, 203, 168, 77, 46, 171, 239, 56, 197, 101, 57, 251, 190, 237, 205, 19, 255, 149, 79, 154, 92, 85, 221, 112, 137, 202, 114, 245, 123, 217, 153, 38, 253, 41, 158, 51, 184, 170, 185, 224, 17, 147, 228, 233, 246, 177, 49, 76, 249, 82, 59, 102, 111, 83, 113, 191, 34, 37, 199, 209, 235, 97, 98, 152, 241, 164, 118, 204, 222, 166, 226, 125, 68, 74, 141, 161, 213, 194, 196, 47, 225, 71, 236, 151, 187, 75, 195, 250, 136, 148, 25, 65, 169, 131, 135, 94, 193, 142, 215, 45, 117, 150, 133, 243, 15, 39, 50, 130, 81, 5, 13, 188, 129, 27, 173, 90, 234, 43, 9, 229, 30, 78, 100, 3, 162, 10, 26, 119, 1], -[1, 55, 198, 96, 140, 247, 221, 76, 68, 142, 100, 103, 11, 91, 122, 28, 255, 147, 118, 65, 234, 20, 72, 105, 121, 230, 57, 51, 235, 75, 13, 201, 4, 220, 21, 127, 46, 217, 113, 47, 15, 54, 143, 155, 44, 107, 231, 112, 249, 74, 215, 3, 165, 80, 31, 163, 227, 149, 228, 204, 169, 43, 52, 33, 16, 109, 84, 251, 184, 97, 195, 188, 60, 216, 58, 106, 176, 171, 153, 191, 225, 39, 89, 12, 146, 63, 124, 138, 137, 82, 141, 45, 162, 172, 208, 132, 64, 179, 79, 233, 222, 131, 9, 238, 240, 93, 232, 167, 190, 170, 98, 250, 129, 156, 99, 48, 70, 252, 239, 38, 34, 71, 50, 180, 134, 174, 61, 14, 256, 202, 59, 161, 117, 10, 36, 181, 189, 115, 157, 154, 246, 166, 135, 229, 2, 110, 139, 192, 23, 237, 185, 152, 136, 27, 200, 206, 22, 182, 244, 56, 253, 37, 236, 130, 211, 40, 144, 210, 242, 203, 114, 102, 213, 150, 26, 145, 8, 183, 42, 254, 92, 177, 226, 94, 30, 108, 29, 53, 88, 214, 205, 224, 241, 148, 173, 6, 73, 160, 62, 69, 197, 41, 199, 151, 81, 86, 104, 66, 32, 218, 168, 245, 111, 194, 133, 119, 120, 175, 116, 212, 95, 85, 49, 125, 193, 78, 178, 24, 35, 126, 248, 19, 17, 164, 25, 90, 67, 87, 159, 7, 128, 101, 158, 209, 187, 5, 18, 219, 223, 186, 207, 77, 123, 83, 196, 243, 1], -[1, 56, 52, 85, 134, 51, 29, 82, 223, 152, 31, 194, 70, 65, 42, 39, 128, 229, 231, 86, 190, 103, 114, 216, 17, 181, 113, 160, 222, 96, 236, 109, 193, 14, 13, 214, 162, 77, 200, 149, 120, 38, 72, 177, 146, 209, 139, 74, 32, 250, 122, 150, 176, 90, 157, 54, 197, 238, 221, 40, 184, 24, 59, 220, 241, 132, 196, 182, 169, 212, 50, 230, 30, 138, 18, 237, 165, 245, 99, 147, 8, 191, 159, 166, 44, 151, 232, 142, 242, 188, 248, 10, 46, 6, 79, 55, 253, 33, 49, 174, 235, 53, 141, 186, 136, 163, 133, 252, 234, 254, 89, 101, 2, 112, 104, 170, 11, 102, 58, 164, 189, 47, 62, 131, 140, 130, 84, 78, 256, 201, 205, 172, 123, 206, 228, 175, 34, 105, 226, 63, 187, 192, 215, 218, 129, 28, 26, 171, 67, 154, 143, 41, 240, 76, 144, 97, 35, 161, 21, 148, 64, 243, 244, 43, 95, 180, 57, 108, 137, 219, 185, 80, 111, 48, 118, 183, 225, 7, 135, 107, 81, 167, 100, 203, 60, 19, 36, 217, 73, 233, 198, 37, 16, 125, 61, 75, 88, 45, 207, 27, 227, 119, 239, 20, 92, 12, 158, 110, 249, 66, 98, 91, 213, 106, 25, 115, 15, 69, 9, 247, 211, 251, 178, 202, 4, 224, 208, 83, 22, 204, 116, 71, 121, 94, 124, 5, 23, 3, 168, 156, 255, 145, 153, 87, 246, 155, 199, 93, 68, 210, 195, 126, 117, 127, 173, 179, 1], -[1, 57, 165, 153, 240, 59, 22, 226, 32, 25, 140, 13, 227, 89, 190, 36, 253, 29, 111, 159, 68, 21, 169, 124, 129, 157, 211, 205, 120, 158, 11, 113, 16, 141, 70, 135, 242, 173, 95, 18, 255, 143, 184, 208, 34, 139, 213, 62, 193, 207, 234, 231, 60, 79, 134, 185, 8, 199, 35, 196, 121, 215, 176, 9, 256, 200, 92, 104, 17, 198, 235, 31, 225, 232, 117, 244, 30, 168, 67, 221, 4, 228, 146, 98, 189, 236, 88, 133, 128, 100, 46, 52, 137, 99, 246, 144, 241, 116, 187, 122, 15, 84, 162, 239, 2, 114, 73, 49, 223, 118, 44, 195, 64, 50, 23, 26, 197, 178, 123, 72, 249, 58, 222, 61, 136, 42, 81, 248, 1, 57, 165, 153, 240, 59, 22, 226, 32, 25, 140, 13, 227, 89, 190, 36, 253, 29, 111, 159, 68, 21, 169, 124, 129, 157, 211, 205, 120, 158, 11, 113, 16, 141, 70, 135, 242, 173, 95, 18, 255, 143, 184, 208, 34, 139, 213, 62, 193, 207, 234, 231, 60, 79, 134, 185, 8, 199, 35, 196, 121, 215, 176, 9, 256, 200, 92, 104, 17, 198, 235, 31, 225, 232, 117, 244, 30, 168, 67, 221, 4, 228, 146, 98, 189, 236, 88, 133, 128, 100, 46, 52, 137, 99, 246, 144, 241, 116, 187, 122, 15, 84, 162, 239, 2, 114, 73, 49, 223, 118, 44, 195, 64, 50, 23, 26, 197, 178, 123, 72, 249, 58, 222, 61, 136, 42, 81, 248, 1], -[1, 58, 23, 49, 15, 99, 88, 221, 225, 200, 35, 231, 34, 173, 11, 124, 253, 25, 165, 61, 197, 118, 162, 144, 128, 228, 117, 104, 121, 79, 213, 18, 16, 157, 111, 13, 240, 42, 123, 195, 2, 116, 46, 98, 30, 198, 176, 185, 193, 143, 70, 205, 68, 89, 22, 248, 249, 50, 73, 122, 137, 236, 67, 31, 256, 199, 234, 208, 242, 158, 169, 36, 32, 57, 222, 26, 223, 84, 246, 133, 4, 232, 92, 196, 60, 139, 95, 113, 129, 29, 140, 153, 136, 178, 44, 239, 241, 100, 146, 244, 17, 215, 134, 62, 255, 141, 211, 159, 227, 59, 81, 72, 64, 114, 187, 52, 189, 168, 235, 9, 8, 207, 184, 135, 120, 21, 190, 226, 1, 58, 23, 49, 15, 99, 88, 221, 225, 200, 35, 231, 34, 173, 11, 124, 253, 25, 165, 61, 197, 118, 162, 144, 128, 228, 117, 104, 121, 79, 213, 18, 16, 157, 111, 13, 240, 42, 123, 195, 2, 116, 46, 98, 30, 198, 176, 185, 193, 143, 70, 205, 68, 89, 22, 248, 249, 50, 73, 122, 137, 236, 67, 31, 256, 199, 234, 208, 242, 158, 169, 36, 32, 57, 222, 26, 223, 84, 246, 133, 4, 232, 92, 196, 60, 139, 95, 113, 129, 29, 140, 153, 136, 178, 44, 239, 241, 100, 146, 244, 17, 215, 134, 62, 255, 141, 211, 159, 227, 59, 81, 72, 64, 114, 187, 52, 189, 168, 235, 9, 8, 207, 184, 135, 120, 21, 190, 226, 1], -[1, 59, 140, 36, 68, 157, 11, 135, 255, 139, 234, 185, 121, 200, 235, 244, 4, 236, 46, 144, 15, 114, 44, 26, 249, 42, 165, 226, 227, 29, 169, 205, 16, 173, 184, 62, 60, 199, 176, 104, 225, 168, 146, 133, 137, 116, 162, 49, 64, 178, 222, 248, 240, 25, 190, 159, 129, 158, 70, 18, 34, 207, 134, 196, 256, 198, 117, 221, 189, 100, 246, 122, 2, 118, 23, 72, 136, 57, 22, 13, 253, 21, 211, 113, 242, 143, 213, 231, 8, 215, 92, 31, 30, 228, 88, 52, 241, 84, 73, 195, 197, 58, 81, 153, 32, 89, 111, 124, 120, 141, 95, 208, 193, 79, 35, 9, 17, 232, 67, 98, 128, 99, 187, 239, 223, 50, 123, 61, 1, 59, 140, 36, 68, 157, 11, 135, 255, 139, 234, 185, 121, 200, 235, 244, 4, 236, 46, 144, 15, 114, 44, 26, 249, 42, 165, 226, 227, 29, 169, 205, 16, 173, 184, 62, 60, 199, 176, 104, 225, 168, 146, 133, 137, 116, 162, 49, 64, 178, 222, 248, 240, 25, 190, 159, 129, 158, 70, 18, 34, 207, 134, 196, 256, 198, 117, 221, 189, 100, 246, 122, 2, 118, 23, 72, 136, 57, 22, 13, 253, 21, 211, 113, 242, 143, 213, 231, 8, 215, 92, 31, 30, 228, 88, 52, 241, 84, 73, 195, 197, 58, 81, 153, 32, 89, 111, 124, 120, 141, 95, 208, 193, 79, 35, 9, 17, 232, 67, 98, 128, 99, 187, 239, 223, 50, 123, 61, 1], -[1, 60, 2, 120, 4, 240, 8, 223, 16, 189, 32, 121, 64, 242, 128, 227, 256, 197, 255, 137, 253, 17, 249, 34, 241, 68, 225, 136, 193, 15, 129, 30, 1, 60, 2, 120, 4, 240, 8, 223, 16, 189, 32, 121, 64, 242, 128, 227, 256, 197, 255, 137, 253, 17, 249, 34, 241, 68, 225, 136, 193, 15, 129, 30, 1, 60, 2, 120, 4, 240, 8, 223, 16, 189, 32, 121, 64, 242, 128, 227, 256, 197, 255, 137, 253, 17, 249, 34, 241, 68, 225, 136, 193, 15, 129, 30, 1, 60, 2, 120, 4, 240, 8, 223, 16, 189, 32, 121, 64, 242, 128, 227, 256, 197, 255, 137, 253, 17, 249, 34, 241, 68, 225, 136, 193, 15, 129, 30, 1, 60, 2, 120, 4, 240, 8, 223, 16, 189, 32, 121, 64, 242, 128, 227, 256, 197, 255, 137, 253, 17, 249, 34, 241, 68, 225, 136, 193, 15, 129, 30, 1, 60, 2, 120, 4, 240, 8, 223, 16, 189, 32, 121, 64, 242, 128, 227, 256, 197, 255, 137, 253, 17, 249, 34, 241, 68, 225, 136, 193, 15, 129, 30, 1, 60, 2, 120, 4, 240, 8, 223, 16, 189, 32, 121, 64, 242, 128, 227, 256, 197, 255, 137, 253, 17, 249, 34, 241, 68, 225, 136, 193, 15, 129, 30, 1, 60, 2, 120, 4, 240, 8, 223, 16, 189, 32, 121, 64, 242, 128, 227, 256, 197, 255, 137, 253, 17, 249, 34, 241, 68, 225, 136, 193, 15, 129, 30, 1], -[1, 61, 123, 50, 223, 239, 187, 99, 128, 98, 67, 232, 17, 9, 35, 79, 193, 208, 95, 141, 120, 124, 111, 89, 32, 153, 81, 58, 197, 195, 73, 84, 241, 52, 88, 228, 30, 31, 92, 215, 8, 231, 213, 143, 242, 113, 211, 21, 253, 13, 22, 57, 136, 72, 23, 118, 2, 122, 246, 100, 189, 221, 117, 198, 256, 196, 134, 207, 34, 18, 70, 158, 129, 159, 190, 25, 240, 248, 222, 178, 64, 49, 162, 116, 137, 133, 146, 168, 225, 104, 176, 199, 60, 62, 184, 173, 16, 205, 169, 29, 227, 226, 165, 42, 249, 26, 44, 114, 15, 144, 46, 236, 4, 244, 235, 200, 121, 185, 234, 139, 255, 135, 11, 157, 68, 36, 140, 59, 1, 61, 123, 50, 223, 239, 187, 99, 128, 98, 67, 232, 17, 9, 35, 79, 193, 208, 95, 141, 120, 124, 111, 89, 32, 153, 81, 58, 197, 195, 73, 84, 241, 52, 88, 228, 30, 31, 92, 215, 8, 231, 213, 143, 242, 113, 211, 21, 253, 13, 22, 57, 136, 72, 23, 118, 2, 122, 246, 100, 189, 221, 117, 198, 256, 196, 134, 207, 34, 18, 70, 158, 129, 159, 190, 25, 240, 248, 222, 178, 64, 49, 162, 116, 137, 133, 146, 168, 225, 104, 176, 199, 60, 62, 184, 173, 16, 205, 169, 29, 227, 226, 165, 42, 249, 26, 44, 114, 15, 144, 46, 236, 4, 244, 235, 200, 121, 185, 234, 139, 255, 135, 11, 157, 68, 36, 140, 59, 1], -[1, 62, 246, 89, 121, 49, 211, 232, 249, 18, 88, 59, 60, 122, 111, 200, 64, 113, 67, 42, 34, 52, 140, 199, 2, 124, 235, 178, 242, 98, 165, 207, 241, 36, 176, 118, 120, 244, 222, 143, 128, 226, 134, 84, 68, 104, 23, 141, 4, 248, 213, 99, 227, 196, 73, 157, 225, 72, 95, 236, 240, 231, 187, 29, 256, 195, 11, 168, 136, 208, 46, 25, 8, 239, 169, 198, 197, 135, 146, 57, 193, 144, 190, 215, 223, 205, 117, 58, 255, 133, 22, 79, 15, 159, 92, 50, 16, 221, 81, 139, 137, 13, 35, 114, 129, 31, 123, 173, 189, 153, 234, 116, 253, 9, 44, 158, 30, 61, 184, 100, 32, 185, 162, 21, 17, 26, 70, 228, 1, 62, 246, 89, 121, 49, 211, 232, 249, 18, 88, 59, 60, 122, 111, 200, 64, 113, 67, 42, 34, 52, 140, 199, 2, 124, 235, 178, 242, 98, 165, 207, 241, 36, 176, 118, 120, 244, 222, 143, 128, 226, 134, 84, 68, 104, 23, 141, 4, 248, 213, 99, 227, 196, 73, 157, 225, 72, 95, 236, 240, 231, 187, 29, 256, 195, 11, 168, 136, 208, 46, 25, 8, 239, 169, 198, 197, 135, 146, 57, 193, 144, 190, 215, 223, 205, 117, 58, 255, 133, 22, 79, 15, 159, 92, 50, 16, 221, 81, 139, 137, 13, 35, 114, 129, 31, 123, 173, 189, 153, 234, 116, 253, 9, 44, 158, 30, 61, 184, 100, 32, 185, 162, 21, 17, 26, 70, 228, 1], -[1, 63, 114, 243, 146, 203, 196, 12, 242, 83, 89, 210, 123, 39, 144, 77, 225, 40, 207, 191, 211, 186, 153, 130, 223, 171, 236, 219, 176, 37, 18, 106, 253, 5, 58, 56, 187, 216, 244, 209, 60, 182, 158, 188, 22, 101, 195, 206, 128, 97, 200, 7, 184, 27, 159, 251, 136, 87, 84, 152, 67, 109, 185, 90, 16, 237, 25, 33, 23, 164, 52, 192, 17, 43, 139, 19, 169, 110, 248, 204, 2, 126, 228, 229, 35, 149, 135, 24, 227, 166, 178, 163, 246, 78, 31, 154, 193, 80, 157, 125, 165, 115, 49, 3, 189, 85, 215, 181, 95, 74, 36, 212, 249, 10, 116, 112, 117, 175, 231, 161, 120, 107, 59, 119, 44, 202, 133, 155, 256, 194, 143, 14, 111, 54, 61, 245, 15, 174, 168, 47, 134, 218, 113, 180, 32, 217, 50, 66, 46, 71, 104, 127, 34, 86, 21, 38, 81, 220, 239, 151, 4, 252, 199, 201, 70, 41, 13, 48, 197, 75, 99, 69, 235, 156, 62, 51, 129, 160, 57, 250, 73, 230, 98, 6, 121, 170, 173, 105, 190, 148, 72, 167, 241, 20, 232, 224, 234, 93, 205, 65, 240, 214, 118, 238, 88, 147, 9, 53, 255, 131, 29, 28, 222, 108, 122, 233, 30, 91, 79, 94, 11, 179, 226, 103, 64, 177, 100, 132, 92, 142, 208, 254, 68, 172, 42, 76, 162, 183, 221, 45, 8, 247, 141, 145, 140, 82, 26, 96, 137, 150, 198, 138, 213, 55, 124, 102, 1], -[1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1, 64, 241, 4, 256, 193, 16, 253, 1], -[1, 65, 113, 149, 176, 132, 99, 10, 136, 102, 205, 218, 35, 219, 100, 75, 249, 251, 124, 93, 134, 229, 236, 177, 197, 212, 159, 55, 234, 47, 228, 171, 64, 48, 36, 27, 213, 224, 168, 126, 223, 103, 13, 74, 184, 138, 232, 174, 2, 130, 226, 41, 95, 7, 198, 20, 15, 204, 153, 179, 70, 181, 200, 150, 241, 245, 248, 186, 11, 201, 215, 97, 137, 167, 61, 110, 211, 94, 199, 85, 128, 96, 72, 54, 169, 191, 79, 252, 189, 206, 26, 148, 111, 19, 207, 91, 4, 3, 195, 82, 190, 14, 139, 40, 30, 151, 49, 101, 140, 105, 143, 43, 225, 233, 239, 115, 22, 145, 173, 194, 17, 77, 122, 220, 165, 188, 141, 170, 256, 192, 144, 108, 81, 125, 158, 247, 121, 155, 52, 39, 222, 38, 157, 182, 8, 6, 133, 164, 123, 28, 21, 80, 60, 45, 98, 202, 23, 210, 29, 86, 193, 209, 221, 230, 44, 33, 89, 131, 34, 154, 244, 183, 73, 119, 25, 83, 255, 127, 31, 216, 162, 250, 59, 237, 242, 53, 104, 78, 187, 76, 57, 107, 16, 12, 9, 71, 246, 56, 42, 160, 120, 90, 196, 147, 46, 163, 58, 172, 129, 161, 185, 203, 88, 66, 178, 5, 68, 51, 231, 109, 146, 238, 50, 166, 253, 254, 62, 175, 67, 243, 118, 217, 227, 106, 208, 156, 117, 152, 114, 214, 32, 24, 18, 142, 235, 112, 84, 63, 240, 180, 135, 37, 92, 69, 116, 87, 1], -[1, 66, 244, 170, 169, 103, 116, 203, 34, 188, 72, 126, 92, 161, 89, 220, 128, 224, 135, 172, 44, 77, 199, 27, 240, 163, 221, 194, 211, 48, 84, 147, 193, 145, 61, 171, 235, 90, 29, 115, 137, 47, 18, 160, 23, 233, 215, 55, 32, 56, 98, 43, 11, 212, 114, 71, 60, 105, 248, 177, 117, 12, 21, 101, 241, 229, 208, 107, 123, 151, 200, 93, 227, 76, 133, 40, 70, 251, 118, 78, 8, 14, 153, 75, 67, 53, 157, 82, 15, 219, 62, 237, 222, 3, 198, 218, 253, 250, 52, 91, 95, 102, 50, 216, 121, 19, 226, 10, 146, 127, 158, 148, 2, 132, 231, 83, 81, 206, 232, 149, 68, 119, 144, 252, 184, 65, 178, 183, 256, 191, 13, 87, 88, 154, 141, 54, 223, 69, 185, 131, 165, 96, 168, 37, 129, 33, 122, 85, 213, 180, 58, 230, 17, 94, 36, 63, 46, 209, 173, 110, 64, 112, 196, 86, 22, 167, 228, 142, 120, 210, 239, 97, 234, 24, 42, 202, 225, 201, 159, 214, 246, 45, 143, 186, 197, 152, 9, 80, 140, 245, 236, 156, 16, 28, 49, 150, 134, 106, 57, 164, 30, 181, 124, 217, 187, 6, 139, 179, 249, 243, 104, 182, 190, 204, 100, 175, 242, 38, 195, 20, 35, 254, 59, 39, 4, 7, 205, 166, 162, 155, 207, 41, 136, 238, 31, 247, 111, 130, 99, 109, 255, 125, 26, 174, 176, 51, 25, 108, 189, 138, 113, 5, 73, 192, 79, 74, 1], -[1, 67, 120, 73, 8, 22, 189, 70, 64, 176, 227, 46, 255, 123, 17, 111, 241, 213, 136, 117, 129, 162, 60, 165, 4, 11, 223, 35, 32, 88, 242, 23, 256, 190, 137, 184, 249, 235, 68, 187, 193, 81, 30, 211, 2, 134, 240, 146, 16, 44, 121, 140, 128, 95, 197, 92, 253, 246, 34, 222, 225, 169, 15, 234, 1, 67, 120, 73, 8, 22, 189, 70, 64, 176, 227, 46, 255, 123, 17, 111, 241, 213, 136, 117, 129, 162, 60, 165, 4, 11, 223, 35, 32, 88, 242, 23, 256, 190, 137, 184, 249, 235, 68, 187, 193, 81, 30, 211, 2, 134, 240, 146, 16, 44, 121, 140, 128, 95, 197, 92, 253, 246, 34, 222, 225, 169, 15, 234, 1, 67, 120, 73, 8, 22, 189, 70, 64, 176, 227, 46, 255, 123, 17, 111, 241, 213, 136, 117, 129, 162, 60, 165, 4, 11, 223, 35, 32, 88, 242, 23, 256, 190, 137, 184, 249, 235, 68, 187, 193, 81, 30, 211, 2, 134, 240, 146, 16, 44, 121, 140, 128, 95, 197, 92, 253, 246, 34, 222, 225, 169, 15, 234, 1, 67, 120, 73, 8, 22, 189, 70, 64, 176, 227, 46, 255, 123, 17, 111, 241, 213, 136, 117, 129, 162, 60, 165, 4, 11, 223, 35, 32, 88, 242, 23, 256, 190, 137, 184, 249, 235, 68, 187, 193, 81, 30, 211, 2, 134, 240, 146, 16, 44, 121, 140, 128, 95, 197, 92, 253, 246, 34, 222, 225, 169, 15, 234, 1], -[1, 68, 255, 121, 4, 15, 249, 227, 16, 60, 225, 137, 64, 240, 129, 34, 256, 189, 2, 136, 253, 242, 8, 30, 241, 197, 32, 120, 193, 17, 128, 223, 1, 68, 255, 121, 4, 15, 249, 227, 16, 60, 225, 137, 64, 240, 129, 34, 256, 189, 2, 136, 253, 242, 8, 30, 241, 197, 32, 120, 193, 17, 128, 223, 1, 68, 255, 121, 4, 15, 249, 227, 16, 60, 225, 137, 64, 240, 129, 34, 256, 189, 2, 136, 253, 242, 8, 30, 241, 197, 32, 120, 193, 17, 128, 223, 1, 68, 255, 121, 4, 15, 249, 227, 16, 60, 225, 137, 64, 240, 129, 34, 256, 189, 2, 136, 253, 242, 8, 30, 241, 197, 32, 120, 193, 17, 128, 223, 1, 68, 255, 121, 4, 15, 249, 227, 16, 60, 225, 137, 64, 240, 129, 34, 256, 189, 2, 136, 253, 242, 8, 30, 241, 197, 32, 120, 193, 17, 128, 223, 1, 68, 255, 121, 4, 15, 249, 227, 16, 60, 225, 137, 64, 240, 129, 34, 256, 189, 2, 136, 253, 242, 8, 30, 241, 197, 32, 120, 193, 17, 128, 223, 1, 68, 255, 121, 4, 15, 249, 227, 16, 60, 225, 137, 64, 240, 129, 34, 256, 189, 2, 136, 253, 242, 8, 30, 241, 197, 32, 120, 193, 17, 128, 223, 1, 68, 255, 121, 4, 15, 249, 227, 16, 60, 225, 137, 64, 240, 129, 34, 256, 189, 2, 136, 253, 242, 8, 30, 241, 197, 32, 120, 193, 17, 128, 223, 1], -[1, 69, 135, 63, 235, 24, 114, 156, 227, 243, 62, 166, 146, 51, 178, 203, 129, 163, 196, 160, 246, 12, 57, 78, 242, 250, 31, 83, 73, 154, 89, 230, 193, 210, 98, 80, 123, 6, 157, 39, 121, 125, 144, 170, 165, 77, 173, 115, 225, 105, 49, 40, 190, 3, 207, 148, 189, 191, 72, 85, 211, 167, 215, 186, 241, 181, 153, 20, 95, 130, 232, 74, 223, 224, 36, 171, 234, 212, 236, 93, 249, 219, 205, 10, 176, 65, 116, 37, 240, 112, 18, 214, 117, 106, 118, 175, 253, 238, 231, 5, 88, 161, 58, 147, 120, 56, 9, 107, 187, 53, 59, 216, 255, 119, 244, 131, 44, 209, 29, 202, 60, 28, 133, 182, 222, 155, 158, 108, 256, 188, 122, 194, 22, 233, 143, 101, 30, 14, 195, 91, 111, 206, 79, 54, 128, 94, 61, 97, 11, 245, 200, 179, 15, 7, 226, 174, 184, 103, 168, 27, 64, 47, 159, 177, 134, 251, 100, 218, 136, 132, 113, 87, 92, 180, 84, 142, 32, 152, 208, 217, 67, 254, 50, 109, 68, 66, 185, 172, 46, 90, 42, 71, 16, 76, 104, 237, 162, 127, 25, 183, 34, 33, 221, 86, 23, 45, 21, 164, 8, 38, 52, 247, 81, 192, 141, 220, 17, 145, 239, 43, 140, 151, 139, 82, 4, 19, 26, 252, 169, 96, 199, 110, 137, 201, 248, 150, 70, 204, 198, 41, 2, 138, 13, 126, 213, 48, 228, 55, 197, 229, 124, 75, 35, 102, 99, 149, 1], -[1, 70, 17, 162, 32, 184, 30, 44, 253, 234, 189, 123, 129, 35, 137, 81, 16, 92, 15, 22, 255, 117, 223, 190, 193, 146, 197, 169, 8, 46, 136, 11, 256, 187, 240, 95, 225, 73, 227, 213, 4, 23, 68, 134, 128, 222, 120, 176, 241, 165, 242, 235, 2, 140, 34, 67, 64, 111, 60, 88, 249, 211, 121, 246, 1, 70, 17, 162, 32, 184, 30, 44, 253, 234, 189, 123, 129, 35, 137, 81, 16, 92, 15, 22, 255, 117, 223, 190, 193, 146, 197, 169, 8, 46, 136, 11, 256, 187, 240, 95, 225, 73, 227, 213, 4, 23, 68, 134, 128, 222, 120, 176, 241, 165, 242, 235, 2, 140, 34, 67, 64, 111, 60, 88, 249, 211, 121, 246, 1, 70, 17, 162, 32, 184, 30, 44, 253, 234, 189, 123, 129, 35, 137, 81, 16, 92, 15, 22, 255, 117, 223, 190, 193, 146, 197, 169, 8, 46, 136, 11, 256, 187, 240, 95, 225, 73, 227, 213, 4, 23, 68, 134, 128, 222, 120, 176, 241, 165, 242, 235, 2, 140, 34, 67, 64, 111, 60, 88, 249, 211, 121, 246, 1, 70, 17, 162, 32, 184, 30, 44, 253, 234, 189, 123, 129, 35, 137, 81, 16, 92, 15, 22, 255, 117, 223, 190, 193, 146, 197, 169, 8, 46, 136, 11, 256, 187, 240, 95, 225, 73, 227, 213, 4, 23, 68, 134, 128, 222, 120, 176, 241, 165, 242, 235, 2, 140, 34, 67, 64, 111, 60, 88, 249, 211, 121, 246, 1], -[1, 71, 158, 167, 35, 172, 133, 191, 197, 109, 29, 3, 213, 217, 244, 105, 2, 142, 59, 77, 70, 87, 9, 125, 137, 218, 58, 6, 169, 177, 231, 210, 4, 27, 118, 154, 140, 174, 18, 250, 17, 179, 116, 12, 81, 97, 205, 163, 8, 54, 236, 51, 23, 91, 36, 243, 34, 101, 232, 24, 162, 194, 153, 69, 16, 108, 215, 102, 46, 182, 72, 229, 68, 202, 207, 48, 67, 131, 49, 138, 32, 216, 173, 204, 92, 107, 144, 201, 136, 147, 157, 96, 134, 5, 98, 19, 64, 175, 89, 151, 184, 214, 31, 145, 15, 37, 57, 192, 11, 10, 196, 38, 128, 93, 178, 45, 111, 171, 62, 33, 30, 74, 114, 127, 22, 20, 135, 76, 256, 186, 99, 90, 222, 85, 124, 66, 60, 148, 228, 254, 44, 40, 13, 152, 255, 115, 198, 180, 187, 170, 248, 132, 120, 39, 199, 251, 88, 80, 26, 47, 253, 230, 139, 103, 117, 83, 239, 7, 240, 78, 141, 245, 176, 160, 52, 94, 249, 203, 21, 206, 234, 166, 221, 14, 223, 156, 25, 233, 95, 63, 104, 188, 241, 149, 42, 155, 211, 75, 185, 28, 189, 55, 50, 209, 190, 126, 208, 119, 225, 41, 84, 53, 165, 150, 113, 56, 121, 110, 100, 161, 123, 252, 159, 238, 193, 82, 168, 106, 73, 43, 226, 112, 242, 220, 200, 65, 246, 247, 61, 219, 129, 164, 79, 212, 146, 86, 195, 224, 227, 183, 143, 130, 235, 237, 122, 181, 1], -[1, 72, 44, 84, 137, 98, 117, 200, 8, 62, 95, 158, 68, 13, 165, 58, 64, 239, 246, 236, 30, 104, 35, 207, 255, 113, 169, 89, 240, 61, 23, 114, 241, 133, 67, 198, 121, 231, 184, 141, 129, 36, 22, 42, 197, 49, 187, 100, 4, 31, 176, 79, 34, 135, 211, 29, 32, 248, 123, 118, 15, 52, 146, 232, 256, 185, 213, 173, 120, 159, 140, 57, 249, 195, 162, 99, 189, 244, 92, 199, 193, 18, 11, 21, 227, 153, 222, 50, 2, 144, 88, 168, 17, 196, 234, 143, 16, 124, 190, 59, 136, 26, 73, 116, 128, 221, 235, 215, 60, 208, 70, 157, 253, 226, 81, 178, 223, 122, 46, 228, 225, 9, 134, 139, 242, 205, 111, 25, 1, 72, 44, 84, 137, 98, 117, 200, 8, 62, 95, 158, 68, 13, 165, 58, 64, 239, 246, 236, 30, 104, 35, 207, 255, 113, 169, 89, 240, 61, 23, 114, 241, 133, 67, 198, 121, 231, 184, 141, 129, 36, 22, 42, 197, 49, 187, 100, 4, 31, 176, 79, 34, 135, 211, 29, 32, 248, 123, 118, 15, 52, 146, 232, 256, 185, 213, 173, 120, 159, 140, 57, 249, 195, 162, 99, 189, 244, 92, 199, 193, 18, 11, 21, 227, 153, 222, 50, 2, 144, 88, 168, 17, 196, 234, 143, 16, 124, 190, 59, 136, 26, 73, 116, 128, 221, 235, 215, 60, 208, 70, 157, 253, 226, 81, 178, 223, 122, 46, 228, 225, 9, 134, 139, 242, 205, 111, 25, 1], -[1, 73, 189, 176, 255, 111, 136, 162, 4, 35, 242, 190, 249, 187, 30, 134, 16, 140, 197, 246, 225, 234, 120, 22, 64, 46, 17, 213, 129, 165, 223, 88, 256, 184, 68, 81, 2, 146, 121, 95, 253, 222, 15, 67, 8, 70, 227, 123, 241, 117, 60, 11, 32, 23, 137, 235, 193, 211, 240, 44, 128, 92, 34, 169, 1, 73, 189, 176, 255, 111, 136, 162, 4, 35, 242, 190, 249, 187, 30, 134, 16, 140, 197, 246, 225, 234, 120, 22, 64, 46, 17, 213, 129, 165, 223, 88, 256, 184, 68, 81, 2, 146, 121, 95, 253, 222, 15, 67, 8, 70, 227, 123, 241, 117, 60, 11, 32, 23, 137, 235, 193, 211, 240, 44, 128, 92, 34, 169, 1, 73, 189, 176, 255, 111, 136, 162, 4, 35, 242, 190, 249, 187, 30, 134, 16, 140, 197, 246, 225, 234, 120, 22, 64, 46, 17, 213, 129, 165, 223, 88, 256, 184, 68, 81, 2, 146, 121, 95, 253, 222, 15, 67, 8, 70, 227, 123, 241, 117, 60, 11, 32, 23, 137, 235, 193, 211, 240, 44, 128, 92, 34, 169, 1, 73, 189, 176, 255, 111, 136, 162, 4, 35, 242, 190, 249, 187, 30, 134, 16, 140, 197, 246, 225, 234, 120, 22, 64, 46, 17, 213, 129, 165, 223, 88, 256, 184, 68, 81, 2, 146, 121, 95, 253, 222, 15, 67, 8, 70, 227, 123, 241, 117, 60, 11, 32, 23, 137, 235, 193, 211, 240, 44, 128, 92, 34, 169, 1], -[1, 74, 79, 192, 73, 5, 113, 138, 189, 108, 25, 51, 176, 174, 26, 125, 255, 109, 99, 130, 111, 247, 31, 238, 136, 41, 207, 155, 162, 166, 205, 7, 4, 39, 59, 254, 35, 20, 195, 38, 242, 175, 100, 204, 190, 182, 104, 243, 249, 179, 139, 6, 187, 217, 124, 181, 30, 164, 57, 106, 134, 150, 49, 28, 16, 156, 236, 245, 140, 80, 9, 152, 197, 186, 143, 45, 246, 214, 159, 201, 225, 202, 42, 24, 234, 97, 239, 210, 120, 142, 228, 167, 22, 86, 196, 112, 64, 110, 173, 209, 46, 63, 36, 94, 17, 230, 58, 180, 213, 85, 122, 33, 129, 37, 168, 96, 165, 131, 185, 69, 223, 54, 141, 154, 88, 87, 13, 191, 256, 183, 178, 65, 184, 252, 144, 119, 68, 149, 232, 206, 81, 83, 231, 132, 2, 148, 158, 127, 146, 10, 226, 19, 121, 216, 50, 102, 95, 91, 52, 250, 253, 218, 198, 3, 222, 237, 62, 219, 15, 82, 157, 53, 67, 75, 153, 14, 8, 78, 118, 251, 70, 40, 133, 76, 227, 93, 200, 151, 123, 107, 208, 229, 241, 101, 21, 12, 117, 177, 248, 105, 60, 71, 114, 212, 11, 43, 98, 56, 32, 55, 215, 233, 23, 160, 18, 47, 137, 115, 29, 90, 235, 171, 61, 145, 193, 147, 84, 48, 211, 194, 221, 163, 240, 27, 199, 77, 44, 172, 135, 224, 128, 220, 89, 161, 92, 126, 72, 188, 34, 203, 116, 103, 169, 170, 244, 66, 1], -[1, 75, 228, 138, 70, 110, 26, 151, 17, 247, 21, 33, 162, 71, 185, 254, 32, 87, 100, 47, 184, 179, 61, 206, 30, 194, 158, 28, 44, 216, 9, 161, 253, 214, 116, 219, 234, 74, 153, 167, 189, 40, 173, 125, 123, 230, 31, 12, 129, 166, 114, 69, 35, 55, 13, 204, 137, 252, 139, 145, 81, 164, 221, 127, 16, 172, 50, 152, 92, 218, 159, 103, 15, 97, 79, 14, 22, 108, 133, 209, 255, 107, 58, 238, 117, 37, 205, 212, 223, 20, 215, 191, 190, 115, 144, 6, 193, 83, 57, 163, 146, 156, 135, 102, 197, 126, 198, 201, 169, 82, 239, 192, 8, 86, 25, 76, 46, 109, 208, 180, 136, 177, 168, 7, 11, 54, 195, 233, 256, 182, 29, 119, 187, 147, 231, 106, 240, 10, 236, 224, 95, 186, 72, 3, 225, 170, 157, 210, 73, 78, 196, 51, 227, 63, 99, 229, 213, 41, 248, 96, 4, 43, 141, 38, 23, 183, 104, 90, 68, 217, 84, 132, 134, 27, 226, 245, 128, 91, 143, 188, 222, 202, 244, 53, 120, 5, 118, 112, 176, 93, 36, 130, 241, 85, 207, 105, 165, 39, 98, 154, 242, 160, 178, 243, 235, 149, 124, 48, 2, 150, 199, 19, 140, 220, 52, 45, 34, 237, 42, 66, 67, 142, 113, 251, 64, 174, 200, 94, 111, 101, 122, 155, 60, 131, 59, 56, 88, 175, 18, 65, 249, 171, 232, 181, 211, 148, 49, 77, 121, 80, 89, 250, 246, 203, 62, 24, 1], -[1, 76, 122, 20, 235, 127, 143, 74, 227, 33, 195, 171, 146, 45, 79, 93, 129, 38, 61, 10, 246, 192, 200, 37, 242, 145, 226, 214, 73, 151, 168, 175, 193, 19, 159, 5, 123, 96, 100, 147, 121, 201, 113, 107, 165, 204, 84, 216, 225, 138, 208, 131, 190, 48, 50, 202, 189, 229, 185, 182, 211, 102, 42, 108, 241, 69, 104, 194, 95, 24, 25, 101, 223, 243, 221, 91, 234, 51, 21, 54, 249, 163, 52, 97, 176, 12, 141, 179, 240, 250, 239, 174, 117, 154, 139, 27, 253, 210, 26, 177, 88, 6, 199, 218, 120, 125, 248, 87, 187, 77, 198, 142, 255, 105, 13, 217, 44, 3, 228, 109, 60, 191, 124, 172, 222, 167, 99, 71, 256, 181, 135, 237, 22, 130, 114, 183, 30, 224, 62, 86, 111, 212, 178, 164, 128, 219, 196, 247, 11, 65, 57, 220, 15, 112, 31, 43, 184, 106, 89, 82, 64, 238, 98, 252, 134, 161, 157, 110, 136, 56, 144, 150, 92, 53, 173, 41, 32, 119, 49, 126, 67, 209, 207, 55, 68, 28, 72, 75, 46, 155, 215, 149, 16, 188, 153, 63, 162, 233, 232, 156, 34, 14, 36, 166, 23, 206, 236, 203, 8, 94, 205, 160, 81, 245, 116, 78, 17, 7, 18, 83, 140, 103, 118, 230, 4, 47, 231, 80, 169, 251, 58, 39, 137, 132, 9, 170, 70, 180, 59, 115, 2, 152, 244, 40, 213, 254, 29, 148, 197, 66, 133, 85, 35, 90, 158, 186, 1], -[1, 77, 18, 101, 67, 19, 178, 85, 120, 245, 104, 41, 73, 224, 29, 177, 8, 102, 144, 37, 22, 152, 139, 166, 189, 161, 61, 71, 70, 250, 232, 131, 64, 45, 124, 39, 176, 188, 84, 43, 227, 3, 231, 54, 46, 201, 57, 20, 255, 103, 221, 55, 123, 219, 158, 87, 17, 24, 49, 175, 111, 66, 199, 160, 241, 53, 226, 183, 213, 210, 236, 182, 136, 192, 135, 115, 117, 14, 50, 252, 129, 167, 9, 179, 162, 138, 89, 171, 60, 251, 52, 149, 165, 112, 143, 217, 4, 51, 72, 147, 11, 76, 198, 83, 223, 209, 159, 164, 35, 125, 116, 194, 32, 151, 62, 148, 88, 94, 42, 150, 242, 130, 244, 27, 23, 229, 157, 10, 256, 180, 239, 156, 190, 238, 79, 172, 137, 12, 153, 216, 184, 33, 228, 80, 249, 155, 113, 220, 235, 105, 118, 91, 68, 96, 196, 186, 187, 7, 25, 126, 193, 212, 133, 218, 81, 69, 173, 214, 30, 254, 26, 203, 211, 56, 200, 237, 2, 154, 36, 202, 134, 38, 99, 170, 240, 233, 208, 82, 146, 191, 58, 97, 16, 204, 31, 74, 44, 47, 21, 75, 121, 65, 122, 142, 140, 243, 207, 5, 128, 90, 248, 78, 95, 119, 168, 86, 197, 6, 205, 108, 92, 145, 114, 40, 253, 206, 185, 110, 246, 181, 59, 174, 34, 48, 98, 93, 222, 132, 141, 63, 225, 106, 195, 109, 169, 163, 215, 107, 15, 127, 13, 230, 234, 28, 100, 247, 1], -[1, 78, 173, 130, 117, 131, 195, 47, 68, 164, 199, 102, 246, 170, 153, 112, 255, 101, 168, 254, 23, 252, 124, 163, 121, 186, 116, 53, 22, 174, 208, 33, 4, 55, 178, 6, 211, 10, 9, 188, 15, 142, 25, 151, 213, 166, 98, 191, 249, 147, 158, 245, 92, 237, 239, 138, 227, 230, 207, 212, 88, 182, 61, 132, 16, 220, 198, 24, 73, 40, 36, 238, 60, 54, 100, 90, 81, 150, 135, 250, 225, 74, 118, 209, 111, 177, 185, 38, 137, 149, 57, 77, 95, 214, 244, 14, 64, 109, 21, 96, 35, 160, 144, 181, 240, 216, 143, 103, 67, 86, 26, 229, 129, 39, 215, 65, 187, 194, 226, 152, 34, 82, 228, 51, 123, 85, 205, 56, 256, 179, 84, 127, 140, 126, 62, 210, 189, 93, 58, 155, 11, 87, 104, 145, 2, 156, 89, 3, 234, 5, 133, 94, 136, 71, 141, 204, 235, 83, 49, 224, 253, 202, 79, 251, 46, 247, 248, 69, 242, 115, 232, 106, 44, 91, 159, 66, 8, 110, 99, 12, 165, 20, 18, 119, 30, 27, 50, 45, 169, 75, 196, 125, 241, 37, 59, 233, 184, 217, 221, 19, 197, 203, 157, 167, 176, 107, 122, 7, 32, 183, 139, 48, 146, 80, 72, 219, 120, 108, 200, 180, 162, 43, 13, 243, 193, 148, 236, 161, 222, 97, 113, 76, 17, 41, 114, 154, 190, 171, 231, 28, 128, 218, 42, 192, 70, 63, 31, 105, 223, 175, 29, 206, 134, 172, 52, 201, 1], -[1, 79, 73, 113, 189, 25, 176, 26, 255, 99, 111, 31, 136, 207, 162, 205, 4, 59, 35, 195, 242, 100, 190, 104, 249, 139, 187, 124, 30, 57, 134, 49, 16, 236, 140, 9, 197, 143, 246, 159, 225, 42, 234, 239, 120, 228, 22, 196, 64, 173, 46, 36, 17, 58, 213, 122, 129, 168, 165, 185, 223, 141, 88, 13, 256, 178, 184, 144, 68, 232, 81, 231, 2, 158, 146, 226, 121, 50, 95, 52, 253, 198, 222, 62, 15, 157, 67, 153, 8, 118, 70, 133, 227, 200, 123, 208, 241, 21, 117, 248, 60, 114, 11, 98, 32, 215, 23, 18, 137, 29, 235, 61, 193, 84, 211, 221, 240, 199, 44, 135, 128, 89, 92, 72, 34, 116, 169, 244, 1, 79, 73, 113, 189, 25, 176, 26, 255, 99, 111, 31, 136, 207, 162, 205, 4, 59, 35, 195, 242, 100, 190, 104, 249, 139, 187, 124, 30, 57, 134, 49, 16, 236, 140, 9, 197, 143, 246, 159, 225, 42, 234, 239, 120, 228, 22, 196, 64, 173, 46, 36, 17, 58, 213, 122, 129, 168, 165, 185, 223, 141, 88, 13, 256, 178, 184, 144, 68, 232, 81, 231, 2, 158, 146, 226, 121, 50, 95, 52, 253, 198, 222, 62, 15, 157, 67, 153, 8, 118, 70, 133, 227, 200, 123, 208, 241, 21, 117, 248, 60, 114, 11, 98, 32, 215, 23, 18, 137, 29, 235, 61, 193, 84, 211, 221, 240, 199, 44, 135, 128, 89, 92, 72, 34, 116, 169, 244, 1], -[1, 80, 232, 56, 111, 142, 52, 48, 242, 85, 118, 188, 134, 183, 248, 51, 225, 10, 29, 7, 46, 82, 135, 6, 223, 107, 79, 152, 81, 55, 31, 167, 253, 194, 100, 33, 70, 203, 49, 65, 60, 174, 42, 19, 235, 39, 36, 53, 128, 217, 141, 229, 73, 186, 231, 233, 136, 86, 198, 163, 190, 37, 133, 103, 16, 252, 114, 125, 234, 216, 61, 254, 17, 75, 89, 181, 88, 101, 113, 45, 2, 160, 207, 112, 222, 27, 104, 96, 227, 170, 236, 119, 11, 109, 239, 102, 193, 20, 58, 14, 92, 164, 13, 12, 189, 214, 158, 47, 162, 110, 62, 77, 249, 131, 200, 66, 140, 149, 98, 130, 120, 91, 84, 38, 213, 78, 72, 106, 256, 177, 25, 201, 146, 115, 205, 209, 15, 172, 139, 69, 123, 74, 9, 206, 32, 247, 228, 250, 211, 175, 122, 251, 34, 150, 178, 105, 176, 202, 226, 90, 4, 63, 157, 224, 187, 54, 208, 192, 197, 83, 215, 238, 22, 218, 221, 204, 129, 40, 116, 28, 184, 71, 26, 24, 121, 171, 59, 94, 67, 220, 124, 154, 241, 5, 143, 132, 23, 41, 196, 3, 240, 182, 168, 76, 169, 156, 144, 212, 255, 97, 50, 145, 35, 230, 153, 161, 30, 87, 21, 138, 246, 148, 18, 155, 64, 237, 199, 243, 165, 93, 244, 245, 68, 43, 99, 210, 95, 147, 195, 180, 8, 126, 57, 191, 117, 108, 159, 127, 137, 166, 173, 219, 44, 179, 185, 151, 1], -[1, 81, 136, 222, 249, 123, 197, 23, 64, 44, 223, 73, 2, 162, 15, 187, 241, 246, 137, 46, 128, 88, 189, 146, 4, 67, 30, 117, 225, 235, 17, 92, 256, 176, 121, 35, 8, 134, 60, 234, 193, 213, 34, 184, 255, 95, 242, 70, 16, 11, 120, 211, 129, 169, 68, 111, 253, 190, 227, 140, 32, 22, 240, 165, 1, 81, 136, 222, 249, 123, 197, 23, 64, 44, 223, 73, 2, 162, 15, 187, 241, 246, 137, 46, 128, 88, 189, 146, 4, 67, 30, 117, 225, 235, 17, 92, 256, 176, 121, 35, 8, 134, 60, 234, 193, 213, 34, 184, 255, 95, 242, 70, 16, 11, 120, 211, 129, 169, 68, 111, 253, 190, 227, 140, 32, 22, 240, 165, 1, 81, 136, 222, 249, 123, 197, 23, 64, 44, 223, 73, 2, 162, 15, 187, 241, 246, 137, 46, 128, 88, 189, 146, 4, 67, 30, 117, 225, 235, 17, 92, 256, 176, 121, 35, 8, 134, 60, 234, 193, 213, 34, 184, 255, 95, 242, 70, 16, 11, 120, 211, 129, 169, 68, 111, 253, 190, 227, 140, 32, 22, 240, 165, 1, 81, 136, 222, 249, 123, 197, 23, 64, 44, 223, 73, 2, 162, 15, 187, 241, 246, 137, 46, 128, 88, 189, 146, 4, 67, 30, 117, 225, 235, 17, 92, 256, 176, 121, 35, 8, 134, 60, 234, 193, 213, 34, 184, 255, 95, 242, 70, 16, 11, 120, 211, 129, 169, 68, 111, 253, 190, 227, 140, 32, 22, 240, 165, 1], -[1, 82, 42, 103, 222, 214, 72, 250, 197, 220, 50, 245, 44, 10, 49, 163, 2, 164, 84, 206, 187, 171, 144, 243, 137, 183, 100, 233, 88, 20, 98, 69, 4, 71, 168, 155, 117, 85, 31, 229, 17, 109, 200, 209, 176, 40, 196, 138, 8, 142, 79, 53, 234, 170, 62, 201, 34, 218, 143, 161, 95, 80, 135, 19, 16, 27, 158, 106, 211, 83, 124, 145, 68, 179, 29, 65, 190, 160, 13, 38, 32, 54, 59, 212, 165, 166, 248, 33, 136, 101, 58, 130, 123, 63, 26, 76, 64, 108, 118, 167, 73, 75, 239, 66, 15, 202, 116, 3, 246, 126, 52, 152, 128, 216, 236, 77, 146, 150, 221, 132, 30, 147, 232, 6, 235, 252, 104, 47, 256, 175, 215, 154, 35, 43, 185, 7, 60, 37, 207, 12, 213, 247, 208, 94, 255, 93, 173, 51, 70, 86, 113, 14, 120, 74, 157, 24, 169, 237, 159, 188, 253, 186, 89, 102, 140, 172, 226, 28, 240, 148, 57, 48, 81, 217, 61, 119, 249, 115, 178, 204, 23, 87, 195, 56, 223, 39, 114, 96, 162, 177, 122, 238, 241, 230, 99, 151, 46, 174, 133, 112, 189, 78, 228, 192, 67, 97, 244, 219, 225, 203, 198, 45, 92, 91, 9, 224, 121, 156, 199, 127, 134, 194, 231, 181, 193, 149, 139, 90, 184, 182, 18, 191, 242, 55, 141, 254, 11, 131, 205, 105, 129, 41, 21, 180, 111, 107, 36, 125, 227, 110, 25, 251, 22, 5, 153, 210, 1], -[1, 83, 207, 219, 187, 101, 159, 90, 17, 126, 178, 125, 95, 175, 133, 245, 32, 86, 199, 69, 73, 148, 205, 53, 30, 177, 42, 145, 213, 203, 144, 130, 253, 182, 200, 152, 23, 110, 135, 154, 189, 10, 59, 14, 134, 71, 239, 48, 129, 170, 232, 238, 222, 179, 208, 45, 137, 63, 89, 191, 176, 216, 195, 251, 16, 43, 228, 163, 165, 74, 231, 155, 15, 217, 21, 201, 235, 230, 72, 65, 255, 91, 100, 76, 140, 55, 196, 77, 223, 5, 158, 7, 67, 164, 248, 24, 193, 85, 116, 119, 111, 218, 104, 151, 197, 160, 173, 224, 88, 108, 226, 254, 8, 150, 114, 210, 211, 37, 244, 206, 136, 237, 139, 229, 246, 115, 36, 161, 256, 174, 50, 38, 70, 156, 98, 167, 240, 131, 79, 132, 162, 82, 124, 12, 225, 171, 58, 188, 184, 109, 52, 204, 227, 80, 215, 112, 44, 54, 113, 127, 4, 75, 57, 105, 234, 147, 122, 103, 68, 247, 198, 243, 123, 186, 18, 209, 128, 87, 25, 19, 35, 78, 49, 212, 120, 194, 168, 66, 81, 41, 62, 6, 241, 214, 29, 94, 92, 183, 26, 102, 242, 40, 236, 56, 22, 27, 185, 192, 2, 166, 157, 181, 117, 202, 61, 180, 34, 252, 99, 250, 190, 93, 9, 233, 64, 172, 141, 138, 146, 39, 153, 106, 60, 97, 84, 33, 169, 149, 31, 3, 249, 107, 143, 47, 46, 220, 13, 51, 121, 20, 118, 28, 11, 142, 221, 96, 1], -[1, 84, 117, 62, 68, 58, 246, 104, 255, 89, 23, 133, 121, 141, 22, 49, 4, 79, 211, 248, 15, 232, 213, 159, 249, 99, 92, 18, 227, 50, 88, 196, 16, 59, 73, 221, 60, 157, 81, 122, 225, 139, 111, 72, 137, 200, 95, 13, 64, 236, 35, 113, 240, 114, 67, 231, 129, 42, 187, 31, 34, 29, 123, 52, 256, 173, 140, 195, 189, 199, 11, 153, 2, 168, 234, 124, 136, 116, 235, 208, 253, 178, 46, 9, 242, 25, 44, 98, 8, 158, 165, 239, 30, 207, 169, 61, 241, 198, 184, 36, 197, 100, 176, 135, 32, 118, 146, 185, 120, 57, 162, 244, 193, 21, 222, 144, 17, 143, 190, 26, 128, 215, 70, 226, 223, 228, 134, 205, 1, 84, 117, 62, 68, 58, 246, 104, 255, 89, 23, 133, 121, 141, 22, 49, 4, 79, 211, 248, 15, 232, 213, 159, 249, 99, 92, 18, 227, 50, 88, 196, 16, 59, 73, 221, 60, 157, 81, 122, 225, 139, 111, 72, 137, 200, 95, 13, 64, 236, 35, 113, 240, 114, 67, 231, 129, 42, 187, 31, 34, 29, 123, 52, 256, 173, 140, 195, 189, 199, 11, 153, 2, 168, 234, 124, 136, 116, 235, 208, 253, 178, 46, 9, 242, 25, 44, 98, 8, 158, 165, 239, 30, 207, 169, 61, 241, 198, 184, 36, 197, 100, 176, 135, 32, 118, 146, 185, 120, 57, 162, 244, 193, 21, 222, 144, 17, 143, 190, 26, 128, 215, 70, 226, 223, 228, 134, 205, 1], -[1, 85, 29, 152, 70, 39, 231, 103, 17, 160, 236, 14, 162, 149, 72, 209, 32, 150, 157, 238, 184, 220, 196, 212, 30, 237, 99, 191, 44, 142, 248, 6, 253, 174, 141, 163, 234, 101, 104, 102, 189, 131, 84, 201, 123, 175, 226, 192, 129, 171, 143, 76, 35, 148, 244, 180, 137, 80, 118, 7, 81, 203, 36, 233, 16, 75, 207, 119, 92, 110, 98, 106, 15, 247, 178, 224, 22, 71, 124, 3, 255, 87, 199, 210, 117, 179, 52, 51, 223, 194, 42, 229, 190, 216, 113, 96, 193, 214, 200, 38, 146, 74, 122, 90, 197, 40, 59, 132, 169, 230, 18, 245, 8, 166, 232, 188, 46, 55, 49, 53, 136, 252, 89, 112, 11, 164, 62, 130, 256, 172, 228, 105, 187, 218, 26, 154, 240, 97, 21, 243, 95, 108, 185, 48, 225, 107, 100, 19, 73, 37, 61, 45, 227, 20, 158, 66, 213, 115, 9, 251, 4, 83, 116, 94, 23, 156, 153, 155, 68, 126, 173, 56, 134, 82, 31, 65, 128, 86, 114, 181, 222, 109, 13, 77, 120, 177, 139, 250, 176, 54, 221, 24, 241, 182, 50, 138, 165, 147, 159, 151, 242, 10, 79, 33, 235, 186, 133, 254, 2, 170, 58, 47, 140, 78, 205, 206, 34, 63, 215, 28, 67, 41, 144, 161, 64, 43, 57, 219, 111, 183, 135, 167, 60, 217, 198, 125, 88, 27, 239, 12, 249, 91, 25, 69, 211, 202, 208, 204, 121, 5, 168, 145, 246, 93, 195, 127, 1], -[1, 86, 200, 238, 165, 55, 104, 206, 240, 80, 198, 66, 22, 93, 31, 96, 32, 182, 232, 163, 140, 218, 244, 167, 227, 247, 168, 56, 190, 149, 221, 245, 253, 170, 228, 76, 111, 37, 98, 204, 68, 194, 236, 250, 169, 142, 133, 130, 129, 43, 100, 119, 211, 156, 52, 103, 120, 40, 99, 33, 11, 175, 144, 48, 16, 91, 116, 210, 70, 109, 122, 212, 242, 252, 84, 28, 95, 203, 239, 251, 255, 85, 114, 38, 184, 147, 49, 102, 34, 97, 118, 125, 213, 71, 195, 65, 193, 150, 50, 188, 234, 78, 26, 180, 60, 20, 178, 145, 134, 216, 72, 24, 8, 174, 58, 105, 35, 183, 61, 106, 121, 126, 42, 14, 176, 230, 248, 254, 256, 171, 57, 19, 92, 202, 153, 51, 17, 177, 59, 191, 235, 164, 226, 161, 225, 75, 25, 94, 117, 39, 13, 90, 30, 10, 89, 201, 67, 108, 36, 12, 4, 87, 29, 181, 146, 220, 159, 53, 189, 63, 21, 7, 88, 115, 124, 127, 128, 214, 157, 138, 46, 101, 205, 154, 137, 217, 158, 224, 246, 82, 113, 209, 241, 166, 141, 47, 187, 148, 135, 45, 15, 5, 173, 229, 162, 54, 18, 6, 2, 172, 143, 219, 73, 110, 208, 155, 223, 160, 139, 132, 44, 186, 62, 192, 64, 107, 207, 69, 23, 179, 231, 77, 197, 237, 79, 112, 123, 41, 185, 233, 249, 83, 199, 152, 222, 74, 196, 151, 136, 131, 215, 243, 81, 27, 9, 3, 1], -[1, 87, 116, 69, 92, 37, 135, 180, 240, 63, 84, 112, 235, 142, 18, 24, 32, 214, 114, 152, 117, 156, 208, 106, 227, 217, 118, 243, 67, 175, 62, 254, 253, 166, 50, 238, 146, 109, 231, 51, 68, 5, 178, 66, 88, 203, 185, 161, 129, 172, 58, 163, 46, 147, 196, 90, 120, 160, 42, 56, 246, 71, 9, 12, 16, 107, 57, 76, 187, 78, 104, 53, 242, 237, 59, 250, 162, 216, 31, 127, 255, 83, 25, 119, 73, 183, 244, 154, 34, 131, 89, 33, 44, 230, 221, 209, 193, 86, 29, 210, 23, 202, 98, 45, 60, 80, 21, 28, 123, 164, 133, 6, 8, 182, 157, 38, 222, 39, 52, 155, 121, 247, 158, 125, 81, 108, 144, 192, 256, 170, 141, 188, 165, 220, 122, 77, 17, 194, 173, 145, 22, 115, 239, 233, 225, 43, 143, 105, 140, 101, 49, 151, 30, 40, 139, 14, 190, 82, 195, 3, 4, 91, 207, 19, 111, 148, 26, 206, 189, 252, 79, 191, 169, 54, 72, 96, 128, 85, 199, 94, 211, 110, 61, 167, 137, 97, 215, 201, 11, 186, 248, 245, 241, 150, 200, 181, 70, 179, 153, 204, 15, 20, 198, 7, 95, 41, 226, 130, 2, 174, 232, 138, 184, 74, 13, 103, 223, 126, 168, 224, 213, 27, 36, 48, 64, 171, 228, 47, 234, 55, 159, 212, 197, 177, 236, 229, 134, 93, 124, 251, 249, 75, 100, 219, 35, 218, 205, 102, 136, 10, 99, 132, 176, 149, 113, 65, 1], -[1, 88, 34, 165, 128, 213, 240, 46, 193, 22, 137, 234, 32, 246, 60, 140, 241, 134, 227, 187, 8, 190, 15, 35, 253, 162, 121, 111, 2, 176, 68, 73, 256, 169, 223, 92, 129, 44, 17, 211, 64, 235, 120, 23, 225, 11, 197, 117, 16, 123, 30, 70, 249, 67, 242, 222, 4, 95, 136, 146, 255, 81, 189, 184, 1, 88, 34, 165, 128, 213, 240, 46, 193, 22, 137, 234, 32, 246, 60, 140, 241, 134, 227, 187, 8, 190, 15, 35, 253, 162, 121, 111, 2, 176, 68, 73, 256, 169, 223, 92, 129, 44, 17, 211, 64, 235, 120, 23, 225, 11, 197, 117, 16, 123, 30, 70, 249, 67, 242, 222, 4, 95, 136, 146, 255, 81, 189, 184, 1, 88, 34, 165, 128, 213, 240, 46, 193, 22, 137, 234, 32, 246, 60, 140, 241, 134, 227, 187, 8, 190, 15, 35, 253, 162, 121, 111, 2, 176, 68, 73, 256, 169, 223, 92, 129, 44, 17, 211, 64, 235, 120, 23, 225, 11, 197, 117, 16, 123, 30, 70, 249, 67, 242, 222, 4, 95, 136, 146, 255, 81, 189, 184, 1, 88, 34, 165, 128, 213, 240, 46, 193, 22, 137, 234, 32, 246, 60, 140, 241, 134, 227, 187, 8, 190, 15, 35, 253, 162, 121, 111, 2, 176, 68, 73, 256, 169, 223, 92, 129, 44, 17, 211, 64, 235, 120, 23, 225, 11, 197, 117, 16, 123, 30, 70, 249, 67, 242, 222, 4, 95, 136, 146, 255, 81, 189, 184, 1], -[1, 89, 211, 18, 60, 200, 67, 52, 2, 178, 165, 36, 120, 143, 134, 104, 4, 99, 73, 72, 240, 29, 11, 208, 8, 198, 146, 144, 223, 58, 22, 159, 16, 139, 35, 31, 189, 116, 44, 61, 32, 21, 70, 62, 121, 232, 88, 122, 64, 42, 140, 124, 242, 207, 176, 244, 128, 84, 23, 248, 227, 157, 95, 231, 256, 168, 46, 239, 197, 57, 190, 205, 255, 79, 92, 221, 137, 114, 123, 153, 253, 158, 184, 185, 17, 228, 246, 49, 249, 59, 111, 113, 34, 199, 235, 98, 241, 118, 222, 226, 68, 141, 213, 196, 225, 236, 187, 195, 136, 25, 169, 135, 193, 215, 117, 133, 15, 50, 81, 13, 129, 173, 234, 9, 30, 100, 162, 26, 1, 89, 211, 18, 60, 200, 67, 52, 2, 178, 165, 36, 120, 143, 134, 104, 4, 99, 73, 72, 240, 29, 11, 208, 8, 198, 146, 144, 223, 58, 22, 159, 16, 139, 35, 31, 189, 116, 44, 61, 32, 21, 70, 62, 121, 232, 88, 122, 64, 42, 140, 124, 242, 207, 176, 244, 128, 84, 23, 248, 227, 157, 95, 231, 256, 168, 46, 239, 197, 57, 190, 205, 255, 79, 92, 221, 137, 114, 123, 153, 253, 158, 184, 185, 17, 228, 246, 49, 249, 59, 111, 113, 34, 199, 235, 98, 241, 118, 222, 226, 68, 141, 213, 196, 225, 236, 187, 195, 136, 25, 169, 135, 193, 215, 117, 133, 15, 50, 81, 13, 129, 173, 234, 9, 30, 100, 162, 26, 1], -[1, 90, 133, 148, 213, 152, 59, 170, 137, 251, 231, 230, 140, 7, 116, 160, 8, 206, 36, 156, 162, 188, 215, 75, 68, 209, 49, 41, 92, 56, 157, 252, 64, 106, 31, 220, 11, 219, 178, 86, 30, 130, 135, 71, 222, 191, 228, 217, 255, 77, 248, 218, 88, 210, 139, 174, 240, 12, 52, 54, 234, 243, 25, 194, 241, 102, 185, 202, 190, 138, 84, 107, 121, 96, 159, 175, 73, 145, 200, 10, 129, 45, 195, 74, 235, 76, 158, 85, 197, 254, 244, 115, 70, 132, 58, 80, 4, 103, 18, 78, 81, 94, 236, 166, 34, 233, 153, 149, 46, 28, 207, 126, 32, 53, 144, 110, 134, 238, 89, 43, 15, 65, 196, 164, 111, 224, 114, 237, 256, 167, 124, 109, 44, 105, 198, 87, 120, 6, 26, 27, 117, 250, 141, 97, 249, 51, 221, 101, 95, 69, 42, 182, 189, 48, 208, 216, 165, 201, 100, 5, 193, 151, 226, 37, 246, 38, 79, 171, 227, 127, 122, 186, 35, 66, 29, 40, 2, 180, 9, 39, 169, 47, 118, 83, 17, 245, 205, 203, 23, 14, 232, 63, 16, 155, 72, 55, 67, 119, 173, 150, 136, 161, 98, 82, 184, 112, 57, 247, 128, 212, 62, 183, 22, 181, 99, 172, 60, 3, 13, 142, 187, 125, 199, 177, 253, 154, 239, 179, 176, 163, 21, 91, 223, 24, 104, 108, 211, 229, 50, 131, 225, 204, 113, 147, 123, 19, 168, 214, 242, 192, 61, 93, 146, 33, 143, 20, 1], -[1, 91, 57, 47, 165, 109, 153, 45, 240, 252, 59, 229, 22, 203, 226, 6, 32, 85, 25, 219, 140, 147, 13, 155, 227, 97, 89, 132, 190, 71, 36, 192, 253, 150, 29, 69, 111, 78, 159, 77, 68, 20, 21, 112, 169, 216, 124, 233, 129, 174, 157, 152, 211, 183, 205, 151, 120, 126, 158, 243, 11, 230, 113, 3, 16, 171, 141, 238, 70, 202, 135, 206, 242, 177, 173, 66, 95, 164, 18, 96, 255, 75, 143, 163, 184, 39, 208, 167, 34, 10, 139, 56, 213, 108, 62, 245, 193, 87, 207, 76, 234, 220, 231, 204, 60, 63, 79, 250, 134, 115, 185, 130, 8, 214, 199, 119, 35, 101, 196, 103, 121, 217, 215, 33, 176, 82, 9, 48, 256, 166, 200, 210, 92, 148, 104, 212, 17, 5, 198, 28, 235, 54, 31, 251, 225, 172, 232, 38, 117, 110, 244, 102, 30, 160, 168, 125, 67, 186, 221, 65, 4, 107, 228, 188, 146, 179, 98, 180, 189, 237, 236, 145, 88, 41, 133, 24, 128, 83, 100, 105, 46, 74, 52, 106, 137, 131, 99, 14, 246, 27, 144, 254, 241, 86, 116, 19, 187, 55, 122, 51, 15, 80, 84, 191, 162, 93, 239, 161, 2, 182, 114, 94, 73, 218, 49, 90, 223, 247, 118, 201, 44, 149, 195, 12, 64, 170, 50, 181, 23, 37, 26, 53, 197, 194, 178, 7, 123, 142, 72, 127, 249, 43, 58, 138, 222, 156, 61, 154, 136, 40, 42, 224, 81, 175, 248, 209, 1], -[1, 92, 240, 235, 32, 117, 227, 67, 253, 146, 68, 88, 129, 46, 120, 246, 16, 187, 242, 162, 255, 73, 34, 44, 193, 23, 60, 123, 8, 222, 121, 81, 256, 165, 17, 22, 225, 140, 30, 190, 4, 111, 189, 169, 128, 211, 137, 11, 241, 70, 15, 95, 2, 184, 223, 213, 64, 234, 197, 134, 249, 35, 136, 176, 1, 92, 240, 235, 32, 117, 227, 67, 253, 146, 68, 88, 129, 46, 120, 246, 16, 187, 242, 162, 255, 73, 34, 44, 193, 23, 60, 123, 8, 222, 121, 81, 256, 165, 17, 22, 225, 140, 30, 190, 4, 111, 189, 169, 128, 211, 137, 11, 241, 70, 15, 95, 2, 184, 223, 213, 64, 234, 197, 134, 249, 35, 136, 176, 1, 92, 240, 235, 32, 117, 227, 67, 253, 146, 68, 88, 129, 46, 120, 246, 16, 187, 242, 162, 255, 73, 34, 44, 193, 23, 60, 123, 8, 222, 121, 81, 256, 165, 17, 22, 225, 140, 30, 190, 4, 111, 189, 169, 128, 211, 137, 11, 241, 70, 15, 95, 2, 184, 223, 213, 64, 234, 197, 134, 249, 35, 136, 176, 1, 92, 240, 235, 32, 117, 227, 67, 253, 146, 68, 88, 129, 46, 120, 246, 16, 187, 242, 162, 255, 73, 34, 44, 193, 23, 60, 123, 8, 222, 121, 81, 256, 165, 17, 22, 225, 140, 30, 190, 4, 111, 189, 169, 128, 211, 137, 11, 241, 70, 15, 95, 2, 184, 223, 213, 64, 234, 197, 134, 249, 35, 136, 176, 1], -[1, 93, 168, 204, 211, 91, 239, 125, 60, 183, 57, 161, 67, 63, 205, 47, 2, 186, 79, 151, 165, 182, 221, 250, 120, 109, 114, 65, 134, 126, 153, 94, 4, 115, 158, 45, 73, 107, 185, 243, 240, 218, 228, 130, 11, 252, 49, 188, 8, 230, 59, 90, 146, 214, 113, 229, 223, 179, 199, 3, 22, 247, 98, 119, 16, 203, 118, 180, 35, 171, 226, 201, 189, 101, 141, 6, 44, 237, 196, 238, 32, 149, 236, 103, 70, 85, 195, 145, 121, 202, 25, 12, 88, 217, 135, 219, 64, 41, 215, 206, 140, 170, 133, 33, 242, 147, 50, 24, 176, 177, 13, 181, 128, 82, 173, 155, 23, 83, 9, 66, 227, 37, 100, 48, 95, 97, 26, 105, 256, 164, 89, 53, 46, 166, 18, 132, 197, 74, 200, 96, 190, 194, 52, 210, 255, 71, 178, 106, 92, 75, 36, 7, 137, 148, 143, 192, 123, 131, 104, 163, 253, 142, 99, 212, 184, 150, 72, 14, 17, 39, 29, 127, 246, 5, 208, 69, 249, 27, 198, 167, 111, 43, 144, 28, 34, 78, 58, 254, 235, 10, 159, 138, 241, 54, 139, 77, 222, 86, 31, 56, 68, 156, 116, 251, 213, 20, 61, 19, 225, 108, 21, 154, 187, 172, 62, 112, 136, 55, 232, 245, 169, 40, 122, 38, 193, 216, 42, 51, 117, 87, 124, 224, 15, 110, 207, 233, 81, 80, 244, 76, 129, 175, 84, 102, 234, 174, 248, 191, 30, 220, 157, 209, 162, 160, 231, 152, 1], -[1, 94, 98, 217, 95, 192, 58, 55, 30, 250, 113, 85, 23, 106, 198, 108, 129, 47, 49, 237, 176, 96, 29, 156, 15, 125, 185, 171, 140, 53, 99, 54, 193, 152, 153, 247, 88, 48, 143, 78, 136, 191, 221, 214, 70, 155, 178, 27, 225, 76, 205, 252, 44, 24, 200, 39, 68, 224, 239, 107, 35, 206, 89, 142, 241, 38, 231, 126, 22, 12, 100, 148, 34, 112, 248, 182, 146, 103, 173, 71, 249, 19, 244, 63, 11, 6, 50, 74, 17, 56, 124, 91, 73, 180, 215, 164, 253, 138, 122, 160, 134, 3, 25, 37, 137, 28, 62, 174, 165, 90, 236, 82, 255, 69, 61, 80, 67, 130, 141, 147, 197, 14, 31, 87, 211, 45, 118, 41, 256, 163, 159, 40, 162, 65, 199, 202, 227, 7, 144, 172, 234, 151, 59, 149, 128, 210, 208, 20, 81, 161, 228, 101, 242, 132, 72, 86, 117, 204, 158, 203, 64, 105, 104, 10, 169, 209, 114, 179, 121, 66, 36, 43, 187, 102, 79, 230, 32, 181, 52, 5, 213, 233, 57, 218, 189, 33, 18, 150, 222, 51, 168, 115, 16, 219, 26, 131, 235, 245, 157, 109, 223, 145, 9, 75, 111, 154, 84, 186, 8, 238, 13, 194, 246, 251, 207, 183, 240, 201, 133, 166, 184, 77, 42, 93, 4, 119, 135, 97, 123, 254, 232, 220, 120, 229, 195, 83, 92, 167, 21, 175, 2, 188, 196, 177, 190, 127, 116, 110, 60, 243, 226, 170, 46, 212, 139, 216, 1], -[1, 95, 30, 23, 129, 176, 15, 140, 193, 88, 136, 70, 225, 44, 68, 35, 241, 22, 34, 146, 249, 11, 17, 73, 253, 134, 137, 165, 255, 67, 197, 211, 256, 162, 227, 234, 128, 81, 242, 117, 64, 169, 121, 187, 32, 213, 189, 222, 16, 235, 223, 111, 8, 246, 240, 184, 4, 123, 120, 92, 2, 190, 60, 46, 1, 95, 30, 23, 129, 176, 15, 140, 193, 88, 136, 70, 225, 44, 68, 35, 241, 22, 34, 146, 249, 11, 17, 73, 253, 134, 137, 165, 255, 67, 197, 211, 256, 162, 227, 234, 128, 81, 242, 117, 64, 169, 121, 187, 32, 213, 189, 222, 16, 235, 223, 111, 8, 246, 240, 184, 4, 123, 120, 92, 2, 190, 60, 46, 1, 95, 30, 23, 129, 176, 15, 140, 193, 88, 136, 70, 225, 44, 68, 35, 241, 22, 34, 146, 249, 11, 17, 73, 253, 134, 137, 165, 255, 67, 197, 211, 256, 162, 227, 234, 128, 81, 242, 117, 64, 169, 121, 187, 32, 213, 189, 222, 16, 235, 223, 111, 8, 246, 240, 184, 4, 123, 120, 92, 2, 190, 60, 46, 1, 95, 30, 23, 129, 176, 15, 140, 193, 88, 136, 70, 225, 44, 68, 35, 241, 22, 34, 146, 249, 11, 17, 73, 253, 134, 137, 165, 255, 67, 197, 211, 256, 162, 227, 234, 128, 81, 242, 117, 64, 169, 121, 187, 32, 213, 189, 222, 16, 235, 223, 111, 8, 246, 240, 184, 4, 123, 120, 92, 2, 190, 60, 46, 1], -[1, 96, 221, 142, 11, 28, 118, 20, 121, 51, 13, 220, 46, 47, 143, 107, 249, 3, 31, 149, 169, 33, 84, 97, 60, 106, 153, 39, 146, 138, 141, 172, 64, 233, 9, 93, 190, 250, 99, 252, 34, 180, 61, 202, 117, 181, 157, 166, 2, 192, 185, 27, 22, 56, 236, 40, 242, 102, 26, 183, 92, 94, 29, 214, 241, 6, 62, 41, 81, 66, 168, 194, 120, 212, 49, 78, 35, 19, 25, 87, 128, 209, 18, 186, 123, 243, 198, 247, 68, 103, 122, 147, 234, 105, 57, 75, 4, 127, 113, 54, 44, 112, 215, 80, 227, 204, 52, 109, 184, 188, 58, 171, 225, 12, 124, 82, 162, 132, 79, 131, 240, 167, 98, 156, 70, 38, 50, 174, 256, 161, 36, 115, 246, 229, 139, 237, 136, 206, 244, 37, 211, 210, 114, 150, 8, 254, 226, 108, 88, 224, 173, 160, 197, 151, 104, 218, 111, 119, 116, 85, 193, 24, 248, 164, 67, 7, 158, 5, 223, 77, 196, 55, 140, 76, 100, 91, 255, 65, 72, 230, 235, 201, 21, 217, 15, 155, 231, 74, 165, 163, 228, 43, 16, 251, 195, 216, 176, 191, 89, 63, 137, 45, 208, 179, 222, 238, 232, 170, 129, 48, 239, 71, 134, 14, 59, 10, 189, 154, 135, 110, 23, 152, 200, 182, 253, 130, 144, 203, 213, 145, 42, 177, 30, 53, 205, 148, 73, 69, 199, 86, 32, 245, 133, 175, 95, 125, 178, 126, 17, 90, 159, 101, 187, 219, 207, 83, 1], -[1, 97, 157, 66, 234, 82, 244, 24, 15, 170, 42, 219, 169, 202, 62, 103, 225, 237, 116, 201, 222, 203, 159, 3, 34, 214, 198, 188, 246, 218, 72, 45, 253, 126, 143, 250, 92, 186, 52, 161, 197, 91, 89, 152, 95, 220, 9, 102, 128, 80, 50, 224, 140, 216, 135, 245, 121, 172, 236, 19, 44, 156, 226, 77, 16, 10, 199, 28, 146, 27, 49, 127, 240, 150, 158, 163, 134, 148, 221, 106, 2, 194, 57, 132, 211, 164, 231, 48, 30, 83, 84, 181, 81, 147, 124, 206, 193, 217, 232, 145, 187, 149, 61, 6, 68, 171, 139, 119, 235, 179, 144, 90, 249, 252, 29, 243, 184, 115, 104, 65, 137, 182, 178, 47, 190, 183, 18, 204, 256, 160, 100, 191, 23, 175, 13, 233, 242, 87, 215, 38, 88, 55, 195, 154, 32, 20, 141, 56, 35, 54, 98, 254, 223, 43, 59, 69, 11, 39, 185, 212, 4, 131, 114, 7, 165, 71, 205, 96, 60, 166, 168, 105, 162, 37, 248, 155, 129, 177, 207, 33, 117, 41, 122, 12, 136, 85, 21, 238, 213, 101, 31, 180, 241, 247, 58, 229, 111, 230, 208, 130, 17, 107, 99, 94, 123, 109, 36, 151, 255, 63, 200, 125, 46, 93, 26, 209, 227, 174, 173, 76, 176, 110, 133, 51, 64, 40, 25, 112, 70, 108, 196, 251, 189, 86, 118, 138, 22, 78, 113, 167, 8, 5, 228, 14, 73, 142, 153, 192, 120, 75, 79, 210, 67, 74, 239, 53, 1], -[1, 98, 95, 58, 30, 113, 23, 198, 129, 49, 176, 29, 15, 185, 140, 99, 193, 153, 88, 143, 136, 221, 70, 178, 225, 205, 44, 200, 68, 239, 35, 89, 241, 231, 22, 100, 34, 248, 146, 173, 249, 244, 11, 50, 17, 124, 73, 215, 253, 122, 134, 25, 137, 62, 165, 236, 255, 61, 67, 141, 197, 31, 211, 118, 256, 159, 162, 199, 227, 144, 234, 59, 128, 208, 81, 228, 242, 72, 117, 158, 64, 104, 169, 114, 121, 36, 187, 79, 32, 52, 213, 57, 189, 18, 222, 168, 16, 26, 235, 157, 223, 9, 111, 84, 8, 13, 246, 207, 240, 133, 184, 42, 4, 135, 123, 232, 120, 195, 92, 21, 2, 196, 190, 116, 60, 226, 46, 139, 1, 98, 95, 58, 30, 113, 23, 198, 129, 49, 176, 29, 15, 185, 140, 99, 193, 153, 88, 143, 136, 221, 70, 178, 225, 205, 44, 200, 68, 239, 35, 89, 241, 231, 22, 100, 34, 248, 146, 173, 249, 244, 11, 50, 17, 124, 73, 215, 253, 122, 134, 25, 137, 62, 165, 236, 255, 61, 67, 141, 197, 31, 211, 118, 256, 159, 162, 199, 227, 144, 234, 59, 128, 208, 81, 228, 242, 72, 117, 158, 64, 104, 169, 114, 121, 36, 187, 79, 32, 52, 213, 57, 189, 18, 222, 168, 16, 26, 235, 157, 223, 9, 111, 84, 8, 13, 246, 207, 240, 133, 184, 42, 4, 135, 123, 232, 120, 195, 92, 21, 2, 196, 190, 116, 60, 226, 46, 139, 1], -[1, 99, 35, 124, 197, 228, 213, 13, 2, 198, 70, 248, 137, 199, 169, 26, 4, 139, 140, 239, 17, 141, 81, 52, 8, 21, 23, 221, 34, 25, 162, 104, 16, 42, 46, 185, 68, 50, 67, 208, 32, 84, 92, 113, 136, 100, 134, 159, 64, 168, 184, 226, 15, 200, 11, 61, 128, 79, 111, 195, 30, 143, 22, 122, 256, 158, 222, 133, 60, 29, 44, 244, 255, 59, 187, 9, 120, 58, 88, 231, 253, 118, 117, 18, 240, 116, 176, 205, 249, 236, 234, 36, 223, 232, 95, 153, 241, 215, 211, 72, 189, 207, 190, 49, 225, 173, 165, 144, 121, 157, 123, 98, 193, 89, 73, 31, 242, 57, 246, 196, 129, 178, 146, 62, 227, 114, 235, 135, 1, 99, 35, 124, 197, 228, 213, 13, 2, 198, 70, 248, 137, 199, 169, 26, 4, 139, 140, 239, 17, 141, 81, 52, 8, 21, 23, 221, 34, 25, 162, 104, 16, 42, 46, 185, 68, 50, 67, 208, 32, 84, 92, 113, 136, 100, 134, 159, 64, 168, 184, 226, 15, 200, 11, 61, 128, 79, 111, 195, 30, 143, 22, 122, 256, 158, 222, 133, 60, 29, 44, 244, 255, 59, 187, 9, 120, 58, 88, 231, 253, 118, 117, 18, 240, 116, 176, 205, 249, 236, 234, 36, 223, 232, 95, 153, 241, 215, 211, 72, 189, 207, 190, 49, 225, 173, 165, 144, 121, 157, 123, 98, 193, 89, 73, 31, 242, 57, 246, 196, 129, 178, 146, 62, 227, 114, 235, 135, 1], -[1, 100, 234, 13, 15, 215, 169, 195, 225, 141, 222, 98, 34, 59, 246, 185, 253, 114, 92, 205, 197, 168, 95, 248, 128, 207, 140, 122, 121, 21, 44, 31, 16, 58, 146, 208, 240, 99, 134, 36, 2, 200, 211, 26, 30, 173, 81, 133, 193, 25, 187, 196, 68, 118, 235, 113, 249, 228, 184, 153, 137, 79, 190, 239, 256, 157, 23, 244, 242, 42, 88, 62, 32, 116, 35, 159, 223, 198, 11, 72, 4, 143, 165, 52, 60, 89, 162, 9, 129, 50, 117, 135, 136, 236, 213, 226, 241, 199, 111, 49, 17, 158, 123, 221, 255, 57, 46, 231, 227, 84, 176, 124, 64, 232, 70, 61, 189, 139, 22, 144, 8, 29, 73, 104, 120, 178, 67, 18, 1, 100, 234, 13, 15, 215, 169, 195, 225, 141, 222, 98, 34, 59, 246, 185, 253, 114, 92, 205, 197, 168, 95, 248, 128, 207, 140, 122, 121, 21, 44, 31, 16, 58, 146, 208, 240, 99, 134, 36, 2, 200, 211, 26, 30, 173, 81, 133, 193, 25, 187, 196, 68, 118, 235, 113, 249, 228, 184, 153, 137, 79, 190, 239, 256, 157, 23, 244, 242, 42, 88, 62, 32, 116, 35, 159, 223, 198, 11, 72, 4, 143, 165, 52, 60, 89, 162, 9, 129, 50, 117, 135, 136, 236, 213, 226, 241, 199, 111, 49, 17, 158, 123, 221, 255, 57, 46, 231, 227, 84, 176, 124, 64, 232, 70, 61, 189, 139, 22, 144, 8, 29, 73, 104, 120, 178, 67, 18, 1], -[1, 101, 178, 245, 73, 177, 144, 152, 189, 71, 232, 45, 176, 43, 231, 201, 255, 55, 158, 24, 111, 160, 226, 210, 136, 115, 50, 167, 162, 171, 52, 112, 4, 147, 198, 209, 35, 194, 62, 94, 242, 27, 157, 180, 190, 172, 153, 33, 249, 220, 118, 96, 187, 126, 133, 69, 30, 203, 200, 154, 134, 170, 208, 191, 16, 74, 21, 65, 140, 5, 248, 119, 197, 108, 114, 206, 246, 174, 98, 132, 225, 109, 215, 127, 234, 247, 18, 19, 120, 41, 29, 102, 22, 166, 61, 250, 64, 39, 84, 3, 46, 20, 221, 219, 17, 175, 199, 53, 213, 182, 135, 14, 129, 179, 89, 251, 165, 217, 72, 76, 223, 164, 116, 151, 88, 150, 244, 229, 256, 156, 79, 12, 184, 80, 113, 105, 68, 186, 25, 212, 81, 214, 26, 56, 2, 202, 99, 233, 146, 97, 31, 47, 121, 142, 207, 90, 95, 86, 205, 145, 253, 110, 59, 48, 222, 63, 195, 163, 15, 230, 100, 77, 67, 85, 104, 224, 8, 37, 139, 161, 70, 131, 124, 188, 227, 54, 57, 103, 123, 87, 49, 66, 241, 183, 236, 192, 117, 252, 9, 138, 60, 149, 143, 51, 11, 83, 159, 125, 32, 148, 42, 130, 23, 10, 239, 238, 137, 216, 228, 155, 235, 91, 196, 7, 193, 218, 173, 254, 211, 237, 36, 38, 240, 82, 58, 204, 44, 75, 122, 243, 128, 78, 168, 6, 92, 40, 185, 181, 34, 93, 141, 106, 169, 107, 13, 28, 1], -[1, 102, 124, 55, 213, 138, 198, 150, 137, 96, 26, 82, 140, 145, 141, 247, 8, 45, 221, 183, 162, 76, 42, 172, 68, 254, 208, 142, 92, 132, 100, 177, 64, 103, 226, 179, 11, 94, 79, 91, 30, 233, 122, 108, 222, 28, 29, 131, 255, 53, 9, 147, 88, 238, 118, 214, 240, 65, 205, 93, 234, 224, 232, 20, 241, 167, 72, 148, 190, 105, 173, 170, 121, 6, 98, 230, 73, 250, 57, 160, 129, 51, 62, 156, 235, 69, 99, 75, 197, 48, 13, 41, 70, 201, 199, 252, 4, 151, 239, 220, 81, 38, 21, 86, 34, 127, 104, 71, 46, 66, 50, 217, 32, 180, 113, 218, 134, 47, 168, 174, 15, 245, 61, 54, 111, 14, 143, 194, 256, 155, 133, 202, 44, 119, 59, 107, 120, 161, 231, 175, 117, 112, 116, 10, 249, 212, 36, 74, 95, 181, 215, 85, 189, 3, 49, 115, 165, 125, 157, 80, 193, 154, 31, 78, 246, 163, 178, 166, 227, 24, 135, 149, 35, 229, 228, 126, 2, 204, 248, 110, 169, 19, 139, 43, 17, 192, 52, 164, 23, 33, 25, 237, 16, 90, 185, 109, 67, 152, 84, 87, 136, 251, 159, 27, 184, 7, 200, 97, 128, 206, 195, 101, 22, 188, 158, 182, 60, 209, 244, 216, 187, 56, 58, 5, 253, 106, 18, 37, 176, 219, 236, 171, 223, 130, 153, 186, 211, 191, 207, 40, 225, 77, 144, 39, 123, 210, 89, 83, 242, 12, 196, 203, 146, 243, 114, 63, 1], -[1, 103, 72, 220, 44, 163, 84, 171, 137, 233, 98, 71, 117, 229, 200, 40, 8, 53, 62, 218, 95, 19, 158, 83, 68, 65, 13, 54, 165, 33, 58, 63, 64, 167, 239, 202, 246, 152, 236, 150, 30, 6, 104, 175, 35, 7, 207, 247, 255, 51, 113, 74, 169, 188, 89, 172, 240, 48, 61, 115, 23, 56, 114, 177, 241, 151, 133, 78, 67, 219, 198, 91, 121, 127, 231, 149, 184, 191, 141, 131, 129, 180, 36, 110, 22, 210, 42, 214, 197, 245, 49, 164, 187, 243, 100, 20, 4, 155, 31, 109, 176, 138, 79, 170, 34, 161, 135, 27, 211, 145, 29, 160, 32, 212, 248, 101, 123, 76, 118, 75, 15, 3, 52, 216, 146, 132, 232, 252, 256, 154, 185, 37, 213, 94, 173, 86, 120, 24, 159, 186, 140, 28, 57, 217, 249, 204, 195, 39, 162, 238, 99, 174, 189, 192, 244, 203, 92, 224, 199, 194, 193, 90, 18, 55, 11, 105, 21, 107, 227, 251, 153, 82, 222, 250, 50, 10, 2, 206, 144, 183, 88, 69, 168, 85, 17, 209, 196, 142, 234, 201, 143, 80, 16, 106, 124, 179, 190, 38, 59, 166, 136, 130, 26, 108, 73, 66, 116, 126, 128, 77, 221, 147, 235, 47, 215, 43, 60, 12, 208, 93, 70, 14, 157, 237, 253, 102, 226, 148, 81, 119, 178, 87, 223, 96, 122, 230, 46, 112, 228, 97, 225, 45, 9, 156, 134, 181, 139, 182, 242, 254, 205, 41, 111, 125, 25, 5, 1], -[1, 104, 22, 232, 227, 221, 111, 236, 129, 52, 11, 116, 242, 239, 184, 118, 193, 26, 134, 58, 121, 248, 92, 59, 225, 13, 67, 29, 189, 124, 46, 158, 241, 135, 162, 143, 223, 62, 23, 79, 249, 196, 81, 200, 240, 31, 140, 168, 253, 98, 169, 100, 120, 144, 70, 84, 255, 49, 213, 50, 60, 72, 35, 42, 256, 153, 235, 25, 30, 36, 146, 21, 128, 205, 246, 141, 15, 18, 73, 139, 64, 231, 123, 199, 136, 9, 165, 198, 32, 244, 190, 228, 68, 133, 211, 99, 16, 122, 95, 114, 34, 195, 234, 178, 8, 61, 176, 57, 17, 226, 117, 89, 4, 159, 88, 157, 137, 113, 187, 173, 2, 208, 44, 207, 197, 185, 222, 215, 1, 104, 22, 232, 227, 221, 111, 236, 129, 52, 11, 116, 242, 239, 184, 118, 193, 26, 134, 58, 121, 248, 92, 59, 225, 13, 67, 29, 189, 124, 46, 158, 241, 135, 162, 143, 223, 62, 23, 79, 249, 196, 81, 200, 240, 31, 140, 168, 253, 98, 169, 100, 120, 144, 70, 84, 255, 49, 213, 50, 60, 72, 35, 42, 256, 153, 235, 25, 30, 36, 146, 21, 128, 205, 246, 141, 15, 18, 73, 139, 64, 231, 123, 199, 136, 9, 165, 198, 32, 244, 190, 228, 68, 133, 211, 99, 16, 122, 95, 114, 34, 195, 234, 178, 8, 61, 176, 57, 17, 226, 117, 89, 4, 159, 88, 157, 137, 113, 187, 173, 2, 208, 44, 207, 197, 185, 222, 215, 1], -[1, 105, 231, 97, 162, 48, 157, 37, 30, 66, 248, 83, 234, 155, 84, 82, 129, 181, 244, 177, 81, 24, 207, 147, 15, 33, 124, 170, 117, 206, 42, 41, 193, 219, 122, 217, 169, 12, 232, 202, 136, 145, 62, 85, 187, 103, 21, 149, 225, 238, 61, 237, 213, 6, 116, 101, 68, 201, 31, 171, 222, 180, 139, 203, 241, 119, 159, 247, 235, 3, 58, 179, 34, 229, 144, 214, 111, 90, 198, 230, 249, 188, 208, 252, 246, 130, 29, 218, 17, 243, 72, 107, 184, 45, 99, 115, 253, 94, 104, 126, 123, 65, 143, 109, 137, 250, 36, 182, 92, 151, 178, 186, 255, 47, 52, 63, 190, 161, 200, 183, 197, 125, 18, 91, 46, 204, 89, 93, 256, 152, 26, 160, 95, 209, 100, 220, 227, 191, 9, 174, 23, 102, 173, 175, 128, 76, 13, 80, 176, 233, 50, 110, 242, 224, 133, 87, 140, 51, 215, 216, 64, 38, 135, 40, 88, 245, 25, 55, 121, 112, 195, 172, 70, 154, 236, 108, 32, 19, 196, 20, 44, 251, 141, 156, 189, 56, 226, 86, 35, 77, 118, 54, 16, 138, 98, 10, 22, 254, 199, 78, 223, 28, 113, 43, 146, 167, 59, 27, 8, 69, 49, 5, 11, 127, 228, 39, 240, 14, 185, 150, 73, 212, 158, 142, 4, 163, 153, 131, 134, 192, 114, 148, 120, 7, 221, 75, 165, 106, 79, 71, 2, 210, 205, 194, 67, 96, 57, 74, 60, 132, 239, 166, 211, 53, 168, 164, 1], -[1, 106, 185, 78, 44, 38, 173, 91, 137, 130, 159, 149, 117, 66, 57, 131, 8, 77, 195, 110, 95, 47, 99, 214, 68, 12, 244, 164, 165, 14, 199, 20, 64, 102, 18, 109, 246, 119, 21, 170, 30, 96, 153, 27, 35, 112, 50, 160, 255, 45, 144, 101, 169, 181, 168, 75, 240, 254, 196, 216, 23, 125, 143, 252, 241, 103, 124, 37, 67, 163, 59, 86, 121, 233, 26, 186, 184, 229, 116, 217, 129, 53, 221, 39, 22, 19, 215, 174, 197, 65, 208, 203, 187, 33, 157, 194, 4, 167, 226, 55, 176, 152, 178, 107, 34, 6, 122, 82, 211, 7, 228, 10, 32, 51, 9, 183, 123, 188, 139, 85, 15, 48, 205, 142, 146, 56, 25, 80, 256, 151, 72, 179, 213, 219, 84, 166, 120, 127, 98, 108, 140, 191, 200, 126, 249, 180, 62, 147, 162, 210, 158, 43, 189, 245, 13, 93, 92, 243, 58, 237, 193, 155, 239, 148, 11, 138, 236, 87, 227, 161, 104, 230, 222, 145, 207, 97, 2, 212, 113, 156, 88, 76, 89, 182, 17, 3, 61, 41, 234, 132, 114, 5, 16, 154, 133, 220, 190, 94, 198, 171, 136, 24, 231, 71, 73, 28, 141, 40, 128, 204, 36, 218, 235, 238, 42, 83, 60, 192, 49, 54, 70, 224, 100, 63, 253, 90, 31, 202, 81, 105, 79, 150, 223, 251, 135, 175, 46, 250, 29, 247, 225, 206, 248, 74, 134, 69, 118, 172, 242, 209, 52, 115, 111, 201, 232, 177, 1], -[1, 107, 141, 181, 92, 78, 122, 204, 240, 237, 173, 7, 235, 216, 239, 130, 32, 83, 143, 138, 117, 183, 49, 103, 227, 131, 139, 224, 67, 230, 195, 48, 253, 86, 207, 47, 146, 202, 26, 212, 68, 80, 79, 229, 88, 164, 72, 251, 129, 182, 199, 219, 46, 39, 61, 102, 120, 247, 215, 132, 246, 108, 248, 65, 16, 170, 200, 69, 187, 220, 153, 180, 242, 194, 198, 112, 162, 115, 226, 24, 255, 43, 232, 152, 73, 101, 13, 106, 34, 40, 168, 243, 44, 82, 36, 254, 193, 91, 228, 238, 23, 148, 159, 51, 60, 252, 236, 66, 123, 54, 124, 161, 8, 85, 100, 163, 222, 110, 205, 90, 121, 97, 99, 56, 81, 186, 113, 12, 256, 150, 116, 76, 165, 179, 135, 53, 17, 20, 84, 250, 22, 41, 18, 127, 225, 174, 114, 119, 140, 74, 208, 154, 30, 126, 118, 33, 190, 27, 62, 209, 4, 171, 50, 210, 111, 55, 231, 45, 189, 177, 178, 28, 169, 93, 185, 6, 128, 75, 58, 38, 211, 218, 196, 155, 137, 10, 42, 125, 11, 149, 9, 192, 241, 87, 57, 188, 70, 37, 104, 77, 15, 63, 59, 145, 95, 142, 31, 233, 2, 214, 25, 105, 184, 156, 244, 151, 223, 217, 89, 14, 213, 175, 221, 3, 64, 166, 29, 19, 234, 109, 98, 206, 197, 5, 21, 191, 134, 203, 133, 96, 249, 172, 157, 94, 35, 147, 52, 167, 136, 160, 158, 201, 176, 71, 144, 245, 1], -[1, 108, 99, 155, 35, 182, 124, 28, 197, 202, 228, 209, 213, 131, 13, 119, 2, 216, 198, 53, 70, 107, 248, 56, 137, 147, 199, 161, 169, 5, 26, 238, 4, 175, 139, 106, 140, 214, 239, 112, 17, 37, 141, 65, 81, 10, 52, 219, 8, 93, 21, 212, 23, 171, 221, 224, 34, 74, 25, 130, 162, 20, 104, 181, 16, 186, 42, 167, 46, 85, 185, 191, 68, 148, 50, 3, 67, 40, 208, 105, 32, 115, 84, 77, 92, 170, 113, 125, 136, 39, 100, 6, 134, 80, 159, 210, 64, 230, 168, 154, 184, 83, 226, 250, 15, 78, 200, 12, 11, 160, 61, 163, 128, 203, 79, 51, 111, 166, 195, 243, 30, 156, 143, 24, 22, 63, 122, 69, 256, 149, 158, 102, 222, 75, 133, 229, 60, 55, 29, 48, 44, 126, 244, 138, 255, 41, 59, 204, 187, 150, 9, 201, 120, 110, 58, 96, 88, 252, 231, 19, 253, 82, 118, 151, 117, 43, 18, 145, 240, 220, 116, 192, 176, 247, 205, 38, 249, 164, 236, 45, 234, 86, 36, 33, 223, 183, 232, 127, 95, 237, 153, 76, 241, 71, 215, 90, 211, 172, 72, 66, 189, 109, 207, 254, 190, 217, 49, 152, 225, 142, 173, 180, 165, 87, 144, 132, 121, 218, 157, 251, 123, 177, 98, 47, 193, 27, 89, 103, 73, 174, 31, 7, 242, 179, 57, 245, 246, 97, 196, 94, 129, 54, 178, 206, 146, 91, 62, 14, 227, 101, 114, 233, 235, 194, 135, 188, 1], -[1, 109, 59, 6, 140, 97, 36, 69, 68, 216, 157, 151, 11, 171, 135, 66, 255, 39, 139, 245, 234, 63, 185, 119, 121, 82, 200, 212, 235, 172, 244, 125, 4, 179, 236, 24, 46, 131, 144, 19, 15, 93, 114, 90, 44, 170, 26, 7, 249, 156, 42, 209, 165, 252, 226, 219, 227, 71, 29, 77, 169, 174, 205, 243, 16, 202, 173, 96, 184, 10, 62, 76, 60, 115, 199, 103, 176, 166, 104, 28, 225, 110, 168, 65, 146, 237, 133, 105, 137, 27, 116, 51, 162, 182, 49, 201, 64, 37, 178, 127, 222, 40, 248, 47, 240, 203, 25, 155, 190, 150, 159, 112, 129, 183, 158, 3, 70, 177, 18, 163, 34, 108, 207, 204, 134, 214, 196, 33, 256, 148, 198, 251, 117, 160, 221, 188, 189, 41, 100, 106, 246, 86, 122, 191, 2, 218, 118, 12, 23, 194, 72, 138, 136, 175, 57, 45, 22, 85, 13, 132, 253, 78, 21, 233, 211, 126, 113, 238, 242, 164, 143, 167, 213, 87, 231, 250, 8, 101, 215, 48, 92, 5, 31, 38, 30, 186, 228, 180, 88, 83, 52, 14, 241, 55, 84, 161, 73, 247, 195, 181, 197, 142, 58, 154, 81, 91, 153, 229, 32, 147, 89, 192, 111, 20, 124, 152, 120, 230, 141, 206, 95, 75, 208, 56, 193, 220, 79, 130, 35, 217, 9, 210, 17, 54, 232, 102, 67, 107, 98, 145, 128, 74, 99, 254, 187, 80, 239, 94, 223, 149, 50, 53, 123, 43, 61, 224, 1], -[1, 110, 21, 254, 184, 194, 9, 219, 189, 230, 114, 204, 81, 172, 159, 14, 255, 37, 215, 6, 146, 126, 239, 76, 136, 54, 29, 106, 95, 170, 196, 229, 4, 183, 84, 245, 222, 5, 36, 105, 242, 149, 199, 45, 67, 174, 122, 56, 249, 148, 89, 24, 70, 247, 185, 47, 30, 216, 116, 167, 123, 166, 13, 145, 16, 218, 79, 209, 117, 20, 144, 163, 197, 82, 25, 180, 11, 182, 231, 224, 225, 78, 99, 96, 23, 217, 226, 188, 120, 93, 207, 154, 235, 150, 52, 66, 64, 101, 59, 65, 211, 80, 62, 138, 17, 71, 100, 206, 44, 214, 153, 125, 129, 55, 139, 127, 92, 97, 133, 238, 223, 115, 57, 102, 169, 86, 208, 7, 256, 147, 236, 3, 73, 63, 248, 38, 68, 27, 143, 53, 176, 85, 98, 243, 2, 220, 42, 251, 111, 131, 18, 181, 121, 203, 228, 151, 162, 87, 61, 28, 253, 74, 173, 12, 35, 252, 221, 152, 15, 108, 58, 212, 190, 83, 135, 201, 8, 109, 168, 233, 187, 10, 72, 210, 227, 41, 141, 90, 134, 91, 244, 112, 241, 39, 178, 48, 140, 237, 113, 94, 60, 175, 232, 77, 246, 75, 26, 33, 32, 179, 158, 161, 234, 40, 31, 69, 137, 164, 50, 103, 22, 107, 205, 191, 193, 156, 198, 192, 46, 177, 195, 119, 240, 186, 157, 51, 213, 43, 104, 132, 128, 202, 118, 130, 165, 160, 124, 19, 34, 142, 200, 155, 88, 171, 49, 250, 1], -[1, 111, 242, 134, 225, 46, 223, 81, 253, 70, 60, 235, 128, 73, 136, 190, 16, 234, 17, 88, 2, 222, 227, 11, 193, 92, 189, 162, 249, 140, 120, 213, 256, 146, 15, 123, 32, 211, 34, 176, 4, 187, 197, 22, 129, 184, 121, 67, 241, 23, 240, 169, 255, 35, 30, 246, 64, 165, 68, 95, 8, 117, 137, 44, 1, 111, 242, 134, 225, 46, 223, 81, 253, 70, 60, 235, 128, 73, 136, 190, 16, 234, 17, 88, 2, 222, 227, 11, 193, 92, 189, 162, 249, 140, 120, 213, 256, 146, 15, 123, 32, 211, 34, 176, 4, 187, 197, 22, 129, 184, 121, 67, 241, 23, 240, 169, 255, 35, 30, 246, 64, 165, 68, 95, 8, 117, 137, 44, 1, 111, 242, 134, 225, 46, 223, 81, 253, 70, 60, 235, 128, 73, 136, 190, 16, 234, 17, 88, 2, 222, 227, 11, 193, 92, 189, 162, 249, 140, 120, 213, 256, 146, 15, 123, 32, 211, 34, 176, 4, 187, 197, 22, 129, 184, 121, 67, 241, 23, 240, 169, 255, 35, 30, 246, 64, 165, 68, 95, 8, 117, 137, 44, 1, 111, 242, 134, 225, 46, 223, 81, 253, 70, 60, 235, 128, 73, 136, 190, 16, 234, 17, 88, 2, 222, 227, 11, 193, 92, 189, 162, 249, 140, 120, 213, 256, 146, 15, 123, 32, 211, 34, 176, 4, 187, 197, 22, 129, 184, 121, 67, 241, 23, 240, 169, 255, 35, 30, 246, 64, 165, 68, 95, 8, 117, 137, 44, 1], -[1, 112, 208, 166, 88, 90, 57, 216, 34, 210, 133, 247, 165, 233, 139, 148, 128, 201, 153, 174, 213, 212, 100, 149, 240, 152, 62, 5, 46, 12, 59, 183, 193, 28, 52, 170, 22, 151, 207, 54, 137, 181, 226, 126, 234, 251, 99, 37, 32, 243, 231, 172, 246, 53, 25, 230, 60, 38, 144, 194, 140, 3, 79, 110, 241, 7, 13, 171, 134, 102, 116, 142, 227, 238, 185, 160, 187, 127, 89, 202, 8, 125, 122, 43, 190, 206, 199, 186, 15, 138, 36, 177, 35, 65, 84, 156, 253, 66, 196, 107, 162, 154, 29, 164, 121, 188, 239, 40, 111, 96, 215, 179, 2, 224, 159, 75, 176, 180, 114, 175, 68, 163, 9, 237, 73, 209, 21, 39, 256, 145, 49, 91, 169, 167, 200, 41, 223, 47, 124, 10, 92, 24, 118, 109, 129, 56, 104, 83, 44, 45, 157, 108, 17, 105, 195, 252, 211, 245, 198, 74, 64, 229, 205, 87, 235, 106, 50, 203, 120, 76, 31, 131, 23, 6, 158, 220, 225, 14, 26, 85, 11, 204, 232, 27, 197, 219, 113, 63, 117, 254, 178, 147, 16, 250, 244, 86, 123, 155, 141, 115, 30, 19, 72, 97, 70, 130, 168, 55, 249, 132, 135, 214, 67, 51, 58, 71, 242, 119, 221, 80, 222, 192, 173, 101, 4, 191, 61, 150, 95, 103, 228, 93, 136, 69, 18, 217, 146, 161, 42, 78, 255, 33, 98, 182, 81, 77, 143, 82, 189, 94, 248, 20, 184, 48, 236, 218, 1], -[1, 113, 176, 99, 136, 205, 35, 100, 249, 124, 134, 236, 197, 159, 234, 228, 64, 36, 213, 168, 223, 13, 184, 232, 2, 226, 95, 198, 15, 153, 70, 200, 241, 248, 11, 215, 137, 61, 211, 199, 128, 72, 169, 79, 189, 26, 111, 207, 4, 195, 190, 139, 30, 49, 140, 143, 225, 239, 22, 173, 17, 122, 165, 141, 256, 144, 81, 158, 121, 52, 222, 157, 8, 133, 123, 21, 60, 98, 23, 29, 193, 221, 44, 89, 34, 244, 73, 25, 255, 31, 162, 59, 242, 104, 187, 57, 16, 9, 246, 42, 120, 196, 46, 58, 129, 185, 88, 178, 68, 231, 146, 50, 253, 62, 67, 118, 227, 208, 117, 114, 32, 18, 235, 84, 240, 135, 92, 116, 1, 113, 176, 99, 136, 205, 35, 100, 249, 124, 134, 236, 197, 159, 234, 228, 64, 36, 213, 168, 223, 13, 184, 232, 2, 226, 95, 198, 15, 153, 70, 200, 241, 248, 11, 215, 137, 61, 211, 199, 128, 72, 169, 79, 189, 26, 111, 207, 4, 195, 190, 139, 30, 49, 140, 143, 225, 239, 22, 173, 17, 122, 165, 141, 256, 144, 81, 158, 121, 52, 222, 157, 8, 133, 123, 21, 60, 98, 23, 29, 193, 221, 44, 89, 34, 244, 73, 25, 255, 31, 162, 59, 242, 104, 187, 57, 16, 9, 246, 42, 120, 196, 46, 58, 129, 185, 88, 178, 68, 231, 146, 50, 253, 62, 67, 118, 227, 208, 117, 114, 32, 18, 235, 84, 240, 135, 92, 116, 1], -[1, 114, 146, 196, 242, 89, 123, 144, 225, 207, 211, 153, 223, 236, 176, 18, 253, 58, 187, 244, 60, 158, 22, 195, 128, 200, 184, 159, 136, 84, 67, 185, 16, 25, 23, 52, 17, 139, 169, 248, 2, 228, 35, 135, 227, 178, 246, 31, 193, 157, 165, 49, 189, 215, 95, 36, 249, 116, 117, 231, 120, 59, 44, 133, 256, 143, 111, 61, 15, 168, 134, 113, 32, 50, 46, 104, 34, 21, 81, 239, 4, 199, 70, 13, 197, 99, 235, 62, 129, 57, 73, 98, 121, 173, 190, 72, 241, 232, 234, 205, 240, 118, 88, 9, 255, 29, 222, 122, 30, 79, 11, 226, 64, 100, 92, 208, 68, 42, 162, 221, 8, 141, 140, 26, 137, 198, 213, 124, 1, 114, 146, 196, 242, 89, 123, 144, 225, 207, 211, 153, 223, 236, 176, 18, 253, 58, 187, 244, 60, 158, 22, 195, 128, 200, 184, 159, 136, 84, 67, 185, 16, 25, 23, 52, 17, 139, 169, 248, 2, 228, 35, 135, 227, 178, 246, 31, 193, 157, 165, 49, 189, 215, 95, 36, 249, 116, 117, 231, 120, 59, 44, 133, 256, 143, 111, 61, 15, 168, 134, 113, 32, 50, 46, 104, 34, 21, 81, 239, 4, 199, 70, 13, 197, 99, 235, 62, 129, 57, 73, 98, 121, 173, 190, 72, 241, 232, 234, 205, 240, 118, 88, 9, 255, 29, 222, 122, 30, 79, 11, 226, 64, 100, 92, 208, 68, 42, 162, 221, 8, 141, 140, 26, 137, 198, 213, 124, 1], -[1, 115, 118, 206, 46, 150, 31, 224, 60, 218, 141, 24, 190, 5, 61, 76, 2, 230, 236, 155, 92, 43, 62, 191, 120, 179, 25, 48, 123, 10, 122, 152, 4, 203, 215, 53, 184, 86, 124, 125, 240, 101, 50, 96, 246, 20, 244, 47, 8, 149, 173, 106, 111, 172, 248, 250, 223, 202, 100, 192, 235, 40, 231, 94, 16, 41, 89, 212, 222, 87, 239, 243, 189, 147, 200, 127, 213, 80, 205, 188, 32, 82, 178, 167, 187, 174, 221, 229, 121, 37, 143, 254, 169, 160, 153, 119, 64, 164, 99, 77, 117, 91, 185, 201, 242, 74, 29, 251, 81, 63, 49, 238, 128, 71, 198, 154, 234, 182, 113, 145, 227, 148, 58, 245, 162, 126, 98, 219, 256, 142, 139, 51, 211, 107, 226, 33, 197, 39, 116, 233, 67, 252, 196, 181, 255, 27, 21, 102, 165, 214, 195, 66, 137, 78, 232, 209, 134, 247, 135, 105, 253, 54, 42, 204, 73, 171, 133, 132, 17, 156, 207, 161, 11, 237, 13, 210, 249, 108, 84, 151, 146, 85, 9, 7, 34, 55, 157, 65, 22, 217, 26, 163, 241, 216, 168, 45, 35, 170, 18, 14, 68, 110, 57, 130, 44, 177, 52, 69, 225, 175, 79, 90, 70, 83, 36, 28, 136, 220, 114, 3, 88, 97, 104, 138, 193, 93, 158, 180, 140, 166, 72, 56, 15, 183, 228, 6, 176, 194, 208, 19, 129, 186, 59, 103, 23, 75, 144, 112, 30, 109, 199, 12, 95, 131, 159, 38, 1], -[1, 116, 92, 135, 240, 84, 235, 18, 32, 114, 117, 208, 227, 118, 67, 62, 253, 50, 146, 231, 68, 178, 88, 185, 129, 58, 46, 196, 120, 42, 246, 9, 16, 57, 187, 104, 242, 59, 162, 31, 255, 25, 73, 244, 34, 89, 44, 221, 193, 29, 23, 98, 60, 21, 123, 133, 8, 157, 222, 52, 121, 158, 81, 144, 256, 141, 165, 122, 17, 173, 22, 239, 225, 143, 140, 49, 30, 139, 190, 195, 4, 207, 111, 26, 189, 79, 169, 72, 128, 199, 211, 61, 137, 215, 11, 248, 241, 200, 70, 153, 15, 198, 95, 226, 2, 232, 184, 13, 223, 168, 213, 36, 64, 228, 234, 159, 197, 236, 134, 124, 249, 100, 35, 205, 136, 99, 176, 113, 1, 116, 92, 135, 240, 84, 235, 18, 32, 114, 117, 208, 227, 118, 67, 62, 253, 50, 146, 231, 68, 178, 88, 185, 129, 58, 46, 196, 120, 42, 246, 9, 16, 57, 187, 104, 242, 59, 162, 31, 255, 25, 73, 244, 34, 89, 44, 221, 193, 29, 23, 98, 60, 21, 123, 133, 8, 157, 222, 52, 121, 158, 81, 144, 256, 141, 165, 122, 17, 173, 22, 239, 225, 143, 140, 49, 30, 139, 190, 195, 4, 207, 111, 26, 189, 79, 169, 72, 128, 199, 211, 61, 137, 215, 11, 248, 241, 200, 70, 153, 15, 198, 95, 226, 2, 232, 184, 13, 223, 168, 213, 36, 64, 228, 234, 159, 197, 236, 134, 124, 249, 100, 35, 205, 136, 99, 176, 113, 1], -[1, 117, 68, 246, 255, 23, 121, 22, 4, 211, 15, 213, 249, 92, 227, 88, 16, 73, 60, 81, 225, 111, 137, 95, 64, 35, 240, 67, 129, 187, 34, 123, 256, 140, 189, 11, 2, 234, 136, 235, 253, 46, 242, 44, 8, 165, 30, 169, 241, 184, 197, 176, 32, 146, 120, 162, 193, 222, 17, 190, 128, 70, 223, 134, 1, 117, 68, 246, 255, 23, 121, 22, 4, 211, 15, 213, 249, 92, 227, 88, 16, 73, 60, 81, 225, 111, 137, 95, 64, 35, 240, 67, 129, 187, 34, 123, 256, 140, 189, 11, 2, 234, 136, 235, 253, 46, 242, 44, 8, 165, 30, 169, 241, 184, 197, 176, 32, 146, 120, 162, 193, 222, 17, 190, 128, 70, 223, 134, 1, 117, 68, 246, 255, 23, 121, 22, 4, 211, 15, 213, 249, 92, 227, 88, 16, 73, 60, 81, 225, 111, 137, 95, 64, 35, 240, 67, 129, 187, 34, 123, 256, 140, 189, 11, 2, 234, 136, 235, 253, 46, 242, 44, 8, 165, 30, 169, 241, 184, 197, 176, 32, 146, 120, 162, 193, 222, 17, 190, 128, 70, 223, 134, 1, 117, 68, 246, 255, 23, 121, 22, 4, 211, 15, 213, 249, 92, 227, 88, 16, 73, 60, 81, 225, 111, 137, 95, 64, 35, 240, 67, 129, 187, 34, 123, 256, 140, 189, 11, 2, 234, 136, 235, 253, 46, 242, 44, 8, 165, 30, 169, 241, 184, 197, 176, 32, 146, 120, 162, 193, 222, 17, 190, 128, 70, 223, 134, 1], -[1, 118, 46, 31, 60, 141, 190, 61, 2, 236, 92, 62, 120, 25, 123, 122, 4, 215, 184, 124, 240, 50, 246, 244, 8, 173, 111, 248, 223, 100, 235, 231, 16, 89, 222, 239, 189, 200, 213, 205, 32, 178, 187, 221, 121, 143, 169, 153, 64, 99, 117, 185, 242, 29, 81, 49, 128, 198, 234, 113, 227, 58, 162, 98, 256, 139, 211, 226, 197, 116, 67, 196, 255, 21, 165, 195, 137, 232, 134, 135, 253, 42, 73, 133, 17, 207, 11, 13, 249, 84, 146, 9, 34, 157, 22, 26, 241, 168, 35, 18, 68, 57, 44, 52, 225, 79, 70, 36, 136, 114, 88, 104, 193, 158, 140, 72, 15, 228, 176, 208, 129, 59, 23, 144, 30, 199, 95, 159, 1, 118, 46, 31, 60, 141, 190, 61, 2, 236, 92, 62, 120, 25, 123, 122, 4, 215, 184, 124, 240, 50, 246, 244, 8, 173, 111, 248, 223, 100, 235, 231, 16, 89, 222, 239, 189, 200, 213, 205, 32, 178, 187, 221, 121, 143, 169, 153, 64, 99, 117, 185, 242, 29, 81, 49, 128, 198, 234, 113, 227, 58, 162, 98, 256, 139, 211, 226, 197, 116, 67, 196, 255, 21, 165, 195, 137, 232, 134, 135, 253, 42, 73, 133, 17, 207, 11, 13, 249, 84, 146, 9, 34, 157, 22, 26, 241, 168, 35, 18, 68, 57, 44, 52, 225, 79, 70, 36, 136, 114, 88, 104, 193, 158, 140, 72, 15, 228, 176, 208, 129, 59, 23, 144, 30, 199, 95, 159, 1], -[1, 119, 26, 10, 162, 3, 100, 78, 30, 229, 9, 43, 234, 90, 173, 27, 129, 188, 13, 5, 81, 130, 50, 39, 15, 243, 133, 150, 117, 45, 215, 142, 193, 94, 135, 131, 169, 65, 25, 148, 136, 250, 195, 75, 187, 151, 236, 71, 225, 47, 196, 194, 213, 161, 141, 74, 68, 125, 226, 166, 222, 204, 118, 164, 241, 152, 98, 97, 235, 209, 199, 37, 34, 191, 113, 83, 111, 102, 59, 82, 249, 76, 49, 177, 246, 233, 228, 147, 17, 224, 185, 170, 184, 51, 158, 41, 253, 38, 153, 217, 123, 245, 114, 202, 137, 112, 221, 85, 92, 154, 79, 149, 255, 19, 205, 237, 190, 251, 57, 101, 197, 56, 239, 171, 46, 77, 168, 203, 256, 138, 231, 247, 95, 254, 157, 179, 227, 28, 248, 214, 23, 167, 84, 230, 128, 69, 244, 252, 176, 127, 207, 218, 242, 14, 124, 107, 140, 212, 42, 115, 64, 163, 122, 126, 88, 192, 232, 109, 121, 7, 62, 182, 70, 106, 21, 186, 32, 210, 61, 63, 44, 96, 116, 183, 189, 132, 31, 91, 35, 53, 139, 93, 16, 105, 159, 160, 22, 48, 58, 220, 223, 66, 144, 174, 146, 155, 198, 175, 8, 181, 208, 80, 11, 24, 29, 110, 240, 33, 72, 87, 73, 206, 99, 216, 4, 219, 104, 40, 134, 12, 143, 55, 120, 145, 36, 172, 165, 103, 178, 108, 2, 238, 52, 20, 67, 6, 200, 156, 60, 201, 18, 86, 211, 180, 89, 54, 1], -[1, 120, 8, 189, 64, 227, 255, 17, 241, 136, 129, 60, 4, 223, 32, 242, 256, 137, 249, 68, 193, 30, 2, 240, 16, 121, 128, 197, 253, 34, 225, 15, 1, 120, 8, 189, 64, 227, 255, 17, 241, 136, 129, 60, 4, 223, 32, 242, 256, 137, 249, 68, 193, 30, 2, 240, 16, 121, 128, 197, 253, 34, 225, 15, 1, 120, 8, 189, 64, 227, 255, 17, 241, 136, 129, 60, 4, 223, 32, 242, 256, 137, 249, 68, 193, 30, 2, 240, 16, 121, 128, 197, 253, 34, 225, 15, 1, 120, 8, 189, 64, 227, 255, 17, 241, 136, 129, 60, 4, 223, 32, 242, 256, 137, 249, 68, 193, 30, 2, 240, 16, 121, 128, 197, 253, 34, 225, 15, 1, 120, 8, 189, 64, 227, 255, 17, 241, 136, 129, 60, 4, 223, 32, 242, 256, 137, 249, 68, 193, 30, 2, 240, 16, 121, 128, 197, 253, 34, 225, 15, 1, 120, 8, 189, 64, 227, 255, 17, 241, 136, 129, 60, 4, 223, 32, 242, 256, 137, 249, 68, 193, 30, 2, 240, 16, 121, 128, 197, 253, 34, 225, 15, 1, 120, 8, 189, 64, 227, 255, 17, 241, 136, 129, 60, 4, 223, 32, 242, 256, 137, 249, 68, 193, 30, 2, 240, 16, 121, 128, 197, 253, 34, 225, 15, 1, 120, 8, 189, 64, 227, 255, 17, 241, 136, 129, 60, 4, 223, 32, 242, 256, 137, 249, 68, 193, 30, 2, 240, 16, 121, 128, 197, 253, 34, 225, 15, 1], -[1, 121, 249, 60, 64, 34, 2, 242, 241, 120, 128, 68, 4, 227, 225, 240, 256, 136, 8, 197, 193, 223, 255, 15, 16, 137, 129, 189, 253, 30, 32, 17, 1, 121, 249, 60, 64, 34, 2, 242, 241, 120, 128, 68, 4, 227, 225, 240, 256, 136, 8, 197, 193, 223, 255, 15, 16, 137, 129, 189, 253, 30, 32, 17, 1, 121, 249, 60, 64, 34, 2, 242, 241, 120, 128, 68, 4, 227, 225, 240, 256, 136, 8, 197, 193, 223, 255, 15, 16, 137, 129, 189, 253, 30, 32, 17, 1, 121, 249, 60, 64, 34, 2, 242, 241, 120, 128, 68, 4, 227, 225, 240, 256, 136, 8, 197, 193, 223, 255, 15, 16, 137, 129, 189, 253, 30, 32, 17, 1, 121, 249, 60, 64, 34, 2, 242, 241, 120, 128, 68, 4, 227, 225, 240, 256, 136, 8, 197, 193, 223, 255, 15, 16, 137, 129, 189, 253, 30, 32, 17, 1, 121, 249, 60, 64, 34, 2, 242, 241, 120, 128, 68, 4, 227, 225, 240, 256, 136, 8, 197, 193, 223, 255, 15, 16, 137, 129, 189, 253, 30, 32, 17, 1, 121, 249, 60, 64, 34, 2, 242, 241, 120, 128, 68, 4, 227, 225, 240, 256, 136, 8, 197, 193, 223, 255, 15, 16, 137, 129, 189, 253, 30, 32, 17, 1, 121, 249, 60, 64, 34, 2, 242, 241, 120, 128, 68, 4, 227, 225, 240, 256, 136, 8, 197, 193, 223, 255, 15, 16, 137, 129, 189, 253, 30, 32, 17, 1], -[1, 122, 235, 143, 227, 195, 146, 79, 129, 61, 246, 200, 242, 226, 73, 168, 193, 159, 123, 100, 121, 113, 165, 84, 225, 208, 190, 50, 189, 185, 211, 42, 241, 104, 95, 25, 223, 221, 234, 21, 249, 52, 176, 141, 240, 239, 117, 139, 253, 26, 88, 199, 120, 248, 187, 198, 255, 13, 44, 228, 60, 124, 222, 99, 256, 135, 22, 114, 30, 62, 111, 178, 128, 196, 11, 57, 15, 31, 184, 89, 64, 98, 134, 157, 136, 144, 92, 173, 32, 49, 67, 207, 68, 72, 46, 215, 16, 153, 162, 232, 34, 36, 23, 236, 8, 205, 81, 116, 17, 18, 140, 118, 4, 231, 169, 58, 137, 9, 70, 59, 2, 244, 213, 29, 197, 133, 35, 158, 1, 122, 235, 143, 227, 195, 146, 79, 129, 61, 246, 200, 242, 226, 73, 168, 193, 159, 123, 100, 121, 113, 165, 84, 225, 208, 190, 50, 189, 185, 211, 42, 241, 104, 95, 25, 223, 221, 234, 21, 249, 52, 176, 141, 240, 239, 117, 139, 253, 26, 88, 199, 120, 248, 187, 198, 255, 13, 44, 228, 60, 124, 222, 99, 256, 135, 22, 114, 30, 62, 111, 178, 128, 196, 11, 57, 15, 31, 184, 89, 64, 98, 134, 157, 136, 144, 92, 173, 32, 49, 67, 207, 68, 72, 46, 215, 16, 153, 162, 232, 34, 36, 23, 236, 8, 205, 81, 116, 17, 18, 140, 118, 4, 231, 169, 58, 137, 9, 70, 59, 2, 244, 213, 29, 197, 133, 35, 158, 1], -[1, 123, 223, 187, 128, 67, 17, 35, 193, 95, 120, 111, 32, 81, 197, 73, 241, 88, 30, 92, 8, 213, 242, 211, 253, 22, 136, 23, 2, 246, 189, 117, 256, 134, 34, 70, 129, 190, 240, 222, 64, 162, 137, 146, 225, 176, 60, 184, 16, 169, 227, 165, 249, 44, 15, 46, 4, 235, 121, 234, 255, 11, 68, 140, 1, 123, 223, 187, 128, 67, 17, 35, 193, 95, 120, 111, 32, 81, 197, 73, 241, 88, 30, 92, 8, 213, 242, 211, 253, 22, 136, 23, 2, 246, 189, 117, 256, 134, 34, 70, 129, 190, 240, 222, 64, 162, 137, 146, 225, 176, 60, 184, 16, 169, 227, 165, 249, 44, 15, 46, 4, 235, 121, 234, 255, 11, 68, 140, 1, 123, 223, 187, 128, 67, 17, 35, 193, 95, 120, 111, 32, 81, 197, 73, 241, 88, 30, 92, 8, 213, 242, 211, 253, 22, 136, 23, 2, 246, 189, 117, 256, 134, 34, 70, 129, 190, 240, 222, 64, 162, 137, 146, 225, 176, 60, 184, 16, 169, 227, 165, 249, 44, 15, 46, 4, 235, 121, 234, 255, 11, 68, 140, 1, 123, 223, 187, 128, 67, 17, 35, 193, 95, 120, 111, 32, 81, 197, 73, 241, 88, 30, 92, 8, 213, 242, 211, 253, 22, 136, 23, 2, 246, 189, 117, 256, 134, 34, 70, 129, 190, 240, 222, 64, 162, 137, 146, 225, 176, 60, 184, 16, 169, 227, 165, 249, 44, 15, 46, 4, 235, 121, 234, 255, 11, 68, 140, 1], -[1, 124, 213, 198, 137, 26, 140, 141, 8, 221, 162, 42, 68, 208, 92, 100, 64, 226, 11, 79, 30, 122, 222, 29, 255, 9, 88, 118, 240, 205, 234, 232, 241, 72, 190, 173, 121, 98, 73, 57, 129, 62, 235, 99, 197, 13, 70, 199, 4, 239, 81, 21, 34, 104, 46, 50, 32, 113, 134, 168, 15, 61, 111, 143, 256, 133, 44, 59, 120, 231, 117, 116, 249, 36, 95, 215, 189, 49, 165, 157, 193, 31, 246, 178, 227, 135, 35, 228, 2, 248, 169, 139, 17, 52, 23, 25, 16, 185, 67, 84, 136, 159, 184, 200, 128, 195, 22, 158, 60, 244, 187, 58, 253, 18, 176, 236, 223, 153, 211, 207, 225, 144, 123, 89, 242, 196, 146, 114, 1, 124, 213, 198, 137, 26, 140, 141, 8, 221, 162, 42, 68, 208, 92, 100, 64, 226, 11, 79, 30, 122, 222, 29, 255, 9, 88, 118, 240, 205, 234, 232, 241, 72, 190, 173, 121, 98, 73, 57, 129, 62, 235, 99, 197, 13, 70, 199, 4, 239, 81, 21, 34, 104, 46, 50, 32, 113, 134, 168, 15, 61, 111, 143, 256, 133, 44, 59, 120, 231, 117, 116, 249, 36, 95, 215, 189, 49, 165, 157, 193, 31, 246, 178, 227, 135, 35, 228, 2, 248, 169, 139, 17, 52, 23, 25, 16, 185, 67, 84, 136, 159, 184, 200, 128, 195, 22, 158, 60, 244, 187, 58, 253, 18, 176, 236, 223, 153, 211, 207, 225, 144, 123, 89, 242, 196, 146, 114, 1], -[1, 125, 205, 182, 134, 45, 228, 230, 223, 119, 226, 237, 70, 12, 215, 147, 128, 66, 26, 166, 190, 106, 143, 142, 17, 69, 144, 10, 222, 251, 21, 55, 193, 224, 244, 174, 162, 204, 57, 186, 120, 94, 185, 252, 146, 3, 118, 101, 32, 145, 135, 170, 176, 155, 100, 164, 197, 210, 36, 131, 184, 127, 198, 78, 241, 56, 61, 172, 169, 51, 207, 175, 30, 152, 239, 63, 165, 65, 158, 218, 8, 229, 98, 171, 44, 103, 25, 41, 242, 181, 9, 97, 46, 96, 178, 148, 253, 14, 208, 43, 235, 77, 116, 108, 136, 38, 124, 80, 234, 209, 168, 183, 2, 250, 153, 107, 11, 90, 199, 203, 189, 238, 195, 217, 140, 24, 173, 37, 256, 132, 52, 75, 123, 212, 29, 27, 34, 138, 31, 20, 187, 245, 42, 110, 129, 191, 231, 91, 67, 151, 114, 115, 240, 188, 113, 247, 35, 6, 236, 202, 64, 33, 13, 83, 95, 53, 200, 71, 137, 163, 72, 5, 111, 254, 139, 156, 225, 112, 122, 87, 81, 102, 157, 93, 60, 47, 221, 126, 73, 130, 59, 179, 16, 201, 196, 85, 88, 206, 50, 82, 227, 105, 18, 194, 92, 192, 99, 39, 249, 28, 159, 86, 213, 154, 232, 216, 15, 76, 248, 160, 211, 161, 79, 109, 4, 243, 49, 214, 22, 180, 141, 149, 121, 219, 133, 177, 23, 48, 89, 74, 255, 7, 104, 150, 246, 167, 58, 54, 68, 19, 62, 40, 117, 233, 84, 220, 1], -[1, 126, 199, 145, 23, 71, 208, 251, 15, 91, 158, 119, 88, 37, 36, 167, 225, 80, 57, 243, 35, 41, 26, 192, 34, 172, 84, 47, 11, 101, 133, 53, 253, 10, 232, 191, 165, 230, 196, 24, 197, 150, 139, 38, 162, 109, 113, 103, 128, 194, 29, 56, 117, 93, 153, 3, 121, 83, 178, 69, 213, 110, 239, 45, 16, 217, 100, 7, 111, 108, 244, 161, 240, 171, 215, 105, 123, 78, 62, 102, 2, 252, 141, 33, 46, 142, 159, 245, 30, 182, 59, 238, 176, 74, 72, 77, 193, 160, 114, 229, 70, 82, 52, 127, 68, 87, 168, 94, 22, 202, 9, 106, 249, 20, 207, 125, 73, 203, 135, 48, 137, 43, 21, 76, 67, 218, 226, 206, 256, 131, 58, 112, 234, 186, 49, 6, 242, 166, 99, 138, 169, 220, 221, 90, 32, 177, 200, 14, 222, 216, 231, 65, 223, 85, 173, 210, 246, 156, 124, 204, 4, 247, 25, 66, 92, 27, 61, 233, 60, 107, 118, 219, 95, 148, 144, 154, 129, 63, 228, 201, 140, 164, 104, 254, 136, 174, 79, 188, 44, 147, 18, 212, 241, 40, 157, 250, 146, 149, 13, 96, 17, 86, 42, 152, 134, 179, 195, 155, 255, 5, 116, 224, 211, 115, 98, 12, 227, 75, 198, 19, 81, 183, 185, 180, 64, 97, 143, 28, 187, 175, 205, 130, 189, 170, 89, 163, 235, 55, 248, 151, 8, 237, 50, 132, 184, 54, 122, 209, 120, 214, 236, 181, 190, 39, 31, 51, 1], -[1, 127, 195, 93, 246, 145, 168, 5, 121, 204, 208, 202, 211, 69, 25, 91, 249, 12, 239, 27, 88, 125, 198, 217, 60, 167, 135, 183, 111, 219, 57, 43, 64, 161, 144, 41, 67, 28, 215, 63, 34, 206, 205, 78, 140, 47, 58, 170, 2, 254, 133, 186, 235, 33, 79, 10, 242, 151, 159, 147, 165, 138, 50, 182, 241, 24, 221, 54, 176, 250, 139, 177, 120, 77, 13, 109, 222, 181, 114, 86, 128, 65, 31, 82, 134, 56, 173, 126, 68, 155, 153, 156, 23, 94, 116, 83, 4, 251, 9, 115, 213, 66, 158, 20, 227, 45, 61, 37, 73, 19, 100, 107, 225, 48, 185, 108, 95, 243, 21, 97, 240, 154, 26, 218, 187, 105, 228, 172, 256, 130, 62, 164, 11, 112, 89, 252, 136, 53, 49, 55, 46, 188, 232, 166, 8, 245, 18, 230, 169, 132, 59, 40, 197, 90, 122, 74, 146, 38, 200, 214, 193, 96, 113, 216, 190, 229, 42, 194, 223, 51, 52, 179, 117, 210, 199, 87, 255, 3, 124, 71, 22, 224, 178, 247, 15, 106, 98, 110, 92, 119, 207, 75, 16, 233, 36, 203, 81, 7, 118, 80, 137, 180, 244, 148, 35, 76, 143, 171, 129, 192, 226, 175, 123, 201, 84, 131, 189, 102, 104, 101, 234, 163, 141, 174, 253, 6, 248, 142, 44, 191, 99, 237, 30, 212, 196, 220, 184, 238, 157, 150, 32, 209, 72, 149, 162, 14, 236, 160, 17, 103, 231, 39, 70, 152, 29, 85, 1], -[1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1, 128, 193, 32, 241, 8, 253, 2, 256, 129, 64, 225, 16, 249, 4, 255, 1], -[1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1, 129, 193, 225, 241, 249, 253, 255, 256, 128, 64, 32, 16, 8, 4, 2, 1], -[1, 130, 195, 164, 246, 112, 168, 252, 121, 53, 208, 55, 211, 188, 25, 166, 249, 245, 239, 230, 88, 132, 198, 40, 60, 90, 135, 74, 111, 38, 57, 214, 64, 96, 144, 216, 67, 229, 215, 194, 34, 51, 205, 179, 140, 210, 58, 87, 2, 3, 133, 71, 235, 224, 79, 247, 242, 106, 159, 110, 165, 119, 50, 75, 241, 233, 221, 203, 176, 7, 139, 80, 120, 180, 13, 148, 222, 76, 114, 171, 128, 192, 31, 175, 134, 201, 173, 131, 68, 102, 153, 101, 23, 163, 116, 174, 4, 6, 9, 142, 213, 191, 158, 237, 227, 212, 61, 220, 73, 238, 100, 150, 225, 209, 185, 149, 95, 14, 21, 160, 240, 103, 26, 39, 187, 152, 228, 85, 256, 127, 62, 93, 11, 145, 89, 5, 136, 204, 49, 202, 46, 69, 232, 91, 8, 12, 18, 27, 169, 125, 59, 217, 197, 167, 122, 183, 146, 219, 200, 43, 193, 161, 113, 41, 190, 28, 42, 63, 223, 206, 52, 78, 117, 47, 199, 170, 255, 254, 124, 186, 22, 33, 178, 10, 15, 151, 98, 147, 92, 138, 207, 182, 16, 24, 36, 54, 81, 250, 118, 177, 137, 77, 244, 109, 35, 181, 143, 86, 129, 65, 226, 82, 123, 56, 84, 126, 189, 155, 104, 156, 234, 94, 141, 83, 253, 251, 248, 115, 44, 66, 99, 20, 30, 45, 196, 37, 184, 19, 157, 107, 32, 48, 72, 108, 162, 243, 236, 97, 17, 154, 231, 218, 70, 105, 29, 172, 1], -[1, 131, 199, 112, 23, 186, 208, 6, 15, 166, 158, 138, 88, 220, 36, 90, 225, 177, 57, 14, 35, 216, 26, 65, 34, 85, 84, 210, 11, 156, 133, 204, 253, 247, 232, 66, 165, 27, 196, 233, 197, 107, 139, 219, 162, 148, 113, 154, 128, 63, 29, 201, 117, 164, 153, 254, 121, 174, 178, 188, 213, 147, 239, 212, 16, 40, 100, 250, 111, 149, 244, 96, 240, 86, 215, 152, 123, 179, 62, 155, 2, 5, 141, 224, 46, 115, 159, 12, 30, 75, 59, 19, 176, 183, 72, 180, 193, 97, 114, 28, 70, 175, 52, 130, 68, 170, 168, 163, 22, 55, 9, 151, 249, 237, 207, 132, 73, 54, 135, 209, 137, 214, 21, 181, 67, 39, 226, 51, 256, 126, 58, 145, 234, 71, 49, 251, 242, 91, 99, 119, 169, 37, 221, 167, 32, 80, 200, 243, 222, 41, 231, 192, 223, 172, 173, 47, 246, 101, 124, 53, 4, 10, 25, 191, 92, 230, 61, 24, 60, 150, 118, 38, 95, 109, 144, 103, 129, 194, 228, 56, 140, 93, 104, 3, 136, 83, 79, 69, 44, 110, 18, 45, 241, 217, 157, 7, 146, 108, 13, 161, 17, 171, 42, 105, 134, 78, 195, 102, 255, 252, 116, 33, 211, 142, 98, 245, 227, 182, 198, 238, 81, 74, 185, 77, 64, 160, 143, 229, 187, 82, 205, 127, 189, 87, 89, 94, 235, 202, 248, 106, 8, 20, 50, 125, 184, 203, 122, 48, 120, 43, 236, 76, 190, 218, 31, 206, 1], -[1, 132, 205, 75, 134, 212, 228, 27, 223, 138, 226, 20, 70, 245, 215, 110, 128, 191, 26, 91, 190, 151, 143, 115, 17, 188, 144, 247, 222, 6, 21, 202, 193, 33, 244, 83, 162, 53, 57, 71, 120, 163, 185, 5, 146, 254, 118, 156, 32, 112, 135, 87, 176, 102, 100, 93, 197, 47, 36, 126, 184, 130, 198, 179, 241, 201, 61, 85, 169, 206, 207, 82, 30, 105, 239, 194, 165, 192, 158, 39, 8, 28, 98, 86, 44, 154, 25, 216, 242, 76, 9, 160, 46, 161, 178, 109, 253, 243, 208, 214, 235, 180, 116, 149, 136, 219, 124, 177, 234, 48, 168, 74, 2, 7, 153, 150, 11, 167, 199, 54, 189, 19, 195, 40, 140, 233, 173, 220, 256, 125, 52, 182, 123, 45, 29, 230, 34, 119, 31, 237, 187, 12, 42, 147, 129, 66, 231, 166, 67, 106, 114, 142, 240, 69, 113, 10, 35, 251, 236, 55, 64, 224, 13, 174, 95, 204, 200, 186, 137, 94, 72, 252, 111, 3, 139, 101, 225, 145, 122, 170, 81, 155, 157, 164, 60, 210, 221, 131, 73, 127, 59, 78, 16, 56, 196, 172, 88, 51, 50, 175, 227, 152, 18, 63, 92, 65, 99, 218, 249, 229, 159, 171, 213, 103, 232, 41, 15, 181, 248, 97, 211, 96, 79, 148, 4, 14, 49, 43, 22, 77, 141, 108, 121, 38, 133, 80, 23, 209, 89, 183, 255, 250, 104, 107, 246, 90, 58, 203, 68, 238, 62, 217, 117, 24, 84, 37, 1], -[1, 133, 213, 59, 137, 231, 140, 116, 8, 36, 162, 215, 68, 49, 92, 157, 64, 31, 11, 178, 30, 135, 222, 228, 255, 248, 88, 139, 240, 52, 234, 25, 241, 185, 190, 84, 121, 159, 73, 200, 129, 195, 235, 158, 197, 244, 70, 58, 4, 18, 81, 236, 34, 153, 46, 207, 32, 144, 134, 89, 15, 196, 111, 114, 256, 124, 44, 198, 120, 26, 117, 141, 249, 221, 95, 42, 189, 208, 165, 100, 193, 226, 246, 79, 227, 122, 35, 29, 2, 9, 169, 118, 17, 205, 23, 232, 16, 72, 67, 173, 136, 98, 184, 57, 128, 62, 22, 99, 60, 13, 187, 199, 253, 239, 176, 21, 223, 104, 211, 50, 225, 113, 123, 168, 242, 61, 146, 143, 1, 133, 213, 59, 137, 231, 140, 116, 8, 36, 162, 215, 68, 49, 92, 157, 64, 31, 11, 178, 30, 135, 222, 228, 255, 248, 88, 139, 240, 52, 234, 25, 241, 185, 190, 84, 121, 159, 73, 200, 129, 195, 235, 158, 197, 244, 70, 58, 4, 18, 81, 236, 34, 153, 46, 207, 32, 144, 134, 89, 15, 196, 111, 114, 256, 124, 44, 198, 120, 26, 117, 141, 249, 221, 95, 42, 189, 208, 165, 100, 193, 226, 246, 79, 227, 122, 35, 29, 2, 9, 169, 118, 17, 205, 23, 232, 16, 72, 67, 173, 136, 98, 184, 57, 128, 62, 22, 99, 60, 13, 187, 199, 253, 239, 176, 21, 223, 104, 211, 50, 225, 113, 123, 168, 242, 61, 146, 143, 1], -[1, 134, 223, 70, 128, 190, 17, 222, 193, 162, 120, 146, 32, 176, 197, 184, 241, 169, 30, 165, 8, 44, 242, 46, 253, 235, 136, 234, 2, 11, 189, 140, 256, 123, 34, 187, 129, 67, 240, 35, 64, 95, 137, 111, 225, 81, 60, 73, 16, 88, 227, 92, 249, 213, 15, 211, 4, 22, 121, 23, 255, 246, 68, 117, 1, 134, 223, 70, 128, 190, 17, 222, 193, 162, 120, 146, 32, 176, 197, 184, 241, 169, 30, 165, 8, 44, 242, 46, 253, 235, 136, 234, 2, 11, 189, 140, 256, 123, 34, 187, 129, 67, 240, 35, 64, 95, 137, 111, 225, 81, 60, 73, 16, 88, 227, 92, 249, 213, 15, 211, 4, 22, 121, 23, 255, 246, 68, 117, 1, 134, 223, 70, 128, 190, 17, 222, 193, 162, 120, 146, 32, 176, 197, 184, 241, 169, 30, 165, 8, 44, 242, 46, 253, 235, 136, 234, 2, 11, 189, 140, 256, 123, 34, 187, 129, 67, 240, 35, 64, 95, 137, 111, 225, 81, 60, 73, 16, 88, 227, 92, 249, 213, 15, 211, 4, 22, 121, 23, 255, 246, 68, 117, 1, 134, 223, 70, 128, 190, 17, 222, 193, 162, 120, 146, 32, 176, 197, 184, 241, 169, 30, 165, 8, 44, 242, 46, 253, 235, 136, 234, 2, 11, 189, 140, 256, 123, 34, 187, 129, 67, 240, 35, 64, 95, 137, 111, 225, 81, 60, 73, 16, 88, 227, 92, 249, 213, 15, 211, 4, 22, 121, 23, 255, 246, 68, 117, 1], -[1, 135, 235, 114, 227, 62, 146, 178, 129, 196, 246, 57, 242, 31, 73, 89, 193, 98, 123, 157, 121, 144, 165, 173, 225, 49, 190, 207, 189, 72, 211, 215, 241, 153, 95, 232, 223, 36, 234, 236, 249, 205, 176, 116, 240, 18, 117, 118, 253, 231, 88, 58, 120, 9, 187, 59, 255, 244, 44, 29, 60, 133, 222, 158, 256, 122, 22, 143, 30, 195, 111, 79, 128, 61, 11, 200, 15, 226, 184, 168, 64, 159, 134, 100, 136, 113, 92, 84, 32, 208, 67, 50, 68, 185, 46, 42, 16, 104, 162, 25, 34, 221, 23, 21, 8, 52, 81, 141, 17, 239, 140, 139, 4, 26, 169, 199, 137, 248, 70, 198, 2, 13, 213, 228, 197, 124, 35, 99, 1, 135, 235, 114, 227, 62, 146, 178, 129, 196, 246, 57, 242, 31, 73, 89, 193, 98, 123, 157, 121, 144, 165, 173, 225, 49, 190, 207, 189, 72, 211, 215, 241, 153, 95, 232, 223, 36, 234, 236, 249, 205, 176, 116, 240, 18, 117, 118, 253, 231, 88, 58, 120, 9, 187, 59, 255, 244, 44, 29, 60, 133, 222, 158, 256, 122, 22, 143, 30, 195, 111, 79, 128, 61, 11, 200, 15, 226, 184, 168, 64, 159, 134, 100, 136, 113, 92, 84, 32, 208, 67, 50, 68, 185, 46, 42, 16, 104, 162, 25, 34, 221, 23, 21, 8, 52, 81, 141, 17, 239, 140, 139, 4, 26, 169, 199, 137, 248, 70, 198, 2, 13, 213, 228, 197, 124, 35, 99, 1], -[1, 136, 249, 197, 64, 223, 2, 15, 241, 137, 128, 189, 4, 30, 225, 17, 256, 121, 8, 60, 193, 34, 255, 242, 16, 120, 129, 68, 253, 227, 32, 240, 1, 136, 249, 197, 64, 223, 2, 15, 241, 137, 128, 189, 4, 30, 225, 17, 256, 121, 8, 60, 193, 34, 255, 242, 16, 120, 129, 68, 253, 227, 32, 240, 1, 136, 249, 197, 64, 223, 2, 15, 241, 137, 128, 189, 4, 30, 225, 17, 256, 121, 8, 60, 193, 34, 255, 242, 16, 120, 129, 68, 253, 227, 32, 240, 1, 136, 249, 197, 64, 223, 2, 15, 241, 137, 128, 189, 4, 30, 225, 17, 256, 121, 8, 60, 193, 34, 255, 242, 16, 120, 129, 68, 253, 227, 32, 240, 1, 136, 249, 197, 64, 223, 2, 15, 241, 137, 128, 189, 4, 30, 225, 17, 256, 121, 8, 60, 193, 34, 255, 242, 16, 120, 129, 68, 253, 227, 32, 240, 1, 136, 249, 197, 64, 223, 2, 15, 241, 137, 128, 189, 4, 30, 225, 17, 256, 121, 8, 60, 193, 34, 255, 242, 16, 120, 129, 68, 253, 227, 32, 240, 1, 136, 249, 197, 64, 223, 2, 15, 241, 137, 128, 189, 4, 30, 225, 17, 256, 121, 8, 60, 193, 34, 255, 242, 16, 120, 129, 68, 253, 227, 32, 240, 1, 136, 249, 197, 64, 223, 2, 15, 241, 137, 128, 189, 4, 30, 225, 17, 256, 121, 8, 60, 193, 34, 255, 242, 16, 120, 129, 68, 253, 227, 32, 240, 1], -[1, 137, 8, 68, 64, 30, 255, 240, 241, 121, 129, 197, 4, 34, 32, 15, 256, 120, 249, 189, 193, 227, 2, 17, 16, 136, 128, 60, 253, 223, 225, 242, 1, 137, 8, 68, 64, 30, 255, 240, 241, 121, 129, 197, 4, 34, 32, 15, 256, 120, 249, 189, 193, 227, 2, 17, 16, 136, 128, 60, 253, 223, 225, 242, 1, 137, 8, 68, 64, 30, 255, 240, 241, 121, 129, 197, 4, 34, 32, 15, 256, 120, 249, 189, 193, 227, 2, 17, 16, 136, 128, 60, 253, 223, 225, 242, 1, 137, 8, 68, 64, 30, 255, 240, 241, 121, 129, 197, 4, 34, 32, 15, 256, 120, 249, 189, 193, 227, 2, 17, 16, 136, 128, 60, 253, 223, 225, 242, 1, 137, 8, 68, 64, 30, 255, 240, 241, 121, 129, 197, 4, 34, 32, 15, 256, 120, 249, 189, 193, 227, 2, 17, 16, 136, 128, 60, 253, 223, 225, 242, 1, 137, 8, 68, 64, 30, 255, 240, 241, 121, 129, 197, 4, 34, 32, 15, 256, 120, 249, 189, 193, 227, 2, 17, 16, 136, 128, 60, 253, 223, 225, 242, 1, 137, 8, 68, 64, 30, 255, 240, 241, 121, 129, 197, 4, 34, 32, 15, 256, 120, 249, 189, 193, 227, 2, 17, 16, 136, 128, 60, 253, 223, 225, 242, 1, 137, 8, 68, 64, 30, 255, 240, 241, 121, 129, 197, 4, 34, 32, 15, 256, 120, 249, 189, 193, 227, 2, 17, 16, 136, 128, 60, 253, 223, 225, 242, 1], -[1, 138, 26, 247, 162, 254, 100, 179, 30, 28, 9, 214, 234, 167, 173, 230, 129, 69, 13, 252, 81, 127, 50, 218, 15, 14, 133, 107, 117, 212, 215, 115, 193, 163, 135, 126, 169, 192, 25, 109, 136, 7, 195, 182, 187, 106, 236, 186, 225, 210, 196, 63, 213, 96, 141, 183, 68, 132, 226, 91, 222, 53, 118, 93, 241, 105, 98, 160, 235, 48, 199, 220, 34, 66, 113, 174, 111, 155, 59, 175, 249, 181, 49, 80, 246, 24, 228, 110, 17, 33, 185, 87, 184, 206, 158, 216, 253, 219, 153, 40, 123, 12, 114, 55, 137, 145, 221, 172, 92, 103, 79, 108, 255, 238, 205, 20, 190, 6, 57, 156, 197, 201, 239, 86, 46, 180, 168, 54, 256, 119, 231, 10, 95, 3, 157, 78, 227, 229, 248, 43, 23, 90, 84, 27, 128, 188, 244, 5, 176, 130, 207, 39, 242, 243, 124, 150, 140, 45, 42, 142, 64, 94, 122, 131, 88, 65, 232, 148, 121, 250, 62, 75, 70, 151, 21, 71, 32, 47, 61, 194, 44, 161, 116, 74, 189, 125, 31, 166, 35, 204, 139, 164, 16, 152, 159, 97, 22, 209, 58, 37, 223, 191, 144, 83, 146, 102, 198, 82, 8, 76, 208, 177, 11, 233, 29, 147, 240, 224, 72, 170, 73, 51, 99, 41, 4, 38, 104, 217, 134, 245, 143, 202, 120, 112, 36, 85, 165, 154, 178, 149, 2, 19, 52, 237, 67, 251, 200, 101, 60, 56, 18, 171, 211, 77, 89, 203, 1], -[1, 139, 46, 226, 60, 116, 190, 196, 2, 21, 92, 195, 120, 232, 123, 135, 4, 42, 184, 133, 240, 207, 246, 13, 8, 84, 111, 9, 223, 157, 235, 26, 16, 168, 222, 18, 189, 57, 213, 52, 32, 79, 187, 36, 121, 114, 169, 104, 64, 158, 117, 72, 242, 228, 81, 208, 128, 59, 234, 144, 227, 199, 162, 159, 256, 118, 211, 31, 197, 141, 67, 61, 255, 236, 165, 62, 137, 25, 134, 122, 253, 215, 73, 124, 17, 50, 11, 244, 249, 173, 146, 248, 34, 100, 22, 231, 241, 89, 35, 239, 68, 200, 44, 205, 225, 178, 70, 221, 136, 143, 88, 153, 193, 99, 140, 185, 15, 29, 176, 49, 129, 198, 23, 113, 30, 58, 95, 98, 1, 139, 46, 226, 60, 116, 190, 196, 2, 21, 92, 195, 120, 232, 123, 135, 4, 42, 184, 133, 240, 207, 246, 13, 8, 84, 111, 9, 223, 157, 235, 26, 16, 168, 222, 18, 189, 57, 213, 52, 32, 79, 187, 36, 121, 114, 169, 104, 64, 158, 117, 72, 242, 228, 81, 208, 128, 59, 234, 144, 227, 199, 162, 159, 256, 118, 211, 31, 197, 141, 67, 61, 255, 236, 165, 62, 137, 25, 134, 122, 253, 215, 73, 124, 17, 50, 11, 244, 249, 173, 146, 248, 34, 100, 22, 231, 241, 89, 35, 239, 68, 200, 44, 205, 225, 178, 70, 221, 136, 143, 88, 153, 193, 99, 140, 185, 15, 29, 176, 49, 129, 198, 23, 113, 30, 58, 95, 98, 1], -[1, 140, 68, 11, 255, 234, 121, 235, 4, 46, 15, 44, 249, 165, 227, 169, 16, 184, 60, 176, 225, 146, 137, 162, 64, 222, 240, 190, 129, 70, 34, 134, 256, 117, 189, 246, 2, 23, 136, 22, 253, 211, 242, 213, 8, 92, 30, 88, 241, 73, 197, 81, 32, 111, 120, 95, 193, 35, 17, 67, 128, 187, 223, 123, 1, 140, 68, 11, 255, 234, 121, 235, 4, 46, 15, 44, 249, 165, 227, 169, 16, 184, 60, 176, 225, 146, 137, 162, 64, 222, 240, 190, 129, 70, 34, 134, 256, 117, 189, 246, 2, 23, 136, 22, 253, 211, 242, 213, 8, 92, 30, 88, 241, 73, 197, 81, 32, 111, 120, 95, 193, 35, 17, 67, 128, 187, 223, 123, 1, 140, 68, 11, 255, 234, 121, 235, 4, 46, 15, 44, 249, 165, 227, 169, 16, 184, 60, 176, 225, 146, 137, 162, 64, 222, 240, 190, 129, 70, 34, 134, 256, 117, 189, 246, 2, 23, 136, 22, 253, 211, 242, 213, 8, 92, 30, 88, 241, 73, 197, 81, 32, 111, 120, 95, 193, 35, 17, 67, 128, 187, 223, 123, 1, 140, 68, 11, 255, 234, 121, 235, 4, 46, 15, 44, 249, 165, 227, 169, 16, 184, 60, 176, 225, 146, 137, 162, 64, 222, 240, 190, 129, 70, 34, 134, 256, 117, 189, 246, 2, 23, 136, 22, 253, 211, 242, 213, 8, 92, 30, 88, 241, 73, 197, 81, 32, 111, 120, 95, 193, 35, 17, 67, 128, 187, 223, 123, 1], -[1, 141, 92, 122, 240, 173, 235, 239, 32, 143, 117, 49, 227, 139, 67, 195, 253, 207, 146, 26, 68, 79, 88, 72, 129, 199, 46, 61, 120, 215, 246, 248, 16, 200, 187, 153, 242, 198, 162, 226, 255, 232, 73, 13, 34, 168, 44, 36, 193, 228, 23, 159, 60, 236, 123, 124, 8, 100, 222, 205, 121, 99, 81, 113, 256, 116, 165, 135, 17, 84, 22, 18, 225, 114, 140, 208, 30, 118, 190, 62, 4, 50, 111, 231, 189, 178, 169, 185, 128, 58, 211, 196, 137, 42, 11, 9, 241, 57, 70, 104, 15, 59, 95, 31, 2, 25, 184, 244, 223, 89, 213, 221, 64, 29, 234, 98, 197, 21, 134, 133, 249, 157, 35, 52, 136, 158, 176, 144, 1, 141, 92, 122, 240, 173, 235, 239, 32, 143, 117, 49, 227, 139, 67, 195, 253, 207, 146, 26, 68, 79, 88, 72, 129, 199, 46, 61, 120, 215, 246, 248, 16, 200, 187, 153, 242, 198, 162, 226, 255, 232, 73, 13, 34, 168, 44, 36, 193, 228, 23, 159, 60, 236, 123, 124, 8, 100, 222, 205, 121, 99, 81, 113, 256, 116, 165, 135, 17, 84, 22, 18, 225, 114, 140, 208, 30, 118, 190, 62, 4, 50, 111, 231, 189, 178, 169, 185, 128, 58, 211, 196, 137, 42, 11, 9, 241, 57, 70, 104, 15, 59, 95, 31, 2, 25, 184, 244, 223, 89, 213, 221, 64, 29, 234, 98, 197, 21, 134, 133, 249, 157, 35, 52, 136, 158, 176, 144, 1], -[1, 142, 118, 51, 46, 107, 31, 33, 60, 39, 141, 233, 190, 252, 61, 181, 2, 27, 236, 102, 92, 214, 62, 66, 120, 78, 25, 209, 123, 247, 122, 105, 4, 54, 215, 204, 184, 171, 124, 132, 240, 156, 50, 161, 246, 237, 244, 210, 8, 108, 173, 151, 111, 85, 248, 7, 223, 55, 100, 65, 235, 217, 231, 163, 16, 216, 89, 45, 222, 170, 239, 14, 189, 110, 200, 130, 213, 177, 205, 69, 32, 175, 178, 90, 187, 83, 221, 28, 121, 220, 143, 3, 169, 97, 153, 138, 64, 93, 99, 180, 117, 166, 185, 56, 242, 183, 29, 6, 81, 194, 49, 19, 128, 186, 198, 103, 234, 75, 113, 112, 227, 109, 58, 12, 162, 131, 98, 38, 256, 115, 139, 206, 211, 150, 226, 224, 197, 218, 116, 24, 67, 5, 196, 76, 255, 230, 21, 155, 165, 43, 195, 191, 137, 179, 232, 48, 134, 10, 135, 152, 253, 203, 42, 53, 73, 86, 133, 125, 17, 101, 207, 96, 11, 20, 13, 47, 249, 149, 84, 106, 146, 172, 9, 250, 34, 202, 157, 192, 22, 40, 26, 94, 241, 41, 168, 212, 35, 87, 18, 243, 68, 147, 57, 127, 44, 80, 52, 188, 225, 82, 79, 167, 70, 174, 36, 229, 136, 37, 114, 254, 88, 160, 104, 119, 193, 164, 158, 77, 140, 91, 72, 201, 15, 74, 228, 251, 176, 63, 208, 238, 129, 71, 59, 154, 23, 182, 144, 145, 30, 148, 199, 245, 95, 126, 159, 219, 1], -[1, 143, 146, 61, 242, 168, 123, 113, 225, 50, 211, 104, 223, 21, 176, 239, 253, 199, 187, 13, 60, 99, 22, 62, 128, 57, 184, 98, 136, 173, 67, 72, 16, 232, 23, 205, 17, 118, 169, 9, 2, 29, 35, 122, 227, 79, 246, 226, 193, 100, 165, 208, 189, 42, 95, 221, 249, 141, 117, 26, 120, 198, 44, 124, 256, 114, 111, 196, 15, 89, 134, 144, 32, 207, 46, 153, 34, 236, 81, 18, 4, 58, 70, 244, 197, 158, 235, 195, 129, 200, 73, 159, 121, 84, 190, 185, 241, 25, 234, 52, 240, 139, 88, 248, 255, 228, 222, 135, 30, 178, 11, 31, 64, 157, 92, 49, 68, 215, 162, 36, 8, 116, 140, 231, 137, 59, 213, 133, 1, 143, 146, 61, 242, 168, 123, 113, 225, 50, 211, 104, 223, 21, 176, 239, 253, 199, 187, 13, 60, 99, 22, 62, 128, 57, 184, 98, 136, 173, 67, 72, 16, 232, 23, 205, 17, 118, 169, 9, 2, 29, 35, 122, 227, 79, 246, 226, 193, 100, 165, 208, 189, 42, 95, 221, 249, 141, 117, 26, 120, 198, 44, 124, 256, 114, 111, 196, 15, 89, 134, 144, 32, 207, 46, 153, 34, 236, 81, 18, 4, 58, 70, 244, 197, 158, 235, 195, 129, 200, 73, 159, 121, 84, 190, 185, 241, 25, 234, 52, 240, 139, 88, 248, 255, 228, 222, 135, 30, 178, 11, 31, 64, 157, 92, 49, 68, 215, 162, 36, 8, 116, 140, 231, 137, 59, 213, 133, 1], -[1, 144, 176, 158, 136, 52, 35, 157, 249, 133, 134, 21, 197, 98, 234, 29, 64, 221, 213, 89, 223, 244, 184, 25, 2, 31, 95, 59, 15, 104, 70, 57, 241, 9, 11, 42, 137, 196, 211, 58, 128, 185, 169, 178, 189, 231, 111, 50, 4, 62, 190, 118, 30, 208, 140, 114, 225, 18, 22, 84, 17, 135, 165, 116, 256, 113, 81, 99, 121, 205, 222, 100, 8, 124, 123, 236, 60, 159, 23, 228, 193, 36, 44, 168, 34, 13, 73, 232, 255, 226, 162, 198, 242, 153, 187, 200, 16, 248, 246, 215, 120, 61, 46, 199, 129, 72, 88, 79, 68, 26, 146, 207, 253, 195, 67, 139, 227, 49, 117, 143, 32, 239, 235, 173, 240, 122, 92, 141, 1, 144, 176, 158, 136, 52, 35, 157, 249, 133, 134, 21, 197, 98, 234, 29, 64, 221, 213, 89, 223, 244, 184, 25, 2, 31, 95, 59, 15, 104, 70, 57, 241, 9, 11, 42, 137, 196, 211, 58, 128, 185, 169, 178, 189, 231, 111, 50, 4, 62, 190, 118, 30, 208, 140, 114, 225, 18, 22, 84, 17, 135, 165, 116, 256, 113, 81, 99, 121, 205, 222, 100, 8, 124, 123, 236, 60, 159, 23, 228, 193, 36, 44, 168, 34, 13, 73, 232, 255, 226, 162, 198, 242, 153, 187, 200, 16, 248, 246, 215, 120, 61, 46, 199, 129, 72, 88, 79, 68, 26, 146, 207, 253, 195, 67, 139, 227, 49, 117, 143, 32, 239, 235, 173, 240, 122, 92, 141, 1], -[1, 145, 208, 91, 88, 167, 57, 41, 34, 47, 133, 10, 165, 24, 139, 109, 128, 56, 153, 83, 213, 45, 100, 108, 240, 105, 62, 252, 46, 245, 59, 74, 193, 229, 52, 87, 22, 106, 207, 203, 137, 76, 226, 131, 234, 6, 99, 220, 32, 14, 231, 85, 246, 204, 25, 27, 60, 219, 144, 63, 140, 254, 79, 147, 241, 250, 13, 86, 134, 155, 116, 115, 227, 19, 185, 97, 187, 130, 89, 55, 8, 132, 122, 214, 190, 51, 199, 71, 15, 119, 36, 80, 35, 192, 84, 101, 253, 191, 196, 150, 162, 103, 29, 93, 121, 69, 239, 217, 111, 161, 215, 78, 2, 33, 159, 182, 176, 77, 114, 82, 68, 94, 9, 20, 73, 48, 21, 218, 256, 112, 49, 166, 169, 90, 200, 216, 223, 210, 124, 247, 92, 233, 118, 148, 129, 201, 104, 174, 44, 212, 157, 149, 17, 152, 195, 5, 211, 12, 198, 183, 64, 28, 205, 170, 235, 151, 50, 54, 120, 181, 31, 126, 23, 251, 158, 37, 225, 243, 26, 172, 11, 53, 232, 230, 197, 38, 113, 194, 117, 3, 178, 110, 16, 7, 244, 171, 123, 102, 141, 142, 30, 238, 72, 160, 70, 127, 168, 202, 249, 125, 135, 43, 67, 206, 58, 186, 242, 138, 221, 177, 222, 65, 173, 156, 4, 66, 61, 107, 95, 154, 228, 164, 136, 188, 18, 40, 146, 96, 42, 179, 255, 224, 98, 75, 81, 180, 143, 175, 189, 163, 248, 237, 184, 209, 236, 39, 1], -[1, 146, 242, 123, 225, 211, 223, 176, 253, 187, 60, 22, 128, 184, 136, 67, 16, 23, 17, 169, 2, 35, 227, 246, 193, 165, 189, 95, 249, 117, 120, 44, 256, 111, 15, 134, 32, 46, 34, 81, 4, 70, 197, 235, 129, 73, 121, 190, 241, 234, 240, 88, 255, 222, 30, 11, 64, 92, 68, 162, 8, 140, 137, 213, 1, 146, 242, 123, 225, 211, 223, 176, 253, 187, 60, 22, 128, 184, 136, 67, 16, 23, 17, 169, 2, 35, 227, 246, 193, 165, 189, 95, 249, 117, 120, 44, 256, 111, 15, 134, 32, 46, 34, 81, 4, 70, 197, 235, 129, 73, 121, 190, 241, 234, 240, 88, 255, 222, 30, 11, 64, 92, 68, 162, 8, 140, 137, 213, 1, 146, 242, 123, 225, 211, 223, 176, 253, 187, 60, 22, 128, 184, 136, 67, 16, 23, 17, 169, 2, 35, 227, 246, 193, 165, 189, 95, 249, 117, 120, 44, 256, 111, 15, 134, 32, 46, 34, 81, 4, 70, 197, 235, 129, 73, 121, 190, 241, 234, 240, 88, 255, 222, 30, 11, 64, 92, 68, 162, 8, 140, 137, 213, 1, 146, 242, 123, 225, 211, 223, 176, 253, 187, 60, 22, 128, 184, 136, 67, 16, 23, 17, 169, 2, 35, 227, 246, 193, 165, 189, 95, 249, 117, 120, 44, 256, 111, 15, 134, 32, 46, 34, 81, 4, 70, 197, 235, 129, 73, 121, 190, 241, 234, 240, 88, 255, 222, 30, 11, 64, 92, 68, 162, 8, 140, 137, 213, 1], -[1, 147, 21, 3, 184, 63, 9, 38, 189, 27, 114, 53, 81, 85, 159, 243, 255, 220, 215, 251, 146, 131, 239, 181, 136, 203, 29, 151, 95, 87, 196, 28, 4, 74, 84, 12, 222, 252, 36, 152, 242, 108, 199, 212, 67, 83, 122, 201, 249, 109, 89, 233, 70, 10, 185, 210, 30, 41, 116, 90, 123, 91, 13, 112, 16, 39, 79, 48, 117, 237, 144, 94, 197, 175, 25, 77, 11, 75, 231, 33, 225, 179, 99, 161, 23, 40, 226, 69, 120, 164, 207, 103, 235, 107, 52, 191, 64, 156, 59, 192, 211, 177, 62, 119, 17, 186, 100, 51, 44, 43, 153, 132, 129, 202, 139, 130, 92, 160, 133, 19, 223, 142, 57, 155, 169, 171, 208, 250, 256, 110, 236, 254, 73, 194, 248, 219, 68, 230, 143, 204, 176, 172, 98, 14, 2, 37, 42, 6, 111, 126, 18, 76, 121, 54, 228, 106, 162, 170, 61, 229, 253, 183, 173, 245, 35, 5, 221, 105, 15, 149, 58, 45, 190, 174, 135, 56, 8, 148, 168, 24, 187, 247, 72, 47, 227, 216, 141, 167, 134, 166, 244, 145, 241, 218, 178, 209, 140, 20, 113, 163, 60, 82, 232, 180, 246, 182, 26, 224, 32, 78, 158, 96, 234, 217, 31, 188, 137, 93, 50, 154, 22, 150, 205, 66, 193, 101, 198, 65, 46, 80, 195, 138, 240, 71, 157, 206, 213, 214, 104, 125, 128, 55, 118, 127, 165, 97, 124, 238, 34, 115, 200, 102, 88, 86, 49, 7, 1], -[1, 148, 59, 251, 140, 160, 36, 188, 68, 41, 157, 106, 11, 86, 135, 191, 255, 218, 139, 12, 234, 194, 185, 138, 121, 175, 200, 45, 235, 85, 244, 132, 4, 78, 236, 233, 46, 126, 144, 238, 15, 164, 114, 167, 44, 87, 26, 250, 249, 101, 42, 48, 165, 5, 226, 38, 227, 186, 29, 180, 169, 83, 205, 14, 16, 55, 173, 161, 184, 247, 62, 181, 60, 142, 199, 154, 176, 91, 104, 229, 225, 147, 168, 192, 146, 20, 133, 152, 137, 230, 116, 206, 162, 75, 49, 56, 64, 220, 178, 130, 222, 217, 248, 210, 240, 54, 25, 102, 190, 107, 159, 145, 129, 74, 158, 254, 70, 80, 18, 94, 34, 149, 207, 53, 134, 43, 196, 224, 256, 109, 198, 6, 117, 97, 221, 69, 189, 216, 100, 151, 246, 171, 122, 66, 2, 39, 118, 245, 23, 63, 72, 119, 136, 82, 57, 212, 22, 172, 13, 125, 253, 179, 21, 24, 211, 131, 113, 19, 242, 93, 143, 90, 213, 170, 231, 7, 8, 156, 215, 209, 92, 252, 31, 219, 30, 71, 228, 77, 88, 174, 52, 243, 241, 202, 84, 96, 73, 10, 195, 76, 197, 115, 58, 103, 81, 166, 153, 28, 32, 110, 89, 65, 111, 237, 124, 105, 120, 27, 141, 51, 95, 182, 208, 201, 193, 37, 79, 127, 35, 40, 9, 47, 17, 203, 232, 155, 67, 150, 98, 112, 128, 183, 99, 3, 187, 177, 239, 163, 223, 108, 50, 204, 123, 214, 61, 33, 1], -[1, 149, 99, 102, 35, 75, 124, 229, 197, 55, 228, 48, 213, 126, 13, 138, 2, 41, 198, 204, 70, 150, 248, 201, 137, 110, 199, 96, 169, 252, 26, 19, 4, 82, 139, 151, 140, 43, 239, 145, 17, 220, 141, 192, 81, 247, 52, 38, 8, 164, 21, 45, 23, 86, 221, 33, 34, 183, 25, 127, 162, 237, 104, 76, 16, 71, 42, 90, 46, 172, 185, 66, 68, 109, 50, 254, 67, 217, 208, 152, 32, 142, 84, 180, 92, 87, 113, 132, 136, 218, 100, 251, 134, 177, 159, 47, 64, 27, 168, 103, 184, 174, 226, 7, 15, 179, 200, 245, 11, 97, 61, 94, 128, 54, 79, 206, 111, 91, 195, 14, 30, 101, 143, 233, 22, 194, 122, 188, 256, 108, 158, 155, 222, 182, 133, 28, 60, 202, 29, 209, 44, 131, 244, 119, 255, 216, 59, 53, 187, 107, 9, 56, 120, 147, 58, 161, 88, 5, 231, 238, 253, 175, 118, 106, 117, 214, 18, 112, 240, 37, 116, 65, 176, 10, 205, 219, 249, 93, 236, 212, 234, 171, 36, 224, 223, 74, 232, 130, 95, 20, 153, 181, 241, 186, 215, 167, 211, 85, 72, 191, 189, 148, 207, 3, 190, 40, 49, 105, 225, 115, 173, 77, 165, 170, 144, 125, 121, 39, 157, 6, 123, 80, 98, 210, 193, 230, 89, 154, 73, 83, 31, 250, 242, 78, 57, 12, 246, 160, 196, 163, 129, 203, 178, 51, 146, 166, 62, 243, 227, 156, 114, 24, 235, 63, 135, 69, 1], -[1, 150, 141, 76, 92, 179, 122, 53, 240, 20, 173, 250, 235, 41, 239, 127, 32, 174, 143, 119, 117, 74, 49, 154, 227, 126, 139, 33, 67, 27, 195, 209, 253, 171, 207, 210, 146, 55, 26, 45, 68, 177, 79, 28, 88, 93, 72, 6, 129, 75, 199, 38, 46, 218, 61, 155, 120, 10, 215, 125, 246, 149, 248, 192, 16, 87, 200, 188, 187, 37, 153, 77, 242, 63, 198, 145, 162, 142, 226, 233, 255, 214, 232, 105, 73, 156, 13, 151, 34, 217, 168, 14, 44, 175, 36, 3, 193, 166, 228, 19, 23, 109, 159, 206, 60, 5, 236, 191, 123, 203, 124, 96, 8, 172, 100, 94, 222, 147, 205, 167, 121, 160, 99, 201, 81, 71, 113, 245, 256, 107, 116, 181, 165, 78, 135, 204, 17, 237, 84, 7, 22, 216, 18, 130, 225, 83, 114, 138, 140, 183, 208, 103, 30, 131, 118, 224, 190, 230, 62, 48, 4, 86, 50, 47, 111, 202, 231, 212, 189, 80, 178, 229, 169, 164, 185, 251, 128, 182, 58, 219, 211, 39, 196, 102, 137, 247, 42, 132, 11, 108, 9, 65, 241, 170, 57, 69, 70, 220, 104, 180, 15, 194, 59, 112, 95, 115, 31, 24, 2, 43, 25, 152, 184, 101, 244, 106, 223, 40, 89, 243, 213, 82, 221, 254, 64, 91, 29, 238, 234, 148, 98, 51, 197, 252, 21, 66, 134, 54, 133, 161, 249, 85, 157, 163, 35, 110, 52, 90, 136, 97, 158, 56, 176, 186, 144, 12, 1], -[1, 151, 185, 179, 44, 219, 173, 166, 137, 127, 159, 108, 117, 191, 57, 126, 8, 180, 195, 147, 95, 210, 99, 43, 68, 245, 244, 93, 165, 243, 199, 237, 64, 155, 18, 148, 246, 138, 21, 87, 30, 161, 153, 230, 35, 145, 50, 97, 255, 212, 144, 156, 169, 76, 168, 182, 240, 3, 196, 41, 23, 132, 143, 5, 241, 154, 124, 220, 67, 94, 59, 171, 121, 24, 26, 71, 184, 28, 116, 40, 129, 204, 221, 218, 22, 238, 215, 83, 197, 192, 208, 54, 187, 224, 157, 63, 4, 90, 226, 202, 176, 105, 178, 150, 34, 251, 122, 175, 211, 250, 228, 247, 32, 206, 9, 74, 123, 69, 139, 172, 15, 209, 205, 115, 146, 201, 25, 177, 256, 106, 72, 78, 213, 38, 84, 91, 120, 130, 98, 149, 140, 66, 200, 131, 249, 77, 62, 110, 162, 47, 158, 214, 189, 12, 13, 164, 92, 14, 58, 20, 193, 102, 239, 109, 11, 119, 236, 170, 227, 96, 104, 27, 222, 112, 207, 160, 2, 45, 113, 101, 88, 181, 89, 75, 17, 254, 61, 216, 234, 125, 114, 252, 16, 103, 133, 37, 190, 163, 198, 86, 136, 233, 231, 186, 73, 229, 141, 217, 128, 53, 36, 39, 235, 19, 42, 174, 60, 65, 49, 203, 70, 33, 100, 194, 253, 167, 31, 55, 81, 152, 79, 107, 223, 6, 135, 82, 46, 7, 29, 10, 225, 51, 248, 183, 134, 188, 118, 85, 242, 48, 52, 142, 111, 56, 232, 80, 1], -[1, 152, 231, 160, 162, 209, 157, 220, 30, 191, 248, 174, 234, 102, 84, 175, 129, 76, 244, 80, 81, 233, 207, 110, 15, 224, 124, 87, 117, 51, 42, 216, 193, 38, 122, 40, 169, 245, 232, 55, 136, 112, 62, 172, 187, 154, 21, 108, 225, 19, 61, 20, 213, 251, 116, 156, 68, 56, 31, 86, 222, 77, 139, 54, 241, 138, 159, 10, 235, 254, 58, 78, 34, 28, 144, 43, 111, 167, 198, 27, 249, 69, 208, 5, 246, 127, 29, 39, 17, 14, 72, 150, 184, 212, 99, 142, 253, 163, 104, 131, 123, 192, 143, 148, 137, 7, 36, 75, 92, 106, 178, 71, 255, 210, 52, 194, 190, 96, 200, 74, 197, 132, 18, 166, 46, 53, 89, 164, 256, 105, 26, 97, 95, 48, 100, 37, 227, 66, 9, 83, 23, 155, 173, 82, 128, 181, 13, 177, 176, 24, 50, 147, 242, 33, 133, 170, 140, 206, 215, 41, 64, 219, 135, 217, 88, 12, 25, 202, 121, 145, 195, 85, 70, 103, 236, 149, 32, 238, 196, 237, 44, 6, 141, 101, 189, 201, 226, 171, 35, 180, 118, 203, 16, 119, 98, 247, 22, 3, 199, 179, 223, 229, 113, 214, 146, 90, 59, 230, 8, 188, 49, 252, 11, 130, 228, 218, 240, 243, 185, 107, 73, 45, 158, 115, 4, 94, 153, 126, 134, 65, 114, 109, 120, 250, 221, 182, 165, 151, 79, 186, 2, 47, 205, 63, 67, 161, 57, 183, 60, 125, 239, 91, 211, 204, 168, 93, 1], -[1, 153, 22, 25, 227, 36, 111, 21, 129, 205, 11, 141, 242, 18, 184, 139, 193, 231, 134, 199, 121, 9, 92, 198, 225, 244, 67, 228, 189, 133, 46, 99, 241, 122, 162, 114, 223, 195, 23, 178, 249, 61, 81, 57, 240, 226, 140, 89, 253, 159, 169, 157, 120, 113, 70, 173, 255, 208, 213, 207, 60, 185, 35, 215, 256, 104, 235, 232, 30, 221, 146, 236, 128, 52, 246, 116, 15, 239, 73, 118, 64, 26, 123, 58, 136, 248, 165, 59, 32, 13, 190, 29, 68, 124, 211, 158, 16, 135, 95, 143, 34, 62, 234, 79, 8, 196, 176, 200, 17, 31, 117, 168, 4, 98, 88, 100, 137, 144, 187, 84, 2, 49, 44, 50, 197, 72, 222, 42, 1, 153, 22, 25, 227, 36, 111, 21, 129, 205, 11, 141, 242, 18, 184, 139, 193, 231, 134, 199, 121, 9, 92, 198, 225, 244, 67, 228, 189, 133, 46, 99, 241, 122, 162, 114, 223, 195, 23, 178, 249, 61, 81, 57, 240, 226, 140, 89, 253, 159, 169, 157, 120, 113, 70, 173, 255, 208, 213, 207, 60, 185, 35, 215, 256, 104, 235, 232, 30, 221, 146, 236, 128, 52, 246, 116, 15, 239, 73, 118, 64, 26, 123, 58, 136, 248, 165, 59, 32, 13, 190, 29, 68, 124, 211, 158, 16, 135, 95, 143, 34, 62, 234, 79, 8, 196, 176, 200, 17, 31, 117, 168, 4, 98, 88, 100, 137, 144, 187, 84, 2, 49, 44, 50, 197, 72, 222, 42, 1], -[1, 154, 72, 37, 44, 94, 84, 86, 137, 24, 98, 186, 117, 28, 200, 217, 8, 204, 62, 39, 95, 238, 158, 174, 68, 192, 13, 203, 165, 224, 58, 194, 64, 90, 239, 55, 246, 105, 236, 107, 30, 251, 104, 82, 35, 250, 207, 10, 255, 206, 113, 183, 169, 69, 89, 85, 240, 209, 61, 142, 23, 201, 114, 80, 241, 106, 133, 179, 67, 38, 198, 166, 121, 130, 231, 108, 184, 66, 141, 126, 129, 77, 36, 147, 22, 47, 42, 43, 197, 12, 49, 93, 187, 14, 100, 237, 4, 102, 31, 148, 176, 119, 79, 87, 34, 96, 135, 230, 211, 112, 29, 97, 32, 45, 248, 156, 123, 181, 118, 182, 15, 254, 52, 41, 146, 125, 232, 5, 256, 103, 185, 220, 213, 163, 173, 171, 120, 233, 159, 71, 140, 229, 57, 40, 249, 53, 195, 218, 162, 19, 99, 83, 189, 65, 244, 54, 92, 33, 199, 63, 193, 167, 18, 202, 11, 152, 21, 150, 227, 6, 153, 175, 222, 7, 50, 247, 2, 51, 144, 74, 88, 188, 168, 172, 17, 48, 196, 115, 234, 56, 143, 177, 16, 151, 124, 78, 190, 219, 59, 91, 136, 127, 26, 149, 73, 191, 116, 131, 128, 180, 221, 110, 235, 210, 215, 214, 60, 245, 208, 164, 70, 243, 157, 20, 253, 155, 226, 109, 81, 138, 178, 170, 223, 161, 122, 27, 46, 145, 228, 160, 225, 212, 9, 101, 134, 76, 139, 75, 242, 3, 205, 216, 111, 132, 25, 252, 1], -[1, 155, 124, 202, 213, 119, 198, 107, 137, 161, 26, 175, 140, 112, 141, 10, 8, 212, 221, 74, 162, 181, 42, 85, 68, 3, 208, 115, 92, 125, 100, 80, 64, 154, 226, 78, 11, 163, 79, 166, 30, 24, 122, 149, 222, 229, 29, 126, 255, 204, 9, 110, 88, 19, 118, 43, 240, 192, 205, 164, 234, 33, 232, 237, 241, 90, 72, 109, 190, 152, 173, 87, 121, 251, 98, 27, 73, 7, 57, 97, 129, 206, 62, 101, 235, 188, 99, 182, 197, 209, 13, 216, 70, 56, 199, 5, 4, 106, 239, 37, 81, 219, 21, 171, 34, 130, 104, 186, 46, 191, 50, 40, 32, 77, 113, 39, 134, 210, 168, 83, 15, 12, 61, 203, 111, 243, 143, 63, 256, 102, 133, 55, 44, 138, 59, 150, 120, 96, 231, 82, 117, 145, 116, 247, 249, 45, 36, 183, 95, 76, 215, 172, 189, 254, 49, 142, 165, 132, 157, 177, 193, 103, 31, 179, 246, 94, 178, 91, 227, 233, 135, 108, 35, 28, 228, 131, 2, 53, 248, 147, 169, 238, 139, 214, 17, 65, 52, 93, 23, 224, 25, 20, 16, 167, 185, 148, 67, 105, 84, 170, 136, 6, 159, 230, 184, 250, 200, 160, 128, 51, 195, 156, 22, 69, 158, 75, 60, 48, 244, 41, 187, 201, 58, 252, 253, 151, 18, 220, 176, 38, 236, 86, 223, 127, 153, 71, 211, 66, 207, 217, 225, 180, 144, 218, 123, 47, 89, 174, 242, 245, 196, 54, 146, 14, 114, 194, 1], -[1, 156, 178, 12, 73, 80, 144, 105, 189, 186, 232, 212, 176, 214, 231, 56, 255, 202, 158, 233, 111, 97, 226, 47, 136, 142, 50, 90, 162, 86, 52, 145, 4, 110, 198, 48, 35, 63, 62, 163, 242, 230, 157, 77, 190, 85, 153, 224, 249, 37, 118, 161, 187, 131, 133, 188, 30, 54, 200, 103, 134, 87, 208, 66, 16, 183, 21, 192, 140, 252, 248, 138, 197, 149, 114, 51, 246, 83, 98, 125, 225, 148, 215, 130, 234, 10, 18, 238, 120, 216, 29, 155, 22, 91, 61, 7, 64, 218, 84, 254, 46, 237, 221, 38, 17, 82, 199, 204, 213, 75, 135, 243, 129, 78, 89, 6, 165, 40, 72, 181, 223, 93, 116, 106, 88, 107, 244, 28, 256, 101, 79, 245, 184, 177, 113, 152, 68, 71, 25, 45, 81, 43, 26, 201, 2, 55, 99, 24, 146, 160, 31, 210, 121, 115, 207, 167, 95, 171, 205, 112, 253, 147, 59, 209, 222, 194, 195, 94, 15, 27, 100, 180, 67, 172, 104, 33, 8, 220, 139, 96, 70, 126, 124, 69, 227, 203, 57, 154, 123, 170, 49, 191, 241, 74, 236, 65, 117, 5, 9, 119, 60, 108, 143, 206, 11, 174, 159, 132, 32, 109, 42, 127, 23, 247, 239, 19, 137, 41, 228, 102, 235, 166, 196, 250, 193, 39, 173, 3, 211, 20, 36, 219, 240, 175, 58, 53, 44, 182, 122, 14, 128, 179, 168, 251, 92, 217, 185, 76, 34, 164, 141, 151, 169, 150, 13, 229, 1], -[1, 157, 234, 244, 15, 42, 169, 62, 225, 116, 222, 159, 34, 198, 246, 72, 253, 143, 92, 52, 197, 89, 95, 9, 128, 50, 140, 135, 121, 236, 44, 226, 16, 199, 146, 49, 240, 158, 134, 221, 2, 57, 211, 231, 30, 84, 81, 124, 193, 232, 187, 61, 68, 139, 235, 144, 249, 29, 184, 104, 137, 178, 190, 18, 256, 100, 23, 13, 242, 215, 88, 195, 32, 141, 35, 98, 223, 59, 11, 185, 4, 114, 165, 205, 60, 168, 162, 248, 129, 207, 117, 122, 136, 21, 213, 31, 241, 58, 111, 208, 17, 99, 123, 36, 255, 200, 46, 26, 227, 173, 176, 133, 64, 25, 70, 196, 189, 118, 22, 113, 8, 228, 73, 153, 120, 79, 67, 239, 1, 157, 234, 244, 15, 42, 169, 62, 225, 116, 222, 159, 34, 198, 246, 72, 253, 143, 92, 52, 197, 89, 95, 9, 128, 50, 140, 135, 121, 236, 44, 226, 16, 199, 146, 49, 240, 158, 134, 221, 2, 57, 211, 231, 30, 84, 81, 124, 193, 232, 187, 61, 68, 139, 235, 144, 249, 29, 184, 104, 137, 178, 190, 18, 256, 100, 23, 13, 242, 215, 88, 195, 32, 141, 35, 98, 223, 59, 11, 185, 4, 114, 165, 205, 60, 168, 162, 248, 129, 207, 117, 122, 136, 21, 213, 31, 241, 58, 111, 208, 17, 99, 123, 36, 255, 200, 46, 26, 227, 173, 176, 133, 64, 25, 70, 196, 189, 118, 22, 113, 8, 228, 73, 153, 120, 79, 67, 239, 1], -[1, 158, 35, 133, 197, 29, 213, 244, 2, 59, 70, 9, 137, 58, 169, 231, 4, 118, 140, 18, 17, 116, 81, 205, 8, 236, 23, 36, 34, 232, 162, 153, 16, 215, 46, 72, 68, 207, 67, 49, 32, 173, 92, 144, 136, 157, 134, 98, 64, 89, 184, 31, 15, 57, 11, 196, 128, 178, 111, 62, 30, 114, 22, 135, 256, 99, 222, 124, 60, 228, 44, 13, 255, 198, 187, 248, 120, 199, 88, 26, 253, 139, 117, 239, 240, 141, 176, 52, 249, 21, 234, 221, 223, 25, 95, 104, 241, 42, 211, 185, 189, 50, 190, 208, 225, 84, 165, 113, 121, 100, 123, 159, 193, 168, 73, 226, 242, 200, 246, 61, 129, 79, 146, 195, 227, 143, 235, 122, 1, 158, 35, 133, 197, 29, 213, 244, 2, 59, 70, 9, 137, 58, 169, 231, 4, 118, 140, 18, 17, 116, 81, 205, 8, 236, 23, 36, 34, 232, 162, 153, 16, 215, 46, 72, 68, 207, 67, 49, 32, 173, 92, 144, 136, 157, 134, 98, 64, 89, 184, 31, 15, 57, 11, 196, 128, 178, 111, 62, 30, 114, 22, 135, 256, 99, 222, 124, 60, 228, 44, 13, 255, 198, 187, 248, 120, 199, 88, 26, 253, 139, 117, 239, 240, 141, 176, 52, 249, 21, 234, 221, 223, 25, 95, 104, 241, 42, 211, 185, 189, 50, 190, 208, 225, 84, 165, 113, 121, 100, 123, 159, 193, 168, 73, 226, 242, 200, 246, 61, 129, 79, 146, 195, 227, 143, 235, 122, 1], -[1, 159, 95, 199, 30, 144, 23, 59, 129, 208, 176, 228, 15, 72, 140, 158, 193, 104, 88, 114, 136, 36, 70, 79, 225, 52, 44, 57, 68, 18, 35, 168, 241, 26, 22, 157, 34, 9, 146, 84, 249, 13, 11, 207, 17, 133, 73, 42, 253, 135, 134, 232, 137, 195, 165, 21, 255, 196, 67, 116, 197, 226, 211, 139, 256, 98, 162, 58, 227, 113, 234, 198, 128, 49, 81, 29, 242, 185, 117, 99, 64, 153, 169, 143, 121, 221, 187, 178, 32, 205, 213, 200, 189, 239, 222, 89, 16, 231, 235, 100, 223, 248, 111, 173, 8, 244, 246, 50, 240, 124, 184, 215, 4, 122, 123, 25, 120, 62, 92, 236, 2, 61, 190, 141, 60, 31, 46, 118, 1, 159, 95, 199, 30, 144, 23, 59, 129, 208, 176, 228, 15, 72, 140, 158, 193, 104, 88, 114, 136, 36, 70, 79, 225, 52, 44, 57, 68, 18, 35, 168, 241, 26, 22, 157, 34, 9, 146, 84, 249, 13, 11, 207, 17, 133, 73, 42, 253, 135, 134, 232, 137, 195, 165, 21, 255, 196, 67, 116, 197, 226, 211, 139, 256, 98, 162, 58, 227, 113, 234, 198, 128, 49, 81, 29, 242, 185, 117, 99, 64, 153, 169, 143, 121, 221, 187, 178, 32, 205, 213, 200, 189, 239, 222, 89, 16, 231, 235, 100, 223, 248, 111, 173, 8, 244, 246, 50, 240, 124, 184, 215, 4, 122, 123, 25, 120, 62, 92, 236, 2, 61, 190, 141, 60, 31, 46, 118, 1], -[1, 160, 157, 191, 234, 175, 244, 233, 15, 87, 42, 38, 169, 55, 62, 154, 225, 20, 116, 56, 222, 54, 159, 254, 34, 43, 198, 69, 246, 39, 72, 212, 253, 131, 143, 7, 92, 71, 52, 96, 197, 166, 89, 105, 95, 37, 9, 155, 128, 177, 50, 33, 140, 41, 135, 12, 121, 85, 236, 238, 44, 101, 226, 180, 16, 247, 199, 229, 146, 230, 49, 130, 240, 107, 158, 94, 134, 109, 221, 151, 2, 63, 57, 125, 211, 93, 231, 209, 30, 174, 84, 76, 81, 110, 124, 51, 193, 40, 232, 112, 187, 108, 61, 251, 68, 86, 139, 138, 235, 78, 144, 167, 249, 5, 29, 14, 184, 142, 104, 192, 137, 75, 178, 210, 190, 74, 18, 53, 256, 97, 100, 66, 23, 82, 13, 24, 242, 170, 215, 219, 88, 202, 195, 103, 32, 237, 141, 201, 35, 203, 98, 3, 223, 214, 59, 188, 11, 218, 185, 45, 4, 126, 114, 250, 165, 186, 205, 161, 60, 91, 168, 152, 162, 220, 248, 102, 129, 80, 207, 224, 117, 216, 122, 245, 136, 172, 21, 19, 213, 156, 31, 77, 241, 10, 58, 28, 111, 27, 208, 127, 17, 150, 99, 163, 123, 148, 36, 106, 255, 194, 200, 132, 46, 164, 26, 48, 227, 83, 173, 181, 176, 147, 133, 206, 64, 217, 25, 145, 70, 149, 196, 6, 189, 171, 118, 119, 22, 179, 113, 90, 8, 252, 228, 243, 73, 115, 153, 65, 120, 182, 79, 47, 67, 183, 239, 204, 1], -[1, 161, 221, 115, 11, 229, 118, 237, 121, 206, 13, 37, 46, 210, 143, 150, 249, 254, 31, 108, 169, 224, 84, 160, 60, 151, 153, 218, 146, 119, 141, 85, 64, 24, 9, 164, 190, 7, 99, 5, 34, 77, 61, 55, 117, 76, 157, 91, 2, 65, 185, 230, 22, 201, 236, 217, 242, 155, 26, 74, 92, 163, 29, 43, 241, 251, 62, 216, 81, 191, 168, 63, 120, 45, 49, 179, 35, 238, 25, 170, 128, 48, 18, 71, 123, 14, 198, 10, 68, 154, 122, 110, 234, 152, 57, 182, 4, 130, 113, 203, 44, 145, 215, 177, 227, 53, 52, 148, 184, 69, 58, 86, 225, 245, 124, 175, 162, 125, 79, 126, 240, 90, 98, 101, 70, 219, 50, 83, 256, 96, 36, 142, 246, 28, 139, 20, 136, 51, 244, 220, 211, 47, 114, 107, 8, 3, 226, 149, 88, 33, 173, 97, 197, 106, 104, 39, 111, 138, 116, 172, 193, 233, 248, 93, 67, 250, 158, 252, 223, 180, 196, 202, 140, 181, 100, 166, 255, 192, 72, 27, 235, 56, 21, 40, 15, 102, 231, 183, 165, 94, 228, 214, 16, 6, 195, 41, 176, 66, 89, 194, 137, 212, 208, 78, 222, 19, 232, 87, 129, 209, 239, 186, 134, 243, 59, 247, 189, 103, 135, 147, 23, 105, 200, 75, 253, 127, 144, 54, 213, 112, 42, 80, 30, 204, 205, 109, 73, 188, 199, 171, 32, 12, 133, 82, 95, 132, 178, 131, 17, 167, 159, 156, 187, 38, 207, 174, 1], -[1, 162, 30, 234, 129, 81, 15, 117, 193, 169, 136, 187, 225, 213, 68, 222, 241, 235, 34, 111, 249, 246, 17, 184, 253, 123, 137, 92, 255, 190, 197, 46, 256, 95, 227, 23, 128, 176, 242, 140, 64, 88, 121, 70, 32, 44, 189, 35, 16, 22, 223, 146, 8, 11, 240, 73, 4, 134, 120, 165, 2, 67, 60, 211, 1, 162, 30, 234, 129, 81, 15, 117, 193, 169, 136, 187, 225, 213, 68, 222, 241, 235, 34, 111, 249, 246, 17, 184, 253, 123, 137, 92, 255, 190, 197, 46, 256, 95, 227, 23, 128, 176, 242, 140, 64, 88, 121, 70, 32, 44, 189, 35, 16, 22, 223, 146, 8, 11, 240, 73, 4, 134, 120, 165, 2, 67, 60, 211, 1, 162, 30, 234, 129, 81, 15, 117, 193, 169, 136, 187, 225, 213, 68, 222, 241, 235, 34, 111, 249, 246, 17, 184, 253, 123, 137, 92, 255, 190, 197, 46, 256, 95, 227, 23, 128, 176, 242, 140, 64, 88, 121, 70, 32, 44, 189, 35, 16, 22, 223, 146, 8, 11, 240, 73, 4, 134, 120, 165, 2, 67, 60, 211, 1, 162, 30, 234, 129, 81, 15, 117, 193, 169, 136, 187, 225, 213, 68, 222, 241, 235, 34, 111, 249, 246, 17, 184, 253, 123, 137, 92, 255, 190, 197, 46, 256, 95, 227, 23, 128, 176, 242, 140, 64, 88, 121, 70, 32, 44, 189, 35, 16, 22, 223, 146, 8, 11, 240, 73, 4, 134, 120, 165, 2, 67, 60, 211, 1], -[1, 163, 98, 40, 95, 65, 58, 202, 30, 7, 113, 172, 23, 151, 198, 149, 129, 210, 49, 20, 176, 161, 29, 101, 15, 132, 185, 86, 140, 204, 99, 203, 193, 105, 153, 10, 88, 209, 143, 179, 136, 66, 221, 43, 70, 102, 178, 230, 225, 181, 205, 5, 44, 233, 200, 218, 68, 33, 239, 150, 35, 51, 89, 115, 241, 219, 231, 131, 22, 245, 100, 109, 34, 145, 248, 75, 146, 154, 173, 186, 249, 238, 244, 194, 11, 251, 50, 183, 17, 201, 124, 166, 73, 77, 215, 93, 253, 119, 122, 97, 134, 254, 25, 220, 137, 229, 62, 83, 165, 167, 236, 175, 255, 188, 61, 177, 67, 127, 141, 110, 197, 243, 31, 170, 211, 212, 118, 216, 256, 94, 159, 217, 162, 192, 199, 55, 227, 250, 144, 85, 234, 106, 59, 108, 128, 47, 208, 237, 81, 96, 228, 156, 242, 125, 72, 171, 117, 53, 158, 54, 64, 152, 104, 247, 169, 48, 114, 78, 121, 191, 36, 214, 187, 155, 79, 27, 32, 76, 52, 252, 213, 24, 57, 39, 189, 224, 18, 107, 222, 206, 168, 142, 16, 38, 26, 126, 235, 12, 157, 148, 223, 112, 9, 182, 111, 103, 84, 71, 8, 19, 13, 63, 246, 6, 207, 74, 240, 56, 133, 91, 184, 180, 42, 164, 4, 138, 135, 160, 123, 3, 232, 37, 120, 28, 195, 174, 92, 90, 21, 82, 2, 69, 196, 80, 190, 130, 116, 147, 60, 14, 226, 87, 46, 45, 139, 41, 1], -[1, 164, 168, 53, 211, 166, 239, 132, 60, 74, 57, 96, 67, 194, 205, 210, 2, 71, 79, 106, 165, 75, 221, 7, 120, 148, 114, 192, 134, 131, 153, 163, 4, 142, 158, 212, 73, 150, 185, 14, 240, 39, 228, 127, 11, 5, 49, 69, 8, 27, 59, 167, 146, 43, 113, 28, 223, 78, 199, 254, 22, 10, 98, 138, 16, 54, 118, 77, 35, 86, 226, 56, 189, 156, 141, 251, 44, 20, 196, 19, 32, 108, 236, 154, 70, 172, 195, 112, 121, 55, 25, 245, 88, 40, 135, 38, 64, 216, 215, 51, 140, 87, 133, 224, 242, 110, 50, 233, 176, 80, 13, 76, 128, 175, 173, 102, 23, 174, 9, 191, 227, 220, 100, 209, 95, 160, 26, 152, 256, 93, 89, 204, 46, 91, 18, 125, 197, 183, 200, 161, 190, 63, 52, 47, 255, 186, 178, 151, 92, 182, 36, 250, 137, 109, 143, 65, 123, 126, 104, 94, 253, 115, 99, 45, 184, 107, 72, 243, 17, 218, 29, 130, 246, 252, 208, 188, 249, 230, 198, 90, 111, 214, 144, 229, 34, 179, 58, 3, 235, 247, 159, 119, 241, 203, 139, 180, 222, 171, 31, 201, 68, 101, 116, 6, 213, 237, 61, 238, 225, 149, 21, 103, 187, 85, 62, 145, 136, 202, 232, 12, 169, 217, 122, 219, 193, 41, 42, 206, 117, 170, 124, 33, 15, 147, 207, 24, 81, 177, 244, 181, 129, 82, 84, 155, 234, 83, 248, 66, 30, 37, 157, 48, 162, 97, 231, 105, 1], -[1, 165, 240, 22, 32, 140, 227, 190, 253, 111, 68, 169, 129, 211, 120, 11, 16, 70, 242, 95, 255, 184, 34, 213, 193, 234, 60, 134, 8, 35, 121, 176, 256, 92, 17, 235, 225, 117, 30, 67, 4, 146, 189, 88, 128, 46, 137, 246, 241, 187, 15, 162, 2, 73, 223, 44, 64, 23, 197, 123, 249, 222, 136, 81, 1, 165, 240, 22, 32, 140, 227, 190, 253, 111, 68, 169, 129, 211, 120, 11, 16, 70, 242, 95, 255, 184, 34, 213, 193, 234, 60, 134, 8, 35, 121, 176, 256, 92, 17, 235, 225, 117, 30, 67, 4, 146, 189, 88, 128, 46, 137, 246, 241, 187, 15, 162, 2, 73, 223, 44, 64, 23, 197, 123, 249, 222, 136, 81, 1, 165, 240, 22, 32, 140, 227, 190, 253, 111, 68, 169, 129, 211, 120, 11, 16, 70, 242, 95, 255, 184, 34, 213, 193, 234, 60, 134, 8, 35, 121, 176, 256, 92, 17, 235, 225, 117, 30, 67, 4, 146, 189, 88, 128, 46, 137, 246, 241, 187, 15, 162, 2, 73, 223, 44, 64, 23, 197, 123, 249, 222, 136, 81, 1, 165, 240, 22, 32, 140, 227, 190, 253, 111, 68, 169, 129, 211, 120, 11, 16, 70, 242, 95, 255, 184, 34, 213, 193, 234, 60, 134, 8, 35, 121, 176, 256, 92, 17, 235, 225, 117, 30, 67, 4, 146, 189, 88, 128, 46, 137, 246, 241, 187, 15, 162, 2, 73, 223, 44, 64, 23, 197, 123, 249, 222, 136, 81, 1], -[1, 166, 57, 210, 165, 148, 153, 212, 240, 5, 59, 28, 22, 54, 226, 251, 32, 172, 25, 38, 140, 110, 13, 102, 227, 160, 89, 125, 190, 186, 36, 65, 253, 107, 29, 188, 111, 179, 159, 180, 68, 237, 21, 145, 169, 41, 124, 24, 129, 83, 157, 105, 211, 74, 205, 106, 120, 131, 158, 14, 11, 27, 113, 254, 16, 86, 141, 19, 70, 55, 135, 51, 242, 80, 173, 191, 95, 93, 18, 161, 255, 182, 143, 94, 184, 218, 208, 90, 34, 247, 139, 201, 213, 149, 62, 12, 193, 170, 207, 181, 234, 37, 231, 53, 60, 194, 79, 7, 134, 142, 185, 127, 8, 43, 199, 138, 35, 156, 196, 154, 121, 40, 215, 224, 176, 175, 9, 209, 256, 91, 200, 47, 92, 109, 104, 45, 17, 252, 198, 229, 235, 203, 31, 6, 225, 85, 232, 219, 117, 147, 244, 155, 30, 97, 168, 132, 67, 71, 221, 192, 4, 150, 228, 69, 146, 78, 98, 77, 189, 20, 236, 112, 88, 216, 133, 233, 128, 174, 100, 152, 46, 183, 52, 151, 137, 126, 99, 243, 246, 230, 144, 3, 241, 171, 116, 238, 187, 202, 122, 206, 15, 177, 84, 66, 162, 164, 239, 96, 2, 75, 114, 163, 73, 39, 49, 167, 223, 10, 118, 56, 44, 108, 195, 245, 64, 87, 50, 76, 23, 220, 26, 204, 197, 63, 178, 250, 123, 115, 72, 130, 249, 214, 58, 119, 222, 101, 61, 103, 136, 217, 42, 33, 81, 82, 248, 48, 1], -[1, 167, 133, 109, 213, 105, 59, 87, 137, 6, 231, 27, 140, 250, 116, 97, 8, 51, 36, 101, 162, 69, 215, 182, 68, 48, 49, 216, 92, 201, 157, 5, 64, 151, 31, 37, 11, 38, 178, 171, 30, 127, 135, 186, 222, 66, 228, 40, 255, 180, 248, 39, 88, 47, 139, 83, 240, 245, 52, 203, 234, 14, 25, 63, 241, 155, 185, 55, 190, 119, 84, 150, 121, 161, 159, 82, 73, 112, 200, 247, 129, 212, 195, 183, 235, 181, 158, 172, 197, 3, 244, 142, 70, 125, 58, 177, 4, 154, 18, 179, 81, 163, 236, 91, 34, 24, 153, 108, 46, 229, 207, 131, 32, 204, 144, 147, 134, 19, 89, 214, 15, 192, 196, 93, 111, 33, 114, 20, 256, 90, 124, 148, 44, 152, 198, 170, 120, 251, 26, 230, 117, 7, 141, 160, 249, 206, 221, 156, 95, 188, 42, 75, 189, 209, 208, 41, 165, 56, 100, 252, 193, 106, 226, 220, 246, 219, 79, 86, 227, 130, 122, 71, 35, 191, 29, 217, 2, 77, 9, 218, 169, 210, 118, 174, 17, 12, 205, 54, 23, 243, 232, 194, 16, 102, 72, 202, 67, 138, 173, 107, 136, 96, 98, 175, 184, 145, 57, 10, 128, 45, 62, 74, 22, 76, 99, 85, 60, 254, 13, 115, 187, 132, 199, 80, 253, 103, 239, 78, 176, 94, 21, 166, 223, 233, 104, 149, 211, 28, 50, 126, 225, 53, 113, 110, 123, 238, 168, 43, 242, 65, 61, 164, 146, 224, 143, 237, 1], -[1, 168, 211, 239, 60, 57, 67, 205, 2, 79, 165, 221, 120, 114, 134, 153, 4, 158, 73, 185, 240, 228, 11, 49, 8, 59, 146, 113, 223, 199, 22, 98, 16, 118, 35, 226, 189, 141, 44, 196, 32, 236, 70, 195, 121, 25, 88, 135, 64, 215, 140, 133, 242, 50, 176, 13, 128, 173, 23, 9, 227, 100, 95, 26, 256, 89, 46, 18, 197, 200, 190, 52, 255, 178, 92, 36, 137, 143, 123, 104, 253, 99, 184, 72, 17, 29, 246, 208, 249, 198, 111, 144, 34, 58, 235, 159, 241, 139, 222, 31, 68, 116, 213, 61, 225, 21, 187, 62, 136, 232, 169, 122, 193, 42, 117, 124, 15, 207, 81, 244, 129, 84, 234, 248, 30, 157, 162, 231, 1, 168, 211, 239, 60, 57, 67, 205, 2, 79, 165, 221, 120, 114, 134, 153, 4, 158, 73, 185, 240, 228, 11, 49, 8, 59, 146, 113, 223, 199, 22, 98, 16, 118, 35, 226, 189, 141, 44, 196, 32, 236, 70, 195, 121, 25, 88, 135, 64, 215, 140, 133, 242, 50, 176, 13, 128, 173, 23, 9, 227, 100, 95, 26, 256, 89, 46, 18, 197, 200, 190, 52, 255, 178, 92, 36, 137, 143, 123, 104, 253, 99, 184, 72, 17, 29, 246, 208, 249, 198, 111, 144, 34, 58, 235, 159, 241, 139, 222, 31, 68, 116, 213, 61, 225, 21, 187, 62, 136, 232, 169, 122, 193, 42, 117, 124, 15, 207, 81, 244, 129, 84, 234, 248, 30, 157, 162, 231, 1], -[1, 169, 34, 92, 128, 44, 240, 211, 193, 235, 137, 23, 32, 11, 60, 117, 241, 123, 227, 70, 8, 67, 15, 222, 253, 95, 121, 146, 2, 81, 68, 184, 256, 88, 223, 165, 129, 213, 17, 46, 64, 22, 120, 234, 225, 246, 197, 140, 16, 134, 30, 187, 249, 190, 242, 35, 4, 162, 136, 111, 255, 176, 189, 73, 1, 169, 34, 92, 128, 44, 240, 211, 193, 235, 137, 23, 32, 11, 60, 117, 241, 123, 227, 70, 8, 67, 15, 222, 253, 95, 121, 146, 2, 81, 68, 184, 256, 88, 223, 165, 129, 213, 17, 46, 64, 22, 120, 234, 225, 246, 197, 140, 16, 134, 30, 187, 249, 190, 242, 35, 4, 162, 136, 111, 255, 176, 189, 73, 1, 169, 34, 92, 128, 44, 240, 211, 193, 235, 137, 23, 32, 11, 60, 117, 241, 123, 227, 70, 8, 67, 15, 222, 253, 95, 121, 146, 2, 81, 68, 184, 256, 88, 223, 165, 129, 213, 17, 46, 64, 22, 120, 234, 225, 246, 197, 140, 16, 134, 30, 187, 249, 190, 242, 35, 4, 162, 136, 111, 255, 176, 189, 73, 1, 169, 34, 92, 128, 44, 240, 211, 193, 235, 137, 23, 32, 11, 60, 117, 241, 123, 227, 70, 8, 67, 15, 222, 253, 95, 121, 146, 2, 81, 68, 184, 256, 88, 223, 165, 129, 213, 17, 46, 64, 22, 120, 234, 225, 246, 197, 140, 16, 134, 30, 187, 249, 190, 242, 35, 4, 162, 136, 111, 255, 176, 189, 73, 1], -[1, 170, 116, 188, 92, 220, 135, 77, 240, 194, 84, 145, 235, 115, 18, 233, 32, 43, 114, 105, 117, 101, 208, 151, 227, 40, 118, 14, 67, 82, 62, 3, 253, 91, 50, 19, 146, 148, 231, 206, 68, 252, 178, 191, 88, 54, 185, 96, 129, 85, 58, 94, 46, 110, 196, 167, 120, 97, 42, 201, 246, 186, 9, 245, 16, 150, 57, 181, 187, 179, 104, 204, 242, 20, 59, 7, 162, 41, 31, 130, 255, 174, 25, 138, 73, 74, 244, 103, 34, 126, 89, 224, 44, 27, 221, 48, 193, 171, 29, 47, 23, 55, 98, 212, 60, 177, 21, 229, 123, 93, 133, 251, 8, 75, 157, 219, 222, 218, 52, 102, 121, 10, 158, 132, 81, 149, 144, 65, 256, 87, 141, 69, 165, 37, 122, 180, 17, 63, 173, 112, 22, 142, 239, 24, 225, 214, 143, 152, 140, 156, 49, 106, 30, 217, 139, 243, 190, 175, 195, 254, 4, 166, 207, 238, 111, 109, 26, 51, 189, 5, 79, 66, 169, 203, 72, 161, 128, 172, 199, 163, 211, 147, 61, 90, 137, 160, 215, 56, 11, 71, 248, 12, 241, 107, 200, 76, 70, 78, 153, 53, 15, 237, 198, 250, 95, 216, 226, 127, 2, 83, 232, 119, 184, 183, 13, 154, 223, 131, 168, 33, 213, 230, 36, 209, 64, 86, 228, 210, 234, 202, 159, 45, 197, 80, 236, 28, 134, 164, 124, 6, 249, 182, 100, 38, 35, 39, 205, 155, 136, 247, 99, 125, 176, 108, 113, 192, 1], -[1, 171, 200, 19, 165, 202, 104, 51, 240, 177, 198, 191, 22, 164, 31, 161, 32, 75, 232, 94, 140, 39, 244, 90, 227, 10, 168, 201, 190, 108, 221, 12, 253, 87, 228, 181, 111, 220, 98, 53, 68, 63, 236, 7, 169, 115, 133, 127, 129, 214, 100, 138, 211, 101, 52, 154, 120, 217, 99, 224, 11, 82, 144, 209, 16, 166, 116, 47, 70, 148, 122, 45, 242, 5, 84, 229, 95, 54, 239, 6, 255, 172, 114, 219, 184, 110, 49, 155, 34, 160, 118, 132, 213, 186, 195, 192, 193, 107, 50, 69, 234, 179, 26, 77, 60, 237, 178, 112, 134, 41, 72, 233, 8, 83, 58, 152, 35, 74, 61, 151, 121, 131, 42, 243, 176, 27, 248, 3, 256, 86, 57, 238, 92, 55, 153, 206, 17, 80, 59, 66, 235, 93, 226, 96, 225, 182, 25, 163, 117, 218, 13, 167, 30, 247, 89, 56, 67, 149, 36, 245, 4, 170, 29, 76, 146, 37, 159, 204, 189, 194, 21, 250, 88, 142, 124, 130, 128, 43, 157, 119, 46, 156, 205, 103, 137, 40, 158, 33, 246, 175, 113, 48, 241, 91, 141, 210, 187, 109, 135, 212, 15, 252, 173, 28, 162, 203, 18, 251, 2, 85, 143, 38, 73, 147, 208, 102, 223, 97, 139, 125, 44, 71, 62, 65, 64, 150, 207, 188, 23, 78, 231, 180, 197, 20, 79, 145, 123, 216, 185, 24, 249, 174, 199, 105, 222, 183, 196, 106, 136, 126, 215, 14, 81, 230, 9, 254, 1], -[1, 172, 29, 105, 70, 218, 231, 154, 17, 97, 236, 243, 162, 108, 72, 48, 32, 107, 157, 19, 184, 37, 196, 45, 30, 20, 99, 66, 44, 115, 248, 251, 253, 83, 141, 94, 234, 156, 104, 155, 189, 126, 84, 56, 123, 82, 226, 65, 129, 86, 143, 181, 35, 109, 244, 77, 137, 177, 118, 250, 81, 54, 36, 24, 16, 182, 207, 138, 92, 147, 98, 151, 15, 10, 178, 33, 22, 186, 124, 254, 255, 170, 199, 47, 117, 78, 52, 206, 223, 63, 42, 28, 190, 41, 113, 161, 193, 43, 200, 219, 146, 183, 122, 167, 197, 217, 59, 125, 169, 27, 18, 12, 8, 91, 232, 69, 46, 202, 49, 204, 136, 5, 89, 145, 11, 93, 62, 127, 256, 85, 228, 152, 187, 39, 26, 103, 240, 160, 21, 14, 95, 149, 185, 209, 225, 150, 100, 238, 73, 220, 61, 212, 227, 237, 158, 191, 213, 142, 9, 6, 4, 174, 116, 163, 23, 101, 153, 102, 68, 131, 173, 201, 134, 175, 31, 192, 128, 171, 114, 76, 222, 148, 13, 180, 120, 80, 139, 7, 176, 203, 221, 233, 241, 75, 50, 119, 165, 110, 159, 106, 242, 247, 79, 224, 235, 71, 133, 3, 2, 87, 58, 210, 140, 179, 205, 51, 34, 194, 215, 229, 67, 216, 144, 96, 64, 214, 57, 38, 111, 74, 135, 90, 60, 40, 198, 132, 88, 230, 239, 245, 249, 166, 25, 188, 211, 55, 208, 53, 121, 252, 168, 112, 246, 164, 195, 130, 1], -[1, 173, 117, 195, 68, 199, 246, 153, 255, 168, 23, 124, 121, 116, 22, 208, 4, 178, 211, 9, 15, 25, 213, 98, 249, 158, 92, 239, 227, 207, 88, 61, 16, 198, 73, 36, 60, 100, 81, 135, 225, 118, 111, 185, 137, 57, 95, 244, 64, 21, 35, 144, 240, 143, 67, 26, 129, 215, 187, 226, 34, 228, 123, 205, 256, 84, 140, 62, 189, 58, 11, 104, 2, 89, 234, 133, 136, 141, 235, 49, 253, 79, 46, 248, 242, 232, 44, 159, 8, 99, 165, 18, 30, 50, 169, 196, 241, 59, 184, 221, 197, 157, 176, 122, 32, 139, 146, 72, 120, 200, 162, 13, 193, 236, 222, 113, 17, 114, 190, 231, 128, 42, 70, 31, 223, 29, 134, 52, 1, 173, 117, 195, 68, 199, 246, 153, 255, 168, 23, 124, 121, 116, 22, 208, 4, 178, 211, 9, 15, 25, 213, 98, 249, 158, 92, 239, 227, 207, 88, 61, 16, 198, 73, 36, 60, 100, 81, 135, 225, 118, 111, 185, 137, 57, 95, 244, 64, 21, 35, 144, 240, 143, 67, 26, 129, 215, 187, 226, 34, 228, 123, 205, 256, 84, 140, 62, 189, 58, 11, 104, 2, 89, 234, 133, 136, 141, 235, 49, 253, 79, 46, 248, 242, 232, 44, 159, 8, 99, 165, 18, 30, 50, 169, 196, 241, 59, 184, 221, 197, 157, 176, 122, 32, 139, 146, 72, 120, 200, 162, 13, 193, 236, 222, 113, 17, 114, 190, 231, 128, 42, 70, 31, 223, 29, 134, 52, 1], -[1, 174, 207, 38, 187, 156, 159, 167, 17, 131, 178, 132, 95, 82, 133, 12, 32, 171, 199, 188, 73, 109, 205, 204, 30, 80, 42, 112, 213, 54, 144, 127, 253, 75, 200, 105, 23, 147, 135, 103, 189, 247, 59, 243, 134, 186, 239, 209, 129, 87, 232, 19, 222, 78, 208, 212, 137, 194, 89, 66, 176, 41, 195, 6, 16, 214, 228, 94, 165, 183, 231, 102, 15, 40, 21, 56, 235, 27, 72, 192, 255, 166, 100, 181, 140, 202, 196, 180, 223, 252, 158, 250, 67, 93, 248, 233, 193, 172, 116, 138, 111, 39, 104, 106, 197, 97, 173, 33, 88, 149, 226, 3, 8, 107, 114, 47, 211, 220, 244, 51, 136, 20, 139, 28, 246, 142, 36, 96, 256, 83, 50, 219, 70, 101, 98, 90, 240, 126, 79, 125, 162, 175, 124, 245, 225, 86, 58, 69, 184, 148, 52, 53, 227, 177, 215, 145, 44, 203, 113, 130, 4, 182, 57, 152, 234, 110, 122, 154, 68, 10, 198, 14, 123, 71, 18, 48, 128, 170, 25, 238, 35, 179, 49, 45, 120, 63, 168, 191, 81, 216, 62, 251, 241, 43, 29, 163, 92, 74, 26, 155, 242, 217, 236, 201, 22, 230, 185, 65, 2, 91, 157, 76, 117, 55, 61, 77, 34, 5, 99, 7, 190, 164, 9, 24, 64, 85, 141, 119, 146, 218, 153, 151, 60, 160, 84, 224, 169, 108, 31, 254, 249, 150, 143, 210, 46, 37, 13, 206, 121, 237, 118, 229, 11, 115, 221, 161, 1], -[1, 175, 42, 154, 222, 43, 72, 7, 197, 37, 50, 12, 44, 247, 49, 94, 2, 93, 84, 51, 187, 86, 144, 14, 137, 74, 100, 24, 88, 237, 98, 188, 4, 186, 168, 102, 117, 172, 31, 28, 17, 148, 200, 48, 176, 217, 196, 119, 8, 115, 79, 204, 234, 87, 62, 56, 34, 39, 143, 96, 95, 177, 135, 238, 16, 230, 158, 151, 211, 174, 124, 112, 68, 78, 29, 192, 190, 97, 13, 219, 32, 203, 59, 45, 165, 91, 248, 224, 136, 156, 58, 127, 123, 194, 26, 181, 64, 149, 118, 90, 73, 182, 239, 191, 15, 55, 116, 254, 246, 131, 52, 105, 128, 41, 236, 180, 146, 107, 221, 125, 30, 110, 232, 251, 235, 5, 104, 210, 256, 82, 215, 103, 35, 214, 185, 250, 60, 220, 207, 245, 213, 10, 208, 163, 255, 164, 173, 206, 70, 171, 113, 243, 120, 183, 157, 233, 169, 20, 159, 69, 253, 71, 89, 155, 140, 85, 226, 229, 240, 109, 57, 209, 81, 40, 61, 138, 249, 142, 178, 53, 23, 170, 195, 201, 223, 218, 114, 161, 162, 80, 122, 19, 241, 27, 99, 106, 46, 83, 133, 145, 189, 179, 228, 65, 67, 160, 244, 38, 225, 54, 198, 212, 92, 166, 9, 33, 121, 101, 199, 130, 134, 63, 231, 76, 193, 108, 139, 167, 184, 75, 18, 66, 242, 202, 141, 3, 11, 126, 205, 152, 129, 216, 21, 77, 111, 150, 36, 132, 227, 147, 25, 6, 22, 252, 153, 47, 1], -[1, 176, 136, 35, 249, 134, 197, 234, 64, 213, 223, 184, 2, 95, 15, 70, 241, 11, 137, 211, 128, 169, 189, 111, 4, 190, 30, 140, 225, 22, 17, 165, 256, 81, 121, 222, 8, 123, 60, 23, 193, 44, 34, 73, 255, 162, 242, 187, 16, 246, 120, 46, 129, 88, 68, 146, 253, 67, 227, 117, 32, 235, 240, 92, 1, 176, 136, 35, 249, 134, 197, 234, 64, 213, 223, 184, 2, 95, 15, 70, 241, 11, 137, 211, 128, 169, 189, 111, 4, 190, 30, 140, 225, 22, 17, 165, 256, 81, 121, 222, 8, 123, 60, 23, 193, 44, 34, 73, 255, 162, 242, 187, 16, 246, 120, 46, 129, 88, 68, 146, 253, 67, 227, 117, 32, 235, 240, 92, 1, 176, 136, 35, 249, 134, 197, 234, 64, 213, 223, 184, 2, 95, 15, 70, 241, 11, 137, 211, 128, 169, 189, 111, 4, 190, 30, 140, 225, 22, 17, 165, 256, 81, 121, 222, 8, 123, 60, 23, 193, 44, 34, 73, 255, 162, 242, 187, 16, 246, 120, 46, 129, 88, 68, 146, 253, 67, 227, 117, 32, 235, 240, 92, 1, 176, 136, 35, 249, 134, 197, 234, 64, 213, 223, 184, 2, 95, 15, 70, 241, 11, 137, 211, 128, 169, 189, 111, 4, 190, 30, 140, 225, 22, 17, 165, 256, 81, 121, 222, 8, 123, 60, 23, 193, 44, 34, 73, 255, 162, 242, 187, 16, 246, 120, 46, 129, 88, 68, 146, 253, 67, 227, 117, 32, 235, 240, 92, 1], -[1, 177, 232, 201, 111, 115, 52, 209, 242, 172, 118, 69, 134, 74, 248, 206, 225, 247, 29, 250, 46, 175, 135, 251, 223, 150, 79, 105, 81, 202, 31, 90, 253, 63, 100, 224, 70, 54, 49, 192, 60, 83, 42, 238, 235, 218, 36, 204, 128, 40, 141, 28, 73, 71, 231, 24, 136, 171, 198, 94, 190, 220, 133, 154, 16, 5, 114, 132, 234, 41, 61, 3, 17, 182, 89, 76, 88, 156, 113, 212, 2, 97, 207, 145, 222, 230, 104, 161, 227, 87, 236, 138, 11, 148, 239, 155, 193, 237, 58, 243, 92, 93, 13, 245, 189, 43, 158, 210, 162, 147, 62, 180, 249, 126, 200, 191, 140, 108, 98, 127, 120, 166, 84, 219, 213, 179, 72, 151, 256, 80, 25, 56, 146, 142, 205, 48, 15, 85, 139, 188, 123, 183, 9, 51, 32, 10, 228, 7, 211, 82, 122, 6, 34, 107, 178, 152, 176, 55, 226, 167, 4, 194, 157, 33, 187, 203, 208, 65, 197, 174, 215, 19, 22, 39, 221, 53, 129, 217, 116, 229, 184, 186, 26, 233, 121, 86, 59, 163, 67, 37, 124, 103, 241, 252, 143, 125, 23, 216, 196, 254, 240, 75, 168, 181, 169, 101, 144, 45, 255, 160, 50, 112, 35, 27, 153, 96, 30, 170, 21, 119, 246, 109, 18, 102, 64, 20, 199, 14, 165, 164, 244, 12, 68, 214, 99, 47, 95, 110, 195, 77, 8, 131, 57, 66, 117, 149, 159, 130, 137, 91, 173, 38, 44, 78, 185, 106, 1], -[1, 178, 73, 144, 189, 232, 176, 231, 255, 158, 111, 226, 136, 50, 162, 52, 4, 198, 35, 62, 242, 157, 190, 153, 249, 118, 187, 133, 30, 200, 134, 208, 16, 21, 140, 248, 197, 114, 246, 98, 225, 215, 234, 18, 120, 29, 22, 61, 64, 84, 46, 221, 17, 199, 213, 135, 129, 89, 165, 72, 223, 116, 88, 244, 256, 79, 184, 113, 68, 25, 81, 26, 2, 99, 146, 31, 121, 207, 95, 205, 253, 59, 222, 195, 15, 100, 67, 104, 8, 139, 70, 124, 227, 57, 123, 49, 241, 236, 117, 9, 60, 143, 11, 159, 32, 42, 23, 239, 137, 228, 235, 196, 193, 173, 211, 36, 240, 58, 44, 122, 128, 168, 92, 185, 34, 141, 169, 13, 1, 178, 73, 144, 189, 232, 176, 231, 255, 158, 111, 226, 136, 50, 162, 52, 4, 198, 35, 62, 242, 157, 190, 153, 249, 118, 187, 133, 30, 200, 134, 208, 16, 21, 140, 248, 197, 114, 246, 98, 225, 215, 234, 18, 120, 29, 22, 61, 64, 84, 46, 221, 17, 199, 213, 135, 129, 89, 165, 72, 223, 116, 88, 244, 256, 79, 184, 113, 68, 25, 81, 26, 2, 99, 146, 31, 121, 207, 95, 205, 253, 59, 222, 195, 15, 100, 67, 104, 8, 139, 70, 124, 227, 57, 123, 49, 241, 236, 117, 9, 60, 143, 11, 159, 32, 42, 23, 239, 137, 228, 235, 196, 193, 173, 211, 36, 240, 58, 44, 122, 128, 168, 92, 185, 34, 141, 169, 13, 1], -[1, 179, 173, 127, 117, 126, 195, 210, 68, 93, 199, 155, 246, 87, 153, 145, 255, 156, 168, 3, 23, 5, 124, 94, 121, 71, 116, 204, 22, 83, 208, 224, 4, 202, 178, 251, 211, 247, 9, 69, 15, 115, 25, 106, 213, 91, 98, 66, 249, 110, 158, 12, 92, 20, 239, 119, 227, 27, 207, 45, 88, 75, 61, 125, 16, 37, 198, 233, 73, 217, 36, 19, 60, 203, 100, 167, 81, 107, 135, 7, 225, 183, 118, 48, 111, 80, 185, 219, 137, 108, 57, 180, 95, 43, 244, 243, 64, 148, 21, 161, 35, 97, 144, 76, 240, 41, 143, 154, 67, 171, 26, 28, 129, 218, 215, 192, 187, 63, 226, 105, 34, 175, 228, 206, 123, 172, 205, 201, 256, 78, 84, 130, 140, 131, 62, 47, 189, 164, 58, 102, 11, 170, 104, 112, 2, 101, 89, 254, 234, 252, 133, 163, 136, 186, 141, 53, 235, 174, 49, 33, 253, 55, 79, 6, 46, 10, 248, 188, 242, 142, 232, 151, 44, 166, 159, 191, 8, 147, 99, 245, 165, 237, 18, 138, 30, 230, 50, 212, 169, 182, 196, 132, 241, 220, 59, 24, 184, 40, 221, 238, 197, 54, 157, 90, 176, 150, 122, 250, 32, 74, 139, 209, 146, 177, 72, 38, 120, 149, 200, 77, 162, 214, 13, 14, 193, 109, 236, 96, 222, 160, 113, 181, 17, 216, 114, 103, 190, 86, 231, 229, 128, 39, 42, 65, 70, 194, 31, 152, 223, 82, 29, 51, 134, 85, 52, 56, 1], -[1, 180, 18, 156, 67, 238, 178, 172, 120, 12, 104, 216, 73, 33, 29, 80, 8, 155, 144, 220, 22, 105, 139, 91, 189, 96, 61, 186, 70, 7, 232, 126, 64, 212, 124, 218, 176, 69, 84, 214, 227, 254, 231, 203, 46, 56, 57, 237, 255, 154, 221, 202, 123, 38, 158, 170, 17, 233, 49, 82, 111, 191, 199, 97, 241, 204, 226, 74, 213, 47, 236, 75, 136, 65, 135, 142, 117, 243, 50, 5, 129, 90, 9, 78, 162, 119, 89, 86, 60, 6, 52, 108, 165, 145, 143, 40, 4, 206, 72, 110, 11, 181, 198, 174, 223, 48, 159, 93, 35, 132, 116, 63, 32, 106, 62, 109, 88, 163, 42, 107, 242, 127, 244, 230, 23, 28, 157, 247, 256, 77, 239, 101, 190, 19, 79, 85, 137, 245, 153, 41, 184, 224, 228, 177, 249, 102, 113, 37, 235, 152, 118, 166, 68, 161, 196, 71, 187, 250, 25, 131, 193, 45, 133, 39, 81, 188, 173, 43, 30, 3, 26, 54, 211, 201, 200, 20, 2, 103, 36, 55, 134, 219, 99, 87, 240, 24, 208, 175, 146, 66, 58, 160, 16, 53, 31, 183, 44, 210, 21, 182, 121, 192, 122, 115, 140, 14, 207, 252, 128, 167, 248, 179, 95, 138, 168, 171, 197, 251, 205, 149, 92, 112, 114, 217, 253, 51, 185, 147, 246, 76, 59, 83, 34, 209, 98, 164, 222, 125, 141, 194, 225, 151, 195, 148, 169, 94, 215, 150, 15, 130, 13, 27, 234, 229, 100, 10, 1], -[1, 181, 122, 237, 235, 130, 143, 183, 227, 224, 195, 86, 146, 212, 79, 164, 129, 219, 61, 247, 246, 65, 200, 220, 242, 112, 226, 43, 73, 106, 168, 82, 193, 238, 159, 252, 123, 161, 100, 110, 121, 56, 113, 150, 165, 53, 84, 41, 225, 119, 208, 126, 190, 209, 50, 55, 189, 28, 185, 75, 211, 155, 42, 149, 241, 188, 104, 63, 95, 233, 25, 156, 223, 14, 221, 166, 234, 206, 21, 203, 249, 94, 52, 160, 176, 245, 141, 78, 240, 7, 239, 83, 117, 103, 139, 230, 253, 47, 26, 80, 88, 251, 199, 39, 120, 132, 248, 170, 187, 180, 198, 115, 255, 152, 13, 40, 44, 254, 228, 148, 60, 66, 124, 85, 222, 90, 99, 186, 256, 76, 135, 20, 22, 127, 114, 74, 30, 33, 62, 171, 111, 45, 178, 93, 128, 38, 196, 10, 11, 192, 57, 37, 15, 145, 31, 214, 184, 151, 89, 175, 64, 19, 98, 5, 134, 96, 157, 147, 136, 201, 144, 107, 92, 204, 173, 216, 32, 138, 49, 131, 67, 48, 207, 202, 68, 229, 72, 182, 46, 102, 215, 108, 16, 69, 153, 194, 162, 24, 232, 101, 34, 243, 36, 91, 23, 51, 236, 54, 8, 163, 205, 97, 81, 12, 116, 179, 17, 250, 18, 174, 140, 154, 118, 27, 4, 210, 231, 177, 169, 6, 58, 218, 137, 125, 9, 87, 70, 77, 59, 142, 2, 105, 244, 217, 213, 3, 29, 109, 197, 191, 133, 172, 35, 167, 158, 71, 1], -[1, 182, 228, 119, 70, 147, 26, 106, 17, 10, 21, 224, 162, 186, 185, 3, 32, 170, 100, 210, 184, 78, 61, 51, 30, 63, 158, 229, 44, 41, 9, 96, 253, 43, 116, 38, 234, 183, 153, 90, 189, 217, 173, 132, 123, 27, 31, 245, 129, 91, 114, 188, 35, 202, 13, 53, 137, 5, 139, 112, 81, 93, 221, 130, 16, 85, 50, 105, 92, 39, 159, 154, 15, 160, 79, 243, 22, 149, 133, 48, 255, 150, 58, 19, 117, 220, 205, 45, 223, 237, 215, 66, 190, 142, 144, 251, 193, 174, 57, 94, 146, 101, 135, 155, 197, 131, 198, 56, 169, 175, 239, 65, 8, 171, 25, 181, 46, 148, 208, 77, 136, 80, 168, 250, 11, 203, 195, 24, 256, 75, 29, 138, 187, 110, 231, 151, 240, 247, 236, 33, 95, 71, 72, 254, 225, 87, 157, 47, 73, 179, 196, 206, 227, 194, 99, 28, 213, 216, 248, 161, 4, 214, 141, 219, 23, 74, 104, 167, 68, 40, 84, 125, 134, 230, 226, 12, 128, 166, 143, 69, 222, 55, 244, 204, 120, 252, 118, 145, 176, 164, 36, 127, 241, 172, 207, 152, 165, 218, 98, 103, 242, 97, 178, 14, 235, 108, 124, 209, 2, 107, 199, 238, 140, 37, 52, 212, 34, 20, 42, 191, 67, 115, 113, 6, 64, 83, 200, 163, 111, 156, 122, 102, 60, 126, 59, 201, 88, 82, 18, 192, 249, 86, 232, 76, 211, 109, 49, 180, 121, 177, 89, 7, 246, 54, 62, 233, 1], -[1, 183, 79, 65, 73, 252, 113, 119, 189, 149, 25, 206, 176, 83, 26, 132, 255, 148, 99, 127, 111, 10, 31, 19, 136, 216, 207, 102, 162, 91, 205, 250, 4, 218, 59, 3, 35, 237, 195, 219, 242, 82, 100, 53, 190, 75, 104, 14, 249, 78, 139, 251, 187, 40, 124, 76, 30, 93, 57, 151, 134, 107, 49, 229, 16, 101, 236, 12, 140, 177, 9, 105, 197, 71, 143, 212, 246, 43, 159, 56, 225, 55, 42, 233, 234, 160, 239, 47, 120, 115, 228, 90, 22, 171, 196, 145, 64, 147, 173, 48, 46, 194, 36, 163, 17, 27, 58, 77, 213, 172, 122, 224, 129, 220, 168, 161, 165, 126, 185, 188, 223, 203, 141, 103, 88, 170, 13, 66, 256, 74, 178, 192, 184, 5, 144, 138, 68, 108, 232, 51, 81, 174, 231, 125, 2, 109, 158, 130, 146, 247, 226, 238, 121, 41, 50, 155, 95, 166, 52, 7, 253, 39, 198, 254, 222, 20, 62, 38, 15, 175, 157, 204, 67, 182, 153, 243, 8, 179, 118, 6, 70, 217, 133, 181, 227, 164, 200, 106, 123, 150, 208, 28, 241, 156, 21, 245, 117, 80, 248, 152, 60, 186, 114, 45, 11, 214, 98, 201, 32, 202, 215, 24, 23, 97, 18, 210, 137, 142, 29, 167, 235, 86, 61, 112, 193, 110, 84, 209, 211, 63, 221, 94, 240, 230, 199, 180, 44, 85, 135, 33, 128, 37, 89, 96, 92, 131, 72, 69, 34, 54, 116, 154, 169, 87, 244, 191, 1], -[1, 184, 189, 81, 255, 146, 136, 95, 4, 222, 242, 67, 249, 70, 30, 123, 16, 117, 197, 11, 225, 23, 120, 235, 64, 211, 17, 44, 129, 92, 223, 169, 256, 73, 68, 176, 2, 111, 121, 162, 253, 35, 15, 190, 8, 187, 227, 134, 241, 140, 60, 246, 32, 234, 137, 22, 193, 46, 240, 213, 128, 165, 34, 88, 1, 184, 189, 81, 255, 146, 136, 95, 4, 222, 242, 67, 249, 70, 30, 123, 16, 117, 197, 11, 225, 23, 120, 235, 64, 211, 17, 44, 129, 92, 223, 169, 256, 73, 68, 176, 2, 111, 121, 162, 253, 35, 15, 190, 8, 187, 227, 134, 241, 140, 60, 246, 32, 234, 137, 22, 193, 46, 240, 213, 128, 165, 34, 88, 1, 184, 189, 81, 255, 146, 136, 95, 4, 222, 242, 67, 249, 70, 30, 123, 16, 117, 197, 11, 225, 23, 120, 235, 64, 211, 17, 44, 129, 92, 223, 169, 256, 73, 68, 176, 2, 111, 121, 162, 253, 35, 15, 190, 8, 187, 227, 134, 241, 140, 60, 246, 32, 234, 137, 22, 193, 46, 240, 213, 128, 165, 34, 88, 1, 184, 189, 81, 255, 146, 136, 95, 4, 222, 242, 67, 249, 70, 30, 123, 16, 117, 197, 11, 225, 23, 120, 235, 64, 211, 17, 44, 129, 92, 223, 169, 256, 73, 68, 176, 2, 111, 121, 162, 253, 35, 15, 190, 8, 187, 227, 134, 241, 140, 60, 246, 32, 234, 137, 22, 193, 46, 240, 213, 128, 165, 34, 88, 1], -[1, 185, 44, 173, 137, 159, 117, 57, 8, 195, 95, 99, 68, 244, 165, 199, 64, 18, 246, 21, 30, 153, 35, 50, 255, 144, 169, 168, 240, 196, 23, 143, 241, 124, 67, 59, 121, 26, 184, 116, 129, 221, 22, 215, 197, 208, 187, 157, 4, 226, 176, 178, 34, 122, 211, 228, 32, 9, 123, 139, 15, 205, 146, 25, 256, 72, 213, 84, 120, 98, 140, 200, 249, 62, 162, 158, 189, 13, 92, 58, 193, 239, 11, 236, 227, 104, 222, 207, 2, 113, 88, 89, 17, 61, 234, 114, 16, 133, 190, 198, 136, 231, 73, 141, 128, 36, 235, 42, 60, 49, 70, 100, 253, 31, 81, 79, 223, 135, 46, 29, 225, 248, 134, 118, 242, 52, 111, 232, 1, 185, 44, 173, 137, 159, 117, 57, 8, 195, 95, 99, 68, 244, 165, 199, 64, 18, 246, 21, 30, 153, 35, 50, 255, 144, 169, 168, 240, 196, 23, 143, 241, 124, 67, 59, 121, 26, 184, 116, 129, 221, 22, 215, 197, 208, 187, 157, 4, 226, 176, 178, 34, 122, 211, 228, 32, 9, 123, 139, 15, 205, 146, 25, 256, 72, 213, 84, 120, 98, 140, 200, 249, 62, 162, 158, 189, 13, 92, 58, 193, 239, 11, 236, 227, 104, 222, 207, 2, 113, 88, 89, 17, 61, 234, 114, 16, 133, 190, 198, 136, 231, 73, 141, 128, 36, 235, 42, 60, 49, 70, 100, 253, 31, 81, 79, 223, 135, 46, 29, 225, 248, 134, 118, 242, 52, 111, 232, 1], -[1, 186, 158, 90, 35, 85, 133, 66, 197, 148, 29, 254, 213, 40, 244, 152, 2, 115, 59, 180, 70, 170, 9, 132, 137, 39, 58, 251, 169, 80, 231, 47, 4, 230, 118, 103, 140, 83, 18, 7, 17, 78, 116, 245, 81, 160, 205, 94, 8, 203, 236, 206, 23, 166, 36, 14, 34, 156, 232, 233, 162, 63, 153, 188, 16, 149, 215, 155, 46, 75, 72, 28, 68, 55, 207, 209, 67, 126, 49, 119, 32, 41, 173, 53, 92, 150, 144, 56, 136, 110, 157, 161, 134, 252, 98, 238, 64, 82, 89, 106, 184, 43, 31, 112, 15, 220, 57, 65, 11, 247, 196, 219, 128, 164, 178, 212, 111, 86, 62, 224, 30, 183, 114, 130, 22, 237, 135, 181, 256, 71, 99, 167, 222, 172, 124, 191, 60, 109, 228, 3, 44, 217, 13, 105, 255, 142, 198, 77, 187, 87, 248, 125, 120, 218, 199, 6, 88, 177, 26, 210, 253, 27, 139, 154, 117, 174, 239, 250, 240, 179, 141, 12, 176, 97, 52, 163, 249, 54, 21, 51, 234, 91, 221, 243, 223, 101, 25, 24, 95, 194, 104, 69, 241, 108, 42, 102, 211, 182, 185, 229, 189, 202, 50, 48, 190, 131, 208, 138, 225, 216, 84, 204, 165, 107, 113, 201, 121, 147, 100, 96, 123, 5, 159, 19, 193, 175, 168, 151, 73, 214, 226, 145, 242, 37, 200, 192, 246, 10, 61, 38, 129, 93, 79, 45, 146, 171, 195, 33, 227, 74, 143, 127, 235, 20, 122, 76, 1], -[1, 187, 17, 95, 32, 73, 30, 213, 253, 23, 189, 134, 129, 222, 137, 176, 16, 165, 15, 235, 255, 140, 223, 67, 193, 111, 197, 88, 8, 211, 136, 246, 256, 70, 240, 162, 225, 184, 227, 44, 4, 234, 68, 123, 128, 35, 120, 81, 241, 92, 242, 22, 2, 117, 34, 190, 64, 146, 60, 169, 249, 46, 121, 11, 1, 187, 17, 95, 32, 73, 30, 213, 253, 23, 189, 134, 129, 222, 137, 176, 16, 165, 15, 235, 255, 140, 223, 67, 193, 111, 197, 88, 8, 211, 136, 246, 256, 70, 240, 162, 225, 184, 227, 44, 4, 234, 68, 123, 128, 35, 120, 81, 241, 92, 242, 22, 2, 117, 34, 190, 64, 146, 60, 169, 249, 46, 121, 11, 1, 187, 17, 95, 32, 73, 30, 213, 253, 23, 189, 134, 129, 222, 137, 176, 16, 165, 15, 235, 255, 140, 223, 67, 193, 111, 197, 88, 8, 211, 136, 246, 256, 70, 240, 162, 225, 184, 227, 44, 4, 234, 68, 123, 128, 35, 120, 81, 241, 92, 242, 22, 2, 117, 34, 190, 64, 146, 60, 169, 249, 46, 121, 11, 1, 187, 17, 95, 32, 73, 30, 213, 253, 23, 189, 134, 129, 222, 137, 176, 16, 165, 15, 235, 255, 140, 223, 67, 193, 111, 197, 88, 8, 211, 136, 246, 256, 70, 240, 162, 225, 184, 227, 44, 4, 234, 68, 123, 128, 35, 120, 81, 241, 92, 242, 22, 2, 117, 34, 190, 64, 146, 60, 169, 249, 46, 121, 11, 1], -[1, 188, 135, 194, 235, 233, 114, 101, 227, 14, 62, 91, 146, 206, 178, 54, 129, 94, 196, 97, 246, 245, 57, 179, 242, 7, 31, 174, 73, 103, 89, 27, 193, 47, 98, 177, 123, 251, 157, 218, 121, 132, 144, 87, 165, 180, 173, 142, 225, 152, 49, 217, 190, 254, 207, 109, 189, 66, 72, 172, 211, 90, 215, 71, 241, 76, 153, 237, 95, 127, 232, 183, 223, 33, 36, 86, 234, 45, 236, 164, 249, 38, 205, 247, 176, 192, 116, 220, 240, 145, 18, 43, 117, 151, 118, 82, 253, 19, 231, 252, 88, 96, 58, 110, 120, 201, 9, 150, 187, 204, 59, 41, 255, 138, 244, 126, 44, 48, 29, 55, 60, 229, 133, 75, 222, 102, 158, 149, 256, 69, 122, 63, 22, 24, 143, 156, 30, 243, 195, 166, 111, 51, 79, 203, 128, 163, 61, 160, 11, 12, 200, 78, 15, 250, 226, 83, 184, 154, 168, 230, 64, 210, 159, 80, 134, 6, 100, 39, 136, 125, 113, 170, 92, 77, 84, 115, 32, 105, 208, 40, 67, 3, 50, 148, 68, 191, 185, 85, 46, 167, 42, 186, 16, 181, 104, 20, 162, 130, 25, 74, 34, 224, 221, 171, 23, 212, 21, 93, 8, 219, 52, 10, 81, 65, 141, 37, 17, 112, 239, 214, 140, 106, 139, 175, 4, 238, 26, 5, 169, 161, 199, 147, 137, 56, 248, 107, 70, 53, 198, 216, 2, 119, 13, 131, 213, 209, 228, 202, 197, 28, 124, 182, 35, 155, 99, 108, 1], -[1, 189, 255, 136, 4, 242, 249, 30, 16, 197, 225, 120, 64, 17, 129, 223, 256, 68, 2, 121, 253, 15, 8, 227, 241, 60, 32, 137, 193, 240, 128, 34, 1, 189, 255, 136, 4, 242, 249, 30, 16, 197, 225, 120, 64, 17, 129, 223, 256, 68, 2, 121, 253, 15, 8, 227, 241, 60, 32, 137, 193, 240, 128, 34, 1, 189, 255, 136, 4, 242, 249, 30, 16, 197, 225, 120, 64, 17, 129, 223, 256, 68, 2, 121, 253, 15, 8, 227, 241, 60, 32, 137, 193, 240, 128, 34, 1, 189, 255, 136, 4, 242, 249, 30, 16, 197, 225, 120, 64, 17, 129, 223, 256, 68, 2, 121, 253, 15, 8, 227, 241, 60, 32, 137, 193, 240, 128, 34, 1, 189, 255, 136, 4, 242, 249, 30, 16, 197, 225, 120, 64, 17, 129, 223, 256, 68, 2, 121, 253, 15, 8, 227, 241, 60, 32, 137, 193, 240, 128, 34, 1, 189, 255, 136, 4, 242, 249, 30, 16, 197, 225, 120, 64, 17, 129, 223, 256, 68, 2, 121, 253, 15, 8, 227, 241, 60, 32, 137, 193, 240, 128, 34, 1, 189, 255, 136, 4, 242, 249, 30, 16, 197, 225, 120, 64, 17, 129, 223, 256, 68, 2, 121, 253, 15, 8, 227, 241, 60, 32, 137, 193, 240, 128, 34, 1, 189, 255, 136, 4, 242, 249, 30, 16, 197, 225, 120, 64, 17, 129, 223, 256, 68, 2, 121, 253, 15, 8, 227, 241, 60, 32, 137, 193, 240, 128, 34, 1], -[1, 190, 120, 184, 8, 235, 189, 187, 64, 81, 227, 211, 255, 134, 17, 146, 241, 44, 136, 140, 129, 95, 60, 92, 4, 246, 223, 222, 32, 169, 242, 234, 256, 67, 137, 73, 249, 22, 68, 70, 193, 176, 30, 46, 2, 123, 240, 111, 16, 213, 121, 117, 128, 162, 197, 165, 253, 11, 34, 35, 225, 88, 15, 23, 1, 190, 120, 184, 8, 235, 189, 187, 64, 81, 227, 211, 255, 134, 17, 146, 241, 44, 136, 140, 129, 95, 60, 92, 4, 246, 223, 222, 32, 169, 242, 234, 256, 67, 137, 73, 249, 22, 68, 70, 193, 176, 30, 46, 2, 123, 240, 111, 16, 213, 121, 117, 128, 162, 197, 165, 253, 11, 34, 35, 225, 88, 15, 23, 1, 190, 120, 184, 8, 235, 189, 187, 64, 81, 227, 211, 255, 134, 17, 146, 241, 44, 136, 140, 129, 95, 60, 92, 4, 246, 223, 222, 32, 169, 242, 234, 256, 67, 137, 73, 249, 22, 68, 70, 193, 176, 30, 46, 2, 123, 240, 111, 16, 213, 121, 117, 128, 162, 197, 165, 253, 11, 34, 35, 225, 88, 15, 23, 1, 190, 120, 184, 8, 235, 189, 187, 64, 81, 227, 211, 255, 134, 17, 146, 241, 44, 136, 140, 129, 95, 60, 92, 4, 246, 223, 222, 32, 169, 242, 234, 256, 67, 137, 73, 249, 22, 68, 70, 193, 176, 30, 46, 2, 123, 240, 111, 16, 213, 121, 117, 128, 162, 197, 165, 253, 11, 34, 35, 225, 88, 15, 23, 1], -[1, 191, 244, 87, 169, 154, 116, 54, 34, 69, 72, 131, 92, 96, 89, 37, 128, 33, 135, 85, 44, 180, 199, 230, 240, 94, 221, 63, 211, 209, 84, 110, 193, 112, 61, 86, 235, 167, 29, 142, 137, 210, 18, 97, 23, 24, 215, 202, 32, 201, 98, 214, 11, 45, 114, 186, 60, 152, 248, 80, 117, 245, 21, 156, 241, 28, 208, 150, 123, 106, 200, 164, 227, 181, 133, 217, 70, 6, 118, 179, 8, 243, 153, 182, 67, 204, 157, 175, 15, 38, 62, 20, 222, 254, 198, 39, 253, 7, 52, 166, 95, 155, 50, 41, 121, 238, 226, 247, 146, 130, 158, 109, 2, 125, 231, 174, 81, 51, 232, 108, 68, 138, 144, 5, 184, 192, 178, 74, 256, 66, 13, 170, 88, 103, 141, 203, 223, 188, 185, 126, 165, 161, 168, 220, 129, 224, 122, 172, 213, 77, 58, 27, 17, 163, 36, 194, 46, 48, 173, 147, 64, 145, 196, 171, 22, 90, 228, 115, 120, 47, 239, 160, 234, 233, 42, 55, 225, 56, 159, 43, 246, 212, 143, 71, 197, 105, 9, 177, 140, 12, 236, 101, 16, 229, 49, 107, 134, 151, 57, 93, 30, 76, 124, 40, 187, 251, 139, 78, 249, 14, 104, 75, 190, 53, 100, 82, 242, 219, 195, 237, 35, 3, 59, 218, 4, 250, 205, 91, 162, 102, 207, 216, 136, 19, 31, 10, 111, 127, 99, 148, 255, 132, 26, 83, 176, 206, 25, 149, 189, 119, 113, 252, 73, 65, 79, 183, 1], -[1, 192, 113, 108, 176, 125, 99, 247, 136, 155, 205, 39, 35, 38, 100, 182, 249, 6, 124, 164, 134, 28, 236, 80, 197, 45, 159, 202, 234, 210, 228, 86, 64, 209, 36, 230, 213, 33, 168, 131, 223, 154, 13, 183, 184, 119, 232, 83, 2, 127, 226, 216, 95, 250, 198, 237, 15, 53, 153, 78, 70, 76, 200, 107, 241, 12, 248, 71, 11, 56, 215, 160, 137, 90, 61, 147, 211, 163, 199, 172, 128, 161, 72, 203, 169, 66, 79, 5, 189, 51, 26, 109, 111, 238, 207, 166, 4, 254, 195, 175, 190, 243, 139, 217, 30, 106, 49, 156, 140, 152, 143, 214, 225, 24, 239, 142, 22, 112, 173, 63, 17, 180, 122, 37, 165, 69, 141, 87, 256, 65, 144, 149, 81, 132, 158, 10, 121, 102, 52, 218, 222, 219, 157, 75, 8, 251, 133, 93, 123, 229, 21, 177, 60, 212, 98, 55, 23, 47, 29, 171, 193, 48, 221, 27, 44, 224, 89, 126, 34, 103, 244, 74, 73, 138, 25, 174, 255, 130, 31, 41, 162, 7, 59, 20, 242, 204, 104, 179, 187, 181, 57, 150, 16, 245, 9, 186, 246, 201, 42, 97, 120, 167, 196, 110, 46, 94, 58, 85, 129, 96, 185, 54, 88, 191, 178, 252, 68, 206, 231, 148, 146, 19, 50, 91, 253, 3, 62, 82, 67, 14, 118, 40, 227, 151, 208, 101, 117, 105, 114, 43, 32, 233, 18, 115, 235, 145, 84, 194, 240, 77, 135, 220, 92, 188, 116, 170, 1], -[1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1, 193, 241, 253, 256, 64, 16, 4, 1], -[1, 194, 114, 14, 146, 54, 196, 245, 242, 174, 89, 47, 123, 218, 144, 180, 225, 217, 207, 66, 211, 71, 153, 127, 223, 86, 236, 38, 176, 220, 18, 151, 253, 252, 58, 201, 187, 41, 244, 48, 60, 75, 158, 69, 22, 156, 195, 51, 128, 160, 200, 250, 184, 230, 159, 6, 136, 170, 84, 105, 67, 148, 185, 167, 16, 20, 25, 224, 23, 93, 52, 65, 17, 214, 139, 238, 169, 147, 248, 53, 2, 131, 228, 28, 35, 108, 135, 233, 227, 91, 178, 94, 246, 179, 31, 103, 193, 177, 157, 132, 165, 142, 49, 254, 189, 172, 215, 76, 95, 183, 36, 45, 249, 247, 116, 145, 117, 82, 231, 96, 120, 150, 59, 138, 44, 55, 133, 102, 256, 63, 143, 243, 111, 203, 61, 12, 15, 83, 168, 210, 134, 39, 113, 77, 32, 40, 50, 191, 46, 186, 104, 130, 34, 171, 21, 219, 81, 37, 239, 106, 4, 5, 199, 56, 70, 216, 13, 209, 197, 182, 99, 188, 235, 101, 62, 206, 129, 97, 57, 7, 73, 27, 98, 251, 121, 87, 173, 152, 190, 109, 72, 90, 241, 237, 232, 33, 234, 164, 205, 192, 240, 43, 118, 19, 88, 110, 9, 204, 255, 126, 29, 229, 222, 149, 122, 24, 30, 166, 79, 163, 11, 78, 226, 154, 64, 80, 100, 125, 92, 115, 208, 3, 68, 85, 42, 181, 162, 74, 221, 212, 8, 10, 141, 112, 140, 175, 26, 161, 137, 107, 198, 119, 213, 202, 124, 155, 1], -[1, 195, 246, 168, 121, 208, 211, 25, 249, 239, 88, 198, 60, 135, 111, 57, 64, 144, 67, 215, 34, 205, 140, 58, 2, 133, 235, 79, 242, 159, 165, 50, 241, 221, 176, 139, 120, 13, 222, 114, 128, 31, 134, 173, 68, 153, 23, 116, 4, 9, 213, 158, 227, 61, 73, 100, 225, 185, 95, 21, 240, 26, 187, 228, 256, 62, 11, 89, 136, 49, 46, 232, 8, 18, 169, 59, 197, 122, 146, 200, 193, 113, 190, 42, 223, 52, 117, 199, 255, 124, 22, 178, 15, 98, 92, 207, 16, 36, 81, 118, 137, 244, 35, 143, 129, 226, 123, 84, 189, 104, 234, 141, 253, 248, 44, 99, 30, 196, 184, 157, 32, 72, 162, 236, 17, 231, 70, 29, 1, 195, 246, 168, 121, 208, 211, 25, 249, 239, 88, 198, 60, 135, 111, 57, 64, 144, 67, 215, 34, 205, 140, 58, 2, 133, 235, 79, 242, 159, 165, 50, 241, 221, 176, 139, 120, 13, 222, 114, 128, 31, 134, 173, 68, 153, 23, 116, 4, 9, 213, 158, 227, 61, 73, 100, 225, 185, 95, 21, 240, 26, 187, 228, 256, 62, 11, 89, 136, 49, 46, 232, 8, 18, 169, 59, 197, 122, 146, 200, 193, 113, 190, 42, 223, 52, 117, 199, 255, 124, 22, 178, 15, 98, 92, 207, 16, 36, 81, 118, 137, 244, 35, 143, 129, 226, 123, 84, 189, 104, 234, 141, 253, 248, 44, 99, 30, 196, 184, 157, 32, 72, 162, 236, 17, 231, 70, 29, 1], -[1, 196, 123, 207, 223, 18, 187, 158, 128, 159, 67, 25, 17, 248, 35, 178, 193, 49, 95, 116, 120, 133, 111, 168, 32, 104, 81, 199, 197, 62, 73, 173, 241, 205, 88, 29, 30, 226, 92, 42, 8, 26, 213, 114, 242, 144, 211, 236, 253, 244, 22, 200, 136, 185, 23, 139, 2, 135, 246, 157, 189, 36, 117, 59, 256, 61, 134, 50, 34, 239, 70, 99, 129, 98, 190, 232, 240, 9, 222, 79, 64, 208, 162, 141, 137, 124, 146, 89, 225, 153, 176, 58, 60, 195, 184, 84, 16, 52, 169, 228, 227, 31, 165, 215, 249, 231, 44, 143, 15, 113, 46, 21, 4, 13, 235, 57, 121, 72, 234, 118, 255, 122, 11, 100, 68, 221, 140, 198, 1, 196, 123, 207, 223, 18, 187, 158, 128, 159, 67, 25, 17, 248, 35, 178, 193, 49, 95, 116, 120, 133, 111, 168, 32, 104, 81, 199, 197, 62, 73, 173, 241, 205, 88, 29, 30, 226, 92, 42, 8, 26, 213, 114, 242, 144, 211, 236, 253, 244, 22, 200, 136, 185, 23, 139, 2, 135, 246, 157, 189, 36, 117, 59, 256, 61, 134, 50, 34, 239, 70, 99, 129, 98, 190, 232, 240, 9, 222, 79, 64, 208, 162, 141, 137, 124, 146, 89, 225, 153, 176, 58, 60, 195, 184, 84, 16, 52, 169, 228, 227, 31, 165, 215, 249, 231, 44, 143, 15, 113, 46, 21, 4, 13, 235, 57, 121, 72, 234, 118, 255, 122, 11, 100, 68, 221, 140, 198, 1], -[1, 197, 2, 137, 4, 17, 8, 34, 16, 68, 32, 136, 64, 15, 128, 30, 256, 60, 255, 120, 253, 240, 249, 223, 241, 189, 225, 121, 193, 242, 129, 227, 1, 197, 2, 137, 4, 17, 8, 34, 16, 68, 32, 136, 64, 15, 128, 30, 256, 60, 255, 120, 253, 240, 249, 223, 241, 189, 225, 121, 193, 242, 129, 227, 1, 197, 2, 137, 4, 17, 8, 34, 16, 68, 32, 136, 64, 15, 128, 30, 256, 60, 255, 120, 253, 240, 249, 223, 241, 189, 225, 121, 193, 242, 129, 227, 1, 197, 2, 137, 4, 17, 8, 34, 16, 68, 32, 136, 64, 15, 128, 30, 256, 60, 255, 120, 253, 240, 249, 223, 241, 189, 225, 121, 193, 242, 129, 227, 1, 197, 2, 137, 4, 17, 8, 34, 16, 68, 32, 136, 64, 15, 128, 30, 256, 60, 255, 120, 253, 240, 249, 223, 241, 189, 225, 121, 193, 242, 129, 227, 1, 197, 2, 137, 4, 17, 8, 34, 16, 68, 32, 136, 64, 15, 128, 30, 256, 60, 255, 120, 253, 240, 249, 223, 241, 189, 225, 121, 193, 242, 129, 227, 1, 197, 2, 137, 4, 17, 8, 34, 16, 68, 32, 136, 64, 15, 128, 30, 256, 60, 255, 120, 253, 240, 249, 223, 241, 189, 225, 121, 193, 242, 129, 227, 1, 197, 2, 137, 4, 17, 8, 34, 16, 68, 32, 136, 64, 15, 128, 30, 256, 60, 255, 120, 253, 240, 249, 223, 241, 189, 225, 121, 193, 242, 129, 227, 1], -[1, 198, 140, 221, 68, 100, 11, 122, 255, 118, 234, 72, 121, 57, 235, 13, 4, 21, 46, 113, 15, 143, 44, 231, 249, 215, 165, 31, 227, 228, 169, 52, 16, 84, 184, 195, 60, 58, 176, 153, 225, 89, 146, 124, 137, 141, 162, 208, 64, 79, 222, 9, 240, 232, 190, 98, 129, 99, 70, 239, 34, 50, 134, 61, 256, 59, 117, 36, 189, 157, 246, 135, 2, 139, 23, 185, 136, 200, 22, 244, 253, 236, 211, 144, 242, 114, 213, 26, 8, 42, 92, 226, 30, 29, 88, 205, 241, 173, 73, 62, 197, 199, 81, 104, 32, 168, 111, 133, 120, 116, 95, 49, 193, 178, 35, 248, 17, 25, 67, 159, 128, 158, 187, 18, 223, 207, 123, 196, 1, 198, 140, 221, 68, 100, 11, 122, 255, 118, 234, 72, 121, 57, 235, 13, 4, 21, 46, 113, 15, 143, 44, 231, 249, 215, 165, 31, 227, 228, 169, 52, 16, 84, 184, 195, 60, 58, 176, 153, 225, 89, 146, 124, 137, 141, 162, 208, 64, 79, 222, 9, 240, 232, 190, 98, 129, 99, 70, 239, 34, 50, 134, 61, 256, 59, 117, 36, 189, 157, 246, 135, 2, 139, 23, 185, 136, 200, 22, 244, 253, 236, 211, 144, 242, 114, 213, 26, 8, 42, 92, 226, 30, 29, 88, 205, 241, 173, 73, 62, 197, 199, 81, 104, 32, 168, 111, 133, 120, 116, 95, 49, 193, 178, 35, 248, 17, 25, 67, 159, 128, 158, 187, 18, 223, 207, 123, 196, 1], -[1, 199, 23, 208, 15, 158, 88, 36, 225, 57, 35, 26, 34, 84, 11, 133, 253, 232, 165, 196, 197, 139, 162, 113, 128, 29, 117, 153, 121, 178, 213, 239, 16, 100, 111, 244, 240, 215, 123, 62, 2, 141, 46, 159, 30, 59, 176, 72, 193, 114, 70, 52, 68, 168, 22, 9, 249, 207, 73, 135, 137, 21, 67, 226, 256, 58, 234, 49, 242, 99, 169, 221, 32, 200, 222, 231, 223, 173, 246, 124, 4, 25, 92, 61, 60, 118, 95, 144, 129, 228, 140, 104, 136, 79, 44, 18, 241, 157, 146, 13, 17, 42, 134, 195, 255, 116, 211, 98, 227, 198, 81, 185, 64, 143, 187, 205, 189, 89, 235, 248, 8, 50, 184, 122, 120, 236, 190, 31, 1, 199, 23, 208, 15, 158, 88, 36, 225, 57, 35, 26, 34, 84, 11, 133, 253, 232, 165, 196, 197, 139, 162, 113, 128, 29, 117, 153, 121, 178, 213, 239, 16, 100, 111, 244, 240, 215, 123, 62, 2, 141, 46, 159, 30, 59, 176, 72, 193, 114, 70, 52, 68, 168, 22, 9, 249, 207, 73, 135, 137, 21, 67, 226, 256, 58, 234, 49, 242, 99, 169, 221, 32, 200, 222, 231, 223, 173, 246, 124, 4, 25, 92, 61, 60, 118, 95, 144, 129, 228, 140, 104, 136, 79, 44, 18, 241, 157, 146, 13, 17, 42, 134, 195, 255, 116, 211, 98, 227, 198, 81, 185, 64, 143, 187, 205, 189, 89, 235, 248, 8, 50, 184, 122, 120, 236, 190, 31, 1], -[1, 200, 165, 104, 240, 198, 22, 31, 32, 232, 140, 244, 227, 168, 190, 221, 253, 228, 111, 98, 68, 236, 169, 133, 129, 100, 211, 52, 120, 99, 11, 144, 16, 116, 70, 122, 242, 84, 95, 239, 255, 114, 184, 49, 34, 118, 213, 195, 193, 50, 234, 26, 60, 178, 134, 72, 8, 58, 35, 61, 121, 42, 176, 248, 256, 57, 92, 153, 17, 59, 235, 226, 225, 25, 117, 13, 30, 89, 67, 36, 4, 29, 146, 159, 189, 21, 88, 124, 128, 157, 46, 205, 137, 158, 246, 113, 241, 141, 187, 135, 15, 173, 162, 18, 2, 143, 73, 208, 223, 139, 44, 62, 64, 207, 23, 231, 197, 79, 123, 185, 249, 199, 222, 196, 136, 215, 81, 9, 1, 200, 165, 104, 240, 198, 22, 31, 32, 232, 140, 244, 227, 168, 190, 221, 253, 228, 111, 98, 68, 236, 169, 133, 129, 100, 211, 52, 120, 99, 11, 144, 16, 116, 70, 122, 242, 84, 95, 239, 255, 114, 184, 49, 34, 118, 213, 195, 193, 50, 234, 26, 60, 178, 134, 72, 8, 58, 35, 61, 121, 42, 176, 248, 256, 57, 92, 153, 17, 59, 235, 226, 225, 25, 117, 13, 30, 89, 67, 36, 4, 29, 146, 159, 189, 21, 88, 124, 128, 157, 46, 205, 137, 158, 246, 113, 241, 141, 187, 135, 15, 173, 162, 18, 2, 143, 73, 208, 223, 139, 44, 62, 64, 207, 23, 231, 197, 79, 123, 185, 249, 199, 222, 196, 136, 215, 81, 9, 1], -[1, 201, 52, 172, 134, 206, 29, 175, 223, 105, 31, 63, 70, 192, 42, 218, 128, 28, 231, 171, 190, 154, 114, 41, 17, 76, 113, 97, 222, 161, 236, 148, 193, 243, 13, 43, 162, 180, 200, 108, 120, 219, 72, 80, 146, 48, 139, 183, 32, 7, 122, 107, 176, 167, 157, 203, 197, 19, 221, 217, 184, 233, 59, 37, 241, 125, 196, 75, 169, 45, 50, 27, 30, 119, 18, 20, 165, 12, 99, 110, 8, 66, 159, 91, 44, 106, 232, 115, 242, 69, 248, 247, 46, 251, 79, 202, 253, 224, 49, 83, 235, 204, 141, 71, 136, 94, 133, 5, 234, 3, 89, 156, 2, 145, 104, 87, 11, 155, 58, 93, 189, 210, 62, 126, 140, 127, 84, 179, 256, 56, 205, 85, 123, 51, 228, 82, 34, 152, 226, 194, 187, 65, 215, 39, 129, 229, 26, 86, 67, 103, 143, 216, 240, 181, 144, 160, 35, 96, 21, 109, 64, 14, 244, 214, 95, 77, 57, 149, 137, 38, 185, 177, 111, 209, 118, 74, 225, 250, 135, 150, 81, 90, 100, 54, 60, 238, 36, 40, 73, 24, 198, 220, 16, 132, 61, 182, 88, 212, 207, 230, 227, 138, 239, 237, 92, 245, 158, 147, 249, 191, 98, 166, 213, 151, 25, 142, 15, 188, 9, 10, 211, 6, 178, 55, 4, 33, 208, 174, 22, 53, 116, 186, 121, 163, 124, 252, 23, 254, 168, 101, 255, 112, 153, 170, 246, 102, 199, 164, 68, 47, 195, 131, 117, 130, 173, 78, 1], -[1, 202, 198, 161, 140, 10, 221, 181, 68, 115, 100, 154, 11, 166, 122, 229, 255, 110, 118, 192, 234, 237, 72, 152, 121, 27, 57, 206, 235, 182, 13, 56, 4, 37, 21, 130, 46, 40, 113, 210, 15, 203, 143, 102, 44, 150, 231, 145, 249, 183, 215, 254, 165, 177, 31, 94, 227, 108, 228, 53, 169, 214, 52, 224, 16, 148, 84, 6, 184, 160, 195, 69, 60, 41, 58, 151, 176, 86, 153, 66, 225, 218, 89, 245, 146, 194, 124, 119, 137, 175, 141, 212, 162, 85, 208, 125, 64, 78, 79, 24, 222, 126, 9, 19, 240, 164, 232, 90, 190, 87, 98, 7, 129, 101, 99, 209, 70, 5, 239, 219, 34, 186, 50, 77, 134, 83, 61, 243, 256, 55, 59, 96, 117, 247, 36, 76, 189, 142, 157, 103, 246, 91, 135, 28, 2, 147, 139, 65, 23, 20, 185, 105, 136, 230, 200, 51, 22, 75, 244, 201, 253, 220, 236, 127, 211, 217, 144, 47, 242, 54, 114, 155, 213, 107, 26, 112, 8, 74, 42, 3, 92, 80, 226, 163, 30, 149, 29, 204, 88, 43, 205, 33, 241, 109, 173, 251, 73, 97, 62, 188, 197, 216, 199, 106, 81, 171, 104, 191, 32, 39, 168, 12, 111, 63, 133, 138, 120, 82, 116, 45, 95, 172, 49, 132, 193, 179, 178, 233, 35, 131, 248, 238, 17, 93, 25, 167, 67, 170, 159, 250, 128, 156, 158, 48, 187, 252, 18, 38, 223, 71, 207, 180, 123, 174, 196, 14, 1], -[1, 203, 89, 77, 211, 171, 18, 56, 60, 101, 200, 251, 67, 237, 52, 19, 2, 149, 178, 154, 165, 85, 36, 112, 120, 202, 143, 245, 134, 217, 104, 38, 4, 41, 99, 51, 73, 170, 72, 224, 240, 147, 29, 233, 11, 177, 208, 76, 8, 82, 198, 102, 146, 83, 144, 191, 223, 37, 58, 209, 22, 97, 159, 152, 16, 164, 139, 204, 35, 166, 31, 125, 189, 74, 116, 161, 44, 194, 61, 47, 32, 71, 21, 151, 70, 75, 62, 250, 121, 148, 232, 65, 88, 131, 122, 94, 64, 142, 42, 45, 140, 150, 124, 243, 242, 39, 207, 130, 176, 5, 244, 188, 128, 27, 84, 90, 23, 43, 248, 229, 227, 78, 157, 3, 95, 10, 231, 119, 256, 54, 168, 180, 46, 86, 239, 201, 197, 156, 57, 6, 190, 20, 205, 238, 255, 108, 79, 103, 92, 172, 221, 145, 137, 55, 114, 12, 123, 40, 153, 219, 253, 216, 158, 206, 184, 87, 185, 33, 17, 110, 228, 24, 246, 80, 49, 181, 249, 175, 59, 155, 111, 174, 113, 66, 34, 220, 199, 48, 235, 160, 98, 105, 241, 93, 118, 53, 222, 91, 226, 132, 68, 183, 141, 96, 213, 63, 196, 210, 225, 186, 236, 106, 187, 182, 195, 7, 136, 109, 25, 192, 169, 126, 135, 163, 193, 115, 215, 212, 117, 107, 133, 14, 15, 218, 50, 127, 81, 252, 13, 69, 129, 230, 173, 167, 234, 214, 9, 28, 30, 179, 100, 254, 162, 247, 26, 138, 1], -[1, 204, 239, 183, 67, 47, 79, 182, 120, 65, 153, 115, 73, 243, 228, 252, 8, 90, 113, 179, 22, 119, 118, 171, 189, 6, 196, 149, 70, 145, 25, 217, 64, 206, 133, 147, 176, 181, 173, 83, 227, 48, 26, 164, 46, 132, 200, 194, 255, 106, 36, 148, 123, 163, 99, 150, 17, 127, 208, 27, 111, 28, 58, 10, 241, 77, 31, 156, 213, 19, 21, 172, 136, 245, 122, 216, 117, 224, 207, 80, 129, 102, 248, 220, 162, 152, 168, 91, 60, 161, 205, 186, 165, 250, 114, 126, 4, 45, 185, 218, 11, 188, 59, 214, 223, 3, 98, 203, 35, 201, 141, 237, 32, 103, 195, 202, 88, 219, 215, 170, 242, 24, 13, 82, 23, 66, 100, 97, 256, 53, 18, 74, 190, 210, 178, 75, 137, 192, 104, 142, 184, 14, 29, 5, 249, 167, 144, 78, 235, 138, 139, 86, 68, 251, 61, 108, 187, 112, 232, 40, 193, 51, 124, 110, 81, 76, 84, 174, 30, 209, 231, 93, 211, 125, 57, 63, 2, 151, 221, 109, 134, 94, 158, 107, 240, 130, 49, 230, 146, 229, 199, 247, 16, 180, 226, 101, 44, 238, 236, 85, 121, 12, 135, 41, 140, 33, 50, 177, 128, 155, 9, 37, 95, 105, 89, 166, 197, 96, 52, 71, 92, 7, 143, 131, 253, 212, 72, 39, 246, 69, 198, 43, 34, 254, 159, 54, 222, 56, 116, 20, 225, 154, 62, 55, 169, 38, 42, 87, 15, 233, 244, 175, 234, 191, 157, 160, 1], -[1, 205, 134, 228, 223, 226, 70, 215, 128, 26, 190, 143, 17, 144, 222, 21, 193, 244, 162, 57, 120, 185, 146, 118, 32, 135, 176, 100, 197, 36, 184, 198, 241, 61, 169, 207, 30, 239, 165, 158, 8, 98, 44, 25, 242, 9, 46, 178, 253, 208, 235, 116, 136, 124, 234, 168, 2, 153, 11, 199, 189, 195, 140, 173, 256, 52, 123, 29, 34, 31, 187, 42, 129, 231, 67, 114, 240, 113, 35, 236, 64, 13, 95, 200, 137, 72, 111, 139, 225, 122, 81, 157, 60, 221, 73, 59, 16, 196, 88, 50, 227, 18, 92, 99, 249, 159, 213, 232, 15, 248, 211, 79, 4, 49, 22, 141, 121, 133, 23, 89, 255, 104, 246, 58, 68, 62, 117, 84, 1, 205, 134, 228, 223, 226, 70, 215, 128, 26, 190, 143, 17, 144, 222, 21, 193, 244, 162, 57, 120, 185, 146, 118, 32, 135, 176, 100, 197, 36, 184, 198, 241, 61, 169, 207, 30, 239, 165, 158, 8, 98, 44, 25, 242, 9, 46, 178, 253, 208, 235, 116, 136, 124, 234, 168, 2, 153, 11, 199, 189, 195, 140, 173, 256, 52, 123, 29, 34, 31, 187, 42, 129, 231, 67, 114, 240, 113, 35, 236, 64, 13, 95, 200, 137, 72, 111, 139, 225, 122, 81, 157, 60, 221, 73, 59, 16, 196, 88, 50, 227, 18, 92, 99, 249, 159, 213, 232, 15, 248, 211, 79, 4, 49, 22, 141, 121, 133, 23, 89, 255, 104, 246, 58, 68, 62, 117, 84, 1], -[1, 206, 31, 218, 190, 76, 236, 43, 120, 48, 122, 203, 184, 125, 50, 20, 8, 106, 248, 202, 235, 94, 89, 87, 189, 127, 205, 82, 187, 229, 143, 160, 64, 77, 185, 74, 81, 238, 198, 182, 227, 245, 98, 142, 211, 33, 116, 252, 255, 102, 195, 78, 134, 105, 42, 171, 17, 161, 13, 108, 146, 7, 157, 217, 241, 45, 18, 110, 44, 69, 79, 83, 136, 3, 104, 93, 140, 56, 228, 194, 129, 103, 144, 109, 95, 38, 118, 150, 60, 24, 61, 230, 92, 191, 25, 10, 4, 53, 124, 101, 246, 47, 173, 172, 223, 192, 231, 41, 222, 243, 200, 80, 32, 167, 221, 37, 169, 119, 99, 91, 242, 251, 49, 71, 234, 145, 58, 126, 256, 51, 226, 39, 67, 181, 21, 214, 137, 209, 135, 54, 73, 132, 207, 237, 249, 151, 9, 55, 22, 163, 168, 170, 68, 130, 52, 175, 70, 28, 114, 97, 193, 180, 72, 183, 176, 19, 59, 75, 30, 12, 159, 115, 46, 224, 141, 5, 2, 155, 62, 179, 123, 152, 215, 86, 240, 96, 244, 149, 111, 250, 100, 40, 16, 212, 239, 147, 213, 188, 178, 174, 121, 254, 153, 164, 117, 201, 29, 63, 128, 154, 113, 148, 162, 219, 139, 107, 197, 233, 196, 27, 165, 66, 232, 247, 253, 204, 133, 156, 11, 210, 84, 85, 34, 65, 26, 216, 35, 14, 57, 177, 225, 90, 36, 220, 88, 138, 158, 166, 15, 6, 208, 186, 23, 112, 199, 131, 1], -[1, 207, 187, 159, 17, 178, 95, 133, 32, 199, 73, 205, 30, 42, 213, 144, 253, 200, 23, 135, 189, 59, 134, 239, 129, 232, 222, 208, 137, 89, 176, 195, 16, 228, 165, 231, 15, 21, 235, 72, 255, 100, 140, 196, 223, 158, 67, 248, 193, 116, 111, 104, 197, 173, 88, 226, 8, 114, 211, 244, 136, 139, 246, 36, 256, 50, 70, 98, 240, 79, 162, 124, 225, 58, 184, 52, 227, 215, 44, 113, 4, 57, 234, 122, 68, 198, 123, 18, 128, 25, 35, 49, 120, 168, 81, 62, 241, 29, 92, 26, 242, 236, 22, 185, 2, 157, 117, 61, 34, 99, 190, 9, 64, 141, 146, 153, 60, 84, 169, 31, 249, 143, 46, 13, 121, 118, 11, 221, 1, 207, 187, 159, 17, 178, 95, 133, 32, 199, 73, 205, 30, 42, 213, 144, 253, 200, 23, 135, 189, 59, 134, 239, 129, 232, 222, 208, 137, 89, 176, 195, 16, 228, 165, 231, 15, 21, 235, 72, 255, 100, 140, 196, 223, 158, 67, 248, 193, 116, 111, 104, 197, 173, 88, 226, 8, 114, 211, 244, 136, 139, 246, 36, 256, 50, 70, 98, 240, 79, 162, 124, 225, 58, 184, 52, 227, 215, 44, 113, 4, 57, 234, 122, 68, 198, 123, 18, 128, 25, 35, 49, 120, 168, 81, 62, 241, 29, 92, 26, 242, 236, 22, 185, 2, 157, 117, 61, 34, 99, 190, 9, 64, 141, 146, 153, 60, 84, 169, 31, 249, 143, 46, 13, 121, 118, 11, 221, 1], -[1, 208, 88, 57, 34, 133, 165, 139, 128, 153, 213, 100, 240, 62, 46, 59, 193, 52, 22, 207, 137, 226, 234, 99, 32, 231, 246, 25, 60, 144, 140, 79, 241, 13, 134, 116, 227, 185, 187, 89, 8, 122, 190, 199, 15, 36, 35, 84, 253, 196, 162, 29, 121, 239, 111, 215, 2, 159, 176, 114, 68, 9, 73, 21, 256, 49, 169, 200, 223, 124, 92, 118, 129, 104, 44, 157, 17, 195, 211, 198, 64, 205, 235, 50, 120, 31, 23, 158, 225, 26, 11, 232, 197, 113, 117, 178, 16, 244, 123, 141, 30, 72, 70, 168, 249, 135, 67, 58, 242, 221, 222, 173, 4, 61, 95, 228, 136, 18, 146, 42, 255, 98, 81, 143, 189, 248, 184, 236, 1, 208, 88, 57, 34, 133, 165, 139, 128, 153, 213, 100, 240, 62, 46, 59, 193, 52, 22, 207, 137, 226, 234, 99, 32, 231, 246, 25, 60, 144, 140, 79, 241, 13, 134, 116, 227, 185, 187, 89, 8, 122, 190, 199, 15, 36, 35, 84, 253, 196, 162, 29, 121, 239, 111, 215, 2, 159, 176, 114, 68, 9, 73, 21, 256, 49, 169, 200, 223, 124, 92, 118, 129, 104, 44, 157, 17, 195, 211, 198, 64, 205, 235, 50, 120, 31, 23, 158, 225, 26, 11, 232, 197, 113, 117, 178, 16, 244, 123, 141, 30, 72, 70, 168, 249, 135, 67, 58, 242, 221, 222, 173, 4, 61, 95, 228, 136, 18, 146, 42, 255, 98, 81, 143, 189, 248, 184, 236, 1], -[1, 209, 248, 175, 81, 224, 42, 40, 136, 154, 61, 156, 222, 138, 58, 43, 249, 127, 72, 142, 123, 7, 178, 194, 197, 53, 26, 37, 23, 181, 50, 170, 64, 12, 195, 149, 44, 201, 118, 247, 223, 90, 49, 218, 73, 94, 114, 182, 2, 161, 239, 93, 162, 191, 84, 80, 15, 51, 122, 55, 187, 19, 116, 86, 241, 254, 144, 27, 246, 14, 99, 131, 137, 106, 52, 74, 46, 105, 100, 83, 128, 24, 133, 41, 88, 145, 236, 237, 189, 180, 98, 179, 146, 188, 228, 107, 4, 65, 221, 186, 67, 125, 168, 160, 30, 102, 244, 110, 117, 38, 232, 172, 225, 251, 31, 54, 235, 28, 198, 5, 17, 212, 104, 148, 92, 210, 200, 166, 256, 48, 9, 82, 176, 33, 215, 217, 121, 103, 196, 101, 35, 119, 199, 214, 8, 130, 185, 115, 134, 250, 79, 63, 60, 204, 231, 220, 234, 76, 207, 87, 193, 245, 62, 108, 213, 56, 139, 10, 34, 167, 208, 39, 184, 163, 143, 75, 255, 96, 18, 164, 95, 66, 173, 177, 242, 206, 135, 202, 70, 238, 141, 171, 16, 3, 113, 230, 11, 243, 158, 126, 120, 151, 205, 183, 211, 152, 157, 174, 129, 233, 124, 216, 169, 112, 21, 20, 68, 77, 159, 78, 111, 69, 29, 150, 253, 192, 36, 71, 190, 132, 89, 97, 227, 155, 13, 147, 140, 219, 25, 85, 32, 6, 226, 203, 22, 229, 59, 252, 240, 45, 153, 109, 165, 47, 57, 91, 1], -[1, 210, 153, 5, 22, 251, 25, 110, 227, 125, 36, 107, 111, 180, 21, 41, 129, 105, 205, 131, 11, 254, 141, 55, 242, 191, 18, 182, 184, 90, 139, 149, 193, 181, 231, 194, 134, 127, 199, 156, 121, 224, 9, 91, 92, 45, 198, 203, 225, 219, 244, 97, 67, 192, 228, 78, 189, 112, 133, 174, 46, 151, 99, 230, 241, 238, 122, 177, 162, 96, 114, 39, 223, 56, 195, 87, 23, 204, 178, 115, 249, 119, 61, 217, 81, 48, 57, 148, 240, 28, 226, 172, 140, 102, 89, 186, 253, 188, 159, 237, 169, 24, 157, 74, 120, 14, 113, 86, 70, 51, 173, 93, 255, 94, 208, 247, 213, 12, 207, 37, 60, 7, 185, 43, 35, 154, 215, 175, 256, 47, 104, 252, 235, 6, 232, 147, 30, 132, 221, 150, 146, 77, 236, 216, 128, 152, 52, 126, 246, 3, 116, 202, 15, 66, 239, 75, 73, 167, 118, 108, 64, 76, 26, 63, 123, 130, 58, 101, 136, 33, 248, 166, 165, 212, 59, 54, 32, 38, 13, 160, 190, 65, 29, 179, 68, 145, 124, 83, 211, 106, 158, 27, 16, 19, 135, 80, 95, 161, 143, 218, 34, 201, 62, 170, 234, 53, 79, 142, 8, 138, 196, 40, 176, 209, 200, 109, 17, 229, 31, 85, 117, 155, 168, 71, 4, 69, 98, 20, 88, 233, 100, 183, 137, 243, 144, 171, 187, 206, 84, 164, 2, 163, 49, 10, 44, 245, 50, 220, 197, 250, 72, 214, 222, 103, 42, 82, 1], -[1, 211, 60, 67, 2, 165, 120, 134, 4, 73, 240, 11, 8, 146, 223, 22, 16, 35, 189, 44, 32, 70, 121, 88, 64, 140, 242, 176, 128, 23, 227, 95, 256, 46, 197, 190, 255, 92, 137, 123, 253, 184, 17, 246, 249, 111, 34, 235, 241, 222, 68, 213, 225, 187, 136, 169, 193, 117, 15, 81, 129, 234, 30, 162, 1, 211, 60, 67, 2, 165, 120, 134, 4, 73, 240, 11, 8, 146, 223, 22, 16, 35, 189, 44, 32, 70, 121, 88, 64, 140, 242, 176, 128, 23, 227, 95, 256, 46, 197, 190, 255, 92, 137, 123, 253, 184, 17, 246, 249, 111, 34, 235, 241, 222, 68, 213, 225, 187, 136, 169, 193, 117, 15, 81, 129, 234, 30, 162, 1, 211, 60, 67, 2, 165, 120, 134, 4, 73, 240, 11, 8, 146, 223, 22, 16, 35, 189, 44, 32, 70, 121, 88, 64, 140, 242, 176, 128, 23, 227, 95, 256, 46, 197, 190, 255, 92, 137, 123, 253, 184, 17, 246, 249, 111, 34, 235, 241, 222, 68, 213, 225, 187, 136, 169, 193, 117, 15, 81, 129, 234, 30, 162, 1, 211, 60, 67, 2, 165, 120, 134, 4, 73, 240, 11, 8, 146, 223, 22, 16, 35, 189, 44, 32, 70, 121, 88, 64, 140, 242, 176, 128, 23, 227, 95, 256, 46, 197, 190, 255, 92, 137, 123, 253, 184, 17, 246, 249, 111, 34, 235, 241, 222, 68, 213, 225, 187, 136, 169, 193, 117, 15, 81, 129, 234, 30, 162, 1], -[1, 212, 226, 110, 190, 188, 21, 83, 120, 254, 135, 93, 184, 201, 207, 194, 8, 154, 9, 109, 235, 219, 168, 150, 189, 233, 52, 230, 187, 66, 114, 10, 64, 204, 72, 101, 81, 210, 59, 172, 227, 65, 159, 41, 211, 14, 141, 80, 255, 90, 62, 37, 134, 138, 215, 91, 17, 6, 244, 71, 146, 112, 100, 126, 241, 206, 239, 39, 44, 76, 178, 214, 136, 48, 153, 54, 140, 125, 29, 237, 129, 106, 113, 55, 95, 94, 139, 170, 60, 127, 196, 175, 92, 229, 232, 97, 4, 77, 133, 183, 246, 238, 84, 75, 223, 245, 26, 115, 222, 33, 57, 5, 32, 102, 36, 179, 169, 105, 158, 86, 242, 161, 208, 149, 234, 7, 199, 40, 256, 45, 31, 147, 67, 69, 236, 174, 137, 3, 122, 164, 73, 56, 50, 63, 249, 103, 248, 148, 22, 38, 89, 107, 68, 24, 205, 27, 70, 191, 143, 247, 193, 53, 185, 156, 176, 47, 198, 85, 30, 192, 98, 216, 46, 243, 116, 177, 2, 167, 195, 220, 123, 119, 42, 166, 240, 251, 13, 186, 111, 145, 157, 131, 16, 51, 18, 218, 213, 181, 79, 43, 121, 209, 104, 203, 117, 132, 228, 20, 128, 151, 144, 202, 162, 163, 118, 87, 197, 130, 61, 82, 165, 28, 25, 160, 253, 180, 124, 74, 11, 19, 173, 182, 34, 12, 231, 142, 35, 224, 200, 252, 225, 155, 221, 78, 88, 152, 99, 171, 15, 96, 49, 108, 23, 250, 58, 217, 1], -[1, 213, 137, 140, 8, 162, 68, 92, 64, 11, 30, 222, 255, 88, 240, 234, 241, 190, 121, 73, 129, 235, 197, 70, 4, 81, 34, 46, 32, 134, 15, 111, 256, 44, 120, 117, 249, 95, 189, 165, 193, 246, 227, 35, 2, 169, 17, 23, 16, 67, 136, 184, 128, 22, 60, 187, 253, 176, 223, 211, 225, 123, 242, 146, 1, 213, 137, 140, 8, 162, 68, 92, 64, 11, 30, 222, 255, 88, 240, 234, 241, 190, 121, 73, 129, 235, 197, 70, 4, 81, 34, 46, 32, 134, 15, 111, 256, 44, 120, 117, 249, 95, 189, 165, 193, 246, 227, 35, 2, 169, 17, 23, 16, 67, 136, 184, 128, 22, 60, 187, 253, 176, 223, 211, 225, 123, 242, 146, 1, 213, 137, 140, 8, 162, 68, 92, 64, 11, 30, 222, 255, 88, 240, 234, 241, 190, 121, 73, 129, 235, 197, 70, 4, 81, 34, 46, 32, 134, 15, 111, 256, 44, 120, 117, 249, 95, 189, 165, 193, 246, 227, 35, 2, 169, 17, 23, 16, 67, 136, 184, 128, 22, 60, 187, 253, 176, 223, 211, 225, 123, 242, 146, 1, 213, 137, 140, 8, 162, 68, 92, 64, 11, 30, 222, 255, 88, 240, 234, 241, 190, 121, 73, 129, 235, 197, 70, 4, 81, 34, 46, 32, 134, 15, 111, 256, 44, 120, 117, 249, 95, 189, 165, 193, 246, 227, 35, 2, 169, 17, 23, 16, 67, 136, 184, 128, 22, 60, 187, 253, 176, 223, 211, 225, 123, 242, 146, 1], -[1, 214, 50, 163, 187, 183, 98, 155, 17, 40, 79, 201, 95, 27, 124, 65, 32, 166, 58, 76, 73, 202, 52, 77, 30, 252, 215, 7, 213, 93, 113, 24, 253, 172, 57, 119, 23, 39, 122, 151, 189, 97, 198, 224, 134, 149, 18, 254, 129, 107, 25, 210, 222, 220, 49, 206, 137, 20, 168, 229, 176, 142, 62, 161, 16, 83, 29, 38, 165, 101, 26, 167, 15, 126, 236, 132, 235, 175, 185, 12, 255, 86, 157, 188, 140, 148, 61, 204, 223, 177, 99, 112, 67, 203, 9, 127, 193, 182, 141, 105, 111, 110, 153, 103, 197, 10, 84, 243, 88, 71, 31, 209, 8, 170, 143, 19, 211, 179, 13, 212, 136, 63, 118, 66, 246, 216, 221, 6, 256, 43, 207, 94, 70, 74, 159, 102, 240, 217, 178, 56, 162, 230, 133, 192, 225, 91, 199, 181, 184, 55, 205, 180, 227, 5, 42, 250, 44, 164, 144, 233, 4, 85, 200, 138, 234, 218, 135, 106, 68, 160, 59, 33, 123, 108, 239, 3, 128, 150, 232, 47, 35, 37, 208, 51, 120, 237, 89, 28, 81, 115, 195, 96, 241, 174, 228, 219, 92, 156, 231, 90, 242, 131, 21, 125, 22, 82, 72, 245, 2, 171, 100, 69, 117, 109, 196, 53, 34, 80, 158, 145, 190, 54, 248, 130, 64, 75, 116, 152, 146, 147, 104, 154, 60, 247, 173, 14, 169, 186, 226, 48, 249, 87, 114, 238, 46, 78, 244, 45, 121, 194, 139, 191, 11, 41, 36, 251, 1], -[1, 215, 222, 185, 197, 207, 44, 208, 2, 173, 187, 113, 137, 157, 88, 159, 4, 89, 117, 226, 17, 57, 176, 61, 8, 178, 234, 195, 34, 114, 95, 122, 16, 99, 211, 133, 68, 228, 190, 244, 32, 198, 165, 9, 136, 199, 123, 231, 64, 139, 73, 18, 15, 141, 246, 205, 128, 21, 146, 36, 30, 25, 235, 153, 256, 42, 35, 72, 60, 50, 213, 49, 255, 84, 70, 144, 120, 100, 169, 98, 253, 168, 140, 31, 240, 200, 81, 196, 249, 79, 23, 62, 223, 143, 162, 135, 241, 158, 46, 124, 189, 29, 67, 13, 225, 59, 92, 248, 121, 58, 134, 26, 193, 118, 184, 239, 242, 116, 11, 52, 129, 236, 111, 221, 227, 232, 22, 104, 1, 215, 222, 185, 197, 207, 44, 208, 2, 173, 187, 113, 137, 157, 88, 159, 4, 89, 117, 226, 17, 57, 176, 61, 8, 178, 234, 195, 34, 114, 95, 122, 16, 99, 211, 133, 68, 228, 190, 244, 32, 198, 165, 9, 136, 199, 123, 231, 64, 139, 73, 18, 15, 141, 246, 205, 128, 21, 146, 36, 30, 25, 235, 153, 256, 42, 35, 72, 60, 50, 213, 49, 255, 84, 70, 144, 120, 100, 169, 98, 253, 168, 140, 31, 240, 200, 81, 196, 249, 79, 23, 62, 223, 143, 162, 135, 241, 158, 46, 124, 189, 29, 67, 13, 225, 59, 92, 248, 121, 58, 134, 26, 193, 118, 184, 239, 242, 116, 11, 52, 129, 236, 111, 221, 227, 232, 22, 104, 1], -[1, 216, 139, 212, 46, 170, 226, 243, 60, 110, 116, 127, 190, 177, 196, 188, 2, 175, 21, 167, 92, 83, 195, 229, 120, 220, 232, 254, 123, 97, 135, 119, 4, 93, 42, 77, 184, 166, 133, 201, 240, 183, 207, 251, 246, 194, 13, 238, 8, 186, 84, 154, 111, 75, 9, 145, 223, 109, 157, 245, 235, 131, 26, 219, 16, 115, 168, 51, 222, 150, 18, 33, 189, 218, 57, 233, 213, 5, 52, 181, 32, 230, 79, 102, 187, 43, 36, 66, 121, 179, 114, 209, 169, 10, 104, 105, 64, 203, 158, 204, 117, 86, 72, 132, 242, 101, 228, 161, 81, 20, 208, 210, 128, 149, 59, 151, 234, 172, 144, 7, 227, 202, 199, 65, 162, 40, 159, 163, 256, 41, 118, 45, 211, 87, 31, 14, 197, 147, 141, 130, 67, 80, 61, 69, 255, 82, 236, 90, 165, 174, 62, 28, 137, 37, 25, 3, 134, 160, 122, 138, 253, 164, 215, 180, 73, 91, 124, 56, 17, 74, 50, 6, 11, 63, 244, 19, 249, 71, 173, 103, 146, 182, 248, 112, 34, 148, 100, 12, 22, 126, 231, 38, 241, 142, 89, 206, 35, 107, 239, 224, 68, 39, 200, 24, 44, 252, 205, 76, 225, 27, 178, 155, 70, 214, 221, 191, 136, 78, 143, 48, 88, 247, 153, 152, 193, 54, 99, 53, 140, 171, 185, 125, 15, 156, 29, 96, 176, 237, 49, 47, 129, 108, 198, 106, 23, 85, 113, 250, 30, 55, 58, 192, 95, 217, 98, 94, 1], -[1, 217, 58, 250, 23, 108, 49, 96, 15, 171, 99, 152, 88, 78, 221, 155, 225, 252, 200, 224, 35, 142, 231, 12, 34, 182, 173, 19, 11, 74, 124, 180, 253, 160, 25, 28, 165, 82, 61, 130, 197, 87, 118, 163, 162, 202, 144, 151, 128, 20, 228, 132, 117, 203, 104, 209, 121, 43, 79, 181, 213, 218, 18, 51, 16, 131, 157, 145, 111, 186, 13, 251, 240, 166, 42, 119, 123, 220, 195, 167, 2, 177, 116, 243, 46, 216, 98, 192, 30, 85, 198, 47, 176, 156, 185, 53, 193, 247, 143, 191, 70, 27, 205, 24, 68, 107, 89, 38, 22, 148, 248, 103, 249, 63, 50, 56, 73, 164, 122, 3, 137, 174, 236, 69, 67, 147, 31, 45, 256, 40, 199, 7, 234, 149, 208, 161, 242, 86, 158, 105, 169, 179, 36, 102, 32, 5, 57, 33, 222, 115, 26, 245, 223, 75, 84, 238, 246, 183, 133, 77, 4, 97, 232, 229, 92, 175, 196, 127, 60, 170, 139, 94, 95, 55, 113, 106, 129, 237, 29, 125, 140, 54, 153, 48, 136, 214, 178, 76, 44, 39, 239, 206, 241, 126, 100, 112, 146, 71, 244, 6, 17, 91, 215, 138, 134, 37, 62, 90, 255, 80, 141, 14, 211, 41, 159, 65, 227, 172, 59, 210, 81, 101, 72, 204, 64, 10, 114, 66, 187, 230, 52, 233, 189, 150, 168, 219, 235, 109, 9, 154, 8, 194, 207, 201, 184, 93, 135, 254, 120, 83, 21, 188, 190, 110, 226, 212, 1], -[1, 218, 236, 48, 184, 20, 248, 94, 189, 82, 143, 77, 81, 182, 98, 33, 255, 78, 42, 161, 146, 217, 18, 69, 136, 93, 228, 103, 95, 150, 61, 191, 4, 101, 173, 192, 222, 80, 221, 119, 242, 71, 58, 51, 67, 214, 135, 132, 249, 55, 168, 130, 70, 97, 72, 19, 30, 115, 141, 155, 123, 86, 244, 250, 16, 147, 178, 254, 117, 63, 113, 219, 197, 27, 232, 204, 11, 85, 26, 14, 225, 220, 158, 6, 23, 131, 31, 76, 120, 203, 50, 106, 235, 87, 205, 229, 64, 74, 198, 245, 211, 252, 195, 105, 17, 108, 157, 45, 44, 83, 104, 56, 129, 109, 118, 24, 92, 10, 124, 47, 223, 41, 200, 167, 169, 91, 49, 145, 256, 39, 21, 209, 73, 237, 9, 163, 68, 175, 114, 180, 176, 75, 159, 224, 2, 179, 215, 96, 111, 40, 239, 188, 121, 164, 29, 154, 162, 107, 196, 66, 253, 156, 84, 65, 35, 177, 36, 138, 15, 186, 199, 206, 190, 43, 122, 125, 8, 202, 89, 127, 187, 160, 185, 238, 227, 142, 116, 102, 134, 171, 13, 7, 241, 110, 79, 3, 140, 194, 144, 38, 60, 230, 25, 53, 246, 172, 231, 243, 32, 37, 99, 251, 234, 126, 226, 181, 137, 54, 207, 151, 22, 170, 52, 28, 193, 183, 59, 12, 46, 5, 62, 152, 240, 149, 100, 212, 213, 174, 153, 201, 128, 148, 139, 233, 165, 247, 133, 210, 34, 216, 57, 90, 88, 166, 208, 112, 1], -[1, 219, 159, 126, 95, 245, 199, 148, 30, 145, 144, 182, 23, 154, 59, 71, 129, 238, 208, 63, 176, 251, 228, 74, 15, 201, 72, 91, 140, 77, 158, 164, 193, 119, 104, 160, 88, 254, 114, 37, 136, 229, 36, 174, 70, 167, 79, 82, 225, 188, 52, 80, 44, 127, 57, 147, 68, 243, 18, 87, 35, 212, 168, 41, 241, 94, 26, 40, 22, 192, 157, 202, 34, 250, 9, 172, 146, 106, 84, 149, 249, 47, 13, 20, 11, 96, 207, 101, 17, 125, 133, 86, 73, 53, 42, 203, 253, 152, 135, 10, 134, 48, 232, 179, 137, 191, 195, 43, 165, 155, 21, 230, 255, 76, 196, 5, 67, 24, 116, 218, 197, 224, 226, 150, 211, 206, 139, 115, 256, 38, 98, 131, 162, 12, 58, 109, 227, 112, 113, 75, 234, 103, 198, 186, 128, 19, 49, 194, 81, 6, 29, 183, 242, 56, 185, 166, 117, 180, 99, 93, 64, 138, 153, 97, 169, 3, 143, 220, 121, 28, 221, 83, 187, 90, 178, 175, 32, 69, 205, 177, 213, 130, 200, 110, 189, 14, 239, 170, 222, 45, 89, 216, 16, 163, 231, 217, 235, 65, 100, 55, 223, 7, 248, 85, 111, 151, 173, 108, 8, 210, 244, 237, 246, 161, 50, 156, 240, 132, 124, 171, 184, 204, 215, 54, 4, 105, 122, 247, 123, 209, 25, 78, 120, 66, 62, 214, 92, 102, 236, 27, 2, 181, 61, 252, 190, 233, 141, 39, 60, 33, 31, 107, 46, 51, 118, 142, 1], -[1, 220, 84, 233, 117, 40, 62, 19, 68, 54, 58, 167, 246, 150, 104, 7, 255, 74, 89, 48, 23, 177, 133, 219, 121, 149, 141, 180, 22, 214, 49, 243, 4, 109, 79, 161, 211, 160, 248, 76, 15, 216, 232, 154, 213, 86, 159, 28, 249, 39, 99, 192, 92, 194, 18, 105, 227, 82, 50, 206, 88, 85, 196, 201, 16, 179, 59, 130, 73, 126, 221, 47, 60, 93, 157, 102, 81, 87, 122, 112, 225, 156, 139, 254, 111, 5, 72, 163, 137, 71, 200, 53, 95, 83, 13, 33, 64, 202, 236, 6, 35, 247, 113, 188, 240, 115, 114, 151, 67, 91, 231, 191, 129, 110, 42, 245, 187, 20, 31, 138, 34, 27, 29, 212, 123, 75, 52, 132, 256, 37, 173, 24, 140, 217, 195, 238, 189, 203, 199, 90, 11, 107, 153, 250, 2, 183, 168, 209, 234, 80, 124, 38, 136, 108, 116, 77, 235, 43, 208, 14, 253, 148, 178, 96, 46, 97, 9, 181, 242, 41, 25, 103, 44, 171, 98, 229, 8, 218, 158, 65, 165, 63, 239, 152, 30, 175, 207, 51, 169, 172, 61, 56, 241, 78, 198, 127, 184, 131, 36, 210, 197, 164, 100, 155, 176, 170, 135, 145, 32, 101, 118, 3, 146, 252, 185, 94, 120, 186, 57, 204, 162, 174, 244, 224, 193, 55, 21, 251, 222, 10, 144, 69, 17, 142, 143, 106, 190, 166, 26, 66, 128, 147, 215, 12, 70, 237, 226, 119, 223, 230, 228, 45, 134, 182, 205, 125, 1], -[1, 221, 11, 118, 121, 13, 46, 143, 249, 31, 169, 84, 60, 153, 146, 141, 64, 9, 190, 99, 34, 61, 117, 157, 2, 185, 22, 236, 242, 26, 92, 29, 241, 62, 81, 168, 120, 49, 35, 25, 128, 18, 123, 198, 68, 122, 234, 57, 4, 113, 44, 215, 227, 52, 184, 58, 225, 124, 162, 79, 240, 98, 70, 50, 256, 36, 246, 139, 136, 244, 211, 114, 8, 226, 88, 173, 197, 104, 111, 116, 193, 248, 67, 158, 223, 196, 140, 100, 255, 72, 235, 21, 15, 231, 165, 228, 16, 195, 176, 89, 137, 208, 222, 232, 129, 239, 134, 59, 189, 135, 23, 200, 253, 144, 213, 42, 30, 205, 73, 199, 32, 133, 95, 178, 17, 159, 187, 207, 1, 221, 11, 118, 121, 13, 46, 143, 249, 31, 169, 84, 60, 153, 146, 141, 64, 9, 190, 99, 34, 61, 117, 157, 2, 185, 22, 236, 242, 26, 92, 29, 241, 62, 81, 168, 120, 49, 35, 25, 128, 18, 123, 198, 68, 122, 234, 57, 4, 113, 44, 215, 227, 52, 184, 58, 225, 124, 162, 79, 240, 98, 70, 50, 256, 36, 246, 139, 136, 244, 211, 114, 8, 226, 88, 173, 197, 104, 111, 116, 193, 248, 67, 158, 223, 196, 140, 100, 255, 72, 235, 21, 15, 231, 165, 228, 16, 195, 176, 89, 137, 208, 222, 232, 129, 239, 134, 59, 189, 135, 23, 200, 253, 144, 213, 42, 30, 205, 73, 199, 32, 133, 95, 178, 17, 159, 187, 207, 1], -[1, 222, 197, 44, 2, 187, 137, 88, 4, 117, 17, 176, 8, 234, 34, 95, 16, 211, 68, 190, 32, 165, 136, 123, 64, 73, 15, 246, 128, 146, 30, 235, 256, 35, 60, 213, 255, 70, 120, 169, 253, 140, 240, 81, 249, 23, 223, 162, 241, 46, 189, 67, 225, 92, 121, 134, 193, 184, 242, 11, 129, 111, 227, 22, 1, 222, 197, 44, 2, 187, 137, 88, 4, 117, 17, 176, 8, 234, 34, 95, 16, 211, 68, 190, 32, 165, 136, 123, 64, 73, 15, 246, 128, 146, 30, 235, 256, 35, 60, 213, 255, 70, 120, 169, 253, 140, 240, 81, 249, 23, 223, 162, 241, 46, 189, 67, 225, 92, 121, 134, 193, 184, 242, 11, 129, 111, 227, 22, 1, 222, 197, 44, 2, 187, 137, 88, 4, 117, 17, 176, 8, 234, 34, 95, 16, 211, 68, 190, 32, 165, 136, 123, 64, 73, 15, 246, 128, 146, 30, 235, 256, 35, 60, 213, 255, 70, 120, 169, 253, 140, 240, 81, 249, 23, 223, 162, 241, 46, 189, 67, 225, 92, 121, 134, 193, 184, 242, 11, 129, 111, 227, 22, 1, 222, 197, 44, 2, 187, 137, 88, 4, 117, 17, 176, 8, 234, 34, 95, 16, 211, 68, 190, 32, 165, 136, 123, 64, 73, 15, 246, 128, 146, 30, 235, 256, 35, 60, 213, 255, 70, 120, 169, 253, 140, 240, 81, 249, 23, 223, 162, 241, 46, 189, 67, 225, 92, 121, 134, 193, 184, 242, 11, 129, 111, 227, 22, 1], -[1, 223, 128, 17, 193, 120, 32, 197, 241, 30, 8, 242, 253, 136, 2, 189, 256, 34, 129, 240, 64, 137, 225, 60, 16, 227, 249, 15, 4, 121, 255, 68, 1, 223, 128, 17, 193, 120, 32, 197, 241, 30, 8, 242, 253, 136, 2, 189, 256, 34, 129, 240, 64, 137, 225, 60, 16, 227, 249, 15, 4, 121, 255, 68, 1, 223, 128, 17, 193, 120, 32, 197, 241, 30, 8, 242, 253, 136, 2, 189, 256, 34, 129, 240, 64, 137, 225, 60, 16, 227, 249, 15, 4, 121, 255, 68, 1, 223, 128, 17, 193, 120, 32, 197, 241, 30, 8, 242, 253, 136, 2, 189, 256, 34, 129, 240, 64, 137, 225, 60, 16, 227, 249, 15, 4, 121, 255, 68, 1, 223, 128, 17, 193, 120, 32, 197, 241, 30, 8, 242, 253, 136, 2, 189, 256, 34, 129, 240, 64, 137, 225, 60, 16, 227, 249, 15, 4, 121, 255, 68, 1, 223, 128, 17, 193, 120, 32, 197, 241, 30, 8, 242, 253, 136, 2, 189, 256, 34, 129, 240, 64, 137, 225, 60, 16, 227, 249, 15, 4, 121, 255, 68, 1, 223, 128, 17, 193, 120, 32, 197, 241, 30, 8, 242, 253, 136, 2, 189, 256, 34, 129, 240, 64, 137, 225, 60, 16, 227, 249, 15, 4, 121, 255, 68, 1, 223, 128, 17, 193, 120, 32, 197, 241, 30, 8, 242, 253, 136, 2, 189, 256, 34, 129, 240, 64, 137, 225, 60, 16, 227, 249, 15, 4, 121, 255, 68, 1], -[1, 224, 61, 43, 123, 53, 50, 149, 223, 94, 239, 80, 187, 254, 99, 74, 128, 145, 98, 107, 67, 102, 232, 54, 17, 210, 9, 217, 35, 130, 79, 220, 193, 56, 208, 75, 95, 206, 141, 230, 120, 152, 124, 20, 111, 192, 89, 147, 32, 229, 153, 91, 81, 154, 58, 142, 197, 181, 195, 247, 73, 161, 84, 55, 241, 14, 52, 83, 88, 180, 228, 186, 30, 38, 31, 5, 92, 48, 215, 101, 8, 250, 231, 87, 213, 167, 143, 164, 242, 238, 113, 126, 211, 233, 21, 78, 253, 132, 13, 85, 22, 45, 57, 175, 136, 138, 72, 194, 23, 12, 118, 218, 2, 191, 122, 86, 246, 106, 100, 41, 189, 188, 221, 160, 117, 251, 198, 148, 256, 33, 196, 214, 134, 204, 207, 108, 34, 163, 18, 177, 70, 3, 158, 183, 129, 112, 159, 150, 190, 155, 25, 203, 240, 47, 248, 40, 222, 127, 178, 37, 64, 201, 49, 182, 162, 51, 116, 27, 137, 105, 133, 237, 146, 65, 168, 110, 225, 28, 104, 166, 176, 103, 199, 115, 60, 76, 62, 10, 184, 96, 173, 202, 16, 243, 205, 174, 169, 77, 29, 71, 227, 219, 226, 252, 165, 209, 42, 156, 249, 7, 26, 170, 44, 90, 114, 93, 15, 19, 144, 131, 46, 24, 236, 179, 4, 125, 244, 172, 235, 212, 200, 82, 121, 119, 185, 63, 234, 245, 139, 39, 255, 66, 135, 171, 11, 151, 157, 216, 68, 69, 36, 97, 140, 6, 59, 109, 1], -[1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1, 225, 253, 128, 16, 2, 193, 249, 256, 32, 4, 129, 241, 255, 64, 8, 1], -[1, 226, 190, 21, 120, 135, 184, 207, 8, 9, 235, 168, 189, 52, 187, 114, 64, 72, 81, 59, 227, 159, 211, 141, 255, 62, 134, 215, 17, 244, 146, 100, 241, 239, 44, 178, 136, 153, 140, 29, 129, 113, 95, 139, 60, 196, 92, 232, 4, 133, 246, 84, 223, 26, 222, 57, 32, 36, 169, 158, 242, 208, 234, 199, 256, 31, 67, 236, 137, 122, 73, 50, 249, 248, 22, 89, 68, 205, 70, 143, 193, 185, 176, 198, 30, 98, 46, 116, 2, 195, 123, 42, 240, 13, 111, 157, 16, 18, 213, 79, 121, 104, 117, 228, 128, 144, 162, 118, 197, 61, 165, 25, 253, 124, 11, 173, 34, 231, 35, 200, 225, 221, 88, 99, 15, 49, 23, 58, 1, 226, 190, 21, 120, 135, 184, 207, 8, 9, 235, 168, 189, 52, 187, 114, 64, 72, 81, 59, 227, 159, 211, 141, 255, 62, 134, 215, 17, 244, 146, 100, 241, 239, 44, 178, 136, 153, 140, 29, 129, 113, 95, 139, 60, 196, 92, 232, 4, 133, 246, 84, 223, 26, 222, 57, 32, 36, 169, 158, 242, 208, 234, 199, 256, 31, 67, 236, 137, 122, 73, 50, 249, 248, 22, 89, 68, 205, 70, 143, 193, 185, 176, 198, 30, 98, 46, 116, 2, 195, 123, 42, 240, 13, 111, 157, 16, 18, 213, 79, 121, 104, 117, 228, 128, 144, 162, 118, 197, 61, 165, 25, 253, 124, 11, 173, 34, 231, 35, 200, 225, 221, 88, 99, 15, 49, 23, 58, 1], -[1, 227, 129, 242, 193, 121, 225, 189, 241, 223, 249, 240, 253, 120, 255, 60, 256, 30, 128, 15, 64, 136, 32, 68, 16, 34, 8, 17, 4, 137, 2, 197, 1, 227, 129, 242, 193, 121, 225, 189, 241, 223, 249, 240, 253, 120, 255, 60, 256, 30, 128, 15, 64, 136, 32, 68, 16, 34, 8, 17, 4, 137, 2, 197, 1, 227, 129, 242, 193, 121, 225, 189, 241, 223, 249, 240, 253, 120, 255, 60, 256, 30, 128, 15, 64, 136, 32, 68, 16, 34, 8, 17, 4, 137, 2, 197, 1, 227, 129, 242, 193, 121, 225, 189, 241, 223, 249, 240, 253, 120, 255, 60, 256, 30, 128, 15, 64, 136, 32, 68, 16, 34, 8, 17, 4, 137, 2, 197, 1, 227, 129, 242, 193, 121, 225, 189, 241, 223, 249, 240, 253, 120, 255, 60, 256, 30, 128, 15, 64, 136, 32, 68, 16, 34, 8, 17, 4, 137, 2, 197, 1, 227, 129, 242, 193, 121, 225, 189, 241, 223, 249, 240, 253, 120, 255, 60, 256, 30, 128, 15, 64, 136, 32, 68, 16, 34, 8, 17, 4, 137, 2, 197, 1, 227, 129, 242, 193, 121, 225, 189, 241, 223, 249, 240, 253, 120, 255, 60, 256, 30, 128, 15, 64, 136, 32, 68, 16, 34, 8, 17, 4, 137, 2, 197, 1, 227, 129, 242, 193, 121, 225, 189, 241, 223, 249, 240, 253, 120, 255, 60, 256, 30, 128, 15, 64, 136, 32, 68, 16, 34, 8, 17, 4, 137, 2, 197, 1], -[1, 228, 70, 26, 17, 21, 162, 185, 32, 100, 184, 61, 30, 158, 44, 9, 253, 116, 234, 153, 189, 173, 123, 31, 129, 114, 35, 13, 137, 139, 81, 221, 16, 50, 92, 159, 15, 79, 22, 133, 255, 58, 117, 205, 223, 215, 190, 144, 193, 57, 146, 135, 197, 198, 169, 239, 8, 25, 46, 208, 136, 168, 11, 195, 256, 29, 187, 231, 240, 236, 95, 72, 225, 157, 73, 196, 227, 99, 213, 248, 4, 141, 23, 104, 68, 84, 134, 226, 128, 143, 222, 244, 120, 118, 176, 36, 241, 207, 165, 98, 242, 178, 235, 124, 2, 199, 140, 52, 34, 42, 67, 113, 64, 200, 111, 122, 60, 59, 88, 18, 249, 232, 211, 49, 121, 89, 246, 62, 1, 228, 70, 26, 17, 21, 162, 185, 32, 100, 184, 61, 30, 158, 44, 9, 253, 116, 234, 153, 189, 173, 123, 31, 129, 114, 35, 13, 137, 139, 81, 221, 16, 50, 92, 159, 15, 79, 22, 133, 255, 58, 117, 205, 223, 215, 190, 144, 193, 57, 146, 135, 197, 198, 169, 239, 8, 25, 46, 208, 136, 168, 11, 195, 256, 29, 187, 231, 240, 236, 95, 72, 225, 157, 73, 196, 227, 99, 213, 248, 4, 141, 23, 104, 68, 84, 134, 226, 128, 143, 222, 244, 120, 118, 176, 36, 241, 207, 165, 98, 242, 178, 235, 124, 2, 199, 140, 52, 34, 42, 67, 113, 64, 200, 111, 122, 60, 59, 88, 18, 249, 232, 211, 49, 121, 89, 246, 62, 1], -[1, 229, 13, 150, 169, 151, 141, 164, 34, 76, 185, 217, 92, 251, 168, 179, 128, 14, 122, 182, 44, 53, 58, 175, 240, 219, 36, 20, 211, 3, 173, 39, 193, 250, 196, 166, 235, 102, 228, 41, 137, 19, 239, 247, 23, 127, 42, 109, 32, 132, 159, 174, 11, 206, 143, 108, 60, 119, 9, 5, 117, 65, 236, 74, 241, 191, 49, 170, 123, 154, 57, 203, 227, 69, 124, 126, 70, 96, 139, 220, 8, 33, 104, 172, 67, 180, 100, 27, 15, 94, 195, 194, 222, 209, 59, 147, 253, 112, 205, 171, 95, 167, 207, 115, 121, 210, 31, 160, 146, 24, 99, 55, 2, 201, 26, 43, 81, 45, 25, 71, 68, 152, 113, 177, 184, 245, 79, 101, 256, 28, 244, 107, 88, 106, 116, 93, 223, 181, 72, 40, 165, 6, 89, 78, 129, 243, 135, 75, 213, 204, 199, 82, 17, 38, 221, 237, 46, 254, 84, 218, 64, 7, 61, 91, 22, 155, 29, 216, 120, 238, 18, 10, 234, 130, 215, 148, 225, 125, 98, 83, 246, 51, 114, 149, 197, 138, 248, 252, 140, 192, 21, 183, 16, 66, 208, 87, 134, 103, 200, 54, 30, 188, 133, 131, 187, 161, 118, 37, 249, 224, 153, 85, 190, 77, 157, 230, 242, 163, 62, 63, 35, 48, 198, 110, 4, 145, 52, 86, 162, 90, 50, 142, 136, 47, 226, 97, 111, 233, 158, 202, 255, 56, 231, 214, 176, 212, 232, 186, 189, 105, 144, 80, 73, 12, 178, 156, 1], -[1, 230, 215, 106, 222, 174, 185, 145, 197, 78, 207, 65, 44, 97, 208, 38, 2, 203, 173, 212, 187, 91, 113, 33, 137, 156, 157, 130, 88, 194, 159, 76, 4, 149, 89, 167, 117, 182, 226, 66, 17, 55, 57, 3, 176, 131, 61, 152, 8, 41, 178, 77, 234, 107, 195, 132, 34, 110, 114, 6, 95, 5, 122, 47, 16, 82, 99, 154, 211, 214, 133, 7, 68, 220, 228, 12, 190, 10, 244, 94, 32, 164, 198, 51, 165, 171, 9, 14, 136, 183, 199, 24, 123, 20, 231, 188, 64, 71, 139, 102, 73, 85, 18, 28, 15, 109, 141, 48, 246, 40, 205, 119, 128, 142, 21, 204, 146, 170, 36, 56, 30, 218, 25, 96, 235, 80, 153, 238, 256, 27, 42, 151, 35, 83, 72, 112, 60, 179, 50, 192, 213, 160, 49, 219, 255, 54, 84, 45, 70, 166, 144, 224, 120, 101, 100, 127, 169, 63, 98, 181, 253, 108, 168, 90, 140, 75, 31, 191, 240, 202, 200, 254, 81, 126, 196, 105, 249, 216, 79, 180, 23, 150, 62, 125, 223, 147, 143, 251, 162, 252, 135, 210, 241, 175, 158, 103, 46, 43, 124, 250, 189, 37, 29, 245, 67, 247, 13, 163, 225, 93, 59, 206, 92, 86, 248, 243, 121, 74, 58, 233, 134, 237, 26, 69, 193, 186, 118, 155, 184, 172, 239, 229, 242, 148, 116, 209, 11, 217, 52, 138, 129, 115, 236, 53, 111, 87, 221, 201, 227, 39, 232, 161, 22, 177, 104, 19, 1], -[1, 231, 162, 157, 30, 248, 234, 84, 129, 244, 81, 207, 15, 124, 117, 42, 193, 122, 169, 232, 136, 62, 187, 21, 225, 61, 213, 116, 68, 31, 222, 139, 241, 159, 235, 58, 34, 144, 111, 198, 249, 208, 246, 29, 17, 72, 184, 99, 253, 104, 123, 143, 137, 36, 92, 178, 255, 52, 190, 200, 197, 18, 46, 89, 256, 26, 95, 100, 227, 9, 23, 173, 128, 13, 176, 50, 242, 133, 140, 215, 64, 135, 88, 25, 121, 195, 70, 236, 32, 196, 44, 141, 189, 226, 35, 118, 16, 98, 22, 199, 223, 113, 146, 59, 8, 49, 11, 228, 240, 185, 73, 158, 4, 153, 134, 114, 120, 221, 165, 79, 2, 205, 67, 57, 60, 239, 211, 168, 1, 231, 162, 157, 30, 248, 234, 84, 129, 244, 81, 207, 15, 124, 117, 42, 193, 122, 169, 232, 136, 62, 187, 21, 225, 61, 213, 116, 68, 31, 222, 139, 241, 159, 235, 58, 34, 144, 111, 198, 249, 208, 246, 29, 17, 72, 184, 99, 253, 104, 123, 143, 137, 36, 92, 178, 255, 52, 190, 200, 197, 18, 46, 89, 256, 26, 95, 100, 227, 9, 23, 173, 128, 13, 176, 50, 242, 133, 140, 215, 64, 135, 88, 25, 121, 195, 70, 236, 32, 196, 44, 141, 189, 226, 35, 118, 16, 98, 22, 199, 223, 113, 146, 59, 8, 49, 11, 228, 240, 185, 73, 158, 4, 153, 134, 114, 120, 221, 165, 79, 2, 205, 67, 57, 60, 239, 211, 168, 1], -[1, 232, 111, 52, 242, 118, 134, 248, 225, 29, 46, 135, 223, 79, 81, 31, 253, 100, 70, 49, 60, 42, 235, 36, 128, 141, 73, 231, 136, 198, 190, 133, 16, 114, 234, 61, 17, 89, 88, 113, 2, 207, 222, 104, 227, 236, 11, 239, 193, 58, 92, 13, 189, 158, 162, 62, 249, 200, 140, 98, 120, 84, 213, 72, 256, 25, 146, 205, 15, 139, 123, 9, 32, 228, 211, 122, 34, 178, 176, 226, 4, 157, 187, 208, 197, 215, 22, 221, 129, 116, 184, 26, 121, 59, 67, 124, 241, 143, 23, 196, 240, 168, 169, 144, 255, 50, 35, 153, 30, 21, 246, 18, 64, 199, 165, 244, 68, 99, 95, 195, 8, 57, 117, 159, 137, 173, 44, 185, 1, 232, 111, 52, 242, 118, 134, 248, 225, 29, 46, 135, 223, 79, 81, 31, 253, 100, 70, 49, 60, 42, 235, 36, 128, 141, 73, 231, 136, 198, 190, 133, 16, 114, 234, 61, 17, 89, 88, 113, 2, 207, 222, 104, 227, 236, 11, 239, 193, 58, 92, 13, 189, 158, 162, 62, 249, 200, 140, 98, 120, 84, 213, 72, 256, 25, 146, 205, 15, 139, 123, 9, 32, 228, 211, 122, 34, 178, 176, 226, 4, 157, 187, 208, 197, 215, 22, 221, 129, 116, 184, 26, 121, 59, 67, 124, 241, 143, 23, 196, 240, 168, 169, 144, 255, 50, 35, 153, 30, 21, 246, 18, 64, 199, 165, 244, 68, 99, 95, 195, 8, 57, 117, 159, 137, 173, 44, 185, 1], -[1, 233, 62, 54, 246, 7, 89, 177, 121, 180, 49, 109, 211, 76, 232, 86, 249, 192, 18, 82, 88, 201, 59, 126, 60, 102, 122, 156, 111, 163, 200, 83, 64, 6, 113, 115, 67, 191, 42, 20, 34, 212, 52, 37, 140, 238, 199, 107, 2, 209, 124, 108, 235, 14, 178, 97, 242, 103, 98, 218, 165, 152, 207, 172, 241, 127, 36, 164, 176, 145, 118, 252, 120, 204, 244, 55, 222, 69, 143, 166, 128, 12, 226, 230, 134, 125, 84, 40, 68, 167, 104, 74, 23, 219, 141, 214, 4, 161, 248, 216, 213, 28, 99, 194, 227, 206, 196, 179, 73, 47, 157, 87, 225, 254, 72, 71, 95, 33, 236, 247, 240, 151, 231, 110, 187, 138, 29, 75, 256, 24, 195, 203, 11, 250, 168, 80, 136, 77, 208, 148, 46, 181, 25, 171, 8, 65, 239, 175, 169, 56, 198, 131, 197, 155, 135, 101, 146, 94, 57, 174, 193, 251, 144, 142, 190, 66, 215, 237, 223, 45, 205, 220, 117, 19, 58, 150, 255, 48, 133, 149, 22, 243, 79, 160, 15, 154, 159, 39, 92, 105, 50, 85, 16, 130, 221, 93, 81, 112, 139, 5, 137, 53, 13, 202, 35, 188, 114, 91, 129, 245, 31, 27, 123, 132, 173, 217, 189, 90, 153, 183, 234, 38, 116, 43, 253, 96, 9, 41, 44, 229, 158, 63, 30, 51, 61, 78, 184, 210, 100, 170, 32, 3, 185, 186, 162, 224, 21, 10, 17, 106, 26, 147, 70, 119, 228, 182, 1], -[1, 234, 15, 169, 225, 222, 34, 246, 253, 92, 197, 95, 128, 140, 121, 44, 16, 146, 240, 134, 2, 211, 30, 81, 193, 187, 68, 235, 249, 184, 137, 190, 256, 23, 242, 88, 32, 35, 223, 11, 4, 165, 60, 162, 129, 117, 136, 213, 241, 111, 17, 123, 255, 46, 227, 176, 64, 70, 189, 22, 8, 73, 120, 67, 1, 234, 15, 169, 225, 222, 34, 246, 253, 92, 197, 95, 128, 140, 121, 44, 16, 146, 240, 134, 2, 211, 30, 81, 193, 187, 68, 235, 249, 184, 137, 190, 256, 23, 242, 88, 32, 35, 223, 11, 4, 165, 60, 162, 129, 117, 136, 213, 241, 111, 17, 123, 255, 46, 227, 176, 64, 70, 189, 22, 8, 73, 120, 67, 1, 234, 15, 169, 225, 222, 34, 246, 253, 92, 197, 95, 128, 140, 121, 44, 16, 146, 240, 134, 2, 211, 30, 81, 193, 187, 68, 235, 249, 184, 137, 190, 256, 23, 242, 88, 32, 35, 223, 11, 4, 165, 60, 162, 129, 117, 136, 213, 241, 111, 17, 123, 255, 46, 227, 176, 64, 70, 189, 22, 8, 73, 120, 67, 1, 234, 15, 169, 225, 222, 34, 246, 253, 92, 197, 95, 128, 140, 121, 44, 16, 146, 240, 134, 2, 211, 30, 81, 193, 187, 68, 235, 249, 184, 137, 190, 256, 23, 242, 88, 32, 35, 223, 11, 4, 165, 60, 162, 129, 117, 136, 213, 241, 111, 17, 123, 255, 46, 227, 176, 64, 70, 189, 22, 8, 73, 120, 67, 1], -[1, 235, 227, 146, 129, 246, 242, 73, 193, 123, 121, 165, 225, 190, 189, 211, 241, 95, 223, 234, 249, 176, 240, 117, 253, 88, 120, 187, 255, 44, 60, 222, 256, 22, 30, 111, 128, 11, 15, 184, 64, 134, 136, 92, 32, 67, 68, 46, 16, 162, 34, 23, 8, 81, 17, 140, 4, 169, 137, 70, 2, 213, 197, 35, 1, 235, 227, 146, 129, 246, 242, 73, 193, 123, 121, 165, 225, 190, 189, 211, 241, 95, 223, 234, 249, 176, 240, 117, 253, 88, 120, 187, 255, 44, 60, 222, 256, 22, 30, 111, 128, 11, 15, 184, 64, 134, 136, 92, 32, 67, 68, 46, 16, 162, 34, 23, 8, 81, 17, 140, 4, 169, 137, 70, 2, 213, 197, 35, 1, 235, 227, 146, 129, 246, 242, 73, 193, 123, 121, 165, 225, 190, 189, 211, 241, 95, 223, 234, 249, 176, 240, 117, 253, 88, 120, 187, 255, 44, 60, 222, 256, 22, 30, 111, 128, 11, 15, 184, 64, 134, 136, 92, 32, 67, 68, 46, 16, 162, 34, 23, 8, 81, 17, 140, 4, 169, 137, 70, 2, 213, 197, 35, 1, 235, 227, 146, 129, 246, 242, 73, 193, 123, 121, 165, 225, 190, 189, 211, 241, 95, 223, 234, 249, 176, 240, 117, 253, 88, 120, 187, 255, 44, 60, 222, 256, 22, 30, 111, 128, 11, 15, 184, 64, 134, 136, 92, 32, 67, 68, 46, 16, 162, 34, 23, 8, 81, 17, 140, 4, 169, 137, 70, 2, 213, 197, 35, 1], -[1, 236, 184, 248, 189, 143, 81, 98, 255, 42, 146, 18, 136, 228, 95, 61, 4, 173, 222, 221, 242, 58, 67, 135, 249, 168, 70, 72, 30, 141, 123, 244, 16, 178, 117, 113, 197, 232, 11, 26, 225, 158, 23, 31, 120, 50, 235, 205, 64, 198, 211, 195, 17, 157, 44, 104, 129, 118, 92, 124, 223, 200, 169, 49, 256, 21, 73, 9, 68, 114, 176, 159, 2, 215, 111, 239, 121, 29, 162, 196, 253, 84, 35, 36, 15, 199, 190, 122, 8, 89, 187, 185, 227, 116, 134, 13, 241, 79, 140, 144, 60, 25, 246, 231, 32, 99, 234, 226, 137, 207, 22, 52, 193, 59, 46, 62, 240, 100, 213, 153, 128, 139, 165, 133, 34, 57, 88, 208, 1, 236, 184, 248, 189, 143, 81, 98, 255, 42, 146, 18, 136, 228, 95, 61, 4, 173, 222, 221, 242, 58, 67, 135, 249, 168, 70, 72, 30, 141, 123, 244, 16, 178, 117, 113, 197, 232, 11, 26, 225, 158, 23, 31, 120, 50, 235, 205, 64, 198, 211, 195, 17, 157, 44, 104, 129, 118, 92, 124, 223, 200, 169, 49, 256, 21, 73, 9, 68, 114, 176, 159, 2, 215, 111, 239, 121, 29, 162, 196, 253, 84, 35, 36, 15, 199, 190, 122, 8, 89, 187, 185, 227, 116, 134, 13, 241, 79, 140, 144, 60, 25, 246, 231, 32, 99, 234, 226, 137, 207, 22, 52, 193, 59, 46, 62, 240, 100, 213, 153, 128, 139, 165, 133, 34, 57, 88, 208, 1], -[1, 237, 143, 224, 146, 164, 61, 65, 242, 43, 168, 238, 123, 110, 113, 53, 225, 126, 50, 28, 211, 149, 104, 233, 223, 166, 21, 94, 176, 78, 239, 103, 253, 80, 199, 132, 187, 115, 13, 254, 60, 85, 99, 76, 22, 74, 62, 45, 128, 10, 57, 145, 184, 175, 98, 96, 136, 107, 173, 138, 67, 202, 72, 102, 16, 194, 232, 243, 23, 54, 205, 12, 17, 174, 118, 210, 169, 218, 9, 77, 2, 217, 29, 191, 35, 71, 122, 130, 227, 86, 79, 219, 246, 220, 226, 106, 193, 252, 100, 56, 165, 41, 208, 209, 189, 75, 42, 188, 95, 156, 221, 206, 249, 160, 141, 7, 117, 230, 26, 251, 120, 170, 198, 152, 44, 148, 124, 90, 256, 20, 114, 33, 111, 93, 196, 192, 15, 214, 89, 19, 134, 147, 144, 204, 32, 131, 207, 229, 46, 108, 153, 24, 34, 91, 236, 163, 81, 179, 18, 154, 4, 177, 58, 125, 70, 142, 244, 3, 197, 172, 158, 181, 235, 183, 195, 212, 129, 247, 200, 112, 73, 82, 159, 161, 121, 150, 84, 119, 190, 55, 185, 155, 241, 63, 25, 14, 234, 203, 52, 245, 240, 83, 139, 47, 88, 39, 248, 180, 255, 40, 228, 66, 222, 186, 135, 127, 30, 171, 178, 38, 11, 37, 31, 151, 64, 5, 157, 201, 92, 216, 49, 48, 68, 182, 215, 69, 162, 101, 36, 51, 8, 97, 116, 250, 140, 27, 231, 6, 137, 87, 59, 105, 213, 109, 133, 167, 1], -[1, 238, 104, 80, 22, 96, 232, 218, 227, 56, 221, 170, 111, 204, 236, 142, 129, 119, 52, 40, 11, 48, 116, 109, 242, 28, 239, 85, 184, 102, 118, 71, 193, 188, 26, 20, 134, 24, 58, 183, 121, 14, 248, 171, 92, 51, 59, 164, 225, 94, 13, 10, 67, 12, 29, 220, 189, 7, 124, 214, 46, 154, 158, 82, 241, 47, 135, 5, 162, 6, 143, 110, 223, 132, 62, 107, 23, 77, 79, 41, 249, 152, 196, 131, 81, 3, 200, 55, 240, 66, 31, 182, 140, 167, 168, 149, 253, 76, 98, 194, 169, 130, 100, 156, 120, 33, 144, 91, 70, 212, 84, 203, 255, 38, 49, 97, 213, 65, 50, 78, 60, 145, 72, 174, 35, 106, 42, 230, 256, 19, 153, 177, 235, 161, 25, 39, 30, 201, 36, 87, 146, 53, 21, 115, 128, 138, 205, 217, 246, 209, 141, 148, 15, 229, 18, 172, 73, 155, 139, 186, 64, 69, 231, 237, 123, 233, 199, 74, 136, 243, 9, 86, 165, 206, 198, 93, 32, 163, 244, 247, 190, 245, 228, 37, 68, 250, 133, 43, 211, 103, 99, 175, 16, 210, 122, 252, 95, 251, 114, 147, 34, 125, 195, 150, 234, 180, 178, 216, 8, 105, 61, 126, 176, 254, 57, 202, 17, 191, 226, 75, 117, 90, 89, 108, 4, 181, 159, 63, 88, 127, 157, 101, 137, 224, 113, 166, 187, 45, 173, 54, 2, 219, 208, 160, 44, 192, 207, 179, 197, 112, 185, 83, 222, 151, 215, 27, 1], -[1, 239, 67, 79, 120, 153, 73, 228, 8, 113, 22, 118, 189, 196, 70, 25, 64, 133, 176, 173, 227, 26, 46, 200, 255, 36, 123, 99, 17, 208, 111, 58, 241, 31, 213, 21, 136, 122, 117, 207, 129, 248, 162, 168, 60, 205, 165, 114, 4, 185, 11, 59, 223, 98, 35, 141, 32, 195, 88, 215, 242, 13, 23, 100, 256, 18, 190, 178, 137, 104, 184, 29, 249, 144, 235, 139, 68, 61, 187, 232, 193, 124, 81, 84, 30, 231, 211, 57, 2, 221, 134, 158, 240, 49, 146, 199, 16, 226, 44, 236, 121, 135, 140, 50, 128, 9, 95, 89, 197, 52, 92, 143, 253, 72, 246, 198, 34, 159, 222, 116, 225, 62, 169, 42, 15, 244, 234, 157, 1, 239, 67, 79, 120, 153, 73, 228, 8, 113, 22, 118, 189, 196, 70, 25, 64, 133, 176, 173, 227, 26, 46, 200, 255, 36, 123, 99, 17, 208, 111, 58, 241, 31, 213, 21, 136, 122, 117, 207, 129, 248, 162, 168, 60, 205, 165, 114, 4, 185, 11, 59, 223, 98, 35, 141, 32, 195, 88, 215, 242, 13, 23, 100, 256, 18, 190, 178, 137, 104, 184, 29, 249, 144, 235, 139, 68, 61, 187, 232, 193, 124, 81, 84, 30, 231, 211, 57, 2, 221, 134, 158, 240, 49, 146, 199, 16, 226, 44, 236, 121, 135, 140, 50, 128, 9, 95, 89, 197, 52, 92, 143, 253, 72, 246, 198, 34, 159, 222, 116, 225, 62, 169, 42, 15, 244, 234, 157, 1], -[1, 240, 32, 227, 253, 68, 129, 120, 16, 242, 255, 34, 193, 60, 8, 121, 256, 17, 225, 30, 4, 189, 128, 137, 241, 15, 2, 223, 64, 197, 249, 136, 1, 240, 32, 227, 253, 68, 129, 120, 16, 242, 255, 34, 193, 60, 8, 121, 256, 17, 225, 30, 4, 189, 128, 137, 241, 15, 2, 223, 64, 197, 249, 136, 1, 240, 32, 227, 253, 68, 129, 120, 16, 242, 255, 34, 193, 60, 8, 121, 256, 17, 225, 30, 4, 189, 128, 137, 241, 15, 2, 223, 64, 197, 249, 136, 1, 240, 32, 227, 253, 68, 129, 120, 16, 242, 255, 34, 193, 60, 8, 121, 256, 17, 225, 30, 4, 189, 128, 137, 241, 15, 2, 223, 64, 197, 249, 136, 1, 240, 32, 227, 253, 68, 129, 120, 16, 242, 255, 34, 193, 60, 8, 121, 256, 17, 225, 30, 4, 189, 128, 137, 241, 15, 2, 223, 64, 197, 249, 136, 1, 240, 32, 227, 253, 68, 129, 120, 16, 242, 255, 34, 193, 60, 8, 121, 256, 17, 225, 30, 4, 189, 128, 137, 241, 15, 2, 223, 64, 197, 249, 136, 1, 240, 32, 227, 253, 68, 129, 120, 16, 242, 255, 34, 193, 60, 8, 121, 256, 17, 225, 30, 4, 189, 128, 137, 241, 15, 2, 223, 64, 197, 249, 136, 1, 240, 32, 227, 253, 68, 129, 120, 16, 242, 255, 34, 193, 60, 8, 121, 256, 17, 225, 30, 4, 189, 128, 137, 241, 15, 2, 223, 64, 197, 249, 136, 1], -[1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1, 241, 256, 16, 1], -[1, 242, 225, 223, 253, 60, 128, 136, 16, 17, 2, 227, 193, 189, 249, 120, 256, 15, 32, 34, 4, 197, 129, 121, 241, 240, 255, 30, 64, 68, 8, 137, 1, 242, 225, 223, 253, 60, 128, 136, 16, 17, 2, 227, 193, 189, 249, 120, 256, 15, 32, 34, 4, 197, 129, 121, 241, 240, 255, 30, 64, 68, 8, 137, 1, 242, 225, 223, 253, 60, 128, 136, 16, 17, 2, 227, 193, 189, 249, 120, 256, 15, 32, 34, 4, 197, 129, 121, 241, 240, 255, 30, 64, 68, 8, 137, 1, 242, 225, 223, 253, 60, 128, 136, 16, 17, 2, 227, 193, 189, 249, 120, 256, 15, 32, 34, 4, 197, 129, 121, 241, 240, 255, 30, 64, 68, 8, 137, 1, 242, 225, 223, 253, 60, 128, 136, 16, 17, 2, 227, 193, 189, 249, 120, 256, 15, 32, 34, 4, 197, 129, 121, 241, 240, 255, 30, 64, 68, 8, 137, 1, 242, 225, 223, 253, 60, 128, 136, 16, 17, 2, 227, 193, 189, 249, 120, 256, 15, 32, 34, 4, 197, 129, 121, 241, 240, 255, 30, 64, 68, 8, 137, 1, 242, 225, 223, 253, 60, 128, 136, 16, 17, 2, 227, 193, 189, 249, 120, 256, 15, 32, 34, 4, 197, 129, 121, 241, 240, 255, 30, 64, 68, 8, 137, 1, 242, 225, 223, 253, 60, 128, 136, 16, 17, 2, 227, 193, 189, 249, 120, 256, 15, 32, 34, 4, 197, 129, 121, 241, 240, 255, 30, 64, 68, 8, 137, 1], -[1, 243, 196, 83, 123, 77, 207, 186, 223, 219, 18, 5, 187, 209, 158, 101, 128, 7, 159, 87, 67, 90, 25, 164, 17, 19, 248, 126, 35, 24, 178, 78, 193, 125, 49, 85, 95, 212, 116, 175, 120, 119, 133, 194, 111, 245, 168, 218, 32, 66, 104, 86, 81, 151, 199, 41, 197, 69, 62, 160, 73, 6, 173, 148, 241, 224, 205, 214, 88, 53, 29, 108, 30, 94, 226, 177, 92, 254, 42, 183, 8, 145, 26, 150, 213, 102, 114, 203, 242, 210, 144, 40, 211, 130, 236, 37, 253, 56, 244, 182, 22, 206, 200, 27, 136, 152, 185, 237, 23, 192, 139, 110, 2, 229, 135, 166, 246, 154, 157, 115, 189, 181, 36, 10, 117, 161, 59, 202, 256, 14, 61, 174, 134, 180, 50, 71, 34, 38, 239, 252, 70, 48, 99, 156, 129, 250, 98, 170, 190, 167, 232, 93, 240, 238, 9, 131, 222, 233, 79, 179, 64, 132, 208, 172, 162, 45, 141, 82, 137, 138, 124, 63, 146, 12, 89, 39, 225, 191, 153, 171, 176, 106, 58, 216, 60, 188, 195, 97, 184, 251, 84, 109, 16, 33, 52, 43, 169, 204, 228, 149, 227, 163, 31, 80, 165, 3, 215, 74, 249, 112, 231, 107, 44, 155, 143, 54, 15, 47, 113, 217, 46, 127, 21, 220, 4, 201, 13, 75, 235, 51, 57, 230, 121, 105, 72, 20, 234, 65, 118, 147, 255, 28, 122, 91, 11, 103, 100, 142, 68, 76, 221, 247, 140, 96, 198, 55, 1], -[1, 244, 169, 116, 34, 72, 92, 89, 128, 135, 44, 199, 240, 221, 211, 84, 193, 61, 235, 29, 137, 18, 23, 215, 32, 98, 11, 114, 60, 248, 117, 21, 241, 208, 123, 200, 227, 133, 70, 118, 8, 153, 67, 157, 15, 62, 222, 198, 253, 52, 95, 50, 121, 226, 146, 158, 2, 231, 81, 232, 68, 144, 184, 178, 256, 13, 88, 141, 223, 185, 165, 168, 129, 122, 213, 58, 17, 36, 46, 173, 64, 196, 22, 228, 120, 239, 234, 42, 225, 159, 246, 143, 197, 9, 140, 236, 16, 49, 134, 57, 30, 124, 187, 139, 249, 104, 190, 100, 242, 195, 35, 59, 4, 205, 162, 207, 136, 31, 111, 99, 255, 26, 176, 25, 189, 113, 73, 79, 1, 244, 169, 116, 34, 72, 92, 89, 128, 135, 44, 199, 240, 221, 211, 84, 193, 61, 235, 29, 137, 18, 23, 215, 32, 98, 11, 114, 60, 248, 117, 21, 241, 208, 123, 200, 227, 133, 70, 118, 8, 153, 67, 157, 15, 62, 222, 198, 253, 52, 95, 50, 121, 226, 146, 158, 2, 231, 81, 232, 68, 144, 184, 178, 256, 13, 88, 141, 223, 185, 165, 168, 129, 122, 213, 58, 17, 36, 46, 173, 64, 196, 22, 228, 120, 239, 234, 42, 225, 159, 246, 143, 197, 9, 140, 236, 16, 49, 134, 57, 30, 124, 187, 139, 249, 104, 190, 100, 242, 195, 35, 59, 4, 205, 162, 207, 136, 31, 111, 99, 255, 26, 176, 25, 189, 113, 73, 79, 1], -[1, 245, 144, 71, 176, 201, 158, 160, 136, 167, 52, 147, 35, 94, 157, 172, 249, 96, 133, 203, 134, 191, 21, 5, 197, 206, 98, 109, 234, 19, 29, 166, 64, 3, 221, 175, 213, 14, 89, 217, 223, 151, 244, 156, 184, 105, 25, 214, 2, 233, 31, 142, 95, 145, 59, 63, 15, 77, 104, 37, 70, 188, 57, 87, 241, 192, 9, 149, 11, 125, 42, 10, 137, 155, 196, 218, 211, 38, 58, 75, 128, 6, 185, 93, 169, 28, 178, 177, 189, 45, 231, 55, 111, 210, 50, 171, 4, 209, 62, 27, 190, 33, 118, 126, 30, 154, 208, 74, 140, 119, 114, 174, 225, 127, 18, 41, 22, 250, 84, 20, 17, 53, 135, 179, 165, 76, 116, 150, 256, 12, 113, 186, 81, 56, 99, 97, 121, 90, 205, 110, 222, 163, 100, 85, 8, 161, 124, 54, 123, 66, 236, 252, 60, 51, 159, 148, 23, 238, 228, 91, 193, 254, 36, 82, 44, 243, 168, 40, 34, 106, 13, 101, 73, 152, 232, 43, 255, 24, 226, 115, 162, 112, 198, 194, 242, 180, 153, 220, 187, 69, 200, 170, 16, 65, 248, 108, 246, 132, 215, 247, 120, 102, 61, 39, 46, 219, 199, 182, 129, 251, 72, 164, 88, 229, 79, 80, 68, 212, 26, 202, 146, 47, 207, 86, 253, 48, 195, 230, 67, 224, 139, 131, 227, 103, 49, 183, 117, 138, 143, 83, 32, 130, 239, 216, 235, 7, 173, 237, 240, 204, 122, 78, 92, 181, 141, 107, 1], -[1, 246, 121, 211, 249, 88, 60, 111, 64, 67, 34, 140, 2, 235, 242, 165, 241, 176, 120, 222, 128, 134, 68, 23, 4, 213, 227, 73, 225, 95, 240, 187, 256, 11, 136, 46, 8, 169, 197, 146, 193, 190, 223, 117, 255, 22, 15, 92, 16, 81, 137, 35, 129, 123, 189, 234, 253, 44, 30, 184, 32, 162, 17, 70, 1, 246, 121, 211, 249, 88, 60, 111, 64, 67, 34, 140, 2, 235, 242, 165, 241, 176, 120, 222, 128, 134, 68, 23, 4, 213, 227, 73, 225, 95, 240, 187, 256, 11, 136, 46, 8, 169, 197, 146, 193, 190, 223, 117, 255, 22, 15, 92, 16, 81, 137, 35, 129, 123, 189, 234, 253, 44, 30, 184, 32, 162, 17, 70, 1, 246, 121, 211, 249, 88, 60, 111, 64, 67, 34, 140, 2, 235, 242, 165, 241, 176, 120, 222, 128, 134, 68, 23, 4, 213, 227, 73, 225, 95, 240, 187, 256, 11, 136, 46, 8, 169, 197, 146, 193, 190, 223, 117, 255, 22, 15, 92, 16, 81, 137, 35, 129, 123, 189, 234, 253, 44, 30, 184, 32, 162, 17, 70, 1, 246, 121, 211, 249, 88, 60, 111, 64, 67, 34, 140, 2, 235, 242, 165, 241, 176, 120, 222, 128, 134, 68, 23, 4, 213, 227, 73, 225, 95, 240, 187, 256, 11, 136, 46, 8, 169, 197, 146, 193, 190, 223, 117, 255, 22, 15, 92, 16, 81, 137, 35, 129, 123, 189, 234, 253, 44, 30, 184, 32, 162, 17, 70, 1], -[1, 247, 100, 28, 234, 230, 13, 127, 15, 107, 215, 163, 169, 109, 195, 106, 225, 63, 141, 132, 222, 93, 98, 48, 34, 174, 59, 181, 246, 110, 185, 206, 253, 40, 114, 145, 92, 108, 205, 6, 197, 86, 168, 119, 95, 78, 248, 90, 128, 5, 207, 243, 140, 142, 122, 65, 121, 75, 21, 47, 44, 74, 31, 204, 16, 97, 58, 191, 146, 82, 208, 233, 240, 170, 99, 38, 134, 202, 36, 154, 2, 237, 200, 56, 211, 203, 26, 254, 30, 214, 173, 69, 81, 218, 133, 212, 193, 126, 25, 7, 187, 186, 196, 96, 68, 91, 118, 105, 235, 220, 113, 155, 249, 80, 228, 33, 184, 216, 153, 12, 137, 172, 79, 238, 190, 156, 239, 180, 256, 10, 157, 229, 23, 27, 244, 130, 242, 150, 42, 94, 88, 148, 62, 151, 32, 194, 116, 125, 35, 164, 159, 209, 223, 83, 198, 76, 11, 147, 72, 51, 4, 217, 143, 112, 165, 149, 52, 251, 60, 171, 89, 138, 162, 179, 9, 167, 129, 252, 50, 14, 117, 115, 135, 192, 136, 182, 236, 210, 213, 183, 226, 53, 241, 160, 199, 66, 111, 175, 49, 24, 17, 87, 158, 219, 123, 55, 221, 103, 255, 20, 57, 201, 46, 54, 231, 3, 227, 43, 84, 188, 176, 39, 124, 45, 64, 131, 232, 250, 70, 71, 61, 161, 189, 166, 139, 152, 22, 37, 144, 102, 8, 177, 29, 224, 73, 41, 104, 245, 120, 85, 178, 19, 67, 101, 18, 77, 1], -[1, 248, 81, 42, 136, 61, 222, 58, 249, 72, 123, 178, 197, 26, 23, 50, 64, 195, 44, 118, 223, 49, 73, 114, 2, 239, 162, 84, 15, 122, 187, 116, 241, 144, 246, 99, 137, 52, 46, 100, 128, 133, 88, 236, 189, 98, 146, 228, 4, 221, 67, 168, 30, 244, 117, 232, 225, 31, 235, 198, 17, 104, 92, 200, 256, 9, 176, 215, 121, 196, 35, 199, 8, 185, 134, 79, 60, 231, 234, 207, 193, 62, 213, 139, 34, 208, 184, 143, 255, 18, 95, 173, 242, 135, 70, 141, 16, 113, 11, 158, 120, 205, 211, 157, 129, 124, 169, 21, 68, 159, 111, 29, 253, 36, 190, 89, 227, 13, 140, 25, 32, 226, 22, 59, 240, 153, 165, 57, 1, 248, 81, 42, 136, 61, 222, 58, 249, 72, 123, 178, 197, 26, 23, 50, 64, 195, 44, 118, 223, 49, 73, 114, 2, 239, 162, 84, 15, 122, 187, 116, 241, 144, 246, 99, 137, 52, 46, 100, 128, 133, 88, 236, 189, 98, 146, 228, 4, 221, 67, 168, 30, 244, 117, 232, 225, 31, 235, 198, 17, 104, 92, 200, 256, 9, 176, 215, 121, 196, 35, 199, 8, 185, 134, 79, 60, 231, 234, 207, 193, 62, 213, 139, 34, 208, 184, 143, 255, 18, 95, 173, 242, 135, 70, 141, 16, 113, 11, 158, 120, 205, 211, 157, 129, 124, 169, 21, 68, 159, 111, 29, 253, 36, 190, 89, 227, 13, 140, 25, 32, 226, 22, 59, 240, 153, 165, 57, 1], -[1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1, 249, 64, 2, 241, 128, 4, 225, 256, 8, 193, 255, 16, 129, 253, 32, 1], -[1, 250, 49, 171, 88, 155, 200, 142, 34, 19, 124, 160, 165, 130, 118, 202, 128, 132, 104, 43, 213, 51, 157, 186, 240, 119, 195, 177, 46, 192, 198, 156, 193, 191, 205, 107, 22, 103, 50, 164, 137, 69, 31, 40, 234, 161, 158, 179, 32, 33, 26, 75, 246, 77, 232, 175, 60, 94, 113, 237, 140, 48, 178, 39, 241, 112, 244, 91, 134, 90, 141, 41, 227, 210, 72, 10, 187, 233, 168, 109, 8, 201, 135, 83, 190, 212, 58, 108, 15, 152, 221, 252, 35, 12, 173, 74, 253, 28, 61, 87, 162, 151, 228, 203, 121, 181, 18, 131, 111, 251, 42, 220, 2, 243, 98, 85, 176, 53, 143, 27, 68, 38, 248, 63, 73, 3, 236, 147, 256, 7, 208, 86, 169, 102, 57, 115, 223, 238, 133, 97, 92, 127, 139, 55, 129, 125, 153, 214, 44, 206, 100, 71, 17, 138, 62, 80, 211, 65, 59, 101, 64, 66, 52, 150, 235, 154, 207, 93, 120, 188, 226, 217, 23, 96, 99, 78, 225, 224, 231, 182, 11, 180, 25, 82, 197, 163, 144, 20, 117, 209, 79, 218, 16, 145, 13, 166, 123, 167, 116, 216, 30, 47, 185, 247, 70, 24, 89, 148, 249, 56, 122, 174, 67, 45, 199, 149, 242, 105, 36, 5, 222, 245, 84, 183, 4, 229, 196, 170, 95, 106, 29, 54, 136, 76, 239, 126, 146, 6, 215, 37, 255, 14, 159, 172, 81, 204, 114, 230, 189, 219, 9, 194, 184, 254, 21, 110, 1], -[1, 251, 36, 41, 11, 191, 139, 194, 121, 45, 244, 78, 46, 238, 114, 87, 249, 48, 226, 186, 169, 14, 173, 247, 60, 154, 104, 147, 146, 152, 116, 75, 64, 130, 248, 54, 190, 145, 158, 80, 34, 53, 196, 109, 117, 69, 100, 171, 2, 245, 72, 82, 22, 125, 21, 131, 242, 90, 231, 156, 92, 219, 228, 174, 241, 96, 195, 115, 81, 28, 89, 237, 120, 51, 208, 37, 35, 47, 232, 150, 128, 3, 239, 108, 123, 33, 59, 160, 68, 106, 135, 218, 234, 138, 200, 85, 4, 233, 144, 164, 44, 250, 42, 5, 227, 180, 205, 55, 184, 181, 199, 91, 225, 192, 133, 230, 162, 56, 178, 217, 240, 102, 159, 74, 70, 94, 207, 43, 256, 6, 221, 216, 246, 66, 118, 63, 136, 212, 13, 179, 211, 19, 143, 170, 8, 209, 31, 71, 88, 243, 84, 10, 197, 103, 153, 110, 111, 105, 141, 182, 193, 127, 9, 203, 67, 112, 99, 177, 223, 204, 61, 148, 140, 188, 157, 86, 255, 12, 185, 175, 235, 132, 236, 126, 15, 167, 26, 101, 165, 38, 29, 83, 16, 161, 62, 142, 176, 229, 168, 20, 137, 206, 49, 220, 222, 210, 25, 107, 129, 254, 18, 149, 134, 224, 198, 97, 189, 151, 122, 39, 23, 119, 57, 172, 253, 24, 113, 93, 213, 7, 215, 252, 30, 77, 52, 202, 73, 76, 58, 166, 32, 65, 124, 27, 95, 201, 79, 40, 17, 155, 98, 183, 187, 163, 50, 214, 1], -[1, 252, 25, 132, 111, 216, 205, 3, 242, 75, 139, 76, 134, 101, 9, 212, 225, 160, 228, 145, 46, 27, 122, 161, 223, 170, 178, 138, 81, 109, 226, 155, 253, 20, 157, 243, 70, 164, 208, 245, 60, 214, 215, 210, 235, 110, 221, 180, 128, 131, 116, 191, 73, 149, 26, 127, 136, 91, 59, 219, 190, 78, 124, 151, 16, 177, 143, 56, 234, 115, 196, 48, 17, 172, 168, 188, 88, 74, 144, 51, 2, 247, 50, 7, 222, 175, 153, 6, 227, 150, 21, 152, 11, 202, 18, 167, 193, 63, 199, 33, 92, 54, 244, 65, 189, 83, 99, 19, 162, 218, 195, 53, 249, 40, 57, 229, 140, 71, 159, 233, 120, 171, 173, 163, 213, 220, 185, 103, 256, 5, 232, 125, 146, 41, 52, 254, 15, 182, 118, 181, 123, 156, 248, 45, 32, 97, 29, 112, 211, 230, 135, 96, 34, 87, 79, 119, 176, 148, 31, 102, 4, 237, 100, 14, 187, 93, 49, 12, 197, 43, 42, 47, 22, 147, 36, 77, 129, 126, 141, 66, 184, 108, 231, 130, 121, 166, 198, 38, 67, 179, 133, 106, 241, 80, 114, 201, 23, 142, 61, 209, 240, 85, 89, 69, 169, 183, 113, 206, 255, 10, 207, 250, 35, 82, 104, 251, 30, 107, 236, 105, 246, 55, 239, 90, 64, 194, 58, 224, 165, 203, 13, 192, 68, 174, 158, 238, 95, 39, 62, 204, 8, 217, 200, 28, 117, 186, 98, 24, 137, 86, 84, 94, 44, 37, 72, 154, 1], -[1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1, 253, 16, 193, 256, 4, 241, 64, 1], -[1, 254, 9, 230, 81, 14, 215, 126, 136, 106, 196, 183, 222, 105, 199, 174, 249, 24, 185, 216, 123, 145, 79, 20, 197, 180, 231, 78, 23, 188, 207, 150, 64, 65, 62, 71, 44, 125, 139, 97, 223, 102, 208, 147, 73, 38, 143, 85, 2, 251, 18, 203, 162, 28, 173, 252, 15, 212, 135, 109, 187, 210, 141, 91, 241, 48, 113, 175, 246, 33, 158, 40, 137, 103, 205, 156, 46, 119, 157, 43, 128, 130, 124, 142, 88, 250, 21, 194, 189, 204, 159, 37, 146, 76, 29, 170, 4, 245, 36, 149, 67, 56, 89, 247, 30, 167, 13, 218, 117, 163, 25, 182, 225, 96, 226, 93, 235, 66, 59, 80, 17, 206, 153, 55, 92, 238, 57, 86, 256, 3, 248, 27, 176, 243, 42, 131, 121, 151, 61, 74, 35, 152, 58, 83, 8, 233, 72, 41, 134, 112, 178, 237, 60, 77, 26, 179, 234, 69, 50, 107, 193, 192, 195, 186, 213, 132, 118, 160, 34, 155, 49, 110, 184, 219, 114, 172, 255, 6, 239, 54, 95, 229, 84, 5, 242, 45, 122, 148, 70, 47, 116, 166, 16, 209, 144, 82, 11, 224, 99, 217, 120, 154, 52, 101, 211, 138, 100, 214, 129, 127, 133, 115, 169, 7, 236, 63, 68, 53, 98, 220, 111, 181, 228, 87, 253, 12, 221, 108, 190, 201, 168, 10, 227, 90, 244, 39, 140, 94, 232, 75, 32, 161, 31, 164, 22, 191, 198, 177, 240, 51, 104, 202, 165, 19, 200, 171, 1], -[1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1, 255, 4, 249, 16, 225, 64, 129, 256, 2, 253, 8, 241, 32, 193, 128, 1], -[1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1], -]; - -fn main(x: Field, y: pub Field) { - let mut acc: Field = 0; - for i in 0..257 { - for j in 0..257 { - acc += EXPONENTIATE[i][j]; - } - } - assert(!acc.lt(x)); - assert(x != y); -} diff --git a/test_programs/execution_success/regression_5045/Nargo.toml b/test_programs/execution_success/regression_5045/Nargo.toml deleted file mode 100644 index 8f56d392fec..00000000000 --- a/test_programs/execution_success/regression_5045/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_5045" -version = "0.1.0" -type = "bin" -authors = [""] - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/regression_5045/Prover.toml b/test_programs/execution_success/regression_5045/Prover.toml deleted file mode 100644 index 5444a86ec82..00000000000 --- a/test_programs/execution_success/regression_5045/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -is_active = false \ No newline at end of file diff --git a/test_programs/execution_success/regression_5045/src/main.nr b/test_programs/execution_success/regression_5045/src/main.nr deleted file mode 100644 index d1bc4f663fd..00000000000 --- a/test_programs/execution_success/regression_5045/src/main.nr +++ /dev/null @@ -1,20 +0,0 @@ -use std::embedded_curve_ops::EmbeddedCurvePoint; -use std::embedded_curve_ops::EmbeddedCurveScalar; - -fn main(is_active: bool) { - let a = EmbeddedCurvePoint { - x: 0x1d8eb4378a3bde41e0b6a9a8dcbd21b7ff9c51bdd6ca13ce989abbbf90df3666, - y: 0x06075b63354f2504f9cddba0b94ed0cef35fc88615e69ec1f853b51eb79a24a0, - is_infinite: false - }; - - if is_active { - let bad = EmbeddedCurvePoint { x: 0, y: 5, is_infinite: false }; - let d = bad.double(); - let e = std::embedded_curve_ops::multi_scalar_mul( - [a, bad], - [EmbeddedCurveScalar { lo: 1, hi: 0 }, EmbeddedCurveScalar { lo: 1, hi: 0 }] - ); - assert(e.x != d.x); - } -} diff --git a/test_programs/execution_success/regression_5252/Nargo.toml b/test_programs/execution_success/regression_5252/Nargo.toml deleted file mode 100644 index 855507dfaf3..00000000000 --- a/test_programs/execution_success/regression_5252/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_5252" -version = "0.1.0" -type = "bin" -authors = [""] - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/regression_5252/Prover.toml b/test_programs/execution_success/regression_5252/Prover.toml deleted file mode 100644 index 82776b4463d..00000000000 --- a/test_programs/execution_success/regression_5252/Prover.toml +++ /dev/null @@ -1,6 +0,0 @@ -to_hash = [[1,5,9,2,24,563,3545,5,52,4244,43,2,7373567,2,286762,7,2457,24,2456,2456], -[2234,2,26,27,24566,132452,3452456344567,657,45674657,4567467,45674,4567456,4567,23454,2345,2345345245,25252345,2435234524366,8678678,67867567], -[9887575467567,5367367243617,46244567783,64673425,67456573456,4673457,46735,745674,6574,567456,7456,84,683,683,8368,38,32,16,7,98], -#[465656,234324,4353,5245246,2567345674567,5634563456,7676474,4747,4567456746,56,4657456,4657,4567,46,7,8,98,87,76,57] -] -enable = [1,1,0] diff --git a/test_programs/execution_success/regression_5252/src/main.nr b/test_programs/execution_success/regression_5252/src/main.nr deleted file mode 100644 index 4b4d1937c0e..00000000000 --- a/test_programs/execution_success/regression_5252/src/main.nr +++ /dev/null @@ -1,23 +0,0 @@ -use std::hash::{mimc, poseidon, poseidon2::Poseidon2}; - -global NUM_HASHES = 3; -global HASH_LENGTH = 20; - -pub fn poseidon_hash(inputs: [Field; N]) -> Field { - Poseidon2::hash(inputs, inputs.len()) -} - -fn main( - to_hash: [[Field; HASH_LENGTH]; NUM_HASHES], - enable: [bool; NUM_HASHES] -) -> pub [Field; NUM_HASHES] { - let mut result = [0; NUM_HASHES]; - for i in 0..NUM_HASHES { - let enable = enable[i]; - let to_hash = to_hash[i]; - if enable { - result[i] = poseidon_hash(to_hash) + poseidon::bn254::sponge(to_hash) + mimc::mimc_bn254(to_hash); - } - } - result -} diff --git a/test_programs/execution_success/regression_5435/Nargo.toml b/test_programs/execution_success/regression_5435/Nargo.toml deleted file mode 100644 index 6affc423b7a..00000000000 --- a/test_programs/execution_success/regression_5435/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_5435" -type = "bin" -authors = [""] -compiler_version = ">=0.31.0" - -[dependencies] diff --git a/test_programs/execution_success/regression_5435/Prover.toml b/test_programs/execution_success/regression_5435/Prover.toml deleted file mode 100644 index f3e2bbe32e7..00000000000 --- a/test_programs/execution_success/regression_5435/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -input = "0" -enable = false diff --git a/test_programs/execution_success/regression_5435/src/main.nr b/test_programs/execution_success/regression_5435/src/main.nr deleted file mode 100644 index d8aeb76356b..00000000000 --- a/test_programs/execution_success/regression_5435/src/main.nr +++ /dev/null @@ -1,20 +0,0 @@ -fn main(input: Field, enable: bool) { - if enable { - let hash = no_predicate_function(input); - // `EnableSideEffects` instruction from above instruction leaks out and removes the predicate from this call, - // resulting in execution failure. - unsafe { - fail(hash) - }; - } -} - -#[no_predicates] -fn no_predicate_function(enable: Field) -> Field { - // if-statement ensures that an `EnableSideEffects` instruction is emitted. - if enable == 0 { 1 } else { 0 } -} - -unconstrained fn fail(_: Field) { - assert(false); -} diff --git a/test_programs/execution_success/regression_5462/Nargo.toml b/test_programs/execution_success/regression_5462/Nargo.toml deleted file mode 100644 index 97015f78963..00000000000 --- a/test_programs/execution_success/regression_5462/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_5462" -type = "bin" -authors = [""] -compiler_version = ">=0.35.0" - -[dependencies] diff --git a/test_programs/execution_success/regression_5462/src/main.nr b/test_programs/execution_success/regression_5462/src/main.nr deleted file mode 100644 index 092f7ab96a5..00000000000 --- a/test_programs/execution_success/regression_5462/src/main.nr +++ /dev/null @@ -1,11 +0,0 @@ -fn main() { - let empty_slice: [u8] = &[]; - - if empty_slice != &[] { - let _ = empty_slice.pop_front(); - } - - if empty_slice.len() != 0 { - let _ = empty_slice.pop_front(); - } -} diff --git a/test_programs/execution_success/regression_5615/Nargo.toml b/test_programs/execution_success/regression_5615/Nargo.toml deleted file mode 100644 index 738d99391a2..00000000000 --- a/test_programs/execution_success/regression_5615/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_5615" -type = "bin" -authors = [""] -compiler_version = ">=0.32.0" - -[dependencies] diff --git a/test_programs/execution_success/regression_5615/src/main.nr b/test_programs/execution_success/regression_5615/src/main.nr deleted file mode 100644 index afb641e510d..00000000000 --- a/test_programs/execution_success/regression_5615/src/main.nr +++ /dev/null @@ -1,12 +0,0 @@ -use std::collections::umap::UHashMap; -use std::hash::BuildHasherDefault; -use std::hash::poseidon2::Poseidon2Hasher; - -unconstrained fn main() { - comptime - { - let mut map: UHashMap> = UHashMap::default(); - - map.insert(1, 2); - } -} diff --git a/test_programs/execution_success/regression_capacity_tracker/Nargo.toml b/test_programs/execution_success/regression_capacity_tracker/Nargo.toml deleted file mode 100644 index d5a3839626f..00000000000 --- a/test_programs/execution_success/regression_capacity_tracker/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_capacity_tracker" -type = "bin" -authors = [""] -compiler_version = ">=0.26.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/regression_capacity_tracker/Prover.toml b/test_programs/execution_success/regression_capacity_tracker/Prover.toml deleted file mode 100644 index bbf35b23a0f..00000000000 --- a/test_programs/execution_success/regression_capacity_tracker/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -expected = "10" -first = "10" -input = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] \ No newline at end of file diff --git a/test_programs/execution_success/regression_capacity_tracker/src/main.nr b/test_programs/execution_success/regression_capacity_tracker/src/main.nr deleted file mode 100644 index be645c811d2..00000000000 --- a/test_programs/execution_success/regression_capacity_tracker/src/main.nr +++ /dev/null @@ -1,19 +0,0 @@ -// Reference https://github.com/noir-lang/noir/issues/4395#issuecomment-2018948631 -// for context. -// We were not accurately accounting for situations where the slice capacity tracker -// was expecting a capacity from slice intrinsic results. -fn main(expected: pub Field, first: Field, input: [Field; 20]) { - let mut hasher_slice = input.as_slice(); - hasher_slice = hasher_slice.push_front(first); - assert(hasher_slice[0] == expected); - // We need a conditional based upon witnesses - // to force a store of the slice. - // If this successfully compiles it means we have stored - // the results of the slice intrinsics used above. - if expected as u32 > 10 { - hasher_slice[expected - 10] = 100; - } else { - hasher_slice[expected] = 100; - } - assert(hasher_slice[0] == expected); -} diff --git a/test_programs/execution_success/regression_mem_op_predicate/Nargo.toml b/test_programs/execution_success/regression_mem_op_predicate/Nargo.toml deleted file mode 100644 index 93a0ba6f25a..00000000000 --- a/test_programs/execution_success/regression_mem_op_predicate/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "regression_mem_op_predicate" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/regression_mem_op_predicate/Prover.toml b/test_programs/execution_success/regression_mem_op_predicate/Prover.toml deleted file mode 100644 index 3621f24082c..00000000000 --- a/test_programs/execution_success/regression_mem_op_predicate/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = [4,3,1,5,111] -idx = 12 \ No newline at end of file diff --git a/test_programs/execution_success/regression_mem_op_predicate/src/main.nr b/test_programs/execution_success/regression_mem_op_predicate/src/main.nr deleted file mode 100644 index 4b5ca67f6de..00000000000 --- a/test_programs/execution_success/regression_mem_op_predicate/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -fn main(mut x: [u32; 5], idx: Field) { - // We should not hit out of bounds here as we have a predicate - // that should not be hit - if idx as u32 < 3 { - x[idx] = 10; - } - assert(x[4] == 111); -} diff --git a/test_programs/execution_success/regression_method_cannot_be_found/Nargo.toml b/test_programs/execution_success/regression_method_cannot_be_found/Nargo.toml deleted file mode 100644 index aed6aa06714..00000000000 --- a/test_programs/execution_success/regression_method_cannot_be_found/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "regression_method_cannot_be_found" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/regression_method_cannot_be_found/Prover.toml b/test_programs/execution_success/regression_method_cannot_be_found/Prover.toml deleted file mode 100644 index 8b137891791..00000000000 --- a/test_programs/execution_success/regression_method_cannot_be_found/Prover.toml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test_programs/execution_success/regression_method_cannot_be_found/src/main.nr b/test_programs/execution_success/regression_method_cannot_be_found/src/main.nr deleted file mode 100644 index c7db543f1bb..00000000000 --- a/test_programs/execution_success/regression_method_cannot_be_found/src/main.nr +++ /dev/null @@ -1,22 +0,0 @@ -struct Item { - id: Field, -} - -impl Item { - fn log(self) { - let id = self.id; - std::println(id); - } -} - -fn create(something: V) -> V { - something -} - -fn main() { - let a = Item { id: 1 }; - let b = create(a); - let _id = b.id; - // Regression for: cannot find this method - b.log(); -} diff --git a/test_programs/execution_success/regression_struct_array_conditional/Nargo.toml b/test_programs/execution_success/regression_struct_array_conditional/Nargo.toml deleted file mode 100644 index a0587210464..00000000000 --- a/test_programs/execution_success/regression_struct_array_conditional/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "regression_struct_array_conditional" -version = "0.1.0" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/regression_struct_array_conditional/Prover.toml b/test_programs/execution_success/regression_struct_array_conditional/Prover.toml deleted file mode 100644 index ef97f9d482a..00000000000 --- a/test_programs/execution_success/regression_struct_array_conditional/Prover.toml +++ /dev/null @@ -1,18 +0,0 @@ -y = 1 -z = 1 - -[[x]] -value = "0x23de33be058ce5504e1ade738db8bdacfe268fa9dbde777092bf1d38519bdf59" -counter = "10" -dummy = "0" - -[[x]] -value = "3" -counter = "2" -dummy = "0" - -[[x]] -value = "2" -counter = "0" -dummy = "0" - diff --git a/test_programs/execution_success/regression_struct_array_conditional/src/main.nr b/test_programs/execution_success/regression_struct_array_conditional/src/main.nr deleted file mode 100644 index 17502a9fe50..00000000000 --- a/test_programs/execution_success/regression_struct_array_conditional/src/main.nr +++ /dev/null @@ -1,38 +0,0 @@ -struct foo { - value: Field, - counter: u8, - dummy: u8, -} -struct bar { - dummy: [u8;3], - value: Field, - counter: u8, -} -struct bar_field { - dummy: [Field;3], - value: Field, - counter: u8, -} -fn main(x: [foo; 3], y: u32, z: u32) -> pub u8 { - let a = [y, z, x[y].counter as u32]; - let mut b = [bar { value: 0, counter: 0, dummy: [0; 3] }; 3]; - let mut c = [bar_field { value: 0, counter: 0, dummy: [0; 3] }; 3]; - for i in 0..3 { - b[i].value = x[i].value; - b[i].counter = x[i].counter; - b[i].dummy[0] = x[i].dummy; - c[i].value = x[i].value; - c[i].counter = x[i].counter; - c[i].dummy[0] = x[i].dummy as Field; - } - if z == 0 { - // offset - assert(y as u8 < x[y].counter); - assert(y <= a[y]); - // first element is compatible - assert(y as u8 < b[y].counter); - // fallback - assert(y as u8 < c[y].counter); - } - x[0].counter -} diff --git a/test_programs/execution_success/regression_unsafe_no_predicates/Nargo.toml b/test_programs/execution_success/regression_unsafe_no_predicates/Nargo.toml deleted file mode 100644 index 7cd42687c34..00000000000 --- a/test_programs/execution_success/regression_unsafe_no_predicates/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "regression_unsafe_no_predicates" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/regression_unsafe_no_predicates/Prover.toml b/test_programs/execution_success/regression_unsafe_no_predicates/Prover.toml deleted file mode 100644 index aaa42715899..00000000000 --- a/test_programs/execution_success/regression_unsafe_no_predicates/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = 239 -nest = false \ No newline at end of file diff --git a/test_programs/execution_success/regression_unsafe_no_predicates/src/main.nr b/test_programs/execution_success/regression_unsafe_no_predicates/src/main.nr deleted file mode 100644 index 63c2493fc89..00000000000 --- a/test_programs/execution_success/regression_unsafe_no_predicates/src/main.nr +++ /dev/null @@ -1,25 +0,0 @@ -fn main(x: u8, nest: bool) { - if nest { - let foo = unsafe_assert([x]); - assert(foo != 0); - } -} - -#[no_predicates] -pub fn unsafe_assert(msg: [u8; N]) -> u8 { - let block = unsafe { - get_block(msg) - }; - verify_block(msg, block); - block[0] -} - -unconstrained fn get_block(msg: [u8; N]) -> [u8; 2] { - let mut block: [u8; 2] = [0; 2]; - block[0] = msg[0]; - block -} - -fn verify_block(msg: [u8; N], block: [u8; 2]) { - assert_eq(block[0], msg[0]); -} diff --git a/test_programs/execution_success/schnorr/Nargo.toml b/test_programs/execution_success/schnorr/Nargo.toml deleted file mode 100644 index aa24a2f3caf..00000000000 --- a/test_programs/execution_success/schnorr/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "schnorr" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/schnorr/Prover.toml b/test_programs/execution_success/schnorr/Prover.toml deleted file mode 100644 index 2faf2018e07..00000000000 --- a/test_programs/execution_success/schnorr/Prover.toml +++ /dev/null @@ -1,70 +0,0 @@ -message = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] -message_field = "0x010203040506070809" -pub_key_x = "0x04b260954662e97f00cab9adb773a259097f7a274b83b113532bce27fa3fb96a" -pub_key_y = "0x2fd51571db6c08666b0edfbfbc57d432068bccd0110a39b166ab243da0037197" -signature = [ - 1, - 13, - 119, - 112, - 212, - 39, - 233, - 41, - 84, - 235, - 255, - 93, - 245, - 172, - 186, - 83, - 157, - 253, - 76, - 77, - 33, - 128, - 178, - 15, - 214, - 67, - 105, - 107, - 177, - 234, - 77, - 48, - 27, - 237, - 155, - 84, - 39, - 84, - 247, - 27, - 22, - 8, - 176, - 230, - 24, - 115, - 145, - 220, - 254, - 122, - 135, - 179, - 171, - 4, - 214, - 202, - 64, - 199, - 19, - 84, - 239, - 138, - 124, - 12, -] diff --git a/test_programs/execution_success/schnorr/src/main.nr b/test_programs/execution_success/schnorr/src/main.nr deleted file mode 100644 index 835ea2ffb1f..00000000000 --- a/test_programs/execution_success/schnorr/src/main.nr +++ /dev/null @@ -1,28 +0,0 @@ -use std::embedded_curve_ops; - -// Note: If main has any unsized types, then the verifier will never be able -// to figure out the circuit instance -fn main( - message: [u8; 10], - message_field: Field, - pub_key_x: Field, - pub_key_y: Field, - signature: [u8; 64] -) { - // Regression for issue #2421 - // We want to make sure that we can accurately verify a signature whose message is a slice vs. an array - let message_field_bytes: [u8; 10] = message_field.to_be_bytes(); - - // Is there ever a situation where someone would want - // to ensure that a signature was invalid? - // Check that passing a slice as the message is valid - let valid_signature = std::schnorr::verify_signature_slice(pub_key_x, pub_key_y, signature, message_field_bytes); - assert(valid_signature); - // Check that passing an array as the message is valid - let valid_signature = std::schnorr::verify_signature(pub_key_x, pub_key_y, signature, message); - assert(valid_signature); - let pub_key = embedded_curve_ops::EmbeddedCurvePoint { x: pub_key_x, y: pub_key_y, is_infinite: false }; - let valid_signature = std::schnorr::verify_signature_noir(pub_key, signature, message); - assert(valid_signature); - std::schnorr::assert_valid_signature(pub_key, signature, message); -} diff --git a/test_programs/execution_success/sha256/Nargo.toml b/test_programs/execution_success/sha256/Nargo.toml deleted file mode 100644 index 255d2156ef6..00000000000 --- a/test_programs/execution_success/sha256/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "sha256" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/sha256/Prover.toml b/test_programs/execution_success/sha256/Prover.toml deleted file mode 100644 index b4bf4162370..00000000000 --- a/test_programs/execution_success/sha256/Prover.toml +++ /dev/null @@ -1,38 +0,0 @@ - -x = 0xbd -result = [ - 0x68, - 0x32, - 0x57, - 0x20, - 0xaa, - 0xbd, - 0x7c, - 0x82, - 0xf3, - 0x0f, - 0x55, - 0x4b, - 0x31, - 0x3d, - 0x05, - 0x70, - 0xc9, - 0x5a, - 0xcc, - 0xbb, - 0x7d, - 0xc4, - 0xb5, - 0xaa, - 0xe1, - 0x12, - 0x04, - 0xc0, - 0x8f, - 0xfe, - 0x73, - 0x2b, -] -input = [0, 0] -toggle = false \ No newline at end of file diff --git a/test_programs/execution_success/sha256/src/main.nr b/test_programs/execution_success/sha256/src/main.nr deleted file mode 100644 index 29bc9ac371a..00000000000 --- a/test_programs/execution_success/sha256/src/main.nr +++ /dev/null @@ -1,25 +0,0 @@ -// Sha256 example -// -// Calls Sha256 from the standard library. -// -// The Compiler sees this special function and creates an ACIR gate -// -// The ACIR SHA256 gate is passed to PLONK who should -// know how to create the necessary constraints. -// -// Not yet here: For R1CS, it is more about manipulating arithmetic gates to get performance -// This can be done in ACIR! - -fn main(x: Field, result: [u8; 32], input: [u8; 2], toggle: bool) { - // We use the `as` keyword here to denote the fact that we want to take just the first byte from the x Field - // The padding is taken care of by the program - // docs:start:sha256_var - let digest = std::hash::sha256_var([x as u8], 1); - // docs:end:sha256_var - assert(digest == result); - - // variable size - let size: Field = 1 + toggle as Field; - let var_sha = std::hash::sha256_var(input, size as u64); - assert(var_sha == std::hash::sha256_var(input, 1)); -} diff --git a/test_programs/execution_success/sha256_regression/Nargo.toml b/test_programs/execution_success/sha256_regression/Nargo.toml deleted file mode 100644 index ce98d000bcb..00000000000 --- a/test_programs/execution_success/sha256_regression/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "sha256_regression" -type = "bin" -authors = [""] -compiler_version = ">=0.33.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/sha256_regression/Prover.toml b/test_programs/execution_success/sha256_regression/Prover.toml deleted file mode 100644 index ea0a0f2e8a7..00000000000 --- a/test_programs/execution_success/sha256_regression/Prover.toml +++ /dev/null @@ -1,14 +0,0 @@ -msg_just_over_block = [102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116] -msg_multiple_of_block = [102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115, 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49, 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46, 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115, 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97, 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45, 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55, 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32, 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32, 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64, 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103, 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115, 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101, 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56, 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48, 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75, 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101, 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99] -msg_just_under_block = [102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59] -msg_big_not_block_multiple = [102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115, 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49, 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46, 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115, 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97, 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45, 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55, 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32, 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32, 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64, 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103, 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115, 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101, 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56, 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48, 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75, 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101, 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99, 116, 58, 77, 101, 115, 115, 97, 103, 101, 45, 73, 100, 58, 68, 97, 116, 101, 58, 116, 111, 59, 32, 98, 61] -msg_big_with_padding = [48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17, 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12, 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48, 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6, 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2, 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89, 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2, 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75, 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1, 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189, 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4, 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45, 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4, 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188, 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] -msg_big_no_padding = [48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17, 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12, 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48, 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6, 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2, 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89, 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2, 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75, 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1, 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189, 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4, 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45, 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4, 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188, 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38] -message_size = 297 - -# Results matched against ethers library -result_just_over_block = [91, 122, 146, 93, 52, 109, 133, 148, 171, 61, 156, 70, 189, 238, 153, 7, 222, 184, 94, 24, 65, 114, 192, 244, 207, 199, 87, 232, 192, 224, 171, 207] -result_multiple_of_block = [116, 90, 151, 31, 78, 22, 138, 180, 211, 189, 69, 76, 227, 200, 155, 29, 59, 123, 154, 60, 47, 153, 203, 129, 157, 251, 48, 2, 79, 11, 65, 47] -result_just_under_block = [143, 140, 76, 173, 222, 123, 102, 68, 70, 149, 207, 43, 39, 61, 34, 79, 216, 252, 213, 165, 74, 16, 110, 74, 29, 64, 138, 167, 30, 1, 9, 119] -result_big = [112, 144, 73, 182, 208, 98, 9, 238, 54, 229, 61, 145, 222, 17, 72, 62, 148, 222, 186, 55, 192, 82, 220, 35, 66, 47, 193, 200, 22, 38, 26, 186] -result_big_with_padding = [32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212, 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53] \ No newline at end of file diff --git a/test_programs/execution_success/sha256_regression/src/main.nr b/test_programs/execution_success/sha256_regression/src/main.nr deleted file mode 100644 index 83049640ac4..00000000000 --- a/test_programs/execution_success/sha256_regression/src/main.nr +++ /dev/null @@ -1,39 +0,0 @@ -// A bunch of different test cases for sha256_var in the stdlib -fn main( - msg_just_over_block: [u8; 68], - result_just_over_block: pub [u8; 32], - msg_multiple_of_block: [u8; 448], - result_multiple_of_block: pub [u8; 32], - // We want to make sure we are testing a message with a size >= 57 but < 64 - msg_just_under_block: [u8; 60], - result_just_under_block: pub [u8; 32], - msg_big_not_block_multiple: [u8; 472], - result_big: pub [u8; 32], - // This message is only 297 elements and we want to hash only a variable amount - msg_big_with_padding: [u8; 700], - // This is the same as `msg_big_with_padding` but with no padding - msg_big_no_padding: [u8; 297], - message_size: u64, - result_big_with_padding: pub [u8; 32] -) { - let hash = std::hash::sha256_var(msg_just_over_block, msg_just_over_block.len() as u64); - assert_eq(hash, result_just_over_block); - - let hash = std::hash::sha256_var(msg_multiple_of_block, msg_multiple_of_block.len() as u64); - assert_eq(hash, result_multiple_of_block); - - let hash = std::hash::sha256_var(msg_just_under_block, msg_just_under_block.len() as u64); - assert_eq(hash, result_just_under_block); - - let hash = std::hash::sha256_var( - msg_big_not_block_multiple, - msg_big_not_block_multiple.len() as u64 - ); - assert_eq(hash, result_big); - - let hash_padding = std::hash::sha256_var(msg_big_with_padding, message_size); - assert_eq(hash_padding, result_big_with_padding); - - let hash_no_padding = std::hash::sha256_var(msg_big_no_padding, message_size); - assert_eq(hash_no_padding, result_big_with_padding); -} diff --git a/test_programs/execution_success/sha256_var_padding_regression/Nargo.toml b/test_programs/execution_success/sha256_var_padding_regression/Nargo.toml deleted file mode 100644 index a80677c585d..00000000000 --- a/test_programs/execution_success/sha256_var_padding_regression/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "sha256_var_padding_regression" -type = "bin" -authors = [""] -compiler_version = ">=0.34.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/sha256_var_padding_regression/Prover.toml b/test_programs/execution_success/sha256_var_padding_regression/Prover.toml deleted file mode 100644 index 7b20e870128..00000000000 --- a/test_programs/execution_success/sha256_var_padding_regression/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -preimage = [29, 81, 165, 84, 243, 114, 101, 37, 242, 146, 127, 99, 69, 145, 39, 72, 213, 39, 253, 179, 218, 37, 217, 201, 172, 93, 198, 50, 249, 70, 15, 30, 162, 112, 187, 40, 140, 9, 236, 53, 32, 44, 38, 163, 113, 254, 192, 197, 44, 89, 71, 130, 169, 242, 17, 211, 214, 72, 19, 178, 186, 168, 147, 127, 99, 101, 252, 227, 8, 147, 150, 85, 97, 158, 17, 107, 218, 244, 82, 113, 247, 91, 208, 214, 60, 244, 87, 137, 173, 201, 130, 18, 66, 56, 198, 149, 207, 189, 175, 120, 123, 224, 177, 167, 251, 159, 143, 110, 68, 183, 189, 70, 126, 32, 35, 164, 44, 30, 44, 12, 65, 18, 62, 239, 242, 2, 248, 104, 2, 178, 64, 28, 126, 36, 137, 24, 14, 116, 91, 98, 90, 159, 218, 102, 45, 11, 110, 223, 245, 184, 52, 99, 59, 245, 136, 175, 3, 72, 164, 146, 145, 116, 22, 66, 24, 49, 193, 121, 3, 60, 37, 41, 97, 3, 190, 66, 195, 225, 63, 46, 3, 118, 4, 208, 15, 1, 40, 254, 235, 151, 123, 70, 180, 170, 44, 172, 90, 4, 254, 53, 239, 116, 246, 67, 56, 129, 61, 22, 169, 213, 65, 27, 216, 116, 162, 239, 214, 207, 126, 177, 20, 100, 25, 48, 143, 84, 215, 70, 197, 53, 65, 70, 86, 172, 61, 62, 9, 212, 167, 169, 133, 41, 126, 213, 196, 33, 192, 238, 0, 63, 246, 215, 58, 128, 110, 101, 92, 3, 170, 214, 130, 149, 52, 81, 125, 118, 233, 3, 118, 193, 104, 207, 120, 115, 77, 253, 191, 122, 0, 107, 164, 207, 113, 81, 169, 36, 201, 228, 74, 134, 131, 218, 178, 35, 30, 216, 101, 2, 103, 174, 87, 95, 50, 50, 215, 157, 5, 210, 188, 54, 211, 78, 45, 199, 96, 121, 241, 241, 176, 226, 194, 134, 130, 89, 217, 210, 186, 32, 140, 39, 91, 103, 212, 26, 87, 32, 72, 144, 228, 230, 117, 99, 188, 50, 15, 69, 79, 179, 50, 12, 106, 86, 218, 101, 73, 142, 243, 29, 250, 122, 228, 233, 29, 255, 22, 121, 114, 125, 103, 41, 250, 241, 179, 126, 158, 198, 116, 209, 65, 94, 98, 228, 175, 169, 96, 3, 9, 233, 133, 214, 55, 161, 164, 103, 80, 85, 24, 186, 64, 167, 92, 131, 53, 101, 202, 47, 25, 104, 118, 155, 14, 12, 12, 25, 116, 45, 221, 249, 28, 246, 212, 200, 157, 167, 169, 56, 197, 181, 4, 245, 146, 1, 140, 234, 191, 212, 228, 125, 87, 81, 86, 119, 30, 63, 129, 143, 32, 96] -result = [205, 74, 73, 134, 202, 93, 199, 152, 171, 244, 133, 193, 132, 40, 42, 9, 248, 11, 99, 200, 135, 58, 220, 227, 45, 253, 183, 241, 69, 69, 80, 219] \ No newline at end of file diff --git a/test_programs/execution_success/sha256_var_padding_regression/src/main.nr b/test_programs/execution_success/sha256_var_padding_regression/src/main.nr deleted file mode 100644 index 13f87a0efc5..00000000000 --- a/test_programs/execution_success/sha256_var_padding_regression/src/main.nr +++ /dev/null @@ -1,29 +0,0 @@ -// Test to check sha256_var produces same results irrespective of number of padding bytes after message.length -// Ref: https://github.com/noir-lang/noir/issues/6163, https://gist.github.com/jp4g/d5953faae9eadb2909357474f7901e58 -fn main(preimage: [u8; 448], result: [u8; 32]) { - // Construct arrays of different lengths - let mut preimage_511 = [0; 511]; - let mut preimage_512 = [0; 512]; // Next block - let mut preimage_575 = [0; 575]; - let mut preimage_576 = [0; 576]; // Next block - for i in 0..preimage.len() { - preimage_511[i] = preimage[i]; - preimage_512[i] = preimage[i]; - preimage_575[i] = preimage[i]; - preimage_576[i] = preimage[i]; - } - let fixed_length_hash = std::hash::sha256::digest(preimage); - let var_full_length_hash = std::hash::sha256::sha256_var(preimage, preimage.len() as u64); - let var_length_hash_511 = std::hash::sha256::sha256_var(preimage_511, preimage.len() as u64); - let var_length_hash_512 = std::hash::sha256::sha256_var(preimage_512, preimage.len() as u64); - let var_length_hash_575 = std::hash::sha256::sha256_var(preimage_575, preimage.len() as u64); - let var_length_hash_576 = std::hash::sha256::sha256_var(preimage_576, preimage.len() as u64); - - // All of the above should have produced the same hash (result) - assert(fixed_length_hash == result); - assert(var_full_length_hash == result); - assert(var_length_hash_511 == result); - assert(var_length_hash_512 == result); - assert(var_length_hash_575 == result); - assert(var_length_hash_576 == result); -} diff --git a/test_programs/execution_success/sha256_var_size_regression/Nargo.toml b/test_programs/execution_success/sha256_var_size_regression/Nargo.toml deleted file mode 100644 index 3e141ee5d5f..00000000000 --- a/test_programs/execution_success/sha256_var_size_regression/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "sha256_var_size_regression" -type = "bin" -authors = [""] -compiler_version = ">=0.33.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/sha256_var_size_regression/Prover.toml b/test_programs/execution_success/sha256_var_size_regression/Prover.toml deleted file mode 100644 index df632a42858..00000000000 --- a/test_programs/execution_success/sha256_var_size_regression/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -enable = [true, false] -foo = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] -toggle = false diff --git a/test_programs/execution_success/sha256_var_size_regression/src/main.nr b/test_programs/execution_success/sha256_var_size_regression/src/main.nr deleted file mode 100644 index de1c2b23c5f..00000000000 --- a/test_programs/execution_success/sha256_var_size_regression/src/main.nr +++ /dev/null @@ -1,17 +0,0 @@ -global NUM_HASHES = 2; - -fn main(foo: [u8; 95], toggle: bool, enable: [bool; NUM_HASHES]) { - let mut result = [[0; 32]; NUM_HASHES]; - let mut const_result = [[0; 32]; NUM_HASHES]; - let size: Field = 93 + toggle as Field * 2; - for i in 0..NUM_HASHES { - if enable[i] { - result[i] = std::sha256::sha256_var(foo, size as u64); - const_result[i] = std::sha256::sha256_var(foo, 93); - } - } - - for i in 0..NUM_HASHES { - assert_eq(result[i], const_result[i]); - } -} diff --git a/test_programs/execution_success/sha256_var_witness_const_regression/Nargo.toml b/test_programs/execution_success/sha256_var_witness_const_regression/Nargo.toml deleted file mode 100644 index e8f3e6bbe64..00000000000 --- a/test_programs/execution_success/sha256_var_witness_const_regression/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "sha256_var_witness_const_regression" -type = "bin" -authors = [""] -compiler_version = ">=0.33.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/sha256_var_witness_const_regression/Prover.toml b/test_programs/execution_success/sha256_var_witness_const_regression/Prover.toml deleted file mode 100644 index 7b91051c1a0..00000000000 --- a/test_programs/execution_success/sha256_var_witness_const_regression/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -input = [0, 0] -toggle = false \ No newline at end of file diff --git a/test_programs/execution_success/sha256_var_witness_const_regression/src/main.nr b/test_programs/execution_success/sha256_var_witness_const_regression/src/main.nr deleted file mode 100644 index 97c4435d41d..00000000000 --- a/test_programs/execution_success/sha256_var_witness_const_regression/src/main.nr +++ /dev/null @@ -1,9 +0,0 @@ -fn main(input: [u8; 2], toggle: bool) { - let size: Field = 1 + toggle as Field; - assert(!toggle); - - let variable_sha = std::sha256::sha256_var(input, size as u64); - let constant_sha = std::sha256::sha256_var(input, 1); - - assert_eq(variable_sha, constant_sha); -} diff --git a/test_programs/execution_success/sha2_byte/Nargo.toml b/test_programs/execution_success/sha2_byte/Nargo.toml deleted file mode 100644 index efd691fce58..00000000000 --- a/test_programs/execution_success/sha2_byte/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "sha2_byte" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/sha2_byte/Prover.toml b/test_programs/execution_success/sha2_byte/Prover.toml deleted file mode 100644 index 2f82f14a58d..00000000000 --- a/test_programs/execution_success/sha2_byte/Prover.toml +++ /dev/null @@ -1,5 +0,0 @@ -# Values obtainable from https://emn178.github.io/online-tools/sha256.html and https://emn178.github.io/online-tools/sha512.html -x = 0xbd -result256 = [0x68, 0x32, 0x57, 0x20, 0xaa, 0xbd, 0x7c, 0x82, 0xf3, 0x0f, 0x55, 0x4b, 0x31, 0x3d, 0x05, 0x70, 0xc9, 0x5a, 0xcc, 0xbb, 0x7d, 0xc4, 0xb5, 0xaa, 0xe1, 0x12, 0x04, 0xc0, 0x8f, 0xfe, 0x73, 0x2b] -result512 = [0x29, 0x6e, 0x22, 0x67, 0xd7, 0x4c, 0x27, 0x8d, 0xaa, 0xaa, 0x94, 0x0d, 0x17, 0xb0, 0xcf, 0xb7, 0x4a, 0x50, 0x83, 0xf8, 0xe0, 0x69, 0x72, 0x6d, 0x8c, 0x84, 0x1c, 0xbe, 0x59, 0x6e, 0x04, 0x31, 0xcb, 0x77, 0x41, 0xa5, 0xb5, 0x0f, 0x71, 0x66, 0x6c, 0xfd, 0x54, 0xba, 0xcb, 0x7b, 0x00, 0xae, 0xa8, 0x91, 0x49, 0x9c, 0xf4, 0xef, 0x6a, 0x03, 0xc8, 0xa8, 0x3f, 0xe3, 0x7c, 0x3f, 0x7b, 0xaf] - diff --git a/test_programs/execution_success/sha2_byte/src/main.nr b/test_programs/execution_success/sha2_byte/src/main.nr deleted file mode 100644 index aecd9fba2f3..00000000000 --- a/test_programs/execution_success/sha2_byte/src/main.nr +++ /dev/null @@ -1,9 +0,0 @@ -// Test Noir implementations of SHA256 and SHA512 on a one-byte message. - -fn main(x: Field, result256: [u8; 32], result512: [u8; 64]) { - let digest256 = std::sha256::digest([x as u8]); - assert(digest256 == result256); - - let digest512 = std::sha512::digest([x as u8]); - assert(digest512 == result512); -} diff --git a/test_programs/execution_success/side_effects_constrain_array/Nargo.toml b/test_programs/execution_success/side_effects_constrain_array/Nargo.toml deleted file mode 100644 index fc817f0921f..00000000000 --- a/test_programs/execution_success/side_effects_constrain_array/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "side_effects_constrain_array" -type = "bin" -authors = [""] -compiler_version = ">=0.20.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/side_effects_constrain_array/Prover.toml b/test_programs/execution_success/side_effects_constrain_array/Prover.toml deleted file mode 100644 index 7127baac5bf..00000000000 --- a/test_programs/execution_success/side_effects_constrain_array/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -y = "3" diff --git a/test_programs/execution_success/side_effects_constrain_array/src/main.nr b/test_programs/execution_success/side_effects_constrain_array/src/main.nr deleted file mode 100644 index c4a62603bc3..00000000000 --- a/test_programs/execution_success/side_effects_constrain_array/src/main.nr +++ /dev/null @@ -1,17 +0,0 @@ -struct Bar { - inner: [Field; 3], -} - -fn main(y: pub u32) { - let bar = Bar { inner: [100, 101, 102] }; - - // The assert inside the if should be hit - if y < 10 { - assert(bar.inner == [100, 101, 102]); - } - - // The assert inside the if should not be hit - if y > 10 { - assert(bar.inner == [0, 1, 2]); - } -} diff --git a/test_programs/execution_success/signed_arithmetic/Nargo.toml b/test_programs/execution_success/signed_arithmetic/Nargo.toml deleted file mode 100644 index 47676a806e8..00000000000 --- a/test_programs/execution_success/signed_arithmetic/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "signed_arithmetic" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/signed_arithmetic/Prover.toml b/test_programs/execution_success/signed_arithmetic/Prover.toml deleted file mode 100644 index e0e584b7380..00000000000 --- a/test_programs/execution_success/signed_arithmetic/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "5" -y = "8" -z = "-15" diff --git a/test_programs/execution_success/signed_arithmetic/src/main.nr b/test_programs/execution_success/signed_arithmetic/src/main.nr deleted file mode 100644 index 7a997d177ba..00000000000 --- a/test_programs/execution_success/signed_arithmetic/src/main.nr +++ /dev/null @@ -1,32 +0,0 @@ -fn main(mut x: i32, mut y: i32, z: i32) { - let mut s1: i8 = 5; - let mut s2: i8 = 8; - assert(s1 + s2 == 13); - assert(x + y == 13); - - s2= -8; - y = -y; - assert(s1 + s2 == -3); - assert(x + y == -3); - - s1 = -15; - assert(s1 - s2 == -7); - assert(z - y == -7); - - s1 = -5; - s2 = 8; - x = -x; - y = -y; - assert(s1 - s2 == -13); - assert(x - y == -13); - - s2 = -8; - y = -y; - assert(s1 * s2 == 40); - assert(x * y == 40); - - s1 = 1; - s2 = -8; - assert(s1 * s2 == -8); - assert(x / x * y == -8); -} diff --git a/test_programs/execution_success/signed_cmp/Nargo.toml b/test_programs/execution_success/signed_cmp/Nargo.toml deleted file mode 100644 index 642a0924678..00000000000 --- a/test_programs/execution_success/signed_cmp/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "signed_cmp" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/signed_cmp/Prover.toml b/test_programs/execution_success/signed_cmp/Prover.toml deleted file mode 100644 index 4b719f83c16..00000000000 --- a/test_programs/execution_success/signed_cmp/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -minus_one = 255 diff --git a/test_programs/execution_success/signed_cmp/src/main.nr b/test_programs/execution_success/signed_cmp/src/main.nr deleted file mode 100644 index 85746ada8f4..00000000000 --- a/test_programs/execution_success/signed_cmp/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -fn main(minus_one: i8) { - assert(minus_one < 0); - assert(0 < minus_one as u8); - assert(0 > minus_one); - let most_negative_number = minus_one * 127 - 1; - assert(most_negative_number < 0); - assert(127 > most_negative_number); -} diff --git a/test_programs/execution_success/signed_comparison/Nargo.toml b/test_programs/execution_success/signed_comparison/Nargo.toml deleted file mode 100644 index c8de162877b..00000000000 --- a/test_programs/execution_success/signed_comparison/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "signed_comparison" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/signed_comparison/Prover.toml b/test_programs/execution_success/signed_comparison/Prover.toml deleted file mode 100644 index e0e584b7380..00000000000 --- a/test_programs/execution_success/signed_comparison/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "5" -y = "8" -z = "-15" diff --git a/test_programs/execution_success/signed_comparison/src/main.nr b/test_programs/execution_success/signed_comparison/src/main.nr deleted file mode 100644 index 0fe72112f5a..00000000000 --- a/test_programs/execution_success/signed_comparison/src/main.nr +++ /dev/null @@ -1,11 +0,0 @@ -fn main(mut x: i8, mut y: i8, z: i8) { - let mut s1: i8 = 5; - let mut s2: i8 = 8; - assert(-1 as i8 < 0); - assert(x < y); - assert(-x < y); - assert(-y < -x); - assert((z > x) == false); - assert(x <= s1); - assert(z < x - y - s2); -} diff --git a/test_programs/execution_success/signed_div/Nargo.toml b/test_programs/execution_success/signed_div/Nargo.toml deleted file mode 100644 index 5ce137d8c0c..00000000000 --- a/test_programs/execution_success/signed_div/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "signed_div" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/signed_div/Prover.toml b/test_programs/execution_success/signed_div/Prover.toml deleted file mode 100644 index be93fec5cc3..00000000000 --- a/test_programs/execution_success/signed_div/Prover.toml +++ /dev/null @@ -1,75 +0,0 @@ -[[ops]] -lhs = 4 -rhs = 255 # -1 -result = 252 # -4 - -[[ops]] -lhs = 4 -rhs = 254 # -2 -result = 254 # -2 - -[[ops]] -lhs = 4 -rhs = 253 # -3 -result = 255 # -1 - -[[ops]] -lhs = 4 -rhs = 252 # -4 -result = 255 # -1 - -[[ops]] -lhs = 4 -rhs = 251 # -5 -result = 0 - -[[ops]] -lhs = 252 # -4 -rhs = 255 # -1 -result = 4 - -[[ops]] -lhs = 252 # -4 -rhs = 254 # -2 -result = 2 - -[[ops]] -lhs = 252 # -4 -rhs = 253 # -3 -result = 1 - -[[ops]] -lhs = 252 # -4 -rhs = 252 # -4 -result = 1 - -[[ops]] -lhs = 252 # -4 -rhs = 251 # -5 -result = 0 - - -[[ops]] -lhs = 4 -rhs = 1 -result = 4 - -[[ops]] -lhs = 4 -rhs = 2 -result = 2 - -[[ops]] -lhs = 4 -rhs = 3 -result = 1 - -[[ops]] -lhs = 4 -rhs = 4 -result = 1 - -[[ops]] -lhs = 4 -rhs = 5 -result = 0 diff --git a/test_programs/execution_success/signed_div/src/main.nr b/test_programs/execution_success/signed_div/src/main.nr deleted file mode 100644 index 04383a459bd..00000000000 --- a/test_programs/execution_success/signed_div/src/main.nr +++ /dev/null @@ -1,11 +0,0 @@ -struct SignedDivOp { - lhs: i8, - rhs: i8, - result: i8, -} - -fn main(ops: [SignedDivOp; 15]) { - for i in 0..15 { - assert_eq(ops[i].lhs / ops[i].rhs, ops[i].result); - } -} diff --git a/test_programs/execution_success/signed_division/Nargo.toml b/test_programs/execution_success/signed_division/Nargo.toml deleted file mode 100644 index 0d631a00b05..00000000000 --- a/test_programs/execution_success/signed_division/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "signed_division" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/signed_division/Prover.toml b/test_programs/execution_success/signed_division/Prover.toml deleted file mode 100644 index ee6f0ef229a..00000000000 --- a/test_programs/execution_success/signed_division/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "7" -y = "3" -z = "2" \ No newline at end of file diff --git a/test_programs/execution_success/signed_division/src/main.nr b/test_programs/execution_success/signed_division/src/main.nr deleted file mode 100644 index 207ef59986b..00000000000 --- a/test_programs/execution_success/signed_division/src/main.nr +++ /dev/null @@ -1,20 +0,0 @@ -// Testing signed integer division: -// 7/3 = 2 -// -7/3 = -2 -// -7/-3 = 2 -// 7/-3 = -2 -fn main(mut x: i32, mut y: i32, mut z: i32) { - // 7/3 = 2 - assert(x / y == z); - // -7/3 = -2 - let minus_x = std::wrapping_sub(0, x); - let minus_z = std::wrapping_sub(0, z); - let minus_y = std::wrapping_sub(0, y); - assert(x + minus_x == 0); - assert(z + minus_z == 0); - assert(minus_x / y == minus_z); - // -7/-3 = 2 - assert(minus_x / minus_y == z); - // 7/-3 = -2 - assert(x / minus_y == minus_z); -} diff --git a/test_programs/execution_success/simple_2d_array/Nargo.toml b/test_programs/execution_success/simple_2d_array/Nargo.toml deleted file mode 100644 index b6d22d82631..00000000000 --- a/test_programs/execution_success/simple_2d_array/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "simple_2d_array" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/simple_2d_array/Prover.toml b/test_programs/execution_success/simple_2d_array/Prover.toml deleted file mode 100644 index a4616f907bb..00000000000 --- a/test_programs/execution_success/simple_2d_array/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -x = "1" -y = "2" -array_input = [[1, 2], [3, 3]] diff --git a/test_programs/execution_success/simple_2d_array/src/main.nr b/test_programs/execution_success/simple_2d_array/src/main.nr deleted file mode 100644 index 2ecdd4bc15f..00000000000 --- a/test_programs/execution_success/simple_2d_array/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -// Test accessing a multidimensional array -fn main(x: Field, y: Field, array_input: [[Field; 2]; 2]) { - assert(array_input[0][0] == x); - assert(array_input[0][1] == y); - - let arr: [[Field; 2]; 1] = [[3, 3]]; - assert_eq(arr[0], array_input[1]); -} diff --git a/test_programs/execution_success/simple_add_and_ret_arr/Nargo.toml b/test_programs/execution_success/simple_add_and_ret_arr/Nargo.toml deleted file mode 100644 index 6c5b0e4ca9a..00000000000 --- a/test_programs/execution_success/simple_add_and_ret_arr/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "simple_add_and_ret_arr" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/simple_add_and_ret_arr/Prover.toml b/test_programs/execution_success/simple_add_and_ret_arr/Prover.toml deleted file mode 100644 index 3d2b4b14efe..00000000000 --- a/test_programs/execution_success/simple_add_and_ret_arr/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = 1 \ No newline at end of file diff --git a/test_programs/execution_success/simple_add_and_ret_arr/src/main.nr b/test_programs/execution_success/simple_add_and_ret_arr/src/main.nr deleted file mode 100644 index 016c4fedf40..00000000000 --- a/test_programs/execution_success/simple_add_and_ret_arr/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -// A simple program to test that SSA array values elements -// aren't disconnected from their instruction results, and -// that dead instruction elemination looks inside of arrays -// when deciding whether of not an instruction should be -// retained. -fn main(x: Field) -> pub [Field; 1] { - [x + 1] -} diff --git a/test_programs/execution_success/simple_array_param/Nargo.toml b/test_programs/execution_success/simple_array_param/Nargo.toml deleted file mode 100644 index 4f1811cc669..00000000000 --- a/test_programs/execution_success/simple_array_param/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "simple_array_param" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/simple_array_param/Prover.toml b/test_programs/execution_success/simple_array_param/Prover.toml deleted file mode 100644 index 66f0b9ccc1c..00000000000 --- a/test_programs/execution_success/simple_array_param/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -xs = [0, 1] diff --git a/test_programs/execution_success/simple_array_param/src/main.nr b/test_programs/execution_success/simple_array_param/src/main.nr deleted file mode 100644 index 6dd7c34dab5..00000000000 --- a/test_programs/execution_success/simple_array_param/src/main.nr +++ /dev/null @@ -1,6 +0,0 @@ -// This program tests: -// - the allocation of virtual arrays for array params to main -// - load instructions for such arrays -fn main(xs: [Field; 2]) -> pub Field { - xs[1] -} diff --git a/test_programs/execution_success/simple_bitwise/Nargo.toml b/test_programs/execution_success/simple_bitwise/Nargo.toml deleted file mode 100644 index be425f22e5c..00000000000 --- a/test_programs/execution_success/simple_bitwise/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "simple_bitwise" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/simple_bitwise/Prover.toml b/test_programs/execution_success/simple_bitwise/Prover.toml deleted file mode 100644 index aa3715f9b3d..00000000000 --- a/test_programs/execution_success/simple_bitwise/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -a = 1 -b = 0 -c = "10" -d = "11" diff --git a/test_programs/execution_success/simple_bitwise/src/main.nr b/test_programs/execution_success/simple_bitwise/src/main.nr deleted file mode 100644 index 9ab738ae04d..00000000000 --- a/test_programs/execution_success/simple_bitwise/src/main.nr +++ /dev/null @@ -1,9 +0,0 @@ -fn main(a: bool, b: bool, c: u8, d: u8) -> pub u8 { - let i = a & b; - let j = a ^ b; - let k = a | b; - let x = c & d; - let y = c ^ d; - let z = c | d; - (i as u8) + (j as u8) + (k as u8) + x + y + z -} diff --git a/test_programs/execution_success/simple_comparison/Nargo.toml b/test_programs/execution_success/simple_comparison/Nargo.toml deleted file mode 100644 index 06685628444..00000000000 --- a/test_programs/execution_success/simple_comparison/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "simple_comparison" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/simple_comparison/Prover.toml b/test_programs/execution_success/simple_comparison/Prover.toml deleted file mode 100644 index ed94d313315..00000000000 --- a/test_programs/execution_success/simple_comparison/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "3" -y = "4" diff --git a/test_programs/execution_success/simple_comparison/src/main.nr b/test_programs/execution_success/simple_comparison/src/main.nr deleted file mode 100644 index 05800440459..00000000000 --- a/test_programs/execution_success/simple_comparison/src/main.nr +++ /dev/null @@ -1,6 +0,0 @@ -// Tests a very simple program. -// -// The features being tested is comparison -fn main(x: Field, y: Field) { - assert(x as u32 < y as u32); -} diff --git a/test_programs/execution_success/simple_mut/Nargo.toml b/test_programs/execution_success/simple_mut/Nargo.toml deleted file mode 100644 index c00e60bdbc0..00000000000 --- a/test_programs/execution_success/simple_mut/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "simple_mut" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/simple_mut/Prover.toml b/test_programs/execution_success/simple_mut/Prover.toml deleted file mode 100644 index 7d4290a117a..00000000000 --- a/test_programs/execution_success/simple_mut/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = 1 diff --git a/test_programs/execution_success/simple_mut/src/main.nr b/test_programs/execution_success/simple_mut/src/main.nr deleted file mode 100644 index d0715dbafe0..00000000000 --- a/test_programs/execution_success/simple_mut/src/main.nr +++ /dev/null @@ -1,6 +0,0 @@ -// A simple program to test mutable variables -fn main(x: Field) -> pub Field { - let mut y = 2; - y += x; - y -} diff --git a/test_programs/execution_success/simple_not/Nargo.toml b/test_programs/execution_success/simple_not/Nargo.toml deleted file mode 100644 index 52c86b36efb..00000000000 --- a/test_programs/execution_success/simple_not/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "simple_not" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/simple_not/Prover.toml b/test_programs/execution_success/simple_not/Prover.toml deleted file mode 100644 index b3accc9dd32..00000000000 --- a/test_programs/execution_success/simple_not/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = false \ No newline at end of file diff --git a/test_programs/execution_success/simple_not/src/main.nr b/test_programs/execution_success/simple_not/src/main.nr deleted file mode 100644 index ba172625fe4..00000000000 --- a/test_programs/execution_success/simple_not/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ -// A simple program for testing the NOT op -fn main(x: bool) -> pub bool { - !x -} diff --git a/test_programs/execution_success/simple_print/Nargo.toml b/test_programs/execution_success/simple_print/Nargo.toml deleted file mode 100644 index cd8422ac482..00000000000 --- a/test_programs/execution_success/simple_print/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "simple_print" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/simple_print/Prover.toml b/test_programs/execution_success/simple_print/Prover.toml deleted file mode 100644 index 2c1854573a4..00000000000 --- a/test_programs/execution_success/simple_print/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = 1 -y = 2 diff --git a/test_programs/execution_success/simple_print/src/main.nr b/test_programs/execution_success/simple_print/src/main.nr deleted file mode 100644 index 3a68f8cc4c3..00000000000 --- a/test_programs/execution_success/simple_print/src/main.nr +++ /dev/null @@ -1,7 +0,0 @@ -// Simple program for testing the logging -// of single witnesses and witness arrays. - -fn main(x: Field, y: pub Field) { - std::println(x); - std::println([x, y]); -} diff --git a/test_programs/execution_success/simple_program_addition/Nargo.toml b/test_programs/execution_success/simple_program_addition/Nargo.toml deleted file mode 100644 index 28967a28a55..00000000000 --- a/test_programs/execution_success/simple_program_addition/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "simple_program_addition" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/simple_program_addition/Prover.toml b/test_programs/execution_success/simple_program_addition/Prover.toml deleted file mode 100644 index 07890234a19..00000000000 --- a/test_programs/execution_success/simple_program_addition/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "3" diff --git a/test_programs/execution_success/simple_program_addition/src/main.nr b/test_programs/execution_success/simple_program_addition/src/main.nr deleted file mode 100644 index 0390d79e83b..00000000000 --- a/test_programs/execution_success/simple_program_addition/src/main.nr +++ /dev/null @@ -1,5 +0,0 @@ -// The feature being tested is handling of -// a binary operation. -fn main(x: Field) -> pub Field { - x + 1 -} diff --git a/test_programs/execution_success/simple_radix/Nargo.toml b/test_programs/execution_success/simple_radix/Nargo.toml deleted file mode 100644 index 12cbc8da1d3..00000000000 --- a/test_programs/execution_success/simple_radix/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "simple_radix" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/simple_radix/Prover.toml b/test_programs/execution_success/simple_radix/Prover.toml deleted file mode 100644 index 1ddfb7dc8e4..00000000000 --- a/test_programs/execution_success/simple_radix/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = 2 \ No newline at end of file diff --git a/test_programs/execution_success/simple_radix/src/main.nr b/test_programs/execution_success/simple_radix/src/main.nr deleted file mode 100644 index b905d2e533e..00000000000 --- a/test_programs/execution_success/simple_radix/src/main.nr +++ /dev/null @@ -1,7 +0,0 @@ -// Simple program to test to_radix -fn main(x: Field) { - let bits: [u1; 3] = x.to_le_bits(); - assert(bits[0] == 0); - assert(bits[1] == 1); - assert(bits[2] == 0); -} diff --git a/test_programs/execution_success/simple_shield/Nargo.toml b/test_programs/execution_success/simple_shield/Nargo.toml deleted file mode 100644 index 7e9579b0af4..00000000000 --- a/test_programs/execution_success/simple_shield/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "simple_shield" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/simple_shield/Prover.toml b/test_programs/execution_success/simple_shield/Prover.toml deleted file mode 100644 index 7878e4b8281..00000000000 --- a/test_programs/execution_success/simple_shield/Prover.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Random test key -priv_key = "0x000000000000000000000000000000000000000000000000000000616c696365" -note_root = "0x02278fc806225cd696bd502049f7bb98624536de56d09343f8a26ac1876b23a0" -index = "0" -note_hash_path = [ - "0x1cdcf02431ba623767fe389337d011df1048dcc24b98ed81cec97627bab454a0", - "0x0b5e9666e7323ce925c28201a97ddf4144ac9d148448ed6f49f9008719c1b85b", - "0x22ec636f8ad30ef78c42b7fe2be4a4cacf5a445cfb5948224539f59a11d70775", -] -to_pubkey_x = "0x0000000000000000000000000000000000000000000000000000000000000001" -to_pubkey_y = "0x0000000000000002cf135e7506a45d632d270d45f1181294833fc48d823f272c" diff --git a/test_programs/execution_success/simple_shield/src/main.nr b/test_programs/execution_success/simple_shield/src/main.nr deleted file mode 100644 index fd2fc20d08f..00000000000 --- a/test_programs/execution_success/simple_shield/src/main.nr +++ /dev/null @@ -1,26 +0,0 @@ -fn main( - // Public key of note - // all notes have the same denomination - priv_key: Field, - // Merkle membership proof - note_root: pub Field, - index: Field, - note_hash_path: [Field; 3], - // Receiver public key - to_pubkey_x: Field, - to_pubkey_y: Field -) -> pub [Field; 2] { - let priv_key_as_scalar = std::embedded_curve_ops::EmbeddedCurveScalar { lo: priv_key, hi: 0 }; - // Compute public key from private key to show ownership - let pubkey = std::embedded_curve_ops::fixed_base_scalar_mul(priv_key_as_scalar); - // Compute input note commitment - let note_commitment = std::hash::pedersen_commitment([pubkey.x, pubkey.y]); - // Compute input note nullifier - let nullifier = std::hash::pedersen_commitment([note_commitment.x, index, priv_key]); - // Compute output note nullifier - let receiver_note_commitment = std::hash::pedersen_commitment([to_pubkey_x, to_pubkey_y]); - // Check that the input note nullifier is in the root - assert(note_root == std::merkle::compute_merkle_root(note_commitment.x, index, note_hash_path)); - - [nullifier.x, receiver_note_commitment.x] -} diff --git a/test_programs/execution_success/simple_shift_left_right/Nargo.toml b/test_programs/execution_success/simple_shift_left_right/Nargo.toml deleted file mode 100644 index 2e75d5feada..00000000000 --- a/test_programs/execution_success/simple_shift_left_right/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "simple_shift_left_right" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/simple_shift_left_right/Prover.toml b/test_programs/execution_success/simple_shift_left_right/Prover.toml deleted file mode 100644 index 07890234a19..00000000000 --- a/test_programs/execution_success/simple_shift_left_right/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "3" diff --git a/test_programs/execution_success/simple_shift_left_right/src/main.nr b/test_programs/execution_success/simple_shift_left_right/src/main.nr deleted file mode 100644 index 40698af6ce7..00000000000 --- a/test_programs/execution_success/simple_shift_left_right/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -// Tests a very simple program. -// -// The features being tested are left and right shifts. -fn main(x: u32) { - let z = x >> 4; - let t = x << 4; - assert(z == t >> 8); -} diff --git a/test_programs/execution_success/single_verify_proof/Nargo.toml b/test_programs/execution_success/single_verify_proof/Nargo.toml deleted file mode 100644 index 9dfbbcb9c1d..00000000000 --- a/test_programs/execution_success/single_verify_proof/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "single_verify_proof" -type = "bin" -authors = [""] -compiler_version = ">=0.24.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/single_verify_proof/Prover.toml b/test_programs/execution_success/single_verify_proof/Prover.toml deleted file mode 100644 index 27b3ebc0c35..00000000000 --- a/test_programs/execution_success/single_verify_proof/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -key_hash = "0x096129b1c6e108252fc5c829c4cc9b7e8f0d1fd9f29c2532b563d6396645e08f" -proof = ["0x000000000000000000000000000000d62b795bec274279129a71195796825fcc","0x00000000000000000000000000000000000793ab763140f20a68a6bd2721fd74","0x00000000000000000000000000000053141d06d3307b36153f321511199e579c","0x00000000000000000000000000000000000a4b55d6c21f98a9c434911dcb5c67","0x0000000000000000000000000000005f9d324c0abd22cec92d99dbec438e9491","0x0000000000000000000000000000000000240dfafe1b53dc27147cbab14ea893","0x000000000000000000000000000000044a61d3aac32c6931247cf334a19d9611","0x000000000000000000000000000000000003f0f8cf4207bfa85c23ec9f8d0c88","0x00000000000000000000000000000002168a470e39ba2ac266f6b474de12045f","0x000000000000000000000000000000000025791e7d3feab542345c00ec5a30df","0x000000000000000000000000000000dcafd76d4c3640969c80e017b951ef6397","0x00000000000000000000000000000000001d27f75a1256771e88e0c86fc42dbc","0x0000000000000000000000000000007347ae7d2d9d7fc2b8f0baa014ee1fed9f","0x000000000000000000000000000000000018bd927f42bf7caf9555f56f09000d","0x000000000000000000000000000000041f765f83cbe5904c8f453f70a4531d10","0x00000000000000000000000000000000001858aabeeb5331a221419f4fed1c19","0x000000000000000000000000000000d254a54caaedf8287b9af951b2f2611121","0x000000000000000000000000000000000005ab493623c9563cf2e55ba5f18200","0x00000000000000000000000000000014f24cddc1a02440dc63637df8032c8074","0x000000000000000000000000000000000011950c16cef98471b1d78b935195a4","0x000000000000000000000000000000b0340b459e6bd5cc8f031c8654a502897f","0x00000000000000000000000000000000000e1cf3968dac4545a76a2ae58e512c","0x0000000000000000000000000000002adf7218aa06ca0d2c2e600dcc39193a2d","0x00000000000000000000000000000000001302e7e4b0f14749bd885ca25588b6","0x00000000000000000000000000000092009ce4056e79ab815d8cdfd4491138ae","0x000000000000000000000000000000000018af11e853c6cf2f0f6274b0da8133","0x000000000000000000000000000000dd3dc6f49232141718527b3a0e4b26e21d","0x00000000000000000000000000000000001a877853348a8b695c4f9a9aa4ce68","0x000000000000000000000000000000aecfc56ba07155450b368140d6324023b5","0x000000000000000000000000000000000029c11052798c57ece614617d33fcc2","0x000000000000000000000000000000eb106ffc816d16fb84e84b0b61157b2603","0x000000000000000000000000000000000026c3cac16206899a21cb5126841446","0x000000000000000000000000000000a782ed54805fe845068b362b58e2fa34ec","0x00000000000000000000000000000000000cf046a1bfcc666b7f28b572676073","0x000000000000000000000000000000b931c8dda60bb4aca4cc817f5540f1209f","0x000000000000000000000000000000000024ad50c3936fafc3d190e6a4874223","0x000000000000000000000000000000cce90cfbaf5671c8c8652db28a3a9566f7","0x000000000000000000000000000000000003574db9d0f84380c9635660f86354","0x0000000000000000000000000000003eb3e1dc31846a90f721e7a08c6d6dc4f7","0x000000000000000000000000000000000028999a700cd1abae1a288eebb9a91c","0x000000000000000000000000000000c1be4d385b11387e14eb9817050d772f78","0x000000000000000000000000000000000003c56b5bad8b4484c66ac921f1f102","0x000000000000000000000000000000ace245cabf0f00dc7fd253dd8af0377a14","0x0000000000000000000000000000000000107f1731fcf34b364c813599fa1df7","0x035b937d404932b542b706eb810ef4a7dca4566d4dde1ad6a8717f46167ead7e","0x17608cef3dc7960f41cb1295706df663727d45ee598a61e05e989d111449fb65","0x054712a950ad67da3aa860e49e6891f99b586b7f37caff94eb013fdb374b61ee","0x04b755083086c769b7f593e0e48d68dc54be808203351380ca5566a48149d8bb","0x17d7670b0915235f626fdc1d7e1134d2be906ef138d7843384b3ebc23b1d630f","0x064cf544ab5f4e3dab47960502cccc83321fb275068dfbdd3a2fcbc6dddcaa65","0x083338262712e2b66769ea40d9f412b18caa1bc81a51ff5a50b6c41f8c4b3d23","0x0cdd38958cab97defde00f4a5961b6fd676e29d9f2c352f6bb2c68b91f83f8af","0x02c8bdd005c2f43a0a8cbb2744916ce5c322dfa5b23367a829c12699f4036d32","0x25bac73c7e7b659fbea3135b7a0decf9db8dc3045bd2837dae337c64cc722546","0x19eb361aa419d37bce3d2e8b2b7692a02a9559e83d7f3d8fe9169970fbbc2cba","0x2494bd5106d00e05c7ea60e632e9fe03773b7f2c5b662aa37ec512a01f4a0775","0x18c52c2f2c6e7be1d7847c15e452a3a9c64316103d12e4b5b9a82fac4e940ee9","0x0e0342810456ef78f498c1bfa085a5f3cbc06db1f32fabd0ea9ad27dccac1680","0x024c13d6ef56af33ed7164ea8e47ddecc8a487b000d8b1b45edcd3895a503ba2","0x26e0d127f626bd39b55bc5d0c131dbf03fe006dc5c3edc57dda1e629799a4317","0x1b1140061bc52b15c4f5e100729a81968ee79dc03deb966a18850335a8e44a8b","0x1bb76f945199e71d531a89288912087a02dd0e83020e65d671485bf2e5e86e1a","0x29269900859c6d86e404185b415bf3b279cd100f38cfdb0077e8d6a299c4fd35","0x22b5e94bae2f6f0cdb424a3b12c4bf82cec3fb228e012c1974ed457827bbe012","0x18d3543a93249778e7a57936170dae85ffc47c2567f2d0076a32c0bb86fcf10a","0x03721dc2670206cde42a175fd56bcce32cf6cb8801450a8e8e4b3d4e07785973","0x2806db136dd214d3ac1478460855cae6a4324ab45cab35320d104fee26c260e8","0x1c3749f1937082afbbae9375b9be708cf339e1983e57ef4447f36cfa560c685c","0x1067b8cfb90ef08bcb48aea56b2716334241787c2004a95682d68a0685566fd0","0x0f41aee4416398f1d48ffc302403273cddef34a41f98507c53682041d82e51ff","0x10d854c9f0bfbdff7ca91a68f4978e9a79e7b14243d92f465f17bdf88d9f64f8","0x00000000000000000000000000000000018938b11099e0cdc05ddab84a153a97","0x0000000000000000000000000000000001d7dda1471f0dc3b3a3d3438c197982","0x00000000000000000000000000000000022682917da43ab9a6e9cbcece1db86d","0x2453913e6b0f36eab883ac4b0e0604d56aaeb9c55e641135173e63c342f1a660","0x05216c1b58dc43a49d01aaba3113b0e86be450fc17d28016e648e7162a1b67fb","0x152b34845a0222a2b41354c0d395a250d8363dc18748647d85acd89d6934ec56","0x1dfc6e971ce82b7dcda1f7f282713c6e22a8c79258a61209bda69719806da544","0x2968dd8b3af8e3953f1fbbd72f4c49b8270597bb27d4037adc157ac6083bee60","0x1b9425b88a4c7d39b3d75afe66917a9aa1d2055724392bc01fb918d84ff1410e","0x04ab571f236d8e750904dc307dd274003d9130f1a7110e4c1521cfb408877c73","0x2ad84f26fdc5831545272d02b806bb0e6dae44e71f73552c4eb9ff06030748c7","0x020e632b99d325db774b8630fb50b9a4e74d35b7f27d9fc02c65087ee747e42c","0x09a8c5a3171268cb61c02515c01c109889200ed13f415ae54df2078bbb887f92","0x1143281a9451abbb4c34c3fa84e7678c2af2e7ea8c05160a6f7f06988fc91af8","0x000000000000000000000000000000cbda736ca5cf6bc75413c2cc9e28ab0a68","0x00000000000000000000000000000000001ee78c9cc56aa5991062ae2e338587","0x000000000000000000000000000000bc9bfcdebb486f4cb314e681d2cc5f8df6","0x00000000000000000000000000000000000ad538431d04771bca7f633cb659ff","0x000000000000000000000000000000d45b317afcefa466a59bba9e171f1af70c","0x0000000000000000000000000000000000133c50180ea17932e4881124e7a7c6","0x000000000000000000000000000000fc9ed37f543775849f3e84eaa06f77f992","0x00000000000000000000000000000000001372873c9c051d1baff99248b8f70e"] -public_inputs = ["0x0000000000000000000000000000000000000000000000000000000000000003"] -verification_key = ["0x2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e80","0x0000000000000000000000000000000000000000000000000000000000000008","0x0000000000000000000000000000000000000000000000000000000000000005","0x0000000000000000000000000000000000000000000000000000000000000008","0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000092139c61bae1a44f0fc7689507414be688","0x00000000000000000000000000000000000160ce4e279582f91bde4f03f5e9a2","0x0000000000000000000000000000005dc2d37f658c3b2d60f24740eb13b65d79","0x000000000000000000000000000000000007e3e8a5d98a1177ec85bf88f163a5","0x000000000000000000000000000000dc3035fbd7ff16412a8fd7da587a935298","0x000000000000000000000000000000000023d08e2817ac16990004ed11d8fc66","0x000000000000000000000000000000356a5ad59c646c746a8d09f5d154e47c4f","0x00000000000000000000000000000000000708529196af3c8e16ffa580c26182","0x0000000000000000000000000000002ddfe70eb7a1280596e8e4a804f118a6dd","0x000000000000000000000000000000000013757e15a0905f298303784a161b21","0x000000000000000000000000000000a23a729df796935c7824e3a26be794829b","0x000000000000000000000000000000000005775b6c146c4a59856e869fe5a70e","0x000000000000000000000000000000eef0c9e088fd2d45aa40311082d1f2809b","0x00000000000000000000000000000000001d539ccbfc556d0ad59307a218de65","0x000000000000000000000000000000a2c848beceb6ab7806fd3b88037b8410fc","0x0000000000000000000000000000000000177004deeb1f9d401fd7b1af1a5ac8","0x0000000000000000000000000000002508eb63672a733f20de1a97644be4f540","0x00000000000000000000000000000000000d82d51f2f75d806285fd248c819b8","0x000000000000000000000000000000d002f9100cbba8a29f13b11513c53c59d0","0x000000000000000000000000000000000006cd3b0e3460533b9e5ea2cdc0fcbb","0x000000000000000000000000000000f45ea38a93b2f810c5633ddb54927c1c96","0x000000000000000000000000000000000021791de65f9a28ec7024b1a87ab4f3","0x000000000000000000000000000000926511a0439502c86885a8c6f0327aa7ad","0x000000000000000000000000000000000029fa14a969c5d81ed3abbbfb11220a","0x000000000000000000000000000000b84c3258e8206f560e5b5b18cbeafef87e","0x00000000000000000000000000000000002a910445cd8fc895e5d235cd8ea185","0x000000000000000000000000000000887e67f15e84bcb8507a5064a363f6043b","0x000000000000000000000000000000000014dc6643d801c3ef27c2066b6e2bb4","0x000000000000000000000000000000e38e900b42c314ba803088e8fbf125203f","0x000000000000000000000000000000000020690fd4869db418306046b38161dc","0x0000000000000000000000000000001e2fa856bf7951b8292b1e88185993629c","0x0000000000000000000000000000000000048a85e0bbac7c60ad3d78f601f63c","0x0000000000000000000000000000006f457719495073d3666d77a625aeab0c51","0x00000000000000000000000000000000002623ad892dc62b1fa7d0a650f0d470","0x000000000000000000000000000000dbfcc8a467e021c03b13f74a9f79c3a10c","0x0000000000000000000000000000000000295f6f10976c37bd9c6f96bb7187d5","0x000000000000000000000000000000c13ef9a937cc12420fb38d9ab8e848e85e","0x000000000000000000000000000000000003560a3b334e887532f605c9cb7628","0x0000000000000000000000000000009bcebf08a4599cdda0fb96312d4dc0c7a9","0x000000000000000000000000000000000015adc8bb1e01c835f48959d1237bd6","0x00000000000000000000000000000047762ab839e4ff63c77605a9f383da37c2","0x000000000000000000000000000000000016a8c3c53d89660cf271522cd301fb","0x000000000000000000000000000000f0c8539a0b5f94420a513f9c305b932bfe","0x00000000000000000000000000000000002957ba01d9de5638f808f88a692533","0x000000000000000000000000000000ab17c6189d67d3bf5dd2f3885de0151b6f","0x0000000000000000000000000000000000060d8aa43fdc434d1942263f364d95","0x0000000000000000000000000000005d292333b3adb497f00b4bc32d45229060","0x00000000000000000000000000000000001a1018a66221883639f2898a66f345","0x00000000000000000000000000000006555a806b1993291deba0dc44e2abf431","0x00000000000000000000000000000000000cacff7099a9d5e35a21f4a00b2dc3","0x000000000000000000000000000000f50c11ba95d349c36d143eefd12e494950","0x00000000000000000000000000000000001022e8c5f02d639bc9dd8bc4407f99","0x000000000000000000000000000000c76828795098eda73d50b4b585c60afc60","0x00000000000000000000000000000000002bf09c0ec7011e93888962f2406630","0x00000000000000000000000000000049e5c83a8978d832fb8e144548e3ca1adb","0x00000000000000000000000000000000000e0ec242c2e160a984f61ca5adf5f5","0x0000000000000000000000000000009c5d6e08a6605ab4513748ac0fa017dd1c","0x00000000000000000000000000000000001f54baa07558e5fb055bd9ba49c067","0x0000000000000000000000000000001e1ee7ee29bbb5e4b080c6091c1433ce62","0x000000000000000000000000000000000024aec62a9d9763499267dc98c33428","0x0000000000000000000000000000001a96755946ff16f0d6632365f0eb0ab4d4","0x000000000000000000000000000000000028cf3e22bcd53782ebc3e0490e27e5","0x00000000000000000000000000000043148d7d8c9ba43f2133fab4201435a364","0x0000000000000000000000000000000000234ce541f1f5117dd404cfaf01a229","0x000000000000000000000000000000a7fb95ffb461d9514a1070e2d2403982ef","0x00000000000000000000000000000000003016955028b6390f446c3fd0c5b424","0x00000000000000000000000000000008863c3b7cd7cddc20ba79ce915051c56e","0x000000000000000000000000000000000013ef666111b0be56a235983d397d2a","0x000000000000000000000000000000e3993f465fc9f56e93ac769e597b752c1c","0x0000000000000000000000000000000000217f7c4235161e9a3c16c45b6ca499","0x0000000000000000000000000000008ffa4cd96bc67b0b7df5678271e1114075","0x0000000000000000000000000000000000256467bfcb63d9fdcb5dde397757ad","0x00000000000000000000000000000054e5eb270bb64bde6e6ececadfd8c3236c","0x00000000000000000000000000000000000e52d1bd75812c33c6f3d79ee4b94c","0x000000000000000000000000000000484a2c641dce55bc2dd64ef0cd790a7fea","0x00000000000000000000000000000000000ff417d256be43e73c8b1aa85bdda3","0x0000000000000000000000000000000b72e7b7713ab5da44e0f864182e748a23","0x00000000000000000000000000000000001a221055f1625ad833a44705f5f74e","0x00000000000000000000000000000067a99a34e9b81a17ad001db02e29bcb82a","0x000000000000000000000000000000000018a6c02e398389827568fa960e86e2","0x000000000000000000000000000000bb29f26f9890d6cc6401f4921d5884edca","0x00000000000000000000000000000000000868357b28039385c5a5058b6d358e","0x00000000000000000000000000000036fb6e229dde8edf7ec858b12d7e8be485","0x00000000000000000000000000000000001060afe929554ca473103f5e68193c","0x00000000000000000000000000000015226e07e207744c0857074dcab883af4a","0x00000000000000000000000000000000000b1c02619282755533457230b19b4a","0x0000000000000000000000000000001f2a0277e4807e6e1cbabca21dde5eb5e1","0x00000000000000000000000000000000000d928deafed363659688ed4ccdef52","0x000000000000000000000000000000363f0c994e91cecad25835338edee2294f","0x00000000000000000000000000000000002eea648c8732596b1314fe2a4d2f05","0x000000000000000000000000000000b2671d2ae51d31c1210433c3972bb64578","0x00000000000000000000000000000000000ab49886c2b94bd0bd3f6ed1dbbe2c"] \ No newline at end of file diff --git a/test_programs/execution_success/single_verify_proof/src/main.nr b/test_programs/execution_success/single_verify_proof/src/main.nr deleted file mode 100644 index 4eb0cfdf6d0..00000000000 --- a/test_programs/execution_success/single_verify_proof/src/main.nr +++ /dev/null @@ -1,15 +0,0 @@ - -// This circuit aggregates one proof from `assert_statement_recursive`. -fn main( - verification_key: [Field; 114], - // This is the proof without public inputs attached. - // - // This means: the size of this does not change with the number of public inputs. - proof: [Field; 93], - public_inputs: pub [Field; 1], - // This is currently not public. It is fine given that the vk is a part of the circuit definition. - // I believe we want to eventually make it public too though. - key_hash: Field -) { - std::verify_proof(verification_key, proof, public_inputs, key_hash); -} diff --git a/test_programs/execution_success/slice_coercion/Nargo.toml b/test_programs/execution_success/slice_coercion/Nargo.toml deleted file mode 100644 index 659677cc560..00000000000 --- a/test_programs/execution_success/slice_coercion/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "slice_coercion" -type = "bin" -authors = [""] -compiler_version = ">=0.25.0" - -[dependencies] diff --git a/test_programs/execution_success/slice_coercion/Prover.toml b/test_programs/execution_success/slice_coercion/Prover.toml deleted file mode 100644 index 09c44a855b0..00000000000 --- a/test_programs/execution_success/slice_coercion/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -first = 3 -expected = 3 diff --git a/test_programs/execution_success/slice_coercion/src/main.nr b/test_programs/execution_success/slice_coercion/src/main.nr deleted file mode 100644 index 4a83b739523..00000000000 --- a/test_programs/execution_success/slice_coercion/src/main.nr +++ /dev/null @@ -1,27 +0,0 @@ -struct Hasher { - fields: [Field], -} - -impl Hasher { - pub fn new() -> Self { - Self { fields: [] } - } - - pub fn add(&mut self, field: Field) { - self.fields = self.fields.push_back(field); - } -} - -fn main(expected: pub Field, first: Field) { - let mut hasher = Hasher::new(); - hasher.add(first); - assert(hasher.fields[0] == expected); - - regression_4967(); -} - -fn regression_4967() { - let var1: [(i32, u8)] = [(1, 2)]; - assert(var1.len() == 1); - std::println(var1); -} diff --git a/test_programs/execution_success/slice_dynamic_index/Nargo.toml b/test_programs/execution_success/slice_dynamic_index/Nargo.toml deleted file mode 100644 index a02faeae27a..00000000000 --- a/test_programs/execution_success/slice_dynamic_index/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "slice_dynamic_index" -type = "bin" -authors = [""] - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/slice_dynamic_index/Prover.toml b/test_programs/execution_success/slice_dynamic_index/Prover.toml deleted file mode 100644 index 0e5dfd5638d..00000000000 --- a/test_programs/execution_success/slice_dynamic_index/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "5" diff --git a/test_programs/execution_success/slice_dynamic_index/src/main.nr b/test_programs/execution_success/slice_dynamic_index/src/main.nr deleted file mode 100644 index 2ab633eb98c..00000000000 --- a/test_programs/execution_success/slice_dynamic_index/src/main.nr +++ /dev/null @@ -1,308 +0,0 @@ -fn main(x: Field) { - // The parameters to this function must come directly from witness values (inputs to main). - regression_dynamic_slice_index(x - 1, x - 4); -} - -fn regression_dynamic_slice_index(x: Field, y: Field) { - let mut slice = &[]; - for i in 0..5 { - slice = slice.push_back(i as Field); - } - assert(slice.len() == 5); - - dynamic_slice_index_set_if(slice, x, y); - dynamic_slice_index_set_else(slice, x, y); - dynamic_slice_index_set_nested_if_else_else(slice, x, y); - dynamic_slice_index_set_nested_if_else_if(slice, x, y + 1); - dynamic_slice_index_if(slice, x); - dynamic_array_index_if([0, 1, 2, 3, 4], x); - dynamic_slice_index_else(slice, x); - - dynamic_slice_merge_if(slice, x); - dynamic_slice_merge_else(slice, x); - dynamic_slice_merge_two_ifs(slice, x); - dynamic_slice_merge_mutate_between_ifs(slice, x, y); - dynamic_slice_merge_push_then_pop(slice, x, y); -} - -fn dynamic_slice_index_set_if(mut slice: [Field], x: Field, y: Field) { - assert(slice[x] == 4); - assert(slice[y] == 1); - slice[y] = 0; - assert(slice[x] == 4); - assert(slice[1] == 0); - if x as u32 < 10 { - assert(slice[x] == 4); - slice[x] = slice[x] - 2; - slice[x - 1] = slice[x]; - } else { - slice[x] = 0; - } - assert(slice[3] == 2); - assert(slice[4] == 2); -} - -fn dynamic_slice_index_set_else(mut slice: [Field], x: Field, y: Field) { - assert(slice[x] == 4); - assert(slice[y] == 1); - slice[y] = 0; - assert(slice[x] == 4); - assert(slice[1] == 0); - if x as u32 > 10 { - assert(slice[x] == 4); - slice[x] = slice[x] - 2; - slice[x - 1] = slice[x]; - } else { - slice[x] = 0; - } - assert(slice[4] == 0); -} -// This tests the case of missing a store instruction in the else branch -// of merging slices -fn dynamic_slice_index_if(mut slice: [Field], x: Field) { - if x as u32 < 10 { - assert(slice[x] == 4); - slice[x] = slice[x] - 2; - } else { - assert(slice[x] == 0); - } - assert(slice[4] == 2); -} - -fn dynamic_array_index_if(mut array: [Field; 5], x: Field) { - if x as u32 < 10 { - assert(array[x] == 4); - array[x] = array[x] - 2; - } else { - assert(array[x] == 0); - } - assert(array[4] == 2); -} -// This tests the case of missing a store instruction in the then branch -// of merging slices -fn dynamic_slice_index_else(mut slice: [Field], x: Field) { - if x as u32 > 10 { - assert(slice[x] == 0); - } else { - assert(slice[x] == 4); - slice[x] = slice[x] - 2; - } - assert(slice[4] == 2); -} - -fn dynamic_slice_merge_if(mut slice: [Field], x: Field) { - if x as u32 < 10 { - assert(slice[x] == 4); - slice[x] = slice[x] - 2; - - slice = slice.push_back(10); - // Having an array set here checks whether we appropriately - // handle a slice length that is not yet resolving to a constant - // during flattening - slice[x] = 10; - assert(slice[slice.len() - 1] == 10); - assert(slice.len() == 6); - - slice[x] = 20; - slice[x] = slice[x] + 10; - - slice = slice.push_front(11); - assert(slice[0] == 11); - assert(slice.len() == 7); - assert(slice[5] == 30); - - slice = slice.push_front(12); - assert(slice[0] == 12); - assert(slice.len() == 8); - assert(slice[6] == 30); - - let (popped_slice, last_elem) = slice.pop_back(); - assert(last_elem == 10); - assert(popped_slice.len() == 7); - - let (first_elem, rest_of_slice) = popped_slice.pop_front(); - assert(first_elem == 12); - assert(rest_of_slice.len() == 6); - - slice = rest_of_slice.insert(x as u32 - 2, 20); - assert(slice[2] == 20); - assert(slice[6] == 30); - assert(slice.len() == 7); - - let (removed_slice, removed_elem) = slice.remove(x as u32 - 1); - // The deconstructed tuple assigns to the slice but is not seen outside of the if statement - // without a direct assignment - slice = removed_slice; - - assert(removed_elem == 1); - assert(slice.len() == 6); - } else { - assert(slice[x] == 0); - slice = slice.push_back(20); - } - - assert(slice.len() == 6); - assert(slice[slice.len() - 1] == 30); -} - -fn dynamic_slice_merge_else(mut slice: [Field], x: Field) { - if x as u32 > 10 { - assert(slice[x] == 0); - slice[x] = 2; - } else { - assert(slice[x] == 4); - slice[x] = slice[x] - 2; - slice = slice.push_back(10); - } - assert(slice.len() == 6); - assert(slice[slice.len() - 1] == 10); - - slice = slice.push_back(20); - assert(slice.len() == 7); - assert(slice[slice.len() - 1] == 20); -} - -fn dynamic_slice_index_set_nested_if_else_else(mut slice: [Field], x: Field, y: Field) { - assert(slice[x] == 4); - assert(slice[y] == 1); - slice[y] = 0; - assert(slice[x] == 4); - assert(slice[1] == 0); - if x as u32 < 10 { - slice[x] = slice[x] - 2; - if y != 1 { - slice[x] = slice[x] + 20; - } else { - if x == 5 { - // We should not hit this case - assert(slice[x] == 22); - } else { - slice[x] = 10; - slice = slice.push_back(15); - assert(slice.len() == 6); - } - assert(slice[4] == 10); - } - } else { - slice[x] = 0; - } - assert(slice[4] == 10); - assert(slice.len() == 6); - assert(slice[slice.len() - 1] == 15); - - slice = slice.push_back(20); - assert(slice.len() == 7); - assert(slice[slice.len() - 1] == 20); -} - -fn dynamic_slice_index_set_nested_if_else_if(mut slice: [Field], x: Field, y: Field) { - assert(slice[x] == 4); - assert(slice[y] == 2); - slice[y] = 0; - assert(slice[x] == 4); - assert(slice[2] == 0); - if x as u32 < 10 { - slice[x] = slice[x] - 2; - // TODO: this panics as we have a load for the slice in flattening - if y == 1 { - slice[x] = slice[x] + 20; - } else { - if x == 4 { - slice[x] = 5; - } - assert(slice[4] == 5); - } - } else { - slice[x] = 0; - } - assert(slice[4] == 5); -} - -fn dynamic_slice_merge_two_ifs(mut slice: [Field], x: Field) { - if x as u32 > 10 { - assert(slice[x] == 0); - slice[x] = 2; - } else { - assert(slice[x] == 4); - slice[x] = slice[x] - 2; - slice = slice.push_back(10); - } - - assert(slice.len() == 6); - assert(slice[slice.len() - 1] == 10); - - if x == 20 { - slice = slice.push_back(20); - } - - slice = slice.push_back(15); - - assert(slice.len() == 7); - assert(slice[slice.len() - 1] == 15); - - slice = slice.push_back(20); - assert(slice.len() == 8); - assert(slice[slice.len() - 1] == 20); -} - -fn dynamic_slice_merge_mutate_between_ifs(mut slice: [Field], x: Field, y: Field) { - if x != y { - slice[x] = 50; - slice = slice.push_back(y); - slice = slice.push_back(x); - } else { - slice[x] = slice[x] - 2; - slice = slice.push_back(x); - } - - slice = slice.push_back(30); - assert(slice.len() == 8); - - if x == 20 { - slice = slice.push_back(20); - } - - slice = slice.push_back(15); - - if x != 20 { - slice = slice.push_back(50); - } - - slice = slice.push_back(60); - assert(slice.len() == 11); - assert(slice[x] == 50); - assert(slice[slice.len() - 4] == 30); - assert(slice[slice.len() - 3] == 15); - assert(slice[slice.len() - 2] == 50); - assert(slice[slice.len() - 1] == 60); -} - -fn dynamic_slice_merge_push_then_pop(mut slice: [Field], x: Field, y: Field) { - if x != y { - slice[x] = 5; - slice = slice.push_back(y); - slice = slice.push_back(x); - assert(slice.len() == 7); - - let (popped_slice, elem) = slice.pop_back(); - assert(slice.len() == 7); - assert(elem == x); - slice = popped_slice; - } else { - slice = slice.push_back(x); - } - - slice = slice.push_back(30); - assert(slice.len() == 7); - - if x == 20 { - slice = slice.push_back(20); - } - - let (slice, elem) = slice.pop_back(); - assert(elem == 30); - - let (_, elem) = slice.pop_back(); - assert(elem == y); -} - diff --git a/test_programs/execution_success/slice_loop/Nargo.toml b/test_programs/execution_success/slice_loop/Nargo.toml deleted file mode 100644 index 09ad90c4187..00000000000 --- a/test_programs/execution_success/slice_loop/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "slice_loop" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/slice_loop/Prover.toml b/test_programs/execution_success/slice_loop/Prover.toml deleted file mode 100644 index 089a1764b54..00000000000 --- a/test_programs/execution_success/slice_loop/Prover.toml +++ /dev/null @@ -1,11 +0,0 @@ -[[points]] -x = "1" -y = "2" - -[[points]] -x = "3" -y = "4" - -[[points]] -x = "5" -y = "6" diff --git a/test_programs/execution_success/slice_loop/src/main.nr b/test_programs/execution_success/slice_loop/src/main.nr deleted file mode 100644 index 4ff3e865b1f..00000000000 --- a/test_programs/execution_success/slice_loop/src/main.nr +++ /dev/null @@ -1,32 +0,0 @@ -struct Point { - x: Field, - y: Field, -} - -impl Point { - fn serialize(self) -> [Field; 2] { - [self.x, self.y] - } -} - -fn sum(values: [Field]) -> Field { - let mut sum = 0; - for value in values { - sum = sum + value; - } - sum -} - -fn main(points: [Point; 3]) { - let mut serialized_points = &[]; - for point in points { - serialized_points = serialized_points.append(point.serialize().as_slice()); - } - // Do a compile-time check that needs the previous loop to be unrolled - if serialized_points.len() > 5 { - let empty_point = Point { x: 0, y: 0 }; - serialized_points = serialized_points.append(empty_point.serialize().as_slice()); - } - // Do a sum that needs both the previous loop and the previous if to have been simplified - assert_eq(sum(serialized_points), 21); -} diff --git a/test_programs/execution_success/slice_regex/Nargo.toml b/test_programs/execution_success/slice_regex/Nargo.toml deleted file mode 100644 index ac95636c74a..00000000000 --- a/test_programs/execution_success/slice_regex/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "slice_regex" -type = "bin" -authors = [""] -compiler_version = ">=0.31.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/slice_regex/src/main.nr b/test_programs/execution_success/slice_regex/src/main.nr deleted file mode 100644 index 3b860839a6e..00000000000 --- a/test_programs/execution_success/slice_regex/src/main.nr +++ /dev/null @@ -1,788 +0,0 @@ -struct Match { - succeeded: bool, - match_ends: u32, - leftover: [u8], -} - -impl Match { - fn empty(leftover: [u8]) -> Self { - Match { succeeded: true, match_ends: 0, leftover } - } -} - -impl Eq for Match { - fn eq(self, other: Self) -> bool { - (self.succeeded == other.succeeded) & (self.match_ends == other.match_ends) - // (self.leftover == other.leftover) - } -} - -// TODO: load match into str and assert that it's the correct length -// impl From for str - -trait Regex { - fn match(self, input: [u8]) -> Match; -} - -// Empty -impl Regex for () { - fn match(_self: Self, input: [u8]) -> Match { - Match::empty(input) - } -} - -// Exact -impl Regex for str { - fn match(self, input: [u8]) -> Match { - let mut leftover = input; - let mut matches_input = true; - let self_as_bytes = self.as_bytes(); - for c in self_as_bytes { - if leftover.len() != 0 { - let (first_elem, popped_slice) = leftover.pop_front(); - leftover = popped_slice; - matches_input &= first_elem == c; - } else { - matches_input = false; - } - } - if matches_input { - Match { succeeded: true, match_ends: self_as_bytes.len(), leftover } - } else { - Match { succeeded: false, match_ends: 0, leftover: input } - } - } -} - -// And -impl Regex for (T, U) where T: Regex, U: Regex { - fn match(self, input: [u8]) -> Match { - let lhs_result = self.0.match(input); - if lhs_result.succeeded { - let rhs_result = self.1.match(lhs_result.leftover); - if rhs_result.succeeded { - Match { - succeeded: true, - match_ends: lhs_result.match_ends + rhs_result.match_ends, - leftover: rhs_result.leftover - } - } else { - Match { succeeded: false, match_ends: 0, leftover: input } - } - } else { - Match { succeeded: false, match_ends: 0, leftover: input } - } - } -} - -// N T's: (T, (T, (T, T))) -struct Repeated { - inner: T, -} - -impl Regex for Repeated where T: Regex { - fn match(self, input: [u8]) -> Match { - let mut result = Match::empty(input); - for _ in 0..N { - if result.succeeded { - let next_result = self.inner.match(result.leftover); - result = Match { - succeeded: next_result.succeeded, - match_ends: result.match_ends + next_result.match_ends, - leftover: next_result.leftover, - }; - } - } - result - } -} - -struct Or { - lhs: T, - rhs: U, -} - -impl Regex for Or where T: Regex, U: Regex { - fn match(self, input: [u8]) -> Match { - let lhs_result = self.lhs.match(input); - if lhs_result.succeeded { - lhs_result - } else { - self.rhs.match(input) - } - } -} - -struct Question { - inner: T, -} - -impl Regex for Question where T: Regex { - fn match(self, input: [u8]) -> Match { - Or { lhs: self.inner, rhs: () }.match(input) - } -} - -// 0 <= num_matches <= N -struct Star { - inner: T, -} - -impl Regex for Star where T: Regex { - fn match(self, input: [u8]) -> Match { - let regex: Repeated<_, N> = Repeated { inner: Question { inner: self.inner } }; - regex.match(input) - } -} - -// 0 < num_matches <= N -struct Plus { - inner: T, -} - -impl Regex for Plus where T: Regex { - fn match(self, input: [u8]) -> Match { - std::static_assert(N_PRED + 1 == N, "N - 1 != N_PRED"); - let star: Star = Star { inner: self.inner }; - (self.inner, star).match(input) - } -} - -fn main() { - // gr(a|e)y - let graey_regex = ("gr", (Or { lhs: "a", rhs: "e" }, "y")); - - // NOTE: leftover ignored in Eq: Match - let result = graey_regex.match("gray".as_bytes().as_slice()); - println(result); - assert_eq(result, Match { succeeded: true, match_ends: 4, leftover: &[] }); - - // NOTE: leftover ignored in Eq: Match - let result = graey_regex.match("grey".as_bytes().as_slice()); - println(result); - assert_eq(result, Match { succeeded: true, match_ends: 4, leftover: &[] }); - - // colou?r - let colour_regex = ("colo", (Question { inner: "u" }, "r")); - - let result = colour_regex.match("color".as_bytes().as_slice()); - println(result); - assert_eq(result, Match { succeeded: true, match_ends: 5, leftover: &[] }); - - let result = colour_regex.match("colour".as_bytes().as_slice()); - println(result); - assert_eq(result, Match { succeeded: true, match_ends: 6, leftover: &[] }); - - // parse the empty string three times - // EMPTY{3} - let three_empties_regex: Repeated<(), 3> = Repeated { inner: () }; - - let result = three_empties_regex.match("111".as_bytes().as_slice()); - println(result); - assert_eq(result, Match { succeeded: true, match_ends: 0, leftover: &[] }); - - // 1{0} - let zero_ones_regex: Repeated, 0> = Repeated { inner: "1" }; - - let result = zero_ones_regex.match("111".as_bytes().as_slice()); - println(result); - assert_eq(result, Match { succeeded: true, match_ends: 0, leftover: &[] }); - - // 1{1} - let one_ones_regex: Repeated, 1> = Repeated { inner: "1" }; - - let result = one_ones_regex.match("111".as_bytes().as_slice()); - println(result); - assert_eq(result, Match { succeeded: true, match_ends: 1, leftover: &[] }); - - // 1{2} - let two_ones_regex: Repeated, 2> = Repeated { inner: "1" }; - - let result = two_ones_regex.match("111".as_bytes().as_slice()); - println(result); - assert_eq(result, Match { succeeded: true, match_ends: 2, leftover: &[] }); - - // 1{3} - let three_ones_regex: Repeated, 3> = Repeated { inner: "1" }; - - let result = three_ones_regex.match("1111".as_bytes().as_slice()); - println(result); - assert_eq(result, Match { succeeded: true, match_ends: 3, leftover: &[] }); - // TODO(https://github.com/noir-lang/noir/issues/6285): re-enable these cases and complete the test using array_regex below - // - // // 1* - // let ones_regex: Star, 5> = Star { inner: "1" }; - // - // let result = ones_regex.match("11000".as_bytes().as_slice()); - // println(result); - // assert_eq(result, Match { succeeded: true, match_ends: 2, leftover: &[] }); - // - // let result = ones_regex.match("11".as_bytes().as_slice()); - // println(result); - // assert_eq(result, Match { succeeded: true, match_ends: 2, leftover: &[] }); - // - // let result = ones_regex.match("111111".as_bytes().as_slice()); - // println(result); - // assert_eq(result, Match { succeeded: true, match_ends: 5, leftover: &[] }); - // - // - // // 1+ - // let nonempty_ones_regex: Plus, 5, 4> = Plus { inner: "1" }; - // - // let result = nonempty_ones_regex.match("111111".as_bytes().as_slice()); - // println(result); - // assert_eq(result, Match { succeeded: true, match_ends: 5, leftover: &[] }); - // - // // 2^n-1 in binary: 1+0 - // let pred_pow_two_regex = (nonempty_ones_regex, "0"); - // - // let result = pred_pow_two_regex.match("1110".as_bytes().as_slice()); - // println(result); - // assert_eq(result, Match { succeeded: true, match_ends: 3, leftover: &[] }); - // - // // (0|1)* - // let binary_regex: Star, str<1>>, 5> = Star { inner: Or { lhs: "0", rhs: "1" } }; - // - // let result = binary_regex.match("110100".as_bytes().as_slice()); - // println(result); - // assert_eq(result, Match { succeeded: true, match_ends: 5, leftover: &[] }); - // - // // even numbers in binary: 1(0|1)*0 - // let even_binary_regex = ("1", (binary_regex, "0")); - // - // let result = even_binary_regex.match("1111110".as_bytes().as_slice()); - // println(result); - // assert_eq(result, Match { succeeded: true, match_ends: 6, leftover: &[] }); - // 2-letter capitalized words: [A-Z][a-z] - // numbers: \d+ - // [0-9]+ - // words: \w+ - // [a-Z]+ - // adapted URL parser: (https?:\/\/)?([\da-z.\-]+)\.([a-z.]+)([\/\w \.\-]*)*\/? - // // panics (at compile time) when input string is too short - // let foo_regex = ( - // "colo", - // ( - // Question { - // inner: "u", - // }, - // "r" - // ) - // ); - // - // let result = foo_regex.match("colo".as_bytes().as_slice()); - // println(result); - // assert_eq(result, Match { - // succeeded: true, - // match_ends: 4, - // leftover: &[], - // }); -} - -// TODO -// array_regex execution_success test: -// use to complete test once https://github.com/noir-lang/noir/issues/6285 is resolved -// -// // offset <= len <= N -// struct Bvec { -// inner: [T; N], -// -// // elements at indices < offset are zero -// offset: u32, -// -// // elements at indices >= len are zero -// len: u32, -// } -// -// impl Eq for Bvec where T: Eq { -// fn eq(self, other: Self) -> bool { -// (self.inner == other.inner) & -// (self.offset == other.offset) & -// (self.len == other.len) -// } -// } -// -// impl Bvec { -// fn empty() -> Self { -// Self { inner: [std::mem::zeroed(); N], offset: 0, len: 0 } -// } -// -// fn new(array: [T; N]) -> Self { -// let mut result = Bvec::empty(); -// for x in array { -// result = result.push(x); -// } -// result -// } -// -// // pushing when len == N is a no-op -// fn push(self, x: T) -> Self { -// let mut inner = self.inner; -// let mut len = self.len; -// if self.len < N { -// inner[self.len] = x; -// len += 1; -// } -// -// Self { inner, offset: self.offset, len } -// } -// -// fn pop_front(self) -> (T, Self) { -// assert(self.offset <= self.inner.len()); -// assert(self.len != 0); -// -// let first_elem = self.inner[self.offset]; -// let popped_slice = Self { inner: self.inner, offset: self.offset + 1, len: self.len - 1 }; -// -// (first_elem, popped_slice) -// } -// } -// -// struct Match { -// succeeded: bool, -// match_ends: u32, -// leftover: Bvec, -// } -// -// impl Match { -// fn empty(leftover: Bvec) -> Self { -// Match { succeeded: true, match_ends: 0, leftover } -// } -// -// fn failed(leftover: Bvec) -> Self { -// Match { succeeded: false, match_ends: 0, leftover } -// } -// } -// -// impl Eq for Match { -// fn eq(self, other: Self) -> bool { -// (self.succeeded == other.succeeded) & -// (self.match_ends == other.match_ends) & -// (self.leftover == other.leftover) -// } -// } -// -// // TODO: load match into str and assert that it's the correct length -// // impl From for str -// -// trait Regex { -// // Perform a match without backtracking -// fn match(self, input: Bvec) -> Match; -// } -// -// // Empty -// impl Regex for () { -// fn match(_self: Self, input: Bvec) -> Match { -// Match::empty(input) -// } -// } -// -// // Exact -// impl Regex for str { -// fn match(self, input: Bvec) -> Match { -// let mut leftover = input; -// let mut matches_input = true; -// let self_as_bytes = self.as_bytes(); -// for c in self_as_bytes { -// if leftover.len != 0 { -// let (first_elem, popped_slice) = leftover.pop_front(); -// leftover = popped_slice; -// matches_input &= first_elem == c; -// } else { -// matches_input = false; -// } -// } -// if matches_input { -// Match { -// succeeded: true, -// match_ends: self_as_bytes.len(), -// leftover, -// } -// } else { -// Match { -// succeeded: false, -// match_ends: 0, -// leftover: input, -// } -// } -// } -// } -// -// // And -// impl Regex for (T, U) where T: Regex, U: Regex { -// fn match(self, input: Bvec) -> Match { -// let lhs_result = self.0.match(input); -// if lhs_result.succeeded { -// let rhs_result = self.1.match(lhs_result.leftover); -// if rhs_result.succeeded { -// Match { -// succeeded: true, -// match_ends: lhs_result.match_ends + rhs_result.match_ends, -// leftover: rhs_result.leftover, -// } -// } else { -// Match { -// succeeded: false, -// match_ends: 0, -// leftover: input, -// } -// } -// } else { -// Match { -// succeeded: false, -// match_ends: 0, -// leftover: input, -// } -// } -// } -// } -// -// // N T's: (T, (T, (T, T))) -// struct Repeated { -// inner: T, -// } -// -// impl Regex for Repeated where T: Regex { -// fn match(self, input: Bvec) -> Match { -// let mut result = Match::empty(input); -// for _ in 0..M { -// if result.succeeded { -// let next_result = self.inner.match(result.leftover); -// result = Match { -// succeeded: next_result.succeeded, -// match_ends: result.match_ends + next_result.match_ends, -// leftover: next_result.leftover, -// }; -// } -// } -// result -// } -// } -// -// struct Or { -// lhs: T, -// rhs: U, -// } -// -// impl Regex for Or where T: Regex, U: Regex { -// fn match(self, input: Bvec) -> Match { -// let lhs_result = self.lhs.match(input); -// if lhs_result.succeeded { -// lhs_result -// } else { -// self.rhs.match(input) -// } -// } -// } -// -// struct Question { -// inner: T, -// } -// -// impl Regex for Question where T: Regex { -// fn match(self, input: Bvec) -> Match { -// Or { -// lhs: self.inner, -// rhs: (), -// }.match(input) -// } -// } -// -// // 0 <= num_matches <= N -// struct Star { -// inner: T, -// } -// -// impl Regex for Star where T: Regex { -// fn match(self, input: Bvec) -> Match { -// let regex: Repeated<_, M> = Repeated { -// inner: Question { inner: self.inner }, -// }; -// regex.match(input) -// } -// } -// -// // 0 < num_matches <= N -// struct Plus { -// inner: T, -// } -// -// impl Regex for Plus where T: Regex { -// fn match(self, input: Bvec) -> Match { -// std::static_assert(M_PRED + 1 == M, "M - 1 != M_PRED"); -// let star: Star = Star { inner: self.inner }; -// ( -// self.inner, -// star -// ).match(input) -// } -// } -// -// // Repeated is to (,) as AnyOf is to Or -// struct AnyOf { -// inner: [T; N], -// } -// -// impl Regex for AnyOf where T: Regex { -// fn match(self, input: Bvec) -> Match { -// let mut result = Match::failed(input); -// for i in 0..M { -// if !result.succeeded { -// result = self.inner[i].match(result.leftover); -// } -// } -// result -// } -// } -// -// fn reverse_array(input: [T; N]) -> [T; N] { -// let mut output = [std::mem::zeroed(); N]; -// for i in 0..N { -// output[i] = input[N - (i + 1)]; -// } -// output -// } -// -// fn main() { -// assert_eq(reverse_array([1, 2, 3, 4]), [4, 3, 2, 1]); -// -// let mut xs: Bvec = Bvec::empty(); -// -// xs = xs.push(0); -// assert_eq(xs, Bvec { inner: [0, 0, 0], offset: 0, len: 1 }); -// -// xs = xs.push(1); -// assert_eq(xs, Bvec { inner: [0, 1, 0], offset: 0, len: 2 }); -// -// xs = xs.push(2); -// assert_eq(xs, Bvec { inner: [0, 1, 2], offset: 0, len: 3 }); -// -// xs = xs.push(3); -// assert_eq(xs, Bvec { inner: [0, 1, 2], offset: 0, len: 3 }); -// -// let ys = Bvec::new([0, 1, 2]); -// assert_eq(xs, ys); -// -// // test that pop_front gives all contents, in order, -// // followed by std::mem::zeroed() -// println(xs); -// let (x, new_xs) = xs.pop_front(); -// assert_eq(x, 0); -// -// xs = new_xs; -// println(xs); -// let (x, new_xs) = xs.pop_front(); -// assert_eq(x, 1); -// -// xs = new_xs; -// println(xs); -// let (x, new_xs) = xs.pop_front(); -// assert_eq(x, 2); -// -// xs = new_xs; -// println(xs); -// if xs.len != 0 { -// let (x, _new_xs) = xs.pop_front(); -// assert_eq(x, std::mem::zeroed()); -// } -// -// assert_eq(new_xs, Bvec { inner: [0, 1, 2], offset: 3, len: 0 }); -// -// // gr(a|e)y -// let graey_regex = ("gr", (Or { lhs: "a", rhs: "e" }, "y")); -// -// let result = graey_regex.match(Bvec::new("gray".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 4); -// assert_eq(result.leftover.len, 0); -// -// let result = graey_regex.match(Bvec::new("grey".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 4); -// assert_eq(result.leftover.len, 0); -// -// // colou?r -// let colour_regex = ("colo", (Question { inner: "u" }, "r")); -// -// let result = colour_regex.match(Bvec::new("color".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 5); -// assert_eq(result.leftover.len, 0); -// -// let result = colour_regex.match(Bvec::new("colour".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 6); -// assert_eq(result.leftover.len, 0); -// -// // parse the empty string three times -// // EMPTY{3} -// let three_empties_regex: Repeated<(), 3> = Repeated { inner: () }; -// -// let result = three_empties_regex.match(Bvec::new("111".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 0); -// assert_eq(result.leftover.len, 3); -// -// // 1{0} -// let zero_ones_regex: Repeated, 0> = Repeated { inner: "1" }; -// -// let result = zero_ones_regex.match(Bvec::new("111".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 0); -// assert_eq(result.leftover.len, 3); -// -// // 1{1} -// let one_ones_regex: Repeated, 1> = Repeated { inner: "1" }; -// -// let result = one_ones_regex.match(Bvec::new("111".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 1); -// assert_eq(result.leftover.len, 2); -// -// // 1{2} -// let two_ones_regex: Repeated, 2> = Repeated { inner: "1" }; -// -// let result = two_ones_regex.match(Bvec::new("111".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 2); -// assert_eq(result.leftover.len, 1); -// -// // 1{3} -// let three_ones_regex: Repeated, 3> = Repeated { inner: "1" }; -// -// let result = three_ones_regex.match(Bvec::new("1111".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 3); -// assert_eq(result.leftover.len, 1); -// -// // 1* -// let ones_regex: Star, 5> = Star { inner: "1" }; -// -// let result = ones_regex.match(Bvec::new("11000".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 2); -// assert_eq(result.leftover.len, 3); -// -// let result = ones_regex.match(Bvec::new("11".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 2); -// assert_eq(result.leftover.len, 0); -// -// let result = ones_regex.match(Bvec::new("111111".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 5); -// assert_eq(result.leftover.len, 1); -// -// // 1+ -// let nonempty_ones_regex: Plus, 5, 4> = Plus { inner: "1" }; -// -// let result = nonempty_ones_regex.match(Bvec::new("111111".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 5); -// assert_eq(result.leftover.len, 1); -// -// // 2^n-1 in binary: 1+0 -// let pred_pow_two_regex = (nonempty_ones_regex, "0"); -// -// let result = pred_pow_two_regex.match(Bvec::new("1110".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 4); -// assert_eq(result.leftover.len, 0); -// -// // (0|1)* -// let binary_regex: Star, str<1>>, 5> = Star { inner: Or { lhs: "0", rhs: "1" } }; -// -// let result = binary_regex.match(Bvec::new("110100".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 5); -// assert_eq(result.leftover.len, 1); -// -// // even numbers in binary: 1(0|1)*0 -// let even_binary_regex = ("1", (binary_regex, "0")); -// -// let result = even_binary_regex.match(Bvec::new("1111110".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 7); -// assert_eq(result.leftover.len, 0); -// -// // digit: \d+ -// // [0-9] -// let digit_regex = AnyOf { -// inner: [ -// "0", -// "1", -// "2", -// "3", -// "4", -// "5", -// "6", -// "7", -// "8", -// "9" -// ] -// }; -// -// let result = digit_regex.match(Bvec::new("157196345823795".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 1); -// assert_eq(result.leftover.len, 14); -// -// let result = digit_regex.match(Bvec::new("hi".as_bytes())); -// println(result); -// assert(!result.succeeded); -// assert_eq(result.match_ends, 0); -// assert_eq(result.leftover.len, 2); -// -// // digits: \d+ -// // [0-9]+ -// let digits_regex: Plus, 10>, 32, 31> = Plus { inner: digit_regex }; -// -// let result = digits_regex.match(Bvec::new("123456789012345".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 15); -// assert_eq(result.leftover.len, 0); -// -// let result = digits_regex.match(Bvec::new("123456789012345 then words".as_bytes())); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 15); -// assert_eq(result.leftover.len, 11); -// -// // multiples of 10 -// // apply to a reversed input string (because there isn't backtracking) -// // 0\d+ -// let backwards_mult_of_10_regex = ("0", digits_regex); -// -// let result = backwards_mult_of_10_regex.match(Bvec::new(reverse_array("1230".as_bytes()))); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 4); -// assert_eq(result.leftover.len, 0); -// -// let ten_pow_16: str<17> = "10000000000000000"; -// let result = backwards_mult_of_10_regex.match(Bvec::new(reverse_array(ten_pow_16.as_bytes()))); -// println(result); -// assert(result.succeeded); -// assert_eq(result.match_ends, 17); -// assert_eq(result.leftover.len, 0); -// // adapted URL parser: (https?:\/\/)?([\da-c.\-]+)\.([a-c.]+)([\/\w \.\-]*)*\/? -// } - diff --git a/test_programs/execution_success/slices/Nargo.toml b/test_programs/execution_success/slices/Nargo.toml deleted file mode 100644 index 3eec413bc07..00000000000 --- a/test_programs/execution_success/slices/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "slices" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/slices/Prover.toml b/test_programs/execution_success/slices/Prover.toml deleted file mode 100644 index f28f2f8cc48..00000000000 --- a/test_programs/execution_success/slices/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "5" -y = "10" diff --git a/test_programs/execution_success/slices/src/main.nr b/test_programs/execution_success/slices/src/main.nr deleted file mode 100644 index 47272869b04..00000000000 --- a/test_programs/execution_success/slices/src/main.nr +++ /dev/null @@ -1,344 +0,0 @@ -use std::slice; - -fn main(x: Field, y: pub Field) { - let mut slice = &[0; 2]; - assert(slice[0] == 0); - assert(slice[0] != 1); - slice[0] = x; - assert(slice[0] == x); - - let slice_plus_10 = slice.push_back(y); - assert(slice_plus_10[2] == 10); - assert(slice_plus_10[2] != 8); - assert(slice_plus_10.len() == 3); - - let mut new_slice = &[]; - for i in 0..5 { - new_slice = new_slice.push_back(i); - } - assert(new_slice.len() == 5); - - new_slice = new_slice.push_front(20); - assert(new_slice[0] == 20); - assert(new_slice.len() == 6); - - let (popped_slice, last_elem) = new_slice.pop_back(); - assert(last_elem == 4); - assert(popped_slice.len() == 5); - - let (first_elem, rest_of_slice) = popped_slice.pop_front(); - assert(first_elem == 20); - assert(rest_of_slice.len() == 4); - - new_slice = rest_of_slice.insert(2, 100); - assert(new_slice[2] == 100); - assert(new_slice[4] == 3); - assert(new_slice.len() == 5); - - let (remove_slice, removed_elem) = new_slice.remove(3); - assert(removed_elem == 2); - assert(remove_slice[3] == 3); - assert(remove_slice.len() == 4); - - let append = &[1, 2].append(&[3, 4, 5]); - assert(append.len() == 5); - assert(append[0] == 1); - assert(append[4] == 5); - - let mapped = &[1, 2].map(|x| x + 1); - assert_eq(mapped, &[2, 3]); - - assert_eq(&[1, 2, 3].fold(0, |acc, x| acc + x), 6); - assert_eq(&[1, 2, 3].reduce(|acc, x| acc + x), 6); - assert(&[2, 4, 6].all(|x| x > 0)); - assert(&[2, 4, 6].any(|x| x > 5)); - - regression_2083(); - // The parameters to this function must come from witness values (inputs to main) - regression_merge_slices(x, y); - regression_2370(); - - regression_4418(x); - regression_slice_call_result(x, y); - regression_4506(); -} - -// Ensure that slices of struct/tuple values work. -fn regression_2083() { - let y = &[(1, 2)]; - let y = y.push_back((3, 4)); // [(1, 2), (3, 4)] - let y = y.push_back((5, 6)); // [(1, 2), (3, 4), (5, 6)] - assert(y[2].1 == 6); - - let y = y.push_front((10, 11)); // [(10, 11), (1, 2), (3, 4), (5, 6)] - let y = y.push_front((12, 13)); // [(12, 13), (10, 11), (1, 2), (3, 4), (5, 6)] - assert(y[1].0 == 10); - - let y = y.insert(1, (55, 56)); // [(12, 13), (55, 56), (10, 11), (1, 2), (3, 4), (5, 6)] - assert(y[0].1 == 13); - assert(y[1].1 == 56); - assert(y[2].0 == 10); - - let (y, x) = y.remove(2); // [(12, 13), (55, 56), (1, 2), (3, 4), (5, 6)] - assert(y[2].0 == 1); - assert(x.0 == 10); - assert(x.1 == 11); - - let (x, y) = y.pop_front(); // [(55, 56), (1, 2), (3, 4), (5, 6)] - assert(y[0].0 == 55); - assert(x.0 == 12); - assert(x.1 == 13); - - let (y, x) = y.pop_back(); // [(55, 56), (1, 2), (3, 4)] - assert(y.len() == 3); - assert(x.0 == 5); - assert(x.1 == 6); -} - -// The parameters to this function must come from witness values (inputs to main) -fn regression_merge_slices(x: Field, y: Field) { - merge_slices_if(x, y); - merge_slices_else(x); -} - -fn merge_slices_if(x: Field, y: Field) { - let slice = merge_slices_return(x, y); - assert(slice.len() == 3); - assert(slice[2] == 10); - - let slice = merge_slices_mutate(x, y); - assert(slice.len() == 4); - assert(slice[3] == 5); - - let slice = merge_slices_mutate_in_loop(x, y); - assert(slice.len() == 7); - assert(slice[6] == 4); - - let slice = merge_slices_mutate_two_ifs(x, y); - assert(slice.len() == 6); - assert(slice[3] == 5); - assert(slice[4] == 15); - assert(slice[5] == 30); - - let slice = merge_slices_mutate_between_ifs(x, y); - assert(slice.len() == 8); - assert(slice[3] == 5); - assert(slice[4] == 30); - assert(slice[5] == 15); - assert(slice[6] == 50); - assert(slice[7] == 60); - - merge_slices_push_then_pop(x, y); - - let slice = merge_slices_push_then_insert(x, y); - assert(slice.len() == 7); - assert(slice[1] == 50); - assert(slice[2] == 0); - assert(slice[5] == 30); - assert(slice[6] == 100); - - let slice = merge_slices_remove_between_ifs(x, y); - assert(slice.len() == 5); -} - -fn merge_slices_else(x: Field) { - let slice = merge_slices_return(x, 5); - assert(slice[0] == 0); - assert(slice[1] == 0); - assert(slice.len() == 2); - - let slice = merge_slices_mutate(x, 5); - assert(slice[2] == 5); - assert(slice.len() == 3); - - let slice = merge_slices_mutate_in_loop(x, 5); - assert(slice[2] == 5); - assert(slice.len() == 3); -} - -// Test returning a merged slice without a mutation -fn merge_slices_return(x: Field, y: Field) -> [Field] { - let slice = &[0; 2]; - if x != y { - if x != 20 { slice.push_back(y) } else { slice } - } else { - slice - } -} - -// Test mutating a slice inside of an if statement -fn merge_slices_mutate(x: Field, y: Field) -> [Field] { - let mut slice = &[0; 2]; - if x != y { - slice = slice.push_back(y); - slice = slice.push_back(x); - } else { - slice = slice.push_back(x); - } - slice -} - -// Test mutating a slice inside of a loop in an if statement -fn merge_slices_mutate_in_loop(x: Field, y: Field) -> [Field] { - let mut slice = &[0; 2]; - if x != y { - for i in 0..5 { - slice = slice.push_back(i as Field); - } - } else { - slice = slice.push_back(x); - } - slice -} - -fn merge_slices_mutate_two_ifs(x: Field, y: Field) -> [Field] { - let mut slice = &[0; 2]; - if x != y { - slice = slice.push_back(y); - slice = slice.push_back(x); - } else { - slice = slice.push_back(x); - } - - if x == 20 { - slice = slice.push_back(20); - } - - slice = slice.push_back(15); - slice = slice.push_back(30); - - slice -} - -fn merge_slices_mutate_between_ifs(x: Field, y: Field) -> [Field] { - let mut slice = &[0; 2]; - if x != y { - slice = slice.push_back(y); - slice = slice.push_back(x); - } else { - slice = slice.push_back(x); - } - - slice = slice.push_back(30); - - if x == 20 { - slice = slice.push_back(20); - } - - slice = slice.push_back(15); - - if x != 20 { - slice = slice.push_back(50); - } - - slice = slice.push_back(60); - - slice -} - -fn merge_slices_push_then_pop(x: Field, y: Field) { - let mut slice = &[0; 2]; - if x != y { - slice = slice.push_back(y); - slice = slice.push_back(x); - } else { - slice = slice.push_back(x); - } - - slice = slice.push_back(30); - - if x == 20 { - slice = slice.push_back(20); - } - - let (slice, elem) = slice.pop_back(); - assert(slice.len() == 4); - assert(elem == 30); - - let (slice, elem) = slice.pop_back(); - assert(slice.len() == 3); - assert(elem == x); -} - -fn merge_slices_push_then_insert(x: Field, y: Field) -> [Field] { - let mut slice = &[0; 2]; - if x != y { - slice = slice.push_back(y); - slice = slice.push_back(x); - } else { - slice = slice.push_back(x); - } - - slice = slice.push_back(30); - - if x == 20 { - slice = slice.push_back(20); - slice = slice.push_back(15); - } - - slice = slice.insert(1, 50); - // Test that we can use slice insert the same as slice push back - slice = slice.insert(6, 100); - - slice -} - -fn merge_slices_remove_between_ifs(x: Field, y: Field) -> [Field] { - let mut slice = &[0; 2]; - if x != y { - slice = slice.push_back(y); - slice = slice.push_back(x); - } else { - slice = slice.push_back(x); - } - - let (mut slice, elem) = slice.remove(2); - assert(elem == y); - - if x == 20 { - slice = slice.push_back(20); - } - - slice = slice.push_back(15); - - if x != 20 { - slice = slice.push_back(50); - } - - slice -} -// Previously, we'd get a type error when trying to assign an array of a different size to -// an existing array variable. Now, we infer the variable must be a slice. -fn regression_2370() { - let mut slice = &[]; - slice = &[1, 2, 3]; -} - -fn regression_4418(x: Field) { - let mut crash: [u8; 32] = x.to_be_bytes(); - - if x != 0 { - crash[0] = 10; - } -} - -fn regression_slice_call_result(x: Field, y: Field) { - let mut slice = merge_slices_return(x, y); - if x != 0 { - slice = slice.push_back(5); - slice = slice.push_back(10); - } else { - slice = slice.push_back(5); - } - assert(slice.len() == 5); - assert(slice[0] == 0); - assert(slice[1] == 0); - assert(slice[2] == 10); - assert(slice[3] == 5); - assert(slice[4] == 10); -} - -fn regression_4506() { - let slice: [Field] = &[1, 2, 3]; - assert(slice == slice); -} diff --git a/test_programs/execution_success/strings/Nargo.toml b/test_programs/execution_success/strings/Nargo.toml deleted file mode 100644 index 76a9beb6909..00000000000 --- a/test_programs/execution_success/strings/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "strings" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/strings/Prover.toml b/test_programs/execution_success/strings/Prover.toml deleted file mode 100644 index 0d1bd92b5de..00000000000 --- a/test_programs/execution_success/strings/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -message = "hello world" -y = 5 -hex_as_string = "0x41" -hex_as_field = "0x41" diff --git a/test_programs/execution_success/strings/src/main.nr b/test_programs/execution_success/strings/src/main.nr deleted file mode 100644 index d28a9f483ac..00000000000 --- a/test_programs/execution_success/strings/src/main.nr +++ /dev/null @@ -1,84 +0,0 @@ -// Test global string literals -global HELLO_WORLD = "hello world"; - -fn main(message: pub str<11>, y: Field, hex_as_string: str<4>, hex_as_field: Field) { - let mut bad_message = "hello world"; - - assert(message == "hello world"); - assert(message == HELLO_WORLD); - let x = 10; - let z = x * 5; - std::println(10); - std::print(10); - - std::println(z); // x * 5 in println not yet supported - std::print(z); - std::println(x); - std::print(x); - - let array = [1, 2, 3, 5, 8]; - assert(y == 5); // Change to y != 5 to see how the later print statements are not called - std::println(array); - std::print(array); - - bad_message = "hell\0\"world"; - std::println(bad_message); - std::print(bad_message); - assert(message != bad_message); - - let hash = std::hash::pedersen_commitment([x]); - std::println(hash); - std::print(hash); - - assert(hex_as_string == "0x41"); - // assert(hex_as_string != 0x41); This will fail with a type mismatch between str[4] and Field - assert(hex_as_field == 0x41); - - // Single digit & odd length hex literals are valid - assert(hex_as_field == 0x041); - assert(hex_as_field != 0x1); -} - -#[test] -fn test_prints_strings() { - let message = "hello world!"; - - std::println(message); - std::println("goodbye world"); - - std::print(message); - std::print("\n"); - std::print("goodbye world\n"); -} - -#[test] -fn test_prints_array() { - let array = [1, 2, 3, 5, 8]; - - let s = Test { a: 1, b: 2, c: [3, 4] }; - std::println(s); - - std::println(array); - - let hash = std::hash::pedersen_commitment(array); - std::println(hash); -} - -fn failed_constraint(hex_as_field: Field) { - // When this method is called from a test method or with constant values - // a `Failed constraint` compile error will be caught before this `println` - // is executed as the input will be a constant. - std::println(hex_as_field); - assert(hex_as_field != 0x41); -} - -#[test] -fn test_failed_constraint() { - failed_constraint(0x41); -} - -struct Test { - a: Field, - b: Field, - c: [Field; 2], -} diff --git a/test_programs/execution_success/struct/Nargo.toml b/test_programs/execution_success/struct/Nargo.toml deleted file mode 100644 index 6622edd0653..00000000000 --- a/test_programs/execution_success/struct/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "struct" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/struct/Prover.toml b/test_programs/execution_success/struct/Prover.toml deleted file mode 100644 index 7d59cc81807..00000000000 --- a/test_programs/execution_success/struct/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "0" -y = "1" \ No newline at end of file diff --git a/test_programs/execution_success/struct/src/main.nr b/test_programs/execution_success/struct/src/main.nr deleted file mode 100644 index de08f42f79d..00000000000 --- a/test_programs/execution_success/struct/src/main.nr +++ /dev/null @@ -1,75 +0,0 @@ -struct Foo { - bar: Field, - array: [Field; 2], -} - -struct Pair { - first: Foo, - second: Field, -} - -impl Foo { - fn default(x: Field, y: Field) -> Self { - Self { bar: 0, array: [x, y] } - } -} - -impl Pair { - fn foo(p: Self) -> Foo { - p.first - } - - fn bar(self) -> Field { - self.foo().bar - } -} - -struct Nested { - a: Field, - b: Field -} -struct MyStruct { - my_bool: bool, - my_int: u32, - my_nest: Nested, -} -fn test_struct_in_tuple(a_bool: bool, x: Field, y: Field) -> (MyStruct, bool) { - let my_struct = MyStruct { my_bool: a_bool, my_int: 5, my_nest: Nested { a: x, b: y } }; - (my_struct, a_bool) -} - -struct Animal { - legs: Field, - eyes: u8, -} - -fn get_dog() -> Animal { - let dog = Animal { legs: 4, eyes: 2 }; - dog -} - -struct Unit; - -fn main(x: Field, y: Field) { - let unit = Unit {}; - - let first = Foo::default(x, y); - let p = Pair { first, second: 1 }; - - assert(p.bar() == x); - assert(p.second == y); - assert(p.first.array[0] != p.first.array[1]); - // Nested structs - let (struct_from_tuple, a_bool) = test_struct_in_tuple(true, x, y); - assert(struct_from_tuple.my_bool == true); - assert(a_bool == true); - assert(struct_from_tuple.my_int == 5); - assert(struct_from_tuple.my_nest.a == 0); - // Regression test for issue #670 - let Animal { legs, eyes } = get_dog(); - let six = legs + eyes as Field; - - assert(six == 6); - - let Animal { legs: _, eyes: _ } = get_dog(); -} diff --git a/test_programs/execution_success/struct_array_inputs/Nargo.toml b/test_programs/execution_success/struct_array_inputs/Nargo.toml deleted file mode 100644 index 40160fb397f..00000000000 --- a/test_programs/execution_success/struct_array_inputs/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "struct_array_inputs" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/struct_array_inputs/Prover.toml b/test_programs/execution_success/struct_array_inputs/Prover.toml deleted file mode 100644 index c2212c1a9c9..00000000000 --- a/test_programs/execution_success/struct_array_inputs/Prover.toml +++ /dev/null @@ -1,11 +0,0 @@ -[[foos]] -bar = 0 -baz = 0 - -[[foos]] -bar = 0 -baz = 0 - -[[foos]] -bar = 1 -baz = 2 diff --git a/test_programs/execution_success/struct_array_inputs/src/main.nr b/test_programs/execution_success/struct_array_inputs/src/main.nr deleted file mode 100644 index 4a367558671..00000000000 --- a/test_programs/execution_success/struct_array_inputs/src/main.nr +++ /dev/null @@ -1,8 +0,0 @@ -struct Foo { - bar: Field, - baz: Field, -} - -fn main(foos: [Foo; 3]) -> pub Field { - foos[2].bar + foos[2].baz -} diff --git a/test_programs/execution_success/struct_fields_ordering/Nargo.toml b/test_programs/execution_success/struct_fields_ordering/Nargo.toml deleted file mode 100644 index 767f51acda3..00000000000 --- a/test_programs/execution_success/struct_fields_ordering/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "struct_fields_ordering" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/struct_fields_ordering/Prover.toml b/test_programs/execution_success/struct_fields_ordering/Prover.toml deleted file mode 100644 index 70640bba4cc..00000000000 --- a/test_programs/execution_success/struct_fields_ordering/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -[y] -foo = "5" -bar = "7" diff --git a/test_programs/execution_success/struct_fields_ordering/src/main.nr b/test_programs/execution_success/struct_fields_ordering/src/main.nr deleted file mode 100644 index 1a2e2d462e2..00000000000 --- a/test_programs/execution_success/struct_fields_ordering/src/main.nr +++ /dev/null @@ -1,12 +0,0 @@ -// Note that fields are not in alphabetical order. -// We want to check that this ordering is maintained -struct myStruct { - foo: u32, - bar: Field, -} - -fn main(y: pub myStruct) { - assert(y.foo == 5); - assert(y.bar == 7); -} - diff --git a/test_programs/execution_success/struct_inputs/Nargo.toml b/test_programs/execution_success/struct_inputs/Nargo.toml deleted file mode 100644 index 7dd6f78b750..00000000000 --- a/test_programs/execution_success/struct_inputs/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "struct_inputs" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/struct_inputs/Prover.toml b/test_programs/execution_success/struct_inputs/Prover.toml deleted file mode 100644 index 339da5b1a00..00000000000 --- a/test_programs/execution_success/struct_inputs/Prover.toml +++ /dev/null @@ -1,19 +0,0 @@ -x = "5" - -[y] -foo = "5" -bar = "10" -message = "hello" - -[z] -val = "1" -array = [0, 1] -message = "helld" - -[a] -baz = 0 - -[a.bar_struct] -val = "1" -array = [0, 1] -message = "hello" diff --git a/test_programs/execution_success/struct_inputs/src/foo.nr b/test_programs/execution_success/struct_inputs/src/foo.nr deleted file mode 100644 index ea3a6bbe25f..00000000000 --- a/test_programs/execution_success/struct_inputs/src/foo.nr +++ /dev/null @@ -1,6 +0,0 @@ -mod bar; - -struct fooStruct { - bar_struct: bar::barStruct, - baz: Field, -} diff --git a/test_programs/execution_success/struct_inputs/src/foo/bar.nr b/test_programs/execution_success/struct_inputs/src/foo/bar.nr deleted file mode 100644 index 6d879326677..00000000000 --- a/test_programs/execution_success/struct_inputs/src/foo/bar.nr +++ /dev/null @@ -1,7 +0,0 @@ -global N = 2; - -struct barStruct { - val: Field, - array: [Field; 2], - message: str<5>, -} diff --git a/test_programs/execution_success/struct_inputs/src/main.nr b/test_programs/execution_success/struct_inputs/src/main.nr deleted file mode 100644 index 5b03483cbaf..00000000000 --- a/test_programs/execution_success/struct_inputs/src/main.nr +++ /dev/null @@ -1,34 +0,0 @@ -mod foo; - -struct myStruct { - foo: u32, - bar: Field, - message: str<5>, -} - -fn main(x: Field, y: pub myStruct, z: pub foo::bar::barStruct, a: pub foo::fooStruct) -> pub Field { - let struct_from_bar = foo::bar::barStruct { val: 1, array: [0, 1], message: "hello" }; - - check_inner_struct(a, z); - - for i in 0..struct_from_bar.array.len() { - assert(struct_from_bar.array[i] == z.array[i]); - } - assert(z.val == struct_from_bar.val); - - assert((struct_from_bar.val * x) == x); - - assert(x != y.bar); - - assert(y.message == "hello"); - assert(a.bar_struct.message == struct_from_bar.message); - - a.bar_struct.array[1] -} - -fn check_inner_struct(a: foo::fooStruct, z: foo::bar::barStruct) { - assert(a.bar_struct.val == z.val); - for i in 0..a.bar_struct.array.len() { - assert(a.bar_struct.array[i] == z.array[i]); - } -} diff --git a/test_programs/execution_success/submodules/Nargo.toml b/test_programs/execution_success/submodules/Nargo.toml deleted file mode 100644 index 082afdf3f10..00000000000 --- a/test_programs/execution_success/submodules/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "submodules" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/submodules/Prover.toml b/test_programs/execution_success/submodules/Prover.toml deleted file mode 100644 index b6626a67e19..00000000000 --- a/test_programs/execution_success/submodules/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = 1 -y = 0 diff --git a/test_programs/execution_success/submodules/src/main.nr b/test_programs/execution_success/submodules/src/main.nr deleted file mode 100644 index f937af74627..00000000000 --- a/test_programs/execution_success/submodules/src/main.nr +++ /dev/null @@ -1,15 +0,0 @@ -use my_submodule::my_helper; - -fn main(x: u1, y: u1) { - my_helper(); - my_submodule::my_bool_or(x, y); -} - -mod my_submodule { - pub fn my_bool_or(x: u1, y: u1) { - assert(x | y == 1); - } - - pub fn my_helper() {} -} - diff --git a/test_programs/execution_success/to_be_bytes/Nargo.toml b/test_programs/execution_success/to_be_bytes/Nargo.toml deleted file mode 100644 index e9d2e30b4c4..00000000000 --- a/test_programs/execution_success/to_be_bytes/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "to_be_bytes" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/to_be_bytes/Prover.toml b/test_programs/execution_success/to_be_bytes/Prover.toml deleted file mode 100644 index 07fe857ac7c..00000000000 --- a/test_programs/execution_success/to_be_bytes/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "2040124" diff --git a/test_programs/execution_success/to_be_bytes/src/main.nr b/test_programs/execution_success/to_be_bytes/src/main.nr deleted file mode 100644 index 062f9f763d5..00000000000 --- a/test_programs/execution_success/to_be_bytes/src/main.nr +++ /dev/null @@ -1,13 +0,0 @@ -fn main(x: Field) -> pub [u8; 31] { - // The result of this byte array will be big-endian - let byte_array: [u8; 31] = x.to_be_bytes(); - let mut bytes = [0; 31]; - for i in 0..31 { - bytes[i] = byte_array[i]; - } - if (bytes[30] != 60) | (bytes[29] != 33) | (bytes[28] != 31) { - assert(false); - } - assert(Field::from_be_bytes::<31>(bytes) == x); - bytes -} diff --git a/test_programs/execution_success/to_bits/Nargo.toml b/test_programs/execution_success/to_bits/Nargo.toml deleted file mode 100644 index ef47f3b4ba1..00000000000 --- a/test_programs/execution_success/to_bits/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "to_bits" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/to_bits/src/main.nr b/test_programs/execution_success/to_bits/src/main.nr deleted file mode 100644 index dc2ff4be394..00000000000 --- a/test_programs/execution_success/to_bits/src/main.nr +++ /dev/null @@ -1,21 +0,0 @@ -fn main() { - let field = 1000; - let be_bits: [u1; 16] = field.to_be_bits(); - let le_bits: [u1; 16] = field.to_le_bits(); - - for i in 0..16 { - let x = be_bits[i]; - let y = le_bits[15 - i]; - assert(x == y); - } - - let x = 3; - let be_bits_x: [u1; 4] = x.to_be_bits(); - let le_bits_x: [u1; 4] = x.to_le_bits(); - - for i in 0..4 { - let be_bit = be_bits_x[i]; - let le_bit = le_bits_x[3 - i]; - assert(be_bit == le_bit); - } -} diff --git a/test_programs/execution_success/to_bytes_consistent/Nargo.toml b/test_programs/execution_success/to_bytes_consistent/Nargo.toml deleted file mode 100644 index 1e117b83883..00000000000 --- a/test_programs/execution_success/to_bytes_consistent/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "to_bytes_consistent" -type = "bin" -authors = [""] -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/to_bytes_consistent/Prover.toml b/test_programs/execution_success/to_bytes_consistent/Prover.toml deleted file mode 100644 index 07fe857ac7c..00000000000 --- a/test_programs/execution_success/to_bytes_consistent/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "2040124" diff --git a/test_programs/execution_success/to_bytes_consistent/src/main.nr b/test_programs/execution_success/to_bytes_consistent/src/main.nr deleted file mode 100644 index a51d52da855..00000000000 --- a/test_programs/execution_success/to_bytes_consistent/src/main.nr +++ /dev/null @@ -1,13 +0,0 @@ -// This test aims to check that we have consistent behavior -// between a `to_be_bytes` call (which is radix decomposition under the hood) -// with constant inputs or with witness inputs. -// x = 2040124 -fn main(x: Field) { - let byte_array: [u8; 31] = x.to_be_bytes(); - let x_as_constant = 2040124; - let constant_byte_array: [u8; 31] = x_as_constant.to_be_bytes(); - assert(constant_byte_array.len() == byte_array.len()); - for i in 0..constant_byte_array.len() { - assert(constant_byte_array[i] == byte_array[i]); - } -} diff --git a/test_programs/execution_success/to_bytes_integration/Nargo.toml b/test_programs/execution_success/to_bytes_integration/Nargo.toml deleted file mode 100644 index c89c32eb06c..00000000000 --- a/test_programs/execution_success/to_bytes_integration/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "to_bytes_integration" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/to_bytes_integration/Prover.toml b/test_programs/execution_success/to_bytes_integration/Prover.toml deleted file mode 100644 index bc4693e434a..00000000000 --- a/test_programs/execution_success/to_bytes_integration/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "2040124" -a = "0x2000000000000000000000000000000000000000000000000000000000000000" diff --git a/test_programs/execution_success/to_bytes_integration/src/main.nr b/test_programs/execution_success/to_bytes_integration/src/main.nr deleted file mode 100644 index 21245378971..00000000000 --- a/test_programs/execution_success/to_bytes_integration/src/main.nr +++ /dev/null @@ -1,23 +0,0 @@ -fn main(x: Field, a: Field) { - let y: Field = 2040124; - let be_byte_array: [u8; 31] = y.to_be_bytes(); - let le_byte_array: [u8; 31] = x.to_le_bytes(); - - assert(le_byte_array[0] == 60); - assert(le_byte_array[0] == be_byte_array[30]); - assert(le_byte_array[1] == be_byte_array[29]); - assert(le_byte_array[2] == be_byte_array[28]); - - let z = 0 - 1; - let p_bytes = std::field::modulus_le_bytes(); - let z_bytes: [u8; 32] = z.to_le_bytes(); - assert(p_bytes[10] == z_bytes[10]); - assert(p_bytes[0] == z_bytes[0] as u8 + 1 as u8); - - let p_bits = std::field::modulus_le_bits(); - let z_bits: [u1; 254] = z.to_le_bits(); - assert(z_bits[0] == 0); - assert(p_bits[100] == z_bits[100]); - - let _: [u1; 254] = a.to_le_bits(); -} diff --git a/test_programs/execution_success/to_le_bytes/Nargo.toml b/test_programs/execution_success/to_le_bytes/Nargo.toml deleted file mode 100644 index 3d02c3510fd..00000000000 --- a/test_programs/execution_success/to_le_bytes/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "to_le_bytes" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/to_le_bytes/Prover.toml b/test_programs/execution_success/to_le_bytes/Prover.toml deleted file mode 100644 index bf58776d557..00000000000 --- a/test_programs/execution_success/to_le_bytes/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "2040124" -cond = false \ No newline at end of file diff --git a/test_programs/execution_success/to_le_bytes/src/main.nr b/test_programs/execution_success/to_le_bytes/src/main.nr deleted file mode 100644 index 867551b6dbd..00000000000 --- a/test_programs/execution_success/to_le_bytes/src/main.nr +++ /dev/null @@ -1,13 +0,0 @@ -fn main(x: Field, cond: bool) -> pub [u8; 31] { - // The result of this byte array will be little-endian - let byte_array: [u8; 31] = x.to_le_bytes(); - assert(byte_array.len() == 31); - assert(Field::from_le_bytes::<31>(byte_array) == x); - if cond { - // We've set x = "2040124" so we shouldn't be able to represent this as a single byte. - let bad_byte_array: [u8; 1] = x.to_le_bytes(); - assert_eq(bad_byte_array.len(), 1); - } - - byte_array -} diff --git a/test_programs/execution_success/trait_as_return_type/Nargo.toml b/test_programs/execution_success/trait_as_return_type/Nargo.toml deleted file mode 100644 index afd89f0c3a1..00000000000 --- a/test_programs/execution_success/trait_as_return_type/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "trait_as_return_type" -type = "bin" -authors = [""] -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/trait_as_return_type/Prover.toml b/test_programs/execution_success/trait_as_return_type/Prover.toml deleted file mode 100644 index a0cd58138b6..00000000000 --- a/test_programs/execution_success/trait_as_return_type/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "5" \ No newline at end of file diff --git a/test_programs/execution_success/trait_as_return_type/src/main.nr b/test_programs/execution_success/trait_as_return_type/src/main.nr deleted file mode 100644 index f6828a356c1..00000000000 --- a/test_programs/execution_success/trait_as_return_type/src/main.nr +++ /dev/null @@ -1,51 +0,0 @@ -trait SomeTrait { - fn magic_number(self) -> Field; -} - -struct A {} -struct B {} -struct C { - x: Field -} - -impl SomeTrait for A { - fn magic_number(self) -> Field { - 2 - } -} - -impl SomeTrait for B { - fn magic_number(self) -> Field { - 4 - } -} - -impl SomeTrait for C { - fn magic_number(self) -> Field { - self.x - } -} - -fn factory_a() -> impl SomeTrait { - A {} -} - -fn factory_b() -> impl SomeTrait { - B {} -} - -fn factory_c(x: Field) -> impl SomeTrait { - C { x } -} -// x = 15 -fn main(x: u32) { - let a = factory_a(); - let b = B {}; - let b2 = factory_b(); - assert(a.magic_number() == 2); - assert(b.magic_number() == 4); - assert(b2.magic_number() == 4); - let c = factory_c(10); - assert(c.magic_number() == 10); - assert(factory_c(13).magic_number() == 13); -} diff --git a/test_programs/execution_success/trait_impl_base_type/Nargo.toml b/test_programs/execution_success/trait_impl_base_type/Nargo.toml deleted file mode 100644 index 845498737c1..00000000000 --- a/test_programs/execution_success/trait_impl_base_type/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "trait_impl_base_type" -type = "bin" -authors = [""] -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/trait_impl_base_type/Prover.toml b/test_programs/execution_success/trait_impl_base_type/Prover.toml deleted file mode 100644 index a0cd58138b6..00000000000 --- a/test_programs/execution_success/trait_impl_base_type/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "5" \ No newline at end of file diff --git a/test_programs/execution_success/trait_impl_base_type/src/main.nr b/test_programs/execution_success/trait_impl_base_type/src/main.nr deleted file mode 100644 index e12cf019e0b..00000000000 --- a/test_programs/execution_success/trait_impl_base_type/src/main.nr +++ /dev/null @@ -1,107 +0,0 @@ -trait Fieldable { - fn to_field(self) -> Field; -} - -impl Fieldable for u32 { - fn to_field(self) -> Field { - let res = self as Field; - res * 3 - } -} - -impl Fieldable for [u32; 3] { - fn to_field(self) -> Field { - let res = self[0] + self[1] + self[2]; - res as Field - } -} - -impl Fieldable for bool { - fn to_field(self) -> Field { - if self { 14 } else { 3 } - } -} - -impl Fieldable for (u32, bool) { - fn to_field(self) -> Field { - if self.1 { self.0 as Field } else { 32 } - } -} - -impl Fieldable for Field { - fn to_field(self) -> Field { - self - } -} - -impl Fieldable for str<6> { - fn to_field(self) -> Field { - 6 - } -} - -impl Fieldable for () { - fn to_field(self) -> Field { - 0 - } -} - -type Point2D = [Field; 2]; -type Point2DAlias = Point2D; - -impl Fieldable for Point2DAlias { - fn to_field(self) -> Field { - self[0] + self[1] - } -} - -impl Fieldable for fmtstr<14, (Field, Field)> { - fn to_field(self) -> Field { - 52 - } -} - -impl Fieldable for fn(u32) -> u32 { - fn to_field(self) -> Field { - self(10) as Field - } -} - -fn some_func(x: u32) -> u32 { - x * 2 - 3 -} - -impl Fieldable for u64 { - fn to_field(self) -> Field { - 66 as Field - } -} -// x = 15 -fn main(x: u32) { - assert(x.to_field() == 15); - let arr: [u32; 3] = [3, 5, 8]; - assert(arr.to_field() == 16); - let b_true = 2 == 2; - assert(b_true.to_field() == 14); - let b_false = 2 == 3; - assert(b_false.to_field() == 3); - let f = 13 as Field; - assert(f.to_field() == 13); - let k_true = (12 as u32, true); - assert(k_true.to_field() == 12); - let k_false = (11 as u32, false); - assert(k_false.to_field() == 32); - let m = "String"; - assert(m.to_field() == 6); - let unit = (); - assert(unit.to_field() == 0); - let point: Point2DAlias = [2, 3]; - assert(point.to_field() == 5); - let i: Field = 2; - let j: Field = 6; - assert(f"i: {i}, j: {j}".to_field() == 52); - assert(some_func.to_field() == 17); - - let mut y = 0 as u64; - assert(y.to_field() == 66); -} diff --git a/test_programs/execution_success/trait_inheritance/Nargo.toml b/test_programs/execution_success/trait_inheritance/Nargo.toml deleted file mode 100644 index b8390fc800d..00000000000 --- a/test_programs/execution_success/trait_inheritance/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "trait_inheritance" -type = "bin" -authors = [""] -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/trait_inheritance/Prover.toml b/test_programs/execution_success/trait_inheritance/Prover.toml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/test_programs/execution_success/trait_inheritance/src/main.nr b/test_programs/execution_success/trait_inheritance/src/main.nr deleted file mode 100644 index 1d17d386189..00000000000 --- a/test_programs/execution_success/trait_inheritance/src/main.nr +++ /dev/null @@ -1,33 +0,0 @@ -trait Foo { - fn foo(self) -> Field; -} - -trait Bar: Foo { - fn bar(self) -> Field { - self.foo() + 1 - } - - fn baz(self) -> Field; -} - -struct Struct { - x: Field, -} - -impl Foo for Struct { - fn foo(self) -> Field { - self.x - } -} - -impl Bar for Struct { - fn baz(self) -> Field { - self.foo() + 2 - } -} - -fn main() { - let s = Struct { x: 1 }; - assert_eq(s.bar(), 2); - assert_eq(s.baz(), 3); -} diff --git a/test_programs/execution_success/traits_in_crates_1/Nargo.toml b/test_programs/execution_success/traits_in_crates_1/Nargo.toml deleted file mode 100644 index 555c3b38b98..00000000000 --- a/test_programs/execution_success/traits_in_crates_1/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "traits_in_crates_1" -type = "bin" -authors = [""] -[dependencies] -crate1 = { path = "crate1" } -crate2 = { path = "crate2" } diff --git a/test_programs/execution_success/traits_in_crates_1/Prover.toml b/test_programs/execution_success/traits_in_crates_1/Prover.toml deleted file mode 100644 index c2005d59807..00000000000 --- a/test_programs/execution_success/traits_in_crates_1/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = 1 -y = 11 diff --git a/test_programs/execution_success/traits_in_crates_1/crate1/Nargo.toml b/test_programs/execution_success/traits_in_crates_1/crate1/Nargo.toml deleted file mode 100644 index f49603ba203..00000000000 --- a/test_programs/execution_success/traits_in_crates_1/crate1/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "crate1" -type = "lib" -authors = [""] -[dependencies] -crate2 = { path = "../crate2" } diff --git a/test_programs/execution_success/traits_in_crates_1/crate1/src/lib.nr b/test_programs/execution_success/traits_in_crates_1/crate1/src/lib.nr deleted file mode 100644 index e36a263093a..00000000000 --- a/test_programs/execution_success/traits_in_crates_1/crate1/src/lib.nr +++ /dev/null @@ -1,9 +0,0 @@ -trait MyTrait { - fn Add10(&mut self); -} - -impl MyTrait for crate2::MyStruct { - fn Add10(&mut self) { - self.Q += 10; - } -} diff --git a/test_programs/execution_success/traits_in_crates_1/crate2/Nargo.toml b/test_programs/execution_success/traits_in_crates_1/crate2/Nargo.toml deleted file mode 100644 index c86c5edf51a..00000000000 --- a/test_programs/execution_success/traits_in_crates_1/crate2/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "crate2" -type = "lib" -authors = [""] -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/traits_in_crates_1/crate2/src/lib.nr b/test_programs/execution_success/traits_in_crates_1/crate2/src/lib.nr deleted file mode 100644 index c59bf0387c1..00000000000 --- a/test_programs/execution_success/traits_in_crates_1/crate2/src/lib.nr +++ /dev/null @@ -1,3 +0,0 @@ -struct MyStruct { - Q: Field, -} diff --git a/test_programs/execution_success/traits_in_crates_1/src/main.nr b/test_programs/execution_success/traits_in_crates_1/src/main.nr deleted file mode 100644 index 2afec29ee1f..00000000000 --- a/test_programs/execution_success/traits_in_crates_1/src/main.nr +++ /dev/null @@ -1,5 +0,0 @@ -fn main(x: Field, y: pub Field) { - let mut V = crate2::MyStruct { Q: x }; - V.Add10(); - assert(V.Q == y); -} diff --git a/test_programs/execution_success/traits_in_crates_2/Nargo.toml b/test_programs/execution_success/traits_in_crates_2/Nargo.toml deleted file mode 100644 index 11a86a08402..00000000000 --- a/test_programs/execution_success/traits_in_crates_2/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "traits_in_crates_2" -type = "bin" -authors = [""] -[dependencies] -crate1 = { path = "crate1" } -crate2 = { path = "crate2" } diff --git a/test_programs/execution_success/traits_in_crates_2/Prover.toml b/test_programs/execution_success/traits_in_crates_2/Prover.toml deleted file mode 100644 index c2005d59807..00000000000 --- a/test_programs/execution_success/traits_in_crates_2/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = 1 -y = 11 diff --git a/test_programs/execution_success/traits_in_crates_2/crate1/Nargo.toml b/test_programs/execution_success/traits_in_crates_2/crate1/Nargo.toml deleted file mode 100644 index de1eddf2cf0..00000000000 --- a/test_programs/execution_success/traits_in_crates_2/crate1/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "crate1" -type = "lib" -authors = [""] -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/traits_in_crates_2/crate1/src/lib.nr b/test_programs/execution_success/traits_in_crates_2/crate1/src/lib.nr deleted file mode 100644 index 59a28a50c79..00000000000 --- a/test_programs/execution_success/traits_in_crates_2/crate1/src/lib.nr +++ /dev/null @@ -1,3 +0,0 @@ -trait MyTrait { - fn Add10(&mut self); -} diff --git a/test_programs/execution_success/traits_in_crates_2/crate2/Nargo.toml b/test_programs/execution_success/traits_in_crates_2/crate2/Nargo.toml deleted file mode 100644 index 885d41f0a27..00000000000 --- a/test_programs/execution_success/traits_in_crates_2/crate2/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "crate2" -type = "lib" -authors = [""] -[dependencies] -crate1 = { path = "../crate1" } diff --git a/test_programs/execution_success/traits_in_crates_2/crate2/src/lib.nr b/test_programs/execution_success/traits_in_crates_2/crate2/src/lib.nr deleted file mode 100644 index fe6a94a4a95..00000000000 --- a/test_programs/execution_success/traits_in_crates_2/crate2/src/lib.nr +++ /dev/null @@ -1,9 +0,0 @@ -struct MyStruct { - Q: Field, -} - -impl crate1::MyTrait for MyStruct { - fn Add10(&mut self) { - self.Q += 10; - } -} diff --git a/test_programs/execution_success/traits_in_crates_2/src/main.nr b/test_programs/execution_success/traits_in_crates_2/src/main.nr deleted file mode 100644 index 2afec29ee1f..00000000000 --- a/test_programs/execution_success/traits_in_crates_2/src/main.nr +++ /dev/null @@ -1,5 +0,0 @@ -fn main(x: Field, y: pub Field) { - let mut V = crate2::MyStruct { Q: x }; - V.Add10(); - assert(V.Q == y); -} diff --git a/test_programs/execution_success/tuple_inputs/Nargo.toml b/test_programs/execution_success/tuple_inputs/Nargo.toml deleted file mode 100644 index f4af6cfe6e3..00000000000 --- a/test_programs/execution_success/tuple_inputs/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "tuple_inputs" -type = "bin" -authors = [""] -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/tuple_inputs/Prover.toml b/test_programs/execution_success/tuple_inputs/Prover.toml deleted file mode 100644 index 43d62a7a15b..00000000000 --- a/test_programs/execution_success/tuple_inputs/Prover.toml +++ /dev/null @@ -1,12 +0,0 @@ -pair = [1, 0] -x = [[0, 1, 2], [3, 4, 5]] - -[[struct_pair]] -a = "1" -b = ["2", "3", "20"] - -[struct_pair.bar] -inner = ["100", "101", "102"] - -[[struct_pair]] -inner = ["103", "104", "105"] diff --git a/test_programs/execution_success/tuple_inputs/src/main.nr b/test_programs/execution_success/tuple_inputs/src/main.nr deleted file mode 100644 index 38fec58f14f..00000000000 --- a/test_programs/execution_success/tuple_inputs/src/main.nr +++ /dev/null @@ -1,35 +0,0 @@ -struct Bar { - inner: [Field; 3], -} - -struct Foo { - a: Field, - b: [Field; 3], - bar: Bar, -} - -fn main(pair: (Field, Field), x: [(u8, u8, u8); 2], struct_pair: (Foo, Bar)) -> pub (Field, u8) { - let mut start_val = 0; - for i in 0..2 { - assert(x[i].0 == start_val); - assert(x[i].1 == start_val + 1); - assert(x[i].2 == start_val + 2); - start_val += 3; - } - - assert(struct_pair.0.a == 1); - assert(struct_pair.0.b == [2, 3, 20]); - assert(struct_pair.0.bar.inner == [100, 101, 102]); - assert(struct_pair.1.inner == [103, 104, 105]); - - let (u, v) = if pair.0 as u32 < 1 { - (pair.0, pair.0 + 1) - } else { - (pair.0 + 1, pair.0) - }; - - assert(u == pair.0 + 1); - assert(v == pair.0); - - (u, v as u8) -} diff --git a/test_programs/execution_success/tuples/Nargo.toml b/test_programs/execution_success/tuples/Nargo.toml deleted file mode 100644 index f6ed9f1e649..00000000000 --- a/test_programs/execution_success/tuples/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "tuples" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/tuples/Prover.toml b/test_programs/execution_success/tuples/Prover.toml deleted file mode 100644 index a0397e89477..00000000000 --- a/test_programs/execution_success/tuples/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "0" diff --git a/test_programs/execution_success/tuples/src/main.nr b/test_programs/execution_success/tuples/src/main.nr deleted file mode 100644 index 5526fcad422..00000000000 --- a/test_programs/execution_success/tuples/src/main.nr +++ /dev/null @@ -1,22 +0,0 @@ -fn main(x: Field, y: Field) { - let pair = (x, y); - assert(pair.0 == 1); - assert(pair.1 == 0); - - let (a, b) = if true { (0, 1) } else { (2, 3) }; - assert(a == 0); - assert(b == 1); - - let (u, v) = if x as u32 < 1 { (x, x + 1) } else { (x + 1, x) }; - assert(u == x + 1); - assert(v == x); - // Test mutating tuples - let mut mutable = ((0, 0), 1, 2, 3); - mutable.0 = (x, y); - mutable.2 = 7; - assert(mutable.0.0 == 1); - assert(mutable.0.1 == 0); - assert(mutable.1 == 1); - assert(mutable.2 == 7); - assert(mutable.3 == 3); -} diff --git a/test_programs/execution_success/type_aliases/Nargo.toml b/test_programs/execution_success/type_aliases/Nargo.toml deleted file mode 100644 index a12df601a91..00000000000 --- a/test_programs/execution_success/type_aliases/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "type_aliases" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/type_aliases/Prover.toml b/test_programs/execution_success/type_aliases/Prover.toml deleted file mode 100644 index 771df41899d..00000000000 --- a/test_programs/execution_success/type_aliases/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = [2, 3] diff --git a/test_programs/execution_success/type_aliases/src/main.nr b/test_programs/execution_success/type_aliases/src/main.nr deleted file mode 100644 index ee62b0b7260..00000000000 --- a/test_programs/execution_success/type_aliases/src/main.nr +++ /dev/null @@ -1,33 +0,0 @@ -type Foo = [T; 2]; - -type Bar = Field; - -type One = (A, B); -type Two = One; -type Three = Two; - -struct MyStruct { - foo: Bar, -} - -fn main(x: [Field; 2]) { - let a: Foo = [1, 2]; - assert(a[0] != x[0]); - - let b: Bar = 2; - assert(x[0] == b); - - let c: u8 = 1; - let d: u32 = 2; - let e: Three = (c, d); - assert(e.0 == 1); - - let s = MyStruct { foo: 10 }; - assert(s.foo == 10); - - let _regression2502: Regression2502Alias = Regression2502 {}; -} -// An ICE was occurring if a type alias referred to a struct before it was initialized -// during name resolution. The fix was to initialize structs during def collection instead. -type Regression2502Alias = Regression2502; -struct Regression2502 {} diff --git a/test_programs/execution_success/u128/Nargo.toml b/test_programs/execution_success/u128/Nargo.toml deleted file mode 100644 index c1dcd84db04..00000000000 --- a/test_programs/execution_success/u128/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "u128" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/u128/Prover.toml b/test_programs/execution_success/u128/Prover.toml deleted file mode 100644 index 961db9825a7..00000000000 --- a/test_programs/execution_success/u128/Prover.toml +++ /dev/null @@ -1,7 +0,0 @@ -x = "3" -y = "4" -z = "7" -hexa ="0x1f03a" -[big_int] -lo = 1 -hi = 2 \ No newline at end of file diff --git a/test_programs/execution_success/u128/src/main.nr b/test_programs/execution_success/u128/src/main.nr deleted file mode 100644 index d0835ccf30f..00000000000 --- a/test_programs/execution_success/u128/src/main.nr +++ /dev/null @@ -1,42 +0,0 @@ -fn main(mut x: u32, y: u32, z: u32, big_int: U128, hexa: str<7>) { - let a = U128::from_u64s_le(x as u64, x as u64); - let b = U128::from_u64s_le(y as u64, x as u64); - let c = a + b; - assert(c.lo == z as Field); - assert(c.hi == 2 * x as Field); - assert(U128::from_hex(hexa).lo == 0x1f03a); - let t1 = U128::from_hex("0x9d9c7a87771f03a23783f9d9c7a8777"); - let t2 = U128::from_hex("0x45a26c708BFCF39041"); - let t = t1 + t2; - assert(t.lo == 0xc5e4b029996e17b8); - assert(t.hi == 0x09d9c7a87771f07f); - let t3 = U128::from_le_bytes(t.to_le_bytes()); - assert(t == t3); - - let t4 = t - t2; - assert(t4 == t1); - - let t5 = U128::from_u64s_le(0, 1); - let t6 = U128::from_u64s_le(1, 0); - assert((t5 - t6).hi == 0); - - assert( - (U128::from_hex("0x71f03a23783f9d9c7a8777") * U128::from_hex("0x8BFCF39041")).hi - == U128::from_hex("0x3e4e0471b873470e247c824e61445537").hi - ); - let q = U128::from_hex("0x3e4e0471b873470e247c824e61445537") / U128::from_hex("0x8BFCF39041"); - assert(q == U128::from_hex("0x71f03a23783f9d9c7a8777")); - - assert(big_int.hi == 2); - - let mut small_int = U128::from_integer(x); - assert(small_int.lo == x as Field); - assert(x == small_int.to_integer()); - let shift = small_int << (x as u8); - assert(shift == U128::from_integer(x << (x as u8))); - assert(shift >> (x as u8) == small_int); - assert(shift >> 127 == U128::from_integer(0)); - assert(shift << 127 == U128::from_integer(0)); - assert(U128::from_integer(3).to_integer() == 3); -} - diff --git a/test_programs/execution_success/u16_support/Nargo.toml b/test_programs/execution_success/u16_support/Nargo.toml deleted file mode 100644 index 1c6b58e01e8..00000000000 --- a/test_programs/execution_success/u16_support/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "u16_support" -type = "bin" -authors = [""] -compiler_version = ">=0.29.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/u16_support/Prover.toml b/test_programs/execution_success/u16_support/Prover.toml deleted file mode 100644 index a56a84e61a4..00000000000 --- a/test_programs/execution_success/u16_support/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "2" diff --git a/test_programs/execution_success/u16_support/src/main.nr b/test_programs/execution_success/u16_support/src/main.nr deleted file mode 100644 index ca41c708077..00000000000 --- a/test_programs/execution_success/u16_support/src/main.nr +++ /dev/null @@ -1,26 +0,0 @@ -fn main(x: u16) { - test_u16(x); - unsafe { - test_u16_unconstrained(x); - } -} - -unconstrained fn test_u16_unconstrained(x: u16) { - test_u16(x) -} - -fn test_u16(x: u16) { - let t1: u16 = 1234; - let t2: u16 = 4321; - let t = t1 + t2; - - let t4 = t - t2; - assert(t4 == t1); - - let mut small_int = x as u16; - let shift = small_int << (x as u8); - assert(shift == 8); - assert(shift >> (x as u8) == small_int); - assert(shift >> 15 == 0); - assert(shift << 15 == 0); -} diff --git a/test_programs/execution_success/uhashmap/Nargo.toml b/test_programs/execution_success/uhashmap/Nargo.toml deleted file mode 100644 index 0d898e53003..00000000000 --- a/test_programs/execution_success/uhashmap/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "uhashmap" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/uhashmap/Prover.toml b/test_programs/execution_success/uhashmap/Prover.toml deleted file mode 100644 index 84d4c0733e4..00000000000 --- a/test_programs/execution_success/uhashmap/Prover.toml +++ /dev/null @@ -1,26 +0,0 @@ -# Input: 6 key-value entries for hashmap capacity of 8. -# These must be distinct (both key-to-key, and value-to-value) for correct testing. - -[[input]] -key = 2 -value = 17 - -[[input]] -key = 3 -value = 19 - -[[input]] -key = 5 -value = 23 - -[[input]] -key = 7 -value = 29 - -[[input]] -key = 11 -value = 31 - -[[input]] -key = 41 -value = 43 \ No newline at end of file diff --git a/test_programs/execution_success/uhashmap/src/main.nr b/test_programs/execution_success/uhashmap/src/main.nr deleted file mode 100644 index f2ca6813713..00000000000 --- a/test_programs/execution_success/uhashmap/src/main.nr +++ /dev/null @@ -1,356 +0,0 @@ -use std::collections::umap::UHashMap; -use std::hash::BuildHasherDefault; -use std::hash::poseidon2::Poseidon2Hasher; - -type K = Field; -type V = Field; - -// It is more convenient and readable to use structs as input. -struct Entry{ - key: Field, - value: Field -} - -global HASHMAP_LEN = 6; - -global FIELD_CMP = |a: Field, b: Field| a.lt(b); - -global K_CMP = FIELD_CMP; -global V_CMP = FIELD_CMP; -global KV_CMP = |a: (K, V), b: (K, V)| a.0.lt(b.0); - -global ALLOCATE_HASHMAP = || -> UHashMap> - UHashMap::default(); - -unconstrained fn main(input: [Entry; HASHMAP_LEN]) { - test_sequential(input[0].key, input[0].value); - test_multiple_equal_insert(input[1].key, input[1].value); - test_value_override(input[2].key, input[2].value, input[3].value); - test_insert_and_methods(input); - test_hashmaps_equality(input); - test_retain(); - test_iterators(); - test_mut_iterators(); - - doc_tests(); -} - -// Insert, get, remove. -unconstrained fn test_sequential(key: K, value: V) { - let mut hashmap = ALLOCATE_HASHMAP(); - assert(hashmap.is_empty(), "New UHashMap should be empty."); - - hashmap.insert(key, value); - assert(hashmap.len() == 1, "UHashMap after one insert should have a length of 1 element."); - - let got = hashmap.get(key); - assert(got.is_some(), "Got none value."); - let got = got.unwrap_unchecked(); - assert(value == got, f"Inserted {value} but got {got} for the same key."); - - hashmap.remove(key); - assert(hashmap.is_empty(), "UHashMap after one insert and corresponding removal should be empty."); - let got = hashmap.get(key); - assert(got.is_none(), "Value has been removed, but is still available (not none)."); -} - -// Insert same pair several times. -unconstrained fn test_multiple_equal_insert(key: K, value: V) { - let mut hashmap = ALLOCATE_HASHMAP(); - assert(hashmap.is_empty(), "New UHashMap should be empty."); - - for _ in 0..HASHMAP_LEN { - hashmap.insert(key, value); - } - - let len = hashmap.len(); - assert(len == 1, f"UHashMap length must be 1, got {len}."); - - let got = hashmap.get(key); - assert(got.is_some(), "Got none value."); - let got = got.unwrap_unchecked(); - assert(value == got, f"Inserted {value} but got {got} for the same key."); -} - -// Override value for existing pair. -unconstrained fn test_value_override(key: K, value: V, new_value: V) { - let mut hashmap = ALLOCATE_HASHMAP(); - assert(hashmap.is_empty(), "New hashmap should be empty."); - - hashmap.insert(key, value); - hashmap.insert(key, new_value); - assert(hashmap.len() == 1, "UHashMap length is invalid."); - - let got = hashmap.get(key); - assert(got.is_some(), "Got none value."); - let got = got.unwrap_unchecked(); - assert(got == new_value, f"Expected {new_value}, but got {got}."); -} - -// Insert several distinct pairs and test auxiliary methods. -unconstrained fn test_insert_and_methods(input: [Entry; HASHMAP_LEN]) { - let mut hashmap = ALLOCATE_HASHMAP(); - assert(hashmap.is_empty(), "New UHashMap should be empty."); - - for entry in input { - println(f"Inserting {entry}"); - hashmap.insert(entry.key, entry.value); - } - - println(hashmap.len()); - assert(hashmap.len() == HASHMAP_LEN, "hashmap.len() does not match input length."); - - for entry in input { - assert(hashmap.contains_key(entry.key), f"Not found inserted key {entry.key}."); - } - - hashmap.clear(); - assert(hashmap.is_empty(), "UHashMap after clear() should be empty."); -} - -// Insert several pairs and test retaining. -unconstrained fn test_retain() { - let mut hashmap = ALLOCATE_HASHMAP(); - assert(hashmap.is_empty(), "New UHashMap should be empty."); - - let (key, value) = (5, 11); - hashmap.insert(key, value); - let (key, value) = (2, 13); - hashmap.insert(key, value); - let (key, value) = (11, 5); - hashmap.insert(key, value); - - let predicate = |key: K, value: V| -> bool {key * value == 55}; - hashmap.retain(predicate); - - assert(hashmap.len() == 2, "UHashMap should have retained 2 elements."); - assert(hashmap.get(2).is_none(), "Pair should have been removed, since it does not match predicate."); -} - -// Equality trait check. -unconstrained fn test_hashmaps_equality(input: [Entry; HASHMAP_LEN]) { - let mut hashmap_1 = ALLOCATE_HASHMAP(); - let mut hashmap_2 = ALLOCATE_HASHMAP(); - - for entry in input { - hashmap_1.insert(entry.key, entry.value); - hashmap_2.insert(entry.key, entry.value); - } - - assert(hashmap_1 == hashmap_2, "CtHashMaps should be equal."); - - hashmap_2.remove(input[0].key); - - assert(hashmap_1 != hashmap_2, "CtHashMaps should not be equal."); -} - -// Test entries, keys, values. -unconstrained fn test_iterators() { - let mut hashmap = ALLOCATE_HASHMAP(); - - hashmap.insert(2, 3); - hashmap.insert(5, 7); - hashmap.insert(11, 13); - - let keys: [K; 3] = hashmap.keys().as_array().sort_via(K_CMP); - let values: [V; 3] = hashmap.values().as_array().sort_via(V_CMP); - let entries: [(K, V); 3] = hashmap.entries().as_array().sort_via(KV_CMP); - - assert(keys == [2, 5, 11], "Got incorrect iteration of keys."); - assert(values == [3, 7, 13], "Got incorrect iteration of values."); - assert(entries == [(2, 3), (5, 7), (11, 13)], "Got incorrect iteration of entries."); -} - -// Test mutable iteration over keys, values and entries. -unconstrained fn test_mut_iterators() { - let mut hashmap = ALLOCATE_HASHMAP(); - - hashmap.insert(2, 3); - hashmap.insert(5, 7); - hashmap.insert(11, 13); - - let f = |k: K| -> K{ k * 3}; - hashmap.iter_keys_mut(f); - - let f = |v: V| -> V{ v * 5}; - hashmap.iter_values_mut(f); - - let keys: [K; 3] = hashmap.keys().as_array().sort_via(K_CMP); - let values: [V; 3] = hashmap.values().as_array().sort_via(V_CMP); - - assert(keys == [6, 15, 33], f"Got incorrect iteration of keys: {keys}"); - assert(values == [15, 35, 65], "Got incorrect iteration of values."); - - let f = |k: K, v: V| -> (K, V){(k * 2, v * 2)}; - hashmap.iter_mut(f); - - let entries: [(K, V); 3] = hashmap.entries().as_array().sort_via(KV_CMP); - - assert(entries == [(12, 30), (30, 70), (66, 130)], "Got incorrect iteration of entries."); -} - -// docs:start:type_alias -type MyMap = UHashMap>; -// docs:end:type_alias - -/// Tests examples from the stdlib cthashmap documentation -unconstrained fn doc_tests() { - // docs:start:default_example - let hashmap: UHashMap> = UHashMap::default(); - assert(hashmap.is_empty()); - // docs:end:default_example - - // docs:start:with_hasher_example - let my_hasher: BuildHasherDefault = Default::default(); - let hashmap: UHashMap> = UHashMap::with_hasher(my_hasher); - assert(hashmap.is_empty()); - // docs:end:with_hasher_example - - // docs:start:insert_example - let mut map: UHashMap> = UHashMap::default(); - map.insert(12, 42); - assert(map.len() == 1); - // docs:end:insert_example - - get_example(map); - - // docs:start:remove_example - map.remove(12); - assert(map.is_empty()); - - // If a key was not present in the map, remove does nothing - map.remove(12); - assert(map.is_empty()); - // docs:end:remove_example - - // docs:start:is_empty_example - assert(map.is_empty()); - - map.insert(1, 2); - assert(!map.is_empty()); - - map.remove(1); - assert(map.is_empty()); - // docs:end:is_empty_example - - // docs:start:len_example - // This is equivalent to checking map.is_empty() - assert(map.len() == 0); - - map.insert(1, 2); - map.insert(3, 4); - map.insert(5, 6); - assert(map.len() == 3); - - // 3 was already present as a key in the hash map, so the length is unchanged - map.insert(3, 7); - assert(map.len() == 3); - - map.remove(1); - assert(map.len() == 2); - // docs:end:len_example - - // docs:start:capacity_example - let empty_map: UHashMap> = UHashMap::default(); - assert(empty_map.len() == 0); - println(empty_map.capacity()); - // docs:end:capacity_example - - // docs:start:clear_example - assert(!map.is_empty()); - map.clear(); - assert(map.is_empty()); - // docs:end:clear_example - - // docs:start:contains_key_example - if map.contains_key(7) { - let value = map.get(7); - assert(value.is_some()); - } else { - println("No value for key 7!"); - } - // docs:end:contains_key_example - - entries_examples(map); - iter_examples(map); - - // docs:start:retain_example - map.retain(|k, v| (k != 0) & (v != 0)); - // docs:end:retain_example - - // docs:start:eq_example - let mut map1: UHashMap> = UHashMap::default(); - let mut map2: UHashMap> = UHashMap::default(); - - map1.insert(1, 2); - map1.insert(3, 4); - - map2.insert(3, 4); - map2.insert(1, 2); - - assert(map1 == map2); - // docs:end:eq_example -} - -// docs:start:get_example -fn get_example(map: UHashMap>) { - let x = unsafe { - map.get(12) - }; - - if x.is_some() { - assert(x.unwrap() == 42); - } -} -// docs:end:get_example - -fn entries_examples(map: UHashMap>) { - // docs:start:entries_example - let entries = map.entries(); - - // The length of a hashmap may not be compile-time known, so we - // need to loop over its capacity instead - for i in 0..map.capacity() { - if i < entries.len() { - let (key, value) = entries[i]; - println(f"{key} -> {value}"); - } - } - // docs:end:entries_example - - // docs:start:keys_example - let keys = map.keys(); - - for key in keys { - let value = unsafe { - map.get(key) - }.unwrap_unchecked(); - println(f"{key} -> {value}"); - } - // docs:end:keys_example - - // docs:start:values_example - let values = map.values(); - - for value in values { - println(f"Found value {value}"); - } - // docs:end:values_example -} - -unconstrained fn iter_examples(mut map: UHashMap>) { - // docs:start:iter_mut_example - // Add 1 to each key in the map, and double the value associated with that key. - map.iter_mut(|k, v| (k + 1, v * 2)); - // docs:end:iter_mut_example - - // docs:start:iter_keys_mut_example - // Double each key, leaving the value associated with that key untouched - map.iter_keys_mut(|k| k * 2); - // docs:end:iter_keys_mut_example - - // docs:start:iter_values_mut_example - // Halve each value - map.iter_values_mut(|v| v / 2); - // docs:end:iter_values_mut_example -} diff --git a/test_programs/execution_success/unary_operator_overloading/Nargo.toml b/test_programs/execution_success/unary_operator_overloading/Nargo.toml deleted file mode 100644 index ebc88faaaf4..00000000000 --- a/test_programs/execution_success/unary_operator_overloading/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "unary_operator_overloading" -type = "bin" -authors = [""] -compiler_version = ">=0.20.0" - -[dependencies] diff --git a/test_programs/execution_success/unary_operator_overloading/Prover.toml b/test_programs/execution_success/unary_operator_overloading/Prover.toml deleted file mode 100644 index b95c23a4d31..00000000000 --- a/test_programs/execution_success/unary_operator_overloading/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = 3 diff --git a/test_programs/execution_success/unary_operator_overloading/src/main.nr b/test_programs/execution_success/unary_operator_overloading/src/main.nr deleted file mode 100644 index 20cdac51434..00000000000 --- a/test_programs/execution_success/unary_operator_overloading/src/main.nr +++ /dev/null @@ -1,36 +0,0 @@ -use std::ops::{Neg, Not}; - -// x = 3 -fn main(x: u32) { - let wx = Wrapper::new(x as i32); - let ex: i32 = 3; - - assert((-wx).inner == -ex); - assert((!wx).inner == !ex); - - // Check that it works with type variables (x's type isn't immediately known) - let x = 3; - assert(-3 == -x); -} - -struct Wrapper { - inner: i32 -} - -impl Wrapper { - fn new(inner: i32) -> Self { - Wrapper { inner } - } -} - -impl Neg for Wrapper { - fn neg(self) -> Wrapper { - Wrapper::new(-self.inner) - } -} - -impl Not for Wrapper { - fn not(self) -> Wrapper { - Wrapper::new(!self.inner) - } -} diff --git a/test_programs/execution_success/unit_value/Nargo.toml b/test_programs/execution_success/unit_value/Nargo.toml deleted file mode 100644 index 1f9c4524ec5..00000000000 --- a/test_programs/execution_success/unit_value/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "unit_value" -type = "bin" -authors = [""] -compiler_version = ">=0.23.0" - -[dependencies] diff --git a/test_programs/execution_success/unit_value/src/main.nr b/test_programs/execution_success/unit_value/src/main.nr deleted file mode 100644 index 18c7e5f4f7d..00000000000 --- a/test_programs/execution_success/unit_value/src/main.nr +++ /dev/null @@ -1,7 +0,0 @@ -fn get_transaction() { - std::mem::zeroed() -} - -fn main() { - get_transaction(); -} diff --git a/test_programs/execution_success/unsafe_range_constraint/Nargo.toml b/test_programs/execution_success/unsafe_range_constraint/Nargo.toml deleted file mode 100644 index 8714d95ed54..00000000000 --- a/test_programs/execution_success/unsafe_range_constraint/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "unsafe_range_constraint" -version = "0.1.0" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/unsafe_range_constraint/Prover.toml b/test_programs/execution_success/unsafe_range_constraint/Prover.toml deleted file mode 100644 index 07890234a19..00000000000 --- a/test_programs/execution_success/unsafe_range_constraint/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -x = "3" diff --git a/test_programs/execution_success/unsafe_range_constraint/src/main.nr b/test_programs/execution_success/unsafe_range_constraint/src/main.nr deleted file mode 100644 index ed846ec20b4..00000000000 --- a/test_programs/execution_success/unsafe_range_constraint/src/main.nr +++ /dev/null @@ -1,5 +0,0 @@ -// Test that we can apply a range constraint to a field using -// a builtin. -fn main(x: Field) { - x.assert_max_bit_size::<48>(); -} diff --git a/test_programs/execution_success/verify_honk_proof/Nargo.toml b/test_programs/execution_success/verify_honk_proof/Nargo.toml deleted file mode 100644 index 8fce1bf44b6..00000000000 --- a/test_programs/execution_success/verify_honk_proof/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "verify_honk_proof" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/verify_honk_proof/Prover.toml b/test_programs/execution_success/verify_honk_proof/Prover.toml deleted file mode 100644 index 45a84c26eb8..00000000000 --- a/test_programs/execution_success/verify_honk_proof/Prover.toml +++ /dev/null @@ -1,4 +0,0 @@ -key_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" -proof = ["0x0000000000000000000000000000000000000000000000000000000000000040", "0x0000000000000000000000000000000000000000000000000000000000000011", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000042ab5d6d1986846cf", "0x00000000000000000000000000000000000000000000000b75c020998797da78", "0x0000000000000000000000000000000000000000000000005a107acb64952eca", "0x000000000000000000000000000000000000000000000000000031e97a575e9d", "0x00000000000000000000000000000000000000000000000b5666547acf8bd5a4", "0x00000000000000000000000000000000000000000000000c410db10a01750aeb", "0x00000000000000000000000000000000000000000000000d722669117f9758a4", "0x000000000000000000000000000000000000000000000000000178cbf4206471", "0x000000000000000000000000000000000000000000000000e91b8a11e7842c38", "0x000000000000000000000000000000000000000000000007fd51009034b3357f", "0x000000000000000000000000000000000000000000000009889939f81e9c7402", "0x0000000000000000000000000000000000000000000000000000f94656a2ca48", "0x000000000000000000000000000000000000000000000006fb128b46c1ddb67f", "0x0000000000000000000000000000000000000000000000093fe27776f50224bd", "0x000000000000000000000000000000000000000000000004a0c80c0da527a081", "0x0000000000000000000000000000000000000000000000000001b52c2020d746", "0x0000000000000000000000000000005a9bae947e1e91af9e4033d8d6aa6ed632", "0x000000000000000000000000000000000025e485e013446d4ac7981c88ba6ecc", "0x000000000000000000000000000000ff1e0496e30ab24a63b32b2d1120b76e62", "0x00000000000000000000000000000000001afe0a8a685d7cd85d1010e55d9d7c", "0x000000000000000000000000000000b0804efd6573805f991458295f510a2004", "0x00000000000000000000000000000000000c81a178016e2fe18605022d5a8b0e", "0x000000000000000000000000000000eba51e76eb1cfff60a53a0092a3c3dea47", "0x000000000000000000000000000000000022e7466247b533282f5936ac4e6c15", "0x00000000000000000000000000000071b1d76edf770edff98f00ff4deec264cd", "0x00000000000000000000000000000000001e48128e68794d8861fcbb2986a383", "0x000000000000000000000000000000d3a2af4915ae6d86b097adc377fafda2d4", "0x000000000000000000000000000000000006359de9ca452dab3a4f1f8d9c9d98", "0x0000000000000000000000000000006cf7dd96d7636fda5953191b1ad776d491", "0x00000000000000000000000000000000001633d881a08d136e834cb13a28fcc6", "0x00000000000000000000000000000001254956cff6908b069fca0e6cf1c47eb1", "0x000000000000000000000000000000000006f4d4dd3890e997e75e75886bf8f7", "0x0000000000000000000000000000006cf7dd96d7636fda5953191b1ad776d491", "0x00000000000000000000000000000000001633d881a08d136e834cb13a28fcc6", "0x00000000000000000000000000000001254956cff6908b069fca0e6cf1c47eb1", "0x000000000000000000000000000000000006f4d4dd3890e997e75e75886bf8f7", "0x000000000000000000000000000000f968b227a358a305607f3efc933823d288", "0x00000000000000000000000000000000000eaf8adb390375a76d95e918b65e08", "0x000000000000000000000000000000bb34b4b447aae56f5e24f81c3acd6d547f", "0x00000000000000000000000000000000002175d012746260ebcfe339a91a81e1", "0x00000000000000000000000000000052eebbd1f6f7554e837f60c44000ed14b6", "0x00000000000000000000000000000000001c1c045a3ec94b8801f2272cc0b3f4", "0x0000000000000000000000000000004d2ef74134578f6b431a9df071ffca4292", "0x0000000000000000000000000000000000291326ade7aa6f0dfc8900eab5580b", "0x0000000000000000000000000000002433eec6418a6dba820c9527e2581fc8bc", "0x00000000000000000000000000000000000e88b7daad19af2ac2f9bdf9e50ee2", "0x000000000000000000000000000000dcfce2c427155cc3e4d035735d3dd5ece8", "0x00000000000000000000000000000000002d7d473cac1a15d0fee8b22c1a7b3e", "0x1a4249b90be4602c8ff40c7c276160ee41b2a0f8a238ce7706e9face2db03d48", "0x162204b9d54d3ffd285c393a5a1ff76ee681474fd780a21a3cf7fac5c24fc2b9", "0x30279eb953d8ee79b2155c69c04e6443c5de6bf7e02886256dd7b3cd3c9502a4", "0x0d32c1bd21baf43e72d5d82d461ef54833807ff81a877adc822f27a6db88d754", "0x0fe15e055c0803d5ebe6dd77689b70cfd82138f008810ce24535c992daaff27d", "0x1fba82c012671212ce2fc13fd09bf8fba4f7d5875ab8d37495d1ccfcff287331", "0x090738a5842fa4d2699b3726aa0dd97cb59569b4be2c6825335ec4969f859dc2", "0x0c6cb72dabbc28abcf4a50c203534e066c29f48c24ca64d672092f263df3f9d7", "0x0f27fbea0d9145f815c288b50fe7e8c10b8185d325b5264624fd57102855d05d", "0x2a815cd3fd1c43c72ee0130465250ff771d1e7be2347e4ada331b83265a03450", "0x148b4ecf2ad7ed17409417086867ee27bc1b0906dbc9cbb3714c285071e2db70", "0x08e700a42b1d6d36ee65f8ebedf47d3a44463ff9fa579dce13b7492e20142c3a", "0x2e23c69521d572ff2152c50f8c9a9191535f4cf37f95f1e0428692e78842b642", "0x14519e0354365923fb41400c19866135b45e975d56a0980260bc99f0390b1d5f", "0x04caded1f05738f736cb5bcf08d785e395e58eb7738523a20638aa16bc51593e", "0x28787eaccd38383215ea21ec02895c32d979f68ca155f534a2e2d377bff6698b", "0x20a1b81fa96c58cf11c5762c5ceb731efdcb081fca2d34d5c463d2cf40e6da18", "0x11789a06fe3bf53833741d180f068d29534d5bb58a5c64b8119542e62b189fb4", "0x23d00fcd032ace719ffcbc513bfa177a55b04377d76455c2788d999d05d011e2", "0x01f0e81b57b4a73cc118e51ede18f8724debf25c2d109db6ef45280f99f1a3fa", "0x156d1c9b61749810de728f259c2c1c1fd4dbff97101426e26087ca461c93307c", "0x1c5d619ac3a478cfd06d5eebfd879960bb321236be173813f5e78d1366d32c69", "0x250cfae4e1dfc551406f1f3d10b649a637dcb7bcb0f6f697994cf96afd35d0c1", "0x242b999f58cf5f53c874d1092bd38725aa9ea076f5bc8f176efa9ea23393874b", "0x2e15748255c4a5e0e9fe38047341b692a967257de27a85a3a38681bc9f1602ea", "0x01ef83886ea7017253699cb6371988eb8e21b4f7023d7479ece4907fe6d4a6fd", "0x08db2dbc271e375b9312f695c59c48f313235b3432cad50921c8d9ad6dd7ad7a", "0x199309f2c2cd45c15a4abb0e6554a1615ff5a6e9488a8d900bbf835fc8f664ef", "0x074be7a3d88e31ab1b59c9208c012bcfb1f85f351c709e68134996891db52b57", "0x301b1011354d2ebf46134fc4d6d734bb6ed8542d719f38f5e09a376a580cad7f", "0x12968f3eccaa27e44f14d5aaac6ecb70c00d040e07536292e685d7cab03fc563", "0x2110a023c8c22fd2ed70270a2d0a265b92a32ce2217ffe1be9a5d7d5c25f512f", "0x1e8cf4c60c53900f0430d5b44de5804fe8b38299bc803beeb4216e1a289cf624", "0x12301cb908ccb28a2616e29b831ec7105b5d3ebf45ff5fe91d50a9dd53a50b52", "0x0f1029ed107d84ff2d6d4a416cbd01da3f3d7bf5b2209ce93ba424f4b85616fc", "0x1b431d016611b8abd684afd9e92331c3325967b1116bfa91d4f44e2f8e2c9fc2", "0x281e335a0fd117064c8ace3f01e02b134a19e9b9220571ebfaaaa0e3a12d34db", "0x22559c106f77e2ae95677d5e38e288343e3b7168371aec7d3aaab9ef8150af70", "0x13f113b1d9b590149cf08c3f6e90589cda5c7b98528866b891256cb9d5d814e7", "0x10252ef388e4c80246962e98b9e976fab2cd25e1e6f1e3fd2a7d4786c5218a97", "0x16b890723dfdebd9912a9207255f95cb800222165b6fae97ec46e461f23e83f3", "0x25caf77c7d2e8e069341ec90f3c8f6d64319cfd2d77cab0625cf0377285ba11c", "0x016c84288b0bc3c50eebbe250cdd5a4ee50b2c65a24ac64d0c930cbdecb95141", "0x20a537c045b069d47dc6315f45b391f60681222381e5059ec7c8b17bf677d911", "0x2594c0edfcd4064d215a3d797bc8e3b2f401c61f3961ae96ccbec8f8fd29e81f", "0x1c831d7047483ca00ed59bdb84c47ffb8bbebbae92aa164c7b35fcffbb8a35d3", "0x2ea7f60de52b8cd6b0bd06f861fc1f2c5ed1d1fbfa53caccdb836400a03df434", "0x275c6c8bd115f7d2ce196439e2330fad305c6745bab0bf1ce3f2fa32dadc3c43", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x2b3f4e210619347288731e7f0eea1ae60dd8696fe87319044864d099a03a9536", "0x0fecd3d2aebedeb8be2b0b7e3a74de9ec8bd2cb72851541463729e0715aef48b", "0x10bee385ad0c2cd3ff88ef4d630840749e4367f9add4a300fc4f545a7778e92c", "0x1fe792730eeafbd22c4eb80e86e2b40108b1e55b2a08db786289eea5745b9e3b", "0x04d411679da432816b213cd5580dda1fd6c2f258684c036be19b5b26baca583c", "0x159f17b655d2b8a803e0cfb564918628be52d3baa950ca1b127854491624f8f4", "0x225340463867d9252a1269013536e2e1dd219aa18eadef13c324b63d44679334", "0x1885e231554e02abb40ed54b72ebf09b883d0298a6bc06fc645a30365f370ef2", "0x233344517f25170972b8ba35d01f2df2e073d322993abce7df26796126e93498", "0x08990e8faa13b18b4433ec417c5cc596885e11ffd372d5f612c08cc79a5d5c80", "0x1e960a0c892b755c28e21dcbed816c1b182d7da43bae07f8ee622bd4485f79e7", "0x27b58e2ee290a179d349ace82752528b2ff946d60c092b99ef42f53c25d0c99f", "0x2a5cf8a3193107d982edd253002c7a52ab876b445dde8307ab78fbdca022d93c", "0x2b1ab4d5277f8c82750c1c7bd043889b71465ec64a9afc1bfa37d06b1ebd0725", "0x2a0dbf5c4373a58a83d5f2a031ea0615bf12800e33b70c3191a7cbb15966ced8", "0x1f272bb4a19d14a0abdfebc9fc83125e10623b9aef730f8d25f2bf5bead38ea9", "0x2c2339cf0ae7aff56091a568c1e2c3f01f52d8ed13400737fd31eaabcaffb9bd", "0x21f5fefe6b5fa0b5da71089befb74a1a39e52b4f830cb330c3c284e154614dfd", "0x1e6f6ba4b2444586b380dc4e2b3fad111ff1f4754420a846f53ea0789ebfb0ad", "0x1193d170b0b2dd0c4a04331a4b4aa3f12920f182ec3ab547837e30f1116ca584", "0x00000000000000000000000000000025704a15c9e2ce8a69558e7bbcdcbc7784", "0x2e5d36112770fb6c985681cafe40a8c99ad13f702309e7969801dd0ed080e727", "0x0eefc2585f591bb457183134e19ad643966272234d645514bf7868d6dd8ae2cb", "0x300803e4e2339ad39b9c31f228949bbeaf9c74b7101e7be1930b088126247eaa", "0x2bb562a50ed944b438b83b01f200101a34faef7f296a75c84c731755ebddbc1a", "0x1288e0b9c742af39cbcac21357c1b29511b0bbdd3d0e3cf5e14b2eef68a28ab3", "0x20f089131cc96d86ff1cfb67fa3f51670f4bad30158751b2587354bbec76cdf9", "0x1a26c6d3e633f9bf8434cf755b5f1217dad0d455071a97a7bcf85b824f5cf07a", "0x0d7e9b8a51fccf910ec25bdbd13e70b34bd6ea6f4d629fa744f9cdf5f2beb1cf", "0x0b40f28ce428e64df9cf5a024133fc420f39decf5f6af020cc3211ab298d4631", "0x0ca4f189dde7a55fe829f46681232904f6670249a22e0deb47222bd309523a8a", "0x2c544f2e31143783977645edb2a6bdb39b875053963bfa1a5b3ae9de204a7ebe", "0x00aae4454eb48fb18ff60db6b9d015abea2e770a2f7d86d121522b834c791ba5", "0x07d74e351fd4cccf4e18475d25211efa8a359066fc693a5c8505ddb507e4b74b", "0x07d74e351fd4cccf4e18475d25211efa8a359066fc693a5c8505ddb507e4b74b", "0x2d9e5bff47207d82533e2445959941181cc890c5779bc7f24d6e8a7b9e425b5c", "0x0aea3c0c317c441a5775a9849108d7a6889b39128235f717b09b184aa08e4eb7", "0x1ca5bc6fb37c55a562f4991901c39902f42d14db71284116df74cb4e7d55e493", "0x220fed26d64cd69f40e6d145a423e4a3c8cd0dce747e7d51647441270ad4d774", "0x15be574c9358889257aa2a30ff7b5fcc31a57da7032296e2c1201c49a44bbdb6", "0x2de539925525bedd3b7f43a9c6bf0f713151a17f79ac7ff4a9cd27b15ffe892a", "0x083086693dbf465211741e2cbff70ff38eb08383faf22d397eb2742c8ad7396a", "0x1fdfa258a890598816e807c50058d7a1462edd5ff196a2eae0f862e454b49aa1", "0x10c434c6daaa8226fa8e3e302123dfdc4455cf68063df518949df5a65a945213", "0x0000000000000000000000000000006472a7874de2c454a4591ed7784df1c104", "0x000000000000000000000000000000000008c46ac53d2c4ad0c26a5d6c790082", "0x0000000000000000000000000000005e422f9cfb8725800de60dfe0a8d4104c0", "0x000000000000000000000000000000000000f10fd4e4de81a0c00073ec91c274", "0x000000000000000000000000000000b20813090eca76bc6aa4a699b1ec8d5d6d", "0x0000000000000000000000000000000000292cc9f8a744eb00e0903c29ce87a7", "0x000000000000000000000000000000350a368b415fbb99fa90a26a42b1a3affd", "0x0000000000000000000000000000000000280eb9275cb05a3435f464d1dc369d", "0x000000000000000000000000000000280df6505e20c7725fe6d29439f96ee05d", "0x000000000000000000000000000000000017ef5033a08535451e2747827aa94b", "0x0000000000000000000000000000002f9ba89ae91b4e4a4ff8ccbd0526faad2f", "0x00000000000000000000000000000000001c2013561dafcc02cb03220bdf23c4", "0x000000000000000000000000000000aac102c400f9e5da0321ded4510994434b", "0x00000000000000000000000000000000001ec8ab9cc834b492fde124962f04a1", "0x0000000000000000000000000000000673dbd698da8b8cce450d2a083aba9987", "0x00000000000000000000000000000000000a49e55bb040249cb41c63cea901cd", "0x000000000000000000000000000000133d92af8d76ee0c74a12081ee7b2ef8c4", "0x0000000000000000000000000000000000240f552d1c6cbb007650e4b142e0a5", "0x000000000000000000000000000000e29c6e7d982ec08d51c79d6261c28d742d", "0x000000000000000000000000000000000021baeec04d9be419c923626034e7b3", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x1e940a528b42d8230e7d4dff76262a80986c0d00b2c02a9bc0559e36212d1547", "0x1ceccf21ac39f70d76ad6f7fe0dcb33b6af04555a0b1959e4714d65925e4e253", "0x096139d757046cdbdb7ee89a95f112f70882a43a46c2f739d9be115dda013420", "0x2f9c8ac67c7825b08eff0e7f7656a671f4c64e5601f2efab35b1b795801eec04", "0x2077e648e1704851cdffd7e6e56311634a7b741bab77ca34d9dff12a6a2bfe99", "0x115d48c4a97aeb3c447a060f9e0d675b0dc7f4a05a3f5776e2f279f3a165d7dc", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x000000000000000000000000000000fd38c45c3ec5b841482a80e3a56ce82555", "0x00000000000000000000000000000000000ad70b03f092f60af3e0ce1bb29d2c", "0x0000000000000000000000000000007a184d5342c90c634c0b1a050f0b97c9fb", "0x0000000000000000000000000000000000271f42abcb3bc1f0332e4b3ca85e1d", "0x0000000000000000000000000000008256322bbe2c1b8cd9d84e5ff6123477f2", "0x000000000000000000000000000000000025cab962761681dd9547f4c78814df", "0x0000000000000000000000000000008c4234510e5825c02b9ac427bcbf8e279a", "0x000000000000000000000000000000000013a14e0d7fc073c44643af38cc5396"] -public_inputs = ["0x0000000000000000000000000000000000000000000000000000000000000003"] -verification_key = ["0x0000000000000000000000000000000000000000000000000000000000000040", "0x0000000000000000000000000000000000000000000000000000000000000011", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000003", "0x0000000000000000000000000000000000000000000000000000000000000004", "0x0000000000000000000000000000000000000000000000000000000000000005", "0x0000000000000000000000000000000000000000000000000000000000000006", "0x0000000000000000000000000000000000000000000000000000000000000007", "0x0000000000000000000000000000000000000000000000000000000000000008", "0x0000000000000000000000000000000000000000000000000000000000000009", "0x000000000000000000000000000000000000000000000000000000000000000a", "0x000000000000000000000000000000000000000000000000000000000000000b", "0x000000000000000000000000000000000000000000000000000000000000000c", "0x000000000000000000000000000000000000000000000000000000000000000d", "0x000000000000000000000000000000000000000000000000000000000000000e", "0x000000000000000000000000000000000000000000000000000000000000000f", "0x0000000000000000000000000000000000000000000000000000000000000010", "0x00000000000000000000000000000060e430ad1c23bfcf3514323aae3f206e84", "0x00000000000000000000000000000000001b5c3ff4c2458d8f481b1c068f27ae", "0x000000000000000000000000000000bb510ab2112def34980e4fc6998ad9dd16", "0x00000000000000000000000000000000000576e7c105b43e061e13cb877fefe1", "0x000000000000000000000000000000ced074785d11857b065d8199e6669a601c", "0x00000000000000000000000000000000000053b48a4098c1c0ae268f273952f7", "0x000000000000000000000000000000d1d4b26e941db8168cee8f6de548ae0fd8", "0x00000000000000000000000000000000001a9adf5a6dadc3d948bb61dfd63f4c", "0x0000000000000000000000000000009ce1faac6f8de6ebb18f1db17372c82ad5", "0x00000000000000000000000000000000002002681bb417184b2df070a16a3858", "0x000000000000000000000000000000161baa651a8092e0e84725594de5aba511", "0x00000000000000000000000000000000000be0064399c2a1efff9eb0cdcb2223", "0x0000000000000000000000000000008673be6fd1bdbe980a29d8c1ded54381e7", "0x000000000000000000000000000000000008a5158a7d9648cf1d234524c9fa0c", "0x0000000000000000000000000000002b4fce6e4b1c72062b296d49bca2aa4130", "0x00000000000000000000000000000000002e45a9eff4b6769e55fb710cded44f", "0x00000000000000000000000000000072b85bf733758b76bcf97333efb85a23e3", "0x000000000000000000000000000000000017da0ea508994fc82862715e4b5592", "0x00000000000000000000000000000094fa74695cf058dba8ff35aec95456c6c3", "0x0000000000000000000000000000000000211acddb851061c24b8f159e832bd1", "0x000000000000000000000000000000303b5e5c531384b9a792e11702ad3bcab0", "0x00000000000000000000000000000000000d336dff51a60b8833d5d7f6d4314c", "0x0000000000000000000000000000009f825dde88092070747180d581c342444a", "0x0000000000000000000000000000000000237fbd6511a03cca8cac01b555fe01", "0x0000000000000000000000000000007c313205159495df6d8de292079a4844ff", "0x000000000000000000000000000000000018facdfc468530dd45e8f7a1d38ce9", "0x0000000000000000000000000000000d1ce33446fc3dc4ab40ca38d92dac74e1", "0x00000000000000000000000000000000000852d8e3e0e8f4435af3e94222688b", "0x0000000000000000000000000000006c04ee19ec1dfec87ed47d6d04aa158de2", "0x000000000000000000000000000000000013240f97a584b45184c8ec31319b5f", "0x000000000000000000000000000000cefb5d240b07ceb4be26ea429b6dc9d9e0", "0x00000000000000000000000000000000002dad22022121d689f57fb38ca21349", "0x000000000000000000000000000000c9f189f2a91aeb664ce376d8b157ba98f8", "0x00000000000000000000000000000000002531a51ad54f124d58094b219818d2", "0x000000000000000000000000000000ef1e6db71809307f677677e62b4163f556", "0x0000000000000000000000000000000000272da4396fb2a7ee0638b9140e523d", "0x0000000000000000000000000000002e54c0244a7732c87bc4712a76dd8c83fb", "0x000000000000000000000000000000000007db77b3e04b7eba9643da57cbbe4d", "0x000000000000000000000000000000e0dfe1ddd7f74ae0d636c910c3e85830d8", "0x00000000000000000000000000000000000466fa9b57ec4664abd1505b490862", "0x0000000000000000000000000000009ee55ae8a32fe5384c79907067cc27192e", "0x00000000000000000000000000000000000799d0e465cec07ecb5238c854e830", "0x0000000000000000000000000000001d5910ad361e76e1c241247a823733c39f", "0x00000000000000000000000000000000002b03f2ccf7507564da2e6678bef8fe", "0x000000000000000000000000000000ee40d90bea71fba7a412dd61fcf34e8ceb", "0x0000000000000000000000000000000000140b0936c323fd2471155617b6af56", "0x0000000000000000000000000000002b90071823185c5ff8e440fd3d73b6fefc", "0x00000000000000000000000000000000002b6c10790a5f6631c87d652e059df4", "0x00000000000000000000000000000029a17181c7934fc3fdbd352eac5cb521b9", "0x00000000000000000000000000000000001f497cbf5284ff29a2d336e5991999", "0x000000000000000000000000000000072bd9c0c6beda1fdee6d4ff0432ba9e1b", "0x000000000000000000000000000000000013ea38a0bd2aa751a490a724fac818", "0x000000000000000000000000000000c599f63dcd3edd49f08ae5c3141c1e3493", "0x00000000000000000000000000000000002bdb36be0bea09950dd32a8ccf6fbc", "0x00000000000000000000000000000047f27f29724e7f19eba0340256a0bd4b7d", "0x00000000000000000000000000000000001c1c5ccf87a962129ca785f8f35120", "0x000000000000000000000000000000c5c71efdae00679bbe4a95096e012b1817", "0x000000000000000000000000000000000017a365de041e317817d0135f2b48e0", "0x0000000000000000000000000000008ae711ac402f7848d719c93a89ba8d39f1", "0x00000000000000000000000000000000002b6fb40ed8a1935226f4f9786a0499", "0x0000000000000000000000000000002f03a71501d83de1da5715a4e9462d6198", "0x00000000000000000000000000000000001644064443b8546f48eae693af47b8", "0x00000000000000000000000000000083763ab1b6e8fe269b2fe4c7b9c448c08d", "0x000000000000000000000000000000000021d7cc18c59676a8eeb47c0111c251", "0x000000000000000000000000000000b5f937153073e03ea7d51a996e0ebc2e6b", "0x000000000000000000000000000000000011ddd0e26457373eb06e0493177672", "0x000000000000000000000000000000c5f6eb9f6fc8fa99811a4a88c74a6d018b", "0x000000000000000000000000000000000025bcd07a0732c123567834f5109558", "0x000000000000000000000000000000aeb08a0b1a4442189448b4e97490568146", "0x000000000000000000000000000000000002a1744e4771705536a88f07e0f90f", "0x000000000000000000000000000000b938568293bd0724b0ea76c2ec34c4a829", "0x0000000000000000000000000000000000053296e8f3b9ad3af877dfa9c7c2a7", "0x000000000000000000000000000000f0ca1db6323996eba26bdc86dafef9d10b", "0x00000000000000000000000000000000001441a46c58af03d5645d52721d956a", "0x0000000000000000000000000000008bbf8f884013c66c28ba09c2fbd573b656", "0x0000000000000000000000000000000000206c391ca06fac27d1908e94570243", "0x0000000000000000000000000000002d4f5aaed88ba4f79612d53b804ca8f194", "0x00000000000000000000000000000000001674011c96392df08970fa6b7b4cb8", "0x0000000000000000000000000000009f88297c1729d76c4d9306853598c91325", "0x0000000000000000000000000000000000256f51adfcacc3c1e340be4d32d3e9", "0x0000000000000000000000000000000ab9955eec0d74eb799afed2a802b24d75", "0x00000000000000000000000000000000001fcbe43ea105b30d36ed0b21b03411", "0x000000000000000000000000000000d66b1d5433f1aa5305cd1edce7c22de466", "0x00000000000000000000000000000000002331546a256b8a3b751956806680d4", "0x000000000000000000000000000000e97954ad6cd6f45fb15c91434121db4304", "0x00000000000000000000000000000000002e20a97e09d50f227ced47e7a98250", "0x0000000000000000000000000000001ebbc27eb9ebededefba79522eb58ae89b", "0x0000000000000000000000000000000000090efa4974e566e81d1177b85a30be", "0x0000000000000000000000000000005eafa070b9c9632404052642e3bc14f9fd", "0x00000000000000000000000000000000001489068864102daca6a6b8bc4d448b", "0x0000000000000000000000000000009ebc91aaaac036a6477cadbe54e8556dfd", "0x00000000000000000000000000000000000ef6d835e2ed3343b95c82c8c54037", "0x00000000000000000000000000000033b28b529dff46e93af4e7422530478e4a", "0x000000000000000000000000000000000020a86c2f8591bf190bcddcc03c42fb", "0x000000000000000000000000000000a9679d0acc088f7dc27bf6d866bcd2dda2", "0x00000000000000000000000000000000002fb9d0d2d4099402bed74f738f64cc", "0x00000000000000000000000000000023b09f876a29a061582848a8b9a5870c12", "0x00000000000000000000000000000000001d5bb906f03f0d49e9c4791bc43af9", "0x00000000000000000000000000000017aac9854ea240d8ec97bf760c4d4ba870", "0x00000000000000000000000000000000000b227a556c414ada0dc75bb303e30e", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000009b624fa65d1a24b7f14a8f25f3789622af", "0x000000000000000000000000000000000013d47bff8c630e847b70e2732fd3f0", "0x00000000000000000000000000000061d21663e93132f32921075f4c936a84df", "0x00000000000000000000000000000000001a74ca4e118fb480b9b999902989a3"] diff --git a/test_programs/execution_success/verify_honk_proof/src/main.nr b/test_programs/execution_success/verify_honk_proof/src/main.nr deleted file mode 100644 index 152b2dafef8..00000000000 --- a/test_programs/execution_success/verify_honk_proof/src/main.nr +++ /dev/null @@ -1,22 +0,0 @@ - -// This circuit aggregates a single Honk proof from `assert_statement_recursive`. -global SIZE_OF_PROOF_IF_LOGN_IS_28 : u32 = 463; -global HONK_IDENTIFIER : u32 = 1; -fn main( - verification_key: [Field; 128], - // This is the proof without public inputs attached. - // This means: the size of this does not change with the number of public inputs. - proof: [Field; SIZE_OF_PROOF_IF_LOGN_IS_28], - public_inputs: pub [Field; 1], - // This is currently not public. It is fine given that the vk is a part of the circuit definition. - // I believe we want to eventually make it public too though. - key_hash: Field -) { - std::verify_proof_with_type( - verification_key, - proof, - public_inputs, - key_hash, - HONK_IDENTIFIER - ); -} diff --git a/test_programs/execution_success/wildcard_type/Nargo.toml b/test_programs/execution_success/wildcard_type/Nargo.toml deleted file mode 100644 index e3d7fc636af..00000000000 --- a/test_programs/execution_success/wildcard_type/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "wildcard_type" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/wildcard_type/Prover.toml b/test_programs/execution_success/wildcard_type/Prover.toml deleted file mode 100644 index c7c8371dfa4..00000000000 --- a/test_programs/execution_success/wildcard_type/Prover.toml +++ /dev/null @@ -1 +0,0 @@ -enable = [4,7] diff --git a/test_programs/execution_success/wildcard_type/src/main.nr b/test_programs/execution_success/wildcard_type/src/main.nr deleted file mode 100644 index c27f9987c48..00000000000 --- a/test_programs/execution_success/wildcard_type/src/main.nr +++ /dev/null @@ -1,23 +0,0 @@ -struct bar { - enable: [bool; 4], - data: [Field; 2], - pad: u32, -} - -fn main(enable: [Field; 2]) -> pub [Field; 4] { - let mut result = [0; 4]; - let a: [_; 4] = foo(enable[1]); - for i in 0..4 { - result[i] = a[i].data[i % 2]; - } - result -} - -fn foo(x: Field) -> [bar; 4] { - [ - bar { enable: [true, true, false, false], data: [x, x + 1], pad: 0 }, - bar { enable: [true, false, false, false], data: [x + 2, x + 7], pad: 0 }, - bar { enable: [true, true, false, true], data: [x + 3, x + 5], pad: 0 }, - bar { enable: [false, false, false, false], data: [x + 4, x - 1], pad: 0 } - ] -} diff --git a/test_programs/execution_success/witness_compression/Nargo.toml b/test_programs/execution_success/witness_compression/Nargo.toml deleted file mode 100644 index 7d6ba0c1938..00000000000 --- a/test_programs/execution_success/witness_compression/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "witness_compression" -type = "bin" -authors = [""] -compiler_version = ">=0.24.0" - -[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/witness_compression/Prover.toml b/test_programs/execution_success/witness_compression/Prover.toml deleted file mode 100644 index 8c12ebba6cf..00000000000 --- a/test_programs/execution_success/witness_compression/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "2" diff --git a/test_programs/execution_success/witness_compression/src/main.nr b/test_programs/execution_success/witness_compression/src/main.nr deleted file mode 100644 index 3027d35b13a..00000000000 --- a/test_programs/execution_success/witness_compression/src/main.nr +++ /dev/null @@ -1,7 +0,0 @@ -// This test should be used to regenerate the serialized witness used in the `acvm_js` integration tests. -// The `acvm_js` test file containing the serialized witness should be also called `witness_compression`. -// After recompiling Noir, you can manually print the witness byte array to be written to file after execution. -fn main(x: Field, y: pub Field) -> pub Field { - assert(x != y); - x + y -} diff --git a/test_programs/execution_success/workspace/Nargo.toml b/test_programs/execution_success/workspace/Nargo.toml deleted file mode 100644 index 36db098686f..00000000000 --- a/test_programs/execution_success/workspace/Nargo.toml +++ /dev/null @@ -1,2 +0,0 @@ -[workspace] -members = ["crates/a", "crates/b"] diff --git a/test_programs/execution_success/workspace/crates/a/Nargo.toml b/test_programs/execution_success/workspace/crates/a/Nargo.toml deleted file mode 100644 index 8d0e1aca4a9..00000000000 --- a/test_programs/execution_success/workspace/crates/a/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "a" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/workspace/crates/a/Prover.toml b/test_programs/execution_success/workspace/crates/a/Prover.toml deleted file mode 100644 index 465ef562de4..00000000000 --- a/test_programs/execution_success/workspace/crates/a/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "1" diff --git a/test_programs/execution_success/workspace/crates/a/src/main.nr b/test_programs/execution_success/workspace/crates/a/src/main.nr deleted file mode 100644 index cf72627da2e..00000000000 --- a/test_programs/execution_success/workspace/crates/a/src/main.nr +++ /dev/null @@ -1,3 +0,0 @@ -fn main(x: Field, y: pub Field) { - assert(x == y); -} diff --git a/test_programs/execution_success/workspace/crates/b/Nargo.toml b/test_programs/execution_success/workspace/crates/b/Nargo.toml deleted file mode 100644 index f316511340f..00000000000 --- a/test_programs/execution_success/workspace/crates/b/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "b" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/workspace/crates/b/Prover.toml b/test_programs/execution_success/workspace/crates/b/Prover.toml deleted file mode 100644 index a0397e89477..00000000000 --- a/test_programs/execution_success/workspace/crates/b/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "0" diff --git a/test_programs/execution_success/workspace/crates/b/src/main.nr b/test_programs/execution_success/workspace/crates/b/src/main.nr deleted file mode 100644 index 4e1fd3c9035..00000000000 --- a/test_programs/execution_success/workspace/crates/b/src/main.nr +++ /dev/null @@ -1,3 +0,0 @@ -fn main(x: Field, y: pub Field) { - assert(x != y); -} diff --git a/test_programs/execution_success/workspace_default_member/Nargo.toml b/test_programs/execution_success/workspace_default_member/Nargo.toml deleted file mode 100644 index 3828c5d0677..00000000000 --- a/test_programs/execution_success/workspace_default_member/Nargo.toml +++ /dev/null @@ -1,3 +0,0 @@ -[workspace] -members = ["a"] -default-member = "a" diff --git a/test_programs/execution_success/workspace_default_member/Prover.toml b/test_programs/execution_success/workspace_default_member/Prover.toml deleted file mode 100644 index 8c12ebba6cf..00000000000 --- a/test_programs/execution_success/workspace_default_member/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "2" diff --git a/test_programs/execution_success/workspace_default_member/a/Nargo.toml b/test_programs/execution_success/workspace_default_member/a/Nargo.toml deleted file mode 100644 index 8d0e1aca4a9..00000000000 --- a/test_programs/execution_success/workspace_default_member/a/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "a" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/workspace_default_member/a/Prover.toml b/test_programs/execution_success/workspace_default_member/a/Prover.toml deleted file mode 100644 index 465ef562de4..00000000000 --- a/test_programs/execution_success/workspace_default_member/a/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "1" -y = "1" diff --git a/test_programs/execution_success/workspace_default_member/a/src/main.nr b/test_programs/execution_success/workspace_default_member/a/src/main.nr deleted file mode 100644 index cf72627da2e..00000000000 --- a/test_programs/execution_success/workspace_default_member/a/src/main.nr +++ /dev/null @@ -1,3 +0,0 @@ -fn main(x: Field, y: pub Field) { - assert(x == y); -} diff --git a/test_programs/execution_success/workspace_default_member/b/Nargo.toml b/test_programs/execution_success/workspace_default_member/b/Nargo.toml deleted file mode 100644 index f316511340f..00000000000 --- a/test_programs/execution_success/workspace_default_member/b/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "b" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/workspace_default_member/b/Prover.toml b/test_programs/execution_success/workspace_default_member/b/Prover.toml deleted file mode 100644 index 83fcd8678e7..00000000000 --- a/test_programs/execution_success/workspace_default_member/b/Prover.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Deliberately setting these to fail to prove this is NOT executed since a default is specified -x = "1" -y = "1" diff --git a/test_programs/execution_success/workspace_default_member/b/src/main.nr b/test_programs/execution_success/workspace_default_member/b/src/main.nr deleted file mode 100644 index 6e170de75fc..00000000000 --- a/test_programs/execution_success/workspace_default_member/b/src/main.nr +++ /dev/null @@ -1,3 +0,0 @@ -fn main(x : Field, y : pub Field) { - assert(x != y); -} diff --git a/test_programs/execution_success/wrapping_operations/Nargo.toml b/test_programs/execution_success/wrapping_operations/Nargo.toml deleted file mode 100644 index 3a28b3461ec..00000000000 --- a/test_programs/execution_success/wrapping_operations/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "wrapping_operations" -type = "bin" -authors = [""] - -[dependencies] diff --git a/test_programs/execution_success/wrapping_operations/Prover.toml b/test_programs/execution_success/wrapping_operations/Prover.toml deleted file mode 100644 index 346fd2764a7..00000000000 --- a/test_programs/execution_success/wrapping_operations/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = 0 -y = 255 diff --git a/test_programs/execution_success/wrapping_operations/src/main.nr b/test_programs/execution_success/wrapping_operations/src/main.nr deleted file mode 100644 index d8345884c82..00000000000 --- a/test_programs/execution_success/wrapping_operations/src/main.nr +++ /dev/null @@ -1,6 +0,0 @@ -fn main(x: u8, y: u8) { - assert(std::wrapping_sub(x, 1) == y); - assert(std::wrapping_add(y, 1) == x); - assert(std::wrapping_mul(y, y) == 1); -} - diff --git a/test_programs/execution_success/xor/Nargo.toml b/test_programs/execution_success/xor/Nargo.toml deleted file mode 100644 index ddf3b6d86c5..00000000000 --- a/test_programs/execution_success/xor/Nargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[package] -name = "xor" -type = "bin" -authors = [""] -[dependencies] diff --git a/test_programs/execution_success/xor/Prover.toml b/test_programs/execution_success/xor/Prover.toml deleted file mode 100644 index f28f2f8cc48..00000000000 --- a/test_programs/execution_success/xor/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "5" -y = "10" diff --git a/test_programs/execution_success/xor/src/main.nr b/test_programs/execution_success/xor/src/main.nr deleted file mode 100644 index 4ceef1b518f..00000000000 --- a/test_programs/execution_success/xor/src/main.nr +++ /dev/null @@ -1,5 +0,0 @@ -fn main(x: u32, y: pub u32) { - let m = x ^ y; - - assert(m != 10); -}