001/**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.apache.hadoop.util;
019
020import java.util.zip.Checksum;
021
022import org.apache.hadoop.classification.InterfaceAudience;
023import org.apache.hadoop.classification.InterfaceStability;
024
025/**
026 * A pure-java implementation of the CRC32 checksum that uses
027 * the same polynomial as the built-in native CRC32.
028 *
029 * This is to avoid the JNI overhead for certain uses of Checksumming
030 * where many small pieces of data are checksummed in succession.
031 *
032 * The current version is ~10x to 1.8x as fast as Sun's native
033 * java.util.zip.CRC32 in Java 1.6
034 *
035 * @see java.util.zip.CRC32
036 */
037@InterfaceAudience.Public
038@InterfaceStability.Stable
039public class PureJavaCrc32 implements Checksum {
040
041  /** the current CRC value, bit-flipped */
042  private int crc;
043
044  /** Create a new PureJavaCrc32 object. */
045  public PureJavaCrc32() {
046    reset();
047  }
048
049  /** {@inheritDoc} */
050  public long getValue() {
051    return (~crc) & 0xffffffffL;
052  }
053
054  /** {@inheritDoc} */
055  public void reset() {
056    crc = 0xffffffff;
057  }
058
059  /** {@inheritDoc} */
060  public void update(byte[] b, int off, int len) {
061    int localCrc = crc;
062
063    while(len > 7) {
064      final int c0 =(b[off+0] ^ localCrc) & 0xff;
065      final int c1 =(b[off+1] ^ (localCrc >>>= 8)) & 0xff;
066      final int c2 =(b[off+2] ^ (localCrc >>>= 8)) & 0xff;
067      final int c3 =(b[off+3] ^ (localCrc >>>= 8)) & 0xff;
068      localCrc = (T[T8_7_start + c0] ^ T[T8_6_start + c1])
069          ^ (T[T8_5_start + c2] ^ T[T8_4_start + c3]);
070
071      final int c4 = b[off+4] & 0xff;
072      final int c5 = b[off+5] & 0xff;
073      final int c6 = b[off+6] & 0xff;
074      final int c7 = b[off+7] & 0xff;
075
076      localCrc ^= (T[T8_3_start + c4] ^ T[T8_2_start + c5])
077           ^ (T[T8_1_start + c6] ^ T[T8_0_start + c7]);
078
079      off += 8;
080      len -= 8;
081    }
082
083    /* loop unroll - duff's device style */
084    switch(len) {
085      case 7: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
086      case 6: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
087      case 5: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
088      case 4: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
089      case 3: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
090      case 2: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
091      case 1: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
092      default:
093        /* nothing */
094    }
095    
096    // Publish crc out to object
097    crc = localCrc;
098  }
099
100  /** {@inheritDoc} */
101  final public void update(int b) {
102    crc = (crc >>> 8) ^ T[T8_0_start + ((crc ^ b) & 0xff)];
103  }
104
105  /*
106   * CRC-32 lookup tables generated by the polynomial 0xEDB88320.
107   * See also TestPureJavaCrc32.Table.
108   */
109  private static final int T8_0_start = 0*256;
110  private static final int T8_1_start = 1*256;
111  private static final int T8_2_start = 2*256;
112  private static final int T8_3_start = 3*256;
113  private static final int T8_4_start = 4*256;
114  private static final int T8_5_start = 5*256;
115  private static final int T8_6_start = 6*256;
116  private static final int T8_7_start = 7*256;
117
118  private static final int[] T = new int[] {
119        /* T8_0 */
120    0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 
121    0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 
122    0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 
123    0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 
124    0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 
125    0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 
126    0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 
127    0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 
128    0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 
129    0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 
130    0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 
131    0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 
132    0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 
133    0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 
134    0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 
135    0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 
136    0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 
137    0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 
138    0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 
139    0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 
140    0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 
141    0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 
142    0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 
143    0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 
144    0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 
145    0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 
146    0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 
147    0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 
148    0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 
149    0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 
150    0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 
151    0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 
152    0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 
153    0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 
154    0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 
155    0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 
156    0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 
157    0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 
158    0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 
159    0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 
160    0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 
161    0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 
162    0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 
163    0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 
164    0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 
165    0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 
166    0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 
167    0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 
168    0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 
169    0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 
170    0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 
171    0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 
172    0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 
173    0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 
174    0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 
175    0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 
176    0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 
177    0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 
178    0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 
179    0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 
180    0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 
181    0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 
182    0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 
183    0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,
184    /* T8_1 */
185    0x00000000, 0x191B3141, 0x32366282, 0x2B2D53C3, 
186    0x646CC504, 0x7D77F445, 0x565AA786, 0x4F4196C7, 
187    0xC8D98A08, 0xD1C2BB49, 0xFAEFE88A, 0xE3F4D9CB, 
188    0xACB54F0C, 0xB5AE7E4D, 0x9E832D8E, 0x87981CCF, 
189    0x4AC21251, 0x53D92310, 0x78F470D3, 0x61EF4192, 
190    0x2EAED755, 0x37B5E614, 0x1C98B5D7, 0x05838496, 
191    0x821B9859, 0x9B00A918, 0xB02DFADB, 0xA936CB9A, 
192    0xE6775D5D, 0xFF6C6C1C, 0xD4413FDF, 0xCD5A0E9E, 
193    0x958424A2, 0x8C9F15E3, 0xA7B24620, 0xBEA97761, 
194    0xF1E8E1A6, 0xE8F3D0E7, 0xC3DE8324, 0xDAC5B265, 
195    0x5D5DAEAA, 0x44469FEB, 0x6F6BCC28, 0x7670FD69, 
196    0x39316BAE, 0x202A5AEF, 0x0B07092C, 0x121C386D, 
197    0xDF4636F3, 0xC65D07B2, 0xED705471, 0xF46B6530, 
198    0xBB2AF3F7, 0xA231C2B6, 0x891C9175, 0x9007A034, 
199    0x179FBCFB, 0x0E848DBA, 0x25A9DE79, 0x3CB2EF38, 
200    0x73F379FF, 0x6AE848BE, 0x41C51B7D, 0x58DE2A3C, 
201    0xF0794F05, 0xE9627E44, 0xC24F2D87, 0xDB541CC6, 
202    0x94158A01, 0x8D0EBB40, 0xA623E883, 0xBF38D9C2, 
203    0x38A0C50D, 0x21BBF44C, 0x0A96A78F, 0x138D96CE, 
204    0x5CCC0009, 0x45D73148, 0x6EFA628B, 0x77E153CA, 
205    0xBABB5D54, 0xA3A06C15, 0x888D3FD6, 0x91960E97, 
206    0xDED79850, 0xC7CCA911, 0xECE1FAD2, 0xF5FACB93, 
207    0x7262D75C, 0x6B79E61D, 0x4054B5DE, 0x594F849F, 
208    0x160E1258, 0x0F152319, 0x243870DA, 0x3D23419B, 
209    0x65FD6BA7, 0x7CE65AE6, 0x57CB0925, 0x4ED03864, 
210    0x0191AEA3, 0x188A9FE2, 0x33A7CC21, 0x2ABCFD60, 
211    0xAD24E1AF, 0xB43FD0EE, 0x9F12832D, 0x8609B26C, 
212    0xC94824AB, 0xD05315EA, 0xFB7E4629, 0xE2657768, 
213    0x2F3F79F6, 0x362448B7, 0x1D091B74, 0x04122A35, 
214    0x4B53BCF2, 0x52488DB3, 0x7965DE70, 0x607EEF31, 
215    0xE7E6F3FE, 0xFEFDC2BF, 0xD5D0917C, 0xCCCBA03D, 
216    0x838A36FA, 0x9A9107BB, 0xB1BC5478, 0xA8A76539, 
217    0x3B83984B, 0x2298A90A, 0x09B5FAC9, 0x10AECB88, 
218    0x5FEF5D4F, 0x46F46C0E, 0x6DD93FCD, 0x74C20E8C, 
219    0xF35A1243, 0xEA412302, 0xC16C70C1, 0xD8774180, 
220    0x9736D747, 0x8E2DE606, 0xA500B5C5, 0xBC1B8484, 
221    0x71418A1A, 0x685ABB5B, 0x4377E898, 0x5A6CD9D9, 
222    0x152D4F1E, 0x0C367E5F, 0x271B2D9C, 0x3E001CDD, 
223    0xB9980012, 0xA0833153, 0x8BAE6290, 0x92B553D1, 
224    0xDDF4C516, 0xC4EFF457, 0xEFC2A794, 0xF6D996D5, 
225    0xAE07BCE9, 0xB71C8DA8, 0x9C31DE6B, 0x852AEF2A, 
226    0xCA6B79ED, 0xD37048AC, 0xF85D1B6F, 0xE1462A2E, 
227    0x66DE36E1, 0x7FC507A0, 0x54E85463, 0x4DF36522, 
228    0x02B2F3E5, 0x1BA9C2A4, 0x30849167, 0x299FA026, 
229    0xE4C5AEB8, 0xFDDE9FF9, 0xD6F3CC3A, 0xCFE8FD7B, 
230    0x80A96BBC, 0x99B25AFD, 0xB29F093E, 0xAB84387F, 
231    0x2C1C24B0, 0x350715F1, 0x1E2A4632, 0x07317773, 
232    0x4870E1B4, 0x516BD0F5, 0x7A468336, 0x635DB277, 
233    0xCBFAD74E, 0xD2E1E60F, 0xF9CCB5CC, 0xE0D7848D, 
234    0xAF96124A, 0xB68D230B, 0x9DA070C8, 0x84BB4189, 
235    0x03235D46, 0x1A386C07, 0x31153FC4, 0x280E0E85, 
236    0x674F9842, 0x7E54A903, 0x5579FAC0, 0x4C62CB81, 
237    0x8138C51F, 0x9823F45E, 0xB30EA79D, 0xAA1596DC, 
238    0xE554001B, 0xFC4F315A, 0xD7626299, 0xCE7953D8, 
239    0x49E14F17, 0x50FA7E56, 0x7BD72D95, 0x62CC1CD4, 
240    0x2D8D8A13, 0x3496BB52, 0x1FBBE891, 0x06A0D9D0, 
241    0x5E7EF3EC, 0x4765C2AD, 0x6C48916E, 0x7553A02F, 
242    0x3A1236E8, 0x230907A9, 0x0824546A, 0x113F652B, 
243    0x96A779E4, 0x8FBC48A5, 0xA4911B66, 0xBD8A2A27, 
244    0xF2CBBCE0, 0xEBD08DA1, 0xC0FDDE62, 0xD9E6EF23, 
245    0x14BCE1BD, 0x0DA7D0FC, 0x268A833F, 0x3F91B27E, 
246    0x70D024B9, 0x69CB15F8, 0x42E6463B, 0x5BFD777A, 
247    0xDC656BB5, 0xC57E5AF4, 0xEE530937, 0xF7483876, 
248    0xB809AEB1, 0xA1129FF0, 0x8A3FCC33, 0x9324FD72,
249    /* T8_2 */
250    0x00000000, 0x01C26A37, 0x0384D46E, 0x0246BE59, 
251    0x0709A8DC, 0x06CBC2EB, 0x048D7CB2, 0x054F1685, 
252    0x0E1351B8, 0x0FD13B8F, 0x0D9785D6, 0x0C55EFE1, 
253    0x091AF964, 0x08D89353, 0x0A9E2D0A, 0x0B5C473D, 
254    0x1C26A370, 0x1DE4C947, 0x1FA2771E, 0x1E601D29, 
255    0x1B2F0BAC, 0x1AED619B, 0x18ABDFC2, 0x1969B5F5, 
256    0x1235F2C8, 0x13F798FF, 0x11B126A6, 0x10734C91, 
257    0x153C5A14, 0x14FE3023, 0x16B88E7A, 0x177AE44D, 
258    0x384D46E0, 0x398F2CD7, 0x3BC9928E, 0x3A0BF8B9, 
259    0x3F44EE3C, 0x3E86840B, 0x3CC03A52, 0x3D025065, 
260    0x365E1758, 0x379C7D6F, 0x35DAC336, 0x3418A901, 
261    0x3157BF84, 0x3095D5B3, 0x32D36BEA, 0x331101DD, 
262    0x246BE590, 0x25A98FA7, 0x27EF31FE, 0x262D5BC9, 
263    0x23624D4C, 0x22A0277B, 0x20E69922, 0x2124F315, 
264    0x2A78B428, 0x2BBADE1F, 0x29FC6046, 0x283E0A71, 
265    0x2D711CF4, 0x2CB376C3, 0x2EF5C89A, 0x2F37A2AD, 
266    0x709A8DC0, 0x7158E7F7, 0x731E59AE, 0x72DC3399, 
267    0x7793251C, 0x76514F2B, 0x7417F172, 0x75D59B45, 
268    0x7E89DC78, 0x7F4BB64F, 0x7D0D0816, 0x7CCF6221, 
269    0x798074A4, 0x78421E93, 0x7A04A0CA, 0x7BC6CAFD, 
270    0x6CBC2EB0, 0x6D7E4487, 0x6F38FADE, 0x6EFA90E9, 
271    0x6BB5866C, 0x6A77EC5B, 0x68315202, 0x69F33835, 
272    0x62AF7F08, 0x636D153F, 0x612BAB66, 0x60E9C151, 
273    0x65A6D7D4, 0x6464BDE3, 0x662203BA, 0x67E0698D, 
274    0x48D7CB20, 0x4915A117, 0x4B531F4E, 0x4A917579, 
275    0x4FDE63FC, 0x4E1C09CB, 0x4C5AB792, 0x4D98DDA5, 
276    0x46C49A98, 0x4706F0AF, 0x45404EF6, 0x448224C1, 
277    0x41CD3244, 0x400F5873, 0x4249E62A, 0x438B8C1D, 
278    0x54F16850, 0x55330267, 0x5775BC3E, 0x56B7D609, 
279    0x53F8C08C, 0x523AAABB, 0x507C14E2, 0x51BE7ED5, 
280    0x5AE239E8, 0x5B2053DF, 0x5966ED86, 0x58A487B1, 
281    0x5DEB9134, 0x5C29FB03, 0x5E6F455A, 0x5FAD2F6D, 
282    0xE1351B80, 0xE0F771B7, 0xE2B1CFEE, 0xE373A5D9, 
283    0xE63CB35C, 0xE7FED96B, 0xE5B86732, 0xE47A0D05, 
284    0xEF264A38, 0xEEE4200F, 0xECA29E56, 0xED60F461, 
285    0xE82FE2E4, 0xE9ED88D3, 0xEBAB368A, 0xEA695CBD, 
286    0xFD13B8F0, 0xFCD1D2C7, 0xFE976C9E, 0xFF5506A9, 
287    0xFA1A102C, 0xFBD87A1B, 0xF99EC442, 0xF85CAE75, 
288    0xF300E948, 0xF2C2837F, 0xF0843D26, 0xF1465711, 
289    0xF4094194, 0xF5CB2BA3, 0xF78D95FA, 0xF64FFFCD, 
290    0xD9785D60, 0xD8BA3757, 0xDAFC890E, 0xDB3EE339, 
291    0xDE71F5BC, 0xDFB39F8B, 0xDDF521D2, 0xDC374BE5, 
292    0xD76B0CD8, 0xD6A966EF, 0xD4EFD8B6, 0xD52DB281, 
293    0xD062A404, 0xD1A0CE33, 0xD3E6706A, 0xD2241A5D, 
294    0xC55EFE10, 0xC49C9427, 0xC6DA2A7E, 0xC7184049, 
295    0xC25756CC, 0xC3953CFB, 0xC1D382A2, 0xC011E895, 
296    0xCB4DAFA8, 0xCA8FC59F, 0xC8C97BC6, 0xC90B11F1, 
297    0xCC440774, 0xCD866D43, 0xCFC0D31A, 0xCE02B92D, 
298    0x91AF9640, 0x906DFC77, 0x922B422E, 0x93E92819, 
299    0x96A63E9C, 0x976454AB, 0x9522EAF2, 0x94E080C5, 
300    0x9FBCC7F8, 0x9E7EADCF, 0x9C381396, 0x9DFA79A1, 
301    0x98B56F24, 0x99770513, 0x9B31BB4A, 0x9AF3D17D, 
302    0x8D893530, 0x8C4B5F07, 0x8E0DE15E, 0x8FCF8B69, 
303    0x8A809DEC, 0x8B42F7DB, 0x89044982, 0x88C623B5, 
304    0x839A6488, 0x82580EBF, 0x801EB0E6, 0x81DCDAD1, 
305    0x8493CC54, 0x8551A663, 0x8717183A, 0x86D5720D, 
306    0xA9E2D0A0, 0xA820BA97, 0xAA6604CE, 0xABA46EF9, 
307    0xAEEB787C, 0xAF29124B, 0xAD6FAC12, 0xACADC625, 
308    0xA7F18118, 0xA633EB2F, 0xA4755576, 0xA5B73F41, 
309    0xA0F829C4, 0xA13A43F3, 0xA37CFDAA, 0xA2BE979D, 
310    0xB5C473D0, 0xB40619E7, 0xB640A7BE, 0xB782CD89, 
311    0xB2CDDB0C, 0xB30FB13B, 0xB1490F62, 0xB08B6555, 
312    0xBBD72268, 0xBA15485F, 0xB853F606, 0xB9919C31, 
313    0xBCDE8AB4, 0xBD1CE083, 0xBF5A5EDA, 0xBE9834ED,
314    /* T8_3 */
315    0x00000000, 0xB8BC6765, 0xAA09C88B, 0x12B5AFEE, 
316    0x8F629757, 0x37DEF032, 0x256B5FDC, 0x9DD738B9, 
317    0xC5B428EF, 0x7D084F8A, 0x6FBDE064, 0xD7018701, 
318    0x4AD6BFB8, 0xF26AD8DD, 0xE0DF7733, 0x58631056, 
319    0x5019579F, 0xE8A530FA, 0xFA109F14, 0x42ACF871, 
320    0xDF7BC0C8, 0x67C7A7AD, 0x75720843, 0xCDCE6F26, 
321    0x95AD7F70, 0x2D111815, 0x3FA4B7FB, 0x8718D09E, 
322    0x1ACFE827, 0xA2738F42, 0xB0C620AC, 0x087A47C9, 
323    0xA032AF3E, 0x188EC85B, 0x0A3B67B5, 0xB28700D0, 
324    0x2F503869, 0x97EC5F0C, 0x8559F0E2, 0x3DE59787, 
325    0x658687D1, 0xDD3AE0B4, 0xCF8F4F5A, 0x7733283F, 
326    0xEAE41086, 0x525877E3, 0x40EDD80D, 0xF851BF68, 
327    0xF02BF8A1, 0x48979FC4, 0x5A22302A, 0xE29E574F, 
328    0x7F496FF6, 0xC7F50893, 0xD540A77D, 0x6DFCC018, 
329    0x359FD04E, 0x8D23B72B, 0x9F9618C5, 0x272A7FA0, 
330    0xBAFD4719, 0x0241207C, 0x10F48F92, 0xA848E8F7, 
331    0x9B14583D, 0x23A83F58, 0x311D90B6, 0x89A1F7D3, 
332    0x1476CF6A, 0xACCAA80F, 0xBE7F07E1, 0x06C36084, 
333    0x5EA070D2, 0xE61C17B7, 0xF4A9B859, 0x4C15DF3C, 
334    0xD1C2E785, 0x697E80E0, 0x7BCB2F0E, 0xC377486B, 
335    0xCB0D0FA2, 0x73B168C7, 0x6104C729, 0xD9B8A04C, 
336    0x446F98F5, 0xFCD3FF90, 0xEE66507E, 0x56DA371B, 
337    0x0EB9274D, 0xB6054028, 0xA4B0EFC6, 0x1C0C88A3, 
338    0x81DBB01A, 0x3967D77F, 0x2BD27891, 0x936E1FF4, 
339    0x3B26F703, 0x839A9066, 0x912F3F88, 0x299358ED, 
340    0xB4446054, 0x0CF80731, 0x1E4DA8DF, 0xA6F1CFBA, 
341    0xFE92DFEC, 0x462EB889, 0x549B1767, 0xEC277002, 
342    0x71F048BB, 0xC94C2FDE, 0xDBF98030, 0x6345E755, 
343    0x6B3FA09C, 0xD383C7F9, 0xC1366817, 0x798A0F72, 
344    0xE45D37CB, 0x5CE150AE, 0x4E54FF40, 0xF6E89825, 
345    0xAE8B8873, 0x1637EF16, 0x048240F8, 0xBC3E279D, 
346    0x21E91F24, 0x99557841, 0x8BE0D7AF, 0x335CB0CA, 
347    0xED59B63B, 0x55E5D15E, 0x47507EB0, 0xFFEC19D5, 
348    0x623B216C, 0xDA874609, 0xC832E9E7, 0x708E8E82, 
349    0x28ED9ED4, 0x9051F9B1, 0x82E4565F, 0x3A58313A, 
350    0xA78F0983, 0x1F336EE6, 0x0D86C108, 0xB53AA66D, 
351    0xBD40E1A4, 0x05FC86C1, 0x1749292F, 0xAFF54E4A, 
352    0x322276F3, 0x8A9E1196, 0x982BBE78, 0x2097D91D, 
353    0x78F4C94B, 0xC048AE2E, 0xD2FD01C0, 0x6A4166A5, 
354    0xF7965E1C, 0x4F2A3979, 0x5D9F9697, 0xE523F1F2, 
355    0x4D6B1905, 0xF5D77E60, 0xE762D18E, 0x5FDEB6EB, 
356    0xC2098E52, 0x7AB5E937, 0x680046D9, 0xD0BC21BC, 
357    0x88DF31EA, 0x3063568F, 0x22D6F961, 0x9A6A9E04, 
358    0x07BDA6BD, 0xBF01C1D8, 0xADB46E36, 0x15080953, 
359    0x1D724E9A, 0xA5CE29FF, 0xB77B8611, 0x0FC7E174, 
360    0x9210D9CD, 0x2AACBEA8, 0x38191146, 0x80A57623, 
361    0xD8C66675, 0x607A0110, 0x72CFAEFE, 0xCA73C99B, 
362    0x57A4F122, 0xEF189647, 0xFDAD39A9, 0x45115ECC, 
363    0x764DEE06, 0xCEF18963, 0xDC44268D, 0x64F841E8, 
364    0xF92F7951, 0x41931E34, 0x5326B1DA, 0xEB9AD6BF, 
365    0xB3F9C6E9, 0x0B45A18C, 0x19F00E62, 0xA14C6907, 
366    0x3C9B51BE, 0x842736DB, 0x96929935, 0x2E2EFE50, 
367    0x2654B999, 0x9EE8DEFC, 0x8C5D7112, 0x34E11677, 
368    0xA9362ECE, 0x118A49AB, 0x033FE645, 0xBB838120, 
369    0xE3E09176, 0x5B5CF613, 0x49E959FD, 0xF1553E98, 
370    0x6C820621, 0xD43E6144, 0xC68BCEAA, 0x7E37A9CF, 
371    0xD67F4138, 0x6EC3265D, 0x7C7689B3, 0xC4CAEED6, 
372    0x591DD66F, 0xE1A1B10A, 0xF3141EE4, 0x4BA87981, 
373    0x13CB69D7, 0xAB770EB2, 0xB9C2A15C, 0x017EC639, 
374    0x9CA9FE80, 0x241599E5, 0x36A0360B, 0x8E1C516E, 
375    0x866616A7, 0x3EDA71C2, 0x2C6FDE2C, 0x94D3B949, 
376    0x090481F0, 0xB1B8E695, 0xA30D497B, 0x1BB12E1E, 
377    0x43D23E48, 0xFB6E592D, 0xE9DBF6C3, 0x516791A6, 
378    0xCCB0A91F, 0x740CCE7A, 0x66B96194, 0xDE0506F1,
379    /* T8_4 */
380    0x00000000, 0x3D6029B0, 0x7AC05360, 0x47A07AD0, 
381    0xF580A6C0, 0xC8E08F70, 0x8F40F5A0, 0xB220DC10, 
382    0x30704BC1, 0x0D106271, 0x4AB018A1, 0x77D03111, 
383    0xC5F0ED01, 0xF890C4B1, 0xBF30BE61, 0x825097D1, 
384    0x60E09782, 0x5D80BE32, 0x1A20C4E2, 0x2740ED52, 
385    0x95603142, 0xA80018F2, 0xEFA06222, 0xD2C04B92, 
386    0x5090DC43, 0x6DF0F5F3, 0x2A508F23, 0x1730A693, 
387    0xA5107A83, 0x98705333, 0xDFD029E3, 0xE2B00053, 
388    0xC1C12F04, 0xFCA106B4, 0xBB017C64, 0x866155D4, 
389    0x344189C4, 0x0921A074, 0x4E81DAA4, 0x73E1F314, 
390    0xF1B164C5, 0xCCD14D75, 0x8B7137A5, 0xB6111E15, 
391    0x0431C205, 0x3951EBB5, 0x7EF19165, 0x4391B8D5, 
392    0xA121B886, 0x9C419136, 0xDBE1EBE6, 0xE681C256, 
393    0x54A11E46, 0x69C137F6, 0x2E614D26, 0x13016496, 
394    0x9151F347, 0xAC31DAF7, 0xEB91A027, 0xD6F18997, 
395    0x64D15587, 0x59B17C37, 0x1E1106E7, 0x23712F57, 
396    0x58F35849, 0x659371F9, 0x22330B29, 0x1F532299, 
397    0xAD73FE89, 0x9013D739, 0xD7B3ADE9, 0xEAD38459, 
398    0x68831388, 0x55E33A38, 0x124340E8, 0x2F236958, 
399    0x9D03B548, 0xA0639CF8, 0xE7C3E628, 0xDAA3CF98, 
400    0x3813CFCB, 0x0573E67B, 0x42D39CAB, 0x7FB3B51B, 
401    0xCD93690B, 0xF0F340BB, 0xB7533A6B, 0x8A3313DB, 
402    0x0863840A, 0x3503ADBA, 0x72A3D76A, 0x4FC3FEDA, 
403    0xFDE322CA, 0xC0830B7A, 0x872371AA, 0xBA43581A, 
404    0x9932774D, 0xA4525EFD, 0xE3F2242D, 0xDE920D9D, 
405    0x6CB2D18D, 0x51D2F83D, 0x167282ED, 0x2B12AB5D, 
406    0xA9423C8C, 0x9422153C, 0xD3826FEC, 0xEEE2465C, 
407    0x5CC29A4C, 0x61A2B3FC, 0x2602C92C, 0x1B62E09C, 
408    0xF9D2E0CF, 0xC4B2C97F, 0x8312B3AF, 0xBE729A1F, 
409    0x0C52460F, 0x31326FBF, 0x7692156F, 0x4BF23CDF, 
410    0xC9A2AB0E, 0xF4C282BE, 0xB362F86E, 0x8E02D1DE, 
411    0x3C220DCE, 0x0142247E, 0x46E25EAE, 0x7B82771E, 
412    0xB1E6B092, 0x8C869922, 0xCB26E3F2, 0xF646CA42, 
413    0x44661652, 0x79063FE2, 0x3EA64532, 0x03C66C82, 
414    0x8196FB53, 0xBCF6D2E3, 0xFB56A833, 0xC6368183, 
415    0x74165D93, 0x49767423, 0x0ED60EF3, 0x33B62743, 
416    0xD1062710, 0xEC660EA0, 0xABC67470, 0x96A65DC0, 
417    0x248681D0, 0x19E6A860, 0x5E46D2B0, 0x6326FB00, 
418    0xE1766CD1, 0xDC164561, 0x9BB63FB1, 0xA6D61601, 
419    0x14F6CA11, 0x2996E3A1, 0x6E369971, 0x5356B0C1, 
420    0x70279F96, 0x4D47B626, 0x0AE7CCF6, 0x3787E546, 
421    0x85A73956, 0xB8C710E6, 0xFF676A36, 0xC2074386, 
422    0x4057D457, 0x7D37FDE7, 0x3A978737, 0x07F7AE87, 
423    0xB5D77297, 0x88B75B27, 0xCF1721F7, 0xF2770847, 
424    0x10C70814, 0x2DA721A4, 0x6A075B74, 0x576772C4, 
425    0xE547AED4, 0xD8278764, 0x9F87FDB4, 0xA2E7D404, 
426    0x20B743D5, 0x1DD76A65, 0x5A7710B5, 0x67173905, 
427    0xD537E515, 0xE857CCA5, 0xAFF7B675, 0x92979FC5, 
428    0xE915E8DB, 0xD475C16B, 0x93D5BBBB, 0xAEB5920B, 
429    0x1C954E1B, 0x21F567AB, 0x66551D7B, 0x5B3534CB, 
430    0xD965A31A, 0xE4058AAA, 0xA3A5F07A, 0x9EC5D9CA, 
431    0x2CE505DA, 0x11852C6A, 0x562556BA, 0x6B457F0A, 
432    0x89F57F59, 0xB49556E9, 0xF3352C39, 0xCE550589, 
433    0x7C75D999, 0x4115F029, 0x06B58AF9, 0x3BD5A349, 
434    0xB9853498, 0x84E51D28, 0xC34567F8, 0xFE254E48, 
435    0x4C059258, 0x7165BBE8, 0x36C5C138, 0x0BA5E888, 
436    0x28D4C7DF, 0x15B4EE6F, 0x521494BF, 0x6F74BD0F, 
437    0xDD54611F, 0xE03448AF, 0xA794327F, 0x9AF41BCF, 
438    0x18A48C1E, 0x25C4A5AE, 0x6264DF7E, 0x5F04F6CE, 
439    0xED242ADE, 0xD044036E, 0x97E479BE, 0xAA84500E, 
440    0x4834505D, 0x755479ED, 0x32F4033D, 0x0F942A8D, 
441    0xBDB4F69D, 0x80D4DF2D, 0xC774A5FD, 0xFA148C4D, 
442    0x78441B9C, 0x4524322C, 0x028448FC, 0x3FE4614C, 
443    0x8DC4BD5C, 0xB0A494EC, 0xF704EE3C, 0xCA64C78C,
444    /* T8_5 */
445    0x00000000, 0xCB5CD3A5, 0x4DC8A10B, 0x869472AE, 
446    0x9B914216, 0x50CD91B3, 0xD659E31D, 0x1D0530B8, 
447    0xEC53826D, 0x270F51C8, 0xA19B2366, 0x6AC7F0C3, 
448    0x77C2C07B, 0xBC9E13DE, 0x3A0A6170, 0xF156B2D5, 
449    0x03D6029B, 0xC88AD13E, 0x4E1EA390, 0x85427035, 
450    0x9847408D, 0x531B9328, 0xD58FE186, 0x1ED33223, 
451    0xEF8580F6, 0x24D95353, 0xA24D21FD, 0x6911F258, 
452    0x7414C2E0, 0xBF481145, 0x39DC63EB, 0xF280B04E, 
453    0x07AC0536, 0xCCF0D693, 0x4A64A43D, 0x81387798, 
454    0x9C3D4720, 0x57619485, 0xD1F5E62B, 0x1AA9358E, 
455    0xEBFF875B, 0x20A354FE, 0xA6372650, 0x6D6BF5F5, 
456    0x706EC54D, 0xBB3216E8, 0x3DA66446, 0xF6FAB7E3, 
457    0x047A07AD, 0xCF26D408, 0x49B2A6A6, 0x82EE7503, 
458    0x9FEB45BB, 0x54B7961E, 0xD223E4B0, 0x197F3715, 
459    0xE82985C0, 0x23755665, 0xA5E124CB, 0x6EBDF76E, 
460    0x73B8C7D6, 0xB8E41473, 0x3E7066DD, 0xF52CB578, 
461    0x0F580A6C, 0xC404D9C9, 0x4290AB67, 0x89CC78C2, 
462    0x94C9487A, 0x5F959BDF, 0xD901E971, 0x125D3AD4, 
463    0xE30B8801, 0x28575BA4, 0xAEC3290A, 0x659FFAAF, 
464    0x789ACA17, 0xB3C619B2, 0x35526B1C, 0xFE0EB8B9, 
465    0x0C8E08F7, 0xC7D2DB52, 0x4146A9FC, 0x8A1A7A59, 
466    0x971F4AE1, 0x5C439944, 0xDAD7EBEA, 0x118B384F, 
467    0xE0DD8A9A, 0x2B81593F, 0xAD152B91, 0x6649F834, 
468    0x7B4CC88C, 0xB0101B29, 0x36846987, 0xFDD8BA22, 
469    0x08F40F5A, 0xC3A8DCFF, 0x453CAE51, 0x8E607DF4, 
470    0x93654D4C, 0x58399EE9, 0xDEADEC47, 0x15F13FE2, 
471    0xE4A78D37, 0x2FFB5E92, 0xA96F2C3C, 0x6233FF99, 
472    0x7F36CF21, 0xB46A1C84, 0x32FE6E2A, 0xF9A2BD8F, 
473    0x0B220DC1, 0xC07EDE64, 0x46EAACCA, 0x8DB67F6F, 
474    0x90B34FD7, 0x5BEF9C72, 0xDD7BEEDC, 0x16273D79, 
475    0xE7718FAC, 0x2C2D5C09, 0xAAB92EA7, 0x61E5FD02, 
476    0x7CE0CDBA, 0xB7BC1E1F, 0x31286CB1, 0xFA74BF14, 
477    0x1EB014D8, 0xD5ECC77D, 0x5378B5D3, 0x98246676, 
478    0x852156CE, 0x4E7D856B, 0xC8E9F7C5, 0x03B52460, 
479    0xF2E396B5, 0x39BF4510, 0xBF2B37BE, 0x7477E41B, 
480    0x6972D4A3, 0xA22E0706, 0x24BA75A8, 0xEFE6A60D, 
481    0x1D661643, 0xD63AC5E6, 0x50AEB748, 0x9BF264ED, 
482    0x86F75455, 0x4DAB87F0, 0xCB3FF55E, 0x006326FB, 
483    0xF135942E, 0x3A69478B, 0xBCFD3525, 0x77A1E680, 
484    0x6AA4D638, 0xA1F8059D, 0x276C7733, 0xEC30A496, 
485    0x191C11EE, 0xD240C24B, 0x54D4B0E5, 0x9F886340, 
486    0x828D53F8, 0x49D1805D, 0xCF45F2F3, 0x04192156, 
487    0xF54F9383, 0x3E134026, 0xB8873288, 0x73DBE12D, 
488    0x6EDED195, 0xA5820230, 0x2316709E, 0xE84AA33B, 
489    0x1ACA1375, 0xD196C0D0, 0x5702B27E, 0x9C5E61DB, 
490    0x815B5163, 0x4A0782C6, 0xCC93F068, 0x07CF23CD, 
491    0xF6999118, 0x3DC542BD, 0xBB513013, 0x700DE3B6, 
492    0x6D08D30E, 0xA65400AB, 0x20C07205, 0xEB9CA1A0, 
493    0x11E81EB4, 0xDAB4CD11, 0x5C20BFBF, 0x977C6C1A, 
494    0x8A795CA2, 0x41258F07, 0xC7B1FDA9, 0x0CED2E0C, 
495    0xFDBB9CD9, 0x36E74F7C, 0xB0733DD2, 0x7B2FEE77, 
496    0x662ADECF, 0xAD760D6A, 0x2BE27FC4, 0xE0BEAC61, 
497    0x123E1C2F, 0xD962CF8A, 0x5FF6BD24, 0x94AA6E81, 
498    0x89AF5E39, 0x42F38D9C, 0xC467FF32, 0x0F3B2C97, 
499    0xFE6D9E42, 0x35314DE7, 0xB3A53F49, 0x78F9ECEC, 
500    0x65FCDC54, 0xAEA00FF1, 0x28347D5F, 0xE368AEFA, 
501    0x16441B82, 0xDD18C827, 0x5B8CBA89, 0x90D0692C, 
502    0x8DD55994, 0x46898A31, 0xC01DF89F, 0x0B412B3A, 
503    0xFA1799EF, 0x314B4A4A, 0xB7DF38E4, 0x7C83EB41, 
504    0x6186DBF9, 0xAADA085C, 0x2C4E7AF2, 0xE712A957, 
505    0x15921919, 0xDECECABC, 0x585AB812, 0x93066BB7, 
506    0x8E035B0F, 0x455F88AA, 0xC3CBFA04, 0x089729A1, 
507    0xF9C19B74, 0x329D48D1, 0xB4093A7F, 0x7F55E9DA, 
508    0x6250D962, 0xA90C0AC7, 0x2F987869, 0xE4C4ABCC,
509    /* T8_6 */
510    0x00000000, 0xA6770BB4, 0x979F1129, 0x31E81A9D, 
511    0xF44F2413, 0x52382FA7, 0x63D0353A, 0xC5A73E8E, 
512    0x33EF4E67, 0x959845D3, 0xA4705F4E, 0x020754FA, 
513    0xC7A06A74, 0x61D761C0, 0x503F7B5D, 0xF64870E9, 
514    0x67DE9CCE, 0xC1A9977A, 0xF0418DE7, 0x56368653, 
515    0x9391B8DD, 0x35E6B369, 0x040EA9F4, 0xA279A240, 
516    0x5431D2A9, 0xF246D91D, 0xC3AEC380, 0x65D9C834, 
517    0xA07EF6BA, 0x0609FD0E, 0x37E1E793, 0x9196EC27, 
518    0xCFBD399C, 0x69CA3228, 0x582228B5, 0xFE552301, 
519    0x3BF21D8F, 0x9D85163B, 0xAC6D0CA6, 0x0A1A0712, 
520    0xFC5277FB, 0x5A257C4F, 0x6BCD66D2, 0xCDBA6D66, 
521    0x081D53E8, 0xAE6A585C, 0x9F8242C1, 0x39F54975, 
522    0xA863A552, 0x0E14AEE6, 0x3FFCB47B, 0x998BBFCF, 
523    0x5C2C8141, 0xFA5B8AF5, 0xCBB39068, 0x6DC49BDC, 
524    0x9B8CEB35, 0x3DFBE081, 0x0C13FA1C, 0xAA64F1A8, 
525    0x6FC3CF26, 0xC9B4C492, 0xF85CDE0F, 0x5E2BD5BB, 
526    0x440B7579, 0xE27C7ECD, 0xD3946450, 0x75E36FE4, 
527    0xB044516A, 0x16335ADE, 0x27DB4043, 0x81AC4BF7, 
528    0x77E43B1E, 0xD19330AA, 0xE07B2A37, 0x460C2183, 
529    0x83AB1F0D, 0x25DC14B9, 0x14340E24, 0xB2430590, 
530    0x23D5E9B7, 0x85A2E203, 0xB44AF89E, 0x123DF32A, 
531    0xD79ACDA4, 0x71EDC610, 0x4005DC8D, 0xE672D739, 
532    0x103AA7D0, 0xB64DAC64, 0x87A5B6F9, 0x21D2BD4D, 
533    0xE47583C3, 0x42028877, 0x73EA92EA, 0xD59D995E, 
534    0x8BB64CE5, 0x2DC14751, 0x1C295DCC, 0xBA5E5678, 
535    0x7FF968F6, 0xD98E6342, 0xE86679DF, 0x4E11726B, 
536    0xB8590282, 0x1E2E0936, 0x2FC613AB, 0x89B1181F, 
537    0x4C162691, 0xEA612D25, 0xDB8937B8, 0x7DFE3C0C, 
538    0xEC68D02B, 0x4A1FDB9F, 0x7BF7C102, 0xDD80CAB6, 
539    0x1827F438, 0xBE50FF8C, 0x8FB8E511, 0x29CFEEA5, 
540    0xDF879E4C, 0x79F095F8, 0x48188F65, 0xEE6F84D1, 
541    0x2BC8BA5F, 0x8DBFB1EB, 0xBC57AB76, 0x1A20A0C2, 
542    0x8816EAF2, 0x2E61E146, 0x1F89FBDB, 0xB9FEF06F, 
543    0x7C59CEE1, 0xDA2EC555, 0xEBC6DFC8, 0x4DB1D47C, 
544    0xBBF9A495, 0x1D8EAF21, 0x2C66B5BC, 0x8A11BE08, 
545    0x4FB68086, 0xE9C18B32, 0xD82991AF, 0x7E5E9A1B, 
546    0xEFC8763C, 0x49BF7D88, 0x78576715, 0xDE206CA1, 
547    0x1B87522F, 0xBDF0599B, 0x8C184306, 0x2A6F48B2, 
548    0xDC27385B, 0x7A5033EF, 0x4BB82972, 0xEDCF22C6, 
549    0x28681C48, 0x8E1F17FC, 0xBFF70D61, 0x198006D5, 
550    0x47ABD36E, 0xE1DCD8DA, 0xD034C247, 0x7643C9F3, 
551    0xB3E4F77D, 0x1593FCC9, 0x247BE654, 0x820CEDE0, 
552    0x74449D09, 0xD23396BD, 0xE3DB8C20, 0x45AC8794, 
553    0x800BB91A, 0x267CB2AE, 0x1794A833, 0xB1E3A387, 
554    0x20754FA0, 0x86024414, 0xB7EA5E89, 0x119D553D, 
555    0xD43A6BB3, 0x724D6007, 0x43A57A9A, 0xE5D2712E, 
556    0x139A01C7, 0xB5ED0A73, 0x840510EE, 0x22721B5A, 
557    0xE7D525D4, 0x41A22E60, 0x704A34FD, 0xD63D3F49, 
558    0xCC1D9F8B, 0x6A6A943F, 0x5B828EA2, 0xFDF58516, 
559    0x3852BB98, 0x9E25B02C, 0xAFCDAAB1, 0x09BAA105, 
560    0xFFF2D1EC, 0x5985DA58, 0x686DC0C5, 0xCE1ACB71, 
561    0x0BBDF5FF, 0xADCAFE4B, 0x9C22E4D6, 0x3A55EF62, 
562    0xABC30345, 0x0DB408F1, 0x3C5C126C, 0x9A2B19D8, 
563    0x5F8C2756, 0xF9FB2CE2, 0xC813367F, 0x6E643DCB, 
564    0x982C4D22, 0x3E5B4696, 0x0FB35C0B, 0xA9C457BF, 
565    0x6C636931, 0xCA146285, 0xFBFC7818, 0x5D8B73AC, 
566    0x03A0A617, 0xA5D7ADA3, 0x943FB73E, 0x3248BC8A, 
567    0xF7EF8204, 0x519889B0, 0x6070932D, 0xC6079899, 
568    0x304FE870, 0x9638E3C4, 0xA7D0F959, 0x01A7F2ED, 
569    0xC400CC63, 0x6277C7D7, 0x539FDD4A, 0xF5E8D6FE, 
570    0x647E3AD9, 0xC209316D, 0xF3E12BF0, 0x55962044, 
571    0x90311ECA, 0x3646157E, 0x07AE0FE3, 0xA1D90457, 
572    0x579174BE, 0xF1E67F0A, 0xC00E6597, 0x66796E23, 
573    0xA3DE50AD, 0x05A95B19, 0x34414184, 0x92364A30,
574    /* T8_7 */
575    0x00000000, 0xCCAA009E, 0x4225077D, 0x8E8F07E3, 
576    0x844A0EFA, 0x48E00E64, 0xC66F0987, 0x0AC50919, 
577    0xD3E51BB5, 0x1F4F1B2B, 0x91C01CC8, 0x5D6A1C56, 
578    0x57AF154F, 0x9B0515D1, 0x158A1232, 0xD92012AC, 
579    0x7CBB312B, 0xB01131B5, 0x3E9E3656, 0xF23436C8, 
580    0xF8F13FD1, 0x345B3F4F, 0xBAD438AC, 0x767E3832, 
581    0xAF5E2A9E, 0x63F42A00, 0xED7B2DE3, 0x21D12D7D, 
582    0x2B142464, 0xE7BE24FA, 0x69312319, 0xA59B2387, 
583    0xF9766256, 0x35DC62C8, 0xBB53652B, 0x77F965B5, 
584    0x7D3C6CAC, 0xB1966C32, 0x3F196BD1, 0xF3B36B4F, 
585    0x2A9379E3, 0xE639797D, 0x68B67E9E, 0xA41C7E00, 
586    0xAED97719, 0x62737787, 0xECFC7064, 0x205670FA, 
587    0x85CD537D, 0x496753E3, 0xC7E85400, 0x0B42549E, 
588    0x01875D87, 0xCD2D5D19, 0x43A25AFA, 0x8F085A64, 
589    0x562848C8, 0x9A824856, 0x140D4FB5, 0xD8A74F2B, 
590    0xD2624632, 0x1EC846AC, 0x9047414F, 0x5CED41D1, 
591    0x299DC2ED, 0xE537C273, 0x6BB8C590, 0xA712C50E, 
592    0xADD7CC17, 0x617DCC89, 0xEFF2CB6A, 0x2358CBF4, 
593    0xFA78D958, 0x36D2D9C6, 0xB85DDE25, 0x74F7DEBB, 
594    0x7E32D7A2, 0xB298D73C, 0x3C17D0DF, 0xF0BDD041, 
595    0x5526F3C6, 0x998CF358, 0x1703F4BB, 0xDBA9F425, 
596    0xD16CFD3C, 0x1DC6FDA2, 0x9349FA41, 0x5FE3FADF, 
597    0x86C3E873, 0x4A69E8ED, 0xC4E6EF0E, 0x084CEF90, 
598    0x0289E689, 0xCE23E617, 0x40ACE1F4, 0x8C06E16A, 
599    0xD0EBA0BB, 0x1C41A025, 0x92CEA7C6, 0x5E64A758, 
600    0x54A1AE41, 0x980BAEDF, 0x1684A93C, 0xDA2EA9A2, 
601    0x030EBB0E, 0xCFA4BB90, 0x412BBC73, 0x8D81BCED, 
602    0x8744B5F4, 0x4BEEB56A, 0xC561B289, 0x09CBB217, 
603    0xAC509190, 0x60FA910E, 0xEE7596ED, 0x22DF9673, 
604    0x281A9F6A, 0xE4B09FF4, 0x6A3F9817, 0xA6959889, 
605    0x7FB58A25, 0xB31F8ABB, 0x3D908D58, 0xF13A8DC6, 
606    0xFBFF84DF, 0x37558441, 0xB9DA83A2, 0x7570833C, 
607    0x533B85DA, 0x9F918544, 0x111E82A7, 0xDDB48239, 
608    0xD7718B20, 0x1BDB8BBE, 0x95548C5D, 0x59FE8CC3, 
609    0x80DE9E6F, 0x4C749EF1, 0xC2FB9912, 0x0E51998C, 
610    0x04949095, 0xC83E900B, 0x46B197E8, 0x8A1B9776, 
611    0x2F80B4F1, 0xE32AB46F, 0x6DA5B38C, 0xA10FB312, 
612    0xABCABA0B, 0x6760BA95, 0xE9EFBD76, 0x2545BDE8, 
613    0xFC65AF44, 0x30CFAFDA, 0xBE40A839, 0x72EAA8A7, 
614    0x782FA1BE, 0xB485A120, 0x3A0AA6C3, 0xF6A0A65D, 
615    0xAA4DE78C, 0x66E7E712, 0xE868E0F1, 0x24C2E06F, 
616    0x2E07E976, 0xE2ADE9E8, 0x6C22EE0B, 0xA088EE95, 
617    0x79A8FC39, 0xB502FCA7, 0x3B8DFB44, 0xF727FBDA, 
618    0xFDE2F2C3, 0x3148F25D, 0xBFC7F5BE, 0x736DF520, 
619    0xD6F6D6A7, 0x1A5CD639, 0x94D3D1DA, 0x5879D144, 
620    0x52BCD85D, 0x9E16D8C3, 0x1099DF20, 0xDC33DFBE, 
621    0x0513CD12, 0xC9B9CD8C, 0x4736CA6F, 0x8B9CCAF1, 
622    0x8159C3E8, 0x4DF3C376, 0xC37CC495, 0x0FD6C40B, 
623    0x7AA64737, 0xB60C47A9, 0x3883404A, 0xF42940D4, 
624    0xFEEC49CD, 0x32464953, 0xBCC94EB0, 0x70634E2E, 
625    0xA9435C82, 0x65E95C1C, 0xEB665BFF, 0x27CC5B61, 
626    0x2D095278, 0xE1A352E6, 0x6F2C5505, 0xA386559B, 
627    0x061D761C, 0xCAB77682, 0x44387161, 0x889271FF, 
628    0x825778E6, 0x4EFD7878, 0xC0727F9B, 0x0CD87F05, 
629    0xD5F86DA9, 0x19526D37, 0x97DD6AD4, 0x5B776A4A, 
630    0x51B26353, 0x9D1863CD, 0x1397642E, 0xDF3D64B0, 
631    0x83D02561, 0x4F7A25FF, 0xC1F5221C, 0x0D5F2282, 
632    0x079A2B9B, 0xCB302B05, 0x45BF2CE6, 0x89152C78, 
633    0x50353ED4, 0x9C9F3E4A, 0x121039A9, 0xDEBA3937, 
634    0xD47F302E, 0x18D530B0, 0x965A3753, 0x5AF037CD, 
635    0xFF6B144A, 0x33C114D4, 0xBD4E1337, 0x71E413A9, 
636    0x7B211AB0, 0xB78B1A2E, 0x39041DCD, 0xF5AE1D53, 
637    0x2C8E0FFF, 0xE0240F61, 0x6EAB0882, 0xA201081C, 
638    0xA8C40105, 0x646E019B, 0xEAE10678, 0x264B06E6
639  };
640}