// Copyright 2020-2021 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 #![allow(deprecated)] use bee_crypto::ternary::sponge::{CurlP27, CurlP81, Kerl, Sponge, SpongeKind, UnrolledCurlP81}; use bee_ternary::{T1B1Buf, T3B1Buf, TritBuf, TryteBuf}; pub fn sponge_generic_digest(input: &str, output: &str) { let mut sponge = S::default(); let input_trit_buf = TryteBuf::try_from_str(input).unwrap().as_trits().encode::(); let expected_hash = TryteBuf::try_from_str(output).unwrap(); let calculated_hash = match sponge.digest(input_trit_buf.as_slice()) { Ok(digest) => digest.encode::(), Err(_) => unreachable!(), }; assert_eq!(calculated_hash.as_slice(), expected_hash.as_trits()); } pub fn sponge_generic_digest_into(input: &str, output: &str) { let mut sponge = S::default(); let input_trit_buf = TryteBuf::try_from_str(input).unwrap().as_trits().encode::(); let expected_hash = TryteBuf::try_from_str(output).unwrap(); let output_len = expected_hash.as_trits().len(); let mut calculated_hash = TritBuf::::zeros(output_len); assert!( sponge .digest_into(input_trit_buf.as_slice(), calculated_hash.as_slice_mut()) .is_ok() ); let calculated_hash = calculated_hash.encode::(); assert_eq!(calculated_hash.as_slice(), expected_hash.as_trits()); } // In the following tests, fields are: // * Input // * Kerl output // * CurlP27 output // * CurlP81 output fn sponge_input_243_output_243(sponge_type: SpongeKind) { let tests = [ ( "HHPELNTNJIOKLYDUW9NDULWPHCWFRPTDIUWLYUHQWWJVPAKKGKOAZFJPQJBLNDPALCVXGJLRBFSHATF9C", "DMJWZTDJTASXZTHZFXFZXWMNFHRTKWFUPCQJXEBJCLRZOM9LPVJSTCLFLTQTDGMLVUHOVJHBBUYFD9AXX", "FPQIQGEHZOYNZGGCTPYHYBEWMAGPPBMOAPZHSWMDIRSINUXQYSEJBVUNUDDMPSRQZQONWPGBQKUKRINWR", "XMJNTUHSDIVRPCBKWPOZWTJFDRSKXZKNJEJSBIHQXQE9YVGTOFF9DMQTFOLCPVLPGMYUGJSTOZZSIGFGH", ), ( "QAUGQZQKRAW9GKEFIBUD9BMJQOABXBTFELCT9GVSZCPTZOSFBSHPQRWJLLWURPXKNAOWCSVWUBNDSWMPW", "HOVOHFEPCIGTOFEAZVXAHQRFFRTPQEEKANKFKIHUKSGRICVADWDMBINDYKRCCIWBEOPXXIKMLNSOHEAQZ", "OWKVBSCEWDLDXQESNPMBYXMJRDGZGSCSFIPTXWXGKMUYEDVMROERME9IWDEEHPTVWOXNSMGYMPZOATQPN", "VBJQRNVTTZG9RHHIVVVZNLEOLVEPOMGFVFYGKCTFMPFTOAEYHKYZBZECZJRYXBOIPBU9YR9QFTJXERQKM", ), ( "MWBLYBSRKEKLDHUSRDSDYZRNV9DDCPN9KENGXIYTLDWPJPKBHQBOALSDH9LEJVACJAKJYPCFTJEROARRW", "KXBKXQUZBYZFSYSPDPCNILVUSXOEHQWWWFKZPFCQ9ABGIIQBNLSWLPIMV9LYNQDDYUS9L9GNUIYKYAGVZ", "JK9S9MVAAZZW99SHJVGYOQXAEEMRHFRQNWIMWUEUCRGHENNWGW9KZHRILLNUQLGRXJGWCTADAUOMEQSDZ", "STZUTCKMGNLYWQAOVACOLOIQBGCXSNIXZAHXYFOAHIDVYOPLKWBZWC9EFIX9C9UADVV9TU9GZQWDE9PVL", ), ( "GYOMKVTSNHVJNCNFBBAH9AAMXLPLLLROQY99QN9DLSJUHDPBLCFFAIQXZA9BKMBJCYSFHFPXAHDWZFEIZ", "OXJCNFHUNAHWDLKKPELTBFUCVW9KLXKOGWERKTJXQMXTKFKNWNNXYD9DMJJABSEIONOSJTTEVKVDQEWTW", "SODJTL9HXUI9JGRTPCDUQAZUWRBSZZPJQCKPAWDBWRWIRBNQRCZAVQJCHCEKSVZ9BYFPAHZAECOYAMEMO", "RWRXCNNLPWIVWKVNYXLSBGYPYFNLZRJHHBHHXTZYIG9URVDHRKBIPONSHPVDFLYJRNGPRQJDFC9CGKDJT", ), ( "EMIDYNHBWMBCXVDEFOFWINXTERALUKYYPPHKP9JJFGJEIUY9MUDVNFZHMMWZUYUSWAIOWEVTHNWMHANBH", "EJEAOOZYSAWFPZQESYDHZCGYNSTWXUMVJOVDWUNZJXDGWCLUFGIMZRMGCAZGKNPLBRLGUNYWKLJTYEAQX", "BPNWKICEGJXDC9GYLDS9INRGGQ9SSJRRHOPXTHIJTGEFGLAWLAEKQYN9HTFAOTWIDABUWYHCFRLHRRDCY", "AQBOPUMJMGVHFOXSMUAGZNACKUTISDPBSILMRAGIGRXXS9JJTLIKZUW9BCJWKSTFBDSBLNVEEGVGAMSSM", ), ( "FMMZTLNOZUWJUMLRUMZNQOZG9QQNWFHJBIKAMNMKTNKHZVKQALHPKUXHZSSRLKJFPIHCFZVZFEVOMBDUF", "USXHTPUJJXFQTWPDTV9URTSM9VBVFMBIQQ9VBKWGZRLDIZKRNAD9PWZZQMTFAZAK9ZMLGTMEBOOJB9XBA", "NDBJWEEYJRHLNDJGRQSTC9QJBEBBPPTDMS9WXQSBCCVCDHJIUXFYUCZUMPNOWXBTUXZCAQLSOCNVGDWHZ", "DBTAIDJZGGAFFFNGKDZLPASUIJIUYDQCDCCCMQEPYZNEBYQKBXGLEWYAHDAHCHUMFWQYXXTOQMJJIJFTO", ), ( "CLKAPNTLUMITSDWRLDHYHEOURFJMKUDQXZXAMNGTJYOOKRRVYKPIPOVPNYWYITITLSJAXARZTQYDDDSZP", "UJAKNHBYKZAUQ9XCROPDRNIZWBMINFGOEAYTKASVLDOSFMCDZZLGOUQ9I9OGQLKTOVBMQZELFVIKIOBB9", "WQWJIXTQRNQQRIRXZBDMAXGLHMKV9DERKSXJHJHWFNANCKAWJWYLBICEVDGAKJZAKTSXUVOKUWIYTZZSH", "APXNVEGVYNUJXUYYNDWYDLRCJYXAETPPABKINDKMKYLPZZEIFWUQBYMZTFNIUWOCHXCVBXAAPYPQCNNIZ", ), ( "COD9QLD9QGBCFVVDIETJXUPACVAKNKRPFIIXNOXFSJRKGDOGPIQMVDWKOIRODYFMUAO9HLKDGTEMHOSQQ", "GHJXHUAPEMWZTQDFLERAODMTOEMCYDXVVKDHYIGCMTRRDXVOXMSWBGSBZCZFKWMQNPZDYZYDBNZTVESTC", "MKHQ9YVJEJJZHGIZJKLXXGT9ZKRVGOJNNSWJJMKFVV9RHHYIWEAOJKYQRQAI9DQJDSZOKGPLPTFVFIFYK", "QSOWETZUHKRYKNMFASDMFAQV9JHFMKEFIIVOBFXIGJPQCMXRSRIQMXEKBQONRIWZFPHTBSBREBLMGHUQO", ), ( "FPZELSWBZPBZCGVAZYROALBTEVTUBVPDWRZWDKAWJVWPADCPWXCFBEREADV9AOZSM9VQ9GGRZOSARZNHG", "DCGHRTZEKHICXRCTCXPLEQFDAOCKFVTDOBMXVYWZJLAPQUZCIPJF9BGCJF9CXPBVAAETDUILX9DTKWZYX", "RHGJDIHINZDYANT9CIMKJQPOFWA9PAQONVCKONHL9MAKZWWWTGFAZWMCRJGBXITTYWDLFYIQXBGXEIMGD", "KBAXEMPPDSMKMIH9EIRBIEXZVXKUTSCD9AOVMMXFSPEEFEPPOPGZYTYHPLOPWSE9TWXPVWPBF9JPGGQKO", ), ( "TGKMNVKKGKMLIEMALEANLGYQMXTSVSZAO9YJRSLZJIXVSPLYZEZUOSIEWYJXTOEIUDGRVSPEDPKIYLBPF", "FLXPXOTTDPTMVZU9GJOXEAVRLHMEPRUXCITMQNNPZXPVQMUPDCJGDESLFGFGOBUTUJATIPG9NPJSASRHW", "YKP9FOLQBXTEYGSYEMW9RYPIQNOPRSQSUWTJNIBFPSLAEDKJEJNIPOMBLJZDVUUNDBVRZTEFWUTWIQYGG", "RLFMK9PGCNCMQDXSGZOXHN9ESCXTRMA9TDTAWDJAMQNDNZDMFFFIRBKDSJEBJJSJSZRHFSBSDCHNZQRSV", ), ( "A9QHKAZPRUVLMTDSXYQYAIEFICA9EAEKLUVHEPHIUPJZLSBXLEGHXNQDIUDDSLAQCRINVUMVJMZPGHPTN", "LLXWPVEIQOK9WQUPCIGODVMJLSKMZPVDBUQKUTUNMVWMMOJQZGROEXTWZTRLPBBPFWHFJ9D9KWQLUADLA", "XSMQXBNLYKNH9RVAAGHEFVMVEOKOHLNFBUGUKVKAIUUBVIGLLCVRYIAAXQOTVVHVJFMOGNBLGENFSGPLU", "ITFFWBVZPOCNFVANJS9CACBZVVN9ZSJOQXCRSQGWKQVFQKAZNQJSZGIKWSIC9XWYIYVEYJQXRW9GGTUKL", ), ( "GSSONEJY9VXSFNTYOBXHCHOB9EODIOTBXJMZMXOVHZQB9AEOZIJUM9PTYGYNGESR9ZSIKDJ9KEWIB9FAY", "SIQINLOFCHVANBUUOMYZUKEAVH9AVYAICXNFAGZGWQLLQD9HLBLSLVYESIAFJYJVYRVYGMYXERJZDDGDB", "SZEIFJWPY9W9MMYGO9MJIDEDVCSHPAPKDZHMEES9ZOUAMGVHSBJKIEBVXNHZVJHMATEYW9Y99SEHEDAXI", "EHKYMTXUA99PALEZKV99UTGBBWDVWHGUVKQVQXLHRZYSV9XFGDRONQROFDGIAQSHH9OEQVHDUYDXWSPUW", ), ( "VBTTOJXZQLRJUNDXBY99ZOHVWZIUSTCSJATNCMAIOSQKDNBDVLVWEHQEHPBKCDPCXMKEXEMYHMDYKWNNB", "HLPRUENCJMDVQQTTWQ9LKHETLXALMGFRSCEIB9CMI9XLZAHFPTHXW9PWRCPAKZLGEJZHPTPEMVR9KFLPX", "NNIDHXCBLAGTBFGZIGDFUGUQQNXEXFHATZPONFDZLLOXNDDZGNIQODQHORWUVAFQBCHWFIKLGXBFWLOWJ", "IBZILY9UPYQGYZIVVTXXNNUC9AWYKWTZIZJBYXMVHQGQFJACMFFFUUNYBGXIOJLPSRKJYBDQZUUBQHPJZ", ), ( "ILJLMZNJCJMHBWUOPVADFTBZZIWVGA9MCUGJVVXZKQIHRBQVLTXFCZL9EHHOEIRED9CXFMTTKOWPDDALJ", "AQSVEXFZVKQOBBMIUMRJV9HPTZJZETGGILFXNRYPWAWBZHSUDEBLYWMIAPVKMYALCCIAKHCCKHQHGHTCD", "MFQXVPQIFONMODCLNUMKOO9NZHYSXCTTNYOBMOA9MTBOLRNTFJQLTKOVQJVCFYCZDDPDTHZSBBWUYVCLV", "DSKCVRA9ZFMVRUATIEOVKUHEIUGDOFAXMKROKIWMIMFKUCIHGXAYKYYUWGNCJYDXKNIAZJLEPGTJMHIXL", ), ( "OOVPLZATVDZXGNENSFKKPQTPIQJTCPIOSGEJDBIKCGKK9LHED9GWYZXXUO9DAESQKREANXAKKQBYPPUEZ", "JTFVFGCAQNKYVHRCGABUP9GNDNYIRGZQMWHMJSEABAILZPMVKXVQ9GIEPDZDKB9JBDLBDBMQWACNRDPYA", "CPGHMNNWVBFTLOLUSZPDBYNCDPEAQQXXYUM9HGJXNYJ9WJHYFUTGQVVE9VZBKVBRVFKSPILDDWRYSWGEJ", "RJAZVVBF9WHAVZWQVQAOPRNBFWEOBIACGF9LADNLHFHQSQJEQ9YBZJEOVUFHTEPS9VYSPHINWZHRQPSZA", ), ( "MJEVWBFMD9OZ9QIGYEF9CEQFSZHYPPZKNJ9KOBKCVWR9OJ9IQFVAZYLXO9BNPSTQBCNESHZHJCMPFSLSQ", "YVJNGOIBVYVNMKN9SYPFMPJWJUCXZHPMRBICZQGYWKRLGICNAQZUHTGRROEVHVNML9SAZDAX99QRGMKNA", "HXHSWQNOH9YWWIFORTZRKWNPVOECCDCLQTMK9XJQAWOHSIRLPYTTGBINXYS9PMCFZQKIIIGMNPAWTPSPU", "LEJDJLGROACKOALCUBGGYGICAUYCGGEZYLMBW9OSENLGDZN9HUUMJBDPOKYLWSTLPPKLZBNBTWAKONDRD", ), ( "RQXJUDVHGN9YUUDEDHDXCHAVUIVZHLQTZIJVLGNAFIIDYGVX9BOCMIDOKMPBZCNCGTYKRLTDSFYVLZOOD", "TELHYNCIHGTKCRC9IQDWBLSGPGQPRZCSVRYIPZJ9KXILOIDIHXRBSTMOJZRRRLSNHQGEH9AHROOZYEEMC", "VNXHQOPOCV9DLTXB9M9XBJQRUY9ZQDSRWHLLNWFWVILYWVRPEOKLLEPKYJLVYEH9VQNRIELBKSISIBBRF", "V9VVLTQIWWYWRUUZ9YHKHYNKFUNLHAOCCVAW9KMYQLHYRNPEJFCOTJJICRTNLE9TUYRRWOBFXLXZUEDQT", ), ( "FKKKPTUKJOQXVOQSYBZLPWXPSB9IRTKUPM9OWDSLHYDKJUHCCEWAXRJXXZVGMYWSNTVNJCBSJLDFGYQRX", "ADJCUWPLCAGLSTPSOHVQCBCAGJHPWRXFWYNAYLADTHNRECVQDXM9OYGZWBARIEJTBISFKRTMBBXXLXDOW", "WJPSRKGNWTOGAJCRCS9UIEPZPUUEGWOSBMNSHXSWZNUHFXZRHESGDBX9JRKYFVXRTTWBUEHGPCRSOXL9C", "HSS9KUYTZJI9AHTNRGMGCGZZNQXWJ9ZWWSHHR9PGPJRMJG9SGTFCNRKKEIRZCKREUNGDKAMYYZRBQEIAW", ), ( "AU9AW9RRLZQGMXDYIYADHAGSNLDQEEGSM9IOBFVEKTDYSVXEUJATJJFYAFA9KGL9JHKJOMSHTP9YYZBKT", "FCYDZDQFTFLQ9EBSFACTWTVGKCUBGJZPVDVPISGGJHHMNOBXXFATZFX9GNHUNGLILYQ9JPSBHBWWCNGUX", "ARSPQDOTWDXWPJLZYAGNWGKUXJJDCG9JKPOVLGIUYCCH9FKWSLESWSKZYQZCZJKODYOJHUCZRYFAQYTOI", "L9TZ9GQJGLYBAVHAXTLIDYRUCBSNSOEOBYZIMRJNPRQQRFALAJMHLPECDMTRKTGINDWFNMTGIIODHENCS", ), ( "J9HER9GGWHKHTLPHYUXWEKAIKMXHPVWXQSBYMMDEFUSAYZDHKUBHQRYWICOSQRASXHEFDECMCHJHJKIVK", "NATACRWZMFAPEKI9GNZCRXZFJXCZHVZQOFHQTXKMNQHEQOYMPVQWVGELKYIZVLNCIMRLDH9QKRUJFJYTX", "YUFTJTIMBNGROQIJOBYSLNTALXPHQWHEFZMRRSWNAYNKKSMAABPKIHVDZIMI9ADPCNMLKRWZNSBFOMNNW", "NVWOEIHZRIZUOU9RPIPOBI9CUXOQOSWWRVHTE9TDCJGITXNVVCX9HHITHQRLDRXVTHCQFZTPNONOGBAAE", ), ]; for test in tests.iter() { match sponge_type { SpongeKind::Kerl => sponge_generic_digest::(test.0, test.1), SpongeKind::CurlP27 => sponge_generic_digest::(test.0, test.2), SpongeKind::CurlP81 => sponge_generic_digest::(test.0, test.3), SpongeKind::UnrolledCurlP81 => sponge_generic_digest::(test.0, test.3), } } } #[test] fn kerl_input_243_output_243() { sponge_input_243_output_243(SpongeKind::Kerl); } #[test] fn curlp27_input_243_output_243() { sponge_input_243_output_243(SpongeKind::CurlP27); } #[test] fn curlp81_input_243_output_243() { sponge_input_243_output_243(SpongeKind::CurlP81); sponge_input_243_output_243(SpongeKind::UnrolledCurlP81); } fn sponge_input_243_output_486(sponge_type: SpongeKind) { let tests = [ ( "9MIDYNHBWMBCXVDEFOFWINXTERALUKYYPPHKP9JJFGJEIUY9MUDVNFZHMMWZUYUSWAIOWEVTHNWMHANBH", "G9JYBOMPUXHYHKSNRNMMSSZCSHOFYOYNZRSZMAAYWDYEIMVVOGKPJBVBM9TDPULSFUNMTVXRKFIDOHUXXVYDLFSZYZTWQYTE9SPYYWYTXJYQ9IFGYOLZXWZBKWZN9QOOTBQMWMUBLEWUEEASRHRTNIQWJQNDWRYLCA", "PPXFWWD9BOBRQN9HUAO9TGGXMDHPJN9HWMSZVRYNUXWVRRXOOZBAGKBPIEVSJAMXIGHIYTNY9ETNZUUSPZFQNQDIHTALMLENHUPUNNNDJRIHWBHZFYJYEFSVPZOZCFPFPQFPYPLOJTAVQDYNIZT9VLLZZZQIVFDFNS", "CWBMQJMPO9UZFPCDHNELVRHSBDYDMDQZTOOMHYMMPVSQJSNELF9CNLGSGGAWLVWSP9VSEFJHHKRLSOAJYNOVXUYIJJCHCKOBSLDCIWFHBXGOSBNPTRJUFZZABJSMKNNAPC9QOCEUTKXZEYAXPWNADXU9GWEXTBBZUG", ), ( "CXOXVFNGUPEUZESXHFBVHBNAAJNONJBPVBNJKP9QXWYGEVXOCUULVQKSSMLMJJUPVBYZ9FHMZRZYEPKSZ", "RSCSUVIEVAIJDMERX9ESPIKIJIGYRRCPQPJUSCEYWQQJFWRHMAUPKWN9FATEWDOGEPGP9VZAZVOLFDVVDCJHQTXFNLLHQXGXCCDXCNPKDYXXUTHBCRVRJHRVQAYCLQCSNVRKSN9RXM9IFWLQXB9ZXTEQTIRIKTXPNY", "RTKRURAQRRMXJLKNDXNVFPDCUPQR9ZEMXCQZUXGLADLJSBFGOKROSNHEHXTNLRJOATRAXQ99CUPDCMQGXAK9Z9XAWJSSHADXJJONDNXBMYZURM9JGDHJTDWCJEUHBNJDECRRHMQRATVIBAWZJDCDPVOM9KGMVREISI", "YRCAPSUQBZSAAUPUQSWAQFAVNCDPHYCWPYDTBQZADRYNOKHUIATKMNMEI9KOEKJRRRQBU9WQROKCETIUNDKGUREFMXCMZTLSE9OSPTWJYKAVGJPMMNPFCWAINUBQZJDNDMBZOBAQIWMFJGP9EXWNXBKFSVANFPYMND", ), ( "KFHRWRNKPBIXR9DQC9NXEZDWJHDIID9DFJSNMIQ9PM9PSBMHPBNYKGATCYADJFVGEDKLQEMJNVWVIV9BJ", "VTGUEYQYEEOMVNUIKHRCD9NJUMQRQVGDARJBETPULYKXQGZKZDNE9ZEGPYOJXNYNTYWOYLUP9GPX9UNJC9BAZFGBOLISAXTPVPD9WWAHQUWPVJOCOLIDINAC9AKYVUCLUWIECSYRZRRBVLAUMDOCPZASDUWZZNJKMD", "IRRTXXQVNBFIVCNVQCOOGPUEHLUPVSFBWDWAOYNXLVEAFYTRQRHCCUANNZMAIYOLFNIYKDLSSLKKUJBGXYJDUBGJPCCKSVHXTQVCBQHCQSPOSCJKUUKFPTFDFKTKIMQYFBGBKPZRP9XCGLZTPMOIHPLHSMBSMZMUQQ", "RRQKEZAHPKHIXYMCKMLI9Y9YEVHDOXUKXVGATFPTZXJRCAPXKUPEZSYBPMREEUPTPZJQBQVRMYEJGUBAJSU9AMUGMTVNVUTDOECOCHSVTL9G9FBPYQNFJSEPCBVVMRAIKMJUECQCGMQKSNDYTUEFAZCGNOTUEFCBBW", ), ( "AEFKWYAMFHKZQGH9MEGMVBGQKV9FNVFLXSWDBDMQMO9IEQGQKZDWBUUHPNVSIQ9HCMATTN9OSTM9YR9AC", "SFGULJLBXGCJRJBVYURBLURFINUOHVILXIGVRNXFPJWSBHYLRCICOYEMGKDMTTSEAFIM9USGCRULVUXWCLIPRSJBWAYOVUOURQUVLKLCNSPTPLJHEVUEPUKXPMJOPVSBSUKIWZFWQSQMXDU9ABFGT9WTZGODUMJGJZ", "VSKNYSNS9QQLZUQEECJGSJWKGBHTSDARVYWQYTIRDHSDODCODQHCZZEKUYLCUQUDRJYLBUYWNUA9BXYPVXMGSOTCZPNGWWTNHBEFBSPZJLAAP9T9VZBSOPPPDZHBAVWTUX9YUINSNMRDJKLLNLPMCBEDHZUEHDXFJW", "VUGAVRBDAJMLNOUQCHISIPFWXFRO9SZMQV99RPTHWMVGLQUSNWEKGMCS9AGQNHYVINRUQLGAOZJVEMRAUBKQOD9OUJYYQESTBRMAOPVFQQLXXHCACIOG9GALPRHQNQRENWZQJJNJOPKW9XAJGG9KBRKAKATWVJBJDJ", ), ( "SWKSDPAMOI9LLXRQYIFDYETNUSHGCHUVQUMFLV9FXFEFEJVPDIMD9NHIYXIJUWENKHFROQBZA9UPUU9ON", "OUIURXMTDOCUAMG9RGKBGOLZKANHFKSQUKPDYGCNNFHFOJDHAVZEIFXOWMMTOMPFQCGLYFSCVDDWEEUABJPEWAKKIJOEXDQCU9ZEZMQRSWFWPLQROVCQYKHMAZMQVVE9DOMLSQEVFW9EUXEUGSGWKMDWHCDSGWPXQX", "MPDLZQABKTUHTWULMFNXCNRKIRC99IHOVULTTFMZ9YGZWFSWZUGF9RH9TQKYULIQOCRYKCPYMW9TW9NXLYNQEMMJGALJPCQJDGFCFKYRZSRPKGDQNNVZDHGKI9VNJIQZWFCZJOBYWUIRIROSFJPACAWOZMRMFNFITD", "HXMTLGWDOHQBKBAYASGRE9HBRZROJDYXPWUBBBARDOPDFPFMNUJYPSNE9ZSAVRQNXVRCZHQMFQQLJPPJVKRBJDWTLUGQ9PPGQFWYIKAYLBQILJOMMZBFWUJNBTMEOIGGSZPPGBMLNLSAPU9VNKHALB9LUQKOBNETLN", ), ( "KVSAXCWHCVD9NDCGQPJNROGNATNNMGLMODYPEGBCRJJAYFIVLP9ITLDGARAKBQZLUSJZRO9SKWCFMRSWD", "CGPMKTXWEYYZOE9MMHGH9GGTXJBWKKBOXJETVKTQTWPOAOZRJLHYWGBWFLZSHUPMMTZMMRPWAJHGPDWJYVJELBIKC9WJJGGSXESPPGWLAH9MYUAGAGIOGNWPXUGEMWNCMCYNHQCMFYHQ9T9XYFRFTUPKMEPABCFTRD", "IMPHGBNHTIVMZJGHYQYSTPQTDGUCZYYYFXCHLHGQNBITDH9WACZXATC9BYTGZPJEAXKRZTXYRJVFKQZHBCAYZJ9LYCBSSFYRMBQMRHWFVSPHEGTETPHESPQFIRHAHMUOKVROXPVIGFXNMEDPI9PVDJIFDZAJASGUZI", "KVEYMMXCJOQFO9AZQRKZSLNWYG9YQDLSTSSHOMXNFQGVFSNGPZUREVGCGRJXYFLVLCDCQT9F9OXUNPVLVYKIROPI9AGUNAAHGVZQQTZBXKALJV9PKJZCRDXKIWIYVMJXYYX99XNDTWNZBFZPSXKIUUZWSIVQYUNRTB", ), ( "QJRMWWBQHCLKBUXZLOREVDQRYEQZNDOSIVEQGBBPUMACRGERUBBZTCOFSYUYVLXFPJBO9CUXIQPIGPISO", "HMXKCCATN9NTTGMADKIYKW9DM9HPQCBIMT9IJNDZJAZHYTJRPCTSGYDLXHZLIFRTOVOBBLWITPMALOJIWSDZBGHSKGSDJZBLSEFVTK9YLDNS9QDYEIODSXRVXUWUCVSBAIAUWNIYMGXJNKRUMCWHRECTRQQWW9MOWW", "DPPFSULW9KVNWJNCAMKKXIIDGWXOIZHQGUDSQPMKDZNRYWJGOBURUDPBJMSCYRGQOPYLCHLAIDGUNZALDLLVNPXAMNVNMKDGPARWQJGCXTRFXUUXZRPSSQ9HF9TUQGHHDKPBVYXFIMKFMPDZUVDZMA9TXLYNXTHNUU", "GFICMDOGTVCDYJKWNRGBOHAIPTNITDEK9KSKLAUFYDZLJICYANUXQKV9CJZMGHUKZDZRFTWJTMWXXSVLMCGZEZLXOMSQQEZCPRKTZCSMDDMNZFIYQGNSBLKTOCCJWNQDLJUHCILIGLLKROKNGINO9RIQDG9N9XAHZG", ), ( "UYWDLKEQIBHL9CDOWRVZFAGPUZKGTYWDFIUBTWRAVXINAGKAQUMVSZMEVGAU9SZNDLRGPDK9MZ99KYSLL", "SJTKBFYODYYIJRSGFGLTARGGKJDTTSADSXRGPUXSVACHBIDEUMWUCOECFLHOGXEAKAXFT9ERRKCAZUUVXDTGFYERFTTKHWVAMYFBLAAAKHUOKKFMKQOTSIURUXFOYJNDWUAIYXPZT9NRFDWEZ99OFPVDPCPTONIXWB", "USYCCIDZCOZXUEEIEBJDYPMNJMUFHPAJZUGVLNRUUHXVEIVKZGJYLPT9RMSCZCLOPSZKVBPMURPAHQYKGKDRXGEVIHTPGLCTUDJOWSNBESHUOMSCYHXYIGW99CFSRWTFKGJXIXZMCKTGGINXWKUFHTCGVLLZXWXQAA", "QGCEMZNQPCWJIKHKPDGO9QETWDORPXRSEDRYRVRZBPKMAJHYPMWJBNORWVFOPTBVMIGKG9DXTAKROTJNYQRVDLPQQJRX9NDUZITGHEIEENGPRRNFCCJVMNFT9YCNFXTJIVEQJNEUYLBEEYQLXOLKRHVBKQEFXIDZXD", ), ( "TUNIMRFTEC9EPWYMEMJXGPU9BBHW9PGEJOYEYIWVIARERV9YS9KZJOKMBIBFAKKIIUWGRR9RQMHFRXPVC", "ZCGTDRVLOKEJAMVJRBUSDELVWECRNJIOOVEE9XMFQDY9RCIBAWHPW9VZKBVGWWTXYTRZLSNBGOC9PYHIC9VCW9ZFQEDHAYPZWKAPYUQQJAWHTAZXQTKVKFVRXSVAPQ9KUIPFOZWQEAABAMOCUXILJFTHQBMZCHXYNA", "FFFIK9JJYJKPW9WMJOYMDBXIIJQZNLLCPKIHLBLKECBAPSNNZBBFDRTZANPRENREVHMKDAFUNNMTDSCROZMBGVFEGE9NELSMEERXOPRRJRPANVJZVLEUDTDMKPQWIM9HDVXFQJULZXOEZPFNBMOXAYYSPLENEPJUYZ", "AQDLESZTJAKGOFGD9RUGLBSLWCZQVOMLRVZLTMASTJDYMVOWBOUNXMGNKYJ9SMLCEDIZENJTNRDCEABYJZEOSNWGFESBWU9SQIVPPPXWJVAMPKCXKXRVHDYBSDXCRJENM9FYNVYSASIBKXM9ERGFCKY9HSBM9RVAHD", ), ( "WCCAZJGBCAATESCXQVXZJTDFIYJDAWXFKJ9DPKQGHLQLKKR9RNGIAQVSNYAHIYMX9QUBSAMHVUVWXDGXA", "RBBBT9KWEKBDEFGS9XGFJWVLM9PXGCIEQRUSRLSBM9VIAGLFWUYWAJNNHVCRVXSPFWAVBFRMCUZKXPQKWVHHVRXUMZVFGVBCVEGBBIISOLIBYEKBNZVLHCIJMAYCZZ9XKZZJORJIUPUST9MGPSMQZTYBNESTDXBIMC", "9BAIDQQOSZQKMHGE9VNHJMTQZUVDKXKYQONI9ITXCIMJXNULFIRRNYSTZFRGKQSPVKHZTMBLBBGZWJUCRYWRUEGUQOSMJIPDGZXHSZFPAWCTRUFSWW9DD9QIVULFLCKQFTFRNPPCAPEANULGSCGNNTQFQ9GJFOYZOV", "RPYIC9OAJSQVUQRPXLOALSXFXOJYBWS9XPBIRSTAXOJERS9HTKWLNZBIYK9HXXDZEWTWACJVLJVRTQEIXXOGLCJPZVGTVNKIVTSEGMRU9UPSULJ9LGL9UONCNMVMMLPIXUEKZNVT9KGEG9YOQJURBMWFOGRZCUICHO", ), ]; for test in tests.iter() { match sponge_type { SpongeKind::Kerl => sponge_generic_digest_into::(test.0, test.1), SpongeKind::CurlP27 => sponge_generic_digest_into::(test.0, test.2), SpongeKind::CurlP81 => sponge_generic_digest_into::(test.0, test.3), SpongeKind::UnrolledCurlP81 => sponge_generic_digest_into::(test.0, test.3), } } } #[test] fn kerl_input_243_output_486() { sponge_input_243_output_486(SpongeKind::Kerl); } #[test] fn curlp27_input_243_output_486() { sponge_input_243_output_486(SpongeKind::CurlP27); } #[test] fn curlp81_input_243_output_486() { sponge_input_243_output_486(SpongeKind::CurlP81); sponge_input_243_output_486(SpongeKind::UnrolledCurlP81); } fn sponge_input_243_output_6561(sponge_type: SpongeKind) { let tests = [ ( "PQ9YDLLUQYNUKPCPGHYHQKJNBOOOSEXXGFWTEQQTV9MLPMPGRDIKYWWEQZPICNPCZIIINTULV9UXXYUFT", "YZ9KARNMPCZYBJFVPEXYUPWIBTIVGI9ZYEYAIUYRVYHF9DFTNRBHKSLIOSNDDMNUVYOAXKJCHUWOXIPSWUOQGGYEJB9PTDARNIIKPDKHKUHNJLM9FBRYRUMHIDKBSSEBELLBZVXJVKNMBCSHOHZXMBXMSAVQTSJBZWR9FRJKKRSQML9GJYSFSAONDQBY9YKIWUKADS9WBSNVSHYYNTYWQUWPXHEOLUPTN9MG9QCODWPWHCTALJWZEYRSBIIUMFMHXPVKCQAFSSQECNYLHEFWDITSHFUO9ZPNIRYSWFOOGKL9BFBZEWSXFGAHSOVDUQHCFYZCXXAWTYLZ9HXDLRDKNHDCGBXUHGSAXIBPIGQEN9DEFKH99RZSRFNEHTMZCPKVQVVXLBAZEHLXTUWYYNC9YDHIGANXVGIZPJGCZHN9DBJFFVMCPUQUBPTSDLBAUEQVGVAJTHEMVSWAFMAMGVSIESERMM9NYNVZLJHDQCZADFUOICJOOZITWZPZSWWUZCMWBOGLXJJWMYKIYFGVHGPLHVPFKVFPNL9OWJPYSAJVJW99VPVLQPXGVBAEKXLSF9CN9XKHD9MRUQS9KKDVOZLABWKJTGVEOMCUPNRUYRRVYGYZNFCTHXFAPRZGFPCUQLEWET9HRDYWPMXIMUMVGOZWQZHRBIGUEVWZVZZKCFMSKLXYEQYZQDEESHIMAELTUFUHCLOZQGIBKKCYIEONDYZDXWSPXGPZFFRIVJAICURQPZCNNNK9HIWBRNLWODSGGBUQXEMXLZTXHHEUJNKTJGSWYB9VRIXFYPIUP9DEBJXMQD9BFCJIATHMAFIQGDCPSVIXHZJEOBYWPXCXCEMXYNHFMCCFEOSMQZUQTKP9GXIEJHBTRNSCNZNUKSP9NECXKOOOJUFEQLMPCIZDVSFGTDBHWDJUXZAH9EEUBXKVHSGYZFYHFWKDPNDDHFFYQKQZNMQVNNOIJLFGAJO9UMIWJNDCANUWJVEOMOFMGBBBWYIRHZMVCNPFJQPJUGGORHNKVLYCCKDYJVBOR9NUMJASZZISEYOXR9YEAFPATWVBGHAMHDIUKJHEAAKZRFVTHCOQXGFVCGSUSEIEVHMCJTWTZOFHHOOBGXANIONX9ETKLGIZTYKYFBUEMWOIBTPHTEDTYSXWIWEQTTDQDVJCSTBFFCOQGOAVGMSZHASDDBXJHLAGWRGAEVZKFAPCFMBEEGSFKLDHPRSQMBBKRHVRGGFS9KWUPZFUWPOWLXBNDNUBDVKP9KZSOQQPRVSOWAWDMSRFBLJZOIYELEAPRRBYRJA9IBHCEG9SPFTKSNUMLAJWSCWUKDLXVCLKVPWZWCEDGXFZLNGM9BDKRFFUXIQNOCRGBZOGYCKORQWQEKOSXPK9QQTWNCFUFTTQCTKZRXKRIKOGRI9RYOFUBBX9OLFTTSURKSEDWBTBYMGMDHYJLZDFOKCDLTFELOLAYDCHPK9RXYKXRDJOSWVJELSHFD9VYVWDHAUTGWZQP9NCRTIRNMWZY9FGNBQNEFBSYBLPAQSXQXUYNRRTPOYRZQUHLYVCWJPILNMVEYZCPJYLVRSCRFTYUNNCVRYCDQREQHSIHFON9CBTOURVUTTMWGGAEZAFYNHYJNI9JT9LHERHBXWBJGCKUCFDETS9MSEEZPQMSSMBG9NFYCVVGQHQCD9SLONUWRSPTMVQSUQBJMBOFUYQEUQQZZRHTSQZLTTLXYUQNNOPRTYGTAEORCSNEHFJVSMCXRETKCZWHQUDUBET9QKMRZNIFS9WWGYLWOIBIMQRCZHKHUCXLVWCLOBVZJSXZRWNZVYBYQTMMGBUYFBW9HGRWBVAYJUEPSQKFEMPMCOWJDRIYOKOGUFKBKOXIADDXNEQKKGAMLIWKNIFIWEXJTGUFZNOLCHGYOZQDSOYYLZMJWXPLTAXUUAVUOPETRVJSCQYHRJMFANEKIMCIKCVBRKDJ9VRKJJALBTACU9LVRTN9AFZNERMLXZVVHVTTYBMGADFYHEQZLNJLSZAAJFGHMXXBBKAKYEGXZDVNEGDWFTRDJCUIGONKHBAODRP9ZUMWJHHGOLVKES9LDGWZCGFDEFUVKRUBW9UGSCJNXQN9BUUKIQVMCWF9PKRF9AKATGIZIOXFFKSGCXRSJMTEXENJPVDHYUAMQUQABGLSUFWPPWNTEPPSWEUGSBNZJYNTBBFUSY", "UKBDIVHXJLTGCKU9ZXJOAVZPXKNIQXDKTGX9OVWB9UKETCLUZCRCSXCCUFXTNODMUHKSFBQWQETODJXBETLI9NUAKBGYFXTLRMG99WBWUTRKOJIXIJFCUT9FXIZZFIXQKUJHXJQQPMAGUYFI9M9WUMLZTFDIBGMMPDHMSJUGZD9PCXIJXXGGXB9YELGJKPJSVBXOGTDWDQCUURMVEDZGXWQEEFNJXDNDXOQYXOBJGMNADTNAPQISLCYKUYEZORBJFQYKBXXGALEKHWCFXJDRCKSQTZZLWZKJROXLFYCIXFINRJDC9C9PEEZLPWCOEVBPFFZOJKFRRJ9RW9EBHJQ9ODARDENXQXY9HAXFCAOUJAFOQACOKNXBQKBNFUUJGVVNZVVSMQXGTJW9VAQJGUUYIIXBITSUDGUDJBSS9PVUNAOHO9QDVOVGGCMCCUR9HMKENQXXRZOLTZJQUDXQAAHRTUDOSUVRCZQWDUDNSYBOJYHADR9GCQEKETCDWQNAPNWXHBGARPWQ9BPSGTWRNZDOMCZUDA9NQCZVPOLIUMMTZXWQCQEDPIJHFWXHDNLRBPSRRVJSX9UPPDXWBMXPAMFCH9QJKYVGBWIRRONLKLW9BNF9G9RDASYGSDAIFNWPOPJQIDECTVAWDMDJJKMIGQFSWDTEZJOXU9EGFOCEAYQZDHVALKRYVRMRVXULPNVAUOOTTAKYDYYFISBZONDUXNCCYXPAERXTUPT9RFPKQRPXRDNJ9UQWDUUSEPW9IEFPZKBRTAOOIE9VHGGG9ZVMMXXYHDPUTPJJPJ9LOPDNSOOUYWAQRRLOIFYAREJKJFOEXGSDAUTTZXJNVFZMUAKAIGJQQHIIJSCLPBCIECCSJVONIPNKV9JFRAJXB9FITZVAMOTFJFAS9KNAGXQVEWVRDIIJRFHNENBGJYJUNKBPEKMNWXVDKWLKYJRGXXFFQGAIJOJMWTQPZSIAVHSLEMCFDBDRZHYN9CFIXHNYQBPIAIVZVIFQITVOJPFDYCTGSCEB9YYBQBPDEPIBRQFHNBPUAWERIIOEVUKTCIU9DAYRCMZZFECIFSUEIX9BRONOFB9REXNWBPWEGSALUPZVD9UTCDXBEUEJYDCI9FQYNQUGACLPQXFZSMVFPKTASINJGMHJVCNN9U9JJEOKLCVNQFO9GXOZUPTZTVFAXCUIKMPCEWSIEZNNRUJHRSBEBFJEFSGSFCTZRIASQCGKYAADSXRBDKKCRDKCYQM9BBHKBOOZECPERDHKZTPVYCGSGQC9UUSUIHIWQEERKHZLNECCRYMJELZKBUFMCVJLUGWVSDDIOBBKPNLDCGPPNRMDPZTSDNVX9PHVESMLMYUPUODYKYMYYQNXTFPJHNHHKFQNICFSTNIJMJLBXIJTWBIHVMEFERGAJSINFJFQQJUH9FN9B99HICIJHFY9BSJDVZ9UQRYSNY9ZJLQEMEPWVABMCEUUXIEN9WNKSRZ9OZJVCJN9BCDFYAFRQWP9AQGUHEDPUOGNAGKNSOPBP9UPNHDVDWZAKMSHXURSSNBIZGGHPIRVHBOMNCVYOAHLPRSSBBEQWHBGFYIVKVNIGHULMYBVZLOIFMONDAXHIAOXQEMBSNKEPTSQZHPQBXRQTCHXADDJGVVGIUPC9AZNFQNRGNVAJMBVZYNMMHFTPRAMOHLRBPGYKCDSYXQHCPRHXNNQMV9GIAKWIRTSMTLNKNKXXNIQRJHXJBLIDNUUAYWKXMUCJRYTDZIJG9TIC9MSSRESQGCAUHGVIWLZOWOX9RCFVKBV9OEO9HNWIUOQHUKXFEBYMDBFKTSOJFGRHSDQJZMOIMQUFUIUWISEBMYNOCZHFJIJHFPBUNMEGEHOAXJRVNSXVKVZUWYBNUCATOCDKKGFZZXLOTPMDDWERWJBWHQZWUIURFAY9OL9XOTOQGJNEGJTBGDESCLDNLYGOVQIOLXCDWWQ9EODKRLSSNIYVLXYJKWWHGXGYLILVBTXVQKNGGMANKWOBGWMZTRLUSTANVGCFLXMPYEPDQUIHIOKFEYZKNQJWWRHJLKQMTLRDCRT9C9JEKGIDPUXSJLRELAEBZNXWBJXOXDQDWNGMVPE9DGBCSGCNNXEABQRHZQB9QVRPUJUOSRRZSMAIBBIVHUWCZXCYL9SJJRRRGVDSNYCNVKBXUXRXTYUIPGHIXWYNSQMNJPMUMB", "HMSJUGZD9PCXIJXXGGXB9YELGJKPJSVBXOGTDWDQCUURMVEDZGXWQEEFNJXDNDXOQYXOBJGMNADTNAPQIIXBITSUDGUDJBSS9PVUNAOHO9QDVOVGGCMCCUR9HMKENQXXRZOLTZJQUDXQAAHRTUDOSUVRCZQWDUDNSYDMDJJKMIGQFSWDTEZJOXU9EGFOCEAYQZDHVALKRYVRMRVXULPNVAUOOTTAKYDYYFISBZONDUXNCCYXPAEAMOTFJFAS9KNAGXQVEWVRDIIJRFHNENBGJYJUNKBPEKMNWXVDKWLKYJRGXXFFQGAIJOJMWTQPZSIAVHSLVFPKTASINJGMHJVCNN9U9JJEOKLCVNQFO9GXOZUPTZTVFAXCUIKMPCEWSIEZNNRUJHRSBEBFJEFSGSFCTCFSTNIJMJLBXIJTWBIHVMEFERGAJSINFJFQQJUH9FN9B99HICIJHFY9BSJDVZ9UQRYSNY9ZJLQEMEPWVABXRQTCHXADDJGVVGIUPC9AZNFQNRGNVAJMBVZYNMMHFTPRAMOHLRBPGYKCDSYXQHCPRHXNNQMV9GIAKWIXVKVZUWYBNUCATOCDKKGFZZXLOTPMDDWERWJBWHQZWUIURFAY9OL9XOTOQGJNEGJTBGDESCLDNLYGOVQIQRHZQB9QVRPUJUOSRRZSMAIBBIVHUWCZXCYL9SJJRRRGVDSNYCNVKBXUXRXTYUIPGHIXWYNSQMNJPMUMBWSTNZFKUHDENVQJOBZGYCFQGUFRIIVAVZJKDKYYKSXDWPTPGKUAIQFDXVMCOEDDROSGZPLODXNTF9ZICPBBLRMEYCFGLBOO9MOZKMT9HCWVSKRTVLIHRSZHYEVIHCHPIXX9LMJPJUSPKLSZVG9PBQALKABHDKMTWBQJCCEFMFDNSQNID9ZC9SEWKIPGQMIAVPXYWFSXGESCYZQAJOLIA9PTCEDZFCYJWXAOEXJLCCWAVSGFMEHCFEV9XUDTKVLUWKZXTWONRIEZBONWUPSGKONKBBGMHROXWGZJYFGMANLYZYQTFWZWZVYVLWBJQZGYXSUANEQHHIHQMFQXV9RYGLLOSVBLHSGK9FIEFDFUYKEXI9DXHQFIUWXRROXKKSOJIPLVNBPVVIKTGXVDVUHDDLBNTS9ZX9DQKRCBVKOHHXUB9NOFCQJIKWZFMXBMPCBWYHSYTRUSPBTTOAOEQOKLNZLWROFXIFX9BWHBAGLCAICAOJGGJTHJJXDCBKKIL9XWKYTVW9GFPVHQLQQFLQCOKAZZHBRJWXCESSAUFSHCKTQBBHLBDDFGAQZOXVDLIJQKZUKTNJQCPANTQBNKZOSEAGUYBKHOAOITDRXPOP9NNVHBQDQ9VBAETSATNBBTCVJWFRHVAPVYQTGRDDPIIT9GWQXBGDKDK9AYSFRGJFZXDCCSMLXPYUEGLJAYKOPSLTSPT9QWPUKCJSVI9PPNMGYOGVDDZA9JDMMDCZNSA9YUDFSWZGDGJFCELSLAMZEJZINPBJPUWKHRGMXEEZ9WIZZYHFQYYGYWJSD9RELNBMCDNVKSENDEJIZNEQMHWJZDOKFNRAMAQWZLSMUTUIWHRSBEWLTLNXCXYHOQII9ZZJDTXQEWGHMZ9CSTLGFAEMXQDBXPCECHFEFTIHFRYZDOQJOWDJKNOQYNTIZMCANLMPWROKSZXFTPVD9XJUFQBXQRTAK9RI9HUYQUODFHVUKTABSYPRCZYRBGOHPFGDNKPMYKNZHWRNARMGHDKKFMBHZYTIEASOOU9NQKFJJWSQSKLBHQ9PIYTHYCNDD9COGLIEFHVTLDXXPZMBHNJRJHZNJNMWCMDNINLBRX9OEZFKJOCTQJQKHPNEMFGOFDR9FBB9UNCWL9CDGZXCUCWIQMMETIDXAWDIDMNNP9JRUVXDYNJZCUPTVKYJXXYJFBUKCUBIYGPCGDYBTKJQXMNKUQXZWQZ9FVV9GLBUXQXKMANGWOY9OLZJF9LNVTE9LECMCXLGBAMGKD9DHCBXDM9QS9M9GILMQOQRGSTWJOBSRNEAS9FUQSAETONMFFTBMQLGK9ETEEDYKVHWCX9TPPSXRZORBPOIL9XQPHTXHHFWFMOMKLELQZRLTBFZUZTXAZVEWQGHECENONJWMIJMXM9PZBP9IHNCBSJBMSITMPMUGFLNXALLEDBMOMYFEEUHRHRTQ9HUEGEOWPBXHPUBK", ), ( "OLTQRBZYZLID9RKWBN9LQVFNITBGADSKAIJZ9NZVDAQVHHQMTICZRZKH9FKDMLICPPIT9BRVW9FBQPORK", "XRWLC9PXAJORZZSWHXKHPPCIMACANEBAFCOGGWWZKFBGAEZUYKYJSNGBYJUFIRYLYLMLUBLJZC9TYOBECTJUDYUBCBBAKIWOHSZL9GMAMMGXPTNXVMUEVDHFSGFOTTWDPJB9ZXPBPVBZXKMU9BEDDLLSYDHGVQSOYBFSNJPJDZENGPUQHCPAERYLIXOLVWTLM9PXWEG9KNTFLRRPYBSBNVFZCV9HRGCIGFWJSOLFLTVHWZPHRQDUT9LEXUNMNIMNNJWFJEOFMDNHZDIYXDDZFNCORVTZY9MVPBBN9RKTYUJRTUE9UBIZMUZBFPBOZHOZTTXAETUPPSUS9SNSP9MANRFEPGRLAAZAXHFHZOVKDBIJBFSLJZMUUJYKBWLYK9KATYUCPMVKKWAYYPAXQFMV9JD9WNJHXJHMUWEXMLYCMYRFRWTMKTCVPYKHLGQOFROQUOFCBYGIDEXUNSRQE9RKDAIZVHBHRRYLBI9JJAKMNJAOPKJOSNBMNYFLYTZV9SJTNKNXSDEAYYXQNMRIPJQLYDYZWKGVPFPGIBURSOOZOFBTUDAGOMDZNCCDGOXTMIFIVNUQYMRUJPDLAGEVCYLYVFGHCESLYPQRMJVBTLYHUJVBAPRZGDOOYQYLPVGQMQQTSUFNWYABQODEKU9PENXHHQMXF9LMWVSIH9DMNNIOCRVQUTZLHHKUXLQGZUJNVGRQQCCAOJNGUHXQMNXZSFY9YXJQXHHMMZIFTTFNDDKXQCCMREYSYENSLMQTJGXJFMVFRVYIHHJJWACYVLOUWCJFPEKABVAUJ9EDPYIOVMOAXXLZRQBVRDGJKHDDLEWYMKNVDOOKXEVYAHKYBOCOF9G9NWSUPKSIVQAJZZXPHHBVJ9SZGFPTKBZEYLBQBRCZXFFUFCU9QPFAJALQ9VDGQZFSNZPJMTAU9LQBMMIXYRWSMMUJTVFAPV9ANUVUBPPEJVDUCNJ9VMMZVGQWGPHZTGGXYMTSLAQNHBZBPGDOTGPWBTQUAAPAWZHZPOAECHEAVUVELDUGYJDOYILYOQ9CLSLMCADJAM9C9WGEZEAEOIVSDN9JVUCCRDFGUBBUM99EIKXOGH9UZIAMDQJNBKMWURXMFP9YEVCTGZQMKGPYXQYWIVTFJZJNYAXZVES9PWKLVRXCJELAUCVXPBRWKADPFYIJLQBZAKTCVAWXOJLEJMQLH9DQAXZOIKCAQTIVBELTCNXSHHIYMUKPDUYXDQSVQGQJFBAUMPTHECHRB9PEEBSLTJPDGTBPSZQSIGABGILKUAOQVDOVRP99VPSQDGGDSDOHNXYPHIPFVWINO9IVPHFMUIODXDJCVYOEOMSCMWXARSVXMVJJYRXZJGVYQTDIRIMWZRTXBFMLLIJHCJWSNVWSZBIFIEEWKDEMKGDZHXSPQE9YVVQUFMHGZBMSHEFUYTYVINYW9QFVXDQSXBASAELCMZIPUJYFGBEFSFWDLTOZIRJQMEZZLQAQVVWXNFEUEGLNVNVEBHXXEQTNUCX9DGQMEWSWCA9GELZCWNWZWCQHOWJR9IY9CITG9DKSXTGJZ9PQHKFQDXCWERAHKVDDOAPYXGRVDSN9BCDJFVIMJZTLOGS9ERSDEYBTLRQPCNLPXCDZTK9GPFLMIXZOKJFVDJKFAEFOLTABRJWMYCWYBXHERYYJQJXDPDSZJWIOPHZVJZBDWXNIJZJNN9RIOPYRWQILGQYKAIBIYWVJJVSLVOHPOOP9CFETJMSBUDCQSLJV9JINPEIXJAORFGE9CP9TSYCUUOXWAXFKLGMP9XBVFKLHABVCB9ZIQPALFGIPOROFSCYAVWOZCYANNENXZFELMYYQOAUPZIOTHQDCSTQQMMZEDATFTDMPLVZ9BFJRMPKPJPTGAEUVSAXELI9XHXEEAHQGVUEGPPGAZTAIWBMSIKTSIZVUQJDQBGAAU9UTFTCZSCEOW9VCJTHJXABHLUEMKTWHBVGBZJHANXYJQQPZRXLUB9UBPOERCGELJCDVPRAGPNIKTWAJONZWZJPILSREVXNLWLPJRPBPCEFDORMMTWKFOSQKQGXRADDOJSHVNIAEVRKAYEYTKBHEDLJCSUQHAXGYKXPEBTIHGOJBKOCKRWVOTMJMDTFJDVD9UPTAYBXHJXOGMYEGWFPPEVMRTS9EEXRASDTHDPGKONNTLIPOGIHRI9FHPDFJAQJQSZX", "OTJPWMRKPLUDFJEAZZVSCFFSPGUOGZNPQPPJSFOIRQAKWUPJTYHBJDMPCTZTGGCGIQTKZVLMSOQKGEONEZPXOFBKTTHHLSPLYONTQBIKQVMHROGTMECOZMQUASUIOSDYZQGVBNWQPOTREEWDDZNKTWSRAZU9JRDCCJVZQTJZEPPDIKMMKNNZPMHUSBKCNHTJHGKWRLOQMXEINLWAUZSCXZGEIJYNFPFBHNIKDNLAWNFNVUTQX9N9MVIROTFUEYUBPFAHVQBRMTKFOSYLKRWEPSBIXYPMMIDYEQVWVQBFFWYVZGGXEXPTUZLBAD9FJWNVBNYVQZUSQKMOVSBN9ILJUETTEIBAKDAGGOZOHWUJJEJJVIAFIZPNFKQSVSB9ZEXBGOIOEI9PQ9YRGZLRGJYYJHNO9ZLYKUKTQCTSHGXZPZGRSWCRIOIGICGMXLJAQILFDTTUMTERFX9MZAGMSNGHQQPREBPNASUJGPMGSWNSDOQCYFFOIVNQCUOCYP9RNJDDJCPOGXNQNHDBICHJLEXLGGIFQNOPGSIJDNNIHQJRXDNUOSYQDD9XBNZNUYWEGYNVXHJDQODMBPAYLHUCHOFGBBJ9RLP9ZABYQCIMPMFPQFFPQKTLTCPWLYTPGYVQSDFAQUTZQKNRFVUHCBDTXSXFVGWST9AQGROGPKOMKPBXBQEXIPWSIHYUJPPCXCJWPGSMLDVHRRPEQ9DSV9CXSHXJOEXMBJNECNHQNDLLWQZ9NINYCJDVBYEMXXOCAVXWDCUJIAIDYKWYESRWIGCJFSTJ9VMBVAZTLYORVCKYOBJNPKWXPIBNM9ZWPWRVSHIBSCSXRM9SXVAQIPAH9ULXFBWZRXYCSQBCBY9WJYKDJIJPXXLPJDJFXZBTBRVILBTJAXJKIAJKHKXBWMZ9ORELSWEDCLRBJ9KFAELQPQRDXERKAYJLY9IVGDRCWDXB9HYJDQYQSIQSXZFNBUVLMJUYXWHZRSFFQEWSMQUTUTFAIXLAIOOMOORMQ9GTUWRTZMZEFEYDRF9FJJOGHOCOBPJJERYTXKEVZZYYVPACMMK9LVSMVVWWWTOLINVTG9ZVUOKPKCZLRVQJQGAPXTQGB9SDGUZIOKYGWJQRMGCXXIZUVWPJEHYE9YYLKGB9QTCOJJLYMYXWKVVHYGRPPOE9TDLTA9BCZD9IKHTLVDULQXTSHUVNHDFQVGPJRWKALUQA9YQHXCQ9DGHKZGHFCZVSPK9PNMJKSRNQHMTDSAVSJHXET9BORFCFGLWXGCQZIJHVHSZIVRZAZMTSPLDHECICRUWKCBGBCMBQLKJHSABTDHLLQVYZIFYUBZVAYFBPWNOWXBG9RBGFPIK9WSWPDLSAYWVTTAIPIFHNBRUEICATIPNRUPKESTBP9NFLRFBNLFYKNTZZFNHMMNGMDQP9KJWBSEQM9SEILC9VCBGVVDUUDTBKMOFMBXXXVQAVSMRXCYQHKOEMFITYIQKCSMYZDYUHNQBRTVXNBLRQHNKDCBXOVZBMQNUIMAFOISQSOFBWTAMQSTDGMIXZJZXASTLHHLSGZRYAONXQRZ9KUKMKVJQJDIDSBDDAWWYAGCPFRMLX9BPNRTLLIVMJMYFZJGHWYKPVJAVFSZZDEJOWMHGWJUWUFATJHFTOCNXGDHA9OYMPTQCGGQQDT9LHMHQHLL9XOXZAEHFPFEHG9YSO9ZAHSTEJRMZKZVTLOFZKDV9XKNLGWG9EMIOPF9ERJFSBNZTXXINUM9BQCPVOVEYRFCFANPHIYMHVNXN99PZETNUCJGAYOHGEPRJWNNIAMXFLEOIWSS9MMHJBLIROWGZODCBIHIVUEGIEDIFR9BO9RBNETZPUCQACIFOXYWGQCGDKSQFZMOYCD9DSMIXESKXYYAZEMZDNYRVCGXZPMBXPBTYWDJT9GPHFFJIB9NZL9OAFTDB9KQUBGDZNPGPNPGFPRGEXO9SHTTFYVMSPGUZYRWNXMULPSMPTMDMKIVRIHNUERTZZZ9JPCQJGGQTGBSGSXDJTERTLFQEUUPWWGCMUE9MXEIYSDTNNDVBAUWNQYVBLVCZEZJYBCII9PXZNDJ9XLBDEJUWXJFRH99TWZPGYYEFROYWUCDWQVCUJGGACCDNPISFANZPSPYYJPYHDVMZXFAWBUGTVPGTXXBQCLU9ZBVULUKPQUYDELJHUKPQMWVNXBIZTQMT", "VZQTJZEPPDIKMMKNNZPMHUSBKCNHTJHGKWRLOQMXEINLWAUZSCXZGEIJYNFPFBHNIKDNLAWNFNVUTQX9NHNO9ZLYKUKTQCTSHGXZPZGRSWCRIOIGICGMXLJAQILFDTTUMTERFX9MZAGMSNGHQQPREBPNASUJGPMGSWFVUHCBDTXSXFVGWST9AQGROGPKOMKPBXBQEXIPWSIHYUJPPCXCJWPGSMLDVHRRPEQ9DSV9CXSHXJOEXMBJAXJKIAJKHKXBWMZ9ORELSWEDCLRBJ9KFAELQPQRDXERKAYJLY9IVGDRCWDXB9HYJDQYQSIQSXZFNBUVLYLKGB9QTCOJJLYMYXWKVVHYGRPPOE9TDLTA9BCZD9IKHTLVDULQXTSHUVNHDFQVGPJRWKALUQA9YQHXCQPNRUPKESTBP9NFLRFBNLFYKNTZZFNHMMNGMDQP9KJWBSEQM9SEILC9VCBGVVDUUDTBKMOFMBXXXVQAVSMEJOWMHGWJUWUFATJHFTOCNXGDHA9OYMPTQCGGQQDT9LHMHQHLL9XOXZAEHFPFEHG9YSO9ZAHSTEJRMZKZZMOYCD9DSMIXESKXYYAZEMZDNYRVCGXZPMBXPBTYWDJT9GPHFFJIB9NZL9OAFTDB9KQUBGDZNPGPNPGFPUJGGACCDNPISFANZPSPYYJPYHDVMZXFAWBUGTVPGTXXBQCLU9ZBVULUKPQUYDELJHUKPQMWVNXBIZTQMTN9XKFCT9JPLIGJB9PVUWYTVSGTJPVMPTBKKXNQLUWG9APLBCPCA9LOESLDIHTWCCGBTGBEMYEOEJUGXYELOYNOHMSTSJKGVWQYWBKWFOUTZG9TTIUETIUPOUTC9OMQ9NBAHRLPPRHZWBQASAUG9HWFHJJZXNKVSGXRAVBQZDQFIVREMMKQBGLSCZ9UXFTGWUHHRMGTYNLLWNJYRXFYBYDCXOUNFOXGTMUTCYYXNEDYQCVOARFVFSA9IGXZQDPTWXZKMQDKHAJQA9X9LWNGXCCUIUVQRY9PGCAYEAK9XJMQDUMVJ9GWLMWPKGTIKARDASMPHYCVICSU9RB9ELOIIGGVCRNQNMWWHYKUX9IARFYMDUVOFBPPJONWRBK9PS9OMKJJCXGTXMUI9MDSIMYHUSOWDTAXOTPAPNKKQNCWQGMZNUFIJOIUHFW9UBPKNDPNOZG9GISAPGCEYCSHHJXPWQXDPCOOIATLNVDVOCPMQGUG9JKRDHTWEYZIVDYVNJJWWSV9PBBEBAMFEDNWJZHLGSITAVCTROZJLBUZPGQMUYXMDRXXDSYCFYLXQVRFUQKBJTCGBFJENFNEBFDEETUKRH9YJJWYIMEYTATCFXAPRJOLRSNHSRGD9EJWGOIXIHRAHSDNNSZPUHKNJRVDOUKXRSPBVTUSWGHBECWLYMBTJHG999RKNYRNSTQFHKMSFOPOUCEKEPZBYSRCAMRACCLBZYRRXQISVDSTETOAPYSFKHEVLI9BUZNWCPT9RBKNGVELZXPJWBDKATRHFUUBHXUGPBCVGTP9QPZXAICRIOVPXHMJCYLNJCNE99FRSOSSEWDOGCBBXBXDNSVSHXFXDGEDHAKZDNLDKO9SGBLIFGHY9ZSHYNRCIVSCJUIVAUBK9WVT9ZSZXMOXMUAETPDWDQIRBSYASDYIDYH9OODRNDJCFZGCHFNEQY9OWWK9KPUSYIYLPHT9IZKOJGNAQCCXT9OWCBSDHOSAEMYJHEKCXQGNLRTFOZDUX9JEHHOIGTAMWHDSGCGZEYLQYSFUTZEIQMCKRALIBBHFPCXSPVJDRSXPT9NSVFHOESESLMRZXEVVGRGPGUKNSJBOMOLLBSPCSSXZVVIHKYTKG9TSB9HWMGKKDQLUQPOIAVRSAN9TDPMJ9PIW9FVOAGIEMVYREJDHGRRKKTKUBFCERFCJVYWCUMPCXXVZTRNRNDAUMYUVAMPGXVJAYMWXVYXCSUZHXEXLZIMPTYUUTGAUGIFQVIWYSHMXAVLLAZYUOUXZKIIXMZZJQB9FMUGGMIVYJYNWJPUOMCLRGTPNIHEKRCCGLEMLKNDFMGWGGNTTJWJMJZMXWQMZMPHWQEZJUIGPSPOMTURHVXIDKZUXRF9RBOXQROQYJP9KVXRGJWHEIMSFZUXAOXHVDFBWQSU9ASNPUCFYLLMTIERVVESALLIBVDSYH9KFMCUTYVUXOZACOENE", ), ( "GYWHCDMUIBOFMJTHRDQJQHEXPWNNLMBRMNP9WWQQ9FJQAEWWFDZPRQDNMIYXYPDFRSJVATBMGOPYQXZL9", "UTVYWUXRYLOU9HCZALSEH9N9MLYNVNAHGYHQMQOTRBN9GUYNAT9IUGRKHOCUSGUEJLPPI9ZAQTAPYGMEWUWTXVDBGSXKXDKGOQXCAJKMPCDUGJXVTMDBSZTIXJHAPPYYZV9COFLKLVQZSPM9RFWZZKXRTNYHKRVOEDZDFABCGMYGERKKC9QLEJVWEVTNBVLYCFQYMLVCEYFWZGCQKLZARUITWKKAPLZHDICKNEXGJWLGBBHBTLWMZLBXKKO9DFSEMJTOWYHDLO9TSMAPUQUTKXPDYPDFMMLZDSPP9VEJUARDQOZCWZMONYMXUPSIDRTRADTXSHEAC99IIWIQBOPATNUI9QCAMAUDJDAXAPJLJ9BSDLVCGTLZM9BMCNOJYFUBLQNSAKKSOHQMDAOHHVSQWHFZWRYZ9GLEGGDDILKZQFELKLYGZUISBSLJFDJNVYNXIFI9ZWLNLNDZXYOV9MCLVKZZYMTNRKGDGZYICYADMZFOEILZPHGPIFCWNATHNKS9KJXVPNBJKPCZAQ9BTHQIVUNQNVMBJDXBZGYILGGKXXCWOZYRWCQKPMCBXGWEU9HTJWQESOSTNJWAINOBCLBV9KS9DXLWVRARPIBOXDGUWGELU9E9CEKBWOYLSCSMUHJEMLUUGTXXINHFKEWKYWERTDYFHABWGDVDBULGKO9JCTOZHY9TAUGYPRQUGGAFMFXB9TDBCZXCIXEHXBDPEAQPIBNPAFZNMTBXXUR9VTWVYHLWZRIKWFSPLHLURCIEWP9YUITOTOJBGYWHKTOBOUEHUEIDTKMIKXCIRMCAQUBDTAQRVBCMKFUDHQV9ZFYHJNUWNKECCPGDVSQALJL9KMGTABFJBJSQCWWKVVUJXEHXGTNFUARSBFQMOS9LAUDRXXAKASMRKIDGMCDOVSCNKQNLMYXS9UXTTKQXDBFSO9METVWSLZCPWOYKQP9JDSICQNZQLCZLMKZPSYPBGBNUAHOCWTJSGIGIRTKMJC9XGWTAJAYDBYXOBNSOOJPGQZYLASCSUXDDEAKSXOFHNCRXKZTFETLJVTNAYFPFBLNMN9CEUDNDQYZMOAEFJNCKPZAHKPEYXPDSNC9BQPVZNGXSZO9XW9UVEJRKXZKZVHBLSQOKBUCHTDXMUVERJUBWNTIVGJGAPTZGLCECMEAAVTPASVZKXIIWAXURYRZTCDSDNOTKACBNKDHDNGXVUHOQRHIVFCWFNUSPSYEWQGSHEQCUKFOXMEBOJZYXTPJH9QNQNVSYWQUFKT9LSKNCGZBQCHKXSJIJLNAXGIHMMNVWAZOAPJPETRGIOCT9ZBRIFSBDPXQW9WZTFLEBLAVBWAGRHCBSOFMI9JBRZRFLGTNPWRTPXU9CNYGWFUADTPLJCGGYBRBTG9JWUCHMPDBIXRLUXZQNHRLLOSDZYQHIPKQVZTVCQAOVLVRSNDY9YVMBBJMNCAK9FONINUSEPDXEXCVDDNDNJYUJVJLBYQXEFKUADAFRXOXZVXIORIRWEZWYFSCDAWWJQIZTMFUXQVUOIFCYWGXWFHYMFIXPTNYRRJGFAKK9LDZRULVCAGGVNOEAQGQJDMZPXQPWJDAAZAQPPAJDIATA9KIYVNXPLQFDFDLGYUETKGJDMTFIVYDREHPZBJHZAMNWHLMCBPSMYEIEHVAUTOGOBYDAQEDRBTLTGB9NGCIFYVVHXCIHJSUQTOTKXUFBDGYEIJL9FSFQPPV9HCCA9SGWFGKWQIDYRSS9XYWAMVV99OO9LPMT9YBBFSCILDHLELYRXCXDFCYMMDKPNXEZICUEWXVWOHBCPGATDHWRKHSNQYE9WWSNZMDWTUKFJZHMMGTQRWBCQKVSVMRBNUIPGQHKRKIEPJKOEUXMKHMRFCZMZSSOCPM9VZRTEIWBZZAT9JSYXIDOISBMMKXJWQRSTB9ZSYBIIGLVJYN9AEAJHIETTVRINBJWZXRBICPHGEDLUUCX9ULPBLFHSRI9GEWUYS9ULISTTKGWZMJUYBIGPPVWONUICOGQQBDOJPLCXPGTJRFBWDUAZSZEAJCZTVDKHNMSMPUVSEYFDOXGTCBBRIEMLFKIBOCD9ZFEXNFBCWNWNGQOXMMNXIMNKULQKMADPYDY99BOTU99PMJCTWKCTAGPDFGAZUEWCFEWYSYGNKGDKJDENSLAQKHFPLJHBQMWOWWMHDQFFACBASKYOSC", "LFPVMJUTDSYWJTNQUNGXOODHDLIXGIPRBXRZATRSDAPNVTMZLJUVGINDTJT9WDUPVQNSSTHXVDICZUAJPOWELGMKSCEGURLNCZYSBQTCNEXLMNUCXCK9LSGZPHAMZPBHG9PQBAEWUHZJMWNF9NSZMLRLSBSBVUZYUQSLTNRDRPWIZWYESPWKEIYRKDPXEDEDRQDZSVEMYPJVATW9VGJBDBICZBXDUTUFMQGLFRTKGRTNDJAOSAWZLNIIEVZWNPYXZQWANEHNZVFPWJZSIKSTRJRUISFSEZXZBQYPIZYDFEPWLLJTSVADASWBLILW9ZRFE9TOZ9JXCHSGZPIPUNJQCA9AYPVWLS9UVK9TATMQXMH9DMXXKL99VVNJDGACOCBBHHOHCZZLOYCKEXGVPIF9CLYKOWSLCRNKOKHKFBROOA9SOB9OCEHGZEPQYOJPWSULYFMBTTBKKRHWYPTCBQAUHHDGETGYGPJETMRBPMWVEBNTVSMQFPRPTWPQPWZYPAITYSCXTOICOQTDYPINBZGV9QVWSEJPJTAQAZYDECWJKYZWYFQKPC9YBIUMHZ9DHELUOV9MOROBZBT9EEI9BCGIDRGWGZBAPGFWJSYDNGJTLSD9GMJQKTGJCQWOJPAUROXG9H9ESVPQAUOEXXKSXLEGLDAAKODSVMWUHNWTZZXZQQSMQZAZTBACMEGBAPZHNEXAIVGURGGGSRXFEVAMQQJORWZHZOTFHANGNECLUILGZPSOMKSFRKWUSLGQFOVJSBIKPLGRHAMYRJXY9UOMXBWYFQCLKEHVEZLPKFXRIKBIOJRTSSSX9NWXAVCXJGFUBZXPUBRNMVQIXWEVYNHQDNT9RDAXSLXUU9AQRKWBDMJQLDPJVVBCCSQOAMVOQW9ABIVGGFMJWCHUBNIBTTOJGN9DKSEGXDYLIADZDMESDRVMQYLUYRVUKWXEGSWNIDTDGBVGHKYFIE9ZABDABSIRSQYQNYKCERSV9YIEMIGSEEVARRKMLPOERFSZOCLKGNMFBGHJTIWLSJKDRJIOC9IFNHNPTT9NUEU9SPMSAIOSTWJJSOWDSTCWBYIJKHRPEZWRYF9UVUIZNSVJF9KOY9OWROPHJRVWZSBXODQFWASBYEUBBJKGQPDF9RJO9PXDVQACPD9GQWFFZHWDGQJLPKHHSK9WPGWR9HCEDATSKIWZMDBKSZBDHFUFDIBEFOMPBQXTSAHWOPDJVMREQRT9BWZASMVONGRUTMYOHPFHAKLMDSRCATPQKNGNXWCHXE9CZZUOGOPEPIUJLJDVEEGLDRQKNFCAQQNKTZXWKFBGJCRAVMGWYZRUKNGJNRHWWESWP9JIUEPQI9KXMYFJJ9TPXSXSZXG9JJ9CGVRWT9B9DVKAXHI9XEELZBH9GVXWHACLVTRVBZDORMQJJANOUDWDVDE9YVLK9NTSMYXTRNDBNPPSZGKKEDVLQHIXNXOSNJTAVEUO9MECDKFLWASPXBHSIVKDROUXJWBOQEOPIRIWROSUWFQTT9ND9OAX9UBNHUVMHISJQVHSGPLLUJ9VAGEDJENM9GTPZABZSACSDBPMGAKTYXGQZTYYVAAPFMSSBBDJUEBMEVIEOWAWQGMPVU9RDBGPKPNAGJEYUCM9CII9DRKRHTXYZWC99UNPYZMZUJJN9YOLEPTGWQHKYUBIATWGFODBB9VEAARHEOINPXMXCNBFSHDESNTAXJSIDJKHJPZUQQFXHTDLBCQTHOKFBXGOLSXZLETHMBMMN9UHYSBVDLVJGEWGJUHK9HMXFQWIBDZNHMPAUXOEOWSJWFWAGNEVITFKB9TWC9GOGWDMJPNYLKOQCNVUTKPBUPA9TLDRKJVVFMLLDIDMVZLOOOUVNUJPGU9AJNYXOQOFUOIORGUSOOMUBJCTPNTSYYWICUMFBAYSFG9MFUKIQGKYNJCVWHDTZJKQIPZISPMZB9KVRHPGZCRFWI9R9GZDTLIPRCPHWETCYHZDGRLSDIBSUMPRDDTIFYCMSCMIFUQX99BEQCWQRWTVEIGKOH9QFEHHYKZZKRXLFXOADLZZDOCYNTXFMUDGWP9VHONVAUF9GFERTAADZVUVILCGSGQPJJHFCIENHUZVKHLJMHMCE9BRRTSXWOMWZOZCE9EMJGAXXOIZJJAWBKADWAWXWLWDRXNTUJBLEXRYNX9FHQNQOWYIWTFKFTM", "SLTNRDRPWIZWYESPWKEIYRKDPXEDEDRQDZSVEMYPJVATW9VGJBDBICZBXDUTUFMQGLFRTKGRTNDJAOSAWLYKOWSLCRNKOKHKFBROOA9SOB9OCEHGZEPQYOJPWSULYFMBTTBKKRHWYPTCBQAUHHDGETGYGPJETMRBPMAUOEXXKSXLEGLDAAKODSVMWUHNWTZZXZQQSMQZAZTBACMEGBAPZHNEXAIVGURGGGSRXFEVAMQQJORWZHZABIVGGFMJWCHUBNIBTTOJGN9DKSEGXDYLIADZDMESDRVMQYLUYRVUKWXEGSWNIDTDGBVGHKYFIE9ZABDADF9RJO9PXDVQACPD9GQWFFZHWDGQJLPKHHSK9WPGWR9HCEDATSKIWZMDBKSZBDHFUFDIBEFOMPBQXTSAHVKAXHI9XEELZBH9GVXWHACLVTRVBZDORMQJJANOUDWDVDE9YVLK9NTSMYXTRNDBNPPSZGKKEDVLQHIXNXGJEYUCM9CII9DRKRHTXYZWC99UNPYZMZUJJN9YOLEPTGWQHKYUBIATWGFODBB9VEAARHEOINPXMXCNBFSVNUJPGU9AJNYXOQOFUOIORGUSOOMUBJCTPNTSYYWICUMFBAYSFG9MFUKIQGKYNJCVWHDTZJKQIPZISPMZLJMHMCE9BRRTSXWOMWZOZCE9EMJGAXXOIZJJAWBKADWAWXWLWDRXNTUJBLEXRYNX9FHQNQOWYIWTFKFTMSN9NZHKWRRM99V9RSULELPTCRZYLUGJMIWFSRSFFVUUOZCSRDYWYUWAMUMKICLXWL9DGKVERMVNDDWZGK9NWZZKIDMMSNALHIDCLZYWGH9FGFMROYVFOORGEZBWU9EZQUYONQMMZQXWEWCOJVBIBNFSXDSKXOZMHAVCPVCBTV9VHZSFCRRKOELNZZHBGOABULOFGXXRIQTSOAQIJWWUUPAMQFZJXBWHHDXPQRJWWYTEOSVWNHPSZLTPHEOFMCEMBFYAPJJNEKVDIQYKAKSBBCZOVCCJGCJSQLJBWWIWCRHWKPF9ZBKGLSRFJLGQWNNTWCSPSV9BDAHMNFGRHBBKXSVPYOAQFWPJBINPCMONBALTFNWBNJYMGLFMLFWGB9IIOUSBZHXVCUBCAEXJXNQTUGLWYKRGRYHNWTJBJFSAXGAAWVGJYSCCOAS9XECTPBSTKWAKXFGHVZXILMOICBZHOCPVDCUHJUWN9NIH9B9PJRYLGSVEAAZGZS9ODHG9JT9XEZZQOTMHFEAKUBLLIEKKFZTSLAXUZJQEXTHJDZPDTAQJR9LQCVVAGDPGIVNUGOKRDZ99NJWKJSPSCVJCYBUHLQDLL9CXGEMPKOJY9QICEKFFEKKJEFDGP99MFCRAXIXFUDJZAYOOLKUMOZFBTPHLUBZHDVJRPLVDFBGBTSQOFYXKTPCJPSKJGFOLXBJJQNLPSIIXAFNHCTWFLQFUODWOHJQJPLNDRFMBWUZHCBCWSZEPUQVRENZQ9BVGKRQBGFIYFIRARETQICPHYWUBAJYZMDMSCSRDQLEWVYYCFUZNCXJRSPKPHFNBTISVIPPWHMSIKQHOSCQMZUHKM9NGBZPIJVIAEPVRCVMSNBVTPRYFNQEGHMEHHYNUZCVQHQRWRIO99XBTKR9ITT9YOXSSDLVZX9FUZGW9IMVEOIZBCTHMFVEMXCEQKTAVJID9N9A9KGJIWR9TR9JVFUHLMMTINXLNMWNQGOAWTVQHINMKUPIJEDWXXBKUETLATWL9BLJ9UPVFUSUMTAOEZXQIGGFPY9IGMIJYOZYLOBFGFRKMWHMTNAVSYJWDSPIRYICXRLZGNAISVNRGG9IIOIOBAWIHWKQISYQAKVGBXUBDPALEIEHQSSENTGJIVFEQECUBYVONVGREFKTHCNBNRGNFULLVKMWBBUTAQAZWQPLRFLDMXDNESEBAIUEQ9N9VHTBRTDUEOZQLBBYAWLGRAQUIKUJVKMMAJPBQLBVODHFHPHIATZHS9VQSOHICWEZJQKHXJXZRAXQRYHKEPEZLMXRYLDCRFPSALGPDGSEHMOPQM9UKIRTAMVYAZMKUKXEDIIXADPHBWPWKOJAOKVVYIJPRQASFFYGUNMISRCUIQELMI9HHDEKMSSGQLDKD9NANMMMNCTDFFJQNDXZIUQM9KTMLLHRKYNICRJPQLYZWIUKPQYLLGTEHLKHPLRDOMWU", ), ( "PGPSLKIOBGPHAXVN9TKUYMORDMASZEMHWTWLKIRSQRWBWBFXUDQWWXNSFTJCARTCBFKVWFKUXBWRMQOTM", "DATCPNNDZCELMZCQHRFIPFTADMSTT9TIIHYPLFOMXFBWAGMOOYIFYGCVKQUJXBNDXWHPIOAOKHWPBGJ99JARBYFQXBUMC9YRJUXSXRPPFBWPASBQRIHRTAKLYUCFAACFGOHYLYZMFJIXYUAMYVMGBKFZJIHBLKUDGCXXHPZITDNSZYVMUMQK9EQSZLTWGAMYWIBCBOBOXRUIPZBAYAACCPQNMPAXBGOTGEOQHDRTGBZZE9PWCGXHKFYZGWBIYNDIVO9KVECFANMYMAEELK9MPXQSWFBJVBOIKQWSRUMGBAFREZQKZULA9ACKIURZYZRXME9BEPOGNEMWYDTFQRPWQFGFRZQCDOAZNWMNWQY9UVYSSYEVOB9DG9ETQFIVRTHIUE9LQLCIGDDAKSOOKOOSZLUVCRTHEQBCAXKCHGOAXNUVQNBMKZQUYTJMHYSX9EQLLWWDHLOXNKDDAHYIHTQEVXXVKSWDSOPKCSCQEB9SDHCYEEQDHPBXVMHKNDQTZAHXMEEZCAZEYHISYXAKPRXKHRAACREAZYBFKEJWIXYQRZSR9WSRVRUOAGWUYOHPQYCYVDDZWOLPGBKBOIZVHJVNQRCLIV9HI9GTLGOBCN9DIVVBZULKNXMVDCBOQKRPKMEPVOGUS9GBRWOITNSNOFTLXWVAEPVNTKNLRRZT9BNQYHLMXOTQFJSERNHJY9IWMXYLMQHLTFTOSXGEKMQH9IZGCXIYABRJZWQWVZUNHIGBVJAVJOA9WHFDBDIIHWULDESFAUDECCQMVNUOFDVM9LPHWLJCUSPXQHO9YBTSPCGIMDNQXEXBFNUWZKTPMDJWMAIWLGLGTLXYHKFQXXTYZ9JXDYVNN9OBPESHVTNOAEILHFXI9CLAMOEH9YVPEGAKAQAVMATAOLWNOEFWQAL9BDOOJWYVVIAHCHZKGKARPISSAABWVHENWLWUKAKCRTNREQUWHAKJXJLTEXMAWWGMPRYZTJ9OEGFMTQAXLAHQYOGJHMIXRMNTFDMGERHBOQYYFNSFLHVOKKLLTYRJEPSJBCXWOOGKYAFLAXQOJO9TOA9OPWLCDYKXYMWHPNIHZQBVQAWMXFWWXWZGC9OBFPNTSQHVZNLTJFYZ9VLHBHVDIQKPC9GKPZFYVMJLHOTYOWZETLAKBNPBZKRA9VGYSAO9NFKCPFGFYW9PK9YEJSODXJBBMVIO9SDELTHDEUUJ9KB9Q9WTKMHZUNYPFNKKJMDFRCWMUYFQAQUGXIUTRXXWJTJOIQFCZXUUJWFGJCMMCTEOKWSOBSCZSBHJZOVAVXOWZUHZXADN9NCVRNVJAIONTOCJNT9LNWIJOSPQSABIBGSXDJJLX9JJIBTTIRCFTAKVEYHAAGOXPGQOP9LVYKZVLIQVVTYINTW9YLP9ABLXJAJBOPCBBWEVRLBOFZMKGJVPVHSVIZ9NIQFTXP9YBT9UNRKTPNNBJFIQWWWZWCLDVCMZSWHLVF9ILLYMXDDHDSNDAZWQUNSXLWEBNZAQLPCOEKUKWZIUSGEFDCRUNXFA9ADKDVZCVGCD9JQGXYFBI9OFBHYXHOHGWCYNQPYIVHUNOWMCBK9OALDWJHXSAKQBDBZEGTSBXEZYVPEJJKMOOYWADALDXZSCXKGGMFCFRCWVHSATCZUGFKJ9SSEUUQ9OYDNLMWXQFAGC9E9A9RIPZUXCKIRANWDCIVV9VRTMUBITXKFZQKYVACEHPZUYKQHEVAJKPKKRTVFJVDSZTPEDVDZIDRFGTZWGGJAJBFJTVJRXANJ9DHEGWAPH9POUBWMHBTXEQMJISDXIWXFGQAOARIYFVSWWVYTTQDNQCSDYKIRRCVDXDKBEIGBHOXRVFE9ZKRXUCDVPSYNKHNAGFZBVMDLLCEMYCYSRZKNMDKBOTBGRWOFYHGJ9IUFCLIRMUONIBHPIWOSGBQYHGDAPOHOZXNWKOANZWHLWPRKJKSZQJWHXW9VXFWCECDINGDCSD9GHNLCDUAZQGLGJOBEFJISZFTNTHVGRZCY9TSJSVRNZHT9GSEJHWZIGYETENKFJLVJYWFYROMKXUYGTELBCINMOENDEBPKWTJHUWAEKZMAWN9GLKMPMJWLGKUASQQVCECYGW9UNJYO9Q9WZ9PDAWEINFVLUVZSIXQYW9QHDKELATCTOGVZWEYBIYWDFQKSWALUIPUZ9ZAWWNSQBQNSA9UX", "WNIFGGZPPVLRLIXJVHWSZFHMZSAQJVFKNPNJHPJGSEOQEKPBLNWMREHFL9V9YDYJLAVAVZKWNBHKMZAYTTPLBIFYNXQUIU9ARBWJMOUNNOQHCJO99RTKYROAHICVAEUSSGJWPXGDBMI9STSKGNWMFA9FNKBTYZSRBNNEESEQMNJJMIQEXKLIBOCMJYHAMELCKTAVCCCFHCUYOYKHYCCBGGMCWURNSYWVBTMMXUAJHGUPCEREEMJKPG9INBVAUF9WMGSXAVGUOFVPQGCLNNQFVBXAL9AGOPUNOOUFBSNIXSNQIRSBITI99HEITT9VSTQFVJCNORQBUCEECLDAHHTPGDXEU9GRAS9LDKOKOTSDLOCGOS9VJSWINPJZWWQOEALTELOJQSHZHTWUYPFLJQDIKJTHKOTCDUEIW9KRFWLBVHKVKSHDGDSLD9VZHACYVPBMGDIYYOOGEQXLMSRRCEMCRAWNKJVCQULNEBQHCSUFDDYA9YZG9HRFSTGAKTGZM9LXHSZIPMKZDHIU9UZKJWVKZVAQHNLHTPV99GFSMAORHFOZPLBRLAVKRZGTWQZHTBHTNBLYWTVX9XVCAMANNDYWJSW9AUTLLIMARE9ZSURSJRRIVAXXAKOMNRIAKWWMS9DJGXKUXFCSDNFLNRWGRJXPAQDSELYDPLAHWKBAMGTCNYKLIIESCBGRE9GXJMWLEIMAOVFDSSVDUUZZTDGQLZDXHUZOIUWEJSTLQLMZMLICFDMIUPITVCLIMNDHWVCDFQOFHI9GPIYUINVAIUVG9RHVQWBMTNRFDDWSYUMSCLRLWLUYZWOWJIYT9ZOMLOQMEQIWQXHYMGXPOZEUDHZJNENUHNYZOOLOJNYIPYPZFBTVGSFPWHNYUNGVDYHFINKUZPPWIMJBMEUMGELGGGRU9HVQOVUPTJC99QXKPJLXQUG9FCALZ9NHOVADCHZWWRLAOKA9BZZQUNYSZYEOHOBPLCMHAMEGRBEESTEB9XSAKLFCWVWDINNHPDYIXBESQBVRVZFYSJNIVWAOHFGSOZZHOJSECMMYXYAWSAWUSAZLDDHNLPQLAXHNUNJCARRTZBB99LWFSOMVHOR9NNKWPCLCJPDHXNLTXIZNSQDZPMCVNZPIL9KDOINRJKTM9LDCIJJMQANDNXBNMCQSGSONJIVPNFIVALHWGIKFXWHIVOFZNLQCGEYUFJGTAQMZIEPWRAKKEKWHNATFZXE9CARBBMGIAYHGWRMQLIFGUZDKYDMQN9VTEPBWMCPWHBVAXHULDBTIYRETPQFIPGGWFABZRTEB9NWRKJTEZUZ9QADUCBEJLSKEOSIJGLPDJ9BUSZAFBKALWGTTUPGUHYUKEUYZGPYEBF99OAFVIEWPADRXFXORWRQ9GOJEEKTKVEPLZDPCVDEQMZFPTHQTOCROSFLJDXPFQHPSEJWDABZF9GEFEOMIVKFIAOXCU9BXBLLC9IPQ9CJCLSMTRANQVADZIIKGDJLMYJXQZ9JSLUKKEXWGKS9CNUKZKCUAIEJEXYJ9DXRXHSARGKRDGRSBHXNLDZMOIEYBBUQBLYRAHNBJNQIJIQTILZWY9NNLRDCRMCO9VL9ZWMFMQWBVKISHCMSKFPNGAAKSPZBQGFWWQAXWTFRIIQXJRUIZKWNQPUAYAUBBK9QCSFUDPQESYMYPSDSSGEWBFHXVDABIDBJZJMYPIAHDHNPVKWWBSEHVQBPSTPTVDMLTPWR9MBPSVCWGLZPMTWSWLR9DDEDTCWRKMBFXFRP9H9TAXPQQKGWZB9MWMCEFSQXNCRFDGSOXGFSNRCDCD9RFEESR9PUGSATLAVMRAUIBLAOUTMEDN9KDUSIFAYRMVIEHKKJNXLXRRK9FEJHOXVSILBVQMDILRQWSFIZZAUO9RABHLPXLFOYUJKWTX9WVDFSG9YEHSGEBMNPIFRUAUA9OEZLZVQNLJIH9FQYETGMEIKURHRSVJTIYEZJ9YOED9TLJCOGDFPTCQUTWVJUGUXABHEQVZFNMWP9CIKKQU9EAZGPAMYONDGJKYNDBMOJWSFPNZ99DBQJIKDWUOJZXAHKCXZZGXABTRYNWVXITJUQTOVECDT9RWBJAVAVDZYCIEJZFPIEIYGKUC9RMHYFPIWXSNTRL9VKJV9CHKNLRIAQJNYYATOFMI9GUTVRULYZVU9NXASFHUGYURRVJKCZMJEX", "NEESEQMNJJMIQEXKLIBOCMJYHAMELCKTAVCCCFHCUYOYKHYCCBGGMCWURNSYWVBTMMXUAJHGUPCEREEMJJTHKOTCDUEIW9KRFWLBVHKVKSHDGDSLD9VZHACYVPBMGDIYYOOGEQXLMSRRCEMCRAWNKJVCQULNEBQHCSDNFLNRWGRJXPAQDSELYDPLAHWKBAMGTCNYKLIIESCBGRE9GXJMWLEIMAOVFDSSVDUUZZTDGQLZDXHUZOIUZPPWIMJBMEUMGELGGGRU9HVQOVUPTJC99QXKPJLXQUG9FCALZ9NHOVADCHZWWRLAOKA9BZZQUNYSZYEONRJKTM9LDCIJJMQANDNXBNMCQSGSONJIVPNFIVALHWGIKFXWHIVOFZNLQCGEYUFJGTAQMZIEPWRAKKEKWXORWRQ9GOJEEKTKVEPLZDPCVDEQMZFPTHQTOCROSFLJDXPFQHPSEJWDABZF9GEFEOMIVKFIAOXCU9BXBLGFWWQAXWTFRIIQXJRUIZKWNQPUAYAUBBK9QCSFUDPQESYMYPSDSSGEWBFHXVDABIDBJZJMYPIAHDHNPVKOXVSILBVQMDILRQWSFIZZAUO9RABHLPXLFOYUJKWTX9WVDFSG9YEHSGEBMNPIFRUAUA9OEZLZVQNLJIH9EIYGKUC9RMHYFPIWXSNTRL9VKJV9CHKNLRIAQJNYYATOFMI9GUTVRULYZVU9NXASFHUGYURRVJKCZMJEXWEZXDSIBNLTRVUPHDVKIBTBWL9WMBEQWGFLMHN9XZXAYJQFOCLWEBPDXMWQWFYXM9INAPLDTCKUGJLEOHTWJMCNJZZUOMAMMWDKHJIDLKECBGHW9KV9MEPTZXLIHSMSPQRAOFIZYLGOMTLEFZFMSCXJPMBOMUUYOQBMUWVESTQOQIOLJOORHIDQNZRKBBMXMJAOIMSLWRSZXGUEVVEZ9ZKHYTSMGJTNBKPZJPDUMUZHQLKGSZ99XQJDYBSAQU9HQODPWO9GMJYWEVQSSJHKXGGAZAWDAYTWDVKWJVFWMMEXYNGCDRKRQCOOCTKNVIKTXZNINVIWYETUMSBSUQTWHUFYMSBYGMKONQUVMWMBGKBWHQXCWVIVFQKVJSXN9ASNBRWYEQMDQSFIBDINTTRMJAWTUOUTXTFFHENBRETONWJEYWSFPHIVJICQMCGAYM9WFVKSPNUICOVDOVYHGOYTDOOBWSGZZAMNEIWJWXNVKMWBEPLS9REA9UHBOHDTPIXWZDUOIXWFYONVPDKMFXEIDUSMTAFN9PRR99UPC9J9UAYASXYCLPQU9GM9OSBXUE9EHIMRWVKXSDILWGVCXSWSBMHHHGNVXXWEM9HTCTVFZGLXF9CRDFBQCZBTFCJFKBKVSSVZVV9WCTTFL9RRNAETYOHKJZEGFIINLRKOMRYRNJJAZKDVZFXSRXRVAOMHHOJH9QMYVIRMY99JJKJFSCUQSBIAFWJXMIOECCVLGNQEFTIDGICVNJGEIEZXPYILTWKZRJWURHEIVMXDZJJXRQPJYWJMXUPOFJMNBUDILYKHPML9SQSAVIUPU9KBTBDMVAPMXKXALLAYSFHJMLKANXMBIQWRCZYLGVNH9DTE9ZJMMAEPKSBKVJFEEBGJWNMAEWZVZNUNYRNKWSZRCBCJHWPYNF99H9KFNXIUGEKJKGOEWARDHKADEICAOROJ9XCCRNQVWDPHITGMXIMYKEPGIPQAZDXFPIBCONOKULEDDN9DUAEQIJRDNMOERWPSVXJDFW9PZPC9WLRRNVUFAXOLKCNXGTTIN9XQFHPTZLRSKCYJMWPXNSFLSHVI9ZNQLXWILDPKTIBXSKEXMCTCGPLTYCDDPNANHRQHJDWPUSLSRWFUQOTGIY9BB9GEL9RVPHHRVHTOFYKQEWIPPTIWHBQIPOPQDHCETFMVEVKTAOLUYWLXTQJCZDRAZKXWRDSN9UORINDUDCRMZFAVYEU9T9ZNVWCVXTUDURIGQAQASS9GXKKZGABIXN9KKNQNHIOAXYFTUICONRNTYXWVRSYXMPXYNMJPCIRELU9KRJISRUFKZEVYJXFTBMANIYDYNNSJCBWSBKYRAPAMVVHQBUDUCEVOIQUKEPOPUZHVJLSNBEAUVISAADKZKOGYNIFICMDEGFZX9F9TFESBNEMGEFGY9PTSJFRQ9ZYWGW9VFVJWRDEGDEHFHUDQGUNAQUX", ), ( "AKNFORSXSIBTZBDHKIJHSLAFRWVQZORJIS9VENKEWRUXEDFTDOT9XQWRLHXW9CKZWQKOSUUMVMGUFYDQN", "MTMTLDQPMCJOKUHXDJYAXMERBGJZSZ9WGSYNWGTCVHOQXTEZAZRCUDNMXZURPAMZXGNOSA9APZGSXNDBDKMNGLLF9MCKNIIFJDDY9ZUYJIABITVMEJABQAGTFHGWUZZAIHUAFUVACRYXPJIGGDFLHGTKZKNQAVNTDBWEFPXCRRTKYEC9KCLSTFPISBQ9CEZDOODSSIXFARXTWCUBDSFT9NBKCAMWNLBWBVXRRNMMWAAKLYVVIFAIORZZODVL9NIQCYKZ9LZ9SXWLOFPQHUPPYVNUZLJANVK9NVXWGROLDLWFGNSPTODAYZKBAAQELI9XHXNDVIXOYFXNIWOERIEFOQGYFGUAFEWRHA9NRWTEPBIUCRTSJWLDHZTZJTPTYOQGJUITSMYGJKSMNQOEIKVQDYEUPXEGIGAXIXLAARSCURNMTEHL9LSFMZXQGHLUATARUEYWYDVHSMYANFBYZACYKTBPJUJKK9MBXGYWUDUVNEWGIUAZGFDAQYTDZSDNWPAHE9FLVFNYBYMFAWPGWEKEDKUSA9MPUFTLRTMRRSDJCYVPULBGMMUAXXDXFKDMWJCSZJFDEQHJXMZWSQVEXELS9JME99QG9XUFVPBMARLRFBCAMMEGTQHCWOPVLZHEVVBJKVHHCYGCAVFUPBCJTIPVMQKCQVDKBDYVTTBDOHGSZMSPBWQJ9VVP9BBOTZ9WS9IZPXJGWMLPZXOKH9HAQUZLSEZXDHYEWKSVANYO9DSJPPBQVHRTRGKDVZZGDGSGZBSYSHFHYMTNH9YFRZOLQWMASNXYLCINIZZBIMMCUTHRHCCSFPZFLQMQSBKDWLCIADJUZBPSNFUSHPEB9IVWKNFVBDLOLMFWMEWUJJLKCNRGNXSZBAFCVNHEJVOUJ9CSX9ERMRGPKVQBFXKTCGTMLYH9FZQVQUSRUHV99KYIVT9KUFFGHAP9XIXQCMXH9ZF9QISCHDLKBTUMRYFWJVPESUGKMUANZHSOWBF9TDXFWH9IBGOAQZNAEDNFQXUGBTQY9WARAPXTSHAXIMQMGBSLEPHKUPSSJJXDYUQMEOPXDC9JAVSAORVCHIRYORBLJAD9IFWEAOAZHXVYAJDACQAVAHJKRRDKLHRFDFDEVSTIGFDHGTXVJDBQDM99DXHOLHESXENKZCWD9SSELIBQNJRIZCFZ9XAL9JUONAUDLOCSPHP9BRFFDNO9RTOQB9QVREIFJHCKNSFPLXK9PJBBCU9KLJH9SPMY9CUUUXEYLLAYSJKEAKBMDIQFBNYTMN9ICZSXCWXEWIDBXZOOHEKMBDVZAAUGTNJXUMEYCOKOWZBLHYBVPR9VNQJVNQUYAGDMPORGUAZTYXHKQTWVYKHLEMJEXKLORQQWOQPZHXHZ9KNZZPILHDUMXSBCB9MKXJJVREVANIHXJDIH9EXMJERRMUOKRZUWHBNRKZVILKTMFBIMNCZWXMBCKIDRSWGFIZSZXTZMFWTFAPMO9OGBCGANGZBFUEZUFUOUBMJZJDSDXQQYUPHIFLMTXHIOHJLFPQQJMCIXGRYIYZXFFWQVHSRWUPVQYAPJNPXCLUCHLULYVPCAQPMPSLZDMXFEFGUVPZHNRMDTAQAQOUNIPJ9N9XFJU9JRJ9UXHNJGEMHQWR9XKLZQXEIZNLKINQIDGJQKAHYTODU9NIDHKZTJLFRWZAZTBPWOYHPQMIAPOJQX9BELBSJCYKGBAWZLOPQRYDKYYZJLKVCBEICJEWLZLKKVJPJHOSVRXNFAINLSSFRBTHYFHX9YAMGUFBDHOUBZHC9FUZGRDMHJZEY9FGTL9ZATNEEPBCXRVSCPNBIZKNQXNPGG9LBJLOYLNGZHHTYECFTPSFORBBNMLSXKQPQXHBCMXUUITWPNPLHZRHI9GLZHUZUAZFBIODTK9LHUI9WMBTAUJGEZAWHLBJCTODBYJCKFDYJFISPCULHZA9HCLLVCUOIYAFCUAVQLFJUAYJ9KCLCCUBYNINPTCPOTZHNJY9TYAHQXZT9PWSGYFWOGLVXIK9SBZHMPRRWZCFVAHLWQSNQQZQDXXDYKGVZLFVYAQRWVBE9HFXO9VBTOCSEQP9KEWLOWWBITG9BP9WRKWNGYFUSGOGKRFBGFSGZY9ZOIKAVFXHVUWUMCEIMDWDRUAWQOZLNXAUJXIRFEBZMGXKVP9NCLBIFLQNWYXHG9QNRIGCMURZX", "JQPWORTYVYHFEK9WCAOCMSTADMFDQLWJAUWREAKKFIODTAZIQZCFBSORLMXCLNPIDYHICZVWKEZMGRHCLUCGGDVSECCY99HOO9KHQM9MLEMEZMSGYUUPOVMZZQRILFSEAXSOCBD9EFCOXDUBLZXSBCOQYTNCOFJVFQQ9TJXVTXFYGCSDRNKERYZNHNWJVNRVRRDIIKAIURYBXASGCMVMCOJ9DWNFDWRWYUYDYADZBSCOSNUYRQBKRKNUKZPKDWZUGIISDWNS9PEUSBSVWPAURSLRDOXKPXBUJQXJRHSKGGGDDJIBMGPOMHVXNUIGPLNWOF9SJBLWADDIOOLTPVYXZSVUOXLYLFQHGCFDGXIZYDMG9PFSXAVOCIZ9IUROMDWPYGWZTRMO9WQWDVPOD9FXVCELPWRHVUSHPXC9UJEHEWWZNNP9BVBYD9BUXCYDDVHILBU9G9APXTXVVXRMQXLTBN9MZHHFPIYJKEPGZFXBQHZUTUEEOJEQCCLSDIIQZDWGEXWMOFDFOWRJAVRUGQFHNHCTKNQFHMMFDWMJCCDFWBMRKHHEBOPXTQTYZQIEQDZHLRCZRZFI9MBUQGBZMZLAAOSIYKNZZGDGYSDZKPQKAOXWKMGBBLDMSHDBJAGEGULUGGNEZGYPIRKKISPEEESRCXSYYGSDCDSWFBRLTQOQEYFUGHRLKJFQLRBGUFUWWL9JJQSMYRPEXOFKFZMKDVEETYCAAIUJBPKSJBHHLBY9RYDZBHWLMWDMSBLTIDUEOARDIABXCYGSBWTOTDBKBFPXHSVEF9ZMJGMZMAXNHDTAKXPJKLLKOMVCMZFXUTUFOSNIPQZCSVWMCUXQWEKIECDOMBBFCRUG9AYJKFXGZDSBVKS99INYZJGECVCMJJEDYCVLPAXMVYYVGSXUSOJRCPU9QGTAATKTWJE9LXOYYZIJLGBIPDSTGCHPWYVGBOYDSNLIQXRUUYVI9NRFALIJTQSDASLPUNANVRFLN9SRQCCKNPXHMVIFDKJRZAJYSDKMMLQGLKAXYRUXHLXUPZZGTLFRPTJFNMAGJBXCEAAUUEVLYMMXTRTPYNZWSEOZPL9QFKBPSIOA9AKB9RRRXNIHLPZQ9MBXSHI9JDLDAFHFKIIDEEURPAGHGEZODWBRI9TJDWQEEZADPCJ9PYUNTRJHEJIDS9NMT9NP9QXRSQTCRNAUSFEXNKWGGGDQVDGTJWNQUF9YHYXQTABFIXFRAUJTYVLKDBLOFDESDWTECEIPSLVNULXWHNBPMZCGRHJOSZZZODRRKRKQHA9YIVGWLJZDQEJTMLZDQUKAWGKSPMTETBIUXLCUSXLSOAIVJXRWVBAJBZFLJXMYEIVIZNXJXAA9SMACGCFTQCQZJWUKRXZFRGLKQQIECDWYGKRDLLUXAAEBCAYJLCBQEXEAKVCVFZRFGGMTFSKSXMRLB9PKY9WJMDOMLKDFFGLON9HMBVANLGHXIKMZZLNVSNBPHPVAQCGXB9FJGDOOJIOVDFLCVPZHVVPMZNNEXDPDPQYXDDDM9VNCTYDMVVMHZLHZEJJJBXD9RFSXVCIOJUDWBAZTZUTTIKLANSGLXVHZYDGHIZRCXAUSP9KQLRCBNZJGIOALOZJVCEBCOIDQYD9ODCWUZUFFMZVURXLSBEGIQVPMWFBOJEKIZLRCFVSUIOMSYFCMPWEVKTLVHRFUSL9DYTDDNXXLPJWWCJOQKVEMIDTZKGF9FUXOYIQHRFXPWPQXDIWZFGFMRJKEKHJLICCQMQUWYTZUVXMCRRWWCPO9UYABYIPDARHRZLMKJCTOSDJHOMIMTCI9JDOTVANYTUVDIGMUYT9ROZDODHAOTFVEPJLRRVQLVHBCMVCKSUBYEFADZJQLNUJ9NBPNYRATVBJUFWNIWYGWXPOUSLKMRQV9XRKMOFWNHPNLGWEERPHNZXFJJKWCX9FEDOWFBGCRARWGOCZGFRPFZIOSJABGSQZNDGQWE9M9VZ9OICSNXTFNFIFCBXXNXX9WKMRXQAOYKPEKJ9P9XXNCXK9OVYKJKOQHFDADOTGZRHGZLD9WUJEWZBDEREGIQIKMMJPFPSPKPTTSBPOAXFCQOWMTVMVLZQUHNDEWCOGRBRIVOCHFQZEG9SZTPICKKPOASXMRUKCXIIHPSWIYKTUKORIUYQA9QFAIYUSAVUWIVDNIFSVTLVGAFO99FS9", "Q9TJXVTXFYGCSDRNKERYZNHNWJVNRVRRDIIKAIURYBXASGCMVMCOJ9DWNFDWRWYUYDYADZBSCOSNUYRQBCELPWRHVUSHPXC9UJEHEWWZNNP9BVBYD9BUXCYDDVHILBU9G9APXTXVVXRMQXLTBN9MZHHFPIYJKEPGZFIRKKISPEEESRCXSYYGSDCDSWFBRLTQOQEYFUGHRLKJFQLRBGUFUWWL9JJQSMYRPEXOFKFZMKDVEETYCAADYCVLPAXMVYYVGSXUSOJRCPU9QGTAATKTWJE9LXOYYZIJLGBIPDSTGCHPWYVGBOYDSNLIQXRUUYVI9NRFGHGEZODWBRI9TJDWQEEZADPCJ9PYUNTRJHEJIDS9NMT9NP9QXRSQTCRNAUSFEXNKWGGGDQVDGTJWNQUF9XZFRGLKQQIECDWYGKRDLLUXAAEBCAYJLCBQEXEAKVCVFZRFGGMTFSKSXMRLB9PKY9WJMDOMLKDFFGLON9OIDQYD9ODCWUZUFFMZVURXLSBEGIQVPMWFBOJEKIZLRCFVSUIOMSYFCMPWEVKTLVHRFUSL9DYTDDNXXLPDZJQLNUJ9NBPNYRATVBJUFWNIWYGWXPOUSLKMRQV9XRKMOFWNHPNLGWEERPHNZXFJJKWCX9FEDOWFBGCRIVOCHFQZEG9SZTPICKKPOASXMRUKCXIIHPSWIYKTUKORIUYQA9QFAIYUSAVUWIVDNIFSVTLVGAFO99FS9GVNCJCXKVUHVWEG9CXI99NCMYAJIH9UQJFYXWTVQDMQFEUDLHQVPEYRQRALTSCWDODYMUXBOFTKHNBWSEOSYYLBBKEGMHTNKATUVTEFHNBXERRRGPONVUR9BGNXOZPBPNDJKAGBP9HTSQIEZMTOMQRDCIUMISENDUPLYUPUKPLZIVJZOKOG9EFBARWKELYNGDOFMQSSZHRKUBIGNHC9BKZFHCWCAVIFOTFMLQTWWRMCPEEDPMOFHGIBTVOVZUWCTTJVFBOYVMGECFBIMUBZRWVBMTMFANUJTSYQRBVNPXITNHJPTSFFBWIRTTXVELZZENVEFJJUJWWAIG9XTTZSFYMBHKCRETUAOOEEHOITVSTPHBZOWOVC9VQBHPMXGPXRPDIDAKOQVYXQHWRJWDHUJRUGYXHXELLSCXJBWCIPTSODMM9KJJFKYGIKQXDUVOWDROSAMMOEMJSIEIZUJQQPR9ISITNOJDEGUBHRSYKVGMHMJIH9AQZCKQFMEMDES9CTIYHZPRLWYHRPUYIYKJWWBNOX9IYTEEXDRSWQBEXASZUTXOMZDEOHMHEDPRLQHP9QWZFRBRWNNWBMHFQWCDCJWRFBFMMAMADPJKEVIMPGUDDNBZQIUHQVQGPDWNNNJNLE9FBQUBS9AXR9MCAPHFUBQWPP9VOUIVTLLE9AIIGCGYVVMYTCNDMNHUXYKRAHVIX9DKUPDWOJEBHCRBYX9ODOMQZMSOSVKGPKL9DQ9ZTDIDKXEYLHXGNYAIASNELUARIWQEQYJNU9AV9XAGPOCB99HYPYUDFYNWYCXSSITBCKYCGGWOUJDMIIONWXRBRXFHLCINGQYBBFYQXINTWYUQSSYHQFUPVFPLJGSKPODRFTNLCKSDNGEJLQOBYANMCLWYQZ9YYKOGKHGJSOLPTWRELXWZIQARQSOVUNDPTMPGGGYYQWSSEIJWIKYENBTZMKTXUGLYYZPIOWOWVOJYSVRZMUASTGADGPFOUJKGPSCS9WCFZSIRMSKLFYQXXOSEWIUSUAOOYSVU9XVFHSAUCWWH9EETUQUV99FSS9FZDARCUPAEUNANSWJXKOTJQJJLEDZTUVCZXHBLEHLOSAKTQMXWLIVNHCCQ9NARHINMILLNXJWJKJYIQKDKEQKMZZQYUYOSLIECSFVDD9MMQQUNOCTXLERWQMGJV9ZFEDTU9TQQSEEBMHMFVHGKWYBXF9ABCZYYKIETMJTDHYBXRNZOJHNKXDHXFEABEUGEBJKFRFRHVPRBOQIBFQCOOZUJSCZSPDZVXXRHTPHMUKFZRXJYJDQZKRJZPQTCVAZBNJKCLFSBKOXUCWYDSGNGTUGLISTLKHDAPCQSQNSKACSHCBNVX9IHDXUXZSTEQ9VYNSFYD9VBPXWHZZZSJYAMRQ9LL9URBLVDNKPZ9N9HGDWBV9KNMCTAISCIBSKECYYWAIFWZAKDEUZ9DOUBPTLSD", ), ]; for test in tests.iter() { match sponge_type { SpongeKind::Kerl => sponge_generic_digest_into::(test.0, test.1), SpongeKind::CurlP27 => sponge_generic_digest_into::(test.0, test.2), SpongeKind::CurlP81 => sponge_generic_digest_into::(test.0, test.3), SpongeKind::UnrolledCurlP81 => sponge_generic_digest_into::(test.0, test.3), } } } #[test] fn kerl_input_243_output_6561() { sponge_input_243_output_6561(SpongeKind::Kerl); } #[test] fn curlp27_input_243_output_6561() { sponge_input_243_output_6561(SpongeKind::CurlP27); } #[test] fn curlp81_input_243_output_6561() { sponge_input_243_output_6561(SpongeKind::CurlP81); sponge_input_243_output_6561(SpongeKind::UnrolledCurlP81); } fn sponge_input_486_output_486(sponge_type: SpongeKind) { let tests = [ ( "G9JYBOMPUXHYHKSNRNMMSSZCSHOFYOYNZRSZMAAYWDYEIMVVOGKPJBVBM9TDPULSFUNMTVXRKFIDOHUXXVYDLFSZYZTWQYTE9SPYYWYTXJYQ9IFGYOLZXWZBKWZN9QOOTBQMWMUBLEWUEEASRHRTNIQWJQNDWRYLCA", "LUCKQVACOGBFYSPPVSSOXJEKNSQQRQKPZC9NXFSMQNRQCGGUL9OHVVKBDSKEQEBKXRNUJSRXYVHJTXBPDWQGNSCDCBAIRHAQCOWZEBSNHIJIGPZQITIBJQ9LNTDIBTCQ9EUWKHFLGFUVGGUWJONK9GBCDUIMAYMMQX", "PVWZZEGXNYLWUOAUJLRWKECSYRTJTTRCARZXUQUYJOYCDKUUZI9DYHILVHSTKKRCLXJMNOQGYFWG9PNFTUGPNONQGH9ZFXKAUDYXXDZKSYQXMYSGAAZIAMYWYJMCNTBT9YVDWG9KGHVTZCMFSXT9VIRWBWFFW9LTUM", "RWCBOLRFANOAYQWXXTFQJYQFAUTEEBSZWTIRSSDREYGCNFRLHQVDZXYXSJKCQFQLJMMRHYAZKRRLQZDKRQXMTYWDGLMZKULKACNDTKENVLFKHHMCCQSHARLQISEHIJPMDKQRFDUNHQBGH9XLMHPBGYWVIONWAVTXHZ", ), ( "JUEZ9TPHLNUZCFDDPMHCGPDKGJWIHNUTCUU9DTXHLQMXVOVTRP9LQBXZZEEFPIWGTMIESQTKONSIKXTYQCCKE9ZEDXUSEFMRWDAQEJRSJAUJYNTPGNJFSUDXKO9MZDDNITYSVB9JS9GH9GJWHPKQONNRSNN9I9GB9W", "ZNRRI9URLIWOKNGWFPGKOLFOXMEHNOJRNDJHNHZSYLHTZJEKOSASCX9YFHROJGETALJJGEVPIYNXHXBYWGGXAXRYQTGIQGHPEOMIAWA9ZGKREQRANYKJCWK9VUJPPKTIZIGMMGENNBHHPVRYNKKNQUHQVKSBDVRTO9", "IKKJLXLIBDSYUWRMBOSQXCFNATRAJCBSUIUJBMRLHXEEPYGYAAGACHNZX9WVZZLULUSQXFPHQBPISYJZVJEHPNEWADCTTKFLSHJZFEVGCNRSL9JWTQZPGRH9XYKXJVZQWOUTDECXCDFKBKIY9PGUGWXNXESCGLIRFW", "CSPXGPMMZ9YIM9XXVXXG9JFXZZ9CIKAWQMAFSD9LPTNUVOCGLDFAEMHQQPFELXXCNKBEECPRZ9LXNMFXGDCZERBAQBZXBEGZC9JYIPCCEMZWCOVXEKFPWXAX9JYSTHBTLJIJSSVWY9ZATCKKVHBEMFMQPCZFSAZEGY", ), ( "KQQC9UAKEFHUUKHRIWLJNSUCUSSKWSXBMGAFRCWIBULFP9BFVDYA9SVWIMJOAYPBVIHFOGKSWSPKLZWIUINOLMOZAPUSJSKQKBFYDULUADLCHPTNAUHXGZZCQBXQHRRUWWOWHTPTGYWXBGZZEYYXZWENJWFGAQDHI9", "FMNEUQIXRFADGTECOKHWUN9CUTRMGXWUCUMKYKFHRVDYPJOJPEPFAJ9PVPLREBWGPPSJUNLUDC9NZAZQAUETYPSWJTEAMSRSPYWHW9NAQVMKX999P9SJJGQPATEMPVUQQCINCVKUCLUIDDXQYGLSRFGUKZUOEQCEPX", "VKQ9WRNZZWJUKVVI9JFOXJUYYGXJLEWCRETOWLNYGRBFVP9JKZFCXWMNJRBRTPIWDLSDQPPLTIQUTXYXY9AVMDXDWKBMRQ99WLCSHXDZFUVKSLPTPYNCSVOBABKMPWHKJGZGRZKLC9PJJEDPVAIAUCXWJGFKNOQWHG", "WWWEGHXFKNBRUFXL9QJPKZMTRMURLDNKERUXUDMLFE9SDQLHXPQNHENNQFUPHYDIMYVDVOKFUOTXIJKPEQR9NTZCNQWBDLKKAPPGGVLXHDDCUT9DXUPULRXXYBMMGWCIJKXPUAWYQNXEFRPL9TRUJPNYFTAORXHZFB", ), ( "WBQNFCYCPCBM9MCEJZIHOTTRJYILOCVLRQLFYTLQM9NEYWRMBVESI9OQKFMAZRIXNVNXGZAVQOOT9KSQXMKYFXDNDJCLAPFWWSKRXCQ9ZNINLYEPHUGTXNMDUP9ETBHJECYSOXZMWWEAEEQIGULIEGVNGEIUQEXTVW", "GVWXIFONJFRXXLQLXQBUHSJDXN9GRAF9XJUCKFCQCBPFVRP9CRZU9XKQLFEWPI9DCSWQJNYCKJDVDLEDCXVVMUTJAMSM9XKXRTY9WJHPPMOD9TEKLOQ9Z9CUGBWKBFMQHHDLAZDHWSTOUOSSZXYWRBOMRZOSXWINOB", "9ZDUTPPVAU9WDZLGJIRPVDQNLYREUHCWSKQXGTICMGBZIVACBBLL9DDJUZRFLD9JSHUJYTIXXDEFJYEXZEXOV9W9IEMEWZYBZLRLVIVRZSXT9PLRAVTUUPHVXOQ9TLVAPGFPATEQLEHFZEMVCOSDMOBDHSOHFMMXGK", "LGKPDRRWBVVE9WEVCSMYCIGEAPHIRKZEDRUCJPRORFUEZSLKYCFXXFCYHTPKLAFZLJVQMHATZZPFDZEYJQWVAAYJFCDITWWUQR9TYFJTR9MBWKOAHDHIHRSRATDSKSMJLPPWVCHAKOWQBHTHJVVEOEEUQTAIMQYNSO", ), ( "MKUGFJCVYPCTCBLWWUHIPQNPFUPCYDQAYWLVXDBLXKLBOZXMWQBHTZVWVDHHUKLESVWVKNJKAMYPYFIMCYPFYUK9MYHJVNJHQCYEGVWFBSDEFWBCIBAXBOCJ9QTYKPKWFNEGFTIVQ9QRLTYYNGEBGBUDYPEFDSLZZC", "JFMFFTJVJRLUBKVFLKZ9BVQDWOGRIQNAMCZVTVXARLMCKGPHWQDJIFFHSYDQPCKWJFFQAJVLIRWRGHZUCHNWGPLJLPPVRTOJVLKVTHTAVYFDTVHZBMWJRXZOMICFTJYIWOESI9BMZHXDBXDIRKADXWDYIYOQEWFVBA", "HBROTEICDZ9GZIWBHJPDYLBOGYMVREOHTPDWNUBPLIUYRXMLUBUNBCIDHZETZMKJLNJYNCPEVPVKLQQXPXDIDEWWFBKFNKEMEBZMDGSLN9WGGMMMOFR9ARVQHCANJAHIKRAEIPWTYZSVH9FRLFDSSNYBFTUFMWKSN9", "QVUHGOXKIRSVCNIMFYBQOWARQAFWVYUQDRHNJLVFRYFRWHZFL9ISCUYAUNIJXBERCMLQKGVTXQKHHXHJIUXKJXJBCWDWO9IGGALOILM9ABBYVSUEVE9QPRXFKNLG9XSJBZQFPUCGUDANYWTFUPGWCCDF9FN9R9QMFE", ), ( "SFTQUYNDAUXFLCAKZKKKOHUMOUTLXTFDCMDVOAT9QDGRVPJGBUG9YXVZDUVVQ9ILCRMEYVMWQXFFVTIITV9YYTTXJGOZAPDYBVQVAQYPORIJWAAPIFUTDZRIDKDGSQQXLARSSGGSUNPHZXKEERDYGSCDLPOJREIFMQ", "OBQYRUHLLXZFEXZMORLJGPCCZVXXMYZUYLEUJNFOOAAQUESYZCPAHPNVGRM9CUFZDSRJ9LPQIKCJ9XERWTZDKFZRE9ETURMEOHPJYJJNCHYNVOZJXWESUKHQCHCEFEKNSVMAHLRRADNAWBY9GVFOWWI9RDNRGYACUB", "V9CCLIJAOYTGSPGM9HAK9TTSVQVWTVNQWIWKTTSTWTPSLIPFJILKIBYETPDMHEVQZOHLJZCPDSAQVONZGFTXTSTCYGCVGZSJUTWPBFEVRWFH9HWLQLWDB9TSGYWHBUE9STRMXCGGIJUYUZDCAODLTLPJKZOPPGNHLV", "ONASVZ9HAUYTKK9EFITEFVPRHJIVAAGEDRJABDFFNEWFIUGWPIFTZUGLNHAXBIEBLIBXMXNQRSFCAYBTPTXHWPGVWRXTDBMD9F9VTRZJMYAXSZQETQKBNJIXGDDQONXAGDTUNVWSSFAWARBYNCTKCGTTJLZRBSVBBC", ), ( "YHQZHLTBWYTTRHORKFJVIJIILPCYV9FPVIYSTYKYJSRHQKYRDDBWWO9TUGGFV9JAJENGXHNYPCAWLSHHEUOWJJYTHIDDDGXRQUO9VXIZ9MPAVZYFSIOPBWSWNOS9LEBNXVTUYJXYHXDXPESVKKZRRVNTXTUBPQGTB9", "BKBVMVDQTYKNWZAIOTPMBQULKYFXMWJOCVFKXXPEXOUXVAJGDOCVHSFPMUCDZAUTEOFXFHQMLVLDLAHLYEJBPYEXVOAEHSYRUVLOIJPTSBKPRSRMCCSOWWFGUMJUAADMRMPWDMOJABLAFXBZLLSIHMFBV9FRROMVGB", "HIAUDSZXUEIAWGOKZITJPNBAFCLBBYYYL99ELKCGRASATKPUKNLCRSEWZLQSOWBDCDLVDPOIYPBOG9PMMWOOFMJLNSZCQRPUGXPMUWWAPMSWKZFUZYLHJOCMLDRFXRGWHZWQXTUXWUFQRYRXHKSMHMQBYYLLYORQIT", "YZDPWMWUPUVMGQRZLI9QHGU9EZYSQINDZQRNBFDTMWUWYQJSECOOSPBJUICCSSD9MZUYCPSCMD9DIRNMMRIDBLXYHVXXVDQPHPOCYPDYMDQVZHZ9NUANMNVTLTFTW9EMGPZVFKPBUSGUONFQABHDHHZGA9QOLISULK", ), ( "VXZKAOBXG9MRCGVWJXPAQLBWN9WYEINOBRTCECZQLGRKECEMLBFOIZEOFPRYJODXTGOWDAMNTOLUODGCFVAZOGABOUDAAH9WCIZTZOGSVMBVETINIBYEK9AU9ILOAUAVJMB9DEWNOBCNEHYTKVCHTZRBGSBXBREGXT", "BJCVBDZXMFOK9QLBUBUTZIKPZDEWDLGCQDJCJLMSTCONJFWVFYSTWPNUIYERHIKAKFPZXVDKAYARMOUKCWSTGSJURVF9NJZFIVLHAUGIOGSLEMKDP99UYIRQYQJGDJ9UZ9UANTXVIVMDACA9JWFVYSLXSCEZBYFYYC", "QSEOKAXNHPJZDADJNQTANJYCIJPFE9KMPTKKUGXPKRLXD9GGBOXMJEXJTPOZFXEDIRWJFGC9POMLJPWUGPIYIARNUGMOJJVUYMRZICBGFUTOMDMKGGBYCFHUSHCMSMIBEDYTQPGDSMTTTMAU9WPIZCRTDRFXKQ99XK", "GFZXKJGPZRGCLEKOGDCK9HOFDO9TYRJKCMOTVJQSWVLBZKJKTJYDDGGKFKKFJPN9GPI99MVRD9OTBSVJTFPNUHSRKIUHLACSWGFSWA9JEINHHINRMWLXIRWPXMXXELWZ9VTUXVNFHQBLJKIYXRDIBBBMYJZKMYJK9J", ), ( "GERIGQBQCYXSLBJGSDYLGREHYRXAVRFHTTGEBREAALQZPAOXYZZZTBIEQGYBRFIQPGCFPWHOWEH9WBEZDOEVGJQVXQCDLYVLUCTPXMOHRQTAR9XJFZVEJIHREDQCIHBAWX9BYKNZHLDDXLNFP9MKYJJSKMNYZWAVUY", "WVNSIK9PFZYIKBMPFJSDZSGDO9AVR99SKFPHUBPODJEECLOZMFOPRCYPYVAQ9EBAAVFBMXTPANYBFCHLC9U9ZYZALGFBQPIZMHAMUDPXAXYZBXIGEEOKCZKAUMXRKSOK9OGRWULYJKLUBVGT9UEFLON9MGLJKUWFVD", "VFNFVZQNJBDPIUVZR9YUBDGDLZBLQAZLUTJBZGVEB9TD9SHFJCZZYMZBNUOUEOEZF9XIFJSKTGMG9NIXVOHGQVEXRWWOQX9DQVGMQSPAZ9EAQUCQWPBBIMVVAP9HLDYDWS9CYWNBXFKADGECGYKQHSLOCXLM999OUZ", "BSHJSSNBQXXZZCFYFMOBOW9ABQMXBLSFIRQTJFBNDDVHAPCICNBC9UYKSY9APIZFQXKR9EOMV9LTBCLWMLONDYYXBG9JZDCBSCDSYRWIIWZ9SJMFUFQNFINJAUSBBE9WGWANBXXHBJURZLIWZSKZEJATMTCZGYVITL", ), ( "BFSAIXJPJJTZYNRKJA99RUOLLRWIFIPLUKRPVNEYAGTJHEXHARFVA9ZKUXXALRUZZDOJKHLKOYIFEYXOTZRHXTHUAWBQTDFMWUHYFSNNAWHN9LJCTVKHSSAPYXGYFTXVXKSUXXVYBHVJTURGRYHEHZQAKHNECWS9VY", "XSH9EMLVXECPMRKBUEBSWRLTRIAPMAJEJXSDBMHZUVKAVHQLDEHFJ9KKAVCRVIRMOKUBRTIOYYDMFTUAXOHSKPFRJVMNEDDTRUUEOAGXUJGQANIACBAKDHKVUSIIYWSEZPKSTIDZJCJVHFBSF9YGQ9JJBAKSSVIC9W", "MBDVVV9IJDRYMILFYZIPVDDFIEEQPABCJYSYDOEHIVWTW9QATQYEMMQ9LCHYUWCQLQRLVUCUPFZUULRKJBALXRQMXGUDUFWMPJVAJ9CDLW9ABT9UHDWBBDAELNTTKBPUJRKNAFRGMGVBQWDESOWDVPPBFEYTFROKBQ", "GS9PLHKMQNLPSHMOQWKMIUCGIJLHNWRLUVPTUGIVFZLZVJYEIMHBF9KZPEOAZKNGTOEZARADBKXWRSBSYFSUMJC9UUNJZRAIOOIRJAZA9BQPNGFKHTEKZJISOMBLFCPIRHQFOGHRHTQVVHQEYOMIMAXMXEYCMVUBOA", ), ]; for test in tests.iter() { match sponge_type { SpongeKind::Kerl => sponge_generic_digest_into::(test.0, test.1), SpongeKind::CurlP27 => sponge_generic_digest_into::(test.0, test.2), SpongeKind::CurlP81 => sponge_generic_digest_into::(test.0, test.3), SpongeKind::UnrolledCurlP81 => sponge_generic_digest_into::(test.0, test.3), } } } #[test] fn kerl_input_486_output_486() { sponge_input_486_output_486(SpongeKind::Kerl); } #[test] fn curlp27_input_486_output_486() { sponge_input_486_output_486(SpongeKind::CurlP27); } #[test] fn curlp81_input_486_output_486() { sponge_input_486_output_486(SpongeKind::CurlP81); sponge_input_486_output_486(SpongeKind::UnrolledCurlP81); } fn sponge_input_6561_output_6561(sponge_type: SpongeKind) { let tests = [ ( "ZDVXRHZRIPSGGHWELMZ9LAWABXPSBK9ERUANCKBPIKXNBMJUXTFNF9VHHXECYZTUKSQTPNFCTXZAGNTRCMLGFKEDAAVQMBUREFLNPJVQFDINCDRBL9TGKQGLBSBEVZUZDDCZDRVSDBOBVLSZHGZMDCQPEZBFLKWUXYFGQMSMCSHYKDBINWXXKFLYWAWCNPCYB9CBZOIRCNMFUMKXNPWRDPWHNGLHJALXUQNMRTFNVDRDEVHJHDQSIPHGFAVLQAIUUDXJREZLJKBYMCXPWIDOIMNKZICFTCQWRHKAZMZBNTRIXNFYZGELISFA9UVSAQHVJABZNSPMPZGSLNFMDORGPKTYMLWFMJQXVKUHDGPINFFBTEUTXAHDBMK9FVS9GBWXIOZBMBTZMDDFCVUYMIWXXFZZAXINQIPFIYMDGUURJJOCWRXMCULCKB9ZSZLLGXVMQMNZQFMSHCK9TRWIIPIOHRRQGHYZJVETBGEOAGZOGKTEJGYAYBHVQ9VFBNEKXLSJKXAAFHDQDEJCZEAHZPJXCYBQNZJOTOZ9AUTJVPGQABNMTZWCZSULVMFSXDKKUZ9JAXRMZRCFETMGBLBLJJMZAVSAZAVWTUETEYOMVDF9GXEMYKXWMEJBERDTMAIGDLRHAZJUUCQNATVZIRVOGXAZBECUPYBNUDFUM9SLRIBQNPVKXGMXZFZ9FGFVNNGCCOABCYWNMNNSIOPFHQVRXXWIFJKODOGOPURT9HFQUKAQB9DOGYIEVQTESPSVNKWKLGTMXTDPKTPDJGOKQIZVOHBA9UHOKXXZJZLCPLZTMWSHRIQHZRXXUOZSDGBAPOLNNXMXJXZGQZYXAQEGMKUICIQTL9DOXAELENQLTBAXQVEYQBFVRSVQMAMIELIUALNUUDAZKZTPYHUMPXBGZSAZPZRZFYUISCBRLMJQLYUVVPLDFMHIL9DEEIQSZWOUOQSXTREGSWZKPQBVXMBOANYWQGVHDXZO9LQGYOEXMCGFJKZQKYQYMRMGHTCPCOUYCEYHDCWSCHAYVDEOW9GKTBYRQGSSJATRVZM9FPT9FQTFBGNJQMQNQIMFDSHELQFKAVQXQBEHHKCNDNANYMWZDNFKU9ERPRVLDLTFTMGSSPWAGYPJNFKFUMM9Z9YHSSDJLDGNAAWDZIDTAHD9VQDJVPSQKMUFJAICMPAFDZHZDANRAXRESAUXTWEFGWWZRHVYQOGHLNMXZI9KZ9LJIXXBGOXIDJUBEZYBOYAOCP9RLHEAXQQBUUSMNJWNJIWVKCZLVDYTFANUGUNMZFFTLRUCMTCZUPMLVODPYYNVLJOSRNQVMORMMJYO9ZDXYFFOMMSZONYKENHMYLZPLLIFXKRND9CU9XIDMZFKOFLASVVBCVOXKZDOOVDUSDKVLSBKXREQDVKXJCIXCHWPXF9P9ROPDSPBSOYLPEQAGDYNLMBUOBIJQGUE9NWFWHZW9VJNGVAIDPR99KZXWSDETGXLOPJUZVB9VFLDJEPOMYJFAGXPSMDSXBPESBXDLPLNAGSPRKJYVEKHUUXGRLUWLJWBGCQHVFFTTXPWVEAZXW9EXDREDNHOULFTACX9QBZEUPORZPBTDGZWEKQUQTTAXFLDLUULWRBBEKVDPISONVYIXCSVEWPFGRXJJQBOYEXBVUWXKFSVHCNZXVLSFMJHYTDYGZUCNKORCAVZYGYGLAGTHGRUCZMHKFNIKLMY9JBRDAEKOJRBBWHQBUGCFIXBNNVCKKZDXLIHBJYXMLYKBLTYHQLCFBCXQARHCQXGIJS9LYSGNPWBZE9DWNJ9O9WJPYZEYKTDBJDHJZONCWVAMPMKVDEOPMHTYOXRKHE9CTXOBAGVFJSWFBVORGPXTBEYMMMUUALDST9OQHG9NGUICAFFRSEXHNQCZQCCUBXMWHCPZVSLKTNOHRLLZXOIRQIQCJIUQNDXVGPEISBIAXZNDVOMCDLTGJEBMHNYVNQMLZYNEQWRBNGFQOFDRCIXILN9QVKWJGVXXIFPVAPFELFSR9ZNNJGIUCUJWVIETMVMMTPHEKRZHJGSG9S9PCNYLANUFAIQTEFQSYJGBDEUJMAAPWQYBHZLSYSNQHWANATOESRFRIFJPDNRVWKDQVFLKFUXFCY9SBEOWTXPQGNUQJWLCRVFSNQPLGSQMPWOWJJASPAYPHQRLIGBGOMIZ9AIBHMFZJPJSNP", "UVYUPXYNXKSEVWKECMJFNIGRMSAKOQCMFOBTNWQCJOUIDAXSWSLLSPFMSOPBGCOQC9FCTYBZLTFYVNW9WS9ADNGWLBG9BKOZOBKQIEIDLWBCODAQXVPJGYTGTCEMXAUHADCONGMIEKPMXQVNUNXHIQHNQJIJRRXJAZVGHQCQI9WXEKENXRY9OA9OUCNEFJLAPOSLRUCCESYCPAUSUJBMEMD9T9NCUEEYODPPELJPYKQUAAHIAFYFQAVIKLFGPJUVZUQAKNDTRTOOWODBRSXMLFPIHWGGLMWZGHEGWNTBATFOFBDXHV9DEXQDXTVZLGEYWOEZHGYCEZNAAAYKSEGBWUVQDOKNVFE9TNLIOWJFLYIXFKITLHVUYNPGEPNQZANUE9MFPAO9YKJG9OKIM9KQZQY9OXSJ9MRRBOBAWCPNCOKAVTMDBSOSAHZJBLABIJZEDXWQYAVNCUXBSGIAGJLHYLWCLQCCHNGFPJON9XNGIGVEJSUAAKUGQXT9KHYOEGGFEY9TACL99D9XUDBZOXF9NQWJBATMWCWLRMPKUDZEAALRXZNELXEREFBOXGLSZJQXMKFFNUHZFE9PRBCOTJXGNEJYYSOJJALXGKSQPTFQTTKADFEUIDLIQGQBPZT9UNSVDXM9HFEBLCOKMJZTXYTMQYJBMJLEPBNSJBWVYGYMFUIOFTOJXZZMTPC9TFEXRGEPSAWPNBMNWFCKKXFEXKPWKGEIDWZNEAVFSZOKOWNMFHHVTWPQINKJDDH99TYHMBIUQKULWQNOKCTOVKFBPDQPNMAV9TVJ9GWDKM9NCEVUZDFPNYTYDUHYHGYN9ODSMFDGQSVWOJBYIRZXGCCKCBYIBFELLJTWKMKBOOEFPJJEDUHGKFFTYOXLRKGFOWXNHZNUZLMRYBKPSPMRFLIYMISAODJSJM9IEEIECJXTTPLMEFVTDGS9NXO9YTTLKNAVKKHIXXIFNW9ZCABXMQPF9UIUMFDHPDUHYEOMKYLUWYYQGLLPUZKPYKHHPFXFPJRKRFJQEBGMDEUYDWEDDQNORPYY9HTYRLSDDABBBACEWMFEFELZSLRSIFMEHUGLAFTVAUKNCHFHEYVSGFIBRGLBCLZRH9JTYQKICRICNQWWTHXGJAYBECNIGVDDJHHOHCRUKIGIGNPWTOJZWPCVYMDGGMYT9RBEZOWQQDUVOZLVM9BNUBLHUECDVLQWZUZIVCZYJWDX9DXVDRTGX9YNMRBWVDYJRBRSTOEJLBWQM9BPUMY9XTHSNKGTUVPDTKZOXTXTCHIVQKDGZJXGUULFMSFWNVJVRL9ZUNTOPTFUVTBBTQO9FDGCEHVCMGGYIYFMESMKMBJOTGTVWKCAQFNQKRY9YYGOMPLGOQHEBIWUXBSYLEZPC9RSJKEOURKRWAZLEQKSXOIJRPANOIN9PTMC9KRXQFFTXILSTQNBVUNWOZBDRAFIVPHFCYIZPCRUALMIEPZLHFNXYZLVGDEBIVBELET9LYLDKLUSSA9IUTTWTFNFJYYFBZVCNSHWMIEUTEOFJCLJNG9HOBWRBBUOCLSIEQJWSZP9UGQIGKGCMZS9SMAMSNQIC9VTFAOITNNTNIBRZPHVJOTYUBGUWEKNRYEXGDWFHFTDGGIDXDUFXFUXREYHOWCDKVRRAYFYDWYQUWFV9INPWXUQMTHIHDYEJPJASDZYYANPWNTPKDM9JVDNXFAXWHXWXBMWCPLJWCTKADMWYZEWTJURDOZYANFRGFXIOHQTMATPXDJO9DMFQWDOH9UIZH9FHGCJHCBASKZS9WSQGHA9TWRWMSQPYQWOQMMJHD9EEVTOPITDCFADNPUCECFDNNAPUMLLJUWALOKNNMWCGUWB9GFS9WMWONB9KJNBXRDOHNUFXKCBIAXMMYVLFDIWCVGLYVALALWNNNLRTZNPUYGGMRGRJPZFTRIJQ9VXLMBMMXJ9QWZXFETKZJFKRASFIJLQVEHXOKCFZXXJFJUDSTRIHRUEZUXJMTLSYYKPEVEYPOUUAZNXTDXLLIINALWGIOKYZRHWMWVIBXTETWKLMKOM9EYVNXMXBCSJZYRWHNYNHAIREVIUAPRETPWKHCIMHWDWZVVPEMWNKAPGTOHGOAHOFZHVPGPWCXRMVQHUCEXUJB9AZNBPOTZFMSNLADLSTLNKQPIKILMRBUU9NWDBJNNRRFKVRNUWOZUQU99", "PKNIBLYCJGHMOWIBXTHNOH9UTTHPOPIQXYNNMJDLFCLNIKZLAJR9GQXYYTWKUVIWEXB9RCZRPYOSRYOAAULANSCFWZQDD9SGNVZVME9YOZXCCAQEKSQD9CJLMIHEQEHRQXKWEXVXPACKNUDUMHF9LVBPFVXAQRZGHFVEDNGSTSIZBV9LUJFLTF9DJRJAMWXKXVHYWREMOJXHBDJBMKSLQVFJ9TIZJCVRKLHRUHQI9OZCLJXKOSUPIETKSXN9QDOYWKXDXYZJVCDJAMPMQPKSUHWZQGIMMEMSGNGLTVPDNMQFCCQXSYOWCEYCAAIVIXBGJPPKE9WRCSAGEM9EAPRNZVEHMIUOBQLWSWSHMUXWZGVPYIAJLEEVUBZUQTNBJEXJXYCFJFDLXCWVLCZMPPOKFDAGRFLSDYEPATEKSVAEUKCTANRTGLYEFR9AFJKJKNJ9IUELMLVRQGNTWZCTBQQBNBZ9HDJZNTYXZBGVGMDGWMMPCLFYFWOE99LAL9ECP9PVJJRSQVCFGRMPEOKWOPYLDDAOADYVKWFUSEWQVRPMXLHADRCAXCJRJRCNGCKEBJVDAYEDYALATUH9JNMLZICGJCMCCQAP9GXCBKBAIAUC9VLGIHGMOKYUUFCXNBEKEDJHFADLEFNESQZLECS9QDTIEYJPYDGLUM9AFYVSTRYZLCOREWSNWJPDQWCRHNDERSWGBPYJVWZND9VXQGXKRMTYY9CNQOVXSAUBMDTPGJMWPQHXWPSGLCLPJRTAMTRSIXTLNUBKDXEZLGUAFTCJXREHKTTYKJOBIBYPIVQDVLFI9XKPACTXOCJBCIQDALJGNLSXQUDWXDZRGWGNGVEKQZVQHUTNEGIBVUXCKZG9POSTNBKN9UMGQYVJZPRIPAADEXZUZNUNVXMXKDVIYSWMROYGEHWSRLHPANFGITKCGNDUPCDEOKETWBUGYWCIKOZPFIXJTUKLJRXZV9YSWWRGSHOHLTB9NPMNAEYMVQ9NVWLJBIDVKIEZQHIQSHQWGSUZTIIMFXORSYCNYQHJLMTVZIIIFUEVMOOBD9VX9OKQRHVCVAHIMWRVLMCWTUKJTOMKZHQAEN9YVECEHGCXCPCKKYECHWYAPVIQCOZTADTQUYHRXISOWJGPMSK9KNSLTVVCGJMTEL9ONFJXGEFETTD9IGFBZXRYGX99TYQSGKDHVYWMMCHYIXCYLRNRVVLDMGDU9KPLVJZAFGC9IJKIMINBXGTIYGKAYTGFOZODMARZ9SPCKTFBKV9LPHVBVHUWXHDEDAEQRETGXODGDKRSJGQYIMMOBPQNXNJ9AKGCTBZHOBTVWXKPJLQMZXMAWWEAOPZUKKSTCCYOTL9WZFRLFWGZLQLTHEJXJETDMGECWHMPAUUFWZKHIUVMCJPKMSZXPBOFZCQDVUKDTWZMYSSKDKATTEFYNKABSXSNUYJHIKYTWCHRWXRTREI9L9BHNTL9RXIOKZNJ9GBKKJQGZJSGTYCCTDD9AGODXQTMPMDVTXZUZEDBFBBNXVEEVGRSIQXWDCBGVPGZOPRXYPAQSH99S99INXZGLDAJHMGYHZTQL9U9OIMKHXUYTQRJKBQRKXOMDYDCJIYFRNFTZEXYUYUSKHJDRKAYDRDECNSRLQQFQLGZCTMFJRWKVOMNJCFI9K9LRCRGB9MISTDMRE9QCZD9DBEYWUNNTEWRDM9INRGXMYEPOIUXVTGCPJWRWQFGNPPOJKGBTBNXFPYUHYWTVQUINVC9ABXFSSXGE9YVJVDDISRXQPKQDYUVZLJMZDPN9FTPZHSFLWJCUAH9CTIUKQVTVSDHWEMWBCTHYVDWSYDSETWRIRQUANBJCKFJWPFTLQCYGJ9UAXWGIQBXOPUOIOWLCOCTSSG9FKWCABJJXCVAOLJGCZQ9MMQGCD9DDYRCEWOOSDDNGJYMBCPRCBJMSYAOHASUDHRSSLDLWWFTKGTZOLYKOLELYSOGVXVOQUFTBSFESPFERTGMWQCHLLQXFSLHJVASVZFFDDKZOPRK9M9W9USSRNOGAHGIHKUVK9IZMTKWFHMMDXLSUMLRIYAOGTAOEHTIQNSQWWUDLDVXVXNPGRMIRSIPY99G9DVEBRQK9FLQSUXGIQCAV9FDEAMBYYVBIYIXOCXARP9QPJEQSJAKYWSRRIMORAQBJKNDIWQXGQGGTNFVWRACSUICXAZQEOI", "XYAHHQRWJFOYDIPOYFZWOWUMXVCFPGWCPPPPLFBAQMLAASHHPZ9WJPNNFEZQKZILQGTSRSZZOJHWGZCAOAEPSGRRGWJUAFDJALMQUWSQP9FXTVSEACHUSEIUVSW9ALYDWIVSKIPNXNOROQZDFWSHYQXPVGBGC9LHC99E9PEBUVBFWCIDJ9UPCWRYOCWKBMGEPYLJCHMQGYSSRACYUGFXYUQFXFOMKPCCLSR9AKQASBDNYDERXNJIXJNIDZBELIWSYMPI9DRRYUS9SWDHSPJZDAGM9LFZET9XBBCBYUNXSJDGIYZLZMJBDUILUHWEDAUBTFPFPHQYDVGTWKAHDUJ9GJH9VLFXLRNGRVGSUYYNEAACYLUZQVNCZU9SKCJFWPRNGRUNAABNTRADOCSHPQBYPANDPPFCJASDCQWRCVBGSBYPLHPPVLDTAKT9TQDDTMXJZGWLTFIRYMSEJISNJLZWN9UCDZZEOMSMWUCTXEHT9NFWOEIXWZPJZAQNFBQKLYXCAIEAUGNPJVMJKNPPBGRYYWNRBDXTECSLVXVNEBEAARNCZWTKHEFSHGCMBDBALEFET9ZZUS99CUNLDXOADCDRXQOSIHCBWYJGSKBVYVSNTLWXRDZZ9KTIGHCBZOCYWPOGLLDEUENXGHSHONJPMHRWHTW9KHDLLIWPJUEQKCOUMZVGQCBKETBSTFTOMLCLLTKAHCEXXGYJHAJMSOFAYYUOCLSHYUERRFAXMVPNCGOLWTOR9SE9GYXUGEEFULJGNTUAEGYGENVOZ9MTKXAIAXYBXKSCBECJWTLYVOTTJSBMDJ9RYFB9VEZXPQGCAUSFZZJLIFZMHOPRAGWMBUDMRENIWKZTALFSJNNYEADDJLWKUKW9JJPFBQYOKJLZNENCXCKGHSVSGAUNFMNBSFGSBNKJIDGVYSVNBVRIUGW9FSOIFZEDIDRMZZBXDTTLTIJRCLQLRAURTWUUBMVIJZXVFJKJ9MXABYKHRBQCXFUQHKAONEONAOXMYGHNPSDBIQIMSPKLVMATCB9XEHKBXAQUOKWADTISNALNBGXFZ9JA9ZCXNIMPNOXXJZE9BMUQLMEWUM9OMDT9PCLEGCMRPYRYRWTKXNNYNT9YMWFYUJDUNTCYKGLQMRCNAOFHYESKZNXVTPWUTYRRMOEKKYXTJAIXO9FJGQUNZUDMCMMRIOWFFKGVZJAVZQCDNTISGMEAJCTAXWCBJMLYNQUUUSSCIINDMMTAXYIHWAPYWHMHPUHDOYKCRMMLMTDRLFQFHNGBOIJUMAULCYLEMICBEZO9YXO9EEKFRIKZIHSTVKXEUKNACUYCLU9EEQFQVOUUYKZAPHJRONEVTWELHYITUMOXVRDC9YUWQFZJRPKSEEFJCIIXNTDZOYVTCFHHFFIZONZCIHRPCNOUCHVPOVTHYQVWJVDNO9IRPKTTQTXEPERCEFEVADNFCVFRWWWBUNEQJUVXRLZ9KLROTSKETDYH9V9ICX9HTILOGR9NMYQQGXVXLKCFBRU9VDAUMLGLHHAJZJCVTUX9SMPJKWCVHBHOHWJMUJDTIWYUNJEHWXGQPGDOUJBSMSWVBIAKQYTDMQDAIQVMRAUL9TRCZIFALWUIFRJZISLPACOHECREYKYINGJUSUMYJZNONJBBMJXHFANQCKBPGWUCK9AKQJA9G9A9AKXVGYQKYMBDVGYYHLWWTAPQGPCNYMTLKC9POMAGQFYFGMKHFKHRATTDVJIKADWQBTXYGOHGQCGDXOVTITUORWEFZNYIHUZBXDELDDTOLLSVKEQHTNRBFCQ9JMCXCLNNIRL9XGBRHSWRLEBPSDMBZZOBOVPMIXSRFKGSCHJJCGWBAFAQJIDPL9UPKIIKMCBUQGHYNSJBDN9BGBOPVJOXSK9EWCQUMCWNZDOKXHDHFTMGXQTDXAQVFXHNSZAGBJB9NUWYUBOMHWYONHFY9LBVNHOYUSF9DC9F9KIPBPGDTXJHHNCYDEDSZUDFMVM9QLMROEGGPDETQJCIAFZJFRIQCZZZVML9EBKFECQRQBGAHKEYJLBSKZDMLOHMDSKIXYJDXEYINROS9EYVXDGRHKKS9MFAK9RHAGBLDXPXCATZNFFXRYQLWQXIXFWZHAQKPSJENWQCKDGZMECFSEHVRDXFYCCXXJKBQCCYDQDHKCVFBIJRBJSETXZOWMFVGIZRNDWFIBT", ), ( "ICLPCHVNTEAFBGMCNRRJVPAMUFXZ9ORHNNAMNXBFDIXOMZAZCOBVVOGVFHGLUPRZTARPHHFJKTDPNFAMMDHOHOXRQICQCVXOAHADVEERKUVCRHMTIYTBYDGNTAQYMWRCWLRVMAZINJPIBKCKUXG9OPVK9JNYVNQUJTJHFOGTEBIOTNGOOGEXZDWYHEREOFOIUKOSGHOAYHHZXERGLONEYCEAFLSQK9KZTUUVPSZDOFEWGYMOAZQH9DDIDMDPBDCCBRKDIUGSDFSWEGCDZ9ZRNAKZNBRKGBZ9VERBCHUVEZHNWMIJAXSHO9F9TMKZRDCTBXVNZGIMZOE9JXADC9JXOVBPPIMYSGLYGEAQIXFSAJUUXZVTKLDQWHBGSSSFSXOOEAVGLGJXBFQFZNCWDIGWGX9NBOWDTOJN9YUUEQWVHRXYHTIAJORP9IRXIBCZX9HCH9QZOWJUUKUVPXKGFVZUQVP9WTXVNPOXW9YJTQDTSM9GXZVKVCWQQE9OLKTFP9HDKBKWUUNIACUPZMRZIGYRSQ9KMVZPZRNFRBHHVC9RYUDEKUANNKRLDKOQXYB9IYKFC9OVENTXOXZKYRDLPG9AOSEAUJSCYNSKOWYPVMWMZVUTYJNQQXUDDKQXKYPTSHBGEB99XRTCXDYFVQPRYDOSPXQWP9VFGEQDOHJCQSRUCZKDNFZT9NAXYUGJBCNWDNJXTUJEJXVZY9XAWCCMUCPJMXVLNYSPCTFLVIQRONHAQCX9KHDQUKWHLYDFRLGLYNMVOOJX9RRGNTYBXRCRDEWMWBDGEXJHZVHGGZDNPTXJOAJMWFFXQXKFIITMXIO9DBK9BKKIEANUKYCIOKVVWLLWMCUTEWEVHKOSCBXNTRSNJBQHVMJVGGLGD9DBYMCECXHMSAXHDGJURTIXEBLKIFNSXHAHSXOUJIBVJXWDUBVFUTTPKHPXMOZUJOBKFRVKXUGQEBFCRHDZHGD9NDEHWKHOTVIE9LHNHIANRSNKEMUYIYWKQKOIOWH9ARLBLEDWIMMPHB9KSYMEMBOTYUOMGAGC9UZBYSAJAMEDIGWZOVARYULPDVZMRXKAZSBDGJBAUDUEIQNHCCAEUJUFHNPYCWETTYPEXXQHLAAYBIYXAEUHEPEPUUWWLSMJSMBBJSUEFQFS9MAEEJU9PFADGCGBLCONZAQJAREJHVCCAENTERTQLFFPXFBEHCZCTVEWQJAZVFDNZTFPAURWMCRUNYXRYIMOY9MWRACQLBPHLSLNAFZNQVOWRILTN9YEUNMAWCEQCBPSIDPYUHMHUYBPJ9SYWNYHVDYLGJXT9NCO9XNJCPMRDMBYYFIZYZBSZLTOWONNYAVYXJBRUEAVLHUMDQLV9DEAZGNNSLHNIXGULXSSDNRSLZBNETUTDBLJVQRNYWVSFVMHSAXMBXQXATQUXFYOMQPYLNBYDKTSHXOCWBXABZLOVRPWVXYBUFZEHWVZLVHKKQULJIDQBBSQHINPZSYVWYATUBYACWCPXDFVEAEWBDISBOHPLFLKVHORQDAXOQAUGDWBLKKVCMLKXDAKTKDCVAMUEPUR9BGKQFRPRWHKWEBMQLVQVPACONSYVTCIYSAX9BQ9BZSOCDUMEJVWGYWEKSZW9RNRRNEJIOSRPDC9JMNCQRUIMOSFXGEXOYZ9UBTTNBDL9UUYONGKVZWCPAIUUDWKIWGYFYBGUE9YFPHJFXPDPKXRRJWHVH9YCNYSPMZBEGOCHPLSMJHDQYMDJCLNNCJAGUK9BZQXRLRDLXLJRAOUBHEJKKKEDKMYDQDYCZILMPQTASPMMX9DZNIORQBRORXMTSFN9WJFHWYMRBOVCOWGYOQDAEUAUAYLQEPHRJTUUHRPF9VVKFPGRGTQUHRMRTQNSSBFZPTDRZYGLEEMVNBMWHXERGDBEB9CPTMHITREBLKKAIVIGQNMGZAMDCXFVEMMMKLDVKXNPEXUAUNACAMVPHNDSVMMUPDIM9TGTWWQFJIIJIBKJEPHEQDX9X9NAMYWFTXCBN9FV9GKVVNEPE9GIEWS9QUWTCJQYDFYKXKKDWMYIREAJJICYUUERA9GYER9DUSS9TVAKKMTDRQTVGMAOGTVDR9YQLNAGMJQOQMQBVJVIDCKJFJLSGDBMKZATLOT9INBRMBHWEORSSJCDCMALMSMEDQAAVYSZQWIOHAJMRECBYWOX9HEKGP", "AJ9HCRUQOYXTPCDKATNKM9THEMSSDOQMFXWRDUUMERSJNVEHEQSNJTHIZOTCMEOUCSL9AOQGEDFSZWGOZDRFXINAKA9NEXQWPLPQBPJCUKWFWJ9BKZVNZUUXPFUQEJSUJSDQADRQRPXSPKSYMXCLAMK9YBAJSNCBJWP9CQTEOLFKBGCHNEEFAPAPUOADACBXBZWHLLGCODFZOXNTPBNOKUAJNHBTRJKSQWXI9PDNBFYFWSMDQACNHKAM9JPPFDOSZEKHOPBGSKRVBIXDMYAWNHUAOPMJJCCODLZ9DLWOCKQJSJGJHVSWIBLAUJEQQZLWTNP9ATWYOUZADEYIRUEXWDGKRSTKYLCWZMWRARGNDSKQPM9GMTLNMGQNZJGVLFTSLWJEXYIXVGOAKJXHEKUIDBQJPSYGAYCLMOXSTK9QLOROKVZHILO9VDVSPHRRXTNJBCCXBGK9TEIXJSSA9LOPNYFQWXM9TDHYA9JOLXSJDY9OEKNXHKORBRPRCCOEJJ9X9OZKZFYQNOWNIOHSJTJZIQAURUUCRAVFEJRIYYJHURLPRJEIETROHVWPOGAHEFIGJGWV9HKIQRTVLJODPULFLUTMWVYAUFCNUTEOLXXQLEBLQFAXUA9NCH9VOQANZOQTXXALURCCFGAMLTXXDLEIYFOJGMGDOWTTDJTKQ9OCUMSQSCW9YEKPOVA9CBOARZO9TWKDIXACLTNWFXGOQBC9GKDAAGRLYAVWYWOJOKPNEAJQZFQQIRHKXNABIQFXZWGILBKAHZJXDUQWHBTDPMMRDWOIVYMPEPVHUAAESYQTKCZRAAIEJGS9DITALHTKFPXZUCBOGYO9HYLVPQQRAWOBM9VHBPPZ9HEGIYYEWUCSM9HRFTVCGD9XRCXTQYZ9IZGFHSKWPDQQKGCBHWVLTERAK9GVIFBDAFDWXG9UCBLZS9YBCZHYTFDBCIEAKEETDOUWAYJXY9CJGOMCMZAEEUTHPDUWLFLVSNABZMWH9CZVEUB9DZQJZGRGEQNO9PWWZKJEGOHBUPWHCQFXVHOSBRCRAKLUZCOUWELCL9BVVLL9UCWJLONZAFLTSDIJEARGSWEFEWSCYNL9HXLTQDXCFNWNUZMURNUONNJQYHIESVRWDQENCYAICJKUTUUEDIKAWRKYWABOEAWZGHLOIYYVOAVJZZQPVRGIAKBXSDCEWTMMH9FRWCRMHQY9UFRGSFENSNDEIMZJSMJNAEHOSRQQDGLHQD9DQWZVQBXMRCILXHIRWWNKKKIDPROOFMFWCEBKJOLSXA9PLEWEDDFBXYXWUESGRYHSQJPBOKEBSAWWEAXKYGKBIRGHUTIOUIRTWADPCCHBXQZVHE9MBPUMAHJZVVKOEIMENHU9AQTTA9SQDBKTVNRFAGGBXFFXGSOCZREPFNUUBIQ9SUACHDJOEAMABBSYKOBJHIYCHOPTDUWWMTEYGPOFYVKLPBA9LOMWDDQWNV9ELHTRZOL9YMNHMX9YKNAAAEWLOIZPGZSSUNOLNOFUSEWMXXZMBUAFGDVHRNX99OGXUA9RLSWBC9YUNTIHIWOADPNPIL9KT9NISTTTXEPQDV9MGQGPAVGCOGJDDXEDTILWHUBNVRRIBGYBQUADWWYCYWJGMCP9TWGJEQHKTULPVKELDNIMCEMHLJDSTWNXAFLGTKVDBRVXOFZY99IFXITIT9SXJS9SQAQYYDKXDISJPFUFYYAJORRXQUWUAMUMFYIITUOOUUSSZR9OLNXFXKULRCKSSEPF9HLVNSY9HCXWAVAMBRJIMYKLZWGNQFKVLEGKVOSVG9KULJYPAXIJEXTLUOU9JOR9MYCCWVAZWQBZXNNYHVCEHULQJBBJ9IDWLSKSMMZAGKAXYNTQFUMXEYVIVEAVLVOSXOOAIRTZFUHBQBNKDGPCLTAVNXPTJWESBFUWRAYIQVFWTB9L9GWDAUASPFXDVWQQCX9IEGAFSHQVRPTMTGWSCVGQNGRV9JJASJAWAQSOLUYXBZHFLYGPLHSQNVNUTIJXEREPDDBTUTBIZI9ORVPUFFEFAF9POTUSEIGJGXLTHKCMMXU9HWIGLXW9ZWMNCRADKYIZYFXFG9BEFIOLATIFOGMVENSTQAZRJXIOVKTYCEKMPGI9WEAAORAJPQWRGXHZJAGMWWKBHZEMPVNMYVEUPFKAOTCPIYMMAPZXSGVZGDX9IHY", "JASCZSSTTLRFNXTJLXFBYFGVRMRR9GZTDEYHYMMYSNPELTZWEPZBVQISEG9KVBLDBIWNLE9RYUPPQOGAGKXW9ONISGAWAPESY9ZBDSHXLRRTXDNBPARQOM9JBBOTIXTMEBCTIYNITVQVMG9MRJJTOHZVGSKLAP9MENRZXUQOSMPTUFLJSRLNOGBOUFITUTLQAJMNUDZS9YKJHFDGY9CB9RFRKFAHEL9JBDHTSRQXPAFCQLLYMKNLAMXNQJEYF99JFCKI9MFNKTFWVIEPPPABGJIYZVAIIUSSSKWCCBQKHEAKLOVDXGCUONCOZCEISTQRF9SCTOYNMEUFHAWESVAGXYGWLJRZGHBFGOHQAPTAZTZJCPYBCMCCQKMOKHZLBDMYJO9AKPJRRSOEFLXFGZFFHCETMKREHEGMGK9LEFKEBEZGIBGNYKG9QNQ9RKKEIADTXKBMJPGXWRSMTLTQFRQFOETYOGAZVKQNQDNBZFGWGCFTS9LRE9YFUFRPATWXONWRULJNYV9IM9KCG9WZRNOTVZYNQYZNEACGKLLUBHSFACCVGHKGOUTPXBDJETQLOBRAFI9LQXMHWTDPASEXTZFRXCJYRHLQTIKRYEI9VFABUV9E99SNSWXMKEZNXQCQ9KGFZ9RPEVYYTYVDZWUPHVDJSACMICBOUAUXDWIPRTQEPRU9JIHQYQCPN9YKDBSXHCGKEQLOPJVIMMOYNOU9HUZSHXTIWNTUVAEKPPKZIHCOJUFNODMJQTJINAYMRMZUJEOZQWJK9ISPUKAAYNNIMYXXHQ9RUIQXYNKGDJTXFGYKPCMOVOIQHHRLXVGESLJLDTNANTJBFVPSZALDSIFCZ9ENDVXFXEC9HDFACVZUPVIYIHKUMKPPLNXBRYQLSXFUFBKTBXAAGJNTFKPEDAXWGNZMHCQPATTKELBOIMBOZIPSEUEJXJSDVJDKWZCPEUPE9NBUYPAUPQOIR9FWARDZJWHWHYTKZAIYYLFFDGKQPISZGNXCIXUEICHRHYHNHHYTPEMW9AVGILVGZHWYQDRHIEMCE9OQHZJOHTVKRKZGQEMWQXIVIFIHDLFELHETNQYCWNFMVCBOMINSABWQFGIKUHOIOTLLWPAXLDVTJJORHPILNJF9LIIX9J9IOFATCFKKLIURBRBORCEDBSFXHVFTDCLILCXIUHNAFJGLVX9TQGAHRJKQEWKVXSBKKMZEXMZLYOJYWHPFJFQJMYJBL9DEUFIMUZRWEWYD9KQHGIBKVBJAJJTZHCMJICJHESSBFYZCEXGSZMHBLBEVODRKLMKXWFFFK9DTDXREQDUHWYBSYQTRUDASYHWR99B9OFETKVAZFCBKFNHWLMKDVRWRJQGMBMPBQYMEAVPWRDMCIRGUHXCNEREEHCDBRE9IIBO9P9PQIXXNGYSFPCPFQEOBSOVAIYIW9AKOKMGFLE9MUOFOGCQHVMLRQYLJXGNGITTSVRPIXOQKVJ99AKCMX9CXGPZ9UTJIQPSTP9SQU9EMRQYLYXHZW9NPKQ9UDOMOKMLSQALWPHWCXSIYCLJJNSWKKEJGJHCNSYPZREUWRXOOBMVTHXWNTVKDKMSBPQTWIXJQMOJTVV9ZPECTILW9HQZ9GRSY9ODAYM9SOWGOYFLRYSTAWHGRXDLZIQEJDHQOLTDGA9EHQUIWSWNKJCUOK9CJYSIDB9CAQFHMBOQAVDFFSAASUEKHAEGZHACEZCSFJIEAGTXLCCKSHTYPCVTOHLPZBFSW9XOLSS9TAUUJCMEHJVXTYOEQOZ9BDJAVVEVFEHNTFOKHAXRWPALGEBVC9WBZIKQAENROLUBPIDZFZUEHABEXFRJKLRFQCELLZ9ZKNVZEUVOWWGCSVKEQCRMQXKFXKIZYFOHLNPIVYLZBSLCOGLLMX9VDUOMIHSLZXAYLWABRFBUMEDUGFZIEGSKGCQNFGUUUBJVFTIZORBSVKRGGUXCZGDRKZ9QQQFSPBICOJICRIFBDOGFMKKGGZBWDAYDENRNKHZQUEEPGHXNUPQDPUYNR9OOAGJMIHWMUSSMBCTEBGD9PAU9OSGQVLWWY9COHROMHBBKROBFEHMNHZBXBFBPAJDFWZZFMQXDENXTNUTUXAZNFZJNPKAXIFXJBXHVLVZFKXDMAEMEVU9NPBFBCJQILPM9VSTDXHIXKMDKM9PYWWSRBEZHGLBTKIGNWQQG", "SJODTCECEZQ9YITHGLRVTJDHIQJWXXGHQTGDLFOYHJPNMGPVRWSFIGQTFHTDKGGTKFEGMWYFWPXZHQOVQCSWVETGC9YRPJPJH9AMPH9QAAOFOMNZPLYJPFQKLRPAKVZDLHXYIDGELNP9WULOUXHJS9JFWAVMPVEBAZXGMFTZIOTTJRJXITVMLRKGHHCXNDEBSPGDR9SEOFFSNXVLEAYESTTCOHRFOEMXLCADXJBKPWVRHSETVXCVUWFYQRWPPINPWIPIPTPUTHADCZFTVSXRSLEQGMKWIOECHXHZAVOQXK9ZDHFEYQNBTVIEU9CANBWHNMOTFCWHOXJHLWUFOZ9FJPTVZGNVBLGAXXXLWZTOWJILXGHWAHWRVJQNOAFCIARXTRZSGYM9YMPCXQWUBCBLHFIFZDIHXYHKMUKMZMUAYONXIHMQZAUPOMMUXS9RXOTBMBMBIEPXIIHHHPTBXJFUZFFOBUYRNAWPDWTPIGPYJGREBVCF9OOPFRJHGANCCNAGCQ9XXPEBDYCPOCCMGWPWFXH9KXLDRKGBKJE99OAV9SOCW9MGHTJEQJZUNQPRFCXVIQMFOHVCAGEFKOVEGYI9ZTCKYSGLYCTCPKSIQDCBKZRV9TRV9YKVJDWIADYVFTBAGHZQYQRGOCHTTMJSOQGLG9JMEQUNDUVRRLFLVKQRANPEYZOUAPSCKASFAAF9PISZITBUJIRXSBSKCCGTXFKXXHRMJTGJP9CPETQKWSIPXASWBLHCTUOIKJYCGMDCPLPBPCWRIQL9WD99JI9RXULCA9HOXLXUZEHH9TFGMYXZDWYNTTIOTVMGGNKGDAP9PLPDCPWLVHM9BTRUFXHRONOEUVHIVOQLPHIRCEBMMMCQBPBBNTMSECJTFKZAWJVFZZIROITCDA9MBHBQLMQEASMNQCALIWQIHVVUPWQAMSOWUWRJJUUNYNYKHRTSFQKYELCENVEQSDEYSUAIMJSEHIFNGXIAIGMGXUT99CNOXDKEOY9RSEUXJHAMBLSG9T9CZNWXWLGBQGNSQBORDVJBXDKBHXZBRWZ9LSQAVISWCTZMVMA9BJYSZC9HIFJGEXKMEUKRFRGTKX9LGXUKCDOYCLRUPAUUDSQTPXETIREZRXQQOAXYT9BGQFPXBYQTMZWGFLRKRF9HLRDGGZ9GBMLERVBNMELJREVKJVGPN9H9BVEUZPOWDQUEJWLMHIZGVZCOBVBGINGGZSBLEWDJHDGJFQQXDMHVHPKPXKVMZE9DOCRRZNGUTUCNIDQKVUDDGOQZEZPRRKAC99SDKCQTBUPDFKIRRXFKXLDGOQWSBMOGRRTMJXX9EVIKBLTXKIYNMZADHZXHZDZGVSNQXYCROBQGOILJ9UOEKPC9XEDGPIUW9TIQOXTXMIQ9GFLCRMOERYQKKHGQMYYDUXKUSZSCCFBRCZNF9VKMYKDRXTHAIRVBWBNMIGXZLCIRZKRVCFQSTIVOHZYOJNAMHWTSXFUEHL9WDSPGYQWERYNAZMVPBRHNBWQKCOJAFSD9MMFWDJTIKYHXKLDJJT9UUGD9G9DPJAZJYDRWXXCTAHAAWUUCFDMQHUZG9BYAEVIOSSOSFJWOKQDTMCOAUIPDINZVUNMS9CSUVM9BPMPJCKTLJFCZGFZIVMMTEFAPXSYOPYWHMPUNJA9IWJWFEYMBUS9VYCCR9EUSLQGTDNRSPXCQNDMJMDOAFEIXMOTMETRMGN9M9IYMLJQRRRMUXJHAIDZEAJLIGB9IFVUHGZHMF9GFJFQXBETQLKLPHZRXQBC9QOZMEPDZXVURSVOFWGNXU9ZHRFVVGAMYLFFIPCBTAUC9ONL9KLJMYSRTBHYFJUORBCYWFGPNGVQHWI9MIYNMBBWMVDMNIDOMFIGNHUQWBEVWUEW9XXIWPVQKDGK999TMMACBAHASVWKTQALDMUCMNOSDKOUSYWSJSCGKSQQIROFZXEFUAPGHYREWSFHUQLOUEUDAJPZSSYKQCBGGNBZDULPWOUBCMWSMPQQX9BCFSJMANIPMVKBPRUIHJPWRAEEZ9RAOEX9TICSAZHTBCRKLPVLDZMCMFWZOCWKUWYDBRJM9BSJNRFHBDNXHHLLQAFQXHVYJGGSWAFRCF9JVBLVWWHVJWHTDMRVZAFDGSDTQBDBRJVZS9ECNJKLZWDUUR9IKKIPAUTSZTROEZPIDGBIYKKLKPQK", ), ( "CSPIWCWCZEM9NNJXQOSUA9EI9SBHYVQZISITDSJNCYLMKDAUXDFLFSLSEUNCYXRVLCKMJVXGNKQQRIVCZWRIQTDXSDQMDHTCZBBNCO9KEGMJNHUJQBLRXQYYMBXZNMZGLDRSINHCGJNUZJDAMXZJFQWGPGO9FCNYRTUT9UZPPMZESAN9MRZIRVVBWDDPDKME9MBHPJQQUMCJVDP9F9ZCFDCOLNBBSUTYDZQZ9ZQAUV9YJYSO9JR9GBJUGNKSYMDQGDXHPYTWKJEUVGPMXBXRHEOIH9DKAVMWZVNZRHCQEANYXEDNWVHEJBHRO9CVBVSZOWXRJJWBFVZXHZWMDF9GY9TGD9EMOFFGQWOTGBKCEKYZWSFZDHYNCEJHNX9UTTIUXULQFCT9WAAQCDTCDLULJBNJUBNWCQCHGAPCMGOXIMAHBFCEHDLRTVBJLGXHCDUQQDDERTSNKUZYNQCY9DONIAKVC9UKSGRUQHEDPZPZ9ANKLIEOSJUGAFUCLCPELAVOACUMTSPAWWQCKNASXKETOOOEUICMUOPQYJAIGLIZUDGBTUGUWUSSIGWSBCOJXPXKPEDIRFBKDDUHHYD9PKSWPPARRYVDGEUALRCDSOED9IRCNFRIQKDIXELEBIZUPGKBXTJYCUYQVWLVNDVHUJGUTGHM9IFVHKEYQRMG9KKZRUXXEEHSJFNRFZAUPITLRVJAXH9ZLH9FTJMENVRUWICSBCBIPXN9NMCKVOSOHHHMTBUPKOMLCZMPDSEWPKWSJDTTNFRPIUYFSV9YGJQDQMSKCNCHVUYGEOCDQPBAAKTPNEMJWXQSIGEFLWAQFMGQZLMGKXEDGRCEYGSWOBWUKQXGZNKCUQBOKNXHYIVXWVLLTXOYIYYWNFKZZCALHBFACLJAWKCXTTHNRBXMB9WIWV9CSZVLBVPLBSFXKXLWKYRQMNFZDAWZUFLWGWFKXGJTFZNKFKXL9SMAMLAZWMGDWF9XMCULILXVSCZTYIOOIBNUAYH9VA9WYFXBSNTPZ9OUISROCPXGBJQAUPF9UPJXESMDMOPOPUCREERRMXTLSCJIONAFMYTIDKRMMPZZJNOVGMRF9BTJVPI9PHBQO9EBMGGGFVYEYSVTJSYJPFYEJLHKVSKZYLQZCVRMF99R9S9MPTYHLCNCXHTWTMHDCRCCOEOSHSOGLPNNMWYSCJKDKUNHEZAWMFSDVMMEXIAPVRRKONFWGEUBSP9IEUXEKKNTSYGONHMWETPWREJEFEZGUKATOJ9UG9EVUZIDZQKYDRFKCLCHRPLQYFUUJATISOFMVDLGIRMZNINQTAZFMXGWMICKDFRIKGWAXRMPJKTHTGGDCUTKNGYAZHL9TSOSDC9DKVZEPMZGABVSHLGJALJPYRPRZIRBOAXAIMKMBLQGFKFBOEFULSKPDRGDBYFYIMMRSEMBKPEMPJUIWAPABZKNOXJQZZPKSENMBFNLOMUXUZVNJJTDRLGNDG9JXPXMAEOXSNQUPZBFBLHFRIZUTCEZDUIFOJEAOMPFHMGNQKE9VVNGXBIHHNCAN9HYYNQTTFOMUW9TKILPRZH9RIYFVUKJF9GCBFX9YKYBTACPL9IXPQVZCVHYXJWFCNACRJPIHRYYAAUFHLFK9OBSR9VWEMOMPZPUELASECOXMTOHPKCXHVFDPPJFVAGSPSEAYRYCP9PLKHWMMCVPOTDKMCJNJNUZGFHZTMGYNUKTJOTVAFKJXXJJIMAYXG9JLKUTBOXXZTT9KWOUDUCLXPDAAQOBLNSRBSTV9MNGBUDYOPPTZPPUAZSQN9HQ9XFIUZFRZASJQXZSQDWSSPULLCVNQWFXPXXZMWQENKGTUROQNRTUHMEXUBYJGKNOKHFLXZZHXPGPIJWZ9WXVCOFXBXPSXRGRBSLDYXCHSFZSNYHYZEBRKHYTZICUEQED9GHYFLBQAP9NUSIRFSOGINCUSZDUMPLBJ9DKIWKDDZKFOCMJZQFHUEGHOBLPNVVVPLABYMQSBPWFKPJE9HPZNFEHMHYLYPGVVRIGLEYIGLSGHEN9VAGUJRRTIO9HPLOJMRE9VCVDNPZHFJZJWFBBXGNAVNFMPEUCXMUDRJLMYHZMQ9QPSFUBAYRDTWKQNOZYZFPKOOQIFQAIW9PCLVZTCFRMQDUHATAKLLCKORKTYVSPWWADRANADXPVARNGZAHULHFUCQLNAOJ", "DTUVVKMIQHIPFKAOWUXNTAVENPMFVFJ9ITLBAYTYR9SITVAOUWWPENLJCDMVLXSSCUAFTNZZQMFOAHWXABQZEFNNUEUIBFBNWVJNIXPPF9JNAUZ9B99CJKUQR9RMZYZEYCOOSPJESWSW9RYONBMVBYGA9SDBV9HRBCBULVUSDCEMLAJNNMTWEGLIJVNR9WNHLHFASGOUHCDKXCCKLKCDKZPAMWUMCBPYRJPOFMZA9ZTPIZVHSIYPQAUDNUUGNTXZKJGWZB9KVKISYEA9UAZLRQCFYBOOXFGZJCKJGHIZYNRCBPBRWXCEMIPWFDGDEMBDAJUCZSCVJODTIIVODVJHSEYPWRVXCBGCMKRTKXOJALWASGKTPE9I9OOMUXFFI9CBSETFE9CGZWTZISXYEVUHC9SEMGRDUDWACELWOONHVRIYUXXWCFOCZEYZHKCRZDPHBGJPKYLZLIQEEOPZVJUOCLDRDZBQ9NLDRWNWGWCBLEMESMCTPDSRXSHDZAOXFPLCONHIDRHDENLZFPRWZCI9NPORPTFUPVUHTPAHX9IFFBFNTGBESEM9RR9SWAEISLUNBBZYIVJSUGTHULGIWEOVRFILLWUN9UMMPFFGOPBFOMPYIGMFQHPJZEMS999GNQYSRLLIISMYHDWLJHDSSAFSCUDICZLAKRGPEAKTGKFVNFN99WZPOCKGXFIJVYMDOBKWXTDXVFGJQYKUOQZLIWJVRJKMCQUOOHDAB9LEDAWPPDBTU9TDIOIJLHMYMGFOMLMNHWLTOKZJBBIA9UKPFLEIEQIEWHJ9LJEIDDVDDIFWYYXPVDRHDGAYDEV9LBLIEMXEBINVQUWJQIEKAKJBN9ZBXCYXUKD9OTVSXNWCCCPGRUIEOGJXOMLWBRXXKZYQ9OSFQ9XLVOJCOAQHDIH9H9WRHNIHMXO9AKMQOFZJSJBW9GKJTQXRRCQHFDVCLDXUUPXYYSIQJAOJGTOW9VTJXXEARGRRSUAKOPROCX9OSXYJFCLDKCEKDNAOVSGVXIJIUDNF9ZKRFFLFWAIKTAVSGVQEMUCCOQFTAAMEAKLNEXNCOGLDHSYIGCX9CEDCNPTV9VVY9WFDIJIYUUZKJQYEJQPRJVZYBJZJ9WUACLJIGJVMBCHTMDIV9YNXODLKZYQAKGIIOVJOJFRWIZRHCSQZLHHUTGEXZOZDVKPZAT9BVIDHOHFQUJ9RNYSEOYAJXHVFZEZBYD9JMOBIAFAFTC9AKKZLAQGRKXWXZOVATWORTWGTRQSWEBYAMYLODYNZIRQFIMNDFLWVDRDXYXTBXGBDLOSNTROC9VRB9OQBVHIIQJHCB99FCVCEDBMODAJEIHLWZNAYNEHZGUHLJRLDPAXKZWCJTHEAZ9JAVQRFWEURP9BQ9ZHWUUKLNVBGPUMNYHVDBBHBTQXEOQESQVRUMYSKJYDILHOCBVICYIVROFZFMDCCCKIQOQ9RFBUNIR9YLVCPKGMGFHEXLMQARDJTRISQBIBTHPMILBOBIWBQAWW9QNJQ9IEVWA9DXFZVDSTLV9EDXY9PNGAXJDQBNZEZWXJLSRDT9AVQSPSXXJZEXEVXLYK9JGILLDIWB99SZQUTS9C9URQXAIDMMJULKIQHDCQIHDMDY9ATXKSO9N9NJBN9HJDSTCUENWF9LW9GHBRO9IHUPFQRTIUVPGPFCOLLSHUDBAQGOKNLIEHZDFNYBFHYWEBRKSAYULQGTZATVE9SGYVGCOKAVANMMFLVOMZKFAXETTMIYMNJQDUOAEUUOTELBXUTYJPTZKDNLNLFXXHWKHDQKRV9BXSTNOYZDMKKOLQPEDFBLRN9KILPUNNGN9PFCZNKXOANOJBTBUXSICWPJAMSXGNWYIWTQKDXPTJCDWNBIZCDJKJILRAMLQVBPIKEYUOXX9IFWV9PEX9HLV9NQZZRBJKSKOGTAKNAUXBSH9LCHQMNAULWVBQKPESKVRJXKNDHCALPYDEVWOBFGTTSBGQLVJYSWTCLZKMEFRSZODMFLSZMAOOHVKEEBMMC9MIUXYOAWBBSJDZQ9NNGVUNVSIDAYUMPPLY9SPHQG9U9DSNKLNPXIFXDSZJZPO9QLCNFQUOAVMNWPEFHZWIYXI99SZPZHQDDWWPVIDQCNZIPIAPOOVWAJIDQJKOUIHNOPBHSVCIMTQMLSSXSADUVDSFTRXYAN9GYDEAQSEWMNNZ", "XIDRTBNCNLKVCBZLTUPVGHJNNRHJAUSVY9HMJKIUFQQPZZSWPLCRVURDB9QBUGK9UELOSIPSCGLNQREUFVEBZFSEURJLZRBHOTICU9BTMEPUXUPZNFYYBJ9NEKFKCKJZBHL9QAFXVPUANHMXUARBKIQBUNJMUSDZOIHCHWBXCENVYBRVYDALPCOXB9QSBJTC9AZWZYONPQKTOUCYXILHMZUSXFGFHCELPVOGAJTJMNXPYR9CZGRVI9EVXMJOJFGUBIDFYQOQLITJLHRALCNVPUEMZIPGIUOZOLSJIANQMJUTRIUBTYVTBDBYYQBDHGUGKRB9CBFPU9HVNN9VORGXAGGQJZQPDWQDIEIGZBUO9WVTWTMPBRQXQNYBTUSKMABNAIEGINVAKQSWPRAWGDSJTWUTALPVOXTIUBWTSXIR9XREQKCVKCKQAMNNDGXIEVBEQNVAMRBGLWSXLGMYONWVVDUYFFADFEZBGHFRXT9XQPZELHSGNXSBPOQCVEGVORFWDSPWGFBUMBJKCRULCFNJRKSDGQALGFUQ9HIMUPYDUAKBFNJQVXGSCWUQGQOITBMEUZMLDAXPQQOVDSCDCGPQGHT9FTQTEFBVRLYFJTIKJYRLSXDWJIBLXGH9RYTVBL9HAXKKWESYF9UTAJ9YPJCTIPDEFEVRCUFUPCQHTQPTLNVXSGEKXIVDLMIAJLSMDLPNIBOEKPGWDI99IZBFNK9LTYLBVNQIMESUKUAOIOEOWENGMODTEIDKLTCEMXTTNLDCMOJYUABCDIMDLRXAIUCHVNQOLMLTSXUOTUXJUNWVJSAOQZQLEUVQMDDTKAIU9HTTVMQIFCIMZZZDSIPK9PF9BTISIJEGFLORFBCAVAJJPOMOSVFRXMJXWHAJTFCDFKHAKKBOOAPOBGVYZYMKZQZVNMLAVJPKQYJDDWRS9OFRBPJXTDFEJBZMTGOMXLNPUYVOUK9ARBSLQBZVHCFEOPSXTTQF9SXQNFKSGWRHJRUZVYAHTOIGJDIEVMCWJ9VCNUOQMYOGSQEZE9OGGWFXDXLUVTGMSWWALGXSWK9MYCVKITQJRAQYUVLOJFEUUEXKKGFUCDFT9SOWDGBYXHMCNTEZHRPEDVMPVTIVKZYDCHLALTJFIJ9PACHQOHXRKEGVQJTWKPMSBUXVVL99RTNLQJQUPHIHUHXIJYJPZTNXDNNQWNHWWVGS9EHTDDOKNJDMINYOOJXYSYMKQ9SZQSDIR9ZJSGN9V9TBP9MUAGCZLEAXNFG9NMWCUWDFQGBDFJFNUYGDULYZQZ9ZMTGOX9ZNQNHNGUEGGRYBNLBDEYZQVUWJEPPYVRUNOLHYQNRKTIFBLSBMMMOX9LFLZAAXIOADZNWTMHREEJLYZUDNXIJMPIEWUJSACE9OSVKKFDTQVFLNFNJSDRXOFYJ9XP9OPDYAUPWZJJYTZVVUXJUA9MLJLYZTFGUMKMKJRIIXRLE9SDVZROKNCNFVBYCJXNIXRYUCRRGLBGMFNCISFWQEYHXGZDR9RJTZLTZLDFXNMLKRYTTHTOGJMBYCTZSXFIV9JGPAGMUKONQEGRXJYUZVJLBNEJHHSUWHFHLACBMVOOAGQJQGBQSYZZPMQWVM9JDUYSPRJGZ9SN9LGOCUVA9AJODRLRQYXQVUYNLAZFLGSJF9TYBFQWKDQ9EY9RVZSJMUSDRTDWXFNTNVPSJQCLGPGIMFFQHYLPEUSO9LVCVYARAZRBRIPXPQEQINYSZSMYQ9XFZLGSPMZZSGPYLNQUEZQDSJKQJCBPPCHDTNZZMAMTJGPBRWJLKFQMWROCUDSYFYCPCXLWRXJEHNDS9EIEHHGB9YXPHAVAOUME9UXDQPNVRNXNZSWBCIDEYPVQNUXQUJUYSTQNFPCHPDBBBXQKHUQSREUMWHWXNWJNRSZEFBFUNHZGLKLYUGRTFNPQDSECRAPLHMXUUMIMQCMDPISEGOTKKUSUWKUAJDWWBBWYLAJRYBWVHQQ9OFYGZNLYATIYYZAXEY9QIVSWORYVGPOGZELBRLMGGEGQAEVLZCBYDWAAHGFWUTYJSARXHUNKEQWSIFUZKHWLYHPUZXESJHW9S9YUUJFKWNZKRPBDQOLSMXEHNXQRJALCHGYLYLNRONDAZQRYCKDQENEWQNQUSWTOJRPMXDRXRDPKQNXERLTIMROY9MIUYVGCDDIDDQBIYWRKW", "IHFCXF9LBMPZEJNGKGFJONQLUHUXUSQNFFKWZKCMCALGHUZRHZUOGEMQNQYRVCHBVUWUEPSAONHGJB9EPJWWGJU9NAXYCVRHBIYXSNMGKH9LONGEGOJTLWZGLAIGHCBLVDUWCBINUQNIBU9GRVSKADSCOOZAUWUNVCURCPDKMJVODMAMDNQCVSMZFOVJUYHMUYLHWJJWDEWZATFWFPMIRBIT9NBUYGIZH9FGJVNXCDSTCQFPSLALABDQVFOIZUBIJSKIGDKGRZXTAXDKL99HLSB9ZDHRIZLXZPEWKHIBMD9RMNKKFCJITCGOTFDVRBXPADWTDXNLBDHJXFSNNSTUPAZK9RWPXOKJWPX9HGESDFRZIVKJYQZPFUJWCARTLROIGJ9ZTSBXV9ZUKHNGXZEVXEBHAIL9TPUBZOQQHEYTPPTIFWJBHTLGCWXHOFG9MCYBCTHNAZVHWHEHWISGYDMMENFBG9MUQWCULFUHCJ9AYOHOMRWQTEXITJFXIQYYAEKY9PKXAISSBZLKONHMHTSDCXITLLBUKYZJNKJYOVTW9BAG9X9TTXZNERIGPJRHRBQOBMTENLSLXLTROCUMWRTZOBXQYIYNEQBBNJHPEQUKONISCCRPCPNNFXHCMXCNAKOVAHJGFSEKATVIBWFKAGRYHPMVVHVOOSDRZ9HIQWCHGFGIXJTPIYUPKT9GHCFAUWSEWDLWBGWWADHZFBGGQCECVYDQYQ9ZFKMEJCSIHYV9XNMQUONGBROYZEMWCEOJIYHWNGEAFMKFBUJOOJJFKFOYIVZWGKBTEJMY9CIJUBONZLYYFZIKJTUFTWJKYMUOJKFHEHRI9OQNYNACTFYZAXI9ZVPIVFJDJMVTYYHDENRDVUPMXN9TYQGSEIWKNXVYXNZRZTLJCBDKFCUUTSPGASK9ZQ9HHFQQJWMDPGDZLTRPDUBVVLW9FOZXMYLQSMQ9NLAIPLMMKTCOZDYWSPHUVRZBOEDZXRZ9FKWGTJIYPKWHTSZNZMPDJXOVAGYREBIGCUFH9NTUUHZOMPYIWKASBHVCVLHUYIELMDDRFSSN9VWBZCG9QQMWADYP9MCLXPCQSUZWETNMUFQWBJWCBCHG99BQCVUAEMKYWUUCVEEUTXPYQLUBBXWIUGBVI9MAIGNZGLUZBJ9SZDXJKWEVSTFWXBNAMKUD9GKBNGJWKQPNUDQCAJV9VESGNAUZJEUDVNRKIMSUALHVKXVPUNOZLINYGUJJPTJOFSKZJKSBHINWLAMG9GKKCVVXYKFAJENPEBKSEGPEMFQJVWBMJM9WUTMXL9AJKFALVTHPVQCRLQTIPZUNUYPPWOO9RKICOMHO9XTMRQME9EDLBQDSLTGYDFNGTAJANHTKYWATLKXSDINNLERJIPGJBCXZKNJOXWGVVRPQZOQAVSGBTLSCLIYWYEDKWNLUKCGSUUDMKBXT9UAWGTOVLAQ9TPFLZHXDYPM9SKPMSBMUPILUGOFPEPG9YQUQCTQHRCEPHFODRGNROGOKSACBV9XKXRAHL9XNPDTPGXWLDOJ9GAIRGBXUM9TKCNEBQIPMYDLKJABTOAXNKLGM9SIXKGYEGYXCDTSNSKSLIGSRV9OTJHXQXBMDUDHAFYRISORFGIQMRUBIZKVIED9SKTWXYSCQUDJXNQHPPBOPUCMGPNCURFOKGTLSJHWSTFJGUKLYLIJEVZZVEKUDYYIQMTGZHMW9WJTDKBSQEZAJVRHLEACAC9XFCPPTPJJQPGNDDHDZGBHIGGJYEQQXBTHYEVE99IWQHPTOBCJVGRUFHNRJGNTVQXLPWAHTPZXZ9CPRHVXMNYDWLAYOKSRDZFQUGGYZEDKAGLKF9WGMHLUDBTDRETNGXENONDBDRI9WLAYZRIUKFNVAXCAIPXXIZLDWGUTAEGTH9GFXQVRVHERZJYPKUMTBLHQ9RJZAHGBHNSTZUDOIGFJWFNDTCKY9TWRTXDQOGWNVPOXAYGGWXLDRUIWKKNNTSOYNOVJSDNWGUWB9HDOJZTSEWRDUMMKEQDUVNYCEJASZZIPWFZVBDCMZUSC9XTEGDZVAEIYCVGFPO9MLYSGSTFONCZ9UHEWVCAQERPKUPRLNRIUXDJEYPBOUMLNSWNMPAAPILRIHRUVG9VOUAYMPRJZGPLVRBHABUVFJUXVLRNSZMEHLZRWYCTVUI9JCYHRUQNXLKVNWXBP", ), ( "DDDRYVOGWEDNJAOMAWNYEAKXUJZAONJVZRHUUILMZSCILHAYH9SDORTPZALMSZWYVAEBAPFANWFQPULIIBBBWDOLCPBUEYUQLTZFCOZWNUKGSEKZGBBONG9XNJXZWBZDGQVKIOPWXSNHRNIKI9ADLIHSWP9ADXE9NCNXDZ9MVUYXPGDT9EYCQACZZSAFC9VDULYDDBORIZNEPSPVZNVQXMVPLVBEQJAOIMOPIJHZ9YBYOZZKMEOGHGNLNODJ9DFHWIUMGAMHNWTKV9BFSFJKUFUBAE9OHYWHEAFFVOCTJLACLF9IWLHJOOINBJVHSNVKATLOSZLARHCSDIEDINQLFJERUWHZNJRBOFQZCZPEYJMJ9LQ9SIZOZGOZLKHCJDIDIRFVGKQK9IASNBYYKETNTMOKTLMWQXOROVNYFDLZQO9UETBYOKMJGMSGGGEIUWVRBXPRXBCUUZFUOBJLUQEHZROHXVOHKPTNMQPZGOPOYPXWBJMQLBJHK99RCMROARKLCOKIFEXYRVRBWZSKVCCEIZUPTCPI9VFTYJOJRMQIGMQABZD9MYHBSGYTLKDZM99BMHWQPPZKGCBOJBKX9AUYDMKAVGLYUHJHPCYHETYBCVHRVMGNMZTPCNDGWURKQJKZQZVIBPTAGO9WFPQMPMZGLXUYQUNLQVCKWCDVLPKSFJCDYOJNNJCZHNWSGGAVGQP9CMU9HKIKUAATDB9BCQBDNWCOVFBKVBUWGGZCJJNSLVRXBNYXQZRPBLTBZ9H9DNOYCJXAXZZLNQYWMPHMQBVHJUBXCHJKLKAVAXUAKXAQCAKVILHQBAZQ9ZJJPZPAKQXATPXMMRSDIXZNXNLGK9BYVIYXWKUY9RZTRVQANQSPBF9VECFZFKU9HJIVZUOWXMFHEXEWRQNFMEO9PZUTNEKMILXEZZSYQLIOCLOJPCQYMDCETSYNLIPTHCSNOLNFEAOKOFFRCJRYPQIWVQTCTGCRAFPKEKCU9PROPIHDBH9FVLBFADARAZPJSUBJWN9JZBRTOFDXPZGCKKENROUKLHYJCQOMPRPPNVDSQIFI9FKTWLPJ9MJMZZBXQAUMDYRPMNSDVXISRBCXAEURAXIEQJNIVZZDF9UYEZNAQABOZRJFTZIZTDTMJPUXOVLJCNCGOVEWRBFPCJMKAHDAHMINHCOYEZJXNDFRFNFFQFMOQVXJFXRYFLFHMRKXSEBAGXYSQ9ZJSWRGAPFBVOYV9VNLALQXPORKOAOXJ9LVWVCUNUSBYYCFMAFPSUASQUFNVSKSPSEYISRNGKVVXIXKXOQJCTIPUYMLVBOC9HHJZZQRBIPAKDARQVUGBEM9AJRBWATTTSYXPXHXJOJXYW9PQIWEEGU9GBUNUQYSZODPKFRQHNVGRJBDFCNNQQAGYGRRFZTGGBANJBD9XTDYEAYBQDEWRGYZNZOFVE9N9RMFVTVEQMXDKBPPLHKW9GPGURYQFYHLLHKJPDDEDXNNIJBCDDXJIPMHHDQPGT9OSPWCJZCVEGRUHWIGTMCCFR9APUROMY99PTZWVPSISTWTSBU9H9GPUXDLVVIAXBFGLIBZVQJLUXHSDKLMVKJFWYAZGTJPPOBPUXYSZIRBFLYMZXWG9EPLNX9ZOWSNEBIPWK9DTNRENJMGDEFMYFXLYFRLYJWPHDDKHEQMRBQVOPBLYRIELXLMVPZXPKLRAVYFEDHGHU9WUI9ACEQPVCSLIEXTKZGJXVBCKILKLAKOTCLNXYZNSLSWZYSVZCBHZYMMHPKSOAUPZPUOWZBVFRGCDUAVAHUVWEBDKFQTRTPMAAUHOJENJYJOFGCMPDNZKOUHRADBJV9P9KEPITQGELGKXKROGOOWKBDIVIMJYLBBSVDWJNOQEJP9XGNUBWYUYPGYNFQS9LUFXCKVJEYYHLL9BPBBICPEHCXDBSQVMCEETDIVOZIPFGMOSZCESCCMCTAIKKYQDTMORNCWLWQENVNTRZKVKDVQ9GEGIKIYYCITWGKDSVUEKCFNRRYUZTWKLXECAWFNKFHNPUDUF9AFOYRSUVLPJE9RCWJNQWSZDG9LFUQNPGAGZOFZUJGIKCJZDYBBGHXZTYJHSGQBCGGTUTRNFOCDCUHHPWLOZXQSPLJJEWWQZT9UKFAMNLOMPUGVUY99WCLGZYQLPIBASGPUSADYEZFSDAVXFCENAL9VPZWYMCWTLGD", "CSC9HPBEGOQLTLUBFCETMAGM9XHISYVSWRI9DNAILRHXASJR9JWTVKICGNJQAGUABIIUYJKJMUIBFRIAWTTICTDIXHOJBEKWKOBQKNPMNVDLAQFROLJHCPSH9IDVLLRZNKHTNIGXVUZAOYKGMKMRHV99LJEQGREDEYKYVPWLTDQMPFOWJQPBALNVUTTGOBID9NZIXKVRJOOZ9AJL9UBE9SSEEEIWRJNC9LGXRNXBVMXXSUBATQXKTBVDEDWWZEDJYRZLCLXQJDNDDFHFKOXYZLGNMKYULQQGCHMCPUDC9SLIEHEBSECNYNHPDZIGRMXDIB99OQTQJCTT9BRXVKOIV9PFJEHRRDSELECCECSEHMRUSO9YEARXFJIWNHCT9NPLRVPQXUVCQGQTHWYIVQP9WAFTJUWFHRWSTUIQXURUUXSKFE9LBUKGVQPNIXIPBJKVWJKIIS9LFFKTADGDLPXCMJFKCRAXSMZLVGRXBDNH9BDQXPPLVYHZQFPNFORFONR9ENQDJCDAWUDNGPUFKBBXCT9VGKPSFQTTQEJGVDMGJEFKPDEFKQOZD9D99LDWNYWLUOMNGXBUHZTCBRHYJKX9IYVLAQUNHJSFOZYFFXYJNXWQIPAZDSXXLUQXAUSDYGYQGNXZXXQDEYZJHJMYWJGFGMINQINECCFSWPCQY9BWUNSPZJWAYZSAMOBMTJAJDPQFYNCYYCNEAQLDRV9HEQRKXYDIWTNJPRJDKYPOOPZPKXLVUSRXLRSLVN9XRPYNDUVTEUDPNQWGHNLFIOPOXXTKITKBBZFHIWODAOKEFFDRYCIOYFN9LACLMZGGWSOBXRLLNL9ECOJ9ULZKCAYRWAYNZLGTSSORZHQVJEHLNKIXPWZNOIDNFLWYVICHWEDPEDSJVJGYGERMKDDERBGAWJGJCTSQSE9CWR9VSIGKPJXDGCWPV9XJITF9QXZQKYFXJEILSKZHPCYWLLYBGJH9UHXEEKNM9WEZMTZOAP9DYEQVDEMDJNCGZJZQVBNULRARFBJPY9UKGKINHYETWWYMUYWKFRQEBTVJDBPKYEUQAQF9MMXPQZTRHEPMZLHW9YPXRJY9CSUZJVCBRQWEPJFODKDSDQSTLTMVXAMKVENCZLOOYZWYUDQRYMBWHVN9KABTDWLNMIWJGMHPXVQ9OOQSWJSUZHNOPYKHRLDMQDNKSIWLUNZFQGQN9WAFTOBNDVXWBWCGFULYKALOTCEXUUYFSKYXVRVATBGZTFODZXVCRKBWVIVZXVOYCYPSAOBIRFFCENSYIDJUTLAJQOMVSVLDHATPFHOPLNMWOFNKQASTYUIPYRRDKMCRTLGDGNFZKMJCBFUHZHIIVUH9BQQ9AQQQNBPJKKSWQWZYFXVICTRCVUBVXUIEJHKAHRTTFWEQFHRSFCQJI9PZKVMQBGCGFOAQSU9CZVQKEXAIJF9ZIELDRZHCWOW99ELUMZEGGWJFPIAEOEJZQQBDRRWXYGEMGAEXXIRZ9CWREIKRVDMMKZHSELFOCTULYHUYN9SKTIY9I9NYSEGQWOAPQUVFQMCTFIUIZOCMECWJDYLERN9LQ9IYGF9W9JEEGXAEF9AYPJAKAYBLFYKTKFFKEHXWRYKYMJHAQDJBAMUBDHLCAGBHXHXLUNIKACDUNVU9DOJKY9NTOTIDSZTQPVYLJZPONKVOFLA9TCSTXUGE9DAVMSJEJWCWXZGLILZXKF9OXSZWNCSZJLIFIVJSMBHPDPYFIALOPCDXDHNYZWGNWOOCUTWSLSGFPHBV9GAUOYGXUQIFICVUONDJNPXLMKIOLKFUKAC9TNZKDPMYSXAMFDEFFEAEFTNFVKMVLEJIFFXOEGKCHJXDZLNKFJSGQMDCWQDTIRTZUOBZLMICFQGINEIWL9ZGSWTJBICINJWXDRTDDXJOBBNCWZGIZHVUNBWWIDMPXILXWESHPAVPPYQDDFXCCFJRASNECHLUHRJTROHHDXOEDGMNMYHCFTEYMUPZAAI9IA9VYTVJQCHDCNYFV9PKWRUMAUPVVNJKWGBPZVMLEOBAVNXVQIYWIGYOWDXCWZUPJZZBGWZMXITT9NOULJPZJQJGNUVAFZCAWKZOTOVTPZJ9GFAPOWICQEOPILTLPEZZZDAPBBGBJDEXXKHEFXXWXIBCLQTRRLZRJVDHIAJPFTZUKJMHTN9NYMXTIZGJSFJZXCC", "NRJQACAZPIPVQIOPCGXYJGAJXGPSQZSGLGYUQUB9WYAEPAQRPXHAQXLULIKATAWPSLSJSKWHLJLDAEJNWPLSFOBTRIJBAYKJRQDWZZADO9R9ESRXGKKOXXQYICZFGDBELIGFLLXJUKWHQXDUMEALLCNXAJWBVQCVWLXQBBIQO9QHKPTIGPYCRYUMDDDBLBOUPQTPFGUBMIYXDHVQSXWTWOTIRSXTELWNRLWZUFKEQQNCPXPWSRLAKX9IYXIKCYFCSXCYEZPTXTTNQQIZYSSDVZQPCBWYVTYPPEXRCAPWPTUVCXJ9APQXEEVITANLS9DMWQKHTVYLFJRYSL9BEHPNUQLIHYGWNVYAGTLQPDR9JJNCBKEYW9ZSFOVMCGSSHWIBCZBQVKTLGWUODUYSRYHUX9GBHTQAEVSXWHCMXQINZVTK9LJOHHIKNRMAGACDUEFLQ9VLCZVFZCLYSILXZYKFH9FPXDOWTMHYKJENSYVWXXHSDQMWTFSPLAUQNSZFMCHHSDANAYGGIDILFPSWANGMNKZ9XMNL9YTFJPAVGVJXGYGYMPFKSEKJGITCPEARHISR9L9TQF9WIWPTNHBWQBOQDJZZZWZFVUSFLIKPGNXCJZWCAKGGIPVJVLOCMESK9XGMIXQETXGZSXEZETQUCIOOQBWYJVXYXXHAGIPDWOSHW9QJHW99EINXSNQL9JPAHBKDVWFSULNQYTIXTIJCZCXJEAUNQTTDCGLHGFYP9S9PMJVTQCLOZTJMGIYHXISIMUWYPEYVOVYAXWASSQEMZWYIMASCYBB9QQMQWPLXPZDHOWJ9PMTLKDBCCSOEQE9MIFRVNAARZWZSEGUCWRK9Q9GNAPMBVTISZLCROC9NRYWFRBYKNLECVSSGUENGYPPZRZNZJMYZS9ZCSABUABWRBDNGQSPJOEAXTWCTKZFXJVUWQKTTNHTN9CAEFI99ASXCQWRUWHYIIGPM9QEFRYKOEQEAJCFFIV9QTU9GBPTGNFNCQXSH9Q9MFTMTJAMHDPPTPAN9ZGSTWAZXVDLCDSQIUGELGNAWDKPQBAEYBIJCZQHJNDFR99IEFSFUKSLPHVXJRDIWDSENQSPVN9KGWZRMOZWAQRZGYOHHKUAROIAVBPEWNPPYHUYWUIOCF9ZSFBDNPARJTN9EJVPTWH9RZT9YNGYNRTNXZVAFWJUZNYHHLBXNSGPAMRSZSQM9RFBKRIFQHQQFHHHTEOFSDMNMTMDRDHHENZRLGEXFLCYXWFUXHJROEQDKPEQPPXNWZKMRGGEAVAXLMHRRMVAWFEASNRLBHGCXVTCBTU9VMOYVBMXMVGQRF9JFXDHOZGC9KFACBFJRGBJTIFAXNHDASENRCOKFHFZH9IPJN9PNQHBTWGDDPBSCICSKACXGCBEOVGTEHKKPTYDKMQNRBZBRJLKHJABSOZNTWUAHDQ9MAKIN9DDKRRUGVUTYVINGYTVUPOPUQK9ESBOBAN9NCDVNJCYUNMGDHYFWKWBDLTJQWZXMB9WUPNWCICGDZXELBLLLNXQKNJWYIJCNVCQRTORZGHBTCEWYIMJNJLWATEOBGRTSLLPZXRIXXJSCNOCCUQRFLTNRVZSGGGCCOQ9TXYBLRFECPCC9DOFMW9UMBGR9VXVTSACBGGGCLAZNKHPRCRKQCNHABJKCQVAWIIGSLTPEMTCMCZQNSZCBBWFMMSLBRABSWOQZLDZSIYQZNBBUFYYAZHVCTTPWVYPPXBLPFGBLDBLYF9WYUDBUKP9KR9VIKEVVYNUWRTGUPZMKXSKKLQQVOVERYBUKGB9XXDH9DDSYLBXBZWHGWRLHMBWWQYQKGSGLYAQPKOYLYKCJPVAB9LAZEWUGROORWJOUREWH9NETPOCSJWRBVYVJTI9HJZQAOQZBDGRJBN9FXZJIYTGOKPWQIEGVWJNXPQHVWR9GFWYUYQZVVXJRKCBSBFXCWFXLUPYBY9VXSTRNMGZITWQFAUEPRVACMIITUGBACW9WKKPELWKTLZ9K9ZAUHSLMEFFBEHEAKZTHKFGLOCKMB9OQHFNWNSYUWUIOCKNUURTGQQHEMVCVLVSDPBAZUZRDIREZLNLWNDBYVCFGMLONQOZHEQFYGCOUMHUY9VGPPBZUBRRCUVDFSCVEJG9HONOGCTMHMXOXDGSPPBMFQWDLBQGWGVQFRHUMQEYUIQP9FVOKTVUTAQX", "TNNUBROQPIJTUKARMOGKYHBVEVXHZGJEHWDEIYIYSPDSASXKSAOZRCUWWLDJTLDJ9QXBDQPROADWNUR99WKFNZNXQWWJVSVVONCQKOJDIHYBNZWGGPVALYKKGDTPMUCZQ9ZVFQCOLDCLS9ZQOBGYVZPIWIMSPPKJY9OVZRRLEJFIDTKLP9C9ADOERAFIUIUCWHLGDGLIV9PDWKCYNSLK9CHAYHOEPOBEDTMEPQICBQZAXCMRLNEEJUTYWXYRSZSLNQD9GMVENZVLWELILXHBRBLFQXXZMTZB9WKCBUETTVLQTCRLADDCUGXRHGQKEJBKMJYJDEQMSLQYQV9PU9MRBIXUFFKBEIRIBTZLYUWNUHG9XJSLNOTUSQFIBPSEQWPNLPZUWAOOU9KQKLNIHQZLYDVQ9NRRXIDKEOKNQRQXHYKGBNIZ9GQSQOZRVVOSKMGAMTHGCFUHQH9NRVWIOTDUDYSYIWVNDYRDTKQLSBOYXTXNMQQZWNEBOKHXKAN99UPHLQY9SQIHYLUTHPFDKJMRVEFZBIBEBLIRFIHPGXIPXMJSW9PVWPQFJHKI9TE9VBDKCYBSSUUDAWKIY9QELIJAZDNLIAMUMWQMQPEAMHGQTOBHMJNXVTBQHUHAUDXFAKBBSDRY9SKHNHOAQZ9YKTMBKWAAPNH9EGZKZKSTGUGIDIVLIVHAW9IMGZTNFUWGTXNPJNPURFEBZTIAJWZJZRMTJNTASOUUCNRRROSSOJGDMIKUODWJEHIYXQWAAPO9ELXTTANEVUWNM9XPRXMSNJBFXGOKHJSPRZXLHRTYKQTSDDDXXWWUJ9LMOKUKKKAYLPPBJLDVRDMSNYDX9WRMGEURBYURBTJHFWJLHAVLCOLS9NAB9MVSGMDUFSAABZSUGAKKGUJMIAFIODFJCANWJMMROTIZFMTPQKYZFWMGODDHIDXMGMGBFURGJZC9EUHSOGAKGXQOBEWYKKFHRZEAMNCESEDEBTRGNTLLEXYL9JIGTJYXABIKOOQGIXFGUJCFRKYHYJKVVOUXUTBJUZSSQVOYHFZF9UKZNVABCACAARWXPOKQZKCFIQM9GHGFR9AZNVZVPUSMKZEKMAWBHMGSEYZZPGQQWCFIOMAXSHGJBLUPSAQORCZADKI9SPTFOIDVWUIGEHGCMPJPHGJHQXVQWQSSAOTGXYVBKILT9I9NLTEMU9NSZFDOTLXMMMJCUZYW9WOZOGRRSLADFMYLZBS9MESFJDCEEMQDDVUHDLHJWBDU9OGYQREYVOIPQBQMEL9O9EWNBFGLFZQOWJRGFWSQFJMGGZEJFQTETFCEZGIUPIIMLAQXJWHCWUXRCKMPUHLJBRFYNTBYYZGLFGU9HMYYQNFKITLMVPRQUHSYNAZJMDSEVWIFDZQPIGEMQDBYGW9MNZZVJIYTBJIRKSBGLWCWPMT9IFTENIQYNKAVZIEOPWNQLNHMLOSN9TBCHPCEPSMVGXWXYFJGTRTXFZSYQMNNPEAZAUUNPRASYFMRGDSBAZFSESNJCJHEXOCHNIEOVYHRCHUIXWYHJFDPPYWTBWZPLQDL9TYSTMXPWNCJFPZIXLWFYAUZXRPLRLHSKWJIPHTNMWVWJZKCKBEXPAGYG9HKSFA9KJIRQFHHUQFKOYHZFFQIXCGUBMZRFPCQSK9GVCDXJYZX9UVYKBTPSKPHSDPLXUCCZNDCSMGNLGTAQTQWJA9PKHKGRGKHZKMTVNIWDQFPHYCCFWIZVDROYCXPPRSHA9FRLKYCGRJAHOLG9HPJTPZKNGQPZBNSPLYFQCVNKCDHC9PAQWAMFSMBQQNQ9JSZSGEPDVQDXNQASUDBGOCB9LUOMDVWBEPYYGKJWJFOQNKTRDPMBNJFIBTOAFTWBBWQFLSXNCUEKKEMMUEIEWNJGJPQMDFIBABUPVMOIHHGAPKCIXGNGRXTXH9D9BOP9DJHIUGB9PVRVYRQOVQDWUKPQWQDBCPWAJDYKQOKRS9JPTEEXHUFLRTKXZFISJITVUIUWCYJYPWBWGCIFFHGDJ9XENGNLTGLCUSQUIVJKZEUMNHMLNOMTIWXMVZCPAUJHBBXKEPOSTANZTIKWUMMKPQH9BQCI9LTTMODQFRFOTPSFZYXLCF9YLQXI9UTQFHEKPANUVLPKJOKUMGVGEIXQITGLKDLMIVYVYEVQQFMXXHUHCB9NQQJORYQNXSS9YL", ), ( "W9ECPBPMON9LVAMZAK9LSIJKBRBFRW9QRPMSNDZXCHRNGCHDFZCZCVGRQYY9JNQCYFMYMXTWQVXRLHHDNPTKTSXLSAKVSEJQKBUKMSRRZIUMIZSRDXHRWHMFFYGHDPHXGYMAUKEGWODVHXSNKFDJZMDTCSPZCIP9PHTMC9MYWM9PEYTUWZKTRBIVCIDBFSEUSLGOYEHAGOPWLWBPFP9LJHAPWWJVFOMTMZPWDSNSPHYXKTCQEJ9UOQVFDIJDXJBFFBU9IPXEGYE9LJCLTSMZV9PBFRBWNMRUSTSOJAKHMHGVLUCSK9LHHXWPHHPJXHKXPUCSUJEPWAYJKADEQNA9CJMHP9DILAUBPHQECMYWVBAOCOCCTQIXPOPBJCEYCWGSIIKNIGNCLDDLYSBDXRUTQXMVPIJQFDTIU9JWQLAWVOKIJXPWC9XVYMHFSAETJHBUCBKNIY9HCTNCPL9TK9XEZIPIXQYYCOTMBCKNKZBMJYLNXTO9DWHEJGRFBASPOLHAKCBMIVQHSQFAGFQLNGFWWQGSKROAEIPZXGIYPEMCBLUWFBHAFHPDCDXJ9N9IKCXAZPBLAAYKBCRIWZITPNTVUVHOKUIEDEXBPEYZJWGJYTYWGHGQNLAPLXREDVGUI9F9KRVBXMYHZKWATYUIIMBSKEHHTUNUKCVNCARBTONHTVMJDQGWRIV9VQHIWCTYWHAVNCPXINGWYSMFJMJJMYOXGHVCBXSERMWUPRIVNSDTTGGKPY9AVZTIDNWIHUQ9CQRNOYJCOZDWQXWKSLAYGGTOU9IZYPGNIJZMAULCPKZHLOJKCKVTYGLPNJM9GJFPGWNUWUJSJ9PXTWGUHAHEYODNFJQMSY9O9XKHVKZOHYRZVUVERKYAFKTLJPNCK9CI9QLEZFFJXRVPFGVXAIGWT9KSXHNRKLNBGFFCPQSRQ9QJYQHQNRAPW9VDLUAKJLUBSLDJDFLGSKFQHUJDFFCWVQMVTARAYBXK9I9FVRYNJTQKZOCVAIGRWKTHXSWGLMJFNL9ZTRKNRJ9AUC9TR9QTHMMMJCIFRCAG9RCIMWIJKJJUWJQEWNT9VPUICKLEIGKUV9FHFPQYLJUBZZKEWMBFWNTOI9VHZUMIRVGCWTK99DFUMPUUZKIWYOARDWGNVODUXTKQKVYDPYSBWXVBYRAGUMFOAUSOVFT99EUCKESQEGQRMQNKCTD9LIUNSSBJODLLY9LBLKIIDEOITSJHJHXNRHTPGOSHKPVVJ9IXZFMPEWJZYZ9IIHQZHDFD9VW9FKLQBSMDRLGAVWFNYXOHANCJGAAYTK9MDROLJLO9P9SDZEAVHWXGQXCBDBHCSRNMVBHUODEORZEXMMHCIPHTKHOFVHASALJLKRMGT9NQWHVZGJCVAVNRLVITZVTE9NJS9PGVAWCDDISDVNPGIEHQLBFOUZUKWWVRPJMAAHTAGOFWGIVXOYTEVWWBZCPXUA9ROBRBCVWRLDONVZUDPSCQ9MB9QSRLYRHIOYVTFNWMRYEIZURTFETLYGGBOMSLYCOIXNQLKWKGRWCSJUGQJMOZIVYCCJZEGGXEDGAKHALJSXGXKGNPFFNDWSUB9UDNDVJLSWKSWKUBJVQFZSR9BKSPAMKYTGKWNCPSGBKMYGBEIHNGTYSHXEWYDKHMJTROXFMKYLMELPSRDOX9JI9TEOW9TMVRGYGV9OBSWGPBSAIXOA9HHXGYAIXAMNEBCJGJVOCEF9YCJSJCWGJYZNREIGM9MYAZ9XHAWXNUWBUWCFQVFFVKTYLIVJKBKUBMNDEAUPUTUPLXKUNYEVCPFAXWDILIKUEFLB9WUQKLRHDKVANQPWXNOUGZPUATJZTXVM9THBBVDXCFRHATHPKKYSVMVSJCZH9ZCKHQQGDTKXTTPCOZVHNKBGUVTULJZCMAKXHV9CMQN9P9XO9ZOPZJEANZRQZNOEFYSOKAZOFCCCESSNRFZBROBKPOBLVHYOBWKTCVWDEVR99HZRQDQTXKKFRYIPGH9TSASBEVSMXRDNH9BEJATDDNUWMDQSYTJU9SZKIFIWFTCACMFPDMYGJZWWOHVXBC9WQDWXJGXXRAAOBZEAGHKVQCSGARRLZIVROHCTTGGLWRDNUD9SQUNJZRNH9TOWTFCZGI9YCHITCHSTV9DYPULHOLLOTAUJGZSHFGOTFGHBMUEFSVNVXZVJ9PQMRGHHE", "UIHGKSJUKRYAQLAYDZZT9GMD9XCNWBOATLVAXVAMEPSIWCUDHZJVCFNUPHOSVIMWQCYTACJLEPZIYZAAWKTNSCETUHULUBSCSMSMVMEMOKBZ9TAHTHHM9GKYMJYZDKHOQLSYSBPHSCIZKVZZRE9IZWOS9KXZJP9VZDQEZTPLSXFAIIE9ARAWDRIYJOEBVK99UEJXMACJCGYIERGWSRDEUWLKYNHZSRKOR9SUWS9HD9KBSZMFZOAFQAWBHZA9RZWTWWTOSGDBJIPCGLLQVFANFUHCZMHKUNTTWRUSO9GGKPMACQQAYJCEEHIODHQXBTEPNBMBJUCB9BWUTIWIJPGWBTCKDTBZNWVYMYZRJHNZYLFCFBPANLIAQYPBBMWTBSSCWKRNZBS9AFVJUQRQRQIZDJVRXZWWMHOHNDKXAYEMPLHVVEDIEZDHLUOIMAUYQIVXXDTJTVEZTYTPMKGPODAHPEWZYJBRVU9EILJCE9GCEOKFEQYYQNOLENNWUQCBOVSILQWFQJMHXYNAKNTGJIEXOIQVRHLBVKCZPWZF9NMTCNGDWSHRAGLDPFYWXCLSMO9WBFBUMNCPOTMQCLRNBAZLUAUJEPQQFTKPGNIRTYKUCTQNDMNPKSGSFREEYOZVJMXTLTDNMHDCEXULRY9PORYTDELO9HQHEHIPILNQSDFIJUAIZBMCSPZHQANAMTNRDCPSCUXKYZHKMCKYOIQIHVO9LKKVXKG9TWOSKFCDVADLWUPQY9GSPCWGDJEWSEKIQXGGZNQGGFGR9NCLKTY9DLKZWCWIRVCGTOCNDYBRXEMKJZQKO9E9PTXXSWDUMPBNGNITUFSDANLUEL9YASFLGQRLPLJIQJVMLCVLRGUAVPUJYITCAK9ZVUCRENRKRKCVGBBYAIPQFAVYIXMBXP9NFJIHCCGAJODRIS9MNCWIAGAFRZPYJCAWRWUNULXMLECATY9LGBCJ9DXYSYKCZBEASMJJCCYIMWWIIKICARPJBYBKHJWIQGJOZGSYUHBO9IUUZKXUNKPNKCGBRQHJPQDFA9XLVVKUF9TL9AFEUYMIOPEFMKOSWFVDYYE9FOPJOGFJQJVBACOYNAUTSNKBHA9XHP9IBVANKWCBI9FEKESXFYCSFPLTPDHZQQEXINCGTYQPMPNMZGLDKUWXPPC9NGPAUINPCQXIRNILZRMTDQXPKEFFOKSJIQSDXLINZPH9TWMXEXXU9ZM9DOYRXCHULQN9RMNQGIUXHWKVNLHGYQCALHFDHUW9AGNNAHASEYPOOALAX9ZL9HVBKKFRYRRSUOUBKAXBNVKBGADNPGKIKYAPN9FMQQHKDROHNNAGAPNPEGJWABKHYJIOMFRBXZAZUZVFEOQDTBUVAIEJKIASDKHLIHUKDMBNQITMIZYUYXOWSAN9FUGSCWDFBAYTMLYCWYLDQVKPVMYPOKA9GWEHKQPONQFZZYYTR9JLQDVVPBBGRGKBZFMHFCXBDYEFMOTXEJT9WXIJBVJIIWYPJZVNOHGQAO9LEXATFMZWAAPWBZPQRZHOAYSHKECUTSWIRQOLQTFKNBMZPCNMVSIGNNOMPZPJXYCHOQUQXEWKPAZCHRDDQRPOPLAATYMKUTMFLPSYGIKLTCKBNIKVJGDLTDXCRESNFRAUTXUA9XKIG9WFGOPYGXEPETBENGSTYWYMUPPXKZJXBFU9FGEUQAFSXCACJXACZACJ9QZSYRFSJIJMBTLFGZDJYTDFKLDCZJVKCUQPSJRQLGMCXQFBOUNHDFYJMLFCDFNCBMVI9GPVQOOOJAJQXZGCKFCGQBLHAMPEBHUURHPOIVXLMYUBEVQWRUOTDZGKBLYFP9UMYDQZYWKVOGHDBDWHTHAAPIKLVSXZOYLSWAWOCO9SDSZDWQEXHHBOXDHDNOGHGQVS9JKLWAVRUSEFEIIBSHBKXC9CXRZRZADASNBGASTLTI9YSJWICCTVDRTESDHUNKPUHNXEIZKJJRBCNJRGA9VHXBWMAHUXCJTSMNICQJMKCUSWDAHIXLUZQDIITEWFCLFLEVOVQQRKZTSUGCDTEQPEONILDAIDTMKTTZ9FROJJUGXGBLVJ9PYC9WNH9RYABMXMRPGZRGCBHFKIC9YBVXMELNAOBGRFJMLEVOCXSLMYCCNKJQHPY9PDKZSBFOEUIXLOEIBHEEEOPGWPTNUVAGWZHVIVOMSZTZD", "INEFRUDDSBRDHFBIYEBK9RODIPJKSJJVYPNF9VAGR9WKEPKZFFEITVMNEGHGAIGTCYMOAVYDGXHFVSSSNPEKVZOSQIDYKTPJRYGEDPOXUCMPWOVPBGJZOTSCYWONWPKTZPNMJIYTTVISIIKUFR9CUKOBNCZTIYFVQAUPBDGXQTIRALJYRKPCMROOM9CTQJFRZJLKZLITUZKGFGSHRFSJWWUCJXATEKFHHQMJPYOTNNLVJGPOAIDYQEVQTFPVKGIFGAPQOZPC9GUPAOXEKI99NDCEWTDZKRVOGOZKAYRISNYJHZHVIOEFTMYWGNMZYBZWVXJBZMRFFXRGLYEFQXGTYJMTUZNQDEUEEAEWAYLKCXIWJGGABUPWZJJVMWYSVLFGCRQUCIDRZIGKWLYVYCD9FHEHKRIVLSOFWVGEXGVQKMGTAA9VJMTUGYGYTFXSNTVUPCRKCLWRPQUOPXCXYLDQJKPCTR9EWQZXYPZTPIPAVXORTPAMM9SVEEELP9YDJCAGDKJYQJEHOUJUTDJNVPNKOKITBOGOOHQUOINESQZEZZI9IDNSVBXSMJ9WDS9K9GEAMLGZBYYHZKYRUQZFZAIJRBZDVHJGOSSVQUPDIUSYXMXFOYOFWIOWFKASKJMMHOVQYZGZQBY9KJNWIKRMYIG9CVPXVSOZCBBD9THEEDUPHNIGGSHRJ9LAIPWDZQBYJFDR9VQE9BKYBJMUZJIQEKXVMTJ9BHMNF9OTQOFJGUBXWSOATXGVUBLJXNMZAGTD9SONGKIBJUFFXVMJLRRM9YTHDHIHTXJPBOSWMUTKOP9ZKGZPYBBHRG9JTI9A9FTWUBVHEBOYYRJYEABAQRFXMRDKGPGFSSAIJASZXKCGXAMLDDJWDMUZIMDDRKGEAGJZEEBHOIOKIMDMCKW9WDBYCKEOOANVUCEJZZWMKBVBUTVQVTYCKJAYH9YENFSFYQWLUDO9EOQAXD9VYJCKWMEOBCIXQPIRQIC9RCHDOLAM9VWZXEJQYGASFCJ9MAXLYURGKYZVMXQTYDFGRCJAOMNZGYMIYK9BVIIQHPZJWBMWHWPPTGMVWLW9WN9PRBMOXKQIDTLCWRLHL9ULDPIQXPHFJXLAQCZBSKWCGZNAVATNZHQYP9YPGAXKUJWVIXETI9QMUPVHDQOKGWIFL9ILXHJYHFCI9GPDYTZQKFRHORJDDRLDNX9VLRO9I9VKBZCQCSYGRCTFQYAEERTYNJBCFVMSXQKUDNTU9OPZUCRMLUPTMDWDYGNSZSEELTXF9XWFUDIYQIEEFMWBRBZALCRXIVNRGVRXFOAKBI9OLQZAMNRMWFZSNVLCTIIQXGPXHMAJAVELALBSPIHNFBQSOUALKZGRQULYCJYRWHNWWQVXJCOYJR9BLRLXZLYWYMXCRGZHAZBX9HLQWPUUAMEVNONGLRRDD9YLYCZUHTIMJZWSQVS9MW9ALQKSLFUGDZ9HJQHOHKAJVXUEHTBVWI9HKZYHOHFM9RZ9PFYVUMGNTLPDGTDRXJGANYPZDJACTZNSEKLUXVHQGWDDGURLIEE9PUXCDDCQXBPRGGY9FVXPNJHNOBHIKLBKHIAZUYZSDVWZJBIIYVN9KNKIRALPYCGGMBASDRFMPZBCOBLMYCXMNKJHAFU9KTYW9BRUYIZNTSODUXJH9VRY9YKXZCIPZPHYDBGLQWPDNLIRGCCEIMAXLUJCATXRNSHLNBEBNZYSEARCYXLHVHRVEEXNQA9PWF99MDQPGQKMOXOYNSTTR9UZUADEN9QQCTJXGEPJHRROASU9FEYWFEUNWIAEDX9TDIZLUVVPYDGUZCMFISIROVZGHMSF9AZHLNDLEREPYNHLNGIMGMROKVAXEIZPLGFPMUM9UGMT99UGVBECAVPTE9JQGQMIRABOWUDNJDSURDUODPZYXAQDHHTFGJXVHACAKCBTLTCXGKGBQQEPPEZJKQESVQNHEJZH9PVXKHSATGDRGGSYM9NGEHNQJBPETBGBBUWJUAETTCIRPDEBEDEJZGQ9JNQBXILQRPTBYAE9MWEITKGVECGKKYISMZLSJZUKNILPYVPUYMAQZMWZPYWXLRZYVEEZIZLVWNYOKVZYLTYPSHUGUI9XKGMRQSJRSMGCAZQUWMZXN9HHLIICRXYLTIZCWDAEYCCZPQABN9RAIZJBUMXEPNSHUOWTEOQBHBZEISSWDHN", "HLHFGNWNELEV9BCDFAAZIRTINBDOADVAFOTIJQSQNMEZEW9NXXQGTILUZRUMXDYAZALIAMQHFRWWHKVVQXTEXUTKOMLWSSUFS9DLMNAXLOKCTNAKSESMWAJLQCALXBM9RSATCBTSEQLQWR9XRIMBGDEP9RCTQKQLKLQQQLIOMIOZE9TCPLNKBKWFDGCXOLTLFPMGHJAPSEPPIPWLRO9ZSIKCMYPEIIOCXSPWKCSNBYTSTK99APAHOCVXMDOWJNJFIXDCXRKPFCEVAEOGWRFTLPNDYAY9ZCUIKJGNFYMSGVJGVL9QEUYSXXHHAZLZSWHAWLPDKOBRWPRFSJWS9PLKIWDNXXR9CTER9NVLXOKVSIVZ9JILXLXWTOAOFBNHMVOCJHEPBOOGWHPOIZDJYITRKJEBQBTL9RZQLE9CG9O9JXE9TJWXWZSXBIDOEOLWFFKIWMARPCFWRMEIPMZSPXIFCUBKBLSRC9BSAKTZCYUXMMIWTKGJLGJCVDDZTEMYQPAXAAHKMIUMSBFJCEPXEVQEKGPNMQQEH9UHTCBPJDPBXE9X9BZP9JP9POMZQLBQKAOCHWUZZMHXIFTGFLBOLSLIZULQXNTNXNXWWXDD9YEMMJNHFTJLAUBJIAHLKPSUZDUAUPCDLLLJOADKGLRIJQONOAAAG9VBDV9EZERTIKZI9GKLTISZHXCVPLXOUM9BISVYKLYWOORAQ9QFWW9JXNZY9GXAQMDVTYLZJOGICAXKMHCXGLYQEFFLGDHSOBKCSYYBJJJABDAIQ9IMGFWOJNHKOQWCXRASIZNYPRQLBWOGYIP9OSAJMAAYLLFSSM9MLPZFCUSVLGNUGMZDBDNEZZDCIUAXIOLNQSLIKWBC9BWSJMSGOINSLRE99MIPRAFABUYDXGGEHRJTZIDBUDYFRDXNKRYGKLUKXKYHUKZIAXJBRN9XKUVLNYUDPNPMDI9SNTVGAWLHWDSGRLAPZLE9NJLFQATSUZDAHEDELIPLAUQ9NZHETII9SZSNDCUMEZRXYLUOMOLMDINIBCQUJL9PZUMXLONARQMKAKVKDBIL9EUXAHBEDZJLR99V9DVMDAAOKVUTNFBOTLPVLMKUMVEWMTIDXZOP9ICETBHHVJONRPRBXMEXKHVCFNSTWLCFHOCZGEMUBXQHDWEQYSQVVHYAXPPVJEYSBQTYBDZBRDLCQLPDGUUHUOWZOCMELORBOUFPFCURHTZUVLMEERLXQNIPI9JCYYVIPOWWGLGCGMHCCYVDGIUBLQIMDBFYKKODWSKLCTVWLQKMPC9CAAMTVCHHLPJL9OYXSTKBXAIHNISIHVU9VXBHVZGECCJ9Z9S9RXLAGSEBOBNAGIONMWPGVGDS9SUDBEZDTMNAOLKSRAKOCIZEXBYRBQIBVC9DPPRFAAVIOVWQ9J9ZOVCLDVAJDPWUERZQHBHRKNMUZJQFFBQPPUTMJAXLFLEAELWXOQVYFHAYFEYJAYYQJVUPZXFIBENCRYNJSONZOEYQPXQYUHJARYKT9HMCLGOCIADNXFEVVIGMOJJRDFGSTQOYJ9IINCWETDGNHHFQVKYIAHRWVZHPFLFNGZMYHBZGMUTDMMFJDZWNIYGVZLIXKGEVLVKUPGRAPXPX9EXCSNEBOQSFWMTOEOILQYMFWLBDGCKR9JSHTOUGKFMCACZECEGEZCUWNHUFIJFLVBUAAHABDCHLXLFGMGLVGLQQUOMZZKBTTJIADNXNVEYWNWZVTCLXHIIACSNFDJHZVPNBWAHBSYOMVIGDWPCKLEOCGZYOAEJVMWHJGKWFHOSJHGUHMGWS99EKHKBFKI99NXRWVWSTEHHFBJHNEVRO9PNCFYSRRNPGZSSCAMVNHVMWVIG9MTNTPROT9RIKPMUABOSPWZTGJOKTM9UIPDQNROVYSJYOZNBBVBNEJDPAQWEBZAHBTFE9ZCZOT9GKVRYJJLYCPVEUSYTSHITIWBIRM9YXESWOXOFHEXI9TLWHCFCCYRZKWFLTCQREWVPPYHONUOVDVWLMNCRZZUUJRMUUIDMQXDYUBUXLHLUFSBMN9QEKYSXUFZNVLDQCILDUGWHLNKJLF9WPTL9WXWMFDXTCPADPKILKDLUGTBO9UVCYJLKA9ANRCPDQZXKQUBZPEYHGHZSHHTLAIHTI9ZOJRDFPVOWKUPJXVAKBAEMHDPAEX9VGPACAVEWEHSD", ), ]; for test in tests.iter() { match sponge_type { SpongeKind::Kerl => sponge_generic_digest_into::(test.0, test.1), SpongeKind::CurlP27 => sponge_generic_digest_into::(test.0, test.2), SpongeKind::CurlP81 => sponge_generic_digest_into::(test.0, test.3), SpongeKind::UnrolledCurlP81 => sponge_generic_digest_into::(test.0, test.3), } } } #[test] fn kerl_input_6561_output_6561() { sponge_input_6561_output_6561(SpongeKind::Kerl); } #[test] fn curlp27_input_6561_output_6561() { sponge_input_6561_output_6561(SpongeKind::CurlP27); } #[test] fn curlp81_input_6561_output_6561() { sponge_input_6561_output_6561(SpongeKind::CurlP81); sponge_input_6561_output_6561(SpongeKind::UnrolledCurlP81); } fn sponge_input_6561_output_243(sponge_type: SpongeKind) { let tests = [ ( "CIVIZMYHVFYZCXTXLDTPY9DMZKEEFMEABECNS9RHMIKQMHMUXSAQXLGLSYTRQCZWTQOGIQFFDWVBOCXXTVMRRCWQRVMCTBEIINDFFLXRIBJMBRQUCBAMDIDCAL9ICXFKOIBGJWKENILISRCZZU9WWPBTPQXOGYOFLWYISNYVHCOQQSKXBOOXESJQLZOHZAFRXOCGQRL9HUZFXYGUVRALGELOTEWNGYEZWCZRRITFYHDLWEZXPJOM9HSHMEUXJ9UCKDRYBZUIRWOSCNXAMGUTFUUPLTEYURVFROXZGGA9EFWROQMH9SZSXGNCIPXUDCCXS9UARJFJYDEEKNFSATRVNELTFXVX9UENWHXBQOMIBV9MUI99B9C9SSOFJYGBZCAHKHC9VIQRD9OHBQ9AEI9HRGQM9DDCJSPRQBBZRLGXJSKARRJTZWTHUVEUVPFVMUIAMDBRLOTKLMXSCPKQIULZ9TVKPRHXPFVAFQTDMOCHJ9DOFIYDWMKQXKLIZVXRRRSCGGJKOXOJH9RWYCLGLQR99STVPNGFOVZCJAJRNUCSWLZLXOEFHNDPHIMWXNENZZGYFFAQSXQPSZLBRSZR9OHIKBLMHQTOCLCQRQYEYGQEORKEXQN9LGZ9Q9QAEQOFTWADRSLZTOWK9SSDXOUJTIHYTHNYWRRJIHKPRLEK9FOSCMVVBAPBWDMBWIE9UAIJYDFPZEHSDIHOWTZGAHPLHULBFYJSACTIWJQUHTFESUFURCRLUURILTCOJ9JQVKTDA9RPMFVQH9HTIDGZPSRWTPUOQZUKQ9FVDFSCTQEEKTGGDXQUDVXKCJBMUCD9JTCYNNYTXDZYZEHQM9FYVGCCTJUARNKJUBL9EPLGRKYGBIDGVHUDGMDMHAAGNXQCXCRGTKL9NVNADJXIINSZVZNJVUOGISRECSUDFMNWBERUOSVSSZOLFYGOQTRMVJYQ9FDNOGSWSWYZHMRRGCVDKSLYSMKPLNLLVBQVPIVWVUQKSP9BCNVWJVSDUOBCSGPNRDQJTXPOVQSCFIKENKSG9AVFYFURXSZGYQZXPO9LMFDS9JQQUKUYXOANJAXJZWUUUSSWVZ9KJDZFXOSITHTQJYVRQXOCLLLSCUWN9DNFDGJ9ITECMYUJJPNK9IRBLRBDTSC9CVGFSKJPERC9BKRBLQLBXDEUNGCWBYYDYRWYR9TRCIQMOGNQGKWSZSCICTDUJHYOEYV9TNHLZWMDABDZCYHVMPLBAZXVFW9UKMFPHZ9ORQEFRFXXGOPTJBXEAFTBVRGATWOEZJRUWETAKLYOUHWZMTN9ABLMRLXHBSCVEWABNCYMOMMVDA9E9BWSNTVLZNJHPHC9JTJMQXZIQQLMBPPXTUXMYEVYLYERVWGQXSOO9LD9BRBDHQ9GMEKIIGCMSVXZFAHBZIM9ROGJGE9YTGSUGSIUYDNABCVZUHBJSKC9GW9SXK9CTKPKH9DFQJKMXWFKWD9IVNOONUEYPJTBNFEZPADBEIOLWZLSMXNEZSNFHEOXYJDMPQ9IKTEKCFSGVQDJYLRXHYMWFOWTB9EWDXKPGEMZWFLIDLZTAHIZ9IFHACVBXCXDZDJXLKYSDU9BMOST9HERRLKRV9UCKXFPSZSEBIZNYIDMQDFUSNTXNUJASXEXRHQMHOUWD9OACKQLSHVUMKCFMGDDUJIMCLDRWJCLX9WOGHXFXDMWUFPIXYWZIGZCXX9ZQ9XVTDWI9FRRKUGRUTSVVMGVPLAFOXGOGSMSNRURINKPTKYNNLHHYCWANODIPVCPMVYVLWFTOOVQECXNYYDVFZOMGAOQ9AARCXXIEELVCAQIMWLZNKAWH9AQMLCHGSKSRTTVGLK9MKFEMBNMHHDHCXWMJGEBKMIPRWYFMNJFBPGOKLSIFSTOCHX9ZKOMLXJBHZYRKLYWI9AQNCZGHCPOHJCNUETDXVELQQAGAEXPRQTJKZUARPKYFDUOZPPLAU9ZPJQMZOJYONLOPBFAKADDXBJTCGNMEYZMRINLBXHAK9PRWV9KPUVCMVUFLVOVTSQBYZ9LIJYQUFYJP9SZ9XMMTPH99CQMKTSSWOFJPDBRYMRZCOUHVXX9VJWLGUYXWUAFHBJZJHJWBDMRZYADWNVYJKQ9GOOMLRICCWXZJNDRSETOZWODRMKDYVXHNTTJBDQQSCGCQS9YLPRRWKSXYYORCOBCYUOTDMN", "BQGLZPUNVNISXVUWK9NQOOHY9CQKZNILIPVNGAWGKTKBJBTLYCFSNBSNZICOSOYRGYYMXYMLUNKGWG9W9", "RWZZQEPHKSCORFZ99VFPVZTUFRBL9IXTLHDFOQHRKKABSECSNXPYTBRVPCXLBKT9BOSGALAEKPTZCHKUG", "YBL9CJCGS9NGJQZMH99WEGZCGYLCYWPTGZHHKMTUESYFORWFCPBGJTBJP9WGXUKSJZWHWJUQEAPKRANKP", ), ( "JIGHBTOHJYTSYGJX9DHSGDXTXIMJMBHOCG9FLESYXIG9GWIRTHWKERSNJSPCUSUMHOQJZ9EEEDILOYDWIEDPLSPOBLUYZNUXFPZZLQMQVZFL9OPPDFACDGHFVUUO9H9LRSNFRLPVIWEBMYA9DOYIVMYIHVZBZVAYNNGGNFONZAOFFGCUXVLLMEHSJRSWENOMSVTOCMJN9PFPNWWPEEGMCNIIMGWAEYBCVORKWEYSFGPRMCVDFBGRXULAKCW9YNLAMKWCRTWFDMOEHHQ9BRZEED9TAFEHXSPFCMMSTFKEGEHNLMHUYFUYFZRGJ9XHDVJXZZBZHTYJJCLIFXQ9GDSPHQBD99HCF9QLWCWCE9SGSXLVXJEPPFNCJWKUEJRLAZJHHTKJUJM99GMKOYFYPTBGICICNCMH9ARQRLDYMVIBLW9JKWCQKDTIONJDBHZTRJWHEVOU9UDVBFKUHHSPCCLPEOCIXRBZRLACDHBWMEPPWNBIJLVMUKCNDOLGSCNRQERDRWSBMKDOOHDVYHAMKLFIZLYONTGFYOWWJAMGXTSTIVMGNEONLLHYF9JHEGYMVADDYWMDIZLQAKS9ZNSYIVYZPSCPF9QBXAZZBWNSDHGFFMDG9WLE9JQPYMEVRGAFIHYBXZSGDSQII9D9ONFSDTTPQLKQGCDM9VSGMMJAUKQGVCNUBIDXAJIHEPJVZMTAOMXLYXXHB9WTYH9VTYEDPLTLMLUCKOPSWBTQUFLUJOFBJQP9LK9U9UYCWZVESLQPDOBAEJLTZ9GMKZSINTDYSYKXFDSPSCHAGGWGJOXFLADDDIMBVJFWOX9WXPLMLKNKALPZBPGBGDGEALKVXYHAULVUBNPLEHMATZPBCWBQRWY9VLNGTJOOZMXWWSVE99PDPBXCQFLOJYQFDCOAGTOH9NLWUHUQSBZNUBEGDCTYVPRUCIGGQUNCUQDCVOLKZOPVTQLFCUFBCLLQ9TSJLYLQNFIBPC9LJEWRIAVOUGFOGIQGQKSKUWUNZWJUHBH9BR9VGLFVDZRHJHADOXVPDCRCKDQSLRGNVSUJ9AAZETJSLLDYITPCIUBGEXRNIV9LKKX9ZTRPLYLQBIYIFTMVOPHKKJLDPOBCNJDDLVIACGAGCTFJL9WUWDSILEOE9ITCJLLDOQJCLXFDOEMJQKYRAELHLPVMVUNUGQKMGDUHCZLRKOCDYJIOAKOXHQOEBUKJBVTWPZBCDYQWQBVFGLBRYMKVNRFJHNYFSVZGF9PXKNLBONCMKUIXGKIN9JEK9WDKIXIULOWBRLEWWOCKSBFUX9YVWIMXLNZXHIDLFXUEKKNYSKMGGVKFCEVCYKJVYWEMMBVEZQOGIVEPRGQXMQRP9VEYIWWGTFKYRRSXQ9OB9OEJKIMMPAGKCJZEPXELRRBN9VPPWCWWEIULKZRJILEFRNFWFXAZJIBMDECYLMQCRHKBFSQBDDKCGAA9ZMRMMHAAAWAYBKTEAEFGHWPLHATOAKCMTGWFJDBYFLNACSOYWRSGIM9VGGBGRLAMXTVQHSUYUSYRBBKYIJSBUM9RNVYKTIXE9FIFPYSZ9GHVMQMJZFFVKUMWUEISBVLCGLASIIYDHHZBZWFEMGWTMN99BWCVVVXYQFISUUB9VRRFLDTZTYYQHZAKOMTEHHKAUZMYW9DKUXBZXRJXXYZOZ9ASDEWTRHXAQI9LJYSVP9NSFQENUUGDZIMZUBCZMYUVFNOZAQUMDZETBPWFKSCZTYHVVSJGDRHMZKIASOYVJGLNOMCUIEGKCZFJEEQPTSJFMBZGXQUAX9XHJRQG9CBR9J9MGMLUSDXEOMFKWYEXFGBDPXXEPE9PS9HBDLUMXVC9ORPYKCAUXQNZKIQJF9LOWALCSSIVPCGTUIQXHXJUVATRDZOSPSEUMNSKNECANWSYTYPNCGWNDPWBPSONPGUKQUOCYHQKQEEYW9CUQXBTAUBSFKPBKMVWIUHTTOPTPWPFOJHVQKQCIJMMMGXEXGACSWDRLKFHTENNBECZQXZPFZXHOWITD9U9RPFESNUOO9YQLUNVE9KMNDGVPHCQMMVU9EINF9UGEPMIKGSRVBEHBPKMTJETUVIAUIDLPZJNCZZZCQTBOOBTHAGUNESLMLGPUDNUHWSYXRDTGNVRCCPDPQWYZUUEHTKHELGDKKIT9IR9ZDSNNAGQJZLZTSIRIPSQYUTXMRC", "ZMCLCLTJGNROLPYCCLXTYHBWSENAPWZNXOXRFOVKMMTMKUGBVTCNITZHAPSXDMYYORFJHSGEFABNWG9RW", "LPIPCFMVJUOKFBFWBBAEWXWXGFYST9NTXVTMQAYJCOGY9PPRNCTHOOIALRYYMHEYW9LWDDCEGU9GFJQCV", "PTOVNK9AMATMSBKPDVYUUFDTQBTJDPAVZ9GXVNHTTICVKFTBNHXKMXUFJQEEOGEMKDHQJMFWSXTJFPLOC", ), ( "LDKRQAZHPFWGLHNC9CYXDAF9XIA9OVFPNTENKYNXIFHBYTMFF9DLCVZHQRYSDIATYYPNRRICX9WOKZRQHKOZVWZMXYHWKLKYNUCCMVCULMMRZIMPFVMPTNITZVAKMWKJHPNIQNTBLDSITDKLC9FILJBMVFRTIKWIYMTLDSEVELRQZQZZVE9QEMDDABCQGYQ99PSJBTCHHR9ZXATVVELBDVBCUDMGFMTTEXZJQMGOCBWTGTJAAFGLKERNBYWHCCLWEWDCXPLTIFBWGUL9JPHPYWFBDBAHMODAFFAVNDMEFPLJNCTCTNRPSTVXVVKWGFNGMYCTXXTOONZEAQBAWOLVILBCWKAFFSOFFDZYAWKZACUNKZHZZTYNNDIRYTMJJFZIFIO9JJRFWYTDEEHMSVPBBYCVPISTNUFCWDPFQJREURJLWJRQFNULLEZRBSAMRSJMDTUTK9JPBGZWNZDP9NLWHOTTOHRZAV9LONZSNOZBT9UFP9JWAQILJKAHCPWJXZCIIBYLQYAKLZYJGUZNXAZDMAIROJ9YSWRNBRPQ9SXJUGMGSDSWTVWWHTMUBRLCWXSOJIELFXFPP9TRZBOYFDZXNBWLBNSDFOFEXOLVGWFUXFHRKMPBGQMCWEEVZMFHU9KVKCYRXN9XHUOOHGEQOJJGYGY9NZLWOAILMHSOUQTLCUEWLRNVCJMELXUJJKTBGMBGZTFBXBTCHZJEUQCVOKSDGFOGRH9UXSRXJKBYLWYKTUPIWFVBFGWSRDOCJNWCNRQXEZMLHHY9BJPYARTLEEAFXGSEEWZBDYTGCPQBNY9VDPDUT9VY9SIQRVQRBKDKVGZH9NJYGDFAV9EUDCCU9VIDCZQLER9ICESYGMXQPRKPLLEHARNQKIRMR9XNORMSDCLNFSIJMIIGZSARPRPIBHHE9IHVDNADFWJRTZKTCFQRTFJXANDQWBFVGWPMAMRUKWOBQQEY9RMFPPRFMFFLKIBZNWLKBHUNPMEISFQJIRIDRSFZMOLPJNB9AZ9EQFUQQCYSMVATQCLILTTDHBISW9UILDWUGLUNBIUZHMPC9NUXRLNBAKQKYLHYXGXKU9CIRFZ9ISEGGBOOIIGTIBOR9UAX9MV9VC9JSORWZGFSXRMEFEHSLKZNZNCBNHRJZBZNDRAEIKHQZEUS9HAYIIWISOGPQLKKTABEG9DBBHLYGUB9CWDTYDKXEPCEGSPNAETB9JOCPHRJZAOVUJLIJOJHYYOWXWGSVUNQZZIYHMSVYBVIMTPLMMCVIYYNRTKYGQLOUGVWGGDQTSVDARALLSSWJUXQH9GESKLCNIRXMIGTUUTDPBELUUNGSCXEXBOFVTCJBFEQADIDPLVFVZVMDULSNTUWSUCLEXIDBTYUBVFRZLOOKWDLCNTUHGDTWYIGMUGKCYZKBFGDVNKTNYIN9OSTVQDCGKTBLTNERURBCMACVRSJZW9YAFTWXIOGNZAQHOJTOBGZNNZSGFNQFPIFQJRTCKUZDMPZRPOORDKYEZHTMREQIPQIHRC9RIEIVPCHJNAAJPIMYZZF9XNMKVCHR9IBUBKTAWQFSLWQZMPTVOBVGRSRBLDZO9ZGTKLQYVNMHOEWQJFDIPTDNEANL9OJAHMJIHVLCCXQZJRRTKCDZMTXWD9IFCSTFNEDKKNJAWCFEN9LU9ELUTXCQFLBHWLIHNPEOKCONQWGBXNIGWRARUSZGATOSR9EKMDMQEPNRWOLSHXBAVUNZVRQDCX9ONETNFWEXGFJGHBHSXHKFOQWNENERDLIZM9UZPQTLY9GEZBUKSOCRPTCZYZRBIMOCZFCGYBQLNXYVG99OLDXHCUUXLOTWYZSICIRGF99999XHULVOCTGWAVSFZNJRCCFSVTHBYFLTXBTFZUGBSFBEUZCIZVCZHMIKCTOCSTYNECJEOFQHXBALDAESMVZWKKRQGYVIYXPWPYTRIYFQWGTRINFCNYYZLGA9WCUWJZEHGQS9TEOSOGCTTNRYEUX9VEQCZKIRXUBNLPJWOJXUYWSDSKQPOZFRLQOFQDYORZOXJIVHRZZHDILQNCFJF99XIOMEJUMYUBKAY9IMVYQPTJPCYUULYYPMDNHVKPNTVA9JGBLJMXLSEOTPISFCHCSPACNJQRXJXONEFTEDHZOPBP9BBNOONXBGGMQNTJYVD9ALWHYWTKBTGTYKHUGHJ9PPELKTIK", "JZPY9NZBOOFV9VUQWVMNNAJKMZWLIJBYCZP9NZEIGAMABBHMEQHSMIKJVKOWXES9MAYEMOXEEYJIPKLYW", "ZOYHJWFWUCDFLYAGQYIKBWVOXTARSQHWATFKVBOBPIYAPRTHBKSTTFBXHOPYIRPDXGDUSKGICNBFSVTIF", "JNVWXQBMHBOETSDTEHGNNQXUN9THKIBCXNFHAXCRZRZAAFXFVKAKI9J9CZPFCMJFOHFHERRNVUIDXOSHF", ), ( "PINSICEGKCWYOSNIEWJZDA9VRRHPVFMSZEUBZJQYK9JS9VPFTZQOGWPRVLSWLYALUSGKBEQQECANNWSBBYGPDILJKBV9JOZMSCMFSSOFXNUQXUJPQLEKYUEVUEGCIZXPYGTB9GHYNMEJDOSZGGZPGQESNNJU9PEWIXQBJKLBUSNRKJZLWC9FSZAOCETTYDYTDXDSYNJYUALJSMJ9VZR9AQIELALGNBDHNBFNIQFARCZBJDA9UQYVLAHLKAKKREXDONJSUIOEXEZYEQLYPVXFPUQDYZNOGLVLD9PONRXGIPLWJVOUSBCLKJCYQYSJOIPEBZWWIZCJPQPGGYJUQVABSFDILWPYACDHTOAVBYENHTINM9MLTDV9KCYNFJIIEEOLLXCDYTLZQOXTIKFSWMTFVZWHDPYO9TUZRQRNVUHQPQCJECEGSIPNPRHRLC9NYQ9ZUOWZV9HBLCFSBVCH9ZJOMFBKW9ARQRTUSQQF9UWUBAGRFXTG9WAXVOKUSST9SNIDSJQNFCWIKLTMCQTURZNICDKKIPYJDMSVFZEBOVKOEMCOHPFHWHYPNI9QGNMGPDPUUODZUPEALPAOEUBTSPTHIVSCYPYKAE9HOMSOHYJVIGVZVYY9CWBOSTQLAEP9UPINWIKSVFZHAYGXRBUDAEWJATLEVNNLMPSKOANBJNGANLHKZSWEMVVEJSOSNRJFIKILOQWNFPLQRCJVZXETNTDSMYPAPH9TPGIQKOQ9GJUXDEZIULINJSDROYTYMBXHADCWHJE9LAX9YOUDDSJPPLFR9MQWFXKE9TJFMLYPMLTFYCKT9FHICS9ZPNXNSGGXJZRGLNPSZC9IWTJQSB9PHZMBJBJTGBYRHTNNSOESFKTDQFQPQNNRDAR9SRJXD9YTASZEBXEC9GLAFNDLIXLI9PEIY9HSWWHOPCIBVETTICZ9ZGKIYHRTUL9HZUUAOO9EBTCSUZNWFJLMXFKXPVBLVWJAKCOVPZJMKA9YGARA9GRAFAZJHTCKMXHTBTNOWFYVMHRRDJGLXDOOMUAQVZJTX9RUBDQBAYOMP9FZAEWRSJCMRFQSWSIEFBXMUJKCVDBBKQFFKTSWQLEEXEKNNBUWJETJPIUTFS9DDKAXON9GTTIRP9Y9CCOVFTF9JYGVFQDKGDMHQVWJYMVIFNUPABDVDOMSWKUFIXKGELGXRKVCWWELHACQOVDXTGGQBCKDWU99TITSZOTLSD9XQFBSWC9CUEHTVFW9VHGXQMQJOHJERNCIPBZUFBESSODWQOMRB9UVBTKASWYVRJG9I9EWUDFIOWPGSWYKTJEFGIARRMIQQZGXGIUWYUDSRSPKZE9D9VBLKZNBOJAKXBXSORFRNSIRXCHPUWGJJJH9JY9AIXYLSSY9T9DYJVMGJQVOIGE9GJURRDUUSWXTE9EBZRT9PUAKWQFFOBIJQHDLMDCNAMRWHQOFYDWMTGNF9ETWYMXEQOKJASOZHQRPDDYKVVVTGMMQGQ9FTKXYPRWYBUDGFZKWDHIBOOTXCIVUERLTVRZAFEONTXLGEURHSNYMKLGLDVIEMYNNRCKRJVAD9GVVGEUQMTWSPXYUAZXELO9GGZNTKQSR9JROBPIKIPIWFKKTNNZWGZLSZWGOTGCYRIZC9HLALGQRMBPRWWDIAGAYDXWWAFISSNAUTDQORXKFOARNMFX9VQAQLEFPSBAFEIRKXVERUVRKJLRLYCCFMPRQTMPQNYNW9LJHYMIVZKEIUU9WAQMIHZ9VNTMSNBTRYATNTIZLC9DTCEORO9MSXQXOZJKSYXCJZMJBNHP9FJQHV9MBBMNEMIVJBNCBCNKSNTAXOETBIPRMIVKZDEZVWGBHLDVAGHSOLZUXANMYTMQLJALAFXBQUQDGLSPOJ9RQGNOXJBYKTG9XTQNNIZFWNFJIQADVIRMWBODHRIYLARPIQTBXYMOPZU9QLAMNGUCXBUHWNNBDFDDOUAUTPKOYUNBTEDSLFCAASQUMEYWQDQGUWAMSS9XHI9BLCODEEKPHHJLAGWJBAEL9QJYHQGNMKKAFEQXFZBQXYEKWHCMUHNHSBVFCCJQKXYLN9LD9CBZCXPCRSKJNKGZSHFZTIHNBIU9JMYMMWZNPHUTVICMCWDQBVRGQNYNTHOGPJXAZRLMPSXBONOZHMBRQHZEEAXKGKYVOZLJCFCUPSEDLELQMXXPCZNZ", "CUVOLENGLSCEFWMZRI99EJASHPXGKBCATXBRFOEKYXJEWNXNC9QWMBUNRKQDLRISGFBEKJTXJDTQKJSLW", "QHFLJRK9UJBHLSOZMIOWPPRTWKFY9LO9WWU9GXIYWUDLCQOEANOCOIASHYWJJREOJCDRFBEROSTRLLCMG", "VWHBMKRCOQIKXHVXOJDFODMCGYYSYHCM9GJUILNTCPVGDMIRMISKR9VZVLKMRRGOLUAUDKGWFHYYQFKYO", ), ( "ANPXL9GPCQUZJUICKQWAHSKKWSTPHLXZTFXKVEUVCLIQ9AKOVWKNEQLRGQGSRTZHUNSFBNQWVWQGAGTFHJGFNGFJUWKCMXRFYAICXKKK99EGPCQT99UPJTCWDBNBY9YOOIAVYWZXGNVKERTILEZIKT9WGPQUPVWUZYCFBCSJVZKLITY9BLWCOEBFPMQVRJWKUFNE9YBHCMMQOHBGTSUDAFNGSNVUBWMUQKPUGEBPAHOWTEFX9XKMCVNHAKSAAVCZLCVTZDGDXNEUVYOVDUBALFNEPX9HKOOWLMSMJOKLPXYYSJZCTGUITZKRXZFOTINPOTYVAVHVZZZJJSMBZCOFZXTDHDISCMQE9DMMHSXNVBDLPVFKPPZ9BU99VFDUFSX9RFIWTBRGWTVQDBYKNVVPQYEEVRL9CSCAYIDFSZAIIMLZSRJMKCVQMEYZTRJBEWRRZLTGCSNZQJ9PYSECLAEKKIIMCRCHVJHYCRUNKQXXZJGRSERSXPLBXKDYEAVOJZOKNEWJWOULEIQOYMZHZTDDZZIP9F9EPJVCKTFN9U9BDBHNQ9KCPKWJQIRDETZDLUTFAEJAALGQMMNASIFKZHR9ZEWJHMUBWV9RD9NGHBLBHUKRTAHAZ9XZYOYBQGKNYQELNZEJNRXKMOMYBTREIGZJXBAJYOXOZQMROQQQOZ999ZELTYF9YMP9ZMUAOXXLZTUES9BH9ZQDWYKOVBAIDSPDMHSKBCLSQKSMEOTSCEM9GAYDOBAAQQHZEIZTDSLSUXNLFXCIME9EMXJBBJJXXDHAADNFNBFVHEUSPGDCDRPGXZGJBOCGGZVQFPCJHEWL9RPHIQ9VCQYBDQHKVYWYZJNUIMILDKCLIXJQ9KBJANULYTXHOPDJHHEAF9LJFGVCYOLBTJBOGEDLUUWBSCUBKYIJRZSKEUWHFXKZCECVTFHZHTKK9KRESLWYWDHFFNZPNICDZSDSKJJLYUV9KSCFZVKODRAFOJSQTHSDXBWDQOUDDG9AUKYYUXK9MXURRUNBPTFIRFOZDOKYJTSDUNUKARRRHKNHKOZPAIGSZTC9HPQYXWBSRREYZRONJVEJIXTUP9NDBR9YTDFXKGTHXDPOBBPRIK9YHGKTI9HPJE9Y9LYHCKRSPFGDJVDRNHVPCKAPCGERSBI9RDLGZOJSLAVOWLD9UDQZAVYMMEOSWKAHLWFMZMMYYQVSSZIJFXONGMZRBCNKWMIYYA9QCDDPGTWGQZXBEUJIACDBWWTH9GGGWIB9DCJZVYBIB9XEWGVQKHNYIEZBRQIWB9JRBEEVVUVXZULKFGABHUC9UPXLKJWHJXONGFFDBMCYYTAZWEELOTGXMFGETMFJLMFVBGJVXAKEKSRSWRYIBQCPJXRGOXTHRBVWNYVKVOW9SWBLGCPRAXFVBPKPTNJDGPWWVCHQQORCEDLIFOPFJVFORAYM9JXBNHNOGSCWPXOVGF99KTN9NEPISMPMAXMZTRBLUQAYUSRPLIDUAQK9IUBGQUMYDGCMFYXBM9TWWYDIJVFYK9PJLZKFVBAWHBLVHQAYDTQTXSCFMMEIPMQ9VTFRDGQDDKFYAVYTIKLDGFTWEMFLP9PKSCULZARTKN99DIHCM9ZKTWLJIMOERNAPGMQLSWEDHOOTEANJP9SMYOUXMUHMO9QBOXLZZXRCPESUSV9HXBUJMZ9ILNCLHMKCCRYLNHWXHPRNJRQMEHMTYWAPHFLUXDAYTMWEOBECFQRJRAOJVABSUUPJUJBLIDCOQUNUFCUPOHVMNXGXXFOMWEORXBRLSHRBCKYARZZSJPZXRMWODUUTDSAGNKZ9FROMQSTINHYVNEYNKYD9T9CROKSTKUWJTIEDMBIATIBVCGNRLDUIWUOBFQU9VVBOHMKYXLGPNSSIGSRRNMXYARTFKUP9SYFIEUGSMHRG9GAJMTXXWFULL9QKVFKZKJAJJLTXCLNWIX9UKJBONETTUTIORBGYFDCSUQHPOXVOKEL9H9GVHCTZGCAOY9POZC9W9LPJGQ9HSXMTYONJW9VZGBRYUZXGMIKEUYTHSNCMGJJEVYHWFPJ9DEZUWQQNBJUHQECUMXWBTEGJWPJARHIHLXGCNYTAIESQF9ELGDDOKBOE9IJWUWGGRJKSG9JMLNUOVNREKBOFUEDALFMZ9VKCLUEEDXOJXMRPZDOQ9ESMQXSNIAKPCHACJRY", "DAEGYEPGLTOSORGOQNNRHPHARMUWKOZBUOCVPWXIDMIQSMAXXTZYFVXVTIBKCOUXNDIUJWSUSJDXWCZOW", "UAMONEJYHBIQJFUWEMWBDJS9CQNLGTQOUJUCEFYSSNZNCMAIGXTAXZFCE9XT9MHRM9UQVQUCYWKPKAYMY", "ILJUAYJUGVM9PTGYPLWHSLFKNASNEBDILZDSVBFJXASFCOJJKOUBQMTWVAGSJCMLCTQQDEFNWWJQAYGWD", ), ]; for test in tests.iter() { match sponge_type { SpongeKind::Kerl => sponge_generic_digest_into::(test.0, test.1), SpongeKind::CurlP27 => sponge_generic_digest_into::(test.0, test.2), SpongeKind::CurlP81 => sponge_generic_digest_into::(test.0, test.3), SpongeKind::UnrolledCurlP81 => sponge_generic_digest_into::(test.0, test.3), } } } #[test] fn kerl_input_6561_output_243() { sponge_input_6561_output_243(SpongeKind::Kerl); } #[test] fn curlp27_input_6561_output_243() { sponge_input_6561_output_243(SpongeKind::CurlP27); } #[test] fn curlp81_input_6561_output_243() { sponge_input_6561_output_243(SpongeKind::CurlP81); sponge_input_6561_output_243(SpongeKind::UnrolledCurlP81); } #[test] fn kerl_input_negative_byte() { sponge_generic_digest::( "DJ9WGAKRZOMH9KVRCHGCDCREXZVDKY9FXAXVSLELYADXHQCQQSMQYAEEBTEIWTQDUZIOFSFLBQQA9RUPX", "XRZCRWFXU9UYRKFQRKWROIRGEVGTUGUBKDYGPWDTUXXOFVXWRTQBRRGGUSIEMPAISTUEYEZJXXEPUTY9D", ); }