-
Notifications
You must be signed in to change notification settings - Fork 3
/
allot_lookuptbl.go
539 lines (537 loc) · 31.5 KB
/
allot_lookuptbl.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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
// Copyright (c) 2024 Karl Gaissmaier
// SPDX-License-Identifier: MIT
package bart
// allotLookupTbl, as precalculated bitsets,
// map the baseIndex to bitset with precomputed complete binary tree.
//
// Used for bitset intersections instead of range loops in overlaps tests.
//
// // 1 <= idx <= 511
// func allotRec(aTbl *bitset.BitSet, idx uint) {
// aTbl = aTbl.Set(idx)
// if idx >= 256 {
// return
// }
// allotRec(aTbl, idx<<1)
// allotRec(aTbl, idx<<1+1)
// }
//
// All values are written as decimals, so no hassle with different byte order for little- or big-endian.
var allotLookupTbl = [512][8]uint64{
/* idx = 0 */ {0, 0, 0, 0, 0, 0, 0, 0}, // invalid
/* idx = 1 */ {18446744073709551614, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615},
/* idx = 2 */ {281470698458932, 4294967295, 18446744073709551615, 0, 18446744073709551615, 18446744073709551615, 0, 0},
/* idx = 3 */ {18446462603011092680, 18446744069414584320, 0, 18446744073709551615, 0, 0, 18446744073709551615, 18446744073709551615},
/* idx = 4 */ {1095217644304, 65535, 4294967295, 0, 18446744073709551615, 0, 0, 0},
/* idx = 5 */ {280375480814624, 4294901760, 18446744069414584320, 0, 0, 18446744073709551615, 0, 0},
/* idx = 6 */ {71776119312887872, 281470681743360, 0, 4294967295, 0, 0, 18446744073709551615, 0},
/* idx = 7 */ {18374686483698204800, 18446462598732840960, 0, 18446744069414584320, 0, 0, 0, 18446744073709551615},
/* idx = 8 */ {64424706304, 255, 65535, 0, 4294967295, 0, 0, 0},
/* idx = 9 */ {1030792937984, 65280, 4294901760, 0, 18446744069414584320, 0, 0, 0},
/* idx = 10 */ {16492677563392, 16711680, 281470681743360, 0, 0, 4294967295, 0, 0},
/* idx = 11 */ {263882803251200, 4278190080, 18446462598732840960, 0, 0, 18446744069414584320, 0, 0},
/* idx = 12 */ {4222124700995584, 1095216660480, 0, 65535, 0, 0, 4294967295, 0},
/* idx = 13 */ {67553994611892224, 280375465082880, 0, 4294901760, 0, 0, 18446744069414584320, 0},
/* idx = 14 */ {1080863911374241792, 71776119061217280, 0, 281470681743360, 0, 0, 0, 4294967295},
/* idx = 15 */ {17293822572323962880, 18374686479671623680, 0, 18446462598732840960, 0, 0, 0, 18446744069414584320},
/* idx = 16 */ {12884967424, 15, 255, 0, 65535, 0, 0, 0},
/* idx = 17 */ {51539738624, 240, 65280, 0, 4294901760, 0, 0, 0},
/* idx = 18 */ {206158692352, 3840, 16711680, 0, 281470681743360, 0, 0, 0},
/* idx = 19 */ {824634245120, 61440, 4278190080, 0, 18446462598732840960, 0, 0, 0},
/* idx = 20 */ {3298535931904, 983040, 1095216660480, 0, 0, 65535, 0, 0},
/* idx = 21 */ {13194141630464, 15728640, 280375465082880, 0, 0, 4294901760, 0, 0},
/* idx = 22 */ {52776562327552, 251658240, 71776119061217280, 0, 0, 281470681743360, 0, 0},
/* idx = 23 */ {211106240921600, 4026531840, 18374686479671623680, 0, 0, 18446462598732840960, 0, 0},
/* idx = 24 */ {844424946909184, 64424509440, 0, 255, 0, 0, 65535, 0},
/* idx = 25 */ {3377699754082304, 1030792151040, 0, 65280, 0, 0, 4294901760, 0},
/* idx = 26 */ {13510798949220352, 16492674416640, 0, 16711680, 0, 0, 281470681743360, 0},
/* idx = 27 */ {54043195662663680, 263882790666240, 0, 4278190080, 0, 0, 18446462598732840960, 0},
/* idx = 28 */ {216172782382219264, 4222124650659840, 0, 1095216660480, 0, 0, 0, 65535},
/* idx = 29 */ {864691128992006144, 67553994410557440, 0, 280375465082880, 0, 0, 0, 4294901760},
/* idx = 30 */ {3458764514894282752, 1080863910568919040, 0, 71776119061217280, 0, 0, 0, 281470681743360},
/* idx = 31 */ {13835058057429647360, 17293822569102704640, 0, 18374686479671623680, 0, 0, 0, 18446462598732840960},
/* idx = 32 */ {4294967296, 3, 15, 0, 255, 0, 0, 0},
/* idx = 33 */ {8589934592, 12, 240, 0, 65280, 0, 0, 0},
/* idx = 34 */ {17179869184, 48, 3840, 0, 16711680, 0, 0, 0},
/* idx = 35 */ {34359738368, 192, 61440, 0, 4278190080, 0, 0, 0},
/* idx = 36 */ {68719476736, 768, 983040, 0, 1095216660480, 0, 0, 0},
/* idx = 37 */ {137438953472, 3072, 15728640, 0, 280375465082880, 0, 0, 0},
/* idx = 38 */ {274877906944, 12288, 251658240, 0, 71776119061217280, 0, 0, 0},
/* idx = 39 */ {549755813888, 49152, 4026531840, 0, 18374686479671623680, 0, 0, 0},
/* idx = 40 */ {1099511627776, 196608, 64424509440, 0, 0, 255, 0, 0},
/* idx = 41 */ {2199023255552, 786432, 1030792151040, 0, 0, 65280, 0, 0},
/* idx = 42 */ {4398046511104, 3145728, 16492674416640, 0, 0, 16711680, 0, 0},
/* idx = 43 */ {8796093022208, 12582912, 263882790666240, 0, 0, 4278190080, 0, 0},
/* idx = 44 */ {17592186044416, 50331648, 4222124650659840, 0, 0, 1095216660480, 0, 0},
/* idx = 45 */ {35184372088832, 201326592, 67553994410557440, 0, 0, 280375465082880, 0, 0},
/* idx = 46 */ {70368744177664, 805306368, 1080863910568919040, 0, 0, 71776119061217280, 0, 0},
/* idx = 47 */ {140737488355328, 3221225472, 17293822569102704640, 0, 0, 18374686479671623680, 0, 0},
/* idx = 48 */ {281474976710656, 12884901888, 0, 15, 0, 0, 255, 0},
/* idx = 49 */ {562949953421312, 51539607552, 0, 240, 0, 0, 65280, 0},
/* idx = 50 */ {1125899906842624, 206158430208, 0, 3840, 0, 0, 16711680, 0},
/* idx = 51 */ {2251799813685248, 824633720832, 0, 61440, 0, 0, 4278190080, 0},
/* idx = 52 */ {4503599627370496, 3298534883328, 0, 983040, 0, 0, 1095216660480, 0},
/* idx = 53 */ {9007199254740992, 13194139533312, 0, 15728640, 0, 0, 280375465082880, 0},
/* idx = 54 */ {18014398509481984, 52776558133248, 0, 251658240, 0, 0, 71776119061217280, 0},
/* idx = 55 */ {36028797018963968, 211106232532992, 0, 4026531840, 0, 0, 18374686479671623680, 0},
/* idx = 56 */ {72057594037927936, 844424930131968, 0, 64424509440, 0, 0, 0, 255},
/* idx = 57 */ {144115188075855872, 3377699720527872, 0, 1030792151040, 0, 0, 0, 65280},
/* idx = 58 */ {288230376151711744, 13510798882111488, 0, 16492674416640, 0, 0, 0, 16711680},
/* idx = 59 */ {576460752303423488, 54043195528445952, 0, 263882790666240, 0, 0, 0, 4278190080},
/* idx = 60 */ {1152921504606846976, 216172782113783808, 0, 4222124650659840, 0, 0, 0, 1095216660480},
/* idx = 61 */ {2305843009213693952, 864691128455135232, 0, 67553994410557440, 0, 0, 0, 280375465082880},
/* idx = 62 */ {4611686018427387904, 3458764513820540928, 0, 1080863910568919040, 0, 0, 0, 71776119061217280},
/* idx = 63 */ {9223372036854775808, 13835058055282163712, 0, 17293822569102704640, 0, 0, 0, 18374686479671623680},
/* idx = 64 */ {0, 1, 3, 0, 15, 0, 0, 0},
/* idx = 65 */ {0, 2, 12, 0, 240, 0, 0, 0},
/* idx = 66 */ {0, 4, 48, 0, 3840, 0, 0, 0},
/* idx = 67 */ {0, 8, 192, 0, 61440, 0, 0, 0},
/* idx = 68 */ {0, 16, 768, 0, 983040, 0, 0, 0},
/* idx = 69 */ {0, 32, 3072, 0, 15728640, 0, 0, 0},
/* idx = 70 */ {0, 64, 12288, 0, 251658240, 0, 0, 0},
/* idx = 71 */ {0, 128, 49152, 0, 4026531840, 0, 0, 0},
/* idx = 72 */ {0, 256, 196608, 0, 64424509440, 0, 0, 0},
/* idx = 73 */ {0, 512, 786432, 0, 1030792151040, 0, 0, 0},
/* idx = 74 */ {0, 1024, 3145728, 0, 16492674416640, 0, 0, 0},
/* idx = 75 */ {0, 2048, 12582912, 0, 263882790666240, 0, 0, 0},
/* idx = 76 */ {0, 4096, 50331648, 0, 4222124650659840, 0, 0, 0},
/* idx = 77 */ {0, 8192, 201326592, 0, 67553994410557440, 0, 0, 0},
/* idx = 78 */ {0, 16384, 805306368, 0, 1080863910568919040, 0, 0, 0},
/* idx = 79 */ {0, 32768, 3221225472, 0, 17293822569102704640, 0, 0, 0},
/* idx = 80 */ {0, 65536, 12884901888, 0, 0, 15, 0, 0},
/* idx = 81 */ {0, 131072, 51539607552, 0, 0, 240, 0, 0},
/* idx = 82 */ {0, 262144, 206158430208, 0, 0, 3840, 0, 0},
/* idx = 83 */ {0, 524288, 824633720832, 0, 0, 61440, 0, 0},
/* idx = 84 */ {0, 1048576, 3298534883328, 0, 0, 983040, 0, 0},
/* idx = 85 */ {0, 2097152, 13194139533312, 0, 0, 15728640, 0, 0},
/* idx = 86 */ {0, 4194304, 52776558133248, 0, 0, 251658240, 0, 0},
/* idx = 87 */ {0, 8388608, 211106232532992, 0, 0, 4026531840, 0, 0},
/* idx = 88 */ {0, 16777216, 844424930131968, 0, 0, 64424509440, 0, 0},
/* idx = 89 */ {0, 33554432, 3377699720527872, 0, 0, 1030792151040, 0, 0},
/* idx = 90 */ {0, 67108864, 13510798882111488, 0, 0, 16492674416640, 0, 0},
/* idx = 91 */ {0, 134217728, 54043195528445952, 0, 0, 263882790666240, 0, 0},
/* idx = 92 */ {0, 268435456, 216172782113783808, 0, 0, 4222124650659840, 0, 0},
/* idx = 93 */ {0, 536870912, 864691128455135232, 0, 0, 67553994410557440, 0, 0},
/* idx = 94 */ {0, 1073741824, 3458764513820540928, 0, 0, 1080863910568919040, 0, 0},
/* idx = 95 */ {0, 2147483648, 13835058055282163712, 0, 0, 17293822569102704640, 0, 0},
/* idx = 96 */ {0, 4294967296, 0, 3, 0, 0, 15, 0},
/* idx = 97 */ {0, 8589934592, 0, 12, 0, 0, 240, 0},
/* idx = 98 */ {0, 17179869184, 0, 48, 0, 0, 3840, 0},
/* idx = 99 */ {0, 34359738368, 0, 192, 0, 0, 61440, 0},
/* idx = 100 */ {0, 68719476736, 0, 768, 0, 0, 983040, 0},
/* idx = 101 */ {0, 137438953472, 0, 3072, 0, 0, 15728640, 0},
/* idx = 102 */ {0, 274877906944, 0, 12288, 0, 0, 251658240, 0},
/* idx = 103 */ {0, 549755813888, 0, 49152, 0, 0, 4026531840, 0},
/* idx = 104 */ {0, 1099511627776, 0, 196608, 0, 0, 64424509440, 0},
/* idx = 105 */ {0, 2199023255552, 0, 786432, 0, 0, 1030792151040, 0},
/* idx = 106 */ {0, 4398046511104, 0, 3145728, 0, 0, 16492674416640, 0},
/* idx = 107 */ {0, 8796093022208, 0, 12582912, 0, 0, 263882790666240, 0},
/* idx = 108 */ {0, 17592186044416, 0, 50331648, 0, 0, 4222124650659840, 0},
/* idx = 109 */ {0, 35184372088832, 0, 201326592, 0, 0, 67553994410557440, 0},
/* idx = 110 */ {0, 70368744177664, 0, 805306368, 0, 0, 1080863910568919040, 0},
/* idx = 111 */ {0, 140737488355328, 0, 3221225472, 0, 0, 17293822569102704640, 0},
/* idx = 112 */ {0, 281474976710656, 0, 12884901888, 0, 0, 0, 15},
/* idx = 113 */ {0, 562949953421312, 0, 51539607552, 0, 0, 0, 240},
/* idx = 114 */ {0, 1125899906842624, 0, 206158430208, 0, 0, 0, 3840},
/* idx = 115 */ {0, 2251799813685248, 0, 824633720832, 0, 0, 0, 61440},
/* idx = 116 */ {0, 4503599627370496, 0, 3298534883328, 0, 0, 0, 983040},
/* idx = 117 */ {0, 9007199254740992, 0, 13194139533312, 0, 0, 0, 15728640},
/* idx = 118 */ {0, 18014398509481984, 0, 52776558133248, 0, 0, 0, 251658240},
/* idx = 119 */ {0, 36028797018963968, 0, 211106232532992, 0, 0, 0, 4026531840},
/* idx = 120 */ {0, 72057594037927936, 0, 844424930131968, 0, 0, 0, 64424509440},
/* idx = 121 */ {0, 144115188075855872, 0, 3377699720527872, 0, 0, 0, 1030792151040},
/* idx = 122 */ {0, 288230376151711744, 0, 13510798882111488, 0, 0, 0, 16492674416640},
/* idx = 123 */ {0, 576460752303423488, 0, 54043195528445952, 0, 0, 0, 263882790666240},
/* idx = 124 */ {0, 1152921504606846976, 0, 216172782113783808, 0, 0, 0, 4222124650659840},
/* idx = 125 */ {0, 2305843009213693952, 0, 864691128455135232, 0, 0, 0, 67553994410557440},
/* idx = 126 */ {0, 4611686018427387904, 0, 3458764513820540928, 0, 0, 0, 1080863910568919040},
/* idx = 127 */ {0, 9223372036854775808, 0, 13835058055282163712, 0, 0, 0, 17293822569102704640},
/* idx = 128 */ {0, 0, 1, 0, 3, 0, 0, 0},
/* idx = 129 */ {0, 0, 2, 0, 12, 0, 0, 0},
/* idx = 130 */ {0, 0, 4, 0, 48, 0, 0, 0},
/* idx = 131 */ {0, 0, 8, 0, 192, 0, 0, 0},
/* idx = 132 */ {0, 0, 16, 0, 768, 0, 0, 0},
/* idx = 133 */ {0, 0, 32, 0, 3072, 0, 0, 0},
/* idx = 134 */ {0, 0, 64, 0, 12288, 0, 0, 0},
/* idx = 135 */ {0, 0, 128, 0, 49152, 0, 0, 0},
/* idx = 136 */ {0, 0, 256, 0, 196608, 0, 0, 0},
/* idx = 137 */ {0, 0, 512, 0, 786432, 0, 0, 0},
/* idx = 138 */ {0, 0, 1024, 0, 3145728, 0, 0, 0},
/* idx = 139 */ {0, 0, 2048, 0, 12582912, 0, 0, 0},
/* idx = 140 */ {0, 0, 4096, 0, 50331648, 0, 0, 0},
/* idx = 141 */ {0, 0, 8192, 0, 201326592, 0, 0, 0},
/* idx = 142 */ {0, 0, 16384, 0, 805306368, 0, 0, 0},
/* idx = 143 */ {0, 0, 32768, 0, 3221225472, 0, 0, 0},
/* idx = 144 */ {0, 0, 65536, 0, 12884901888, 0, 0, 0},
/* idx = 145 */ {0, 0, 131072, 0, 51539607552, 0, 0, 0},
/* idx = 146 */ {0, 0, 262144, 0, 206158430208, 0, 0, 0},
/* idx = 147 */ {0, 0, 524288, 0, 824633720832, 0, 0, 0},
/* idx = 148 */ {0, 0, 1048576, 0, 3298534883328, 0, 0, 0},
/* idx = 149 */ {0, 0, 2097152, 0, 13194139533312, 0, 0, 0},
/* idx = 150 */ {0, 0, 4194304, 0, 52776558133248, 0, 0, 0},
/* idx = 151 */ {0, 0, 8388608, 0, 211106232532992, 0, 0, 0},
/* idx = 152 */ {0, 0, 16777216, 0, 844424930131968, 0, 0, 0},
/* idx = 153 */ {0, 0, 33554432, 0, 3377699720527872, 0, 0, 0},
/* idx = 154 */ {0, 0, 67108864, 0, 13510798882111488, 0, 0, 0},
/* idx = 155 */ {0, 0, 134217728, 0, 54043195528445952, 0, 0, 0},
/* idx = 156 */ {0, 0, 268435456, 0, 216172782113783808, 0, 0, 0},
/* idx = 157 */ {0, 0, 536870912, 0, 864691128455135232, 0, 0, 0},
/* idx = 158 */ {0, 0, 1073741824, 0, 3458764513820540928, 0, 0, 0},
/* idx = 159 */ {0, 0, 2147483648, 0, 13835058055282163712, 0, 0, 0},
/* idx = 160 */ {0, 0, 4294967296, 0, 0, 3, 0, 0},
/* idx = 161 */ {0, 0, 8589934592, 0, 0, 12, 0, 0},
/* idx = 162 */ {0, 0, 17179869184, 0, 0, 48, 0, 0},
/* idx = 163 */ {0, 0, 34359738368, 0, 0, 192, 0, 0},
/* idx = 164 */ {0, 0, 68719476736, 0, 0, 768, 0, 0},
/* idx = 165 */ {0, 0, 137438953472, 0, 0, 3072, 0, 0},
/* idx = 166 */ {0, 0, 274877906944, 0, 0, 12288, 0, 0},
/* idx = 167 */ {0, 0, 549755813888, 0, 0, 49152, 0, 0},
/* idx = 168 */ {0, 0, 1099511627776, 0, 0, 196608, 0, 0},
/* idx = 169 */ {0, 0, 2199023255552, 0, 0, 786432, 0, 0},
/* idx = 170 */ {0, 0, 4398046511104, 0, 0, 3145728, 0, 0},
/* idx = 171 */ {0, 0, 8796093022208, 0, 0, 12582912, 0, 0},
/* idx = 172 */ {0, 0, 17592186044416, 0, 0, 50331648, 0, 0},
/* idx = 173 */ {0, 0, 35184372088832, 0, 0, 201326592, 0, 0},
/* idx = 174 */ {0, 0, 70368744177664, 0, 0, 805306368, 0, 0},
/* idx = 175 */ {0, 0, 140737488355328, 0, 0, 3221225472, 0, 0},
/* idx = 176 */ {0, 0, 281474976710656, 0, 0, 12884901888, 0, 0},
/* idx = 177 */ {0, 0, 562949953421312, 0, 0, 51539607552, 0, 0},
/* idx = 178 */ {0, 0, 1125899906842624, 0, 0, 206158430208, 0, 0},
/* idx = 179 */ {0, 0, 2251799813685248, 0, 0, 824633720832, 0, 0},
/* idx = 180 */ {0, 0, 4503599627370496, 0, 0, 3298534883328, 0, 0},
/* idx = 181 */ {0, 0, 9007199254740992, 0, 0, 13194139533312, 0, 0},
/* idx = 182 */ {0, 0, 18014398509481984, 0, 0, 52776558133248, 0, 0},
/* idx = 183 */ {0, 0, 36028797018963968, 0, 0, 211106232532992, 0, 0},
/* idx = 184 */ {0, 0, 72057594037927936, 0, 0, 844424930131968, 0, 0},
/* idx = 185 */ {0, 0, 144115188075855872, 0, 0, 3377699720527872, 0, 0},
/* idx = 186 */ {0, 0, 288230376151711744, 0, 0, 13510798882111488, 0, 0},
/* idx = 187 */ {0, 0, 576460752303423488, 0, 0, 54043195528445952, 0, 0},
/* idx = 188 */ {0, 0, 1152921504606846976, 0, 0, 216172782113783808, 0, 0},
/* idx = 189 */ {0, 0, 2305843009213693952, 0, 0, 864691128455135232, 0, 0},
/* idx = 190 */ {0, 0, 4611686018427387904, 0, 0, 3458764513820540928, 0, 0},
/* idx = 191 */ {0, 0, 9223372036854775808, 0, 0, 13835058055282163712, 0, 0},
/* idx = 192 */ {0, 0, 0, 1, 0, 0, 3, 0},
/* idx = 193 */ {0, 0, 0, 2, 0, 0, 12, 0},
/* idx = 194 */ {0, 0, 0, 4, 0, 0, 48, 0},
/* idx = 195 */ {0, 0, 0, 8, 0, 0, 192, 0},
/* idx = 196 */ {0, 0, 0, 16, 0, 0, 768, 0},
/* idx = 197 */ {0, 0, 0, 32, 0, 0, 3072, 0},
/* idx = 198 */ {0, 0, 0, 64, 0, 0, 12288, 0},
/* idx = 199 */ {0, 0, 0, 128, 0, 0, 49152, 0},
/* idx = 200 */ {0, 0, 0, 256, 0, 0, 196608, 0},
/* idx = 201 */ {0, 0, 0, 512, 0, 0, 786432, 0},
/* idx = 202 */ {0, 0, 0, 1024, 0, 0, 3145728, 0},
/* idx = 203 */ {0, 0, 0, 2048, 0, 0, 12582912, 0},
/* idx = 204 */ {0, 0, 0, 4096, 0, 0, 50331648, 0},
/* idx = 205 */ {0, 0, 0, 8192, 0, 0, 201326592, 0},
/* idx = 206 */ {0, 0, 0, 16384, 0, 0, 805306368, 0},
/* idx = 207 */ {0, 0, 0, 32768, 0, 0, 3221225472, 0},
/* idx = 208 */ {0, 0, 0, 65536, 0, 0, 12884901888, 0},
/* idx = 209 */ {0, 0, 0, 131072, 0, 0, 51539607552, 0},
/* idx = 210 */ {0, 0, 0, 262144, 0, 0, 206158430208, 0},
/* idx = 211 */ {0, 0, 0, 524288, 0, 0, 824633720832, 0},
/* idx = 212 */ {0, 0, 0, 1048576, 0, 0, 3298534883328, 0},
/* idx = 213 */ {0, 0, 0, 2097152, 0, 0, 13194139533312, 0},
/* idx = 214 */ {0, 0, 0, 4194304, 0, 0, 52776558133248, 0},
/* idx = 215 */ {0, 0, 0, 8388608, 0, 0, 211106232532992, 0},
/* idx = 216 */ {0, 0, 0, 16777216, 0, 0, 844424930131968, 0},
/* idx = 217 */ {0, 0, 0, 33554432, 0, 0, 3377699720527872, 0},
/* idx = 218 */ {0, 0, 0, 67108864, 0, 0, 13510798882111488, 0},
/* idx = 219 */ {0, 0, 0, 134217728, 0, 0, 54043195528445952, 0},
/* idx = 220 */ {0, 0, 0, 268435456, 0, 0, 216172782113783808, 0},
/* idx = 221 */ {0, 0, 0, 536870912, 0, 0, 864691128455135232, 0},
/* idx = 222 */ {0, 0, 0, 1073741824, 0, 0, 3458764513820540928, 0},
/* idx = 223 */ {0, 0, 0, 2147483648, 0, 0, 13835058055282163712, 0},
/* idx = 224 */ {0, 0, 0, 4294967296, 0, 0, 0, 3},
/* idx = 225 */ {0, 0, 0, 8589934592, 0, 0, 0, 12},
/* idx = 226 */ {0, 0, 0, 17179869184, 0, 0, 0, 48},
/* idx = 227 */ {0, 0, 0, 34359738368, 0, 0, 0, 192},
/* idx = 228 */ {0, 0, 0, 68719476736, 0, 0, 0, 768},
/* idx = 229 */ {0, 0, 0, 137438953472, 0, 0, 0, 3072},
/* idx = 230 */ {0, 0, 0, 274877906944, 0, 0, 0, 12288},
/* idx = 231 */ {0, 0, 0, 549755813888, 0, 0, 0, 49152},
/* idx = 232 */ {0, 0, 0, 1099511627776, 0, 0, 0, 196608},
/* idx = 233 */ {0, 0, 0, 2199023255552, 0, 0, 0, 786432},
/* idx = 234 */ {0, 0, 0, 4398046511104, 0, 0, 0, 3145728},
/* idx = 235 */ {0, 0, 0, 8796093022208, 0, 0, 0, 12582912},
/* idx = 236 */ {0, 0, 0, 17592186044416, 0, 0, 0, 50331648},
/* idx = 237 */ {0, 0, 0, 35184372088832, 0, 0, 0, 201326592},
/* idx = 238 */ {0, 0, 0, 70368744177664, 0, 0, 0, 805306368},
/* idx = 239 */ {0, 0, 0, 140737488355328, 0, 0, 0, 3221225472},
/* idx = 240 */ {0, 0, 0, 281474976710656, 0, 0, 0, 12884901888},
/* idx = 241 */ {0, 0, 0, 562949953421312, 0, 0, 0, 51539607552},
/* idx = 242 */ {0, 0, 0, 1125899906842624, 0, 0, 0, 206158430208},
/* idx = 243 */ {0, 0, 0, 2251799813685248, 0, 0, 0, 824633720832},
/* idx = 244 */ {0, 0, 0, 4503599627370496, 0, 0, 0, 3298534883328},
/* idx = 245 */ {0, 0, 0, 9007199254740992, 0, 0, 0, 13194139533312},
/* idx = 246 */ {0, 0, 0, 18014398509481984, 0, 0, 0, 52776558133248},
/* idx = 247 */ {0, 0, 0, 36028797018963968, 0, 0, 0, 211106232532992},
/* idx = 248 */ {0, 0, 0, 72057594037927936, 0, 0, 0, 844424930131968},
/* idx = 249 */ {0, 0, 0, 144115188075855872, 0, 0, 0, 3377699720527872},
/* idx = 250 */ {0, 0, 0, 288230376151711744, 0, 0, 0, 13510798882111488},
/* idx = 251 */ {0, 0, 0, 576460752303423488, 0, 0, 0, 54043195528445952},
/* idx = 252 */ {0, 0, 0, 1152921504606846976, 0, 0, 0, 216172782113783808},
/* idx = 253 */ {0, 0, 0, 2305843009213693952, 0, 0, 0, 864691128455135232},
/* idx = 254 */ {0, 0, 0, 4611686018427387904, 0, 0, 0, 3458764513820540928},
/* idx = 255 */ {0, 0, 0, 9223372036854775808, 0, 0, 0, 13835058055282163712},
//
// START of HOST ROUTES, pfxLen == 8
// [:4] are all 0 and only one bit is set in [4:]
//
/* idx = 256 */ {0, 0, 0, 0, 1, 0, 0, 0},
/* idx = 257 */ {0, 0, 0, 0, 2, 0, 0, 0},
/* idx = 258 */ {0, 0, 0, 0, 4, 0, 0, 0},
/* idx = 259 */ {0, 0, 0, 0, 8, 0, 0, 0},
/* idx = 260 */ {0, 0, 0, 0, 16, 0, 0, 0},
/* idx = 261 */ {0, 0, 0, 0, 32, 0, 0, 0},
/* idx = 262 */ {0, 0, 0, 0, 64, 0, 0, 0},
/* idx = 263 */ {0, 0, 0, 0, 128, 0, 0, 0},
/* idx = 264 */ {0, 0, 0, 0, 256, 0, 0, 0},
/* idx = 265 */ {0, 0, 0, 0, 512, 0, 0, 0},
/* idx = 266 */ {0, 0, 0, 0, 1024, 0, 0, 0},
/* idx = 267 */ {0, 0, 0, 0, 2048, 0, 0, 0},
/* idx = 268 */ {0, 0, 0, 0, 4096, 0, 0, 0},
/* idx = 269 */ {0, 0, 0, 0, 8192, 0, 0, 0},
/* idx = 270 */ {0, 0, 0, 0, 16384, 0, 0, 0},
/* idx = 271 */ {0, 0, 0, 0, 32768, 0, 0, 0},
/* idx = 272 */ {0, 0, 0, 0, 65536, 0, 0, 0},
/* idx = 273 */ {0, 0, 0, 0, 131072, 0, 0, 0},
/* idx = 274 */ {0, 0, 0, 0, 262144, 0, 0, 0},
/* idx = 275 */ {0, 0, 0, 0, 524288, 0, 0, 0},
/* idx = 276 */ {0, 0, 0, 0, 1048576, 0, 0, 0},
/* idx = 277 */ {0, 0, 0, 0, 2097152, 0, 0, 0},
/* idx = 278 */ {0, 0, 0, 0, 4194304, 0, 0, 0},
/* idx = 279 */ {0, 0, 0, 0, 8388608, 0, 0, 0},
/* idx = 280 */ {0, 0, 0, 0, 16777216, 0, 0, 0},
/* idx = 281 */ {0, 0, 0, 0, 33554432, 0, 0, 0},
/* idx = 282 */ {0, 0, 0, 0, 67108864, 0, 0, 0},
/* idx = 283 */ {0, 0, 0, 0, 134217728, 0, 0, 0},
/* idx = 284 */ {0, 0, 0, 0, 268435456, 0, 0, 0},
/* idx = 285 */ {0, 0, 0, 0, 536870912, 0, 0, 0},
/* idx = 286 */ {0, 0, 0, 0, 1073741824, 0, 0, 0},
/* idx = 287 */ {0, 0, 0, 0, 2147483648, 0, 0, 0},
/* idx = 288 */ {0, 0, 0, 0, 4294967296, 0, 0, 0},
/* idx = 289 */ {0, 0, 0, 0, 8589934592, 0, 0, 0},
/* idx = 290 */ {0, 0, 0, 0, 17179869184, 0, 0, 0},
/* idx = 291 */ {0, 0, 0, 0, 34359738368, 0, 0, 0},
/* idx = 292 */ {0, 0, 0, 0, 68719476736, 0, 0, 0},
/* idx = 293 */ {0, 0, 0, 0, 137438953472, 0, 0, 0},
/* idx = 294 */ {0, 0, 0, 0, 274877906944, 0, 0, 0},
/* idx = 295 */ {0, 0, 0, 0, 549755813888, 0, 0, 0},
/* idx = 296 */ {0, 0, 0, 0, 1099511627776, 0, 0, 0},
/* idx = 297 */ {0, 0, 0, 0, 2199023255552, 0, 0, 0},
/* idx = 298 */ {0, 0, 0, 0, 4398046511104, 0, 0, 0},
/* idx = 299 */ {0, 0, 0, 0, 8796093022208, 0, 0, 0},
/* idx = 300 */ {0, 0, 0, 0, 17592186044416, 0, 0, 0},
/* idx = 301 */ {0, 0, 0, 0, 35184372088832, 0, 0, 0},
/* idx = 302 */ {0, 0, 0, 0, 70368744177664, 0, 0, 0},
/* idx = 303 */ {0, 0, 0, 0, 140737488355328, 0, 0, 0},
/* idx = 304 */ {0, 0, 0, 0, 281474976710656, 0, 0, 0},
/* idx = 305 */ {0, 0, 0, 0, 562949953421312, 0, 0, 0},
/* idx = 306 */ {0, 0, 0, 0, 1125899906842624, 0, 0, 0},
/* idx = 307 */ {0, 0, 0, 0, 2251799813685248, 0, 0, 0},
/* idx = 308 */ {0, 0, 0, 0, 4503599627370496, 0, 0, 0},
/* idx = 309 */ {0, 0, 0, 0, 9007199254740992, 0, 0, 0},
/* idx = 310 */ {0, 0, 0, 0, 18014398509481984, 0, 0, 0},
/* idx = 311 */ {0, 0, 0, 0, 36028797018963968, 0, 0, 0},
/* idx = 312 */ {0, 0, 0, 0, 72057594037927936, 0, 0, 0},
/* idx = 313 */ {0, 0, 0, 0, 144115188075855872, 0, 0, 0},
/* idx = 314 */ {0, 0, 0, 0, 288230376151711744, 0, 0, 0},
/* idx = 315 */ {0, 0, 0, 0, 576460752303423488, 0, 0, 0},
/* idx = 316 */ {0, 0, 0, 0, 1152921504606846976, 0, 0, 0},
/* idx = 317 */ {0, 0, 0, 0, 2305843009213693952, 0, 0, 0},
/* idx = 318 */ {0, 0, 0, 0, 4611686018427387904, 0, 0, 0},
/* idx = 319 */ {0, 0, 0, 0, 9223372036854775808, 0, 0, 0},
/* idx = 320 */ {0, 0, 0, 0, 0, 1, 0, 0},
/* idx = 321 */ {0, 0, 0, 0, 0, 2, 0, 0},
/* idx = 322 */ {0, 0, 0, 0, 0, 4, 0, 0},
/* idx = 323 */ {0, 0, 0, 0, 0, 8, 0, 0},
/* idx = 324 */ {0, 0, 0, 0, 0, 16, 0, 0},
/* idx = 325 */ {0, 0, 0, 0, 0, 32, 0, 0},
/* idx = 326 */ {0, 0, 0, 0, 0, 64, 0, 0},
/* idx = 327 */ {0, 0, 0, 0, 0, 128, 0, 0},
/* idx = 328 */ {0, 0, 0, 0, 0, 256, 0, 0},
/* idx = 329 */ {0, 0, 0, 0, 0, 512, 0, 0},
/* idx = 330 */ {0, 0, 0, 0, 0, 1024, 0, 0},
/* idx = 331 */ {0, 0, 0, 0, 0, 2048, 0, 0},
/* idx = 332 */ {0, 0, 0, 0, 0, 4096, 0, 0},
/* idx = 333 */ {0, 0, 0, 0, 0, 8192, 0, 0},
/* idx = 334 */ {0, 0, 0, 0, 0, 16384, 0, 0},
/* idx = 335 */ {0, 0, 0, 0, 0, 32768, 0, 0},
/* idx = 336 */ {0, 0, 0, 0, 0, 65536, 0, 0},
/* idx = 337 */ {0, 0, 0, 0, 0, 131072, 0, 0},
/* idx = 338 */ {0, 0, 0, 0, 0, 262144, 0, 0},
/* idx = 339 */ {0, 0, 0, 0, 0, 524288, 0, 0},
/* idx = 340 */ {0, 0, 0, 0, 0, 1048576, 0, 0},
/* idx = 341 */ {0, 0, 0, 0, 0, 2097152, 0, 0},
/* idx = 342 */ {0, 0, 0, 0, 0, 4194304, 0, 0},
/* idx = 343 */ {0, 0, 0, 0, 0, 8388608, 0, 0},
/* idx = 344 */ {0, 0, 0, 0, 0, 16777216, 0, 0},
/* idx = 345 */ {0, 0, 0, 0, 0, 33554432, 0, 0},
/* idx = 346 */ {0, 0, 0, 0, 0, 67108864, 0, 0},
/* idx = 347 */ {0, 0, 0, 0, 0, 134217728, 0, 0},
/* idx = 348 */ {0, 0, 0, 0, 0, 268435456, 0, 0},
/* idx = 349 */ {0, 0, 0, 0, 0, 536870912, 0, 0},
/* idx = 350 */ {0, 0, 0, 0, 0, 1073741824, 0, 0},
/* idx = 351 */ {0, 0, 0, 0, 0, 2147483648, 0, 0},
/* idx = 352 */ {0, 0, 0, 0, 0, 4294967296, 0, 0},
/* idx = 353 */ {0, 0, 0, 0, 0, 8589934592, 0, 0},
/* idx = 354 */ {0, 0, 0, 0, 0, 17179869184, 0, 0},
/* idx = 355 */ {0, 0, 0, 0, 0, 34359738368, 0, 0},
/* idx = 356 */ {0, 0, 0, 0, 0, 68719476736, 0, 0},
/* idx = 357 */ {0, 0, 0, 0, 0, 137438953472, 0, 0},
/* idx = 358 */ {0, 0, 0, 0, 0, 274877906944, 0, 0},
/* idx = 359 */ {0, 0, 0, 0, 0, 549755813888, 0, 0},
/* idx = 360 */ {0, 0, 0, 0, 0, 1099511627776, 0, 0},
/* idx = 361 */ {0, 0, 0, 0, 0, 2199023255552, 0, 0},
/* idx = 362 */ {0, 0, 0, 0, 0, 4398046511104, 0, 0},
/* idx = 363 */ {0, 0, 0, 0, 0, 8796093022208, 0, 0},
/* idx = 364 */ {0, 0, 0, 0, 0, 17592186044416, 0, 0},
/* idx = 365 */ {0, 0, 0, 0, 0, 35184372088832, 0, 0},
/* idx = 366 */ {0, 0, 0, 0, 0, 70368744177664, 0, 0},
/* idx = 367 */ {0, 0, 0, 0, 0, 140737488355328, 0, 0},
/* idx = 368 */ {0, 0, 0, 0, 0, 281474976710656, 0, 0},
/* idx = 369 */ {0, 0, 0, 0, 0, 562949953421312, 0, 0},
/* idx = 370 */ {0, 0, 0, 0, 0, 1125899906842624, 0, 0},
/* idx = 371 */ {0, 0, 0, 0, 0, 2251799813685248, 0, 0},
/* idx = 372 */ {0, 0, 0, 0, 0, 4503599627370496, 0, 0},
/* idx = 373 */ {0, 0, 0, 0, 0, 9007199254740992, 0, 0},
/* idx = 374 */ {0, 0, 0, 0, 0, 18014398509481984, 0, 0},
/* idx = 375 */ {0, 0, 0, 0, 0, 36028797018963968, 0, 0},
/* idx = 376 */ {0, 0, 0, 0, 0, 72057594037927936, 0, 0},
/* idx = 377 */ {0, 0, 0, 0, 0, 144115188075855872, 0, 0},
/* idx = 378 */ {0, 0, 0, 0, 0, 288230376151711744, 0, 0},
/* idx = 379 */ {0, 0, 0, 0, 0, 576460752303423488, 0, 0},
/* idx = 380 */ {0, 0, 0, 0, 0, 1152921504606846976, 0, 0},
/* idx = 381 */ {0, 0, 0, 0, 0, 2305843009213693952, 0, 0},
/* idx = 382 */ {0, 0, 0, 0, 0, 4611686018427387904, 0, 0},
/* idx = 383 */ {0, 0, 0, 0, 0, 9223372036854775808, 0, 0},
/* idx = 384 */ {0, 0, 0, 0, 0, 0, 1, 0},
/* idx = 385 */ {0, 0, 0, 0, 0, 0, 2, 0},
/* idx = 386 */ {0, 0, 0, 0, 0, 0, 4, 0},
/* idx = 387 */ {0, 0, 0, 0, 0, 0, 8, 0},
/* idx = 388 */ {0, 0, 0, 0, 0, 0, 16, 0},
/* idx = 389 */ {0, 0, 0, 0, 0, 0, 32, 0},
/* idx = 390 */ {0, 0, 0, 0, 0, 0, 64, 0},
/* idx = 391 */ {0, 0, 0, 0, 0, 0, 128, 0},
/* idx = 392 */ {0, 0, 0, 0, 0, 0, 256, 0},
/* idx = 393 */ {0, 0, 0, 0, 0, 0, 512, 0},
/* idx = 394 */ {0, 0, 0, 0, 0, 0, 1024, 0},
/* idx = 395 */ {0, 0, 0, 0, 0, 0, 2048, 0},
/* idx = 396 */ {0, 0, 0, 0, 0, 0, 4096, 0},
/* idx = 397 */ {0, 0, 0, 0, 0, 0, 8192, 0},
/* idx = 398 */ {0, 0, 0, 0, 0, 0, 16384, 0},
/* idx = 399 */ {0, 0, 0, 0, 0, 0, 32768, 0},
/* idx = 400 */ {0, 0, 0, 0, 0, 0, 65536, 0},
/* idx = 401 */ {0, 0, 0, 0, 0, 0, 131072, 0},
/* idx = 402 */ {0, 0, 0, 0, 0, 0, 262144, 0},
/* idx = 403 */ {0, 0, 0, 0, 0, 0, 524288, 0},
/* idx = 404 */ {0, 0, 0, 0, 0, 0, 1048576, 0},
/* idx = 405 */ {0, 0, 0, 0, 0, 0, 2097152, 0},
/* idx = 406 */ {0, 0, 0, 0, 0, 0, 4194304, 0},
/* idx = 407 */ {0, 0, 0, 0, 0, 0, 8388608, 0},
/* idx = 408 */ {0, 0, 0, 0, 0, 0, 16777216, 0},
/* idx = 409 */ {0, 0, 0, 0, 0, 0, 33554432, 0},
/* idx = 410 */ {0, 0, 0, 0, 0, 0, 67108864, 0},
/* idx = 411 */ {0, 0, 0, 0, 0, 0, 134217728, 0},
/* idx = 412 */ {0, 0, 0, 0, 0, 0, 268435456, 0},
/* idx = 413 */ {0, 0, 0, 0, 0, 0, 536870912, 0},
/* idx = 414 */ {0, 0, 0, 0, 0, 0, 1073741824, 0},
/* idx = 415 */ {0, 0, 0, 0, 0, 0, 2147483648, 0},
/* idx = 416 */ {0, 0, 0, 0, 0, 0, 4294967296, 0},
/* idx = 417 */ {0, 0, 0, 0, 0, 0, 8589934592, 0},
/* idx = 418 */ {0, 0, 0, 0, 0, 0, 17179869184, 0},
/* idx = 419 */ {0, 0, 0, 0, 0, 0, 34359738368, 0},
/* idx = 420 */ {0, 0, 0, 0, 0, 0, 68719476736, 0},
/* idx = 421 */ {0, 0, 0, 0, 0, 0, 137438953472, 0},
/* idx = 422 */ {0, 0, 0, 0, 0, 0, 274877906944, 0},
/* idx = 423 */ {0, 0, 0, 0, 0, 0, 549755813888, 0},
/* idx = 424 */ {0, 0, 0, 0, 0, 0, 1099511627776, 0},
/* idx = 425 */ {0, 0, 0, 0, 0, 0, 2199023255552, 0},
/* idx = 426 */ {0, 0, 0, 0, 0, 0, 4398046511104, 0},
/* idx = 427 */ {0, 0, 0, 0, 0, 0, 8796093022208, 0},
/* idx = 428 */ {0, 0, 0, 0, 0, 0, 17592186044416, 0},
/* idx = 429 */ {0, 0, 0, 0, 0, 0, 35184372088832, 0},
/* idx = 430 */ {0, 0, 0, 0, 0, 0, 70368744177664, 0},
/* idx = 431 */ {0, 0, 0, 0, 0, 0, 140737488355328, 0},
/* idx = 432 */ {0, 0, 0, 0, 0, 0, 281474976710656, 0},
/* idx = 433 */ {0, 0, 0, 0, 0, 0, 562949953421312, 0},
/* idx = 434 */ {0, 0, 0, 0, 0, 0, 1125899906842624, 0},
/* idx = 435 */ {0, 0, 0, 0, 0, 0, 2251799813685248, 0},
/* idx = 436 */ {0, 0, 0, 0, 0, 0, 4503599627370496, 0},
/* idx = 437 */ {0, 0, 0, 0, 0, 0, 9007199254740992, 0},
/* idx = 438 */ {0, 0, 0, 0, 0, 0, 18014398509481984, 0},
/* idx = 439 */ {0, 0, 0, 0, 0, 0, 36028797018963968, 0},
/* idx = 440 */ {0, 0, 0, 0, 0, 0, 72057594037927936, 0},
/* idx = 441 */ {0, 0, 0, 0, 0, 0, 144115188075855872, 0},
/* idx = 442 */ {0, 0, 0, 0, 0, 0, 288230376151711744, 0},
/* idx = 443 */ {0, 0, 0, 0, 0, 0, 576460752303423488, 0},
/* idx = 444 */ {0, 0, 0, 0, 0, 0, 1152921504606846976, 0},
/* idx = 445 */ {0, 0, 0, 0, 0, 0, 2305843009213693952, 0},
/* idx = 446 */ {0, 0, 0, 0, 0, 0, 4611686018427387904, 0},
/* idx = 447 */ {0, 0, 0, 0, 0, 0, 9223372036854775808, 0},
/* idx = 448 */ {0, 0, 0, 0, 0, 0, 0, 1},
/* idx = 449 */ {0, 0, 0, 0, 0, 0, 0, 2},
/* idx = 450 */ {0, 0, 0, 0, 0, 0, 0, 4},
/* idx = 451 */ {0, 0, 0, 0, 0, 0, 0, 8},
/* idx = 452 */ {0, 0, 0, 0, 0, 0, 0, 16},
/* idx = 453 */ {0, 0, 0, 0, 0, 0, 0, 32},
/* idx = 454 */ {0, 0, 0, 0, 0, 0, 0, 64},
/* idx = 455 */ {0, 0, 0, 0, 0, 0, 0, 128},
/* idx = 456 */ {0, 0, 0, 0, 0, 0, 0, 256},
/* idx = 457 */ {0, 0, 0, 0, 0, 0, 0, 512},
/* idx = 458 */ {0, 0, 0, 0, 0, 0, 0, 1024},
/* idx = 459 */ {0, 0, 0, 0, 0, 0, 0, 2048},
/* idx = 460 */ {0, 0, 0, 0, 0, 0, 0, 4096},
/* idx = 461 */ {0, 0, 0, 0, 0, 0, 0, 8192},
/* idx = 462 */ {0, 0, 0, 0, 0, 0, 0, 16384},
/* idx = 463 */ {0, 0, 0, 0, 0, 0, 0, 32768},
/* idx = 464 */ {0, 0, 0, 0, 0, 0, 0, 65536},
/* idx = 465 */ {0, 0, 0, 0, 0, 0, 0, 131072},
/* idx = 466 */ {0, 0, 0, 0, 0, 0, 0, 262144},
/* idx = 467 */ {0, 0, 0, 0, 0, 0, 0, 524288},
/* idx = 468 */ {0, 0, 0, 0, 0, 0, 0, 1048576},
/* idx = 469 */ {0, 0, 0, 0, 0, 0, 0, 2097152},
/* idx = 470 */ {0, 0, 0, 0, 0, 0, 0, 4194304},
/* idx = 471 */ {0, 0, 0, 0, 0, 0, 0, 8388608},
/* idx = 472 */ {0, 0, 0, 0, 0, 0, 0, 16777216},
/* idx = 473 */ {0, 0, 0, 0, 0, 0, 0, 33554432},
/* idx = 474 */ {0, 0, 0, 0, 0, 0, 0, 67108864},
/* idx = 475 */ {0, 0, 0, 0, 0, 0, 0, 134217728},
/* idx = 476 */ {0, 0, 0, 0, 0, 0, 0, 268435456},
/* idx = 477 */ {0, 0, 0, 0, 0, 0, 0, 536870912},
/* idx = 478 */ {0, 0, 0, 0, 0, 0, 0, 1073741824},
/* idx = 479 */ {0, 0, 0, 0, 0, 0, 0, 2147483648},
/* idx = 480 */ {0, 0, 0, 0, 0, 0, 0, 4294967296},
/* idx = 481 */ {0, 0, 0, 0, 0, 0, 0, 8589934592},
/* idx = 482 */ {0, 0, 0, 0, 0, 0, 0, 17179869184},
/* idx = 483 */ {0, 0, 0, 0, 0, 0, 0, 34359738368},
/* idx = 484 */ {0, 0, 0, 0, 0, 0, 0, 68719476736},
/* idx = 485 */ {0, 0, 0, 0, 0, 0, 0, 137438953472},
/* idx = 486 */ {0, 0, 0, 0, 0, 0, 0, 274877906944},
/* idx = 487 */ {0, 0, 0, 0, 0, 0, 0, 549755813888},
/* idx = 488 */ {0, 0, 0, 0, 0, 0, 0, 1099511627776},
/* idx = 489 */ {0, 0, 0, 0, 0, 0, 0, 2199023255552},
/* idx = 490 */ {0, 0, 0, 0, 0, 0, 0, 4398046511104},
/* idx = 491 */ {0, 0, 0, 0, 0, 0, 0, 8796093022208},
/* idx = 492 */ {0, 0, 0, 0, 0, 0, 0, 17592186044416},
/* idx = 493 */ {0, 0, 0, 0, 0, 0, 0, 35184372088832},
/* idx = 494 */ {0, 0, 0, 0, 0, 0, 0, 70368744177664},
/* idx = 495 */ {0, 0, 0, 0, 0, 0, 0, 140737488355328},
/* idx = 496 */ {0, 0, 0, 0, 0, 0, 0, 281474976710656},
/* idx = 497 */ {0, 0, 0, 0, 0, 0, 0, 562949953421312},
/* idx = 498 */ {0, 0, 0, 0, 0, 0, 0, 1125899906842624},
/* idx = 499 */ {0, 0, 0, 0, 0, 0, 0, 2251799813685248},
/* idx = 500 */ {0, 0, 0, 0, 0, 0, 0, 4503599627370496},
/* idx = 501 */ {0, 0, 0, 0, 0, 0, 0, 9007199254740992},
/* idx = 502 */ {0, 0, 0, 0, 0, 0, 0, 18014398509481984},
/* idx = 503 */ {0, 0, 0, 0, 0, 0, 0, 36028797018963968},
/* idx = 504 */ {0, 0, 0, 0, 0, 0, 0, 72057594037927936},
/* idx = 505 */ {0, 0, 0, 0, 0, 0, 0, 144115188075855872},
/* idx = 506 */ {0, 0, 0, 0, 0, 0, 0, 288230376151711744},
/* idx = 507 */ {0, 0, 0, 0, 0, 0, 0, 576460752303423488},
/* idx = 508 */ {0, 0, 0, 0, 0, 0, 0, 1152921504606846976},
/* idx = 509 */ {0, 0, 0, 0, 0, 0, 0, 2305843009213693952},
/* idx = 510 */ {0, 0, 0, 0, 0, 0, 0, 4611686018427387904},
/* idx = 511 */ {0, 0, 0, 0, 0, 0, 0, 9223372036854775808},
}