jiff/shared/crc32/
table.rs

1// auto-generated by: jiff-cli generate crc32
2
3pub(super) const TABLE: [u32; 256] = [
4    0, 4067132163, 3778769143, 324072436, 3348797215, 904991772, 648144872,
5    3570033899, 2329499855, 2024987596, 1809983544, 2575936315, 1296289744,
6    3207089363, 2893594407, 1578318884, 274646895, 3795141740, 4049975192,
7    51262619, 3619967088, 632279923, 922689671, 3298075524, 2592579488,
8    1760304291, 2075979607, 2312596564, 1562183871, 2943781820, 3156637768,
9    1313733451, 549293790, 3537243613, 3246849577, 871202090, 3878099393,
10    357341890, 102525238, 4101499445, 2858735121, 1477399826, 1264559846,
11    3107202533, 1845379342, 2677391885, 2361733625, 2125378298, 820201905,
12    3263744690, 3520608582, 598981189, 4151959214, 85089709, 373468761,
13    3827903834, 3124367742, 1213305469, 1526817161, 2842354314, 2107672161,
14    2412447074, 2627466902, 1861252501, 1098587580, 3004210879, 2688576843,
15    1378610760, 2262928035, 1955203488, 1742404180, 2511436119, 3416409459,
16    969524848, 714683780, 3639785095, 205050476, 4266873199, 3976438427,
17    526918040, 1361435347, 2739821008, 2954799652, 1114974503, 2529119692,
18    1691668175, 2005155131, 2247081528, 3690758684, 697762079, 986182379,
19    3366744552, 476452099, 3993867776, 4250756596, 255256311, 1640403810,
20    2477592673, 2164122517, 1922457750, 2791048317, 1412925310, 1197962378,
21    3037525897, 3944729517, 427051182, 170179418, 4165941337, 746937522,
22    3740196785, 3451792453, 1070968646, 1905808397, 2213795598, 2426610938,
23    1657317369, 3053634322, 1147748369, 1463399397, 2773627110, 4215344322,
24    153784257, 444234805, 3893493558, 1021025245, 3467647198, 3722505002,
25    797665321, 2197175160, 1889384571, 1674398607, 2443626636, 1164749927,
26    3070701412, 2757221520, 1446797203, 137323447, 4198817972, 3910406976,
27    461344835, 3484808360, 1037989803, 781091935, 3705997148, 2460548119,
28    1623424788, 1939049696, 2180517859, 1429367560, 2807687179, 3020495871,
29    1180866812, 410100952, 3927582683, 4182430767, 186734380, 3756733383,
30    763408580, 1053836080, 3434856499, 2722870694, 1344288421, 1131464017,
31    2971354706, 1708204729, 2545590714, 2229949006, 1988219213, 680717673,
32    3673779818, 3383336350, 1002577565, 4010310262, 493091189, 238226049,
33    4233660802, 2987750089, 1082061258, 1395524158, 2705686845, 1972364758,
34    2279892693, 2494862625, 1725896226, 952904198, 3399985413, 3656866545,
35    731699698, 4283874585, 222117402, 510512622, 3959836397, 3280807620,
36    837199303, 582374963, 3504198960, 68661723, 4135334616, 3844915500,
37    390545967, 1230274059, 3141532936, 2825850620, 1510247935, 2395924756,
38    2091215383, 1878366691, 2644384480, 3553878443, 565732008, 854102364,
39    3229815391, 340358836, 3861050807, 4117890627, 119113024, 1493875044,
40    2875275879, 3090270611, 1247431312, 2660249211, 1828433272, 2141937292,
41    2378227087, 3811616794, 291187481, 34330861, 4032846830, 615137029,
42    3603020806, 3314634738, 939183345, 1776939221, 2609017814, 2295496738,
43    2058945313, 2926798794, 1545135305, 1330124605, 3173225534, 4084100981,
44    17165430, 307568514, 3762199681, 888469610, 3332340585, 3587147933,
45    665062302, 2042050490, 2346497209, 2559330125, 1793573966, 3190661285,
46    1279665062, 1595330642, 2910671697,
47];
48
49pub(super) const TABLE16: [[u32; 256]; 16] = [
50    [
51        0, 4067132163, 3778769143, 324072436, 3348797215, 904991772,
52        648144872, 3570033899, 2329499855, 2024987596, 1809983544, 2575936315,
53        1296289744, 3207089363, 2893594407, 1578318884, 274646895, 3795141740,
54        4049975192, 51262619, 3619967088, 632279923, 922689671, 3298075524,
55        2592579488, 1760304291, 2075979607, 2312596564, 1562183871,
56        2943781820, 3156637768, 1313733451, 549293790, 3537243613, 3246849577,
57        871202090, 3878099393, 357341890, 102525238, 4101499445, 2858735121,
58        1477399826, 1264559846, 3107202533, 1845379342, 2677391885,
59        2361733625, 2125378298, 820201905, 3263744690, 3520608582, 598981189,
60        4151959214, 85089709, 373468761, 3827903834, 3124367742, 1213305469,
61        1526817161, 2842354314, 2107672161, 2412447074, 2627466902,
62        1861252501, 1098587580, 3004210879, 2688576843, 1378610760,
63        2262928035, 1955203488, 1742404180, 2511436119, 3416409459, 969524848,
64        714683780, 3639785095, 205050476, 4266873199, 3976438427, 526918040,
65        1361435347, 2739821008, 2954799652, 1114974503, 2529119692,
66        1691668175, 2005155131, 2247081528, 3690758684, 697762079, 986182379,
67        3366744552, 476452099, 3993867776, 4250756596, 255256311, 1640403810,
68        2477592673, 2164122517, 1922457750, 2791048317, 1412925310,
69        1197962378, 3037525897, 3944729517, 427051182, 170179418, 4165941337,
70        746937522, 3740196785, 3451792453, 1070968646, 1905808397, 2213795598,
71        2426610938, 1657317369, 3053634322, 1147748369, 1463399397,
72        2773627110, 4215344322, 153784257, 444234805, 3893493558, 1021025245,
73        3467647198, 3722505002, 797665321, 2197175160, 1889384571, 1674398607,
74        2443626636, 1164749927, 3070701412, 2757221520, 1446797203, 137323447,
75        4198817972, 3910406976, 461344835, 3484808360, 1037989803, 781091935,
76        3705997148, 2460548119, 1623424788, 1939049696, 2180517859,
77        1429367560, 2807687179, 3020495871, 1180866812, 410100952, 3927582683,
78        4182430767, 186734380, 3756733383, 763408580, 1053836080, 3434856499,
79        2722870694, 1344288421, 1131464017, 2971354706, 1708204729,
80        2545590714, 2229949006, 1988219213, 680717673, 3673779818, 3383336350,
81        1002577565, 4010310262, 493091189, 238226049, 4233660802, 2987750089,
82        1082061258, 1395524158, 2705686845, 1972364758, 2279892693,
83        2494862625, 1725896226, 952904198, 3399985413, 3656866545, 731699698,
84        4283874585, 222117402, 510512622, 3959836397, 3280807620, 837199303,
85        582374963, 3504198960, 68661723, 4135334616, 3844915500, 390545967,
86        1230274059, 3141532936, 2825850620, 1510247935, 2395924756,
87        2091215383, 1878366691, 2644384480, 3553878443, 565732008, 854102364,
88        3229815391, 340358836, 3861050807, 4117890627, 119113024, 1493875044,
89        2875275879, 3090270611, 1247431312, 2660249211, 1828433272,
90        2141937292, 2378227087, 3811616794, 291187481, 34330861, 4032846830,
91        615137029, 3603020806, 3314634738, 939183345, 1776939221, 2609017814,
92        2295496738, 2058945313, 2926798794, 1545135305, 1330124605,
93        3173225534, 4084100981, 17165430, 307568514, 3762199681, 888469610,
94        3332340585, 3587147933, 665062302, 2042050490, 2346497209, 2559330125,
95        1793573966, 3190661285, 1279665062, 1595330642, 2910671697,
96    ],
97    [
98        0, 329422967, 658845934, 887597209, 1317691868, 1562966443,
99        1775194418, 2054015301, 2635383736, 2394315727, 3125932886,
100        2851302177, 3550388836, 3225172499, 4108030602, 3883469565,
101        1069937025, 744974838, 411091311, 186800408, 1901039709, 1659701290,
102        1443537075, 1168652484, 2731618873, 2977147470, 2241069783,
103        2520160928, 3965408229, 4294560658, 3407766283, 3636263804,
104        2139874050, 1814657909, 1489949676, 1265388443, 822182622, 581114537,
105        373600816, 98970183, 3802079418, 4047354061, 3319402580, 3598223395,
106        2887074150, 3216496913, 2337304968, 2566056447, 1078858371,
107        1408010996, 1728782957, 1957280282, 247755615, 493284136, 696337329,
108        975428550, 3713716539, 3472378188, 4196393429, 3921508770, 2479927527,
109        2154965136, 3029696521, 2805405822, 4279748100, 3971309171,
110        3629315818, 3421531805, 2979899352, 2722054063, 2530776886,
111        2239369025, 1644365244, 1906417099, 1162229074, 1457827109, 747201632,
112        1059847191, 197940366, 409914617, 3235002245, 3547377650, 3885434731,
113        4097154844, 2388153945, 2650459694, 2837276343, 3133144768,
114        1573319741, 1315204170, 2055455955, 1763794084, 323786209, 15601046,
115        873047311, 665533816, 2157716742, 2470362481, 2816021992, 3027996063,
116        3457565914, 3719617709, 3914560564, 4210158659, 495511230, 237665993,
117        986568272, 695160359, 1392674658, 1084235541, 1950857100, 1743073275,
118        3210335367, 2902150384, 2552030313, 2344516638, 4057183579,
119        3799067948, 3600188853, 3308527042, 575477567, 837783368, 84420561,
120        380288934, 1825011427, 2137386644, 1266828813, 1478549114, 4223924985,
121        3898696334, 3699821079, 3475264096, 3041499941, 2800419666,
122        2450303947, 2175677372, 1725380929, 1970643254, 1100089775,
123        1378914776, 677206173, 1006616810, 253257843, 482013188, 3288730488,
124        3617886991, 3812834198, 4041319393, 2324458148, 2569990867,
125        2915654218, 3194733117, 1494403264, 1253068983, 2119694382,
126        1844797529, 395880732, 70922603, 819829234, 595526021, 2219317755,
127        2548728204, 2735548693, 2964304226, 3401742375, 3647004752,
128        3985066185, 4263891134, 425515587, 184435252, 1041885869, 767259354,
129        1473690527, 1148462056, 1888717681, 1664160518, 3146639482,
130        2821681165, 2630408340, 2406105315, 4110911910, 3869577681,
131        3527588168, 3252691263, 647572418, 893105077, 31202092, 310281051,
132        1746094622, 2075251305, 1331067632, 1559552647, 81018109, 393651338,
133        596708371, 808686692, 1247698209, 1509737814, 1830514127, 2126116280,
134        2579562309, 2321704754, 3196440491, 2905036764, 3611991705,
135        3303540462, 4027559543, 3819779584, 991022460, 682841355, 475331986,
136        267806181, 1973136544, 1715025111, 1390320718, 1098646585, 2785349316,
137        3047659187, 2168471082, 2464327261, 3901714200, 4214093679,
138        3486146550, 3697854337, 2069880831, 1761429384, 1545269009,
139        1337489254, 903200291, 645342804, 311463629, 20059834, 3863682119,
140        4125721648, 3238931625, 3534533854, 2831252891, 3143886316,
141        2407812469, 2619790594, 1150955134, 1463334409, 1675566736,
142        1887274727, 168841122, 431151061, 760577868, 1056433979, 3650022854,
143        3391911345, 4274773288, 3983099231, 2533657626, 2225476717,
144        2957098228, 2749572227,
145    ],
146    [
147        0, 2772537982, 1332695565, 3928932467, 2665391130, 1000289892,
148        3518101015, 1961911401, 944848581, 2635115707, 2000579784, 3531603638,
149        2794429151, 63834273, 3923822802, 1285642924, 1889697162, 3588485108,
150        1070411655, 2592914937, 4001159568, 1262308334, 2702412701, 72489443,
151        1223902031, 3987919153, 127668546, 2732426044, 3593332565, 1936487723,
152        2571285848, 1006839590, 3779394324, 1141205354, 2922096921, 191511399,
153        2140823310, 3671838064, 821366019, 2511642493, 3642082769, 2085902255,
154        2524616668, 859506082, 1204511179, 3800757173, 144978886, 2917507512,
155        2447804062, 883365088, 3733574803, 2076722925, 255337092, 2860101882,
156        1079472265, 3843482359, 2847389787, 217459237, 3872975446, 1134131240,
157        929635393, 2452131391, 2013679180, 3712474162, 3345318105, 1646531239,
158        2282410708, 759906474, 1505436867, 4244289213, 383022798, 3012945072,
159        4281646620, 1517628514, 2958814225, 354057839, 1642732038, 3299575928,
160        780486667, 2344934005, 3083337043, 310800173, 4171804510, 1575566624,
161        689527113, 2354629431, 1719012164, 3275200826, 2409022358, 718754280,
162        3237581211, 1706558437, 289957772, 3020551666, 1579627905, 4217808895,
163        639728589, 2204166579, 1766730176, 3423583166, 3103776727, 499010985,
164        4153445850, 1389436836, 510674184, 3140605814, 1360992005, 4099835259,
165        2158944530, 636449644, 3485578015, 1786782049, 1451427399, 4089615417,
166        434918474, 3165505076, 3361579613, 1830563875, 2268262480, 577987118,
167        1859270786, 3415452412, 566061711, 2231171313, 4027358360, 1431113446,
168        3210989205, 438459627, 2334619459, 778495293, 3293062478, 1628026672,
169        368694105, 2964865319, 1519812948, 4292285226, 3010873734, 372759544,
170        4229503883, 1498974709, 766045596, 2297004002, 1657257873, 3347459567,
171        4219800265, 1589942455, 3035257028, 296471226, 1700507347, 3222944941,
172        708115678, 2406837920, 3285464076, 1721083506, 2361091585, 704312447,
173        1560973334, 4165665384, 308658715, 3072610405, 1784908887, 3475119657,
174        621600346, 2152549412, 4106037325, 1375517235, 3151133248, 513009726,
175        1379054226, 4151517420, 492691615, 3088872161, 3438024328, 1772979446,
176        2206418053, 650303227, 448917981, 3212862371, 1437508560, 4042207662,
177        2216646087, 559859641, 3413116874, 1848743348, 579915544, 2278645094,
178        1845468437, 3367898987, 3159255810, 420477308, 4079040783, 1449175921,
179        1279457178, 3909314020, 53323159, 2792110057, 3533460352, 2011021822,
180        2649948557, 951227379, 1947453791, 3511835425, 998021970, 2654800172,
181        3939331397, 1334640443, 2778873672, 14921014, 1021348368, 2577471598,
182        1938806813, 3603843683, 2721984010, 125811828, 3981540359, 1209069177,
183        78755029, 2716870315, 1272899288, 4003427494, 2590970063, 1060012721,
184        3573564098, 1883361468, 2902854798, 138911472, 3798556291, 1193856253,
185        869836948, 2526624490, 2092432025, 3656804583, 2505519691, 806789173,
186        3661127750, 2138698296, 193566289, 2932343855, 1155974236, 3785840162,
187        3718541572, 2028331898, 2462786313, 931836279, 1132123422, 3862644576,
188        202737427, 2840860013, 3858059201, 1085595071, 2862226892, 266047410,
189        2066475995, 3731519909, 876919254, 2433035176,
190    ],
191    [
192        0, 3712330424, 3211207553, 1646430521, 2065838579, 2791807819,
193        3292861042, 419477706, 4131677158, 721537374, 1227047015, 2489772767,
194        2372293141, 1344534701, 838955412, 4014267180, 3915690301, 874584965,
195        1443074748, 2336634884, 2454094030, 1325607542, 757179215, 4033087991,
196        522244827, 3261429859, 2689069402, 2097306594, 1677910824, 3108456848,
197        3680878761, 102787601, 3609531531, 174112307, 1749169930, 3037175218,
198        2886149496, 1900187584, 325060345, 3458575425, 560035693, 4230274517,
199        2651215084, 1128529492, 1514358430, 2265377830, 3844367647, 945934247,
200        1044489654, 3808694030, 2166785591, 1550003343, 1164153925,
201        2552643325, 4194613188, 658578812, 3355821648, 356543720, 2002970065,
202        2854702953, 3005740963, 1851940123, 205575202, 3506798234, 2879807463,
203        1994650975, 348224614, 3380926174, 3498339860, 230802604, 1877167509,
204        2997282605, 1575107585, 2158466745, 3800375168, 1069593912, 650120690,
205        4219840330, 2577870451, 1155695819, 1120071386, 2676442210,
206        4255501659, 551577571, 971038505, 3836048785, 2257058984, 1539462672,
207        3028716860, 1774397316, 199339709, 3601073157, 3483679951, 316741239,
208        1891868494, 2911254006, 2088979308, 2714165716, 3286526189, 513917525,
209        128023199, 3672428583, 3100006686, 1703146406, 2328307850, 1468170802,
210        899681035, 3907363251, 4058323321, 748729281, 1317157624, 2479329344,
211        2515008081, 1218597097, 713087440, 4156912488, 4005940130, 864051482,
212        1369630755, 2363966107, 1671666103, 3202757391, 3703880246, 25235598,
213        411150404, 3317957372, 2816904133, 2057511293, 1386268991, 2414175111,
214        3989301950, 813842438, 696449228, 4106703476, 2531646285, 1268806133,
215        2766449369, 2040594529, 461605208, 3334874080, 3754335018, 42152338,
216        1621211307, 3185840659, 3150215170, 1719784122, 77814659, 3655790907,
217        3236317681, 497279817, 2139187824, 2730803400, 1300241380, 2428875100,
218        4075239525, 799183581, 916597271, 3957817519, 2311391638, 1417716526,
219        2240142772, 1489008396, 987954741, 3886503053, 4272417863, 602031871,
220        1103155142, 2625987966, 1942077010, 2927891690, 3433471443, 300103531,
221        149131169, 3584435481, 3078925344, 1791035032, 1826712713, 2980365873,
222        3548794632, 247719344, 398679418, 3397842882, 2829352699, 1977734211,
223        2594508655, 1205904855, 633482478, 4169631318, 3783736988, 1019384868,
224        1591745821, 2208675749, 4177958616, 608386144, 1180808537, 2602835937,
225        2183440171, 1600195987, 1027835050, 3758501394, 256046398, 3523698566,
226        2955269823, 1835039751, 1952498893, 2837802613, 3406292812, 373444084,
227        274868197, 3441921373, 2936341604, 1916841692, 1799362070, 3053829294,
228        3559339415, 157458223, 3861267459, 996404923, 1497458562, 2214907194,
229        2634315248, 1078058824, 576935537, 4280745161, 774079059, 4083558635,
230        2437194194, 1275136874, 1426174880, 2286164248, 3932590113, 925055641,
231        3630686645, 86133517, 1728102964, 3125110924, 2739261510, 2113960702,
232        472052679, 3244775807, 3343332206, 436378070, 2015367407, 2774907479,
233        3160736413, 1629530149, 50471196, 3729230756, 822300808, 3964074544,
234        2388947721, 1394727345, 1243701627, 2539965379, 4115022586, 671344706,
235    ],
236    [
237        0, 940666796, 1881333592, 1211347188, 3762667184, 3629437212,
238        2422694376, 2826309188, 3311864721, 4252394557, 3041252553,
239        2371140453, 623031585, 489937549, 1426090617, 1829832149, 2401395155,
240        3073576575, 4278238859, 3339833639, 1869078371, 1467396303, 524615739,
241        659845015, 1246063170, 1918109166, 979875098, 41343670, 2852181234,
242        2450635614, 3659664298, 3795018758, 464041303, 599382779, 1804233231,
243        1402668451, 4226616295, 3288097867, 2345653439, 3017718547,
244        3738156742, 3873362282, 2934792606, 2533101106, 1049231478, 110850010,
245        1319690030, 1991880834, 2492126340, 2895887144, 3836218332,
246        3703137392, 1959750196, 1289618840, 82687340, 1023204032, 1374543637,
247        1778167993, 567214157, 434008033, 2980602277, 2310606345, 3247095549,
248        4187738449, 928082606, 255853826, 1198765558, 2137184858, 3608466462,
249        4010130354, 2805336902, 2670159082, 4063650111, 3391557267,
250        2182397543, 3120943563, 309583759, 711110691, 1649475799, 1514172283,
251        3094547325, 2153931985, 3360805925, 4030774153, 1479980493,
252        1613224545, 672426645, 268764473, 2098462956, 1157984064, 221700020,
253        891793432, 2639380060, 2772488688, 3983761668, 3579973288, 754573305,
254        350793813, 1557856417, 1690988301, 3434897737, 4104982245, 3164519953,
255        2224017853, 3919500392, 3515857860, 2579237680, 2712495260, 165374680,
256        835323252, 2046408064, 1105779244, 2749087274, 2613760390, 3556335986,
257        3957853918, 1134428314, 2072997686, 868016066, 195932270, 1723643323,
258        1588451863, 379480803, 781124943, 2264468235, 3202901159, 4141601875,
259        3469392895, 1856165212, 1454619376, 511707652, 647062952, 2397531116,
260        3069576256, 4274369716, 3335838488, 2881871565, 2480189793,
261        3689349525, 3824578105, 1266704509, 1938886609, 1000521509, 62115977,
262        3783308431, 3650214691, 2443340759, 2847081595, 29690431, 970220947,
263        1911018855, 1240906443, 619167518, 485937330, 1422221382, 1825837034,
264        3298951598, 4239617538, 3028344566, 2358358362, 1963614219,
265        1293619111, 86556499, 1027199231, 2505039547, 2908664087, 3849126371,
266        3715919439, 2959960986, 2289828918, 3226449090, 4166966126,
267        1344853290, 1748613766, 537528946, 404448734, 4196925912, 3258543732,
268        2315968128, 2988159276, 443400040, 578605252, 1783586864, 1381896092,
269        1062144585, 123626981, 1332598033, 2004662973, 3742020857, 3877362517,
270        2938661793, 2537096205, 1509146610, 1642254430, 701587626, 297799430,
271        3115712834, 2175233774, 3381976602, 4052070838, 2626991203,
272        2760235983, 3971377979, 3567715479, 2094074579, 1153459583, 217306507,
273        887274023, 3604078113, 4005605773, 2800943481, 2665639637, 915693713,
274        243601213, 1186381769, 2124927077, 330749360, 732412444, 1670646504,
275        1535468868, 4092816128, 3420587180, 2211558488, 3149978612,
276        1113262757, 2051695881, 846845437, 174635601, 2719921173, 2584730553,
277        3527174989, 3928818913, 2268856628, 3207425688, 4145995372,
278        3473912256, 1736032132, 1600704552, 391864540, 793382768, 3447286646,
279        4117234906, 3176903726, 2236275586, 758961606, 355318378, 1562249886,
280        1695507762, 136208615, 806293323, 2017247167, 1076744211, 3898334807,
281        3494556155, 2558066959, 2691198627,
282    ],
283    [
284        0, 4012927769, 3683426499, 884788186, 3002414967, 1573215342,
285        1769576372, 2252995757, 1611012127, 2402710278, 3146430684,
286        1421530053, 3539152744, 1036207217, 159354795, 3863995570, 3222024254,
287        792484647, 461410557, 4105239524, 1928922953, 2647223376, 2843060106,
288        1178979475, 2685020193, 1329218360, 2072414434, 2495013883, 318709590,
289        4258231375, 3379806101, 641979532, 2247366285, 1791262100, 1584969294,
290        2974342487, 922821114, 3627109091, 3968696633, 62777888, 3857845906,
291        180512139, 1048489553, 3511600456, 1460091365, 3090633468, 2357958950,
292        1673261631, 1173890739, 2865253802, 2658436720, 1900342633,
293        4144828868, 406682333, 746696967, 3283212830, 637419180, 3402519989,
294        4268924527, 289600886, 2534083035, 2017157826, 1283959064, 2746728961,
295        235166699, 3778294002, 3582524200, 985174065, 3169938588, 1405159301,
296        1736297567, 2286790470, 1845642228, 2167548141, 3046040375,
297        1522436142, 3707204739, 868687770, 125555776, 3897278297, 3456658389,
298        557318348, 361024278, 4206141455, 2096979106, 2479699899, 2809265249,
299        1212258168, 2920182730, 1094588627, 1971507977, 2595403792, 486229181,
300        4090179492, 3346523262, 675778407, 2347781478, 1690314367, 1350364581,
301        3209463484, 956660241, 3593801992, 3800685266, 230273483, 3958789497,
302        80100960, 813364666, 3746209443, 1493393934, 3056797975, 2190459597,
303        1841277396, 1274838360, 2764838465, 2423315867, 2134947458,
304        4178135599, 372842806, 579201772, 3451224565, 737830215, 3301576286,
305        4034315652, 524725917, 2567918128, 1983854889, 1115943667, 2914228714,
306        470333398, 4080590031, 3347322645, 682916876, 2935849121, 1104014264,
307        1970348130, 2587970427, 2081337289, 2470364368, 2810318602,
308        1219650579, 3472595134, 567014311, 360134781, 4198978404, 3691284456,
309        859106545, 126363435, 3904392242, 1861333151, 2176965510, 3044872284,
310        1515027269, 3154288631, 1395848430, 1737375540, 2294174765, 251111552,
311        3787965337, 3581610051, 978019162, 2583470427, 1993132610, 1114636696,
312        2906679937, 722048556, 3292134709, 4035262191, 531979766, 4193958212,
313        382390877, 578165127, 3443946142, 1259310643, 2755650858, 2424516336,
314        2142455273, 1508938085, 3066100348, 2189177254, 1833720511,
315        3943015954, 70634763, 814286545, 3753471432, 972458362, 3603358307,
316        3799656889, 222970528, 2332278285, 1681118484, 1351556814, 3216995799,
317        302836797, 4248602404, 3380628734, 649078759, 2700729162, 1338617939,
318        2071296905, 2487554192, 1913320482, 2637864763, 2844153057,
319        1186349048, 3237987157, 802138188, 460546966, 4098033807, 3523271683,
320        1026602778, 160201920, 3871086553, 1626729332, 2412085357, 3145288631,
321        1414078638, 2986787868, 1563864837, 1770677471, 2260340678, 15987563,
322        4022573170, 3682554792, 877607089, 2549676720, 2026410409, 1282693747,
323        2739155306, 621661639, 3393038046, 4269894916, 296814109, 4160676527,
324        416188854, 745685612, 3275893109, 1158403544, 2856042177, 2659677467,
325        1907826178, 1475660430, 3099894167, 2356701773, 1665663316,
326        3842113017, 171022048, 1049451834, 3518838307, 938660497, 3636640136,
327        3967709778, 55449931, 2231887334, 1782025983, 1586185509, 2981834300,
328    ],
329    [
330        0, 1745038536, 3490077072, 3087365464, 2782971345, 3454265625,
331        1978047553, 501592201, 1311636819, 640602523, 2653660355, 4129851403,
332        3956095106, 2211320906, 1003184402, 1405636058, 2623273638,
333        4099462766, 1281205046, 610177022, 968572791, 1371018175, 3921503975,
334        2176731695, 3530950645, 3128240957, 40918629, 1785950893, 2006368804,
335        529919724, 2811272116, 3482564476, 1029407677, 1431875445, 3982350893,
336        2237593317, 2562410092, 4038617764, 1220354044, 549335860, 1937145582,
337        460673574, 2742036350, 3413314486, 3600202559, 3197474807, 110158511,
338        1855180391, 2701162779, 3372438995, 1896226955, 419761219, 81837258,
339        1826852866, 3571901786, 3169175954, 4012737608, 2267981952,
340        1059839448, 1462300944, 1254965657, 583953745, 2597001225, 4073206977,
341        2058815354, 313797554, 2863750890, 3266474530, 3747070635, 3075796579,
342        257006395, 1733474291, 882571817, 1553585889, 3835470777, 2359267185,
343        2440708088, 4185461552, 1098671720, 696208032, 3874291164, 2398081300,
344        921347148, 1592363140, 1124874253, 722408645, 2466931101, 4211690837,
345        2831220879, 3233950791, 2026330399, 281310679, 220317022, 1696786838,
346        3710360782, 3039080454, 1206682823, 804235279, 2548751703, 4293521823,
347        3792453910, 2316266974, 839522438, 1510552654, 163674516, 1640125788,
348        3653705732, 2982415564, 2887892037, 3290599565, 2082989525, 337955101,
349        3686235745, 3014939305, 196159473, 1672612665, 2119678896, 374642552,
350        2924601888, 3327315688, 2509931314, 4254707706, 1167907490, 765458026,
351        813319907, 1484352043, 3766230899, 2290037691, 4117630708, 2641175100,
352        627595108, 1298889644, 1351535397, 948824045, 2156434101, 3901472381,
353        3141792679, 3544244079, 1799727671, 54953727, 514012790, 1990204094,
354        3466948582, 2795914030, 1765143634, 20371610, 3107171778, 3509616906,
355        3436523907, 2765495627, 483616787, 1959806171, 655886593, 1327179209,
356        4145959057, 2669509721, 2197343440, 3942375448, 1392416064, 989706632,
357        3358952777, 2687934849, 406050009, 1882257425, 1842694296, 97936464,
358        3184726280, 3587194304, 2249748506, 3994770642, 1444817290,
359        1042089282, 603502027, 1274779907, 4093570139, 2617098387, 1416525807,
360        1013799719, 2221420159, 3966436023, 4052660798, 2576195318, 562621358,
361        1233897318, 440634044, 1916839540, 3393573676, 2722562020, 3215150957,
362        3617612709, 1873090301, 128334389, 2413365646, 3889833286, 1608470558,
363        937196758, 708430943, 1111154839, 4198471119, 2453453063, 3254056157,
364        2851592213, 301116749, 2045870469, 1679044876, 202841540, 3021105308,
365        3692119124, 327349032, 2072109024, 3280251576, 2877785712, 3059889913,
366        3730905649, 1717858153, 241648545, 1571753595, 900473523, 2376685547,
367        3853155107, 4165979050, 2420959074, 675910202, 1078640370, 2994899507,
368        3665929979, 1652872099, 176684907, 392318946, 2137088810, 3345225330,
369        2942778042, 4239357792, 2494323624, 749285104, 1151992376, 1498395313,
370        827104889, 2303322913, 3779774441, 786002069, 1188715613, 4276037893,
371        2531001805, 2335814980, 3812268428, 1530916052, 859619356, 1626639814,
372        150446350, 2968704086, 3639736478, 3306440727, 2903991519, 353505671,
373        2098281807,
374    ],
375    [
376        0, 1228700967, 2457401934, 3678701417, 555582061, 1747058506,
377        3009771555, 4200137988, 1111164122, 185039357, 3494117012, 2575270835,
378        1663469239, 706411408, 4049501433, 3093430750, 2222328244, 3444208787,
379        370078714, 1597148893, 2775288793, 3965187838, 924021143, 2117012656,
380        3326938478, 2406576201, 1412822816, 487164423, 3880816387, 2926375460,
381        1965585741, 1007945834, 218129817, 1144789182, 2675482583, 3594838768,
382        740157428, 1696701139, 3194297786, 4149829789, 1329291587, 101129316,
383        3712195341, 2491409962, 1848042286, 656055817, 4234025312, 3043124295,
384        2306239533, 3226079498, 453940835, 1379068740, 2825645632, 3780612967,
385        974328846, 1932486953, 3410847991, 2188449232, 1496683193, 269086622,
386        3931171482, 2741802941, 2015891668, 823422451, 436259634, 1396487701,
387        2289578364, 3242478683, 991775071, 1914778744, 2842014481, 3763981878,
388        1480314856, 285717199, 3393402278, 2206156929, 2032553349, 807022754,
389        3948853195, 2724383468, 2658583174, 3612000161, 202258632, 1160922607,
390        3211477227, 4132912588, 756267685, 1680852866, 3696084572, 2507258747,
391        1312111634, 118047029, 4249895985, 3026991382, 1864941183, 638894936,
392        385920683, 1581044620, 2239255781, 3427019202, 907881670, 2132890081,
393        2758137480, 3982076847, 1429973617, 470275926, 3343077439, 2390699288,
394        1948657692, 1025135931, 3864973906, 2942480245, 2474026783,
395        3662338616, 17718609, 1211244662, 2993366386, 4216805461, 538173244,
396        1764729371, 3511526341, 2557599458, 1127569803, 168371372, 4031783336,
397        3110886543, 1646844902, 722773697, 872519268, 2101209923, 2792975402,
398        4014280973, 354161673, 1545627950, 2271538759, 3461911392, 1983550142,
399        1057419161, 3829557488, 2910721495, 1462178003, 505114100, 3311397533,
400        2355337146, 2960629712, 4182500087, 571434398, 1798510777, 2439650749,
401        3629539482, 51570675, 1244568276, 4065106698, 3144738349, 1614045508,
402        688397411, 3545307495, 2590860352, 1093264169, 135634446, 956429309,
403        1883082458, 2876836275, 3796202644, 404517264, 1361054903, 2321845214,
404        3277387513, 2067461927, 839289344, 3913420137, 2692640846, 1512535370,
405        320538733, 3361705732, 2170810915, 3178756681, 4098590574, 789512199,
406        1714650400, 2624223268, 3579184387, 236094058, 1194262349, 4283235987,
407        3060827060, 1832125661, 604535290, 3729882366, 2540503513, 1277789872,
408        85326743, 771841366, 1732059249, 3162089240, 4114995775, 253550395,
409        1176543772, 2640586101, 3562559570, 1815763340, 621159595, 4265780162,
410        3078545125, 1294457825, 68921030, 3747553711, 2523094152, 2859947234,
411        3813353925, 940551852, 1899221899, 2339034767, 3260459944, 420621505,
412        1345212902, 3897315384, 2708483359, 2050271862, 856217425, 3377582677,
413        2154671986, 1529423899, 303387964, 587282639, 1782400488, 2977546881,
414        4165320614, 35437218, 1260439429, 2422489324, 3646438859, 1631206421,
415        671498546, 4081239643, 3128867708, 1076346488, 152814431, 3529458742,
416        2606971153, 2809606523, 3997912156, 890227509, 2083763730, 2255139606,
417        3478572593, 336742744, 1563309183, 3846976929, 2893039750, 1999949807,
418        1040757448, 3293689804, 2372782827, 1445547394, 521482405,
419    ],
420    [
421        0, 4097758792, 3985758817, 430902313, 3738157619, 720442491,
422        861804626, 3345010202, 3094606487, 1280124127, 1440884982, 2715614910,
423        1723609252, 2458052332, 2335042245, 2131967117, 1963693023,
424        2167752087, 2560248254, 1822728182, 2881769964, 1610254244,
425        1180011405, 2993380805, 3447218504, 960935680, 552188713, 3570888033,
426        330802043, 3884545331, 4263934234, 169389906, 3927386046, 506065398,
427        126287327, 4088933271, 886629773, 3236312005, 3645456364, 762833316,
428        1382339881, 2790916961, 3220508488, 1271650560, 2360022810,
429        2023080274, 1631243643, 2500074291, 2669458529, 1797415465,
430        1921871360, 2259925064, 1104377426, 3052249114, 2890050611,
431        1484552827, 661604086, 3545338046, 3405683863, 1052789471, 4188046533,
432        228479629, 338779812, 3759114476, 3519166861, 637333445, 1012130796,
433        3362600356, 252574654, 4214435318, 3801883103, 379778967, 1773259546,
434        2643402066, 2216694139, 1881065267, 3078490409, 1128324961,
435        1525666632, 2932933888, 2764679762, 1358396442, 1230532659,
436        3177621115, 2047240289, 2386083369, 2543301120, 1672045640, 481974469,
437        3901001357, 4046160548, 85284076, 3262487286, 910904510, 803487895,
438        3688535775, 1003822643, 3488335995, 3594830930, 578425370, 3843742720,
439        287574600, 143328865, 4239773737, 2208754852, 2006465260, 1849112261,
440        2584338573, 1567174295, 2841114847, 2969105654, 1153835710,
441        1323208172, 3135265700, 2739885965, 1467056581, 2417053663,
442        1680841111, 2105578942, 2310947830, 4138565499, 43231539, 456959258,
443        4009915218, 677559624, 3697044224, 3321063209, 835563873, 2791835115,
444        1381421987, 1274666890, 3217492418, 2024261592, 2358841744,
445        2503351737, 1627966449, 505149308, 3928301876, 4085919005, 129301333,
446        3235132751, 887808775, 759557934, 3648731494, 3546519092, 660422780,
447        1056066645, 3402406429, 229397511, 4187128399, 3762130534, 335763502,
448        1796236451, 2670637803, 2256649922, 1925146762, 3051333264,
449        1105293528, 1481538801, 2893064889, 1283400277, 3091330077,
450        2716792884, 1439706748, 2461065318, 1720596014, 2132883975,
451        2334125135, 4094480578, 3278474, 429722275, 3986939115, 717427441,
452        3741172921, 3344091280, 862723800, 963948938, 3444205506, 3571805163,
453        551271843, 3887821753, 327525873, 170568152, 4262756240, 2164736797,
454        1966708053, 1821809020, 2561167156, 1606975790, 2885048166,
455        2992200527, 1181191431, 2007645286, 2207574574, 2587616775,
456        1845833807, 2842033749, 1566255133, 1156850740, 2966090364,
457        3487158001, 1005000889, 575149200, 3598107352, 286657730, 3844659850,
458        4236760739, 146342123, 44150713, 4137646577, 4012930520, 453944208,
459        3698224522, 676379586, 838842347, 3317784995, 3134348590, 1324125030,
460        1464043343, 2742898951, 1679662877, 2418231637, 2307671420,
461        2108855092, 2646416344, 1770245520, 1881981369, 2215778289,
462        1131600363, 3075215267, 2934113162, 1524487618, 634317135, 3522182919,
463        3361682222, 1013048678, 4211157884, 255851828, 378597661, 3803064149,
464        3904276487, 478699087, 86463078, 4044981294, 913918516, 3259473020,
465        3689451605, 802571805, 1355119248, 2767957208, 3176440049, 1231713977,
466        2383067299, 2050256619, 1671127746, 2544219274,
467    ],
468    [
469        0, 3411442597, 2470478267, 1477900830, 594376071, 3896184354,
470        2955801660, 2071695257, 1188752142, 2374799531, 3583666869, 516690192,
471        1706532489, 2934039852, 4143390514, 1033987223, 2377504284,
472        1189326265, 519395239, 3584240642, 2933433243, 1703860286, 1033380384,
473        4140718469, 3413064978, 3753655, 1479523497, 2474231564, 3892463765,
474        592720688, 2067974446, 2954146443, 512219849, 3587285356, 2378652530,
475        1183916247, 1038790478, 4139570411, 2930388725, 1711035728,
476        1482502599, 2466990690, 3407720572, 4967385, 2066760768, 2959491045,
477        3899704827, 589741662, 2469530837, 1482979184, 7507310, 3408197323,
478        2959046994, 2064188151, 589297897, 3897131852, 3588810715, 515808382,
479        1185441376, 2382241221, 4135948892, 1037298169, 1707414503,
480        2928896066, 1024439698, 4133080631, 2924426281, 1696157580, 509788181,
481        3577002928, 2367832494, 1182022155, 2077580956, 2961384761,
482        3902136103, 600024194, 1488464667, 2481868990, 3422071456, 11456773,
483        2965005198, 2079070251, 603644469, 3903625616, 2480346633, 1484877228,
484        9934770, 3418483735, 4133521536, 1027011365, 1696598331, 2926998174,
485        3574463751, 509314722, 1179483324, 2367358745, 596143963, 3906868478,
486        2965958368, 2073990469, 15014620, 3417530745, 2477103975, 1492377794,
487        1699906645, 2919563248, 4128376302, 1027898955, 1178595794,
488        2372504183, 3581898857, 506006476, 2923280711, 1701561058, 1031616764,
489        4130030425, 2370882752, 1174845285, 504384891, 3578148574, 3907473993,
490        598813164, 2074596338, 2968627287, 3414829006, 14441579, 1489675893,
491        2476531152, 2048879396, 2974355585, 3915377311, 571052346, 1500651171,
492        2451858694, 3392315160, 23389373, 1019576362, 4153670543, 2944729489,
493        1691580980, 531166637, 3573452296, 2364044310, 1203638195, 4155161912,
494        1023198877, 1693072515, 2948351782, 3569862847, 529642266, 1200048388,
495        2362520225, 2976929334, 2049322387, 573626253, 3915820072, 2451383217,
496        1498109972, 22913546, 3389774255, 1687728621, 2949565000, 4158140502,
497        1015958515, 1207288938, 2359541711, 3568649681, 534986356, 574773987,
498        3910410566, 2969754456, 2052366589, 19869540, 3396949185, 2456792799,
499        1496962426, 3912067057, 578493524, 2054022730, 2973474287, 3393196662,
500        18246099, 1493210061, 2455169128, 2952236287, 1688336218, 1018629444,
501        4158748385, 2358966648, 1204585181, 534411459, 3565945702, 1192287926,
502        2353440019, 3562037005, 520496296, 1685957425, 2938884244, 4147980938,
503        1013666095, 30029240, 3399241245, 2458563587, 1507643302, 581386303,
504        3924900762, 2984755588, 2058467873, 3399813290, 32731919, 1508215057,
505        2461266612, 3922230573, 580781704, 2055797910, 2984150835, 2357191588,
506        1193908225, 524247583, 3563657658, 2937230883, 1682238854, 1012012952,
507        4144262205, 1503069311, 2462154714, 3403122116, 25296481, 2063233528,
508        2980842077, 3921342531, 585927654, 525201265, 3558577364, 2349690570,
509        1197151599, 1008769782, 4151763283, 2942311245, 1681285352,
510        3559051875, 527739334, 1197626328, 2352228477, 4149192676, 1008327745,
511        1678714463, 2941869562, 2465741165, 1504592584, 28883158, 3404645235,
512        2979351786, 2059614031, 584437073, 3917723380,
513    ],
514    [
515        0, 2540828609, 722442611, 3162402482, 1444885222, 3245262119,
516        2098244501, 3932249172, 2889770444, 995070477, 2268200127, 272632702,
517        4196489002, 1834000619, 3509505625, 1180645784, 1569766761,
518        3403762344, 1990140954, 3790525403, 193957775, 2633922638, 545265404,
519        3086082365, 4054767781, 1725902692, 3668001238, 1305523735,
520        2813454915, 817896834, 2361291568, 466584817, 3139533522, 743476499,
521        2418992033, 123671648, 3980281908, 2052046837, 3325153607, 1363158662,
522        387915550, 2154752223, 1007715949, 2875290028, 1090530808, 3597785657,
523        1779414155, 4252910410, 3870410683, 1908420730, 3451805384,
524        1523558665, 2964256093, 668926620, 2611047470, 214997999, 1250927223,
525        3724432822, 1635793668, 4143041733, 479236241, 2346805072, 933169634,
526        2700017187, 1940816725, 3839849620, 1486952998, 3486576103, 632402355,
527        2998945394, 247343296, 2580537089, 3750815385, 1222709592, 4104093674,
528        1676576811, 2307904639, 519971774, 2726317324, 905034445, 775831100,
529        3109014013, 87140175, 2453688462, 2015431898, 4015061787, 1395561897,
530        3294585448, 2181061616, 359771185, 2836382339, 1048458562, 3558828310,
531        1131323095, 4279300197, 1751189412, 3364878727, 1610485318,
532        3816841460, 1961989941, 2660289377, 165756064, 3047117330, 586065363,
533        1689361483, 4089473930, 1337853240, 3637506809, 850308781, 2782878060,
534        429995998, 2396045343, 2501854446, 40809263, 3188776349, 694233692,
535        3271587336, 1416724937, 3893358459, 2138970298, 958472482, 2924533475,
536        305051729, 2237616016, 1866339268, 4165985285, 1144097463, 3544218998,
537        3881633450, 1881993579, 3427966937, 1529047064, 2973905996, 640926605,
538        2588781887, 222059262, 1264804710, 3692205223, 1617754645, 4145876436,
539        494686592, 2316150337, 913557747, 2701279026, 3134045123, 767314946,
540        2445419184, 112448881, 3973220645, 2074312420, 3353153622, 1353508759,
541        385080847, 2172791246, 1039943548, 2861412541, 1089268969, 3617397544,
542        1810068890, 4237460059, 1551662200, 3406662585, 2004083979,
543        3758232266, 174280350, 2635250015, 560781293, 3055362092, 4030863796,
544        1731456629, 3679289543, 1279031046, 2791123794, 825023635, 2371007009,
545        438519264, 32293137, 2526885584, 719542370, 3180507043, 1475605495,
546        3229746230, 2096917124, 3951926597, 2916263133, 983782172, 2262646190,
547        296536687, 4224554555, 1824285178, 3502378824, 1202976905, 2498987519,
548        58880574, 3220970636, 680389453, 3270293273, 1436369112, 3923979882,
549        2123553195, 953016371, 2948339698, 331512128, 2226359937, 1859310293,
550        4188218644, 1172130726, 3534535783, 3378722966, 1578291031,
551        3798770149, 1964856868, 2675706480, 135134641, 3027473155, 587359426,
552        1700617562, 4063013531, 1314047017, 3642962920, 859991996, 2754844797,
553        407762639, 2403074318, 802357037, 3097692396, 81618526, 2477560223,
554        2043530699, 4005313034, 1388467384, 3316884345, 2213321441, 345861408,
555        2833449874, 1066595411, 3589515271, 1115840454, 4277940596,
556        1770899125, 1916944964, 3845371269, 1498274615, 3460050166, 610103458,
557        3006039907, 257092049, 2552438288, 3732678536, 1225642057, 4118003451,
558        1644316986, 2288194926, 521331375, 2741799965, 874347484,
559    ],
560    [
561        0, 829543472, 1659086944, 1402109008, 3318173888, 4105602288,
562        2804218016, 2522164368, 2388842353, 3205694273, 3967909649,
563        3723537185, 1269139377, 2060735361, 692465617, 406322145, 422172691,
564        676858915, 2076864627, 1253811267, 3706620115, 3986644195, 3188531379,
565        2407330947, 2538278754, 2788875090, 4121470722, 3302585138,
566        1384931234, 1677560722, 812644290, 18752498, 844345382, 52585494,
567        1353717830, 1640090742, 4153729254, 3336910038, 2507622534,
568        2751896758, 3157354327, 2369827687, 3738357559, 4020443911,
569        2046179223, 1216865191, 454402039, 711216071, 729442357, 436976645,
570        1234813013, 2028475493, 4005378293, 3754749125, 2355007637,
571        3173991589, 2769862468, 2489936756, 3355121444, 4136289044,
572        1625288580, 1370373044, 37504996, 860722132, 1688690764, 1440134268,
573        105170988, 926227484, 2707435660, 2417091772, 3280181484, 4075965660,
574        3938826045, 3686032141, 2284199773, 3109538669, 788719613, 510866381,
575        1306611613, 2089851821, 2106505311, 1291807855, 527241279, 773637135,
576        3091851423, 2302164143, 3668590847, 3957036239, 4092358446,
577        3265116958, 2433730382, 2692617086, 908804078, 123399134, 1422432142,
578        1706640318, 1458884714, 1736770650, 873953290, 90614842, 2469626026,
579        2722256026, 4056950986, 3231841530, 3633710875, 3924284203,
580        3128274811, 2332326731, 491870171, 740328427, 2142437307, 1321413515,
581        1339885689, 2125257801, 759078937, 474969129, 2316982457, 3144387721,
582        3908694233, 3649578217, 3250577160, 4040035128, 2740746088,
583        2452464472, 75009992, 889805816, 1721444264, 1475015576, 3377381528,
584        4164883624, 2880268536, 2598157512, 210341976, 1039680616, 1852454968,
585        1595665416, 1194072041, 1985856473, 634371977, 348023737, 2196457257,
586        3013251865, 3758681929, 3514383225, 3496417419, 3776367803,
587        2995040491, 2213897435, 362825803, 617716859, 2000937003, 1177695259,
588        1577439226, 1869880266, 1021732762, 228045738, 2613223226, 2863876874,
589        4179703642, 3360744298, 4213010622, 3396117646, 2583615710,
590        2827947246, 1054482558, 262927438, 1547274270, 1833458734, 1971300303,
591        1141797887, 396103599, 653122463, 2964911887, 2177442623, 3529203567,
592        3811216223, 3795101869, 3544546461, 2161574093, 2980500733, 670300269,
593        377629789, 1158696973, 1952547901, 1817608156, 1562881004, 246798268,
594        1069810572, 2844864284, 2564881196, 3413280636, 4194521932,
595        2917769428, 2627237092, 3473541300, 4269530244, 1747906580,
596        1499407396, 181229684, 1002212420, 596342693, 318415765, 1097392069,
597        1880689653, 3863750501, 3611161429, 2226097925, 3051248437,
598        3032512711, 2243013879, 3592671399, 3880912023, 1896294407,
599        1081539639, 333742183, 580211799, 983740342, 198409094, 1480656854,
600        1764807654, 4284874614, 3457428294, 2642827030, 2901902118,
601        2679771378, 2932589762, 4250515602, 3425201314, 1518157874,
602        1795986434, 949938258, 166673506, 299419523, 547951539, 1933275107,
603        1112194003, 3558840131, 3849208691, 3069984547, 2274224915,
604        2257832161, 3085049041, 3832569985, 3573658801, 1129617441,
605        1915046929, 565653569, 281470065, 150019984, 964742048, 1779611632,
606        1533240256, 3442888528, 4232551264, 2950031152, 2661561088,
607    ],
608    [
609        0, 819083365, 1638166730, 1366706351, 3276333460, 4087011825,
610        2733412702, 2453580091, 2206053849, 3014626748, 3805922579,
611        3524001142, 1077236813, 1894214696, 563160199, 289610978, 51846467,
612        868558118, 1655926153, 1382110700, 3227516119, 4035822770, 2717617181,
613        2435429496, 2154473626, 2964885759, 3788429392, 3508330549,
614        1126320398, 1945137515, 579221956, 307495329, 103692934, 922485475,
615        1737116236, 1465414185, 3311852306, 4122272631, 2764221400,
616        2484114365, 2236845919, 3045177146, 3841458069, 3559245808,
617        1176202955, 1992906414, 666836481, 393029220, 87631813, 904601504,
618        1688033039, 1414492010, 3329345105, 4137942580, 2815800987,
619        2533854974, 2252640796, 3063327353, 3890275030, 3610434227,
620        1158443912, 1977502701, 614990658, 343554855, 207385868, 1015958889,
621        1844970950, 1563049379, 3474232472, 4291210493, 2930828370,
622        2657279031, 2401353941, 3220437168, 4001738783, 3730278522,
623        1281958209, 2092636452, 768430475, 488597998, 256600143, 1067012138,
624        1861163141, 1581064416, 3422783963, 4241600958, 2913466641,
625        2641740148, 2352405910, 3169117683, 3985812828, 3711997241,
626        1333672962, 2141979751, 786058440, 503870637, 175263626, 983594991,
627        1809203008, 1526990629, 3376066078, 4192769659, 2828984020,
628        2555176625, 2299525715, 3118318134, 3903556249, 3631854332,
629        1246174151, 2056594338, 736324365, 456217448, 157635273, 968321708,
630        1757487619, 1477646950, 3391992669, 4211051320, 2877932439,
631        2606496754, 2316887824, 3133857653, 3955005402, 3681464255,
632        1229981316, 2038578913, 687109710, 405163563, 414771736, 678089341,
633        2031917778, 1238278839, 3689941900, 3944887273, 3126098758,
634        2324054819, 2613403585, 2870437796, 4200673035, 3400734574,
635        1485684309, 1751090736, 959041183, 167507706, 464516955, 729665342,
636        2047575953, 1255784436, 3639023311, 3895799466, 3108201989,
637        2308005472, 2563916418, 2818603751, 4185272904, 3382970925,
638        1536860950, 1799920499, 977195996, 183299001, 513200286, 776268027,
639        2134024276, 1340119089, 3722326282, 3976989039, 3162128832,
640        2359851429, 2649449799, 2906217762, 4233041293, 3432852968,
641        1587774675, 1852947638, 1057485849, 265669756, 495046109, 760477112,
642        2082848023, 1291289970, 3737726025, 3994752044, 3211615363,
643        2411685094, 2667345924, 2922266721, 4283959502, 3481940139,
644        1572116880, 1835442677, 1007741274, 214094143, 350527252, 607561585,
645        1967189982, 1167251387, 3618406016, 3883812581, 3053981258,
646        2262447663, 2543397581, 2806715048, 4131215879, 3337577058,
647        1423035225, 1677980476, 896908179, 94864374, 401834583, 656521778,
648        1985475229, 1183173368, 3569050563, 3832109990, 3038712585,
649        2244815724, 2492348302, 2757496811, 4113188676, 3321397025,
650        1472648730, 1729425023, 912434896, 112238261, 315270546, 572038647,
651        1936643416, 1136454973, 3514975238, 3780148323, 2955293900,
652        2163477673, 2444693579, 2707761198, 4027801729, 3233896676,
653        1392505311, 1647167930, 861634837, 59357552, 299743441, 554664116,
654        1887029275, 1085010046, 3533003077, 3796328736, 3006343567,
655        2212696554, 2459962632, 2725393773, 4077157826, 3285599655,
656        1374219420, 1631245561, 810327126, 10396723,
657    ],
658    [
659        0, 1409766726, 2819533452, 4228513738, 1441866729, 32929455,
660        4261382501, 2851658787, 2883733458, 4293202580, 65858910, 1475065880,
661        4262683707, 2853450109, 1444794039, 35298289, 1378416981, 103787539,
662        4196815833, 2921399967, 131717820, 1407094778, 2950131760, 4224722294,
663        4190813831, 2915953601, 1371804683, 96682317, 2889588078, 4164732968,
664        70596578, 1345479332, 2756833962, 4032210924, 207575078, 1482165600,
665        4053848387, 2779218949, 1504607183, 229191305, 263435640, 1538580542,
666        2814189556, 4089072306, 1514313361, 239453143, 4065082397, 2789960027,
667        4135128063, 2726190777, 1584898419, 175174709, 2743609366, 4153376080,
668        193364634, 1602344924, 1570458669, 161225067, 4120241825, 2710746087,
669        141193156, 1550662274, 2690958664, 4100165646, 1297060773, 424199907,
670        3846256937, 2974182511, 415150156, 1287251210, 2964331200, 3837218694,
671        3870151799, 2997518641, 1319337723, 446966717, 3009214366, 3881542360,
672        458382610, 1330972756, 526871280, 1264598966, 3077161084, 3815675194,
673        1251363097, 512826463, 3801670549, 3063920339, 3028626722, 3766646884,
674        478906286, 1217188584, 3782479563, 3044236173, 1232774215, 494792961,
675        3911082255, 3172545609, 1091619715, 353869509, 3169796838, 3907524512,
676        350349418, 1088863532, 1123821277, 385577883, 3941764177, 3203782935,
677        386729268, 1124749426, 3204689848, 3942972158, 3140917338, 4013018396,
678        322450134, 1195337616, 4006067123, 3133206261, 1187582271, 315507833,
679        282386312, 1154714318, 3101324548, 3973914690, 1160117345, 287484199,
680        3979040493, 3106669483, 2594121546, 3466097164, 848399814, 1721161856,
681        3480093859, 2607370725, 1734389295, 862452585, 830300312, 1702507998,
682        2574502420, 3446972242, 1686913905, 814421559, 3431131645, 2558901435,
683        3367493151, 2628815705, 1622766739, 884875733, 2638675446, 3376523440,
684        893933434, 1632567868, 1666554317, 928173195, 3411751745, 2673632775,
685        916765220, 1654910818, 2661945512, 3400353262, 1053742560, 1791590566,
686        2529197932, 3267832362, 1799353865, 1060676431, 3274792069,
687        2536901059, 2502726194, 3240871796, 1025652926, 1764060664,
688        3235754459, 2497373341, 1758665559, 1020546577, 1827024053, 954300915,
689        3303573049, 2431636351, 957812572, 1829788186, 2434377168, 3307139222,
690        3338955623, 2466463265, 1862975979, 990745773, 2465548430, 3337756104,
691        989585922, 1862055748, 3620779247, 2211963305, 2145263203, 735660837,
692        2183239430, 3592864320, 707739018, 2116577484, 2083713853, 674604667,
693        3560724913, 2151353591, 700698836, 2110031250, 2177727064, 3586797342,
694        2247642554, 3523156220, 771155766, 2045882992, 3490278995, 2215525141,
695        2013775071, 738234777, 773458536, 2048745262, 2249498852, 3524523426,
696        2079009153, 804027591, 3555033869, 2279790155, 1937851973, 663098115,
697        3683642569, 2408102287, 644900268, 1920413930, 2390675232, 3665402470,
698        3630367127, 2355385553, 1886235419, 610991709, 2375164542, 3650451256,
699        631015666, 1906040244, 564772624, 1974397526, 2309428636, 3718267098,
700        1951964409, 543148479, 3696637557, 2287035187, 2320234690, 3729567108,
701        574968398, 1984038664, 3753564971, 2344455789, 2008314279, 598942945,
702    ],
703    [
704        0, 1737424129, 3474848258, 2828207875, 2614592245, 4233723892,
705        1422555383, 860128758, 843281179, 1439534618, 4250831129, 2597352472,
706        2845110766, 3457813743, 1720257516, 17299181, 1686562358, 50862903,
707        2879069236, 3423985973, 4283524291, 2564790722, 810327745, 1472357312,
708        1455789357, 827025452, 2581098287, 4267086382, 3440515032, 2862410457,
709        34598362, 1702957275, 3373124716, 2927833453, 101725806, 1637796719,
710        1390038681, 894743448, 2647110811, 4199106970, 4216242039, 2629845622,
711        877872501, 1407039604, 1620655490, 118997123, 2944714624, 3356113537,
712        2911578714, 3389380443, 1654050904, 85470553, 912042159, 1372738990,
713        4181807789, 2664411052, 2680707393, 4165379136, 1356178243, 928734786,
714        69196724, 1670457013, 3405914550, 2894912695, 2549607977, 4034466600,
715        1491735595, 1063577898, 203451612, 1806602717, 3275593438, 2763221983,
716        2780077362, 3258605619, 1789486896, 220699185, 1046683591, 1508762310,
717        4051625413, 2532317380, 4084271135, 2499802398, 1013772829,
718        1541541660, 1755745002, 254310379, 2814079208, 3224735209, 3241310980,
719        2797372933, 237994246, 1772190727, 1525021169, 1030423792, 2516059123,
720        4067884786, 1593451077, 963960644, 2447890503, 4134085958, 3308101808,
721        2728615345, 170941106, 1841211315, 1824084318, 188197983, 2745477980,
722        3291108957, 4151235499, 2430611114, 947071401, 1610470568, 981255283,
723        1576155506, 4116790897, 2465186672, 2712356486, 3324361607,
724        1857469572, 154681733, 138393448, 1873889897, 3340914026, 2695671915,
725        2481468829, 4100376732, 1559613343, 997929630, 704883363, 1301108642,
726        3843969185, 2190519712, 2983471190, 3596277079, 2127155796, 424095573,
727        406903224, 2144216249, 3613205434, 2966675131, 2207734605, 3826886220,
728        1284153679, 721706062, 1317358741, 688632212, 2174269079, 3860220822,
729        3578973792, 3000775521, 441398370, 2109852003, 2093367182, 457753231,
730        3017524620, 3562354829, 3876699515, 2157920378, 671893369, 1333967480,
731        3809371855, 2223021006, 739482829, 1268605388, 2027545658, 525801787,
732        3083083320, 3494568761, 3511490004, 3066292437, 508620758, 2044596951,
733        1251645217, 756312608, 2240245027, 3792277538, 2273870073, 3758521848,
734        1217755899, 790333434, 475988492, 2077359885, 3544381454, 3033269519,
735        3050042338, 3527741155, 2060847584, 492369121, 773615895, 1234340886,
736        3774974741, 2257548820, 3186902154, 3665475979, 1927921288, 359089033,
737        639878783, 1101871998, 3913170045, 2393948540, 2411149201, 3896101520,
738        1084935571, 656683154, 341882212, 1944995941, 3682422630, 3170087527,
739        3648168636, 3204210621, 376395966, 1910613439, 1118117961, 623631688,
740        2377701963, 3929417546, 3945910695, 2361339046, 606874533, 1134745252,
741        1894142802, 392736339, 3220941136, 3631567953, 1962510566, 326596071,
742        3152311012, 3697971173, 4012771859, 2292250386, 540274705, 1203571984,
743        1186659325, 557057788, 2309423615, 3995729150, 3714939144, 3135472649,
744        309363466, 1979612683, 276786896, 2012320721, 3747779794, 3102501331,
745        2343103525, 3961917732, 1152718375, 591129382, 574365131, 1169350858,
746        3978422217, 2326731464, 3119226686, 3731186239, 1995859260, 293115965,
747    ],
748    [
749        0, 4060876286, 3790892301, 335044851, 3322195179, 872980757,
750        670089702, 3590114328, 2313498407, 2078876377, 1745961514, 2585612244,
751        1340179404, 3186462258, 2920672961, 1545200447, 371599551, 3827967297,
752        4157752754, 98453580, 3491923028, 573475242, 836168025, 3285902503,
753        2680358808, 1842285158, 2117560981, 2352703339, 1506257779,
754        2882250381, 3090400894, 1245694848, 743199102, 3728759936, 3451403379,
755        1068773773, 3930652053, 407171179, 196907160, 4189101414, 2779348569,
756        1470460839, 1146950484, 3058769578, 1672336050, 2443304780,
757        2186919871, 1884664385, 980056513, 3362157631, 3684570316, 697440562,
758        4235121962, 241359060, 496678951, 4019631577, 3012515558, 1099127576,
759        1383807979, 2692167189, 1972107789, 2273834995, 2491389696,
760        1718852350, 1486398204, 2861870850, 3110916081, 1264632335,
761        2661027351, 1821377513, 2137547546, 2372169444, 3514666459, 594640933,
762        814342358, 3263556904, 393814320, 3849661646, 4136455229, 75579843,
763        1321110083, 3165816765, 2940921678, 1564928688, 2293900968,
764        2058758998, 1766738853, 2604811867, 3344672100, 894937242, 649054313,
765        3567502743, 23005583, 4082304113, 3769328770, 312961404, 1960113026,
766        2262367868, 2501942927, 1730974577, 3000000361, 1088180887,
767        1394881124, 2703769498, 4247903397, 255709531, 482718120, 4006198358,
768        993357902, 3375988144, 3670089027, 684527805, 1660083005, 2432620227,
769        2198255152, 1896528846, 2767615958, 1459255848, 1157765851,
770        3071153957, 3944215578, 421263844, 182688023, 4176450793, 756242673,
771        3743372559, 3437704700, 1055602690, 2972796408, 1128089606,
772        1355098357, 2731091211, 2000021779, 2235163885, 2529264670,
773        1691191776, 953445087, 3403179809, 3642755026, 724306476, 4275095092,
774        215796682, 522496825, 3978864327, 2803330375, 1427857593, 1189281866,
775        3035565492, 1628684716, 2468334674, 2162666657, 1928044895, 787628640,
776        3707654046, 3473289069, 1024074387, 3908497035, 452649845, 151159686,
777        4212035192, 2642220166, 1869683064, 2089384331, 2391110773,
778        1534703725, 2843063699, 3129857376, 1216469150, 345521057, 3868472927,
779        4117517996, 123755346, 3533477706, 546347700, 862517831, 3244619705,
780        2338012217, 2035757511, 1789874484, 2560842954, 1298108626,
781        3209927980, 2896952799, 1588064289, 46011166, 4038205152, 3813309971,
782        289829869, 3300573173, 917942795, 625922808, 3611483910, 3920226052,
783        463858426, 140347913, 4199647223, 799886319, 3718333969, 3461949154,
784        1012214556, 1615644707, 2453718493, 2176361774, 1941219536,
785        2789762248, 1413769526, 1203505605, 3048211515, 4287614907, 226738757,
786        511419062, 3967266632, 965436240, 3414650542, 3632205405, 712180643,
787        1986715804, 2221337954, 2543750545, 1704099951, 2960018551,
788        1113735561, 1369055610, 2744528004, 3320166010, 938064772, 605150071,
789        3592279689, 65084049, 4058847087, 3793057692, 270105186, 1275107677,
790        3188495523, 2918511696, 1610152366, 2315531702, 2013804616,
791        1810913467, 2583450949, 3552812741, 567251771, 842527688, 3225157174,
792        365376046, 3888857040, 4097007395, 104813277, 1512485346, 2821372956,
793        3151158511, 1239339281, 2619481353, 1848512759, 2111205380,
794        2413460986,
795    ],
796];