Merge -r 127928:132243 from trunk
[official-gcc.git] / libgcc / config / libbid / bid128_2_str_tables.c
blob6d708f938391e949740b924d8b8fec55a73c9d4c
1 /* Copyright (C) 2007 Free Software Foundation, Inc.
3 This file is part of GCC.
5 GCC is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 2, or (at your option) any later
8 version.
10 In addition to the permissions in the GNU General Public License, the
11 Free Software Foundation gives you unlimited permission to link the
12 compiled version of this file into combinations with other programs,
13 and to distribute those combinations without any restriction coming
14 from the use of this file. (The General Public License restrictions
15 do apply in other respects; for example, they cover modification of
16 the file, and distribution when not linked into a combine
17 executable.)
19 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
20 WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
24 You should have received a copy of the GNU General Public License
25 along with GCC; see the file COPYING. If not, write to the Free
26 Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
27 02110-1301, USA. */
29 #include "bid_internal.h"
31 UINT64 Twoto60_m_10to18 = 152921504606846976LL;
32 UINT64 Twoto60 = 0x1000000000000000LL;
33 UINT64 Inv_Tento9 = 2305843009LL; /* floor(2^61/10^9) */
34 UINT32 Twoto30_m_10to9 = 73741824;
35 UINT32 Tento9 = 1000000000;
36 UINT32 Tento6 = 1000000;
37 UINT32 Tento3 = 1000;
39 const char midi_tbl[1000][3] = {
40 "000", "001", "002", "003", "004", "005", "006", "007", "008", "009",
41 "010", "011", "012", "013", "014", "015", "016", "017", "018", "019",
42 "020", "021", "022", "023", "024", "025", "026", "027", "028", "029",
43 "030", "031", "032", "033", "034", "035", "036", "037", "038", "039",
44 "040", "041", "042", "043", "044", "045", "046", "047", "048", "049",
45 "050", "051", "052", "053", "054", "055", "056", "057", "058", "059",
46 "060", "061", "062", "063", "064", "065", "066", "067", "068", "069",
47 "070", "071", "072", "073", "074", "075", "076", "077", "078", "079",
48 "080", "081", "082", "083", "084", "085", "086", "087", "088", "089",
49 "090", "091", "092", "093", "094", "095", "096", "097", "098", "099",
50 "100", "101", "102", "103", "104", "105", "106", "107", "108", "109",
51 "110", "111", "112", "113", "114", "115", "116", "117", "118", "119",
52 "120", "121", "122", "123", "124", "125", "126", "127", "128", "129",
53 "130", "131", "132", "133", "134", "135", "136", "137", "138", "139",
54 "140", "141", "142", "143", "144", "145", "146", "147", "148", "149",
55 "150", "151", "152", "153", "154", "155", "156", "157", "158", "159",
56 "160", "161", "162", "163", "164", "165", "166", "167", "168", "169",
57 "170", "171", "172", "173", "174", "175", "176", "177", "178", "179",
58 "180", "181", "182", "183", "184", "185", "186", "187", "188", "189",
59 "190", "191", "192", "193", "194", "195", "196", "197", "198", "199",
60 "200", "201", "202", "203", "204", "205", "206", "207", "208", "209",
61 "210", "211", "212", "213", "214", "215", "216", "217", "218", "219",
62 "220", "221", "222", "223", "224", "225", "226", "227", "228", "229",
63 "230", "231", "232", "233", "234", "235", "236", "237", "238", "239",
64 "240", "241", "242", "243", "244", "245", "246", "247", "248", "249",
65 "250", "251", "252", "253", "254", "255", "256", "257", "258", "259",
66 "260", "261", "262", "263", "264", "265", "266", "267", "268", "269",
67 "270", "271", "272", "273", "274", "275", "276", "277", "278", "279",
68 "280", "281", "282", "283", "284", "285", "286", "287", "288", "289",
69 "290", "291", "292", "293", "294", "295", "296", "297", "298", "299",
70 "300", "301", "302", "303", "304", "305", "306", "307", "308", "309",
71 "310", "311", "312", "313", "314", "315", "316", "317", "318", "319",
72 "320", "321", "322", "323", "324", "325", "326", "327", "328", "329",
73 "330", "331", "332", "333", "334", "335", "336", "337", "338", "339",
74 "340", "341", "342", "343", "344", "345", "346", "347", "348", "349",
75 "350", "351", "352", "353", "354", "355", "356", "357", "358", "359",
76 "360", "361", "362", "363", "364", "365", "366", "367", "368", "369",
77 "370", "371", "372", "373", "374", "375", "376", "377", "378", "379",
78 "380", "381", "382", "383", "384", "385", "386", "387", "388", "389",
79 "390", "391", "392", "393", "394", "395", "396", "397", "398", "399",
80 "400", "401", "402", "403", "404", "405", "406", "407", "408", "409",
81 "410", "411", "412", "413", "414", "415", "416", "417", "418", "419",
82 "420", "421", "422", "423", "424", "425", "426", "427", "428", "429",
83 "430", "431", "432", "433", "434", "435", "436", "437", "438", "439",
84 "440", "441", "442", "443", "444", "445", "446", "447", "448", "449",
85 "450", "451", "452", "453", "454", "455", "456", "457", "458", "459",
86 "460", "461", "462", "463", "464", "465", "466", "467", "468", "469",
87 "470", "471", "472", "473", "474", "475", "476", "477", "478", "479",
88 "480", "481", "482", "483", "484", "485", "486", "487", "488", "489",
89 "490", "491", "492", "493", "494", "495", "496", "497", "498", "499",
90 "500", "501", "502", "503", "504", "505", "506", "507", "508", "509",
91 "510", "511", "512", "513", "514", "515", "516", "517", "518", "519",
92 "520", "521", "522", "523", "524", "525", "526", "527", "528", "529",
93 "530", "531", "532", "533", "534", "535", "536", "537", "538", "539",
94 "540", "541", "542", "543", "544", "545", "546", "547", "548", "549",
95 "550", "551", "552", "553", "554", "555", "556", "557", "558", "559",
96 "560", "561", "562", "563", "564", "565", "566", "567", "568", "569",
97 "570", "571", "572", "573", "574", "575", "576", "577", "578", "579",
98 "580", "581", "582", "583", "584", "585", "586", "587", "588", "589",
99 "590", "591", "592", "593", "594", "595", "596", "597", "598", "599",
100 "600", "601", "602", "603", "604", "605", "606", "607", "608", "609",
101 "610", "611", "612", "613", "614", "615", "616", "617", "618", "619",
102 "620", "621", "622", "623", "624", "625", "626", "627", "628", "629",
103 "630", "631", "632", "633", "634", "635", "636", "637", "638", "639",
104 "640", "641", "642", "643", "644", "645", "646", "647", "648", "649",
105 "650", "651", "652", "653", "654", "655", "656", "657", "658", "659",
106 "660", "661", "662", "663", "664", "665", "666", "667", "668", "669",
107 "670", "671", "672", "673", "674", "675", "676", "677", "678", "679",
108 "680", "681", "682", "683", "684", "685", "686", "687", "688", "689",
109 "690", "691", "692", "693", "694", "695", "696", "697", "698", "699",
110 "700", "701", "702", "703", "704", "705", "706", "707", "708", "709",
111 "710", "711", "712", "713", "714", "715", "716", "717", "718", "719",
112 "720", "721", "722", "723", "724", "725", "726", "727", "728", "729",
113 "730", "731", "732", "733", "734", "735", "736", "737", "738", "739",
114 "740", "741", "742", "743", "744", "745", "746", "747", "748", "749",
115 "750", "751", "752", "753", "754", "755", "756", "757", "758", "759",
116 "760", "761", "762", "763", "764", "765", "766", "767", "768", "769",
117 "770", "771", "772", "773", "774", "775", "776", "777", "778", "779",
118 "780", "781", "782", "783", "784", "785", "786", "787", "788", "789",
119 "790", "791", "792", "793", "794", "795", "796", "797", "798", "799",
120 "800", "801", "802", "803", "804", "805", "806", "807", "808", "809",
121 "810", "811", "812", "813", "814", "815", "816", "817", "818", "819",
122 "820", "821", "822", "823", "824", "825", "826", "827", "828", "829",
123 "830", "831", "832", "833", "834", "835", "836", "837", "838", "839",
124 "840", "841", "842", "843", "844", "845", "846", "847", "848", "849",
125 "850", "851", "852", "853", "854", "855", "856", "857", "858", "859",
126 "860", "861", "862", "863", "864", "865", "866", "867", "868", "869",
127 "870", "871", "872", "873", "874", "875", "876", "877", "878", "879",
128 "880", "881", "882", "883", "884", "885", "886", "887", "888", "889",
129 "890", "891", "892", "893", "894", "895", "896", "897", "898", "899",
130 "900", "901", "902", "903", "904", "905", "906", "907", "908", "909",
131 "910", "911", "912", "913", "914", "915", "916", "917", "918", "919",
132 "920", "921", "922", "923", "924", "925", "926", "927", "928", "929",
133 "930", "931", "932", "933", "934", "935", "936", "937", "938", "939",
134 "940", "941", "942", "943", "944", "945", "946", "947", "948", "949",
135 "950", "951", "952", "953", "954", "955", "956", "957", "958", "959",
136 "960", "961", "962", "963", "964", "965", "966", "967", "968", "969",
137 "970", "971", "972", "973", "974", "975", "976", "977", "978", "979",
138 "980", "981", "982", "983", "984", "985", "986", "987", "988", "989",
139 "990", "991", "992", "993", "994", "995", "996", "997", "998", "999"
142 const UINT64 mod10_18_tbl[9][128] = {
143 // 2^59 = 576460752303423488, A and B breakdown, where data = A*10^18 + B
146 0LL, 0LL, 0LL, 576460752303423488LL,
147 // 0*2^59, 1*2^59
148 1LL, 152921504606846976LL, 1LL, 729382256910270464LL,
149 // 2*2^59, 3*2^59
150 2LL, 305843009213693952LL, 2LL, 882303761517117440LL,
151 // 4*2^59, 5*2^59
152 3LL, 458764513820540928LL, 4LL, 35225266123964416LL,
153 // 6*2^59, 7*2^59
154 4LL, 611686018427387904LL, 5LL, 188146770730811392LL,
155 // 8*2^59, 9*2^59
156 5LL, 764607523034234880LL, 6LL, 341068275337658368LL,
157 // 10*2^59, 11*2^59
158 6LL, 917529027641081856LL, 7LL, 493989779944505344LL,
159 // 12*2^59, 13*2^59
160 8LL, 70450532247928832LL, 8LL, 646911284551352320LL,
161 // 14*2^59, 15*2^59
162 9LL, 223372036854775808LL, 9LL, 799832789158199296LL,
163 // 16*2^59, 17*2^59
164 10LL, 376293541461622784LL, 10LL, 952754293765046272LL,
165 // 18*2^59, 19*2^59
166 11LL, 529215046068469760LL, 12LL, 105675798371893248LL,
167 // 20*2^59, 21*2^59
168 12LL, 682136550675316736LL, 13LL, 258597302978740224LL,
169 // 22*2^59, 23*2^59
170 13LL, 835058055282163712LL, 14LL, 411518807585587200LL,
171 // 24*2^59, 25*2^59
172 14LL, 987979559889010688LL, 15LL, 564440312192434176LL,
173 // 26*2^59, 27*2^59
174 16LL, 140901064495857664LL, 16LL, 717361816799281152LL,
175 // 28*2^59, 29*2^59
176 17LL, 293822569102704640LL, 17LL, 870283321406128128LL,
177 // 30*2^59, 31*2^59
178 18LL, 446744073709551616LL, 19LL, 23204826012975104LL,
179 // 32*2^59, 33*2^59
180 19LL, 599665578316398592LL, 20LL, 176126330619822080LL,
181 // 34*2^59, 35*2^59
182 20LL, 752587082923245568LL, 21LL, 329047835226669056LL,
183 // 36*2^59, 37*2^59
184 21LL, 905508587530092544LL, 22LL, 481969339833516032LL,
185 // 38*2^59, 39*2^59
186 23LL, 58430092136939520LL, 23LL, 634890844440363008LL,
187 // 40*2^59, 41*2^59
188 24LL, 211351596743786496LL, 24LL, 787812349047209984LL,
189 // 42*2^59, 43*2^59
190 25LL, 364273101350633472LL, 25LL, 940733853654056960LL,
191 // 44*2^59, 45*2^59
192 26LL, 517194605957480448LL, 27LL, 93655358260903936LL,
193 // 46*2^59, 47*2^59
194 27LL, 670116110564327424LL, 28LL, 246576862867750912LL,
195 // 48*2^59, 49*2^59
196 28LL, 823037615171174400LL, 29LL, 399498367474597888LL,
197 // 50*2^59, 51*2^59
198 29LL, 975959119778021376LL, 30LL, 552419872081444864LL,
199 // 52*2^59, 53*2^59
200 31LL, 128880624384868352LL, 31LL, 705341376688291840LL,
201 // 54*2^59, 55*2^59
202 32LL, 281802128991715328LL, 32LL, 858262881295138816LL,
203 // 56*2^59, 57*2^59
204 33LL, 434723633598562304LL, 34LL, 11184385901985792LL,
205 // 58*2^59, 59*2^59
206 34LL, 587645138205409280LL, 35LL, 164105890508832768LL,
207 // 60*2^59, 61*2^59
208 35LL, 740566642812256256LL, 36LL, 317027395115679744LL,
209 // 62*2^59, 63*2^59
213 // 2^65 = 36*10^18 + 893488147419103232
214 0LL, 0LL, 36LL, 893488147419103232LL,
215 // 0*2^65, 1*2^65
216 73LL, 786976294838206464LL, 110LL, 680464442257309696LL,
217 // 2*2^65, 3*2^65
218 147LL, 573952589676412928LL, 184LL, 467440737095516160LL,
219 // 4*2^65, 5*2^65
220 221LL, 360928884514619392LL, 258LL, 254417031933722624LL,
221 // 6*2^65, 7*2^65
222 295LL, 147905179352825856LL, 332LL, 41393326771929088LL,
223 // 8*2^65, 9*2^65
224 368LL, 934881474191032320LL, 405LL, 828369621610135552LL,
225 // 0*2^65, 1*2^65
226 442LL, 721857769029238784LL, 479LL, 615345916448342016LL,
227 // 2*2^65, 3*2^65
228 516LL, 508834063867445248LL, 553LL, 402322211286548480LL,
229 // 4*2^65, 5*2^65
230 590LL, 295810358705651712LL, 627LL, 189298506124754944LL,
231 // 6*2^65, 7*2^65
232 664LL, 82786653543858176LL, 700LL, 976274800962961408LL,
233 // 8*2^65, 9*2^65
234 737LL, 869762948382064640LL, 774LL, 763251095801167872LL,
235 // 0*2^65, 1*2^65
236 811LL, 656739243220271104LL, 848LL, 550227390639374336LL,
237 // 2*2^65, 3*2^65
238 885LL, 443715538058477568LL, 922LL, 337203685477580800LL,
239 // 4*2^65, 5*2^65
240 959LL, 230691832896684032LL, 996LL, 124179980315787264LL,
241 // 6*2^65, 7*2^65
242 1033LL, 17668127734890496LL, 1069LL, 911156275153993728LL,
243 // 8*2^65, 9*2^65
244 1106LL, 804644422573096960LL, 1143LL, 698132569992200192LL,
245 // 0*2^65, 1*2^65
246 1180LL, 591620717411303424LL, 1217LL, 485108864830406656LL,
247 // 2*2^65, 3*2^65
248 1254LL, 378597012249509888LL, 1291LL, 272085159668613120LL,
249 // 4*2^65, 5*2^65
250 1328LL, 165573307087716352LL, 1365LL, 59061454506819584LL,
251 // 6*2^65, 7*2^65
252 1401LL, 952549601925922816LL, 1438LL, 846037749345026048LL,
253 // 8*2^65, 9*2^65
254 1475LL, 739525896764129280LL, 1512LL, 633014044183232512LL,
255 // 0*2^65, 1*2^65
256 1549LL, 526502191602335744LL, 1586LL, 419990339021438976LL,
257 // 2*2^65, 3*2^65
258 1623LL, 313478486440542208LL, 1660LL, 206966633859645440LL,
259 // 4*2^65, 5*2^65
260 1697LL, 100454781278748672LL, 1733LL, 993942928697851904LL,
261 // 6*2^65, 7*2^65
262 1770LL, 887431076116955136LL, 1807LL, 780919223536058368LL,
263 // 8*2^65, 9*2^65
264 1844LL, 674407370955161600LL, 1881LL, 567895518374264832LL,
265 // 0*2^65, 1*2^65
266 1918LL, 461383665793368064LL, 1955LL, 354871813212471296LL,
267 // 2*2^65, 3*2^65
268 1992LL, 248359960631574528LL, 2029LL, 141848108050677760LL,
269 // 4*2^65, 5*2^65
270 2066LL, 35336255469780992LL, 2102LL, 928824402888884224LL,
271 // 6*2^65, 7*2^65
272 2139LL, 822312550307987456LL, 2176LL, 715800697727090688LL,
273 // 8*2^65, 9*2^65
274 2213LL, 609288845146193920LL, 2250LL, 502776992565297152LL,
275 // 0*2^65, 1*2^65
276 2287LL, 396265139984400384LL, 2324LL, 289753287403503616LL,
277 // 2*2^65, 3*2^65
281 0LL, 0LL, 2361LL, 183241434822606848LL,
282 4722LL, 366482869645213696LL, 7083LL, 549724304467820544LL,
283 9444LL, 732965739290427392LL, 11805LL, 916207174113034240LL,
284 14167LL, 99448608935641088LL, 16528LL, 282690043758247936LL,
285 18889LL, 465931478580854784LL, 21250LL, 649172913403461632LL,
286 23611LL, 832414348226068480LL, 25973LL, 15655783048675328LL,
287 28334LL, 198897217871282176LL, 30695LL, 382138652693889024LL,
288 33056LL, 565380087516495872LL, 35417LL, 748621522339102720LL,
289 37778LL, 931862957161709568LL, 40140LL, 115104391984316416LL,
290 42501LL, 298345826806923264LL, 44862LL, 481587261629530112LL,
291 47223LL, 664828696452136960LL, 49584LL, 848070131274743808LL,
292 51946LL, 31311566097350656LL, 54307LL, 214553000919957504LL,
293 56668LL, 397794435742564352LL, 59029LL, 581035870565171200LL,
294 61390LL, 764277305387778048LL, 63751LL, 947518740210384896LL,
295 66113LL, 130760175032991744LL, 68474LL, 314001609855598592LL,
296 70835LL, 497243044678205440LL, 73196LL, 680484479500812288LL,
297 75557LL, 863725914323419136LL, 77919LL, 46967349146025984LL,
298 80280LL, 230208783968632832LL, 82641LL, 413450218791239680LL,
299 85002LL, 596691653613846528LL, 87363LL, 779933088436453376LL,
300 89724LL, 963174523259060224LL, 92086LL, 146415958081667072LL,
301 94447LL, 329657392904273920LL, 96808LL, 512898827726880768LL,
302 99169LL, 696140262549487616LL, 101530LL, 879381697372094464LL,
303 103892LL, 62623132194701312LL, 106253LL, 245864567017308160LL,
304 108614LL, 429106001839915008LL, 110975LL, 612347436662521856LL,
305 113336LL, 795588871485128704LL, 115697LL, 978830306307735552LL,
306 118059LL, 162071741130342400LL, 120420LL, 345313175952949248LL,
307 122781LL, 528554610775556096LL, 125142LL, 711796045598162944LL,
308 127503LL, 895037480420769792LL, 129865LL, 78278915243376640LL,
309 132226LL, 261520350065983488LL, 134587LL, 444761784888590336LL,
310 136948LL, 628003219711197184LL, 139309LL, 811244654533804032LL,
311 141670LL, 994486089356410880LL, 144032LL, 177727524179017728LL,
312 146393LL, 360968959001624576LL, 148754LL, 544210393824231424LL,
316 0LL, 0LL, 151115LL, 727451828646838272LL,
317 302231LL, 454903657293676544LL, 453347LL, 182355485940514816LL,
318 604462LL, 909807314587353088LL, 755578LL, 637259143234191360LL,
319 906694LL, 364710971881029632LL, 1057810LL, 92162800527867904LL,
320 1208925LL, 819614629174706176LL, 1360041LL, 547066457821544448LL,
321 1511157LL, 274518286468382720LL, 1662273LL, 1970115115220992LL,
322 1813388LL, 729421943762059264LL, 1964504LL, 456873772408897536LL,
323 2115620LL, 184325601055735808LL, 2266735LL, 911777429702574080LL,
324 2417851LL, 639229258349412352LL, 2568967LL, 366681086996250624LL,
325 2720083LL, 94132915643088896LL, 2871198LL, 821584744289927168LL,
326 3022314LL, 549036572936765440LL, 3173430LL, 276488401583603712LL,
327 3324546LL, 3940230230441984LL, 3475661LL, 731392058877280256LL,
328 3626777LL, 458843887524118528LL, 3777893LL, 186295716170956800LL,
329 3929008LL, 913747544817795072LL, 4080124LL, 641199373464633344LL,
330 4231240LL, 368651202111471616LL, 4382356LL, 96103030758309888LL,
331 4533471LL, 823554859405148160LL, 4684587LL, 551006688051986432LL,
332 4835703LL, 278458516698824704LL, 4986819LL, 5910345345662976LL,
333 5137934LL, 733362173992501248LL, 5289050LL, 460814002639339520LL,
334 5440166LL, 188265831286177792LL, 5591281LL, 915717659933016064LL,
335 5742397LL, 643169488579854336LL, 5893513LL, 370621317226692608LL,
336 6044629LL, 98073145873530880LL, 6195744LL, 825524974520369152LL,
337 6346860LL, 552976803167207424LL, 6497976LL, 280428631814045696LL,
338 6649092LL, 7880460460883968LL, 6800207LL, 735332289107722240LL,
339 6951323LL, 462784117754560512LL, 7102439LL, 190235946401398784LL,
340 7253554LL, 917687775048237056LL, 7404670LL, 645139603695075328LL,
341 7555786LL, 372591432341913600LL, 7706902LL, 100043260988751872LL,
342 7858017LL, 827495089635590144LL, 8009133LL, 554946918282428416LL,
343 8160249LL, 282398746929266688LL, 8311365LL, 9850575576104960LL,
344 8462480LL, 737302404222943232LL, 8613596LL, 464754232869781504LL,
345 8764712LL, 192206061516619776LL, 8915827LL, 919657890163458048LL,
346 9066943LL, 647109718810296320LL, 9218059LL, 374561547457134592LL,
347 9369175LL, 102013376103972864LL, 9520290LL, 829465204750811136LL,
351 0LL, 0LL, 9671406LL, 556917033397649408LL,
352 19342813LL, 113834066795298816LL, 29014219LL, 670751100192948224LL,
353 38685626LL, 227668133590597632LL, 48357032LL, 784585166988247040LL,
354 58028439LL, 341502200385896448LL, 67699845LL, 898419233783545856LL,
355 77371252LL, 455336267181195264LL, 87042659LL, 12253300578844672LL,
356 96714065LL, 569170333976494080LL, 106385472LL, 126087367374143488LL,
357 116056878LL, 683004400771792896LL, 125728285LL, 239921434169442304LL,
358 135399691LL, 796838467567091712LL, 145071098LL, 353755500964741120LL,
359 154742504LL, 910672534362390528LL, 164413911LL, 467589567760039936LL,
360 174085318LL, 24506601157689344LL, 183756724LL, 581423634555338752LL,
361 193428131LL, 138340667952988160LL, 203099537LL, 695257701350637568LL,
362 212770944LL, 252174734748286976LL, 222442350LL, 809091768145936384LL,
363 232113757LL, 366008801543585792LL, 241785163LL, 922925834941235200LL,
364 251456570LL, 479842868338884608LL, 261127977LL, 36759901736534016LL,
365 270799383LL, 593676935134183424LL, 280470790LL, 150593968531832832LL,
366 290142196LL, 707511001929482240LL, 299813603LL, 264428035327131648LL,
367 309485009LL, 821345068724781056LL, 319156416LL, 378262102122430464LL,
368 328827822LL, 935179135520079872LL, 338499229LL, 492096168917729280LL,
369 348170636LL, 49013202315378688LL, 357842042LL, 605930235713028096LL,
370 367513449LL, 162847269110677504LL, 377184855LL, 719764302508326912LL,
371 386856262LL, 276681335905976320LL, 396527668LL, 833598369303625728LL,
372 406199075LL, 390515402701275136LL, 415870481LL, 947432436098924544LL,
373 425541888LL, 504349469496573952LL, 435213295LL, 61266502894223360LL,
374 444884701LL, 618183536291872768LL, 454556108LL, 175100569689522176LL,
375 464227514LL, 732017603087171584LL, 473898921LL, 288934636484820992LL,
376 483570327LL, 845851669882470400LL, 493241734LL, 402768703280119808LL,
377 502913140LL, 959685736677769216LL, 512584547LL, 516602770075418624LL,
378 522255954LL, 73519803473068032LL, 531927360LL, 630436836870717440LL,
379 541598767LL, 187353870268366848LL, 551270173LL, 744270903666016256LL,
380 560941580LL, 301187937063665664LL, 570612986LL, 858104970461315072LL,
381 580284393LL, 415022003858964480LL, 589955799LL, 971939037256613888LL,
382 599627206LL, 528856070654263296LL, 609298613LL, 85773104051912704LL,
386 0LL, 0LL, 618970019LL, 642690137449562112LL,
387 1237940039LL, 285380274899124224LL, 1856910058LL,
388 928070412348686336LL,
389 2475880078LL, 570760549798248448LL, 3094850098LL,
390 213450687247810560LL,
391 3713820117LL, 856140824697372672LL, 4332790137LL,
392 498830962146934784LL,
393 4951760157LL, 141521099596496896LL, 5570730176LL,
394 784211237046059008LL,
395 6189700196LL, 426901374495621120LL, 6808670216LL,
396 69591511945183232LL,
397 7427640235LL, 712281649394745344LL, 8046610255LL,
398 354971786844307456LL,
399 8665580274LL, 997661924293869568LL, 9284550294LL,
400 640352061743431680LL,
401 9903520314LL, 283042199192993792LL, 10522490333LL,
402 925732336642555904LL,
403 11141460353LL, 568422474092118016LL, 11760430373LL,
404 211112611541680128LL,
405 12379400392LL, 853802748991242240LL, 12998370412LL,
406 496492886440804352LL,
407 13617340432LL, 139183023890366464LL, 14236310451LL,
408 781873161339928576LL,
409 14855280471LL, 424563298789490688LL, 15474250491LL,
410 67253436239052800LL,
411 16093220510LL, 709943573688614912LL, 16712190530LL,
412 352633711138177024LL,
413 17331160549LL, 995323848587739136LL, 17950130569LL,
414 638013986037301248LL,
415 18569100589LL, 280704123486863360LL, 19188070608LL,
416 923394260936425472LL,
417 19807040628LL, 566084398385987584LL, 20426010648LL,
418 208774535835549696LL,
419 21044980667LL, 851464673285111808LL, 21663950687LL,
420 494154810734673920LL,
421 22282920707LL, 136844948184236032LL, 22901890726LL,
422 779535085633798144LL,
423 23520860746LL, 422225223083360256LL, 24139830766LL,
424 64915360532922368LL,
425 24758800785LL, 707605497982484480LL, 25377770805LL,
426 350295635432046592LL,
427 25996740824LL, 992985772881608704LL, 26615710844LL,
428 635675910331170816LL,
429 27234680864LL, 278366047780732928LL, 27853650883LL,
430 921056185230295040LL,
431 28472620903LL, 563746322679857152LL, 29091590923LL,
432 206436460129419264LL,
433 29710560942LL, 849126597578981376LL, 30329530962LL,
434 491816735028543488LL,
435 30948500982LL, 134506872478105600LL, 31567471001LL,
436 777197009927667712LL,
437 32186441021LL, 419887147377229824LL, 32805411041LL,
438 62577284826791936LL,
439 33424381060LL, 705267422276354048LL, 34043351080LL,
440 347957559725916160LL,
441 34662321099LL, 990647697175478272LL, 35281291119LL,
442 633337834625040384LL,
443 35900261139LL, 276027972074602496LL, 36519231158LL,
444 918718109524164608LL,
445 37138201178LL, 561408246973726720LL, 37757171198LL,
446 204098384423288832LL,
447 38376141217LL, 846788521872850944LL, 38995111237LL,
448 489478659322413056LL,
452 0LL, 0LL, 39614081257LL, 132168796771975168LL,
453 79228162514LL, 264337593543950336LL, 118842243771LL,
454 396506390315925504LL,
455 158456325028LL, 528675187087900672LL, 198070406285LL,
456 660843983859875840LL,
457 237684487542LL, 793012780631851008LL, 277298568799LL,
458 925181577403826176LL,
459 316912650057LL, 57350374175801344LL, 356526731314LL,
460 189519170947776512LL,
461 396140812571LL, 321687967719751680LL, 435754893828LL,
462 453856764491726848LL,
463 475368975085LL, 586025561263702016LL, 514983056342LL,
464 718194358035677184LL,
465 554597137599LL, 850363154807652352LL, 594211218856LL,
466 982531951579627520LL,
467 633825300114LL, 114700748351602688LL, 673439381371LL,
468 246869545123577856LL,
469 713053462628LL, 379038341895553024LL, 752667543885LL,
470 511207138667528192LL,
471 792281625142LL, 643375935439503360LL, 831895706399LL,
472 775544732211478528LL,
473 871509787656LL, 907713528983453696LL, 911123868914LL,
474 39882325755428864LL,
475 950737950171LL, 172051122527404032LL, 990352031428LL,
476 304219919299379200LL,
477 1029966112685LL, 436388716071354368LL, 1069580193942LL,
478 568557512843329536LL,
479 1109194275199LL, 700726309615304704LL, 1148808356456LL,
480 832895106387279872LL,
481 1188422437713LL, 965063903159255040LL, 1228036518971LL,
482 97232699931230208LL,
483 1267650600228LL, 229401496703205376LL, 1307264681485LL,
484 361570293475180544LL,
485 1346878762742LL, 493739090247155712LL, 1386492843999LL,
486 625907887019130880LL,
487 1426106925256LL, 758076683791106048LL, 1465721006513LL,
488 890245480563081216LL,
489 1505335087771LL, 22414277335056384LL, 1544949169028LL,
490 154583074107031552LL,
491 1584563250285LL, 286751870879006720LL, 1624177331542LL,
492 418920667650981888LL,
493 1663791412799LL, 551089464422957056LL, 1703405494056LL,
494 683258261194932224LL,
495 1743019575313LL, 815427057966907392LL, 1782633656570LL,
496 947595854738882560LL,
497 1822247737828LL, 79764651510857728LL, 1861861819085LL,
498 211933448282832896LL,
499 1901475900342LL, 344102245054808064LL, 1941089981599LL,
500 476271041826783232LL,
501 1980704062856LL, 608439838598758400LL, 2020318144113LL,
502 740608635370733568LL,
503 2059932225370LL, 872777432142708736LL, 2099546306628LL,
504 4946228914683904LL,
505 2139160387885LL, 137115025686659072LL, 2178774469142LL,
506 269283822458634240LL,
507 2218388550399LL, 401452619230609408LL, 2258002631656LL,
508 533621416002584576LL,
509 2297616712913LL, 665790212774559744LL, 2337230794170LL,
510 797959009546534912LL,
511 2376844875427LL, 930127806318510080LL, 2416458956685LL,
512 62296603090485248LL,
513 2456073037942LL, 194465399862460416LL, 2495687119199LL,
514 326634196634435584LL,
518 0LL, 0LL, 2535301200456LL, 458802993406410752LL,
519 5070602400912LL, 917605986812821504LL, 7605903601369LL,
520 376408980219232256LL,
521 10141204801825LL, 835211973625643008LL, 12676506002282LL,
522 294014967032053760LL,
523 15211807202738LL, 752817960438464512LL, 17747108403195LL,
524 211620953844875264LL,
525 20282409603651LL, 670423947251286016LL, 22817710804108LL,
526 129226940657696768LL,
527 25353012004564LL, 588029934064107520LL, 27888313205021LL,
528 46832927470518272LL,
529 30423614405477LL, 505635920876929024LL, 32958915605933LL,
530 964438914283339776LL,
531 35494216806390LL, 423241907689750528LL, 38029518006846LL,
532 882044901096161280LL,
533 40564819207303LL, 340847894502572032LL, 43100120407759LL,
534 799650887908982784LL,
535 45635421608216LL, 258453881315393536LL, 48170722808672LL,
536 717256874721804288LL,
537 50706024009129LL, 176059868128215040LL, 53241325209585LL,
538 634862861534625792LL,
539 55776626410042LL, 93665854941036544LL, 58311927610498LL,
540 552468848347447296LL,
541 60847228810955LL, 11271841753858048LL, 63382530011411LL,
542 470074835160268800LL,
543 65917831211867LL, 928877828566679552LL, 68453132412324LL,
544 387680821973090304LL,
545 70988433612780LL, 846483815379501056LL, 73523734813237LL,
546 305286808785911808LL,
547 76059036013693LL, 764089802192322560LL, 78594337214150LL,
548 222892795598733312LL,
549 81129638414606LL, 681695789005144064LL, 83664939615063LL,
550 140498782411554816LL,
551 86200240815519LL, 599301775817965568LL, 88735542015976LL,
552 58104769224376320LL,
553 91270843216432LL, 516907762630787072LL, 93806144416888LL,
554 975710756037197824LL,
555 96341445617345LL, 434513749443608576LL, 98876746817801LL,
556 893316742850019328LL,
557 101412048018258LL, 352119736256430080LL, 103947349218714LL,
558 810922729662840832LL,
559 106482650419171LL, 269725723069251584LL, 109017951619627LL,
560 728528716475662336LL,
561 111553252820084LL, 187331709882073088LL, 114088554020540LL,
562 646134703288483840LL,
563 116623855220997LL, 104937696694894592LL, 119159156421453LL,
564 563740690101305344LL,
565 121694457621910LL, 22543683507716096LL, 124229758822366LL,
566 481346676914126848LL,
567 126765060022822LL, 940149670320537600LL, 129300361223279LL,
568 398952663726948352LL,
569 131835662423735LL, 857755657133359104LL, 134370963624192LL,
570 316558650539769856LL,
571 136906264824648LL, 775361643946180608LL, 139441566025105LL,
572 234164637352591360LL,
573 141976867225561LL, 692967630759002112LL, 144512168426018LL,
574 151770624165412864LL,
575 147047469626474LL, 610573617571823616LL, 149582770826931LL,
576 69376610978234368LL,
577 152118072027387LL, 528179604384645120LL, 154653373227843LL,
578 986982597791055872LL,
579 157188674428300LL, 445785591197466624LL, 159723975628756LL,
580 904588584603877376LL,
584 0LL, 0LL, 162259276829213LL, 363391578010288128LL,
585 324518553658426LL, 726783156020576256LL, 486777830487640LL,
586 90174734030864384LL,
587 649037107316853LL, 453566312041152512LL, 811296384146066LL,
588 816957890051440640LL,
589 973555660975280LL, 180349468061728768LL, 1135814937804493LL,
590 543741046072016896LL,
591 1298074214633706LL, 907132624082305024LL, 1460333491462920LL,
592 270524202092593152LL,
593 1622592768292133LL, 633915780102881280LL, 1784852045121346LL,
594 997307358113169408LL,
595 1947111321950560LL, 360698936123457536LL, 2109370598779773LL,
596 724090514133745664LL,
597 2271629875608987LL, 87482092144033792LL, 2433889152438200LL,
598 450873670154321920LL,
599 2596148429267413LL, 814265248164610048LL, 2758407706096627LL,
600 177656826174898176LL,
601 2920666982925840LL, 541048404185186304LL, 3082926259755053LL,
602 904439982195474432LL,
603 3245185536584267LL, 267831560205762560LL, 3407444813413480LL,
604 631223138216050688LL,
605 3569704090242693LL, 994614716226338816LL, 3731963367071907LL,
606 358006294236626944LL,
607 3894222643901120LL, 721397872246915072LL, 4056481920730334LL,
608 84789450257203200LL,
609 4218741197559547LL, 448181028267491328LL, 4381000474388760LL,
610 811572606277779456LL,
611 4543259751217974LL, 174964184288067584LL, 4705519028047187LL,
612 538355762298355712LL,
613 4867778304876400LL, 901747340308643840LL, 5030037581705614LL,
614 265138918318931968LL,
615 5192296858534827LL, 628530496329220096LL, 5354556135364040LL,
616 991922074339508224LL,
617 5516815412193254LL, 355313652349796352LL, 5679074689022467LL,
618 718705230360084480LL,
619 5841333965851681LL, 82096808370372608LL, 6003593242680894LL,
620 445488386380660736LL,
621 6165852519510107LL, 808879964390948864LL, 6328111796339321LL,
622 172271542401236992LL,
623 6490371073168534LL, 535663120411525120LL, 6652630349997747LL,
624 899054698421813248LL,
625 6814889626826961LL, 262446276432101376LL, 6977148903656174LL,
626 625837854442389504LL,
627 7139408180485387LL, 989229432452677632LL, 7301667457314601LL,
628 352621010462965760LL,
629 7463926734143814LL, 716012588473253888LL, 7626186010973028LL,
630 79404166483542016LL,
631 7788445287802241LL, 442795744493830144LL, 7950704564631454LL,
632 806187322504118272LL,
633 8112963841460668LL, 169578900514406400LL, 8275223118289881LL,
634 532970478524694528LL,
635 8437482395119094LL, 896362056534982656LL, 8599741671948308LL,
636 259753634545270784LL,
637 8762000948777521LL, 623145212555558912LL, 8924260225606734LL,
638 986536790565847040LL,
639 9086519502435948LL, 349928368576135168LL, 9248778779265161LL,
640 713319946586423296LL,
641 9411038056094375LL, 76711524596711424LL, 9573297332923588LL,
642 440103102606999552LL,
643 9735556609752801LL, 803494680617287680LL, 9897815886582015LL,
644 166886258627575808LL,
645 10060075163411228LL, 530277836637863936LL, 10222334440240441LL,
646 893669414648152064LL}