Skip to main content

zcash_keys/keys/transparent/
test_vectors.rs

1use zcash_protocol::consensus::NetworkType;
2
3pub enum VectorKind {
4    Privkey { is_compressed: bool },
5    Pubkey,
6}
7
8pub struct TestVector {
9    pub base58_encoding: &'static str,
10    pub raw_bytes_hex: &'static str,
11    pub kind: VectorKind,
12    pub network: NetworkType,
13}
14
15// These are sourced from https://github.com/zcash/zcash/blob/b65b008a7b334a2f7c2eaae1b028e011f2e21dd1/src/test/data/base58_keys_valid.json
16pub const VALID: &[TestVector] = &[
17    TestVector {
18        base58_encoding: "t1T8yaLVhNqxA5KJcmiqqFN88e8DNp2PBfF",
19        raw_bytes_hex: "76a91465a16059864a2fdbc7c99a4723a8395bc6f188eb88ac",
20        kind: VectorKind::Pubkey,
21        network: NetworkType::Main,
22    },
23    TestVector {
24        base58_encoding: "t3VDyGHn9mbyCf448m2cHTu5uXvsJpKHbiZ",
25        raw_bytes_hex: "a91474f209f6ea907e2ea48f74fae05782ae8a66525787",
26        kind: VectorKind::Pubkey,
27        network: NetworkType::Main,
28    },
29    TestVector {
30        base58_encoding: "tmHMBeeYRuc2eVicLNfP15YLxbQsooCA6jb",
31        raw_bytes_hex: "76a91453c0307d6851aa0ce7825ba883c6bd9ad242b48688ac",
32        kind: VectorKind::Pubkey,
33        network: NetworkType::Test,
34    },
35    TestVector {
36        base58_encoding: "t2Fbo6DBKKVYw1SfrY8bEgz56hYEhywhEN6",
37        raw_bytes_hex: "a9146349a418fc4578d10a372b54b45c280cc8c4382f87",
38        kind: VectorKind::Pubkey,
39        network: NetworkType::Test,
40    },
41    TestVector {
42        base58_encoding: "5Kd3NBUAdUnhyzenEwVLy9pBKxSwXvE9FMPyR4UKZvpe6E3AgLr",
43        raw_bytes_hex: "eddbdc1168f1daeadbd3e44c1e3f8f5a284c2029f78ad26af98583a499de5b19",
44        kind: VectorKind::Privkey {
45            is_compressed: false,
46        },
47        network: NetworkType::Main,
48    },
49    TestVector {
50        base58_encoding: "Kz6UJmQACJmLtaQj5A3JAge4kVTNQ8gbvXuwbmCj7bsaabudb3RD",
51        raw_bytes_hex: "55c9bccb9ed68446d1b75273bbce89d7fe013a8acd1625514420fb2aca1a21c4",
52        kind: VectorKind::Privkey {
53            is_compressed: true,
54        },
55        network: NetworkType::Main,
56    },
57    TestVector {
58        base58_encoding: "9213qJab2HNEpMpYNBa7wHGFKKbkDn24jpANDs2huN3yi4J11ko",
59        raw_bytes_hex: "36cb93b9ab1bdabf7fb9f2c04f1b9cc879933530ae7842398eef5a63a56800c2",
60        kind: VectorKind::Privkey {
61            is_compressed: false,
62        },
63        network: NetworkType::Test,
64    },
65    TestVector {
66        base58_encoding: "cTpB4YiyKiBcPxnefsDpbnDxFDffjqJob8wGCEDXxgQ7zQoMXJdH",
67        raw_bytes_hex: "b9f4892c9e8282028fea1d2667c4dc5213564d41fc5783896a0d843fc15089f3",
68        kind: VectorKind::Privkey {
69            is_compressed: true,
70        },
71        network: NetworkType::Test,
72    },
73    TestVector {
74        base58_encoding: "t1TpfguJj5zxKUfWcsNTrh6eod2XXsTKtvB",
75        raw_bytes_hex: "76a9146d23156cbbdcc82a5a47eee4c2c7c583c18b6bf488ac",
76        kind: VectorKind::Pubkey,
77        network: NetworkType::Main,
78    },
79    TestVector {
80        base58_encoding: "t3hc9Y2stuEWjS2dRDtGdiu3enMpxAbeUiK",
81        raw_bytes_hex: "a914fcc5460dd6e2487c7d75b1963625da0e8f4c597587",
82        kind: VectorKind::Pubkey,
83        network: NetworkType::Main,
84    },
85    TestVector {
86        base58_encoding: "tmXm2g5ouU8Pzksmqx3KYmeoeaWrAvj3rB5",
87        raw_bytes_hex: "76a914f1d470f9b02370fdec2e6b708b08ac431bf7a5f788ac",
88        kind: VectorKind::Pubkey,
89        network: NetworkType::Test,
90    },
91    TestVector {
92        base58_encoding: "t2QYxHjM8btztWTsMnFnZNurm7RXENk9ZhR",
93        raw_bytes_hex: "a914c579342c2c4c9220205e2cdc285617040c924a0a87",
94        kind: VectorKind::Pubkey,
95        network: NetworkType::Test,
96    },
97    TestVector {
98        base58_encoding: "5K494XZwps2bGyeL71pWid4noiSNA2cfCibrvRWqcHSptoFn7rc",
99        raw_bytes_hex: "a326b95ebae30164217d7a7f57d72ab2b54e3be64928a19da0210b9568d4015e",
100        kind: VectorKind::Privkey {
101            is_compressed: false,
102        },
103        network: NetworkType::Main,
104    },
105    TestVector {
106        base58_encoding: "L1RrrnXkcKut5DEMwtDthjwRcTTwED36thyL1DebVrKuwvohjMNi",
107        raw_bytes_hex: "7d998b45c219a1e38e99e7cbd312ef67f77a455a9b50c730c27f02c6f730dfb4",
108        kind: VectorKind::Privkey {
109            is_compressed: true,
110        },
111        network: NetworkType::Main,
112    },
113    TestVector {
114        base58_encoding: "93DVKyFYwSN6wEo3E2fCrFPUp17FtrtNi2Lf7n4G3garFb16CRj",
115        raw_bytes_hex: "d6bca256b5abc5602ec2e1c121a08b0da2556587430bcf7e1898af2224885203",
116        kind: VectorKind::Privkey {
117            is_compressed: false,
118        },
119        network: NetworkType::Test,
120    },
121    TestVector {
122        base58_encoding: "cTDVKtMGVYWTHCb1AFjmVbEbWjvKpKqKgMaR3QJxToMSQAhmCeTN",
123        raw_bytes_hex: "a81ca4e8f90181ec4b61b6a7eb998af17b2cb04de8a03b504b9e34c4c61db7d9",
124        kind: VectorKind::Privkey {
125            is_compressed: true,
126        },
127        network: NetworkType::Test,
128    },
129    TestVector {
130        base58_encoding: "t1UxCT4RrCbGH36etfQaPF1svNtZVhsqs5A",
131        raw_bytes_hex: "76a9147987ccaa53d02c8873487ef919677cd3db7a691288ac",
132        kind: VectorKind::Pubkey,
133        network: NetworkType::Main,
134    },
135    TestVector {
136        base58_encoding: "t3Teyxv1gF8FZ9MW8WN4MvTxQ4JScABsKfL",
137        raw_bytes_hex: "a91463bcc565f9e68ee0189dd5cc67f1b0e5f02f45cb87",
138        kind: VectorKind::Pubkey,
139        network: NetworkType::Main,
140    },
141    TestVector {
142        base58_encoding: "tmXYBLe2Q9MbXfgGb2QqdN7RWdi7tQ2z8ya",
143        raw_bytes_hex: "76a914ef66444b5b17f14e8fae6e7e19b045a78c54fd7988ac",
144        kind: VectorKind::Pubkey,
145        network: NetworkType::Test,
146    },
147    TestVector {
148        base58_encoding: "t2QQcXALz4745JEgzuAEsJNgt6nBQpsqegu",
149        raw_bytes_hex: "a914c3e55fceceaa4391ed2a9677f4a4d34eacd021a087",
150        kind: VectorKind::Pubkey,
151        network: NetworkType::Test,
152    },
153    TestVector {
154        base58_encoding: "5KaBW9vNtWNhc3ZEDyNCiXLPdVPHCikRxSBWwV9NrpLLa4LsXi9",
155        raw_bytes_hex: "e75d936d56377f432f404aabb406601f892fd49da90eb6ac558a733c93b47252",
156        kind: VectorKind::Privkey {
157            is_compressed: false,
158        },
159        network: NetworkType::Main,
160    },
161    TestVector {
162        base58_encoding: "L1axzbSyynNYA8mCAhzxkipKkfHtAXYF4YQnhSKcLV8YXA874fgT",
163        raw_bytes_hex: "8248bd0375f2f75d7e274ae544fb920f51784480866b102384190b1addfbaa5c",
164        kind: VectorKind::Privkey {
165            is_compressed: true,
166        },
167        network: NetworkType::Main,
168    },
169    TestVector {
170        base58_encoding: "927CnUkUbasYtDwYwVn2j8GdTuACNnKkjZ1rpZd2yBB1CLcnXpo",
171        raw_bytes_hex: "44c4f6a096eac5238291a94cc24c01e3b19b8d8cef72874a079e00a242237a52",
172        kind: VectorKind::Privkey {
173            is_compressed: false,
174        },
175        network: NetworkType::Test,
176    },
177    TestVector {
178        base58_encoding: "cUcfCMRjiQf85YMzzQEk9d1s5A4K7xL5SmBCLrezqXFuTVefyhY7",
179        raw_bytes_hex: "d1de707020a9059d6d3abaf85e17967c6555151143db13dbb06db78df0f15c69",
180        kind: VectorKind::Privkey {
181            is_compressed: true,
182        },
183        network: NetworkType::Test,
184    },
185    TestVector {
186        base58_encoding: "t1ZiM4oLF7hvboF4LPqhbBg7RLgJCCJC6Tj",
187        raw_bytes_hex: "76a914adc1cc2081a27206fae25792f28bbc55b831549d88ac",
188        kind: VectorKind::Pubkey,
189        network: NetworkType::Main,
190    },
191    TestVector {
192        base58_encoding: "t3LoV8q8R44fSbe84DBKDk3sAEoYum4hQYj",
193        raw_bytes_hex: "a914188f91a931947eddd7432d6e614387e32b24470987",
194        kind: VectorKind::Pubkey,
195        network: NetworkType::Main,
196    },
197    TestVector {
198        base58_encoding: "tmBmkeJmwF3UgVXqJLzEin49ftK1HmsqYup",
199        raw_bytes_hex: "76a9141694f5bc1a7295b600f40018a618a6ea48eeb49888ac",
200        kind: VectorKind::Pubkey,
201        network: NetworkType::Test,
202    },
203    TestVector {
204        base58_encoding: "t2Byypnbxh2Pfk7VqLMzYfiNeD72o6yvtqX",
205        raw_bytes_hex: "a9143b9b3fd7a50d4f08d1a5b0f62f644fa7115ae2f387",
206        kind: VectorKind::Pubkey,
207        network: NetworkType::Test,
208    },
209    TestVector {
210        base58_encoding: "5HtH6GdcwCJA4ggWEL1B3jzBBUB8HPiBi9SBc5h9i4Wk4PSeApR",
211        raw_bytes_hex: "091035445ef105fa1bb125eccfb1882f3fe69592265956ade751fd095033d8d0",
212        kind: VectorKind::Privkey {
213            is_compressed: false,
214        },
215        network: NetworkType::Main,
216    },
217    TestVector {
218        base58_encoding: "L2xSYmMeVo3Zek3ZTsv9xUrXVAmrWxJ8Ua4cw8pkfbQhcEFhkXT8",
219        raw_bytes_hex: "ab2b4bcdfc91d34dee0ae2a8c6b6668dadaeb3a88b9859743156f462325187af",
220        kind: VectorKind::Privkey {
221            is_compressed: true,
222        },
223        network: NetworkType::Main,
224    },
225    TestVector {
226        base58_encoding: "92xFEve1Z9N8Z641KQQS7ByCSb8kGjsDzw6fAmjHN1LZGKQXyMq",
227        raw_bytes_hex: "b4204389cef18bbe2b353623cbf93e8678fbc92a475b664ae98ed594e6cf0856",
228        kind: VectorKind::Privkey {
229            is_compressed: false,
230        },
231        network: NetworkType::Test,
232    },
233    TestVector {
234        base58_encoding: "cVM65tdYu1YK37tNoAyGoJTR13VBYFva1vg9FLuPAsJijGvG6NEA",
235        raw_bytes_hex: "e7b230133f1b5489843260236b06edca25f66adb1be455fbd38d4010d48faeef",
236        kind: VectorKind::Privkey {
237            is_compressed: true,
238        },
239        network: NetworkType::Test,
240    },
241    TestVector {
242        base58_encoding: "t1boxWWuUs3dVUFeUMiPqCdwD4QtL1AMx9G",
243        raw_bytes_hex: "76a914c4c1b72491ede1eedaca00618407ee0b772cad0d88ac",
244        kind: VectorKind::Pubkey,
245        network: NetworkType::Main,
246    },
247    TestVector {
248        base58_encoding: "t3h5bvzkCXkiMttmQScK56UjVcqeD3NnReW",
249        raw_bytes_hex: "a914f6fe69bcb548a829cce4c57bf6fff8af3a5981f987",
250        kind: VectorKind::Pubkey,
251        network: NetworkType::Main,
252    },
253    TestVector {
254        base58_encoding: "tmDBvm2S5yAj5pVAvB4th1DDVpLq3KuN8S1",
255        raw_bytes_hex: "76a914261f83568a098a8638844bd7aeca039d5f2352c088ac",
256        kind: VectorKind::Pubkey,
257        network: NetworkType::Test,
258    },
259    TestVector {
260        base58_encoding: "t2TooyZ7BmQTBkgCVhdNQsPfeVdQoWqsHQa",
261        raw_bytes_hex: "a914e930e1834a4d234702773951d627cce82fbb5d2e87",
262        kind: VectorKind::Pubkey,
263        network: NetworkType::Test,
264    },
265    TestVector {
266        base58_encoding: "5KQmDryMNDcisTzRp3zEq9e4awRmJrEVU1j5vFRTKpRNYPqYrMg",
267        raw_bytes_hex: "d1fab7ab7385ad26872237f1eb9789aa25cc986bacc695e07ac571d6cdac8bc0",
268        kind: VectorKind::Privkey {
269            is_compressed: false,
270        },
271        network: NetworkType::Main,
272    },
273    TestVector {
274        base58_encoding: "L39Fy7AC2Hhj95gh3Yb2AU5YHh1mQSAHgpNixvm27poizcJyLtUi",
275        raw_bytes_hex: "b0bbede33ef254e8376aceb1510253fc3550efd0fcf84dcd0c9998b288f166b3",
276        kind: VectorKind::Privkey {
277            is_compressed: true,
278        },
279        network: NetworkType::Main,
280    },
281    TestVector {
282        base58_encoding: "91cTVUcgydqyZLgaANpf1fvL55FH53QMm4BsnCADVNYuWuqdVys",
283        raw_bytes_hex: "037f4192c630f399d9271e26c575269b1d15be553ea1a7217f0cb8513cef41cb",
284        kind: VectorKind::Privkey {
285            is_compressed: false,
286        },
287        network: NetworkType::Test,
288    },
289    TestVector {
290        base58_encoding: "cQspfSzsgLeiJGB2u8vrAiWpCU4MxUT6JseWo2SjXy4Qbzn2fwDw",
291        raw_bytes_hex: "6251e205e8ad508bab5596bee086ef16cd4b239e0cc0c5d7c4e6035441e7d5de",
292        kind: VectorKind::Privkey {
293            is_compressed: true,
294        },
295        network: NetworkType::Test,
296    },
297    TestVector {
298        base58_encoding: "t1SWDbHDTatR1ag8yTFLdVWd1erfu7Pbbjk",
299        raw_bytes_hex: "76a9145eadaf9bb7121f0f192561a5a62f5e5f5421029288ac",
300        kind: VectorKind::Pubkey,
301        network: NetworkType::Main,
302    },
303    TestVector {
304        base58_encoding: "t3QKR6mLBwPY6DeqHwjJCxUwSsGUToB5sWJ",
305        raw_bytes_hex: "a9143f210e7277c899c3a155cc1c90f4106cbddeec6e87",
306        kind: VectorKind::Pubkey,
307        network: NetworkType::Main,
308    },
309    TestVector {
310        base58_encoding: "tmU1EeoNHCfmWpeZWeRnKmNeVdHJgZjse5G",
311        raw_bytes_hex: "76a914c8a3c2a09a298592c3e180f02487cd91ba3400b588ac",
312        kind: VectorKind::Pubkey,
313        network: NetworkType::Test,
314    },
315    TestVector {
316        base58_encoding: "t2LZVwB5A2n5U9odwMbLd1g5Bz9Z3ZFoCJH",
317        raw_bytes_hex: "a91499b31df7c9068d1481b596578ddbb4d3bd90baeb87",
318
319        kind: VectorKind::Pubkey,
320        network: NetworkType::Test,
321    },
322    TestVector {
323        base58_encoding: "5KL6zEaMtPRXZKo1bbMq7JDjjo1bJuQcsgL33je3oY8uSJCR5b4",
324        raw_bytes_hex: "c7666842503db6dc6ea061f092cfb9c388448629a6fe868d068c42a488b478ae",
325        kind: VectorKind::Privkey {
326            is_compressed: false,
327        },
328        network: NetworkType::Main,
329    },
330    TestVector {
331        base58_encoding: "KwV9KAfwbwt51veZWNscRTeZs9CKpojyu1MsPnaKTF5kz69H1UN2",
332        raw_bytes_hex: "07f0803fc5399e773555ab1e8939907e9badacc17ca129e67a2f5f2ff84351dd",
333        kind: VectorKind::Privkey {
334            is_compressed: true,
335        },
336        network: NetworkType::Main,
337    },
338    TestVector {
339        base58_encoding: "93N87D6uxSBzwXvpokpzg8FFmfQPmvX4xHoWQe3pLdYpbiwT5YV",
340        raw_bytes_hex: "ea577acfb5d1d14d3b7b195c321566f12f87d2b77ea3a53f68df7ebf8604a801",
341        kind: VectorKind::Privkey {
342            is_compressed: false,
343        },
344        network: NetworkType::Test,
345    },
346    TestVector {
347        base58_encoding: "cMxXusSihaX58wpJ3tNuuUcZEQGt6DKJ1wEpxys88FFaQCYjku9h",
348        raw_bytes_hex: "0b3b34f0958d8a268193a9814da92c3e8b58b4a4378a542863e34ac289cd830c",
349        kind: VectorKind::Privkey {
350            is_compressed: true,
351        },
352        network: NetworkType::Test,
353    },
354    TestVector {
355        base58_encoding: "t1Lgcj4m5r7eDWctWQM7ete85hHivQxMjBZ",
356        raw_bytes_hex: "76a9141ed467017f043e91ed4c44b4e8dd674db211c4e688ac",
357        kind: VectorKind::Pubkey,
358        network: NetworkType::Main,
359    },
360    TestVector {
361        base58_encoding: "t3TCuHUxH3LGnsFYTUbSwHrRXxTaEA8hAaf",
362        raw_bytes_hex: "a9145ece0cadddc415b1980f001785947120acdb36fc87",
363        kind: VectorKind::Pubkey,
364        network: NetworkType::Main,
365    },
366];
367
368// Sourced from https://github.com/zcash/zcash/blob/b65b008a7b334a2f7c2eaae1b028e011f2e21dd1/src/test/data/base58_keys_invalid.json
369pub const INVALID: &[&str] = &[
370    "",
371    "x",
372    "37qgekLpCCHrQuSjvX3fs496FWTGsHFHizjJAs6NPcR47aefnnCWECAhHV6E3g4YN7u7Yuwod5Y",
373    "dzb7VV1Ui55BARxv7ATxAtCUeJsANKovDGWFVgpTbhq9gvPqP3yv",
374    "MuNu7ZAEDFiHthiunm7dPjwKqrVNCM3mAz6rP9zFveQu14YA8CxExSJTHcVP9DErn6u84E6Ej7S",
375    "rPpQpYknyNQ5AEHuY6H8ijJJrYc2nDKKk9jjmKEXsWzyAQcFGpDLU2Zvsmoi8JLR7hAwoy3RQWf",
376    "4Uc3FmN6NQ6zLBK5QQBXRBUREaaHwCZYsGCueHauuDmJpZKn6jkEskMB2Zi2CNgtb5r6epWEFfUJq",
377    "7aQgR5DFQ25vyXmqZAWmnVCjL3PkBcdVkBUpjrjMTcghHx3E8wb",
378    "17QpPprjeg69fW1DV8DcYYCKvWjYhXvWkov6MJ1iTTvMFj6weAqW7wybZeH57WTNxXVCRH4veVs",
379    "KxuACDviz8Xvpn1xAh9MfopySZNuyajYMZWz16Dv2mHHryznWUp3",
380    "7nK3GSmqdXJQtdohvGfJ7KsSmn3TmGqExug49583bDAL91pVSGq5xS9SHoAYL3Wv3ijKTit65th",
381    "cTivdBmq7bay3RFGEBBuNfMh2P1pDCgRYN2Wbxmgwr4ki3jNUL2va",
382    "gjMV4vjNjyMrna4fsAr8bWxAbwtmMUBXJS3zL4NJt5qjozpbQLmAfK1uA3CquSqsZQMpoD1g2nk",
383    "emXm1naBMoVzPjbk7xpeTVMFy4oDEe25UmoyGgKEB1gGWsK8kRGs",
384    "7VThQnNRj1o3Zyvc7XHPRrjDf8j2oivPTeDXnRPYWeYGE4pXeRJDZgf28ppti5hsHWXS2GSobdqyo",
385    "1G9u6oCVCPh2o8m3t55ACiYvG1y5BHewUkDSdiQarDcYXXhFHYdzMdYfUAhfxn5vNZBwpgUNpso",
386    "31QQ7ZMLkScDiB4VyZjuptr7AEc9j1SjstF7pRoLhHTGkW4Q2y9XELobQmhhWxeRvqcukGd1XCq",
387    "DHqKSnpxa8ZdQyH8keAhvLTrfkyBMQxqngcQA5N8LQ9KVt25kmGN",
388    "2LUHcJPbwLCy9GLH1qXmfmAwvadWw4bp4PCpDfduLqV17s6iDcy1imUwhQJhAoNoN1XNmweiJP4i",
389    "7USRzBXAnmck8fX9HmW7RAb4qt92VFX6soCnts9s74wxm4gguVhtG5of8fZGbNPJA83irHVY6bCos",
390    "1DGezo7BfVebZxAbNT3XGujdeHyNNBF3vnficYoTSp4PfK2QaML9bHzAMxke3wdKdHYWmsMTJVu",
391    "2D12DqDZKwCxxkzs1ZATJWvgJGhQ4cFi3WrizQ5zLAyhN5HxuAJ1yMYaJp8GuYsTLLxTAz6otCfb",
392    "8AFJzuTujXjw1Z6M3fWhQ1ujDW7zsV4ePeVjVo7D1egERqSW9nZ",
393    "163Q17qLbTCue8YY3AvjpUhotuaodLm2uqMhpYirsKjVqnxJRWTEoywMVY3NbBAHuhAJ2cF9GAZ",
394    "2MnmgiRH4eGLyLc9eAqStzk7dFgBjFtUCtu",
395    "461QQ2sYWxU7H2PV4oBwJGNch8XVTYYbZxU",
396    "2UCtv53VttmQYkVU4VMtXB31REvQg4ABzs41AEKZ8UcB7DAfVzdkV9JDErwGwyj5AUHLkmgZeobs",
397    "cSNjAsnhgtiFMi6MtfvgscMB2Cbhn2v1FUYfviJ1CdjfidvmeW6mn",
398    "gmsow2Y6EWAFDFE1CE4Hd3Tpu2BvfmBfG1SXsuRARbnt1WjkZnFh1qGTiptWWbjsq2Q6qvpgJVj",
399    "nksUKSkzS76v8EsSgozXGMoQFiCoCHzCVajFKAXqzK5on9ZJYVHMD5CKwgmX3S3c7M1U3xabUny",
400    "L3favK1UzFGgdzYBF2oBT5tbayCo4vtVBLJhg2iYuMeePxWG8SQc",
401    "7VxLxGGtYT6N99GdEfi6xz56xdQ8nP2dG1CavuXx7Rf2PrvNMTBNevjkfgs9JmkcGm6EXpj8ipyPZ",
402    "2mbZwFXF6cxShaCo2czTRB62WTx9LxhTtpP",
403    "dB7cwYdcPSgiyAwKWL3JwCVwSk6epU2txw",
404    "HPhFUhUAh8ZQQisH8QQWafAxtQYju3SFTX",
405    "4ctAH6AkHzq5ioiM1m9T3E2hiYEev5mTsB",
406    "Hn1uFi4dNexWrqARpjMqgT6cX1UsNPuV3cHdGg9ExyXw8HTKadbktRDtdeVmY3M1BxJStiL4vjJ",
407    "Sq3fDbvutABmnAHHExJDgPLQn44KnNC7UsXuT7KZecpaYDMU9Txs",
408    "6TqWyrqdgUEYDQU1aChMuFMMEimHX44qHFzCUgGfqxGgZNMUVWJ",
409    "giqJo7oWqFxNKWyrgcBxAVHXnjJ1t6cGoEffce5Y1y7u649Noj5wJ4mmiUAKEVVrYAGg2KPB3Y4",
410    "cNzHY5e8vcmM3QVJUcjCyiKMYfeYvyueq5qCMV3kqcySoLyGLYUK",
411    "37uTe568EYc9WLoHEd9jXEvUiWbq5LFLscNyqvAzLU5vBArUJA6eydkLmnMwJDjkL5kXc2VK7ig",
412    "EsYbG4tWWWY45G31nox838qNdzksbPySWc",
413    "nbuzhfwMoNzA3PaFnyLcRxE9bTJPDkjZ6Rf6Y6o2ckXZfzZzXBT",
414    "cQN9PoxZeCWK1x56xnz6QYAsvR11XAce3Ehp3gMUdfSQ53Y2mPzx",
415    "1Gm3N3rkef6iMbx4voBzaxtXcmmiMTqZPhcuAepRzYUJQW4qRpEnHvMojzof42hjFRf8PE2jPde",
416    "2TAq2tuN6x6m233bpT7yqdYQPELdTDJn1eU",
417    "ntEtnnGhqPii4joABvBtSEJG6BxjT2tUZqE8PcVYgk3RHpgxgHDCQxNbLJf7ardf1dDk2oCQ7Cf",
418    "Ky1YjoZNgQ196HJV3HpdkecfhRBmRZdMJk89Hi5KGfpfPwS2bUbfd",
419    "2A1q1YsMZowabbvta7kTy2Fd6qN4r5ZCeG3qLpvZBMzCixMUdkN2Y4dHB1wPsZAeVXUGD83MfRED",
420];