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 * 
018 * Some portions of this file Copyright (c) 2004-2006 Intel Corportation
019 * and licensed under the BSD license.
020 */
021package org.apache.hadoop.util;
022
023import java.util.zip.Checksum;
024
025import org.apache.hadoop.classification.InterfaceAudience;
026import org.apache.hadoop.classification.InterfaceStability;
027
028/**
029 * A pure-java implementation of the CRC32 checksum that uses
030 * the CRC32-C polynomial, the same polynomial used by iSCSI
031 * and implemented on many Intel chipsets supporting SSE4.2.
032 */
033@InterfaceAudience.Public
034@InterfaceStability.Stable
035public class PureJavaCrc32C implements Checksum {
036
037  /** the current CRC value, bit-flipped */
038  private int crc;
039
040  /** Create a new PureJavaCrc32 object. */
041  public PureJavaCrc32C() {
042    reset();
043  }
044
045  @Override
046  public long getValue() {
047    long ret = crc;
048    return (~ret) & 0xffffffffL;
049  }
050
051  @Override
052  public void reset() {
053    crc = 0xffffffff;
054  }
055
056  @Override
057  public void update(byte[] b, int off, int len) {
058    int localCrc = crc;
059
060    while(len > 7) {
061      final int c0 =(b[off+0] ^ localCrc) & 0xff;
062      final int c1 =(b[off+1] ^ (localCrc >>>= 8)) & 0xff;
063      final int c2 =(b[off+2] ^ (localCrc >>>= 8)) & 0xff;
064      final int c3 =(b[off+3] ^ (localCrc >>>= 8)) & 0xff;
065      localCrc = (T[T8_7_start + c0] ^ T[T8_6_start + c1])
066          ^ (T[T8_5_start + c2] ^ T[T8_4_start + c3]);
067
068      final int c4 = b[off+4] & 0xff;
069      final int c5 = b[off+5] & 0xff;
070      final int c6 = b[off+6] & 0xff;
071      final int c7 = b[off+7] & 0xff;
072
073      localCrc ^= (T[T8_3_start + c4] ^ T[T8_2_start + c5])
074           ^ (T[T8_1_start + c6] ^ T[T8_0_start + c7]);
075
076      off += 8;
077      len -= 8;
078    }
079
080    /* loop unroll - duff's device style */
081    switch(len) {
082      case 7: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
083      case 6: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
084      case 5: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
085      case 4: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
086      case 3: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
087      case 2: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
088      case 1: localCrc = (localCrc >>> 8) ^ T[T8_0_start + ((localCrc ^ b[off++]) & 0xff)];
089      default:
090        /* nothing */
091    }
092    
093    // Publish crc out to object
094    crc = localCrc;
095  }
096
097  @Override
098  final public void update(int b) {
099    crc = (crc >>> 8) ^ T[T8_0_start + ((crc ^ b) & 0xff)];
100  }
101    
102  // CRC polynomial tables generated by:
103  // java -cp build/test/classes/:build/classes/ \
104  //   org.apache.hadoop.util.TestPureJavaCrc32\$Table 82F63B78
105
106  private static final int T8_0_start = 0*256;
107  private static final int T8_1_start = 1*256;
108  private static final int T8_2_start = 2*256;
109  private static final int T8_3_start = 3*256;
110  private static final int T8_4_start = 4*256;
111  private static final int T8_5_start = 5*256;
112  private static final int T8_6_start = 6*256;
113  private static final int T8_7_start = 7*256;
114
115  private static final int[] T = new int[] {
116    /* T8_0 */
117    0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 
118    0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB, 
119    0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 
120    0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24, 
121    0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 
122    0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384, 
123    0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 
124    0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B, 
125    0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 
126    0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35, 
127    0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 
128    0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA, 
129    0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 
130    0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A, 
131    0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 
132    0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595, 
133    0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 
134    0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957, 
135    0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 
136    0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198, 
137    0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 
138    0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38, 
139    0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 
140    0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7, 
141    0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 
142    0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789, 
143    0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 
144    0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46, 
145    0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 
146    0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6, 
147    0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 
148    0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829, 
149    0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 
150    0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93, 
151    0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 
152    0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C, 
153    0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 
154    0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC, 
155    0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 
156    0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033, 
157    0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 
158    0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D, 
159    0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 
160    0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982, 
161    0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 
162    0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622, 
163    0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 
164    0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED, 
165    0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 
166    0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F, 
167    0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 
168    0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0, 
169    0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 
170    0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540, 
171    0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 
172    0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F, 
173    0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 
174    0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1, 
175    0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 
176    0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E, 
177    0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 
178    0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E, 
179    0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 
180    0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351, 
181    /* T8_1 */
182    0x00000000, 0x13A29877, 0x274530EE, 0x34E7A899, 
183    0x4E8A61DC, 0x5D28F9AB, 0x69CF5132, 0x7A6DC945, 
184    0x9D14C3B8, 0x8EB65BCF, 0xBA51F356, 0xA9F36B21, 
185    0xD39EA264, 0xC03C3A13, 0xF4DB928A, 0xE7790AFD, 
186    0x3FC5F181, 0x2C6769F6, 0x1880C16F, 0x0B225918, 
187    0x714F905D, 0x62ED082A, 0x560AA0B3, 0x45A838C4, 
188    0xA2D13239, 0xB173AA4E, 0x859402D7, 0x96369AA0, 
189    0xEC5B53E5, 0xFFF9CB92, 0xCB1E630B, 0xD8BCFB7C, 
190    0x7F8BE302, 0x6C297B75, 0x58CED3EC, 0x4B6C4B9B, 
191    0x310182DE, 0x22A31AA9, 0x1644B230, 0x05E62A47, 
192    0xE29F20BA, 0xF13DB8CD, 0xC5DA1054, 0xD6788823, 
193    0xAC154166, 0xBFB7D911, 0x8B507188, 0x98F2E9FF, 
194    0x404E1283, 0x53EC8AF4, 0x670B226D, 0x74A9BA1A, 
195    0x0EC4735F, 0x1D66EB28, 0x298143B1, 0x3A23DBC6, 
196    0xDD5AD13B, 0xCEF8494C, 0xFA1FE1D5, 0xE9BD79A2, 
197    0x93D0B0E7, 0x80722890, 0xB4958009, 0xA737187E, 
198    0xFF17C604, 0xECB55E73, 0xD852F6EA, 0xCBF06E9D, 
199    0xB19DA7D8, 0xA23F3FAF, 0x96D89736, 0x857A0F41, 
200    0x620305BC, 0x71A19DCB, 0x45463552, 0x56E4AD25, 
201    0x2C896460, 0x3F2BFC17, 0x0BCC548E, 0x186ECCF9, 
202    0xC0D23785, 0xD370AFF2, 0xE797076B, 0xF4359F1C, 
203    0x8E585659, 0x9DFACE2E, 0xA91D66B7, 0xBABFFEC0, 
204    0x5DC6F43D, 0x4E646C4A, 0x7A83C4D3, 0x69215CA4, 
205    0x134C95E1, 0x00EE0D96, 0x3409A50F, 0x27AB3D78, 
206    0x809C2506, 0x933EBD71, 0xA7D915E8, 0xB47B8D9F, 
207    0xCE1644DA, 0xDDB4DCAD, 0xE9537434, 0xFAF1EC43, 
208    0x1D88E6BE, 0x0E2A7EC9, 0x3ACDD650, 0x296F4E27, 
209    0x53028762, 0x40A01F15, 0x7447B78C, 0x67E52FFB, 
210    0xBF59D487, 0xACFB4CF0, 0x981CE469, 0x8BBE7C1E, 
211    0xF1D3B55B, 0xE2712D2C, 0xD69685B5, 0xC5341DC2, 
212    0x224D173F, 0x31EF8F48, 0x050827D1, 0x16AABFA6, 
213    0x6CC776E3, 0x7F65EE94, 0x4B82460D, 0x5820DE7A, 
214    0xFBC3FAF9, 0xE861628E, 0xDC86CA17, 0xCF245260, 
215    0xB5499B25, 0xA6EB0352, 0x920CABCB, 0x81AE33BC, 
216    0x66D73941, 0x7575A136, 0x419209AF, 0x523091D8, 
217    0x285D589D, 0x3BFFC0EA, 0x0F186873, 0x1CBAF004, 
218    0xC4060B78, 0xD7A4930F, 0xE3433B96, 0xF0E1A3E1, 
219    0x8A8C6AA4, 0x992EF2D3, 0xADC95A4A, 0xBE6BC23D, 
220    0x5912C8C0, 0x4AB050B7, 0x7E57F82E, 0x6DF56059, 
221    0x1798A91C, 0x043A316B, 0x30DD99F2, 0x237F0185, 
222    0x844819FB, 0x97EA818C, 0xA30D2915, 0xB0AFB162, 
223    0xCAC27827, 0xD960E050, 0xED8748C9, 0xFE25D0BE, 
224    0x195CDA43, 0x0AFE4234, 0x3E19EAAD, 0x2DBB72DA, 
225    0x57D6BB9F, 0x447423E8, 0x70938B71, 0x63311306, 
226    0xBB8DE87A, 0xA82F700D, 0x9CC8D894, 0x8F6A40E3, 
227    0xF50789A6, 0xE6A511D1, 0xD242B948, 0xC1E0213F, 
228    0x26992BC2, 0x353BB3B5, 0x01DC1B2C, 0x127E835B, 
229    0x68134A1E, 0x7BB1D269, 0x4F567AF0, 0x5CF4E287, 
230    0x04D43CFD, 0x1776A48A, 0x23910C13, 0x30339464, 
231    0x4A5E5D21, 0x59FCC556, 0x6D1B6DCF, 0x7EB9F5B8, 
232    0x99C0FF45, 0x8A626732, 0xBE85CFAB, 0xAD2757DC, 
233    0xD74A9E99, 0xC4E806EE, 0xF00FAE77, 0xE3AD3600, 
234    0x3B11CD7C, 0x28B3550B, 0x1C54FD92, 0x0FF665E5, 
235    0x759BACA0, 0x663934D7, 0x52DE9C4E, 0x417C0439, 
236    0xA6050EC4, 0xB5A796B3, 0x81403E2A, 0x92E2A65D, 
237    0xE88F6F18, 0xFB2DF76F, 0xCFCA5FF6, 0xDC68C781, 
238    0x7B5FDFFF, 0x68FD4788, 0x5C1AEF11, 0x4FB87766, 
239    0x35D5BE23, 0x26772654, 0x12908ECD, 0x013216BA, 
240    0xE64B1C47, 0xF5E98430, 0xC10E2CA9, 0xD2ACB4DE, 
241    0xA8C17D9B, 0xBB63E5EC, 0x8F844D75, 0x9C26D502, 
242    0x449A2E7E, 0x5738B609, 0x63DF1E90, 0x707D86E7, 
243    0x0A104FA2, 0x19B2D7D5, 0x2D557F4C, 0x3EF7E73B, 
244    0xD98EEDC6, 0xCA2C75B1, 0xFECBDD28, 0xED69455F, 
245    0x97048C1A, 0x84A6146D, 0xB041BCF4, 0xA3E32483, 
246    /* T8_2 */
247    0x00000000, 0xA541927E, 0x4F6F520D, 0xEA2EC073, 
248    0x9EDEA41A, 0x3B9F3664, 0xD1B1F617, 0x74F06469, 
249    0x38513EC5, 0x9D10ACBB, 0x773E6CC8, 0xD27FFEB6, 
250    0xA68F9ADF, 0x03CE08A1, 0xE9E0C8D2, 0x4CA15AAC, 
251    0x70A27D8A, 0xD5E3EFF4, 0x3FCD2F87, 0x9A8CBDF9, 
252    0xEE7CD990, 0x4B3D4BEE, 0xA1138B9D, 0x045219E3, 
253    0x48F3434F, 0xEDB2D131, 0x079C1142, 0xA2DD833C, 
254    0xD62DE755, 0x736C752B, 0x9942B558, 0x3C032726, 
255    0xE144FB14, 0x4405696A, 0xAE2BA919, 0x0B6A3B67, 
256    0x7F9A5F0E, 0xDADBCD70, 0x30F50D03, 0x95B49F7D, 
257    0xD915C5D1, 0x7C5457AF, 0x967A97DC, 0x333B05A2, 
258    0x47CB61CB, 0xE28AF3B5, 0x08A433C6, 0xADE5A1B8, 
259    0x91E6869E, 0x34A714E0, 0xDE89D493, 0x7BC846ED, 
260    0x0F382284, 0xAA79B0FA, 0x40577089, 0xE516E2F7, 
261    0xA9B7B85B, 0x0CF62A25, 0xE6D8EA56, 0x43997828, 
262    0x37691C41, 0x92288E3F, 0x78064E4C, 0xDD47DC32, 
263    0xC76580D9, 0x622412A7, 0x880AD2D4, 0x2D4B40AA, 
264    0x59BB24C3, 0xFCFAB6BD, 0x16D476CE, 0xB395E4B0, 
265    0xFF34BE1C, 0x5A752C62, 0xB05BEC11, 0x151A7E6F, 
266    0x61EA1A06, 0xC4AB8878, 0x2E85480B, 0x8BC4DA75, 
267    0xB7C7FD53, 0x12866F2D, 0xF8A8AF5E, 0x5DE93D20, 
268    0x29195949, 0x8C58CB37, 0x66760B44, 0xC337993A, 
269    0x8F96C396, 0x2AD751E8, 0xC0F9919B, 0x65B803E5, 
270    0x1148678C, 0xB409F5F2, 0x5E273581, 0xFB66A7FF, 
271    0x26217BCD, 0x8360E9B3, 0x694E29C0, 0xCC0FBBBE, 
272    0xB8FFDFD7, 0x1DBE4DA9, 0xF7908DDA, 0x52D11FA4, 
273    0x1E704508, 0xBB31D776, 0x511F1705, 0xF45E857B, 
274    0x80AEE112, 0x25EF736C, 0xCFC1B31F, 0x6A802161, 
275    0x56830647, 0xF3C29439, 0x19EC544A, 0xBCADC634, 
276    0xC85DA25D, 0x6D1C3023, 0x8732F050, 0x2273622E, 
277    0x6ED23882, 0xCB93AAFC, 0x21BD6A8F, 0x84FCF8F1, 
278    0xF00C9C98, 0x554D0EE6, 0xBF63CE95, 0x1A225CEB, 
279    0x8B277743, 0x2E66E53D, 0xC448254E, 0x6109B730, 
280    0x15F9D359, 0xB0B84127, 0x5A968154, 0xFFD7132A, 
281    0xB3764986, 0x1637DBF8, 0xFC191B8B, 0x595889F5, 
282    0x2DA8ED9C, 0x88E97FE2, 0x62C7BF91, 0xC7862DEF, 
283    0xFB850AC9, 0x5EC498B7, 0xB4EA58C4, 0x11ABCABA, 
284    0x655BAED3, 0xC01A3CAD, 0x2A34FCDE, 0x8F756EA0, 
285    0xC3D4340C, 0x6695A672, 0x8CBB6601, 0x29FAF47F, 
286    0x5D0A9016, 0xF84B0268, 0x1265C21B, 0xB7245065, 
287    0x6A638C57, 0xCF221E29, 0x250CDE5A, 0x804D4C24, 
288    0xF4BD284D, 0x51FCBA33, 0xBBD27A40, 0x1E93E83E, 
289    0x5232B292, 0xF77320EC, 0x1D5DE09F, 0xB81C72E1, 
290    0xCCEC1688, 0x69AD84F6, 0x83834485, 0x26C2D6FB, 
291    0x1AC1F1DD, 0xBF8063A3, 0x55AEA3D0, 0xF0EF31AE, 
292    0x841F55C7, 0x215EC7B9, 0xCB7007CA, 0x6E3195B4, 
293    0x2290CF18, 0x87D15D66, 0x6DFF9D15, 0xC8BE0F6B, 
294    0xBC4E6B02, 0x190FF97C, 0xF321390F, 0x5660AB71, 
295    0x4C42F79A, 0xE90365E4, 0x032DA597, 0xA66C37E9, 
296    0xD29C5380, 0x77DDC1FE, 0x9DF3018D, 0x38B293F3, 
297    0x7413C95F, 0xD1525B21, 0x3B7C9B52, 0x9E3D092C, 
298    0xEACD6D45, 0x4F8CFF3B, 0xA5A23F48, 0x00E3AD36, 
299    0x3CE08A10, 0x99A1186E, 0x738FD81D, 0xD6CE4A63, 
300    0xA23E2E0A, 0x077FBC74, 0xED517C07, 0x4810EE79, 
301    0x04B1B4D5, 0xA1F026AB, 0x4BDEE6D8, 0xEE9F74A6, 
302    0x9A6F10CF, 0x3F2E82B1, 0xD50042C2, 0x7041D0BC, 
303    0xAD060C8E, 0x08479EF0, 0xE2695E83, 0x4728CCFD, 
304    0x33D8A894, 0x96993AEA, 0x7CB7FA99, 0xD9F668E7, 
305    0x9557324B, 0x3016A035, 0xDA386046, 0x7F79F238, 
306    0x0B899651, 0xAEC8042F, 0x44E6C45C, 0xE1A75622, 
307    0xDDA47104, 0x78E5E37A, 0x92CB2309, 0x378AB177, 
308    0x437AD51E, 0xE63B4760, 0x0C158713, 0xA954156D, 
309    0xE5F54FC1, 0x40B4DDBF, 0xAA9A1DCC, 0x0FDB8FB2, 
310    0x7B2BEBDB, 0xDE6A79A5, 0x3444B9D6, 0x91052BA8, 
311    /* T8_3 */
312    0x00000000, 0xDD45AAB8, 0xBF672381, 0x62228939, 
313    0x7B2231F3, 0xA6679B4B, 0xC4451272, 0x1900B8CA, 
314    0xF64463E6, 0x2B01C95E, 0x49234067, 0x9466EADF, 
315    0x8D665215, 0x5023F8AD, 0x32017194, 0xEF44DB2C, 
316    0xE964B13D, 0x34211B85, 0x560392BC, 0x8B463804, 
317    0x924680CE, 0x4F032A76, 0x2D21A34F, 0xF06409F7, 
318    0x1F20D2DB, 0xC2657863, 0xA047F15A, 0x7D025BE2, 
319    0x6402E328, 0xB9474990, 0xDB65C0A9, 0x06206A11, 
320    0xD725148B, 0x0A60BE33, 0x6842370A, 0xB5079DB2, 
321    0xAC072578, 0x71428FC0, 0x136006F9, 0xCE25AC41, 
322    0x2161776D, 0xFC24DDD5, 0x9E0654EC, 0x4343FE54, 
323    0x5A43469E, 0x8706EC26, 0xE524651F, 0x3861CFA7, 
324    0x3E41A5B6, 0xE3040F0E, 0x81268637, 0x5C632C8F, 
325    0x45639445, 0x98263EFD, 0xFA04B7C4, 0x27411D7C, 
326    0xC805C650, 0x15406CE8, 0x7762E5D1, 0xAA274F69, 
327    0xB327F7A3, 0x6E625D1B, 0x0C40D422, 0xD1057E9A, 
328    0xABA65FE7, 0x76E3F55F, 0x14C17C66, 0xC984D6DE, 
329    0xD0846E14, 0x0DC1C4AC, 0x6FE34D95, 0xB2A6E72D, 
330    0x5DE23C01, 0x80A796B9, 0xE2851F80, 0x3FC0B538, 
331    0x26C00DF2, 0xFB85A74A, 0x99A72E73, 0x44E284CB, 
332    0x42C2EEDA, 0x9F874462, 0xFDA5CD5B, 0x20E067E3, 
333    0x39E0DF29, 0xE4A57591, 0x8687FCA8, 0x5BC25610, 
334    0xB4868D3C, 0x69C32784, 0x0BE1AEBD, 0xD6A40405, 
335    0xCFA4BCCF, 0x12E11677, 0x70C39F4E, 0xAD8635F6, 
336    0x7C834B6C, 0xA1C6E1D4, 0xC3E468ED, 0x1EA1C255, 
337    0x07A17A9F, 0xDAE4D027, 0xB8C6591E, 0x6583F3A6, 
338    0x8AC7288A, 0x57828232, 0x35A00B0B, 0xE8E5A1B3, 
339    0xF1E51979, 0x2CA0B3C1, 0x4E823AF8, 0x93C79040, 
340    0x95E7FA51, 0x48A250E9, 0x2A80D9D0, 0xF7C57368, 
341    0xEEC5CBA2, 0x3380611A, 0x51A2E823, 0x8CE7429B, 
342    0x63A399B7, 0xBEE6330F, 0xDCC4BA36, 0x0181108E, 
343    0x1881A844, 0xC5C402FC, 0xA7E68BC5, 0x7AA3217D, 
344    0x52A0C93F, 0x8FE56387, 0xEDC7EABE, 0x30824006, 
345    0x2982F8CC, 0xF4C75274, 0x96E5DB4D, 0x4BA071F5, 
346    0xA4E4AAD9, 0x79A10061, 0x1B838958, 0xC6C623E0, 
347    0xDFC69B2A, 0x02833192, 0x60A1B8AB, 0xBDE41213, 
348    0xBBC47802, 0x6681D2BA, 0x04A35B83, 0xD9E6F13B, 
349    0xC0E649F1, 0x1DA3E349, 0x7F816A70, 0xA2C4C0C8, 
350    0x4D801BE4, 0x90C5B15C, 0xF2E73865, 0x2FA292DD, 
351    0x36A22A17, 0xEBE780AF, 0x89C50996, 0x5480A32E, 
352    0x8585DDB4, 0x58C0770C, 0x3AE2FE35, 0xE7A7548D, 
353    0xFEA7EC47, 0x23E246FF, 0x41C0CFC6, 0x9C85657E, 
354    0x73C1BE52, 0xAE8414EA, 0xCCA69DD3, 0x11E3376B, 
355    0x08E38FA1, 0xD5A62519, 0xB784AC20, 0x6AC10698, 
356    0x6CE16C89, 0xB1A4C631, 0xD3864F08, 0x0EC3E5B0, 
357    0x17C35D7A, 0xCA86F7C2, 0xA8A47EFB, 0x75E1D443, 
358    0x9AA50F6F, 0x47E0A5D7, 0x25C22CEE, 0xF8878656, 
359    0xE1873E9C, 0x3CC29424, 0x5EE01D1D, 0x83A5B7A5, 
360    0xF90696D8, 0x24433C60, 0x4661B559, 0x9B241FE1, 
361    0x8224A72B, 0x5F610D93, 0x3D4384AA, 0xE0062E12, 
362    0x0F42F53E, 0xD2075F86, 0xB025D6BF, 0x6D607C07, 
363    0x7460C4CD, 0xA9256E75, 0xCB07E74C, 0x16424DF4, 
364    0x106227E5, 0xCD278D5D, 0xAF050464, 0x7240AEDC, 
365    0x6B401616, 0xB605BCAE, 0xD4273597, 0x09629F2F, 
366    0xE6264403, 0x3B63EEBB, 0x59416782, 0x8404CD3A, 
367    0x9D0475F0, 0x4041DF48, 0x22635671, 0xFF26FCC9, 
368    0x2E238253, 0xF36628EB, 0x9144A1D2, 0x4C010B6A, 
369    0x5501B3A0, 0x88441918, 0xEA669021, 0x37233A99, 
370    0xD867E1B5, 0x05224B0D, 0x6700C234, 0xBA45688C, 
371    0xA345D046, 0x7E007AFE, 0x1C22F3C7, 0xC167597F, 
372    0xC747336E, 0x1A0299D6, 0x782010EF, 0xA565BA57, 
373    0xBC65029D, 0x6120A825, 0x0302211C, 0xDE478BA4, 
374    0x31035088, 0xEC46FA30, 0x8E647309, 0x5321D9B1, 
375    0x4A21617B, 0x9764CBC3, 0xF54642FA, 0x2803E842, 
376    /* T8_4 */
377    0x00000000, 0x38116FAC, 0x7022DF58, 0x4833B0F4, 
378    0xE045BEB0, 0xD854D11C, 0x906761E8, 0xA8760E44, 
379    0xC5670B91, 0xFD76643D, 0xB545D4C9, 0x8D54BB65, 
380    0x2522B521, 0x1D33DA8D, 0x55006A79, 0x6D1105D5, 
381    0x8F2261D3, 0xB7330E7F, 0xFF00BE8B, 0xC711D127, 
382    0x6F67DF63, 0x5776B0CF, 0x1F45003B, 0x27546F97, 
383    0x4A456A42, 0x725405EE, 0x3A67B51A, 0x0276DAB6, 
384    0xAA00D4F2, 0x9211BB5E, 0xDA220BAA, 0xE2336406, 
385    0x1BA8B557, 0x23B9DAFB, 0x6B8A6A0F, 0x539B05A3, 
386    0xFBED0BE7, 0xC3FC644B, 0x8BCFD4BF, 0xB3DEBB13, 
387    0xDECFBEC6, 0xE6DED16A, 0xAEED619E, 0x96FC0E32, 
388    0x3E8A0076, 0x069B6FDA, 0x4EA8DF2E, 0x76B9B082, 
389    0x948AD484, 0xAC9BBB28, 0xE4A80BDC, 0xDCB96470, 
390    0x74CF6A34, 0x4CDE0598, 0x04EDB56C, 0x3CFCDAC0, 
391    0x51EDDF15, 0x69FCB0B9, 0x21CF004D, 0x19DE6FE1, 
392    0xB1A861A5, 0x89B90E09, 0xC18ABEFD, 0xF99BD151, 
393    0x37516AAE, 0x0F400502, 0x4773B5F6, 0x7F62DA5A, 
394    0xD714D41E, 0xEF05BBB2, 0xA7360B46, 0x9F2764EA, 
395    0xF236613F, 0xCA270E93, 0x8214BE67, 0xBA05D1CB, 
396    0x1273DF8F, 0x2A62B023, 0x625100D7, 0x5A406F7B, 
397    0xB8730B7D, 0x806264D1, 0xC851D425, 0xF040BB89, 
398    0x5836B5CD, 0x6027DA61, 0x28146A95, 0x10050539, 
399    0x7D1400EC, 0x45056F40, 0x0D36DFB4, 0x3527B018, 
400    0x9D51BE5C, 0xA540D1F0, 0xED736104, 0xD5620EA8, 
401    0x2CF9DFF9, 0x14E8B055, 0x5CDB00A1, 0x64CA6F0D, 
402    0xCCBC6149, 0xF4AD0EE5, 0xBC9EBE11, 0x848FD1BD, 
403    0xE99ED468, 0xD18FBBC4, 0x99BC0B30, 0xA1AD649C, 
404    0x09DB6AD8, 0x31CA0574, 0x79F9B580, 0x41E8DA2C, 
405    0xA3DBBE2A, 0x9BCAD186, 0xD3F96172, 0xEBE80EDE, 
406    0x439E009A, 0x7B8F6F36, 0x33BCDFC2, 0x0BADB06E, 
407    0x66BCB5BB, 0x5EADDA17, 0x169E6AE3, 0x2E8F054F, 
408    0x86F90B0B, 0xBEE864A7, 0xF6DBD453, 0xCECABBFF, 
409    0x6EA2D55C, 0x56B3BAF0, 0x1E800A04, 0x269165A8, 
410    0x8EE76BEC, 0xB6F60440, 0xFEC5B4B4, 0xC6D4DB18, 
411    0xABC5DECD, 0x93D4B161, 0xDBE70195, 0xE3F66E39, 
412    0x4B80607D, 0x73910FD1, 0x3BA2BF25, 0x03B3D089, 
413    0xE180B48F, 0xD991DB23, 0x91A26BD7, 0xA9B3047B, 
414    0x01C50A3F, 0x39D46593, 0x71E7D567, 0x49F6BACB, 
415    0x24E7BF1E, 0x1CF6D0B2, 0x54C56046, 0x6CD40FEA, 
416    0xC4A201AE, 0xFCB36E02, 0xB480DEF6, 0x8C91B15A, 
417    0x750A600B, 0x4D1B0FA7, 0x0528BF53, 0x3D39D0FF, 
418    0x954FDEBB, 0xAD5EB117, 0xE56D01E3, 0xDD7C6E4F, 
419    0xB06D6B9A, 0x887C0436, 0xC04FB4C2, 0xF85EDB6E, 
420    0x5028D52A, 0x6839BA86, 0x200A0A72, 0x181B65DE, 
421    0xFA2801D8, 0xC2396E74, 0x8A0ADE80, 0xB21BB12C, 
422    0x1A6DBF68, 0x227CD0C4, 0x6A4F6030, 0x525E0F9C, 
423    0x3F4F0A49, 0x075E65E5, 0x4F6DD511, 0x777CBABD, 
424    0xDF0AB4F9, 0xE71BDB55, 0xAF286BA1, 0x9739040D, 
425    0x59F3BFF2, 0x61E2D05E, 0x29D160AA, 0x11C00F06, 
426    0xB9B60142, 0x81A76EEE, 0xC994DE1A, 0xF185B1B6, 
427    0x9C94B463, 0xA485DBCF, 0xECB66B3B, 0xD4A70497, 
428    0x7CD10AD3, 0x44C0657F, 0x0CF3D58B, 0x34E2BA27, 
429    0xD6D1DE21, 0xEEC0B18D, 0xA6F30179, 0x9EE26ED5, 
430    0x36946091, 0x0E850F3D, 0x46B6BFC9, 0x7EA7D065, 
431    0x13B6D5B0, 0x2BA7BA1C, 0x63940AE8, 0x5B856544, 
432    0xF3F36B00, 0xCBE204AC, 0x83D1B458, 0xBBC0DBF4, 
433    0x425B0AA5, 0x7A4A6509, 0x3279D5FD, 0x0A68BA51, 
434    0xA21EB415, 0x9A0FDBB9, 0xD23C6B4D, 0xEA2D04E1, 
435    0x873C0134, 0xBF2D6E98, 0xF71EDE6C, 0xCF0FB1C0, 
436    0x6779BF84, 0x5F68D028, 0x175B60DC, 0x2F4A0F70, 
437    0xCD796B76, 0xF56804DA, 0xBD5BB42E, 0x854ADB82, 
438    0x2D3CD5C6, 0x152DBA6A, 0x5D1E0A9E, 0x650F6532, 
439    0x081E60E7, 0x300F0F4B, 0x783CBFBF, 0x402DD013, 
440    0xE85BDE57, 0xD04AB1FB, 0x9879010F, 0xA0686EA3, 
441    /* T8_5 */
442    0x00000000, 0xEF306B19, 0xDB8CA0C3, 0x34BCCBDA, 
443    0xB2F53777, 0x5DC55C6E, 0x697997B4, 0x8649FCAD, 
444    0x6006181F, 0x8F367306, 0xBB8AB8DC, 0x54BAD3C5, 
445    0xD2F32F68, 0x3DC34471, 0x097F8FAB, 0xE64FE4B2, 
446    0xC00C303E, 0x2F3C5B27, 0x1B8090FD, 0xF4B0FBE4, 
447    0x72F90749, 0x9DC96C50, 0xA975A78A, 0x4645CC93, 
448    0xA00A2821, 0x4F3A4338, 0x7B8688E2, 0x94B6E3FB, 
449    0x12FF1F56, 0xFDCF744F, 0xC973BF95, 0x2643D48C, 
450    0x85F4168D, 0x6AC47D94, 0x5E78B64E, 0xB148DD57, 
451    0x370121FA, 0xD8314AE3, 0xEC8D8139, 0x03BDEA20, 
452    0xE5F20E92, 0x0AC2658B, 0x3E7EAE51, 0xD14EC548, 
453    0x570739E5, 0xB83752FC, 0x8C8B9926, 0x63BBF23F, 
454    0x45F826B3, 0xAAC84DAA, 0x9E748670, 0x7144ED69, 
455    0xF70D11C4, 0x183D7ADD, 0x2C81B107, 0xC3B1DA1E, 
456    0x25FE3EAC, 0xCACE55B5, 0xFE729E6F, 0x1142F576, 
457    0x970B09DB, 0x783B62C2, 0x4C87A918, 0xA3B7C201, 
458    0x0E045BEB, 0xE13430F2, 0xD588FB28, 0x3AB89031, 
459    0xBCF16C9C, 0x53C10785, 0x677DCC5F, 0x884DA746, 
460    0x6E0243F4, 0x813228ED, 0xB58EE337, 0x5ABE882E, 
461    0xDCF77483, 0x33C71F9A, 0x077BD440, 0xE84BBF59, 
462    0xCE086BD5, 0x213800CC, 0x1584CB16, 0xFAB4A00F, 
463    0x7CFD5CA2, 0x93CD37BB, 0xA771FC61, 0x48419778, 
464    0xAE0E73CA, 0x413E18D3, 0x7582D309, 0x9AB2B810, 
465    0x1CFB44BD, 0xF3CB2FA4, 0xC777E47E, 0x28478F67, 
466    0x8BF04D66, 0x64C0267F, 0x507CEDA5, 0xBF4C86BC, 
467    0x39057A11, 0xD6351108, 0xE289DAD2, 0x0DB9B1CB, 
468    0xEBF65579, 0x04C63E60, 0x307AF5BA, 0xDF4A9EA3, 
469    0x5903620E, 0xB6330917, 0x828FC2CD, 0x6DBFA9D4, 
470    0x4BFC7D58, 0xA4CC1641, 0x9070DD9B, 0x7F40B682, 
471    0xF9094A2F, 0x16392136, 0x2285EAEC, 0xCDB581F5, 
472    0x2BFA6547, 0xC4CA0E5E, 0xF076C584, 0x1F46AE9D, 
473    0x990F5230, 0x763F3929, 0x4283F2F3, 0xADB399EA, 
474    0x1C08B7D6, 0xF338DCCF, 0xC7841715, 0x28B47C0C, 
475    0xAEFD80A1, 0x41CDEBB8, 0x75712062, 0x9A414B7B, 
476    0x7C0EAFC9, 0x933EC4D0, 0xA7820F0A, 0x48B26413, 
477    0xCEFB98BE, 0x21CBF3A7, 0x1577387D, 0xFA475364, 
478    0xDC0487E8, 0x3334ECF1, 0x0788272B, 0xE8B84C32, 
479    0x6EF1B09F, 0x81C1DB86, 0xB57D105C, 0x5A4D7B45, 
480    0xBC029FF7, 0x5332F4EE, 0x678E3F34, 0x88BE542D, 
481    0x0EF7A880, 0xE1C7C399, 0xD57B0843, 0x3A4B635A, 
482    0x99FCA15B, 0x76CCCA42, 0x42700198, 0xAD406A81, 
483    0x2B09962C, 0xC439FD35, 0xF08536EF, 0x1FB55DF6, 
484    0xF9FAB944, 0x16CAD25D, 0x22761987, 0xCD46729E, 
485    0x4B0F8E33, 0xA43FE52A, 0x90832EF0, 0x7FB345E9, 
486    0x59F09165, 0xB6C0FA7C, 0x827C31A6, 0x6D4C5ABF, 
487    0xEB05A612, 0x0435CD0B, 0x308906D1, 0xDFB96DC8, 
488    0x39F6897A, 0xD6C6E263, 0xE27A29B9, 0x0D4A42A0, 
489    0x8B03BE0D, 0x6433D514, 0x508F1ECE, 0xBFBF75D7, 
490    0x120CEC3D, 0xFD3C8724, 0xC9804CFE, 0x26B027E7, 
491    0xA0F9DB4A, 0x4FC9B053, 0x7B757B89, 0x94451090, 
492    0x720AF422, 0x9D3A9F3B, 0xA98654E1, 0x46B63FF8, 
493    0xC0FFC355, 0x2FCFA84C, 0x1B736396, 0xF443088F, 
494    0xD200DC03, 0x3D30B71A, 0x098C7CC0, 0xE6BC17D9, 
495    0x60F5EB74, 0x8FC5806D, 0xBB794BB7, 0x544920AE, 
496    0xB206C41C, 0x5D36AF05, 0x698A64DF, 0x86BA0FC6, 
497    0x00F3F36B, 0xEFC39872, 0xDB7F53A8, 0x344F38B1, 
498    0x97F8FAB0, 0x78C891A9, 0x4C745A73, 0xA344316A, 
499    0x250DCDC7, 0xCA3DA6DE, 0xFE816D04, 0x11B1061D, 
500    0xF7FEE2AF, 0x18CE89B6, 0x2C72426C, 0xC3422975, 
501    0x450BD5D8, 0xAA3BBEC1, 0x9E87751B, 0x71B71E02, 
502    0x57F4CA8E, 0xB8C4A197, 0x8C786A4D, 0x63480154, 
503    0xE501FDF9, 0x0A3196E0, 0x3E8D5D3A, 0xD1BD3623, 
504    0x37F2D291, 0xD8C2B988, 0xEC7E7252, 0x034E194B, 
505    0x8507E5E6, 0x6A378EFF, 0x5E8B4525, 0xB1BB2E3C, 
506    /* T8_6 */
507    0x00000000, 0x68032CC8, 0xD0065990, 0xB8057558, 
508    0xA5E0C5D1, 0xCDE3E919, 0x75E69C41, 0x1DE5B089, 
509    0x4E2DFD53, 0x262ED19B, 0x9E2BA4C3, 0xF628880B, 
510    0xEBCD3882, 0x83CE144A, 0x3BCB6112, 0x53C84DDA, 
511    0x9C5BFAA6, 0xF458D66E, 0x4C5DA336, 0x245E8FFE, 
512    0x39BB3F77, 0x51B813BF, 0xE9BD66E7, 0x81BE4A2F, 
513    0xD27607F5, 0xBA752B3D, 0x02705E65, 0x6A7372AD, 
514    0x7796C224, 0x1F95EEEC, 0xA7909BB4, 0xCF93B77C, 
515    0x3D5B83BD, 0x5558AF75, 0xED5DDA2D, 0x855EF6E5, 
516    0x98BB466C, 0xF0B86AA4, 0x48BD1FFC, 0x20BE3334, 
517    0x73767EEE, 0x1B755226, 0xA370277E, 0xCB730BB6, 
518    0xD696BB3F, 0xBE9597F7, 0x0690E2AF, 0x6E93CE67, 
519    0xA100791B, 0xC90355D3, 0x7106208B, 0x19050C43, 
520    0x04E0BCCA, 0x6CE39002, 0xD4E6E55A, 0xBCE5C992, 
521    0xEF2D8448, 0x872EA880, 0x3F2BDDD8, 0x5728F110, 
522    0x4ACD4199, 0x22CE6D51, 0x9ACB1809, 0xF2C834C1, 
523    0x7AB7077A, 0x12B42BB2, 0xAAB15EEA, 0xC2B27222, 
524    0xDF57C2AB, 0xB754EE63, 0x0F519B3B, 0x6752B7F3, 
525    0x349AFA29, 0x5C99D6E1, 0xE49CA3B9, 0x8C9F8F71, 
526    0x917A3FF8, 0xF9791330, 0x417C6668, 0x297F4AA0, 
527    0xE6ECFDDC, 0x8EEFD114, 0x36EAA44C, 0x5EE98884, 
528    0x430C380D, 0x2B0F14C5, 0x930A619D, 0xFB094D55, 
529    0xA8C1008F, 0xC0C22C47, 0x78C7591F, 0x10C475D7, 
530    0x0D21C55E, 0x6522E996, 0xDD279CCE, 0xB524B006, 
531    0x47EC84C7, 0x2FEFA80F, 0x97EADD57, 0xFFE9F19F, 
532    0xE20C4116, 0x8A0F6DDE, 0x320A1886, 0x5A09344E, 
533    0x09C17994, 0x61C2555C, 0xD9C72004, 0xB1C40CCC, 
534    0xAC21BC45, 0xC422908D, 0x7C27E5D5, 0x1424C91D, 
535    0xDBB77E61, 0xB3B452A9, 0x0BB127F1, 0x63B20B39, 
536    0x7E57BBB0, 0x16549778, 0xAE51E220, 0xC652CEE8, 
537    0x959A8332, 0xFD99AFFA, 0x459CDAA2, 0x2D9FF66A, 
538    0x307A46E3, 0x58796A2B, 0xE07C1F73, 0x887F33BB, 
539    0xF56E0EF4, 0x9D6D223C, 0x25685764, 0x4D6B7BAC, 
540    0x508ECB25, 0x388DE7ED, 0x808892B5, 0xE88BBE7D, 
541    0xBB43F3A7, 0xD340DF6F, 0x6B45AA37, 0x034686FF, 
542    0x1EA33676, 0x76A01ABE, 0xCEA56FE6, 0xA6A6432E, 
543    0x6935F452, 0x0136D89A, 0xB933ADC2, 0xD130810A, 
544    0xCCD53183, 0xA4D61D4B, 0x1CD36813, 0x74D044DB, 
545    0x27180901, 0x4F1B25C9, 0xF71E5091, 0x9F1D7C59, 
546    0x82F8CCD0, 0xEAFBE018, 0x52FE9540, 0x3AFDB988, 
547    0xC8358D49, 0xA036A181, 0x1833D4D9, 0x7030F811, 
548    0x6DD54898, 0x05D66450, 0xBDD31108, 0xD5D03DC0, 
549    0x8618701A, 0xEE1B5CD2, 0x561E298A, 0x3E1D0542, 
550    0x23F8B5CB, 0x4BFB9903, 0xF3FEEC5B, 0x9BFDC093, 
551    0x546E77EF, 0x3C6D5B27, 0x84682E7F, 0xEC6B02B7, 
552    0xF18EB23E, 0x998D9EF6, 0x2188EBAE, 0x498BC766, 
553    0x1A438ABC, 0x7240A674, 0xCA45D32C, 0xA246FFE4, 
554    0xBFA34F6D, 0xD7A063A5, 0x6FA516FD, 0x07A63A35, 
555    0x8FD9098E, 0xE7DA2546, 0x5FDF501E, 0x37DC7CD6, 
556    0x2A39CC5F, 0x423AE097, 0xFA3F95CF, 0x923CB907, 
557    0xC1F4F4DD, 0xA9F7D815, 0x11F2AD4D, 0x79F18185, 
558    0x6414310C, 0x0C171DC4, 0xB412689C, 0xDC114454, 
559    0x1382F328, 0x7B81DFE0, 0xC384AAB8, 0xAB878670, 
560    0xB66236F9, 0xDE611A31, 0x66646F69, 0x0E6743A1, 
561    0x5DAF0E7B, 0x35AC22B3, 0x8DA957EB, 0xE5AA7B23, 
562    0xF84FCBAA, 0x904CE762, 0x2849923A, 0x404ABEF2, 
563    0xB2828A33, 0xDA81A6FB, 0x6284D3A3, 0x0A87FF6B, 
564    0x17624FE2, 0x7F61632A, 0xC7641672, 0xAF673ABA, 
565    0xFCAF7760, 0x94AC5BA8, 0x2CA92EF0, 0x44AA0238, 
566    0x594FB2B1, 0x314C9E79, 0x8949EB21, 0xE14AC7E9, 
567    0x2ED97095, 0x46DA5C5D, 0xFEDF2905, 0x96DC05CD, 
568    0x8B39B544, 0xE33A998C, 0x5B3FECD4, 0x333CC01C, 
569    0x60F48DC6, 0x08F7A10E, 0xB0F2D456, 0xD8F1F89E, 
570    0xC5144817, 0xAD1764DF, 0x15121187, 0x7D113D4F, 
571    /* T8_7 */
572    0x00000000, 0x493C7D27, 0x9278FA4E, 0xDB448769, 
573    0x211D826D, 0x6821FF4A, 0xB3657823, 0xFA590504, 
574    0x423B04DA, 0x0B0779FD, 0xD043FE94, 0x997F83B3, 
575    0x632686B7, 0x2A1AFB90, 0xF15E7CF9, 0xB86201DE, 
576    0x847609B4, 0xCD4A7493, 0x160EF3FA, 0x5F328EDD, 
577    0xA56B8BD9, 0xEC57F6FE, 0x37137197, 0x7E2F0CB0, 
578    0xC64D0D6E, 0x8F717049, 0x5435F720, 0x1D098A07, 
579    0xE7508F03, 0xAE6CF224, 0x7528754D, 0x3C14086A, 
580    0x0D006599, 0x443C18BE, 0x9F789FD7, 0xD644E2F0, 
581    0x2C1DE7F4, 0x65219AD3, 0xBE651DBA, 0xF759609D, 
582    0x4F3B6143, 0x06071C64, 0xDD439B0D, 0x947FE62A, 
583    0x6E26E32E, 0x271A9E09, 0xFC5E1960, 0xB5626447, 
584    0x89766C2D, 0xC04A110A, 0x1B0E9663, 0x5232EB44, 
585    0xA86BEE40, 0xE1579367, 0x3A13140E, 0x732F6929, 
586    0xCB4D68F7, 0x827115D0, 0x593592B9, 0x1009EF9E, 
587    0xEA50EA9A, 0xA36C97BD, 0x782810D4, 0x31146DF3, 
588    0x1A00CB32, 0x533CB615, 0x8878317C, 0xC1444C5B, 
589    0x3B1D495F, 0x72213478, 0xA965B311, 0xE059CE36, 
590    0x583BCFE8, 0x1107B2CF, 0xCA4335A6, 0x837F4881, 
591    0x79264D85, 0x301A30A2, 0xEB5EB7CB, 0xA262CAEC, 
592    0x9E76C286, 0xD74ABFA1, 0x0C0E38C8, 0x453245EF, 
593    0xBF6B40EB, 0xF6573DCC, 0x2D13BAA5, 0x642FC782, 
594    0xDC4DC65C, 0x9571BB7B, 0x4E353C12, 0x07094135, 
595    0xFD504431, 0xB46C3916, 0x6F28BE7F, 0x2614C358, 
596    0x1700AEAB, 0x5E3CD38C, 0x857854E5, 0xCC4429C2, 
597    0x361D2CC6, 0x7F2151E1, 0xA465D688, 0xED59ABAF, 
598    0x553BAA71, 0x1C07D756, 0xC743503F, 0x8E7F2D18, 
599    0x7426281C, 0x3D1A553B, 0xE65ED252, 0xAF62AF75, 
600    0x9376A71F, 0xDA4ADA38, 0x010E5D51, 0x48322076, 
601    0xB26B2572, 0xFB575855, 0x2013DF3C, 0x692FA21B, 
602    0xD14DA3C5, 0x9871DEE2, 0x4335598B, 0x0A0924AC, 
603    0xF05021A8, 0xB96C5C8F, 0x6228DBE6, 0x2B14A6C1, 
604    0x34019664, 0x7D3DEB43, 0xA6796C2A, 0xEF45110D, 
605    0x151C1409, 0x5C20692E, 0x8764EE47, 0xCE589360, 
606    0x763A92BE, 0x3F06EF99, 0xE44268F0, 0xAD7E15D7, 
607    0x572710D3, 0x1E1B6DF4, 0xC55FEA9D, 0x8C6397BA, 
608    0xB0779FD0, 0xF94BE2F7, 0x220F659E, 0x6B3318B9, 
609    0x916A1DBD, 0xD856609A, 0x0312E7F3, 0x4A2E9AD4, 
610    0xF24C9B0A, 0xBB70E62D, 0x60346144, 0x29081C63, 
611    0xD3511967, 0x9A6D6440, 0x4129E329, 0x08159E0E, 
612    0x3901F3FD, 0x703D8EDA, 0xAB7909B3, 0xE2457494, 
613    0x181C7190, 0x51200CB7, 0x8A648BDE, 0xC358F6F9, 
614    0x7B3AF727, 0x32068A00, 0xE9420D69, 0xA07E704E, 
615    0x5A27754A, 0x131B086D, 0xC85F8F04, 0x8163F223, 
616    0xBD77FA49, 0xF44B876E, 0x2F0F0007, 0x66337D20, 
617    0x9C6A7824, 0xD5560503, 0x0E12826A, 0x472EFF4D, 
618    0xFF4CFE93, 0xB67083B4, 0x6D3404DD, 0x240879FA, 
619    0xDE517CFE, 0x976D01D9, 0x4C2986B0, 0x0515FB97, 
620    0x2E015D56, 0x673D2071, 0xBC79A718, 0xF545DA3F, 
621    0x0F1CDF3B, 0x4620A21C, 0x9D642575, 0xD4585852, 
622    0x6C3A598C, 0x250624AB, 0xFE42A3C2, 0xB77EDEE5, 
623    0x4D27DBE1, 0x041BA6C6, 0xDF5F21AF, 0x96635C88, 
624    0xAA7754E2, 0xE34B29C5, 0x380FAEAC, 0x7133D38B, 
625    0x8B6AD68F, 0xC256ABA8, 0x19122CC1, 0x502E51E6, 
626    0xE84C5038, 0xA1702D1F, 0x7A34AA76, 0x3308D751, 
627    0xC951D255, 0x806DAF72, 0x5B29281B, 0x1215553C, 
628    0x230138CF, 0x6A3D45E8, 0xB179C281, 0xF845BFA6, 
629    0x021CBAA2, 0x4B20C785, 0x906440EC, 0xD9583DCB, 
630    0x613A3C15, 0x28064132, 0xF342C65B, 0xBA7EBB7C, 
631    0x4027BE78, 0x091BC35F, 0xD25F4436, 0x9B633911, 
632    0xA777317B, 0xEE4B4C5C, 0x350FCB35, 0x7C33B612, 
633    0x866AB316, 0xCF56CE31, 0x14124958, 0x5D2E347F, 
634    0xE54C35A1, 0xAC704886, 0x7734CFEF, 0x3E08B2C8, 
635    0xC451B7CC, 0x8D6DCAEB, 0x56294D82, 0x1F1530A5 
636  };
637}