rpz

Response policy zone (RPZ) file generator.
git clone https://git.philomathiclife.com/repos/rpz
Log | Files | Refs | README

dom_count_auto_gen.rs (91424B)


      1 use ascii_domain::dom::Domain;
      2 use num_bigint::BigUint;
      3 /// The count of proper subdomains for both `Adblock` and `Wildcard` `Domain` when subdomains
      4 /// and proper subdomains are represented respectively.
      5 #[expect(
      6     clippy::arithmetic_side_effects,
      7     clippy::as_conversions,
      8     clippy::indexing_slicing,
      9     clippy::too_many_lines,
     10     clippy::unreadable_literal,
     11     reason = "autogenerated code and need it all"
     12 )]
     13 pub fn proper_subdomain_count(dom: &Domain<&str>) -> BigUint {
     14     // The commented out code at the end of the function was used to calculate the cardinalities
     15     // for each possible value of domain length; however it takes as much as 16 seconds to calculate
     16     // for a given value of n, so we cache the results
     17     // instead. The array is ordered based on the descending order of length of `Domain`s
     18     // (e.g., index 0 corresponds to the number of subdomains for `Domain`s of length 251 which
     19     // is the max length of a `Domain` with at least one proper subdomain).
     20     [
     21         BigUint::new(vec![52]),
     22         BigUint::new(vec![2756]),
     23         BigUint::new(vec![146068]),
     24         BigUint::new(vec![7738900]),
     25         BigUint::new(vec![410018388]),
     26         BigUint::new(vec![248542548, 5]),
     27         BigUint::new(vec![4180397652, 267]),
     28         BigUint::new(vec![2671623764, 14197]),
     29         BigUint::new(vec![4117795412, 752210]),
     30         BigUint::new(vec![862478932, 39853246]),
     31         BigUint::new(vec![1276228180, 2111483772]),
     32         BigUint::new(vec![3838587476, 200375265, 26]),
     33         BigUint::new(vec![3977409108, 4252552993, 1379]),
     34         BigUint::new(vec![2704896596, 3919002822, 73113]),
     35         BigUint::new(vec![3882512980, 4014107452, 3873682]),
     36         BigUint::new(vec![3242881620, 204873911, 205233436]),
     37         BigUint::new(vec![1153331796, 343698866, 2283635595, 2]),
     38         BigUint::new(vec![969830996, 2755980681, 572170738, 134]),
     39         BigUint::new(vec![3030282836, 2269546517, 2473041289, 7106]),
     40         BigUint::new(vec![1847489108, 3629376584, 3732202808, 376516]),
     41         BigUint::new(vec![241070676, 1801323295, 550145915, 19948419]),
     42         BigUint::new(vec![1230926420, 3223519493, 3638801565, 1056896671]),
     43         BigUint::new(vec![3529405012, 3593787233, 3076904220, 161369882, 13]),
     44         BigUint::new(vec![2724098644, 2312631537, 1324349926, 3220318693, 690]),
     45         BigUint::new(vec![3059642964, 2191098099, 1231948975, 4049114113, 36596]),
     46         BigUint::new(vec![106852948, 2265707158, 4078524026, 53383894, 1938960]),
     47         BigUint::new(vec![
     48             1449030228, 4120606714, 1266689161, 2876498924, 102728961,
     49         ]),
     50         BigUint::new(vec![
     51             3596513876, 1375839570, 3073178857, 2030051240, 1147764631, 1,
     52         ]),
     53         BigUint::new(vec![
     54             375288404, 2347365293, 2334837610, 1737538116, 601157403, 67,
     55         ]),
     56         BigUint::new(vec![
     57             375288404, 333124604, 2043982089, 2641118257, 749632597, 3557,
     58         ]),
     59         BigUint::new(vec![
     60             375288404, 1946521181, 65357692, 56864761, 1521603317, 188464,
     61         ]),
     62         BigUint::new(vec![
     63             375288404, 2577463837, 2311486239, 2856163489, 2140150568, 9985119,
     64         ]),
     65         BigUint::new(vec![
     66             375288404, 3318986961, 3336800178, 1153613668, 1432641031, 529026360,
     67         ]),
     68         BigUint::new(vec![
     69             375288404, 1672763489, 1653117627, 2349982024, 1101569468, 2258793175, 6,
     70         ]),
     71         BigUint::new(vec![
     72             375288404, 1872985649, 1777688160, 1798349612, 2929927110, 3232695082, 345,
     73         ]),
     74         BigUint::new(vec![
     75             375288404, 3990328753, 2308241830, 964880313, 3479391898, 2089547876, 18318,
     76         ]),
     77         BigUint::new(vec![
     78             375288404, 4244638193, 2014962046, 1954035381, 2572106657, 1878726949, 970540,
     79         ]),
     80         BigUint::new(vec![
     81             375288404, 3016518897, 1468302259, 1459760780, 1145312287, 191860765, 51420664,
     82         ]),
     83         BigUint::new(vec![
     84             375288404, 3918013937, 741117515, 1423741278, 32256809, 296378773, 2724342633,
     85         ]),
     86         BigUint::new(vec![
     87             375288404, 4113421809, 3220678635, 3913218978, 1104050882, 3913619510, 2605770681, 33,
     88         ]),
     89         BigUint::new(vec![
     90             375288404, 1022831089, 4149936985, 2644026415, 3253425148, 4171545929, 2287985434, 1780,
     91         ]),
     92         BigUint::new(vec![
     93             375288404, 797178353, 1019922958, 1674344141, 3250454247, 3816775168, 1072247613, 94335,
     94         ]),
     95         BigUint::new(vec![
     96             375288404, 151210481, 2544744706, 1216969582, 3194279504, 3075836706, 2933426700,
     97             4998020,
     98         ]),
     99         BigUint::new(vec![
    100             375288404, 2071579121, 679124811, 24458279, 118705999, 1933531958, 2136634151,
    101             264802508,
    102         ]),
    103         BigUint::new(vec![
    104             375288404, 3915909617, 137490366, 129739371, 476554331, 2789132808, 1650159256,
    105             1144725629, 3,
    106         ]),
    107         BigUint::new(vec![
    108             375288404, 2111769073, 3809283612, 3723310513, 888766089, 765431967, 3639728901,
    109             281019137, 173,
    110         ]),
    111         BigUint::new(vec![
    112             375288404, 4201646577, 3368784016, 2790098399, 2277185150, 153774588, 196277263,
    113             1124283864, 9169,
    114         ]),
    115         BigUint::new(vec![
    116             375288404, 1880099313, 3892329276, 3689814422, 1420707258, 554100642, 1903824923,
    117             61312066, 485801,
    118         ]),
    119         BigUint::new(vec![
    120             375288404, 2718173681, 3915736505, 1948017691, 3311844270, 2449773636, 1831131280,
    121             1521446241, 25738454,
    122         ]),
    123         BigUint::new(vec![
    124             375288404, 2886994417, 2292494843, 1109493842, 1279543652, 1582639857, 944194272,
    125             699053385, 1363661279,
    126         ]),
    127         BigUint::new(vec![
    128             375288404, 3705932273, 705482963, 76809839, 2528970701, 3527071483, 2583007984,
    129             3796830889, 3529309406, 16,
    130         ]),
    131         BigUint::new(vec![
    132             375288404, 3529771505, 1276023335, 1558249304, 474250754, 3711984670, 3025890941,
    133             1857748306, 1031405210, 891,
    134         ]),
    135         BigUint::new(vec![
    136             375288404, 2594441713, 4254079775, 3418696835, 1548693023, 2768765240, 3899935355,
    137             1980342079, 933958820, 47219,
    138         ]),
    139         BigUint::new(vec![
    140             375288404, 631507441, 4097520258, 1103161534, 2113861360, 1991546256, 3660681902,
    141             2012204487, 3414681798, 2501743,
    142         ]),
    143         BigUint::new(vec![
    144             375288404, 245631473, 491504859, 3208401305, 1474266946, 2723061964, 2310073485,
    145             1453991315, 2791012792, 132546076,
    146         ]),
    147         BigUint::new(vec![
    148             375288404, 2661550577, 2406104814, 862968291, 1899078236, 346491611, 1241634869,
    149             4148522640, 573571521, 2727519367, 1,
    150         ]),
    151         BigUint::new(vec![
    152             375288404, 849611249, 351847671, 1257821523, 3615257673, 702995988, 5240717,
    153             3567916871, 3159692503, 2694515012, 86,
    154         ]),
    155         BigUint::new(vec![
    156             375288404, 2191788529, 1679608494, 2906887961, 3277625757, 3033747662, 413021044,
    157             1822896059, 856201021, 2772913513, 4589,
    158         ]),
    159         BigUint::new(vec![
    160             375288404, 3533965809, 2556505512, 1816528392, 1947652842, 1037141563, 274775137,
    161             1149398125, 2668033105, 838441812, 243166,
    162         ]),
    163         BigUint::new(vec![
    164             375288404, 1386482161, 1234596285, 804514535, 1131547557, 1232842259, 1405663093,
    165             4235442216, 2871548155, 3106883214, 12883303,
    166         ]),
    167         BigUint::new(vec![
    168             375288404, 2460223985, 3863765183, 3150246073, 1204630827, 2075041789, 1483442067,
    169             838823512, 295416753, 3293438507, 682576435,
    170         ]),
    171         BigUint::new(vec![
    172             375288404, 2460223985, 3121791326, 3784088765, 1222191727, 211278684, 4204580296,
    173             1868812834, 1473418029, 2104247738, 1804168085, 8,
    174         ]),
    175         BigUint::new(vec![
    176             375288404, 2460223985, 2471685663, 4103126092, 1640721307, 2924547633, 3719386775,
    177             3358136588, 1785095480, 1506810521, 461696225, 446,
    178         ]),
    179         BigUint::new(vec![
    180             375288404, 2460223985, 3097994655, 2113279511, 1888061798, 1596718373, 3213304653,
    181             152654476, 2978780767, 2083463032, 1742258559, 16363,
    182         ]),
    183         BigUint::new(vec![
    184             375288404, 2460223985, 1860567763, 1130544223, 2153567102, 625138177, 3206578786,
    185             1106733064, 3948231794, 1002658338, 2817930503, 866822,
    186         ]),
    187         BigUint::new(vec![
    188             375288404, 2460223985, 147208035, 1175109684, 660928834, 1730986888, 3083362323,
    189             412094060, 2997340098, 3976540641, 3212428124, 45540257,
    190         ]),
    191         BigUint::new(vec![
    192             375288404, 2460223985, 1325126451, 3929886196, 1506154326, 283097260, 2162374086,
    193             1083031484, 2385562882, 1083286932, 3864853917, 2393119200,
    194         ]),
    195         BigUint::new(vec![
    196             375288404, 2460223985, 3546949299, 3466780721, 1591926664, 3866228006, 3769344032,
    197             3294539415, 761827863, 3320756801, 1055962996, 1194022465, 29,
    198         ]),
    199         BigUint::new(vec![
    200             375288404, 2460223985, 4239835891, 2374590398, 341723740, 1768865321, 3009735295,
    201             640743363, 760884641, 1286523815, 1425636762, 1404846044, 1538,
    202         ]),
    203         BigUint::new(vec![
    204             375288404, 2460223985, 1185904115, 3103587562, 1485183809, 1874654482, 3208312786,
    205             2785384481, 313087062, 1389949551, 3463745521, 1039435803, 80821,
    206         ]),
    207         BigUint::new(vec![
    208             375288404, 2460223985, 2965606131, 1397412449, 3110808017, 2226053202, 3474793386,
    209             257483838, 2073200290, 2070753250, 1854563799, 2728715379, 4245916,
    210         ]),
    211         BigUint::new(vec![
    212             375288404, 2460223985, 1130168051, 2123766638, 316945545, 132357966, 3454088252,
    213             3364776445, 2707843191, 452091523, 2613197394, 888667529, 223041660,
    214         ]),
    215         BigUint::new(vec![
    216             375288404, 2460223985, 2526860019, 2712686141, 2768201501, 3657483061, 763339927,
    217             2809075408, 4010198047, 1079127981, 404473813, 1744216475, 3125773904, 2,
    218         ]),
    219         BigUint::new(vec![
    220             375288404, 2460223985, 1186898675, 2387441384, 2136278685, 2507538597, 4291433051,
    221             4120455470, 4126082953, 4124167878, 1816064621, 56141297, 1164585958, 143,
    222         ]),
    223         BigUint::new(vec![
    224             375288404, 2460223985, 4136891123, 3213626288, 3178750640, 3483039856, 2585028864,
    225             307761499, 612469337, 2705587210, 2331449101, 2528560486, 2004283004, 7524,
    226         ]),
    227         BigUint::new(vec![
    228             375288404, 2460223985, 1959162611, 3492710176, 4176981138, 187691056, 2590522248,
    229             1426342635, 2139644698, 2023712095, 4279998285, 2289341587, 1312229383, 395147,
    230         ]),
    231         BigUint::new(vec![
    232             375288404, 2460223985, 3462181619, 837145225, 2194072164, 1472386366, 1537487790,
    233             439148352, 2717361996, 3390324277, 1458645090, 4049643816, 731583843, 20749520,
    234         ]),
    235         BigUint::new(vec![
    236             375288404, 2460223985, 2737025779, 1814181525, 1816957655, 4281341807, 4095807471,
    237             814369634, 1431209630, 3374966462, 3448108709, 31622598, 1983475365, 1089487382,
    238         ]),
    239         BigUint::new(vec![
    240             375288404, 2460223985, 236237555, 430037603, 1852070087, 2118228517, 3252136865,
    241             3422495617, 2590246972, 3459047098, 3973588529, 3171827264, 92475618, 1366057699, 13,
    242         ]),
    243         BigUint::new(vec![
    244             375288404, 2460223985, 4285838067, 735277699, 3811534046, 3138836190, 397415289,
    245             2582819123, 1510113859, 2843520944, 231283193, 1071216799, 881488229, 734567190, 699,
    246         ]),
    247         BigUint::new(vec![
    248             375288404, 2460223985, 3219698419, 466853614, 1331826237, 875975020, 1508049190,
    249             2008133206, 1300868705, 3490208720, 2376565918, 2037490725, 1237796068, 4043718151,
    250             36701,
    251         ]),
    252         BigUint::new(vec![
    253             375288404, 2460223985, 3740840691, 2381286222, 1266084405, 3478844871, 138766328,
    254             2627058549, 1862482887, 3802739663, 3303530586, 670509360, 729738179, 1103040603,
    255             1926447,
    256         ]),
    257         BigUint::new(vec![
    258             375288404, 2460223985, 1170780915, 2074383492, 1961754613, 1827774001, 916656902,
    259             3259243073, 210875113, 335228650, 3589141125, 431855961, 918438149, 3617060868,
    260             101108337,
    261         ]),
    262         BigUint::new(vec![
    263             375288404, 2460223985, 2001253107, 4061558499, 3398113640, 2159180498, 3282472469,
    264             2781426599, 2457937046, 705967069, 1864750529, 2770072726, 4100119564, 3195678530,
    265             1011162313, 1,
    266         ]),
    267         BigUint::new(vec![
    268             375288404, 2460223985, 1737011955, 1241403666, 1629794265, 1113534036, 219462432,
    269             3724660491, 1632655042, 2458055004, 4216935476, 2686950025, 703127910, 202085749,
    270             3560425265, 64,
    271         ]),
    272         BigUint::new(vec![
    273             375288404, 2460223985, 1116254963, 876125681, 2080401951, 2417594553, 1281467958,
    274             1222232179, 673709201, 3936590470, 2560633599, 1145420807, 450422830, 2135989143,
    275             2462786277, 3401,
    276         ]),
    277         BigUint::new(vec![
    278             375288404, 2460223985, 2340991731, 2737343678, 1289015076, 1347075108, 2512475061,
    279             1412108126, 4100065885, 1354686988, 95090307, 1491981215, 1626720129, 1489450116,
    280             1884072652, 178463,
    281         ]),
    282         BigUint::new(vec![
    283             375288404, 2460223985, 3683169011, 3216812981, 2744855154, 4058157834, 3543196209,
    284             4060346256, 3819377805, 880180604, 3698897414, 2155732057, 219486495, 2801311956,
    285             196802852, 9362171,
    286         ]),
    287         BigUint::new(vec![
    288             375288404, 2460223985, 4018713331, 378501028, 3741989739, 4071246630, 3223764155,
    289             944505703, 4060511320, 3998749690, 1376306696, 541422658, 3194641855, 1822586890,
    290             2833605965, 491089841,
    291         ]),
    292         BigUint::new(vec![
    293             375288404, 2460223985, 1065923315, 2272734833, 2112108986, 105514710, 1835282898,
    294             73796845, 594435594, 3623404924, 3134226987, 1565418351, 2713974924, 557744684,
    295             2768639568, 4282534202, 5,
    296         ]),
    297         BigUint::new(vec![
    298             375288404, 2460223985, 2408100595, 425311361, 2226869327, 1674710348, 1445832078,
    299             312177116, 2231562669, 3746125130, 3498765241, 1939808910, 1301732400, 854687535,
    300             3104899461, 2200045581, 314,
    301         ]),
    302         BigUint::new(vec![
    303             375288404, 2460223985, 260616947, 2859448658, 3702809247, 3320531005, 3151878689,
    304             4207742540, 2040955801, 252969925, 386120380, 1743412687, 3776929748, 2230776619,
    305             1412589968, 2363163963, 16492,
    306         ]),
    307         BigUint::new(vec![
    308             375288404, 2460223985, 1334358771, 3303796476, 2667360554, 3871609700, 911605988,
    309             27609975, 1290159954, 1842020606, 3449686738, 4185142679, 3778140731, 3809292562,
    310             2284720990, 3785464148, 864751,
    311         ]),
    312         BigUint::new(vec![
    313             375288404, 2460223985, 1334358771, 2661167083, 3024326089, 3454077871, 3099468518,
    314             2527626308, 1167917430, 1316291304, 2175736981, 3846068744, 1555994873, 2137553745,
    315             2603347602, 3190393459, 45336466,
    316         ]),
    317         BigUint::new(vec![
    318             375288404, 2460223985, 1334358771, 940459788, 2102940239, 3591716736, 3834980050,
    319             1875345014, 528139358, 3296012157, 3763402287, 624898860, 1256164751, 3436662455,
    320             2303595502, 90138154, 2376595497,
    321         ]),
    322         BigUint::new(vec![
    323             375288404, 2460223985, 1334358771, 2601003596, 2817854902, 3738069448, 49753232,
    324             395556631, 4278421792, 1332236424, 2899221004, 2382694996, 1653174695, 1396595153,
    325             2947866156, 2578251457, 15892544, 29,
    326         ]),
    327         BigUint::new(vec![
    328             375288404, 2460223985, 1334358771, 3767469568, 671287769, 3791280922, 2921453395,
    329             4023886981, 3031459970, 3699531449, 4253680083, 3347977273, 3228548537, 2887358797,
    330             2042847151, 1961985952, 257705967, 1520,
    331         ]),
    332         BigUint::new(vec![
    333             375288404, 2460223985, 1334358771, 448122768, 3534770692, 578405276, 433247806,
    334             4175667383, 3340326313, 851853855, 3728964000, 1960633968, 431785542, 1966122388,
    335             1627483431, 2802782821, 2538621092, 79655,
    336         ]),
    337         BigUint::new(vec![
    338             375288404, 2460223985, 1334358771, 167469408, 2159686082, 821089061, 2324782401,
    339             578797663, 3194338755, 2071266770, 3465944956, 683610840, 2498722363, 2423090999,
    340             2865272105, 48834160, 912286961, 4173677,
    341         ]),
    342         BigUint::new(vec![
    343             375288404, 2460223985, 1334358771, 1946022112, 2246986986, 3745071011, 3383180416,
    344             807758270, 1127886323, 1915334517, 2927471789, 4218978062, 441286161, 2533902413,
    345             89124065, 3692088392, 3505188042, 218658982,
    346         ]),
    347         BigUint::new(vec![
    348             375288404, 2460223985, 1334358771, 2527376672, 4001711028, 3217742207, 1841952496,
    349             3072670916, 3204261182, 3208730903, 3551501038, 3441960928, 3295757255, 299807985,
    350             1166589037, 2169989204, 3733494551, 2864151189, 2,
    351         ]),
    352         BigUint::new(vec![
    353             375288404, 2460223985, 1334358771, 688502816, 1002760441, 377188254, 794405575,
    354             1675507559, 1446917124, 3708509626, 1867858013, 920339131, 2428156058, 2092486826,
    355             3748575832, 1953057757, 2363909823, 2924476765, 139,
    356         ]),
    357         BigUint::new(vec![
    358             375288404, 2460223985, 1334358771, 4016976160, 727489525, 65915787, 1183254543,
    359             2888071423, 3049200727, 2690107908, 2198215983, 4119894348, 3875556523, 442037750,
    360             1898863513, 160023236, 989734902, 90609241, 7315,
    361         ]),
    362         BigUint::new(vec![
    363             375288404, 2460223985, 1334358771, 4166738208, 2266663227, 673332435, 550627422,
    364             3488007317, 3671482230, 59074521, 4227541302, 2262677408, 1149291744, 921863748,
    365             3112047771, 3399675251, 652952636, 3354949157, 383031,
    366         ]),
    367         BigUint::new(vec![
    368             375288404, 2460223985, 1334358771, 351384864, 3565098702, 4155390886, 3220789349,
    369             2608312059, 2103834788, 944768032, 949615699, 4118569665, 1685119122, 980757317,
    370             1694451395, 393065143, 2754423072, 3616955801, 20053644,
    371         ]),
    372         BigUint::new(vec![
    373             375288404, 2460223985, 1334358771, 3014165792, 796920501, 3672616261, 1130012766,
    374             4077271733, 2971834292, 252963730, 1652648553, 69566497, 1999168979, 3104695664,
    375             710159863, 1735470542, 4064425944, 1573131256, 1049759101,
    376         ]),
    377         BigUint::new(vec![
    378             375288404, 2460223985, 1334358771, 3209942304, 1679710063, 1755690075, 4251598478,
    379             1049675705, 1717017534, 705215572, 2260440090, 2765904623, 975350201, 1756060381,
    380             1886465482, 2733251981, 3115673342, 472751457, 3404646711, 12,
    381         ]),
    382         BigUint::new(vec![
    383             375288404, 2460223985, 1334358771, 1531073824, 2423748678, 1729816840, 1740611885,
    384             2777212627, 2969100597, 501119910, 1886104013, 1931706566, 96118838, 3281936552,
    385             4069997219, 1398231818, 2988777868, 2856575295, 2009829544, 669,
    386         ]),
    387         BigUint::new(vec![
    388             375288404, 2460223985, 1334358771, 1719702816, 1119467944, 3767307448, 1949393548,
    389             1966720572, 2729045600, 3753905954, 3937507823, 3731918463, 3146610355, 2967238817,
    390             2505065361, 2485535643, 1893300314, 166365062, 874087629, 35029,
    391         ]),
    392         BigUint::new(vec![
    393             375288404, 2460223985, 1334358771, 1536660768, 2051648810, 2202156949, 1371566363,
    394             1821496179, 1684562462, 1200503648, 1234387596, 2182170796, 1165941114, 1382310371,
    395             1755514751, 2474898046, 2611907239, 456112578, 2749340137, 1832576,
    396         ]),
    397         BigUint::new(vec![
    398             375288404, 2460223985, 1334358771, 1827181856, 4177292154, 2680738868, 1607480411,
    399             1794618371, 3703803888, 2600970549, 2966298121, 174262665, 1367904220, 905247628,
    400             2766298775, 3949556221, 1103455785, 3652079576, 1227653919, 95856967,
    401         ]),
    402         BigUint::new(vec![
    403             375288404, 2460223985, 1334358771, 3121124640, 4270361123, 2054576521, 3629448573,
    404             2564600244, 132302420, 4285170993, 2743649285, 133493916, 3207419472, 3048390000,
    405             2806218966, 2081300703, 4181751659, 1789896323, 1910815868, 718209863, 1,
    406         ]),
    407         BigUint::new(vec![
    408             375288404, 2460223985, 1334358771, 3908867360, 3679284426, 2607521588, 512862844,
    409             2732858915, 2032099596, 1011088742, 4023691910, 2343553854, 2039346656, 791945032,
    410             3298005749, 1732434189, 2233637154, 2006257184, 4156212473, 144011146, 61,
    411         ]),
    412         BigUint::new(vec![
    413             375288404, 2460223985, 1334358771, 487363872, 3552686372, 3532184366, 1586939227,
    414             3724812754, 2465159099, 2444171857, 3424835511, 2900544237, 1283399694, 2991378323,
    415             2924594123, 3463506096, 3517618882, 1646903520, 850003639, 3693629995, 3190,
    416         ]),
    417         BigUint::new(vec![
    418             375288404, 2460223985, 1334358771, 970757408, 593337656, 2621124778, 2362798218,
    419             1847405156, 3380032365, 3917922903, 1684495821, 3187390150, 3115120277, 3126047712,
    420             1298279344, 3937900583, 3741958231, 1599463652, 2918936608, 2485862381, 166789,
    421         ]),
    422         BigUint::new(vec![
    423             375288404, 2460223985, 1334358771, 2807862560, 3332862828, 3314859132, 1713311062,
    424             3684236752, 781458918, 1258707760, 795101932, 1642963495, 1566360302, 2027884895,
    425             2599672732, 4134932573, 4218553122, 3065721011, 3586743940, 3098048383, 8716654,
    426         ]),
    427         BigUint::new(vec![
    428             375288404, 2460223985, 1334358771, 3214710048, 491973160, 2927525970, 3000056542,
    429             3840979468, 354856496, 2429638914, 1493528488, 2621804923, 1074562622, 2337847084,
    430             805113811, 2215452942, 2043738784, 862449625, 3952422953, 2935835032, 455457980,
    431         ]),
    432         BigUint::new(vec![
    433             375288404, 2460223985, 1334358771, 3936130336, 3810953987, 1542106736, 3855036022,
    434             737849359, 946161952, 3426822660, 140914304, 1709004311, 1784614413, 2398718531,
    435             3365991385, 2536976033, 1995705147, 903783129, 3958112258, 744347273, 2318865108, 5,
    436         ]),
    437         BigUint::new(vec![
    438             375288404, 2460223985, 1334358771, 2476512544, 2901890493, 1516229638, 4279451811,
    439             1158581914, 3413180859, 2662373916, 138227816, 3500608007, 1021825042, 1542512059,
    440             1657638841, 2546098455, 2167488194, 2639913991, 1190253808, 3657171949, 1517999094,
    441             289,
    442         ]),
    443         BigUint::new(vec![
    444             375288404, 2460223985, 1334358771, 2744948000, 3663540216, 1529140403, 1719575268,
    445             788302244, 3133780986, 1080231567, 1297291346, 2555205130, 1013378818, 3710964045,
    446             254267420, 169782776, 444582309, 3263263535, 4006521636, 3677731565, 142388726, 15110,
    447         ]),
    448         BigUint::new(vec![
    449             375288404, 2460223985, 1334358771, 933008672, 292991406, 2733939278, 3620414616,
    450             610832446, 2435459475, 3940308335, 1824151617, 1013413903, 1529153948, 3841031730,
    451             2270845647, 2514900921, 352319593, 4070392803, 1250818383, 2493419008, 4180057617,
    452             788877,
    453         ]),
    454         BigUint::new(vec![
    455             375288404, 2460223985, 1334358771, 2275185952, 2069192335, 3442270414, 3613722894,
    456             3792005945, 782718190, 2966897497, 2085152667, 4262162053, 1687190049, 507318413,
    457             3050269090, 4242352422, 3290464898, 312510041, 1161865422, 2075798102, 3170157616,
    458             41177419,
    459         ]),
    460         BigUint::new(vec![
    461             375288404, 2460223985, 1334358771, 3617363232, 767481141, 2798605879, 216592806,
    462             3009776831, 2287157616, 746314070, 533365218, 1941679715, 3683198332, 1287225523,
    463             1783505619, 2435916847, 30895875, 2414036950, 3357534644, 2488836996, 1476424431,
    464             2148871451,
    465         ]),
    466         BigUint::new(vec![
    467             375288404, 2460223985, 1334358771, 1469879584, 3966110914, 524124560, 152391733,
    468             2511082427, 2824602280, 2073871626, 1879641108, 629469854, 1723285870, 1308591480,
    469             1139848879, 1338115761, 1345716577, 2490757277, 2518816577, 2890283632, 3045945884,
    470             445080315, 26,
    471         ]),
    472         BigUint::new(vec![
    473             375288404, 2460223985, 1334358771, 2543621408, 3821629204, 1251879183, 2891264873,
    474             862372749, 2730649920, 3946196409, 386054333, 495072142, 3997453427, 1929934700,
    475             2286014611, 3132574989, 3816564976, 3613717384, 137659154, 3503341474, 2723213443,
    476             2543045884, 1361,
    477         ]),
    478         BigUint::new(vec![
    479             375288404, 2460223985, 1334358771, 2543621408, 3723538515, 1352727828, 2409267632,
    480             1399204016, 963872732, 2078104532, 2376079728, 3106353504, 2941033470, 1552894073,
    481             1150412642, 3250864799, 1200024207, 1381405911, 1845036695, 2091830815, 696155422,
    482             2031249559, 71004,
    483         ]),
    484         BigUint::new(vec![
    485             375288404, 2460223985, 1334358771, 2543621408, 3994675668, 1490424801, 2018541335,
    486             3386372446, 1887579055, 1070949466, 3015236068, 2125386458, 2576663800, 787844066,
    487             3899955011, 3896043957, 3245195291, 3451998588, 4137134477, 2870460987, 2223995227,
    488             1856577899, 3701804,
    489         ]),
    490         BigUint::new(vec![
    491             375288404, 2460223985, 1334358771, 2543621408, 108189908, 1009895052, 2417361073,
    492             3716302432, 1206236872, 1714392538, 2423637157, 1446646222, 2951583407, 381426507,
    493             4171738569, 2486690329, 1225283083, 81479387, 655056393, 1387263240, 3653525540,
    494             158300381, 192941957,
    495         ]),
    496         BigUint::new(vec![
    497             375288404, 2460223985, 1334358771, 2543621408, 1088623368, 362459840, 1427608929,
    498             4026337049, 17759160, 2131962935, 3078358333, 3350714126, 2005794791, 1986667923,
    499             3069103584, 2589397401, 872859540, 3464091314, 2827312770, 2771039149, 2983482937,
    500             3282652449, 1516545866, 2,
    501         ]),
    502         BigUint::new(vec![
    503             375288404, 2460223985, 1334358771, 2543621408, 297759128, 1837823977, 1597754151,
    504             2594200211, 3938329176, 1514863451, 170335670, 4104939771, 2122122959, 204320869,
    505             1514324102, 1749816223, 2472922285, 1345800768, 672452179, 1118197205, 2132458193,
    506             2742243656, 985429928, 123,
    507         ]),
    508         BigUint::new(vec![
    509             375288404, 2460223985, 1334358771, 2543621408, 1565423976, 1940455119, 2001544857,
    510             3190388342, 2147138011, 3053711670, 4016476330, 2167732712, 1190433567, 1594135970,
    511             291103371, 1626580129, 1301317960, 1559418209, 738610514, 205838008, 1400741198,
    512             4214199197, 796192726, 6453,
    513         ]),
    514         BigUint::new(vec![
    515             375288404, 2460223985, 1334358771, 2543621408, 589251816, 2391831009, 1728723516,
    516             181130724, 4285375407, 2929351545, 3233212788, 2309651665, 2730928462, 146568749,
    517             2657314986, 3107049692, 1532662895, 1514403156, 103999350, 3374554676, 3436565642,
    518             2034666958, 2828653903, 337921,
    519         ]),
    520         BigUint::new(vec![
    521             375288404, 2460223985, 1334358771, 2543621408, 2861969704, 1135425604, 1039070983,
    522             1500008042, 756650173, 1226466646, 2884374739, 2720613726, 4037861095, 1154327514,
    523             948102900, 2402380469, 518831132, 287068554, 455744436, 2132737622, 3684840433,
    524             2753298665, 1829483875, 17694581,
    525         ]),
    526         BigUint::new(vec![
    527             375288404, 2460223985, 1334358771, 2543621408, 1562870824, 2223563800, 627601685,
    528             3931191767, 1963804481, 2068642021, 3182461511, 3440237650, 3372627476, 3882745516,
    529             155135794, 328106351, 153352687, 532473956, 384060564, 2089202149, 2414435551,
    530             2221820394, 1383076804, 926503403,
    531         ]),
    532         BigUint::new(vec![
    533             375288404, 2460223985, 1334358771, 2543621408, 651451688, 2063603536, 4195344935,
    534             628247983, 3694049076, 409781270, 3866516567, 3575005349, 477908172, 1365517798,
    535             4219664552, 2267226689, 1273207489, 715477852, 2130518214, 407639283, 1646907501,
    536             3664713902, 3419206668, 1265920647, 11,
    537         ]),
    538         BigUint::new(vec![
    539             375288404, 2460223985, 1334358771, 2543621408, 1668631848, 3084215717, 2535623602,
    540             1355370279, 1711209510, 3565276581, 334763960, 1637078921, 1157348908, 2867965050,
    541             4160429863, 1209329262, 1964536455, 3844490096, 3112905541, 3015147941, 609034362,
    542             3114335197, 2289791300, 1525249047, 591,
    543         ]),
    544         BigUint::new(vec![
    545             375288404, 2460223985, 1334358771, 2543621408, 2873237800, 593475146, 3957752737,
    546             3607753543, 998755275, 2973630508, 3812764564, 729867179, 3117173245, 1205481369,
    547             3859663194, 2382784159, 4166471027, 338216186, 2248990593, 4122863298, 2190421143,
    548             962475347, 3363479543, 644463577, 30960,
    549         ]),
    550         BigUint::new(vec![
    551             375288404, 2460223985, 1334358771, 2543621408, 2441998632, 1456210221, 3517676631,
    552             2125186749, 2336040486, 1803295599, 497828393, 3354229517, 2315762146, 2390170442,
    553             2471250722, 3262196615, 3636458986, 1948827006, 3805560749, 1978273630, 2198623259,
    554             4237805852, 1489294306, 3466543098, 1620841,
    555         ]),
    556         BigUint::new(vec![
    557             375288404, 2460223985, 1334358771, 2543621408, 4002365736, 2699270358, 4035612103,
    558             4236649769, 2481511290, 286754901, 2192344738, 3423993860, 3397041319, 2594484709,
    559             3540687144, 447363625, 488059790, 444324058, 1568636462, 2963210948, 924176437,
    560             1842840823, 23040779, 22811001, 84851830,
    561         ]),
    562         BigUint::new(vec![
    563             375288404, 2460223985, 1334358771, 2543621408, 2587476264, 531471700, 565661081,
    564             3173396807, 560588409, 2397243561, 2939066677, 1112532089, 4016222432, 4054750870,
    565             1034402982, 1728888132, 2408752621, 3982402714, 3118679989, 1289461419, 1709813332,
    566             2514987870, 1439101459, 4218408052, 146893508, 1,
    567         ]),
    568         BigUint::new(vec![
    569             375288404, 2460223985, 1334358771, 2543621408, 1562378536, 3984676162, 1533759221,
    570             2265150196, 4077915242, 3191635425, 1391128044, 79630882, 1799432732, 798767144,
    571             788136604, 3877311258, 2344732049, 2771994519, 730903558, 1075120241, 2762438885,
    572             1653779067, 641228852, 4115900764, 587300920, 54,
    573         ]),
    574         BigUint::new(vec![
    575             375288404, 2460223985, 1334358771, 2543621408, 3532063016, 2106301204, 1161579613,
    576             3977699201, 517035130, 2794580228, 3841970396, 3789755434, 721327799, 1673345532,
    577             77309593, 2039372378, 2275232492, 247383471, 1521519421, 3259734418, 42022609,
    578             2135694052, 1236139276, 2334490590, 3251143850, 2833,
    579         ]),
    580         BigUint::new(vec![
    581             375288404, 2460223985, 1334358771, 2543621408, 1110966568, 2393056800, 1350110272,
    582             2924655289, 1459090315, 3475237696, 1257511530, 4036949063, 723610430, 1552731592,
    583             1205849493, 3220845583, 3701829803, 2849977890, 1258404014, 238739126, 2442636624,
    584             4014062691, 3433106490, 1901814374, 3462971528, 148325,
    585         ]),
    586         BigUint::new(vec![
    587             375288404, 2460223985, 1334358771, 2543621408, 3407348008, 1233228594, 3411181417,
    588             2093918876, 1827015250, 1338390636, 4278954490, 2855758896, 2194310770, 3410983728,
    589             620234408, 1826608367, 3617389928, 246027064, 1642755342, 1870814843, 1879774701,
    590             904530615, 3902271887, 3396039084, 4245280487, 7763447,
    591         ]),
    592         BigUint::new(vec![
    593             375288404, 2460223985, 1334358771, 2543621408, 1217134888, 3078093129, 3061112270,
    594             1278695255, 3616386859, 4024538543, 2988611858, 2589454103, 787801141, 2215111346,
    595             4020818330, 3231249235, 3792889391, 1656781417, 1381049381, 2527801670, 1083965285,
    596             1627715319, 2367340571, 1283593976, 1268495279, 406327846,
    597         ]),
    598         BigUint::new(vec![
    599             375288404, 2460223985, 1334358771, 2543621408, 2442920232, 45276574, 2032627375,
    600             917984412, 2986861814, 2373466326, 1802961357, 3126051563, 2002628262, 2936766148,
    601             3750548047, 3767161939, 2780915648, 1069487964, 4036604440, 1550559861, 1170372835,
    602             3083458002, 1323016514, 1640149106, 4074778593, 4085980586, 4,
    603         ]),
    604         BigUint::new(vec![
    605             375288404, 2460223985, 1334358771, 2543621408, 3832283432, 2696280962, 2572683480,
    606             4175448237, 3404610727, 2136661146, 4257763704, 892952018, 2218618404, 1250412368,
    607             2141474832, 700052702, 1861341822, 1903102532, 539549951, 987106772, 2352847513,
    608             2795598340, 142672976, 3553933053, 3432928320, 547528798, 259,
    609         ]),
    610         BigUint::new(vec![
    611             375288404, 2460223985, 1334358771, 2543621408, 2381054248, 21917494, 2024589020,
    612             3035885024, 1544851454, 3873165476, 52544173, 584620594, 999613054, 53857787,
    613             2953709759, 3669630452, 1795146519, 968325082, 4236363572, 3962694578, 607022979,
    614             1147753971, 3246682774, 1373916352, 3588841297, 3896070368, 13560,
    615         ]),
    616         BigUint::new(vec![
    617             375288404, 2460223985, 1334358771, 2543621408, 3458990376, 3102212629, 2923606015,
    618             2610526647, 2862495030, 2462184740, 247107426, 2375588414, 1615032415, 2018689308,
    619             23577407, 757254239, 3469952833, 2523407951, 236907216, 2696977587, 3342638617,
    620             3218520741, 1307512362, 1441329142, 1553236610, 3099072064, 709657,
    621         ]),
    622         BigUint::new(vec![
    623             375288404, 2460223985, 1334358771, 2543621408, 1227620648, 2735822829, 3182207984,
    624             2655874152, 1911959699, 3202269726, 3352265041, 2482043729, 1096361615, 1827680999,
    625             2108667791, 4109372722, 3751633681, 4168743365, 1483427286, 3668772749, 371413044,
    626             891157989, 3614903301, 379159372, 2554584355, 2523739390, 37135930,
    627         ]),
    628         BigUint::new(vec![
    629             375288404, 2460223985, 1334358771, 2543621408, 1378615592, 2124979467, 3869608993,
    630             1182792460, 2640281798, 94061031, 3072662239, 1765178173, 522921752, 1599801713,
    631             2392193932, 3491954298, 3409559666, 995484266, 287535901, 1813090899, 3858071186,
    632             2932421652, 2727235639, 47972540, 1760330552, 1367320824, 1943234256,
    633         ]),
    634         BigUint::new(vec![
    635             375288404, 2460223985, 1334358771, 2543621408, 573309224, 2848462570, 297419517,
    636             784731094, 2768546732, 295310148, 1482184039, 3289378734, 1626845618, 4088238483,
    637             572708640, 1418696534, 4059942084, 984728194, 2831713861, 2810244614, 2425826462,
    638             502741229, 2484597449, 2051110097, 1309436654, 1582624320, 2897210858, 23,
    639         ]),
    640         BigUint::new(vec![
    641             375288404, 2460223985, 1334358771, 2543621408, 908853544, 115794502, 3565064611,
    642             4224203971, 3003673416, 2040538988, 3494903392, 2174787101, 730958942, 1587426713,
    643             1216059146, 2222641978, 458956447, 2568862701, 1118079692, 3242301930, 3084300380,
    644             4119311250, 3093156219, 1587649575, 1429127399, 2586105371, 3232553230, 1238,
    645         ]),
    646         BigUint::new(vec![
    647             375288404, 2460223985, 1334358771, 2543621408, 2251030824, 3012358716, 278114290,
    648             2220419113, 3976552303, 2715134477, 1681099792, 1589972998, 3000442551, 404778394,
    649             832783608, 2396613513, 1673183307, 1942089317, 1845205033, 3482430837, 4084553639,
    650             2323389363, 3896457087, 348002344, 4044436031, 287449663, 3114057219, 64814,
    651         ]),
    652         BigUint::new(vec![
    653             375288404, 2460223985, 1334358771, 2543621408, 3593208104, 2945023736, 2227032504,
    654             2193119976, 808267449, 3216385101, 3033836400, 456555884, 1125870240, 464859713,
    655             10507958, 270631227, 2210300992, 1703891855, 551285133, 2264386612, 1922395156,
    656             3034507121, 1040591836, 922801132, 1637967686, 3017872049, 3114302110, 3391169,
    657         ]),
    658         BigUint::new(vec![
    659             375288404, 2460223985, 1334358771, 2543621408, 1445724456, 4036055873, 26662430,
    660             2849460476, 126144669, 3134242821, 3267407193, 3385299635, 2084731548, 3086885011,
    661             2933551302, 1118233540, 334662835, 2478562709, 3520965186, 286926085, 2281497960,
    662             4239060620, 2277599706, 456079410, 3755990621, 289475438, 3137271329, 177424049,
    663         ]),
    664         BigUint::new(vec![
    665             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1433733179, 1983551259,
    666             3183236740, 3213866899, 4208537401, 2945052152, 3940374272, 3882475903, 1509970502,
    667             3309566084, 1926141956, 3284707559, 3230861295, 3043572573, 2579360888, 3177799575,
    668             1588286429, 932093071, 3711427490, 368598896, 1429105521, 906409877, 692522539, 2,
    669         ]),
    670         BigUint::new(vec![
    671             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 156035530, 1133686565,
    672             1743320647, 3375072318, 2012342394, 1153370874, 2481071177, 583451137, 327194059,
    673             397399572, 2128700879, 944339639, 1239680795, 3991450197, 3388101214, 3344426675,
    674             3597872431, 4206908931, 2447851829, 1889574113, 1472740103, 3986860253, 294017406, 113,
    675         ]),
    676         BigUint::new(vec![
    677             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 258440619, 2864366690,
    678             1036994977, 1375962384, 623996537, 3277116958, 3199396551, 4141879303, 592996622,
    679             3477310669, 492237602, 337428166, 1626177557, 299025377, 994816793, 779280139,
    680             2761101027, 3415256044, 2363507292, 3483241717, 2337671414, 2257176492, 784913708,
    681             5915,
    682         ]),
    683         BigUint::new(vec![
    684             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 3567736939, 1422128831,
    685             1359905647, 3749719229, 127483939, 4223227770, 2169435423, 2138123196, 1126010966,
    686             613271075, 605448982, 3068413273, 1547048905, 2583389829, 1453489243, 8760026,
    687             1648613590, 2555144115, 401564871, 4196029032, 1612167424, 302476558, 550178662,
    688             309445,
    689         ]),
    690         BigUint::new(vec![
    691             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 587583775, 3536224817,
    692             2781219922, 2582698859, 2983955949, 913689216, 2656586171, 486487766, 3837012000,
    693             3679195413, 1772417733, 2985095058, 1205369396, 1096725427, 2527158883, 3112953302,
    694             45546555, 685048376, 2320196409, 3593580469, 3481366272, 3387590826, 1954897998,
    695             16187820,
    696         ]),
    697         BigUint::new(vec![
    698             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 523158703, 4113109057,
    699             2100971674, 217956614, 596199284, 2380878930, 3063776566, 1398583896, 475510041,
    700             2647065, 569539020, 3670413946, 1728895160, 1053315873, 2514048110, 2778013497,
    701             3821961787, 4267822458, 13820863, 1167343593, 3268996059, 1641040263, 140134694,
    702             846803892,
    703         ]),
    704         BigUint::new(vec![
    705             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1118880383, 2310160004,
    706             3019308007, 4008582343, 2896674950, 330609170, 817589387, 2952646134, 1654073678,
    707             8987835, 2423235159, 664912750, 3046216472, 489593826, 2216686240, 1791381573,
    708             2387259047, 2476423337, 3775812603, 4086181528, 2412691423, 184457215, 464564228,
    709             1346638432, 10,
    710         ]),
    711         BigUint::new(vec![
    712             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 2976500223, 2979299174,
    713             3407692876, 1015168976, 1405129545, 89483162, 1793466320, 4107506794, 451927044,
    714             3854789239, 2292720344, 3033627639, 3414458444, 4206167043, 3911629651, 1549165729,
    715             2609588033, 1282189107, 3868152888, 2198179607, 187872385, 1757276935, 1970119063,
    716             2103526322, 539,
    717         ]),
    718         BigUint::new(vec![
    719             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1701240383, 4150727432,
    720             4229846246, 1491411143, 3448010050, 2748284773, 435433000, 2628046556, 2404309504,
    721             1338368081, 3510713777, 1756851377, 3559685262, 3651796331, 2244954464, 847590960,
    722             1051616462, 2516424913, 980131917, 619425458, 246904961, 3660903002, 4148712762,
    723             2358648193, 28219,
    724         ]),
    725         BigUint::new(vec![
    726             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1919189311, 1075985887,
    727             3115672713, 3401657272, 3896084877, 525825118, 876173054, 3168154221, 2976809555,
    728             2149006125, 4178177611, 2236024378, 2590801160, 2938337185, 2230946803, 3406716434,
    729             1896413717, 485546906, 2995780162, 2252419063, 951366215, 1875230279, 3453444322,
    730             2272567594, 1476076,
    731         ]),
    732         BigUint::new(vec![
    733             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 2773596735, 887942758,
    734             3663982038, 1807451680, 3462435410, 4176426144, 3909880531, 569807074, 2047733993,
    735             32965839, 1144605978, 2238484561, 243114785, 530662820, 1119792380, 2182736718,
    736             2324124763, 1631774642, 2784602890, 1606266084, 1344911530, 3252479184, 699521876,
    737             2806160939, 77207632,
    738         ]),
    739         BigUint::new(vec![
    740             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 2701552191, 3021831563,
    741             3761866094, 1495182712, 3005256748, 1578935760, 729160555, 1248336637, 96469620,
    742             2453445089, 3694966433, 33145778, 582073547, 2108534160, 910164355, 1709948987,
    743             4081974507, 962001181, 1665189504, 3356106364, 2947861254, 1856731644, 1088109335,
    744             571966670, 4038357842,
    745         ]),
    746         BigUint::new(vec![
    747             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 434748991, 1126591621,
    748             2683503626, 3186698004, 2540597168, 2833518046, 2921126828, 3105171050, 1989368494,
    749             902639402, 2679724105, 1682425435, 2556927276, 3696061619, 1949936733, 2929994801,
    750             1995337434, 2496165830, 1577335356, 1326658277, 3155215019, 4233228516, 707341872,
    751             1525371270, 770589498, 49,
    752         ]),
    753         BigUint::new(vec![
    754             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 3368717887, 651430580,
    755             1331245725, 1870762458, 952297851, 288351487, 3062668627, 1959269072, 110037462,
    756             4211895868, 88728104, 3759138601, 2492810714, 2210040404, 2053569231, 1675388541,
    757             3095602713, 1096209388, 842591810, 4253831717, 1328811468, 2020607979, 1049249342,
    758             1275113326, 1155387700, 2572,
    759         ]),
    760         BigUint::new(vec![
    761             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 3701595711, 1944631056,
    762             3913388044, 1972358401, 2211743384, 2468061449, 1825696645, 3950254819, 4175887213,
    763             658190054, 988997182, 79409135, 3369430523, 2182610800, 1656518321, 3430281761,
    764             467517116, 1215120427, 1477681381, 1103183017, 1606806971, 410824471, 966071681,
    765             404550408, 3941253598, 134537,
    766         ]),
    767         BigUint::new(vec![
    768             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1778933311, 1533008756,
    769             993702014, 1124262251, 3395509530, 3217741713, 1279240497, 3816440002, 1903989291,
    770             51592826, 788752418, 435974174, 1298746546, 2043470592, 3595479373, 1154431373,
    771             474663849, 2645512080, 1612537241, 2883787901, 2770004941, 3764226311, 820346693,
    772             2815966245, 3411107300, 7036700,
    773         ]),
    774         BigUint::new(vec![
    775             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 714513983, 130433633,
    776             43631165, 1061573839, 3636110016, 3105933977, 4119850069, 3850315024, 3307706156,
    777             1888708654, 1089500020, 3483168113, 4246385694, 148388959, 3339203696, 50446275,
    778             3495488798, 1475116976, 3302398184, 3737270005, 335208268, 3241199250, 1916720821,
    779             1631957933, 2590429742, 368036023,
    780         ]),
    781         BigUint::new(vec![
    782             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 5086783, 281448113,
    783             2198189083, 2950462223, 1083532748, 999096768, 120317796, 3666454154, 3267420670,
    784             3370080400, 3355726828, 577850252, 948557141, 2836218692, 1427932166, 1569892183,
    785             3940072213, 585643425, 376346774, 2570723472, 3703624351, 241067127, 2244633063,
    786             388840025, 2897967481, 2069179149, 4,
    787         ]),
    788         BigUint::new(vec![
    789             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 2254347839, 3919771391,
    790             2083221487, 1248859317, 2584251500, 2309118643, 2966295632, 530227479, 3941029541,
    791             3829792983, 1331460141, 794511141, 4238539339, 3614639971, 3888520003, 671875281,
    792             1318280390, 1017040504, 4102400675, 3908602649, 3081942537, 3325786435, 2657424156,
    793             2789779288, 2421537869, 1739491396, 234,
    794         ]),
    795         BigUint::new(vec![
    796             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 721329727, 3396839210,
    797             3681663045, 2164575428, 2501982576, 1849109597, 300912659, 2388520714, 1411624874,
    798             2624693519, 167813227, 3136212958, 3590039522, 366933383, 3827298677, 1462508872,
    799             4104316159, 3408037632, 75945980, 142801927, 110906538, 224733420, 3587144888,
    800             2079024206, 1816483967, 3487529667, 12259,
    801         ]),
    802         BigUint::new(vec![
    803             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 3606224447, 2188419014,
    804             1682084083, 3590599894, 890252841, 412438068, 1372266175, 373594701, 3372748264,
    805             2179273181, 4139821800, 3352899463, 3096202992, 4118590511, 1812536094, 933259209,
    806             2398707774, 2707207274, 2998411347, 3811914682, 3520084344, 1714267093, 1063807448,
    807             3971931589, 2091560152, 941864838, 641211,
    808         ]),
    809         BigUint::new(vec![
    810             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 889364031, 2352408643,
    811             2785101230, 1733772378, 434784163, 4073566559, 2380432466, 31602380, 4066003450,
    812             4237626852, 40313701, 575299096, 3781620268, 2441227883, 169978061, 469088410,
    813             4035978047, 1815582963, 950034051, 3187464554, 3077778800, 959496553, 627861401,
    814             1054229804, 2989469638, 476513413, 33536656,
    815         ]),
    816         BigUint::new(vec![
    817             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1037213247, 3876594009,
    818             2266627829, 1919250987, 537147373, 2107714153, 2288848718, 3541705719, 457011493,
    819             1804491592, 2322151177, 1323959538, 2711719661, 3758789829, 2391880189, 1967683422,
    820             1660874094, 762547319, 2152582589, 3218958934, 3364300115, 2092930734, 112375585,
    821             1053460104, 1303864359, 1010650355, 1754045079,
    822         ]),
    823         BigUint::new(vec![
    824             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 592617023, 1467380502,
    825             2920044402, 3863208706, 2968900529, 3891775804, 1937888664, 1517322414, 4079190218,
    826             2261620489, 922271986, 1130329623, 3364875314, 3847148069, 2618495464, 190888988,
    827             3288980521, 966383648, 731142836, 624127045, 1186738324, 1079024412, 4233796097,
    828             3186498315, 2896863071, 2664720291, 1547038600, 21,
    829         ]),
    830         BigUint::new(vec![
    831             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 2341641791, 2690557422,
    832             1657533239, 3963446746, 2703859152, 249614421, 2885391040, 1382595792, 1418129263,
    833             3838274635, 366387568, 576270801, 474192704, 531259356, 3296862651, 3613193853,
    834             3267779581, 1895643517, 2825715628, 2202733356, 130729796, 488623509, 1763848835,
    835             2605511812, 2862954514, 2332937230, 894415183, 1117,
    836         ]),
    837         BigUint::new(vec![
    838             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1452449343, 1146197058,
    839             2863763601, 93635278, 4064052986, 1491278843, 3759242632, 2357543838, 1663095871,
    840             2905572294, 1392422334, 650761418, 970832320, 478005943, 1896661229, 1639868621,
    841             3674871690, 3321586441, 3192994991, 4009230510, 1248211706, 4222945771, 818509991,
    842             1745442306, 3321513893, 2773719933, 1718321319, 58434,
    843         ]),
    844         BigUint::new(vec![
    845             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 3214057023, 1624527164,
    846             3510708953, 572913639, 976867443, 3600176463, 566184589, 202266931, 3799707683,
    847             2676529998, 2657330927, 146625937, 3197015680, 3446603163, 3159890695, 385445176,
    848             985476360, 2726297137, 3136737090, 180444142, 3558697084, 1848158780, 2837294127,
    849             3264483530, 3316877529, 114183317, 1315990856, 3056397,
    850         ]),
    851         BigUint::new(vec![
    852             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1335008831, 2025528607,
    853             2551216052, 1231522767, 1577354711, 2011572376, 3223747309, 1201751868, 3525934298,
    854             2868471710, 1932753307, 2293006463, 3175890606, 310909112, 3878142961, 943828189,
    855             3647227586, 2588718047, 722658033, 4186505903, 685808546, 604140331, 4121595882,
    856             798648471, 3597867602, 1023618253, 2393446371, 159867062,
    857         ]),
    858         BigUint::new(vec![
    859             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 3818036799, 506128897,
    860             3210177243, 2823203764, 3664221334, 92701100, 3929787299, 3240683251, 2162523887,
    861             241905739, 1168759323, 1987737378, 215876082, 2620200269, 766727543, 1367504002,
    862             256654718, 1602659492, 3580579779, 877599467, 3288208776, 403329079, 3503114788,
    863             1822959735, 1853927691, 2913901605, 2974172155, 4067172038, 1,
    864         ]),
    865         BigUint::new(vec![
    866             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 865246783, 2478961165,
    867             2279369525, 1520299851, 1366585487, 1882728022, 4008137538, 1871447639, 3136473970,
    868             3318579424, 872785890, 2718034001, 1178511011, 2797504317, 3859536305, 3499293615,
    869             3699614382, 1622854171, 3883461695, 3549424136, 3601002501, 3866372034, 2873861091,
    870             2935925015, 178042204, 3684726535, 1974077257, 3615893361, 101,
    871         ]),
    872         BigUint::new(vec![
    873             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 2207424063, 287650399,
    874             3981042031, 1021320006, 1997542145, 1279380243, 2113901254, 185032623, 2126737977,
    875             2069376527, 3345854844, 944924203, 1381750296, 3143952166, 2542102859, 3968815518,
    876             1505847453, 392713703, 3301576050, 4089524993, 105444836, 137335223, 2482596656,
    877             3198079093, 1239483262, 1952216162, 3413804971, 1291819903, 5327,
    878         ]),
    879         BigUint::new(vec![
    880             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 59940415, 1811670372,
    881             4069128060, 323976449, 972848863, 4196783059, 2091578826, 4136797996, 2137688135,
    882             2072447942, 3494899784, 3293304898, 3077389977, 3297643560, 4127008437, 906830581,
    883             2345350258, 3830948402, 181768411, 1490075293, 2758544777, 2659560401, 1217847221,
    884             2331559151, 1117191399, 3989967619, 223309308, 236525387, 278677,
    885         ]),
    886         BigUint::new(vec![
    887             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 1472287494,
    888             499807712, 3091974659, 4285256010, 3709032953, 2652354345, 1492839133, 3720959829,
    889             3181700988, 243307285, 2635473859, 3928938903, 1318083514, 3873894276, 3864396159,
    890             4074500574, 3372801244, 4206609721, 195422496, 1336336801, 119286259, 377214804,
    891             3067415634, 3479414776, 849565694, 2893846532, 850758156, 14578400,
    892         ]),
    893         BigUint::new(vec![
    894             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 2943874277,
    895             3085475042, 1945597866, 333623124, 611451271, 623193460, 401877214, 721271982,
    896             1599632279, 2905205146, 2666546460, 1055507639, 2433365035, 2462715959, 571334422,
    897             2536517743, 2916272350, 2556731527, 1027980980, 3685046324, 1363456080, 2137673941,
    898             4179722900, 4282073441, 721763253, 2564496459, 3570344581, 762666481,
    899         ]),
    900         BigUint::new(vec![
    901             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 1688935206,
    902             3475125672, 1130811827, 1933921485, 531309505, 2114739632, 4153679106, 3454868205,
    903             3216657819, 3610045576, 200928018, 667211958, 1718836400, 3546350352, 365452608,
    904             4278360604, 1394651330, 1897113925, 2604987881, 393693183, 2422383856, 2173309089,
    905             2039658552, 1552739446, 1806832201, 202993211, 643893967, 1245681714, 9,
    906         ]),
    907         BigUint::new(vec![
    908             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 69714342,
    909             3572836939, 917813014, 2872424929, 3320167609, 3915314664, 2158359498, 4096929447,
    910             1758773917, 786611217, 775992986, 2828036016, 1548582321, 3515773534, 1812941543,
    911             2323394627, 2767537218, 1984982431, 1938557130, 2280845712, 2129545450, 33303255,
    912             3422157941, 2567101694, 2032365961, 287136117, 218347635, 205070838, 486,
    913         ]),
    914         BigUint::new(vec![
    915             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 937253082,
    916             3145851772, 399354380, 3966343270, 166744482, 268238601, 3920682663, 2684648910,
    917             3319860812, 3123677841, 3438421899, 1745377561, 2255572901, 750005822, 2952830203,
    918             3372110582, 185116763, 2002594349, 2433711601, 4063410951, 2286486142, 1772751515,
    919             3216019658, 4000395493, 4000253346, 789132859, 1524346577, 3799756468, 25430,
    920         ]),
    921         BigUint::new(vec![
    922             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 504488298,
    923             3203478147, 623275496, 484461782, 1186077606, 1635005427, 3292075576, 2904368173,
    924             3518426662, 181481468, 1620487576, 425716765, 604055179, 805684953, 805173333,
    925             3762705229, 2028717707, 801243590, 2881187444, 846270972, 3082213948, 1607262303,
    926             1052034558, 157330487, 100016280, 3992222713, 1068806644, 2968059137, 1330568,
    927         ]),
    928         BigUint::new(vec![
    929             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 1637897530,
    930             1176690152, 2518524412, 1571689290, 564727034, 2889640772, 189920587, 971299436,
    931             197455917, 506450197, 314150642, 2142474017, 1145233556, 2799889119, 149868198,
    932             1878569113, 2059335395, 1444099206, 3839586651, 278212380, 1911724378, 3294879169,
    933             3920817795, 858717088, 3156125105, 3400670886, 2237009409, 266827588, 69615850,
    934         ]),
    935         BigUint::new(vec![
    936             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3711670458,
    937             1859501024, 3610388180, 946947779, 188562960, 1743243970, 1574884712, 226401137,
    938             1143881879, 4062190916, 229671045, 2229726790, 999524008, 1316690469, 4167061421,
    939             2498109216, 4190372998, 879299639, 2242805718, 497842390, 1722101840, 3774019732,
    940             4234321243, 3960322840, 2849777158, 2529803791, 1822070296, 4066700810, 3642286032,
    941         ]),
    942         BigUint::new(vec![
    943             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 2981418234,
    944             692167403, 1848601396, 1851033287, 3082881006, 3029106926, 1056224599, 1747081078,
    945             2663632879, 154522774, 2209597776, 2772758834, 3547012403, 2334215292, 3375366183,
    946             457373055, 1042267069, 1683395470, 3464887484, 3950738381, 2895002845, 3347042372,
    947             2078125748, 4255125750, 2065510086, 4099872968, 2407024158, 1480172293, 1582961262, 44,
    948         ]),
    949         BigUint::new(vec![
    950             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 4125018106,
    951             1266788247, 1827479118, 2740028768, 2177761845, 4240657249, 2664765720, 2699426397,
    952             3614214301, 1454649263, 4133484154, 3036887598, 2683101280, 3074486753, 835341147,
    953             3368320629, 1229459788, 452669746, 56808418, 1624613901, 4220917568, 2053078848,
    954             2242861251, 3442203080, 3939617165, 3443289142, 614889031, 3317401451, 1303453973,
    955             2321,
    956         ]),
    957         BigUint::new(vec![
    958             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 4144259322,
    959             510494920, 1764954127, 83312554, 3748961014, 313729141, 1602272849, 1269321234,
    960             2686911170, 490015867, 1664750701, 2562471748, 3259156338, 2516500245, 1735770725,
    961             663832606, 3550903612, 581616448, 2323885727, 1028803259, 1389737432, 2800431785,
    962             4132179859, 1971645827, 1316284844, 589480419, 3424138973, 4047738950, 1015097954,
    963             121446,
    964         ]),
    965         BigUint::new(vec![
    966             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 187486458,
    967             3948427707, 2684007304, 2019110728, 297954, 19026412, 2220806674, 2961165664,
    968             2731046581, 2226946501, 99313115, 2011440358, 2223279933, 3825085095, 1243730519,
    969             1520855745, 753516187, 3495541403, 1121681341, 2249905758, 1470892432, 2528006013,
    970             2635297570, 1569210250, 820756082, 4161553654, 3820200787, 2695080773, 1601345601,
    971             6353776,
    972         ]),
    973         BigUint::new(vec![
    974             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 1594270970,
    975             1659758811, 2150372209, 203424308, 1450821561, 1840071673, 2158310511, 1256614075,
    976             852448241, 2516168341, 1280629025, 3243030782, 866104124, 3526173307, 2529026022,
    977             3647096254, 1307891285, 2747650692, 1894152882, 3020927393, 1257295519, 2541719605,
    978             753092931, 1207937333, 406183594, 3734804116, 4235922774, 294736150, 3803850933,
    979             332411224,
    980         ]),
    981         BigUint::new(vec![
    982             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 2138862842,
    983             1291938968, 1063251815, 3170601015, 2671654210, 113890197, 2650092083, 2105084901,
    984             2357022675, 1649775569, 2595302470, 1910508674, 1571126118, 3725528327, 2509219534,
    985             1328702106, 2413808307, 1504672593, 3563655142, 909319039, 3320511195, 778354275,
    986             1567520491, 2609521647, 1419322921, 3424589238, 1666238921, 247329657, 2462539832,
    987             210767815, 4,
    988         ]),
    989         BigUint::new(vec![
    990             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 531219706,
    991             593478036, 450119827, 3749065210, 2086394584, 2910876912, 614108214, 4115375801,
    992             44864403, 2006634342, 1680960375, 3812244716, 1231206091, 4257658636, 3572109458,
    993             1925186103, 1437593381, 283293330, 2722021809, 1726475417, 337402759, 2228226360,
    994             2318797623, 3821440697, 3602072373, 2563060900, 3870061838, 2190672447, 3834326569,
    995             3573601848, 211,
    996         ]),
    997         BigUint::new(vec![
    998             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 1087128826,
    999             981452571, 2880291694, 690450234, 2453641974, 3692566137, 598633614, 3877527001,
   1000             768346722, 3382159864, 161950338, 2269297588, 2586046528, 1220588270, 1193232140,
   1001             2163563226, 643752406, 1617927903, 3402316016, 682532534, 2135929957, 2020237801,
   1002             42718290, 1243975999, 65815584, 2766923586, 3228600988, 508222157, 2234744696,
   1003             649167307, 11082,
   1004         ]),
   1005         BigUint::new(vec![
   1006             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 2231534842,
   1007             2016029098, 2102547670, 3923335417, 1984901852, 350880092, 2844195792, 458613143,
   1008             275085070, 4008059670, 925677591, 264491974, 3331668198, 909553008, 1056346490,
   1009             4172757287, 2231906487, 3027579414, 2137629704, 3313017339, 3340434766, 3868134082,
   1010             3178418324, 1989113004, 2491891383, 3924450077, 1227802997, 1133757557, 4201533026,
   1011             1655299608, 579766,
   1012         ]),
   1013         BigUint::new(vec![
   1014             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 453608698,
   1015             2974240311, 4190540419, 1410368863, 833699122, 3566653284, 1221166785, 2701860513,
   1016             4209709410, 134442109, 3051903255, 723203335, 3738552855, 3445694436, 1098450603,
   1017             3456666556, 2312759672, 390733580, 1065635372, 3833332957, 1784038691, 365685078,
   1018             4203571811, 3960413215, 2644005498, 1308680782, 2528127772, 2922357531, 2538871130,
   1019             89406648, 30330440,
   1020         ]),
   1021         BigUint::new(vec![
   1022             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 1870300410,
   1023             3519987679, 1785307871, 2076018399, 2631762895, 3337063364, 2197180164, 1044451958,
   1024             3461946801, 2428986168, 3118024345, 1762268358, 231516531, 822067348, 1654625105,
   1025             2372345571, 2157667181, 2651495586, 2166886651, 3634216025, 92645252, 1757253515,
   1026             193416704, 2676968478, 102624486, 1554339635, 601848384, 2183691411, 83598378,
   1027             1020113734, 1586723574,
   1028         ]),
   1029         BigUint::new(vec![
   1030             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 265979130,
   1031             121455263, 2188672198, 3408550078, 2397184039, 2427373929, 3201791133, 2777668048,
   1032             1115407813, 3103231190, 3537501048, 760881182, 1284277906, 3353426689, 1853209179,
   1033             396964304, 1239487750, 1277749024, 1370670850, 3779603290, 1520771030, 140592522,
   1034             1810338136, 3929439595, 4176243011, 561601281, 3519529757, 3757993485, 3139295079,
   1035             1630853870, 1403800759, 19,
   1036         ]),
   1037         BigUint::new(vec![
   1038             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3394143482,
   1039             2100488124, 3706196543, 4119429252, 943109685, 1644436876, 2936915684, 3287021127,
   1040             3957754123, 1028688673, 2578375259, 2520030764, 530159313, 3457850287, 1263475043,
   1041             607228571, 1147164734, 3334565589, 2049984080, 2117393090, 224359410, 4143333089,
   1042             29920363, 3675525811, 2314357996, 2934312505, 589492290, 890888488, 1586529790,
   1043             1388279943, 267009447, 1011,
   1044         ]),
   1045         BigUint::new(vec![
   1046             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 1029604602,
   1047             1300955315, 1830990254, 1970899103, 1916726520, 3486386395, 1053589970, 2175764065,
   1048             2379095055, 754945042, 531625132, 4014252696, 3829929750, 2474352983, 189287338,
   1049             1723055400, 1365757113, 3099920986, 3432163066, 1799736303, 3216463597, 434456139,
   1050             1543423970, 3109762217, 3137941216, 509720093, 1827337688, 720424945, 2707331184,
   1051             816691531, 1092968965, 52892,
   1052         ]),
   1053         BigUint::new(vec![
   1054             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 2083423482,
   1055             2505415884, 3212144860, 710902257, 3320088221, 3147567479, 3091994784, 4201390360,
   1056             4143787420, 1074850321, 2060158878, 3635644273, 4179910906, 2722055679, 2939194020,
   1057             2466925622, 202688522, 372284267, 3277804064, 3401490865, 1773346774, 506145463,
   1058             1388421892, 3493417405, 20233904, 3395525644, 4196390909, 1444793471, 3972498474,
   1059             1443159463, 745252462, 2766966,
   1060         ]),
   1061         BigUint::new(vec![
   1062             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 2645460218,
   1063             2086822908, 2707204293, 1114209013, 825850397, 873488971, 2792723373, 36856421,
   1064             3667233282, 1582246548, 651520439, 1928100686, 474104159, 2536694282, 2452371321,
   1065             2833948873, 2693133614, 1565755751, 1806845266, 3169331798, 2417037154, 3779543345,
   1066             1304854875, 3783283689, 507107699, 299935788, 4261007077, 4249521952, 797303627,
   1067             2793347355, 243877443, 144748256,
   1068         ]),
   1069         BigUint::new(vec![
   1070             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 770606330,
   1071             2264804, 329439611, 2332764211, 3451269867, 1927897295, 3114736445, 3016443594,
   1072             1060032281, 82130215, 1783271780, 3996233488, 2763222839, 1195102010, 3973812197,
   1073             3274054474, 1182302338, 1246796164, 1177746551, 227103909, 22573863, 514858324,
   1074             1220606725, 1982433693, 3507357714, 1424442578, 2527561086, 2442928632, 1529612946,
   1075             3953493533, 4285474694, 3277208968, 1,
   1076         ]),
   1077         BigUint::new(vec![
   1078             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 1223591162,
   1079             2982394804, 2895911336, 367523356, 2047351792, 371938123, 1378078781, 873612867,
   1080             3202209579, 1262032369, 714144373, 3437733071, 602639567, 3984064747, 612978490,
   1081             3471864183, 674481286, 1394271724, 1763826443, 2990163968, 3301989925, 614316342,
   1082             37291547, 1513490987, 4181721666, 449071607, 3349264364, 4080788191, 992432549,
   1083             110857720, 2412516358, 982433320, 92,
   1084         ]),
   1085         BigUint::new(vec![
   1086             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 300844282,
   1087             2307493123, 2055145423, 1171144040, 2971339012, 869159436, 4016520557, 2700899514,
   1088             1661166827, 1912303342, 936071126, 2875533686, 3868206806, 2282746627, 2149397043,
   1089             4175901529, 1080663404, 1982433417, 1398961609, 2644130322, 1226711637, 2742866472,
   1090             245919861, 1192438573, 796345551, 1845430816, 4013717915, 1845523693, 219966706,
   1091             15237374, 1933961567, 2987494186, 4824,
   1092         ]),
   1093         BigUint::new(vec![
   1094             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 1643021562,
   1095             1920281417, 1446539515, 672005290, 1339606105, 1060185642, 2928538624, 1412353665,
   1096             502198486, 1114659620, 2915704511, 2151278059, 2021357877, 3160496898, 2352263002,
   1097             1249509765, 4146969416, 1655382877, 4172807454, 20332050, 3769739973, 2432429984,
   1098             1945135808, 620977496, 3648234946, 1743994192, 2945771402, 2947990629, 3617215824,
   1099             3994616034, 552805990, 3762013631, 252389,
   1100         ]),
   1101         BigUint::new(vec![
   1102             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 1978565882,
   1103             2524960146, 4193922506, 4076590529, 2516223737, 391695821, 2190762613, 522673139,
   1104             1987128608, 440254412, 2807372635, 359959156, 3737477879, 2747000479, 581553201,
   1105             2511797953, 702434943, 2652697923, 3695193898, 3613772647, 1816774943, 2722879248,
   1106             2302144282, 3030219558, 3287548153, 218079512, 3420566846, 1009458358, 935580230,
   1107             1506862800, 4272011209, 2867187996, 13202995,
   1108         ]),
   1109         BigUint::new(vec![
   1110             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3320743162,
   1111             948343474, 3405636809, 4014767551, 2612885443, 3972612845, 824281737, 4137837656,
   1112             414658304, 1027983595, 1814268684, 1190496019, 2283765592, 2254837733, 1402998045,
   1113             3229446146, 2921499078, 1872277523, 40810166, 1881592946, 1676856550, 4237240479,
   1114             954097323, 3540364155, 2427558438, 4097986023, 1876897108, 2259500003, 410781233,
   1115             47810089, 1460850268, 3796693287, 690671804,
   1116         ]),
   1117         BigUint::new(vec![
   1118             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 367953146,
   1119             1947178011, 857303701, 4252140757, 2685473375, 170237623, 681228584, 2546374475,
   1120             647727024, 574155167, 3835998138, 3156977392, 1377964963, 879242026, 2397433252,
   1121             3151903944, 321716629, 2915001872, 2034067052, 4197479390, 239762274, 411187050,
   1122             1913498586, 1999752094, 3974430733, 3337922549, 3113592958, 2973554659, 262245046,
   1123             3390159210, 3748777389, 3567389094, 1770416790, 8,
   1124         ]),
   1125         BigUint::new(vec![
   1126             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 2515436794,
   1127             1967278043, 2104607690, 2279407792, 4042270982, 2493824756, 2093025952, 3057235161,
   1128             1947246360, 2051169369, 148967671, 2639851938, 447496030, 1169299488, 2272991543,
   1129             2665184954, 859991147, 2025887591, 1226166406, 1287398010, 3430001396, 89366649,
   1130             4067196564, 961555706, 1728104225, 3397127484, 4040801740, 2318882210, 3672174130,
   1131             1476555222, 3748652491, 797956256, 236712014, 440,
   1132         ]),
   1133         BigUint::new(vec![
   1134             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1135             3412268069, 1023086602, 2026210508, 2948640365, 1990377411, 3418447020, 2628410977,
   1136             1991879622, 3672905839, 1223731781, 2017025521, 2737855981, 2257171014, 890828011,
   1137             2761812033, 1866749028, 3636324627, 776987488, 3662393815, 1860335431, 3546671068,
   1138             559330021, 3174795765, 244385001, 399604355, 141731703, 1407315466, 3798132614,
   1139             2901035943, 3891090695, 2549732229, 3844051172, 23019,
   1140         ]),
   1141         BigUint::new(vec![
   1142             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1143             2287539796, 4275088352, 2524788671, 428301997, 3800466684, 3002290381, 589736055,
   1144             1142130780, 373738384, 3768739486, 2628080437, 2388674081, 2423831981, 2386510872,
   1145             3309501747, 3119841775, 3519820, 4127203326, 2410571999, 3790961085, 393878211,
   1146             1807298400, 787387858, 3771609922, 2083085827, 3431083982, 1779441946, 1173778119,
   1147             2530463497, 102816871, 3379839254, 3462765990, 1204200,
   1148         ]),
   1149         BigUint::new(vec![
   1150             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1151             1761281781, 1175965788, 1954342487, 1084525753, 3257851189, 1650471046, 589323451,
   1152             1708627683, 2913630328, 327508870, 65450921, 387930981, 868838718, 1131223535,
   1153             2045168060, 2182484972, 1305171510, 3513059695, 2783764003, 1352841236, 4223790765,
   1154             2355760065, 1705130248, 2408827385, 1032430657, 2597771791, 2207430797, 1314791031,
   1155             2272867397, 3418340483, 4056746188, 2275032614, 62993239,
   1156         ]),
   1157         BigUint::new(vec![
   1158             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1159             1809340725, 535748848, 2651279796, 2972702886, 3798816580, 1689558595, 2563380497,
   1160             2676026999, 735820630, 506791325, 3000489346, 1796919308, 3526045192, 486243855,
   1161             372489664, 1906228610, 3800714730, 1747845295, 2957993825, 668549798, 2621876870,
   1162             407136765, 591566264, 2632073022, 1636313827, 891821689, 2281824154, 1923313633,
   1163             958388250, 1285318798, 1658461377, 856491293, 3295251525,
   1164         ]),
   1165         BigUint::new(vec![
   1166             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1167             2712792809, 3658590250, 1894120586, 698265268, 1162171068, 870321121, 3815695773,
   1168             1680991420, 4253709444, 648283645, 1126625410, 3601123345, 2808686883, 1180925142,
   1169             807407113, 560604794, 4237259425, 1207497088, 484611426, 2618666933, 3408262350,
   1170             2884145631, 1261484694, 700732417, 2424618666, 267590588, 747041969, 769087774,
   1171             4178986315, 138609815, 2888997761, 3066983590, 579742411, 40,
   1172         ]),
   1173         BigUint::new(vec![
   1174             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1175             651758713, 3906043406, 2548994640, 2228757432, 2121881214, 472348093, 878530644,
   1176             971248989, 2081688077, 1949321364, 2647657092, 1107849908, 3882250508, 1952827114,
   1177             859336559, 744223792, 3992135533, 68806754, 2609188276, 4080249809, 297055681,
   1178             885074930, 2678708362, 3615821021, 2182633519, 760522724, 3081526858, 2240134876,
   1179             3574753748, 1020578834, 4050681264, 124268560, 2177028858, 2099,
   1180         ]),
   1181         BigUint::new(vec![
   1182             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1183             587036233, 3067701272, 1697918617, 3416744348, 957762033, 2784479345, 3660801700,
   1184             2341257627, 2870220782, 3127255235, 1850426667, 2590711144, 193256504, 3092252746,
   1185             858791940, 3195757850, 2789572728, 2250403466, 4223626301, 883283817, 343136822,
   1186             754616125, 4172822213, 377411409, 3910770529, 1514450968, 868753818, 333097290,
   1187             2246022828, 2503075601, 462100262, 282524657, 2620007649, 109827,
   1188         ]),
   1189         BigUint::new(vec![
   1190             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1191             1716843977, 2406245462, 4100164558, 730871533, 2076274051, 1849094521, 441146666,
   1192             463301781, 1449951415, 2543043405, 2506092364, 2186797030, 4026578175, 3937378246,
   1193             698864271, 604408052, 870457054, 3903374973, 1022854923, 4281001692, 279067829,
   1194             3748974629, 1724584816, 814693658, 848422032, 2238904762, 3671458914, 4166573676,
   1195             2052797806, 200140248, 1816868384, 1300920824, 3180657116, 5745209,
   1196         ]),
   1197         BigUint::new(vec![
   1198             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1199             1266702857, 1726163715, 1868411348, 3369952439, 3242131435, 1534222815, 2135626846,
   1200             3416782314, 2087636967, 1971732998, 3841794106, 322082412, 2445768432, 604649625,
   1201             1736128197, 2376764098, 2774390933, 1146681592, 677359293, 1813892062, 968415609,
   1202             1576242251, 3798010013, 3827678188, 902520545, 2549131665, 3909779088, 1506236052,
   1203             2938795369, 485390229, 2269504120, 2792821107, 3274905154, 300538757,
   1204         ]),
   1205         BigUint::new(vec![
   1206             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1207             2249628937, 685687495, 2193556864, 849482254, 1892955482, 2678790792, 3215816948,
   1208             3418405555, 4263405829, 2982365918, 3251176925, 1827020223, 3699084302, 4097605129,
   1209             1965684458, 4076326152, 1772127055, 3933922126, 479474035, 1840427833, 3012899581,
   1210             3831069482, 3298156499, 4038576278, 2408364303, 4056410551, 2104476906, 193784559,
   1211             3125211841, 1505789080, 2696864045, 827610944, 2518243838, 2836651081, 3,
   1212         ]),
   1213         BigUint::new(vec![
   1214             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1215             4184643081, 1410986433, 1843600019, 2400675340, 929523537, 2459688753, 947275637,
   1216             3237179039, 4130345007, 3653734165, 2190755476, 4082624876, 758859577, 215491460,
   1217             3989305297, 2894966395, 1376384020, 4106882930, 292746535, 2711172166, 2768244740,
   1218             146454730, 2700634288, 2811878475, 406039235, 3376346153, 2204857609, 1752048742,
   1219             2908338330, 2827562179, 2659032057, 2206054502, 795376852, 2075947017, 191,
   1220         ]),
   1221         BigUint::new(vec![
   1222             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1223             1298712073, 2201636989, 3613796443, 3750533912, 813399020, 2846080568, 232014587,
   1224             2397968910, 1395889404, 2894036997, 2880261938, 2445503214, 1309873853, 705309998,
   1225             3769805381, 3352712840, 1793952063, 2039983215, 4181620852, 3563741840, 3416348297,
   1226             3870361186, 3297272487, 740951942, 3216429413, 493979526, 3749505290, 2611250942,
   1227             2114114653, 832062692, 3217332227, 580286736, 2603067450, 3236710367, 10016,
   1228         ]),
   1229         BigUint::new(vec![
   1230             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1231             3390642697, 3721599337, 871664873, 2911612331, 1048817226, 2119214535, 3867031815,
   1232             713033506, 1637429796, 146757919, 604782956, 3611789462, 1105349601, 8293620,
   1233             1235958732, 4107004201, 22662698, 4227745661, 615330606, 3555602145, 2758006042,
   1234             1871034164, 1089875898, 3010016080, 3984027314, 1148724871, 2505171071, 2916506843,
   1235             2063038348, 1635052446, 1554832576, 3305290580, 1432708148, 3316934573, 523990,
   1236         ]),
   1237         BigUint::new(vec![
   1238             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1239             757328393, 3614386048, 612921981, 3671275341, 229647166, 922873307, 4264649519,
   1240             1719555435, 2266736286, 1533889711, 2441905738, 280079152, 828611854, 3201843831,
   1241             3602591324, 280090900, 1469826922, 1875299088, 3069200698, 3724633479, 1990993253,
   1242             4183411048, 2801573192, 3331946271, 3218951071, 3335901655, 2490262384, 3495191922,
   1243             3995041812, 142479205, 912525419, 1349100142, 3879969713, 1156441875, 27410757,
   1244         ]),
   1245         BigUint::new(vec![
   1246             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1247             2670148105, 4062893077, 1020178806, 3590763106, 340483064, 735422676, 2016484003,
   1248             123165102, 335678566, 2404537076, 3105061293, 262388713, 346139379, 4279497998,
   1249             4229372948, 1689322293, 2741425721, 679181659, 3127270803, 4076916912, 754865685,
   1250             3412746642, 1580171686, 983324276, 1665980275, 3530216836, 4061821633, 665902558,
   1251             4257628544, 1810364691, 4287621734, 682959171, 1988619710, 3911294335, 1433901286,
   1252         ]),
   1253         BigUint::new(vec![
   1254             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1255             3859134985, 335331068, 49729055, 2180659011, 2028716409, 698050378, 1054422637,
   1256             118763064, 3248361728, 4170950490, 1271907245, 2427996554, 3295652926, 3972266060,
   1257             417838330, 3974975679, 196215687, 1069744590, 3392617455, 3081697941, 2439553383,
   1258             3952135723, 1301176694, 3409091030, 1929659121, 429183607, 3113036387, 2212349291,
   1259             2869725706, 2012444045, 9727018, 4144199701, 3596901873, 584228079, 1995418814, 17,
   1260         ]),
   1261         BigUint::new(vec![
   1262             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1263             1944320521, 1623163986, 628812511, 3164503401, 3895298003, 1054018629, 340174001,
   1264             3153318879, 3928889269, 885285768, 3997011857, 1566203560, 1265094257, 2802058726,
   1265             1331675844, 2827468672, 3060230221, 948837327, 1325629880, 2200958864, 1888334393,
   1266             625826929, 2768815320, 2019796144, 3120134802, 1259302831, 758014572, 4152415859,
   1267             4121411433, 4104878577, 4050987119, 4003867353, 365502017, 3906849072, 2599511236, 913,
   1268         ]),
   1269         BigUint::new(vec![
   1270             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1271             2855991817, 3606270125, 3181925397, 1257739756, 1915489712, 4000844533, 2935459934,
   1272             3199937223, 585493537, 2183742943, 4127321345, 2262180642, 3815400108, 2289695961,
   1273             2815189647, 4136674591, 4257830634, 1089901505, 2531093721, 2877560724, 3445987330,
   1274             1090531247, 2485278853, 443621013, 801806268, 1637665528, 206526733, 142888530,
   1275             215304120, 562513453, 1670416775, 769471011, 2404374923, 1720644795, 2109662988, 47792,
   1276         ]),
   1277         BigUint::new(vec![
   1278             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1279             2232154633, 1896409237, 2365622837, 3265658089, 2304950344, 629781221, 2808696483,
   1280             3607626459, 1613690854, 3240893670, 2034809217, 3701333687, 4019267560, 2934788607,
   1281             1000006471, 841934072, 3804698306, 1028929358, 37860002, 2667482229, 2989744713,
   1282             1734489179, 3783538269, 3966691719, 1370314139, 3520981926, 4001410774, 3344358977,
   1283             422292633, 3797056842, 4224698104, 2178099822, 2363633118, 840586894, 2027155544,
   1284             2500125,
   1285         ]),
   1286         BigUint::new(vec![
   1287             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1288             19659273, 3220260405, 219408304, 2653515606, 2382656772, 1175565998, 4236323019,
   1289             945581179, 2684487750, 2728069737, 1760710078, 3383293733, 225823767, 2592633266,
   1290             2575153034, 1843036524, 2188424523, 2242423936, 1053404805, 1099379566, 3683175185,
   1291             2856152948, 560129007, 2365107635, 4126904878, 2478475286, 3985790097, 2156013108,
   1292             4114005084, 3855494087, 1718783362, 2995569012, 3215050506, 3538134199, 1735144505,
   1293             130787134,
   1294         ]),
   1295         BigUint::new(vec![
   1296             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1297             2854222345, 327624114, 3930972968, 3338609940, 4160100491, 1369247557, 336580958,
   1298             3829711641, 2260926043, 3169241416, 1890583300, 1600428045, 2513137876, 2569532300,
   1299             1153079777, 2076762262, 1991046151, 2097142034, 3767179424, 2482412768, 1617290924,
   1300             1831653476, 2536667053, 2459756649, 3342948645, 1411557415, 1984219451, 1838558342,
   1301             2101966663, 4061975165, 3145853166, 3246339919, 1163935729, 1811615434, 902266163,
   1302             2546816526, 1,
   1303         ]),
   1304         BigUint::new(vec![
   1305             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1306             842005001, 355176350, 2114974833, 494686742, 2433365255, 3877574949, 2315539152,
   1307             876546272, 600231499, 611489188, 1562884203, 1619233555, 238670040, 278329366,
   1308             253541034, 2893307126, 3022623747, 3858635470, 3361253054, 1047785714, 760632267,
   1309             3451717120, 2363692180, 1104748202, 887485704, 4216544507, 666010480, 340335913,
   1310             2196648833, 1519847578, 3079887219, 2197423964, 2161700369, 828284167, 2924785644,
   1311             1428498487, 83,
   1312         ]),
   1313         BigUint::new(vec![
   1314             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1315             654309897, 1694660860, 53644162, 719830500, 1346144126, 673702875, 1861379378,
   1316             1248111153, 88483473, 1214871104, 760018784, 748015845, 3920112330, 1451106470,
   1317             2416521600, 139673472, 1631116243, 3635739447, 2140639545, 747719032, 4103149476,
   1318             2448347463, 1918631311, 1045764051, 3937222717, 3527506827, 3791575540, 1130257547,
   1319             1111955208, 3781906601, 1655764382, 546384510, 540931477, 692596877, 4183948736,
   1320             1491597320, 4359,
   1321         ]),
   1322         BigUint::new(vec![
   1323             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1324             2222979593, 4061094889, 953466330, 4164056915, 2681813943, 3111113686, 3324352345,
   1325             1740781125, 871329561, 3511837688, 2785070824, 2608723999, 167310482, 3357531027,
   1326             3336475205, 1743224291, 1506125517, 1464703126, 3570815192, 1479890140, 1467987273,
   1327             2535695435, 4011119207, 34118114, 2909809094, 2708212011, 3619957842, 3819607067,
   1328             551243015, 4243601098, 2181644241, 4199986351, 3438670995, 1047519114, 3252714832,
   1329             2109756729, 228049,
   1330         ]),
   1331         BigUint::new(vec![
   1332             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1333             1019214345, 3495330614, 3276646235, 2917694430, 202635504, 3127232740, 3096620825,
   1334             2422150918, 2598217057, 2312710030, 1794242995, 3114292296, 4187839285, 2679606467,
   1335             2363551913, 2720666805, 2294334399, 3171297205, 2597289631, 4007201490, 241513290,
   1336             487844326, 159657130, 2759576089, 3694698832, 1216640832, 4275866767, 2977309375,
   1337             1545701229, 3060587272, 1164198153, 2925687791, 153485005, 3909822127, 756091994,
   1338             2803779685, 11929927,
   1339         ]),
   1340         BigUint::new(vec![
   1341             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1342             2814376457, 2640877314, 546262917, 2038320337, 4134503216, 6312622, 3742317570,
   1343             2818695184, 1883758307, 1936304904, 940198419, 2574351302, 4202998030, 2096070289,
   1344             1919640665, 3365064531, 2402066125, 3392759355, 808613323, 3281727309, 4218506968,
   1345             1288863240, 2317106034, 1550598984, 3398356838, 2885063453, 967415299, 1655572686,
   1346             311025610, 1003926595, 2301518401, 335703777, 1059867251, 2301363583, 1843601789,
   1347             1172249251, 624090442,
   1348         ]),
   1349         BigUint::new(vec![
   1350             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1351             3502242313, 1804007453, 1735714352, 613223925, 1030198935, 952721098, 2082843195,
   1352             2734934294, 3842351295, 831495393, 1110138176, 466303268, 3623141358, 1647759366,
   1353             1128907386, 3234636962, 3317881823, 661273616, 2610082853, 2328028526, 481010401,
   1354             3758025887, 3642284429, 2122902860, 1662465428, 3875062690, 2381397737, 1723696361,
   1355             1080501446, 2606552252, 1487821436, 58750251, 3599280126, 2261211288, 4119403670,
   1356             2613793840, 2583351593, 7,
   1357         ]),
   1358         BigUint::new(vec![
   1359             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1360             3770677769, 4049516327, 1450027359, 4002593979, 3413012441, 1624438220, 898545018,
   1361             2498016501, 4137840039, 1065606392, 1492184036, 3226447526, 944013522, 3559656857,
   1362             1179750270, 2389232650, 3467392352, 2728744532, 1465630338, 1488576798, 54611393,
   1363             3518420558, 2772448600, 1309221855, 2829832393, 1606212912, 2057808156, 2116635731,
   1364             3963120029, 2007695148, 1941388729, 1486623309, 1416380476, 510649109, 571816553,
   1365             2275852204, 2826859509, 397,
   1366         ]),
   1367         BigUint::new(vec![
   1368             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1369             1958738441, 4284300983, 3080186296, 2744787675, 1702526358, 374933851, 2837853614,
   1370             1077815519, 2215259023, 145245666, 549730322, 1889984953, 2172093180, 1553664732,
   1371             1369083690, 2494515454, 3176957800, 2566989312, 2807639888, 3857504457, 3760142116,
   1372             1535230380, 2027375774, 999441160, 2895617276, 2294641768, 3499880006, 3499376604,
   1373             3713739526, 970936659, 4088926661, 3785432868, 3449522887, 1980098243, 2319665041,
   1374             2860149894, 3536548067, 20802,
   1375         ]),
   1376         BigUint::new(vec![
   1377             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1378             3300915721, 115578348, 1790222711, 1858434925, 4115884344, 1661122603, 3566611261,
   1379             540903953, 3108944241, 3649809669, 1068275229, 486997643, 886790309, 1831002139,
   1380             2594785146, 23978661, 576512999, 3811470156, 3874159424, 2484542501, 3745592469,
   1381             329497784, 2078580168, 2837461864, 3992415299, 91937857, 415278725, 1129439873,
   1382             2753976754, 3981038028, 4127738104, 4170126886, 3452333906, 3051709874, 3061052331,
   1383             1878810143, 2918565786, 1088266,
   1384         ]),
   1385         BigUint::new(vec![
   1386             375288404, 2460223985, 1334358771, 2543621408, 2519466280, 1133682239, 3589178618,
   1387             348125705, 1709233643, 958334503, 3780539710, 2181893897, 2457156833, 3204765645,
   1388             2728103430, 1817547150, 3102358416, 444185044, 3659003776, 10341713, 306326206,
   1389             1336386425, 3942332649, 2036577878, 2460939277, 3976861337, 2101094571, 2241770079,
   1390             2667853164, 3687350273, 109356153, 3455569358, 2333076459, 2433207896, 1553903141,
   1391             2621943843, 4223295645, 1753858368, 130924388, 965594304, 3942586845, 1573844087,
   1392             4237886128, 481383133, 56931017,
   1393         ]),
   1394     ][251 - dom.len().get() as usize]
   1395         .clone()
   1396     // #![feature(int_roundings)]
   1397     // use num_bigint::BigUint;
   1398     // use std::fs::File;
   1399     // use std::io::{BufWriter, Write};
   1400     // fn main() {
   1401     //     let mut writer = BufWriter::new(
   1402     //         File::options()
   1403     //             .read(false)
   1404     //             .write(true)
   1405     //             .create_new(true)
   1406     //             .open("/home/zack/cards")
   1407     //             .unwrap(),
   1408     //     );
   1409     //     writer.write_all(b"    [").unwrap();
   1410     //     let mut count = BigUint::new(Vec::new());
   1411     //     // We only count proper subdomains which means
   1412     //     // the max length of a domain is 252.
   1413     //     // We dont count proper subdomains of the root domain,
   1414     //     // so the minimum length is 2.
   1415     //     for i in 2usize..=252 {
   1416     //         for j in i.div_ceil(64)..=i / 2 {
   1417     //             count += a_restricted_comp(i, j);
   1418     //         }
   1419     //         writer
   1420     //             .write_fmt(format_args!(
   1421     //                 "BigUint::new(vec!{:?}), ",
   1422     //                 count.to_u32_digits()
   1423     //             ))
   1424     //             .unwrap();
   1425     //     }
   1426     //     writer
   1427     //         .write_all(b"][251 - dom.len().get() as usize].clone()")
   1428     //         .unwrap();
   1429     // }
   1430     // fn poly_expand(left: &[BigUint], right: &[BigUint], n: usize) -> Vec<BigUint> {
   1431     //     let mut prod = vec![BigUint::new(Vec::new()); usize::min(n + 1, left.len() + right.len() - 1)];
   1432     //     for i in 0..usize::min(left.len(), n + 1) {
   1433     //         for j in 0..usize::min(right.len(), n + 1 - i) {
   1434     //             prod[i + j] += &left[i] * &right[j];
   1435     //         }
   1436     //     }
   1437     //     prod
   1438     // }
   1439     // fn a_restricted_comp(n: usize, k: usize) -> BigUint {
   1440     //     let init = {
   1441     //         let start = usize::max(2, (n + 64).saturating_sub(64 * k));
   1442     //         let end = usize::min(64, n + 2 - (2 * k));
   1443     //         let mut tmp = Vec::with_capacity(end + 1);
   1444     //         for _ in 0..start {
   1445     //             tmp.push(BigUint::new(Vec::new()));
   1446     //         }
   1447     //         for _ in start..=end {
   1448     //             tmp.push(BigUint::new(vec![1]));
   1449     //         }
   1450     //         tmp
   1451     //     };
   1452     //     let mut two_power = 1;
   1453     //     let mut two_powers = Vec::<(Vec<BigUint>, usize)>::with_capacity(7);
   1454     //     let mut k_copy = k;
   1455     //     while k_copy > 0 {
   1456     //         if (k_copy & two_power) == two_power {
   1457     //             let (mut two_power_start, mut two) = two_powers
   1458     //                 .last()
   1459     //                 .map_or_else(|| (init.clone(), 1), |t| (t.0.clone(), t.1));
   1460     //             while two < two_power {
   1461     //                 two_power_start =
   1462     //                     poly_expand(two_power_start.as_slice(), two_power_start.as_slice(), n);
   1463     //                 two <<= 1;
   1464     //             }
   1465     //             two_powers.push((two_power_start, two_power));
   1466     //             k_copy -= two_power;
   1467     //         }
   1468     //         two_power <<= 1;
   1469     //     }
   1470     //     let mut iter = two_powers.into_iter();
   1471     //     let init = iter.next().unwrap().0;
   1472     //     iter.fold(init, |prev, cur| {
   1473     //         poly_expand(cur.0.as_slice(), prev.as_slice(), n)
   1474     //     })
   1475     //     .into_iter()
   1476     //     .skip(n)
   1477     //     .next()
   1478     //     .unwrap()
   1479     //         * BigUint::new(vec![52]).pow((n - k) as u32)
   1480     // }
   1481 }