-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbase_test.go
205 lines (196 loc) · 30.2 KB
/
base_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
package base_test
import (
"github.com/7i/base"
"testing"
)
var decoded00 []byte
var decodedFF []byte
var decodedRnd []byte
var encoded00 []byte
var encodedFF [][]byte
var encodedRnd [][]byte
func TestDecode(t *testing.T) {
for i := 2; i < 63; i++ {
// Decode []byte{}
res, _ := base.Decode([]byte{}, i)
if string(res) != string([]byte{}) {
t.Errorf("Decode test []byte{} failed for base %d, got: \n%v \nexpected: empty []byte.", i, res)
}
// Decode 00 test
res, _ = base.Decode(encoded00, i)
if string(res) != "" {
t.Errorf("Decode test encoded00 failed for base %d, got: \n%v \nexpected: empty []byte.", i, res)
}
// Decode FF test
res, _ = base.Decode(encodedFF[i-2], i)
if string(res) != string(decodedFF) {
t.Errorf("Decode test encodedFF failed for base %d, got: \n%v \nexpected a []byte with 100 0xff.", i, res)
}
// Decode Rnd test
res, _ = base.Decode(encodedRnd[i-2], i)
if string(res) != string(decodedRnd) {
t.Errorf("Decode test encodedRnd failed for base %d, got: \n%v \nexpected: the content of decodedRnd, see for exact value.", i, res)
}
}
}
func TestEncode(t *testing.T) {
for i := 2; i < 63; i++ {
// Encode []byte{}
res, _ := base.Encode([]byte{}, i)
if string(res) != string([]byte{}) {
t.Errorf("Encode test []byte{} failed for base %d, got: \n%v \nexpected: empty []byte.", i, string(res))
}
// Encode 00 test
res, _ = base.Encode(decoded00, i)
if string(res) != string([]byte{}) {
t.Errorf("Encode test decoded00 failed for base %d, got: \n%v \nexpected: empty []byte.", i, string(res))
}
// Encode FF test
res, _ = base.Encode(decodedFF, i)
if string(res) != string(encodedFF[i-2]) {
t.Errorf("Encode test decodedFF failed for base %d, got: \n%v \nexpected: \n%s.", i, string(res), string(encodedFF[i-2]))
}
// Encode Rnd test
res, _ = base.Encode(decodedRnd, i)
if string(res) != string(encodedRnd[i-2]) {
t.Errorf("Encode test decodedRnd failed for base %d, got: \n%v \nexpected: \n%s.", i, string(res), string(encodedRnd[i-2]))
}
}
}
// Initialize test data
func init() {
// 100 0x00
decoded00 = make([]byte, 100)
// 100 0xff
decodedFF = []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} //100
// 100 random bytes
decodedRnd = []byte{0x77, 0x66, 0xa7, 0xd9, 0x2e, 0x37, 0x3d, 0x96, 0xb4, 0x8d, 0xe3, 0x64, 0x06, 0x85, 0xb4, 0xf4, 0x8d, 0xe4, 0x80, 0x0f, 0x78, 0xa9, 0x70, 0x0b, 0x73, 0x43, 0x14, 0x98, 0x86, 0xab, 0x09, 0x45, 0x74, 0x54, 0x8d, 0x03, 0x4b, 0x10, 0x61, 0x90, 0x39, 0xcf, 0xca, 0x48, 0xc9, 0x88, 0xa9, 0x15, 0x27, 0x8d, 0xd6, 0xdf, 0x9e, 0xb2, 0x93, 0xa2, 0x17, 0xad, 0x1d, 0xd5, 0x29, 0x7f, 0x31, 0xfb, 0x19, 0x72, 0x7f, 0xa1, 0xd0, 0x26, 0x06, 0xde, 0x3e, 0xd3, 0xe8, 0xbc, 0xd6, 0xe0, 0x79, 0x29, 0x0d, 0xad, 0xc0, 0x84, 0xab, 0xc4, 0x16, 0xea, 0xde, 0xad, 0xcc, 0x92, 0x26, 0xeb, 0xa0, 0xc6, 0x32, 0x44, 0x82, 0x44} // 100
encodedFF = make([][]byte, 61)
encodedRnd = make([][]byte, 61)
// 100 to decode in to empty []byte
encoded00 = []byte("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
// Precalculated result of 100 0xff Encode for all valid bases
encodedFF[0] = []byte("11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111")
encodedFF[1] = []byte("2021010111002211122222212121221000121111101111110200011220022210201221010011112201122201010101210100020012021002112000100222110112222100100002020010201002002012002022202211220212202111110021210211220002222022002211102011122212022022011110212100202201110121012202022022111122210020122022101102022112102202001112202212201112202122102121012212121121202202021102120122121001020202202110100010200211000000121111002021011111010222200102020111022121001210012001200112112011021021222011211002201221202110222022110")
encodedFF[2] = []byte("3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333")
encodedFF[3] = []byte("214332130310101042223101130331100124124033332313214034244432002132211241012144312423431424034321302344031243312443120030202024424232242330322122233443131423411423030241434224330233204212300044041231104020142342413433033212101332242024412312221130314041021203333042410002232034431400114120121320400312013201424421023200101124404213243300423034000")
encodedFF[4] = []byte("2212305035334115533013251050105454335105001350032332431534130141142014312501331450333022103431334315551555212541104302132431441431533534435030342422511455333445145155540054305433551155013115425134252254234231322242105151200142110112400505155151252510514215332131402155044433321513101551455500045305050124145103")
encodedFF[5] = []byte("635612340450245155364030312622614461354042626366465614352052641141223043424013610622445225330603243054346106432526443542620440640522064215416261024465251555300040624321013006443602365026545302345350043663234056542450656310006401504135115564050660256345262261455452141412061153125101503")
encodedFF[6] = []byte("377777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777")
encodedFF[7] = []byte("2233432748885557017441443604808721833145648633353306167075010873488310066121062162282756782443253756088262742148768264425322643535668274583218271368472661482781482572535777552667376577036682410120730017432234433880366438531705050475137258154081852428273")
encodedFF[8] = []byte("6668014432879854274079851790721257797144758322315908160396257811764037237817632071521432200871554290742929910593433240445888801654119365080363356052330830046095157579514014558463078285911814024728965016135886601981690748037476461291163877375")
encodedFF[9] = []byte("19138954766212a0043865719755696a0577a57295853375472a3a527604114190972535a373667736a4a3468341065a062024402175129229563764a61a68a50501154a101119159456910a7540aa27a5077116830196701885935397656a17512504a34833596073a86a111772880a6a217340")
encodedFF[10] = []byte("1573a15119bba4597850b32470184686679822ba9812768348260a4091a7810543a0b8a612648937370b2a8925462b18b68101162b3929730826234474207b058636326220a862342273993b631792aa02a3642a8025663931208173ba399baa2bb1ab01b33a73226099bb2433098193")
encodedFF[11] = []byte("1826630a9a31628c295c3561570603856a26402a23ba2a56441c5951560a1828913a73a396b49cb1481526b23985223b45029a15427241824a88a4320195930378b87419ab951c0b35326c2642566920b0093c49714386cc949b74803c389a1a16817781439c927c1b55c7878")
encodedFF[12] = []byte("152a90373318776b0c4d4ac7171ac314a0793b3d888562c14838928328b606849282613279903860db5dbd5cd6773db356a77a741ddc050b3d7dcac816b943608c6758cd701c324d23375d2c60a98351191dc17b62bb4901194a4641961647dbbc77a92a595abc70303")
encodedFF[13] = []byte("7e7dd2e984968063de676eaeacb5677a5dc4b80e01c7cde1da4e84e0b7db165e26820e41b624c5ce9c1d9555269d1765c0c880131034d6a5c44ea24832694c48d26a9dd277c75c768831b620269d30a0b4319381b6d0e057d1e6e008de1ad93b8700979337850")
encodedFF[14] = []byte("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
encodedFF[15] = []byte("7bf229813449de3007b142gfd24411aa1cf73ba8ea1d9b3gd38828be05789143fe53g771g0g92eb79e863c6bdbf7ad75966c361af9da372910468g6c26dfb22f68g5368ca546f9d2327ga33269gde7dd11gb40788308eg678fbfd51g9e4a5c97gf40")
encodedFF[16] = []byte("bc003a58bhf6hcc85144ed74f78b6f06ccc3b1ecdd3da4gd12b184g072bf651626762h28ea573e525c701717fgaag267e4728266a4c24a516g483a85f5gg7bhgcc1699b0g1e972eh3ab060457c18ea1gfh8hfah45dh0801e1ebc35fhc4h54783")
encodedFF[17] = []byte("2beg6730db80fgbi526dcafa03hf8c15394dah81bibee60gb91f74ce5dh408a80098ihfd861e50bgdah0i5h1ha8bh8i2b24ggg1gb9d2e5hb609b1d665ghgi5i9geeh068c3he7a07d4eee9d53d69cc1cchg1c6g380adh2aich816604b7ci48")
encodedFF[18] = []byte("173he28eh4fh3f920h1acdb5192cji5gd4jb890413c43a199hgf401gccd4g1b8f9331af21jb4e7c2347245c72b9d756bhj8jh80i633i6cjb744h7fdf8265da7i2h12b6igi4ai7h9jc32h01bbb9jgf9iiag001gb8812g970ad93e8e4d8f")
encodedFF[19] = []byte("1agch98a3061d1gc9ffk04cb1hd9hc5geh27i39g07h50ff8gg2jjfh441i15gd5e7c3fa4d9769dca02f1b7ib20aj14caj4g3ki7k03a35id003dka5fdab450e6dejhfaab59cj47eb1i053f613a695gdg5fe538j7aihk57711474kfd03")
encodedFF[20] = []byte("38d6274fb0hj94be1gjaa9059ecb30iei79ji4d0b1c0k0jaelci0e120ae1602j111j28d4l9fhh9i06d1hkbdj0diaijg24ilf7af4l491e3eej1ijd2c81240e27fj3ggk4b7bh497h8dc4af67jifbdkh8ck0e5j76lb2dba9ekf50ib")
encodedFF[21] = []byte("ea8d2cflm0b92bid1b823a3349kh1ej43kd3095bh9251j2aekg1efh5kj64fi8b34jk46eb1fibf0aa4gm57m7c6l3d7c1dgecjbk169jd07mceb62a9b59hihmb2fgj6belc2m65b113icc93hbg3f6mi253llhj90016269aam6d72")
encodedFF[22] = []byte("4fd23il365lhf2jhhd3c184lg6i8n5h3lmbkh039lj9gj1dem5mkmamfk37m4maeg8lmnh4n7knkc8m9lajgi0enak92g40cn1h4f33416h1in88bc5n17fdjnh0b01327lgb60j1a4i3nae52ie6e023l29ak6g9k54ae5d3efecaf")
encodedFF[23] = []byte("29ibfg114cd56fi607le3ihgh93mona28c6e579n7mjgmkjh82jkgei7oga3222oedcmi3c7cioggmj6mffe9jcnfdh4bd04kld6421mje8nfibb1icm2o7gcb83945baii4e50ch3ogk1971bh40ga8a9em5da117o4bhnf4d3k0")
encodedFF[24] = []byte("1n9j067n1copf0aj0f1klog3p369c4jejb6l7pgj5hk93ne4boomc7pk49ci910mm30c5i6l8gdgnh4fpi384jl5a1g98lhgd4e593fmi55e67bb6hl15gpo3ihh9lfb7djfe1cf39ej6mb8i6pg88hanialf4mh8f8hp1l2f3l")
encodedFF[25] = []byte("273d2mhqngp0gdadci4o8ljp34ejhj3al96572e09qceq99263j22528kmonkdc7lmo2q82mb4hn884cn9kjcg5k88dhl6h8ab8ebk1eknjekhbg5nggkk7bfhg16kkc93im00gd274d3qib6d8g1l51iee477q4m2jpkcq8c")
encodedFF[26] = []byte("3qao2fgnm1oo434h4cdj47ahl1ok40jhbkcpq466n6ggqrdgq7pbleo4b28mkaa546oar28jc5mrr9icmdlaej0o0okrbf0chco69976n19prlihr5opemhem943neb4144m23ifi4ln5p7bpf5ca6c60827iedenmjj7l3")
encodedFF[27] = []byte("9mp8f74kf26hj9o62sf0om1h27shk5ce5ieh7c0krhsf8fhe497d6kn7os911bdqll448nfbifo87fpsaa258rd4i46om7iqochgdo57q494g81a1diqq0qcf4bj6h487m0b7or4kb05o1ci0qf3p0ija27eso8a0h41o")
encodedFF[28] = []byte("13ranla3j4o1b9jor50ecr5b916amtilq10btio98adl4poprk01mhk67ef56380mhpkqk1bi6o7hlcj3sbc3mrft70amrj6t85ttrko8t1507hbopq1e1pdehcdhd7ndf7p7f4r1t201f0a1gn9415ir1tn05906h2f")
encodedFF[29] = []byte("55mtlej3bnrjm2m2g4gu5q4u975rknljdpmdb68a5eb87mol2606u05g9qcgk18o38ndb14k0b1n8gpjheg226g9hk2qrn6s688b8459ssq1i69aa6puhcnc874stfono6bne59kfbqjnh04q3n9mlic7bkoulhf50")
encodedFF[30] = []byte("vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv")
encodedFF[31] = []byte("7ud85eaqawsj8oiudql0fs84t8pm6hv1m72p4dqvq90t10rj77bj1m4o5htc7hq95ff4t5i94cpiu3h5pl31k0if2d2vopaj2dnvml6mvfot8sodnkpc9b181j38m7nu9fmif54k5t6dq7sbnswis7os3jw2a50")
encodedFF[32] = []byte("2dukp88x5hk78dn2vis99qbkxxk8h6gaji3fsfb24rt70vjwgaro2vk8hcm5fbqmpw7iief1l56mv50ede012twmx1gvakf9ncpauiuw5r0otondc6aoxmdtwvah3tm8npihlkahbtec68v0frogott4f5rkrh")
encodedFF[33] = []byte("v580f9m71kj7xu5sfhsngoi8iu9xpenl9sqcuya1on29472ah9ivl9sbcm9oyajrqbn5f3y4ppuccnb7lig48qc2m09rslchu60o6etoi9071k3lgnck3lxibwyel634bh383v7gavxj405vcry7b996ab4a")
encodedFF[34] = []byte("e8iunlpbxi9h6u6yylv509u3fkrbm91pacajh1laulie6mjlrbzbzdhp6r29gjsajxnmruimgevazlmtavzy0yiylz7z1jbqvmheyfqjkeq6vvc1q718o55bvvhh6vqbldjodz4slkb96bvtz04x551gav3")
encodedFF[35] = []byte("7rnn2amj3lxtnfs4AsynraA2plx1nwwzgun92g1zzd6h2t00qdwphbksb2unv9yzyt2ebt3n666qp4zy1wkh6cwtkdg5iz2bw7nl9buuwsr0lpuom56udssmtyev3ggmoorwohs06nu5wfqr8ff0m9jnex")
encodedFF[36] = []byte("4B3j12ui2vhg4dbx6wvyAe9mB58eBfqck0qdmlz6gw6ofmB3tr1do3r0uzk4b6j9mtp38nd7atAu0dctddpo7rmpneqqgAct3td715uxbn3otixAhu83hyo387o0i0mv6hmy5B6umr1ygA2v8fmcvdiur")
encodedFF[37] = []byte("3sCeu9guChrylCppryq6pafm856BiCxtxB2p9h917s6C6CBqvdnemuq4fk70Coanusmaowpvxmzjgba2f0neagoycfpxosq8Af31stwovn79p8j1Csrs1sinv1akw03Ctl1lCwCj23nsyB5ysrzrnffl")
encodedFF[38] = []byte("3aBgDC9Bs68mDy8d8eobClBBgkme2ughorgpsBpoeylrng5wquepnC5079BCCcd4ux1kyxfBukr65weC47re8py0rdqrq7vwtmw8w9itkzl3p7jdrkA9y6kkov58cDfvcxtmgB9bfjyn32br2gkznef")
encodedFF[39] = []byte("3cl3z8aaauqp0gtrnkp0b54zbnb2rsklmkr2vuegE1l73bx7fi40no800bghf6kuckclkrm4jA8eAD2892CcCxAp4E1xE1dy14uhvwo95erxiusDlzsmgDr0bkq0kB4ek47CtB44C1oDkC46glam90")
encodedFF[40] = []byte("3yypm1Ers6cj476C9onswvfd72tsctD7ni2lsDsF2Au4vE7sdC8Awji4zjdA70noCeDg7mrirfFEBADcqlmddwwyhDvhboklta5aDDDFgllBCbfya38by050kxoh7xnf22Etgl1rEE5e9zqt1cj03")
encodedFF[41] = []byte("52oout1qA3EaGFo2ntxjoFktAou6tq05hzCmwc5Efzkn1srsaDofjiB5xr17xDfFpEvbExvdmueFG7s40qcoDzynyf9vglG1wf35qz4Cw3isz6j5il7eoa6jE0haw117p3ksD3up19Fva9h7cv83")
encodedFF[42] = []byte("7puCn13wvtrv5213hl2CEyFnkd2z6qbqpkt0C8hEcyealuEbwxEeHhojzfD2nvndB0cnoyBmB7D17713ch8DGuBh5kihwHj03hybkCxC92Cb1uipvE73cmm6aqtuoGtDwuburA0F086dAehjCvb")
encodedFF[43] = []byte("cBd3shcs32IoaI692AfkwAdlB5Fhjta2z67HfrdgkdwyufgkIxw3E0704bBHeqFAdtv4ywmFb8bqGeccD2Fi7D0xG7z32DccpnmHlrimhA9e03aitvrrytbn1ojap9m9lHB6k9thIgAor2bGqu")
encodedFF[44] = []byte("oh2mtbBsikxb10zxqHEuB3lktyxpdy3te5n5kb3i1eeqv3F6euxtBEAhcmsB40IGmjJveEoGfy5qawfgwga5fqr7t0wIBrH2duu7piy0cg6bD95oxAjobdd0Jyarf7chfao5dwnr6ektBf93p")
encodedFF[45] = []byte("14zA4ty70kjzjg230fyCicAdo9q4Fsc8AFIkaIBsfuxjHDaeFHrBh1xEptzyDBCn1qrEkqfJIk58fIkkEHH48CwdqhKAIqGzbuG69AKpifal4ykFG4DfdgtKvi1rsgJJIv5489rfKdd3Cd7po")
encodedFF[46] = []byte("2qivbsk1tk1L0GupwIeAKazuD7qGDbi8ty6rjmy3D68yBdgxvBiqK6u10sdsrfL7lhcJjBh7B5vlngpvrtd1Kah8rb3yoshw5g5u1sqgLr8kbEBfvJ9xu6DfoKazEhvvtxtdikHLE1IxKD5f")
encodedFF[47] = []byte("6qHhsx2xcCK339IkbyaD4kkrKLHvB5ktb9h4pi1r7IixgClGnv5vy7KnBKvDkew6sBeKfDdk7iyBAEC046in7a0KvGhL2Lxlhxq0vMnp5Lux6Fm06sc4aAcFszM2FpBIkbExftteHcmj7c3")
encodedFF[48] = []byte("itjdJMB3hprFo8dhga3qlp7ydziAkwu1GA6hx1476okmyoGMyf5jv85t15vJHqpf419IBaydA2AfpgLMG029gNE6bKag09KtggrkzwN4piF0mLIIyz7wHBqujkh7joA263M3BLkmvAb0Lp")
encodedFF[49] = []byte("1753vuasCClwardmLI7Fd729K7KddjEFwbaOEjCqB0ch6muu43orck1DIuBEzBCmt0cohab1O0xN1ya91divLJ5vaKCkh9Kin0vtJEqgbmE6imuKiL07seHaGk8jn33p0ickbDIqpL5xF0")
encodedFF[50] = []byte("3Hg9tb0BqrB4JH5f1HNKGMtPJgBA1uMHvBksLv86od9NL0dDx0b969dpumJ61qidd4m5N2iGvuKrLthNcifo1htPemgwEp2JbbovDLFnNe2E6qwi9EkDxCeEv4MibP1vOoldrO5yPA3EL")
encodedFF[51] = []byte("e62ewbJnbuJd0BeiEsgD1mzy9Eykpl8lEKu3xvuoCodplrzqOkxv8gArMawuMopwqqoguDp52biq2p0fPD8hbzF4Np7sFgDMf22GuH7k2EymzArcF0iENKgqldAJPiz34IPdOKh2ikHn")
encodedFF[52] = []byte("12ChwMuBpNHKr7ku6zQAOGQ7uhd4fzoybpQGe6y4wclFAAwnxJmxL9cozcnMzKIPzrgw4DK6zEr4rAmybbiCiyEriH9Iayu9Qu2RHLaletClaM8rf4Rru9lJvhB8718Gim2ePBKjJqID")
encodedFF[53] = []byte("4rOqReR1FxHRJrhqhNEAcFbhgLDGviqC3gSn7NbeEQp86KJ0cqx8J2qufFfECLQ8SRRh0NRr7FFxNDJNHvE3IzMgSedrmqr3EnPiyxqbxIpqg1s1lwFF55tSeoKQ60uLov64jGx9Jp0")
encodedFF[54] = []byte("l02APtlb86vsR37CvtiH3N5e5DwbGeR0ykAsvuRs2n8znSJrtbm47Bwpq2IycvQwoOQH9wxr95JEh34ePfc1IhNPqd9Eixmdt8Isnwet52aly1awTj3a9jx26iTnfBpLdqRDFKEOQv")
encodedFF[55] = []byte("1MQTjpjktHLCb4L7GMwDh6IrKgw1NaQtQv71mQ2G4nqbN6gbzKF4QaPBLevg58bHI6RbOjQxk4A4e2ipylgw03n3xvznG1Nzfvaokj6ayy1lsvtdlA3fS801a6qgg2jd25hpN44E1r")
encodedFF[56] = []byte("9T3bOP28PcO0vPwvNR9Fdox6qlBfrzB4H4LaMk89HRp18RpBk5VmpvUew2DCPc7I39soUoB21LFa7mS4ERawr8tfqHluCiLmVpHQrss2gcqFB92bdEmitbaglGsGUvvPUaMzC5ItR")
encodedFF[57] = []byte("Vo5oCFSsOFKCxiWWV8LDs2yM67A2sPyfNo7WAeIAtiAo2RJ2pkwKW75POprOGOyWpEp8lC1d1bynMrhQJi3gTwuWCFvBfdx7VfVzRqo9Wy4oafdVACSeNs7semQr1dstonEH8STp")
encodedFF[58] = []byte("5UdHwgfpdkA7JSMzrUubdnduCfzwIkGjEFeruuLJakNm5gpuH0fQOWf7ieVIW93SIyzGf4WQnJAr90rTAtb2d5ayjgXJaN1h7hhGvGwqC5qQkscgEkhzFeKoSr40c8vCoACH8jgf")
encodedFF[59] = []byte("CS4AfVfRM35VTGh0w999DJk94HHk0RHOpQ3VKto9kcAE8qzLNG1imU0aho03TUkB4dyWgUHtX1ou9neDogvMA4C6IOftb2WqBeYU4CNouD0Ev2ST2t5pq6RBqybMU8LlajyuunK")
encodedFF[60] = []byte("4oPPXhCZsHLTW96ahHGDfXBZxOZYixGBnignbTzQ6XF06L1fAHysU0YsBiUppygzjGKQndYGRRlKRw9vYmWTUqml2eeFw79iiICumWME6gHKwov6FLS4iHnuIUQCte02Pfupr2v")
// Precalculated result of 100 Random byte Encode for all valid bases
encodedRnd[0] = []byte("1110111011001101010011111011001001011100011011100111101100101101011010010001101111000110110010000000110100001011011010011110100100011011110010010000000000011110111100010101001011100000000101101110011010000110001010010011000100001101010101100001001010001010111010001010100100011010000001101001011000100000110000110010000001110011100111111001010010010001100100110001000101010010001010100100111100011011101011011011111100111101011001010010011101000100001011110101101000111011101010100101001011111110011000111111011000110010111001001111111101000011101000000100110000001101101111000111110110100111110100010111100110101101110000001111001001010010000110110101101110000001000010010101011110001000001011011101010110111101010110111001100100100100010011011101011101000001100011000110010010001001000001001000100")
encodedRnd[1] = []byte("1001111210200111002012100100100222102011001022200111000112120221002001221120002012100210211111100222200102211220120210110020002021021212100001221211210220102222012021220202022012112022021210120111221010101022212012102120000111121012011222010121020202010021110120122120100120221121212221020012211002202121000211221120200220201021110200212202201222122111000021201100221221222210101200212020101120010120202022112000022121111001202210001102212202122021102001211022021111001112100022021021212211120220020020220")
encodedRnd[2] = []byte("1313121222133121023203130331211223102031320312100012201123103310203132102000003313202221130000231303100301102120201222230021101113101110203100031023010012012100032130333022102030212020222101110213203131123133213223022103220201132231013131110221133303013323012113021333220131000212001231320332310332202330311232001321022100312231300020102223301001123222313222313030210202123223220030120302101020021010")
encodedRnd[3] = []byte("102412404231122240333344333142040020231412131233101242121213041201004033340303440041323404202201200141124031344004321430022314330142004321221004023221302213042023430410402031042302233030322131340213402313323110312220213204300234131122034124121014110230123012030304041110201040034002120120322122121413321420243334011444412404044112040303321211302")
encodedRnd[4] = []byte("1035013553045041310244421533015423031503411115020223320223255222110531442550343251343241451423414350433420521451342410222444444354332545352425224103120435114225453515244032512114332142411205042404132112332513501520132112500222120444305231200225350200405240353140453412233523314213325353130322351504341554224340")
encodedRnd[5] = []byte("302443511406625415644501544644052222103151002341422160402312202445464466230315245112412304511056305163261530321363333643156361200464035313106301413643312436053561213603203334040244665235644501652231626035035065614155640405502026002021022342140016215204446330616054035100536553246024460")
encodedRnd[6] = []byte("167315237311343347545532215706620064133236443362200036742513400556320612230415254112127212443201513040606201634771222144610522124474335333747531223504136550735245137630773062711775035004601557076647642746556017112206655601022536101335267526714444233535014306221101104")
encodedRnd[7] = []byte("1044720432170310872131280430476832057502170724440880384816713202237770057753812865256668175267716457111285172500447164863536663243518510527555836184082530757520821243625681878430251327858711625211503522275008544052701385678242054267431470267255746806226")
encodedRnd[8] = []byte("3110029618685275512973666792109624002040547111464885165954789847890209923527823380789739782086506742876226988810401146117449818591151754437736344602133543338930884594617780587232509126808727080998988571275318795843468287027349087743073616452")
encodedRnd[9] = []byte("94268877a3779a98623a9977807803587862a691640452037556894644238a8a738566610691132362a678262650887862048351521a8115977114a66214097a5a8399714a71a53298701514760a0a30334a0480711234a63a26074841161601711023694961196889608804642081952700081")
encodedRnd[10] = []byte("8268abb39117b35b13828686426112352101b9ab549b99b61ab25587b552623340b94418b7742b056b387924027a8a8ab881618418ba143a28209ba548b023b960528a6a085100337874824215665a5303022317117bb14837b604605412096ab8a11659b32749aa51a3463182850b0")
encodedRnd[11] = []byte("9b6591428213a834a21868605aa4694806732875330349b41551599682153166c58354a39c19963231706571a6850a95b7a6481a94a266299873cab44041acca16201b75c67884c79b85c648a677a3bc0887ab5524b6927a18471305814557493c0a91640c12145b903a94c4")
encodedRnd[12] = []byte("8d4d14b1bb6d30403d7b5a5a045397318ad40971181747494a19354d0b8a1d52845ca8c216ba636da544a8dc873b1a1ca02c708aa448496cc06858b386275cd104a51172625bc465107d16018955366878a5c068702d193162628d8b316db5ac7b5172381d66c394a0")
encodedRnd[13] = []byte("3ab38a2aae1aa3b324c7359659c02b7ab4bd851e44914cb4db9094a58dcaade5e2901e604d3d227b09e42082dca0b3e195cd00c53894bd20b35569437b83d2172505541aae94ad9e6255607eea991630b9ac8b28b30374bc6c65dbe63c66d443977c0397194bc")
encodedRnd[14] = []byte("7766a7d92e373d96b48de3640685b4f48de4800f78a9700b7343149886ab094574548d034b10619039cfca48c988a915278dd6df9eb293a217ad1dd5297f31fb19727fa1d02606de3ed3e8bcd6e079290dadc084abc416eadeadcc9226eba0c632448244")
encodedRnd[15] = []byte("3a0dg77a49b0feg7458g9fggf47b229dd76aa1de5agf9dba354af9d69ba0a90c4f76097eg153bg9774fbb3d12cacf46d87538ag42ed79c12fa01d121d6ag145f2bfa718e53af8a8g7g5ae51ab6e1539f17556f8867a78152211e0eac6343719gddc1")
encodedRnd[16] = []byte("57h0b92162e3bbfdcgd89663gga16a30a6ca9788dhc2ea5g84bhd3g2g4b4e5h2g17b6545794hf77bcb01d3h17a9h7847e0cg1455038e13ea1fc3bd927e4g56bdb87bae20h0a64gh0g2a5h2dec731d8bc63f1412311434ec3030edeb927cb5516")
encodedRnd[17] = []byte("144304fc6de1hfc085f073adebdd3be3i513731d5b6eg873gdh2a210f6a478eegbh6g703geaegf879ihg88c22c12693g87ig3fc3625g77374e61321ch8i4b6ca7dc34d5be3777131c6he17a4e86395h551357b27h7h2110129f0bi5i0f9bi")
encodedRnd[18] = []byte("cdd9906d2ceb624fe13bh64j69d7di84hijg6b569de3b4gc5077ca1dhbc6fee64iee8jj495h3j5je22hb3da4g97j75h2479d631gffda90a4ech6dj3aa35i5dd4a1hbad2d074beffj6hc2h14i1i4e25d8f94e5c61g066g7j6jj5aa212c")
encodedRnd[19] = []byte("eh7kh4bk711djg7ahk61ag4hd8i838dg6fj1272k92k9kjg27h0bgf7dek267g53k5a2fkaee3eed489de6cbbig1900edkb3e676102kj1ag8kfhb15ibf4h4f17b77938fb042hd55b92fbj664bkcg0hbjb2hbkjcj5j09hij911egj2g20")
encodedRnd[20] = []byte("1chb42c1led23d281hc6bi174e63124b771c44aj404l5laec88b4eh64c2c9l3fb6i6i3hdgdfajlc99a7d6ei56gcl5c19e0c451ji4915e6ib43032g3lkggdic3k29fa1679hhlh33gikkfdc9j3glic3l1i8id1ggk4dk8l3jlbf2kc")
encodedRnd[21] = []byte("6h0be43dl50mb59cmhi7ll06fe090cej55a9km6143m854k5d828hkim8f8303ghdk6ikhmkjj4ci80524milmlklg4651ab1i5dhmfbc96kgajb3g3flg9gkl2d79c0fab3a46dlj2f758h767489bjhi4c0k01jbeg44gkgh7b38g49")
encodedRnd[22] = []byte("240em563mf0c319e7n3hhnif574m35njg68i524k78djc54maimbe4ggnkcc44kjfg3khakaaa2df6gcnfa17iebm7jki0mm7c902h3c349kagh4jl31m2b0cka021g248gnj4h2a68c9hmc0m5adcff9dk49i73hm1ie94j11e0f5c")
encodedRnd[23] = []byte("12le4d6ce3ijni9ak22glbgdg1ebbbfla543ikfjk48dkm2a7096e38o0nbn0cgnf9a4h7b0kdc82bfm2jfl4235mfci33c88kbj2gid637c28an0dlg7aj7lb1l5d1d1affkl62140j0ba73c7bblibm2nik6oo7kko6akfibb82")
encodedRnd[24] = []byte("n0j9k3mg36m5nh26bj56c7mphi1d1lbbn44a9adi4pli32580dai18kfm1olcgcf1p8d3pi8l2lc4fah93oolojio13ddb51o3fpeag9055gkc2peblm34o8lkk140f6hme3111pok458enfgd2pd2m6oloj1423c5li7b6164")
encodedRnd[25] = []byte("11dlid25999qb418id0efp21pf259lmd9qibmoflc6277n91pmlobq57ok85e87lfdp3a8n5bf0dg54q3g6k37cfhf9fpgnp65m2kg0mpfioj7cinkjqhd07j9ppqlain6af3fk8e08gd1kl1bnkh7b1m87d1e9877nmfo66o")
encodedRnd[26] = []byte("1ndh15de4o4aca0i6m3i88742h59f3hgnd7aeeq4c9qndf4aeqeqlgalp9r921j5pcn78j8eh8a0cf77c2fqaob5r473og0149mmpq3eg6q6bnl98md4b2m2lmb1fl26n1hkprq3rri4ohoag9f0i6p18k37rh3aoh06bj0")
encodedRnd[27] = []byte("4gbi40qq7b6f24bi45h46do4p9geibgk9430hq39d98mkps0dfcc21b29qiho0i12eb5p03401qoh0a05eg8h87plnl4kc9lgnl3paq6qrock6pks0dff0hm4i2qa7a8cmrmrhdgag01l804h9qrgk8s2cjnm98sfo82p")
encodedRnd[28] = []byte("fof65o30p6t51ht31f5sjglqti9kmhlnn26qap4orhjg5bpq6q1ja33h1fk74r5i3sis3jjasil7jboog3csdaqdhh3s0nq44jjanokdant9b8hkpim9cmoi51ti332qs7mf06c16jpn9ai3troq90d2i9tfst8g4sc")
encodedRnd[29] = []byte("2cu35411u97b81erfkbi0oh71ipu5mmcef86t09ln5d447p06903h8hq40ih9anqe249e3bscj91t367au8rr9b1ilh5l85lhbkhd7i5cs958qssj2qs8oegh55phaq0098tdf6bje6m0fuhre79nu6khq79b751f2")
encodedRnd[30] = []byte("etjafm9e6supdd4dsdi0d1dkui6u900ff2kn02rj8ca9h1lb152n8l4d0d5h0ocg777ski69h2kha9sdqrfptckjk8bqq7el55vj3uope9vq3k160rf3tkv8njbe0u991mms115bogbelnldpi92dqt0oop490i4")
encodedRnd[31] = []byte("3muc67lutavuqolt9cl5q84p4v84mfwjtnr3sh6lp6b6md4j12ggciufdqis3l1uelw68qgh35abtk8blgl59imr5uml5n6ga8865725c5grpic0ft8ngm0n50ocfq249tfj7ewkt8pw5cpgkd7ahk36rfsq2hc")
encodedRnd[32] = []byte("146q6jwrns9jmivur77nvqs61lc8e8jrb33birwkubad3sqvrjh7e0jg8166xiow4ltjaefp8j6fi42rm0galcuvcb7c9k13uc1upro6rssjvkivx9n72temseqwm8esqn25vhncw2id8uvwenf3pmvdjetbvi")
encodedRnd[33] = []byte("eih9xbux1ph39t03c2f9vvdi6xtqj2p25ajixeybmgc5k24x8qa00l033fv43dhr15c68vufxjroepkomkk2l7e5kdmbv7thc7q9g5396w4v1hxysthuosa4e9yoqs827vssf0tlrfov1y0vtesufj62gdm7")
encodedRnd[34] = []byte("6n1nx4upj2sqbl1yf3b3p7b22fk2fhwe75jshumkvmkptafprurmcwavmg6egssrylhtnghep384n7qhtnbgokvdaldqp854g49d8lh9ubc9d8u2e84siwjc2hn20owonjotm8fnfjq9kxx93enb4mbyero")
encodedRnd[35] = []byte("3mpl3uiA7Aft7c3hgmevgidabfk80t0rwv149fm5pxy8jhbq6t167z5vci2xjk7iqno0pi6var8kz2bqvr3bm5mqepp34epAdgmizk862jwbini7rcqi96chafldiot85zxrz67c2xoqgure4jkp7rAlua")
encodedRnd[36] = []byte("2c7evwuk9ti8cr2kc9hu64Aoj2sc6ye16hk3pvdpf0vhq4ikmoxsx0lynBb9l5Ajakjmbhz4yByz0jgqg3g9kxhia8lrkvwvyhazo4okrrgc4d0sgevbgae34fjatihBcw4wotibkfup5epkscbAts2fi")
encodedRnd[37] = []byte("1t3hkCcf8pj13t46sjh5hnkonh0CseqCdw51mw2zbs666zndwshhCo4nrwrzevnAdryo3k07j4Af57btocltBzoalbe5zs7BvulyCus0ia7aogA2h9iwC40tpai24f2orl5Cdttxuetw4tCe10vc6npu")
encodedRnd[38] = []byte("1l2vl31lintCrjcrvrozu2ktjoi68larp1eqaD8muvqpAqkd7mmdCup2aCm9j2foeeBvubarChmaiBDhCaqdaqcC2u720Bv2aoq1gvuo9bal1rst3eoop5DlDutfa7g139texnDw4iAyuv8DeuC5abc")
encodedRnd[39] = []byte("1m8h6xw26x3cclio4jmks1rgrl2Cfm8ys4sv4qyeyicc69vnb8v3boDtjql55Dm9smlirr7gseCEaubzjw48g0hlo7B2Aouijzpslh8jrmjj9A4i3s01nyjsD1l7r0ur0wyxCmipb94k5i5vpzwl9e")
encodedRnd[40] = []byte("1x0hms94xqr7u9prjs5zmpn96DxF02spuzu6rp0txE0zb7nt4r6cbz6eunspo3Fpt3fnhdbod3bs3mbcrojdnv1vFqqub9BAwftcnFwxlltkBxea90horba05506nqowsl5gfydchaFqi5ozd0em0")
encodedRnd[41] = []byte("2fkn0b1E08oA3vobF0uitC9Gp5D3exvyqAgAEF81ua05m5001nrt31EE6e1ypp82nskalqpuj59E9bs7qw6eg10EgDgdClx7EnGry1dejyq0s3orhowpqtEfldCdxx5Et3ACe2mzwfwsfA5Cqk78")
encodedRnd[42] = []byte("3nsasCH0p8adBi13obf1sb1hmd5F9lp6ghbrfbbEi4oygz11sCuc6v2vBBEweBxDFhBqabHBGex498GGj9BiCicpl9a69svjbhrBABa7o3Dq6frecxaGbCpj0x2Ggtjfcddxgd82nBa2bsBBsac")
encodedRnd[43] = []byte("5IbjB3xrHtsrp79H5wEDn2Flpq3vs9fmgh64v7qHr5fIm5Eyvwu7mcorHekCbs297b1lo9qEx2A8u5e0nroHeguqH964ChoAaqefFEIEbDskAsq0jsozrI2nzF7yEF8uowEmA2hppvt3igeanG")
encodedRnd[44] = []byte("bgE36csHbws7s4n8nxmyFl8JcsI5bJdhxwtA4FIFHqkq65sq7E3Hd2979F523GJgue2m0qAsqj7JGcfnA6bb4ioHzGHdmq16v2909rnw1zwrDyJtmFsm9I18muot4an9u3Ee8vth77n5hl9Aw")
encodedRnd[45] = []byte("o6vhKbzE6I09gwpyqxibq353dzFsuje0F4838Ig5onuwJlwI0nCjGtHBx00jlmsBv6GK39nkIkCDpG9DAFydz3h8AjlBnCs0teimGCiH4Bo0nqdlEs0nmHlBlclKBdxcxE1bCltw2t22zswH")
encodedRnd[46] = []byte("193LEtB2ruCKI63nK612ApCFj3xD7eix6Gwzd2sLLx0g3t1ykvv5AybuF2qlwFnJjyjw9Ay7atn9IDa3FiI1jzf6I3txhhCe9sxeh89HKnG03wBvju2lms892gFtfqzBwtx3uJLIhj6Ci3CA")
encodedRnd[47] = []byte("32wq8sMjtFwzcwKsBgf3c72pbgd42mg2wDKyIlmBx8i9lx85J5dnHC3frooKmFr90ysqmm6lbaKo9vGCF9aGn3ossiyLhFwzdBhdk3zq6FbcFssE22G227gpfs1Icewyo6d5sq75rEny2wG")
encodedRnd[48] = []byte("8xnB7HNsHC7kMerocDDi3r3raKyuq1cKq5HcdNNBzkmdzms2gooevzIEhM1gI10b4jE7pkC46xqfbllc1cj6zkyKz6qLHIheLBp19sb0pqFnJgoNJBxBEr24r8HkkHMCm3xa2AwfrFCKt2")
encodedRnd[49] = []byte("r50gu5G6hD36tlKyjNxcKxv7Llz60rKjjp8OALbkr9s8a5wDEAIpq4g1F4JIaqoagNsctv0p58i8Ei4M7lfB77bD8s34bj6IwBLnC6o0mv2fJx1LaKdMHqsdEElGad8fJvsbjhvoxOINi")
encodedRnd[50] = []byte("1ENNNjy4NK3t7Mmkpn2zwgNzt70mFvugD1eh4MbnJbcLxepprDr1mm1sBB6a3wwP61erjtPlMdHNjLMENepMcbvAB6nw0ang1aohB9Bv7oAMPgjzdL4HojBN6NMJfFpOcCqOi5cJC40g4")
encodedRnd[51] = []byte("6uLmsOkp0bjJ2sAzym9zBpzsufKlNm6qQMJIM4HnlkCvlPCMHfmFyxi4lGKdt27JM1sGq6b2HiCfy1zPo48Dg8sE38QtnDKlAPDC6KP7rOwFvhiurFhHw5D13I6d6j0dOJnE65EK6wru")
encodedRnd[52] = []byte("qogaDzireczmk2Jo2KoDBk4Ai92IH5KjjCLx1AaPMcKheRDKuK3PnxdofLaAqCoNoHdytPiHxq0ilIb4enRAx1L93O66g43n5jK5GxyahJ4K94jAc4zuswFb9L9avcDe5mkf23cHsuo")
encodedRnd[53] = []byte("25yEbx3kGOO1A8GRHIF9SjyRvGyh0r3lhmvfzt6OnIMDHJ7PCMcDacotJtxv0JMOqpb5CE3Ej2ynCQd42EOodod1xeRwRsS38lv9auq05y2IfCcyEPzv91biBob2R6q1CCquqp3Fa8c")
encodedRnd[54] = []byte("9It8dCT26S6tp1FvakOv1B2hoheHsoJ0jxK1xJ37o57uMw8Q4chojwQL8nn11JOeKIeNyJFGRzh4QH74NLREbiqEa1T0mz7FRyNgyaSJvj9pE7AphyEok1EdAmNzf354eLJkstGIPs")
encodedRnd[55] = []byte("Nn9GhKrLEdcldRU4e0xptoC3bgrpz5UcKcBi6elfrnDFswDsfTfryLejH5xPphDtIBjgUyNjOerfSpDD74IdbMc5az6tMz21NsfA3GLCDxJ27b2Cnkc7pbNQI4e1xxCGiyKG7U9ti")
encodedRnd[56] = []byte("4B8lNH9neONCC1t5k2B847V8CMiyaqg7kImM2mN6IgQmfKwE47AlB0yfRxSEQwu6Emgh5rjMvMynDE4U3aTgjDzV6K5M8chvDwOHQ4mfsa6UcdIMGHcy0j4LvguoOVQzmAvNM6CfS")
encodedRnd[57] = []byte("qJJDjEJLeneNOinvKhIAwJxa70dORCO1UfSRIWwsWUJzPh1xW3SuiGFGPFa9unyr41iP4kw9D0nJADgl1Dfo4IfoQDRdM4fqN6BAcAzTfC95giAqO5y9bydLfyGhDwbO8neDnosF")
encodedRnd[58] = []byte("2K8Tllt4HS5d7au5HHXTTMQP4EHEhe5MU3AWWHaLybPCcesb1zKKSAvd1Bvk6boOfQUBLfzS3ShgNuse7l49wgRWoekSGBar3dP9kHkDXKgclNuKtmub9qJQhC8t6yGjr4Ehovec")
encodedRnd[59] = []byte("i8lWzTfMSH3pEXP0e1nb1wFHRdKIIfoEqG064lKaF5XIQ049dUCjlyaSqnQjKF6mhjAn0gtd7guNu5Ok0F3o5ri1wzdoTlTMKUiwqjQfbuTlQe2hQ0s6nkwYnnQxxAgE2TrNYpG")
encodedRnd[60] = []byte("23fIy8rH1sR7jGhlkAy1BowH5fp7LeHARgvOLF3RvlmTzycxiadz0go4x02D1uiEudxmtPcj6t6Zn7kDZlNlgTh54VBjEooHEOtAwZIi8xL7ivJxrGX2Snlcyq8e36H5CTzk0n2")
}