From 34cabd45a2fe9071b0cd64549b9d8b05fd9c4a1a Mon Sep 17 00:00:00 2001 From: Jack Lloyd Date: Sat, 26 Sep 2020 12:47:15 -0400 Subject: Remove Tiger hash function --- doc/api_ref/hash.rst | 20 - doc/deprecated.rst | 2 +- src/build-data/oids.txt | 1 - src/cli/speed.cpp | 1 - src/lib/asn1/oid_maps.cpp | 4 +- src/lib/hash/hash.cpp | 13 - src/lib/hash/tiger/info.txt | 7 - src/lib/hash/tiger/tig_tab.cpp | 364 ------- src/lib/hash/tiger/tiger.cpp | 190 ---- src/lib/hash/tiger/tiger.h | 59 -- src/lib/pk_pad/hash_id/hash_id.cpp | 8 - src/lib/utils/types.h | 2 +- src/scripts/oids.py | 2 +- src/tests/data/hash/tiger.vec | 1989 ------------------------------------ src/tests/data/hash_rep.vec | 6 - src/tests/data/pubkey/rsa_sig.vec | 25 - src/tests/test_hash.cpp | 2 - src/tests/test_hash_id.cpp | 1 - 18 files changed, 4 insertions(+), 2692 deletions(-) delete mode 100644 src/lib/hash/tiger/info.txt delete mode 100644 src/lib/hash/tiger/tig_tab.cpp delete mode 100644 src/lib/hash/tiger/tiger.cpp delete mode 100644 src/lib/hash/tiger/tiger.h delete mode 100644 src/tests/data/hash/tiger.vec diff --git a/doc/api_ref/hash.rst b/doc/api_ref/hash.rst index 533a7267b..56fd76aa8 100644 --- a/doc/api_ref/hash.rst +++ b/doc/api_ref/hash.rst @@ -263,26 +263,6 @@ unless compatibility is needed. interacts with its linear layer in a way which may provide a backdoor when used in certain ways. Avoid Streebog if at all possible. -Tiger -^^^^^^^^^^^^^^^ - -.. deprecated:: 2.15 - -Available if ``BOTAN_HAS_TIGER`` is defined. - -An older 192-bit hash function, optimized for 64-bit systems. Possibly -vulnerable to side channels due to its use of table lookups. - -Tiger supports variable length output (16, 20 or 24 bytes) and -variable rounds (which must be at least 3). Default is 24 byte output -and 3 rounds. Specify with names like "Tiger" or "Tiger(20,5)". - -.. warning:: - There are documented (albeit impractical) attacks on the full Tiger - hash leading to preimage attacks. This indicates possibility of a - serious weakness in the hash and for this reason it is deprecated - and will be removed in a future major release of the library. - Whirlpool ^^^^^^^^^^^^^^^ diff --git a/doc/deprecated.rst b/doc/deprecated.rst index 5cd1784f4..624616339 100644 --- a/doc/deprecated.rst +++ b/doc/deprecated.rst @@ -61,7 +61,7 @@ in a future major release. - Block ciphers GOST 28147, Kasumi, DESX, and XTEA. -- Hash functions GOST 34.11-94 and Tiger +- Hash functions GOST 34.11-94 - DLIES diff --git a/src/build-data/oids.txt b/src/build-data/oids.txt index 03ce80a84..ac87ea4ed 100644 --- a/src/build-data/oids.txt +++ b/src/build-data/oids.txt @@ -106,7 +106,6 @@ [hash] # Hash functions 1.2.840.113549.2.5 = MD5 -1.3.6.1.4.1.11591.12.2 = Tiger(24,3) 1.2.156.10197.1.401 = SM3 1.3.14.3.2.26 = SHA-160 1.3.36.3.2.1 = RIPEMD-160 diff --git a/src/cli/speed.cpp b/src/cli/speed.cpp index 24f0478e0..f98617ad9 100644 --- a/src/cli/speed.cpp +++ b/src/cli/speed.cpp @@ -394,7 +394,6 @@ class Speed final : public Command "RIPEMD-160", "Skein-512", "Blake2b", - "Tiger", "Whirlpool", /* MACs */ diff --git a/src/lib/asn1/oid_maps.cpp b/src/lib/asn1/oid_maps.cpp index d385dfd84..015963c35 100644 --- a/src/lib/asn1/oid_maps.cpp +++ b/src/lib/asn1/oid_maps.cpp @@ -1,7 +1,7 @@ /* * OID maps * -* This file was automatically generated by ./src/scripts/oids.py on 2019-10-21 +* This file was automatically generated by ./src/scripts/oids.py on 2020-09-26 * * All manual edits to this file will be lost. Edit the script * then regenerate this source file. @@ -136,7 +136,6 @@ std::unordered_map OIDS::load_oid2str_map() { "1.3.36.3.3.2.8.1.1.5", "brainpool224r1" }, { "1.3.36.3.3.2.8.1.1.7", "brainpool256r1" }, { "1.3.36.3.3.2.8.1.1.9", "brainpool320r1" }, - { "1.3.6.1.4.1.11591.12.2", "Tiger(24,3)" }, { "1.3.6.1.4.1.11591.15.1", "OpenPGP.Ed25519" }, { "1.3.6.1.4.1.11591.4.11", "Scrypt" }, { "1.3.6.1.4.1.25258.1.3", "McEliece" }, @@ -432,7 +431,6 @@ std::unordered_map OIDS::load_str2oid_map() { "Streebog-256", OID({1,2,643,7,1,1,2,2}) }, { "Streebog-512", OID({1,2,643,7,1,1,2,3}) }, { "Threefish-512/CBC", OID({1,3,6,1,4,1,25258,3,2}) }, - { "Tiger(24,3)", OID({1,3,6,1,4,1,11591,12,2}) }, { "TripleDES/CBC", OID({1,2,840,113549,3,7}) }, { "Twofish/CBC", OID({1,3,6,1,4,1,25258,3,3}) }, { "Twofish/GCM", OID({1,3,6,1,4,1,25258,3,102}) }, diff --git a/src/lib/hash/hash.cpp b/src/lib/hash/hash.cpp index 63218006c..dfe276538 100644 --- a/src/lib/hash/hash.cpp +++ b/src/lib/hash/hash.cpp @@ -73,10 +73,6 @@ #include #endif -#if defined(BOTAN_HAS_TIGER) - #include -#endif - #if defined(BOTAN_HAS_WHIRLPOOL) #include #endif @@ -228,15 +224,6 @@ std::unique_ptr HashFunction::create(const std::string& algo_spec, const SCAN_Name req(algo_spec); -#if defined(BOTAN_HAS_TIGER) - if(req.algo_name() == "Tiger") - { - return std::unique_ptr( - new Tiger(req.arg_as_integer(0, 24), - req.arg_as_integer(1, 3))); - } -#endif - #if defined(BOTAN_HAS_SKEIN_512) if(req.algo_name() == "Skein-512") { diff --git a/src/lib/hash/tiger/info.txt b/src/lib/hash/tiger/info.txt deleted file mode 100644 index a244b2f0b..000000000 --- a/src/lib/hash/tiger/info.txt +++ /dev/null @@ -1,7 +0,0 @@ - -TIGER -> 20131128 - - - -mdx_hash - diff --git a/src/lib/hash/tiger/tig_tab.cpp b/src/lib/hash/tiger/tig_tab.cpp deleted file mode 100644 index 3d1dc1eeb..000000000 --- a/src/lib/hash/tiger/tig_tab.cpp +++ /dev/null @@ -1,364 +0,0 @@ -/* -* S-Box Tables for Tiger -* (C) 1999-2007 Jack Lloyd -* -* Botan is released under the Simplified BSD License (see license.txt) -*/ - -#include - -namespace Botan { - -const uint64_t Tiger::SBOX1[256] = { - 0x02AAB17CF7E90C5E, 0xAC424B03E243A8EC, 0x72CD5BE30DD5FCD3, - 0x6D019B93F6F97F3A, 0xCD9978FFD21F9193, 0x7573A1C9708029E2, - 0xB164326B922A83C3, 0x46883EEE04915870, 0xEAACE3057103ECE6, - 0xC54169B808A3535C, 0x4CE754918DDEC47C, 0x0AA2F4DFDC0DF40C, - 0x10B76F18A74DBEFA, 0xC6CCB6235AD1AB6A, 0x13726121572FE2FF, - 0x1A488C6F199D921E, 0x4BC9F9F4DA0007CA, 0x26F5E6F6E85241C7, - 0x859079DBEA5947B6, 0x4F1885C5C99E8C92, 0xD78E761EA96F864B, - 0x8E36428C52B5C17D, 0x69CF6827373063C1, 0xB607C93D9BB4C56E, - 0x7D820E760E76B5EA, 0x645C9CC6F07FDC42, 0xBF38A078243342E0, - 0x5F6B343C9D2E7D04, 0xF2C28AEB600B0EC6, 0x6C0ED85F7254BCAC, - 0x71592281A4DB4FE5, 0x1967FA69CE0FED9F, 0xFD5293F8B96545DB, - 0xC879E9D7F2A7600B, 0x860248920193194E, 0xA4F9533B2D9CC0B3, - 0x9053836C15957613, 0xDB6DCF8AFC357BF1, 0x18BEEA7A7A370F57, - 0x037117CA50B99066, 0x6AB30A9774424A35, 0xF4E92F02E325249B, - 0x7739DB07061CCAE1, 0xD8F3B49CECA42A05, 0xBD56BE3F51382F73, - 0x45FAED5843B0BB28, 0x1C813D5C11BF1F83, 0x8AF0E4B6D75FA169, - 0x33EE18A487AD9999, 0x3C26E8EAB1C94410, 0xB510102BC0A822F9, - 0x141EEF310CE6123B, 0xFC65B90059DDB154, 0xE0158640C5E0E607, - 0x884E079826C3A3CF, 0x930D0D9523C535FD, 0x35638D754E9A2B00, - 0x4085FCCF40469DD5, 0xC4B17AD28BE23A4C, 0xCAB2F0FC6A3E6A2E, - 0x2860971A6B943FCD, 0x3DDE6EE212E30446, 0x6222F32AE01765AE, - 0x5D550BB5478308FE, 0xA9EFA98DA0EDA22A, 0xC351A71686C40DA7, - 0x1105586D9C867C84, 0xDCFFEE85FDA22853, 0xCCFBD0262C5EEF76, - 0xBAF294CB8990D201, 0xE69464F52AFAD975, 0x94B013AFDF133E14, - 0x06A7D1A32823C958, 0x6F95FE5130F61119, 0xD92AB34E462C06C0, - 0xED7BDE33887C71D2, 0x79746D6E6518393E, 0x5BA419385D713329, - 0x7C1BA6B948A97564, 0x31987C197BFDAC67, 0xDE6C23C44B053D02, - 0x581C49FED002D64D, 0xDD474D6338261571, 0xAA4546C3E473D062, - 0x928FCE349455F860, 0x48161BBACAAB94D9, 0x63912430770E6F68, - 0x6EC8A5E602C6641C, 0x87282515337DDD2B, 0x2CDA6B42034B701B, - 0xB03D37C181CB096D, 0xE108438266C71C6F, 0x2B3180C7EB51B255, - 0xDF92B82F96C08BBC, 0x5C68C8C0A632F3BA, 0x5504CC861C3D0556, - 0xABBFA4E55FB26B8F, 0x41848B0AB3BACEB4, 0xB334A273AA445D32, - 0xBCA696F0A85AD881, 0x24F6EC65B528D56C, 0x0CE1512E90F4524A, - 0x4E9DD79D5506D35A, 0x258905FAC6CE9779, 0x2019295B3E109B33, - 0xF8A9478B73A054CC, 0x2924F2F934417EB0, 0x3993357D536D1BC4, - 0x38A81AC21DB6FF8B, 0x47C4FBF17D6016BF, 0x1E0FAADD7667E3F5, - 0x7ABCFF62938BEB96, 0xA78DAD948FC179C9, 0x8F1F98B72911E50D, - 0x61E48EAE27121A91, 0x4D62F7AD31859808, 0xECEBA345EF5CEAEB, - 0xF5CEB25EBC9684CE, 0xF633E20CB7F76221, 0xA32CDF06AB8293E4, - 0x985A202CA5EE2CA4, 0xCF0B8447CC8A8FB1, 0x9F765244979859A3, - 0xA8D516B1A1240017, 0x0BD7BA3EBB5DC726, 0xE54BCA55B86ADB39, - 0x1D7A3AFD6C478063, 0x519EC608E7669EDD, 0x0E5715A2D149AA23, - 0x177D4571848FF194, 0xEEB55F3241014C22, 0x0F5E5CA13A6E2EC2, - 0x8029927B75F5C361, 0xAD139FABC3D6E436, 0x0D5DF1A94CCF402F, - 0x3E8BD948BEA5DFC8, 0xA5A0D357BD3FF77E, 0xA2D12E251F74F645, - 0x66FD9E525E81A082, 0x2E0C90CE7F687A49, 0xC2E8BCBEBA973BC5, - 0x000001BCE509745F, 0x423777BBE6DAB3D6, 0xD1661C7EAEF06EB5, - 0xA1781F354DAACFD8, 0x2D11284A2B16AFFC, 0xF1FC4F67FA891D1F, - 0x73ECC25DCB920ADA, 0xAE610C22C2A12651, 0x96E0A810D356B78A, - 0x5A9A381F2FE7870F, 0xD5AD62EDE94E5530, 0xD225E5E8368D1427, - 0x65977B70C7AF4631, 0x99F889B2DE39D74F, 0x233F30BF54E1D143, - 0x9A9675D3D9A63C97, 0x5470554FF334F9A8, 0x166ACB744A4F5688, - 0x70C74CAAB2E4AEAD, 0xF0D091646F294D12, 0x57B82A89684031D1, - 0xEFD95A5A61BE0B6B, 0x2FBD12E969F2F29A, 0x9BD37013FEFF9FE8, - 0x3F9B0404D6085A06, 0x4940C1F3166CFE15, 0x09542C4DCDF3DEFB, - 0xB4C5218385CD5CE3, 0xC935B7DC4462A641, 0x3417F8A68ED3B63F, - 0xB80959295B215B40, 0xF99CDAEF3B8C8572, 0x018C0614F8FCB95D, - 0x1B14ACCD1A3ACDF3, 0x84D471F200BB732D, 0xC1A3110E95E8DA16, - 0x430A7220BF1A82B8, 0xB77E090D39DF210E, 0x5EF4BD9F3CD05E9D, - 0x9D4FF6DA7E57A444, 0xDA1D60E183D4A5F8, 0xB287C38417998E47, - 0xFE3EDC121BB31886, 0xC7FE3CCC980CCBEF, 0xE46FB590189BFD03, - 0x3732FD469A4C57DC, 0x7EF700A07CF1AD65, 0x59C64468A31D8859, - 0x762FB0B4D45B61F6, 0x155BAED099047718, 0x68755E4C3D50BAA6, - 0xE9214E7F22D8B4DF, 0x2ADDBF532EAC95F4, 0x32AE3909B4BD0109, - 0x834DF537B08E3450, 0xFA209DA84220728D, 0x9E691D9B9EFE23F7, - 0x0446D288C4AE8D7F, 0x7B4CC524E169785B, 0x21D87F0135CA1385, - 0xCEBB400F137B8AA5, 0x272E2B66580796BE, 0x3612264125C2B0DE, - 0x057702BDAD1EFBB2, 0xD4BABB8EACF84BE9, 0x91583139641BC67B, - 0x8BDC2DE08036E024, 0x603C8156F49F68ED, 0xF7D236F7DBEF5111, - 0x9727C4598AD21E80, 0xA08A0896670A5FD7, 0xCB4A8F4309EBA9CB, - 0x81AF564B0F7036A1, 0xC0B99AA778199ABD, 0x959F1EC83FC8E952, - 0x8C505077794A81B9, 0x3ACAAF8F056338F0, 0x07B43F50627A6778, - 0x4A44AB49F5ECCC77, 0x3BC3D6E4B679EE98, 0x9CC0D4D1CF14108C, - 0x4406C00B206BC8A0, 0x82A18854C8D72D89, 0x67E366B35C3C432C, - 0xB923DD61102B37F2, 0x56AB2779D884271D, 0xBE83E1B0FF1525AF, - 0xFB7C65D4217E49A9, 0x6BDBE0E76D48E7D4, 0x08DF828745D9179E, - 0x22EA6A9ADD53BD34, 0xE36E141C5622200A, 0x7F805D1B8CB750EE, - 0xAFE5C7A59F58E837, 0xE27F996A4FB1C23C, 0xD3867DFB0775F0D0, - 0xD0E673DE6E88891A, 0x123AEB9EAFB86C25, 0x30F1D5D5C145B895, - 0xBB434A2DEE7269E7, 0x78CB67ECF931FA38, 0xF33B0372323BBF9C, - 0x52D66336FB279C74, 0x505F33AC0AFB4EAA, 0xE8A5CD99A2CCE187, - 0x534974801E2D30BB, 0x8D2D5711D5876D90, 0x1F1A412891BC038E, - 0xD6E2E71D82E56648, 0x74036C3A497732B7, 0x89B67ED96361F5AB, - 0xFFED95D8F1EA02A2, 0xE72B3BD61464D43D, 0xA6300F170BDC4820, - 0xEBC18760ED78A77A }; - -const uint64_t Tiger::SBOX2[256] = { - 0xE6A6BE5A05A12138, 0xB5A122A5B4F87C98, 0x563C6089140B6990, - 0x4C46CB2E391F5DD5, 0xD932ADDBC9B79434, 0x08EA70E42015AFF5, - 0xD765A6673E478CF1, 0xC4FB757EAB278D99, 0xDF11C6862D6E0692, - 0xDDEB84F10D7F3B16, 0x6F2EF604A665EA04, 0x4A8E0F0FF0E0DFB3, - 0xA5EDEEF83DBCBA51, 0xFC4F0A2A0EA4371E, 0xE83E1DA85CB38429, - 0xDC8FF882BA1B1CE2, 0xCD45505E8353E80D, 0x18D19A00D4DB0717, - 0x34A0CFEDA5F38101, 0x0BE77E518887CAF2, 0x1E341438B3C45136, - 0xE05797F49089CCF9, 0xFFD23F9DF2591D14, 0x543DDA228595C5CD, - 0x661F81FD99052A33, 0x8736E641DB0F7B76, 0x15227725418E5307, - 0xE25F7F46162EB2FA, 0x48A8B2126C13D9FE, 0xAFDC541792E76EEA, - 0x03D912BFC6D1898F, 0x31B1AAFA1B83F51B, 0xF1AC2796E42AB7D9, - 0x40A3A7D7FCD2EBAC, 0x1056136D0AFBBCC5, 0x7889E1DD9A6D0C85, - 0xD33525782A7974AA, 0xA7E25D09078AC09B, 0xBD4138B3EAC6EDD0, - 0x920ABFBE71EB9E70, 0xA2A5D0F54FC2625C, 0xC054E36B0B1290A3, - 0xF6DD59FF62FE932B, 0x3537354511A8AC7D, 0xCA845E9172FADCD4, - 0x84F82B60329D20DC, 0x79C62CE1CD672F18, 0x8B09A2ADD124642C, - 0xD0C1E96A19D9E726, 0x5A786A9B4BA9500C, 0x0E020336634C43F3, - 0xC17B474AEB66D822, 0x6A731AE3EC9BAAC2, 0x8226667AE0840258, - 0x67D4567691CAECA5, 0x1D94155C4875ADB5, 0x6D00FD985B813FDF, - 0x51286EFCB774CD06, 0x5E8834471FA744AF, 0xF72CA0AEE761AE2E, - 0xBE40E4CDAEE8E09A, 0xE9970BBB5118F665, 0x726E4BEB33DF1964, - 0x703B000729199762, 0x4631D816F5EF30A7, 0xB880B5B51504A6BE, - 0x641793C37ED84B6C, 0x7B21ED77F6E97D96, 0x776306312EF96B73, - 0xAE528948E86FF3F4, 0x53DBD7F286A3F8F8, 0x16CADCE74CFC1063, - 0x005C19BDFA52C6DD, 0x68868F5D64D46AD3, 0x3A9D512CCF1E186A, - 0x367E62C2385660AE, 0xE359E7EA77DCB1D7, 0x526C0773749ABE6E, - 0x735AE5F9D09F734B, 0x493FC7CC8A558BA8, 0xB0B9C1533041AB45, - 0x321958BA470A59BD, 0x852DB00B5F46C393, 0x91209B2BD336B0E5, - 0x6E604F7D659EF19F, 0xB99A8AE2782CCB24, 0xCCF52AB6C814C4C7, - 0x4727D9AFBE11727B, 0x7E950D0C0121B34D, 0x756F435670AD471F, - 0xF5ADD442615A6849, 0x4E87E09980B9957A, 0x2ACFA1DF50AEE355, - 0xD898263AFD2FD556, 0xC8F4924DD80C8FD6, 0xCF99CA3D754A173A, - 0xFE477BACAF91BF3C, 0xED5371F6D690C12D, 0x831A5C285E687094, - 0xC5D3C90A3708A0A4, 0x0F7F903717D06580, 0x19F9BB13B8FDF27F, - 0xB1BD6F1B4D502843, 0x1C761BA38FFF4012, 0x0D1530C4E2E21F3B, - 0x8943CE69A7372C8A, 0xE5184E11FEB5CE66, 0x618BDB80BD736621, - 0x7D29BAD68B574D0B, 0x81BB613E25E6FE5B, 0x071C9C10BC07913F, - 0xC7BEEB7909AC2D97, 0xC3E58D353BC5D757, 0xEB017892F38F61E8, - 0xD4EFFB9C9B1CC21A, 0x99727D26F494F7AB, 0xA3E063A2956B3E03, - 0x9D4A8B9A4AA09C30, 0x3F6AB7D500090FB4, 0x9CC0F2A057268AC0, - 0x3DEE9D2DEDBF42D1, 0x330F49C87960A972, 0xC6B2720287421B41, - 0x0AC59EC07C00369C, 0xEF4EAC49CB353425, 0xF450244EEF0129D8, - 0x8ACC46E5CAF4DEB6, 0x2FFEAB63989263F7, 0x8F7CB9FE5D7A4578, - 0x5BD8F7644E634635, 0x427A7315BF2DC900, 0x17D0C4AA2125261C, - 0x3992486C93518E50, 0xB4CBFEE0A2D7D4C3, 0x7C75D6202C5DDD8D, - 0xDBC295D8E35B6C61, 0x60B369D302032B19, 0xCE42685FDCE44132, - 0x06F3DDB9DDF65610, 0x8EA4D21DB5E148F0, 0x20B0FCE62FCD496F, - 0x2C1B912358B0EE31, 0xB28317B818F5A308, 0xA89C1E189CA6D2CF, - 0x0C6B18576AAADBC8, 0xB65DEAA91299FAE3, 0xFB2B794B7F1027E7, - 0x04E4317F443B5BEB, 0x4B852D325939D0A6, 0xD5AE6BEEFB207FFC, - 0x309682B281C7D374, 0xBAE309A194C3B475, 0x8CC3F97B13B49F05, - 0x98A9422FF8293967, 0x244B16B01076FF7C, 0xF8BF571C663D67EE, - 0x1F0D6758EEE30DA1, 0xC9B611D97ADEB9B7, 0xB7AFD5887B6C57A2, - 0x6290AE846B984FE1, 0x94DF4CDEACC1A5FD, 0x058A5BD1C5483AFF, - 0x63166CC142BA3C37, 0x8DB8526EB2F76F40, 0xE10880036F0D6D4E, - 0x9E0523C9971D311D, 0x45EC2824CC7CD691, 0x575B8359E62382C9, - 0xFA9E400DC4889995, 0xD1823ECB45721568, 0xDAFD983B8206082F, - 0xAA7D29082386A8CB, 0x269FCD4403B87588, 0x1B91F5F728BDD1E0, - 0xE4669F39040201F6, 0x7A1D7C218CF04ADE, 0x65623C29D79CE5CE, - 0x2368449096C00BB1, 0xAB9BF1879DA503BA, 0xBC23ECB1A458058E, - 0x9A58DF01BB401ECC, 0xA070E868A85F143D, 0x4FF188307DF2239E, - 0x14D565B41A641183, 0xEE13337452701602, 0x950E3DCF3F285E09, - 0x59930254B9C80953, 0x3BF299408930DA6D, 0xA955943F53691387, - 0xA15EDECAA9CB8784, 0x29142127352BE9A0, 0x76F0371FFF4E7AFB, - 0x0239F450274F2228, 0xBB073AF01D5E868B, 0xBFC80571C10E96C1, - 0xD267088568222E23, 0x9671A3D48E80B5B0, 0x55B5D38AE193BB81, - 0x693AE2D0A18B04B8, 0x5C48B4ECADD5335F, 0xFD743B194916A1CA, - 0x2577018134BE98C4, 0xE77987E83C54A4AD, 0x28E11014DA33E1B9, - 0x270CC59E226AA213, 0x71495F756D1A5F60, 0x9BE853FB60AFEF77, - 0xADC786A7F7443DBF, 0x0904456173B29A82, 0x58BC7A66C232BD5E, - 0xF306558C673AC8B2, 0x41F639C6B6C9772A, 0x216DEFE99FDA35DA, - 0x11640CC71C7BE615, 0x93C43694565C5527, 0xEA038E6246777839, - 0xF9ABF3CE5A3E2469, 0x741E768D0FD312D2, 0x0144B883CED652C6, - 0xC20B5A5BA33F8552, 0x1AE69633C3435A9D, 0x97A28CA4088CFDEC, - 0x8824A43C1E96F420, 0x37612FA66EEEA746, 0x6B4CB165F9CF0E5A, - 0x43AA1C06A0ABFB4A, 0x7F4DC26FF162796B, 0x6CBACC8E54ED9B0F, - 0xA6B7FFEFD2BB253E, 0x2E25BC95B0A29D4F, 0x86D6A58BDEF1388C, - 0xDED74AC576B6F054, 0x8030BDBC2B45805D, 0x3C81AF70E94D9289, - 0x3EFF6DDA9E3100DB, 0xB38DC39FDFCC8847, 0x123885528D17B87E, - 0xF2DA0ED240B1B642, 0x44CEFADCD54BF9A9, 0x1312200E433C7EE6, - 0x9FFCC84F3A78C748, 0xF0CD1F72248576BB, 0xEC6974053638CFE4, - 0x2BA7B67C0CEC4E4C, 0xAC2F4DF3E5CE32ED, 0xCB33D14326EA4C11, - 0xA4E9044CC77E58BC, 0x5F513293D934FCEF, 0x5DC9645506E55444, - 0x50DE418F317DE40A, 0x388CB31A69DDE259, 0x2DB4A83455820A86, - 0x9010A91E84711AE9, 0x4DF7F0B7B1498371, 0xD62A2EABC0977179, - 0x22FAC097AA8D5C0E }; - -const uint64_t Tiger::SBOX3[256] = { - 0xF49FCC2FF1DAF39B, 0x487FD5C66FF29281, 0xE8A30667FCDCA83F, - 0x2C9B4BE3D2FCCE63, 0xDA3FF74B93FBBBC2, 0x2FA165D2FE70BA66, - 0xA103E279970E93D4, 0xBECDEC77B0E45E71, 0xCFB41E723985E497, - 0xB70AAA025EF75017, 0xD42309F03840B8E0, 0x8EFC1AD035898579, - 0x96C6920BE2B2ABC5, 0x66AF4163375A9172, 0x2174ABDCCA7127FB, - 0xB33CCEA64A72FF41, 0xF04A4933083066A5, 0x8D970ACDD7289AF5, - 0x8F96E8E031C8C25E, 0xF3FEC02276875D47, 0xEC7BF310056190DD, - 0xF5ADB0AEBB0F1491, 0x9B50F8850FD58892, 0x4975488358B74DE8, - 0xA3354FF691531C61, 0x0702BBE481D2C6EE, 0x89FB24057DEDED98, - 0xAC3075138596E902, 0x1D2D3580172772ED, 0xEB738FC28E6BC30D, - 0x5854EF8F63044326, 0x9E5C52325ADD3BBE, 0x90AA53CF325C4623, - 0xC1D24D51349DD067, 0x2051CFEEA69EA624, 0x13220F0A862E7E4F, - 0xCE39399404E04864, 0xD9C42CA47086FCB7, 0x685AD2238A03E7CC, - 0x066484B2AB2FF1DB, 0xFE9D5D70EFBF79EC, 0x5B13B9DD9C481854, - 0x15F0D475ED1509AD, 0x0BEBCD060EC79851, 0xD58C6791183AB7F8, - 0xD1187C5052F3EEE4, 0xC95D1192E54E82FF, 0x86EEA14CB9AC6CA2, - 0x3485BEB153677D5D, 0xDD191D781F8C492A, 0xF60866BAA784EBF9, - 0x518F643BA2D08C74, 0x8852E956E1087C22, 0xA768CB8DC410AE8D, - 0x38047726BFEC8E1A, 0xA67738B4CD3B45AA, 0xAD16691CEC0DDE19, - 0xC6D4319380462E07, 0xC5A5876D0BA61938, 0x16B9FA1FA58FD840, - 0x188AB1173CA74F18, 0xABDA2F98C99C021F, 0x3E0580AB134AE816, - 0x5F3B05B773645ABB, 0x2501A2BE5575F2F6, 0x1B2F74004E7E8BA9, - 0x1CD7580371E8D953, 0x7F6ED89562764E30, 0xB15926FF596F003D, - 0x9F65293DA8C5D6B9, 0x6ECEF04DD690F84C, 0x4782275FFF33AF88, - 0xE41433083F820801, 0xFD0DFE409A1AF9B5, 0x4325A3342CDB396B, - 0x8AE77E62B301B252, 0xC36F9E9F6655615A, 0x85455A2D92D32C09, - 0xF2C7DEA949477485, 0x63CFB4C133A39EBA, 0x83B040CC6EBC5462, - 0x3B9454C8FDB326B0, 0x56F56A9E87FFD78C, 0x2DC2940D99F42BC6, - 0x98F7DF096B096E2D, 0x19A6E01E3AD852BF, 0x42A99CCBDBD4B40B, - 0xA59998AF45E9C559, 0x366295E807D93186, 0x6B48181BFAA1F773, - 0x1FEC57E2157A0A1D, 0x4667446AF6201AD5, 0xE615EBCACFB0F075, - 0xB8F31F4F68290778, 0x22713ED6CE22D11E, 0x3057C1A72EC3C93B, - 0xCB46ACC37C3F1F2F, 0xDBB893FD02AAF50E, 0x331FD92E600B9FCF, - 0xA498F96148EA3AD6, 0xA8D8426E8B6A83EA, 0xA089B274B7735CDC, - 0x87F6B3731E524A11, 0x118808E5CBC96749, 0x9906E4C7B19BD394, - 0xAFED7F7E9B24A20C, 0x6509EADEEB3644A7, 0x6C1EF1D3E8EF0EDE, - 0xB9C97D43E9798FB4, 0xA2F2D784740C28A3, 0x7B8496476197566F, - 0x7A5BE3E6B65F069D, 0xF96330ED78BE6F10, 0xEEE60DE77A076A15, - 0x2B4BEE4AA08B9BD0, 0x6A56A63EC7B8894E, 0x02121359BA34FEF4, - 0x4CBF99F8283703FC, 0x398071350CAF30C8, 0xD0A77A89F017687A, - 0xF1C1A9EB9E423569, 0x8C7976282DEE8199, 0x5D1737A5DD1F7ABD, - 0x4F53433C09A9FA80, 0xFA8B0C53DF7CA1D9, 0x3FD9DCBC886CCB77, - 0xC040917CA91B4720, 0x7DD00142F9D1DCDF, 0x8476FC1D4F387B58, - 0x23F8E7C5F3316503, 0x032A2244E7E37339, 0x5C87A5D750F5A74B, - 0x082B4CC43698992E, 0xDF917BECB858F63C, 0x3270B8FC5BF86DDA, - 0x10AE72BB29B5DD76, 0x576AC94E7700362B, 0x1AD112DAC61EFB8F, - 0x691BC30EC5FAA427, 0xFF246311CC327143, 0x3142368E30E53206, - 0x71380E31E02CA396, 0x958D5C960AAD76F1, 0xF8D6F430C16DA536, - 0xC8FFD13F1BE7E1D2, 0x7578AE66004DDBE1, 0x05833F01067BE646, - 0xBB34B5AD3BFE586D, 0x095F34C9A12B97F0, 0x247AB64525D60CA8, - 0xDCDBC6F3017477D1, 0x4A2E14D4DECAD24D, 0xBDB5E6D9BE0A1EEB, - 0x2A7E70F7794301AB, 0xDEF42D8A270540FD, 0x01078EC0A34C22C1, - 0xE5DE511AF4C16387, 0x7EBB3A52BD9A330A, 0x77697857AA7D6435, - 0x004E831603AE4C32, 0xE7A21020AD78E312, 0x9D41A70C6AB420F2, - 0x28E06C18EA1141E6, 0xD2B28CBD984F6B28, 0x26B75F6C446E9D83, - 0xBA47568C4D418D7F, 0xD80BADBFE6183D8E, 0x0E206D7F5F166044, - 0xE258A43911CBCA3E, 0x723A1746B21DC0BC, 0xC7CAA854F5D7CDD3, - 0x7CAC32883D261D9C, 0x7690C26423BA942C, 0x17E55524478042B8, - 0xE0BE477656A2389F, 0x4D289B5E67AB2DA0, 0x44862B9C8FBBFD31, - 0xB47CC8049D141365, 0x822C1B362B91C793, 0x4EB14655FB13DFD8, - 0x1ECBBA0714E2A97B, 0x6143459D5CDE5F14, 0x53A8FBF1D5F0AC89, - 0x97EA04D81C5E5B00, 0x622181A8D4FDB3F3, 0xE9BCD341572A1208, - 0x1411258643CCE58A, 0x9144C5FEA4C6E0A4, 0x0D33D06565CF620F, - 0x54A48D489F219CA1, 0xC43E5EAC6D63C821, 0xA9728B3A72770DAF, - 0xD7934E7B20DF87EF, 0xE35503B61A3E86E5, 0xCAE321FBC819D504, - 0x129A50B3AC60BFA6, 0xCD5E68EA7E9FB6C3, 0xB01C90199483B1C7, - 0x3DE93CD5C295376C, 0xAED52EDF2AB9AD13, 0x2E60F512C0A07884, - 0xBC3D86A3E36210C9, 0x35269D9B163951CE, 0x0C7D6E2AD0CDB5FA, - 0x59E86297D87F5733, 0x298EF221898DB0E7, 0x55000029D1A5AA7E, - 0x8BC08AE1B5061B45, 0xC2C31C2B6C92703A, 0x94CC596BAF25EF42, - 0x0A1D73DB22540456, 0x04B6A0F9D9C4179A, 0xEFFDAFA2AE3D3C60, - 0xF7C8075BB49496C4, 0x9CC5C7141D1CD4E3, 0x78BD1638218E5534, - 0xB2F11568F850246A, 0xEDFABCFA9502BC29, 0x796CE5F2DA23051B, - 0xAAE128B0DC93537C, 0x3A493DA0EE4B29AE, 0xB5DF6B2C416895D7, - 0xFCABBD25122D7F37, 0x70810B58105DC4B1, 0xE10FDD37F7882A90, - 0x524DCAB5518A3F5C, 0x3C9E85878451255B, 0x4029828119BD34E2, - 0x74A05B6F5D3CECCB, 0xB610021542E13ECA, 0x0FF979D12F59E2AC, - 0x6037DA27E4F9CC50, 0x5E92975A0DF1847D, 0xD66DE190D3E623FE, - 0x5032D6B87B568048, 0x9A36B7CE8235216E, 0x80272A7A24F64B4A, - 0x93EFED8B8C6916F7, 0x37DDBFF44CCE1555, 0x4B95DB5D4B99BD25, - 0x92D3FDA169812FC0, 0xFB1A4A9A90660BB6, 0x730C196946A4B9B2, - 0x81E289AA7F49DA68, 0x64669A0F83B1A05F, 0x27B3FF7D9644F48B, - 0xCC6B615C8DB675B3, 0x674F20B9BCEBBE95, 0x6F31238275655982, - 0x5AE488713E45CF05, 0xBF619F9954C21157, 0xEABAC46040A8EAE9, - 0x454C6FE9F2C0C1CD, 0x419CF6496412691C, 0xD3DC3BEF265B0F70, - 0x6D0E60F5C3578A9E }; - -const uint64_t Tiger::SBOX4[256] = { - 0x5B0E608526323C55, 0x1A46C1A9FA1B59F5, 0xA9E245A17C4C8FFA, - 0x65CA5159DB2955D7, 0x05DB0A76CE35AFC2, 0x81EAC77EA9113D45, - 0x528EF88AB6AC0A0D, 0xA09EA253597BE3FF, 0x430DDFB3AC48CD56, - 0xC4B3A67AF45CE46F, 0x4ECECFD8FBE2D05E, 0x3EF56F10B39935F0, - 0x0B22D6829CD619C6, 0x17FD460A74DF2069, 0x6CF8CC8E8510ED40, - 0xD6C824BF3A6ECAA7, 0x61243D581A817049, 0x048BACB6BBC163A2, - 0xD9A38AC27D44CC32, 0x7FDDFF5BAAF410AB, 0xAD6D495AA804824B, - 0xE1A6A74F2D8C9F94, 0xD4F7851235DEE8E3, 0xFD4B7F886540D893, - 0x247C20042AA4BFDA, 0x096EA1C517D1327C, 0xD56966B4361A6685, - 0x277DA5C31221057D, 0x94D59893A43ACFF7, 0x64F0C51CCDC02281, - 0x3D33BCC4FF6189DB, 0xE005CB184CE66AF1, 0xFF5CCD1D1DB99BEA, - 0xB0B854A7FE42980F, 0x7BD46A6A718D4B9F, 0xD10FA8CC22A5FD8C, - 0xD31484952BE4BD31, 0xC7FA975FCB243847, 0x4886ED1E5846C407, - 0x28CDDB791EB70B04, 0xC2B00BE2F573417F, 0x5C9590452180F877, - 0x7A6BDDFFF370EB00, 0xCE509E38D6D9D6A4, 0xEBEB0F00647FA702, - 0x1DCC06CF76606F06, 0xE4D9F28BA286FF0A, 0xD85A305DC918C262, - 0x475B1D8732225F54, 0x2D4FB51668CCB5FE, 0xA679B9D9D72BBA20, - 0x53841C0D912D43A5, 0x3B7EAA48BF12A4E8, 0x781E0E47F22F1DDF, - 0xEFF20CE60AB50973, 0x20D261D19DFFB742, 0x16A12B03062A2E39, - 0x1960EB2239650495, 0x251C16FED50EB8B8, 0x9AC0C330F826016E, - 0xED152665953E7671, 0x02D63194A6369570, 0x5074F08394B1C987, - 0x70BA598C90B25CE1, 0x794A15810B9742F6, 0x0D5925E9FCAF8C6C, - 0x3067716CD868744E, 0x910AB077E8D7731B, 0x6A61BBDB5AC42F61, - 0x93513EFBF0851567, 0xF494724B9E83E9D5, 0xE887E1985C09648D, - 0x34B1D3C675370CFD, 0xDC35E433BC0D255D, 0xD0AAB84234131BE0, - 0x08042A50B48B7EAF, 0x9997C4EE44A3AB35, 0x829A7B49201799D0, - 0x263B8307B7C54441, 0x752F95F4FD6A6CA6, 0x927217402C08C6E5, - 0x2A8AB754A795D9EE, 0xA442F7552F72943D, 0x2C31334E19781208, - 0x4FA98D7CEAEE6291, 0x55C3862F665DB309, 0xBD0610175D53B1F3, - 0x46FE6CB840413F27, 0x3FE03792DF0CFA59, 0xCFE700372EB85E8F, - 0xA7BE29E7ADBCE118, 0xE544EE5CDE8431DD, 0x8A781B1B41F1873E, - 0xA5C94C78A0D2F0E7, 0x39412E2877B60728, 0xA1265EF3AFC9A62C, - 0xBCC2770C6A2506C5, 0x3AB66DD5DCE1CE12, 0xE65499D04A675B37, - 0x7D8F523481BFD216, 0x0F6F64FCEC15F389, 0x74EFBE618B5B13C8, - 0xACDC82B714273E1D, 0xDD40BFE003199D17, 0x37E99257E7E061F8, - 0xFA52626904775AAA, 0x8BBBF63A463D56F9, 0xF0013F1543A26E64, - 0xA8307E9F879EC898, 0xCC4C27A4150177CC, 0x1B432F2CCA1D3348, - 0xDE1D1F8F9F6FA013, 0x606602A047A7DDD6, 0xD237AB64CC1CB2C7, - 0x9B938E7225FCD1D3, 0xEC4E03708E0FF476, 0xFEB2FBDA3D03C12D, - 0xAE0BCED2EE43889A, 0x22CB8923EBFB4F43, 0x69360D013CF7396D, - 0x855E3602D2D4E022, 0x073805BAD01F784C, 0x33E17A133852F546, - 0xDF4874058AC7B638, 0xBA92B29C678AA14A, 0x0CE89FC76CFAADCD, - 0x5F9D4E0908339E34, 0xF1AFE9291F5923B9, 0x6E3480F60F4A265F, - 0xEEBF3A2AB29B841C, 0xE21938A88F91B4AD, 0x57DFEFF845C6D3C3, - 0x2F006B0BF62CAAF2, 0x62F479EF6F75EE78, 0x11A55AD41C8916A9, - 0xF229D29084FED453, 0x42F1C27B16B000E6, 0x2B1F76749823C074, - 0x4B76ECA3C2745360, 0x8C98F463B91691BD, 0x14BCC93CF1ADE66A, - 0x8885213E6D458397, 0x8E177DF0274D4711, 0xB49B73B5503F2951, - 0x10168168C3F96B6B, 0x0E3D963B63CAB0AE, 0x8DFC4B5655A1DB14, - 0xF789F1356E14DE5C, 0x683E68AF4E51DAC1, 0xC9A84F9D8D4B0FD9, - 0x3691E03F52A0F9D1, 0x5ED86E46E1878E80, 0x3C711A0E99D07150, - 0x5A0865B20C4E9310, 0x56FBFC1FE4F0682E, 0xEA8D5DE3105EDF9B, - 0x71ABFDB12379187A, 0x2EB99DE1BEE77B9C, 0x21ECC0EA33CF4523, - 0x59A4D7521805C7A1, 0x3896F5EB56AE7C72, 0xAA638F3DB18F75DC, - 0x9F39358DABE9808E, 0xB7DEFA91C00B72AC, 0x6B5541FD62492D92, - 0x6DC6DEE8F92E4D5B, 0x353F57ABC4BEEA7E, 0x735769D6DA5690CE, - 0x0A234AA642391484, 0xF6F9508028F80D9D, 0xB8E319A27AB3F215, - 0x31AD9C1151341A4D, 0x773C22A57BEF5805, 0x45C7561A07968633, - 0xF913DA9E249DBE36, 0xDA652D9B78A64C68, 0x4C27A97F3BC334EF, - 0x76621220E66B17F4, 0x967743899ACD7D0B, 0xF3EE5BCAE0ED6782, - 0x409F753600C879FC, 0x06D09A39B5926DB6, 0x6F83AEB0317AC588, - 0x01E6CA4A86381F21, 0x66FF3462D19F3025, 0x72207C24DDFD3BFB, - 0x4AF6B6D3E2ECE2EB, 0x9C994DBEC7EA08DE, 0x49ACE597B09A8BC4, - 0xB38C4766CF0797BA, 0x131B9373C57C2A75, 0xB1822CCE61931E58, - 0x9D7555B909BA1C0C, 0x127FAFDD937D11D2, 0x29DA3BADC66D92E4, - 0xA2C1D57154C2ECBC, 0x58C5134D82F6FE24, 0x1C3AE3515B62274F, - 0xE907C82E01CB8126, 0xF8ED091913E37FCB, 0x3249D8F9C80046C9, - 0x80CF9BEDE388FB63, 0x1881539A116CF19E, 0x5103F3F76BD52457, - 0x15B7E6F5AE47F7A8, 0xDBD7C6DED47E9CCF, 0x44E55C410228BB1A, - 0xB647D4255EDB4E99, 0x5D11882BB8AAFC30, 0xF5098BBB29D3212A, - 0x8FB5EA14E90296B3, 0x677B942157DD025A, 0xFB58E7C0A390ACB5, - 0x89D3674C83BD4A01, 0x9E2DA4DF4BF3B93B, 0xFCC41E328CAB4829, - 0x03F38C96BA582C52, 0xCAD1BDBD7FD85DB2, 0xBBB442C16082AE83, - 0xB95FE86BA5DA9AB0, 0xB22E04673771A93F, 0x845358C9493152D8, - 0xBE2A488697B4541E, 0x95A2DC2DD38E6966, 0xC02C11AC923C852B, - 0x2388B1990DF2A87B, 0x7C8008FA1B4F37BE, 0x1F70D0C84D54E503, - 0x5490ADEC7ECE57D4, 0x002B3C27D9063A3A, 0x7EAEA3848030A2BF, - 0xC602326DED2003C0, 0x83A7287D69A94086, 0xC57A5FCB30F57A8A, - 0xB56844E479EBE779, 0xA373B40F05DCBCE9, 0xD71A786E88570EE2, - 0x879CBACDBDE8F6A0, 0x976AD1BCC164A32F, 0xAB21E25E9666D78B, - 0x901063AAE5E5C33C, 0x9818B34448698D90, 0xE36487AE3E1E8ABB, - 0xAFBDF931893BDCB4, 0x6345A0DC5FBBD519, 0x8628FE269B9465CA, - 0x1E5D01603F9C51EC, 0x4DE44006A15049B7, 0xBF6C70E5F776CBB1, - 0x411218F2EF552BED, 0xCB0C0708705A36A3, 0xE74D14754F986044, - 0xCD56D9430EA8280E, 0xC12591D7535F5065, 0xC83223F1720AEF96, - 0xC3A0396F7363A51F }; - -} diff --git a/src/lib/hash/tiger/tiger.cpp b/src/lib/hash/tiger/tiger.cpp deleted file mode 100644 index ac2038a0f..000000000 --- a/src/lib/hash/tiger/tiger.cpp +++ /dev/null @@ -1,190 +0,0 @@ -/* -* Tiger -* (C) 1999-2007 Jack Lloyd -* -* Botan is released under the Simplified BSD License (see license.txt) -*/ - -#include -#include -#include - -namespace Botan { - -std::unique_ptr Tiger::copy_state() const - { - return std::unique_ptr(new Tiger(*this)); - } - -namespace { - -/* -* Tiger Mixing Function -*/ -inline void mix(secure_vector& X) - { - X[0] -= X[7] ^ 0xA5A5A5A5A5A5A5A5; - X[1] ^= X[0]; - X[2] += X[1]; - X[3] -= X[2] ^ ((~X[1]) << 19); - X[4] ^= X[3]; - X[5] += X[4]; - X[6] -= X[5] ^ ((~X[4]) >> 23); - X[7] ^= X[6]; - - X[0] += X[7]; - X[1] -= X[0] ^ ((~X[7]) << 19); - X[2] ^= X[1]; - X[3] += X[2]; - X[4] -= X[3] ^ ((~X[2]) >> 23); - X[5] ^= X[4]; - X[6] += X[5]; - X[7] -= X[6] ^ 0x0123456789ABCDEF; - } - -} - -/* -* Tiger Compression Function -*/ -void Tiger::compress_n(const uint8_t input[], size_t blocks) - { - uint64_t A = m_digest[0], B = m_digest[1], C = m_digest[2]; - - for(size_t i = 0; i != blocks; ++i) - { - load_le(m_X.data(), input, m_X.size()); - - pass(A, B, C, m_X, 5); mix(m_X); - pass(C, A, B, m_X, 7); mix(m_X); - pass(B, C, A, m_X, 9); - - for(size_t j = 3; j != m_passes; ++j) - { - mix(m_X); - pass(A, B, C, m_X, 9); - uint64_t T = A; A = C; C = B; B = T; - } - - A = (m_digest[0] ^= A); - B = m_digest[1] = B - m_digest[1]; - C = (m_digest[2] += C); - - input += hash_block_size(); - } - } - -/* -* Copy out the digest -*/ -void Tiger::copy_out(uint8_t output[]) - { - copy_out_vec_le(output, output_length(), m_digest); - } - -/* -* Tiger Pass -*/ -void Tiger::pass(uint64_t& A, uint64_t& B, uint64_t& C, - const secure_vector& X, - uint8_t mul) - { - C ^= X[0]; - A -= SBOX1[get_byte(7, C)] ^ SBOX2[get_byte(5, C)] ^ - SBOX3[get_byte(3, C)] ^ SBOX4[get_byte(1, C)]; - B += SBOX1[get_byte(0, C)] ^ SBOX2[get_byte(2, C)] ^ - SBOX3[get_byte(4, C)] ^ SBOX4[get_byte(6, C)]; - B *= mul; - - A ^= X[1]; - B -= SBOX1[get_byte(7, A)] ^ SBOX2[get_byte(5, A)] ^ - SBOX3[get_byte(3, A)] ^ SBOX4[get_byte(1, A)]; - C += SBOX1[get_byte(0, A)] ^ SBOX2[get_byte(2, A)] ^ - SBOX3[get_byte(4, A)] ^ SBOX4[get_byte(6, A)]; - C *= mul; - - B ^= X[2]; - C -= SBOX1[get_byte(7, B)] ^ SBOX2[get_byte(5, B)] ^ - SBOX3[get_byte(3, B)] ^ SBOX4[get_byte(1, B)]; - A += SBOX1[get_byte(0, B)] ^ SBOX2[get_byte(2, B)] ^ - SBOX3[get_byte(4, B)] ^ SBOX4[get_byte(6, B)]; - A *= mul; - - C ^= X[3]; - A -= SBOX1[get_byte(7, C)] ^ SBOX2[get_byte(5, C)] ^ - SBOX3[get_byte(3, C)] ^ SBOX4[get_byte(1, C)]; - B += SBOX1[get_byte(0, C)] ^ SBOX2[get_byte(2, C)] ^ - SBOX3[get_byte(4, C)] ^ SBOX4[get_byte(6, C)]; - B *= mul; - - A ^= X[4]; - B -= SBOX1[get_byte(7, A)] ^ SBOX2[get_byte(5, A)] ^ - SBOX3[get_byte(3, A)] ^ SBOX4[get_byte(1, A)]; - C += SBOX1[get_byte(0, A)] ^ SBOX2[get_byte(2, A)] ^ - SBOX3[get_byte(4, A)] ^ SBOX4[get_byte(6, A)]; - C *= mul; - - B ^= X[5]; - C -= SBOX1[get_byte(7, B)] ^ SBOX2[get_byte(5, B)] ^ - SBOX3[get_byte(3, B)] ^ SBOX4[get_byte(1, B)]; - A += SBOX1[get_byte(0, B)] ^ SBOX2[get_byte(2, B)] ^ - SBOX3[get_byte(4, B)] ^ SBOX4[get_byte(6, B)]; - A *= mul; - - C ^= X[6]; - A -= SBOX1[get_byte(7, C)] ^ SBOX2[get_byte(5, C)] ^ - SBOX3[get_byte(3, C)] ^ SBOX4[get_byte(1, C)]; - B += SBOX1[get_byte(0, C)] ^ SBOX2[get_byte(2, C)] ^ - SBOX3[get_byte(4, C)] ^ SBOX4[get_byte(6, C)]; - B *= mul; - - A ^= X[7]; - B -= SBOX1[get_byte(7, A)] ^ SBOX2[get_byte(5, A)] ^ - SBOX3[get_byte(3, A)] ^ SBOX4[get_byte(1, A)]; - C += SBOX1[get_byte(0, A)] ^ SBOX2[get_byte(2, A)] ^ - SBOX3[get_byte(4, A)] ^ SBOX4[get_byte(6, A)]; - C *= mul; - } - -/* -* Clear memory of sensitive data -*/ -void Tiger::clear() - { - MDx_HashFunction::clear(); - zeroise(m_X); - m_digest[0] = 0x0123456789ABCDEF; - m_digest[1] = 0xFEDCBA9876543210; - m_digest[2] = 0xF096A5B4C3B2E187; - } - -/* -* Return the name of this type -*/ -std::string Tiger::name() const - { - return "Tiger(" + std::to_string(output_length()) + "," + - std::to_string(m_passes) + ")"; - } - -/* -* Tiger Constructor -*/ -Tiger::Tiger(size_t hash_len, size_t passes) : - MDx_HashFunction(64, false, false), - m_X(8), - m_digest(3), - m_hash_len(hash_len), - m_passes(passes) - { - if(output_length() != 16 && output_length() != 20 && output_length() != 24) - throw Invalid_Argument("Tiger: Illegal hash output size: " + - std::to_string(output_length())); - - if(passes < 3) - throw Invalid_Argument("Tiger: Invalid number of passes: " - + std::to_string(passes)); - clear(); - } - -} diff --git a/src/lib/hash/tiger/tiger.h b/src/lib/hash/tiger/tiger.h deleted file mode 100644 index 6e17ce83c..000000000 --- a/src/lib/hash/tiger/tiger.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -* Tiger -* (C) 1999-2007 Jack Lloyd -* -* Botan is released under the Simplified BSD License (see license.txt) -*/ - -#ifndef BOTAN_TIGER_H_ -#define BOTAN_TIGER_H_ - -#include - -BOTAN_FUTURE_INTERNAL_HEADER(tiger.h) - -namespace Botan { - -/** -* Tiger -*/ -class BOTAN_PUBLIC_API(2,0) Tiger final : public MDx_HashFunction - { - public: - std::string name() const override; - size_t output_length() const override { return m_hash_len; } - - HashFunction* clone() const override - { - return new Tiger(output_length(), m_passes); - } - - std::unique_ptr copy_state() const override; - - void clear() override; - - /** - * @param out_size specifies the output length; can be 16, 20, or 24 - * @param passes to make in the algorithm - */ - Tiger(size_t out_size = 24, size_t passes = 3); - private: - void compress_n(const uint8_t[], size_t block) override; - void copy_out(uint8_t[]) override; - - static void pass(uint64_t& A, uint64_t& B, uint64_t& C, - const secure_vector& M, - uint8_t mul); - - static const uint64_t SBOX1[256]; - static const uint64_t SBOX2[256]; - static const uint64_t SBOX3[256]; - static const uint64_t SBOX4[256]; - - secure_vector m_X, m_digest; - const size_t m_hash_len, m_passes; - }; - -} - -#endif diff --git a/src/lib/pk_pad/hash_id/hash_id.cpp b/src/lib/pk_pad/hash_id/hash_id.cpp index ec317f969..efebf5095 100644 --- a/src/lib/pk_pad/hash_id/hash_id.cpp +++ b/src/lib/pk_pad/hash_id/hash_id.cpp @@ -65,10 +65,6 @@ const uint8_t SM3_PKCS_ID[] = { 0x55, 0x01, 0x83, 0x11, 0x05, 0x00, 0x04, 0x20, }; -const uint8_t TIGER_PKCS_ID[] = { -0x30, 0x29, 0x30, 0x0D, 0x06, 0x09, 0x2B, 0x06, 0x01, 0x04, -0x01, 0xDA, 0x47, 0x0C, 0x02, 0x05, 0x00, 0x04, 0x18 }; - } /* @@ -133,10 +129,6 @@ std::vector pkcs_hash_id(const std::string& name) if(name == "SM3") return std::vector(SM3_PKCS_ID, SM3_PKCS_ID + sizeof(SM3_PKCS_ID)); - if(name == "Tiger(24,3)") - return std::vector(TIGER_PKCS_ID, - TIGER_PKCS_ID + sizeof(TIGER_PKCS_ID)); - throw Invalid_Argument("No PKCS #1 identifier for " + name); } diff --git a/src/lib/utils/types.h b/src/lib/utils/types.h index c01f1e417..ac4d13b26 100644 --- a/src/lib/utils/types.h +++ b/src/lib/utils/types.h @@ -40,7 +40,7 @@ namespace Botan { *
Hash Functions
* BLAKE2b, @ref GOST_34_11 "GOST 34.11", @ref Keccak_1600 "Keccak", MD4, MD5, @ref RIPEMD_160 "RIPEMD-160", * @ref SHA_160 "SHA-1", @ref SHA_224 "SHA-224", @ref SHA_256 "SHA-256", @ref SHA_384 "SHA-384", -* @ref SHA_512 "SHA-512", @ref Skein_512 "Skein-512", SM3, Streebog, Tiger, Whirlpool +* @ref SHA_512 "SHA-512", @ref Skein_512 "Skein-512", SM3, Streebog, Whirlpool *
Non-Cryptographic Checksums
* Adler32, CRC24, CRC32 *
Message Authentication Codes
diff --git a/src/scripts/oids.py b/src/scripts/oids.py index 323b6efb5..dae1a4dc5 100755 --- a/src/scripts/oids.py +++ b/src/scripts/oids.py @@ -200,7 +200,7 @@ def format_set_map(m): s += '{ "%s", {' % k for pad in v: s += '"%s", ' % pad - if len(v) is not 0: + if len(v) != 0: s = s[:-2] s += '} },\n' s = s[:-1] diff --git a/src/tests/data/hash/tiger.vec b/src/tests/data/hash/tiger.vec deleted file mode 100644 index 7fbdbd38a..000000000 --- a/src/tests/data/hash/tiger.vec +++ /dev/null @@ -1,1989 +0,0 @@ -[Tiger(16,3)] -In = -Out = 3293AC630C13F0245F92BBB1766E1616 - -In = 4142434445464748494A4B4C4D4E4F505152535455565758595A3D6162636465666768696A6B6C6D6E6F707172737475767778797A2B30313233343536373839 -Out = 48CEEB6308B87D46E95D656112CDF18D - -[Tiger(20,3)] -In = -Out = 3293AC630C13F0245F92BBB1766E16167A4E5849 - -In = 4142434445464748494A4B4C4D4E4F505152535455565758595A3D6162636465666768696A6B6C6D6E6F707172737475767778797A2B30313233343536373839 -Out = 48CEEB6308B87D46E95D656112CDF18D97915F97 - -[Tiger(24,3)] -# From http://www.cs.technion.ac.il/~biham/Reports/Tiger/test-vectors-nessie-format.dat - -In = -Out = 3293AC630C13F0245F92BBB1766E16167A4E58492DDE73F3 - -In = 61 -Out = 77BEFBEF2E7EF8AB2EC8F93BF587A7FC613E247F5F247809 - -In = 616263 -Out = 2AAB1484E8C158F2BFB8C5FF41B57A525129131C957B5F93 - -In = 6D65737361676520646967657374 -Out = D981F8CB78201A950DCF3048751E441C517FCA1AA55A29F6 - -In = 6162636465666768696A6B6C6D6E6F707172737475767778797A -Out = 1714A472EEE57D30040412BFCC55032A0B11602FF37BEEE9 - -In = 6162636462636465636465666465666765666768666768696768696A68696A6B696A6B6C6A6B6C6D6B6C6D6E6C6D6E6F6D6E6F706E6F7071 -Out = 0F7BF9A19B9C58F2B7610DF7E84F0AC3A71C631E7B53F78E - -In = 4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465666768696A6B6C6D6E6F707172737475767778797A30313233343536373839 -Out = 8DCEA680A17583EE502BA38A3C368651890FFBCCDC49A8CC - -In = 3132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930 -Out = 1C14795529FD9F207A958F84C52F11E887FA0CABDFD91BFD - -In = 00 -Out = 5D9ED00A030E638BDB753A6A24FB900E5A63B8E73E6C25B6 - -In = 0000 -Out = AABBCCA084ACECD0511D1F6232A17BFAEFA441B2982E5548 - -In = 000000 -Out = 7F7A8CE9580077EB6FD53BE8BB3E70650E2FDD8DBB44F5C7 - -In = 00000000 -Out = 605D1B8C132BF5D16F1A8BC2451733F7F0FF57FD5F49E298 - -In = 0000000000 -Out = 7F3A0954A5C374566C72370D1D97C2AC8FA9B1E3CB216E31 - -In = 000000000000 -Out = B333735AFDAB30B4B597CCD137AC1AD2B30D4A047BAD0127 - -In = 00000000000000 -Out = 1F27BB5926F35CF5D52A24817BF56CD17D79BB65ABE85785 - -In = 0000000000000000 -Out = 5229DC51A494B913F8E04C4C729C93CB8B260CA4EE8EA9D7 - -In = 000000000000000000 -Out = 5DFE02959A64534E0E679937B712F7DDE2C7B982597D315D - -In = 00000000000000000000 -Out = 654D00C774FBE74CFE4C0A6DEA5917823A6B20070CD0CCCB - -In = 0000000000000000000000 -Out = C82A6419844FC7028B52CAC8186D63B85121AAACBA622A87 - -In = 000000000000000000000000 -Out = 06F6D65EF081AFE892AC0946F275DBAB9D3B6D9C55E517C9 - -In = 00000000000000000000000000 -Out = 42C40537A876D69DF84FF36FBA3127901B112B9E96688012 - -In = 0000000000000000000000000000 -Out = 6FA00EB82505EBC4707F675B0A72A9F9795F647B550F155D - -In = 000000000000000000000000000000 -Out = 239549439CCE539F304CB7A95160A033529B228CA406EFF9 - -In = 00000000000000000000000000000000 -Out = 464B87921CCDAEDBC0D6941610D1EB19E536036096403F32 - -In = 0000000000000000000000000000000000 -Out = F29CF9B53DA4F9955E7BB766EDBAD59EA914E5354DDF9ACF - -In = 000000000000000000000000000000000000 -Out = E9B6BAA124BA93A4501DB9A92F212A14C538CF82C17E89B4 - -In = 00000000000000000000000000000000000000 -Out = 03EB6D4703EFCF2E088515D3B902A1CF78711B7E7CE3AF74 - -In = 0000000000000000000000000000000000000000 -Out = 53BFCB1EB5CA9B2E8A4225E6C00584023FF8AA0017AD3A0D - -In = 000000000000000000000000000000000000000000 -Out = 67F6D2B74B13251432469B9CE6A7C91EAD6E72B9CB51CEF8 - -In = 00000000000000000000000000000000000000000000 -Out = 81A68B237DDC60C9C31B34B52A754A8A7B1F51D40781B988 - -In = 0000000000000000000000000000000000000000000000 -Out = E99E18449AEB4421CEC31D1521C23445BC2598EA5DA14A09 - -In = 000000000000000000000000000000000000000000000000 -Out = CDDDCACFEA7B70B485655BA3DC3F60DEE4F6B8F861069E33 - -In = 00000000000000000000000000000000000000000000000000 -Out = 424CDDE2E5478A29A71352AAE538EAFE9F1B6F07AE05137B - -In = 0000000000000000000000000000000000000000000000000000 -Out = 996B4DD292782A19D742B534916870023F32E72F1C197625 - -In = 000000000000000000000000000000000000000000000000000000 -Out = 2C4B719E5E0BFBBA616FB8AB35470D84B676C7D3A6395262 - -In = 00000000000000000000000000000000000000000000000000000000 -Out = F178E06FC3319BA18F2EAC3DCC5240D06BAC062BCD5CA1CE - -In = 0000000000000000000000000000000000000000000000000000000000 -Out = E899374C34AED37FBC9E0E4A0D37A13045639D5CAF24095A - -In = 000000000000000000000000000000000000000000000000000000000000 -Out = 3D8E74F26682750FEEDE30A305C9CA162C6BDD9B790BCC5D - -In = 00000000000000000000000000000000000000000000000000000000000000 -Out = 3EFCD915BB46020B8999C9AD56356FB91F93C4907C4012D5 - -In = 0000000000000000000000000000000000000000000000000000000000000000 -Out = 739414BD4CD6AB967CD46A1D943412757D858B24D1C4ECF7 - -In = 000000000000000000000000000000000000000000000000000000000000000000 -Out = 3615FE2BB3B94A00245A1B3DF68B9D43BBAD82B16BFCD6A5 - -In = 00000000000000000000000000000000000000000000000000000000000000000000 -Out = 9E9AD6783D3775885E65D05EDA4262E179836ACBB9867CE2 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5D91C8314556534FF3DEE0515334F09E16935538E347C029 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000 -Out = E48325D26CBEA5C14AF5D2BC043242DE2A5DC17EF5798BA0 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0DE25B928CF3E4FE85F46C18334D9C9DAE995E4889068C4E - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1BD4360038C1282E66538B156E9F604AA0262D4608184A5C - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FCC72686AD012FF48D1471CD0EAD606EC21A5E496DB66103 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F11D39950658DBDF786703E3EDAAA3A654B4428AD419DF11 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 2AFACE18DA68984D907D1C0F647E9244D6976F4F471064B9 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = E2056969720C08B5C9C8F903416668A7F5B2D6F95046C5FF - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D95BC879A68D549A5296BD34344C5ACC4D826E54ECEC346C - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D33A7246729743643BF4B438FBB9BC2374F9E346A0868DC6 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1201A8247225F31B928390B35787C046653249D0441F0AAD - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1E63B6124EF57A92B36C8FF837C38CC9072048ED98EE853F - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F2E4B6637FDFF18F785894EECEA514E7B96B2409E62DF3FB - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 10DD94B66BA6AE0498C9C7754844662E5D8B62E27D2C4D26 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8BD37E3CF05E59537389672DF921392A45CB57ACFE9247A1 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 41621DF28B038C0032508592F986C7C4832927CD1134B2B4 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 978365EDBC762C10187F212BF9115D79FCBD489EC135AC9A - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8C4A9C341016B2D74E1DC75478A20A57EC934C38E6D60DF3 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FD5A1DDED7D38B987B582FD91E95FF8ED84DDF5D486A00EB - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F5845CBBA386319361D4042658606947FB96D72934378AA3 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A4EE394B2A208E9B0A74C6D57568E470F6E658C44689FC63 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 19208AEF976EEA1A1296AB46BB8519E4E35CC3D26D2B574F - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A0D74C6090806AE1B4A9A676950B940DC37D28F762AF66DC - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = DA1DCA0F6E414B6634ECF34DE132F3320BE35AC8D6AB0BBB - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 49D948E0A5149A7B41F73C30B62FEEDBABA7DD9FFA9DB383 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 95475FE7F5016A6FBB175EBF3B13EFE41FCFE9249586BB2A - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8AEEF6FEB5BF02F8ACC6430FEC5CC7858EEDF9C1DBBE8F09 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0E425380B928052574D82A3F604162F3021361517560271F - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A857DD168B22B65A6DD2EA8035C4EDC4B890453D14BA6052 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 33FF9966DDD692427A9BC4D611F3C74CF629A0544A1A7ED7 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 759D79778FA748F8E828A568C45B7E2774A6052E0A4A06A7 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 93E4986EC1BAE0334662495E3261769214DFAB96C6567A12 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D50D44D48A7519B21C7ACF59DCD56066C7C328F680F2FB7C - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6C240CDCC41A5DB56F7A88E25A04A2F3D10D33B6908D0F4C - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D8581CF122C23E06A9A8781E6635113F76CBF21ECC520BE7 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1E763325671BEE3E17FD894D7A4E1405315004563BFAA368 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 57B581CBF0EF91E38F4A306FFB3791A0BE6E1FA96BDE0703 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0870537F7FD0A5F600E2B02B31878C2244F2E76C8D0AB421 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6F1D28AA4EEF347CAE41FABBC528AE71345BAC83D6572BAF - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 704CE7D9895218DAABAF9BDF944F7901571D0C24873984BF - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1574D6AD7CABC7DFAEE1520289E0ED8B26DC6195C5F588BD - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 257196F102E891E04ACD046CF099A2191ACE7F878B1C5CE2 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 359F480A3475F89093F33289C3EDD28867C0E0F11AF79939 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8CA6EF62DD4E1445C729E3FAFF0B57DF5ADA90D714B906F6 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D917B8C5CF18FBD88482F6754EFC9D308EBCAB912A609D5E - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = B3950A9D299A5A732CC0841F1EFAE62F3DB20A707B98F3F5 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 4112B496A4BA7C67F040A48A30C3F48496FDD3AD2A4A9E6B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D663C288232D8512986F0C2F37F20A764AFABF068F44CE62 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 4B0292082184E5727B98ABCFD57197EE14AB5893E2CDD370 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9EAF05D45A302F909E6850E28AF8A88E51799E20EF75D0E3 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = AB8FBE9C09E9906200201F3AFCEF79AFF29267BA19C63A82 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = DB76DF9A0D2E9D21B57EC44C99653F59348981467EC2476D - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0C2CCBAEB70C5C1F85FAFA01B1719F363D902716810F582E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FCED365E31C7E4F3B06CB6720875A33E1AC45D047D071342 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 2FEDFD926783A5C91D51BCC3228F2846243B95E5D858AF07 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C1789746C0E04E42F2CEAA374FBCEDCFCB17AFB816D3D9B5 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C055A3A9EF84BD96AEBAE31C08B74BA22BD2489C70D25672 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = AE1AEECA1373D4348E4EDC2B7F393A8F44A351AA952AD7F7 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 60CA04458514989969B5D3A1537F226CB54E3FCE9CC9B134 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 20E29A4A4C36D7C2BADE368564765EE0353709CE47D0E36A - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8CE7840450B26DE74B798056D30584DCC436AD79B061729D - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 05D2A28308C44536C591DF21B02AB542AF982B81A4C5E129 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 196ACD3484E2F5FD51AC0CC667596AB0E764936C37A345B7 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C4F29A86A5415A0086FEC47CB3D46A71E8D224880657789A - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C5AD956C7D06EC8651665176733FB2EF0D01BE7E81E0F775 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A5A54E12A9538A158E78AE09896DCB2CE31F14150625E615 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 239045220EF064D13637D503A6079EF21B5F2D02CF98FA5A - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = AAEA04D2B11931D58016A9B68B3FF543C7BFD87823EA6ABA - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 37838610BB3944FB3DFBB14B95A4007705B3773148E58AC3 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 3DE1ECB5FEC022C7CF8B4CF4AFFEE41D85648EAEF6B0F5A7 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 40224B9C7ECBBB69D1A5E0A3A0F249315AE1E7DE859FD763 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 7EF8F229B824EA82F8E8834E799A67A0B946086BD9AA582B - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 2543ECA4058C02EFE62E2131E9A7627D6DCAA6C51A13A517 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 51E2B3A3D56D88BDB4F77CEAC0D146B08C269EB50D7914D4 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9A3A264F48D2BC4B08671B0D6EE58B4E0E87D19CFC561738 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F8F8F7095F7FF1111811FB2B63F431B529CA740EFA9A3350 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = E0BF4F81FB633EBF0092E6AD4EC8B6834A85DF4F639F94D0 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 114BD7F8FCA026BA9874DD79174EA1FB7275B8C7F2042871 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = BDE5124EBA58CD1929DD63E9A4A987296D93E78378BA7E21 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FAA1FA47DEDC888043BC35BD97288C3E3E8702E3790A5ED4 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 4D0016CD63CCB3C917A9CAC0A656ABF1BF1F79A42D9FB4E5 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1D9C9AA4BD15F3B6DDDE9771259AA550F17CE01383DFC3E7 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D70BCAA1810D6213A77935D751F52C8743C809C37DCB02CE - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9759AE86B5CC71DB9406A2ABDD0537940D717E2953E4573F - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A6452EF736D5CFF79BC3C3DBAA7FC7B4B992AE7DBD87650B - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FB7177FFE0E718C91348A8302C57129596149F042FCC99A6 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A6FABD413D9FAF90AC0A8D97F82B1D28761D9B3A7A3A2E2C - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 93E56AE559EC7BF41251B6C84700465BF78E0757576679B3 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 24F342F67741BFD5CCA5E9C5C0D902CB6F93DF12203E891A - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = BE7803AE8A8C84B7567352C2E3A78BE424784406D33F6930 - -In = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 43A59ECAB48D3784CD83B0887E92D208A0E7CEC6DA3A7146 - -In = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 7D16DC5E00379CA0F13FA261AD5FDB56449ADF9DAD3810E1 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 00A569CCADB17662483CA36230BCC6956BA5C1D5595C044A - -In = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = B99F2BEFF1E64861ECB3D91B04C9BA4BE6FC0FE7CE9653F3 - -In = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FBDD470EE15111676B477532D293019EB182CE9EF17C0B59 - -In = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D68BC840B64746A212810784CAB2BBDFCC49FDC743AFF5D4 - -In = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D6B280F151C286E2B8A78B3C80F181E192BEEC0A339F0453 - -In = 08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 02FDBD79A641FDB807DD80699019BC97DA69D692104FBFCB - -In = 04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = E30F39FBB7BB8C191E2CD9A970EC806EA64825E4CCE782D7 - -In = 02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0521BC64D5C188320CB9AE9D2A89BE291352F77C3E44772B - -In = 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 60224F0B05145D00FB3C09E78522FE17FB7C64AC90AF4BE0 - -In = 00800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 3104BE53E8A19ED90BB03DA1FC5FBD052EE7D80B4AB31AF2 - -In = 00400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = ECE34E9D1BBA44EBAAF18254812DA74E1B250D874049471F - -In = 00200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 7FBEF692D8F3DB59912960E1C4F255D65CFA93E64CDA00B3 - -In = 00100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 180C2B906440036CB48ED7DBD670CDD06054734CA9E3E531 - -In = 00080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = EC1C85F1C4361CCC979FA94565CE47BA766B26C03E0155ED - -In = 00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0CB103FE2F16046BCF473C0EF5F30510094B327A811303AC - -In = 00020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 35E499F9FCCE1B0CFE442FE493333763C8E5F956A255DDBE - -In = 00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = E8CFB0B7651DCF73891553FE1AD3DC0F1BF5CA89E2243771 - -In = 00008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9F375EFC406EDB4DC7008C6ADF57CE7BC6072BD39593651A - -In = 00004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C40960EE520A3F6E38938C4D774695FAB9AA99ED98724686 - -In = 00002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C925142A228B90DC4EEE8D740480095B72EEF71717AF230D - -In = 00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 49F67D2EE9E5E07754EB3FB587A5DFC9A5A5F1AF952ABB90 - -In = 00000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8EA4A53FB597B8612B751B25B4D67A3211BD9B55810830FB - -In = 00000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 7F8A9779678C20D7B26126CE54CF40D586D639038E0D898A - -In = 00000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 45B2D2247DF2BE8762F7C2BFB1D282DB99686B8C61F12DC2 - -In = 00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5AF3F43A65A123F25318B108322F1422FBDD4E2088B3FCC5 - -In = 00000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 255BA44E43BB186AC95A8BA873F27C17D4209A7CDA0743E8 - -In = 00000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6CC1C5FE50A6A3E1A8C9151E529627B7825E797CA2996763 - -In = 00000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 4C8E2574514F1908500775D706E66CB5E098A07763CB29A8 - -In = 00000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 80E15B5D7DD082786B73BFA7C11ABE846CC08992D82082EF - -In = 00000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9AAEDC20A2B5C9B3AC1FEAB011E0BC63C3F14A77716745B4 - -In = 00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 20FDDFC28496F4B7C474D1DC0D2556B71A0BBE0008FBCA74 - -In = 00000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6C5437A6A7ACD3882300183FBE7B474CB7C0E45DF4BF126E - -In = 00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 3220E4DE2B99FD792057CA379EC8E0FB9277B2B0AFCAF7E1 - -In = 00000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5605262344AED0F46F6AA94AAE288A936B3783D7B0C96EBB - -In = 00000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 79FE05ED00EA9FBE5C5A411B7BE9D0AB7E95FCAC4944FB5A - -In = 00000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5632B77A86B06F60FB38F6F8D7B8ACB076610CDB17C45F3B - -In = 00000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6F1C90B7CE7D352A1EAF908EAAEB69DE70CFEA924FA1F322 - -In = 00000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = B0582D1882AC0B5C534293ABB751072EACFCBCCD7760B739 - -In = 00000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D56CC1F5522E00EF7F25DA7C524CFBEF639E04ED232FDA74 - -In = 00000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FDD3E72BD41951FF6CA729207F9EE320F277C240C5ABA6CE - -In = 00000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 25C341EFBF8E0197DD7AA0D098BE9C262EA24A5ABF1956DC - -In = 00000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 3D8E11219C1F4A655DE818DD5BAE94724292D1FC1F2C0451 - -In = 00000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 78D0C2AEAAB13E6957111303BCE092987F38B125654AEB06 - -In = 00000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 76CE1A38D5408FCF5C60F231F8624D22EBE4F3C2A77833CA - -In = 00000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A1478F92ACD8AFBF1383F566E8074249C576C6C01573C816 - -In = 00000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = EEF978C6730A5A51E0C67CA0CD591718F48E586924DACAC3 - -In = 00000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D244E12581769DF1260AD3B9BADFEAACAEC10F08D0BC20B8 - -In = 00000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6C88A229FF9769C257AE208427684E2BD2F2616FB11DC61E - -In = 00000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F9AA7D877F5B192A751D6956225FBB166E70BB5373EA03B5 - -In = 00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8E5FC1110E41E417B771F4860BD7180A8771EC8BE3F51371 - -In = 00000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 16A04075744A70693EDC2823E6D3F53F8BD7DA82F61C988A - -In = 00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = DAA5DCE2246AA0B16DFCB5A6DE1148A4667CF130CB0FE57A - -In = 00000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 7935C3EAC77062032E4DA41CFE266DB7B1CEAD6A92F36531 - -In = 00000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 12FAFE2DD9FE0F928585DBFFDF2FC940329F4CA2C428FFA2 - -In = 00000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = B5AF46B22173E04EC7C73D201D230E76AFF7E25E7C64C9A1 - -In = 00000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 04A39346609CC870A34BFE4BC381391E5096EECC0420CBE0 - -In = 00000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8E30346B3CF6A33A5DF960349E79E318A559177A10132AE5 - -In = 00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = E010FE9A2A139AF552D7A22D5D04D59ABE9F26099565B139 - -In = 00000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 7E3A17F0489C5D1CF249BDFD6D839D17797E5F91655061DF - -In = 00000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = DB0EDCB6F326FFC5EC6C23A9B23630110BCF3EF1623090C7 - -In = 00000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0E878D8D2984F9A638DFF1A309EA4B436D24FA40B3BC5F4D - -In = 00000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = AE09F204A5E6EEA22BADD0042D00D48E60643343C951C79D - -In = 00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5411134E8112EBD21A89CA726D6C3293BAF1522031BFED57 - -In = 00000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1CC1D5B8489F213F6A0519811867CA70AAB68B93768B2EAB - -In = 00000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A16D7299661CC6978AE949CF9F607E286913CA0615E12CEB - -In = 00000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9A2A8EE8963BE88DF83D5761D490FFB0450E9C450542CB08 - -In = 00000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FAC9C5FB38BF7CE0902DC3E447D3D4D6DD369DBE94A8AB67 - -In = 00000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C430CAA3FD05B674624BB549B3A565C9F1A93D8E4AE429E0 - -In = 00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D03C16013ACB204439B0B84C5EC0507C07EAD360114BB6D7 - -In = 00000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 44F6F5EFA89F2302B9E4B6710EFA1BD79F2589575F57B7A0 - -In = 00000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C392AF0E93D619A0FAAC3FC2EE960DE9464DF3F3B87728D6 - -In = 00000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = BF1C5CF1B59A39C9EFD3D46F9144E7E7CC75F53C83BE87AB - -In = 00000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F4DEAFA84B6859F0B32D04DA3CF8DED931870EB8EBA086B6 - -In = 00000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 68B3511E9A930CC1E465DDADD3813E79E5235690E279A53A - -In = 00000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D98B1C76BF4216804783DD2A082F5722AE7049717AC6BEE4 - -In = 00000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8FE146611B75E5E6527F0E2516F09090FABE1AE0F51D9965 - -In = 00000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = B6F4518C9B5A082BA4951EEFEE8991D2605395D04FFD9784 - -In = 00000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0C4C268E0243354A31C576B053FCECCD320D864892DD4452 - -In = 00000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 4FCBCA86DAAD5EE31427339F45DB698C56F4EF5977C62346 - -In = 00000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D63400C91F46CEB1F73427A1DD61920E5D98250CD7B21D61 - -In = 00000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 2002BE33AA6783F40109E747E27231C652FC90B304F91218 - -In = 00000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A8FEDBD8A393C41857EA09B457FDB42078049B3F269C1431 - -In = 00000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D2C06B7D56774863AB6F3A9F8FFD79FB56FF130906B16596 - -In = 00000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5D8339715D342E8DDCB7CF18F4878D2221BB05FC4B2563BD - -In = 00000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 06DEF00E4151BBFA011D87096B16C09A955B1059EBA03393 - -In = 00000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 36386BE0645E7577BFF63BAAC50532912EBB7026B120E472 - -In = 00000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8E4CAC8FE8C09463A5726B0FD3335A09E8971B498CCFC14E - -In = 00000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 45EA2AE4AD4B1E0C6958FABC69939E1A19300E28946638E8 - -In = 00000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 7C97246A7834ECF7074DCAD08A8B4BF3E8A68157889B97E4 - -In = 00000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0F040C8CB0C777EE04086DDEAC53751D037FC41A62DF3D64 - -In = 00000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 011A9D0417A070DA0D425E835F03C68D0BD8762A7174C0A6 - -In = 00000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 76B90E3049F98281369B0ACD1D2193EF2F63A25F75D9FEA1 - -In = 00000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 733DBC18BB0821CD1B33210BD9018F2EAF405E0A281328B4 - -In = 00000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 4C3B42FEA3DA2B23AE3C723B22522AECC84BB1D5CD2F9E51 - -In = 00000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 77396616E87FDEEBDB6276B30422B04C2098F85F0085371D - -In = 00000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6BD882666B2089F5A3904F91E26B34263BEF463456486ECA - -In = 00000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1AA8BC49C40EEADA030EE802C336D83D75C3EEECDF365AB2 - -In = 00000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6E9615A0291AEB33D37FFF3BDDAF628178009820457F0737 - -In = 00000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F78CB6642756E3253A46FC55E5C852B5D209CB886F1953D4 - -In = 00000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 3D900B55C9CD9E821512415B734B06A28B8EFB0488F9EB4E - -In = 00000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1D534936BE6E2831E83661E0568B170EF52712899E2F8A8C - -In = 00000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 68D08DCA280F71F6E33FE81F56BF5D98BB498B720F8294F4 - -In = 00000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D4D1339C8797918AEB4000CE0B75EB741EEA852B7E5FEF35 - -In = 00000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F6204099D4C1B7F82BF0A1364A6322C3578A46F354A68622 - -In = 00000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FC94F4DFB37B4674843E0CD9DAFDE149D89667915DEFAEFA - -In = 00000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F64C25ED176B388E022A3AA4622975F1CEC7A9A359D1D28A - -In = 00000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = CE3230D5A7B57E82F92D8A36485B0EF70B3A8430391907F8 - -In = 00000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D9AC7B94226A60FC7D99CD796FD5B6EA36AE798047E1B53D - -In = 00000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8A9F12D8D9DF81E43E9DC038FBA927A3A0A0D6FA43749D2D - -In = 00000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = CCAE282196A07B02E896FDDBC71616298BBBC436BED3D424 - -In = 00000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 09503A7A95B31206D16FC3A3A6730CB379F413C255B0916A - -In = 00000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0D799B12AF89A92E0E91237F37236BA484B5192B468F92B4 - -In = 00000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 04A3597758A82EE3EAA34F5B0FB1198A1177B3B3B8DD583C - -In = 00000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = BAC0B8BE5A41BB8186CABAD7A32F17559DB8579D2A32ED35 - -In = 00000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 96B5AD3931A54DF4C0754FFD17E2ED27EEDBA480D7DEC700 - -In = 00000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 4A3E600FE13F444B31E03CFA0863F9E316F83F68F16D509D - -In = 00000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = B5DA026AE3BFBFAC6D2AB00A16ECFBA40130E1817E26E6FD - -In = 00000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 635799A28E0E31EF6DA157BE71327548E1EBBE93D39A40CE - -In = 00000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 00A7C94AC7D6DA73AF3537816D7535F6501C81E9D0B70C30 - -In = 00000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = CEA02CEB43D209ABA6217234278931ECB509813A516C8770 - -In = 00000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 460F8608C1CE8A7ED701C8D46D800E5097DD421321A595BF - -In = 00000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 595B7A837EA74AE2A9C2A4DD9915C684E4003A78C908EB34 - -In = 00000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 40A34377B74D9C7404E69898DA030F47C7B4F5125379799C - -In = 00000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 011A1626ACDE5490D40D6D3B212E4296DBCFAA310C0D0A7D - -In = 00000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0C38A676E739B11BF2B5F305DFC38C1194B67D5BD9ABDD3B - -In = 00000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = B2BDB49CBB6A27D90DC43CAEF626531E3794B02A4B557363 - -In = 00000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 925F73F9BF011425B3C855EB93FF2B3702994957C90A6E71 - -In = 00000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C5438E4F6F20FA52579EA70DBE976E8ED0CD0CA79F0FF667 - -In = 00000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9C19CE6E144C81EDBEFA42762CCE7687D82D90C80E6E4DD7 - -In = 00000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F6F514983734179B56A2DB5810D2FEF9FBAAE792DF757EE6 - -In = 00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 47EA4D78437E145E56490DD5C47788BEC899AB249A782AF1 - -In = 00000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 751FCB36A8B567673E9571B4F359CB7452913DE68458233B - -In = 00000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6B86FAA0426879F9C1A6F4A9F26FF19DADCD0BA2C34273F2 - -In = 00000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8ABD32BED2814C6428812B67CB7228BF02AC80EC80C5771C - -In = 00000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 026EE4B31888E474E20F1627B30475FFEE90BAFA2E214CE2 - -In = 00000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6EA00649517124D6598C2CBB109B8F8AC445771A9550263D - -In = 00000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9029BD1306510D7BFCEF39B7E3E6F3A62993A810141919A4 - -In = 00000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 802BE35C1D0356AA8D7E7830C1426AA9789CF9B1B75C7145 - -In = 00000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 78D1FE031819E727172B1FB5A0EC87AC33C494C1E37C222E - -In = 00000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = E87A76683F7B6D8CA2B47C8C41F346764053D8841FBE610E - -In = 00000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = E3E18819D97CD24E6C82AF5212876375134D9401E1CFB25B - -In = 00000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 528D81D4D77B3C9360D1CCB3D8D906FAD4BAEEB8C417AF8E - -In = 00000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 940509DDE91065297F51C95D6D61196BCADDFFBFE43A0490 - -In = 00000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1F745AD4161EE006A4260D7249E0B68B0453B01819EB2A14 - -In = 00000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = B1AA443FAA0B47E51A307ECAC7FAF07CA8732E715513C738 - -In = 00000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = CB30A43A2DE29002ECE22BD0CA7FA5C40E0F1EE3C9784249 - -In = 00000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A5B6D8400303E5118489CE082241808027945C143D1200AC - -In = 00000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FFB82281B7B2CDFF2E83440CFEC036D03C26BD5133AA56C8 - -In = 00000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 08F21816D77A3D5F7DFFFC5477C4EB78AF660D7C32B1B6F0 - -In = 00000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 286FC4EA0BA3EE25CA28CD635DA1077BA00B7BBE1D319C9C - -In = 00000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = ABD221DECE666C1E0ADE89ED127001B1AE8B37A3249BC237 - -In = 00000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = EFD037EAD7168C5B48E18DBB0BFE94E7A7337ED9F9DC0B60 - -In = 00000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 17A915BB90D878000A07BBF2F7C29605541CCBB2BA33BA9B - -In = 00000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = EDBA011909174DACC7276FB748DA3D72037688E09B471CDB - -In = 00000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 18646AB2DFAC64E3D1B8298F9DA48F8ACD3EC8E9B6C091D2 - -In = 00000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5BB55C940C48C5F173356ED2F76F135BB33C49C6FF401CE8 - -In = 00000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 444CCFDECBBCAAC55FD538C84FECE4AD05E1F86CA2183046 - -In = 00000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0DD2986EBE58B62051C5F8558B33B2150E2162273A21D2D6 - -In = 00000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = BBD0BE785D950FEE7272A6A42E20EEF9FCC96DA0862A9D4F - -In = 00000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C6EE3736BED22F09A3082957D5D2D9939E926DE56B23E540 - -In = 00000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F272AA5CC30126CA15ACF94904EA44A28068BD3B3ED74BDB - -In = 00000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 24713F450026D6D9717475558F33A84CEC5B8EC74367A1F4 - -In = 00000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 021A9ECFC35A18BC91568F76A06EA7B6F068B1B45E725F2C - -In = 00000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 54027E9B61191C3ADE350615D809EC6A4BF7FE926946F93B - -In = 00000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 27C362B26734609E760ED30E492273A2EC0786CECE1B62F7 - -In = 00000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C56A7C83A9F780DBFC564564D60B110894B3462BF202B31B - -In = 00000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = E46DAE97BF1D1433B91E7C4B30A3D11189BD1959F363C8AA - -In = 00000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = DFFFD3EE84CE33EDBD6CCBDF9FDBC4C6CD9F6C3663AB3124 - -In = 00000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = CA9D313C0A9D62198C2528B856627BC9C70DD1C6523AA09D - -In = 00000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = DAB676CBA9ABC9799E4416E703CD4C89348F3513D93BCE58 - -In = 00000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 383C379EE484CB248AF0008F339F2B76C25DB122ABE46C2B - -In = 00000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 466C5466009BFF5B4D9639CC2DDFFBEC31663189A11A3F06 - -In = 00000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5C2457FB54624D291D0223FDCA7CE3EAFB85B6D492408A9D - -In = 00000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FE593DC31045C782EC6B52216FC64B35FD33EE3904BA9966 - -In = 00000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D7174534437E6168C2EF60B0EA9DC61ADD8098C0694539EF - -In = 00000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 75FDFFFAF4F1D44DD610CEDDB215E16593340EDE583C875A - -In = 00000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 36EAA91B577FB20178B0F06FBF369D07FBCE8445BB36774D - -In = 00000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9068E188528160BC3B2C2036B4B6140BFCBC98A031847132 - -In = 00000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 42E86596DB6EA0724CE131CC379F5A3F37646C87026DFB87 - -In = 00000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 733642DD7D4F08A2303B7517974AC6D9E6EC65FBED56CB05 - -In = 00000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 92ABCE48F750C364C5FC649E3E2168E5BE83F6176A2DC552 - -In = 00000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = BB841126EBD38F36A63FDA47FD5971DFF6D9CF0432811535 - -In = 00000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1A5F8B7F34376121B1BA35FB19DD2DE6A1FFE55D22703940 - -In = 00000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A4705AA774708F6D6AEABD6B527C973DD3B955E144812BC5 - -In = 00000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = ADA04C7993477041403A144C15BBFEE889A6F835B9F968DF - -In = 00000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 2F4179071804EC9280CD2EA6E265AD77633F5196CF8EDB32 - -In = 00000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 4378BD6082B465ADB4007CBDC5F764C402ADCBEE4347C08F - -In = 00000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F75B2A3267B96CA1EE4191B99CE78B079333F10EF184D91A - -In = 00000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C3891913D02202A3DFD2BFE70EDB992275744136452C566F - -In = 00000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 07B465A5110B6F1D8CC50B4716A5B5CE9985CD0A7A857EAE - -In = 00000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = AA3E818EDB7190F12AD58D9A4A9DAB53209AEE83F5B3C554 - -In = 00000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C570CAD73E05B2F8283A26726F07BAA339EE78ED7CA42F62 - -In = 00000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = B48EC775851C9AE303F05AC8E51E62FF169C175792C2627A - -In = 00000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1E3047A18CCBA9F21D1E58F90FC2F8100D94227E29DF84A0 - -In = 00000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5CA88D9C7D388BCF7877FE0F8CDD5EC767DEC73783B60195 - -In = 00000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = F0AFF7784660E13949EEBC8A817DB227D7DC2248EB0F659B - -In = 00000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9B5D9AB548CE2CB1B4F121B5BCACB724A02A655E56650014 - -In = 00000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = DA5D70AC87DB9AB9A19D7E79FA3820B9A6855F148A662E9E - -In = 00000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0DA0AA0A4187C2AC05B220AB88498FC244FCEF7FCC59692A - -In = 00000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = DEFC6E4E0FF252A652CAD76C06429D7D902F80D0C132EC2C - -In = 00000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FB8EA1191F9272038017D3D10B0F901514490B119C3C086F - -In = 00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A0F433C8EF9F86EC52989CC77B999EA02827EA0D57F00766 - -In = 00000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 73C51E27F033BDCF09E29C19740AC05676C7DA219C83F019 - -In = 00000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C1A41E1999A6E7ED8D2407005608A44999C0918F009F12BB - -In = 00000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C1DE2FB59A6A6CC45D3E1A9A502F0327E4E0582692882E01 - -In = 00000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = FA371922F657875B03268090C91EF8A7D968486EFCBE853D - -In = 00000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = D7786FFE8F9411E982D591C63A364483A733A005D8DD4F52 - -In = 00000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = EA71A84A2AE43700E2D6CBF9705809F38EB01E3AA3500981 - -In = 00000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = AEE84693BEA5105467DFFF30E694772F31148CCECA362D0B - -In = 00000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 02C9565A480DFE315479D62BFFFF915768411199596D0067 - -In = 00000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 0EA5DA49521F8C298EB3A65B157D3B0E42E0BDA0EED10EB3 - -In = 00000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = A8F8E5533E0025DDF4421EA099D9C553736B86626649BFAC - -In = 00000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 76D357BCB224F3B59DD6286A3EA0D4C2D09699E68ED7D4E3 - -In = 00000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 202794850A8B2A8D611473C84F18835F322D32E04214502F - -In = 00000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 1BED2B5DAA818E27EACA9EA5BC6B5D88FF7605CBC529C423 - -In = 00000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6FCEF79BBB8B556D597071E6E86815575C36955DB95FF0C9 - -In = 00000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5C76AF9054B56A78EE4BAE2F69E54EB4A4DCCA9251EC323F - -In = 00000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 8645904A860B9227CC2EBE31269BCB033D12626D4E7B1E07 - -In = 00000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 5CCAA2D96A4B90DD33CA1A8F63D9A32785FCE91FE9D261FE - -In = 00000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 644AEF13CA34442715AF3B71F6F40863B9FE5B68D9AEA69D - -In = 00000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000 -Out = BB8F2FCECA6DBE2233D94CC9617C0C924251503E15ECBEFD - -In = 00000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C0CE5B9858DCAC7C2A7FD41EAD46C1D1F4A55C612EB87095 - -In = 00000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000 -Out = C3209B535B1893D292F24AA705A54AC6893F5C34DFC0B89B - -In = 00000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 4A9362D913330BE01F8AA9A40621CF2BAE0AEE998182BFD8 - -In = 00000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000 -Out = 6757B6725238FDF3AA6E92CE05242DC7A138F55A8A2B8CDF - -In = 00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9C1EFCC39E943DB17478F55C2E8F5AABE665A257A74E7CC7 - -In = 00000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000 -Out = 9E48EA08AF2BC00367D950D2A0BE14D0F26B71FBF3997B10 - -In = 00000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000 -Out = A6BBD6177AF40DDDCCF8CC8B8218833B8A89D6BE122E12AA - -In = 00000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000 -Out = F7BAE51827F6C16F31508A28D362DE9BA4984E47C88DC037 - -In = 00000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000 -Out = 65DD7FF5BB8CE8D5F84480BF5A0E35127CD736A1CDE7BC12 - -In = 00000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000 -Out = E8531E2C7329ED60B7246E6246B1FEE13B1B70F1A119CE54 - -In = 00000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000 -Out = 7B26F57EF6D56F8966AFB3AF6C9BCE1C1948396CE4FFB1F2 - -In = 00000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000 -Out = D6EFC3AD5E62E9055C414D01E11E0EC9374B5F4486AF92D9 - -In = 00000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000 -Out = B4000A22B7ECE2B3BC2695A2E98A9F4FC981DE2F44A80CA3 - -In = 00000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000 -Out = 30F506642345E45D1116318D8F9849A640B13C27291F5B83 - -In = 00000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000 -Out = E02C8DBAAA96F301081E0F6F6FF3163D11B0340C5154E06D - -In = 00000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000 -Out = 4D176A285408CA3E69FAA2F90B980CD10BED31F3B7C31F15 - -In = 00000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000 -Out = 8BBECF1AAD25FDC805039E0B0AE53C72B2D598400FAD8A0F - -In = 00000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000 -Out = 68213C2CB2C200AE8E130125F0DA1A81AF46DEA7A32564B0 - -In = 00000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000 -Out = B65CAE529F4F5640EC8E61D7B18DCABF5C42D09D16638E02 - -In = 00000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000 -Out = 6D9BDF35483F61B8B41DF2BB3DAB479CE960916A91768BA9 - -In = 00000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000 -Out = C7065FCFBD627402B557D08EE245E4B792079CBA32E7E956 - -In = 00000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000 -Out = FA7CAC5FC22F2AF0FF1E052D28817A65966B2B0C1C2F8792 - -In = 00000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000 -Out = 204A233E044B2C07EBBD2C529A8D578A07B21BB674EE4D64 - -In = 00000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000 -Out = 5D64C8D0554606505D54BDF395D6608AE15D23144284C05F - -In = 00000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000 -Out = C90A9B1D92220CA0F3F4A8E65155FE0E1D152C89213E96D9 - -In = 00000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000 -Out = 3C8673A6ED62C5FFC880D24A000053ED7042329424181DFF - -In = 00000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000 -Out = 732D68C9AAEF89D27676A87AEA0F975BC31E9B7184AABE49 - -In = 00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000 -Out = 61D3540EF01107CBEDCA147F615B0DA929474344FA8DAB0D - -In = 00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000 -Out = FBF56E336FF510ADA9A801F84E4792FD8E9B1C3B44B4D666 - -In = 00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000 -Out = FD5EB3F4BF2E475CA451C856B2F576FCE1CAC3B700348176 - -In = 00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000 -Out = E5D6F6AF3BB3D2D22975AB500DA24B5783E651C1AFADBCC1 - -In = 00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000 -Out = 22C7EFD25977630807C1D0FD7DC220FF426D589BEBF3F818 - -In = 00000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000 -Out = 38C0B8ED87706F4A7C2DC5EADCD01C72193261CF37C196EF - -In = 00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000 -Out = CAA17EB9893A85EBE650736A0B56FDCC9DDF6916707D1B99 - -In = 00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000 -Out = 1FC43409C387A59F2702D1120CA69AE1EB8BCC072AEBCC89 - -In = 00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000 -Out = 9D5CAD387705F97F784279C85B5C09D3A8216C3151BB8BB5 - -In = 00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000 -Out = DC1EBB94F3E0E6703DAA5715A7E826554DB9EDE756B2EED2 - -In = 00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000 -Out = 5E626E0FBB4CAE926AC717EC009CAEE23B5CD3062359E20A - -In = 00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000 -Out = F348BF048DB8D98D0BD0666B520AB255B12CA6047B3166AF - -In = 00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000 -Out = 8F929C79DDE5DE2794998170EFCABCE511637A29810ABF47 - -In = 00000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000 -Out = FE4661EE9DD9FD928D2AF9B5898EAEAB617E88369457DD67 - -In = 00000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000 -Out = 6E0C9BCE677EA50439E02731B301300511643AC1FE00125D - -In = 00000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000 -Out = 4589434D3BE9D44EF45DF1ED91AA97D812ED55DD869B9067 - -In = 00000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000 -Out = 0C0DC9DAAD3351B7CE17F8D1F6DBDA62F91FCF6C93019C45 - -In = 00000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000 -Out = 07FD597941C0A30A137256D65E5D2430EBA2C6EF24979E00 - -In = 00000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000 -Out = EEFC74ECC53C334768D59EEB02B49A462A976CAD32FA9F4C - -In = 00000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000 -Out = 292EE351E25622EF85A07C0C161FC0FBC09229C176998D35 - -In = 00000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000 -Out = 7ED81D7B5AD71E60F04E388D2E29E044EE253D701D213ED1 - -In = 00000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000 -Out = 56A2F7E6F85975BFCE0705A124AE4CBF7C3015690304521D - -In = 00000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000 -Out = B07EA50183596A2430F3DEC13F96845D1070A3D32F5EC066 - -In = 00000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000 -Out = 526F6BBF1EBE525ECF7EFBE693A06B746307726F2011529C - -In = 00000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000 -Out = 89EBE9219A9AC412BEC88BA321030B4AAA257B6410F7719B - -In = 00000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000 -Out = ABD5FE2E6DA870D5B894B35E72E41D590A01E40303524335 - -In = 00000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000 -Out = 1E3D537D9580A74F2D7FC71EE241923AB3848D11A1A5644C - -In = 00000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000 -Out = F580664AB99A6B50BFA21019261D91B3A1238FB129B0797A - -In = 00000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000 -Out = 2DB79D2513802F939D4608E4FFE38D1CD5FFE7B667CE3EEC - -In = 00000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000 -Out = 13B1F534DACAC2836C67B4B410151AE550AFF9C977B6A3D5 - -In = 00000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000 -Out = 86ABFE6988DFE9D6C9A884942946BE74115987EA3C6AF477 - -In = 00000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000 -Out = 9FB58A6C6822D1F7BF3AC52BD210132FD6DD1E823D3CE95C - -In = 00000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000 -Out = 1F5E0C29EBE8A28B934E7932C0D120F2F01CFA87DC089E0C - -In = 00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000 -Out = BEA84869592DF1FD12127F891CA9DAFEE767226868F878DB - -In = 00000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000 -Out = 6FC0DF95D191F492399AFC32C4F536F43C14E189DA93396C - -In = 00000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000 -Out = 33E9415EA0EDB2BAC1DD210B9CC2F5D7F46B5B07C5EFCC3F - -In = 00000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000 -Out = CD933BE80058AFBBC9FFD6590CA2F53B3696E7F86CBDE8CD - -In = 00000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000 -Out = 15F89B44FF00A4CB930233FADB49A824F0AB540636A0E8A5 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000 -Out = 33C345BFFA20C8F0B92AC6F3F063E477F1CDA525C35E68AB - -In = 00000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000 -Out = 617EE74C600A5B9D5C591984222DC000642FA97ECAF6948F - -In = 00000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000 -Out = E50FF576A78A5FF73038F307740FFB190F405AAF65909C7B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000 -Out = 10F16B3B9BE9762F603DC156A2626D0A92C49D6788433292 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000 -Out = 65C75607C3085EE0DF99AC88FCB71FEEA3E95D1995027B90 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000 -Out = A95A236CEAA6FE6A33DBD6B2FF2CC61DCD06B576D34D8BF9 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000 -Out = 94701D90637F543B83AC736D448D915AB56ACF688AA2A9BF - -In = 00000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000 -Out = C005D8C2069CB7F291C7214165383ECC418999FADF197ED3 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000 -Out = F02715BA20879FE16CA382F3F33B35DA09273F524A832CE0 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000 -Out = 925F4C6B45F07D01F1033AE426E554FE30AD5664F89EB521 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000 -Out = DA89E876647B2B17B726DABF0620B5791B8D910CB9E7323D - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000 -Out = A3817AEC34558CE5C4554B4BB652D52E0FB834D66173B40A - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000 -Out = EC4599DB388F66C10AF7C24987AAAB6D02CF431602C321D3 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000 -Out = D7BBCCC448440CD6BFF93D8CA1DC309BE47E51C823B85EBB - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000 -Out = 2CAB4F11BE0BB64B4F16F707DF30F465A279C6972FBCD7D9 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000 -Out = 12E4D1EF75CBCA5369EB440776F117EDA8B536A35C26F139 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000 -Out = 17444B27596CBC519FBC8F2B90D68D05BCF51608ACC3D304 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000 -Out = D76A8B2E986EB16CD6121CED58295F0CF5EB02DEB60F98CC - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000 -Out = 164E3829B70E59570D2A5B24A0F1C67A974DFFF1EF5BF2EA - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000 -Out = 0EE8B5DD7E5A285EBE11965B574517B949C3487937453B2B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000 -Out = E3639D864D20ECB48D8C2B8F892D97A7FECF83937C48C2DC - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000 -Out = 4434C996B25FE43CA24746396E50C157139C57787675CE17 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000 -Out = 6D1693269BBA7630B6C083EA6D8AA16F0512F07C214251A9 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000 -Out = A1D5C7ABDDF9FA51FB5C9AE0008FA953EA83063C93E49319 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000 -Out = 9BAC4A7FFF14B34F32F10EB2B6A3A61A13C255DB176D6FCB - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000 -Out = C6BD779EE2F9FF6A4ACCDA2E33FD0C62D641733E414D5B36 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000 -Out = F0D656506DE265EC28F1781DACB76D1C7575DC55C15A40DC - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000 -Out = 0E95FD14633037441CD9AFE78391FFE73AAFEFE532B8F7D6 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000 -Out = AFA01B52D549FF4C8B6DC71BBA6CFA27E8EA03046B95F6EF - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000 -Out = 9E63417D3DF651A3353FB6573FFAED9DF4ABD7F68AAAA051 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000 -Out = CE51254F812107B91727838B619D5C4F17FC2C3C9A95233A - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000 -Out = 89F63C422BB85635F432D4A6DC9F940D79E0B5E111A24F4E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000 -Out = 999534C4B3B25F32FFF05B893F4E26CF8F1819FCB5B908C1 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000 -Out = 7FAACB92FEFD12045C77B4180EA95EE7E1775703E7BB4C3E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000 -Out = 2BFEAD2B7E1C6BB0F47AEFB9909E3ED961EFB39A29794515 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000 -Out = A52AE6D0221773E42FB042B7830D28A73A590562C38C802B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000 -Out = 5B3007DFB62B78955620A0F17F58B6FE55B360C0F7A9F4C3 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000 -Out = 77883951F130BA75FED13621DC61BB766E475DB7751B0D3B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000 -Out = 297DEB90367720058318C994C0382B83D182110797A29A53 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000 -Out = 0BA968080D4608C3BFBE43682CBBD63F246F866AB0A0070C - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000 -Out = 328F20CDFFD905862A11F70B6FDB4803133CCE8ABB8D2B73 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000 -Out = 74AC023139CF3557F49E2F8A674AD0857AEEB9EBA3C1985C - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000 -Out = BD588F19DC358DC37450A6689E4D7DA413206159F3DD2A4D - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000 -Out = DB626F5040AF44803156FF86860A1367B1B644B021C15460 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000 -Out = ADE8785F2F65B67ED1740F8693C5A1CB3BFEE9E3B211B83D - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000 -Out = D08599E7444393A3C5FF2493E1B6647B297708919163E05B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000 -Out = 8AA57D3CCCB899CC92A44ACE801F54A13E60A45BFDFE7D30 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000 -Out = 3415A0699A0D14DBBBB2280A9C8E3C91B954B769CE606362 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000 -Out = EAD03B5ACC5C86FC8672AE14330BF93A9489A5017D3B9354 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000 -Out = 7ABE3B7FD5804A23B937C0EF5ADD8869188BF842F68D21F5 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000 -Out = 739004F8FC7577D0BA954187F300E441F4A99F62E0F3C367 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000 -Out = 30D99CB386570F45B8F0EB75868E8EA9EC7DBB04C26D8FEA - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000 -Out = 7278F6E780965FB5C02AC4AC24BD2020D2439623EEB901C8 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000 -Out = 93E7E84B803152CE17491B9B9DC6502041DA4D56C636B4A7 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000 -Out = 32D63F3C642173BDE55C2A7E8BB6C942420C309DB2E7210A - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000 -Out = CECC92727AAEE2FA74B90AA728F0D3F0FC5E8A42DF283713 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000 -Out = 51437CED5761BC3FCF29FDE5877675B5DCCABC85BC2279B8 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000 -Out = F6A494D7241543CBFE2BB3C68F2DA9FD9915BF0A14BF82F4 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000 -Out = DD8BE4ED5FFCF836C977352ECD2CF689BD94F9CF0EB66EB4 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000 -Out = 1EF1B22652B07E0039DC257B30E88A2FA5D3FC64C79C741C - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000 -Out = 775E4B0447AFD1C960320C042EF2AB6C879088956435872E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000 -Out = A40FB52C188AAC639CF9ECE72B978C812CA7991997CCC3D0 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000 -Out = F6F305D3ACA46CEFDA5FCF420B49C9C13F14C3247E4214AB - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000 -Out = 2A5611447591A609BEDB9B99AF030D1548C25C1090FB7252 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000 -Out = 6BB8BF7CF510DF644EA1771146EC6E943E26598734BB2022 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000 -Out = 8508F80824415D97E468B19EA305B0473A915B996DC83A31 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000 -Out = 8814EE7A02164290EB431E70D50490DC2313BD30EB479857 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000 -Out = EFD4A311C5F5093AB23F2C775577EEEE230643A75F7938C6 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000 -Out = 6FA980DE170E4708F4F59BA46DE0EA340BC61C540B0D12BD - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000 -Out = C699821C7E342804278CA77879FFB9332F274530C673385F - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000 -Out = FCFA7BA4FE1736CA672914AC98905FCF235CB82F10BE9981 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000 -Out = BB1DC4CAA892B46D15C44125DEDF64C63EC4DE5B807F93DF - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000 -Out = 520F25FEEC8D698D31C164D291A54B906564A75B7B693239 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000 -Out = 772CB58B4086454862B813AB25EA5E33BE530D3DF48F8BD5 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000 -Out = CBDBBF709ADE1701ABDA7A258528D675B505678E6B643FDD - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000 -Out = A16CEC411677F88C1F751442BCDBC9F013AA1F4E829CFCA8 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000 -Out = 9DA04A1EF52DDF86660B9EA7D8AF385BBE6369B10AF2F3B3 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000 -Out = 049F7036F40FB51260E4B8CB0696EA03D375B401CED3E2C7 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000 -Out = EEB8208784C4C65DA497729C948063BD9F51FE5C026CBC8B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000 -Out = F39BA71DFAD235C2E0CC8BBAE4CD8D5D1EEE9247086ECAEE - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000 -Out = 8372D7953F7697BE48661E3718196082B06EB448EDF3D839 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000 -Out = D41785ADE9E2FFCAA5B9D44613CD23CD9C3A519CD9C89BED - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000 -Out = 620D6396A467CB957740B85D5D51E53279DF78D56D6CE8B6 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000 -Out = 89905029EF0112631ED9DFDEB63BA26235B822022B686D59 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000 -Out = 51AD7F7D9611ED7C24A84525832A2F8CFAB80F907C02533E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000 -Out = C645E4CF66DA4B343FC0E9221B4616E8CAE1E65E50195E64 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000 -Out = 38EB1AAA6CEBBE8A21EBBB9C0976D29F4089EE47ED1D1F4E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000 -Out = EDF66F50CD0F54FB3094E3412E28177A53B1CE56D0FDE4E8 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000 -Out = 11CD219A1E03532D2D4D61F1563C2AAA8A1586736FEB5CA0 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000 -Out = 01D50B226A3517A3DCE79495FE1410E7AB6FEEAF8FA24BB7 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000 -Out = F981D517F259B363A945D2D19447378649E597A37641B911 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000 -Out = B36A8BB7E4018ADB5DC72B4961501F9A5AD5931F5E97A6D6 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000 -Out = D78D1E9D4682A0777A6EC0D8C2F165CAB925966650937F89 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000 -Out = 2F6D9783D5BF5976DCC31C7F00B9FCD04B6C16BE92417C9B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000 -Out = 22B9F7C41FCE5A4638D6E6C61265B58D18C2D5FBBE33E9F4 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000 -Out = 37B7BA6658F835D817CB114D06C197D23C47708352EAC551 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000 -Out = D8E97C4A5F14A1F595C041D0ED59C4D4631E7AB673484824 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000 -Out = AC782146178A613B3FEA97DBF2018A6C7E1EE3789BBE2A51 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000 -Out = 11FD098F69CA3BE809474769C7DC6664A37AA26358A1EF08 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000 -Out = 93856CBBE6404B2EF9D4240556810833C73D6D049FCA47BB - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000 -Out = C8466665EA45CE4CFD88F819D5C639777640B84D3D60C4BF - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000 -Out = 9B4834F18ED69D519D497AD84204BCB9D749F122A86206F1 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000 -Out = 7571A4B267EB04E445803700DB6A72242E1DE16B1677C410 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000 -Out = 2A6518AF7D1C26F81852CABD90366371783BE49E94BEA42F - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000 -Out = AEBDEE389CEE275743FD1DFE10716DA734049874700D55C1 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000 -Out = 8EF1808D19882CCB413F4B432918984BFE61D3419999642E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000 -Out = 26B8CC222AA5C53969D3DB6DA64743B71063AE978E1F5899 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000 -Out = 2B8FA32B543ED0E1A8EED1165806602675D21D4A330AACD5 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000 -Out = 7BBD8EB068F2EFB116AC6EF6FE80BFB0E8023702D17EFA6E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000 -Out = 344265DD1FEEE145A37F268EF0877581998CF323CFECECCA - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000 -Out = 9B606437205BD1DB249D3566D7AEE9D289C9CFD0D57FD058 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000 -Out = C28D239C59BD76719345840E7C491748FAE7FCBC5EEA6C51 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000 -Out = BD1EFD0CFD6283ACD2A95B1DAE33ACC47A14D21AE3A74DF1 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000 -Out = B0EEE8E5A9256A73A98B641F3D29092D2F1F1B75509F5455 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000 -Out = C46B3EB0F3B3C6D61CF0E5A263D4499A91D68055B1EB4996 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000 -Out = C14215E03D57E2D109D88F48500F0D2332A819F1716D8885 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000 -Out = DD38ABA719EEB2B7B78DD4455AB2DF07A5DA8608BC8250EC - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000 -Out = 1175351A36F8F2769BA8A206185C10B241189FA4D6220C83 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000 -Out = 208DC327BC1BE3B55EFDEFEF89776DA5EA979CA479CC970C - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000 -Out = AD80043313C929A421495430561C49F0613C195D3578B518 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000 -Out = 8384691A0DCADD919AB610D69A4C478A582525D5C48B7F17 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000 -Out = 2FF93D872E9E6AE1783C0EF5B1AB9510050F0276563BA02F - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000 -Out = D3C7B2D23986E191D95B19810843B63360578024F3272DA9 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000 -Out = 29F56FA57392FF312289DF4A88C718FA56D2C3357FE6D0D8 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000 -Out = 175884C528D5584EF0E0AAB61660EB9684242F00F6911A24 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000 -Out = F5D5EE0BFBF2186BD6CE3C63A9E19852EFF62D39E8215068 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000 -Out = 6712197F2D9E424139C93292E9B684A11579BAD5546A9F99 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000 -Out = EDAFE550B5634A040E23A008DD3B15C476907B3CD596725B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000 -Out = 230EC8B2DDCE48BB1ED8928509CE6659981DB303813C7031 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000 -Out = 02371A2CA23F8781DCCBA0672C979EBF0EA8F17F4CAAB443 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000 -Out = E0EFB4CE4025CD25C760F9E822F954D6B38319E71ABED25E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000 -Out = 2030785CC6D18999182F7B6A9BCA9F72F86829F89B306C37 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000 -Out = 3490EBCD433D9FDA74EAAD97469345846E190540C6D82642 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000 -Out = A9C3E5AB60F1666619A899B8F3AC2370A5BF2298B99BADBB - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000 -Out = 804320365682196340806665DC55299041D3BD85728BA0F2 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000 -Out = 53A2DF8B0C83C7120BE2A9608F1B5A4528BEFEC9D7970487 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000 -Out = 2BCD607D529B39E1429F0C54B94ED78F826389086C7739C8 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000 -Out = 0C466A6ACFA584D239367547536323A32715D0DBB5867B0E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000 -Out = 2FC3EA605A33AC26E78D8CA19F98CE7B5827E62961D89212 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000 -Out = 8761107DC3785DBF710BBBEDE5FEABAB6F175A5ECFA961B3 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000 -Out = F123F30881EC794674403328E3CE7C80BC95DAC12D7B360B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000 -Out = 341C9DADB601F2781F6ABEB933B73AAD103A81E8D96F6730 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000 -Out = 38E53597534CCF0E60DA817C62924453E193D61861043244 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000 -Out = 3DF84CC5EDC3D732948BE841302B9AB708F5AF33DC537A31 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000 -Out = B546891818224B14E90827757DE18BABD71449E57F8FCFF1 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000 -Out = A7D6E7A48C1C14CD8DC58D7EFCD4FC8D407F15A1D4AA41D5 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000 -Out = 0B178B35A97C06D9D4D2A5838AA867BFDBDB36D674AF33D0 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000 -Out = 8C22DFD72E5ECBA3D0E0B54985D01223032939E7B7B33697 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000 -Out = A52E67BE70E116BDF6EB61EF225DB94DF06966203DFA2E31 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000 -Out = 4AB1B7BAD46AF64C8B6203A8889CF56A079F18F688790896 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000 -Out = 65D1A4BF8DBA94C9752913A4C15FCFB7F18CCF257D48DED6 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000 -Out = 090CFB92322D482D9D8AAFF716F10FDB491BE0FAF50C784F - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000 -Out = 94F1F66FB01D719F04D36CA30287F7E534DC31B0D91CE1FE - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000 -Out = D8689D811424A59B870F84D11BFA1D202BF57896154405B6 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000 -Out = D7F2171F5B7523C54B4D1A81BB6048C99CED1E15087A9C49 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000 -Out = 94DC8F6AAAD2A07CA81191B613291EB06EEC66A1B628F9CC - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000 -Out = 534D75114EB28DFE082BBA4285ED30E55CBE4864278FF182 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000 -Out = F5971C8523421B68BC3D9FCA5ADC5D2C76CD0C3797232950 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000 -Out = D274B834360952A27265C12C2B70623CDCB69C4815B8AD9E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000 -Out = D25074898E465F024B7D5AA542575176B885998694BFF162 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000 -Out = 100B09B1A2778E07F0DEE2E6DFB28D032FA35D7EBAB2E87A - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000 -Out = 96FE586BD7D472FFA884C5724561D517C1126957FB190096 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000 -Out = 45EE36AF320341688173D7C41A7615BCCD0A431F834EFD18 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000 -Out = F73847AEB45D714CC5756DBDEE00A9E580EF91101AC8FE64 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000 -Out = 30A56E8B8CDAD753A854A1BE4B61DB04F303B6CFD0D76522 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000 -Out = 1BADACF65A1F790B448DF08A100E66CDB8B404DDC7865016 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000 -Out = D0DA13AA2AFC006A97C537541B505B96CE798BDDC07B9D6D - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000 -Out = FB4170AA2DBAA3844FD8485D4325BE987E2E589B58AB3B80 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000 -Out = 50A0FE8090A0AA2EA503CD40DBE894004852584FDE11E3E2 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000 -Out = F6311445087C56C3CA179EF211FD32762134EDC910D9270B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000 -Out = A292F008A7BDF88E61FF866269A6D6F6AC9A81F706D57C27 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000 -Out = 700C29CF917F3634215C58B9B3B9C147FC0AEA52C05B2841 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000 -Out = 2071C5313B0EA39ECC258AC29ED6E6CA8E0511C726A528A9 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000 -Out = AC6F08712123FF72E9C04D1C5C343BC2A356DBEE9223B8E8 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000 -Out = 01F46A7935579B7A7F5CDD00B5E7F1D62C37726F4216DC1D - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000 -Out = 820320BBB243E30FE35395FBFAF46A5C8C0CA41E4B48A80B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000 -Out = 4B3365B4AF9E0C1AB703F297ECB82F9DB6ED44819DBC72F8 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000 -Out = DF69D9A819C4E27ED1B7D66678FDEBD8BBD1747F892D2B55 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000 -Out = C0F17FAF958767C65EBA2F68EE245205CB1BB73290AACAB6 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000 -Out = D62C3EBC661115CDE4F4BD646D745ADB7225304D2712837D - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000 -Out = 37E9A837E07B12281F4740D8353DD6008A077F6EF51978B9 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000 -Out = 9826470A5ABEE6EE66BB799C9A9206703174AB77AA6223A4 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000 -Out = 506C60EAC24C18D955364759BD8CD522157AD658C7B1652E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000 -Out = 110923F8A4E154057211F273FDAF0F565AAD0A0962C4E08D - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000 -Out = 30CE0B97A6578CE2398BF04E63F78B2CAB5DC97A140426CE - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000 -Out = 3AE75A6039177B44B18B2C02EE148388F93E6EB96A989D3D - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000 -Out = 0DE8D7C180C5FB4E90ECF4165EECEDE97316170B7B00D681 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000 -Out = A1BA31195FF34A411C5D9A72A84C83C7BD7C6C777FC7DA4A - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000 -Out = 1D7295FE7B297D4B752159B7DD71483D53C7799FF82054E4 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000 -Out = F0210F4416BE56B157EDC9A76684D1F1653EFA6B7D06079B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000 -Out = 311229D7C5AADF9CAA0DF39E441D4E119D0B3887194B9751 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000 -Out = 7E5E875547284EE4952C250DA3BB4E3BBE59086FA638CAAE - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000 -Out = 890371D12AF03062698C2F4F5F2D7272DF652EE99C4233B3 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000 -Out = BD3F48F09AB50132242F762A61904E945CD3628A925A8B82 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000 -Out = 6401C4DDCDD7441581AFF57D13C1198FC2347D886D319FDA - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000 -Out = 2446A367AABBDEBA9EFD1F8CAA9805EC1A9B45200A90E2C1 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000 -Out = 37C1C64324D78E1F7549E6169FA66D492184F3A5A524810F - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000 -Out = 91A620E120AB9C4949C6D3E27A856F079F76DA00D56C3A22 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000 -Out = 575C19C550408D8454650AF1739812870E371BA8F34B6861 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000 -Out = 5AB6FF5B263ACFAB2013C3068C03A82979EA6DB287A3ECDD - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000 -Out = BB40E88E5DA7D4B12356124D9ED74BA5283C502FC68B5A1B - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000 -Out = CFEC678B1CD75F4249D536C9399F11C12CE9938EE8CADCFF - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000 -Out = 8A26E3715E0471DD3616A9E505F4C73722BB42FB233BF641 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000 -Out = ED38E1AA4B73AF6024471252F8102E77ECBF4BC315DB1C31 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000 -Out = 4D5E37A37AFC8C7DBBC25AF2C6670ED2DAFB56B5376E2550 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000 -Out = 958603BDA98C29A87AEDB0C1C8F559D161EA4FCBE9EED392 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000 -Out = A7F58251627E2C4C82ED1AFADB2FFF3B3483CDC279117E1E - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000 -Out = 4B003F86DA13C24E10041F934DC02EAA9E86C4200550DE8F - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000 -Out = 6139AB107BCD192E8419E869F77738D2624BA81FD774828F - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000 -Out = 15E286064681AB50343CDFD1E178F6DAD9071E3727997DA1 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000 -Out = 95A26E99BFFBB5D0027B380688D3E5C567454F4F2F283C41 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000 -Out = 45326511C3070AD878172A7DA38D17ED65D17BFFB0298058 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000 -Out = C127E412181EF4734360466A38245409E44B2B208FFF4D67 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000 -Out = 4C9A55B7BC50B8D7343F1FF351F13A89CA53E8AD2F056559 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000 -Out = 9B93DF18074112C26FBEB1EA277070EF4D5A1778376DC12C - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800 -Out = 79CE5EFD59A9A0ADBC3661F278B3C540A0332A9E8FA30E07 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400 -Out = 886F0AD49176EAF30EA422CDA7D1061AF2D62DA67C672407 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200 -Out = 54C7674DC49D49E63DD7296241C3F2F0B022BCC0451400F0 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100 -Out = 9DFC07C61179B9DEEA1D452D3073C2A12CB0342EC8FA25C1 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080 -Out = E9C6E911956A0D7C3958F4E0252A4DF98FAE33AFC834EA10 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040 -Out = 9DB1556485B4C5C67FC532C4C6937AFA3A889FDB09B055A7 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020 -Out = 5875A1A391DEDD84155F3805A81EF68AD288A9E77DEB4324 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 -Out = 5DA3FCD577895036D0AB8D6BC654C59E76C0312C81F3A374 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008 -Out = 3DB3B9731E66FEF6039A2723C7CD7814F2A5F8ED20807361 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004 -Out = C784C70B8F431D8AEA3F5ADF2BA55AB4BEC9C580558CD0BD - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 -Out = B256AA37A7DA84F3599B338E2B853B92ECBA5FDE6901B620 - -In = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 -Out = 1CDEC1D10BD749090B1F491A4FC8E2F8B150D64F3215CE8F - -# Unknown source: -In = 4142434445464748494A4B4C4D4E4F505152535455565758595A3D6162636465666768696A6B6C6D6E6F707172737475767778797A2B30313233343536373839 -Out = 48CEEB6308B87D46E95D656112CDF18D97915F9765658957 - -In = 4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465666768696A6B6C6D6E6F707172737475767778797A303132333435363738392B2D -Out = F71C8583902AFB879EDFE610F82C0D4786A3A534504486B5 - -In = 4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465666768696A6B6C6D6E6F707172737475767778797A303132333435363738392B2D4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465666768696A6B6C6D6E6F707172737475767778797A303132333435363738392B2D -Out = C54034E5B43EB8005848A7E0AE6AAC76E4FF590AE715FD25 - -In = 5469676572202D20412046617374204E657720486173682046756E6374696F6E2C20627920526F737320416E646572736F6E20616E6420456C6920426968616D -Out = 8A866829040A410C729AD23F5ADA711603B3CDD357E4C15E - -In = 5469676572202D20412046617374204E657720486173682046756E6374696F6E2C20627920526F737320416E646572736F6E20616E6420456C6920426968616D2C2070726F63656564696E6773206F66204661737420536F66747761726520456E6372797074696F6E20332C2043616D6272696467652E -Out = CE55A6AFD591F5EBAC547FF84F89227F9331DAB0B611C889 - -In = 5469676572202D20412046617374204E657720486173682046756E6374696F6E2C20627920526F737320416E646572736F6E20616E6420456C6920426968616D2C2070726F63656564696E6773206F66204661737420536F66747761726520456E6372797074696F6E20332C2043616D6272696467652C20313939362E -Out = 631ABDD103EB9A3D245B6DFD4D77B257FC7439501D1568DD - -# 4-pass Tiger outputs generated by http://www.hashemall.com/ -[Tiger(16,4)] -In = 3420706173732054696765722031323820626974206F7574707574 -Out = D784FD3A91D22FEE99FF8E7E2ECBA079 - -[Tiger(20,4)] -In = 3420706173732054696765722031363020626974206F7574707574 -Out = A104348FA6F4F026AF81E4F46BBBE27BED70201A - -[Tiger(24,4)] -In = 342070617373205469676572 -Out = 4BC93EC0E1188DE695617907BDF4E4BE7F27C005D3DF9AB0 diff --git a/src/tests/data/hash_rep.vec b/src/tests/data/hash_rep.vec index 12467b2b6..7dfa57366 100644 --- a/src/tests/data/hash_rep.vec +++ b/src/tests/data/hash_rep.vec @@ -1,10 +1,4 @@ -[Tiger] -# From NESSIE submission -Input = 61 -TotalLength = 1000000 -Digest = 6DB0E2729CBEAD93D715C6A7D36302E9B3CEE0D2BC314B41 - # Long SHA-1/2/3 from https://www.di-mgt.com.au/sha_testvectors.html [SHA-1] diff --git a/src/tests/data/pubkey/rsa_sig.vec b/src/tests/data/pubkey/rsa_sig.vec index c9a84252b..246360fa0 100644 --- a/src/tests/data/pubkey/rsa_sig.vec +++ b/src/tests/data/pubkey/rsa_sig.vec @@ -471,31 +471,6 @@ Q = 1314795837618713069258674746380422189419344375600466758282785046440835994844 Msg = 56897071727374FF0001 Signature = 7ACE3D8BF8C940BEF17B76A53DEF9EA42E63D3576A7A3CE873FC46B584592C082C2D242DCE37A8065E623556004140A2D403B424415ABB6850F950C121051DA747934444C5AC065D457740D6DBC984FB0D1660F3C8E43DBCB19A09675C14788B3847159E92A19C9C60E1727B159D386E75DF3EFFF853C94E4826CEB185071A2B16C6047B21DE8E0A0394B934435C96548644FA0514390B7EE6C61244789B52FC0FBFFBCA8BE54B6C3D01EA14F2E0E086DE8657F02A4F3513F21930A5A5F53C47 -[EMSA3(Tiger)] -E = 65537 -P = 32631492140153322637585648564563279120918521201288665579705656902595827172687842562885397479939005094102333506611817 -Q = 39162724656922322351082077025123484322639781910080179352369911199916517553165320253263971785803972536077240149541431 -Msg = 56897071727374FF0001 -Signature = 3F0C903F6AC0AF457FB343220D55C7DC8F365D3BAEDE8710E17142F0FB3706017CFA31EB0139A2A83F9F9A4EAB10471511AEBB2950EE163F86A9B28EC43B0883D2B9DBF13837DF288DDFB3845B143532B84BF275C356FC05D9EBD77749C960BE - -E = 65537 -P = 12158654678169091650490415669116684328906635803580218958206112297098327411035340897063717752690747310459184926298636024603487949254717361395603397645587051 -Q = 10249092300045023519002601220673737919279626089680327379914024204585346713441242098019215182953625015242094757934588033693064852013617202932837905787954459 -Msg = 56897071727374FF0001 -Signature = 62078993638B876ED29AB7F0B8649D23EA17C96A1F595BC1F3CBD82E49A65EC58A502B4669B14C838CE9DF16C0931D797CAD9C7F03518DC48E7D0F7FFF383CADBED76AB47137CE134788E2A2F6A64B84C69036C26D767B58D54E1430CEF5F9462719491C57DF4EAFA6D1644C040B9D5F25EC794625D3FED8977FE3F4FD23F5F0 - -E = 65537 -P = 11971544123366343666684354853406327812514675062345667572164032146593763260364820773415289066744017135855986720089591529330424839669640161061809626823413973 -Q = 9720074001403023247443092491064384798772672002666476838855362128057218690708080905133082220041439945136451759042300373227795429236658029401312890694089287 -Msg = 56897071727374FF0001 -Signature = A1B330515B11D08A3B35FD60C48C07A524AC4230D7AE83FA8ED838590AEC2AE80C44D099D665C14BDF5984003C102555B82F6E65C68B304D22847E74C3676391E91BC7194742109237376448E72CCAEE1686E2F12A0D46E81DA7C1AC8E401835D19345ECDE4886F427A93B447916DE746D9988D5B0EB54C49F2F6647E77BDCA2 - -E = 65537 -P = 1167421701870821515413433195830529422760643355648210574275955577563504995018282395144285922008056560280441363824762060206459194962811346217758801875469823173373950550783029605967491860108483744807232730730782621906868510926852332267 -Q = 1317361364859314272965882511506015740905998703892518529440770677694975987162437790709368319674657443319522624967086315303391931706721950737251287996496863199426001799963290391769674180019130691453745657498922402120734449103407001553 -Msg = 56897071727374FF0001 -Signature = 99B2E121ED6D820EB555EBB5A6C2A928184EAE6D7AA0132E036414D5C2B041B7C0F44D9AF89556050CE96B077CD3C11165C0B55E5B5A345212E2A3A6DDA1E04391054C9EAD2397586254A0323DE007E6280780A9888B8BA698462C468B6D2FD345D8755898A1C82AC326D91602759166344D24590FD8D8D8C76F2AABBEFBCDE24B047178F610F5520862FA5F4D0C7CEE698C207E88B219A553DBE1C68D270BA2D4B1E3353E88BE249A3A1D4593153976B0A0E09AF561711600D616BF1BE8AD57 - [EMSA4(SHA-1)] E = 0x010001 P = 0xE7E8942720A877517273A356053EA2A1BC0C94AA72D55C6E86296B2DFC967948C0A72CBCCCA7EACB35706E09A1DF55A1535BD9B3CC34160B3B6DCD3EDA8E6443 diff --git a/src/tests/test_hash.cpp b/src/tests/test_hash.cpp index b978c339e..80bf5224d 100644 --- a/src/tests/test_hash.cpp +++ b/src/tests/test_hash.cpp @@ -26,8 +26,6 @@ class Invalid_Hash_Name_Tests final : public Test test_invalid_name(result, "Blake2b(9)", "Bad output bits size for BLAKE2b"); test_invalid_name(result, "Comb4P(MD5,MD5)", "Comb4P: Must use two distinct hashes"); test_invalid_name(result, "Comb4P(MD5,SHA-256)", "Comb4P: Incompatible hashes MD5 and SHA-256"); - test_invalid_name(result, "Tiger(168)", "Tiger: Illegal hash output size: 168"); - test_invalid_name(result, "Tiger(20,2)", "Tiger: Invalid number of passes: 2"); test_invalid_name(result, "Keccak-1600(160)", "Keccak_1600: Invalid output length 160"); test_invalid_name(result, "SHA-3(160)", "SHA_3: Invalid output length 160"); diff --git a/src/tests/test_hash_id.cpp b/src/tests/test_hash_id.cpp index 1d75955f3..ecb721646 100644 --- a/src/tests/test_hash_id.cpp +++ b/src/tests/test_hash_id.cpp @@ -35,7 +35,6 @@ class PKCS_HashID_Test final : public Test {"SHA-3(384)", 48}, {"SHA-3(512)", 64}, {"SM3", 32}, - {"Tiger(24,3)", 24} }; std::vector results; -- cgit v1.2.3