From e4612f7f6c0acf6b568bd29d7ec5daba551b0213 Mon Sep 17 00:00:00 2001 From: Daira Hopwood Date: Wed, 4 Aug 2021 13:04:13 +0100 Subject: [PATCH] Update Poseidon instantiation from 58 to 56 partial rounds. fixes #166 Test vectors are from https://github.com/zcash-hackworks/zcash-test-vectors/pull/45 Signed-off-by: Daira Hopwood --- src/primitives/poseidon/nullifier.rs | 1782 +++++++++++------------ src/primitives/poseidon/test_vectors.rs | 264 ++-- src/test_vectors/keys.rs | 60 +- 3 files changed, 1031 insertions(+), 1075 deletions(-) diff --git a/src/primitives/poseidon/nullifier.rs b/src/primitives/poseidon/nullifier.rs index 1d5167b3..69fb30f5 100644 --- a/src/primitives/poseidon/nullifier.rs +++ b/src/primitives/poseidon/nullifier.rs @@ -3,11 +3,12 @@ use pasta_curves::pallas; use super::{Mds, Spec}; -/// Poseidon-128 using the $x^5$ S-box, with a width of 3 field elements, and an extra -/// partial round compared to the standard specification. +/// Poseidon-128 using the $x^5$ S-box, with a width of 3 field elements, and the +/// standard number of rounds for 128-bit security "with margin". /// -/// The standard specification for this set of parameters uses $R_F = 8, R_P = 57$. Having -/// an even number of partial rounds makes it easier to construct a Halo 2 circuit. +/// The standard specification for this set of parameters uses $R_F = 8, R_P = 56$. +/// This is conveniently an even number of partial rounds, making it easier to +/// construct a Halo 2 circuit. #[derive(Debug)] pub struct OrchardNullifier; @@ -17,7 +18,7 @@ impl Spec for OrchardNullifier { } fn partial_rounds() -> usize { - 58 + 56 } fn sbox(val: pallas::Base) -> pallas::Base { @@ -39,1328 +40,1288 @@ impl Spec for OrchardNullifier { } } -// $ sage generate_parameters_grain.sage 1 0 255 3 8 58 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001 -// Number of round constants: 198 +// $ sage generate_parameters_grain.sage 1 0 255 3 8 56 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001 +// Number of round constants: 192 // Round constants for GF(p): -const ROUND_CONSTANTS: [[pallas::Base; 3]; 66] = [ +const ROUND_CONSTANTS: [[pallas::Base; 3]; 64] = [ [ pallas::Base::from_raw([ - 0x6190_4c05_11b7_37a4, - 0x37df_4021_c68b_5eef, - 0x21f1_0338_7216_cb91, - 0x2f2c_2bfb_d707_0f53, + 0x5753_8c25_9642_6303, + 0x4e71_162f_3100_3b70, + 0x353f_628f_76d1_10f3, + 0x360d_7470_611e_473d, ]), pallas::Base::from_raw([ - 0xfb31_1b7d_0f35_b058, - 0x3645_b63b_123b_613a, - 0x6ccd_d22b_2bbd_ead1, - 0x04ec_2fc5_c55d_6774, + 0xbdb7_4213_bf63_188b, + 0x4908_ac2f_12eb_e06f, + 0x5dc3_c6c5_febf_aa31, + 0x2bab_94d7_ae22_2d13, ]), pallas::Base::from_raw([ - 0x6771_be5f_74ec_b0b6, - 0x63e4_6dfb_62f3_522b, - 0xfa9b_9241_2522_3a71, - 0x3c62_4cfc_4c99_4eb2, + 0x0939_d927_53cc_5dc8, + 0xef77_e7d7_3676_6c5d, + 0x2bf0_3e1a_29aa_871f, + 0x150c_93fe_f652_fb1c, ]), ], [ pallas::Base::from_raw([ - 0x5a93_6dc4_5b05_9511, - 0xccec_d6c1_2a34_927a, - 0xdd9b_91a3_d903_1e29, - 0x3476_744a_626a_1813, + 0x1425_9dce_5377_82b2, + 0x03cc_0a60_141e_894e, + 0x955d_55db_56dc_57c1, + 0x3270_661e_6892_8b3a, ]), pallas::Base::from_raw([ - 0x033e_60bd_7a63_cf16, - 0x4e4c_8c3f_df34_ea1a, - 0x09d3_b2dc_9dc0_7889, - 0x3e8e_3c1b_8e9f_1e18, + 0xce9f_b9ff_c345_afb3, + 0xb407_c370_f2b5_a1cc, + 0xa0b7_afe4_e205_7299, + 0x073f_116f_0412_2e25, ]), pallas::Base::from_raw([ - 0x4be1_bb1b_9efd_907c, - 0x2af9_c485_bc73_d98a, - 0x247a_437c_362b_ba13, - 0x1439_f41a_f895_3e20, + 0x8eba_d76f_c715_54d8, + 0x55c9_cd20_61ae_93ca, + 0x7aff_d09c_1f53_f5fd, + 0x2a32_ec5c_4ee5_b183, ]), ], [ pallas::Base::from_raw([ - 0x93ac_3d2c_a4ac_6c7a, - 0xaf57_eb31_28f8_6621, - 0xfea4_4f9f_1ee2_7531, - 0x2184_e123_d6f4_e5e9, + 0x2d8c_cbe2_92ef_eead, + 0x634d_24fc_6e25_59f2, + 0x651e_2cfc_7406_28ca, + 0x2703_26ee_039d_f19e, ]), pallas::Base::from_raw([ - 0xa3ed_a4c8_1672_9416, - 0xf8e0_5b92_93c9_b396, - 0x8cc0_34f5_68ae_dbe1, - 0x3310_19b9_09d6_c87d, + 0xa068_fc37_c182_e274, + 0x8af8_95bc_e012_f182, + 0xdc10_0fe7_fcfa_5491, + 0x27c6_642a_c633_bc66, ]), pallas::Base::from_raw([ - 0xa53f_26c9_a84f_a24e, - 0xd1eb_a258_6b77_9d45, - 0xc6ec_9cff_8656_ad7e, - 0x0007_8b16_de3f_a3a0, + 0x9ca1_8682_e26d_7ff9, + 0x710e_1fb6_ab97_6a45, + 0xd27f_5739_6989_129d, + 0x1bdf_d8b0_1401_c70a, ]), ], [ pallas::Base::from_raw([ - 0x5bc1_b292_6f39_601e, - 0x8578_2423_cf7f_d130, - 0x1d44_ff02_4f9f_4e7a, - 0x394f_7421_1753_9cad, + 0xc832_d824_261a_35ea, + 0xf4f6_fb3f_9054_d373, + 0x14b9_d6a9_c84d_d678, + 0x162a_14c6_2f9a_89b8, ]), pallas::Base::from_raw([ - 0x8ed5_76fd_4d43_d779, - 0x0311_e30e_0ba5_c300, - 0x6e65_df29_3f27_25e0, - 0x261e_237d_617e_261a, + 0xf798_2466_7b5b_6bec, + 0xac0a_1fc7_1e2c_f0c0, + 0x2af6_f79e_3127_feea, + 0x2d19_3e0f_76de_586b, ]), pallas::Base::from_raw([ - 0x4513_b401_f48a_3668, - 0x857d_2f7b_4075_d28b, - 0x33dc_cb6f_7c44_8319, - 0x252d_1389_b3ae_fdd2, + 0x5d0b_f58d_c8a4_aa94, + 0x4fef_f829_8499_0ff8, + 0x8169_6ef1_104e_674f, + 0x044c_a3cc_4a85_d73b, ]), ], [ pallas::Base::from_raw([ - 0xf69d_f9e7_88a5_fe24, - 0x38d6_3539_2451_923a, - 0x67bf_7e43_0350_923d, - 0x025c_a9dd_a3db_70df, + 0x6198_785f_0cd6_b9af, + 0xb8d9_e2d4_f314_f46f, + 0x1d04_5341_6d3e_235c, + 0x1cba_f2b3_71da_c6a8, ]), pallas::Base::from_raw([ - 0xc18c_1272_2350_1f93, - 0x8d15_2f5c_9542_1ab6, - 0x17e5_17ed_d753_f0b1, - 0x1d2c_2ace_140a_d5b6, + 0x343e_0761_0f3f_ede5, + 0x293c_4ab0_38fd_bbdc, + 0x0e6c_49d0_61b6_b5f4, + 0x1d5b_2777_692c_205b, ]), pallas::Base::from_raw([ - 0x6768_c840_3f50_ac2c, - 0x4079_eb21_f42e_4af0, - 0x654c_7abd_86a6_8443, - 0x0ba4_95c1_f7b7_7dbf, + 0xf60e_971b_8d73_b04f, + 0x06a9_adb0_c1e6_f962, + 0xaa30_535b_dd74_9a7e, + 0x2e9b_dbba_3dd3_4bff, ]), ], [ pallas::Base::from_raw([ - 0xd8af_6070_2eef_9e28, - 0x05f1_5752_efc3_ebe1, - 0x5bb2_f866_4192_2732, - 0x2cbc_e449_5032_4cba, + 0x035a_1366_1f22_418b, + 0xde40_fbe2_6d04_7b05, + 0x8bd5_bae3_6969_299f, + 0x2de1_1886_b180_11ca, ]), pallas::Base::from_raw([ - 0x671a_fb22_aeae_9d14, - 0xfe5e_302a_8a71_c31c, - 0x95e4_242d_b16d_3a33, - 0x2476_7e0d_3abf_426d, + 0xbc99_8884_ba96_a721, + 0x2ab9_395c_449b_e947, + 0x0d5b_4a3f_1841_dcd8, + 0x2e07_de17_80b8_a70d, ]), pallas::Base::from_raw([ - 0x0d92_8670_de2a_3031, - 0xb8a9_71e0_ba9d_aab5, - 0x146d_53fc_c83a_ea81, - 0x1acd_6ef0_e60e_4b14, + 0x825e_4c2b_b749_25ca, + 0x2504_40a9_9d6b_8af3, + 0xbbdb_63db_d52d_ad16, + 0x0f69_f185_4d20_ca0c, ]), ], [ pallas::Base::from_raw([ - 0xcc1c_8611_4da6_a1eb, - 0xa17e_77a8_a72e_7eed, - 0x1994_2055_672d_627d, - 0x340f_94d4_00bd_0a31, + 0x816c_0594_22dc_705e, + 0x6ce5_1135_07f9_6de9, + 0x0d13_5dc6_39fb_09a4, + 0x2eb1_b254_17fe_1767, ]), pallas::Base::from_raw([ - 0xd51e_2326_061e_22c0, - 0x472c_8da2_9209_c94d, - 0xd607_11e3_3e0c_6b82, - 0x0327_373c_ca3d_d2f8, + 0xb8b1_bdf4_953b_d82c, + 0xff36_c661_d26c_c42d, + 0x8c24_cb44_c3fa_b48a, + 0x115c_d0a0_643c_fb98, ]), pallas::Base::from_raw([ - 0x5fdb_2ffc_f016_1350, - 0x39ee_1819_0c5c_2080, - 0x17c2_d6ae_0490_61e9, - 0x1d10_41d8_2c9d_480f, + 0xde80_1612_311d_04cd, + 0xbb57_ddf1_4e0f_958a, + 0x066d_7378_b999_868b, + 0x26ca_293f_7b2c_462d, ]), ], [ pallas::Base::from_raw([ - 0x51bc_3143_6ab5_a574, - 0xb7d1_3550_1d3d_911f, - 0x895e_8c73_6110_59f8, - 0x0de4_750f_968b_5257, + 0xf520_9d14_b248_20ca, + 0x0f16_0bf9_f71e_967f, + 0x2a83_0aa1_6241_2cd9, + 0x17bf_1b93_c4c7_e01a, ]), pallas::Base::from_raw([ - 0xb241_4383_ee1a_5794, - 0x1145_4b0c_d0eb_7d3f, - 0xc7fc_9a99_c916_ccba, - 0x3592_90a3_7861_96bb, + 0x05c8_6f2e_7dc2_93c5, + 0xe03c_0354_bd8c_fd38, + 0xa24f_8456_369c_85df, + 0x35b4_1a7a_c4f3_c571, ]), pallas::Base::from_raw([ - 0x18c2_0b5c_ec2e_8036, - 0xdd44_60b6_7aef_0364, - 0xba58_0e14_53f3_094d, - 0x28ff_cddd_f417_cbab, + 0x72ac_156a_f435_d09e, + 0x64e1_4d3b_eb2d_ddde, + 0x4359_2799_4849_bea9, + 0x3b14_8008_0523_c439, ]), ], [ pallas::Base::from_raw([ - 0x322d_2c6a_faab_6a00, - 0x8601_0174_246d_3c89, - 0xde99_a4e4_dcc1_3084, - 0x0e76_c3df_688e_d3f5, + 0x2716_18d8_74b1_4c6d, + 0x08e2_8644_2a2d_3eb2, + 0x4950_856d_c907_d575, + 0x2cc6_8100_31dc_1b0d, ]), pallas::Base::from_raw([ - 0x7892_2912_d57f_57c7, - 0x7c42_ac6e_80e9_7c5b, - 0xbde1_8a6b_3a19_c2ef, - 0x172c_a76a_f974_367a, + 0x91f3_18c0_9f0c_b566, + 0x9e51_7aa9_3b78_341d, + 0x0596_18e2_afd2_ef99, + 0x25bd_bbed_a1bd_e8c1, ]), pallas::Base::from_raw([ - 0x9b64_fa4d_c692_195f, - 0x8951_a840_7b00_fd3f, - 0x6626_01e1_68f1_a7aa, - 0x12ed_4668_b154_3521, + 0xc631_3487_073f_7f7b, + 0x2a5e_d0a2_7b61_926c, + 0xb95f_33c2_5dde_8ac0, + 0x392a_4a87_58e0_6ee8, ]), ], [ pallas::Base::from_raw([ - 0x90f2_a829_e538_d398, - 0x2f61_4f7b_cf82_32ef, - 0x6fd7_211f_8354_d509, - 0x0c2e_a06a_9894_cea5, + 0xe7bb_cef0_2eb5_866c, + 0x5e6a_6fd1_5db8_9365, + 0x9aa6_111f_4de0_0948, + 0x272a_5587_8a08_442b, ]), pallas::Base::from_raw([ - 0x7c7f_ea10_9bb0_9622, - 0xb55d_8ea1_3054_9451, - 0xe547_5968_9b03_8ae3, - 0x0fae_a603_1813_6b64, + 0x9b92_5b3c_5b21_e0e2, + 0xa6eb_ba01_1694_dd12, + 0xefa1_3c4e_60e2_6239, + 0x2d5b_308b_0cf0_2cdf, ]), pallas::Base::from_raw([ - 0x287b_fe86_a1e6_6b27, - 0x1e7b_9009_8c78_a371, - 0xb93e_ebf4_dd9a_414f, - 0x1bea_eb46_5cd4_c711, + 0xef38_c57c_3116_73ac, + 0x44df_f42f_18b4_6c56, + 0xdd5d_293d_72e2_e5f2, + 0x1654_9fc6_af2f_3b72, ]), ], [ pallas::Base::from_raw([ - 0xa81a_dd76_cd42_a4e3, - 0x3b6f_7bdd_6b37_dd97, - 0x2c2b_06ed_e811_4d46, - 0x351c_94b9_bcca_5b1a, + 0x9b71_26d9_b468_60df, + 0x7639_8265_3442_0311, + 0xfa69_c3a2_ad52_f76d, + 0x1b10_bb7a_82af_ce39, ]), pallas::Base::from_raw([ - 0xdcfc_4eba_a75a_4d92, - 0xbb6e_d62b_9232_8294, - 0xe68f_84dc_f259_a459, - 0x2a18_38fa_c174_9e4f, + 0x90d2_7f6a_00b7_dfc8, + 0xd1b3_6968_ba04_05c0, + 0xc79c_2df7_dc98_a3be, + 0x0f1e_7505_ebd9_1d2f, ]), pallas::Base::from_raw([ - 0xcd23_0bfa_e2f6_70fb, - 0x9341_8cf0_2a66_ea98, - 0xa4f8_8c06_ea9c_2ab8, - 0x3f87_5c2c_d7e1_d69e, + 0xff45_7756_b819_bb20, + 0x797f_d6e3_f18e_b1ca, + 0x537a_7497_a3b4_3f46, + 0x2f31_3faf_0d3f_6187, ]), ], [ pallas::Base::from_raw([ - 0x6ce2_37b7_c99f_07a1, - 0x0ddd_35b2_87fd_c798, - 0x145f_e811_a3fc_4486, - 0x3122_4a34_1252_9b86, + 0xf0bc_3e73_2ecb_26f6, + 0x5cad_11eb_f0f7_ceb8, + 0xfa3c_a61c_0ed1_5bc5, + 0x3a5c_bb6d_e450_b481, ]), pallas::Base::from_raw([ - 0x615b_6db2_9fd9_314e, - 0x0d6e_e24b_4e39_c55c, - 0xb42a_1119_bfba_e23e, - 0x1556_b2b9_633a_e623, + 0x8655_27cb_ca91_5982, + 0x51ba_a6e2_0f89_2b62, + 0xd920_86e2_53b4_39d6, + 0x3dab_54bc_9bef_688d, ]), pallas::Base::from_raw([ - 0x7522_5cd9_ed99_f2c2, - 0x6aff_3ab0_3e93_5519, - 0x1ce8_ca1c_71e5_fb34, - 0x399b_acd8_f54c_cc4d, + 0x3680_45ac_f2b7_1ae3, + 0x4c24_b33b_410f_efd4, + 0xe280_d316_7012_3f74, + 0x06db_fb42_b979_884d, ]), ], [ pallas::Base::from_raw([ - 0xf2f0_997b_bbaf_80e3, - 0x31c4_3e3a_d4d2_0eba, - 0xa02d_7dab_c144_4ad1, - 0x3898_7736_8a5c_321e, + 0xa7fc_32d2_2f18_b9d3, + 0xb8d2_de72_e3d2_c9ec, + 0xc6f0_39ea_1973_a63e, + 0x068d_6b46_08aa_e810, ]), pallas::Base::from_raw([ - 0xaebc_66a5_0a73_b506, - 0x6f78_fa39_361a_74cc, - 0xc6d1_7e9a_4132_067f, - 0x0ef3_2660_7429_91bb, + 0x2b5d_fcc5_5725_55df, + 0xb868_a7d7_e1f1_f69a, + 0x0ee2_58c9_b8fd_fccd, + 0x366e_bfaf_a3ad_381c, ]), pallas::Base::from_raw([ - 0x6d97_adb2_c113_9c94, - 0xfb7a_99f0_1266_cbe8, - 0x6eb3_d15a_465c_9221, - 0x1e49_1a5f_dda8_24e2, + 0xe6bc_229e_95bc_76b1, + 0x7ef6_6d89_d044_d022, + 0x04db_3024_f41d_3f56, + 0x3967_8f65_512f_1ee4, ]), ], [ pallas::Base::from_raw([ - 0xa07d_60fa_fe7f_0aa7, - 0xc6ad_0f62_f313_97e8, - 0x6ae7_ab72_cc34_eb48, - 0x2de4_d6ff_6ff2_634b, + 0xe534_c88f_e53d_85fe, + 0xcf82_c25f_99dc_01a4, + 0xd58b_7750_a3bc_2fe1, + 0x2166_8f01_6a80_63c0, ]), pallas::Base::from_raw([ - 0x06db_ddfc_dba5_2766, - 0xbf31_9eac_78d2_c935, - 0xf2a5_b561_38dd_2a5b, - 0x1283_a380_05b8_f0a7, + 0x4bef_429b_c533_1608, + 0xe34d_ea56_439f_e195, + 0x1bc7_4936_3e98_a768, + 0x39d0_0994_a8a5_046a, ]), pallas::Base::from_raw([ - 0xdf23_b7b3_98f0_61b6, - 0xb3c9_1a96_0025_c6ac, - 0xe092_ca71_681d_8050, - 0x19e2_efea_5020_aa4b, + 0x770c_956f_60d8_81b3, + 0xb163_d416_05d3_9f99, + 0x6b20_3bbe_12fb_3425, + 0x1f9d_bdc3_f843_1263, ]), ], [ pallas::Base::from_raw([ - 0x0b7f_4824_8fec_885d, - 0x6109_68a1_4a94_ce03, - 0xf557_19af_51c1_1b6b, - 0x287f_b567_ece3_5108, + 0x9794_a9f7_c336_eab2, + 0xbe0b_c829_fe5e_66c6, + 0xe5f1_7b9e_0ee0_cab6, + 0x0277_45a9_cddf_ad95, ]), pallas::Base::from_raw([ - 0x5980_0355_f507_bb83, - 0x587f_25e1_e974_432d, - 0x5202_d448_3f10_d32a, - 0x2761_ea58_6e5d_500d, + 0x5202_5657_abd8_aee0, + 0x2fa4_3fe2_0a45_c78d, + 0x788d_695c_61e9_3212, + 0x1cec_0803_c504_b635, ]), pallas::Base::from_raw([ - 0x6d52_9cb3_1dff_100e, - 0xf85d_7939_79ae_02c4, - 0xaf18_b1bd_8786_f740, - 0x2f77_d7a4_f74d_b35e, + 0xd387_2a95_59a0_3a73, + 0xed50_82c8_dbf3_1365, + 0x7207_7448_ef87_cc6e, + 0x1235_23d7_5e9f_abc1, ]), ], [ pallas::Base::from_raw([ - 0xd34b_6824_5ebf_1dc2, - 0x3200_eb32_4f5d_7c33, - 0x0d4a_5e12_0b9d_c8f1, - 0x0390_862d_7e6e_7a69, + 0x0017_79e3_a1d3_57f4, + 0x27fe_ba35_975e_e7e5, + 0xf419_b848_e5d6_94bf, + 0x1723_d145_2c9c_f02d, ]), pallas::Base::from_raw([ - 0x352e_4174_565c_5a52, - 0xd519_6ea5_d70b_bdb6, - 0x8c2a_51c1_1a9c_c97f, - 0x14d5_b21d_a4b4_5c80, + 0x9dab_1ee4_dcf9_6622, + 0x21c3_f776_f572_836d, + 0xfcc0_573d_7e61_3694, + 0x1739_d180_a160_10bd, ]), pallas::Base::from_raw([ - 0x3f85_66c9_d7d1_e755, - 0xacb7_96e3_1fc8_737f, - 0xd088_112a_1784_03a1, - 0x2974_ad78_ec5d_90fb, + 0x7029_0452_042d_048d, + 0xfafa_96fb_eb0a_b893, + 0xacce_3239_1794_b627, + 0x2d4e_6354_da9c_c554, ]), ], [ pallas::Base::from_raw([ - 0xffb5_3b78_5334_ee3c, - 0x28b4_13c7_a3bb_7e68, - 0xa3a1_c290_f0b0_4b7a, - 0x36b5_8f70_52ad_cc1f, + 0x670b_cf6f_8b48_5dcd, + 0x8f3b_d43f_9926_0621, + 0x4a86_9553_c9d0_07f8, + 0x153e_e614_2e53_5e33, ]), pallas::Base::from_raw([ - 0x9715_9cc8_a973_39c2, - 0x19c4_993e_b1fd_95ae, - 0xaeb8_7009_3f64_3639, - 0x2efb_0a9e_fd6c_60a1, + 0xd258_d2e2_b778_2172, + 0x968a_d442_4af8_3700, + 0x635e_f7e7_a430_b486, + 0x0c45_bfd3_a69a_aa65, ]), pallas::Base::from_raw([ - 0x29b6_1e80_5c98_c1ff, - 0xd152_8ff7_aa4b_b022, - 0x3f19_a23c_72a2_a102, - 0x1f04_ae7d_f249_c70c, + 0x0e56_33d2_51f7_3307, + 0x6897_ac0a_8ffa_5ff1, + 0xf2d5_6aec_8314_4600, + 0x0adf_d53b_256a_6957, ]), ], [ pallas::Base::from_raw([ - 0x1363_315c_4d8e_0cb0, - 0x91fd_0d3b_8c61_7d8a, - 0x5964_2e54_f819_8589, - 0x278d_44fe_8f8c_2996, + 0xac9d_36a8_b751_6d63, + 0x3f87_b28f_1c1b_e4bd, + 0x8cd1_726b_7cba_b8ee, + 0x315d_2ac8_ebdb_ac3c, ]), pallas::Base::from_raw([ - 0xe334_4dc1_c159_2406, - 0x6ded_5b7f_8cef_c2a2, - 0x49b4_5714_ae1b_0f6a, - 0x1a2b_bd02_2168_061c, + 0x299c_e44e_a423_d8e1, + 0xc9bb_60d1_f695_9879, + 0xcfae_c23d_2b16_883f, + 0x1b84_7271_2d02_eef4, ]), pallas::Base::from_raw([ - 0x13eb_f947_a355_9f9c, - 0xf93c_b4ed_2236_6398, - 0xdf8a_91de_8e68_8793, - 0x0f0d_e2f7_3193_a97e, + 0xc4a5_4041_98ad_f70c, + 0x367d_2c54_e369_28c9, + 0xbd0b_70fa_2255_eb6f, + 0x3c1c_d07e_fda6_ff24, ]), ], [ pallas::Base::from_raw([ - 0x0072_ef68_ea43_8f92, - 0xb76c_d699_d0b3_0adf, - 0x5092_c3d2_32a0_9399, - 0x3ac4_7dc2_48f1_6ac5, + 0xbbe5_23ae_f9ab_107a, + 0x4a16_073f_738f_7e0c, + 0x687f_4e51_b2e1_dcd3, + 0x1360_52d2_6bb3_d373, ]), pallas::Base::from_raw([ - 0xb3c7_7965_3e34_a054, - 0x002c_2347_a222_043c, - 0xf4a0_c967_5981_2f90, - 0x1f7f_927d_aef5_fc95, + 0x676c_36c2_4ef9_67dd, + 0x7b3c_fbb8_7303_2681, + 0xc1bd_d859_a123_2a1d, + 0x16c9_6bee_f6a0_a848, ]), pallas::Base::from_raw([ - 0xc0b1_79e1_cc95_0b85, - 0x945c_315c_e93d_fc00, - 0xe6e3_cd02_b1ad_cb7c, - 0x250b_4faf_86d7_2618, + 0x067e_ec7f_2d63_40c4, + 0x0123_87ba_b4f1_662d, + 0x2ab7_fed8_f499_a9fb, + 0x284b_38c5_7ff6_5c26, ]), ], [ pallas::Base::from_raw([ - 0x65d2_0118_981a_de0e, - 0x7288_bcc4_fab6_750d, - 0x6252_8967_df12_153f, - 0x07c6_4646_dee2_604b, + 0xaf1d_ff20_4c92_2f86, + 0xfc06_772c_1c04_11a6, + 0x39e2_4219_8897_d17c, + 0x0c59_93d1_75e8_1f66, ]), pallas::Base::from_raw([ - 0xee93_af96_dbad_ff1d, - 0xa05c_8ca1_dd71_32ef, - 0x78fa_143c_a115_8bbb, - 0x24cb_bd23_4c0e_f700, + 0xbbf5_3f67_b1f8_7b15, + 0xf248_87ad_48e1_7759, + 0xfcda_655d_1ba9_c8f9, + 0x03bf_7a3f_7bd0_43da, ]), pallas::Base::from_raw([ - 0x54bb_4e6c_f7fa_521b, - 0xc536_2d39_b634_8ecc, - 0xfdbb_f3cc_08b7_adec, - 0x208e_df94_ef33_9a27, + 0x9b5c_d09e_36d8_be62, + 0x4c8f_9cbe_69f0_e827, + 0xb0cf_9995_67f0_0e73, + 0x3188_fe4e_e9f9_fafb, ]), ], [ pallas::Base::from_raw([ - 0xf96c_7fd8_2a46_da35, - 0xf45f_1196_3d6c_1806, - 0x0a58_9d3d_2c4d_14db, - 0x3ea2_a73f_40f1_f3d2, + 0xafea_99a2_ec6c_595a, + 0x3af5_bf77_c1c4_2652, + 0x5a39_768c_480d_61e1, + 0x171f_528c_cf65_8437, ]), pallas::Base::from_raw([ - 0x5973_a73e_a275_2c7a, - 0xe79c_b26f_f91b_9be1, - 0x771b_b857_f4c5_1f58, - 0x36cc_b856_7075_d3a0, + 0x5a05_63b9_b8e9_f1d5, + 0x812c_3286_ee70_0067, + 0x196e_4185_9b35_ef88, + 0x12f4_175c_4ab4_5afc, ]), pallas::Base::from_raw([ - 0xfc86_81d1_7000_408c, - 0x3adc_95de_617c_fa32, - 0xa9cd_f91c_e7f8_3147, - 0x0865_4b64_9a50_91ba, + 0x0e74_d4d3_6911_8b79, + 0x7e23_e1aa_be96_cfab, + 0x8f8f_dcf8_00a9_ac69, + 0x3a50_9e15_5cb7_ebfd, ]), ], [ pallas::Base::from_raw([ - 0xa989_8bed_507f_18ea, - 0xa5fa_c865_c5b6_ee7d, - 0xf28b_308e_e52a_8e0e, - 0x2b58_a76b_cbfb_8500, + 0x9871_2c65_678c_fd30, + 0x984b_c8f2_e4c1_b69e, + 0x1a89_920e_2504_c3b3, + 0x10f2_a685_df4a_27c8, ]), pallas::Base::from_raw([ - 0x7d15_8962_25d5_9a2e, - 0xe2ed_8f25_33be_8e73, - 0x4614_b661_05cc_b699, - 0x1001_d34a_284e_2b25, + 0xe8a1_6728_cc9d_4918, + 0x5457_3c93_33c5_6321, + 0x1d8d_93d5_4ab9_1a0e, + 0x09e5_f497_90c8_a0e2, ]), pallas::Base::from_raw([ - 0x9c42_86cc_6354_bc9c, - 0x2a61_dece_93b1_651c, - 0x2f1e_63d2_30af_a70c, - 0x1337_5ab0_b535_0afb, + 0x609a_7403_47cf_5fea, + 0x42d1_7ed6_ee0f_ab7e, + 0x2bf3_5705_d9f8_4a34, + 0x352d_69be_d80e_e3e5, ]), ], [ pallas::Base::from_raw([ - 0x5622_b222_a0f0_aacb, - 0xac5b_9ccb_5216_abda, - 0xec72_491a_04c6_4702, - 0x2a71_69d4_6ff2_ffba, + 0x3a75_8af6_fa84_e0e8, + 0xc634_debd_281b_76a6, + 0x4915_62fa_f2b1_90d3, + 0x058e_e73b_a9f3_f293, ]), pallas::Base::from_raw([ - 0x55ea_ce8b_6210_1ae0, - 0x51d2_1417_4045_e6fc, - 0x9860_9472_4c18_52f6, - 0x033e_b55b_edfd_6b29, + 0x621a_1325_10a4_3904, + 0x092c_b921_19bc_76be, + 0xcd0f_1fc5_5b1a_3250, + 0x232f_99cc_911e_ddd9, ]), pallas::Base::from_raw([ - 0x5ec0_5387_9568_fad1, - 0x795c_7f74_d5d1_c53b, - 0x19e3_1226_ee75_1c71, - 0x10ca_1ffa_2026_0f40, + 0xc3b9_7c1e_301b_c213, + 0xf9ef_d52c_a6bc_2961, + 0x86c2_2c6c_5d48_69f0, + 0x201b_eed7_b8f3_ab81, ]), ], [ pallas::Base::from_raw([ - 0xf1f0_9804_30bd_6854, - 0x495d_5082_cf47_489d, - 0xe461_72c4_2bbc_83e3, - 0x06c1_da78_f2f5_f0fd, + 0xbf6b_3431_ba94_e9bc, + 0x2938_8842_744a_1210, + 0xa1c9_291d_5860_2f51, + 0x1376_dce6_5800_30c6, ]), pallas::Base::from_raw([ - 0xf74a_4bab_5a21_c53f, - 0x3b4e_83b5_09a3_975c, - 0xfdd8_999c_5424_4724, - 0x1ae9_bf00_85d1_a2b7, + 0x6454_843c_5486_d7b3, + 0x072b_a8b0_2d92_e722, + 0x2b33_56c3_8238_f761, + 0x1793_199e_6fd6_ba34, ]), pallas::Base::from_raw([ - 0xcbdb_eb71_eec5_383c, - 0xd38b_e406_010a_91c1, - 0x0754_2c63_1e00_2e81, - 0x3685_99e0_cc70_9b2d, + 0x06a3_f1d3_b433_311b, + 0x3c66_160d_c62a_acac, + 0x9fee_9c20_c87a_67df, + 0x22de_7a74_88dc_c735, ]), ], [ pallas::Base::from_raw([ - 0x2278_8138_e958_4f32, - 0x898f_3267_9397_2442, - 0x2e02_d60c_365d_cb49, - 0x02e7_9429_cc4d_4a36, + 0x30d6_e3fd_516b_47a8, + 0xdbe0_b77f_ae77_e1d0, + 0xdf8f_f37f_e2d8_edf8, + 0x3514_d5e9_066b_b160, ]), pallas::Base::from_raw([ - 0xa0a8_2bd6_1d49_d14d, - 0x4a43_15eb_87d9_9b67, - 0x00d3_998a_d9c2_20db, - 0x18c5_41e9_d275_1b80, + 0x1937_7427_137a_81c7, + 0xff45_3d6f_900f_144a, + 0xf919_a00d_abbf_5fa5, + 0x30cd_3006_931a_d636, ]), pallas::Base::from_raw([ - 0x01c9_bf57_9600_678e, - 0x4474_43b5_f9d9_292b, - 0xb49b_9fb5_4a89_a586, - 0x1975_07d5_e313_e2e3, + 0x5b6a_7422_0692_b506, + 0x8f9e_4b2c_ae2e_bb51, + 0x41f8_1a5c_f613_c8df, + 0x253d_1a5c_5293_4127, ]), ], [ pallas::Base::from_raw([ - 0xbffc_4f5f_ddbd_c07f, - 0x6f47_0f70_41be_91ab, - 0x6696_164e_25e7_0092, - 0x26b1_bd92_ee89_3188, + 0x73f6_66cb_86a4_8e8e, + 0x851b_3a59_c990_fafc, + 0xa35e_9613_e7f5_fe92, + 0x035b_461c_02d7_9d19, ]), pallas::Base::from_raw([ - 0x4d8c_ad71_a7e5_fdbe, - 0x2681_d0a2_3a45_7772, - 0x98d8_f8f4_4dea_ed09, - 0x0efd_b615_f564_ee46, + 0x7cfb_f86a_3aa0_4780, + 0x92b1_283c_2d5f_ccde, + 0x5bc0_0eed_d56b_93e0, + 0x23a9_9280_79d1_75bd, ]), pallas::Base::from_raw([ - 0x6814_4a5f_c771_da1c, - 0xac9f_2bcc_f1fa_8d43, - 0x7a71_bdbe_3259_4a48, - 0x266a_5ddd_c5f8_3288, + 0xf1e4_ccd7_3fa0_0a82, + 0xb5e2_ea34_36ee_f957, + 0xf159_4a07_63c6_11ab, + 0x13a7_785a_e134_ea92, ]), ], [ pallas::Base::from_raw([ - 0xb32a_9caa_f616_8330, - 0xb575_fb42_0a34_4f56, - 0xe17d_8e2d_f091_7f29, - 0x34f3_56e3_badb_42d5, + 0xbbf0_4f52_52de_4279, + 0x3889_c578_6344_6d88, + 0x4962_ae3c_0da1_7e31, + 0x39fc_e308_b7d4_3c57, ]), pallas::Base::from_raw([ - 0x258b_3a63_f45e_bcaf, - 0xf138_f015_bc0d_0d5a, - 0xddd7_16c5_b3f0_4c48, - 0x2fa9_ad6f_882f_66cc, + 0x3b57_e344_89b5_3fad, + 0xbef0_0a08_c6ed_38d2, + 0xc0fd_f016_62f6_0d22, + 0x1aae_1883_3f8e_1d3a, ]), pallas::Base::from_raw([ - 0xb2ab_8c35_890d_cd99, - 0x7350_958a_ac95_be44, - 0x84f4_fc53_939b_ed4d, - 0x210b_6333_86cd_d227, + 0x5551_3e03_3398_513f, + 0x27c1_b3fd_8f85_d8a8, + 0x8b2e_80c0_64fd_83ed, + 0x1a76_1ce8_2400_af01, ]), ], [ pallas::Base::from_raw([ - 0xd6a5_6d62_f6ad_9eb3, - 0x0937_f9d6_cf91_437d, - 0x4e80_ab16_39af_af61, - 0x34dc_0f06_9165_b00e, + 0x5244_ca74_9b73_e481, + 0xdcf6_af28_30a5_0287, + 0x16dd_1a87_ca22_e1cc, + 0x275a_03e4_5add_a7c3, ]), pallas::Base::from_raw([ - 0x3326_b045_5cf8_778c, - 0x913f_a6f4_11c7_dc73, - 0x82d0_614a_e013_d8c7, - 0x259b_4cb0_b086_1d07, + 0x58a2_53cf_b6a9_5786, + 0x07e5_6145_3fc5_648b, + 0xeb08_e47e_5fea_bcf8, + 0x2e5a_10f0_8b5a_b8bb, ]), pallas::Base::from_raw([ - 0xa7d0_770e_ad39_5746, - 0x315a_baf4_89d4_1b29, - 0xc660_788b_3e78_bd62, - 0x0f88_d8b6_c5d9_073d, + 0xe033_d82c_efe7_8ce3, + 0xc141_a5b6_d594_bec4, + 0xb84e_9c33_3b29_32f1, + 0x1459_cb85_8720_8473, ]), ], [ pallas::Base::from_raw([ - 0x2084_d439_504c_1fc6, - 0x3282_e45a_f42d_83c7, - 0x5bae_f3db_5d93_3785, - 0x30ab_d11e_cb73_119f, + 0x5cec_7e7b_338f_be1b, + 0x52f9_332f_bffc_fbbd, + 0x7b92_ce81_0e14_a400, + 0x193a_e592_1d78_b5de, ]), pallas::Base::from_raw([ - 0x63a1_8839_c6f6_446f, - 0x5efc_980a_bba7_cc33, - 0xf302_af09_d5ba_ec04, - 0x3152_ce32_5264_529c, + 0x6022_4be6_7248_e82c, + 0x3743_84f4_a072_8205, + 0x8911_1fb2_c466_0281, + 0x3097_898a_5d00_11a4, ]), pallas::Base::from_raw([ - 0x34f7_c161_3c27_0e35, - 0xe295_4fc5_9859_ff6c, - 0xbe94_978e_ddc4_51ed, - 0x00bd_3146_554e_552a, + 0x5499_80de_8629_30f5, + 0x1979_b2d1_c465_b4d9, + 0x5717_82fd_96ce_54b4, + 0x378d_97bf_8c86_4ae7, ]), ], [ pallas::Base::from_raw([ - 0xb7f2_4921_d8d4_a0fe, - 0x15a9_3afa_e282_c149, - 0xee1c_ea96_ee50_9228, - 0x2c1e_f4c8_ef91_1a32, + 0x37ea_32a9_71d1_7884, + 0xdbc7_f5cb_4609_3421, + 0x8813_6287_ce37_6b08, + 0x2eb0_4ea7_c01d_97ec, ]), pallas::Base::from_raw([ - 0x3296_6e61_c7ad_12b3, - 0xbdd8_bc44_6d7b_ebcd, - 0x2972_1a01_deb5_335b, - 0x2386_9adb_5876_af5f, + 0xead3_726f_1af2_e7b0, + 0x861c_bda4_7680_4e6c, + 0x2302_a1c2_2e49_baec, + 0x3642_5347_ea03_f641, ]), pallas::Base::from_raw([ - 0xe2ea_4991_a83e_5559, - 0xf372_cb64_c6be_d49d, - 0xaccd_f61a_c128_cb35, - 0x2af8_8e26_1ca1_217c, + 0xecd6_27e5_9590_d09e, + 0x3f5b_5ca5_a19a_9701, + 0xcc99_6cd8_5c98_a1d8, + 0x26b7_2df4_7408_ad42, ]), ], [ pallas::Base::from_raw([ - 0x80c9_c434_914c_b08a, - 0xa40d_cea8_f7f0_97f1, - 0xa257_ecf1_0b3d_aaf6, - 0x1b5d_76d6_c03d_a588, + 0x59be_ce31_f0a3_1e95, + 0xde01_212e_e458_8f89, + 0x1f05_636c_610b_89aa, + 0x1301_80e4_4e29_24db, ]), pallas::Base::from_raw([ - 0x37d0_8e8f_023b_6285, - 0xfe59_9fc4_7620_2d0a, - 0xcfc6_bd3d_2f02_7c3a, - 0x1c76_daae_2af0_990f, + 0x9ea8_e7bc_7926_3550, + 0xdf77_93cc_89e5_b52f, + 0x7327_5aca_ed5f_579c, + 0x219e_9773_7d39_79ba, ]), pallas::Base::from_raw([ - 0xb85e_a92c_8328_797f, - 0x59e5_b761_f252_18ad, - 0x3bbb_3577_ca09_d9f0, - 0x2f58_93f6_a6e2_ef3d, + 0x9c12_635d_f251_d153, + 0x3b06_72dd_7d42_cbb4, + 0x3461_363f_81c4_89a2, + 0x3cdb_9359_8a5c_a528, ]), ], [ pallas::Base::from_raw([ - 0x1833_029f_7309_4c23, - 0x3327_8958_6064_7230, - 0xe894_488c_79ff_5370, - 0x1a11_a3dc_1687_4116, + 0x2861_ce16_f219_d5a9, + 0x4ad0_4470_45a7_c5aa, + 0x2072_4b92_7a0c_a81c, + 0x0e59_e6f3_32d7_ed37, ]), pallas::Base::from_raw([ - 0xf7c9_a6bd_81c2_000e, - 0xcde0_6b75_292c_4777, - 0xed91_4926_1eac_2db8, - 0x22b2_a9a8_4c55_5a46, + 0x43b0_a3fc_ff20_36bd, + 0x172c_c07b_9d33_fbf9, + 0x3d73_6946_7222_697a, + 0x1b06_4342_d51a_4275, ]), pallas::Base::from_raw([ - 0x9339_8ca5_a5e8_bbaa, - 0x6f6f_9834_8d77_c85b, - 0x7220_4d8f_5e4e_e22e, - 0x1f72_01ee_4928_76c1, + 0x3eb3_1022_8a0e_5f6c, + 0x78fa_9fb9_1712_21b7, + 0x2f36_3c55_b288_2e0b, + 0x30b8_2a99_8cbd_8e8a, ]), ], [ pallas::Base::from_raw([ - 0xf636_c50c_f6fd_d861, - 0x211e_ab31_8f41_42dc, - 0x2512_ee31_1910_c8f8, - 0x08e2_edc6_fbdc_691f, + 0xe46f_6d42_9874_0107, + 0x8ad7_1ea7_15be_0573, + 0x63df_7a76_e858_a4aa, + 0x23e4_ab37_183a_cba4, ]), pallas::Base::from_raw([ - 0x03df_22f7_61e0_6616, - 0xdf0a_181b_9932_2307, - 0xb250_c657_8359_c6a4, - 0x1737_26c1_c53a_38ab, + 0xfca9_95e2_b599_14a1, + 0xacfe_1464_0de0_44f2, + 0x5d33_094e_0bed_a75b, + 0x2795_d5c5_fa42_8022, ]), pallas::Base::from_raw([ - 0x8958_0351_e387_8456, - 0x729a_8410_c1e2_5489, - 0x7d1e_d330_1929_1435, - 0x2ffe_9110_497c_dee2, + 0xc26d_909d_ee8b_53c0, + 0xa668_7c3d_f16c_8fe4, + 0xd765_f26d_d03f_4c45, + 0x3001_ca40_1e89_601c, ]), ], [ pallas::Base::from_raw([ - 0x8de1_001e_d1cc_4478, - 0xe4fd_5bd6_5a73_8f7f, - 0xdad1_5fb8_6a62_79d9, - 0x02f1_f990_3714_8d41, + 0xe7fe_a6bd_f347_1380, + 0xe84b_5beb_ae4e_501d, + 0xf7bf_86e8_9280_827f, + 0x0072_e45c_c676_b08e, ]), pallas::Base::from_raw([ - 0x86b3_f413_408e_73c7, - 0x97d0_126d_c4eb_15da, - 0xf04a_f6cf_b2e6_f0a8, - 0x0a2c_4dbf_4da2_980e, + 0xd0c5_4dde_b26b_86c0, + 0xb648_29e2_d40e_41bd, + 0xe2ab_e4c5_18ce_599e, + 0x13de_7054_8487_4bb5, ]), pallas::Base::from_raw([ - 0x363c_f0c6_1f2b_c143, - 0x14fa_3c81_edcf_cf8d, - 0x7913_597b_d93b_e23a, - 0x2970_b9d6_3a8d_b924, + 0x3891_5b43_2a99_59a5, + 0x82bb_18e5_af1b_05bb, + 0x3159_50f1_211d_efe8, + 0x0408_a9fc_f9d6_1abf, ]), ], [ pallas::Base::from_raw([ - 0x771e_d118_571f_65c1, - 0xde9a_8b95_5210_901a, - 0x69a2_bf80_aa73_8769, - 0x0400_e593_87ee_438d, + 0x3407_0cbe_e268_86a0, + 0xae4d_23b0_b41b_e9a8, + 0xbb4e_4a14_00cc_d2c4, + 0x2780_b9e7_5b55_676e, ]), pallas::Base::from_raw([ - 0x2a61_3b39_9eef_6665, - 0xdad6_b1ac_8ec6_fe11, - 0xbc61_4b93_8890_be42, - 0x25be_6a88_f910_a398, + 0x9405_5920_98b4_056f, + 0xdc4d_8fbe_fe24_405a, + 0xf803_33ec_8563_4ac9, + 0x3a57_0d4d_7c4e_7ac3, ]), pallas::Base::from_raw([ - 0x6b72_9a6a_5fc8_9279, - 0xad74_ca8b_334d_c53a, - 0x4899_d113_fc17_41fb, - 0x03ea_4bdf_101f_d934, + 0x78d2_b247_8995_20b4, + 0xe2cc_1507_bebd_cc62, + 0xf347_c247_fcf0_9294, + 0x0c13_cca7_cb1f_9d2c, ]), ], [ pallas::Base::from_raw([ - 0x4141_8934_d16f_1c4f, - 0xd307_7303_195f_57fc, - 0x9b21_8f28_2aa1_c2df, - 0x1047_fad9_b32e_fea0, + 0x2e8c_88f7_7074_70e0, + 0x0b50_bb2e_b82d_f74d, + 0xd261_4a19_7c6b_794b, + 0x14f5_9baa_03cd_0ca4, ]), pallas::Base::from_raw([ - 0x3421_74c0_8f0e_99ac, - 0xcc6a_a4c2_a2de_1b55, - 0xf6ff_cf3f_7dde_261c, - 0x0a87_65e8_2791_f0fa, + 0xbe52_476e_0a16_f3be, + 0xa51d_54ed_e661_67f5, + 0x6f54_6e17_04c3_9c60, + 0x307d_efee_925d_fb43, ]), pallas::Base::from_raw([ - 0xf589_8f39_574e_3d46, - 0xc6a1_dde0_8c7d_f91d, - 0x43fd_78b1_caa0_1bc4, - 0x2326_fa25_a0eb_dced, + 0x380b_67d8_0473_dce3, + 0x6611_0683_6adf_e5e7, + 0x7a07_e767_4b5a_2621, + 0x1960_cd51_1a91_e060, ]), ], [ pallas::Base::from_raw([ - 0x9dec_33c3_a37a_4a02, - 0x63c4_69e9_8f0e_7f42, - 0x32ab_8d8e_f1cc_c268, - 0x1b1a_9c59_6960_3195, + 0x15aa_f1f7_7125_89dd, + 0xb8ee_335d_8828_4cbe, + 0xca2a_d0fb_5667_2500, + 0x2301_ef9c_63ea_84c5, ]), pallas::Base::from_raw([ - 0x0c21_ae5e_15d6_dcf4, - 0x36c0_68f6_550f_fea1, - 0x9eaa_5f9a_cf0a_4809, - 0x3b29_8d20_b110_0560, + 0x5e68_478c_4d60_27a9, + 0xc861_82d1_b424_6b58, + 0xd10f_4cd5_2be9_7f6b, + 0x029a_5a47_da79_a488, ]), pallas::Base::from_raw([ - 0xa7c8_70bb_6170_25f3, - 0xaaca_4d92_4128_005e, - 0x488a_42e8_d5f2_6f94, - 0x1577_6a39_3f3d_75ee, + 0x2cc4_f962_eaae_2260, + 0xf97f_e46b_6a92_5428, + 0x2360_d17d_890e_55cb, + 0x32d7_b16a_7f11_cc96, ]), ], [ pallas::Base::from_raw([ - 0x27d1_9784_5e9b_8bff, - 0x70ce_cf5a_6a12_220e, - 0xac0c_f2e2_d173_cedf, - 0x062e_8dab_4d23_7e8a, + 0xc0ca_b915_d536_3d9f, + 0xa5f2_404c_d7b3_5eb0, + 0x18e8_57a9_8d49_8cf7, + 0x2670_3e48_c03b_81ca, ]), pallas::Base::from_raw([ - 0x2920_36c7_10a4_89b7, - 0xf685_88e8_f5e4_2277, - 0x510c_c767_0229_45e2, - 0x0071_9d1b_34cd_a84f, + 0xf691_123a_e112_b928, + 0xf443_88bd_6b89_221e, + 0x88ac_8d25_a246_03f1, + 0x0486_82a3_5b32_65bc, ]), pallas::Base::from_raw([ - 0x34bd_dbb6_7246_7d41, - 0xf19e_59a3_cb71_50c4, - 0x2f17_92c3_e496_c93a, - 0x0f90_1761_fa7e_0016, + 0x3ab7_defc_b8d8_03e2, + 0x91d6_e171_5164_775e, + 0xd72c_ddc6_cf06_b507, + 0x06b1_3904_41fa_7030, ]), ], [ pallas::Base::from_raw([ - 0x6026_4363_487f_e0c4, - 0x8870_5c97_60c5_8f32, - 0x3f76_9a14_a7c3_d54f, - 0x18f3_9bd0_2bcc_22f4, + 0xbcd7_9541_4a6e_2e86, + 0x43b3_60f6_386a_86d7, + 0x1689_426d_ce05_fcd8, + 0x31aa_0eeb_868c_626d, ]), pallas::Base::from_raw([ - 0x0820_60d5_bef3_2e60, - 0xc25d_0428_0d69_a9bb, - 0xee60_341f_3c2f_281f, - 0x1676_0882_4f7f_125f, + 0xed77_f5d5_76b9_9cc3, + 0x90ef_d8f4_1b20_78b2, + 0x057a_bad3_764c_104b, + 0x2394_64f7_5bf7_b6af, ]), pallas::Base::from_raw([ - 0x8ba0_a876_454c_3de2, - 0xa5bf_90ea_ab88_e716, - 0xd8ea_a882_40f1_c586, - 0x2f9d_3358_af7e_3bcf, + 0xb2cb_4873_07c1_cecf, + 0xa5cc_47c5_9654_b2a7, + 0xa45e_19ed_813a_54ab, + 0x0a64_d4c0_4fd4_26bd, ]), ], [ pallas::Base::from_raw([ - 0x079d_6a3f_ebcf_9e3b, - 0x6adc_6096_c706_e318, - 0x18a6_9f25_2ba9_c513, - 0x32ac_45a3_7e16_86ae, + 0x1f73_1532_2f65_8735, + 0x777c_7a92_1a06_2e9d, + 0x576a_4ad2_5986_0fb1, + 0x21fb_bdbb_7367_0734, ]), pallas::Base::from_raw([ - 0x55cc_d0c3_22d7_de32, - 0xebae_5321_2e62_9d33, - 0x113d_cb80_a1fa_1bd8, - 0x2f89_51ae_3f28_9d7e, + 0x6743_2400_3fc5_2146, + 0x5b86_d294_63d3_1564, + 0xd937_1ca2_eb95_acf3, + 0x31b8_6f3c_f017_05d4, ]), pallas::Base::from_raw([ - 0xef6d_d647_040a_65fe, - 0x8673_f223_5a4e_fc40, - 0x92dc_e5f8_9ae2_377c, - 0x33a9_c0aa_4190_b15f, + 0x7045_f48a_a4eb_4f6f, + 0x1354_1d65_157e_e1ce, + 0x05ef_1736_d090_56f6, + 0x2bfd_e533_5437_7c91, ]), ], [ pallas::Base::from_raw([ - 0x98e8_14d2_8ef6_8fc0, - 0x4f67_12f0_7f43_ad5d, - 0x5378_dd6e_e7ee_0e55, - 0x16dc_7bbb_45d7_3243, + 0x5a13_a58d_2001_1e2f, + 0xf4d5_239c_11d0_eafa, + 0xd558_f36e_65f8_eca7, + 0x1233_ca93_6ec2_4671, ]), pallas::Base::from_raw([ - 0x06b0_16f2_516b_9ff7, - 0x14b6_94d3_a60b_6d61, - 0xa2dc_781f_dc4b_9352, - 0x2859_b4d0_a15a_bff3, + 0x6e70_af0a_7a92_4b3a, + 0x8780_58d0_234a_576f, + 0xc437_846d_8e0b_2b30, + 0x27d4_52a4_3ac7_dea2, ]), pallas::Base::from_raw([ - 0x32c2_7f4c_f838_4cb1, - 0x9607_c6db_a3dc_47ec, - 0x0676_1253_e857_b217, - 0x291e_7534_b1ac_0d44, + 0xa025_76b9_4392_f980, + 0x6a30_641a_1c3d_87b2, + 0xe816_ea8d_a493_e0fa, + 0x2699_dba8_2184_e413, ]), ], [ pallas::Base::from_raw([ - 0x9bce_91ae_f428_bf67, - 0xafca_dfe2_06a9_a114, - 0x23ce_32f9_566f_0613, - 0x25ca_b061_3937_bf2c, + 0x608c_6f7a_61b5_6e55, + 0xf185_8466_4f8c_ab49, + 0xc398_8bae_e42e_4b10, + 0x36c7_22f0_efcc_8803, ]), pallas::Base::from_raw([ - 0x9311_9a37_cf39_651d, - 0x9dab_05fe_f552_1021, - 0xf333_1b3d_67b4_1c7b, - 0x05d7_5d4b_a225_bd59, + 0x6e49_ac17_0dbb_7fcd, + 0x85c3_8899_a7b5_a833, + 0x08b0_f2ec_89cc_aa37, + 0x02b3_ff48_861e_339b, ]), pallas::Base::from_raw([ - 0x6c42_80c5_c8ff_fdb2, - 0xdd1b_0de4_9f51_890f, - 0x97fd_3b92_5c1c_b260, - 0x08f1_ac49_2aea_eb40, + 0xa8c5_ae03_ad98_e405, + 0x6fc3_ff4c_49eb_59ad, + 0x6016_2f44_27bc_657b, + 0x0b70_d061_d58d_8a7f, ]), ], [ pallas::Base::from_raw([ - 0x6d42_0f57_bbac_4a5c, - 0xfb0f_b949_8581_ea28, - 0x797e_85bd_e05f_be51, - 0x1930_f19b_b316_2224, + 0x2e06_cc4a_f33b_0a06, + 0xad3d_e8be_46ed_9693, + 0xf875_3ade_b9d7_cee2, + 0x3fc2_a13f_127f_96a4, ]), pallas::Base::from_raw([ - 0xbf01_921c_5018_7dad, - 0xe36b_4db7_d6d3_cf54, - 0xaacf_abdf_761a_c8db, - 0x3097_6bf9_c5ba_0385, + 0xc120_80ac_117e_e15f, + 0x00cb_3d62_1e17_1d80, + 0x1bd6_3434_ac8c_419f, + 0x0c41_a6e4_8dd2_3a51, ]), pallas::Base::from_raw([ - 0xc750_da24_f295_7c5d, - 0xdfec_ea86_51ec_61a4, - 0x3d0b_cdfa_a7bc_e677, - 0x2456_5e3c_889e_675e, + 0x9685_213e_9692_f5e1, + 0x72aa_ad7e_4e75_339d, + 0xed44_7653_7169_084e, + 0x2de8_072a_6bd8_6884, ]), ], [ pallas::Base::from_raw([ - 0x4c06_88bb_35b4_a84d, - 0x0ebb_63d1_313e_6f41, - 0xe94f_3558_cc6e_f85b, - 0x1b49_63d6_634d_1aa4, + 0x0ad0_1184_567b_027c, + 0xb81c_f735_cc9c_39c0, + 0x9d34_96a3_d9fe_05ec, + 0x0355_7a8f_7b38_a17f, ]), pallas::Base::from_raw([ - 0xd8b8_55e1_fec7_601c, - 0x102a_81c5_2750_19fe, - 0x861b_3c28_1de8_8796, - 0x11c6_3172_26eb_efe1, + 0x45bc_b5ac_0082_6abc, + 0x060f_4336_3d81_8e54, + 0xee97_6d34_282f_1a37, + 0x0b5f_5955_2f49_8735, ]), pallas::Base::from_raw([ - 0xe03f_84aa_7a81_2b35, - 0xfdd4_4941_11f5_2a2f, - 0xd729_b7ac_24f7_5e3e, - 0x31e4_caa7_2b12_8088, + 0x2f29_09e1_7e22_b0df, + 0xf5d6_46e5_7507_e548, + 0xfedb_b185_70dc_7300, + 0x0e29_23a5_fee7_b878, ]), ], [ pallas::Base::from_raw([ - 0xf796_00fa_0211_a509, - 0x9d78_c4f1_d61a_6d01, - 0x5d3d_0534_c8f6_53c5, - 0x28f0_c2c9_dc75_d859, + 0xf71e_ed73_f15b_3326, + 0xcf1c_b37c_3b03_2af6, + 0xc787_be97_020a_7fdd, + 0x1d78_5005_a7a0_0592, ]), pallas::Base::from_raw([ - 0x9c6f_63ff_9ba1_a43d, - 0xc589_d66d_722f_1117, - 0x1793_ba72_151e_d438, - 0x2d2e_d9e6_5605_3773, + 0x0acf_bfb2_23f8_f00d, + 0xa590_b88a_3b06_0294, + 0x0ba5_fedc_b8f2_5bd2, + 0x1ad7_72c2_73d9_c6df, ]), pallas::Base::from_raw([ - 0xdb98_8598_2dec_47a0, - 0x2e8d_9047_e90b_4a36, - 0xf739_aa08_c198_63ec, - 0x2d82_d12d_5502_c57e, + 0xc1ce_13d6_0f2f_5031, + 0x8105_10eb_61f0_672d, + 0xa78f_3275_c278_234b, + 0x027b_d647_85fc_bd2a, ]), ], [ pallas::Base::from_raw([ - 0x37e0_4c12_3560_7016, - 0x1695_e6fe_0408_ed4c, - 0xa37b_3550_d9e2_09e0, - 0x37ca_6631_22f8_f8c3, + 0x8337_f5e0_7923_a853, + 0xe224_3134_6945_7b8e, + 0xce6f_8ffe_a103_1b6d, + 0x2080_0f44_1b4a_0526, ]), pallas::Base::from_raw([ - 0x7522_9991_9a06_4262, - 0x9e41_f1f9_8fdd_90e8, - 0xfdaa_11f4_48aa_594e, - 0x23ae_a613_927e_92f3, + 0xa33d_7bed_89a4_408a, + 0x36cd_c8ee_d662_ad37, + 0x6eea_2cd4_9f43_12b4, + 0x3d5a_d61d_7b65_f938, ]), pallas::Base::from_raw([ - 0xef5f_02a7_ddca_9494, - 0x24e6_f954_57b7_ea81, - 0x10a8_afcd_345d_4e12, - 0x35a3_2d06_4403_f6c2, + 0x3bbb_ae94_cc19_5284, + 0x1df9_6cc0_3ea4_b26d, + 0x02c5_f91b_e4dd_8e3d, + 0x1333_8bc3_51fc_46dd, ]), ], [ pallas::Base::from_raw([ - 0x3a1c_403f_5374_09db, - 0x4dd8_9298_011e_5096, - 0x066f_e616_175c_bc52, - 0x10dd_3772_c90d_fb82, + 0xc527_1c29_7852_819e, + 0x646c_49f9_b46c_bf19, + 0xb87d_b1e2_af3e_a923, + 0x25e5_2be5_07c9_2760, ]), pallas::Base::from_raw([ - 0x3e11_d8ae_b0ac_e075, - 0xf477_c341_db2d_e6a3, - 0x3b28_c529_02a5_dee5, - 0x1688_8fc7_3063_7975, + 0x5c38_0ab7_01b5_2ea9, + 0xa34c_83a3_485c_6b2d, + 0x7109_6d8b_1b98_3c98, + 0x1c49_2d64_c157_aaa4, ]), pallas::Base::from_raw([ - 0xf561_d150_c731_3263, - 0x6ec5_9705_0032_a368, - 0x1985_97ef_a84f_66ef, - 0x1574_87d3_6ab5_b7c6, + 0xa20c_0b3d_a0da_4ca3, + 0xd434_87bc_288d_f682, + 0xf4e6_c5e7_a573_f592, + 0x0c5b_8015_7999_2718, ]), ], [ pallas::Base::from_raw([ - 0x6227_c476_ee63_9d21, - 0x0962_5055_fe9b_cb61, - 0xa8a2_3d89_03f5_c745, - 0x09db_6859_5b17_923b, + 0x7ea3_3c93_e408_33cf, + 0x584e_9e62_a7f9_554e, + 0x6869_5c0c_d7cb_f43d, + 0x1090_b1b4_d2be_be7a, ]), pallas::Base::from_raw([ - 0x4f6b_b0bb_7401_31bf, - 0x6d78_5da5_91fe_7104, - 0x2b15_4413_1870_8c59, - 0x2680_93fe_30f1_7639, + 0xe383_e1ec_3baa_8d69, + 0x1b21_8e35_ecf2_328e, + 0x68f5_ce5c_bed1_9cad, + 0x33e3_8018_a801_387a, ]), pallas::Base::from_raw([ - 0x5f53_1cd3_7695_3963, - 0xc123_c2bc_f66e_ae25, - 0x527b_cdc5_78ee_c161, - 0x2bcd_beb2_8b4a_ce35, + 0xb76b_0b3d_787e_e953, + 0x5f4a_02d2_8729_e3ae, + 0xeef8_d83d_0e87_6bac, + 0x1654_af18_772b_2da5, ]), ], [ pallas::Base::from_raw([ - 0xde61_92fa_1a74_57e0, - 0xfbe3_9694_bb5b_b4e4, - 0x12d1_af8b_0008_b7ba, - 0x15fb_7e0b_adca_6d87, + 0xef7c_e6a0_1326_5477, + 0xbb08_9387_0367_ec6c, + 0x4474_2de8_8c5a_b0d5, + 0x1678_be3c_c9c6_7993, ]), pallas::Base::from_raw([ - 0xb972_bf42_4ec6_a34d, - 0x9429_9bb9_6375_61d9, - 0x7986_e17f_6624_63d0, - 0x17bc_5b91_ab0d_42c9, + 0xaf5d_4789_3348_f766, + 0xdaf1_8183_55b1_3b4f, + 0x7ff9_c6be_546e_928a, + 0x3780_bd1e_01f3_4c22, ]), pallas::Base::from_raw([ - 0xb906_b04d_f55e_3332, - 0xc5bf_ef2c_af73_a21b, - 0xfbad_933f_9509_769a, - 0x28ba_3b75_2ddd_1219, + 0xa123_8032_0d7c_c1de, + 0x5d11_e69a_a6c0_b98c, + 0x0786_018e_7cb7_7267, + 0x1e83_d631_5c9f_125b, ]), ], [ pallas::Base::from_raw([ - 0xc2f3_a535_2ba0_a6a6, - 0x7738_3c76_6143_4bc7, - 0x3a9e_9daf_6c26_4cd4, - 0x08c2_1be5_da07_97c9, + 0x1799_603e_855c_e731, + 0xc486_894d_76e0_c33b, + 0x160b_4155_2f29_31c8, + 0x354a_fd0a_2f9d_0b26, ]), pallas::Base::from_raw([ - 0xf20f_0093_dd5b_fa1d, - 0x200f_12f5_2298_0391, - 0x5da1_a907_b0f3_d71e, - 0x1368_f9ec_d178_721b, + 0x8b99_7ee0_6be1_bff3, + 0x60b0_0dbe_1fac_ed07, + 0x2d8a_ffa6_2905_c5a5, + 0x00cd_6d29_f166_eadc, ]), pallas::Base::from_raw([ - 0xaa33_8c85_9817_0874, - 0xa612_4eae_2327_67d0, - 0x1181_6d40_2f28_6afb, - 0x3964_8728_08c6_0d5e, + 0x08d0_6419_1708_2f2c, + 0xc60d_0197_3f18_3057, + 0xdbe0_e3d7_cdbc_66ef, + 0x1d62_1935_2768_e3ae, ]), ], [ pallas::Base::from_raw([ - 0x4719_a8ea_4c4d_7c8b, - 0xafe8_5e7f_f470_8b5a, - 0x4394_a51f_e439_9eab, - 0x1980_d806_4cb2_b405, + 0xfa08_dd98_0638_7577, + 0xafe3_ca1d_b8d4_f529, + 0xe48d_2370_d7d1_a142, + 0x1463_36e2_5db5_181d, ]), pallas::Base::from_raw([ - 0xa4da_cee9_bba1_8392, - 0xe92d_094a_07af_1dc5, - 0xe084_68fe_ea77_7763, - 0x17d3_146d_fdcc_73a6, + 0xa901_d3ce_84de_0ad4, + 0x022e_54b4_9c13_d907, + 0x997a_2116_3e2e_43df, + 0x0005_d8e0_85fd_72ee, ]), pallas::Base::from_raw([ - 0x5192_9aae_aa1f_059f, - 0xc7ba_5faf_4b62_4660, - 0x7f51_a976_8d9b_1016, - 0x096d_d279_5c02_3850, + 0x1c36_f313_4196_4484, + 0x6f8e_bc1d_2296_021a, + 0x0dd5_e61c_8a4e_8642, + 0x364e_97c7_a389_3227, ]), ], [ pallas::Base::from_raw([ - 0x905f_7653_4b6e_4d0b, - 0x0eda_2f75_5fab_8728, - 0x5171_5eb6_5d21_3af1, - 0x253d_45b9_f0ba_5d8e, + 0xd7a0_0c03_d2e0_baaa, + 0xfa97_ec80_ad30_7a52, + 0x561c_6fff_1534_6878, + 0x0118_9910_671b_c16b, ]), pallas::Base::from_raw([ - 0x49d0_fcad_93df_0814, - 0x659a_2a33_fe85_7c5b, - 0x7dfe_6b82_afaa_9233, - 0x0c43_204d_8daf_1fcf, + 0x63fd_8ac5_7a95_ca8c, + 0x4c0f_7e00_1df4_90aa, + 0x5229_dfaa_0123_1a45, + 0x162a_7c80_f4d2_d12e, ]), pallas::Base::from_raw([ - 0x9164_030f_84f4_f704, - 0xda9d_65a8_7f26_2736, - 0xfe24_af67_14ff_5ac1, - 0x1c89_6e0a_96d7_fd26, + 0x32e6_9efb_22f4_0b96, + 0xcaff_31b4_fda3_2124, + 0x2604_e4af_b09f_8603, + 0x2a0d_6c09_5766_66bb, ]), ], [ pallas::Base::from_raw([ - 0xa7b9_e183_34de_48b9, - 0x7192_7b6a_f97f_22e6, - 0xd478_9b02_f826_e556, - 0x2940_86bc_2cea_0bc9, + 0xc0a0_180f_8cbf_c0d2, + 0xf444_d10d_63a7_4e2c, + 0xe16a_4d60_3d5a_808e, + 0x0978_e5c5_1e1e_5649, ]), pallas::Base::from_raw([ - 0x669f_abec_34df_de7d, - 0x2085_c987_b907_ed49, - 0xf65a_d183_8207_d907, - 0x23e4_09c4_60e1_df98, + 0x03f4_460e_bc35_1b6e, + 0x0508_7d90_3bda_cfd1, + 0xebe1_9bbd_ce25_1011, + 0x1bdc_ee3a_aca9_cd25, ]), pallas::Base::from_raw([ - 0xbe71_f83c_2a4c_3aa6, - 0xb7d6_fac1_e548_3f42, - 0x5389_2fdc_8946_d032, - 0x0474_f595_87e5_2aba, + 0xf619_64bf_3ade_7670, + 0x0c94_7321_e007_5e3f, + 0xe494_7914_0b19_44fd, + 0x1862_cccb_70b5_b885, ]), ], [ pallas::Base::from_raw([ - 0xa236_8fb2_845c_0058, - 0xf86d_966d_8587_3a5e, - 0xa1dd_59a9_b58b_11aa, - 0x3cba_f270_4083_7d2e, + 0xc326_7da6_e94a_dc50, + 0x39ee_99c1_cc6e_5dda, + 0xbc26_cc88_3a19_87e1, + 0x1f3e_91d8_63c1_6922, ]), pallas::Base::from_raw([ - 0x0226_357c_51d8_caa9, - 0x1253_2d7c_27d8_65c2, - 0x9688_c024_75cd_de18, - 0x363f_69f6_1694_ce23, + 0x0f85_b4ac_2c36_7406, + 0xfa66_1465_c656_ad99, + 0xef5c_08f8_478f_663a, + 0x1af4_7a48_a601_6a49, ]), pallas::Base::from_raw([ - 0xbd6d_470d_0b0e_aba9, - 0x2e97_3761_7d4c_6d77, - 0xa146_92c5_8aab_7b8e, - 0x1a19_06f6_e694_8159, + 0x0eab_cd87_e7d0_1b15, + 0x1c36_98b0_a2e3_da10, + 0x009d_5733_8c69_3505, + 0x3c8e_e901_956e_3d3f, ]), ], [ pallas::Base::from_raw([ - 0xb135_24a8_8911_89e2, - 0x474d_ac9e_a941_3da7, - 0x9ea3_aae5_37dc_9f49, - 0x3f55_112d_29d0_cd0a, + 0x8b94_7721_8967_3476, + 0xe10c_e2b7_069f_4dbd, + 0x68d0_b024_f591_b520, + 0x1660_a8cd_e7fe_c553, ]), pallas::Base::from_raw([ - 0xa02d_d716_8474_ccde, - 0xf438_b525_608a_c8bb, - 0xba15_b594_7c45_bda8, - 0x35ac_2c37_ec04_5706, + 0x9d8d_0f67_fdaa_79d5, + 0x3963_c2c1_f558_6e2f, + 0x1303_9363_34dd_1132, + 0x0f6d_9919_29d5_e4e7, ]), pallas::Base::from_raw([ - 0x6b8b_23f3_94c3_31eb, - 0x7825_dc7a_2f52_dffe, - 0x43d4_a724_cc4d_ef7f, - 0x0c76_87e1_da1a_9ab9, + 0x7a43_3091_e1ce_2d3a, + 0x4e7f_da77_0712_f343, + 0xcc62_5eaa_ab52_b4dc, + 0x02b9_cea1_921c_d9f6, ]), ], [ pallas::Base::from_raw([ - 0x0575_84c0_0e38_21cb, - 0xafca_04fe_e1d6_26b4, - 0x75d5_4080_f03e_1f99, - 0x05e9_8545_421d_5e76, + 0x3797_b2d8_3760_43b3, + 0xd8ca_f468_976f_0472, + 0x214f_7c67_84ac_b565, + 0x14a3_23b9_9b90_0331, ]), pallas::Base::from_raw([ - 0xd9b7_8df9_79c1_37ac, - 0x9262_85b8_6c63_187c, - 0x9a0e_e226_7846_93fb, - 0x2e0b_8eaa_fcab_9b61, + 0x347f_ef2c_00f0_953a, + 0x718b_7fbc_7788_af78, + 0xec01_ea79_642d_5760, + 0x1904_76b5_80cb_9277, ]), pallas::Base::from_raw([ - 0x9607_aa13_ed44_daf0, - 0xd35b_9e4f_a399_9a6a, - 0x273c_7823_c42d_ccc2, - 0x05c7_6e87_1214_1f4a, + 0xff4e_7e6f_b268_dfd7, + 0x9660_902b_6008_7651, + 0xa424_63d3_0b44_2b6f, + 0x090a_3a9d_869d_2eef, ]), ], [ pallas::Base::from_raw([ - 0x8b2a_481c_56ba_9c0c, - 0x3a17_a833_b534_d6fe, - 0xea06_940b_e2c6_34d6, - 0x2fa7_be72_d067_2174, + 0xf983_387e_a045_6203, + 0xe365_0013_04f9_a11e, + 0x0dbe_8fd2_270a_6795, + 0x3877_a955_8636_7567, ]), pallas::Base::from_raw([ - 0x6f78_11f5_054c_dbde, - 0x1210_de57_4d4c_2fee, - 0x6499_dfa3_70c1_28a8, - 0x0fb7_6439_1393_5067, + 0x39c0_af0f_e01f_4a06, + 0x6011_8c53_a218_1352, + 0x5df3_9a2c_c63d_dc0a, + 0x2d89_4691_240f_e953, ]), pallas::Base::from_raw([ - 0x596e_2345_784f_68d0, - 0xebd3_f445_5a24_36ce, - 0x8fa4_69f9_6a5c_0dc1, - 0x25ad_36d3_824b_9c3c, + 0x1aca_9eaf_9bba_9850, + 0x5914_e855_eeb4_4aa1, + 0x7ef7_1780_2016_6189, + 0x21b9_c182_92bd_bc59, ]), ], [ pallas::Base::from_raw([ - 0x5c02_32e3_bcd8_6646, - 0x876f_6a03_f6d1_4fc7, - 0x1019_fef5_8cc7_0312, - 0x2ea6_1863_5d2a_84e3, + 0x33f5_09a7_4ad9_d39b, + 0x272e_1cc6_c36a_2968, + 0x505a_05f2_a6ae_834c, + 0x2fe7_6be7_cff7_23e2, ]), pallas::Base::from_raw([ - 0xd5f1_76c6_2846_4f21, - 0x1286_8044_b458_cb5a, - 0xc04d_e2d4_8886_b1b8, - 0x0a93_3a76_9974_6381, + 0x0df9_fa97_277f_a8b4, + 0xd15b_ff84_0dda_e8a5, + 0x9299_81d7_cfce_253b, + 0x187a_a448_f391_e3ca, ]), pallas::Base::from_raw([ - 0x4313_1bac_cc08_b134, - 0x06ed_f6fc_efd1_3481, - 0x338b_6074_9293_22b4, - 0x1fc6_239c_bbc2_9822, + 0xf0c6_6af5_ffc7_3736, + 0x663c_cf7b_2ffe_4b5e, + 0x007a_b3aa_3617_f422, + 0x0b70_83ad_7517_07bf, ]), ], [ pallas::Base::from_raw([ - 0xb3a1_1859_ee5f_d06c, - 0x337f_fca1_97d0_2ef3, - 0x86cb_2037_12db_7076, - 0x193c_32e1_33cf_528a, + 0x2f9b_20f1_fbd4_9791, + 0x1975_b962_f6cb_8e0b, + 0x3bc4_ca99_02c5_2acb, + 0x030d_dbb4_7049_3f16, ]), pallas::Base::from_raw([ - 0xfc21_f046_34ea_4f51, - 0x253c_589f_5e75_5dac, - 0x2836_75b5_2631_2a9c, - 0x30d5_c435_da0e_541f, + 0x3a1c_62ca_8fbf_2525, + 0x8fb8_ab9d_60ea_17b2, + 0x950b_0ab1_8d35_46df, + 0x3130_fbaf_fb5a_a82a, ]), pallas::Base::from_raw([ - 0xee16_fd3a_6ae7_5a8a, - 0x795c_963c_687d_26fa, - 0x3d1d_960a_b3ba_d127, - 0x1c13_3110_54b3_00af, + 0x43a8_7618_0dc3_82e0, + 0x15ce_2ead_2fcd_051e, + 0x4f74_d74b_ac2e_e457, + 0x337f_5447_07c4_30f0, ]), ], [ pallas::Base::from_raw([ - 0x319b_ef54_9efe_dc8f, - 0xd247_5b37_5733_cb1e, - 0x195f_1302_cc68_9dc5, - 0x037a_f3e4_d8a5_d338, + 0x26de_98a8_736d_1d11, + 0x7d8e_471a_9fb9_5fef, + 0xac9d_91b0_930d_ac75, + 0x3499_7991_9015_394f, ]), pallas::Base::from_raw([ - 0xff11_799a_7caa_d0fa, - 0x9e7b_7465_6565_12c3, - 0x0050_3e21_9155_0215, - 0x061f_c5d5_b4e6_7dd1, + 0xccfc_b618_31d5_c775, + 0x3bf9_3da6_fff3_1d95, + 0x2305_cd7a_921e_c5f1, + 0x027c_c4ef_e3fb_35dd, ]), pallas::Base::from_raw([ - 0x2e47_4547_5bb8_d98d, - 0xee86_b745_5720_c619, - 0xe520_f782_00ea_b0b1, - 0x2e9d_62d7_87b4_ddd9, + 0xc3fa_2629_635d_27de, + 0x67f1_c6b7_3147_64af, + 0x61b7_1a36_9868_2ad2, + 0x037f_9f23_6595_4c5b, ]), ], [ pallas::Base::from_raw([ - 0x3664_22a8_a9fe_d3f1, - 0x5612_5771_9b44_b41f, - 0x9675_9a70_7813_7f7d, - 0x260b_46ed_156d_2ab0, + 0x77c5_b024_8483_71ae, + 0x6041_4abe_362d_01c9, + 0x10f1_cc6d_f8b4_bcd7, + 0x1f69_7cac_4d07_feb7, ]), pallas::Base::from_raw([ - 0xce6e_5ea4_9f6e_3e60, - 0x966c_c8c2_2a35_8012, - 0x86f8_9d31_140b_9246, - 0x0046_86cf_cd1f_9f1f, + 0x786a_dd24_4aa0_ef29, + 0x3145_c478_0631_09d6, + 0x26e6_c851_fbd5_72a6, + 0x267a_750f_e5d7_cfbc, ]), pallas::Base::from_raw([ - 0xbf4a_0139_570f_5744, - 0xb588_82d3_46b4_09a6, - 0xa686_5ccd_c93d_dc30, - 0x332e_deaa_8790_08c6, + 0x180e_2b4d_3e75_6f65, + 0xaf28_5fa8_2ce4_fae5, + 0x678c_9996_d9a4_72c8, + 0x0c91_feab_4a43_193a, ]), ], [ pallas::Base::from_raw([ - 0xe6cb_bc56_a1cc_0a00, - 0x07fe_d94c_329c_0b11, - 0xa554_6d21_e7df_e474, - 0x01ba_4b76_d0d0_8294, + 0x79c4_7c57_3ac4_10f7, + 0x7e3b_83af_4a4b_a3ba, + 0x2186_c303_8ea0_5e69, + 0x1745_569a_0a3e_3014, ]), pallas::Base::from_raw([ - 0xe6db_8d3b_6045_5b92, - 0xf891_4a82_0dcc_8548, - 0x1c2e_ed71_8f99_49d5, - 0x2eac_3042_7fcf_4f55, + 0x1e03_8852_2696_191f, + 0xfdff_66c6_f3b5_ffe1, + 0xeca5_1207_78a5_6711, + 0x2986_3d54_6e7e_7c0d, ]), pallas::Base::from_raw([ - 0x2c3d_ba81_95ee_2eee, - 0xfdd1_cc8b_a0e3_8bd0, - 0xbd95_1196_66e4_aa96, - 0x303c_32bf_49d7_3ea9, + 0x2f22_5e63_66bf_e390, + 0xa79a_03df_8339_94c6, + 0xbf06_bae4_9ef8_53f6, + 0x1148_d6ab_2bd0_0192, ]), ], [ pallas::Base::from_raw([ - 0xcbd8_e21b_9841_fb66, - 0xc94b_0b35_69cf_7446, - 0xbb31_8107_12c3_fb08, - 0x0e1c_c1e0_2632_ef1a, + 0xf4f6_331a_8b26_5d15, + 0xf745_f45d_350d_41d4, + 0xe18b_1499_060d_a366, + 0x02e0_e121_b0f3_dfef, ]), pallas::Base::from_raw([ - 0x5caf_daf6_96e6_7e7e, - 0x4ba2_045e_3347_c610, - 0xba4f_c21b_5295_56cb, - 0x3305_1496_b670_beba, + 0x078a_e6aa_1510_54b7, + 0x6904_0173_6d44_a653, + 0xb89e_f73a_40a2_b274, + 0x0d0a_a46e_76a6_a278, ]), pallas::Base::from_raw([ - 0x65f9_0880_8b42_02f0, - 0x01e7_572a_ca00_e124, - 0x90a7_f444_31e2_17ea, - 0x0eab_a3f4_0a2c_53cd, + 0x9a4d_532c_7b6e_0958, + 0x392d_de71_0f1f_06db, + 0xeee5_45f3_fa6d_3d08, + 0x1394_3675_b04a_a986, ]), ], [ pallas::Base::from_raw([ - 0x8b02_bc51_ec68_a656, - 0xc96e_d1a3_c8ee_dc8c, - 0xd481_0b03_95cd_422a, - 0x0b01_e425_270e_c4f3, + 0x961f_c818_dcbb_66b5, + 0xc9f2_b325_7530_dafe, + 0xd97a_11d6_3088_f5d9, + 0x2901_ec61_942d_34aa, ]), pallas::Base::from_raw([ - 0x7ebc_ffa2_b473_a674, - 0xfe84_48e7_d920_88c1, - 0x79ce_ca95_14f5_c4c3, - 0x133f_84bf_2658_6139, + 0xfdf5_44b9_63d1_fdc7, + 0x22ff_a2a2_af9f_a3e3, + 0xf431_d544_34a3_e0cf, + 0x2020_4a21_05d2_2e7e, ]), pallas::Base::from_raw([ - 0x7fe1_f95e_8b8c_3dd2, - 0x2739_e1e2_db9a_462a, - 0x1298_7260_f232_7ea0, - 0x3cbd_f49b_42e4_c2a5, - ]), - ], - [ - pallas::Base::from_raw([ - 0x3049_2c09_82eb_ed07, - 0xd633_96b1_6af9_a2ba, - 0x67db_3544_a2bf_6a17, - 0x2d38_b041_fc53_79cc, - ]), - pallas::Base::from_raw([ - 0x7c09_1bfb_3d26_dd25, - 0xadfc_fee0_c8fa_c216, - 0x0be0_da12_998d_3bde, - 0x3ae6_480f_4501_54a6, - ]), - pallas::Base::from_raw([ - 0x1057_9b58_eac5_2105, - 0x3066_e72b_b10b_4570, - 0x2a70_0564_1a6a_1d2d, - 0x01ac_e40f_2542_3f2c, - ]), - ], - [ - pallas::Base::from_raw([ - 0x2ef9_7c78_99c6_8028, - 0xb28c_e22d_6ad8_9993, - 0xfea2_b74b_a213_79cc, - 0x1212_fa56_5936_b14f, - ]), - pallas::Base::from_raw([ - 0xfaae_2389_3d5f_50fd, - 0x9a0f_3029_72d3_b542, - 0x4627_f44f_183c_91e1, - 0x2166_389a_0e4e_1f36, - ]), - pallas::Base::from_raw([ - 0xa3be_16b5_62d7_55c2, - 0x3857_6cf5_65d3_79e8, - 0x2c38_6d2d_f993_e845, - 0x0ade_42a7_91fe_f5cf, + 0x1211_b9e2_190d_6852, + 0xa004_abe8_e015_28c4, + 0x5c1e_3e9e_27a5_71c3, + 0x3a8a_6282_9512_1d5c, ]), ], ]; @@ -1379,126 +1340,125 @@ const ROUND_CONSTANTS: [[pallas::Base; 3]; 66] = [ const MDS: [[pallas::Base; 3]; 3] = [ [ pallas::Base::from_raw([ - 0x5480_ad14_0416_5bb7, - 0xcec9_f152_75e1_51dd, - 0x2b2b_44a0_ae97_7970, - 0x2ceb_be12_17e1_2284, + 0x323f_2486_d7e1_1b63, + 0x97d7_a0ab_2385_0b56, + 0xb3d5_9fbd_c8c9_ead4, + 0x0ab5_e5b8_74a6_8de7, ]), pallas::Base::from_raw([ - 0xdc65_5cba_595f_6be2, - 0x71a0_a9a8_5c2f_af79, - 0x0aa4_a254_996d_009a, - 0x3110_b59a_e4e8_14cf, + 0x8eca_5596_e996_ab5e, + 0x240d_4a7c_bf73_5736, + 0x293f_0f0d_886c_7954, + 0x3191_6628_e58a_5abb, ]), pallas::Base::from_raw([ - 0x6a7e_dd65_fbe7_1f3a, - 0xccbd_6da8_a74d_d18a, - 0xf611_3fb1_e6f9_d58f, - 0x12e2_f071_4a5c_ca1d, + 0x19d1_cf25_d8e8_345d, + 0xa0a3_b71a_5fb1_5735, + 0xd803_952b_bb36_4fdf, + 0x07c0_45d5_f5e9_e5a6, ]), ], [ pallas::Base::from_raw([ - 0x60cf_aae4_ab4a_c980, - 0x1ef3_c5b7_712d_8a4d, - 0x8422_eaca_ccb4_e3cd, - 0x1058_43a5_52c0_f9b9, + 0xd049_cdc8_d085_167c, + 0x3a0a_4640_48bd_770a, + 0xf8e2_4f66_822c_2d9f, + 0x2331_6263_0ebf_9ed7, ]), pallas::Base::from_raw([ - 0x853a_d5ef_4fc3_c705, - 0x0956_b654_1965_fc7e, - 0x4008_0459_729c_0a35, - 0x3ce8_7897_c427_fcea, + 0x4022_7011_3e04_7a2e, + 0x78f8_365c_85bb_ab07, + 0xb366_6454_8d60_957d, + 0x25ca_e259_9892_a8b0, ]), pallas::Base::from_raw([ - 0x3185_2115_0218_4691, - 0x3d47_3e48_acfa_fc5a, - 0x8681_5443_67a1_4794, - 0x1d06_d6dd_c915_85c6, + 0xf84d_806f_685f_747a, + 0x9aad_3d82_62ef_d83f, + 0x7493_8717_989a_1957, + 0x22f5_b5e1_e608_1c97, ]), ], [ pallas::Base::from_raw([ - 0xc9ce_d954_a225_40b2, - 0x9e53_df43_3c9b_311d, - 0x0638_7e6a_3770_3091, - 0x2e73_a087_01c0_f7e9, + 0xfee7_a994_4f84_dbe4, + 0x2168_0eab_c56b_c15d, + 0xf333_aa91_c383_3464, + 0x2e29_dd59_c64b_1037, ]), pallas::Base::from_raw([ - 0x1240_f8d2_a183_d3d5, - 0xb21e_b75a_1f46_501c, - 0x3424_f185_565f_e5b4, - 0x3f25_0fa9_21f5_7698, + 0xc771_effa_4326_3664, + 0xcbea_f48b_3a06_24c3, + 0x92d1_5e7d_ceef_1665, + 0x1d1a_ab4e_c1cd_6788, ]), pallas::Base::from_raw([ - 0xaa63_15cf_8d65_7550, - 0x989a_5940_2f58_1c3e, - 0xf318_f9d0_723b_e105, - 0x2f37_602c_d4d8_f52d, + 0x1563_9415_f6e8_5ef1, + 0x7587_2c39_b59a_31f6, + 0x51e0_cbea_d655_16b9, + 0x3bf7_6308_6a18_9364, ]), ], ]; -/// Generated by `halo2::primitives::poseidon::mds::generate_mds`. const MDS_INV: [[pallas::Base; 3]; 3] = [ [ pallas::Base::from_raw([ - 0x7df7_2e91_3ab5_b070, - 0x6b71_7e11_5a99_8237, - 0xfcde_6822_542b_6c27, - 0x14e2_b214_c3d1_26e9, + 0xc6de_463c_d140_4e6b, + 0x4543_705f_35e9_8ab5, + 0xcc59_ffd0_0de8_6443, + 0x2cc0_57f3_fa14_687a, ]), pallas::Base::from_raw([ - 0x8976_b88c_4116_9a1b, - 0x15d8_c7e1_f126_efa5, - 0xb265_e1f4_a725_486d, - 0x29b6_6187_3828_1152, + 0x1718_4041_7cab_7576, + 0xfadb_f8ae_7ae2_4796, + 0x5fd7_2b55_df20_8385, + 0x32e7_c439_f2f9_67e5, ]), pallas::Base::from_raw([ - 0x85f0_c522_3085_e76c, - 0x780e_9758_ed23_76ef, - 0x2733_7f07_455b_a2d9, - 0x2d80_332b_403c_754e, + 0x9426_45bd_7d44_64e0, + 0x1403_db6f_5030_2040, + 0xf461_778a_bf6c_91fa, + 0x2eae_5df8_c311_5969, ]), ], [ pallas::Base::from_raw([ - 0x1c77_d7b8_05cd_4953, - 0xed0e_b256_719a_6edc, - 0xa636_c07c_ae76_0981, - 0x1b68_2ac8_0938_d3a3, + 0xa1ca_1516_a4a1_a6a0, + 0x13f0_74fd_e9a1_8b29, + 0xdb18_b4ae_fe68_d26d, + 0x07bf_3684_8106_7199, ]), pallas::Base::from_raw([ - 0xea73_ad09_fdba_59e1, - 0x4a50_6846_66f2_0539, - 0xf6cb_3f9b_29c3_9472, - 0x1cf1_2883_f098_6bcf, + 0xe824_25bc_1b23_a059, + 0xbb1d_6504_0c85_c1bf, + 0x018a_918b_9dac_5dad, + 0x2aec_6906_c63f_3cf1, ]), pallas::Base::from_raw([ - 0xf4b4_03db_1e05_7595, - 0x960e_c8be_4628_a1aa, - 0xb0b9_c36a_e1b0_7cc0, - 0x1513_897c_7c7e_3fc8, + 0xe054_1adf_238e_0781, + 0x76b2_a713_9db7_1b36, + 0x1215_944a_64a2_46b2, + 0x0952_e024_3aec_2af0, ]), ], [ pallas::Base::from_raw([ - 0xf3d7_d7b0_9fe3_6f8c, - 0x9526_6977_2ca1_d65b, - 0x3f24_dcd1_e80a_2fd3, - 0x0732_d96e_8001_b96e, + 0x2a41_8d8d_73a7_c908, + 0xaef9_112e_952f_dbb5, + 0x723a_63a0_c09d_ab26, + 0x2fcb_ba6f_9159_a219, ]), pallas::Base::from_raw([ - 0x90f1_4247_7f07_c567, - 0x7df5_e253_1921_1a64, - 0x5e59_62b3_48a0_d694, - 0x3276_7b87_dd37_6aa5, + 0x76ef_ab42_d4fb_a90b, + 0xc5e4_960d_7424_cd37, + 0xb4dd_d4b4_d645_2256, + 0x1ec7_3725_74f3_851b, ]), pallas::Base::from_raw([ - 0x49cf_4c58_4659_39f7, - 0xeb8b_6ef6_5996_c0ca, - 0x709c_c68a_50e1_78b5, - 0x0ebf_6f0d_5431_e089, + 0xadc8_933c_6f3c_72ee, + 0x87a7_435d_30f8_be81, + 0x3c26_fa4b_7d25_b1e4, + 0x0d0c_2efd_6472_f12a, ]), ], ]; @@ -1518,27 +1478,27 @@ mod tests { /// The same Poseidon specification as poseidon::OrchardNullifier, but constructed /// such that its constants will be generated at runtime. #[derive(Debug)] - pub struct P128Pow5T3Plus { + pub struct P128Pow5T3 { secure_mds: usize, _field: PhantomData, } - impl P128Pow5T3Plus { + impl P128Pow5T3 { pub fn new(secure_mds: usize) -> Self { - P128Pow5T3Plus { + P128Pow5T3 { secure_mds, _field: PhantomData::default(), } } } - impl Spec for P128Pow5T3Plus { + impl Spec for P128Pow5T3 { fn full_rounds() -> usize { 8 } fn partial_rounds() -> usize { - 58 + 56 } fn sbox(val: F) -> F { @@ -1552,7 +1512,7 @@ mod tests { #[test] fn verify_constants() { - let poseidon = P128Pow5T3Plus::::new(0); + let poseidon = P128Pow5T3::::new(0); let (round_constants, mds, mds_inv) = poseidon.constants(); for (actual, expected) in round_constants @@ -1576,7 +1536,7 @@ mod tests { fn test_against_reference() { // This is the test vector output by the reference code at // , using parameters from - // `generate_parameters_grain.sage 1 0 255 3 8 58 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001`. + // `generate_parameters_grain.sage 1 0 255 3 8 56 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001`. let mut input = [ pallas::Base::from_raw([ @@ -1601,30 +1561,26 @@ mod tests { let expected_output = [ pallas::Base::from_raw([ - 0x4586_0cdf_c122_4c90, - 0x6ad2_1f3e_0511_2d6e, - 0xe2d3_3be0_7ee5_db5c, - 0x19a2_64db_f840_aaea, + 0xaeb1_bc02_4aec_a456, + 0xf7e6_9a71_d0b6_42a0, + 0x94ef_b364_f966_240f, + 0x2a52_6acd_0b64_b453, ]), pallas::Base::from_raw([ - 0x3dc3_ed1c_3434_091e, - 0x31cc_06bf_df6b_d5fd, - 0x8136_86b6_df10_cf99, - 0x11b8_23d6_6e94_c285, + 0x012a_3e96_28e5_b82a, + 0xdcd4_2e7f_bed9_dafe, + 0x76ff_7dae_343d_5512, + 0x13c5_d156_8b4a_a430, ]), pallas::Base::from_raw([ - 0xc5dc_3d6d_756e_de28, - 0xcbaa_5cae_abc5_96e3, - 0x68a6_35c3_b4cb_b608, - 0x1111_04f4_1966_d2ce, + 0x3590_29a1_d34e_9ddd, + 0xf7cf_dfe1_bda4_2c7b, + 0x256f_cd59_7984_561a, + 0x0a49_c868_c697_6544, ]), ]; - permute::, 3, 2>( - &mut input, - &MDS, - &ROUND_CONSTANTS, - ); + permute::, 3, 2>(&mut input, &MDS, &ROUND_CONSTANTS); assert_eq!(input, expected_output); } diff --git a/src/primitives/poseidon/test_vectors.rs b/src/primitives/poseidon/test_vectors.rs index f33d5cb5..97b9bcfe 100644 --- a/src/primitives/poseidon/test_vectors.rs +++ b/src/primitives/poseidon/test_vectors.rs @@ -35,19 +35,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0x90, 0x4c, 0x22, 0xc1, 0xdf, 0x0c, 0x86, 0x45, 0x6e, 0x2d, 0x11, 0x05, 0x3e, - 0x1f, 0xd2, 0x6a, 0x5c, 0xdb, 0xe5, 0x7e, 0xe0, 0x3b, 0xd3, 0xe2, 0xea, 0xaa, - 0x40, 0xf8, 0xdb, 0x64, 0xa2, 0x19, + 0x56, 0xa4, 0xec, 0x4a, 0x02, 0xbc, 0xb1, 0xae, 0xa0, 0x42, 0xb6, 0xd0, 0x71, + 0x9a, 0xe6, 0xf7, 0x0f, 0x24, 0x66, 0xf9, 0x64, 0xb3, 0xef, 0x94, 0x53, 0xb4, + 0x64, 0x0b, 0xcd, 0x6a, 0x52, 0x2a, ], [ - 0x1e, 0x09, 0x34, 0x34, 0x1c, 0xed, 0xc3, 0x3d, 0xfd, 0xd5, 0x6b, 0xdf, 0xbf, - 0x06, 0xcc, 0x31, 0x99, 0xcf, 0x10, 0xdf, 0xb6, 0x86, 0x36, 0x81, 0x85, 0xc2, - 0x94, 0x6e, 0xd6, 0x23, 0xb8, 0x11, + 0x2a, 0xb8, 0xe5, 0x28, 0x96, 0x3e, 0x2a, 0x01, 0xfe, 0xda, 0xd9, 0xbe, 0x7f, + 0x2e, 0xd4, 0xdc, 0x12, 0x55, 0x3d, 0x34, 0xae, 0x7d, 0xff, 0x76, 0x30, 0xa4, + 0x4a, 0x8b, 0x56, 0xd1, 0xc5, 0x13, ], [ - 0x28, 0xde, 0x6e, 0x75, 0x6d, 0x3d, 0xdc, 0xc5, 0xe3, 0x96, 0xc5, 0xab, 0xae, - 0x5c, 0xaa, 0xcb, 0x08, 0xb6, 0xcb, 0xb4, 0xc3, 0x35, 0xa6, 0x68, 0xce, 0xd2, - 0x66, 0x19, 0xf4, 0x04, 0x11, 0x11, + 0xdd, 0x9d, 0x4e, 0xd3, 0xa1, 0x29, 0x90, 0x35, 0x7b, 0x2c, 0xa4, 0xbd, 0xe1, + 0xdf, 0xcf, 0xf7, 0x1a, 0x56, 0x84, 0x79, 0x59, 0xcd, 0x6f, 0x25, 0x44, 0x65, + 0x97, 0xc6, 0x68, 0xc8, 0x49, 0x0a, ], ], }, @@ -71,19 +71,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0xc5, 0x77, 0x86, 0x7d, 0xe7, 0x3a, 0xac, 0x8f, 0xb6, 0x70, 0x24, 0x17, 0x15, - 0x02, 0xb9, 0x05, 0xed, 0xb3, 0x28, 0x5e, 0xd8, 0x2a, 0x83, 0xfd, 0x2d, 0x42, - 0x80, 0x78, 0x58, 0x20, 0xf8, 0x2b, + 0xd0, 0x6e, 0x2f, 0x83, 0x38, 0x92, 0x8a, 0x7e, 0xe7, 0x38, 0x0c, 0x77, 0x92, + 0x80, 0x87, 0xcd, 0xa2, 0xfd, 0x29, 0x61, 0xa1, 0x52, 0x69, 0x03, 0x7a, 0x22, + 0xd6, 0xd1, 0x20, 0xae, 0xdd, 0x21, ], [ - 0x15, 0xd5, 0xce, 0xac, 0x4b, 0x8a, 0x89, 0xf5, 0x50, 0xaf, 0x64, 0x6b, 0x9d, - 0x94, 0x01, 0x5d, 0xfe, 0x2d, 0xf2, 0x5e, 0x53, 0x1f, 0xc8, 0x64, 0x5a, 0x77, - 0x15, 0x25, 0xff, 0x8e, 0x79, 0x18, + 0x29, 0x55, 0xa4, 0x5f, 0x41, 0x6f, 0x10, 0xd6, 0xbc, 0x79, 0xac, 0x94, 0xd0, + 0xc0, 0x69, 0xc9, 0x49, 0xe5, 0xf4, 0xbd, 0x09, 0x48, 0x1e, 0x1f, 0x36, 0x8c, + 0xb9, 0xb8, 0xee, 0x51, 0x14, 0x0d, ], [ - 0x79, 0xcc, 0x5e, 0xf9, 0xec, 0xe6, 0x3d, 0x36, 0x85, 0xe0, 0x2e, 0xa3, 0xb0, - 0xb6, 0x91, 0x1b, 0xf3, 0xf1, 0x08, 0x9a, 0xf6, 0xc4, 0x5e, 0x1d, 0xbb, 0xb3, - 0x69, 0x24, 0x64, 0x49, 0x74, 0x1d, + 0x0d, 0x83, 0x76, 0xbb, 0xe9, 0xd6, 0x5d, 0x2b, 0x1e, 0x13, 0x6f, 0xb7, 0xd9, + 0x82, 0xab, 0x87, 0xc5, 0x1c, 0x40, 0x30, 0x44, 0xbe, 0x5c, 0x79, 0x9d, 0x56, + 0xbb, 0x68, 0xac, 0xf9, 0x5b, 0x10, ], ], }, @@ -107,19 +107,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0xf3, 0x8d, 0xca, 0xec, 0x4a, 0x8f, 0x4e, 0xa2, 0x4d, 0x77, 0x8f, 0x00, 0x02, - 0x36, 0xe4, 0xd3, 0x5e, 0x3c, 0xa6, 0x2e, 0x6a, 0x1b, 0xd8, 0x8b, 0x09, 0x00, - 0xfb, 0xaa, 0x1f, 0xc1, 0x79, 0x3e, + 0x0b, 0x77, 0xec, 0x53, 0x07, 0x14, 0x5a, 0x0c, 0x05, 0x2d, 0xc7, 0xa9, 0xd6, + 0xf9, 0x6a, 0xc3, 0x41, 0xae, 0x72, 0x64, 0x08, 0x32, 0xd5, 0x8e, 0x51, 0xeb, + 0x92, 0xa4, 0x17, 0x80, 0x17, 0x12, ], [ - 0x3a, 0xe7, 0x5e, 0x3d, 0x47, 0xda, 0x8c, 0xd9, 0x9e, 0x11, 0x5e, 0x6a, 0xee, - 0x89, 0x08, 0x0c, 0x19, 0x24, 0xbc, 0x47, 0xac, 0xe6, 0x1d, 0x66, 0x54, 0xf9, - 0x90, 0x07, 0x4d, 0x95, 0x57, 0x0b, + 0x3b, 0x52, 0x3f, 0x44, 0xf0, 0x0e, 0x46, 0x3f, 0x8b, 0x0f, 0xd7, 0xd4, 0xfc, + 0x0e, 0x28, 0x0c, 0xdb, 0xde, 0xb9, 0x27, 0xf1, 0x81, 0x68, 0x07, 0x7b, 0xb3, + 0x62, 0xf2, 0x67, 0x5a, 0x2e, 0x18, ], [ - 0xdd, 0x21, 0xcf, 0x43, 0x97, 0xb5, 0xec, 0xe2, 0x0c, 0x7a, 0x27, 0x42, 0x1e, - 0xf8, 0x18, 0x5b, 0x3d, 0xb7, 0x19, 0x1d, 0xac, 0x0e, 0xed, 0x45, 0x37, 0xe3, - 0x79, 0xf1, 0x3d, 0x71, 0x78, 0x06, + 0x95, 0x7a, 0x97, 0x06, 0xff, 0xcc, 0x35, 0x15, 0x64, 0xae, 0x80, 0x2a, 0x99, + 0x11, 0x31, 0x4c, 0x05, 0xe2, 0x3e, 0x22, 0xaf, 0xcf, 0x83, 0x40, 0x59, 0xdf, + 0x80, 0xfa, 0xc1, 0x05, 0x76, 0x26, ], ], }, @@ -143,19 +143,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0xdc, 0xd8, 0xa7, 0x4b, 0x5e, 0xd4, 0xfc, 0xe5, 0x5d, 0x55, 0x3a, 0x44, 0xcb, - 0x7f, 0x3e, 0x49, 0xf4, 0x58, 0xd7, 0x5c, 0xd2, 0x73, 0x54, 0xaf, 0x50, 0x87, - 0xad, 0xfd, 0x62, 0xba, 0x1f, 0x39, + 0x67, 0x80, 0x08, 0x3f, 0x7f, 0x82, 0xcb, 0x42, 0x54, 0xe7, 0xb6, 0x6f, 0x4b, + 0x83, 0x84, 0x6a, 0xc9, 0x77, 0x3f, 0xb9, 0xc3, 0x9c, 0x6e, 0xc9, 0x81, 0x8b, + 0x06, 0x22, 0x23, 0x09, 0x55, 0x2a, ], [ - 0x32, 0xe8, 0xb9, 0xf1, 0xe8, 0x1b, 0x94, 0xc0, 0xc5, 0x5b, 0x0a, 0x65, 0xb4, - 0x3b, 0xae, 0x5e, 0xae, 0xa8, 0x5b, 0x92, 0x6c, 0xda, 0x2d, 0x7c, 0x9b, 0x12, - 0xc3, 0xb3, 0x4a, 0x44, 0x02, 0x17, + 0xa5, 0xf9, 0xa5, 0x7e, 0x2c, 0x40, 0xb1, 0x58, 0xd8, 0x16, 0x53, 0x43, 0xe6, + 0x02, 0x65, 0x2c, 0x3e, 0xfc, 0x0b, 0x64, 0xdd, 0xca, 0xee, 0xe5, 0xce, 0x3d, + 0x95, 0x1f, 0xd5, 0x9f, 0x50, 0x08, ], [ - 0xea, 0xec, 0x69, 0x76, 0x9a, 0x01, 0xd0, 0xdb, 0x4e, 0xdc, 0x1e, 0x02, 0xb2, - 0x63, 0x14, 0x06, 0xba, 0xf7, 0x27, 0x34, 0x1f, 0xf1, 0xd4, 0xae, 0xe0, 0xdc, - 0xd9, 0x6e, 0x48, 0xb6, 0x0c, 0x13, + 0xdc, 0xa4, 0x64, 0x36, 0x12, 0x7c, 0x47, 0x7e, 0x83, 0x95, 0x0f, 0xa0, 0x7c, + 0xc6, 0x8a, 0x56, 0x6e, 0x54, 0x18, 0x55, 0xad, 0xc2, 0x68, 0x52, 0x97, 0x87, + 0x35, 0x24, 0x88, 0x92, 0x1e, 0x3b, ], ], }, @@ -179,19 +179,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0x55, 0x28, 0xb7, 0x18, 0xe3, 0x7d, 0x53, 0xad, 0x3c, 0x5e, 0x39, 0x8d, 0xa8, - 0xe7, 0xf1, 0x76, 0x3c, 0x0e, 0x9b, 0xf5, 0xe6, 0x15, 0xb3, 0x9a, 0x42, 0x25, - 0x74, 0x1d, 0x5f, 0xc2, 0x2c, 0x14, + 0x89, 0x99, 0x8e, 0x5e, 0x0f, 0xa1, 0x95, 0x2a, 0x40, 0xb8, 0xb5, 0x2b, 0x62, + 0xd9, 0x45, 0x70, 0xa4, 0x9a, 0x7d, 0x91, 0xdd, 0x22, 0x6d, 0x69, 0x2b, 0xc9, + 0xb1, 0xa6, 0x13, 0xc9, 0x08, 0x30, ], [ - 0xa5, 0x87, 0xa7, 0xa9, 0x85, 0x48, 0xc5, 0xe6, 0xc4, 0x9c, 0xdd, 0x04, 0xdf, - 0x77, 0x82, 0x6a, 0x5e, 0xf4, 0xe6, 0x24, 0xb8, 0x59, 0x5e, 0x79, 0x0e, 0x0d, - 0xba, 0xb1, 0x6f, 0x59, 0xd2, 0x26, + 0xd0, 0xee, 0x44, 0xd9, 0xa9, 0x0d, 0x90, 0x79, 0xef, 0xfb, 0x24, 0x86, 0xd3, + 0xd8, 0x4d, 0x1a, 0x18, 0x4e, 0xdf, 0x14, 0x97, 0x0b, 0xac, 0x36, 0xc7, 0x48, + 0x04, 0xc7, 0xff, 0xbe, 0xe5, 0x0b, ], [ - 0x53, 0xe4, 0x47, 0xbd, 0x29, 0x95, 0x72, 0x2c, 0xf5, 0x1a, 0x6c, 0x44, 0x71, - 0xeb, 0xb8, 0x3f, 0x0d, 0x11, 0xd5, 0xd0, 0x1f, 0x4d, 0x84, 0x88, 0xc5, 0x78, - 0x9f, 0xe9, 0x03, 0x37, 0x5e, 0x23, + 0x04, 0x81, 0x45, 0xa6, 0x61, 0xce, 0x78, 0x7c, 0x7e, 0x12, 0x2a, 0xc6, 0x44, + 0x7e, 0x9b, 0xa3, 0x93, 0xd3, 0x67, 0xac, 0x05, 0x4f, 0xaa, 0xc5, 0xb7, 0xb5, + 0xf7, 0x19, 0x2b, 0x2f, 0xde, 0x21, ], ], }, @@ -215,19 +215,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0x4a, 0x09, 0x0a, 0xa2, 0x98, 0xa8, 0x0c, 0xc3, 0x9c, 0x13, 0x5d, 0x51, 0xd1, - 0x63, 0x7c, 0xa4, 0x4e, 0xa4, 0xb2, 0x92, 0xc7, 0xa1, 0xd4, 0xef, 0xd3, 0xc0, - 0x5d, 0x0b, 0xfa, 0x3e, 0x0c, 0x09, + 0xce, 0x2d, 0x1f, 0x8d, 0x67, 0x7f, 0xfb, 0xfd, 0x73, 0xb2, 0x35, 0xe8, 0xc6, + 0x87, 0xfb, 0x42, 0x18, 0x7f, 0x78, 0x81, 0xc3, 0xce, 0x9c, 0x79, 0x4f, 0x2b, + 0xd4, 0x61, 0x40, 0xf7, 0xcc, 0x2a, ], [ - 0xf6, 0x6b, 0x28, 0x79, 0x7c, 0xe3, 0x56, 0x83, 0x0f, 0xda, 0xbf, 0xe0, 0x79, - 0x83, 0x9e, 0x9c, 0xb2, 0xe4, 0xd5, 0x66, 0x6b, 0xa6, 0x3b, 0x15, 0x94, 0x5e, - 0x95, 0x85, 0x85, 0x52, 0xfd, 0x38, + 0xaf, 0x82, 0x92, 0x39, 0xb6, 0xd5, 0x5d, 0x5f, 0x43, 0xec, 0x6f, 0x32, 0xb8, + 0x4a, 0x2a, 0x01, 0x1e, 0x64, 0xc5, 0x74, 0x73, 0x9f, 0x87, 0xcb, 0x47, 0xdc, + 0x70, 0x23, 0x83, 0xfa, 0x5a, 0x34, ], [ - 0xde, 0xe0, 0x09, 0x64, 0x33, 0x8c, 0x59, 0xe6, 0x92, 0x98, 0x53, 0x66, 0xc9, - 0x69, 0xa6, 0xba, 0x83, 0x1a, 0x62, 0x9f, 0xbb, 0xd6, 0xec, 0xee, 0xf1, 0x04, - 0x9d, 0x78, 0xc6, 0x2f, 0x0c, 0x13, + 0x03, 0xd1, 0x08, 0x5b, 0x21, 0x4c, 0x69, 0xb8, 0xbf, 0xe8, 0x91, 0x02, 0xbd, + 0x61, 0x7e, 0xce, 0x0c, 0x54, 0x00, 0x17, 0x96, 0x40, 0x41, 0x05, 0xc5, 0x33, + 0x30, 0xd2, 0x49, 0x58, 0x1d, 0x0f, ], ], }, @@ -251,19 +251,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0xab, 0x9d, 0x4b, 0x1a, 0x43, 0xfc, 0xbe, 0x0f, 0x8d, 0xc4, 0xc6, 0x2d, 0x5f, - 0xb1, 0x34, 0xa9, 0x3b, 0x71, 0xa4, 0x98, 0xe5, 0x76, 0xdd, 0x10, 0xe5, 0x23, - 0x0a, 0x9c, 0xc5, 0xe3, 0x35, 0x07, + 0x5f, 0xcc, 0xd8, 0x7d, 0x2f, 0x66, 0x7b, 0x9e, 0xe3, 0x88, 0xf3, 0x4c, 0x1c, + 0x71, 0x06, 0x87, 0x12, 0x7b, 0xff, 0x5b, 0x02, 0x21, 0xfd, 0x8a, 0x52, 0x94, + 0x88, 0x66, 0x91, 0x57, 0x94, 0x2b, ], [ - 0x35, 0xf0, 0x6f, 0x31, 0x1e, 0x1f, 0x7b, 0x05, 0x89, 0x0b, 0xc3, 0xe4, 0xcf, - 0xc9, 0xff, 0xbe, 0xd0, 0xce, 0x36, 0xf7, 0xb8, 0xa0, 0x56, 0xfd, 0x1b, 0x7a, - 0xd1, 0x79, 0xff, 0x89, 0x30, 0x2a, + 0x89, 0x62, 0xb5, 0x80, 0x30, 0xaa, 0x63, 0x52, 0xd9, 0x90, 0xf3, 0xb9, 0x00, + 0x1c, 0xcb, 0xe8, 0x8a, 0x56, 0x27, 0x58, 0x1b, 0xbf, 0xb9, 0x01, 0xac, 0x4a, + 0x6a, 0xed, 0xfa, 0xe5, 0xc6, 0x34, ], [ - 0xfe, 0x25, 0x79, 0xc2, 0x88, 0x75, 0xae, 0x02, 0x25, 0x0f, 0x12, 0x43, 0x13, - 0xd0, 0xc9, 0xcf, 0x92, 0xbe, 0x3c, 0x5f, 0x81, 0x5c, 0xe9, 0x95, 0xf0, 0x66, - 0xfe, 0x02, 0xe5, 0x1f, 0x43, 0x02, + 0x7c, 0x0b, 0x76, 0x59, 0xf2, 0x4c, 0x98, 0xaf, 0x31, 0x0e, 0x3e, 0x8d, 0x82, + 0xb5, 0xf3, 0x99, 0x43, 0x3c, 0xdd, 0xa5, 0x8f, 0x48, 0xd9, 0xef, 0x8d, 0xd0, + 0xca, 0x86, 0x42, 0x72, 0xda, 0x3f, ], ], }, @@ -287,19 +287,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0xbb, 0x73, 0x92, 0x3b, 0x95, 0x2e, 0x75, 0x56, 0x17, 0x3c, 0xb0, 0xdb, 0x98, - 0x8f, 0x61, 0x74, 0xa7, 0x2c, 0x71, 0x89, 0xec, 0xd3, 0x61, 0x71, 0xbe, 0x6b, - 0xdb, 0xaf, 0x4f, 0x82, 0xea, 0x05, + 0x9e, 0xe1, 0xad, 0xdc, 0x6f, 0x64, 0xda, 0xb6, 0xac, 0xdc, 0xea, 0xec, 0xc1, + 0xfb, 0xbc, 0x8a, 0x32, 0x45, 0x8e, 0x49, 0xc1, 0x9e, 0x79, 0x85, 0x56, 0xc6, + 0x4b, 0x59, 0x8b, 0xa6, 0xff, 0x14, ], [ - 0x22, 0x49, 0xea, 0x38, 0xd9, 0x86, 0x9e, 0xd2, 0xf3, 0xc8, 0x94, 0xc7, 0x02, - 0x4d, 0xef, 0x6f, 0x5b, 0x75, 0x88, 0x4e, 0x13, 0x0a, 0xbe, 0x3a, 0x5c, 0x34, - 0xf0, 0x6b, 0x34, 0x4d, 0x95, 0x13, + 0x42, 0xcc, 0x10, 0x36, 0x4f, 0xd6, 0x59, 0xc3, 0xcc, 0x77, 0x25, 0x84, 0xdb, + 0x91, 0xc4, 0x9a, 0x38, 0x67, 0x2b, 0x69, 0x24, 0x93, 0xb9, 0x07, 0x5f, 0x16, + 0x53, 0xca, 0x1f, 0xae, 0x1c, 0x33, ], [ - 0xbc, 0xd4, 0x0e, 0xed, 0x83, 0x3c, 0x69, 0x38, 0x69, 0xd7, 0x02, 0x58, 0x67, - 0x91, 0x4a, 0x1b, 0x26, 0xf8, 0x83, 0x23, 0xac, 0xfa, 0x78, 0x91, 0xb9, 0xa7, - 0xbb, 0x65, 0x4f, 0xd8, 0x21, 0x07, + 0xff, 0x41, 0xf3, 0x51, 0x80, 0x14, 0x56, 0xc4, 0x96, 0x0b, 0x39, 0x3a, 0xff, + 0xa8, 0x62, 0x13, 0xa7, 0xea, 0xc0, 0x6c, 0x66, 0x21, 0x3b, 0x45, 0xc3, 0xb5, + 0x0e, 0xc6, 0x48, 0xd6, 0x7d, 0x0d, ], ], }, @@ -323,19 +323,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0xf9, 0xc6, 0x42, 0x74, 0xbb, 0xb8, 0xf2, 0x01, 0x2d, 0xd0, 0xa5, 0xe9, 0x94, - 0xd2, 0x35, 0x9f, 0xbe, 0x09, 0x28, 0xe6, 0xc8, 0x22, 0xb3, 0xf5, 0x1a, 0x22, - 0xe0, 0x0e, 0x56, 0xc7, 0xe8, 0x0c, + 0x63, 0x09, 0x15, 0xd7, 0xd8, 0x25, 0xeb, 0x74, 0x37, 0xb0, 0xe4, 0x6e, 0x37, + 0x28, 0x6a, 0x88, 0xb3, 0x89, 0xdc, 0x69, 0x85, 0x93, 0x07, 0x11, 0x6d, 0x34, + 0x7b, 0x98, 0xca, 0x14, 0x5c, 0x31, ], [ - 0xb7, 0xf7, 0x5e, 0xd0, 0x4b, 0xd8, 0xb0, 0x88, 0xc5, 0xdc, 0x10, 0xfa, 0x7f, - 0x05, 0x6d, 0x41, 0x3b, 0x25, 0xd4, 0x97, 0x06, 0xfb, 0xbf, 0xd1, 0x69, 0x27, - 0x35, 0xac, 0xa7, 0x14, 0x67, 0x28, + 0xaa, 0x58, 0x1b, 0xae, 0xe9, 0x4f, 0xb5, 0x46, 0xa7, 0x61, 0xf1, 0x7a, 0x5d, + 0x6e, 0xaa, 0x70, 0x29, 0x52, 0x78, 0x42, 0xf3, 0x1c, 0x39, 0x87, 0xb8, 0x68, + 0xed, 0x7d, 0xaf, 0xfd, 0xb5, 0x34, ], [ - 0x6d, 0x64, 0x81, 0xdf, 0x9d, 0xf5, 0x68, 0x72, 0xc2, 0xdb, 0xff, 0x63, 0x1a, - 0x63, 0xa0, 0x29, 0x77, 0x6d, 0xbc, 0x52, 0x71, 0x2b, 0xad, 0xbb, 0x1f, 0x36, - 0xc8, 0xf7, 0xde, 0x00, 0x8b, 0x12, + 0x7d, 0xc1, 0x17, 0xb3, 0x39, 0x1a, 0xab, 0x85, 0xde, 0x9f, 0x42, 0x4d, 0xb6, + 0x65, 0x1e, 0x00, 0x45, 0xab, 0x79, 0x98, 0xf2, 0x8e, 0x54, 0x10, 0x15, 0x35, + 0x90, 0x61, 0x99, 0xce, 0x1f, 0x1a, ], ], }, @@ -359,19 +359,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0x05, 0x59, 0x21, 0x7c, 0x04, 0x8d, 0x25, 0x49, 0x7f, 0x45, 0x52, 0x61, 0x47, - 0x91, 0xc3, 0x20, 0xfd, 0x9e, 0xe7, 0x4f, 0x0e, 0x72, 0x8b, 0xa3, 0x48, 0xbd, - 0x0f, 0x03, 0xe7, 0x9d, 0xb3, 0x37, + 0x6a, 0x5a, 0x19, 0x19, 0xa4, 0x49, 0xa5, 0xe0, 0x29, 0x71, 0x1f, 0x48, 0x8a, + 0xdb, 0xd6, 0xb0, 0x3e, 0x5c, 0x92, 0x7b, 0x6f, 0x9d, 0x9d, 0x35, 0xc5, 0xb3, + 0xcc, 0xeb, 0x76, 0x60, 0x52, 0x03, ], [ - 0xb0, 0xaf, 0x82, 0x16, 0x25, 0x32, 0x77, 0x4a, 0x45, 0xed, 0x0e, 0xd9, 0x9b, - 0xf7, 0xaa, 0x2f, 0x98, 0xec, 0xc0, 0x2f, 0x93, 0xa0, 0xbb, 0x97, 0xe5, 0x0b, - 0x41, 0x80, 0x59, 0xf0, 0xc2, 0x21, + 0x80, 0x47, 0x5b, 0x46, 0x89, 0x59, 0x61, 0x47, 0xab, 0x2a, 0xdf, 0x01, 0x73, + 0xdb, 0x28, 0x9b, 0x3a, 0x26, 0xa1, 0x04, 0x84, 0x21, 0x73, 0xe8, 0x8b, 0xdb, + 0xfe, 0xc0, 0x4a, 0x28, 0x67, 0x1b, ], [ - 0x66, 0xf6, 0x53, 0x50, 0x6d, 0xbc, 0x5c, 0xc2, 0x99, 0x25, 0x4b, 0xf2, 0x4c, - 0x1b, 0x56, 0xfc, 0x24, 0x72, 0x7c, 0xce, 0x45, 0xdf, 0xc0, 0x85, 0xe5, 0xd6, - 0xe2, 0x04, 0xfd, 0x86, 0x8c, 0x08, + 0x1e, 0xf3, 0xc8, 0xd0, 0xf5, 0x44, 0x44, 0xf5, 0x55, 0xb1, 0x5f, 0x7b, 0xc9, + 0xfa, 0x4f, 0xfa, 0x0f, 0x56, 0x7c, 0x0f, 0x19, 0xac, 0x7d, 0x0f, 0xf9, 0x44, + 0xfd, 0x36, 0x42, 0x6e, 0x32, 0x3a, ], ], }, @@ -395,19 +395,19 @@ pub(crate) fn permute() -> Vec { ], final_state: [ [ - 0xe9, 0x14, 0x81, 0x20, 0x7d, 0x99, 0xad, 0x96, 0x5b, 0x13, 0xf6, 0xb8, 0xf0, - 0xa4, 0x5a, 0xa3, 0x3c, 0x2b, 0x8e, 0x5f, 0xe4, 0x21, 0x92, 0x97, 0xf0, 0x49, - 0x9c, 0x16, 0x7c, 0x55, 0xde, 0x3b, + 0x1b, 0x4a, 0xc9, 0xbe, 0xf5, 0x6b, 0xdb, 0x6f, 0xb4, 0x2d, 0x3e, 0x3c, 0xd3, + 0xa2, 0xac, 0x70, 0xa4, 0xc4, 0x0c, 0x42, 0x5b, 0x0b, 0xd6, 0x67, 0x9c, 0xa5, + 0x7b, 0x30, 0x7e, 0xf1, 0xd4, 0x2f, ], [ - 0x6f, 0x72, 0xcd, 0xe9, 0x21, 0x4b, 0x09, 0xe3, 0x59, 0xc3, 0x71, 0x28, 0x1a, - 0x45, 0xa5, 0x2d, 0xfb, 0xd4, 0x14, 0x93, 0x35, 0x99, 0x63, 0x4e, 0x86, 0x66, - 0x8d, 0x11, 0xf2, 0x85, 0x96, 0x0c, + 0x1a, 0x2e, 0xf4, 0x11, 0x94, 0xaa, 0xa2, 0x34, 0x32, 0xe0, 0x86, 0xed, 0x8a, + 0xdb, 0xd1, 0xde, 0xec, 0x3c, 0x7c, 0xb3, 0x96, 0xde, 0x35, 0xba, 0xe9, 0x5a, + 0xaf, 0x5a, 0x08, 0xa0, 0xec, 0x36, ], [ - 0x74, 0x22, 0x6e, 0xda, 0x06, 0xc1, 0xee, 0xef, 0x3f, 0xa3, 0x39, 0x4e, 0x03, - 0x7b, 0x48, 0xc0, 0x7d, 0xc2, 0x86, 0x95, 0x88, 0x8c, 0xfb, 0x59, 0x58, 0x8c, - 0x34, 0xe7, 0x12, 0xb2, 0x2b, 0x1f, + 0x68, 0xeb, 0x80, 0xc7, 0x3e, 0x2c, 0xcb, 0xde, 0xe1, 0xba, 0x71, 0x24, 0x77, + 0x61, 0xd5, 0xb5, 0xec, 0xc6, 0x20, 0xe6, 0xe4, 0x8e, 0x00, 0x3b, 0x02, 0x3d, + 0x9f, 0x55, 0x61, 0x66, 0x2f, 0x20, ], ], }, @@ -433,9 +433,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0xc0, 0x17, 0xb5, 0x55, 0xe8, 0x05, 0x7c, 0x49, 0x1d, 0x44, 0x4f, 0xbd, 0xb0, 0x0a, - 0x83, 0xf6, 0x4d, 0xa8, 0x90, 0x53, 0x87, 0xb4, 0xc8, 0x13, 0xc0, 0xea, 0xdc, 0x86, - 0x33, 0x58, 0x8c, 0x14, + 0x83, 0x58, 0xd7, 0x11, 0xa0, 0x32, 0x9d, 0x38, 0xbe, 0xcd, 0x54, 0xfb, 0xa7, 0xc2, + 0x83, 0xed, 0x3e, 0x08, 0x9a, 0x39, 0xc9, 0x1b, 0x6a, 0x9d, 0x10, 0xef, 0xb0, 0x2b, + 0xc3, 0xf1, 0x2f, 0x06, ], }, TestVector { @@ -452,9 +452,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0xa1, 0x86, 0x2f, 0x7c, 0xa6, 0x16, 0xa3, 0x77, 0xe6, 0x01, 0x06, 0x89, 0x19, 0x20, - 0x3a, 0x0e, 0x06, 0xe9, 0xa9, 0x03, 0x93, 0xc4, 0x01, 0xa5, 0x9c, 0x55, 0x40, 0xe5, - 0xad, 0x2b, 0x0a, 0x00, + 0xdb, 0x26, 0x75, 0xff, 0x3e, 0xf8, 0xfe, 0x30, 0xc4, 0xd5, 0xde, 0x61, 0xca, 0xc0, + 0x2a, 0x8e, 0xf1, 0xa0, 0x85, 0x23, 0xbe, 0x92, 0x39, 0x4b, 0x79, 0xd2, 0x67, 0x26, + 0x30, 0x3b, 0xe6, 0x03, ], }, TestVector { @@ -471,9 +471,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0x50, 0x25, 0xee, 0xb4, 0x24, 0x55, 0x4c, 0x39, 0xe8, 0xae, 0xf7, 0x00, 0xdd, 0xb8, - 0xb6, 0x1e, 0x20, 0xe6, 0x9f, 0xc2, 0x86, 0x69, 0xd6, 0x7b, 0xa6, 0x8e, 0x48, 0xdb, - 0x75, 0x2f, 0x7f, 0x14, + 0xf5, 0x12, 0x1d, 0x1e, 0x1d, 0x5c, 0xfe, 0x8d, 0xa8, 0x96, 0xac, 0x0f, 0x9c, 0x18, + 0x3d, 0x76, 0x00, 0x31, 0xf6, 0xef, 0x8c, 0x7a, 0x41, 0xe6, 0x5e, 0xb0, 0x07, 0xcd, + 0xdc, 0x1d, 0x14, 0x3d, ], }, TestVector { @@ -490,9 +490,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0x46, 0xd5, 0x2f, 0x0f, 0xde, 0xd6, 0x08, 0xb1, 0x90, 0x27, 0x28, 0x63, 0x7f, 0xdb, - 0x93, 0x51, 0xc2, 0x9c, 0xb1, 0x98, 0xc3, 0x48, 0x03, 0x8b, 0x0e, 0xf4, 0x6e, 0xbd, - 0x77, 0x16, 0x03, 0x33, + 0xa4, 0x16, 0xa5, 0xe7, 0x13, 0x51, 0x36, 0xa0, 0x50, 0x56, 0x90, 0x00, 0x58, 0xfa, + 0x50, 0xbf, 0x18, 0x6a, 0xd7, 0x33, 0x90, 0xac, 0xe6, 0x32, 0x3d, 0x8d, 0x81, 0xaa, + 0x8a, 0xdb, 0xd4, 0x11, ], }, TestVector { @@ -509,9 +509,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0x7a, 0xee, 0xb4, 0xbd, 0x13, 0x6c, 0x7e, 0x32, 0x13, 0xf9, 0x4e, 0x39, 0x2b, 0x87, - 0xeb, 0xdc, 0x39, 0xb9, 0x1c, 0x02, 0x54, 0x96, 0x5b, 0xe6, 0x96, 0x69, 0x40, 0xe3, - 0xb0, 0x94, 0xc3, 0x16, + 0x1a, 0xba, 0xf3, 0x06, 0xfe, 0xd0, 0x5f, 0xa8, 0x92, 0x84, 0x8c, 0x49, 0xf6, 0xba, + 0x10, 0x41, 0x63, 0x43, 0x3f, 0x3f, 0x63, 0x31, 0x08, 0xa1, 0x3b, 0xc1, 0x5b, 0x2a, + 0x1d, 0x55, 0xd4, 0x0c, ], }, TestVector { @@ -528,9 +528,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0xe3, 0x47, 0xad, 0x3f, 0x1f, 0x45, 0x68, 0x11, 0x15, 0x02, 0xe4, 0x0a, 0x62, 0x5a, - 0x63, 0xc4, 0xd1, 0x85, 0xd9, 0x28, 0x33, 0xff, 0xc7, 0x47, 0x13, 0x95, 0x0b, 0x2c, - 0xcf, 0x23, 0xa7, 0x08, + 0x04, 0xa1, 0x8a, 0xeb, 0x59, 0x3f, 0x79, 0x0b, 0x76, 0xa3, 0x99, 0xb7, 0xc1, 0x52, + 0x8a, 0xcd, 0xed, 0xe9, 0x3b, 0x3b, 0x2c, 0x49, 0x6b, 0xd7, 0x1b, 0xd5, 0x87, 0xcb, + 0xd7, 0xcf, 0xdf, 0x35, ], }, TestVector { @@ -547,9 +547,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0x4b, 0x8a, 0x3c, 0xfd, 0x9e, 0xa3, 0x0e, 0x27, 0x13, 0xf4, 0x24, 0xcf, 0x87, 0xaa, - 0x5a, 0x4f, 0xc8, 0x75, 0xdb, 0x9f, 0xed, 0x56, 0xe4, 0x48, 0x53, 0x40, 0xf6, 0x68, - 0x0e, 0x50, 0xf2, 0x25, + 0x11, 0x03, 0xcc, 0xdc, 0x00, 0xd0, 0xf3, 0x5f, 0x65, 0x83, 0x14, 0x11, 0x6b, 0xc2, + 0xbc, 0xd9, 0x43, 0x74, 0xa9, 0x1f, 0xf9, 0x87, 0x7e, 0x70, 0x66, 0x33, 0x29, 0x04, + 0x2b, 0xd2, 0xf6, 0x1f, ], }, TestVector { @@ -566,9 +566,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0xcd, 0xc9, 0x0c, 0x38, 0x24, 0x2f, 0xd9, 0xf4, 0x0d, 0x1e, 0x83, 0xca, 0xdd, 0x37, - 0x0d, 0x5a, 0xae, 0xa4, 0x91, 0x4b, 0x2c, 0x20, 0x9e, 0x8a, 0xc3, 0x0e, 0x97, 0x4e, - 0x97, 0x5f, 0xe0, 0x36, + 0xf8, 0xf8, 0xc6, 0x5f, 0x43, 0x7c, 0x45, 0xbe, 0xac, 0x11, 0xeb, 0x7d, 0x9e, 0x47, + 0x58, 0x6d, 0x87, 0x9a, 0xfd, 0x6f, 0x93, 0x04, 0x35, 0xbe, 0x0c, 0x01, 0xd1, 0x9c, + 0x89, 0x5b, 0x8d, 0x10, ], }, TestVector { @@ -585,9 +585,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0xac, 0x31, 0xe3, 0x4c, 0xb3, 0x68, 0x69, 0x55, 0x29, 0x9d, 0xd3, 0x30, 0x4a, 0x1f, - 0x90, 0x27, 0xd9, 0x39, 0xa0, 0xe0, 0x85, 0xca, 0xac, 0xe1, 0x16, 0x19, 0x2d, 0xed, - 0x3e, 0xb0, 0x07, 0x38, + 0x5a, 0xeb, 0x48, 0x96, 0x21, 0xb0, 0x2e, 0x8e, 0x69, 0x27, 0xb9, 0x4f, 0xd2, 0x9a, + 0x61, 0x01, 0x83, 0xdf, 0x7f, 0x42, 0x87, 0xe9, 0xcb, 0xf1, 0xcc, 0xc8, 0x81, 0xd7, + 0xd0, 0xb7, 0x38, 0x27, ], }, TestVector { @@ -604,9 +604,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0x9e, 0xe9, 0xcc, 0x52, 0x0f, 0xc6, 0xea, 0xc7, 0x7e, 0xf0, 0x03, 0x90, 0x26, 0xa9, - 0xe8, 0x21, 0x5e, 0x88, 0x92, 0x2c, 0x8e, 0x8e, 0x79, 0xfe, 0x00, 0xaa, 0xbe, 0x81, - 0x64, 0x14, 0x1b, 0x2a, + 0xb0, 0x14, 0x47, 0x20, 0xf5, 0xf2, 0xa2, 0x5d, 0x49, 0x2a, 0x50, 0x4e, 0xc0, 0x73, + 0x7f, 0x09, 0x7e, 0xd8, 0x52, 0x17, 0x4f, 0x55, 0xf5, 0x86, 0x30, 0x91, 0x30, 0x6c, + 0x1a, 0xf2, 0x00, 0x35, ], }, TestVector { @@ -623,9 +623,9 @@ pub(crate) fn hash() -> Vec { ], ], output: [ - 0xd5, 0x03, 0xb7, 0x39, 0xaa, 0x03, 0x29, 0x51, 0xfb, 0x9a, 0x3e, 0xec, 0x0b, 0x91, - 0xd3, 0x25, 0x18, 0x82, 0xa2, 0xda, 0x32, 0x8b, 0x31, 0x75, 0x20, 0xa7, 0x3c, 0x14, - 0x35, 0x31, 0x5c, 0x17, + 0xbb, 0xbe, 0xb7, 0x42, 0xd6, 0xe7, 0xc0, 0x1a, 0xdb, 0xf4, 0xd3, 0x85, 0x5e, 0x35, + 0xfe, 0xc4, 0x62, 0x04, 0x30, 0x89, 0xc1, 0x8b, 0xa8, 0x02, 0x90, 0x64, 0x7b, 0xb0, + 0xe5, 0x81, 0xad, 0x11, ], }, ] diff --git a/src/test_vectors/keys.rs b/src/test_vectors/keys.rs index 8435b3c5..e1512b56 100644 --- a/src/test_vectors/keys.rs +++ b/src/test_vectors/keys.rs @@ -87,9 +87,9 @@ pub(crate) fn test_vectors() -> Vec { 0x2f, 0x12, 0x42, 0x28, ], note_nf: [ - 0xe0, 0xc4, 0xb2, 0x6b, 0xe5, 0x77, 0x85, 0x67, 0xbf, 0xa6, 0xf7, 0x7f, 0xe4, 0x5a, - 0xaf, 0x73, 0xab, 0x5b, 0x64, 0x6f, 0x3e, 0x7a, 0x48, 0xf0, 0x7e, 0x08, 0xd2, 0xc7, - 0x38, 0xe2, 0x1b, 0x14, + 0x1b, 0x32, 0xed, 0xbb, 0xe4, 0xd1, 0x8f, 0x28, 0x87, 0x6d, 0xe2, 0x62, 0x51, 0x8a, + 0xd3, 0x11, 0x22, 0x70, 0x1f, 0x8c, 0x0a, 0x52, 0xe9, 0x80, 0x47, 0xa3, 0x37, 0x87, + 0x6e, 0x7e, 0xea, 0x19, ], }, TestVector { @@ -158,9 +158,9 @@ pub(crate) fn test_vectors() -> Vec { 0x05, 0xf9, 0x03, 0x00, ], note_nf: [ - 0x1e, 0xbf, 0xac, 0x2d, 0x34, 0x2f, 0xf7, 0xc2, 0xe5, 0xf8, 0xef, 0xe2, 0xe9, 0xde, - 0x37, 0xdd, 0x3b, 0x82, 0x84, 0x27, 0x03, 0x8e, 0x55, 0x32, 0x30, 0x34, 0xdd, 0xb0, - 0xa6, 0x63, 0x4a, 0x12, + 0x2c, 0xf0, 0x67, 0xbc, 0x21, 0xd6, 0x63, 0x20, 0xe5, 0x1b, 0x9f, 0xbd, 0xc8, 0xae, + 0x03, 0x1c, 0x2c, 0x96, 0x37, 0x3d, 0xb4, 0x3b, 0x7b, 0x1a, 0x45, 0x05, 0x6c, 0x00, + 0xc6, 0x5d, 0x43, 0x20, ], }, TestVector { @@ -229,9 +229,9 @@ pub(crate) fn test_vectors() -> Vec { 0x35, 0x00, 0x56, 0x16, ], note_nf: [ - 0x69, 0xf4, 0x1f, 0xfa, 0xc4, 0xc0, 0x40, 0x50, 0xa6, 0x68, 0xcf, 0x94, 0x1a, 0xce, - 0x51, 0xde, 0x7e, 0x0f, 0xaa, 0x38, 0x68, 0xe4, 0x9a, 0x33, 0x45, 0x4d, 0x96, 0x10, - 0x09, 0x20, 0x0d, 0x34, + 0x16, 0xfa, 0x2c, 0x34, 0x97, 0xfc, 0x09, 0xad, 0x90, 0xdd, 0x34, 0x92, 0x02, 0xa2, + 0x4b, 0x69, 0x89, 0x2d, 0xc8, 0x06, 0x29, 0xb2, 0xd1, 0xbf, 0xeb, 0xaf, 0x41, 0x70, + 0x8f, 0x0f, 0xb1, 0x0c, ], }, TestVector { @@ -300,9 +300,9 @@ pub(crate) fn test_vectors() -> Vec { 0x31, 0x6e, 0x82, 0x19, ], note_nf: [ - 0xf0, 0x0f, 0x19, 0x5b, 0xe1, 0xd7, 0x9b, 0x42, 0x75, 0xc8, 0xe3, 0xbc, 0xfd, 0x4d, - 0xbf, 0x00, 0xa8, 0x07, 0x88, 0xd6, 0xc2, 0x28, 0x6a, 0x40, 0x4c, 0x67, 0x3c, 0x91, - 0xec, 0xf5, 0x13, 0x16, + 0x72, 0xd6, 0x30, 0x89, 0x60, 0x35, 0x1f, 0x7b, 0x26, 0xfa, 0x64, 0x60, 0x3f, 0xe4, + 0xdf, 0xd8, 0x67, 0xbd, 0x5e, 0xb3, 0x67, 0xba, 0x2b, 0x7c, 0xa4, 0x91, 0xc9, 0x23, + 0xc0, 0xea, 0xd2, 0x22, ], }, TestVector { @@ -371,9 +371,9 @@ pub(crate) fn test_vectors() -> Vec { 0xe6, 0x53, 0x0e, 0x04, ], note_nf: [ - 0xf5, 0x1f, 0x2d, 0x6b, 0x9f, 0x72, 0xeb, 0x69, 0x52, 0x6c, 0x9b, 0xed, 0x7a, 0xa8, - 0xf7, 0x5d, 0x28, 0x19, 0xcb, 0xdc, 0x23, 0xe4, 0xc5, 0xd4, 0x37, 0x89, 0xf1, 0xaf, - 0x07, 0x42, 0xa7, 0x02, + 0xe6, 0x2b, 0x8e, 0xd8, 0x35, 0x40, 0x14, 0x6c, 0xd2, 0x3c, 0xac, 0x74, 0xee, 0xd7, + 0xd7, 0x73, 0xd8, 0x02, 0x24, 0xa5, 0xaa, 0x30, 0xd6, 0x8e, 0x35, 0x57, 0x2e, 0xe8, + 0x83, 0xd1, 0xb7, 0x04, ], }, TestVector { @@ -442,9 +442,9 @@ pub(crate) fn test_vectors() -> Vec { 0x2d, 0xfd, 0x49, 0x16, ], note_nf: [ - 0xbd, 0x93, 0xac, 0xda, 0x9a, 0xc3, 0x38, 0xca, 0x8e, 0x2e, 0x72, 0xc7, 0x25, 0x06, - 0x17, 0x9d, 0xe4, 0x7f, 0x36, 0x56, 0x4a, 0x45, 0x22, 0x26, 0x54, 0xb7, 0x81, 0x0d, - 0x2a, 0xe4, 0x00, 0x10, + 0x4c, 0x99, 0xbf, 0xa8, 0xc2, 0x0d, 0xba, 0x59, 0xbb, 0x73, 0x47, 0xda, 0x16, 0xc4, + 0x3b, 0x73, 0xc8, 0x87, 0x94, 0xc9, 0xeb, 0xcd, 0x0d, 0xd2, 0xb2, 0x5e, 0xe7, 0xbb, + 0x83, 0x6f, 0x95, 0x20, ], }, TestVector { @@ -513,9 +513,9 @@ pub(crate) fn test_vectors() -> Vec { 0xad, 0x4a, 0x26, 0x01, ], note_nf: [ - 0x86, 0x23, 0xbf, 0xe6, 0xa5, 0xf9, 0x99, 0x09, 0x3c, 0x6b, 0xc0, 0x85, 0xf3, 0x70, - 0x28, 0xf1, 0x8e, 0xa4, 0xc1, 0xcd, 0xf9, 0xbb, 0xf5, 0xba, 0x09, 0xa4, 0x30, 0x2e, - 0x9c, 0xfe, 0xde, 0x0f, + 0x3b, 0x94, 0x8d, 0xb2, 0x16, 0x08, 0xe9, 0xac, 0xb2, 0x2a, 0x54, 0x17, 0xb9, 0x8c, + 0x0d, 0xed, 0xd5, 0x27, 0xa9, 0x64, 0x87, 0x81, 0x4e, 0x64, 0x20, 0xcb, 0xff, 0x6e, + 0x4e, 0xee, 0x4e, 0x31, ], }, TestVector { @@ -584,9 +584,9 @@ pub(crate) fn test_vectors() -> Vec { 0xa7, 0x16, 0xfa, 0x3b, ], note_nf: [ - 0x1c, 0xea, 0x44, 0xb3, 0x4e, 0x9d, 0x25, 0xbe, 0x11, 0x4b, 0x21, 0xed, 0xd4, 0x0c, - 0x2c, 0x39, 0x8e, 0x71, 0xe3, 0x3e, 0x01, 0xdd, 0x79, 0xde, 0x81, 0x37, 0x87, 0x74, - 0xff, 0xac, 0x93, 0x02, + 0xac, 0xc2, 0xed, 0x2c, 0x7e, 0x3b, 0x19, 0x7e, 0x5c, 0xdb, 0x4a, 0x57, 0x63, 0x57, + 0xd5, 0xf1, 0x35, 0x39, 0x16, 0x26, 0xc7, 0xa8, 0x25, 0xd1, 0x0a, 0xa2, 0x60, 0xae, + 0x0b, 0x95, 0x81, 0x28, ], }, TestVector { @@ -655,9 +655,9 @@ pub(crate) fn test_vectors() -> Vec { 0xc3, 0x70, 0xa9, 0x10, ], note_nf: [ - 0xa2, 0x1c, 0x89, 0xa8, 0xdc, 0x99, 0x93, 0x92, 0xd4, 0x7a, 0x69, 0x1f, 0xf0, 0x14, - 0xbb, 0xdc, 0x01, 0x00, 0x86, 0xa8, 0xb6, 0xb0, 0x3a, 0xc7, 0x5c, 0x55, 0x23, 0x89, - 0x95, 0x42, 0x97, 0x3c, + 0xb0, 0xf1, 0x60, 0x2a, 0x2b, 0x1a, 0xf2, 0xfc, 0x55, 0xf1, 0x59, 0x50, 0xa6, 0x83, + 0x83, 0x85, 0xe5, 0xe3, 0x9f, 0xec, 0xfd, 0x05, 0xcc, 0xec, 0x79, 0x9b, 0x75, 0xc6, + 0x5c, 0x8d, 0xa2, 0x35, ], }, TestVector { @@ -726,9 +726,9 @@ pub(crate) fn test_vectors() -> Vec { 0x67, 0xa7, 0xf4, 0x0a, ], note_nf: [ - 0xef, 0x12, 0xc1, 0x5e, 0xe4, 0xb7, 0x26, 0x32, 0xb6, 0x1f, 0x16, 0x52, 0x6b, 0x6f, - 0xbc, 0x84, 0xba, 0xb8, 0x49, 0x5d, 0xcb, 0xd1, 0x7b, 0x74, 0x05, 0xb7, 0x6c, 0x69, - 0xdd, 0x9f, 0x1d, 0x29, + 0x95, 0x64, 0x97, 0x28, 0x46, 0x5e, 0x68, 0x2a, 0xc0, 0x57, 0xad, 0x87, 0x62, 0x94, + 0xd7, 0x00, 0xc2, 0x7f, 0xeb, 0xa2, 0xf7, 0x50, 0x92, 0x2f, 0x95, 0x51, 0x85, 0x70, + 0x62, 0x61, 0xc3, 0x0c, ], }, ]