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