decimus 0.0.6

Decimal Floating-Point Math Library for Rust
Documentation
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
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
macro_rules! bid_convert_table {
  ($j:expr, $k:expr, $i:expr) => {
    BID_CONVERT_TABLE[$j as usize][$k as usize][$i as usize]
  };
}
pub(crate) use bid_convert_table;

/// BID_CONVERT_TABLE\[i\]\[k\]\[j\] = digit i (base 10^8) of k*2^(26+7*j)
/// 0 <= j < 5
/// 0 <= k < 128
/// 0 <= i < 2
#[rustfmt::skip]
pub const BID_CONVERT_TABLE: [[[u32; 2]; 128]; 5] = [
  [
    [0, 0],
    [67108864,  0],
    [34217728,  1],
    [ 1326592,  2],
    [68435456,  2],
    [35544320,  3],
    [ 2653184,  4],
    [69762048,  4],
    [36870912,  5],
    [ 3979776,  6],
    [71088640,  6],
    [38197504,  7],
    [ 5306368,  8],
    [72415232,  8],
    [39524096,  9],
    [ 6632960, 10],
    [73741824, 10],
    [40850688, 11],
    [ 7959552, 12],
    [75068416, 12],
    [42177280, 13],
    [ 9286144, 14],
    [76395008, 14],
    [43503872, 15],
    [10612736, 16],
    [77721600, 16],
    [44830464, 17],
    [11939328, 18],
    [79048192, 18],
    [46157056, 19],
    [13265920, 20],
    [80374784, 20],
    [47483648, 21],
    [14592512, 22],
    [81701376, 22],
    [48810240, 23],
    [15919104, 24],
    [83027968, 24],
    [50136832, 25],
    [17245696, 26],
    [84354560, 26],
    [51463424, 27],
    [18572288, 28],
    [85681152, 28],
    [52790016, 29],
    [19898880, 30],
    [87007744, 30],
    [54116608, 31],
    [21225472, 32],
    [88334336, 32],
    [55443200, 33],
    [22552064, 34],
    [89660928, 34],
    [56769792, 35],
    [23878656, 36],
    [90987520, 36],
    [58096384, 37],
    [25205248, 38],
    [92314112, 38],
    [59422976, 39],
    [26531840, 40],
    [93640704, 40],
    [60749568, 41],
    [27858432, 42],
    [94967296, 42],
    [62076160, 43],
    [29185024, 44],
    [96293888, 44],
    [63402752, 45],
    [30511616, 46],
    [97620480, 46],
    [64729344, 47],
    [31838208, 48],
    [98947072, 48],
    [66055936, 49],
    [33164800, 50],
    [273664, 51],
    [67382528, 51],
    [34491392, 52],
    [1600256, 53],
    [68709120, 53],
    [35817984, 54],
    [2926848, 55],
    [70035712, 55],
    [37144576, 56],
    [4253440, 57],
    [71362304, 57],
    [38471168, 58],
    [5580032, 59],
    [72688896, 59],
    [39797760, 60],
    [6906624, 61],
    [74015488, 61],
    [41124352, 62],
    [8233216, 63],
    [75342080, 63],
    [42450944, 64],
    [9559808, 65],
    [76668672, 65],
    [43777536, 66],
    [10886400, 67],
    [77995264, 67],
    [45104128, 68],
    [12212992, 69],
    [79321856, 69],
    [46430720, 70],
    [13539584, 71],
    [80648448, 71],
    [47757312, 72],
    [14866176, 73],
    [81975040, 73],
    [49083904, 74],
    [16192768, 75],
    [83301632, 75],
    [50410496, 76],
    [17519360, 77],
    [84628224, 77],
    [51737088, 78],
    [18845952, 79],
    [85954816, 79],
    [53063680, 80],
    [20172544, 81],
    [87281408, 81],
    [54390272, 82],
    [21499136, 83],
    [88608000, 83],
    [55716864, 84],
    [22825728, 85],
  ],
  [
    [0, 0],
    [89934592, 85],
    [79869184, 171],
    [69803776, 257],
    [59738368, 343],
    [49672960, 429],
    [39607552, 515],
    [29542144, 601],
    [19476736, 687],
    [9411328, 773],
    [99345920, 858],
    [89280512, 944],
    [79215104, 1030],
    [69149696, 1116],
    [59084288, 1202],
    [49018880, 1288],
    [38953472, 1374],
    [28888064, 1460],
    [18822656, 1546],
    [8757248, 1632],
    [98691840, 1717],
    [88626432, 1803],
    [78561024, 1889],
    [68495616, 1975],
    [58430208, 2061],
    [48364800, 2147],
    [38299392, 2233],
    [28233984, 2319],
    [18168576, 2405],
    [8103168, 2491],
    [98037760, 2576],
    [87972352, 2662],
    [77906944, 2748],
    [67841536, 2834],
    [57776128, 2920],
    [47710720, 3006],
    [37645312, 3092],
    [27579904, 3178],
    [17514496, 3264],
    [7449088, 3350],
    [97383680, 3435],
    [87318272, 3521],
    [77252864, 3607],
    [67187456, 3693],
    [57122048, 3779],
    [47056640, 3865],
    [36991232, 3951],
    [26925824, 4037],
    [16860416, 4123],
    [6795008, 4209],
    [96729600, 4294],
    [86664192, 4380],
    [76598784, 4466],
    [66533376, 4552],
    [56467968, 4638],
    [46402560, 4724],
    [36337152, 4810],
    [26271744, 4896],
    [16206336, 4982],
    [6140928, 5068],
    [96075520, 5153],
    [86010112, 5239],
    [75944704, 5325],
    [65879296, 5411],
    [55813888, 5497],
    [45748480, 5583],
    [35683072, 5669],
    [25617664, 5755],
    [15552256, 5841],
    [5486848, 5927],
    [95421440, 6012],
    [85356032, 6098],
    [75290624, 6184],
    [65225216, 6270],
    [55159808, 6356],
    [45094400, 6442],
    [35028992, 6528],
    [24963584, 6614],
    [14898176, 6700],
    [4832768, 6786],
    [94767360, 6871],
    [84701952, 6957],
    [74636544, 7043],
    [64571136, 7129],
    [54505728, 7215],
    [44440320, 7301],
    [34374912, 7387],
    [24309504, 7473],
    [14244096, 7559],
    [4178688, 7645],
    [94113280, 7730],
    [84047872, 7816],
    [73982464, 7902],
    [63917056, 7988],
    [53851648, 8074],
    [43786240, 8160],
    [33720832, 8246],
    [23655424, 8332],
    [13590016, 8418],
    [3524608, 8504],
    [93459200, 8589],
    [83393792, 8675],
    [73328384, 8761],
    [63262976, 8847],
    [53197568, 8933],
    [43132160, 9019],
    [33066752, 9105],
    [23001344, 9191],
    [12935936, 9277],
    [2870528, 9363],
    [92805120, 9448],
    [82739712, 9534],
    [72674304, 9620],
    [62608896, 9706],
    [52543488, 9792],
    [42478080, 9878],
    [32412672, 9964],
    [22347264, 10050],
    [12281856, 10136],
    [2216448, 10222],
    [92151040, 10307],
    [82085632, 10393],
    [72020224, 10479],
    [61954816, 10565],
    [51889408, 10651],
    [41824000, 10737],
    [31758592, 10823],
    [21693184, 10909],
  ],
  [
    [0, 0],
    [11627776, 10995],
    [23255552, 21990],
    [34883328, 32985],
    [46511104, 43980],
    [58138880, 54975],
    [69766656, 65970],
    [81394432, 76965],
    [93022208, 87960],
    [4649984, 98956],
    [16277760, 109951],
    [27905536, 120946],
    [39533312, 131941],
    [51161088, 142936],
    [62788864, 153931],
    [74416640, 164926],
    [86044416, 175921],
    [97672192, 186916],
    [9299968, 197912],
    [20927744, 208907],
    [32555520, 219902],
    [44183296, 230897],
    [55811072, 241892],
    [67438848, 252887],
    [79066624, 263882],
    [90694400, 274877],
    [2322176, 285873],
    [13949952, 296868],
    [25577728, 307863],
    [37205504, 318858],
    [48833280, 329853],
    [60461056, 340848],
    [72088832, 351843],
    [83716608, 362838],
    [95344384, 373833],
    [6972160, 384829],
    [18599936, 395824],
    [30227712, 406819],
    [41855488, 417814],
    [53483264, 428809],
    [65111040, 439804],
    [76738816, 450799],
    [88366592, 461794],
    [99994368, 472789],
    [11622144, 483785],
    [23249920, 494780],
    [34877696, 505775],
    [46505472, 516770],
    [58133248, 527765],
    [69761024, 538760],
    [81388800, 549755],
    [93016576, 560750],
    [4644352, 571746],
    [16272128, 582741],
    [27899904, 593736],
    [39527680, 604731],
    [51155456, 615726],
    [62783232, 626721],
    [74411008, 637716],
    [86038784, 648711],
    [97666560, 659706],
    [9294336, 670702],
    [20922112, 681697],
    [32549888, 692692],
    [44177664, 703687],
    [55805440, 714682],
    [67433216, 725677],
    [79060992, 736672],
    [90688768, 747667],
    [2316544, 758663],
    [13944320, 769658],
    [25572096, 780653],
    [37199872, 791648],
    [48827648, 802643],
    [60455424, 813638],
    [72083200, 824633],
    [83710976, 835628],
    [95338752, 846623],
    [6966528, 857619],
    [18594304, 868614],
    [30222080, 879609],
    [41849856, 890604],
    [53477632, 901599],
    [65105408, 912594],
    [76733184, 923589],
    [88360960, 934584],
    [99988736, 945579],
    [11616512, 956575],
    [23244288, 967570],
    [34872064, 978565],
    [46499840, 989560],
    [58127616, 1000555],
    [69755392, 1011550],
    [81383168, 1022545],
    [93010944, 1033540],
    [4638720, 1044536],
    [16266496, 1055531],
    [27894272, 1066526],
    [39522048, 1077521],
    [51149824, 1088516],
    [62777600, 1099511],
    [74405376, 1110506],
    [86033152, 1121501],
    [97660928, 1132496],
    [9288704, 1143492],
    [20916480, 1154487],
    [32544256, 1165482],
    [44172032, 1176477],
    [55799808, 1187472],
    [67427584, 1198467],
    [79055360, 1209462],
    [90683136, 1220457],
    [2310912, 1231453],
    [13938688, 1242448],
    [25566464, 1253443],
    [37194240, 1264438],
    [48822016, 1275433],
    [60449792, 1286428],
    [72077568, 1297423],
    [83705344, 1308418],
    [95333120, 1319413],
    [6960896, 1330409],
    [18588672, 1341404],
    [30216448, 1352399],
    [41844224, 1363394],
    [53472000, 1374389],
    [65099776, 1385384],
    [76727552, 1396379],
  ],
  [
    [0, 0],
    [88355328, 1407374],
    [76710656, 2814749],
    [65065984, 4222124],
    [53421312, 5629499],
    [41776640, 7036874],
    [30131968, 8444249],
    [18487296, 9851624],
    [6842624, 11258999],
    [95197952, 12666373],
    [83553280, 14073748],
    [71908608, 15481123],
    [60263936, 16888498],
    [48619264, 18295873],
    [36974592, 19703248],
    [25329920, 21110623],
    [13685248, 22517998],
    [2040576, 23925373],
    [90395904, 25332747],
    [78751232, 26740122],
    [67106560, 28147497],
    [55461888, 29554872],
    [43817216, 30962247],
    [32172544, 32369622],
    [20527872, 33776997],
    [8883200, 35184372],
    [97238528, 36591746],
    [85593856, 37999121],
    [73949184, 39406496],
    [62304512, 40813871],
    [50659840, 42221246],
    [39015168, 43628621],
    [27370496, 45035996],
    [15725824, 46443371],
    [4081152, 47850746],
    [92436480, 49258120],
    [80791808, 50665495],
    [69147136, 52072870],
    [57502464, 53480245],
    [45857792, 54887620],
    [34213120, 56294995],
    [22568448, 57702370],
    [10923776, 59109745],
    [99279104, 60517119],
    [87634432, 61924494],
    [75989760, 63331869],
    [64345088, 64739244],
    [52700416, 66146619],
    [41055744, 67553994],
    [29411072, 68961369],
    [17766400, 70368744],
    [6121728, 71776119],
    [94477056, 73183493],
    [82832384, 74590868],
    [71187712, 75998243],
    [59543040, 77405618],
    [47898368, 78812993],
    [36253696, 80220368],
    [24609024, 81627743],
    [12964352, 83035118],
    [1319680, 84442493],
    [89675008, 85849867],
    [78030336, 87257242],
    [66385664, 88664617],
    [54740992, 90071992],
    [43096320, 91479367],
    [31451648, 92886742],
    [19806976, 94294117],
    [8162304, 95701492],
    [96517632, 97108866],
    [84872960, 98516241],
    [73228288, 99923616],
    [61583616, 1330991],
    [49938944, 2738366],
    [38294272, 4145741],
    [26649600, 5553116],
    [15004928, 6960491],
    [3360256, 8367866],
    [91715584, 9775240],
    [80070912, 11182615],
    [68426240, 12589990],
    [56781568, 13997365],
    [45136896, 15404740],
    [33492224, 16812115],
    [21847552, 18219490],
    [10202880, 19626865],
    [98558208, 21034239],
    [86913536, 22441614],
    [75268864, 23848989],
    [63624192, 25256364],
    [51979520, 26663739],
    [40334848, 28071114],
    [28690176, 29478489],
    [17045504, 30885864],
    [5400832, 32293239],
    [93756160, 33700613],
    [82111488, 35107988],
    [70466816, 36515363],
    [58822144, 37922738],
    [47177472, 39330113],
    [35532800, 40737488],
    [23888128, 42144863],
    [12243456, 43552238],
    [598784, 44959613],
    [88954112, 46366987],
    [77309440, 47774362],
    [65664768, 49181737],
    [54020096, 50589112],
    [42375424, 51996487],
    [30730752, 53403862],
    [19086080, 54811237],
    [7441408, 56218612],
    [95796736, 57625986],
    [84152064, 59033361],
    [72507392, 60440736],
    [60862720, 61848111],
    [49218048, 63255486],
    [37573376, 64662861],
    [25928704, 66070236],
    [14284032, 67477611],
    [2639360, 68884986],
    [90994688, 70292360],
    [79350016, 71699735],
    [67705344, 73107110],
    [56060672, 74514485],
    [44416000, 75921860],
    [32771328, 77329235],
    [21126656, 78736610],
  ],
  [
    [0, 0],
    [9481984, 80143985],
    [18963968, 60287970],
    [28445952, 40431955],
    [37927936, 20575940],
    [47409920, 719925],
    [56891904, 80863910],
    [66373888, 61007895],
    [75855872, 41151880],
    [85337856, 21295865],
    [94819840, 1439850],
    [4301824, 81583836],
    [13783808, 61727821],
    [23265792, 41871806],
    [32747776, 22015791],
    [42229760, 2159776],
    [51711744, 82303761],
    [61193728, 62447746],
    [70675712, 42591731],
    [80157696, 22735716],
    [89639680, 2879701],
    [99121664, 83023686],
    [8603648, 63167672],
    [18085632, 43311657],
    [27567616, 23455642],
    [37049600, 3599627],
    [46531584, 83743612],
    [56013568, 63887597],
    [65495552, 44031582],
    [74977536, 24175567],
    [84459520, 4319552],
    [93941504, 84463537],
    [3423488, 64607523],
    [12905472, 44751508],
    [22387456, 24895493],
    [31869440, 5039478],
    [41351424, 85183463],
    [50833408, 65327448],
    [60315392, 45471433],
    [69797376, 25615418],
    [79279360, 5759403],
    [88761344, 85903388],
    [98243328, 66047373],
    [7725312, 46191359],
    [17207296, 26335344],
    [26689280, 6479329],
    [36171264, 86623314],
    [45653248, 66767299],
    [55135232, 46911284],
    [64617216, 27055269],
    [74099200, 7199254],
    [83581184, 87343239],
    [93063168, 67487224],
    [2545152, 47631210],
    [12027136, 27775195],
    [21509120, 7919180],
    [30991104, 88063165],
    [40473088, 68207150],
    [49955072, 48351135],
    [59437056, 28495120],
    [68919040, 8639105],
    [78401024, 88783090],
    [87883008, 68927075],
    [97364992, 49071060],
    [6846976, 29215046],
    [16328960, 9359031],
    [25810944, 89503016],
    [35292928, 69647001],
    [44774912, 49790986],
    [54256896, 29934971],
    [63738880, 10078956],
    [73220864, 90222941],
    [82702848, 70366926],
    [92184832, 50510911],
    [1666816, 30654897],
    [11148800, 10798882],
    [20630784, 90942867],
    [30112768, 71086852],
    [39594752, 51230837],
    [49076736, 31374822],
    [58558720, 11518807],
    [68040704, 91662792],
    [77522688, 71806777],
    [87004672, 51950762],
    [96486656, 32094747],
    [5968640, 12238733],
    [15450624, 92382718],
    [24932608, 72526703],
    [34414592, 52670688],
    [43896576, 32814673],
    [53378560, 12958658],
    [62860544, 93102643],
    [72342528, 73246628],
    [81824512, 53390613],
    [91306496, 33534598],
    [788480, 13678584],
    [10270464, 93822569],
    [19752448, 73966554],
    [29234432, 54110539],
    [38716416, 34254524],
    [48198400, 14398509],
    [57680384, 94542494],
    [67162368, 74686479],
    [76644352, 54830464],
    [86126336, 34974449],
    [95608320, 15118434],
    [5090304, 95262420],
    [14572288, 75406405],
    [24054272, 55550390],
    [33536256, 35694375],
    [43018240, 15838360],
    [52500224, 95982345],
    [61982208, 76126330],
    [71464192, 56270315],
    [80946176, 36414300],
    [90428160, 16558285],
    [99910144, 96702270],
    [9392128, 76846256],
    [18874112, 56990241],
    [28356096, 37134226],
    [37838080, 17278211],
    [47320064, 97422196],
    [56802048, 77566181],
    [66284032, 57710166],
    [75766016, 37854151],
    [85248000, 17998136],
    [94729984, 98142121],
    [4211968, 78286107],
  ],
];

macro_rules! bid_packed_10000_zeros {
  ($i:expr) => {
    BID_PACKED_10000_ZEROS[$i as usize]
  };
}
pub(crate) use bid_packed_10000_zeros;

/// for j>=min_j[i+1], there is k s.t. bid_convert_table[i][j][k]>0
/// int min_j[] = { 0, 0, 0, 3 };
/// for even k, ((BID_PACKED_10000_ZEROS[k>>3])>>(k&7))&3)=greatest(i) s.t. 10^i divides k
#[rustfmt::skip]
pub const BID_PACKED_10000_ZEROS: [u8; 1250] = [
  0x03, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01,
  0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
  0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10,
  0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40,
  0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00,
  0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01,
  0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
  0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x03, 0x04, 0x10,
  0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40,
  0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00,
  0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02,
  0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04,
  0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10,
  0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40,
  0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00,
  0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x03, 0x04, 0x10, 0x40, 0x00, 0x01,
  0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
  0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20,
  0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40,
  0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00,
  0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01,
  0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04,
  0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10,
  0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x03, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40,
  0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00,
  0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01,
  0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
  0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10,
  0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40,
  0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00,
  0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01,
  0x04, 0x10, 0x40, 0x00, 0x03, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
  0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10,
  0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40,
  0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00,
  0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02,
  0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04,
  0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10,
  0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40,
  0x00, 0x03, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00,
  0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01,
  0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
  0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20,
  0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40,
  0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00,
  0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01,
  0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x03, 0x04,
  0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10,
  0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40,
  0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00,
  0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01,
  0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
  0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10,
  0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40,
  0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x03, 0x04, 0x10, 0x40, 0x00,
  0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01,
  0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
  0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10,
  0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40,
  0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00,
  0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02,
  0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04,
  0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x03, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10,
  0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40,
  0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00,
  0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01,
  0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
  0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20,
  0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40,
  0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00,
  0x01, 0x04, 0x10, 0x40, 0x00, 0x03, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01,
  0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04,
  0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10,
  0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40,
  0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00,
  0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01,
  0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x02, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
  0x10, 0x40, 0x00, 0x01, 0x04, 0x20, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10,
  0x40, 0x00,
];

macro_rules! bid_factors {
  ($i:expr, $j:expr) => {
    (BID_FACTORS[$i as usize][$j as usize] as i32)
  };
}
pub(crate) use bid_factors;

#[rustfmt::skip]
pub const BID_FACTORS: [[i8; 2]; 1024] = [
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [4, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 2],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [5, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [4, 0],  [0, 0],  [1, 2],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [6, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 2],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [4, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [5, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 2],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [4, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 3],  [1, 0],  [0, 0],  [7, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [4, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 2],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [5, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 2],  [4, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [6, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 2],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [4, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [5, 0],  [0, 2],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [4, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 3],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [8, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [4, 0],  [0, 0],  [1, 0],  [0, 2],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [5, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 2],
  [0, 0],  [1, 0],  [0, 0],  [4, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [6, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 2],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [4, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 2],
  [0, 0],  [5, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [4, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 3],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [7, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [4, 2],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [5, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 2],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [4, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [6, 0],  [0, 0],  [1, 2],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [4, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 2],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [5, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [4, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 3],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [9, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 2],  [1, 0],  [0, 0],  [4, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [5, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 2],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [4, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 2],  [6, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [4, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 2],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [5, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [4, 0],  [0, 4],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [7, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 2],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [4, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [5, 0],  [0, 0],  [1, 0],  [0, 2],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [4, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 2],
  [0, 0],  [1, 0],  [0, 0],  [6, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [4, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 2],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [5, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 3],
  [0, 0],  [4, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [8, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 2],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [4, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [5, 2],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [4, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 2],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [6, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [4, 0],  [0, 0],  [1, 2],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [5, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 3],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [4, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [7, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 2],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [4, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 2],  [1, 0],  [0, 0],  [5, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [4, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 2],
  [0, 0],  [3, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [6, 1],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [3, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 2],  [4, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [3, 0],  [0, 1],  [1, 0],  [0, 0],  [2, 0],  [0, 0],  [1, 1],
  [0, 0],  [5, 0],  [0, 0],  [1, 0],  [0, 1],  [2, 0],  [0, 0],  [1, 0],  [0, 0],  [3, 3],
  [0, 0],  [1, 0],  [0, 0],  [2, 0],  [0, 1],  [1, 0],  [0, 0],  [4, 0],  [0, 0],  [1, 1],
  [0, 0],  [2, 0],  [0, 0],  [1, 0],  [0, 1],  [3, 0],  [0, 0],  [1, 0],  [0, 0],  [2, 1],
  [0, 0],  [1, 0],  [0, 0],  [10, 0],
];