]> git.codecow.com Git - Monocypher.git/commitdiff
Added vector based Chacha20 tests
authorLoup Vaillant <loup@loup-vaillant.fr>
Sun, 1 Nov 2020 17:56:06 +0000 (18:56 +0100)
committerLoup Vaillant <loup@loup-vaillant.fr>
Sun, 1 Nov 2020 17:56:06 +0000 (18:56 +0100)
tests/tis-ci-vectors.h [new file with mode: 0644]
tests/tis-ci.c
tis.config

diff --git a/tests/tis-ci-vectors.h b/tests/tis-ci-vectors.h
new file mode 100644 (file)
index 0000000..0a7529c
--- /dev/null
@@ -0,0 +1,1863 @@
+// Generated with hard coded official vectors, and
+// random vectors with Libsodium and ed25519-donna.
+// Download Monocypher's git repository to regenerate.
+#include <inttypes.h>
+#include <stddef.h>
+
+static const char *chacha20_vectors[]={
+  "e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a20748",
+  "b3753cff3a6d9901",
+  "",
+  "e4b5efc932fb5798",
+  "",
+  "b181071f299aa254a4606ab6a058e0c6fb5598218db71deb473f7d04c152e7e8",
+  "57736715dc7b788a",
+  "ca",
+  "f6f5808bdc50fb80",
+  "c1",
+  "9f40d6c8348c353b00172655236cddcd1879ca1f04b35f91adab70b81f504035",
+  "fc169964a5ae985e",
+  "6c11b0b7bb18a51fd77fbffd722aa220efdd8947ca5a5c7fb1c2ebdb9ad1f603801ff22e80314f716af9c22022fa159dbb4b4d3153f999b20ab4769eb1d01c",
+  "593e47059549b141",
+  "907aae5d8cea5ca4cc0842dd58a333bcffcd8f2a234ab46a7dc78c3d690a3f01f89aa75426cec8469f36e2b4c41fdba7290a18cef9b39f807a20f1b6933807",
+  "80bd73e9ca43cdd4eb7173476862df6d2458d6c74739a0ad2169b9c89edd74e1",
+  "6fbcecc748c25dc3",
+  "38041fc34af0f1bda20eaf3fff7b372aa801eb98a1298bc61028073750831c8cb43cd6822bf3f6fae0801cb6c843d8066b07346635365fb7d6ee54e5c9cd6f05",
+  "29958874e0842c12",
+  "c44c93948a3ccc5d473d1319efb42d1944e734fc5b613953845be858c5df073e6448a6e442378d631e9705e0efe3e8d7309458542a715453174f21b4ca3562e9",
+  "df1a2d6a963a79c58401770a383248b5d70bb4adedcbe520fed634f513b8c2ea",
+  "6ab37fe633ba7302",
+  "a5db6c2aa209e24478fa1bd6f6ffabe98555e034342cbec07364c54d1e407e282ef08edbfdbde936c9d42df58ae15889f5c939a3087eaeac1f2a58e2c2763d01b5",
+  "69239a9ce179621b",
+  "fd09781721c44cadcc4286a6c06f1831934c371e56f66f7e30f28425c65c28b7673bfd8a3f924c4db345b15b385e05b1d8262935f73b26bffa8c327be97fae7749",
+  "ddf049c971cd99f694e3b2a5e25fa37aedf01bf32e7c679a3187e22a635d301c",
+  "e98ad000ca301049",
+  "f2e891e403250c3358fc2030b227bb96e93b88f419afe9f9d660e013761228051ec5a8f0c093b33fc60e2cd7a9c845434e95d4319d79d1bdaa8f73853fbd9958e9ffc23a0ecbb7b48dbba63672d582bb83d92249800324cbc9a6e5b37d36887e7c79093f58ef8f1a001585321bfee1714260dd6130cc768d20b14d3850f0ee",
+  "7e3639fb14f22b46",
+  "2bb10ad9f818fa3928d24eff4b44db7fbad65b78d0c9022c0748cff53ddc9dbf158987739cb3779ebe1b877febcd8ba25f0e0dc5afbde8a550c30059ef72bf9ca8ec166bcf015d95e6a327da53ea626d71e7b8ff61f1780ef4ba9a8e7fd6e92c762834ba57cc8bdd952a8fbb99f415ce4999fce4d5a314d62288544048edcc",
+  "f349110e751c16cdb5ed05516df17479937d942c90eb1fb1813062bd3f3f6b76",
+  "68cd8fd3afce0cc7",
+  "529b87dfc58eceb951e1e53d9e94793329199c42d004bc0f0dab3adf0cd702e99efa5ef6e59d3b201680f8e2d5a4ef7f23f1b6a8e102670a3829a995ae23fbc3a5639e028cd2b5f71bb90c7a1e4a8a05017d26e3afc3a88541f6c3f45d71f8a3cc31a063ea4aad1b4d00db6f5228e9b9b1561a7f61812b8b79e6af4292580d02",
+  "f8f7da8f9106fe6a",
+  "95548a60e1774d3814da2f4e6d05f71463396f3b02dcfe4f47ce9ec0d88485396ea51ef6164758dbfef8425bd303a5328f79cdc5cdcc27a533134bde8bbd5b67d54af624827cab5454128e3000bb655e2f402b5fed18cad64a679e0966a9a14bb69312b0e6cd922c90778629163e9635a3610986ce9eea32d613a1674e438f0d",
+  "ea4f6266d04244303304510272e383eaa51a8ea7099a74bafa3375b210653a0d",
+  "2f40b15afd725cf5",
+  "065066be1cb803dc158865ed8d7cca72dcf2b7c6b5d0d045bf32b063d3da484ba1843e071b61c49ce7f30ba18a4f7ef2730ecd785494839966f593168e17311913753c59593fc66cb664c1572251132fc28bf37fd8e96f2327cf7948a1126fd37175a91f483d6b3ad92308df7e6daa8bf3efde75f80ad72a49ae0794009e21ad",
+  "ffffffffffffffff",
+  "9e3d7360a50fffcae4e9ec400fe957a4fb41bf1751bcdf55ddd09355cdd4bf1c0d01dfc30f33f84bfc067b7b5509e5c7edc4c44493e6b83d92cbb868193f7c6a1b919c1b7bf15e8365e9d254da9a73471b956bb1f4e18ac40ab7b732b33a5a20ee113146e6c8a1cc9380ca4b53d17fa0f73a4d09d13aa47bbf57a3ae1e8472cc",
+};
+static size_t nb_chacha20_vectors=40;
+static const char *hchacha20_vectors[]={
+  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
+  "48b3753cff3a6d990163e6b60da1e4e5",
+  "d805447c583fd97a07a2b7ab66be621ad0fa32d63d86ac20588da90b87c1907b",
+};
+static size_t nb_hchacha20_vectors=3;
+static const char *xchacha20_vectors[]={
+  "e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a20748",
+  "b3753cff3a6d990163e6b60da1e4e5d6a2df78c16c96a52d",
+  "",
+  "e4b5efc932fb5798",
+  "",
+  "fb5598218db71deb473f7d04c152e7e857736715dc7b788aca39a3c96a878019",
+  "e8999c815c5723dbfbde05e6c71f118afc0dedb5b9f8dea3",
+  "98",
+  "c6f8a1251f9ad994",
+  "ce",
+  "fc169964a5ae985e6c11b0b7bb18a51fd77fbffd722aa220efdd8947ca5a5c7f",
+  "b1c2ebdb9ad1f603801ff22e80314f716af9c22022fa159d",
+  "bb4b4d3153f999b20ab4769eb1d01c057c5295ed042b4536561dce32478b113adb5b605cac75bcfcacb5e3e811b78e72e398fdd118bf04c6a7ed0756a3533e",
+  "35641c67031a10fe",
+  "dfd9414fa3546744b8fb2b4f7c83d8fcdb452b7f07704916e17bac8b7696c54ccfa3401a6bfcbebacffd1559db8150ceb7ea2a963ac1f434b498b1a79d2fc2",
+  "a20eaf3fff7b372aa801eb98a1298bc61028073750831c8cb43cd6822bf3f6fa",
+  "e0801cb6c843d8066b07346635365fb7d6ee54e5c9cd6f05",
+  "d76b2bd4caec8d80b58235cb4268543ab0eb865a948cc5b5f6e31f05f8146bd9495acc459d6d200005ee72c3bc3e4ae3badfd79adfe46b2ae1045f78382e04c9",
+  "bde0e2149cc1f90e",
+  "f90ab4866767e8686ae1cddd6a607dd8c733522163c4584af07db2e0211d2f81eb4a52b87acfa895188d10ec16c9d21a0b7f20a82342e15a0f23de0d773a8f1f",
+  "7364c54d1e407e282ef08edbfdbde936c9d42df58ae15889f5c939a3087eaeac",
+  "1f2a58e2c2763d01b55744c4a65f4db93adff0078c63f090",
+  "fb607a90c87defd622e5f55977877cec9ed88312b0411228540cd6dde6e84cd2da59b1871db119e3298e3c12fe8200a47eddf049c971cd99f694e3b2a5e25fa37a",
+  "c0a356c9d7da2928",
+  "1fa0dc38852769722f14441e859df73a36ae6f6b256c425216a513e8a79b665e8204b68f8b5b382f0e75691fbdfa6a10e907f30ae0b1f22c9414cc8bd1e4ec926b",
+  "c60e2cd7a9c845434e95d4319d79d1bdaa8f73853fbd9958e9ffc23a0ecbb7b4",
+  "8dbba63672d582bb83d92249800324cbc9a6e5b37d36887e",
+  "7c79093f58ef8f1a001585321bfee1714260dd6130cc768d20b14d3850f0eec0f8f349110e751c16cdb5ed05516df17479937d942c90eb1fb1813062bd3f3f6b7668cd8fd3afce0cc7529b87dfc58eceb951e1e53d9e94793329199c42d004bc0f0dab3adf0cd702e99efa5ef6e59d3b201680f8e2d5a4ef7f23f1b6a8e102",
+  "3f21afec4e3df4a4",
+  "524ebd3d892718d9555adc88e62237fa93ec714653e2d0cb84a88a46a0f6865240e9123983b8cfa41eb0c2b9aa4ee27a5e602336a9b1d54a52c31b25dade057f3321110ff8ede0c19cf7bfadabef7a5a7ada92bf56eeaee9e93c888776776520bd31ceb14516c6dc4e25d17c46782521d623abce87d6b9d988c540ffd5668d",
+  "3829a995ae23fbc3a5639e028cd2b5f71bb90c7a1e4a8a05017d26e3afc3a885",
+  "41f6c3f45d71f8a3cc31a063ea4aad1b4d00db6f5228e9b9",
+  "b1561a7f61812b8b79e6af4292580d02ea4f6266d04244303304510272e383eaa51a8ea7099a74bafa3375b210653a0d2f40b15afd725cf5065066be1cb803dc158865ed8d7cca72dcf2b7c6b5d0d045bf32b063d3da484ba1843e071b61c49ce7f30ba18a4f7ef2730ecd785494839966f593168e17311913753c59593fc66c",
+  "0afe555385d4d096",
+  "5a5cf61ddefcff1426cfc248bd07216e213c6cbeb856764392a54beacd598af988fddaf75a609627199ff7844e6ed02d7dbd9b9291e0b80766fd26081051a32acfe495d7b5591a6877711f32f32504aa09d083f000dd3af4ade4c220232f2a27e34c0ec37fe6a23a0907c21c5bae0d8e665d958a33c97e3cd14ebe1628780afb",
+  "b664c1572251132fc28bf37fd8e96f2327cf7948a1126fd37175a91f483d6b3a",
+  "d92308df7e6daa8bf3efde75f80ad72a49ae0794009e21ad",
+  "33fa4141fe5fa79fed12f6a20f51614dc130f45598e92549b113ed6185724507e7fa5a7e8a75b2c7a3ad700919f36a46ea0ffa680857e30188f8a03c7c4b6c11bc39aececec26687233682d31887277028e2fd286f2654c681efd9e7ed6b340874e897337d4dcc672811a6cf4b69086e0a57c266424dc1d10ecbaf0c822cce9e",
+  "ffffffffffffffff",
+  "a083f3ceb75dc72484a0c11be30aaf42f1a0b009c9ada2da6e70fbd976e246783cd3124a46abfdc15c526ec66f2bd56dc585e419388e246ebe42dd93727f32cd463b6613563bc4aacbc55c4715ca9a8327310bdc06ed6f93e0e10d96a2f52a41af8d371f3f5bb5530ebf4ed47b9eab99d188b00db9b904c17c3a4cb67eed39c8",
+};
+static size_t nb_xchacha20_vectors=40;
+static const char *ietf_chacha20_vectors[]={
+  "e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a20748",
+  "b3753cff3a6d990163e6b60d",
+  "",
+  "e4b5efc900000000",
+  "",
+  "299aa254a4606ab6a058e0c6fb5598218db71deb473f7d04c152e7e857736715",
+  "dc7b788aca39a3c96a878019",
+  "e8",
+  "1ff716fb00000000",
+  "6d",
+  "00172655236cddcd1879ca1f04b35f91adab70b81f504035fc169964a5ae985e",
+  "6c11b0b7bb18a51fd77fbffd",
+  "722aa220efdd8947ca5a5c7fb1c2ebdb9ad1f603801ff22e80314f716af9c22022fa159dbb4b4d3153f999b20ab4769eb1d01c057c5295ed042b4536561dce",
+  "3b6ce3b400000000",
+  "73d5bf251bb890245618a856cb3af96b306aa9febdca3718b4e1ae73a2131ebec185c7c130ffb0f071effed10dfe02e6662b78717580588ac79184e2809743",
+  "6862df6d2458d6c74739a0ad2169b9c89edd74e16fbcecc748c25dc338041fc3",
+  "4af0f1bda20eaf3fff7b372a",
+  "a801eb98a1298bc61028073750831c8cb43cd6822bf3f6fae0801cb6c843d8066b07346635365fb7d6ee54e5c9cd6f05d76b2bd4caec8d80b58235cb4268543a",
+  "47fc612f00000000",
+  "0924676a2306556857bc3a0ca6b9f2444acc66a89a0135538bd1fc61f09c7d11a973e75b6a76162f9a5a592b40094953594c659eab3ec361217879039d8f8ed0",
+  "d70bb4adedcbe520fed634f513b8c2ea6ab37fe633ba7302a5db6c2aa209e244",
+  "78fa1bd6f6ffabe98555e034",
+  "342cbec07364c54d1e407e282ef08edbfdbde936c9d42df58ae15889f5c939a3087eaeac1f2a58e2c2763d01b55744c4a65f4db93adff0078c63f090fb607a90c8",
+  "b5be810500000000",
+  "204f9f415e1fab31f4b743d4b21f0089828eea2709dd31ca4a5071bbfd9820a64e1cda8ab1bfcb1f850064ae630d5225e2cf7e74935b19e9710f6ebc484bde29c2",
+  "2e7c679a3187e22a635d301ce98ad000ca301049f2e891e403250c3358fc2030",
+  "b227bb96e93b88f419afe9f9",
+  "d660e013761228051ec5a8f0c093b33fc60e2cd7a9c845434e95d4319d79d1bdaa8f73853fbd9958e9ffc23a0ecbb7b48dbba63672d582bb83d92249800324cbc9a6e5b37d36887e7c79093f58ef8f1a001585321bfee1714260dd6130cc768d20b14d3850f0eec0f8f349110e751c16cdb5ed05516df17479937d942c90eb",
+  "f3eb9eb500000000",
+  "fc5cce90cf9e250d87703d4fee5b2089821b7d2c5c1620c0a157090831735e156a42a5c97c2d3a2a939f85eea8d013c859bd21827be0db1393e5f977f8f261c413934c84e7d2e9297958bf608a8b82825690bd25bb6d6938c3c60a0cf541191a03f9c8e78151fccd55ed0b73f30dda9561fae06eac7c4e286950e609633282",
+  "813062bd3f3f6b7668cd8fd3afce0cc7529b87dfc58eceb951e1e53d9e947933",
+  "29199c42d004bc0f0dab3adf",
+  "0cd702e99efa5ef6e59d3b201680f8e2d5a4ef7f23f1b6a8e102670a3829a995ae23fbc3a5639e028cd2b5f71bb90c7a1e4a8a05017d26e3afc3a88541f6c3f45d71f8a3cc31a063ea4aad1b4d00db6f5228e9b9b1561a7f61812b8b79e6af4292580d02ea4f6266d04244303304510272e383eaa51a8ea7099a74bafa3375b2",
+  "b105c7d100000000",
+  "83824a7cc37786be9e636041aa7bb26f3dfe8ac826f43be45d7af3295093eea6a9bad5a097ba87d1604efb35e400234ddebc6d5a9c54e2de8d070d399602d5dfce8c74d1a2902d48ee4b9e430f2a12ed03290f8176e39f4dda73c71bdc03bf0c91d5d59f45fb3cd841adea8371820cc1c097b3291777ff0b5f6e7b60dfad863f",
+};
+static size_t nb_ietf_chacha20_vectors=35;
+static const char *aead_ietf_vectors[]={
+  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
+  "48b3753cff3a6d990163e6b60da1e4e5d6a2df78c16c96a5",
+  "",
+  "",
+  "b5ed4c7e63a144f105dbe2b039c7e805",
+  "8019e8999c815c5723dbfbde05e6c71f118afc0dedb5b9f8dea398b2d764bca6",
+  "8dfc023a9821939d389e38a072cf1b413bb1517c3fe83abe",
+  "",
+  "86",
+  "374190382975907a68e8a341faa0772aa0",
+  "f999b20ab4769eb1d01c057c5295ed042b4536561dce32478b113adb5b605cac",
+  "75bcfcacb5e3e811b78e72e398fdd118bf04c6a7ed0756a3",
+  "",
+  "6862df6d2458d6c74739a0ad2169b9c89edd74e16fbcecc748c25dc338041fc34af0f1bda20eaf3fff7b372aa801eb98a1298bc61028073750831c8cb43cd6",
+  "9ef6887763d27d843103a44f9b2427e70769050e09c5a6453280159a6eef522bf4540e3d559aeaace7b339c98520921d380faf3c64b2593792b2a7d53d42ed738df4a729d618649a190338bc41e4a5",
+  "9d6d200005ee72c3bc3e4ae3badfd79adfe46b2ae1045f78382e04c969df1a2d",
+  "6a963a79c58401770a383248b5d70bb4adedcbe520fed634",
+  "",
+  "34342cbec07364c54d1e407e282ef08edbfdbde936c9d42df58ae15889f5c939a3087eaeac1f2a58e2c2763d01b55744c4a65f4db93adff0078c63f090fb607a",
+  "01c2a664d680021a34b1353258d2a8d16773c68db39d8c0de0dce962a5f0ddc13f78a1a6fa74cf500e78820c19252c4a2a1ecf987de69651a31bb390f3319ad658e136a56e0a0140cef60e9af8ad7392",
+  "1bf32e7c679a3187e22a635d301ce98ad000ca301049f2e891e403250c3358fc",
+  "2030b227bb96e93b88f419afe9f9d660e013761228051ec5",
+  "",
+  "c23a0ecbb7b48dbba63672d582bb83d92249800324cbc9a6e5b37d36887e7c79093f58ef8f1a001585321bfee1714260dd6130cc768d20b14d3850f0eec0f8f349",
+  "d00030016722e4e1c20592a0f643bbe63cfa22b937430eaca5058f19cc86f45269785e8a6fb2247b1beb510ac1b3b5d8ddf42eb175c95c9d0d9603189f8f41c850c875a2f9ab9451f418f1c102e64d5fe0",
+  "ab3adf0cd702e99efa5ef6e59d3b201680f8e2d5a4ef7f23f1b6a8e102670a38",
+  "29a995ae23fbc3a5639e028cd2b5f71bb90c7a1e4a8a0501",
+  "",
+  "561a7f61812b8b79e6af4292580d02ea4f6266d04244303304510272e383eaa51a8ea7099a74bafa3375b210653a0d2f40b15afd725cf5065066be1cb803dc158865ed8d7cca72dcf2b7c6b5d0d045bf32b063d3da484ba1843e071b61c49ce7f30ba18a4f7ef2730ecd785494839966f593168e17311913753c59593fc66c",
+  "4c56ae846df2a22857d81f76a6dd614c09ca92cbfbbe7423e4a6a1fe4dd6faa31bbce300be08b2ffe49f186214675e36a25d57c74611534dee35b301ee5e00657911b161a3060bea0871cc726db66d11e1dbbd5def385dc0c953914ca8eac6129563ac4bc47e39e65d8d276eb0b099576b542f2ff787c27789e565c4fbe46da193c11495f10a08f64fb026b482da54",
+  "64c1572251132fc28bf37fd8e96f2327cf7948a1126fd37175a91f483d6b3ad9",
+  "2308df7e6daa8bf3efde75f80ad72a49ae0794009e21ad33",
+  "",
+  "fa5a7e8a75b2c7a3ad700919f36a46ea0ffa680857e30188f8a03c7c4b6c11bc39aececec26687233682d31887277028e2fd286f2654c681efd9e7ed6b340874e897337d4dcc672811a6cf4b69086e0a57c266424dc1d10ecbaf0c822cce9e4f17b19e0ece39c180a4c756c03c19900280ff6cdebe5174d507c6e0860c38c353",
+  "e16c5303bff1085eae99ecfcca64e07ec76709b336598c9c4276a88e2ac3106630ec7b0f4fa2b455fd448945fe65798da3c8715df79b27f94dafd5a27ca47b6672149962cf8b8f019c4a93c71902dd3b2b8d9cc4bf2ff30d50f18480120bc638c6fa7397691aae3898bdf0a0f3dcbd749d03b8429cc1eb624c67d1acbce58a32a8adcb5bd809bbbb960f3fa8bf380e9f",
+  "7176c58965b74a56c52b3151bb8a149cf4f82158d57c823f3a90c6b427912226",
+  "ff604d9abee1fb8c8d35530a0cd5808e53e308ac580f7318",
+  "",
+  "6477fbb05c7c35956c3c0c5f342355fa",
+  "cb399b45596ac537bdb1cae9d439e26ba530343ebb3bebb73a238af37efe26fc",
+  "543894006b73f3d70fc04b15d0c2a5dfa650be5044fb5061811b866be7f9d623",
+  "fcb077ee19421610aeb263c57faef00662d424c07a7aa500",
+  "50",
+  "ab2911b42074414e387d7247fa505548",
+  "edeb2fdf5d7d9bf5d638973886aaf2b1ee4fc2a15ebc04c8a6339b1c3344ece0",
+  "62d3d607d6bf63c6760b802483b0e3aaa9dd4f79c6c5e93e6b51da45018c6bde",
+  "108f81f9abfa23640b83cfe3fed34bcf6640bf0baf647daf",
+  "e9bc99acee972b5a152efa3e69e50f",
+  "3786aca4c6b7e224163ea928771fde37",
+  "bbab31c2ba755007513a20995cc9d43998f7d9395a83284ddf4348ecb4830859",
+  "c2f8b252a18a29c44dbfbb62cbe6c3dfd4db55378734d8110b8f20f1d1ada6dd",
+  "d4da48fb09c06580eb46bbc5ca62bfab40b184271b73b710",
+  "d40cb63435042c9b526d1e5c3a77bfc5",
+  "11dd1e876f527d81ec81df06c7e426b7",
+  "c5023859611cf67a39bffa690d2f839429b23f99a17ec58e5d43b3e1eefc35c3",
+  "820032e031949f1e97e8ad5eb5a75cc805900850969de48e74267873d65e0d67",
+  "482d1c6f9a22450bff02814b8626a89534495c3bc3c8897a",
+  "096fbc2f9e50fda78ee3c8b0fb60231ae5",
+  "01ee35b10ac1efa06855ef67ece02508",
+  "0e9772515b51f4e6fa8195611dfafa65146bc05c66f1e8e0be1f1678a1e101d9",
+  "9849fcae816135f8ff7c83156a36aebdd8b11b679e1325659890870da65bd4c7",
+  "90ceb7351cdf29dbda3e68c2d64c04c7da7340fd622e6be1",
+  "4bd10d4003b8cf7e956bc847cfb0dea015d884f5761e9dfb9b2cfc2a8b4032",
+  "2aa92e5bd6515817db7d15af98806caa",
+  "17c4b7fa1f5bf1e69e882d760b303c74590a31d338c87d608786cc6443c8d32a",
+  "b118784e65a1f1d1964af9a24f53e3bcfe779241591e2c385be3b579780c5cc0",
+  "c490bc2ed9f06e129c52d57da020389a30134a40ddbf13e7",
+  "16a1f84335380b528cd7b6d29fbb5d7f97699f3c6d9284e1ef22fa05ad1f6ab7",
+  "99f2ed1a1d0611de572c0e8623d674bd",
+  "77b0a34ca0404238bdbe8e82a0b52a3cb62d441b580a49e81027fed18514c7d5",
+};
+static size_t nb_aead_ietf_vectors=70;
+static const char *poly1305_vectors[]={
+  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
+  "",
+  "227e68e4c1e68ce67ee88e6be251a207",
+  "81ac001b08d6577bd91ce991c4c45c46bc84d5465fc9139bf17042ae7313181f",
+  "7a",
+  "403bd4853fd1c55af2077780de9c1284",
+  "4a70a7e992b43e0b18578e892e954c40a51abdb5a85d300c32f391c45d6ef4db",
+  "043ddcf4214f24ea6ef6b181071f29",
+  "ff3de42a679eb874a5d4525abf3078fc",
+  "1deb473f7d04c152e7e857736715dc7b788aca39a3c96a878019e8999c815c57",
+  "23dbfbde05e6c71f118afc0dedb5b9f8",
+  "1d07a51dfe091076038f397099d15eb0",
+  "389e38a072cf1b413bb1517c3fe83abebb1cdf3a218abb1b0c01da64c24f59ee",
+  "d19cfb8cb3940aba546f0be57895e2cc86",
+  "320f841c889560a5dbee77df34ecd50e",
+  "e5d73f1c8c5376c1220ff3d9d53eeb65cc53599f40d6c8348c353b0017265523",
+  "6cddcd1879ca1f04b35f91adab70b81f504035fc169964a5ae985e6c11b0b7",
+  "32cefab76877cdd41a99c813d0a1ab15",
+  "18a51fd77fbffd722aa220efdd8947ca5a5c7fb1c2ebdb9ad1f603801ff22e80",
+  "314f716af9c22022fa159dbb4b4d3153f999b20ab4769eb1d01c057c5295ed04",
+  "6909e2774445104a4a0bc810da0ceb0d",
+};
+static size_t nb_poly1305_vectors=21;
+static const char *blake2b_vectors[]={
+  "",
+  "",
+  "cae66941d9efbd404e4d88758ea67670",
+  "e5",
+  "",
+  "2a294c4a9c276126c47e584eaf7e3396",
+  "f8146bd9495acc459d6d200005ee72c3bc3e4ae3badfd79adfe46b2ae1045f78382e04c969df1a2d6a963a79c58401770a383248b5d70bb4adedcbe520fed634f513b8c2ea6ab37fe633ba7302a5db6c2aa209e24478fa1bd6f6ffabe98555e034342cbec07364c54d1e407e282ef08edbfdbde936c9d42df58ae15889f5c9",
+  "",
+  "b28674d2dfede11f76e50f0e3081d74c",
+  "a63672d582bb83d92249800324cbc9a6e5b37d36887e7c79093f58ef8f1a001585321bfee1714260dd6130cc768d20b14d3850f0eec0f8f349110e751c16cdb5ed05516df17479937d942c90eb1fb1813062bd3f3f6b7668cd8fd3afce0cc7529b87dfc58eceb951e1e53d9e94793329199c42d004bc0f0dab3adf0cd702e99e",
+  "",
+  "663115a7fe0e0085cadf1818fa03421d",
+  "f593168e17311913753c59593fc66cb664c1572251132fc28bf37fd8e96f2327cf7948a1126fd37175a91f483d6b3ad92308df7e6daa8bf3efde75f80ad72a49ae0794009e21ad33fa4141fe5fa79fed12f6a20f51614dc130f45598e92549b113ed6185724507e7fa5a7e8a75b2c7a3ad700919f36a46ea0ffa680857e30188f8",
+  "",
+  "ff0a0433af77b0676a43e1e69b9294d7",
+  "6477fbb05c7c35956c3c0c5f342355fa0850307998642501c025e3873ebac3ccd749d8379ae6d830f785ec104897bd723d34ad20c9d36bfe371df46aebc6d4595d490a770bee4dd0be6a5a0b5e95645c7dcbc03c27010df3320fe75b0a3ecc8983ad94217e80348fd0f3f54e54b95bb548dc2225a264443732b41b861590358d543894006b73f3d70fc04b15d0c2a5dfa650be5044fb5061811b866be7f9d623fcb077ee19421610aeb263c57faef00662d424c07a7aa5005068b262251c0667a4e2e4b12f5df7f509564517887e370b425fabab1ce9e733ab2911b42074414e387d7247fa5055489bbd4b7d4de256de723566c1c2d3ecee8c10e7d98233db",
+  "",
+  "fa15fe1df94964869810a57fa2c9f82f",
+  "7c12457eb5614f87f1fdc40118906d02c602059d48ae05ae62d3d607d6bf63c6760b802483b0e3aaa9dd4f79c6c5e93e6b51da45018c6bde108f81f9abfa23640b83cfe3fed34bcf6640bf0baf647dafe9bc99acee972b5a152efa3e69e50f343bc12887fec8e70db73b4b48dce564d83786aca4c6b7e224163ea928771fde3778c453b35d98deced812fc5685843565b73d097601d3558278bd9d7327de5fdaa2b842050b370e837ef811a496169d5ff768878766c08c45561fdc2aad6469c11380c3d3f873c7233c541ea4c43824ecd8bf7e11ac8486208fb685218d46736e51103d1fae0e8e368f25480ee7328381c2f8b252a18a29c44dbfbb62cbe6c3df",
+  "",
+  "50089bdcf51629a715eb1b3345a0c2fc",
+  "b3451318590c84e311dd1e876f527d81",
+  "",
+  "13e40814a705dac02c3a1de24eb9e6cf",
+  "8a52102e2903352b5ec66cbed7474a91",
+  "96",
+  "ef0733ef5b4381bad3b00a6269bbc282",
+  "97699f3c6d9284e1ef22fa05ad1f6ab7",
+  "0d200c182251f5a9cafbc17c4bdacb3411651e4088dec905251ae93c899860061d340da02e519a254e109592caae83d46aad5dd4338e034f0660693ea9e691",
+  "6318f617c6c8788bcedb7177635a449e",
+  "5cd890b165ef0445d3b75055261be279",
+  "5c9fc34bf3b7633130b5341dc0560406d0f4ab5110a8ab1417e4127d459157b58b20256edf901d5a8bc0f71f6898a6b1d0818edb2f561d3219752a709abaa318",
+  "264f2e37d05f658f60d69b312abb90e8",
+  "b5f0c69568656661fbcd3bca40b22c65",
+  "",
+  "",
+  "aeb71797e433c16ed303017030b2d85b",
+  "",
+  "01",
+  "7c72d9947280f5c974ff04857caecab0",
+  "",
+  "2bfb488870d7a53f5bb5f3bc72b1433ae7908408d237fb4601141e3f07e0e445a8725bd48c0d4f1ba8a7c4923258d6ef90d598af6020a1a3e5eddb5c51cfbd",
+  "48fbca32ec758a3b09ebd2a19e6d91ae",
+  "",
+  "6111d2b0526416d0aac7112a7003391899c7eae8615d2778f3d053d6eab255bbcc2186267a67b540e5825f6d5d950c2f36d5588b45b6a113908ad73f6da77ff8",
+};
+static size_t nb_blake2b_vectors=45;
+static const char *sha512_vectors[]={
+  "",
+  "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e",
+  "38",
+  "bc23b8b01772d2dd67efb8fe1a5e6bd0f44b97c36101be6cc09f253b53e68d67a22e4643068dfd1341980134ea57570acf65e306e4d96cef4d560384894c88a4",
+  "ca43cdd4eb7173476862df6d2458d6c74739a0ad2169b9c89edd74e16fbcecc748c25dc338041fc34af0f1bda20eaf3fff7b372aa801eb98a1298bc61028073750831c8cb43cd6822bf3f6fae0801cb6c843d8066b07346635365fb7d6ee54e5c9cd6f05d76b2bd4caec8d80b58235cb4268543ab0eb865a948cc5b5f6e31f",
+  "0c7ea31f5fa48e7c869feea1ae0069f7327d1189019576688f76a222558ed18fc18e420655adac27f7e1659a8b196b30a6c705a99878219f90da7f2ecc6a8c0f",
+  "a3087eaeac1f2a58e2c2763d01b55744c4a65f4db93adff0078c63f090fb607a90c87defd622e5f55977877cec9ed88312b0411228540cd6dde6e84cd2da59b1871db119e3298e3c12fe8200a47eddf049c971cd99f694e3b2a5e25fa37aedf01bf32e7c679a3187e22a635d301ce98ad000ca301049f2e891e403250c3358fc",
+  "39b3208cddc3275ec7857fb8fc9e48540977ea6c0665248f7164f87b5a640ef300d7bb21d82db9b5b585b5ce82dcbcb7ae4d6883a6bd6e3175b9a6249c8a6d88",
+  "ed05516df17479937d942c90eb1fb1813062bd3f3f6b7668cd8fd3afce0cc7529b87dfc58eceb951e1e53d9e94793329199c42d004bc0f0dab3adf0cd702e99efa5ef6e59d3b201680f8e2d5a4ef7f23f1b6a8e102670a3829a995ae23fbc3a5639e028cd2b5f71bb90c7a1e4a8a05017d26e3afc3a88541f6c3f45d71f8a3cc31",
+  "8df0329b3dcb8510808919ddf8064b96bb641cad8160a22e7abfdad9433a86c62edbd2b6a46ee18c5e0391c06c51d96e3240028c7c4aa2c25dc77c1b72a2e0ed",
+  "f593168e17311913753c59593fc66cb664c1572251132fc28bf37fd8e96f2327cf7948a1126fd37175a91f483d6b3ad92308df7e6daa8bf3efde75f80ad72a49ae0794009e21ad33fa4141fe5fa79fed12f6a20f51614dc130f45598e92549b113ed6185724507e7fa5a7e8a75b2c7a3ad700919f36a46ea0ffa680857e30188f8a03c7c4b6c11bc39aececec26687233682d31887277028e2fd286f2654c681efd9e7ed6b340874e897337d4dcc672811a6cf4b69086e0a57c266424dc1d10ecbaf0c822cce9e4f17b19e0ece39c180a4c756c03c19900280ff6cdebe5174d507c6e0860c38c3537176c58965b74a56c52b3151bb8a149cf4f82158d57c82",
+  "1afec592c116573a7acea54c46ad42c5e589a546d0afbe7dcabaacaedf163c3f9432b525be87813744b88c9b7b7f640735ff6de8f5e968e2c8de289785fa1641",
+  "3a90c6b427912226ff604d9abee1fb8c8d35530a0cd5808e53e308ac580f7318fe2ab2a4933b5d90db718aa3440fbe9ba17f09716219bdffc93a189e410a6a3e6477fbb05c7c35956c3c0c5f342355fa0850307998642501c025e3873ebac3ccd749d8379ae6d830f785ec104897bd723d34ad20c9d36bfe371df46aebc6d4595d490a770bee4dd0be6a5a0b5e95645c7dcbc03c27010df3320fe75b0a3ecc8983ad94217e80348fd0f3f54e54b95bb548dc2225a264443732b41b861590358d543894006b73f3d70fc04b15d0c2a5dfa650be5044fb5061811b866be7f9d623fcb077ee19421610aeb263c57faef00662d424c07a7aa5005068b262251c0667",
+  "4bf909661a603c30199c63eefe96ac7b5489b2790c47db8f97b99cbc0fb4701831f7682d34302415974ff3f8e43f2592c6ce2c6e8a5518c3468a4cad6699ec35",
+};
+static size_t nb_sha512_vectors=14;
+static const char *hmac_sha512_vectors[]={
+  "",
+  "389e38a072cf1b413bb1517c3fe83abe",
+  "9689b839211c1751e1faee45edd4662c6102049ba76c3eef46a28cc268818cc54b8955b68dfd17d6f0993844bf9952f6158aa2c3fe780e6a89d975597a504ada",
+  "ca",
+  "a3087eaeac1f2a58e2c2763d01b55744",
+  "3c0119c12ed65c15b5343bcbf0d04a1b22c9957f3aedfb07d1d3dea5158c4f133efddbbff90e17733d5853818c9af7fafec2dd280f0e27855dac473cf30abe0c",
+  "ed05516df17479937d942c90eb1fb1813062bd3f3f6b7668cd8fd3afce0cc7529b87dfc58eceb951e1e53d9e94793329199c42d004bc0f0dab3adf0cd702e9",
+  "f593168e17311913753c59593fc66cb6",
+  "a62e149fef7b91b9c7f327847d81179a4bec216d30bc005d7a4708f84e2cd35ddc3ea8eb51e1bff209d07deaf5e88ae0900c7203db57dd372ada435a5518e2b6",
+  "3a90c6b427912226ff604d9abee1fb8c8d35530a0cd5808e53e308ac580f7318fe2ab2a4933b5d90db718aa3440fbe9ba17f09716219bdffc93a189e410a6a3e",
+  "a4e2e4b12f5df7f509564517887e370b",
+  "276785363a14f38d660d635dfa42ff079af139e9901f91f29240275fbf290a7320e1df5778a9239bade44c90bfe5e3d50d99fdc0570359a472bc931a123a7e19",
+  "78c453b35d98deced812fc5685843565b73d097601d3558278bd9d7327de5fdaa2b842050b370e837ef811a496169d5ff768878766c08c45561fdc2aad6469c113",
+  "60fa0114802ee333d7c49ccaad8108db",
+  "d31bba716cf3bb1d322ce9e4e6cda884845a16db546a90dd5bef2fe7bb836bad8e995f743a978dab6b11ee31b6c8bff2f2d747408bc54c7a75c049e243565470",
+  "8a52102e2903352b5ec66cbed7474a91d7ca3f49fdc859b3e1705e1e05b124789849fcae816135f8ff7c83156a36aebdd8b11b679e1325659890870da65bd4c790ceb7351cdf29dbda3e68c2d64c04c7da7340fd622e6be14bd10d4003b8cf7e956bc847cfb0dea015d884f5761e9dfb9b2cfc2a8b40325a2aa92e5bd65158",
+  "964af9a24f53e3bcfe779241591e2c38",
+  "3cb55d24a444711f3312818fb019b9c29842271896abd68413aaa6d13771c9a9997e332e36bc6cd8882dda982ee8ba1e102a6f01a996bef3bf8ce3393cb02b4d",
+  "f9b8e57564807df84a1d2143003c7c31c1ecfb0fa02c0a88f9b13f45f06f30ca463cba3d090f62651ef12368bee0db5fba7b79b95fb51289e4ba9be86c19cb700d200c182251f5a9cafbc17c4bdacb3411651e4088dec905251ae93c899860061d340da02e519a254e109592caae83d46aad5dd4338e034f0660693ea9e6914e",
+  "23ca891e5af07c3e5c47a168e79af48f",
+  "36e2a5fd3e8b2560e24ba08002469a98c50f56080e4cb18665dc1c7dadd9ec73664298a0d852504f5b3c1633247a41e47744915780d899e3e2afe14b86ab29ed",
+  "96fce921032289e9e686d8f207c5b4e7273feadd17d02148810c33e07dc7d92b6b034b4c953b7e0900da7170bbca5c72ebbb007959720860a69357ca495148faa1e5924ab091d3fb4996c3efc3c48b123a08998c55223a940e3fa0bbe1b1f4bf2ec798c3209c6cde322b5b08a73544e078286a8e5b7177019b72dcbe98d2a1280b",
+  "aeb71797e433c16ed303017030b2d85b",
+  "5c87ad41b5e45e91fce3a756fdb2382916fc2c7d6c00277db52bc4c3d8d1a93ebfd18497af4186e7f2d3c40de52094100681fe58a5fded5510b5dff983e75db6",
+  "",
+  "",
+  "b936cee86c9f87aa5d3c6f2e84cb5a4239a5fe50480a6ec66b70ab5b1f4ac6730c6c515421b327ec1d69402e53dfb49ad7381eb067b338fd7b0cb22247225d47",
+  "",
+  "dc",
+  "cfd55a01855eddd5746c64f58ce5fc5e002cd28632c3224288dbe816ce8fb370b2b355ca7ea0eda2a4f75395db7b94b2b06688811f0d7733122189589f82b437",
+  "",
+  "481e1604d2e5dfcf0d9943ae21d6efab804755197bff9f24eee982b0f9089288cf7b4570ac320b344f4f70f31f530c2312db5b7241651d361a91f7986db3922aabcd660b88d14c1c1601492321379521c1e4274d661113338c8a5b98d6c12d985f1b73d5b3d7592b2d0ea7be0181ae20d09d6051782c35c8537a597818b5a8",
+  "8fe0c5422e148c351107dda1e696bccbfdacd9c4b21a63b0ecb36d45864eaa72963c0be609fa9ca9500171ac785c19e5929c141cd1f6cee605f05bab8809ef66",
+  "",
+  "a46ff45937e5f0c485c88631147283987321c85d4a447015bdb4c7921a6e927b6c8b7f7e40a17eb87f1874b7c50225d8544a01cc2cf0ed8c30c3dcf2ca6ff3ef75798ff9253562ecba3e7e42a43c6fd74a3c4330ea178daafa0532305e8356f1aa5f91ca91dcda75d7167e1585e0211eb3b78e6be0cf50209ab6747b4a24c053",
+  "03017550f2050653118444fc09e828f9d8d7fc6f245bd96ac82d20d4c40b31bb7d3237df3f22d129de5cebd8b91b1a69bb7050373532293bf35f66a06da43a95",
+  "",
+  "d4aa41c8434e57b47edf32f6cf6ed1bed6c383e898df44d84558837a0178af8b11417eda347fc40c678121bf0067eb4677a84f442fac0f3ada2412a69794c521b769a9e4a3b0c80bba876e96ac0eeb9194cb23669cfe964d087f33f4366d4bdd721907f828f383c11bb6d956d64db4a8eaad21ac20d2c31fc52f08d756be446b99",
+  "dd87e1b28bffc10ec0a4bd8e2808f003fdeefa822f25ccabb6a7d4c0381499ce4413de701771ab3172e4777ebdf1999d27dc1941a5c3cc0ac156b7cb67552a27",
+  "",
+  "f606ac7b059ba616ec1e952227f31cf0a83dcb66613c012cdea2a3776961f0efd398712051b7e7b8500ecbd030d2c6a0012b8eaeeabbcc0d6f1e03f4acf709b3bde30f4e8aa3ebb0e8f75158be727463e25d2b3f02db5cf3342581ce7279c118bb8b0d496b610c2d51967d12821cf86d796b7cd7ad2cbd5c0f165b232f281464e48f0b0d2577542ad3465bf6c063435390470388a27d938b113c74cf1d962c864f2971a0b18808649f978cc94de8b8f70fa5cf3ec0bad1a92499b68660c1fd2f809bb26aee29f93ab4484694506fae71d307ac45239a431f3f51285aba0dbd3afdae0231c4a1fc14b21ba2f1c27548d4c259544e80b94696da838ad6186b2e",
+  "800ab7f4817cf9a1a7d7d711ea097709ed18be383e7caaf6da72bc9e486dacb2894a3e20e0759cec7ec0550da76cf613d02e10ec2c4c697648998586d107ce64",
+  "",
+  "6ab33d45513b7013624e01e15f616a3436caa8813c863a13eb85e06a973f95204b265c9f76496407bdd1bd16b7f6ea3e97f3346e63d5e05f9896b1821e3dbe382a8849e3e27e05c8572140297d86473e720d62e6c7ef1766e4aff8313c688b6b91667b20ccfc055f0d7917eff1c713f3712d948055a3139e6d758a308322503f4f28977329a2153bd6a8c1d47e8877a4abfcef83cdff4daa74845384d8bdcac050bddc4bfa7cdc185d3b2528559936510bfe814ae162eaddf609992f6796654a59a66323292142ca499c44cb95bc308c10d44aa534066efb413fbd7e622fb2a2366b20439156728d7753c598106508878bbf4467d9c7812ea686683580365a50",
+  "ffb3011fcde35b8ff8c09a62fe02e7f17aefd1f458f3c01caa2d57b77699dd335f9670d359fc99c72b30ad3e92c9d39000b127967284cca14b759275531eaba2",
+};
+static size_t nb_hmac_sha512_vectors=45;
+static const char *argon2i_vectors[]={
+  "0800000000000000",
+  "0300000000000000",
+  "e4e4c4054fe35a75d9c0f679ad8770d8",
+  "227e68e4c1e68ce67ee88e6be251a207",
+  "",
+  "",
+  "2a2ec585be2ec27c215f677e947c212b1b85de797167d4950e29987977c941117c4c5f6f6f547e62d76b88fa121781986a37ea14dc394917af5396ea58915d",
+  "0800000000000000",
+  "0300000000000000",
+  "48b3753cff3a6d990163e6b60da1e4e5",
+  "d6a2df78c16c96a52d4fb01ea4ecf70e",
+  "",
+  "",
+  "ec60819d04c1d35416d20abc5908dd972acbfd8f6a282ca2b642064242526683c0f1b237f38bac8279571f049bfed4d8d177ea336f2ec96456eb6c584d3c9607",
+};
+static size_t nb_argon2i_vectors=14;
+static const char *edDSA_vectors[]={
+  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
+  "61435d557c6bedda3b9d652b98982c227ffedb203fc2357cabe8075508f4e6f0",
+  "48b3753cff3a6d990163e6b60da1e4",
+  "64f299ddbbd93fce096baa498fd620d91339f33b49e3906c0b49100a14e6c599b3a85bbdc607a828b3755715798c291ef05fb6958b216abddfbdff4ee2eb800f",
+  "d19cfb8cb3940aba546f0be57895e2cc869fe55aab069c5abcf9e7ba6444a846",
+  "0fa0f708fe46cf703cfdeacbbb7c725e74e826cdcbfa2b165b29e0ce1ec67585",
+  "e5d73f1c8c5376c1220ff3d9d53eeb65",
+  "067c30f6ec7db80657f11acdcc2de8b738ee1e9a68eec5dc5df4964f0c5ccda605426b04e3febe002224c312ab5a4330b4baf89ea9953fbfe7ecc03ba2112d01",
+  "50831c8cb43cd6822bf3f6fae0801cb6c843d8066b07346635365fb7d6ee54e5",
+  "b600ab324d70d2372f3ba5a0d8bdd8b8e797f780b642bd56e69a18db74c389bc",
+  "c9cd6f05d76b2bd4caec8d80b58235cb42",
+  "0bfa8d629fe89bd9591f20575144f0445958fd3574179ec4a9b6ee85787c23d69b4f009d3ed3bd2bb62226638602b95bc4719a1d2c60afb07ed95c959628ff0c",
+};
+static size_t nb_edDSA_vectors=12;
+static const char *edDSA_pk_vectors[]={
+  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
+  "61435d557c6bedda3b9d652b98982c227ffedb203fc2357cabe8075508f4e6f0",
+  "48b3753cff3a6d990163e6b60da1e4e5d6a2df78c16c96a52d4fb01ea4ecf70e",
+  "e32afb6bafb838c01969252af32692be5562a11d52013f9a36343f5632cb60e6",
+  "81ac001b08d6577bd91ce991c4c45c46bc84d5465fc9139bf17042ae7313181f",
+  "a1e81b4fb64b9d0c00c952b616fe12b0b2ee6b71876137d23a5d17a5bc1fd61c",
+  "7afb217bd1eceeac1e133aaa9edb441fa88ea3ae0eaa06cb9911b6d218570f92",
+  "0ecf0f4a86f6ae7919280766151ff1412b77e784329ee4fa354054af8f5f5019",
+  "4a70a7e992b43e0b18578e892e954c40a51abdb5a85d300c32f391c45d6ef4db",
+  "f0d2732aecb3106e06307e680c9e4d821904fd2610c050f243203e31fffefbc4",
+  "043ddcf4214f24ea6ef6b181071f299aa254a4606ab6a058e0c6fb5598218db7",
+  "65d1dca8bb0ce3e3b9b4a7c6f3a200b6e48988ff0e098c142b481aa162428586",
+  "1deb473f7d04c152e7e857736715dc7b788aca39a3c96a878019e8999c815c57",
+  "cc01f65fd61ece99115f990f2328cd30fd2484db91a457c7b0027d01db729d12",
+  "23dbfbde05e6c71f118afc0dedb5b9f8dea398b2d764bca68dfc023a9821939d",
+  "4e8d3035dac14a39b024823ea2f58fa6165548b8d6065d4c0761b1cdecd21423",
+  "389e38a072cf1b413bb1517c3fe83abebb1cdf3a218abb1b0c01da64c24f59ee",
+  "3716cdf8772ed7354e5ca6739561b691b24d18c0c8351d991e1a2a7f8e96aabc",
+  "d19cfb8cb3940aba546f0be57895e2cc869fe55aab069c5abcf9e7ba6444a846",
+  "0fa0f708fe46cf703cfdeacbbb7c725e74e826cdcbfa2b165b29e0ce1ec67585",
+  "e5d73f1c8c5376c1220ff3d9d53eeb65cc53599f40d6c8348c353b0017265523",
+  "d196dd6fa73aefc891d3a4684bb15da1d7ba0a63517d1b8ef4223fa52fb03227",
+  "6cddcd1879ca1f04b35f91adab70b81f504035fc169964a5ae985e6c11b0b7bb",
+  "35a0e02a48b062589396b7e26610c4adf2f8c8136471736d72091cdeebc0c510",
+  "18a51fd77fbffd722aa220efdd8947ca5a5c7fb1c2ebdb9ad1f603801ff22e80",
+  "052e83a137fbb5f8dc0ac742c3e889c95a10a6fad270e260aa00d28dde6d838b",
+  "314f716af9c22022fa159dbb4b4d3153f999b20ab4769eb1d01c057c5295ed04",
+  "b831c0cc7fe596a15c96350e28f93a728c59841ad489a315fffdc679617eacdc",
+  "2b4536561dce32478b113adb5b605cac75bcfcacb5e3e811b78e72e398fdd118",
+  "78cfdeeaa02669a944318695bccf51d1edf510da5e69bbb0954a8f3e97e5cdc5",
+  "bf04c6a7ed0756a3533e3dca02109e1830b739210bd8bffe6a8a542980bd73e9",
+  "2bfb050d73759b28f7aa5b1c82bae754d3815ddd86f944339f9a97750b85a218",
+  "ca43cdd4eb7173476862df6d2458d6c74739a0ad2169b9c89edd74e16fbcecc7",
+  "1df12227db10438b6d9e6591bbbc47e3884834233cb740ea7f9f4a62ac195642",
+  "48c25dc338041fc34af0f1bda20eaf3fff7b372aa801eb98a1298bc610280737",
+  "5cba15882130f8f682afdf116f8f56344bcffb856561a8275303496b333f5002",
+  "50831c8cb43cd6822bf3f6fae0801cb6c843d8066b07346635365fb7d6ee54e5",
+  "b600ab324d70d2372f3ba5a0d8bdd8b8e797f780b642bd56e69a18db74c389bc",
+  "c9cd6f05d76b2bd4caec8d80b58235cb4268543ab0eb865a948cc5b5f6e31f05",
+  "06dd9864592a574547a1c585c7a96fc6f2df2c6157503bbce7d41a6b1e547c78",
+  "f8146bd9495acc459d6d200005ee72c3bc3e4ae3badfd79adfe46b2ae1045f78",
+  "ac032ed6ae741ad0e50b9678ccfe0596adb81c7abc92ff54117d121c537a3a0f",
+  "382e04c969df1a2d6a963a79c58401770a383248b5d70bb4adedcbe520fed634",
+  "4525e1ee801b4def3f3405c46be458d678f8c6ee70bb4edfe0e2a18c94b75279",
+  "f513b8c2ea6ab37fe633ba7302a5db6c2aa209e24478fa1bd6f6ffabe98555e0",
+  "71539fb289a3c319fe8ee1b507f9eab389db6ec76101d7945b9267ea39b99124",
+  "34342cbec07364c54d1e407e282ef08edbfdbde936c9d42df58ae15889f5c939",
+  "ea8a201d3e9ab4c5c2890636d6f9b1ac56dff69d668de1e62d65a0519e5207a0",
+  "a3087eaeac1f2a58e2c2763d01b55744c4a65f4db93adff0078c63f090fb607a",
+  "fd7f547a60d95bdac97526fc8e197814f684230b94f9ce2b41c81f0b2206cfff",
+  "90c87defd622e5f55977877cec9ed88312b0411228540cd6dde6e84cd2da59b1",
+  "d32c29618431e16a228d7b9cd687903fd9269b1e77458be667e91b5b453c6192",
+  "871db119e3298e3c12fe8200a47eddf049c971cd99f694e3b2a5e25fa37aedf0",
+  "e86cdd876b6e06fd5a91c926620320ef093b0dcb5fd5ae5c7e14cbb692b10026",
+  "1bf32e7c679a3187e22a635d301ce98ad000ca301049f2e891e403250c3358fc",
+  "c963db9fd5282589b1c0dbb73c2caaa3562a7a728e2002c6a89081cd6fa78d12",
+  "2030b227bb96e93b88f419afe9f9d660e013761228051ec5a8f0c093b33fc60e",
+  "ef6cee0b249791f0764413eb3c75120246d694780cea169536696bf0f47dded5",
+  "2cd7a9c845434e95d4319d79d1bdaa8f73853fbd9958e9ffc23a0ecbb7b48dbb",
+  "9f5eb1be97b3b88f2737329b52c180d42830059b4e5ebe3bf21b8feb16064f89",
+  "a63672d582bb83d92249800324cbc9a6e5b37d36887e7c79093f58ef8f1a0015",
+  "889d8062cc19c91ea877922ccd55c8d5e8582fc336fc93c2b5a5634693f8ad38",
+  "85321bfee1714260dd6130cc768d20b14d3850f0eec0f8f349110e751c16cdb5",
+  "2e4dca8c5ec8059cb0c14cf683e4207b56f351f345a404b127c60ca873e75a2b",
+  "ed05516df17479937d942c90eb1fb1813062bd3f3f6b7668cd8fd3afce0cc752",
+  "9fcbbac9a4e3d0090537632c54e9fd164a737aba763aa66a82c336bc7f8dd92b",
+  "9b87dfc58eceb951e1e53d9e94793329199c42d004bc0f0dab3adf0cd702e99e",
+  "eb4361924466917300c4c08351fc8bed54da9fa8860933df83323f1775d9016c",
+  "fa5ef6e59d3b201680f8e2d5a4ef7f23f1b6a8e102670a3829a995ae23fbc3a5",
+  "f95d73d48393f6dc5ada78654987ca0534b184a014cd7a68ab502b38bdb01406",
+  "639e028cd2b5f71bb90c7a1e4a8a05017d26e3afc3a88541f6c3f45d71f8a3cc",
+  "6597da560b71cbbd10295eeefce3e0fc69a1cdb9899f24590b8eb573c81a5c42",
+  "31a063ea4aad1b4d00db6f5228e9b9b1561a7f61812b8b79e6af4292580d02ea",
+  "23d65ea5e73aeeead958d168461de72480f37c5e6711ef79749b8e980f2d10fa",
+  "4f6266d04244303304510272e383eaa51a8ea7099a74bafa3375b210653a0d2f",
+  "5ccf35417ff34c1dad9cd04afab0564b66ef8935fecf7964350c2e35f784f6ee",
+  "40b15afd725cf5065066be1cb803dc158865ed8d7cca72dcf2b7c6b5d0d045bf",
+  "b61a7a8e9a2cd32429c1715a2cc5137157c1fd394862ef9adf4eb6bf6e6a610f",
+  "32b063d3da484ba1843e071b61c49ce7f30ba18a4f7ef2730ecd785494839966",
+  "68cb2f91bf0880679eca49d61545fea68a82fc05092592578c59d1b95628914e",
+  "f593168e17311913753c59593fc66cb664c1572251132fc28bf37fd8e96f2327",
+  "55ac1eaf328afe90e2699112ec42e3238e0acc13641b42da273d735c66738a39",
+  "cf7948a1126fd37175a91f483d6b3ad92308df7e6daa8bf3efde75f80ad72a49",
+  "bdb3a742039e1248ad16e863f5a575ab4c8be685799b5fdc68d7553aac8ea282",
+  "ae0794009e21ad33fa4141fe5fa79fed12f6a20f51614dc130f45598e92549b1",
+  "529e524ce37699943a4b3e6afd35bedbc76c8582225686ab6510bd8c981e9506",
+  "13ed6185724507e7fa5a7e8a75b2c7a3ad700919f36a46ea0ffa680857e30188",
+  "28c47bd54ffa337bb58d3ab1d709da636cebd33ba9b4e93c269a0e34bd89c1c0",
+  "f8a03c7c4b6c11bc39aececec26687233682d31887277028e2fd286f2654c681",
+  "d740c0626b2c75c77ce513fd77bdb85021ee2ca5f98920d061b1d869d6a81b2b",
+  "efd9e7ed6b340874e897337d4dcc672811a6cf4b69086e0a57c266424dc1d10e",
+  "5fce81476c3c41b9ab13d6636849ca71d64908c010e9b3cd5d398d63e81d3a88",
+  "cbaf0c822cce9e4f17b19e0ece39c180a4c756c03c19900280ff6cdebe5174d5",
+  "6d07c27c3835ca3b485c3ab8ed7475e00a02eedaae25839acb75621ba82ed690",
+  "07c6e0860c38c3537176c58965b74a56c52b3151bb8a149cf4f82158d57c823f",
+  "27a7eae885de3d1f7b979751c2355d0c070fcab12cb962bf19d688b6f4c6b45a",
+  "3a90c6b427912226ff604d9abee1fb8c8d35530a0cd5808e53e308ac580f7318",
+  "a604bffcaae7649a321468750db7bb38909e5d87dde407e115480df91f2c6096",
+  "fe2ab2a4933b5d90db718aa3440fbe9ba17f09716219bdffc93a189e410a6a3e",
+  "693a95f904c43229abb46788a3c58d246c91b37ea289876e0d9d0b49f89c6b7f",
+  "6477fbb05c7c35956c3c0c5f342355fa0850307998642501c025e3873ebac3cc",
+  "39cf3f5c576b693a8583423080226235adf55f1ac34cd5d37ab67b8a71e7c55b",
+  "d749d8379ae6d830f785ec104897bd723d34ad20c9d36bfe371df46aebc6d459",
+  "d646fa225e9a394d77703479725ea493b95209a43612e1206ef58e9bac75cfcd",
+  "5d490a770bee4dd0be6a5a0b5e95645c7dcbc03c27010df3320fe75b0a3ecc89",
+  "a6b009225026af9062b0b565c5fc91d0300ed298a8eab5f3195b648fe549cf46",
+  "83ad94217e80348fd0f3f54e54b95bb548dc2225a264443732b41b861590358d",
+  "e7bc4aa737b35c4e8cd56a3cbe0bf9cf5f3deb1dfa8325c76df5c7080b8c36f7",
+  "543894006b73f3d70fc04b15d0c2a5dfa650be5044fb5061811b866be7f9d623",
+  "f215f9b35970c2844ac02710fa0c281b8973429d2a8a89410f4a806ee5aa8d6d",
+  "fcb077ee19421610aeb263c57faef00662d424c07a7aa5005068b262251c0667",
+  "4aa26c42a9a0fdebd16a0f4e56cf291be8abb8b8e69db83fa6ba1acf95ecfca8",
+  "a4e2e4b12f5df7f509564517887e370b425fabab1ce9e733ab2911b42074414e",
+  "9d1d54af4639f12fa41ec3bae688711769b47a78be1fd0fe35c331c417717614",
+  "387d7247fa5055489bbd4b7d4de256de723566c1c2d3ecee8c10e7d98233dbef",
+  "794f6e26daf5a8f0e104a9d069603474fba599213ceb9db344a8145fb206f436",
+  "90494951ec91a843f6701f8216a7326b241fd57f32e09976de4054797b9aee82",
+  "4137f6d789f979138cb20fe94647e52b48847c15f78d7b2c940b9366a3cc0df5",
+  "0e0de381d02852ac13f511918267b7037330e60ba1c5875a0275f8ccc75cbe98",
+  "a875da298a9d84b225b62089165cfc725962b47adcea42f3135cda7d62a1d770",
+  "7c12457eb5614f87f1fdc40118906d02c602059d48ae05ae62d3d607d6bf63c6",
+  "7f02ec8508e263d7be8b1b116417faad6432c17be14cb1cb1b29d898423523e8",
+  "760b802483b0e3aaa9dd4f79c6c5e93e6b51da45018c6bde108f81f9abfa2364",
+  "932aae2ccb95d59c1bf56a2a0f04b246960a71eade6e95e1b107b379ff43ac52",
+  "0b83cfe3fed34bcf6640bf0baf647dafe9bc99acee972b5a152efa3e69e50f34",
+  "dadfbbed5841c9df7bfb801ed49faee7141ace1a34556b2bf1e38ad039034e29",
+  "3bc12887fec8e70db73b4b48dce564d83786aca4c6b7e224163ea928771fde37",
+  "eea5829ea584d5a4ffeeb2430ccf260c3d9bd8a9975f73ac72e8bfe276a3d1f0",
+  "78c453b35d98deced812fc5685843565b73d097601d3558278bd9d7327de5fda",
+  "d6cf25b18ed73ec0200f17841aa07ea500202244ade1621fecd1b3039a21c403",
+  "a2b842050b370e837ef811a496169d5ff768878766c08c45561fdc2aad6469c1",
+  "50d847e161de393fdd6aaa292f836c6c3f7d0b03a1cab6d8454a2d9431b0a4fb",
+  "1380c3d3f873c7233c541ea4c43824ecd8bf7e11ac8486208fb685218d46736e",
+  "c4bfd0c4c1caec19f32749252a3b987ea8292cfed7391a92385472f0135b65aa",
+  "51103d1fae0e8e368f25480ee7328381c2f8b252a18a29c44dbfbb62cbe6c3df",
+  "fe93ae148dabd46a9f1181740c287e8e3cbe57df0433f7c502917bea11bb516d",
+  "d4db55378734d8110b8f20f1d1ada6ddd4da48fb09c06580eb46bbc5ca62bfab",
+  "4c6120d3f301d8b11003ec95525e104382dfb594181b1ea15c07a2c4c31f41dc",
+  "40b184271b73b710d40cb63435042c9b526d1e5c3a77bfc516a2bcb4cc27ecae",
+  "c82ebc133d00527cfd257f80890c5c1d69d31b360b61c40b19175af2e8578311",
+  "b3451318590c84e311dd1e876f527d81ec81df06c7e426b729aebb02be30c846",
+  "f4fd190484241f532be73f6f39f4ae205211c62a97c8dae42dc4f1d0669f90a9",
+  "eb228490df4a0e6c688aaaa6bf05d14428335f2652926bfdfe32dfd789173ba8",
+  "d287c2e74428453a416bcc3cec8fe38ff8182bf68e6845b01f11da320b3ae3f2",
+  "60fa0114802ee333d7c49ccaad8108db470c882514716592e57aba26bb75049b",
+  "5dff8939cf19af7b5ee4d95dd7e3d25ab74949e6284ba12c73c36614c195acb7",
+  "75db088bd1a89c6a67fb76b96c987478bfba2449a607f3cca1c911d3b7d9cb97",
+  "92f707c5d1374591ba249c28f01cb0d4673ab32f35b6bc8fa32e62c4b3a66fbf",
+  "2bcd84b0246189c7820032e031949f1e97e8ad5eb5a75cc805900850969de48e",
+  "a1a855475e51f4261091d4014c61e20702e22e22b42e45cf0587582ac0d76cc3",
+  "74267873d65e0d67482d1c6f9a22450bff02814b8626a89534495c3bc3c8897a",
+  "ff1865021226294f566ff7d625eba6ddc3d598caaae2ee27d05e97b97792dfb9",
+  "096fbc2f9e50fda78ee3c8b0fb60231ae56bd39693b1d8b941a67930374e15f0",
+  "80312e9d0b93130c725a3c67c70029ecc42991f509beeda27ea7c64352362e23",
+  "01ee35b10ac1efa06855ef67ece02508dd34fdceaaa36cb3077fe500b4456393",
+  "ee2956ff74cda685b2b00d8cb5c38e2851da3c206702d698f4239bc23388c0a8",
+  "bcbba82e7c959bd047d2fe2e1044ad7540d3bf8f7c974fc17e106d9380da192d",
+  "c491d5099a5c7de687a92909d067b2bcd6357a92af097647e17c55f5aa3f0354",
+  "19f4e861b0517aed05a5e9b942a93a505a036478ae8c8c9b0108744f2e1c7714",
+  "e4474a3d402f9d5fad217e34cb89d9051070a87fa7a433b8887fcc1751a83365",
+  "8a52102e2903352b5ec66cbed7474a91d7ca3f49fdc859b3e1705e1e05b12478",
+  "01a06befdc0a728f6258755e92b832d06e843df0e2e4c4224130327f256b1334",
+  "9849fcae816135f8ff7c83156a36aebdd8b11b679e1325659890870da65bd4c7",
+  "905a4dfda367114d369cdf9443cf42e12242e1fc2080cf4fd90fb7491d46a0a5",
+  "90ceb7351cdf29dbda3e68c2d64c04c7da7340fd622e6be14bd10d4003b8cf7e",
+  "45d7a0039e19f3d1619bc1d2dea637c9e0a7801f3613b3e2956c1f1201bd60d8",
+  "956bc847cfb0dea015d884f5761e9dfb9b2cfc2a8b40325a2aa92e5bd6515817",
+  "4eab74ddaf52b56040e445aec7e0875dc3eb145857700bb3191b60fa5393287b",
+  "db7d15af98806caa934e8d0afce8ebbd10dc6d1640c16e76852d1db3973e24f2",
+  "003ebcb734dc145dad536908755cbf0caac829401bdc97d6a43aa28abc265513",
+  "291ebbffe52b6f25fdd62b431e541dcadd579abd5cd7be379c524dbe47232c47",
+  "b07b5348518b32c77a0f456da5e7c61e0860a896381544cf81c17ad81ec30f57",
+  "eddcbd450394c5060827a9a731a0517dc6b255592332bce1fc9ae2f61bf3ce74",
+  "28eea4e6ab2724cb18fe35902d91d7cd40d6fc77e0e08fb72d52186c6fb8e13b",
+  "53afade89b2baad6bd288c25aaefe631c151ca3b56bcb710b118784e65a1f1d1",
+  "8e26fd757cd4710cbfd5998c0bef7fca8eaff61d035e2f49b44e5301a0833fb6",
+  "964af9a24f53e3bcfe779241591e2c385be3b579780c5cc0c490bc2ed9f06e12",
+  "1533e90e8e5980cf472935b0c697e58ab4c0856b6199ba99d05e9332ca23e593",
+  "9c52d57da020389a30134a40ddbf13e716a1f84335380b528cd7b6d29fbb5d7f",
+  "3d9b886bb4411e2266b2ea2fe4ae6e380e463cdddbe3b6b3bbc21b45028e5bf2",
+  "97699f3c6d9284e1ef22fa05ad1f6ab799f2ed1a1d0611de572c0e8623d674bd",
+  "238b5f14b447912c81c4aec6b35a7c8cf3f6045ce852bff8a27c3a1b0022afe1",
+  "a96a328d9e179da1fd76e4b13eec6395d59a1a93ba5c994f7e9a80661effa97a",
+  "7de969f3d7eaace217c2cba9220cc50e3f9af47dd5703cf219e9f3fb382ba4f2",
+  "e75b059d2cedf8d9224b405a04ef7c020c268f61b89ee014a883b1440fa88185",
+  "2031acafbc5fc699dd57c0152a1626f25bf078b93f7c00ee12cb20eea74691e8",
+  "a41ab15d234025d4a38e598a7ecca8265efe918cdf1e775cd5f6f6f52cb16d96",
+  "99386d410ac9c14c3f95fe63f0fa38b17d47611872dc738c8234f0bd38742110",
+  "312c210b4fbcb4499b3686f738211179959b2f3736ccc5924bd36dd63beae511",
+  "f2a4c03c988e75452b7ced9e523f5c1ab8d257727ff45d37d2c7c7a52cb20ffe",
+  "f735d4e5763e85585bae920e4c71a044b8526746ddbce27b53fffd4ef780db4b",
+  "37642015da132a4b265ec94198bdfd20493c4798be35e3fb541858b8d0fbfe8c",
+  "f9b8e57564807df84a1d2143003c7c31c1ecfb0fa02c0a88f9b13f45f06f30ca",
+  "c04b3054cc518efc0f7e26fbe3515198c207ccc5e391da5b70d9dcc68c451b55",
+  "463cba3d090f62651ef12368bee0db5fba7b79b95fb51289e4ba9be86c19cb70",
+  "37b4e65b7eb1c542ef3beff23c46185a49c5efa7051924f8897aaea218381d59",
+  "0d200c182251f5a9cafbc17c4bdacb3411651e4088dec905251ae93c89986006",
+  "9ebc8c813fb82d8721652a4fac2e31a356a66c50de1d4b11a09fd4ebe3409454",
+  "1d340da02e519a254e109592caae83d46aad5dd4338e034f0660693ea9e6914e",
+  "9550301b4827c4eb8c1f22b9e79617df00278e05221f12fcde713a09c7fff80e",
+  "5cd890b165ef0445d3b75055261be279f706e768c06e84609c209e30b0ae7db5",
+  "ef674f662937e404063b189b175528500729f755fbdd31d62ee32e1cdf996098",
+  "23593bda8350a670efd7fcdab3145aa4bd7806d48bd4498766cfdfa2d5031946",
+  "0a759df30ada9a577e700e499a5eb7a486dc010ebfd85fce2729be92dd2955c6",
+  "762482e3ad1b54ffdc4562b6e36ec978ccbf232a2eca3d35fb566db7ee6b8fff",
+  "ab3b142a8d7b05897fbedbc70fb58ddece134b374cf9221e3f54a0a4620c6dfc",
+  "371b0ba868f33aebcf194101bdfa0961c7ddd429060fa4b01720b34d76871dee",
+  "c1ca3bf6b46ac16602bff139b9f3847bab36cdf43269d7b38d3ec6a1300c76ec",
+  "23ca891e5af07c3e5c47a168e79af48f32db9e030908f5a5e8f7e84012298e52",
+  "4757b3571bb47ba9107d7add62d87a7a53f0512f6149319712a0810563f52da6",
+  "fd3dd6717692faf16c4f99e70d330ebbea8aba24b90ad8eb4de580a38bfd9def",
+  "f213ac5efa0bc243d6d64007c50dbedbc7cccdf177c44a582c67f6e9d1f15003",
+  "e5f7f603f81d849a967f5b7143e05f5a383ac8bea7db30184286d998cfb4cf7d",
+  "85a664c0fa056862e1f29cd14cab2c73323e06a6130bc1df4cbcba1d02b6f7ad",
+  "fd3206bfec72099cf4e4c345b9ddd9df951bbde96979906b794b8440985bf8c8",
+  "8a335c17ab3ce4d564ddd8aa3a707a309dda7f4f4fe692e466a15d450ac01d49",
+  "5c9fc34bf3b7633130b5341dc0560406d0f4ab5110a8ab1417e4127d459157b5",
+  "6888f2744f7239bbdbcce21f0569afd0472b8d5aebcd598e0d52a9a9229076e7",
+  "8b20256edf901d5a8bc0f71f6898a6b1d0818edb2f561d3219752a709abaa318",
+  "17e90033853bbf98f4c824ad6ef10f5f206350b99908727b391beb704a4cfc1e",
+  "b5f0c69568656661fbcd3bca40b22c6574a8c44ff79b74301860f7e6f0088fcc",
+  "bcb626ce87f1ccd730e6563bb9a7699d1f4f68afe248a3812f36fa999153328b",
+  "98211323ed6d1e0fe3204f3ba8359b261aa32ce404b148a0503c64d45f623882",
+  "22c07308f887645d8c2097d5271cf47ecd6684ed212d3ba147bfd26bf3284df5",
+  "96fce921032289e9e686d8f207c5b4e7273feadd17d02148810c33e07dc7d92b",
+  "20ee30695b8af845ab943b3ed3e854ef360be812572e1162f9d5879a901d9b29",
+  "6b034b4c953b7e0900da7170bbca5c72ebbb007959720860a69357ca495148fa",
+  "2b159ea4b38a259708f88c7f72dc894c791f833fdb28c2ddbb4e3c9ca8fcfb6c",
+  "a1e5924ab091d3fb4996c3efc3c48b123a08998c55223a940e3fa0bbe1b1f4bf",
+  "72d5bdf37a6bec432f525eca307d37586cd70426cb9914416b27c450009c5802",
+  "2ec798c3209c6cde322b5b08a73544e078286a8e5b7177019b72dcbe98d2a128",
+  "79d6bb726c064cad4f783eee8fa14bf1cb3211091a2ce527394e0bda41476e1a",
+  "0bfaffbefbae3482ef5c14f431f77f3e43945bc0efadbc0dd9dc4686c134894f",
+  "6a56664f778318f1a05da732df3a2fe4a71ef3b1212d0044d12f90b1a577ff4e",
+  "4c95123ac0e5b6d86b33ce74523855bcd60d8445a3e016719ce101d243ad2179",
+  "96e91f5eed917a50d57d6b47322d8eee5dc920b5a46d642ad506585e3f9d7232",
+  "4c2d9dbc6c77dc52ca03826aaf44f42bb4c89bc3a53c5909ce6dc030503f283e",
+  "823b8745722f3926d9cda64fd5a4b6094f2041643965980707de01ac4a65b8a4",
+  "acdf979faae02102a723e2b75c1c07cd70d404233aa680e5b8fe1a239b77cf2d",
+  "47edc1dde233fd23d91062eedc69e88ce860b349825d1e205561a50238ac28fa",
+  "aeb71797e433c16ed303017030b2d85b786d6e10575413f99f91166f0ecd1b77",
+  "d1ab6372ac47e2a6b52c7ecf58651f7f1c0b9c4c7fedf6ab66f7957d5e2168c1",
+  "11fd28e591ab241bf1c45e8e227198f40656f8aee7eae6b907d09175ad13cb86",
+  "5453eadcee6295d034570556dcaf182661023eb165c1ef152d662ed887f27afc",
+  "d2e8f8ee91baea792e7f1b5f34df1dce48dcc14fb9a59c3fdbde4c7b5e13732d",
+  "f2a2434039e118fc602b0ed7e2940d38b74081d30cb7ec40d61f9bf6e8caec60",
+  "0c50d5432e8d0433627b4a47dc7ce5c26937436810571dbc64cc154d04cf6f45",
+  "072ee3879391deb8315d0d88e1fa09e0eb98e73907403ba763d3a7cec6446d30",
+  "f4199886a44103fab0e3ba0b4ff1e4cca0d3c315616723ebafd8527058028c84",
+  "a88cc6918d7de0275e5f0ebde51226f5e0c5de0575366c4259a8f642c5bf0f79",
+  "83faf3105c5918fb42bf378dea589d8f5b05a339d08b74916120897d08831cf7",
+  "76a0034536ecebdae774892c2dee41b0ef6ed2db8613b70e48a52658af4a4ef0",
+  "2dedf9f483723249c67d8f06291c9ce9d78a0d7e6c41ab93484806e2fdd50feb",
+  "f6101b36babe74fda5b25a1b68f98f0bfcc50071c5ec77b30ed3e4cd42e91d7d",
+  "a2b1cc52c7d4865989bf581f72ee0a13718f11c9866b0ad634619d00288ffdc7",
+  "e8a22e3811ce58b486a797ee0c5ccb841b1620f4ab4c92fdfb7906778deaa2d4",
+  "9e7d02ac92b307e8e913819afa1ad6d5f246a6f9cd262e75328129f5b377cfef",
+  "5550bd26596879febb33d9ede51efb3d406de0ea72cea5a73ca6bad3acb82c19",
+  "a963cd1281bcc6eaa6a3708b6fd5ef4817649808468eecb37e4963af6e0bf17f",
+  "9a2836cfb61d76e0143b85749300516b72a3aebaf03a2b1ebd38e06a023a6f4e",
+  "7c72d9947280f5c974ff04857caecab06a943ad08083d00c9615a1ed2a6dfc3d",
+  "115c8aaa68043bc1205e20ae6772871cd3be871af1fba2f23f821cef565e5c44",
+  "fdb39208befae935f52f0a407dc2d404134b9505c03445b5ec78c136f67e0be4",
+  "fdcf7256d1b110bb9362a05035a343046919e0f722d29d641241eb1bffd57a2d",
+  "fcc4db1f9fb8db6e6c7d1805207fe948ebec80600d19c370ef832becbcf620b8",
+  "4d2a03bbb9cbce6b9c912dd335929375346f98f6e29d58922c8f4b575ac14b1b",
+  "1b361deacda4f13b475180d430d29d7ff7bd6a14946f345d8003aaef1daaef4f",
+  "e1e593eece82956989cf5cb1b7f17f35cfad2aeadc3bc2025762a32851feea68",
+  "e0ae1cf3d5da8a64db80f5db190aa68bcbb2eef64aae76a358d84aafe4c96d67",
+  "ebc8b5c15a3cdce7bbbc24cd71cd89d786b73e5a4d3698b0ec041baeb893f1de",
+  "6d0c8806b8b98ab4f5dfebc907b00cb7deee6e150ca070310590d1ee4af09ebe",
+  "a8b8cc3f9a8a1a95c2d274457d7bd380fbd87af847b92d495db5ccccbbceff57",
+  "bd0deeb31191b969bdf988c56c63324a8e5df51cca62bb9c672b34bb045042b9",
+  "ae6e6a28e1cb9a01a2e27fbefef8be352027663c8ebee4050c217888e9116b95",
+  "bc13fbadcb9bbb5681e5a0fec473d91d5febe6e5022ea3b3bb22e771e272c812",
+  "2e6fdb65ba21cd6e815a52067a846d4ea794f399401d66e23d38f00767d7c322",
+  "53c90416bc34853ef6786874bba70022d2ff26d0a5b4db38875ee0ebbfa442d8",
+  "65b5397e627fa154e0cc0fffefa5cd58a85fb95e02b20b4b1c20c54d1619e1f1",
+  "b309c69df48c6ae089f454f7d1a52ca8b7232aa99d15a983404bd44a4aa58b82",
+  "d319d43f26e48f47bd76da35e750abf0661658442b54ddccb6cd7eb0ce9dde95",
+  "48fbca32ec758a3b09ebd2a19e6d91ae56abbd7ab08d7b9998e0524c0ee2fa3b",
+  "f4aeeb2e4818eb5f2e1600fc688d2e47275724b2fdb75a365acbcb81f6e7949d",
+  "d45b2b05b6fc10c8bdd035cc3de1a0991f74336361a2d2bd75525fbc38d5a264",
+  "91a04615c0f5fd363ff54d06fe8b366e6df1ab7d949a7fc13ba8ae49fcd2e397",
+  "ddd593e46478b3bd78b24e250f6116058a0bf14880bde4df9e170bc1590855eb",
+  "64ca02c7f7cab87969921880562aafdb444184a92df741704d00d0368e655e70",
+  "67006ba52228a00bb5af87f47b56e3dd6921fff684bf6cbfe8979eed86abaaea",
+  "cb66b8cbb3c16830d6fb7d448db043bbfaec6237810a551a033f42ad446b988a",
+  "fc8f6c4fafc93026ab11fa3a13caac5a283f6e47aa3ab549fac4300c2148725b",
+  "47ea29b8a68353403712f6e8ea87e004098bf5f232fc77bd4da9797800a04815",
+  "57150b81d430b95c8afdb7b4bf88972eb4c7721d4985dcd46d901d489f6f2931",
+  "5779a1e811c58f07a34deff827896be458de30b77c9eecf015d1bc05bc71c252",
+  "16ce526870ca6e57bdb0f73535a14f9bf3c80d2123a3daf48f70b443328e19aa",
+  "5e4bf5eb20b95668c3cfd7a2a21297b1fb2d39ef5229207fedf2cdb029400a7b",
+  "1a8f929c1ca86c87291597553f6a63d360fcf8399d8e92d4bd25fac41aea164b",
+  "a16ae36afb36d5fe9868f1865757761b62246907ae544dbb3a9fc67ac19c7261",
+  "afef2ffa5183b5172f77b87aaa90a9d45636607fdc8f6b94773385b5458adad7",
+  "3643243ee91773d3f825f378d38a60e1c03f2ec3ef3d90a95a40487e2cf017ec",
+  "41a5f003e837b7f8ab91332f6c23835edfe0a4d1a5b3bce04ab20de79cbad530",
+  "f1f3f46e5ba0da0b5b089b0afb8f4535f47a929ac0e7514d93db5ebc331ff4c3",
+  "dd119654375e0c1bf2050a255dcef0124a5210ad907eaf8e77bad80d6c15f0cc",
+  "232872a83cceb3834f3457c1e0fee2f1e67dbea0b1fcd24f8b2009b6332127dd",
+  "ad32c74cc38d21f216bd925d32437f06e4199b57607c085a857d34bd1709e8cf",
+  "7f7be347a8bcb0f290c943929d7d91bdde41f6e1f3c1070eeaf2c0feca3359b6",
+  "dcce9726c037f8970712a0adadaa4c114600c233a9c4b73ce9e195243635a03b",
+  "e78662875575bf44947230bbd7a8657e955f223c080706a1d69ae70792002aa4",
+  "eafccb71ad4b0d71d4fe4f127eee5a2472c65bae8c3364390cd8e46bd60105d1",
+  "20aa2506eb9bb85f43fb1240458436abb60c1d72945cd865297bee4dae8107f8",
+  "ee22437da7b3bf96a1cd27feae60bb7d5f21de3deec7570cde3a7a4dfe7bdfdf",
+  "9ad1b2f30b1390f8f8d10365d6ddf13ef4aacab3512067875c70544cc193a7a6",
+  "bb1aaa898a52d62f930bf0884aee0bcda2e20e12c9dae28c5e92e2386c646573",
+  "91e280d93056ff87b6c07efe5391b44c30c02224f6eeb1272bc2dc11374de9fc",
+  "7fd0e51db2c14941b6475ed8a4dc036ff1b4690bdc6c01b13174628b4dccff3c",
+  "81d925a82990e1054be3a4e05b1790ed4d3a4021b28ebae6ba3a88dba2f8ac7b",
+  "58371edd3b6c6025b9fb0003d3178ee27fe39dfcc45146d36c6549db86708fa1",
+  "efcd20d2f5b6a4952edce7c81fbdf958de266ddc26a43eebb2bd65ff5af47414",
+  "1316d856cb302a2a0ae9aa77aee392c1d6b23f04413e8f6c7a24f6670220b51a",
+  "cf867d402dfec96fb639fc6c6b2c063c2354d1c14ed4469b22a30d0a2a541167",
+  "d197391eea2b138151ad322248042441e1cc5dda2130bf0b8c0a509fec652bf2",
+  "7a96f5a1f5b2efb5625747fd779b70b2e697a47507da7a666f3c6e261f93f6ce",
+  "8b42aa7a96e5533f09d639dc2844d3c5075acdc0f811262dc75464efe854a452",
+  "131e6c2ff2624d12e2d51da7f3acbb821dc6e2c4900208ac6aae090d1ae6cc93",
+  "7af5cff406ddd444f67fffee65693df0c339eb741f279b8f404d8404cb140962",
+  "6f9285aec3841b1af0e5e65180663f55b5df6dbb82f95933735345c21bee42ca",
+  "416dc4524f6c9951a6ed15f8ddc353f6c62cd74c486676b76ae0dec664a11ca2",
+  "8e567e44cf38f908769ec674f13d68eef17dc63ea02534035d5bc37a56d7e1b0",
+  "d558d336a6be373502a950c011f95611503dbdca56c40cf46b49ae56ac8ec5e4",
+  "379f9289639b406111761f752b51caad2bf74e36acbcd7af0f64907f10015206",
+  "8ee150d66315a2980c9cf76b6d3e9d20e21c0232b3c641b65645e0fc6c393042",
+  "90ae07ab7bde2c25f9dfd9faeab980f310db44f82c71359b8cd5401c9e631b5b",
+  "2cec7644b1ba5596499e6d80d3fececb256ded8b176fd7439fb2709bfeba3d9c",
+  "6497dc62001f10f8dbcd7f2edbf26ac9f14cbd2200bcbde693fb5cccf7418418",
+  "c83e8eb7bef16e45c7e83ff6184cb8315b48a3f0276259d080d2c80271e82e04",
+  "63048f94836172ea66239835dd1acc3a1207ab0aa3c0adb3581b048c4535b590",
+  "d0b6d0dd60397a832f5f532920e013aaee79a33d13abdb34da37762f1ff95e60",
+  "b7edcb9916db6dc329d74f0eef3ba0019909d0b6f03c5f7f23858abea8c42a88",
+  "481e1604d2e5dfcf0d9943ae21d6efab804755197bff9f24eee982b0f9089288",
+  "ccaa15c0412931193d24f878eacd9ef45195df8b25f62cc52e7e02a4aae6afd8",
+  "cf7b4570ac320b344f4f70f31f530c2312db5b7241651d361a91f7986db3922a",
+  "c984af0670b5f6ea2de234491495a6037d6294498d3af9acb94fce77a2a41e93",
+  "abcd660b88d14c1c1601492321379521c1e4274d661113338c8a5b98d6c12d98",
+  "befb83a64bb6a06543ea82c72f99b2875092debfa91a2e247f9580f8d5663c98",
+  "5f1b73d5b3d7592b2d0ea7be0181ae20d09d6051782c35c8537a597818b5a830",
+  "54a827f316d8ec2285e68cf3ced983f928fd96683d4f952e673c99f7058b926f",
+  "0366e11674609c76ac98ef283275808cbb4d5e72de3a5444c2b8881a2a3cd689",
+  "203c733dd8c6e64559b567eca78dcd14967a9cd8676d169cb858cfbf8aa819e1",
+  "0f796ba5285867fb7b6a87ff3d8dbdfbc434d109c22c62e80a39df767d2afc2c",
+  "f6c2656068a8c9565e1d9b091f25f534f8cdfb749a0220d7ec65d442e4ee884d",
+  "58dabe76ff82e4419fec4ef2126c9dcd4726a91c3b525f98c9b2c32aab6e55c5",
+  "20d3cc31efc0c5c62aee0ea714184720590a4a374d89819b6c1902f1b18f5e9f",
+  "f0f1db70d3a8d51083490b684bcc0f49adb27898b8f58698a2b22545b183d689",
+  "c6826048052fcb7c3d0e1d8dd5886e0e06715a5c6861fe23fcc9a3c8c1391d9a",
+  "b3a239f532e332a6f99d654a0a9d84cf9299b07cc568d564062711b0c8435798",
+  "65e2ed426228b581bc7931e318e802f311ef41b7ccc3de67e96300b5cd1c587e",
+  "890fe87843f7f3428c26e8dd48df0727c064ddcd94cab3e29c2b9fe1175b3287",
+  "237a0b1f513ef795948217f0b0a291591d53f3931aa81a4d25a1d75943c0600d",
+  "05b1f7ca3e6f495d6e2df58bd88a8976b885d8565edccc7a039a5dd8e858e99c",
+  "ad0b4bfd750bc807b1c124f0df4e4cdd9429f402388f1d3058e56050e09b36f6",
+  "93802f4756f3d767f85b4aacbf00690b28214178f7b83baa12d28fd82932072d",
+  "ed1f3193808e7d38d9bcae268e280617d04ee77eb56141535e6f1cba5ac16a29",
+  "eb724a6d2f62be30c6e2e14a8e158783fc7a1765e7102eebf2139a049b90f2d7",
+  "a5b1f41e6df13e1760e4258aac79d5c09c88234c287a5fbfad77b32085899919",
+  "3f32c35cd63c7bcc57a43217aab969a45f773a75d7616e3271ab1487efab5625",
+  "366514679aa9245517934ccae87870a6c0b4252c77fa4611d2a5dff381df1b73",
+  "d8430a25e86804ad1e6f88fd687d5fe8b64b33f92fe33434582ee23f2eb03a46",
+  "571e1a2f396036766995173d66542bfc4a00457fda30c08afd23583a8342468d",
+  "ebd0e52a0f256623d96b2fc86c59c482cd27bb21f7b33126ff6454ba6873cbb8",
+  "5008abead8579226ce62928e2734c5f3eb5e958d7a3a9558cfbbd509b453e50a",
+  "a46ff45937e5f0c485c88631147283987321c85d4a447015bdb4c7921a6e927b",
+  "15484287e0d6f540c3d4171da746ba7bb28d82836d6d8560d96f2982cfcc0edf",
+  "6c8b7f7e40a17eb87f1874b7c50225d8544a01cc2cf0ed8c30c3dcf2ca6ff3ef",
+  "6eca4cbfaa66ea24b2d93accdffc1d9524604668ed33949963875c5a4a59c46d",
+  "75798ff9253562ecba3e7e42a43c6fd74a3c4330ea178daafa0532305e8356f1",
+  "0579d849eaddac0ec5197c279defee32b7209bf4f20014ff1874d746afb4e883",
+  "aa5f91ca91dcda75d7167e1585e0211eb3b78e6be0cf50209ab6747b4a24c053",
+  "ebe5cc3ca3168c45ee25061537f9240ee6b07450854596ca0fd9c55ca13406ed",
+  "e6df480d88d5ff17b9857c19236db2406c155a8c98b6b574791dc5cb8dd5a210",
+  "3a796f23055aefb2babc17db50676d4b0a9f2ffe7d2f9f3c59b30b86ebbdf23d",
+  "f5836cf89c9343d70eacd5538c1c341a1028d399c5c8cc1d327d2f29f4866c18",
+  "3ff412a93cadc50218058e18747daa639f8e54555dcb433acb5f0302403864a1",
+  "3c93f300046831f9e71cbfd6087c8f26a64fc13f9e93ab1c799636da82cab6bf",
+  "93c51690d4c0c9c43319727c714aba6ac28f0513369b28920b349bc53ad3343e",
+  "3b7674c2580ce76d1309f9b2688ab50a07edf1c6c681a859efc3fd9b475615af",
+  "3354655f697137101786ad7e29fd84683ddca5aea027a2b8dcaa2984f9efa2f5",
+  "9463680ddc0ca0d1f5a8184be4516fb7e590f94c9ae106be7ab14a8176a21017",
+  "021e5db87973b95075fe572f04c279ce2f71d97418204cb80548bad41d0af60d",
+  "6b5402d5c8bb94a5f9f27ca17dd93be940ceb0c952faf67687a2384d215e0d1b",
+  "ca8d7c3f6a9dc7cbb97810b65b6c7855c9ff8119d033f6b19eeda1dc02a95e10",
+  "237dc0c310db83b58eec2debfa66da64279a951e3773fa7b35b5599f8639f929",
+  "3daf4bc05ad5af29fac24c41af87a15781f05eb726e938fad3aeeb69ac1be717",
+  "407a0bf295f3bfcf6bd6e19e726f83d24ca36d3d5b4b65c40ce0f9cb0bdec3d7",
+  "080e4dbf91ee5acd99fac998d77d2376ce7247a9f4813ce65bd381dbc0545427",
+  "44b4ff3742eb0257374e8483ec971f759dcc2da7ef6d0cde3286c7435c0cb2cf",
+  "882977a9d921bf2bf85025a1edac96a1ae00a72c3e802861f26ed32f9f35716d",
+  "860ebb95a2e5cc9c84b56d268a2c9728f2b9fb3be22e53bb4bfe514628afa349",
+  "3fb3a1fcca25c5e77a71772e522490b103b26842a777f619b94ff2eef3a2eccf",
+  "d317a360e5d99e54db70ce595766ca96e8becfb72f9561ca947217326a12eb25",
+  "e377f8aff6282a9267e3d7e45c806cc0c6fc3b4d3d76e223bd491fb26216fb44",
+  "737713e56fe50b17f2dd767d55d6ff2cee08ea2732f1df61cda96ba9781871e7",
+  "f6354a862930394bab05a1e7d1f2932f96d95a5d12acabd36e0dfc4ea45d4bff",
+  "d4aa41c8434e57b47edf32f6cf6ed1bed6c383e898df44d84558837a0178af8b",
+  "175c85a85fd70e5ae0b9befb736cac33a9a2066b4a89792922f9c8df1b5dc58d",
+  "11417eda347fc40c678121bf0067eb4677a84f442fac0f3ada2412a69794c521",
+  "a1145a1c82cf00552ca1044978e28cd8f7e8b0e32cf15b0576a156baaeff2269",
+  "b769a9e4a3b0c80bba876e96ac0eeb9194cb23669cfe964d087f33f4366d4bdd",
+  "fec605b53fddf0ef02744362dcc2f463a2b64584a19dd487283a3a92c2177a15",
+  "721907f828f383c11bb6d956d64db4a8eaad21ac20d2c31fc52f08d756be446b",
+  "32782c3303c9497c7e5d96f483d3405d9f4421f899847fa11037d8fc35dd8cff",
+  "99946eac6d721d1b7598e1885eb0a089df1aa5e23b4b4224ebb8706a840f4984",
+  "acfcad902f8930d3ae665159d929113788a6ea7a74d94f904aae3a4cae341b1e",
+  "5407f672c42a12647eaa40f68782a86df8b53cb4e085f2a9be284edf3162eb16",
+  "de1009712430ec685b3d066f613f1e5220dd0b1eb54eb7d8158011311f4f48df",
+  "8338507f71c2c87975460cb1fbbd22c492e33d287f473ed1c93610b296dcb46d",
+  "a6d6445eb3c5a1df3429ed867fbf063c68253f5d2ed45f51b90f557bf0829bc1",
+  "117bd4fa0ce4364edf02323d529462b874424c89f4aa5493126c981ce4da505a",
+  "8fe10db7d6af90269862ca26bbcaff53e6be23f41fe8a264ab93627f20e441f5",
+  "b4a8f5d1714a64a98f6dff9caf1410d0a0f9787346e9571695a9d515a4867b90",
+  "5e4b59c2af72b86a2f9c01abedbcbe2a4a1b07977607e3c187250abf7724f315",
+  "90c2e73427e6f95dbc70b01a0775526b4f24a2fea197e3525e92be2b3579efc9",
+  "fcd037d0943e92b071bd99c0ac093b5630a322807120db7e5c431e51e98d683d",
+  "3a012663ec9a810fb889cc987959851a24b8101cb04f9160ff8a907959bbd89f",
+  "9bc5b88edc00db6f9112146457721a131720831b0e52248ec3af10a6622a87a4",
+  "f237afadf0a1a14443bcc64342b44bc4da190d96931e06e00923bef26c5eea7a",
+  "b8cc768e2cc84085d1d76ad4c817f5dc73cfcd8cb19f06dd58af8e740abe7685",
+  "de689a9710357a02100f73426a45750cbfb8a693faf88eeb7bad833a4b38018c",
+  "be46dd77469c14de7fc95a3415b3ab8f985eabe2c4075886fc0afb7a4c37bb1f",
+  "e1c45901ececb6d364f8ef359e965182519720439ab244e99052b578676d355a",
+  "eda7e06f09414f007b832d1d7acbf8b24724da63d1534c57f44fd64c34d5bbbf",
+  "aed76b12dea0af678de09cbc4d42b10215ba20904d891d117c98df85ba5aa65a",
+  "4ff50706263a21bb0bdab1917b60da3301e12fc88d7b1a6aaec529f34e6518a8",
+  "cea73d737b507818829539c021ef99b73533f747a7cb8b8d6ace43a0258f0bae",
+  "616b951f246ba44f7e950f10bb175b046763e3ee8926e95e8618dfdbc7d63dcd",
+  "f606ac7b059ba616ec1e952227f31cf0a83dcb66613c012cdea2a3776961f0ef",
+  "f17d398eb6c6f0f1e224c6afa9dcddbf2094d3bbd281d3a56218c016538a5814",
+  "d398712051b7e7b8500ecbd030d2c6a0012b8eaeeabbcc0d6f1e03f4acf709b3",
+  "35ad64b490c65406a2a230b2295acf9efef9ab4ecc0de1572e8d45a61a5ce22f",
+  "bde30f4e8aa3ebb0e8f75158be727463e25d2b3f02db5cf3342581ce7279c118",
+  "f905291b77c9d4e4d332139785a1ed38a93fe2a9c1bb96078b10def48cabc1fd",
+  "bb8b0d496b610c2d51967d12821cf86d796b7cd7ad2cbd5c0f165b232f281464",
+  "d1e54c9f3d7d77df2f0382e1f87b3274dfcf15120d4b696d047c26db37320467",
+  "e48f0b0d2577542ad3465bf6c063435390470388a27d938b113c74cf1d962c86",
+  "88bd048aa545c0a39ffc3742add69df631c6a20203d59b0c0dbaa9a7b64d99c3",
+  "4f2971a0b18808649f978cc94de8b8f70fa5cf3ec0bad1a92499b68660c1fd2f",
+  "bb1bccf29a16ec541802bd2e9cf0a243865ac525e80df6b9f657c8153549030a",
+  "809bb26aee29f93ab4484694506fae71d307ac45239a431f3f51285aba0dbd3a",
+  "bc94884508cdcb24995a2bdb0175709d7cd360945659ab02997489a179650b9b",
+  "fdae0231c4a1fc14b21ba2f1c27548d4c259544e80b94696da838ad6186b2ea2",
+  "865cb6c884bf48ce4ae2089701e542374750e0b8ed234d18f0fcb4e1a8f8417f",
+  "9f4ba15b559b66c1023163a2cbbc0cf936c35a51b8f04f3625445ca0569ef9e4",
+  "453adf7b1b6a9c7ae5b5925f03b344a1e9b1993c9e26e6a9dafe2dcb34c80f3e",
+  "33f8367b7499ad7792e8e812caa0b08f2c564a2312e245d3aa426cbfa50da001",
+  "48b9842203be210e49984256edbe6c78422fe6e729c871e195f7c03bd655809a",
+  "d1840f16e5bc6e7e20eff239faa70d448396d5a7fa8ed70da83ba36c4804d590",
+  "d4d2c2343bfc0d67e138d03585d288829e2828bd62445f2d267ccac61719c645",
+  "7b74044249093231cccb78b7a4cc8dd33f2297bdd3da373651ccedc453fce6d9",
+  "5431c093dd91a10f4995dadd46dd193b0fc82197106028c6d6f25b23af5e6940",
+  "a6fcae9de27cbc2c2afbf517a09b240375d37712d0a0de733d553fe23ee72357",
+  "a4cb89a4cbc39683112759ac26c2dc3cdcfd528d060d8873817e45488eec6c97",
+  "89393dc9a345ea4dd7abe3e2d2eaa99cef622b37581649b70e4523ce8229d13c",
+  "1b2a0baf5b389bfed5be0546152b2c0d802e0f1f22634f5f681ad34d499f535a",
+  "dc6f67dbcd5bbc132c6a4b47f1f2796e505e05509cbf5753949bb488e3f99c01",
+  "64252e144a2e4b0597ce0b2a7f7f629a0045b0584facc8d414d0b85465dc4ed9",
+  "4ce4ffe4585e9d3fe906b66807ef3c4bb06c8a04e8e17dde16e40f873ab8a219",
+  "d00af2de8a83ab23520d8e2cc563352b93c9290952a14a5f9d5e5ff62481daf3",
+  "6ab33d45513b7013624e01e15f616a3436caa8813c863a13eb85e06a973f9520",
+  "45583e5eae28e10f5f72ff419a3af1896028f5081980cb1f965ea9ad2cd84ba6",
+  "4b265c9f76496407bdd1bd16b7f6ea3e97f3346e63d5e05f9896b1821e3dbe38",
+  "462a813402aed601bb37e2790a5ed2c7019133d36b3b10d3286ea01437df4bf6",
+  "2a8849e3e27e05c8572140297d86473e720d62e6c7ef1766e4aff8313c688b6b",
+  "bb9e553c553381d0533333c7b830615d6d5c148d617f7eb488f12a5fc28db091",
+  "91667b20ccfc055f0d7917eff1c713f3712d948055a3139e6d758a308322503f",
+  "651eb2292d163c9462d9e748f3853057de4c536325fd0bd7b82e677ecd113c05",
+  "4f28977329a2153bd6a8c1d47e8877a4abfcef83cdff4daa74845384d8bdcac0",
+  "15cb7f2be4859c4234a46fb8a9e142a529d5bdb93bd6ec1ae5cb19b01b507d54",
+  "50bddc4bfa7cdc185d3b2528559936510bfe814ae162eaddf609992f6796654a",
+  "c30f9dea01461ec16cd74f749209d5d40e3f9ab10abb1e69b4ae0d4635095baa",
+  "59a66323292142ca499c44cb95bc308c10d44aa534066efb413fbd7e622fb2a2",
+  "d947618edf68ef10d372c867c6cdbf1935948bb222b85b7e3e1b9b048775ab58",
+  "366b20439156728d7753c598106508878bbf4467d9c7812ea686683580365a50",
+  "e268e840b3f5af78661a3d5a3fbcf6eeadb50e059f226a906c94df839f1b3281",
+  "12a608f8188541bd9076e9055e03f3dea310bf993e1380df8dcfaf8c4ad00e07",
+  "6c95c367f94913388cd1419c15f0fb948d7dd255114d8bb078a055b668419217",
+  "f2ffa791060273fa3bdf46fc7ee7af85a4345e08c53b3f0a6d6def54a00f815d",
+  "33e9457a884380697735888d43ad3c1e5d3117f7a416ef4bc0efbf68f4c645dd",
+  "37c42239bded5c0489c1cb0bbf793150d914760d8c07c9cf31fab19d6a123c98",
+  "427605641ce60e39a058642bf48f2bf780d2fe348647442ceb44fb1548460aaa",
+  "a12f07c1217f06abd9535677358a8a1cfd8b648caa005f1083704ce3f8b59b41",
+  "ea8c399cdd6478215c55d1893dbe7a5da51f142a49d712fb0e2b237133bc8355",
+  "cb02e3bf567c51e7d0703d633d2be0ff613152d76412f55be2f0d07743a2c8cb",
+  "a39e68134fc8bdc0370bafd8f30a3415b920dd346043601d95cd519ba4cf8ffd",
+  "01a2bb324feedff52ed4c1275b6a404f4fb37b8edda7066336ab2c059b4f8e82",
+  "78d763ad991b53af60ba495c6b31e99e6cbfe949ed045f37cdd33cf356eb6b60",
+  "0ea67e93e3dc8362b35af1b4d1698aa0125bc8282e690e3e5e9c9bfa18012063",
+  "81561bc32546fd79cd01560c14214754146413d47043cb3ca57f5e606fbf97ef",
+  "be9a756db4457db34a6430c729fbc754c9d026c3c68ea3ea555839f6e4b3cf63",
+  "c53caa3aadd9b1c0123fb45c1d6dc7db0b8f44fd30620fae8f3817fb6433994c",
+  "be602a38ee80b9aaa37e751a32f5242852598bc1879bcb66d784e17f91f4dc12",
+  "6d7272c6b9c3c460077c43771c246e2679dcdfe171955207be50793f17c65364",
+  "b15974c5ef8df9fcfb878cfe34abb6abe952edcb924cb4c3ef75f1140a79ca08",
+  "ae54bbd8359a6abc441c73a8cc6ac43a436fbd1c24f693c8c0ffe01f99604729",
+  "4c75a2aabcaa8b58fd8440047e81f82d0f07a682c304b18fab7b9f176c6140f7",
+  "8605f8b84bfc181d6db6cc835f1504d7b6e4a266b5db83253798188019f92f20",
+  "2f396f59cf8770deef599ad14e40880ec073744e59cba04a8c083931b4ce8971",
+  "ea1a04147666d59a6fcc34d100d7c4c415ee46f7677fd8abc36d082064693e10",
+  "87a66038e3b1788757ee7c79a1621beafd2a5164b1156e824c314f3699268f9f",
+  "662578a71a663880fca9bd80dea03dbd01d2a7e0e8a75cde1fec1f9db810d9a8",
+  "c78351f9000801242357aec46f9b66504175cbdce4518043f585ed00fad1ab91",
+  "5e157bed795e96c73ae9151485508de345b8db1b24a328f251eb755a5f3f6251",
+  "b0a3f0eb756f7753f3f151bd2275a5e3ab2f76639ba42bb3ef12fbcbc7a61830",
+  "e0ef1e7808c06a1424e94db12fb887259fd3498c55a24cd0501525876e18a1c6",
+  "c5634df3121a2bc17793c2907e9627add882a914dedfef3ca0e4c0270a8762de",
+  "c79b244dc04b2a0aac724550eb61d16170cd74695ad0dd540ebcf9363c013b49",
+  "0000000000000000000000000000000000000000000000000000000000000000",
+  "19d3d919475deed4696b5d13018151d1af88b2bd3bcff048b45031c1f36d1858",
+};
+static size_t nb_edDSA_pk_vectors=514;
+static const char *ed_25519_vectors[]={
+  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
+  "53bbbdb18a3aba5405f4d61f2535bfd9f4b448280f975f7f31968025ddeff96f",
+  "48b3753cff3a6d990163e6b60da1e4",
+  "d93840e33df2ce857f04775fb20f606fdb00089015ffdf2e49cf03093e8cbf8a918b29ba655f8b57b2b96bdb0ebcd7416cd3a8b24bb17e04c47ce816324b4100",
+  "d19cfb8cb3940aba546f0be57895e2cc869fe55aab069c5abcf9e7ba6444a846",
+  "c9ead10ab1223df9b779f6dc3cc36917364cbfe5f31c89646118dbc966bb9b88",
+  "e5d73f1c8c5376c1220ff3d9d53eeb65",
+  "759cc7149337861e1f6ef7d2fa1dd655544accae1e94b3b5c697d31120920c13c582fa926bf9b425d641e80d3171a3f54092882f43b31a0914475f5146b36007",
+  "50831c8cb43cd6822bf3f6fae0801cb6c843d8066b07346635365fb7d6ee54e5",
+  "38bfc0b57ba86490aa2f41a3209e360ea4df055f22c07c7f54326d36780f42f6",
+  "c9cd6f05d76b2bd4caec8d80b58235cb42",
+  "428bda84b67e78d45c5531e194d1caee74b6242417c0237d34132546f7c0e70d8af611ef57248e0437241f5c3592063b5d13b94b78fadc39cf9a703a6920660a",
+};
+static size_t nb_ed_25519_vectors=12;
+static const char *ed_25519_pk_vectors[]={
+  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
+  "53bbbdb18a3aba5405f4d61f2535bfd9f4b448280f975f7f31968025ddeff96f",
+  "48b3753cff3a6d990163e6b60da1e4e5d6a2df78c16c96a52d4fb01ea4ecf70e",
+  "f22a7c011642569003249f49f26d49b6a94dfa6f055b06af1b4e9c6268caf1e5",
+  "81ac001b08d6577bd91ce991c4c45c46bc84d5465fc9139bf17042ae7313181f",
+  "7d24b5f007663dbfe9478d9ee5fdfbfd8ddef5a3708f117550188bcf77d1c742",
+  "7afb217bd1eceeac1e133aaa9edb441fa88ea3ae0eaa06cb9911b6d218570f92",
+  "38b60e878df393f9accc3c4c194150189e1287fc1a62b71baab0f292711ec4d6",
+  "4a70a7e992b43e0b18578e892e954c40a51abdb5a85d300c32f391c45d6ef4db",
+  "b495151163701e190698d910e1282eaef7ad04289b8a7815f5a7a7e7e8090b9c",
+  "043ddcf4214f24ea6ef6b181071f299aa254a4606ab6a058e0c6fb5598218db7",
+  "5a13a71c1d0224c83cb14724f432c8bd788b2335cd85999283d42853f79c5669",
+  "1deb473f7d04c152e7e857736715dc7b788aca39a3c96a878019e8999c815c57",
+  "ab2532c740aa51d40bf30a95aa5bdc8885dbcc93bdc8ed80617573a31cd607b2",
+  "23dbfbde05e6c71f118afc0dedb5b9f8dea398b2d764bca68dfc023a9821939d",
+  "1ec414c4df4ffbee641cb4da5c0de9c24c20b36efc08079509feb6454589e0e4",
+  "389e38a072cf1b413bb1517c3fe83abebb1cdf3a218abb1b0c01da64c24f59ee",
+  "8363fc3b0d1c341b880f6baa5110c82378e422b2742a5d53877c9fb706fa8ffc",
+  "d19cfb8cb3940aba546f0be57895e2cc869fe55aab069c5abcf9e7ba6444a846",
+  "c9ead10ab1223df9b779f6dc3cc36917364cbfe5f31c89646118dbc966bb9b88",
+  "e5d73f1c8c5376c1220ff3d9d53eeb65cc53599f40d6c8348c353b0017265523",
+  "d079b9a0a79b3b64ddd02ff1693edd4d491a237ee319e8db925474719662fce5",
+  "6cddcd1879ca1f04b35f91adab70b81f504035fc169964a5ae985e6c11b0b7bb",
+  "a839f6c37308da70def6c077fccf2b987466ffc04bb32be39f879f243fda7948",
+  "18a51fd77fbffd722aa220efdd8947ca5a5c7fb1c2ebdb9ad1f603801ff22e80",
+  "fe34db456927658d8b3112ecaf76af99c5e4e23663bf289d1e81ff8745c308e0",
+  "314f716af9c22022fa159dbb4b4d3153f999b20ab4769eb1d01c057c5295ed04",
+  "53f87b8775ec6b6aa4920e98be462915f4885a8a111976e19acc9bd7043fe1c7",
+  "2b4536561dce32478b113adb5b605cac75bcfcacb5e3e811b78e72e398fdd118",
+  "5713919e0f20801e76e6b1b0b9f9831f44e3b7950a7c43a15a8ee3f23c2dff1d",
+  "bf04c6a7ed0756a3533e3dca02109e1830b739210bd8bffe6a8a542980bd73e9",
+  "5753ca1546b5fe4cc3ee4f4c1e581a5b68cbb5f21450446d7ef9c7cded809473",
+  "ca43cdd4eb7173476862df6d2458d6c74739a0ad2169b9c89edd74e16fbcecc7",
+  "d2487356626048ef9d7dc0ff5cc4ed5dcdb7c99253a7f4914a7e921196513efb",
+  "48c25dc338041fc34af0f1bda20eaf3fff7b372aa801eb98a1298bc610280737",
+  "a7cc16503e8074db177fedad9fc1840e62a34dd1a1f4e23bcb771f2fc3400bcc",
+  "50831c8cb43cd6822bf3f6fae0801cb6c843d8066b07346635365fb7d6ee54e5",
+  "38bfc0b57ba86490aa2f41a3209e360ea4df055f22c07c7f54326d36780f42f6",
+  "c9cd6f05d76b2bd4caec8d80b58235cb4268543ab0eb865a948cc5b5f6e31f05",
+  "ae40d161b76411b671e7dd0eab81ad5b55aa5cae2ebf456bb7c344f3d06c3dda",
+  "f8146bd9495acc459d6d200005ee72c3bc3e4ae3badfd79adfe46b2ae1045f78",
+  "a5b84fce49a9d76e34b2bc14deda21edad09434402b408a62a1d5d1c860633ad",
+  "382e04c969df1a2d6a963a79c58401770a383248b5d70bb4adedcbe520fed634",
+  "726d80243c7acac1a61b54f3a6137dd3eed070138e26b0f33648a5e17570095f",
+  "f513b8c2ea6ab37fe633ba7302a5db6c2aa209e24478fa1bd6f6ffabe98555e0",
+  "23c8e634139ff7b8288c11ae9539542b0ab13232ce299b5f89d2e4c3e3cb2a33",
+  "34342cbec07364c54d1e407e282ef08edbfdbde936c9d42df58ae15889f5c939",
+  "d150707a35ede0fb773627d7b1f014d0a025785bb091bfa0427119408456a03e",
+  "a3087eaeac1f2a58e2c2763d01b55744c4a65f4db93adff0078c63f090fb607a",
+  "2bcd89200a7d42545d1a409b2f6eb3dd69a3d4913ff2e8c11816f6b418313053",
+  "90c87defd622e5f55977877cec9ed88312b0411228540cd6dde6e84cd2da59b1",
+  "4942b3fb67b4595346ecd22e7e94fd3663b010ad83a7b1705b5ba9cfa8841edb",
+  "871db119e3298e3c12fe8200a47eddf049c971cd99f694e3b2a5e25fa37aedf0",
+  "3f1fd80ea23a4ddf52134b52e258842cd3215ad124294de134ed544a503dd205",
+  "1bf32e7c679a3187e22a635d301ce98ad000ca301049f2e891e403250c3358fc",
+  "4dcd55cf138098820e648b9379c5b641428255e182b1b2215517f807df4a1023",
+  "2030b227bb96e93b88f419afe9f9d660e013761228051ec5a8f0c093b33fc60e",
+  "adad2e6b275bcca461f386148ab85e0d148d0085a3843bbfe52f037ccfe867ec",
+  "2cd7a9c845434e95d4319d79d1bdaa8f73853fbd9958e9ffc23a0ecbb7b48dbb",
+  "7f868beb9995404be620bfa4a56ec2def275c7152cf07717e4f22abe9fd71ac1",
+  "a63672d582bb83d92249800324cbc9a6e5b37d36887e7c79093f58ef8f1a0015",
+  "543414ff6db2706808409bf0af07a617fb4435959faae2feba7dff28dab54f6b",
+  "85321bfee1714260dd6130cc768d20b14d3850f0eec0f8f349110e751c16cdb5",
+  "174e046b2ce712fd83cc3da697934057528ad6961762e4e2a19966923a8f16f7",
+  "ed05516df17479937d942c90eb1fb1813062bd3f3f6b7668cd8fd3afce0cc752",
+  "8542946cda8bc9a413172cbf99b08d88aee80f392c093ffbc8ef8c204a1520f3",
+  "9b87dfc58eceb951e1e53d9e94793329199c42d004bc0f0dab3adf0cd702e99e",
+  "dacf204dd841c9aaef6005b05449f14aa2199137459e328eaf5988df9f6f640f",
+  "fa5ef6e59d3b201680f8e2d5a4ef7f23f1b6a8e102670a3829a995ae23fbc3a5",
+  "502a0433336599a3c8684c6c9290e57ede64b5f6405a89ec9730b49f4e93d5fc",
+  "639e028cd2b5f71bb90c7a1e4a8a05017d26e3afc3a88541f6c3f45d71f8a3cc",
+  "1fcee968c4809fc291daa6c21f1334f99c38380ff164574364477286547191be",
+  "31a063ea4aad1b4d00db6f5228e9b9b1561a7f61812b8b79e6af4292580d02ea",
+  "106cde0881bd6aa434980eea804ddb633eb030106fa6d507ebfce5d505f220d2",
+  "4f6266d04244303304510272e383eaa51a8ea7099a74bafa3375b210653a0d2f",
+  "74b2159ca1ab18e3afcfc7a3f9c74e1478ed5d815a4314e981c615042dc2e058",
+  "40b15afd725cf5065066be1cb803dc158865ed8d7cca72dcf2b7c6b5d0d045bf",
+  "cebefc9758b1a8de3be61d86b221bc8e2e2a247e50a6cc241db9b32c9a6e4b1e",
+  "32b063d3da484ba1843e071b61c49ce7f30ba18a4f7ef2730ecd785494839966",
+  "35b5c7b9f849151f036280665df4325de4de93e9d36dc6a33391e7bcd37d81af",
+  "f593168e17311913753c59593fc66cb664c1572251132fc28bf37fd8e96f2327",
+  "99b3976f0df5ce9b7d4de45434bc221380f271c682869e4af0abdc2af96c939e",
+  "cf7948a1126fd37175a91f483d6b3ad92308df7e6daa8bf3efde75f80ad72a49",
+  "d565f00aad5317ff1364907b7807c611b827500b4093ebc3656aecc07f8cd69c",
+  "ae0794009e21ad33fa4141fe5fa79fed12f6a20f51614dc130f45598e92549b1",
+  "011175dfcc4f4260d91409c8edc67ed2b69a2c45d3a231dd083bf0d61e229d63",
+  "13ed6185724507e7fa5a7e8a75b2c7a3ad700919f36a46ea0ffa680857e30188",
+  "448526c6c2a52dcd2f59347bfcb0113ab491dfda432e217a12e01026f428566e",
+  "f8a03c7c4b6c11bc39aececec26687233682d31887277028e2fd286f2654c681",
+  "67fe691542be47199b53645582de66f0e1d4d0ca4f5462df61034e47fe1a50e6",
+  "efd9e7ed6b340874e897337d4dcc672811a6cf4b69086e0a57c266424dc1d10e",
+  "26a7391ea1bc76e531067fd79e9b1dd47af422c7ae2e733aee9727531670446c",
+  "cbaf0c822cce9e4f17b19e0ece39c180a4c756c03c19900280ff6cdebe5174d5",
+  "63a6869a9881781c292e5f6f5d7b622b95ceade42e7c53cfe1ff20b8acf016bd",
+  "07c6e0860c38c3537176c58965b74a56c52b3151bb8a149cf4f82158d57c823f",
+  "12d721ec17ea77d1ed22bc49d7d0c7fa651097eacc660fe7be505030e19538f1",
+  "3a90c6b427912226ff604d9abee1fb8c8d35530a0cd5808e53e308ac580f7318",
+  "0b7ed8d93835fbdb12a3ec4037dbd164673171c466824eb060d2310fc278a91d",
+  "fe2ab2a4933b5d90db718aa3440fbe9ba17f09716219bdffc93a189e410a6a3e",
+  "f1d360cc95624478f8c5d85b72e581ddeed2b14935753cb0d9b7f849f7620bee",
+  "6477fbb05c7c35956c3c0c5f342355fa0850307998642501c025e3873ebac3cc",
+  "2b6d39d077a6d04d09e37738be18d84025ed31c935e190e5076f1acfc62e0828",
+  "d749d8379ae6d830f785ec104897bd723d34ad20c9d36bfe371df46aebc6d459",
+  "0dfb9e4cf6f8d0b52ab69742214430916a17d7040f826c225a26a17ad1580e7a",
+  "5d490a770bee4dd0be6a5a0b5e95645c7dcbc03c27010df3320fe75b0a3ecc89",
+  "2ce9e9510bb3efea80e88b5399be7fcf1807604a083f9622b3ad08f8b7125d73",
+  "83ad94217e80348fd0f3f54e54b95bb548dc2225a264443732b41b861590358d",
+  "bfe0c4b2a09674034b3c04e12ed4120f6cc29e1e0e8e76ebc43ef604f1fa290a",
+  "543894006b73f3d70fc04b15d0c2a5dfa650be5044fb5061811b866be7f9d623",
+  "aa5d721d03219e455abe6e681c141105b41397bccf59255274a40d9181676369",
+  "fcb077ee19421610aeb263c57faef00662d424c07a7aa5005068b262251c0667",
+  "27505bb71582d479a8546923a523558455c03c28f70c425ab0edc60daae8222e",
+  "a4e2e4b12f5df7f509564517887e370b425fabab1ce9e733ab2911b42074414e",
+  "5beea8de2d45e2e7cff2886d2721a0efaefc9483d30d9a86d179b3b5799fa5e5",
+  "387d7247fa5055489bbd4b7d4de256de723566c1c2d3ecee8c10e7d98233dbef",
+  "936c12d019f6d994a9df8d9252fe404ab29a59ce5702bfa174e4bfcf90af0373",
+  "90494951ec91a843f6701f8216a7326b241fd57f32e09976de4054797b9aee82",
+  "f098b2d5730e8d12ee29e20c4b41bf2da358fdf40ae83f0e88d6712229f0526d",
+  "0e0de381d02852ac13f511918267b7037330e60ba1c5875a0275f8ccc75cbe98",
+  "b513400b1271e6030edb3eedf8b2159447bafd8b00905bf93c914987b5191c27",
+  "7c12457eb5614f87f1fdc40118906d02c602059d48ae05ae62d3d607d6bf63c6",
+  "e70fa251a0bd9a536335135a3b7011011a2c7a0166a22703423425d5597fb504",
+  "760b802483b0e3aaa9dd4f79c6c5e93e6b51da45018c6bde108f81f9abfa2364",
+  "b26750c3178ca222abf590286c51dab754318cc8c8845938ccc3a5b34b2b2514",
+  "0b83cfe3fed34bcf6640bf0baf647dafe9bc99acee972b5a152efa3e69e50f34",
+  "7400fb7aaf977543fd3a76aa0f3eb11ae5264798ae8dcf58ea8d92d3750a0926",
+  "3bc12887fec8e70db73b4b48dce564d83786aca4c6b7e224163ea928771fde37",
+  "069f524e22a6ed2261bcca50746c9c37ec4d42831f65ebc748665c2ad30c34f8",
+  "78c453b35d98deced812fc5685843565b73d097601d3558278bd9d7327de5fda",
+  "08a92bdee8d41fb3053181a1dee201928a2f86a536386251e833e2762b1d6859",
+  "a2b842050b370e837ef811a496169d5ff768878766c08c45561fdc2aad6469c1",
+  "2b79b8522ded9550fe802f2ddd02d2bd0c18e2ae23fe07a83ff354f8fe8c4c6e",
+  "1380c3d3f873c7233c541ea4c43824ecd8bf7e11ac8486208fb685218d46736e",
+  "0fb9513522cc648eea69d11f68171030cc7708d0781aedf60362ed16e0be642c",
+  "51103d1fae0e8e368f25480ee7328381c2f8b252a18a29c44dbfbb62cbe6c3df",
+  "0144ab99fbd7a2a498bad8472e04870af0e6238c93b4b018eddb63bb74e9b291",
+  "d4db55378734d8110b8f20f1d1ada6ddd4da48fb09c06580eb46bbc5ca62bfab",
+  "c0ea4c6a28f445a3c7cf047fc318fea4c0e76678cc409fe5bffef5a83278899c",
+  "40b184271b73b710d40cb63435042c9b526d1e5c3a77bfc516a2bcb4cc27ecae",
+  "28ab2e5021652da1d89d1155b42d29fd802ca0d65ddeca5caec9cb27c0ecb975",
+  "b3451318590c84e311dd1e876f527d81ec81df06c7e426b729aebb02be30c846",
+  "80d6095a39008ee9900dfbd92bcfed78331dcd23f260cf3323c09a7a9346cb5c",
+  "eb228490df4a0e6c688aaaa6bf05d14428335f2652926bfdfe32dfd789173ba8",
+  "2b3b6205aaf96190798c61e4237f7d4ef19534ffbc9cef24034df9e6dcd76819",
+  "60fa0114802ee333d7c49ccaad8108db470c882514716592e57aba26bb75049b",
+  "d05707c6e40b652ddd3b63fbab68c0c1826ccc73efa1544869d440cf2c745969",
+  "75db088bd1a89c6a67fb76b96c987478bfba2449a607f3cca1c911d3b7d9cb97",
+  "a62b65f3221f2f93f48e126b754a4be2265626638940dae5bc569acb1f0d518f",
+  "2bcd84b0246189c7820032e031949f1e97e8ad5eb5a75cc805900850969de48e",
+  "582c10273ebdd2888262a0ee39556ef673445a3038ca3f88eae7723316301d2d",
+  "74267873d65e0d67482d1c6f9a22450bff02814b8626a89534495c3bc3c8897a",
+  "70c3e5bae4cfcf02ab6112d8f9ea97041620f7137e7da185a3f8dd913419ac2b",
+  "096fbc2f9e50fda78ee3c8b0fb60231ae56bd39693b1d8b941a67930374e15f0",
+  "1d62e8fc4d4efbb9581b77b6aeaabcebabb0efbd5ee2a79613b3cdff683f6e2f",
+  "01ee35b10ac1efa06855ef67ece02508dd34fdceaaa36cb3077fe500b4456393",
+  "aa1208e9dee3d6c3d078f78321778cc39e4484e0e89bd7d73bddecb740577723",
+  "bcbba82e7c959bd047d2fe2e1044ad7540d3bf8f7c974fc17e106d9380da192d",
+  "0fe09b4229735d940d0e7610f0e93f7b664b877e2724434525921ae156ae381c",
+  "19f4e861b0517aed05a5e9b942a93a505a036478ae8c8c9b0108744f2e1c7714",
+  "02a515c053491a17088989634a491306225e3a93684498bc2c09abc577d9e1a4",
+  "8a52102e2903352b5ec66cbed7474a91d7ca3f49fdc859b3e1705e1e05b12478",
+  "d2b8d72acb9e01b6597a1b74b6f34c81a99a722c5714ca7f5c0f7d2e38b87131",
+  "9849fcae816135f8ff7c83156a36aebdd8b11b679e1325659890870da65bd4c7",
+  "e5813e3a057616cf2a279fab372424e1af47b0bee9a5493333fd4100e86062d3",
+  "90ceb7351cdf29dbda3e68c2d64c04c7da7340fd622e6be14bd10d4003b8cf7e",
+  "15f8000a15c3eaabc68b44b988840cca6f3cd3378fb15dc7a72411420bf3a1be",
+  "956bc847cfb0dea015d884f5761e9dfb9b2cfc2a8b40325a2aa92e5bd6515817",
+  "bf88302bd3e046b1ee74e0eb77a9d05a2a1d0ee7c3afc21d628f6ba4dc8ab1fa",
+  "db7d15af98806caa934e8d0afce8ebbd10dc6d1640c16e76852d1db3973e24f2",
+  "1d3fccf183db35d8fea5a4d75508debc70b53798efe5eef24b660505ca079022",
+  "291ebbffe52b6f25fdd62b431e541dcadd579abd5cd7be379c524dbe47232c47",
+  "cc386ed64c36ebb95cc207f52f61e0469060e06414cd9a50649aa541b553b190",
+  "eddcbd450394c5060827a9a731a0517dc6b255592332bce1fc9ae2f61bf3ce74",
+  "e9bad53743ef86fd7598b99e74314bfc8395e2bd0e6a338dd7cc01aed60f053a",
+  "53afade89b2baad6bd288c25aaefe631c151ca3b56bcb710b118784e65a1f1d1",
+  "9e6ed3f9258d1ed81c6f18b17d2e47033ced0dd58e6823b62b2f2d30ee90bc71",
+  "964af9a24f53e3bcfe779241591e2c385be3b579780c5cc0c490bc2ed9f06e12",
+  "080a4cf959e6395c02b198211143599d1b80e22a4708ca6dbb19d872304cc777",
+  "9c52d57da020389a30134a40ddbf13e716a1f84335380b528cd7b6d29fbb5d7f",
+  "69bb0ef73287f5eb7af8400f1cdc9bdaae6f5b2aafd72a0225c6dd85f43f3106",
+  "97699f3c6d9284e1ef22fa05ad1f6ab799f2ed1a1d0611de572c0e8623d674bd",
+  "e27d699f6692c5042051156f38466820108f058fce10a79e17cdafd8d0d6d000",
+  "a96a328d9e179da1fd76e4b13eec6395d59a1a93ba5c994f7e9a80661effa97a",
+  "034622ddf04a3b68cc088e1177ce6d1848ec02504b57bd716527e36eb07acf28",
+  "e75b059d2cedf8d9224b405a04ef7c020c268f61b89ee014a883b1440fa88185",
+  "ae9dff5ed72901d77b0269a51375cda0cdf480ac06aba412afcee29240b0ae58",
+  "a41ab15d234025d4a38e598a7ecca8265efe918cdf1e775cd5f6f6f52cb16d96",
+  "b698024d4ca9b4fb21ab3a7e6681c6d2610a0bf9ee5b21a1743248c669f4f9b8",
+  "312c210b4fbcb4499b3686f738211179959b2f3736ccc5924bd36dd63beae511",
+  "8073ed6b425f8b3ca720732ede4f556f28d9852182908c2c611bcb0f2935bdd5",
+  "f735d4e5763e85585bae920e4c71a044b8526746ddbce27b53fffd4ef780db4b",
+  "eb0407363ac0cd93a64119bda180e7bf6f63c648fdb109a890b5d2a7bc9afd9a",
+  "f9b8e57564807df84a1d2143003c7c31c1ecfb0fa02c0a88f9b13f45f06f30ca",
+  "452d41a3186132bcc2750d4dde554485ba03f73533091bc513d1e130b8116ee1",
+  "463cba3d090f62651ef12368bee0db5fba7b79b95fb51289e4ba9be86c19cb70",
+  "4db6c0eebe0421af666b1e7dceb09a24403ebe5594355c8e8b421e09daba6562",
+  "0d200c182251f5a9cafbc17c4bdacb3411651e4088dec905251ae93c89986006",
+  "cef71b70fe313e0c0b69927af0bddbb6bf186e55c89d470d5fd594257f0450f6",
+  "1d340da02e519a254e109592caae83d46aad5dd4338e034f0660693ea9e6914e",
+  "ae6c7aaef0933d7b19c9eafd50958c2b69024d2d1f44c8b3f03987343adbc9bf",
+  "5cd890b165ef0445d3b75055261be279f706e768c06e84609c209e30b0ae7db5",
+  "36bc895a0c800195e1c023cc5545da013534c50530a8e03a33e6c28b681fe7e0",
+  "23593bda8350a670efd7fcdab3145aa4bd7806d48bd4498766cfdfa2d5031946",
+  "d20b420e60b4a8f24784090b678356a755dd4f6fdd617192b5942585c5c14bf4",
+  "762482e3ad1b54ffdc4562b6e36ec978ccbf232a2eca3d35fb566db7ee6b8fff",
+  "d781679903ec64fb1e6f7a48415d819a523bb5effcf6f77429d75bc96f2fd428",
+  "371b0ba868f33aebcf194101bdfa0961c7ddd429060fa4b01720b34d76871dee",
+  "1fc42ea7f1eac4b1d7cece9cb881c80bc2735430ac3fd14c4fb282fa59c2bbcb",
+  "23ca891e5af07c3e5c47a168e79af48f32db9e030908f5a5e8f7e84012298e52",
+  "191331c6370ff999ef4732b6ac96181ad0cafca795ba36a5d9a0d2210fcdb848",
+  "fd3dd6717692faf16c4f99e70d330ebbea8aba24b90ad8eb4de580a38bfd9def",
+  "11f34a4a24476dde3922f4a23f10c376234c3d2eb8cf51121a6d06ab7da8c4f6",
+  "e5f7f603f81d849a967f5b7143e05f5a383ac8bea7db30184286d998cfb4cf7d",
+  "f8726d4cd7e4431aa2bae3840b3cb8d6498311aa3c56af9d3abbda72e3317236",
+  "fd3206bfec72099cf4e4c345b9ddd9df951bbde96979906b794b8440985bf8c8",
+  "dd3d8c6f4566b360fa705435fc4ea58af36e058fb3280b1ea7f1ba188e340913",
+  "5c9fc34bf3b7633130b5341dc0560406d0f4ab5110a8ab1417e4127d459157b5",
+  "97d466bcfbe849d59aafd99b78d28101c287ea9b6a59a1470ab98770b58ed908",
+  "8b20256edf901d5a8bc0f71f6898a6b1d0818edb2f561d3219752a709abaa318",
+  "4d26b341b31fa39f26772d557e6d1971849e0ecd945feba1bf4dcb2d3865e72d",
+  "b5f0c69568656661fbcd3bca40b22c6574a8c44ff79b74301860f7e6f0088fcc",
+  "e60667a0dfa1223f8376cb5787282259853bb1185d31e43bc6f58a9ef10fb7ae",
+  "98211323ed6d1e0fe3204f3ba8359b261aa32ce404b148a0503c64d45f623882",
+  "4c66a3906567dce680dbf51e69a4c42f6cc62e4a7adaec5129d87dbd3e201f16",
+  "96fce921032289e9e686d8f207c5b4e7273feadd17d02148810c33e07dc7d92b",
+  "687d6c1c8697bcf02b2f4b594882e5b54a1132a7af7eb497efd945c632ad6efd",
+  "6b034b4c953b7e0900da7170bbca5c72ebbb007959720860a69357ca495148fa",
+  "0661394815367d924f2474598a37f58e5e663bb8aef81eb4a38adc6af54a72aa",
+  "a1e5924ab091d3fb4996c3efc3c48b123a08998c55223a940e3fa0bbe1b1f4bf",
+  "7592f64b6003ffee0458c6c81bf991bae85e0cd9e6fb6e2dc65232c2cece1a5b",
+  "2ec798c3209c6cde322b5b08a73544e078286a8e5b7177019b72dcbe98d2a128",
+  "69b6f6ad947b500c3f8a81df8ba3555637c1f1faa08ca4e4a5644448df984dfe",
+  "0bfaffbefbae3482ef5c14f431f77f3e43945bc0efadbc0dd9dc4686c134894f",
+  "50528759ad1b7606368159d87e2451fbad03b29f2a9c4d3fa04054f6d1f78ed3",
+  "4c95123ac0e5b6d86b33ce74523855bcd60d8445a3e016719ce101d243ad2179",
+  "ad0da3762d87447c4798b13d795d0c7543fb98c93e1d990b121097ae576336bf",
+  "4c2d9dbc6c77dc52ca03826aaf44f42bb4c89bc3a53c5909ce6dc030503f283e",
+  "3f392297f93135c5b959555a854ab5d1b3c2b1df34a608f449c0df0dbd834501",
+  "acdf979faae02102a723e2b75c1c07cd70d404233aa680e5b8fe1a239b77cf2d",
+  "6ba56fcae960a0b100a55ebc9379fce033f0db845c3bd829d0694049637bb4fc",
+  "aeb71797e433c16ed303017030b2d85b786d6e10575413f99f91166f0ecd1b77",
+  "fc2b93cb585a26b8a7af66704bc18307565857b600a5d59f98126c3b865514cd",
+  "11fd28e591ab241bf1c45e8e227198f40656f8aee7eae6b907d09175ad13cb86",
+  "7ec97553fbaaedf2e3f69f632fa69fe92efaaf7975552812a307d70b29b79bb3",
+  "d2e8f8ee91baea792e7f1b5f34df1dce48dcc14fb9a59c3fdbde4c7b5e13732d",
+  "0d59575f887eb0c74457800380f9263a695736d0f18d7f91b42fcf927d2b362a",
+  "0c50d5432e8d0433627b4a47dc7ce5c26937436810571dbc64cc154d04cf6f45",
+  "dcba37138885120e3bf3b496e99d74b06353e7af18a0cfa58bcb08929875be97",
+  "f4199886a44103fab0e3ba0b4ff1e4cca0d3c315616723ebafd8527058028c84",
+  "2e1f39da729c303c62671092507a925b24807e9d7fc468de26504e78c9653a8f",
+  "83faf3105c5918fb42bf378dea589d8f5b05a339d08b74916120897d08831cf7",
+  "5281e940b3b4c3172222cad9a58aed7757a135d9ed9a6eec50ff299fcf11166a",
+  "2dedf9f483723249c67d8f06291c9ce9d78a0d7e6c41ab93484806e2fdd50feb",
+  "f09ffe7b9d6cd4e84034df44369f982b406335b4fd5d2ed2607e2444ce228126",
+  "a2b1cc52c7d4865989bf581f72ee0a13718f11c9866b0ad634619d00288ffdc7",
+  "8018fc8dde9d94a2f8f497294324c28499413176e997968b1c36bc4c052ec6c6",
+  "9e7d02ac92b307e8e913819afa1ad6d5f246a6f9cd262e75328129f5b377cfef",
+  "4e7a7755ca08e1060696f95a2c1817fb8941accc3e3a6ece93663800d9c93222",
+  "a963cd1281bcc6eaa6a3708b6fd5ef4817649808468eecb37e4963af6e0bf17f",
+  "f5872242d66515e0e3215b024fadf4b0bd5c2439832facae9d85c0845d8c1bd6",
+  "7c72d9947280f5c974ff04857caecab06a943ad08083d00c9615a1ed2a6dfc3d",
+  "a7e196224492ba61100aa988aef2afd8c8650eb4395b8e4d296f8d63b823e4a1",
+  "fdb39208befae935f52f0a407dc2d404134b9505c03445b5ec78c136f67e0be4",
+  "9883fb6a58410b2342aae6ee5704fc4e2df31fbbf166917d9b7f8481a1e20310",
+  "fcc4db1f9fb8db6e6c7d1805207fe948ebec80600d19c370ef832becbcf620b8",
+  "48e19f0d0374a3ffa1387a382ffd0f80aea351bd7ef36ca39e956f4270cc7380",
+  "1b361deacda4f13b475180d430d29d7ff7bd6a14946f345d8003aaef1daaef4f",
+  "f6afecb30908e6503be4a5bf7cbd9f2677a755280465d70d1b110b4051bec7df",
+  "e0ae1cf3d5da8a64db80f5db190aa68bcbb2eef64aae76a358d84aafe4c96d67",
+  "bb2b89b661220cffb40db59ec3a4b1a6141fffcd29fd92f886696d6fdd837ec5",
+  "6d0c8806b8b98ab4f5dfebc907b00cb7deee6e150ca070310590d1ee4af09ebe",
+  "e896bbc95976db0382e3703759e7528fd118de08956c22e7032b1cf201f6a78c",
+  "bd0deeb31191b969bdf988c56c63324a8e5df51cca62bb9c672b34bb045042b9",
+  "d4d3554845ec716f2ecbd7315d580f9dd4aa5a703f4131dc5e8797d96eb33670",
+  "bc13fbadcb9bbb5681e5a0fec473d91d5febe6e5022ea3b3bb22e771e272c812",
+  "17e99a70419b47ac1c0ee4ae3fa632bf240e9ece3e4cc233fec3dff1572eb8af",
+  "53c90416bc34853ef6786874bba70022d2ff26d0a5b4db38875ee0ebbfa442d8",
+  "79a3b9d810a6f2c6b3936ec9018649a440aeed752d364dfa60c25774191d5d02",
+  "b309c69df48c6ae089f454f7d1a52ca8b7232aa99d15a983404bd44a4aa58b82",
+  "11eb596eec467aeb5e7adfeeca5024a8383f8765903d4d1d9eac9f47f6452f65",
+  "48fbca32ec758a3b09ebd2a19e6d91ae56abbd7ab08d7b9998e0524c0ee2fa3b",
+  "1b94d1ad50f960cf766a0136bbea1852ed1c5f7458893b8ddfba569aa5adae55",
+  "d45b2b05b6fc10c8bdd035cc3de1a0991f74336361a2d2bd75525fbc38d5a264",
+  "4724061aea34d4a0658ce518402a57692a637d47d616ba3400ab4b2ad9300aa1",
+  "ddd593e46478b3bd78b24e250f6116058a0bf14880bde4df9e170bc1590855eb",
+  "73ff1bc2934407c30596837aabb49b0a8f0e4ba43d3efd05fd8ca5c26c848400",
+  "67006ba52228a00bb5af87f47b56e3dd6921fff684bf6cbfe8979eed86abaaea",
+  "43c8292483783635223c62e6ce1dee571bcdc120afe80db6d2e7a4903ff6762b",
+  "fc8f6c4fafc93026ab11fa3a13caac5a283f6e47aa3ab549fac4300c2148725b",
+  "11e642abde3e7a848fe4eb1128f8416b4fe9b936368a35a03a620b21a26277e0",
+  "57150b81d430b95c8afdb7b4bf88972eb4c7721d4985dcd46d901d489f6f2931",
+  "4bbd2923acead56a9c5da0c3d45f21e0805d8df5ff62ffea1224ffd6c1617f34",
+  "16ce526870ca6e57bdb0f73535a14f9bf3c80d2123a3daf48f70b443328e19aa",
+  "7bf173ebc2004f64efd0b3e02e112b18230282fabcb9205246d9c205d3452ba8",
+  "1a8f929c1ca86c87291597553f6a63d360fcf8399d8e92d4bd25fac41aea164b",
+  "226301a3b3640415a00bf108eb585aa2097120f1e93460ae2d628079b90dba85",
+  "afef2ffa5183b5172f77b87aaa90a9d45636607fdc8f6b94773385b5458adad7",
+  "d0984dc0b109befb5e5aa8e81962e9ccbafacc042e15c291678f79fc8716bb57",
+  "41a5f003e837b7f8ab91332f6c23835edfe0a4d1a5b3bce04ab20de79cbad530",
+  "bec456730562d093ce94cbbf4df2d02b8811c24abfd0158762d9a6c7f9438d2f",
+  "dd119654375e0c1bf2050a255dcef0124a5210ad907eaf8e77bad80d6c15f0cc",
+  "ff032200326dddc05b38ec9e9582022cfc8ee4b40c9a14decdad151299d0ec39",
+  "ad32c74cc38d21f216bd925d32437f06e4199b57607c085a857d34bd1709e8cf",
+  "51b3ff893918be7123d2943c609aa0866478e211aebf1995a67affa642196c96",
+  "dcce9726c037f8970712a0adadaa4c114600c233a9c4b73ce9e195243635a03b",
+  "f6c7ad90a203d6b9db0fa4c6de0e8471d5f95c8afde55b605d98f78c9b38f148",
+  "eafccb71ad4b0d71d4fe4f127eee5a2472c65bae8c3364390cd8e46bd60105d1",
+  "0b26f57422da7ff41de6ce42b8247284f0be7cedb31913bc4ac0156ac64ed888",
+  "ee22437da7b3bf96a1cd27feae60bb7d5f21de3deec7570cde3a7a4dfe7bdfdf",
+  "560603c2cda72da02e6ad36273386e75e8ef0400aa55ec4e70a6708fd7c50060",
+  "bb1aaa898a52d62f930bf0884aee0bcda2e20e12c9dae28c5e92e2386c646573",
+  "453d2330983395862986a5611cba09514a164947a9f9961a4ef79520c4923c53",
+  "7fd0e51db2c14941b6475ed8a4dc036ff1b4690bdc6c01b13174628b4dccff3c",
+  "f4ff13fb442de264deb84c2cbddc1eeeffe52d7dd04c7041e43c6bfca040a805",
+  "58371edd3b6c6025b9fb0003d3178ee27fe39dfcc45146d36c6549db86708fa1",
+  "f8feb953781760593f76e7b21e0fb58a4c2cd53557b4960a5391f35d99bcf875",
+  "1316d856cb302a2a0ae9aa77aee392c1d6b23f04413e8f6c7a24f6670220b51a",
+  "01285bb9a18ee89bf51872472bc14d000fd06f4526fdd606d2d1b1bc162e7dda",
+  "d197391eea2b138151ad322248042441e1cc5dda2130bf0b8c0a509fec652bf2",
+  "42789b8c2a376f503124fd6237f9ae1bcf03ec58abb80b5e8cb8ec245de66549",
+  "8b42aa7a96e5533f09d639dc2844d3c5075acdc0f811262dc75464efe854a452",
+  "c0cd1bf21ceaccc1324c0362e5936b62b5e36f2bdcf2c6f336e40ab5750659b6",
+  "7af5cff406ddd444f67fffee65693df0c339eb741f279b8f404d8404cb140962",
+  "2a15ef6fdbbd4f194acf27f6b2f8c3728bd61a219e3bbb9074bd91394c6d658e",
+  "416dc4524f6c9951a6ed15f8ddc353f6c62cd74c486676b76ae0dec664a11ca2",
+  "549e2dc5ca8431a7277235d7f3de68aa6ccfe1ab0aaaa891de7d97a3a8e77586",
+  "d558d336a6be373502a950c011f95611503dbdca56c40cf46b49ae56ac8ec5e4",
+  "02d89ad2984c52eddcfa64b6566d73de4b26efa52a6da6b4ab2484a5d3ea94c6",
+  "8ee150d66315a2980c9cf76b6d3e9d20e21c0232b3c641b65645e0fc6c393042",
+  "52cceb6684f617a5ef21c7748118ff20c18101bee68b49fcf90a5a9c4af9f41d",
+  "2cec7644b1ba5596499e6d80d3fececb256ded8b176fd7439fb2709bfeba3d9c",
+  "3e94f4a1e63c499acb2c7b6d6a17130a600a5a5c1fb04d9e2211c92e95bf371d",
+  "c83e8eb7bef16e45c7e83ff6184cb8315b48a3f0276259d080d2c80271e82e04",
+  "11c6168f6a215f4070dc4624f20f68eb4707adc0cfd67a8034b2282accb34956",
+  "d0b6d0dd60397a832f5f532920e013aaee79a33d13abdb34da37762f1ff95e60",
+  "8241162e5e833dab1dcad9d1a231ea20ed94266aab5d3b7a22db39b5aab0cb1b",
+  "481e1604d2e5dfcf0d9943ae21d6efab804755197bff9f24eee982b0f9089288",
+  "8fc2e8c5395b04ea8735f6783f1f8a70b7673b334b7e48363432ad6d88e4b6a7",
+  "cf7b4570ac320b344f4f70f31f530c2312db5b7241651d361a91f7986db3922a",
+  "a43f03466ff5a0a1f00becf2d0139cd3e26a55219fb236c8213249e879754707",
+  "abcd660b88d14c1c1601492321379521c1e4274d661113338c8a5b98d6c12d98",
+  "ed45a64a4e0042ea4a69d15923474ef1847d68c0d96c99dc6f02f60d17da11e1",
+  "5f1b73d5b3d7592b2d0ea7be0181ae20d09d6051782c35c8537a597818b5a830",
+  "122e01e18a1af0326d413951762c57a570af6607343c394294ae8809d51fc269",
+  "0366e11674609c76ac98ef283275808cbb4d5e72de3a5444c2b8881a2a3cd689",
+  "b6350edd1ddb16936d264416ee78f60d7523bf7b0065a9a5dfb65fdc84ee73f1",
+  "0f796ba5285867fb7b6a87ff3d8dbdfbc434d109c22c62e80a39df767d2afc2c",
+  "6749c47ac2c948985279fcc70a15b8a9b2b0f09514c6a764306f6269bc1f883e",
+  "58dabe76ff82e4419fec4ef2126c9dcd4726a91c3b525f98c9b2c32aab6e55c5",
+  "0af5764851a0ef9c9a4810a62ab1197543fa871eb95a9915d3620f5c4ad04fd9",
+  "f0f1db70d3a8d51083490b684bcc0f49adb27898b8f58698a2b22545b183d689",
+  "f7deb7f17371944add7cedb61914362119cf3b88095669a20968d822e9135db3",
+  "b3a239f532e332a6f99d654a0a9d84cf9299b07cc568d564062711b0c8435798",
+  "daa0c0aea85fa595058868e49c74b0bf16a4ba7e735905bb196ff68ab72b1f24",
+  "890fe87843f7f3428c26e8dd48df0727c064ddcd94cab3e29c2b9fe1175b3287",
+  "83e011a4564b4d002e438eabb9ec9db098e0fb9910827cf20142bf3f87238656",
+  "05b1f7ca3e6f495d6e2df58bd88a8976b885d8565edccc7a039a5dd8e858e99c",
+  "109ebbf35461586574a481391d366bd0bec1ae2374203fdc63a05f0d9d307ef2",
+  "93802f4756f3d767f85b4aacbf00690b28214178f7b83baa12d28fd82932072d",
+  "e6bac71a49d8ce7800e817dadba4ea5fd93033524b84fadab60c5173ab786798",
+  "eb724a6d2f62be30c6e2e14a8e158783fc7a1765e7102eebf2139a049b90f2d7",
+  "bab721cc2c3d255dc614e06ca43f2c06d676c68c96dbe2dca46ec7197276882d",
+  "3f32c35cd63c7bcc57a43217aab969a45f773a75d7616e3271ab1487efab5625",
+  "a490988bb903135e4b3545ea9600b42d788ca207d7aa976f0e925b221c729034",
+  "d8430a25e86804ad1e6f88fd687d5fe8b64b33f92fe33434582ee23f2eb03a46",
+  "4bef75794d8e5cb766fab64d24072190fc40d46acef80959657243294be20d53",
+  "ebd0e52a0f256623d96b2fc86c59c482cd27bb21f7b33126ff6454ba6873cbb8",
+  "850ab02f93b7e1834ed8a168f8ff1ae1c2c9d49b4b2ba0bf4a410636fbe6f256",
+  "a46ff45937e5f0c485c88631147283987321c85d4a447015bdb4c7921a6e927b",
+  "49524de7dd368d1c07ffec9475b3bce3732e25363c08abf87c1577aae9a03738",
+  "6c8b7f7e40a17eb87f1874b7c50225d8544a01cc2cf0ed8c30c3dcf2ca6ff3ef",
+  "1c67efcbe5fe1285d005e7259feac1c5cb1c5d05d098da076ae38aa726dd6075",
+  "75798ff9253562ecba3e7e42a43c6fd74a3c4330ea178daafa0532305e8356f1",
+  "5cd446b3e849b2bab718cb72c1015d77dc961f333508cbad83ce97d464496d3e",
+  "aa5f91ca91dcda75d7167e1585e0211eb3b78e6be0cf50209ab6747b4a24c053",
+  "20f75721c00bf75f0209598fcdb7248265baf5ae266f1bf608457a093240093c",
+  "e6df480d88d5ff17b9857c19236db2406c155a8c98b6b574791dc5cb8dd5a210",
+  "366d3e83216a9d9258610cbefc18fd110f5986d3f4f844593cb6f864a45897d2",
+  "f5836cf89c9343d70eacd5538c1c341a1028d399c5c8cc1d327d2f29f4866c18",
+  "11b1e0b5756a41cc030cbfe37830fcb16b9220dc671258f79812e343a8234403",
+  "3c93f300046831f9e71cbfd6087c8f26a64fc13f9e93ab1c799636da82cab6bf",
+  "11416f2a0275bbb98dad50edf10deea3146e48ce0803b80d1590809a9801f5d2",
+  "3b7674c2580ce76d1309f9b2688ab50a07edf1c6c681a859efc3fd9b475615af",
+  "082d9922234ce1f49c52f5a7799281fae289784af65feceb48328c1cfd3a843a",
+  "9463680ddc0ca0d1f5a8184be4516fb7e590f94c9ae106be7ab14a8176a21017",
+  "ca95f5f0dee52414dc58f70d9f85d9fca0bcca59806213d56cc53226f83a634b",
+  "6b5402d5c8bb94a5f9f27ca17dd93be940ceb0c952faf67687a2384d215e0d1b",
+  "88e2faeb3014446cedb72c76096015e420215c5131f6e64f22406f906e6a26a5",
+  "237dc0c310db83b58eec2debfa66da64279a951e3773fa7b35b5599f8639f929",
+  "e934fa692a4750873f3188c912fc2a289798c6c6948b0ab1f55b37461af7336f",
+  "407a0bf295f3bfcf6bd6e19e726f83d24ca36d3d5b4b65c40ce0f9cb0bdec3d7",
+  "5728ccd9e738956f37be20d3efbda7acf06ea0e71d8ac76e788ba5cb9977c693",
+  "44b4ff3742eb0257374e8483ec971f759dcc2da7ef6d0cde3286c7435c0cb2cf",
+  "49fe91caf503a5ada99277a7684363824386c5f80425f342590600aa4316eaf6",
+  "860ebb95a2e5cc9c84b56d268a2c9728f2b9fb3be22e53bb4bfe514628afa349",
+  "7fee47220303f74fdc615b0685d02de532ae4d0b23bf0b2413956b87e4ea2eb7",
+  "d317a360e5d99e54db70ce595766ca96e8becfb72f9561ca947217326a12eb25",
+  "62ac20c15e37606c4587b8cf3b81e70da8335c88aab2fd10b93a8196585a5627",
+  "737713e56fe50b17f2dd767d55d6ff2cee08ea2732f1df61cda96ba9781871e7",
+  "77e7da98ee00daf11409c8579ec5c798df7e4dbd17514659ebc452448e4d31a1",
+  "d4aa41c8434e57b47edf32f6cf6ed1bed6c383e898df44d84558837a0178af8b",
+  "c0f47efe6d21c7212fa5958bb0b5521fd47d3379ebd1601458ab8c9063cdac2d",
+  "11417eda347fc40c678121bf0067eb4677a84f442fac0f3ada2412a69794c521",
+  "0489b6d16001734c0ca98a10ef930a5f47cb40612f228fe814295e881b88b8e7",
+  "b769a9e4a3b0c80bba876e96ac0eeb9194cb23669cfe964d087f33f4366d4bdd",
+  "bb953b1cac030999ed458b941f6fec8bc8d7f5822fc28525c606e01d389f5981",
+  "721907f828f383c11bb6d956d64db4a8eaad21ac20d2c31fc52f08d756be446b",
+  "2f3341f4fb0e6fbb1743a4bb56eee68840c2ff9400511407fba0be8e6a077c7b",
+  "99946eac6d721d1b7598e1885eb0a089df1aa5e23b4b4224ebb8706a840f4984",
+  "173bf46dfba43b6aa17a6b2a2641abf34e67f9c847ac277f7bf678dedc62650a",
+  "5407f672c42a12647eaa40f68782a86df8b53cb4e085f2a9be284edf3162eb16",
+  "a8d3ec62456cadfd4d10613541281066dcf9ead5dabaf16ae73b7e962869647d",
+  "8338507f71c2c87975460cb1fbbd22c492e33d287f473ed1c93610b296dcb46d",
+  "9ebb25d5be85548d8492cbb42c2ff76ea861752a98f5abe0f6cfed3c5ebf02f4",
+  "117bd4fa0ce4364edf02323d529462b874424c89f4aa5493126c981ce4da505a",
+  "224deef8c7b036a043556684cbcd6db7f967ee98038af89f486c7edf2be8ab17",
+  "b4a8f5d1714a64a98f6dff9caf1410d0a0f9787346e9571695a9d515a4867b90",
+  "bbbc6a422e1e585a4a3632b24b89924def2ad27c1b0d388e0b12912a3504a8cd",
+  "90c2e73427e6f95dbc70b01a0775526b4f24a2fea197e3525e92be2b3579efc9",
+  "8863e23ada8255282ebccacb91bdf7e74728a9e1ac4a27afb5129e4a621f897e",
+  "3a012663ec9a810fb889cc987959851a24b8101cb04f9160ff8a907959bbd89f",
+  "190d9e4fa057fbc8fb8e631d7fa13192c24fbe7ed2b0879ccdea039845f0c422",
+  "f237afadf0a1a14443bcc64342b44bc4da190d96931e06e00923bef26c5eea7a",
+  "3a717e28e6d39aac854457a415caf57819ec8be62b44e4e584c320c53b63213b",
+  "de689a9710357a02100f73426a45750cbfb8a693faf88eeb7bad833a4b38018c",
+  "266c46691006cd155d9365b05c4825807fa432c94e1f6cc2cf09447a519203e1",
+  "e1c45901ececb6d364f8ef359e965182519720439ab244e99052b578676d355a",
+  "8143cb05f9d767c2d85e486a881d71212be2a78ad4e75d60c25b044d30d8a579",
+  "aed76b12dea0af678de09cbc4d42b10215ba20904d891d117c98df85ba5aa65a",
+  "3085e3add4f29a4f7cfe59680d8ef45a9fbcb254f22caa81b679d19a9fb250ef",
+  "cea73d737b507818829539c021ef99b73533f747a7cb8b8d6ace43a0258f0bae",
+  "0dc06e684b19449de249e4e5c32ea0229d80e609c9322609b0426348b777ea59",
+  "f606ac7b059ba616ec1e952227f31cf0a83dcb66613c012cdea2a3776961f0ef",
+  "920d2b689387f7a1b9d44d68983e76bcbabc503654adfc124ec19e1b0ce0d331",
+  "d398712051b7e7b8500ecbd030d2c6a0012b8eaeeabbcc0d6f1e03f4acf709b3",
+  "31387fb82f616355a09e46573eab1233858d4abc04a13be2c2c29b14f280c028",
+  "bde30f4e8aa3ebb0e8f75158be727463e25d2b3f02db5cf3342581ce7279c118",
+  "0693a0749326b6821eaf3411f456499f64b1bae54e01d3f7c2e42d9c09085326",
+  "bb8b0d496b610c2d51967d12821cf86d796b7cd7ad2cbd5c0f165b232f281464",
+  "969ca1ae931b34deb8346ac95d6853a362760c19bab84322c573e124974b88cf",
+  "e48f0b0d2577542ad3465bf6c063435390470388a27d938b113c74cf1d962c86",
+  "bbadb4df56fe6809a7aa4be1b3f7f9cb49da17a41c418e39102848f2d8d07a6d",
+  "4f2971a0b18808649f978cc94de8b8f70fa5cf3ec0bad1a92499b68660c1fd2f",
+  "ebbf2c1fcfb6e4873e0040663601563e3531f8f2ff6032e0a3ac06cd520bd680",
+  "809bb26aee29f93ab4484694506fae71d307ac45239a431f3f51285aba0dbd3a",
+  "05f462cfa6fb45a297ffb6f12ed1da576addd66d9c45f6bf30a854a957f5e803",
+  "fdae0231c4a1fc14b21ba2f1c27548d4c259544e80b94696da838ad6186b2ea2",
+  "430d27998d51e0774e3af2e0b10b29f222da571cf8f54b061c5c83d0d9f48cfa",
+  "9f4ba15b559b66c1023163a2cbbc0cf936c35a51b8f04f3625445ca0569ef9e4",
+  "ac81371e0b632eac1729561d6c10c6cc52734bf783d82f25ceea07fdec466bc8",
+  "33f8367b7499ad7792e8e812caa0b08f2c564a2312e245d3aa426cbfa50da001",
+  "0d35e71fd9cf17898fdae4aa5ff983e78d75a4724fe5c6cd09c2eaa05849e060",
+  "d1840f16e5bc6e7e20eff239faa70d448396d5a7fa8ed70da83ba36c4804d590",
+  "57518bd911f3719b7e02ba13841b3de511e177e6fb7faa3f0405bc667e3fdfec",
+  "7b74044249093231cccb78b7a4cc8dd33f2297bdd3da373651ccedc453fce6d9",
+  "524acbaebdb87fcd9dfeb1fb8edb90cc13db67b57f307bcf4d6c61890eb1c235",
+  "a6fcae9de27cbc2c2afbf517a09b240375d37712d0a0de733d553fe23ee72357",
+  "d7cfc429dab6d6d2572780fee203ebbe04fdf527c9d49ef267fa6065238b555d",
+  "89393dc9a345ea4dd7abe3e2d2eaa99cef622b37581649b70e4523ce8229d13c",
+  "8b507ed7dbd773594c651ab1c2496684b30d3e0b291acf528c7bd55bf960bca5",
+  "dc6f67dbcd5bbc132c6a4b47f1f2796e505e05509cbf5753949bb488e3f99c01",
+  "b062fcbc7e07be3fa9ec6a17716194de9cdb9aa6fa04fce19d96ab3e064406e6",
+  "4ce4ffe4585e9d3fe906b66807ef3c4bb06c8a04e8e17dde16e40f873ab8a219",
+  "55e5cd64d1cf96ce1243496b194fb283e457a0630e5a31e13b8bca2f47949956",
+  "6ab33d45513b7013624e01e15f616a3436caa8813c863a13eb85e06a973f9520",
+  "0635239c7d231ead46108e2b4a1951ba31c1844232c5d819b6065704c0af8279",
+  "4b265c9f76496407bdd1bd16b7f6ea3e97f3346e63d5e05f9896b1821e3dbe38",
+  "eb8a6dc35daa3c5592a646b74e2e1267b1570dcf1b61c3e297a09a6aac7552d5",
+  "2a8849e3e27e05c8572140297d86473e720d62e6c7ef1766e4aff8313c688b6b",
+  "d836c66dabd6fc193bfba98a061a1eb58458ff129f912f07a3dbf3244dd8ae2c",
+  "91667b20ccfc055f0d7917eff1c713f3712d948055a3139e6d758a308322503f",
+  "790c22f5700d052ad149bb0d96788ab3b3b49d2ef2b6268f54095b96174f9790",
+  "4f28977329a2153bd6a8c1d47e8877a4abfcef83cdff4daa74845384d8bdcac0",
+  "7d695518fbbc0ecb1678e8114673eea6a58b4ee60787839e96644124cfb77c82",
+  "50bddc4bfa7cdc185d3b2528559936510bfe814ae162eaddf609992f6796654a",
+  "032bfcac588034362fea4cca94113b039bae0d07660b364fdf2e7ef293bbaaeb",
+  "59a66323292142ca499c44cb95bc308c10d44aa534066efb413fbd7e622fb2a2",
+  "de0a390bb1f5fea9c385020193ae349ac43726f15f7a733e001e6c6b9911efff",
+  "366b20439156728d7753c598106508878bbf4467d9c7812ea686683580365a50",
+  "d61b4b5e3d4e9274757e0d1e3552ff89ae9bbfaad1b47fc54e3ffb405a99f3ab",
+  "12a608f8188541bd9076e9055e03f3dea310bf993e1380df8dcfaf8c4ad00e07",
+  "a8c9597cf77938624cb46e6410bef52434d13df92f6aee949839efb108bdb7fc",
+  "f2ffa791060273fa3bdf46fc7ee7af85a4345e08c53b3f0a6d6def54a00f815d",
+  "e8b992e6ce4ea00f275248476273b953884ef681fb12387331f5ccfecc010cac",
+  "37c42239bded5c0489c1cb0bbf793150d914760d8c07c9cf31fab19d6a123c98",
+  "f7e2c2d88fd369b85129c19cb7ad8f86266b984ab264417faa2fa571f6bf834d",
+  "a12f07c1217f06abd9535677358a8a1cfd8b648caa005f1083704ce3f8b59b41",
+  "ddb59ef90fb4704202ec8efead569dfaba1350f9a473f4d2765c8a9d4a6affff",
+  "cb02e3bf567c51e7d0703d633d2be0ff613152d76412f55be2f0d07743a2c8cb",
+  "961e3c187762743b1b4ffdbb7a6c939133896bf151dbcfa4e5fb80f9f03a669e",
+  "01a2bb324feedff52ed4c1275b6a404f4fb37b8edda7066336ab2c059b4f8e82",
+  "6f7e54d38ea699d88cff8c2240b35a4d3c9d313ecccb481e79a69373ec605e50",
+  "0ea67e93e3dc8362b35af1b4d1698aa0125bc8282e690e3e5e9c9bfa18012063",
+  "169a63cfdb573a852338db6a499cb4da8c777971f8edb4503acbce227dfef7a3",
+  "be9a756db4457db34a6430c729fbc754c9d026c3c68ea3ea555839f6e4b3cf63",
+  "c2d516fef1dad9bd45b1c50243fbaf0dd5c4d6b9d213d14c54a537594ed258dc",
+  "be602a38ee80b9aaa37e751a32f5242852598bc1879bcb66d784e17f91f4dc12",
+  "2c0155e25b280a47814a0daed1bfd272ee491bf4c534c2f6e34a44a6dfdf12b0",
+  "b15974c5ef8df9fcfb878cfe34abb6abe952edcb924cb4c3ef75f1140a79ca08",
+  "3a6ec81ecb7a615ccc30228f6e525b7eeb21290fbb72813dced8bd461dafe049",
+  "4c75a2aabcaa8b58fd8440047e81f82d0f07a682c304b18fab7b9f176c6140f7",
+  "d71243ad41222f01b6850410e8588edb619c2d8ad6afd60acd62ca5e019ec2b6",
+  "2f396f59cf8770deef599ad14e40880ec073744e59cba04a8c083931b4ce8971",
+  "148e1ffee07ccf4bbe9917c146b7b4c7ba367e908c2dd0c1b97de89ffe87fb58",
+  "87a66038e3b1788757ee7c79a1621beafd2a5164b1156e824c314f3699268f9f",
+  "fed1d77409d4f244ae85ec0d40d13bf422e877afcf2bd05d2fdc84d88a1a8999",
+  "c78351f9000801242357aec46f9b66504175cbdce4518043f585ed00fad1ab91",
+  "9ae2d14e10bd8af465a583756a589d95a17b2c488257d0c8c2184d4cba4e9d6a",
+  "b0a3f0eb756f7753f3f151bd2275a5e3ab2f76639ba42bb3ef12fbcbc7a61830",
+  "eb2cd0d41e3abb301f750ed5b78663ca1481af483a25a834c3aaeaded3242bbb",
+  "c5634df3121a2bc17793c2907e9627add882a914dedfef3ca0e4c0270a8762de",
+  "ffe0274ff1365910cb029ac53272047e530b29694da9b786d7ef3742a826c035",
+  "0000000000000000000000000000000000000000000000000000000000000000",
+  "3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29",
+};
+static size_t nb_ed_25519_pk_vectors=514;
+static const char *ed_25519_check_vectors[]={
+};
+static size_t nb_ed_25519_check_vectors=0;
+static const char *x25519_vectors[]={
+  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
+  "6531e5010ab797ec0dc3c7038a94cbfcbb8ff1d1aad061b802b3c3232a42b352",
+  "600e94ef1d60878dd40c330704b7648bdd32901bbfdbdef0e59e600229384642",
+  "48b3753cff3a6d990163e6b60da1e4e5d6a2df78c16c96a52d4fb01ea4ecf70e",
+  "e5410cf8d4524fe8b010158cf7c541420e996b6b1378d4ed88deaaee29263b12",
+  "600e94ef1d60878dd40c330704b7648bdd32901bbfdbdef0e59e600229384642",
+  "81ac001b08d6577bd91ce991c4c45c46bc84d5465fc9139bf17042ae7313181f",
+  "5ecdfb70882e4436211fce2ba0bc692577ce0192e28570bb9142d941d0f46a1b",
+  "c4ff19938f4c26e71b38c32ff1ab8765298cfc1dd6e9ddc2aed6db115a138862",
+  "7afb217bd1eceeac1e133aaa9edb441fa88ea3ae0eaa06cb9911b6d218570f92",
+  "3330782567c7b3dcd9c952dce1077e47864ede3dbdacc4d61ed2b382fd992577",
+  "c4ff19938f4c26e71b38c32ff1ab8765298cfc1dd6e9ddc2aed6db115a138862",
+  "4a70a7e992b43e0b18578e892e954c40a51abdb5a85d300c32f391c45d6ef4db",
+  "c39d634523dcacd6e054c3ee16a8a0bb52fafeb13eacb395784b1de4087ab964",
+  "8778d5677aab0ff0f72e3f42a8d5cd6861e052a5e8f42ff8539b9d60ea66fd54",
+  "043ddcf4214f24ea6ef6b181071f299aa254a4606ab6a058e0c6fb5598218db7",
+  "8760965fd7d80f5dfdda223b34c430d6da89370f221b75ce97165110028aa372",
+  "8778d5677aab0ff0f72e3f42a8d5cd6861e052a5e8f42ff8539b9d60ea66fd54",
+};
+static size_t nb_x25519_vectors=18;
+static const char *x25519_pk_vectors[]={
+  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
+  "e5410cf8d4524fe8b010158cf7c541420e996b6b1378d4ed88deaaee29263b12",
+  "0000000000000000000000000000000000000000000000000000000000000000",
+  "2fe57da347cd62431528daac5fbb290730fff684afc4cfc2ed90995f58cb3b74",
+};
+static size_t nb_x25519_pk_vectors=4;
+static const char *key_exchange_vectors[]={
+};
+static size_t nb_key_exchange_vectors=0;
+static const char *elligator_inv_vectors[]={
+  "2920d46f2f37b04d00ff73df4115fda3876810c2144e94a7e6d0c09290ff7359",
+  "d5",
+  "ff",
+  "00",
+  "70e7a067416c79ca10ea92e00b0e15cd50569e3298b6358ad6b016826b1a5b2b",
+  "dd",
+  "ff",
+  "00",
+  "89bbc72dc9f7f5b863489c606514a39f4e844061ba5c9dec8095fa8c8e657170",
+  "2e",
+  "ff",
+  "00",
+  "8b12bcec65c17f6ed5d42dd5098b121d118148190d62adb51b438e56baabd951",
+  "69",
+  "ff",
+  "00",
+  "af46ad503ebf711a76c8a895c9d1d919289420f1e11c9b79224fd53e42b17d74",
+  "ad",
+  "ff",
+  "00",
+  "b51b86597d5856e07a9647c6f67d84fefb846c790c2c61d537ca150b26b0b431",
+  "92",
+  "ff",
+  "00",
+  "e50e3434457650b066a9cd7bb729b55f595fa5d6d0bd6dda0c482c0c89476c20",
+  "76",
+  "ff",
+  "00",
+  "69638b8f1aa12958380ba71393257725a59f047f96dbcea4eca7b2be3e9e741a",
+  "31",
+  "ff",
+  "00",
+  "1427a363a2286c54580aab236b5d7cf47d602e0d9c0d94bba8f680616842c75a",
+  "18",
+  "00",
+  "fc2b38c87df2a362e566b7cc761175eb68b9dbb56e82e6a6c2f47f4c38a3df0b",
+  "d5dd92436f485df55fa5ee37ea52efbbe2c297e4a7d9fba4bc278941bcd22700",
+  "50",
+  "00",
+  "1ec4e82112b4115cc1c7fcbfba6d0494c256b0fe5fa0b3e5c9bc085e0377b64f",
+  "e8bea44b60edffe33af78b468a012b38d5c80e0f8dcc5c59bdfcc170d0e9f712",
+  "82",
+  "00",
+  "fdfed379a6ac45eee2118241beef90dbc076849d3a3f9e77e79f880ce4a770a7",
+  "17fe32cdcb47a24c922bf550b1ba1831bb74a982fa4c11674e2188c05c245a5d",
+  "f4",
+  "00",
+  "94db6cf4f593eb7458e3b50a20a6eecd8ad13dba207248a122f9834a74c76ee9",
+  "056988ebff4a4e0abf23fbdc7bd9eb7255a294dea35e3798a6da8ea187a7350a",
+  "2b",
+  "00",
+  "80e7dcd35bc8f1c1ef26ee0ed6371dd2fe4b62b0e09667a52bbea767ace14517",
+  "8a97acb2416893b4f3addc63239943ade9735dfd0ed3d2d3ef66b860ee59fe32",
+  "5b",
+  "00",
+  "2dfa97a41394f7f2551f1d85a30160def878e088a7a5fd888c5e9ccd3a531f76",
+  "06c7a27652309b1cf3481a0e8312b67f8e357dc4119b39a03ce8a73e5b39581b",
+  "85",
+  "00",
+  "91b895b41576bf1bc02cb5af5351d05ab9a0cd0b064a283d618181e47f0e38a5",
+  "d44a4b29720d14105cdb919f313040ba92c1b8440bd9647078d47f75dda4aa2b",
+  "e7",
+  "00",
+  "e870a0d7407e871ca8d5bb40e6d27c8c981de494fb9003de199d740aebd4f4cc",
+  "dc5c2760df5144ec24c017a0dbf0de49bcb4c65bc9311972d05039812c24ae72",
+  "0e",
+  "00",
+  "4181a3c80fe49efc9ff2bde332545de1b10e8fa121da8aca0c890bce926a4034",
+  "f3ff20cf76ab2efaea90aefe44b2e027ffe136e299da8761810b7d288990db23",
+  "5c",
+  "00",
+  "6cf1555d061cd9d2ba993bccc143be15026a6083a070810790f422523beca46a",
+  "8f1923e131b91cbd52d39a99c710b347816aa08c901fdb3297a90b74e64d754b",
+  "ba",
+  "00",
+  "301309719af2f71f9dec31dd4ac11c6204061cfcbf745ce07251f3fb7bbd029a",
+  "00d83a7fadc186b71b1e747f48d777290c5c8bbe1befd5d529c611d86a65ae67",
+  "d4",
+  "00",
+  "91ecb42d0db154906e4dbb08cea03614b71a88531a7706dfdb40603c19b318fd",
+  "98bfbf9b5aed19aae606e9c59b168c1c637333cbf1ca924165ee562753d5177c",
+  "1d",
+  "00",
+  "81bb15a6c136b4eee1e2e03821c5670d3f26fee6087052a3cae7e9092e60151b",
+  "b8480e2b0c693b0481b28da0944573760a46b5549008a3608da1382fbd4e5869",
+  "6b",
+  "00",
+  "86bcaf8fecd79b7375f2403798a961d2c0965e0a699d10827ef3562b9a964165",
+  "e67ddbdb7bd4c67ebda44d6e0e9dc2e15b5de7c992c3dbfbdc0971e97523ff64",
+  "b7",
+  "00",
+  "52a2b0815ab713330013e44766e6b50b4e48d9123a9c855023ff42e3b4072cb3",
+  "fb1d3c9c011fa18446fa2765c599615e7f3c7d5ec12fab673182009572d9da70",
+  "ef",
+  "00",
+  "b78e92dcee8b15210e0abbc2f2f94fc3bada7b804e05c9752fd81ab22a7469f7",
+  "817ed242179e5a7b8080b0e2e380eb5d4c3cc96a3ec81a38b925c6b162a34151",
+  "26",
+  "00",
+  "f8664a50630d48c3bc67cbab3683827a0d8b20b1336bac6a07ccf359cffbf925",
+  "a164026a9403c0f4a5ca845391f8bba46c27836b0503da38b0b713cefb665b5c",
+  "78",
+  "00",
+  "ebe6225a1b8d47b1b18c1aaf986bf6bab31dacf03e8cf8c64015ba785f236368",
+  "c0c9e1814bfd6b81c4bce980a33f01f666d5d4008a2134e2325f0c75582b4069",
+  "86",
+  "00",
+  "0039bdadb10b393f4358d66b231c55401fc65f053090f74929e62a6352f77986",
+  "849c086a64aef9e5c900b4ea40fa3634bc0d9b882ca9e4d45af214c6f8a0e61b",
+  "f4",
+  "00",
+  "00f29e9545cd7eadc6806092794a16e3f6943ed42b74393f65099085266899c4",
+  "f7dee61edaa8a1b2d10157013005d5ad35c03bc3b96a5d81a448d6986244fe12",
+  "09",
+  "00",
+  "b797cc651188631e07d8674bd977414dd8014cf5799a6bb8b6abbb3a44a23b08",
+  "a65d9be651432e20f63dd4f6b4e8a512943dd9e184885afffccb129857ea6479",
+  "4d",
+  "00",
+  "82b4d9f9076a927cffdf69086bed03c8895e9ffc6514079d53da9a48b7054c6c",
+  "38f2f3ec892e4064a493d8020e11954a6a6115624c44713af3d19d4264f5591f",
+  "8f",
+  "00",
+  "f6078e99267df6f0a9df48babc23fd51c09ebfb64789f37ed790218ac4240297",
+  "f2e1a5c6fa6be5e4c3d6ed5d50ebf9cfd403e9710aad0a48a8aaa9ed9d31ec71",
+  "e5",
+  "00",
+  "af4a8a54bd138b0716b3ba66089b6f86e9f19158f65f9e10046850294787a6e4",
+  "1d6b2957737a440a13bf9de9fe6b8d2708eb0d1ca3b35768f03cbccbb8adc228",
+  "34",
+  "00",
+  "6c19f0c1ac8776fc49a448788d9a16e9404cb27c9088d8e73339e90ce1ec4d33",
+  "db9f2ec277b45e99e1a1e1d47528c7fdd32e3eb422f8cddd50069805eb68e535",
+  "78",
+  "00",
+  "0a962dcb693d942db8e11ae9a1268b55813294aa5fa599f90228337278c10e58",
+  "e6608e3f4753e17028e0e7ae79f55eeacf3b4436601689346217577ac69be141",
+  "82",
+  "00",
+  "f8a72649ec6204b70ebbfceeaf871a6615ee272e3f7279aef9b1b1fcb926d6a8",
+  "001c5965388997117e91d105f95eafed1650ffe5cce62d2d70575c0e0623ea46",
+  "ee",
+  "00",
+  "4d8047283a0f75236a099463dbd2ca3e10769f6586342a036825e940940296c5",
+  "be42744cb5e3a2a714a2bb219ab6d09ac0ee43bd9e635b5dee80b84df4ac0148",
+  "11",
+  "00",
+  "9a891a6da69d1fcc4a9bc44e345d1097fa6d13cc70a73c0d4d0898bc71e5522d",
+  "a257b622f2c2fb09b8713649959cb91c045c9cacf9f0cb11488a23994ad50206",
+  "69",
+  "00",
+  "c375f5866398e6870ba9604de2dcb5d095fe9e7295aee9d7d537cbbbcec82a4b",
+  "5a58f620a2c9be7e29c234fe891dd382efa0a49ff60eccee108ecaea3b14355c",
+  "8b",
+  "00",
+  "f427ca009d0f3f6bc0ac0b3e7505dfb782f68c63f38b80eaae27f153fe789593",
+  "affac05f504c48083b0e730978cb44cb8a6445ffdfd623017be1fff7a15ee05f",
+  "e7",
+  "00",
+  "efc2ef837021889de806693c6f63ca6789906e5dc802d4eeea603c889ba1c2c5",
+  "c270fabed2f078943731b6ddc849b5f0125171271ae2ce81d86a1da632776746",
+  "0c",
+  "00",
+  "002b7d7cfc1b3720daf1e9dd1bc11e518543bed2ee8c2c42ea710f8c301c1518",
+  "62ea2fa47352752410e228319323cad8f949e451ef25a020bd9142a60ffa4b2f",
+  "76",
+  "00",
+  "70f8582d7cde43ba6de0d4357866cb2043a678d81434b50b15f50fedbc96716a",
+  "b37dbe821fe25d9ba2822af13b4d6961a66e8dd232aa00a2f5ee168e2c578b5e",
+  "8c",
+  "00",
+  "f8fa144d35919e12115dd7984c18285bd11934cb8de5a383f181e87e77acc6b8",
+  "dd3cdd732875e5b8113889ca4a9fe818391956e05bb005c1bbb7929422931a5f",
+  "f6",
+  "00",
+  "40ff9ae02c6392bfcdcb8cd5ca5952221c4abffacb69debc12bc463f1a296fdf",
+  "0008ee699fc783c73a85fbc609a530e35fcc804642d9d3b57b929d7c6a4b4d15",
+  "2f",
+  "00",
+  "a34d1516618e13e1760af8d46e253752033ddb2483305d12ece7ab0be6c7320b",
+  "7d646eeebecb6316324778af99a91e3a6905f5875779d1524b94999facad4670",
+  "7b",
+  "00",
+  "0d030cec471e96ad3a82d2ff81bd6a2b2501ba30a3479cad4589d500bcefe47a",
+  "072f4f19cf3e518db62b03f5464da24465f8b8f173df60b12853c3843ff05f5a",
+  "8b",
+  "00",
+  "3159073026d2e26960c329f1e286de7390d88badf89b153b0c8c4ab688e5a0a8",
+  "3249cd09642c8e1e6ff43dddb9772196e4dfa44dc3243472776c693736165f00",
+  "e7",
+  "00",
+  "c02c08c9c0ee31b32a1cca8dd0ecab5d94d2c1bcdc5c265aedf34e03cb7cf2d6",
+  "f7d3e1565993735d2d7fbbb94e7e54e6138fb98c86e30adcb88ff36025f3726e",
+  "34",
+  "00",
+  "7383dc41065f9f88835b859d33b3437f03c567c470d74b318b68ce0d68b84203",
+  "b057ab915654066dea1735dc48330cb086f52eca91ecea5087a93f76b5c18d1f",
+  "6a",
+  "00",
+  "cdd52a99fb7692277f6acb7a3963e75cb11804b8c204a4dfcd70f7d976b8d07f",
+  "08e42cf639e4c48552c52f123b7f11e0c8258f28bf5c6a6be7d1c101294c2a10",
+  "ac",
+  "00",
+  "d9e4027f5edadd43857b65bc018876320091df89efd58e276899a47b69a2ca97",
+  "ddaa4bd645b9d655727ff1fa8655ab9c14e53760e01fbfcbd5a45bd6c63db159",
+  "d8",
+  "00",
+  "b24b3a65dcd9331c1d66cef60a0ea98a086e6e6ef3d3964a27da20f5c04bfdee",
+  "5252764f6f3bb5dafa8488074200255ca9503b1e1db79e3dc5b5fe29f8a28417",
+  "09",
+  "00",
+  "a4c89e6bd947101ec4d33309e2adf0db1a7cf8016c4e40a152b25b670822a021",
+  "f79547a8768a5bb6e1adec21a7e2b5161bea636482a41cc641a5b98a1f5afb2b",
+  "71",
+  "00",
+  "66a4d2b119852211a54c4544322dbd5f1db237d218da035acbad9f77f4d2324a",
+  "affcbf0c9dd38ad4d4966be3fd73b2dff294961e5d9b2ea522c105383d084412",
+  "81",
+  "00",
+  "8a40af4847e06606c63f04c176d55c31a1f41127bfc9544bfda7942170402298",
+  "535133cc7b8c4633000fb1f5d14a9b10c33589ab9d9bc43319ae78fb28652e75",
+  "db",
+  "00",
+  "95c1fa9d1aee1c28ed26c957192e51e61cc6c55611f68f874e4b707da20eb0ce",
+  "c07f8a850c7e4ab54b72a050936b9d0857601ab83bd2697e38e387922276a952",
+  "2e",
+  "00",
+  "16c8d0cf0f263a7cd9def325999745de4f33670df798f37251836ebeeb855438",
+  "01814362c22300e1485819ce233b577cadef158049b5672b094577399946e126",
+  "6c",
+  "00",
+  "d25fe52c78c27faaf0c701e2e33c440c357237ec4fe579635b6c8c54e824907b",
+  "be7c9f151c0a2cf08c977ce6588e0335cc4eb0bbd504eefc4f81b3517e7b3700",
+  "a6",
+  "00",
+  "60461ef72396f814d429d4a5cd7863529e93f74ccfab61c125b1312fd128b293",
+  "220201b138c86bbd1ed6b4cd0a3de4cc14e6bad26e2f79d7b83229290142254f",
+  "ca",
+  "00",
+  "767aa5e2bf3397832a43ce55b78483f049e46e1fe18e5bf8ccfbccefff90b5e2",
+  "5be7c4996c671a95d64eeb16b7ba97669e8fbf32148be5ea45f2712adf5e1634",
+  "23",
+  "00",
+  "d2fc0dfb5e4e435df2bf933e1472d6c8c25fdafe74c6ed8d34ed7f89028d1600",
+  "5a4217a76efecb756da1a581a0bedf25e162f38257d00774780dab4e8a75363f",
+  "51",
+  "00",
+  "0e09b5b304815c17a13b86c9c3c6694f982ee7b43a7e345c77787274ecc61b70",
+  "f6a08a3c773db0907dc0f4c39865264c8e28e12b5724af1d4c6ab31b887cc33d",
+  "a1",
+  "00",
+  "28b89dacf3f0716a99839c47af15791b142bc6d7c7c8c35f407907b0eb195189",
+  "6df0696e07487b9bc41fbf6eb39e9af305d037a4b142b857141a0679d7ea9a7a",
+  "f3",
+  "00",
+  "fc92c474a50bdb4db42c9d4bba02759d31ffddabc5cf77a00471b6fdb4a87ae4",
+  "f21d26ff005fb41c03889c72aa1b4628b3ac25f8e6b8e4c2f6ab85ac5d172d25",
+  "12",
+  "00",
+  "8740875896cd4b06145a5d1eae37043f2b05bc954fd3bc369a13fe9942136814",
+  "a3e1baec82f32a1002f2c6658d18efebd1a8440923344e041563b03812835929",
+  "46",
+  "00",
+  "4a5222d159c452e0fc57b11bd2437101facc685d169714da689f173391078160",
+  "b19becd5653cb9959fe3c9afac636cef78e8d4379882fd3bf92456bca9febb2f",
+  "b0",
+  "00",
+  "8c1f1b4302dab33bf2e45c67c06c0b606c28809fc8b3cec57d69cc14ca48778d",
+  "cc998515d6c7e8138a58d1ec6be9f5984464086adb1f4f0621c5f18613d03409",
+  "e8",
+  "00",
+  "f66ed6c33c3979edf9bb25b682782ee05db497345e96f7cb9e4f8196c42418e3",
+  "eda092e8d163cf97d44764510ccfb4cd0b8f4f67d32d3a202eae0adeebfd3f6c",
+  "33",
+  "00",
+  "c854ba4f92750d73754f4b04541a477d0998a144c579949156a17c1578754530",
+  "99ac85797acd80463592dd4199523444a97f1e8a38bda49c9b76e96ae2157720",
+  "6d",
+  "00",
+  "c52f27a6ee052abaafd776820a0d8fa28ec91bf3e6c3706ce260e4cd7e66c27a",
+  "a26aacba37bce221764c2c20993d599ac683c7ec3f0f0f6ccc10d469febc461f",
+  "85",
+  "00",
+  "be6baa39dbfb1fc6c4768aa6a7d1e1aa0126910066d6a7a49044b94b1cf3de8b",
+  "02fe142043ef7c827b348903d17e5548493706841355c3692a56241332031671",
+  "c1",
+  "00",
+  "65ba0358ec1ab944a128f4b7c9e800e41e86d2eaefca9b6e505aeb8df96f29fd",
+};
+static size_t nb_elligator_inv_vectors=288;
+static const char *elligator_dir_vectors[]={
+  "0000000000000000000000000000000000000000000000000000000000000000",
+  "0000000000000000000000000000000000000000000000000000000000000000",
+  "0000000000000000000000000000000000000000000000000000000000000040",
+  "0000000000000000000000000000000000000000000000000000000000000000",
+  "0000000000000000000000000000000000000000000000000000000000000080",
+  "0000000000000000000000000000000000000000000000000000000000000000",
+  "00000000000000000000000000000000000000000000000000000000000000c0",
+  "0000000000000000000000000000000000000000000000000000000000000000",
+  "673a505e107189ee54ca93310ac42e4545e9e59050aaac6f8b5f64295c8ec02f",
+  "242ae39ef158ed60f20b89396d7d7eef5374aba15dc312a6aea6d1e57cacf85e",
+  "922688fa428d42bc1fa8806998fbc5959ae801817e85a42a45e8ec25a0d7545a",
+  "696f341266c64bcfa7afa834f8c34b2730be11c932e08474d1a22f26ed82410b",
+  "0d3b0eb88b74ed13d5f6a130e03c4ad607817057dc227152827c0506a538bbba",
+  "0b00df174d9fb0b6ee584d2cf05613130bad18875268c38b377e86dfefef177f",
+  "01a3ea5658f4e00622eeacf724e0bd82068992fae66ed2b04a8599be16662ef5",
+  "7ae4c58bc647b5646c9f5ae4c2554ccbf7c6e428e7b242a574a5a9c293c21f7e",
+  "69599ab5a829c3e9515128d368da7354a8b69fcee4e34d0a668b783b6cae550f",
+  "09024abaaef243e3b69366397e8dfc1fdc14a0ecc7cf497cbe4f328839acce69",
+  "9172922f96d2fa41ea0daf961857056f1656ab8406db80eaeae76af58f8c9f50",
+  "beab745a2a4b4e7f1a7335c3ffcdbd85139f3a72b667a01ee3e3ae0e530b3372",
+  "6850a20ac5b6d2fa7af7042ad5be234d3311b9fb303753dd2b610bd566983281",
+  "1287388eb2beeff706edb9cf4fcfdd35757f22541b61528570b86e8915be1530",
+  "84417826c0e80af7cb25a73af1ba87594ff7048a26248b5757e52f2824e068f1",
+  "51acd2e8910e7d28b4993db7e97e2b995005f26736f60dcdde94bdf8cb542251",
+  "b0fbe152849f49034d2fa00ccc7b960fad7b30b6c4f9f2713eb01c147146ad31",
+  "98508bb3590886af3be523b61c3d0ce6490bb8b27029878caec57e4c750f993d",
+  "a0ca9ff75afae65598630b3b93560834c7f4dd29a557aa29c7becd49aeef3753",
+  "3c5fad0516bb8ec53da1c16e910c23f792b971c7e2a0ee57d57c32e3655a646b",
+  "1d4e6df41544fb75740bae6a1b76932e1ccc463e0a4d3feb7da1e3e05bd59797",
+  "20a48a6e898dd507871fb8affbb4545f3a1d4232911cddb9238f3838a6cfe224",
+  "83be476de634460b5c802c5d2c509acc039a45845bdd30890db2f49244bcc4cd",
+  "bc5f960e8eebe12ae7bb32da9ceec44cdc0252e28bce8e94140f2ac8edb5e009",
+  "97350b0977d06146bd7609bfadc8af713d3c97af2929625e44ccdb66791c5427",
+  "95a07c43f29abbe3d5669cfeb47e9deb6ffabd750747fd00d7b6a6a961824a09",
+  "4de3fc72e672419c49d5ab43c350d54f1b85babc2efe147ebed9fb7a88567246",
+  "172c80045d66f23c288af430e6c0b4858c0c25d5fb3ffdda51e5d49306e5914b",
+  "ae86df433f1a10722ea8830701033a389b9a5658aa7cd5222b22c6eb35af4280",
+  "ffa827a11292ce6227c8b733ed23bb8f7ac0c228882d58d846841613ff0e553c",
+  "36d517adeb3e37f8bf7b27a04518f9cd8ed112ef70e2481592bad507e83d37ce",
+  "2e42504c343178102d2b64b3c546b85ec087b9a3049d01540efd9dd5533afc30",
+  "65953a9ab4c544df848a1d305222eadcc2239e65cd3d937d9ec38c2e4151e522",
+  "cb770813e75783503d18934e5ed5501f9dc6ee95f7fe0a5394ca9400c78e9012",
+  "d6916059a6c1633568bcc0e6778ad64ce74eb3b940dab7502492a6d8401ab371",
+  "9d0b3a8f98930853d5ce855a9fadc74b8b46e5ff7efe7e38348919455611ee4f",
+  "9de65213b5fee99d5f12044d5ad34f5e5cc0bec810306fdd80035b0a383eaab5",
+  "bd7826a4e359bdc02b44ed6c0c88150e347c21aa3c9efb219990a25946f6ca24",
+  "2ba79130ca3e18293e91f414da769124875d4bd16596774ec07b743b92409aea",
+  "f59213b5ce7f85f96ea55b2e848942dca95bf72cae42ebda4b7fb2908007fe08",
+  "ea629e6c5c876e330b138c039cfc5f26b140191d700da3f3524295839f0c0904",
+  "5677b2ccac1ee955bfcadb6eecc9abb31fac150ee09d6a4a9415b9a352c3d019",
+  "f85393caffdd45ff11884d57a11d636497d2c051bfddd1dd2daa720a3ad0e45e",
+  "7ca81cbc7bb7754c2c0682dad1c1bc9c3ebb9202fb2e92101cb2bc421e6dd13f",
+  "1036188858ad4a53b9808c969e6234c3d44c1dc88a5e66e609fae829db868eba",
+  "58b2d775c360a709cb4c782591dda15b7890eac0cc7e187806a4d7a4d976b579",
+  "b254226a148d8a70492c4a06db182b5f75459da97b930007882e37de7e34b8f1",
+  "943e0c1965f0a48005ebc09c3b0467a73a8f0dc15baaea8246e6e23ad78ed373",
+  "14c8805aa84895acf1cbf6d0dc01798ab28e74a88ca522986ea35c0457c6dc28",
+  "77f22c29a3684e9ca09fc10e914a5c2f72a5137c55d196eade12f39299d95b6d",
+  "c5a5617802640970768db50bffceaa5132522f5023d3b463c9aef6cc74393466",
+  "14b81b87c1794cfcfc95be94ab42ecf4d1f74acda9ab6b349c3c7051d779b476",
+  "0d281e20ec2e3561a20ebc908c1c5e9ffb1f850e597ffc91c8861d1c57ef3abe",
+  "4cb81c5f44401492c7a6623452cfe1f1d7a6e54c283b469e5fcd535a299f7811",
+  "100ac1f37bf0621e6527ae18d685629dc3bd922c31bd8308b4c3a8f02f358ec6",
+  "ea330c4a059829bde2b8b4cb97a4e7e06fa57be8182ad35f051811ae9519c60f",
+  "2eda104fea9cc2d548ec6b3714466b866551b118f8cbdf752387cf7f315f0b3c",
+  "bf90fe4fb92c11a0e80c7033a7cebbcc53560e5e0c4976da05db9d357d98c53d",
+  "c68d4ceead9a188d00ddcda391c5c036ecd5cd281f243aacaa327bbbf3384c7a",
+  "7b3dfda94889b562373af0b01f717451eaee15601c104433d3ecc58cf104c552",
+  "2d7564b0431d5d724744c5a9facf4e679dd8eb8fdf32c73fb2be92a65d50adb9",
+  "f8cbc4d1b9fa811e46ec6461c7f1e198191772531df34b8de0cbac623b48824e",
+  "0510e1e919a24a8a782607e957954eae4fe8335ef42b243d2b8d526690b221ff",
+  "0b1a23f0720626f078d9ddb5001350e822b0483080135bd9b6ff39c5183e0c0c",
+  "1d4156af645c1915e905e86b01c82e7739526c1ca9dee753def7cc3f5205dc38",
+  "5ed8d237564cb97cd55f02967348f337524a92caeb4aa8e84dd1bd4736b1e777",
+  "918348cc15950e2d21940da1f6f26e0111ac3a84af976fbb85d872b8d3375d63",
+  "d8a7d46a47d5ea29ae321ebe7531b12b9bd68efd45e5f8398121c25e701b4621",
+  "ca4e9d3319c955caf99827a0dce25d4d3d21330740c024bab3a1cf65dda8faae",
+  "6e18546401c4be1e3382f693c9aeef8e29cba23b97ffda97953d4a521ddce847",
+  "05ae3acb5b333b349f555340317d14eb252c498f4b5b7f0120863c046df25ed3",
+  "94c99367e2b56883160d5ad49b1cd027b1344bd16b7d84b58616b44ec3eeb119",
+  "f6133f9040410095b7420cca15c7c3edaa48f5c88f712022cc52115480cd491b",
+  "d8c7b1366530810f8e0f7eab483acb1ea23351f8ce48d3dde704ee0e648a0762",
+  "ca15df20fb126dd6cba6069c4d057c9f5846774ea2959c8242442b491c1db643",
+  "226e64adfd089c41f0c660e235a11591727db48171b2bb76e0ebafc02bff1b24",
+  "7a6685fd00c9ac478ae4878017ef4f4816dc8489f5fbb8122af687a8c7fc17bd",
+  "731ab275727d776f593c98995312181b8649bbbc5086832e0247c04812343a0a",
+  "5f11086c6b4e290c6f7a19b428062c19f94293bb6ae863e6661e7cd4611243cf",
+  "c149c23a0b660ea5da8bc8f6004ed3533732d524b4023915b1132b107b198b5c",
+  "230030447df3d9a9634091503eb94ee39737a8690c3f61bb122c7264bc00083d",
+  "63533931ea7fc2446f686678602dfc5c08596c1ded9b6382a1ba30158d2d036c",
+  "e014bb17434c3afba159c76328093ab0779073a40416051fd4ec4dbd12bc2777",
+  "923878089012dc6460b49d59a1c866878a950293943048f082ecd6dc12a7c37f",
+  "14a7aa0360bb1f5b60f2fd28c3c370d7d560cead49aa15452c5acfe961227d92",
+  "b264722169444cad7e94ca1d9d0981f27c0654e322d1a0dce5e83cbce4e3114c",
+  "b39f23638ef80f290a18df4f01a78f52f95594a030decf99f9a7f1501e3207f7",
+  "86be13dc0760d575d6dd82f4a24995737fe57f979fa64014537af371f38d0d16",
+  "2ab3090ae695ab5a8be8ca3e7ce9d1b0731cbd999686ecdcea6a32757c2a6c03",
+  "9d555bd024126df6a9e2c016a29f2bd997f24e1b1a0456332a746c2f53ac3620",
+  "d298c05fd81f21dd1c27a2b0d75089d50ed25a91d42a7cd3a4b86de6f5f43a66",
+  "fedc39590410c38a1498450ea92145ee34a2a3c10830f859b90cb5251904255e",
+  "fbdbe3cb4a82278caaaedd21ccb1b77f93849073a11722b12880da02f8d0aebb",
+  "b1fbbc3b0c25f506d291e3ce0a0eaa5729caf55efdb0f0c25333de43ec12753c",
+  "f5341a8229f50d5781b8d87d43bda44b3cf9cbd33fc461f8962c5d98f79c42dd",
+  "12335ee256477057c10a7a7f4c115962e6dc2e8ed8547f2e8b76e701cec62215",
+  "ef42d90bc355b8c2aa1516b55cdb3dfcc897a1af505738f2b67f31c1cca7bc0f",
+  "2777938f38843d91a170d647de2e05c599ed5641b833608fe0dc742483f0e00f",
+  "6f8fe7c709a31163e7660a2067abd95ee5436c1055f04d33b76db9a88c7d875b",
+  "89332639ead9698e0a9bf4fe2979a5045a391190fa15c7e8f3884007b7e9da13",
+};
+static size_t nb_elligator_dir_vectors=108;
index e1c5b55158ac5cedc7b5f1ef8b76bb95afee8745..44e50826371b1dce58e90b6b0f27ffd529ea02b1 100644 (file)
@@ -9,7 +9,7 @@
 //
 // ------------------------------------------------------------------------
 //
-// Copyright (c) 2020, Mike Pechkin
+// Copyright (c) 2020, Mike Pechkin and Loup Vaillant
 // All rights reserved.
 //
 //
@@ -39,7 +39,7 @@
 //
 // ------------------------------------------------------------------------
 //
-// Written in 2017-2020 by Mike Pechkin
+// Written in 2017-2020 by Mike Pechkin and Loup Vaillant
 //
 // To the extent possible under law, the author(s) have dedicated all copyright
 // and related neighboring rights to this software to the public domain
@@ -51,6 +51,8 @@
 
 #include "monocypher.h"
 #include "monocypher-ed25519.h"
+#include "utils.h"
+#include "tis-ci-vectors.h"
 
 typedef uint8_t u8;
 
@@ -58,6 +60,59 @@ typedef uint8_t u8;
     u8 name[size];                                      \
     for(size_t i = 0; i < size; i++) name[i] = i;
 
+static void chacha20(vector_reader *reader)
+{
+    vector key       = next_input(reader);
+    vector nonce     = next_input(reader);
+    vector plain     = next_input(reader);
+    u64    ctr       = load64_le(next_input(reader).buf);
+    vector out       = next_output(reader);
+    u64    nb_blocks = plain.size / 64 + (plain.size % 64 != 0);
+    u64    new_ctr   = crypto_chacha20_ctr(out.buf, plain.buf, plain.size,
+                                            key.buf, nonce.buf, ctr);
+    if (new_ctr - ctr != nb_blocks) {
+        printf("FAILURE: Chacha20 returned counter not correct: ");
+    }
+}
+
+static void ietf_chacha20(vector_reader *reader)
+{
+    vector key       = next_input(reader);
+    vector nonce     = next_input(reader);
+    vector plain     = next_input(reader);
+    u64    ctr       = load64_le(next_input(reader).buf);
+    vector out       = next_output(reader);
+    u32    nb_blocks = (u32)(plain.size / 64 + (plain.size % 64 != 0));
+    u32    new_ctr   = crypto_ietf_chacha20_ctr(out.buf, plain.buf, plain.size,
+                                                 key.buf, nonce.buf, ctr);
+    if (new_ctr - ctr != nb_blocks) {
+        printf("FAILURE: IETF Chacha20 returned counter not correct: ");
+    }
+}
+
+static void hchacha20(vector_reader *reader)
+{
+    vector key   = next_input(reader);
+    vector nonce = next_input(reader);
+    vector out   = next_output(reader);
+    crypto_hchacha20(out.buf, key.buf, nonce.buf);
+}
+
+static void xchacha20(vector_reader *reader)
+{
+    vector key       = next_input(reader);
+    vector nonce     = next_input(reader);
+    vector plain     = next_input(reader);
+    u64    ctr       = load64_le(next_input(reader).buf);
+    vector out       = next_output(reader);
+    u64    nb_blocks = plain.size / 64 + (plain.size % 64 != 0);
+    u64    new_ctr   = crypto_xchacha20_ctr(out.buf, plain.buf, plain.size,
+                                             key.buf, nonce.buf, ctr);
+    if (new_ctr - ctr != nb_blocks) {
+        printf("FAILURE: XChacha20 returned counter not correct: ");
+    }
+}
+
 void p1305(void) {
     ARRAY(mac, 16);
     ARRAY(key, 32);
@@ -259,7 +314,22 @@ void sign_check_ed25519(void) {
     crypto_ed25519_check(hash, pub, in, 32);
 }
 
+#define TEST(name)                                                      \
+    int v_##name() {                                                    \
+        return vector_test(name, #name, nb_##name##_vectors, name##_vectors); \
+    }
+
+TEST(chacha20)
+TEST(ietf_chacha20)
+TEST(hchacha20)
+TEST(xchacha20)
+
 int main(void) {
+    int status = 0;
+    status |= v_chacha20      ();
+    status |= v_ietf_chacha20 ();
+    status |= v_hchacha20     ();
+    status |= v_xchacha20     ();
     p1305();
     blake2b();
     verify();
@@ -283,5 +353,5 @@ int main(void) {
     sha512();
     hmac();
     sign_check_ed25519();
-    return 0;
+    return status;
 }
index a3f478bbf62b0d07ad1f02d142f3535eb76a833e..7f8ad154f2ac93eda444febc9a688180a95ab9c7 100644 (file)
@@ -1,9 +1,970 @@
 // auto generated with tests/gen-tis-config.sh
 [
+{ "name"           : "v_chacha20 - sparc_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "sparc_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - sparc_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "sparc_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - x86_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - x86_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - x86_16"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_16"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - x86_16_huge"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_16_huge"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - x86_win32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_win32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - x86_win64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_win64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - armeb_eabi"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "armeb_eabi"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - arm_eabi"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "arm_eabi"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - aarch64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "aarch64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - aarch64eb"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "aarch64eb"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - rv64ifdq"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "rv64ifdq"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - rv32ifdq"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "rv32ifdq"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - mips_o32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_o32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - mips_n32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_n32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - mips_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - mipsel_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mipsel_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - mipsel_n32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mipsel_n32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_chacha20 - apple_ppc_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "apple_ppc_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - sparc_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "sparc_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - sparc_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "sparc_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - x86_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - x86_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - x86_16"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_16"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - x86_16_huge"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_16_huge"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - x86_win32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_win32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - x86_win64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_win64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - armeb_eabi"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "armeb_eabi"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - arm_eabi"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "arm_eabi"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - aarch64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "aarch64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - aarch64eb"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "aarch64eb"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - rv64ifdq"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "rv64ifdq"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - rv32ifdq"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "rv32ifdq"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - mips_o32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_o32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - mips_n32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_n32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - mips_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - mipsel_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mipsel_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - mipsel_n32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mipsel_n32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_ietf_chacha20 - apple_ppc_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "apple_ppc_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_ietf_chacha20"
+},
+{ "name"           : "v_hchacha20 - sparc_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "sparc_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - sparc_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "sparc_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - x86_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - x86_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - x86_16"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_16"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - x86_16_huge"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_16_huge"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - x86_win32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_win32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - x86_win64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_win64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - armeb_eabi"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "armeb_eabi"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - arm_eabi"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "arm_eabi"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - aarch64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "aarch64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - aarch64eb"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "aarch64eb"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - rv64ifdq"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "rv64ifdq"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - rv32ifdq"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "rv32ifdq"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - mips_o32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_o32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - mips_n32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_n32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - mips_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - mipsel_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mipsel_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - mipsel_n32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mipsel_n32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_hchacha20 - apple_ppc_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "apple_ppc_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_hchacha20"
+},
+{ "name"           : "v_xchacha20 - sparc_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "sparc_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - sparc_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "sparc_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - x86_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - x86_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - x86_16"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_16"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - x86_16_huge"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_16_huge"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - x86_win32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_win32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - x86_win64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "x86_win64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - armeb_eabi"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "armeb_eabi"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - arm_eabi"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "arm_eabi"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - aarch64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "aarch64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - aarch64eb"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "aarch64eb"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - rv64ifdq"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "rv64ifdq"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - rv32ifdq"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "rv32ifdq"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - mips_o32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_o32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - mips_n32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_n32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - mips_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mips_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - mipsel_64"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mipsel_64"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - mipsel_n32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "mipsel_n32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
+{ "name"           : "v_xchacha20 - apple_ppc_32"
+, "files"          :
+  [ "src/monocypher.c"
+  , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
+  , "tests/tis-ci.c"
+  ]
+, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
+, "machdep"        : "apple_ppc_32"
+, "raw_options"    : { "-no-results" : "true" }
+, "main"           : "v_xchacha20"
+},
 { "name"           : "p1305 - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
+  , "tests/utils.c"
   , "tests/tis-ci.c"
   ]
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"