17 #include "absl/strings/escaping.h"
18 #include "gmock/gmock.h"
19 #include "gtest/gtest.h"
23 static const uint64_t kCurrentSeed = 0;
24 static const uint64_t kSalt[5] = {0xa0761d6478bd642f, 0xe7037ed1a0b428db
l,
25 0x8ebc6af09c88c6e3, 0x589965cc75374cc3
l,
31 TEST(WyhashTest, EmptyString) {
38 TEST(WyhashTest, Spaces) {
45 TEST(WyhashTest, RepeatingString) {
52 TEST(WyhashTest, HexString) {
58 11989428023081740911
ULL);
61 9765997711188871556
ULL);
64 TEST(WyhashTest, Words) {
71 TEST(WyhashTest, LongString) {
73 "AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOpQrStUvWxYz"
74 "0123456789AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOp"
75 "QrStUvWxYz0123456789AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEf"
76 "GhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOpQrStUvWxYz012345"
77 "6789AbCdEfGhIjKlMnOpQrStUvWxYz0123456789";
81 9245411362605796064
ULL);
84 TEST(WyhashTest, BigReference) {
89 } expected_results[] = {
97 {
"6OeNdlouYw==",
uint64_t{0x77b5d6d1ae1dd483},
99 {
"M5/JmmYyDbc=",
uint64_t{0x89ab8ecb44d221f1},
101 {
"MVijWiVdBRdY",
uint64_t{0x60244b17577ca81b},
103 {
"6V7Uq7LNxpu0VA==",
uint64_t{0x59a08dcee0717067},
105 {
"EQ6CdEEhPdyHcOk=",
uint64_t{0xf5f20db3ade57396},
107 {
"PqFB4fxnPgF+l+rc",
uint64_t{0xbf8dee0751ad3efb},
109 {
"a5aPOFwq7LA7+zKvPA==",
uint64_t{0x6b7a06b268d63e30},
111 {
"VOwY21wCGv5D+/qqOvs=",
uint64_t{0xb8c37f0ae0f54c82},
113 {
"KdHmBTx8lHXYvmGJ+Vy7",
uint64_t{0x9fcbed0c38e50eef},
115 {
"qJkPlbHr8bMF7/cA6aE65Q==",
uint64_t{0x2af4bade1d8e3a1d},
117 {
"ygvL0EhHZL0fIx6oHHtkxRQ=",
uint64_t{0x714e3aa912da2f2c},
119 {
"c1rFXkt5YztwZCQRngncqtSs",
uint64_t{0xf5ee75e3cbb82c1c},
121 {
"8hsQrzszzeNQSEcVXLtvIhm6mw==",
uint64_t{0x620e7007321b93b9},
123 {
"ffUL4RocfyP4KfikGxO1yk7omDI=",
uint64_t{0xc08528cac2e551fc},
125 {
"OOB5TT00vF9Od/rLbAWshiErqhpV",
uint64_t{0x6a1debf9cc3ad39},
127 {
"or5wtXM7BFzTNpSzr+Lw5J5PMhVJ/Q==",
uint64_t{0x7e0a3c88111fc226},
129 {
"gk6pCHDUsoopVEiaCrzVDhioRKxb844=",
uint64_t{0x1301fef15df39edb},
131 {
"TNctmwlC5QbEM6/No4R/La3UdkfeMhzs",
uint64_t{0x64e181f3d5817ab},
133 {
"SsQw9iAjhWz7sgcE9OwLuSC6hsM+BfHs2Q==",
uint64_t{0xafafc44961078ecb},
135 {
"ZzO3mVCj4xTT2TT3XqDyEKj2BZQBvrS8RHg=",
uint64_t{0x4f7bb45549250094},
137 {
"+klp5iPQGtppan5MflEls0iEUzqU+zGZkDJX",
uint64_t{0xa30061abaa2818c},
139 {
"RO6bvOnlJc8I9eniXlNgqtKy0IX6VNg16NRmgg==",
uint64_t{0xd902ee3e44a5705f},
141 {
"ZJjZqId1ZXBaij9igClE3nyliU5XWdNRrayGlYA=",
uint64_t{0x316d36da516f583},
143 {
"7BfkhfGMDGbxfMB8uyL85GbaYQtjr2K8g7RpLzr/",
uint64_t{0x402d83f9f834f616},
145 {
"rycWk6wHH7htETQtje9PidS2YzXBx+Qkg2fY7ZYS7A==",
147 {
"RTkC2OUK+J13CdGllsH0H5WqgspsSa6QzRZouqx6pvI=",
149 {
"tKjKmbLCNyrLCM9hycOAXm4DKNpM12oZ7dLTmUx5iwAi",
151 {
"VprUGNH+5NnNRaORxgH/ySrZFQFDL+4VAodhfBNinmn8cg==",
153 {
"gc1xZaY+q0nPcUvOOnWnT3bqfmT/geth/f7Dm2e/DemMfk4=",
155 {
"Mr35fIxqx1ukPAL0su1yFuzzAU3wABCLZ8+ZUFsXn47UmAph",
157 {
"A9G8pw2+m7+rDtWYAdbl8tb2fT7FFo4hLi2vAsa5Y8mKH3CX3g==",
159 {
"DFaJGishGwEHDdj9ixbCoaTjz9KS0phLNWHVVdFsM93CvPft3hM=",
161 {
"7+Ugx+Kr3aRNgYgcUxru62YkTDt5Hqis+2po81hGBkcrJg4N0uuy",
163 {
"H2w6O8BUKqu6Tvj2xxaecxEI2wRgIgqnTTG1WwOgDSINR13Nm4d4Vg==",
165 {
"1XBMnIbqD5jy65xTDaf6WtiwtdtQwv1dCVoqpeKj+7cTR1SaMWMyI04=",
167 {
"znZbdXG2TSFrKHEuJc83gPncYpzXGbAebUpP0XxzH0rpe8BaMQ17nDbt",
169 {
"ylu8Atu13j1StlcC1MRMJJXIl7USgDDS22HgVv0WQ8hx/8pNtaiKB17hCQ==",
171 {
"M6ZVVzsd7vAvbiACSYHioH/440dp4xG2mLlBnxgiqEvI/aIEGpD0Sf4VS0g=",
173 {
"li3oFSXLXI+ubUVGJ4blP6mNinGKLHWkvGruun85AhVn6iuMtocbZPVhqxzn",
175 {
"kFuQHuUCqBF3Tc3hO4dgdIp223ShaCoog48d5Do5zMqUXOh5XpGK1t5XtxnfGA==",
177 {
"jWmOad0v0QhXVJd1OdGuBZtDYYS8wBVHlvOeTQx9ZZnm8wLEItPMeihj72E0nWY=",
179 {
"z+DHU52HaOQdW4JrZwDQAebEA6rm13Zg/9lPYA3txt3NjTBqFZlOMvTRnVzRbl23",
181 {
"MmBiGDfYeTayyJa/tVycg+rN7f9mPDFaDc+23j0TlW9094er0ADigsl4QX7V3gG/qw==",
183 {
"774RK+9rOL4iFvs1q2qpo/JVc/I39buvNjqEFDtDvyoB0FXxPI2vXqOrk08VPfIHkmU=",
185 {
"+slatXiQ7/2lK0BkVUI1qzNxOOLP3I1iK6OfHaoxgqT63FpzbElwEXSwdsryq3UlHK0I",
187 {
"64mVTbQ47dHjHlOHGS/hjJwr/"
188 "K2frCNpn87exOqMzNUVYiPKmhCbfS7vBUce5tO6Ec9osQ==",
190 {
"fIsaG1r530SFrBqaDj1kqE0AJnvvK8MNEZbII2Yw1OK77v0V59xabIh0B5axaz/"
193 {
"PGih0zDEOWCYGxuHGDFu9Ivbff/"
194 "iE7BNUq65tycTR2R76TerrXALRosnzaNYO5fjFhTi+CiS",
197 "zJnEnnLjmICORByRVb9bCOgxF44p3VMiW10G7PvW7IhwsWajlP9kIwNA9FjAD2GoQHk2Q="
200 {
"qFklMceaTHqJpy2qavJE+EVBiNFOi6OxjOA3LeIcBop1K7w8xQi3TrDk+"
201 "BrWPRIbfprszSaPfrI=",
203 {
"cLbfUtLl3EcQmITWoTskUR8da/VafRDYF/ylPYwk7/"
204 "zazk6ssyrzxMN3mmSyvrXR2yDGNZ3WDrTT",
208 "FbsbCpXWPTUSeWyMH6e4CvTFvPE5Fs6Z8hvFITGyr0dtukHzkI84oviVLxhM1xMxrMAy1db"
211 {
"FvyQ00+j7nmYZVQ8hI1Edxd0AWplhTfWuFGiu34AK5X8u2hLX1bE97sZM0CmeLe+"
214 {
"L8ncxMaYLBH3g9buPu8hfpWZNlOF7nvWLNv9IozH07uQsIBWSKxoPy8+"
215 "LW4tTuzC6CIWbRGRRD1sQV/4",
217 {
"CDK0meI07yrgV2kQlZZ+"
218 "wuVqhc2NmzqeLH7bmcA6kchsRWFPeVF5Wqjjaj556ABeUoUr3yBmfU3kWOakkg==",
221 "HkMiq+gYk4gaCNYyuFKwUkvn46t+dfVcKfBTYykr4kdvAPNXGYLjM4u1YkAEFpJP+"
224 {
"NUR3SRxBkxTSbtQORJpu/GdR6b/h6sSGfsMj/KFd99ahbh+9r7LSgSGmkGVB/"
225 "mGoT0pnMTQst7Lv2q6QN6Vm",
227 {
"2BOFlcI3Z0RYDtS9T9Ie9yJoXlOdigpPeeT+CRujb/"
228 "O39Ih5LPC9hP6RQk1kYESGyaLZZi3jtabHs7DiVx/VDg==",
230 {
"FF2HQE1FxEvWBpg6Z9zAMH+Zlqx8S1JD/"
231 "wIlViL6ZDZY63alMDrxB0GJQahmAtjlm26RGLnjW7jmgQ4Ie3I+014=",
233 {
"tHmO7mqVL/PX11nZrz50Hc+M17Poj5lpnqHkEN+4bpMx/"
234 "YGbkrGOaYjoQjgmt1X2QyypK7xClFrjeWrCMdlVYtbW",
236 {
"/WiHi9IQcxRImsudkA/KOTqGe8/"
237 "gXkhKIHkjddv5S9hi02M049dIK3EUyAEjkjpdGLUs+BN0QzPtZqjIYPOgwsYE9g==",
239 {
"qds+1ExSnU11L4fTSDz/QE90g4Jh6ioqSh3KDOTOAo2pQGL1k/"
240 "9CCC7J23YF27dUTzrWsCQA2m4epXoCc3yPHb3xElA=",
242 {
"8FVYHx40lSQPTHheh08Oq0/"
243 "pGm2OlG8BEf8ezvAxHuGGdgCkqpXIueJBF2mQJhTfDy5NncO8ntS7vaKs7sCNdDaNGOEi",
245 {
"4ZoEIrJtstiCkeew3oRzmyJHVt/pAs2pj0HgHFrBPztbQ10NsQ/"
246 "lM6DM439QVxpznnBSiHMgMQJhER+70l72LqFTO1JiIQ==",
248 {
"hQPtaYI+wJyxXgwD5n8jGIKFKaFA/"
249 "P83KqCKZfPthnjwdOFysqEOYwAaZuaaiv4cDyi9TyS8hk5cEbNP/jrI7q6pYGBLbsM=",
251 {
"S4gpMSKzMD7CWPsSfLeYyhSpfWOntyuVZdX1xSBjiGvsspwOZcxNKCRIOqAA0moUfOh3I5+"
252 "juQV4rsqYElMD/gWfDGpsWZKQ",
255 "bthuDLT4j0PcoSKby4LhF47ZKg8K17xxHf74UsGCzTBbOz0MM8hQEGlyqDT1iUiAYnaPaUp"
256 "L2mRK0rcIUYA4qLt5uOw==",
260 "BtLSjxj5989OXI004TogEb94VUnDzOVSgMXie72cuYRvTFNIBgtXlKfkiUjeqVpd4a+"
261 "n5bxNOD1TGrjQtzKU5r7obo=",
263 {
"E84YZW2qipAlMPmctrg7TKlwLZ68l4L+c0xRDUfyyFrA4MAti0q9sHq3TDFviH0Y+"
264 "Kq3tEE5srWFA8LM9oomtmvm5PYxoaarWPLc",
266 {
"x3pa4HIElyZG0Nj7Vdy9IdJIR4izLmypXw5PCmZB5y68QQ4uRaVVi3UthsoJROvbjDJkP2D"
267 "Q6L/eN8pFeLFzNPKBYzcmuMOb5Ull7w==",
270 "QKLdd2wi8B2VJA8Wh0c8PwrXJVM8FOGM3voPDVPyDJOU6QsBDPseoR8uuKd19OZ/"
271 "zAvSCB+zlf6upAsBlheUKgCfKww=",
273 {
"mkquunhmYe1aR2wmUz4vcvLEcKBoe6H+kjUok9VUn2+eTSkWs4oDDtJvNCWtY5efJwg/"
274 "j4PgjRYWtqnrCkhaqJaEvkkOwVfgMIwF3e+d",
276 {
"fRelvKYonTQ+s+rnnvQw+JzGfFoPixtna0vzcSjiDqX5s2Kg2//"
277 "UGrK+AVCyMUhO98WoB1DDbrsOYSw2QzrcPe0+3ck9sePvb+Q/IRaHbw==",
279 {
"DUwXFJzagljo44QeJ7/"
280 "6ZKw4QXV18lhkYT2jglMr8WB3CHUU4vdsytvw6AKv42ZcG6fRkZkq9fpnmXy6xG0aO3WPT1"
281 "eHuyFirAlkW+zKtwg=",
283 {
"cYmZCrOOBBongNTr7e4nYn52uQUy2mfe48s50JXx2AZ6cRAt/"
284 "xRHJ5QbEoEJOeOHsJyM4nbzwFm++SlT6gFZZHJpkXJ92JkR86uS/eV1hJUR",
286 {
"EXeHBDfhwzAKFhsMcH9+2RHwV+mJaN01+9oacF6vgm8mCXRd6jeN9U2oAb0of5c5cO4i+"
287 "Vb/LlHZSMI490SnHU0bejhSCC2gsC5d2K30ER3iNA==",
289 {
"FzkzRYoNjkxFhZDso94IHRZaJUP61nFYrh5MwDwv9FNoJ5jyNCY/"
290 "eazPZk+tbmzDyJIGw2h3GxaWZ9bSlsol/vK98SbkMKCQ/wbfrXRLcDzdd/8=",
292 {
"Re4aXISCMlYY/XsX7zkIFR04ta03u4zkL9dVbLXMa/q6hlY/CImVIIYRN3VKP4pnd0AUr/"
293 "ugkyt36JcstAInb4h9rpAGQ7GMVOgBniiMBZ/MGU7H",
295 {
"ueLyMcqJXX+MhO4UApylCN9WlTQ+"
296 "ltJmItgG7vFUtqs2qNwBMjmAvr5u0sAKd8jpzV0dDPTwchbIeAW5zbtkA2NABJV6hFM48ib"
299 {
"6Si7Yi11L+jZMkwaN+GUuzXMrlvEqviEkGOilNq0h8TdQyYKuFXzkYc/"
300 "q74gP3pVCyiwz9KpVGMM9vfnq36riMHRknkmhQutxLZs5fbmOgEO69HglCU=",
302 {
"Q6AbOofGuTJOegPh9Clm/"
303 "9crtUMQqylKrTc1fhfJo1tqvpXxhU4k08kntL1RG7woRnFrVh2UoMrL1kjin+s9CanT+"
304 "y4hHwLqRranl9FjvxfVKm3yvg68",
306 {
"ieQEbIPvqY2YfIjHnqfJiO1/MIVRk0RoaG/WWi3kFrfIGiNLCczYoklgaecHMm/"
307 "1sZ96AjO+a5stQfZbJQwS7Sc1ODABEdJKcTsxeW2hbh9A6CFzpowP1A==",
309 {
"zQUv8hFB3zh2GGl3KTvCmnfzE+"
310 "SUgQPVaSVIELFX5H9cE3FuVFGmymkPQZJLAyzC90Cmi8GqYCvPqTuAAB//"
311 "XTJxy4bCcVArgZG9zJXpjowpNBfr3ngWrSE=",
313 {
"US4hcC1+op5JKGC7eIs8CUgInjKWKlvKQkapulxW262E/"
314 "B2ye79QxOexf188u2mFwwe3WTISJHRZzS61IwljqAWAWoBAqkUnW8SHmIDwHUP31J0p5sGd"
317 {
"9bHUWFna2LNaGF6fQLlkx1Hkt24nrkLE2CmFdWgTQV3FFbUe747SSqYw6ebpTa07MWSpWRP"
318 "sHesVo2B9tqHbe7eQmqYebPDFnNqrhSdZwFm9arLQVs+7a3Ic6A==",
320 {
"Kb3DpHRUPhtyqgs3RuXjzA08jGb59hjKTOeFt1qhoINfYyfTt2buKhD6YVffRCPsgK9SeqZ"
321 "qRPJSyaqsa0ovyq1WnWW8jI/NhvAkZTVHUrX2pC+cD3OPYT05Dag=",
323 {
"gzxyMJIPlU+bJBwhFUCHSofZ/"
324 "319LxqMoqnt3+L6h2U2+ZXJCSsYpE80xmR0Ta77Jq54o92SMH87HV8dGOaCTuAYF+"
325 "lDL42SY1P316Cl0sZTS2ow3ZqwGbcPNs/1",
327 {
"uR7V0TW+FGVMpsifnaBAQ3IGlr1wx5sKd7TChuqRe6OvUXTlD4hKWy8S+"
328 "8yyOw8lQabism19vOQxfmocEOW/"
329 "vzY0pEa87qHrAZy4s9fH2Bltu8vaOIe+agYohhYORQ==",
331 {
"1UR5eoo2aCwhacjZHaCh9bkOsITp6QunUxHQ2SfeHv0imHetzt/"
332 "Z70mhyWZBalv6eAx+YfWKCUib2SHDtz/"
333 "A2dc3hqUWX5VfAV7FQsghPUAtu6IiRatq4YSLpDvKZBQ=",
335 {
"opubR7H63BH7OtY+Avd7QyQ25UZ8kLBdFDsBTwZlY6gA/"
337 "czC9AaZMgmQrUy15DH7YMGsvdXnviTtI4eVI4aF1H9Rl3NXMKZgwFOsdTfdcZeeHVRzBBKX"
340 {
"DC0kXcSXtfQ9FbSRwirIn5tgPri0sbzHSa78aDZVDUKCMaBGyFU6BmrulywYX8yzvwprdLs"
341 "oOwTWN2wMjHlPDqrvVHNEjnmufRDblW+nSS+xtKNs3N5xsxXdv6JXDrAB/Q==",
343 {
"BXRBk+3wEP3Lpm1y75wjoz+PgB0AMzLe8tQ1AYU2/"
344 "oqrQB2YMC6W+9QDbcOfkGbeH+b7IBkt/"
345 "gwCMw2HaQsRFEsurXtcQ3YwRuPz5XNaw5NAvrNa67Fm7eRzdE1+hWLKtA8=",
347 {
"RRBSvEGYnzR9E45Aps/+WSnpCo/X7gJLO4DRnUqFrJCV/kzWlusLE/"
348 "6ZU6RoUf2ROwcgEvUiXTGjLs7ts3t9SXnJHxC1KiOzxHdYLMhVvgNd3hVSAXODpKFSkVXND"
351 {
"jeh6Qazxmdi57pa9S3XSnnZFIRrnc6s8QLrah5OX3SB/V2ErSPoEAumavzQPkdKF1/"
352 "SfvmdL+qgF1C+Yawy562QaFqwVGq7+tW0yxP8FStb56ZRgNI4IOmI30s1Ei7iops9Uuw==",
355 "wrUXpltlKy2dSBcmK15fOY092CR7KxAjNfaY+"
356 "aAmtWbbzQk3MjBg03x39afSUN1fkrWACdyQKRaGxgwq6MGNxI6W+8DLWJBHzIXrntrE/"
357 "ml6fnNXEpxplWJ1vEs4=",
359 {
"0oPxeEHhqhcFuwonNfLd5jF3RNATGZS6NPoS0WklnzyokbTqcl4BeBkMn07+fDQv83j/"
360 "BpGUwcWO05f3+DYzocfnizpFjLJemFGsls3gxcBYxcbqWYev51tG3lN9EvRE+X9+Pwww",
362 {
"naSBSjtOKgAOg8XVbR5cHAW3Y+QL4Pb/JO9/"
363 "oy6L08wvVRZqo0BrssMwhzBP401Um7A4ppAupbQeJFdMrysY34AuSSNvtNUy5VxjNECwiNt"
364 "gwYHw7yakDUv8WvonctmnoSPKENegQg==",
366 {
"vPyl8DxVeRe1OpilKb9KNwpGkQRtA94UpAHetNh+"
367 "95V7nIW38v7PpzhnTWIml5kw3So1Si0TXtIUPIbsu32BNhoH7QwFvLM+"
368 "JACgSpc5e3RjsL6Qwxxi11npwxRmRUqATDeMUfRAjxg=",
370 {
"QC9i2GjdTMuNC1xQJ74ngKfrlA4w3o58FhvNCltdIpuMhHP1YsDA78scQPLbZ3OCUgeQguY"
371 "f/vw6zAaVKSgwtaykqg5ka/4vhz4hYqWU5ficdXqClHl+zkWEY26slCNYOM5nnDlly8Cj",
373 {
"7CNIgQhAHX27nxI0HeB5oUTnTdgKpRDYDKwRcXfSFGP1XeT9nQF6WKCMjL1tBV6x7KuJ91G"
374 "Zz11F4c+8s+MfqEAEpd4FHzamrMNjGcjCyrVtU6y+7HscMVzr7Q/"
375 "ODLcPEFztFnwjvCjmHw==",
377 {
"Qa/hC2RPXhANSospe+gUaPfjdK/yhQvfm4cCV6/pdvCYWPv8p1kMtKOX3h5/"
378 "8oZ31fsmx4Axphu5qXJokuhZKkBUJueuMpxRyXpwSWz2wELx5glxF7CM0Fn+"
379 "OevnkhUn5jsPlG2r5jYlVn8=",
381 {
"kUw/0z4l3a89jTwN5jpG0SHY5km/"
382 "IVhTjgM5xCiPRLncg40aqWrJ5vcF891AOq5hEpSq0bUCJUMFXgct7kvnys905HjerV7Vs1G"
383 "y84tgVJ70/2+pAZTsB/PzNOE/G6sOj4+GbTzkQu819OLB",
385 {
"VDdfSDbO8Tdj3T5W0XM3EI7iHh5xpIutiM6dvcJ/fhe23V/srFEkDy5iZf/"
386 "VnA9kfi2C79ENnFnbOReeuZW1b3MUXB9lgC6U4pOTuC+"
387 "jHK3Qnpyiqzj7h3ISJSuo2pob7vY6VHZo6Fn7exEqHg==",
389 {
"Ldfvy3ORdquM/R2fIkhH/ONi69mcP1AEJ6n/"
390 "oropwecAsLJzQSgezSY8bEiEs0VnFTBBsW+RtZY6tDj03fnb3amNUOq1b7jbqyQkL9hpl+"
391 "2Z2J8IaVSeownWl+bQcsR5/xRktIMckC5AtF4YHfU=",
394 "VzZAjJw6QLirXzhweCVRfwlczzZ0VX2xluskwBqyfnGovz5EuX79JJ31VNXa5hTkAyQat3l"
395 "YKRADTdAdwE5PqM1N7YaMqqsqoAAAeuYVXuk5eWCykYmClNdSspegwgCuT+403JigBzi",
397 {
"gB3NGHJJvVcuPyF0ZSvHwnWSIfmaI7La24VMPQVoIIWF7Z74NltPZZpx2f+cocESM+"
398 "ILzQW9p+BC8x5IWz7N4Str2WLGKMdgmaBfNkEhSHQDU0IJEOnpUt0HmjhFaBlx0/"
399 "LTmhua+rQ6Wup8ezLwfg==",
401 {
"hTKHlRxx6Pl4gjG+6ksvvj0CWFicUg3WrPdSJypDpq91LUWRni2KF6+"
402 "81ZoHBFhEBrCdogKqeK+hy9bLDnx7g6rAFUjtn1+cWzQ2YjiOpz4+"
403 "ROBB7lnwjyTGWzJD1rXtlso1g2qVH8XJVigC5M9AIxM=",
405 {
"IWQBelSQnhrr0F3BhUpXUIDauhX6f95Qp+A0diFXiUK7irwPG1oqBiqHyK/SH/"
407 "rln9DlFROAmeFdH0OCJi2tFm4afxYzJTFR4HnR4cG4x12JqHaZLQx6iiu6CE3rtWBVz99oA"
411 "1dOXdLvIrFqeLaHdm0HZnbcdEgOoLVcGRiCbAMR0j5pIFw8D36tefckAS1RCFOH5IgP8yiF"
413 "fTKA7iK96NekxWeoeqzJyctc6QsoiyBlkZerRxs5RplrxoeNg29kKDTM0K94mnhD9g==",
415 {
"YU4e7G6EfQYvxCFoCrrT0EFgVLHFfOWRTJQJ5gxM3G2b+"
416 "1kJf9YPrpsxF6Xr6nYtS8reEEbDoZJYqnlk9lXSkVArm88Cqn6d25VCx3+"
417 "49MqC0trIlXtb7SXUUhwpJK16T0hJUfPH7s5cMZXc6YmmbFuBNPE=",
420 "eImMwPo1U6wekNFD1Jxjk9XQVi1D+"
421 "FPdqcHifYXQuP5aScNQfxMAmaPR2XhuOQhADV5tTVbBKwCDCX4E3jcDNHzCiPvViZF1W27t"
422 "xaf2BbFQdwKrNCmrtzcluBFYu0XZfc7RU1RmxK/RtnF1qHsq/O4pp",
424 {
"CJTT9WGcY2XykTdo8KodRIA29qsqY0iHzWZRjKHb9alwyJ7RZAE3V5Juv4MY3MeYEr1EPCC"
425 "MxO7yFXqT8XA8YTjaMp3bafRt17Pw8JC4iKJ1zN+WWKOESrj+"
426 "3aluGQqn8z1EzqY4PH7rLG575PYeWsP98BugdA==",
428 {
"ZlhyQwLhXQyIUEnMH/"
429 "AEW27vh9xrbNKJxpWGtrEmKhd+nFqAfbeNBQjW0SfG1YI0xQkQMHXjuTt4P/"
430 "EpZRtA47ibZDVS8TtaxwyBjuIDwqcN09eCtpC+Ls+"
431 "vWDTLmBeDM3u4hmzz4DQAYsLiZYSJcldg9Q3wszw=",
433 {
"v2KU8y0sCrBghmnm8lzGJlwo6D6ObccAxCf10heoDtYLosk4ztTpLlpSFEyu23MLA1tJkcg"
435 "wc93EXAweriBqXfvdaP85sZABwiKO+6rtS9pacRVpYYhHJeVTQ5NzrvBvi1huxAr+"
438 {
"QhKlnIS6BuVCTQsnoE67E/"
439 "yrgogE8EwO7xLaEGei26m0gEU4OksefJgppDh3X0x0Cs78Dr9IHK5b977CmZlrTRmwhlP8p"
440 "M+UzXPNRNIZuN3ntOum/QhUWP8SGpirheXENWsXMQ/"
441 "nxtxakyEtrNkKk471Oov9juP8oQ==",
443 {
"/ZRMgnoRt+Uo6fUPr9FqQvKX7syhgVqWu+"
444 "WUSsiQ68UlN0efSP6Eced5gJZL6tg9gcYJIkhjuQNITU0Q3TjVAnAcobgbJikCn6qZ6pRxK"
445 "BY4MTiAlfGD3T7R7hwJwx554MAy++Zb/YUFlnCaCJiwQMnowF7aQzwYFCo=",
447 {
"NB7tU5fNE8nI+SXGfipc7sRkhnSkUF1krjeo6k+8FITaAtdyz+"
448 "o7mONgXmGLulBPH9bEwyYhKNVY0L+njNQrZ9YC2aXsFD3PdZsxAFaBT3VXEzh+"
449 "NGBTjDASNL3mXyS8Yv1iThGfHoY7T4aR0NYGJ+k+pR6f+KrPC96M",
451 {
"8T6wrqCtEO6/rwxF6lvMeyuigVOLwPipX/FULvwyu+1wa5sQGav/"
452 "2FsLHUVn6cGSi0LlFwLewGHPFJDLR0u4t7ZUyM//"
453 "x6da0sWgOa5hzDqjsVGmjxEHXiaXKW3i4iSZNuxoNbMQkIbVML+"
454 "DkYu9ND0O2swg4itGeVSzXA==",
456 {
"Ntf1bMRdondtMv1CYr3G80iDJ4WSAlKy5H34XdGruQiCrnRGDBa+"
457 "eUi7vKp4gp3BBcVGl8eYSasVQQjn7MLvb3BjtXx6c/"
458 "bCL7JtpzQKaDnPr9GWRxpBXVxKREgMM7d8lm35EODv0w+"
459 "hQLfVSh8OGs7fsBb68nNWPLeeSOo=",
461 {
"VsSAw72Ro6xks02kaiLuiTEIWBC5bgqr4WDnmP8vglXzAhixk7td926rm9jNimL+"
462 "kroPSygZ9gl63aF5DCPOACXmsbmhDrAQuUzoh9ZKhWgElLQsrqo1KIjWoZT5b5QfVUXY9lS"
463 "IBg3U75SqORoTPq7HalxxoIT5diWOcJQi",
466 "bJxNVebg94gU0mSLeDulcHs84tQT7BZM2rzDSLiCNxUedHr1ZWJ9ejTiBa0dqy2I2ABc++"
467 "xzOLcv+//YfibtjKtYggC6/3rv0XCc7xu6d/"
468 "O6xO+XOBhOWAQ+IHJVHf7wZnDxIXB8AUHsnjEISKj7823biqXjyP3g==",
470 {
"f3LlpcPElMkspNtDq5xXyWU62erEaKn7RWKlo540gR6mZsNpK1czV/"
471 "sOmqaq8XAQLEn68LKj6/"
472 "cFkJukxRzCa4OF1a7cCAXYFp9+wZDu0bw4y63qbpjhdCl8GO6Z2lkcXy7KOzbPE01ukg7+"
473 "gN+7uKpoohgAhIwpAKQXmX5xtd0=",
477 for (
const auto& expected_result : expected_results) {
481 expected_result.seed, kSalt),
482 expected_result.hash);