1 /*-------------------------------------------------------------------------
4 * PostgreSQL CRC support
6 * See Ross Williams' excellent introduction
7 * A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS, available from
8 * ftp://ftp.rocksoft.com/papers/crc_v3.txt or several other net sites.
10 * We use a normal (not "reflected", in Williams' terms) CRC, using initial
11 * all-ones register contents and a final bit inversion.
13 * The 64-bit variant is not used as of PostgreSQL 8.1, but we retain the
14 * code for possible future use.
17 * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
18 * Portions Copyright (c) 1994, Regents of the University of California
22 * $PostgreSQL: pgsql/src/backend/utils/hash/pg_crc.c,v 1.16 2006/07/14 14:52:25 momjian Exp $
24 *-------------------------------------------------------------------------
31 * This table is based on the polynomial
32 * x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
33 * (This is the same polynomial used in Ethernet checksums, for instance.)
35 const uint32 pg_crc32_table[256] = {
36 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
37 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
38 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
39 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
40 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
41 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
42 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
43 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
44 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
45 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
46 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
47 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
48 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
49 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
50 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
51 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
52 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
53 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
54 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
55 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
56 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
57 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
58 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
59 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
60 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
61 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
62 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
63 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
64 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
65 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
66 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
67 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
68 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
69 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
70 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
71 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
72 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
73 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
74 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
75 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
76 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
77 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
78 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
79 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
80 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
81 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
82 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
83 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
84 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
85 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
86 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
87 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
88 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
89 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
90 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
91 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
92 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
93 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
94 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
95 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
96 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
97 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
98 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
99 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
103 #ifdef PROVIDE_64BIT_CRC
106 * This table is based on the polynomial
108 * x^64 + x^62 + x^57 + x^55 + x^54 + x^53 + x^52 + x^47 + x^46 + x^45 +
109 * x^40 + x^39 + x^38 + x^37 + x^35 + x^33 + x^32 + x^31 + x^29 + x^27 +
110 * x^24 + x^23 + x^22 + x^21 + x^19 + x^17 + x^13 + x^12 + x^10 + x^9 +
113 * which is borrowed from the DLT1 spec
114 * (ECMA-182, available from http://www.ecma.ch/ecma1/STAND/ECMA-182.HTM)
117 #ifdef INT64_IS_BUSTED
119 const uint32 pg_crc64_table0[256] = {
120 0x00000000, 0xA9EA3693,
121 0x53D46D26, 0xFA3E5BB5,
122 0x0E42ECDF, 0xA7A8DA4C,
123 0x5D9681F9, 0xF47CB76A,
124 0x1C85D9BE, 0xB56FEF2D,
125 0x4F51B498, 0xE6BB820B,
126 0x12C73561, 0xBB2D03F2,
127 0x41135847, 0xE8F96ED4,
128 0x90E185EF, 0x390BB37C,
129 0xC335E8C9, 0x6ADFDE5A,
130 0x9EA36930, 0x37495FA3,
131 0xCD770416, 0x649D3285,
132 0x8C645C51, 0x258E6AC2,
133 0xDFB03177, 0x765A07E4,
134 0x8226B08E, 0x2BCC861D,
135 0xD1F2DDA8, 0x7818EB3B,
136 0x21C30BDE, 0x88293D4D,
137 0x721766F8, 0xDBFD506B,
138 0x2F81E701, 0x866BD192,
139 0x7C558A27, 0xD5BFBCB4,
140 0x3D46D260, 0x94ACE4F3,
141 0x6E92BF46, 0xC77889D5,
142 0x33043EBF, 0x9AEE082C,
143 0x60D05399, 0xC93A650A,
144 0xB1228E31, 0x18C8B8A2,
145 0xE2F6E317, 0x4B1CD584,
146 0xBF6062EE, 0x168A547D,
147 0xECB40FC8, 0x455E395B,
148 0xADA7578F, 0x044D611C,
149 0xFE733AA9, 0x57990C3A,
150 0xA3E5BB50, 0x0A0F8DC3,
151 0xF031D676, 0x59DBE0E5,
152 0xEA6C212F, 0x438617BC,
153 0xB9B84C09, 0x10527A9A,
154 0xE42ECDF0, 0x4DC4FB63,
155 0xB7FAA0D6, 0x1E109645,
156 0xF6E9F891, 0x5F03CE02,
157 0xA53D95B7, 0x0CD7A324,
158 0xF8AB144E, 0x514122DD,
159 0xAB7F7968, 0x02954FFB,
160 0x7A8DA4C0, 0xD3679253,
161 0x2959C9E6, 0x80B3FF75,
162 0x74CF481F, 0xDD257E8C,
163 0x271B2539, 0x8EF113AA,
164 0x66087D7E, 0xCFE24BED,
165 0x35DC1058, 0x9C3626CB,
166 0x684A91A1, 0xC1A0A732,
167 0x3B9EFC87, 0x9274CA14,
168 0xCBAF2AF1, 0x62451C62,
169 0x987B47D7, 0x31917144,
170 0xC5EDC62E, 0x6C07F0BD,
171 0x9639AB08, 0x3FD39D9B,
172 0xD72AF34F, 0x7EC0C5DC,
173 0x84FE9E69, 0x2D14A8FA,
174 0xD9681F90, 0x70822903,
175 0x8ABC72B6, 0x23564425,
176 0x5B4EAF1E, 0xF2A4998D,
177 0x089AC238, 0xA170F4AB,
178 0x550C43C1, 0xFCE67552,
179 0x06D82EE7, 0xAF321874,
180 0x47CB76A0, 0xEE214033,
181 0x141F1B86, 0xBDF52D15,
182 0x49899A7F, 0xE063ACEC,
183 0x1A5DF759, 0xB3B7C1CA,
184 0x7D3274CD, 0xD4D8425E,
185 0x2EE619EB, 0x870C2F78,
186 0x73709812, 0xDA9AAE81,
187 0x20A4F534, 0x894EC3A7,
188 0x61B7AD73, 0xC85D9BE0,
189 0x3263C055, 0x9B89F6C6,
190 0x6FF541AC, 0xC61F773F,
191 0x3C212C8A, 0x95CB1A19,
192 0xEDD3F122, 0x4439C7B1,
193 0xBE079C04, 0x17EDAA97,
194 0xE3911DFD, 0x4A7B2B6E,
195 0xB04570DB, 0x19AF4648,
196 0xF156289C, 0x58BC1E0F,
197 0xA28245BA, 0x0B687329,
198 0xFF14C443, 0x56FEF2D0,
199 0xACC0A965, 0x052A9FF6,
200 0x5CF17F13, 0xF51B4980,
201 0x0F251235, 0xA6CF24A6,
202 0x52B393CC, 0xFB59A55F,
203 0x0167FEEA, 0xA88DC879,
204 0x4074A6AD, 0xE99E903E,
205 0x13A0CB8B, 0xBA4AFD18,
206 0x4E364A72, 0xE7DC7CE1,
207 0x1DE22754, 0xB40811C7,
208 0xCC10FAFC, 0x65FACC6F,
209 0x9FC497DA, 0x362EA149,
210 0xC2521623, 0x6BB820B0,
211 0x91867B05, 0x386C4D96,
212 0xD0952342, 0x797F15D1,
213 0x83414E64, 0x2AAB78F7,
214 0xDED7CF9D, 0x773DF90E,
215 0x8D03A2BB, 0x24E99428,
216 0x975E55E2, 0x3EB46371,
217 0xC48A38C4, 0x6D600E57,
218 0x991CB93D, 0x30F68FAE,
219 0xCAC8D41B, 0x6322E288,
220 0x8BDB8C5C, 0x2231BACF,
221 0xD80FE17A, 0x71E5D7E9,
222 0x85996083, 0x2C735610,
223 0xD64D0DA5, 0x7FA73B36,
224 0x07BFD00D, 0xAE55E69E,
225 0x546BBD2B, 0xFD818BB8,
226 0x09FD3CD2, 0xA0170A41,
227 0x5A2951F4, 0xF3C36767,
228 0x1B3A09B3, 0xB2D03F20,
229 0x48EE6495, 0xE1045206,
230 0x1578E56C, 0xBC92D3FF,
231 0x46AC884A, 0xEF46BED9,
232 0xB69D5E3C, 0x1F7768AF,
233 0xE549331A, 0x4CA30589,
234 0xB8DFB2E3, 0x11358470,
235 0xEB0BDFC5, 0x42E1E956,
236 0xAA188782, 0x03F2B111,
237 0xF9CCEAA4, 0x5026DC37,
238 0xA45A6B5D, 0x0DB05DCE,
239 0xF78E067B, 0x5E6430E8,
240 0x267CDBD3, 0x8F96ED40,
241 0x75A8B6F5, 0xDC428066,
242 0x283E370C, 0x81D4019F,
243 0x7BEA5A2A, 0xD2006CB9,
244 0x3AF9026D, 0x931334FE,
245 0x692D6F4B, 0xC0C759D8,
246 0x34BBEEB2, 0x9D51D821,
247 0x676F8394, 0xCE85B507
250 const uint32 pg_crc64_table1[256] = {
251 0x00000000, 0x42F0E1EB,
252 0x85E1C3D7, 0xC711223C,
253 0x49336645, 0x0BC387AE,
254 0xCCD2A592, 0x8E224479,
255 0x9266CC8A, 0xD0962D61,
256 0x17870F5D, 0x5577EEB6,
257 0xDB55AACF, 0x99A54B24,
258 0x5EB46918, 0x1C4488F3,
259 0x663D78FF, 0x24CD9914,
260 0xE3DCBB28, 0xA12C5AC3,
261 0x2F0E1EBA, 0x6DFEFF51,
262 0xAAEFDD6D, 0xE81F3C86,
263 0xF45BB475, 0xB6AB559E,
264 0x71BA77A2, 0x334A9649,
265 0xBD68D230, 0xFF9833DB,
266 0x388911E7, 0x7A79F00C,
267 0xCC7AF1FF, 0x8E8A1014,
268 0x499B3228, 0x0B6BD3C3,
269 0x854997BA, 0xC7B97651,
270 0x00A8546D, 0x4258B586,
271 0x5E1C3D75, 0x1CECDC9E,
272 0xDBFDFEA2, 0x990D1F49,
273 0x172F5B30, 0x55DFBADB,
274 0x92CE98E7, 0xD03E790C,
275 0xAA478900, 0xE8B768EB,
276 0x2FA64AD7, 0x6D56AB3C,
277 0xE374EF45, 0xA1840EAE,
278 0x66952C92, 0x2465CD79,
279 0x3821458A, 0x7AD1A461,
280 0xBDC0865D, 0xFF3067B6,
281 0x711223CF, 0x33E2C224,
282 0xF4F3E018, 0xB60301F3,
283 0xDA050215, 0x98F5E3FE,
284 0x5FE4C1C2, 0x1D142029,
285 0x93366450, 0xD1C685BB,
286 0x16D7A787, 0x5427466C,
287 0x4863CE9F, 0x0A932F74,
288 0xCD820D48, 0x8F72ECA3,
289 0x0150A8DA, 0x43A04931,
290 0x84B16B0D, 0xC6418AE6,
291 0xBC387AEA, 0xFEC89B01,
292 0x39D9B93D, 0x7B2958D6,
293 0xF50B1CAF, 0xB7FBFD44,
294 0x70EADF78, 0x321A3E93,
295 0x2E5EB660, 0x6CAE578B,
296 0xABBF75B7, 0xE94F945C,
297 0x676DD025, 0x259D31CE,
298 0xE28C13F2, 0xA07CF219,
299 0x167FF3EA, 0x548F1201,
300 0x939E303D, 0xD16ED1D6,
301 0x5F4C95AF, 0x1DBC7444,
302 0xDAAD5678, 0x985DB793,
303 0x84193F60, 0xC6E9DE8B,
304 0x01F8FCB7, 0x43081D5C,
305 0xCD2A5925, 0x8FDAB8CE,
306 0x48CB9AF2, 0x0A3B7B19,
307 0x70428B15, 0x32B26AFE,
308 0xF5A348C2, 0xB753A929,
309 0x3971ED50, 0x7B810CBB,
310 0xBC902E87, 0xFE60CF6C,
311 0xE224479F, 0xA0D4A674,
312 0x67C58448, 0x253565A3,
313 0xAB1721DA, 0xE9E7C031,
314 0x2EF6E20D, 0x6C0603E6,
315 0xF6FAE5C0, 0xB40A042B,
316 0x731B2617, 0x31EBC7FC,
317 0xBFC98385, 0xFD39626E,
318 0x3A284052, 0x78D8A1B9,
319 0x649C294A, 0x266CC8A1,
320 0xE17DEA9D, 0xA38D0B76,
321 0x2DAF4F0F, 0x6F5FAEE4,
322 0xA84E8CD8, 0xEABE6D33,
323 0x90C79D3F, 0xD2377CD4,
324 0x15265EE8, 0x57D6BF03,
325 0xD9F4FB7A, 0x9B041A91,
326 0x5C1538AD, 0x1EE5D946,
327 0x02A151B5, 0x4051B05E,
328 0x87409262, 0xC5B07389,
329 0x4B9237F0, 0x0962D61B,
330 0xCE73F427, 0x8C8315CC,
331 0x3A80143F, 0x7870F5D4,
332 0xBF61D7E8, 0xFD913603,
333 0x73B3727A, 0x31439391,
334 0xF652B1AD, 0xB4A25046,
335 0xA8E6D8B5, 0xEA16395E,
336 0x2D071B62, 0x6FF7FA89,
337 0xE1D5BEF0, 0xA3255F1B,
338 0x64347D27, 0x26C49CCC,
339 0x5CBD6CC0, 0x1E4D8D2B,
340 0xD95CAF17, 0x9BAC4EFC,
341 0x158E0A85, 0x577EEB6E,
342 0x906FC952, 0xD29F28B9,
343 0xCEDBA04A, 0x8C2B41A1,
344 0x4B3A639D, 0x09CA8276,
345 0x87E8C60F, 0xC51827E4,
346 0x020905D8, 0x40F9E433,
347 0x2CFFE7D5, 0x6E0F063E,
348 0xA91E2402, 0xEBEEC5E9,
349 0x65CC8190, 0x273C607B,
350 0xE02D4247, 0xA2DDA3AC,
351 0xBE992B5F, 0xFC69CAB4,
352 0x3B78E888, 0x79880963,
353 0xF7AA4D1A, 0xB55AACF1,
354 0x724B8ECD, 0x30BB6F26,
355 0x4AC29F2A, 0x08327EC1,
356 0xCF235CFD, 0x8DD3BD16,
357 0x03F1F96F, 0x41011884,
358 0x86103AB8, 0xC4E0DB53,
359 0xD8A453A0, 0x9A54B24B,
360 0x5D459077, 0x1FB5719C,
361 0x919735E5, 0xD367D40E,
362 0x1476F632, 0x568617D9,
363 0xE085162A, 0xA275F7C1,
364 0x6564D5FD, 0x27943416,
365 0xA9B6706F, 0xEB469184,
366 0x2C57B3B8, 0x6EA75253,
367 0x72E3DAA0, 0x30133B4B,
368 0xF7021977, 0xB5F2F89C,
369 0x3BD0BCE5, 0x79205D0E,
370 0xBE317F32, 0xFCC19ED9,
371 0x86B86ED5, 0xC4488F3E,
372 0x0359AD02, 0x41A94CE9,
373 0xCF8B0890, 0x8D7BE97B,
374 0x4A6ACB47, 0x089A2AAC,
375 0x14DEA25F, 0x562E43B4,
376 0x913F6188, 0xD3CF8063,
377 0x5DEDC41A, 0x1F1D25F1,
378 0xD80C07CD, 0x9AFCE626
380 #else /* int64 works */
382 const uint64 pg_crc64_table[256] = {
383 UINT64CONST(0x0000000000000000), UINT64CONST(0x42F0E1EBA9EA3693),
384 UINT64CONST(0x85E1C3D753D46D26), UINT64CONST(0xC711223CFA3E5BB5),
385 UINT64CONST(0x493366450E42ECDF), UINT64CONST(0x0BC387AEA7A8DA4C),
386 UINT64CONST(0xCCD2A5925D9681F9), UINT64CONST(0x8E224479F47CB76A),
387 UINT64CONST(0x9266CC8A1C85D9BE), UINT64CONST(0xD0962D61B56FEF2D),
388 UINT64CONST(0x17870F5D4F51B498), UINT64CONST(0x5577EEB6E6BB820B),
389 UINT64CONST(0xDB55AACF12C73561), UINT64CONST(0x99A54B24BB2D03F2),
390 UINT64CONST(0x5EB4691841135847), UINT64CONST(0x1C4488F3E8F96ED4),
391 UINT64CONST(0x663D78FF90E185EF), UINT64CONST(0x24CD9914390BB37C),
392 UINT64CONST(0xE3DCBB28C335E8C9), UINT64CONST(0xA12C5AC36ADFDE5A),
393 UINT64CONST(0x2F0E1EBA9EA36930), UINT64CONST(0x6DFEFF5137495FA3),
394 UINT64CONST(0xAAEFDD6DCD770416), UINT64CONST(0xE81F3C86649D3285),
395 UINT64CONST(0xF45BB4758C645C51), UINT64CONST(0xB6AB559E258E6AC2),
396 UINT64CONST(0x71BA77A2DFB03177), UINT64CONST(0x334A9649765A07E4),
397 UINT64CONST(0xBD68D2308226B08E), UINT64CONST(0xFF9833DB2BCC861D),
398 UINT64CONST(0x388911E7D1F2DDA8), UINT64CONST(0x7A79F00C7818EB3B),
399 UINT64CONST(0xCC7AF1FF21C30BDE), UINT64CONST(0x8E8A101488293D4D),
400 UINT64CONST(0x499B3228721766F8), UINT64CONST(0x0B6BD3C3DBFD506B),
401 UINT64CONST(0x854997BA2F81E701), UINT64CONST(0xC7B97651866BD192),
402 UINT64CONST(0x00A8546D7C558A27), UINT64CONST(0x4258B586D5BFBCB4),
403 UINT64CONST(0x5E1C3D753D46D260), UINT64CONST(0x1CECDC9E94ACE4F3),
404 UINT64CONST(0xDBFDFEA26E92BF46), UINT64CONST(0x990D1F49C77889D5),
405 UINT64CONST(0x172F5B3033043EBF), UINT64CONST(0x55DFBADB9AEE082C),
406 UINT64CONST(0x92CE98E760D05399), UINT64CONST(0xD03E790CC93A650A),
407 UINT64CONST(0xAA478900B1228E31), UINT64CONST(0xE8B768EB18C8B8A2),
408 UINT64CONST(0x2FA64AD7E2F6E317), UINT64CONST(0x6D56AB3C4B1CD584),
409 UINT64CONST(0xE374EF45BF6062EE), UINT64CONST(0xA1840EAE168A547D),
410 UINT64CONST(0x66952C92ECB40FC8), UINT64CONST(0x2465CD79455E395B),
411 UINT64CONST(0x3821458AADA7578F), UINT64CONST(0x7AD1A461044D611C),
412 UINT64CONST(0xBDC0865DFE733AA9), UINT64CONST(0xFF3067B657990C3A),
413 UINT64CONST(0x711223CFA3E5BB50), UINT64CONST(0x33E2C2240A0F8DC3),
414 UINT64CONST(0xF4F3E018F031D676), UINT64CONST(0xB60301F359DBE0E5),
415 UINT64CONST(0xDA050215EA6C212F), UINT64CONST(0x98F5E3FE438617BC),
416 UINT64CONST(0x5FE4C1C2B9B84C09), UINT64CONST(0x1D14202910527A9A),
417 UINT64CONST(0x93366450E42ECDF0), UINT64CONST(0xD1C685BB4DC4FB63),
418 UINT64CONST(0x16D7A787B7FAA0D6), UINT64CONST(0x5427466C1E109645),
419 UINT64CONST(0x4863CE9FF6E9F891), UINT64CONST(0x0A932F745F03CE02),
420 UINT64CONST(0xCD820D48A53D95B7), UINT64CONST(0x8F72ECA30CD7A324),
421 UINT64CONST(0x0150A8DAF8AB144E), UINT64CONST(0x43A04931514122DD),
422 UINT64CONST(0x84B16B0DAB7F7968), UINT64CONST(0xC6418AE602954FFB),
423 UINT64CONST(0xBC387AEA7A8DA4C0), UINT64CONST(0xFEC89B01D3679253),
424 UINT64CONST(0x39D9B93D2959C9E6), UINT64CONST(0x7B2958D680B3FF75),
425 UINT64CONST(0xF50B1CAF74CF481F), UINT64CONST(0xB7FBFD44DD257E8C),
426 UINT64CONST(0x70EADF78271B2539), UINT64CONST(0x321A3E938EF113AA),
427 UINT64CONST(0x2E5EB66066087D7E), UINT64CONST(0x6CAE578BCFE24BED),
428 UINT64CONST(0xABBF75B735DC1058), UINT64CONST(0xE94F945C9C3626CB),
429 UINT64CONST(0x676DD025684A91A1), UINT64CONST(0x259D31CEC1A0A732),
430 UINT64CONST(0xE28C13F23B9EFC87), UINT64CONST(0xA07CF2199274CA14),
431 UINT64CONST(0x167FF3EACBAF2AF1), UINT64CONST(0x548F120162451C62),
432 UINT64CONST(0x939E303D987B47D7), UINT64CONST(0xD16ED1D631917144),
433 UINT64CONST(0x5F4C95AFC5EDC62E), UINT64CONST(0x1DBC74446C07F0BD),
434 UINT64CONST(0xDAAD56789639AB08), UINT64CONST(0x985DB7933FD39D9B),
435 UINT64CONST(0x84193F60D72AF34F), UINT64CONST(0xC6E9DE8B7EC0C5DC),
436 UINT64CONST(0x01F8FCB784FE9E69), UINT64CONST(0x43081D5C2D14A8FA),
437 UINT64CONST(0xCD2A5925D9681F90), UINT64CONST(0x8FDAB8CE70822903),
438 UINT64CONST(0x48CB9AF28ABC72B6), UINT64CONST(0x0A3B7B1923564425),
439 UINT64CONST(0x70428B155B4EAF1E), UINT64CONST(0x32B26AFEF2A4998D),
440 UINT64CONST(0xF5A348C2089AC238), UINT64CONST(0xB753A929A170F4AB),
441 UINT64CONST(0x3971ED50550C43C1), UINT64CONST(0x7B810CBBFCE67552),
442 UINT64CONST(0xBC902E8706D82EE7), UINT64CONST(0xFE60CF6CAF321874),
443 UINT64CONST(0xE224479F47CB76A0), UINT64CONST(0xA0D4A674EE214033),
444 UINT64CONST(0x67C58448141F1B86), UINT64CONST(0x253565A3BDF52D15),
445 UINT64CONST(0xAB1721DA49899A7F), UINT64CONST(0xE9E7C031E063ACEC),
446 UINT64CONST(0x2EF6E20D1A5DF759), UINT64CONST(0x6C0603E6B3B7C1CA),
447 UINT64CONST(0xF6FAE5C07D3274CD), UINT64CONST(0xB40A042BD4D8425E),
448 UINT64CONST(0x731B26172EE619EB), UINT64CONST(0x31EBC7FC870C2F78),
449 UINT64CONST(0xBFC9838573709812), UINT64CONST(0xFD39626EDA9AAE81),
450 UINT64CONST(0x3A28405220A4F534), UINT64CONST(0x78D8A1B9894EC3A7),
451 UINT64CONST(0x649C294A61B7AD73), UINT64CONST(0x266CC8A1C85D9BE0),
452 UINT64CONST(0xE17DEA9D3263C055), UINT64CONST(0xA38D0B769B89F6C6),
453 UINT64CONST(0x2DAF4F0F6FF541AC), UINT64CONST(0x6F5FAEE4C61F773F),
454 UINT64CONST(0xA84E8CD83C212C8A), UINT64CONST(0xEABE6D3395CB1A19),
455 UINT64CONST(0x90C79D3FEDD3F122), UINT64CONST(0xD2377CD44439C7B1),
456 UINT64CONST(0x15265EE8BE079C04), UINT64CONST(0x57D6BF0317EDAA97),
457 UINT64CONST(0xD9F4FB7AE3911DFD), UINT64CONST(0x9B041A914A7B2B6E),
458 UINT64CONST(0x5C1538ADB04570DB), UINT64CONST(0x1EE5D94619AF4648),
459 UINT64CONST(0x02A151B5F156289C), UINT64CONST(0x4051B05E58BC1E0F),
460 UINT64CONST(0x87409262A28245BA), UINT64CONST(0xC5B073890B687329),
461 UINT64CONST(0x4B9237F0FF14C443), UINT64CONST(0x0962D61B56FEF2D0),
462 UINT64CONST(0xCE73F427ACC0A965), UINT64CONST(0x8C8315CC052A9FF6),
463 UINT64CONST(0x3A80143F5CF17F13), UINT64CONST(0x7870F5D4F51B4980),
464 UINT64CONST(0xBF61D7E80F251235), UINT64CONST(0xFD913603A6CF24A6),
465 UINT64CONST(0x73B3727A52B393CC), UINT64CONST(0x31439391FB59A55F),
466 UINT64CONST(0xF652B1AD0167FEEA), UINT64CONST(0xB4A25046A88DC879),
467 UINT64CONST(0xA8E6D8B54074A6AD), UINT64CONST(0xEA16395EE99E903E),
468 UINT64CONST(0x2D071B6213A0CB8B), UINT64CONST(0x6FF7FA89BA4AFD18),
469 UINT64CONST(0xE1D5BEF04E364A72), UINT64CONST(0xA3255F1BE7DC7CE1),
470 UINT64CONST(0x64347D271DE22754), UINT64CONST(0x26C49CCCB40811C7),
471 UINT64CONST(0x5CBD6CC0CC10FAFC), UINT64CONST(0x1E4D8D2B65FACC6F),
472 UINT64CONST(0xD95CAF179FC497DA), UINT64CONST(0x9BAC4EFC362EA149),
473 UINT64CONST(0x158E0A85C2521623), UINT64CONST(0x577EEB6E6BB820B0),
474 UINT64CONST(0x906FC95291867B05), UINT64CONST(0xD29F28B9386C4D96),
475 UINT64CONST(0xCEDBA04AD0952342), UINT64CONST(0x8C2B41A1797F15D1),
476 UINT64CONST(0x4B3A639D83414E64), UINT64CONST(0x09CA82762AAB78F7),
477 UINT64CONST(0x87E8C60FDED7CF9D), UINT64CONST(0xC51827E4773DF90E),
478 UINT64CONST(0x020905D88D03A2BB), UINT64CONST(0x40F9E43324E99428),
479 UINT64CONST(0x2CFFE7D5975E55E2), UINT64CONST(0x6E0F063E3EB46371),
480 UINT64CONST(0xA91E2402C48A38C4), UINT64CONST(0xEBEEC5E96D600E57),
481 UINT64CONST(0x65CC8190991CB93D), UINT64CONST(0x273C607B30F68FAE),
482 UINT64CONST(0xE02D4247CAC8D41B), UINT64CONST(0xA2DDA3AC6322E288),
483 UINT64CONST(0xBE992B5F8BDB8C5C), UINT64CONST(0xFC69CAB42231BACF),
484 UINT64CONST(0x3B78E888D80FE17A), UINT64CONST(0x7988096371E5D7E9),
485 UINT64CONST(0xF7AA4D1A85996083), UINT64CONST(0xB55AACF12C735610),
486 UINT64CONST(0x724B8ECDD64D0DA5), UINT64CONST(0x30BB6F267FA73B36),
487 UINT64CONST(0x4AC29F2A07BFD00D), UINT64CONST(0x08327EC1AE55E69E),
488 UINT64CONST(0xCF235CFD546BBD2B), UINT64CONST(0x8DD3BD16FD818BB8),
489 UINT64CONST(0x03F1F96F09FD3CD2), UINT64CONST(0x41011884A0170A41),
490 UINT64CONST(0x86103AB85A2951F4), UINT64CONST(0xC4E0DB53F3C36767),
491 UINT64CONST(0xD8A453A01B3A09B3), UINT64CONST(0x9A54B24BB2D03F20),
492 UINT64CONST(0x5D45907748EE6495), UINT64CONST(0x1FB5719CE1045206),
493 UINT64CONST(0x919735E51578E56C), UINT64CONST(0xD367D40EBC92D3FF),
494 UINT64CONST(0x1476F63246AC884A), UINT64CONST(0x568617D9EF46BED9),
495 UINT64CONST(0xE085162AB69D5E3C), UINT64CONST(0xA275F7C11F7768AF),
496 UINT64CONST(0x6564D5FDE549331A), UINT64CONST(0x279434164CA30589),
497 UINT64CONST(0xA9B6706FB8DFB2E3), UINT64CONST(0xEB46918411358470),
498 UINT64CONST(0x2C57B3B8EB0BDFC5), UINT64CONST(0x6EA7525342E1E956),
499 UINT64CONST(0x72E3DAA0AA188782), UINT64CONST(0x30133B4B03F2B111),
500 UINT64CONST(0xF7021977F9CCEAA4), UINT64CONST(0xB5F2F89C5026DC37),
501 UINT64CONST(0x3BD0BCE5A45A6B5D), UINT64CONST(0x79205D0E0DB05DCE),
502 UINT64CONST(0xBE317F32F78E067B), UINT64CONST(0xFCC19ED95E6430E8),
503 UINT64CONST(0x86B86ED5267CDBD3), UINT64CONST(0xC4488F3E8F96ED40),
504 UINT64CONST(0x0359AD0275A8B6F5), UINT64CONST(0x41A94CE9DC428066),
505 UINT64CONST(0xCF8B0890283E370C), UINT64CONST(0x8D7BE97B81D4019F),
506 UINT64CONST(0x4A6ACB477BEA5A2A), UINT64CONST(0x089A2AACD2006CB9),
507 UINT64CONST(0x14DEA25F3AF9026D), UINT64CONST(0x562E43B4931334FE),
508 UINT64CONST(0x913F6188692D6F4B), UINT64CONST(0xD3CF8063C0C759D8),
509 UINT64CONST(0x5DEDC41A34BBEEB2), UINT64CONST(0x1F1D25F19D51D821),
510 UINT64CONST(0xD80C07CD676F8394), UINT64CONST(0x9AFCE626CE85B507)
512 #endif /* INT64_IS_BUSTED */
514 #endif /* PROVIDE_64BIT_CRC */