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