GremlinVideo audio decoder
[nihav.git] / src / codecs / real / ra144.rs
1 use crate::formats::*;
2 use crate::frame::*;
3 use super::super::*;
4 use crate::io::bitreader::*;
5
6 const NBLOCKS: usize = 4;
7 const BLOCKSIZE: usize = 40;
8 const LPC_ORDER: usize = 10;
9 const BUFFERSIZE: usize = 146;
10 const FRAME_SIZE: usize = 20;
11
12 struct RA144Decoder {
13 chmap: NAChannelMap,
14 ainfo: NAAudioInfo,
15 info: Rc<NACodecInfo>,
16
17 old_energy: u16,
18 lpc_data: [[i32; LPC_ORDER]; 2],
19 frame_no: usize,
20 lpc_refl_rms: [u32; 2],
21 audio: [i16; BLOCKSIZE + LPC_ORDER],
22 adapt_cb: [i16; BUFFERSIZE + 2],
23 }
24
25 impl RA144Decoder {
26 fn new() -> Self {
27 RA144Decoder {
28 chmap: NAChannelMap::new(),
29 ainfo: NAAudioInfo::new(0, 1, SND_S16_FORMAT, NBLOCKS * BLOCKSIZE),
30 info: NACodecInfo::new_dummy(),
31
32 old_energy: 0,
33 lpc_data: [[0; 10]; 2],
34 frame_no: 0,
35 lpc_refl_rms: [0; 2],
36 audio: [0; BLOCKSIZE + LPC_ORDER],
37 adapt_cb: [0; BUFFERSIZE + 2],
38 }
39 }
40
41 fn evaluate_coeffs(&mut self, lpc_refl: &[i32; LPC_ORDER]) {
42 let mut tmp: [i32; LPC_ORDER] = [0; LPC_ORDER];
43
44 for i in 0..LPC_ORDER {
45 let src;
46 let dst;
47 if (i & 1) == 0 {
48 src = &self.lpc_data[self.frame_no];
49 dst = &mut tmp;
50 } else {
51 src = &tmp;
52 dst = &mut self.lpc_data[self.frame_no];
53 }
54 dst[i] = lpc_refl[i] << 4;
55
56 for j in 0..i {
57 dst[j] = ((lpc_refl[i] * src[i - j - 1]) >> 12) + src[j];
58 }
59 }
60 for i in 0..LPC_ORDER {
61 self.lpc_data[self.frame_no][i] >>= 4;
62 }
63 }
64 fn interpolate(&mut self, coeffs: &mut [i16; LPC_ORDER], scale1: i32, copyold: bool, energy: u16) -> u32 {
65 let scale2 = (NBLOCKS as i32) - scale1;
66 {
67 let src1 = &self.lpc_data[self.frame_no];
68 let src2 = &self.lpc_data[self.frame_no ^ 1];
69 for i in 0..LPC_ORDER {
70 coeffs[i] = ((scale1 * src1[i] + scale2 * src2[i]) >> 2) as i16;
71 }
72 }
73 if let Some(rms) = eval_reflection(coeffs) {
74 rescale_rms(rms, energy)
75 } else {
76 let src = if copyold { &self.lpc_data[self.frame_no ^ 1] } else { &self.lpc_data[self.frame_no] };
77 for i in 0..LPC_ORDER {
78 coeffs[i] = src[i] as i16;
79 }
80 rescale_rms(self.lpc_refl_rms[if copyold { 1 } else { 0 }], energy)
81 }
82 }
83 fn process_subblock(&mut self, br: &mut BitReader, lpc_coeffs: &[i16; LPC_ORDER], rms: u32) -> DecoderResult<()> {
84 let cba_idx = br.read(7)? as usize;
85 let gain = br.read(8)? as usize;
86 let cb1_idx = br.read(7)? as usize;
87 let cb2_idx = br.read(7)? as usize;
88
89 let mut tmp_a: [i16; BLOCKSIZE] = [0; BLOCKSIZE];
90 let mut m: [u32; 3] = [0; 3];
91 if cba_idx != 0 {
92 let len = cba_idx + BLOCKSIZE/2 - 1;
93 let soff = BUFFERSIZE - len;
94 for i in 0..len.min(BLOCKSIZE) {
95 tmp_a[i] = self.adapt_cb[i + soff];
96 }
97 for i in len..BLOCKSIZE {
98 tmp_a[i] = self.adapt_cb[i + soff - len];
99 }
100 m[0] = (calc_irms(&tmp_a) * rms) >> 12;
101 } else {
102 m[0] = 0;
103 }
104 m[1] = ((RA144_CODEBOOK1[cb1_idx] as u32) * rms) >> 8;
105 m[2] = ((RA144_CODEBOOK2[cb2_idx] as u32) * rms) >> 8;
106 for i in 0..3 {
107 m[i] = (m[i] * (RA144_GAIN_VAL_TAB[gain][i] as u32)) >> RA144_GAIN_EXP_TAB[gain];
108 }
109
110 for i in 0..(BUFFERSIZE - BLOCKSIZE) {
111 self.adapt_cb[i] = self.adapt_cb[i + BLOCKSIZE];
112 }
113
114 let doff = BUFFERSIZE - BLOCKSIZE;
115 if m[0] != 0 {
116 for i in 0..BLOCKSIZE {
117 let sum = (m[0] as i32) * (tmp_a[i] as i32)
118 + (m[1] as i32) * (RA144_VECTORS1[cb1_idx][i] as i32)
119 + (m[2] as i32) * (RA144_VECTORS2[cb2_idx][i] as i32);
120 self.adapt_cb[i + doff] = (sum >> 12) as i16;
121 }
122 } else {
123 for i in 0..BLOCKSIZE {
124 let sum = (m[1] as i32) * (RA144_VECTORS1[cb1_idx][i] as i32)
125 + (m[2] as i32) * (RA144_VECTORS2[cb2_idx][i] as i32);
126 self.adapt_cb[i + doff] = (sum >> 12) as i16;
127 }
128 }
129
130 for i in 0..LPC_ORDER {
131 self.audio[i] = self.audio[i + BLOCKSIZE];
132 }
133 if celp_synth_filter(&mut self.audio, &self.adapt_cb, lpc_coeffs) {
134 self.audio = [0; BLOCKSIZE + LPC_ORDER];
135 }
136 Ok(())
137 }
138 }
139
140 const CHMAP_MONO: [NAChannelType; 1] = [NAChannelType::C];
141
142 fn celp_synth_filter(dst: &mut [i16], src: &[i16], filt: &[i16; LPC_ORDER]) -> bool { //1,0,0xfff
143 for i in 0..BLOCKSIZE {
144 let mut sum = -0xFFF;
145 for j in 0..LPC_ORDER {
146 sum += (filt[j] as i32) * (dst[LPC_ORDER + i - j - 1] as i32);
147 }
148 let sum1 = (-sum >> 12) + (src[BUFFERSIZE - BLOCKSIZE + i] as i32);
149 if ((sum1 >> 16) != 0) && ((sum1 >> 16) != -1) { // overflow
150 return true;
151 }
152 dst[LPC_ORDER + i] = sum1 as i16;
153 }
154 false
155 }
156
157 fn fixp_sqrt(mut val: u32) -> u32 {
158 let mut shift = 2;
159 while val >= (1 << 12) {
160 val >>= 2;
161 shift += 1;
162 }
163 (SQRT_TABLE[val as usize] as u32) << shift
164 }
165
166 fn calc_rms(coeffs: &[i32; LPC_ORDER]) -> u32 {
167 let mut res = 1 << 16;
168 let mut shift = 10;
169
170 for i in 0..LPC_ORDER {
171 res = ((((1 << 24) - ((coeffs[i] * coeffs[i]) as u32)) >> 12) * res) >> 12;
172 if res == 0 { return 0; }
173 while res < (1 << 14) {
174 res <<= 2;
175 shift += 1;
176 }
177 }
178 fixp_sqrt(res) >> shift
179 }
180
181 fn calc_irms(coeffs: &[i16; BLOCKSIZE]) -> u32 {
182 let mut sum = 0;
183 for i in 0..BLOCKSIZE {
184 sum += ((coeffs[i] as i32) * (coeffs[i] as i32)) as u32;
185 }
186 if sum != 0 {
187 (1 << 29) / (fixp_sqrt(sum) >> 8)
188 } else {
189 0
190 }
191 }
192
193 fn rescale_rms(rms: u32, energy: u16) -> u32 {
194 (rms * (energy as u32)) >> 10
195 }
196
197 fn eval_reflection(coeffs: &[i16; LPC_ORDER]) -> Option<u32> {
198 let mut tmp1: [i32; LPC_ORDER] = [0; LPC_ORDER];
199 let mut tmp2: [i32; LPC_ORDER] = [0; LPC_ORDER];
200 let mut tmp3: [i32; LPC_ORDER] = [0; LPC_ORDER];
201
202 for i in 0..LPC_ORDER {
203 tmp2[i] = coeffs[i] as i32;
204 }
205 tmp3[LPC_ORDER - 1] = tmp2[LPC_ORDER - 1];
206
207 if (tmp2[LPC_ORDER - 1] as u32).wrapping_add(0x1000) > 0x1FFF {
208 return None;
209 }
210
211 for i in (0..(LPC_ORDER - 1)).rev() {
212 let src;
213 let dst;
214 if (i & 1) == 0 {
215 src = &tmp2;
216 dst = &mut tmp1;
217 } else {
218 src = &tmp1;
219 dst = &mut tmp2;
220 }
221 let a = (1 << 12) - ((src[i + 1] * src[i + 1]) >> 12);
222 let scale = if a != 0 { (1 << 24) / a } else { (1 << 24) };
223 for j in 0..(i+1) {
224 let result = (src[j] - ((tmp3[i + 1] * src[i - j]) >> 12)).checked_mul(scale);
225 if let Some(val) = result {
226 dst[j] = val >> 12;
227 } else {
228 return None;
229 }
230 }
231 if (dst[i] as u32).wrapping_add(0x1000) > 0x1FFF {
232 return None;
233 }
234 tmp3[i] = dst[i];
235 }
236
237 Some(calc_rms(&tmp3))
238 }
239
240 fn clip_out(sample: i16) -> i16 {
241 sample.max(-16384 >> 2).min(16383 >> 2)
242 }
243
244 impl NADecoder for RA144Decoder {
245 fn init(&mut self, info: Rc<NACodecInfo>) -> DecoderResult<()> {
246 if let NACodecTypeInfo::Audio(ainfo) = info.get_properties() {
247 self.chmap.add_channels(&CHMAP_MONO);
248 self.ainfo = NAAudioInfo::new(ainfo.get_sample_rate(),
249 1,
250 SND_S16_FORMAT, NBLOCKS * BLOCKSIZE);
251 self.info = info.replace_info(NACodecTypeInfo::Audio(self.ainfo.clone()));
252 Ok(())
253 } else {
254 Err(DecoderError::InvalidData)
255 }
256 }
257 fn decode(&mut self, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
258 let info = pkt.get_stream().get_info();
259 validate!(info.get_properties().is_audio());
260 let pktbuf = pkt.get_buffer();
261 let nframes = pktbuf.len() / FRAME_SIZE;
262
263 let duration = NBLOCKS * BLOCKSIZE * nframes;
264
265 let mut abuf = alloc_audio_buffer(self.ainfo, duration, self.chmap.clone())?;
266 let mut adata = abuf.get_abuf_i16().unwrap();
267 let mut dst = adata.get_data_mut();
268
269 for (input, output) in pktbuf.chunks(FRAME_SIZE).zip(dst.chunks_mut(NBLOCKS * BLOCKSIZE)) {
270 let mut br = BitReader::new(input, input.len(), BitReaderMode::BE);
271
272 let mut lpc_refl: [i32; LPC_ORDER] = [0; LPC_ORDER];
273 for i in 0..LPC_ORDER {
274 lpc_refl[i] = RA144_LPC_REFL_CODEBOOK[i][br.read(RA144_LPC_SIZES[i])? as usize] as i32;
275 }
276
277 self.evaluate_coeffs(&lpc_refl);
278 self.lpc_refl_rms[0] = calc_rms(&lpc_refl);
279
280 let energy = RA144_ENERGY_TAB[br.read(5)? as usize];
281
282 let mut block_coeffs: [[i16; LPC_ORDER]; NBLOCKS] = [[0; LPC_ORDER]; NBLOCKS];
283 let mut refl_rms: [u32; NBLOCKS] = [0; NBLOCKS];
284
285 let old_energy = self.old_energy;
286 let interp_energy = (fixp_sqrt((energy as u32) * (old_energy as u32)) >> 12) as u16;
287 refl_rms[0] = self.interpolate(&mut block_coeffs[0], 1, true, old_energy);
288 refl_rms[1] = self.interpolate(&mut block_coeffs[1], 2, energy <= old_energy, interp_energy);
289 refl_rms[2] = self.interpolate(&mut block_coeffs[2], 3, false, energy);
290 refl_rms[3] = rescale_rms(self.lpc_refl_rms[0], energy);
291 for i in 0..LPC_ORDER { block_coeffs[3][i] = self.lpc_data[self.frame_no][i] as i16; }
292
293 for (i, block) in output.chunks_mut(BLOCKSIZE).enumerate() {
294
295 self.process_subblock(&mut br, &block_coeffs[i], refl_rms[i])?;
296 for j in 0..BLOCKSIZE {
297 block[j] = clip_out(self.audio[j + LPC_ORDER]) << 2;
298 }
299 }
300
301 self.old_energy = energy;
302 self.lpc_refl_rms[1] = self.lpc_refl_rms[0];
303 self.frame_no ^= 1;
304 }
305
306 let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
307 frm.set_keyframe(true);
308 Ok(Rc::new(RefCell::new(frm)))
309 }
310 }
311
312 pub fn get_decoder() -> Box<NADecoder> {
313 Box::new(RA144Decoder::new())
314 }
315
316 #[cfg(test)]
317 mod test {
318 use crate::test::dec_video::*;
319 #[test]
320 fn test_ra144() {
321 let file = "assets/RV/ra3_in_rm_file.rm";
322 test_decode_audio("realmedia", file, Some(5000), "ra14.4");
323 }
324 }
325
326 const RA144_LPC_SIZES: [u8; LPC_ORDER] = [ 6, 5, 5, 4, 4, 3, 3, 3, 3, 2 ];
327 const RA144_LPC_REFL_CODEBOOK: [&[i16]; LPC_ORDER] = [
328 LPC_REFL_CB0, LPC_REFL_CB1, LPC_REFL_CB2, LPC_REFL_CB3, LPC_REFL_CB4,
329 LPC_REFL_CB5, LPC_REFL_CB6, LPC_REFL_CB7, LPC_REFL_CB8, LPC_REFL_CB9,
330 ];
331 const LPC_REFL_CB0: &[i16; 64] = &[
332 -4041, -4018, -3998, -3977, -3954, -3930, -3906, -3879,
333 -3852, -3825, -3795, -3764, -3731, -3699, -3666, -3631,
334 -3594, -3555, -3513, -3468, -3420, -3372, -3321, -3268,
335 -3212, -3153, -3090, -3021, -2944, -2863, -2772, -2676,
336 -2565, -2445, -2328, -2202, -2072, -1941, -1808, -1660,
337 -1508, -1348, -1185, -994, -798, -600, -374, -110,
338 152, 447, 720, 982, 1229, 1456, 1682, 1916,
339 2130, 2353, 2595, 2853, 3118, 3363, 3588, 3814
340 ];
341 const LPC_REFL_CB1: &[i16; 32] = &[
342 -3091, -2386, -1871, -1425, -1021, -649, -316, -20,
343 267, 544, 810, 1065, 1305, 1534, 1756, 1970,
344 2171, 2359, 2536, 2700, 2854, 2996, 3133, 3263,
345 3386, 3499, 3603, 3701, 3789, 3870, 3947, 4020
346 ];
347 const LPC_REFL_CB2: &[i16; 32] = &[
348 -3525, -3295, -3081, -2890, -2696, -2511, -2328, -2149,
349 -1979, -1817, -1658, -1498, -1341, -1188, -1032, -876,
350 -721, -561, -394, -228, -54, 119, 296, 484,
351 683, 895, 1123, 1373, 1651, 1965, 2360, 2854
352 ];
353 const LPC_REFL_CB3: &[i16; 16] = &[
354 -1845, -1057, -522, -77, 301, 647, 975, 1285,
355 1582, 1873, 2163, 2452, 2735, 3017, 3299, 3569
356 ];
357 const LPC_REFL_CB4: &[i16; 16] = &[
358 -2691, -2187, -1788, -1435, -1118, -837, -571, -316,
359 -59, 201, 470, 759, 1077, 1457, 1908, 2495
360 ];
361 const LPC_REFL_CB5: &[i16; 8] = &[
362 -1372, -474, 133, 632, 1100, 1571, 2075, 2672
363 ];
364 const LPC_REFL_CB6: &[i16; 8] = &[
365 -2389, -1787, -1231, -717, -239, 234, 770, 1474
366 ];
367 const LPC_REFL_CB7: &[i16; 8] = &[
368 -1569, -864, -296, 200, 670, 1151, 1709, 2385
369 ];
370 const LPC_REFL_CB8: &[i16; 8] = &[
371 -2200, -1608, -1062, -569, -120, 338, 863, 1621
372 ];
373 const LPC_REFL_CB9: &[i16; 4] = &[
374 -617, 190, 802, 1483
375 ];
376
377 const RA144_ENERGY_TAB: [u16; 32] = [
378 0, 16, 20, 25, 32, 41, 51, 65,
379 81, 103, 129, 163, 205, 259, 326, 410,
380 516, 650, 819, 1031, 1298, 1634, 2057, 2590,
381 3261, 4105, 5168, 6507, 8192, 10313, 12983, 16345
382 ];
383
384 const SQRT_TABLE: [u16; 4096] = [
385 0x0000,0x0400,0x05a8,0x06ed,0x0800,0x08f1,0x09cc,0x0a95,
386 0x0b50,0x0c00,0x0ca6,0x0d44,0x0ddb,0x0e6c,0x0ef7,0x0f7d,
387 0x1000,0x107e,0x10f8,0x116f,0x11e3,0x1254,0x12c2,0x132e,
388 0x1398,0x1400,0x1465,0x14c8,0x152a,0x158a,0x15e8,0x1645,
389 0x16a0,0x16fa,0x1752,0x17aa,0x1800,0x1854,0x18a8,0x18fa,
390 0x194c,0x199c,0x19ec,0x1a3a,0x1a88,0x1ad5,0x1b21,0x1b6c,
391 0x1bb6,0x1c00,0x1c48,0x1c90,0x1cd8,0x1d1e,0x1d64,0x1daa,
392 0x1dee,0x1e33,0x1e76,0x1eb9,0x1efb,0x1f3d,0x1f7e,0x1fbf,
393 0x2000,0x203f,0x207f,0x20bd,0x20fc,0x2139,0x2177,0x21b4,
394 0x21f0,0x222d,0x2268,0x22a4,0x22df,0x2319,0x2353,0x238d,
395 0x23c6,0x2400,0x2438,0x2471,0x24a9,0x24e0,0x2518,0x254f,
396 0x2585,0x25bc,0x25f2,0x2628,0x265d,0x2693,0x26c8,0x26fc,
397 0x2731,0x2765,0x2799,0x27cc,0x2800,0x2833,0x2865,0x2898,
398 0x28ca,0x28fc,0x292e,0x2960,0x2991,0x29c2,0x29f3,0x2a24,
399 0x2a54,0x2a85,0x2ab5,0x2ae5,0x2b14,0x2b44,0x2b73,0x2ba2,
400 0x2bd1,0x2c00,0x2c2e,0x2c5c,0x2c8a,0x2cb8,0x2ce6,0x2d13,
401 0x2d41,0x2d6e,0x2d9b,0x2dc8,0x2df4,0x2e21,0x2e4d,0x2e79,
402 0x2ea5,0x2ed1,0x2efd,0x2f28,0x2f54,0x2f7f,0x2faa,0x2fd5,
403 0x3000,0x302a,0x3055,0x307f,0x30a9,0x30d3,0x30fd,0x3127,
404 0x3150,0x317a,0x31a3,0x31cc,0x31f5,0x321e,0x3247,0x3270,
405 0x3298,0x32c1,0x32e9,0x3311,0x3339,0x3361,0x3389,0x33b0,
406 0x33d8,0x3400,0x3427,0x344e,0x3475,0x349c,0x34c3,0x34ea,
407 0x3510,0x3537,0x355d,0x3584,0x35aa,0x35d0,0x35f6,0x361c,
408 0x3642,0x3667,0x368d,0x36b2,0x36d8,0x36fd,0x3722,0x3747,
409 0x376c,0x3791,0x37b6,0x37db,0x3800,0x3824,0x3848,0x386d,
410 0x3891,0x38b5,0x38d9,0x38fd,0x3921,0x3945,0x3969,0x398c,
411 0x39b0,0x39d3,0x39f7,0x3a1a,0x3a3d,0x3a60,0x3a83,0x3aa6,
412 0x3ac9,0x3aec,0x3b0f,0x3b31,0x3b54,0x3b76,0x3b99,0x3bbb,
413 0x3bdd,0x3c00,0x3c22,0x3c44,0x3c66,0x3c87,0x3ca9,0x3ccb,
414 0x3ced,0x3d0e,0x3d30,0x3d51,0x3d72,0x3d94,0x3db5,0x3dd6,
415 0x3df7,0x3e18,0x3e39,0x3e5a,0x3e7b,0x3e9c,0x3ebc,0x3edd,
416 0x3efd,0x3f1e,0x3f3e,0x3f5f,0x3f7f,0x3f9f,0x3fbf,0x3fdf,
417 0x4000,0x401f,0x403f,0x405f,0x407f,0x409f,0x40be,0x40de,
418 0x40fe,0x411d,0x413c,0x415c,0x417b,0x419a,0x41ba,0x41d9,
419 0x41f8,0x4217,0x4236,0x4255,0x4273,0x4292,0x42b1,0x42d0,
420 0x42ee,0x430d,0x432b,0x434a,0x4368,0x4387,0x43a5,0x43c3,
421 0x43e1,0x4400,0x441e,0x443c,0x445a,0x4478,0x4495,0x44b3,
422 0x44d1,0x44ef,0x450c,0x452a,0x4548,0x4565,0x4583,0x45a0,
423 0x45be,0x45db,0x45f8,0x4615,0x4633,0x4650,0x466d,0x468a,
424 0x46a7,0x46c4,0x46e1,0x46fe,0x471b,0x4737,0x4754,0x4771,
425 0x478d,0x47aa,0x47c7,0x47e3,0x4800,0x481c,0x4838,0x4855,
426 0x4871,0x488d,0x48a9,0x48c6,0x48e2,0x48fe,0x491a,0x4936,
427 0x4952,0x496e,0x498a,0x49a5,0x49c1,0x49dd,0x49f9,0x4a14,
428 0x4a30,0x4a4b,0x4a67,0x4a83,0x4a9e,0x4ab9,0x4ad5,0x4af0,
429 0x4b0b,0x4b27,0x4b42,0x4b5d,0x4b78,0x4b93,0x4bae,0x4bca,
430 0x4be5,0x4c00,0x4c1a,0x4c35,0x4c50,0x4c6b,0x4c86,0x4ca1,
431 0x4cbb,0x4cd6,0x4cf1,0x4d0b,0x4d26,0x4d40,0x4d5b,0x4d75,
432 0x4d90,0x4daa,0x4dc4,0x4ddf,0x4df9,0x4e13,0x4e2d,0x4e48,
433 0x4e62,0x4e7c,0x4e96,0x4eb0,0x4eca,0x4ee4,0x4efe,0x4f18,
434 0x4f32,0x4f4c,0x4f65,0x4f7f,0x4f99,0x4fb3,0x4fcc,0x4fe6,
435 0x5000,0x5019,0x5033,0x504c,0x5066,0x507f,0x5099,0x50b2,
436 0x50cb,0x50e5,0x50fe,0x5117,0x5130,0x514a,0x5163,0x517c,
437 0x5195,0x51ae,0x51c7,0x51e0,0x51f9,0x5212,0x522b,0x5244,
438 0x525d,0x5276,0x528f,0x52a7,0x52c0,0x52d9,0x52f2,0x530a,
439 0x5323,0x533c,0x5354,0x536d,0x5385,0x539e,0x53b6,0x53cf,
440 0x53e7,0x5400,0x5418,0x5430,0x5449,0x5461,0x5479,0x5491,
441 0x54a9,0x54c2,0x54da,0x54f2,0x550a,0x5522,0x553a,0x5552,
442 0x556a,0x5582,0x559a,0x55b2,0x55ca,0x55e2,0x55fa,0x5611,
443 0x5629,0x5641,0x5659,0x5670,0x5688,0x56a0,0x56b7,0x56cf,
444 0x56e6,0x56fe,0x5716,0x572d,0x5745,0x575c,0x5773,0x578b,
445 0x57a2,0x57ba,0x57d1,0x57e8,0x5800,0x5817,0x582e,0x5845,
446 0x585c,0x5874,0x588b,0x58a2,0x58b9,0x58d0,0x58e7,0x58fe,
447 0x5915,0x592c,0x5943,0x595a,0x5971,0x5988,0x599f,0x59b5,
448 0x59cc,0x59e3,0x59fa,0x5a11,0x5a27,0x5a3e,0x5a55,0x5a6b,
449 0x5a82,0x5a99,0x5aaf,0x5ac6,0x5adc,0x5af3,0x5b09,0x5b20,
450 0x5b36,0x5b4d,0x5b63,0x5b7a,0x5b90,0x5ba6,0x5bbd,0x5bd3,
451 0x5be9,0x5c00,0x5c16,0x5c2c,0x5c42,0x5c58,0x5c6f,0x5c85,
452 0x5c9b,0x5cb1,0x5cc7,0x5cdd,0x5cf3,0x5d09,0x5d1f,0x5d35,
453 0x5d4b,0x5d61,0x5d77,0x5d8d,0x5da3,0x5db9,0x5dce,0x5de4,
454 0x5dfa,0x5e10,0x5e26,0x5e3b,0x5e51,0x5e67,0x5e7c,0x5e92,
455 0x5ea8,0x5ebd,0x5ed3,0x5ee9,0x5efe,0x5f14,0x5f29,0x5f3f,
456 0x5f54,0x5f6a,0x5f7f,0x5f95,0x5faa,0x5fbf,0x5fd5,0x5fea,
457 0x6000,0x6015,0x602a,0x603f,0x6055,0x606a,0x607f,0x6094,
458 0x60aa,0x60bf,0x60d4,0x60e9,0x60fe,0x6113,0x6128,0x613d,
459 0x6152,0x6168,0x617d,0x6192,0x61a7,0x61bb,0x61d0,0x61e5,
460 0x61fa,0x620f,0x6224,0x6239,0x624e,0x6263,0x6277,0x628c,
461 0x62a1,0x62b6,0x62ca,0x62df,0x62f4,0x6309,0x631d,0x6332,
462 0x6347,0x635b,0x6370,0x6384,0x6399,0x63ad,0x63c2,0x63d7,
463 0x63eb,0x6400,0x6414,0x6428,0x643d,0x6451,0x6466,0x647a,
464 0x648e,0x64a3,0x64b7,0x64cb,0x64e0,0x64f4,0x6508,0x651d,
465 0x6531,0x6545,0x6559,0x656e,0x6582,0x6596,0x65aa,0x65be,
466 0x65d2,0x65e6,0x65fa,0x660f,0x6623,0x6637,0x664b,0x665f,
467 0x6673,0x6687,0x669b,0x66af,0x66c3,0x66d6,0x66ea,0x66fe,
468 0x6712,0x6726,0x673a,0x674e,0x6761,0x6775,0x6789,0x679d,
469 0x67b1,0x67c4,0x67d8,0x67ec,0x6800,0x6813,0x6827,0x683b,
470 0x684e,0x6862,0x6875,0x6889,0x689d,0x68b0,0x68c4,0x68d7,
471 0x68eb,0x68fe,0x6912,0x6925,0x6939,0x694c,0x6960,0x6973,
472 0x6986,0x699a,0x69ad,0x69c1,0x69d4,0x69e7,0x69fb,0x6a0e,
473 0x6a21,0x6a35,0x6a48,0x6a5b,0x6a6e,0x6a82,0x6a95,0x6aa8,
474 0x6abb,0x6ace,0x6ae2,0x6af5,0x6b08,0x6b1b,0x6b2e,0x6b41,
475 0x6b54,0x6b67,0x6b7a,0x6b8d,0x6ba1,0x6bb4,0x6bc7,0x6bda,
476 0x6bed,0x6c00,0x6c12,0x6c25,0x6c38,0x6c4b,0x6c5e,0x6c71,
477 0x6c84,0x6c97,0x6caa,0x6cbc,0x6ccf,0x6ce2,0x6cf5,0x6d08,
478 0x6d1a,0x6d2d,0x6d40,0x6d53,0x6d65,0x6d78,0x6d8b,0x6d9e,
479 0x6db0,0x6dc3,0x6dd6,0x6de8,0x6dfb,0x6e0d,0x6e20,0x6e33,
480 0x6e45,0x6e58,0x6e6a,0x6e7d,0x6e8f,0x6ea2,0x6eb4,0x6ec7,
481 0x6ed9,0x6eec,0x6efe,0x6f11,0x6f23,0x6f36,0x6f48,0x6f5a,
482 0x6f6d,0x6f7f,0x6f92,0x6fa4,0x6fb6,0x6fc9,0x6fdb,0x6fed,
483 0x7000,0x7012,0x7024,0x7036,0x7049,0x705b,0x706d,0x707f,
484 0x7091,0x70a4,0x70b6,0x70c8,0x70da,0x70ec,0x70fe,0x7110,
485 0x7123,0x7135,0x7147,0x7159,0x716b,0x717d,0x718f,0x71a1,
486 0x71b3,0x71c5,0x71d7,0x71e9,0x71fb,0x720d,0x721f,0x7231,
487 0x7243,0x7255,0x7267,0x7279,0x728a,0x729c,0x72ae,0x72c0,
488 0x72d2,0x72e4,0x72f5,0x7307,0x7319,0x732b,0x733d,0x734e,
489 0x7360,0x7372,0x7384,0x7395,0x73a7,0x73b9,0x73ca,0x73dc,
490 0x73ee,0x7400,0x7411,0x7423,0x7434,0x7446,0x7458,0x7469,
491 0x747b,0x748c,0x749e,0x74b0,0x74c1,0x74d3,0x74e4,0x74f6,
492 0x7507,0x7519,0x752a,0x753c,0x754d,0x755f,0x7570,0x7581,
493 0x7593,0x75a4,0x75b6,0x75c7,0x75d8,0x75ea,0x75fb,0x760d,
494 0x761e,0x762f,0x7641,0x7652,0x7663,0x7674,0x7686,0x7697,
495 0x76a8,0x76ba,0x76cb,0x76dc,0x76ed,0x76fe,0x7710,0x7721,
496 0x7732,0x7743,0x7754,0x7766,0x7777,0x7788,0x7799,0x77aa,
497 0x77bb,0x77cc,0x77dd,0x77ee,0x7800,0x7811,0x7822,0x7833,
498 0x7844,0x7855,0x7866,0x7877,0x7888,0x7899,0x78aa,0x78bb,
499 0x78cc,0x78dd,0x78ee,0x78fe,0x790f,0x7920,0x7931,0x7942,
500 0x7953,0x7964,0x7975,0x7986,0x7996,0x79a7,0x79b8,0x79c9,
501 0x79da,0x79eb,0x79fb,0x7a0c,0x7a1d,0x7a2e,0x7a3e,0x7a4f,
502 0x7a60,0x7a71,0x7a81,0x7a92,0x7aa3,0x7ab3,0x7ac4,0x7ad5,
503 0x7ae5,0x7af6,0x7b07,0x7b17,0x7b28,0x7b39,0x7b49,0x7b5a,
504 0x7b6b,0x7b7b,0x7b8c,0x7b9c,0x7bad,0x7bbd,0x7bce,0x7bde,
505 0x7bef,0x7c00,0x7c10,0x7c21,0x7c31,0x7c41,0x7c52,0x7c62,
506 0x7c73,0x7c83,0x7c94,0x7ca4,0x7cb5,0x7cc5,0x7cd5,0x7ce6,
507 0x7cf6,0x7d07,0x7d17,0x7d27,0x7d38,0x7d48,0x7d58,0x7d69,
508 0x7d79,0x7d89,0x7d9a,0x7daa,0x7dba,0x7dcb,0x7ddb,0x7deb,
509 0x7dfb,0x7e0c,0x7e1c,0x7e2c,0x7e3c,0x7e4d,0x7e5d,0x7e6d,
510 0x7e7d,0x7e8d,0x7e9e,0x7eae,0x7ebe,0x7ece,0x7ede,0x7eee,
511 0x7efe,0x7f0f,0x7f1f,0x7f2f,0x7f3f,0x7f4f,0x7f5f,0x7f6f,
512 0x7f7f,0x7f8f,0x7f9f,0x7faf,0x7fbf,0x7fcf,0x7fdf,0x7fef,
513 0x8000,0x800f,0x801f,0x802f,0x803f,0x804f,0x805f,0x806f,
514 0x807f,0x808f,0x809f,0x80af,0x80bf,0x80cf,0x80df,0x80ef,
515 0x80ff,0x810e,0x811e,0x812e,0x813e,0x814e,0x815e,0x816d,
516 0x817d,0x818d,0x819d,0x81ad,0x81bc,0x81cc,0x81dc,0x81ec,
517 0x81fc,0x820b,0x821b,0x822b,0x823b,0x824a,0x825a,0x826a,
518 0x8279,0x8289,0x8299,0x82a8,0x82b8,0x82c8,0x82d7,0x82e7,
519 0x82f7,0x8306,0x8316,0x8326,0x8335,0x8345,0x8354,0x8364,
520 0x8374,0x8383,0x8393,0x83a2,0x83b2,0x83c1,0x83d1,0x83e0,
521 0x83f0,0x8400,0x840f,0x841f,0x842e,0x843e,0x844d,0x845c,
522 0x846c,0x847b,0x848b,0x849a,0x84aa,0x84b9,0x84c9,0x84d8,
523 0x84e7,0x84f7,0x8506,0x8516,0x8525,0x8534,0x8544,0x8553,
524 0x8562,0x8572,0x8581,0x8591,0x85a0,0x85af,0x85be,0x85ce,
525 0x85dd,0x85ec,0x85fc,0x860b,0x861a,0x862a,0x8639,0x8648,
526 0x8657,0x8667,0x8676,0x8685,0x8694,0x86a3,0x86b3,0x86c2,
527 0x86d1,0x86e0,0x86ef,0x86ff,0x870e,0x871d,0x872c,0x873b,
528 0x874a,0x8759,0x8769,0x8778,0x8787,0x8796,0x87a5,0x87b4,
529 0x87c3,0x87d2,0x87e1,0x87f0,0x8800,0x880f,0x881e,0x882d,
530 0x883c,0x884b,0x885a,0x8869,0x8878,0x8887,0x8896,0x88a5,
531 0x88b4,0x88c3,0x88d2,0x88e1,0x88f0,0x88ff,0x890e,0x891c,
532 0x892b,0x893a,0x8949,0x8958,0x8967,0x8976,0x8985,0x8994,
533 0x89a3,0x89b2,0x89c0,0x89cf,0x89de,0x89ed,0x89fc,0x8a0b,
534 0x8a19,0x8a28,0x8a37,0x8a46,0x8a55,0x8a64,0x8a72,0x8a81,
535 0x8a90,0x8a9f,0x8aad,0x8abc,0x8acb,0x8ada,0x8ae8,0x8af7,
536 0x8b06,0x8b15,0x8b23,0x8b32,0x8b41,0x8b50,0x8b5e,0x8b6d,
537 0x8b7c,0x8b8a,0x8b99,0x8ba8,0x8bb6,0x8bc5,0x8bd4,0x8be2,
538 0x8bf1,0x8c00,0x8c0e,0x8c1d,0x8c2b,0x8c3a,0x8c49,0x8c57,
539 0x8c66,0x8c74,0x8c83,0x8c91,0x8ca0,0x8caf,0x8cbd,0x8ccc,
540 0x8cda,0x8ce9,0x8cf7,0x8d06,0x8d14,0x8d23,0x8d31,0x8d40,
541 0x8d4e,0x8d5d,0x8d6b,0x8d7a,0x8d88,0x8d97,0x8da5,0x8db4,
542 0x8dc2,0x8dd1,0x8ddf,0x8ded,0x8dfc,0x8e0a,0x8e19,0x8e27,
543 0x8e36,0x8e44,0x8e52,0x8e61,0x8e6f,0x8e7d,0x8e8c,0x8e9a,
544 0x8ea9,0x8eb7,0x8ec5,0x8ed4,0x8ee2,0x8ef0,0x8eff,0x8f0d,
545 0x8f1b,0x8f2a,0x8f38,0x8f46,0x8f54,0x8f63,0x8f71,0x8f7f,
546 0x8f8e,0x8f9c,0x8faa,0x8fb8,0x8fc7,0x8fd5,0x8fe3,0x8ff1,
547 0x9000,0x900e,0x901c,0x902a,0x9038,0x9047,0x9055,0x9063,
548 0x9071,0x907f,0x908d,0x909c,0x90aa,0x90b8,0x90c6,0x90d4,
549 0x90e2,0x90f0,0x90ff,0x910d,0x911b,0x9129,0x9137,0x9145,
550 0x9153,0x9161,0x916f,0x917e,0x918c,0x919a,0x91a8,0x91b6,
551 0x91c4,0x91d2,0x91e0,0x91ee,0x91fc,0x920a,0x9218,0x9226,
552 0x9234,0x9242,0x9250,0x925e,0x926c,0x927a,0x9288,0x9296,
553 0x92a4,0x92b2,0x92c0,0x92ce,0x92dc,0x92ea,0x92f8,0x9306,
554 0x9314,0x9321,0x932f,0x933d,0x934b,0x9359,0x9367,0x9375,
555 0x9383,0x9391,0x939f,0x93ac,0x93ba,0x93c8,0x93d6,0x93e4,
556 0x93f2,0x9400,0x940d,0x941b,0x9429,0x9437,0x9445,0x9452,
557 0x9460,0x946e,0x947c,0x948a,0x9497,0x94a5,0x94b3,0x94c1,
558 0x94cf,0x94dc,0x94ea,0x94f8,0x9506,0x9513,0x9521,0x952f,
559 0x953c,0x954a,0x9558,0x9566,0x9573,0x9581,0x958f,0x959c,
560 0x95aa,0x95b8,0x95c5,0x95d3,0x95e1,0x95ee,0x95fc,0x960a,
561 0x9617,0x9625,0x9633,0x9640,0x964e,0x965c,0x9669,0x9677,
562 0x9684,0x9692,0x96a0,0x96ad,0x96bb,0x96c8,0x96d6,0x96e4,
563 0x96f1,0x96ff,0x970c,0x971a,0x9727,0x9735,0x9742,0x9750,
564 0x975d,0x976b,0x9779,0x9786,0x9794,0x97a1,0x97af,0x97bc,
565 0x97ca,0x97d7,0x97e5,0x97f2,0x9800,0x980d,0x981a,0x9828,
566 0x9835,0x9843,0x9850,0x985e,0x986b,0x9879,0x9886,0x9893,
567 0x98a1,0x98ae,0x98bc,0x98c9,0x98d6,0x98e4,0x98f1,0x98ff,
568 0x990c,0x9919,0x9927,0x9934,0x9942,0x994f,0x995c,0x996a,
569 0x9977,0x9984,0x9992,0x999f,0x99ac,0x99ba,0x99c7,0x99d4,
570 0x99e2,0x99ef,0x99fc,0x9a09,0x9a17,0x9a24,0x9a31,0x9a3f,
571 0x9a4c,0x9a59,0x9a66,0x9a74,0x9a81,0x9a8e,0x9a9b,0x9aa9,
572 0x9ab6,0x9ac3,0x9ad0,0x9ade,0x9aeb,0x9af8,0x9b05,0x9b12,
573 0x9b20,0x9b2d,0x9b3a,0x9b47,0x9b54,0x9b62,0x9b6f,0x9b7c,
574 0x9b89,0x9b96,0x9ba3,0x9bb1,0x9bbe,0x9bcb,0x9bd8,0x9be5,
575 0x9bf2,0x9c00,0x9c0d,0x9c1a,0x9c27,0x9c34,0x9c41,0x9c4e,
576 0x9c5b,0x9c68,0x9c75,0x9c83,0x9c90,0x9c9d,0x9caa,0x9cb7,
577 0x9cc4,0x9cd1,0x9cde,0x9ceb,0x9cf8,0x9d05,0x9d12,0x9d1f,
578 0x9d2c,0x9d39,0x9d46,0x9d53,0x9d60,0x9d6d,0x9d7a,0x9d87,
579 0x9d94,0x9da1,0x9dae,0x9dbb,0x9dc8,0x9dd5,0x9de2,0x9def,
580 0x9dfc,0x9e09,0x9e16,0x9e23,0x9e30,0x9e3d,0x9e4a,0x9e57,
581 0x9e64,0x9e71,0x9e7e,0x9e8b,0x9e98,0x9ea4,0x9eb1,0x9ebe,
582 0x9ecb,0x9ed8,0x9ee5,0x9ef2,0x9eff,0x9f0c,0x9f18,0x9f25,
583 0x9f32,0x9f3f,0x9f4c,0x9f59,0x9f66,0x9f72,0x9f7f,0x9f8c,
584 0x9f99,0x9fa6,0x9fb3,0x9fbf,0x9fcc,0x9fd9,0x9fe6,0x9ff3,
585 0xa000,0xa00c,0xa019,0xa026,0xa033,0xa03f,0xa04c,0xa059,
586 0xa066,0xa073,0xa07f,0xa08c,0xa099,0xa0a6,0xa0b2,0xa0bf,
587 0xa0cc,0xa0d9,0xa0e5,0xa0f2,0xa0ff,0xa10b,0xa118,0xa125,
588 0xa132,0xa13e,0xa14b,0xa158,0xa164,0xa171,0xa17e,0xa18a,
589 0xa197,0xa1a4,0xa1b0,0xa1bd,0xa1ca,0xa1d6,0xa1e3,0xa1f0,
590 0xa1fc,0xa209,0xa216,0xa222,0xa22f,0xa23c,0xa248,0xa255,
591 0xa261,0xa26e,0xa27b,0xa287,0xa294,0xa2a0,0xa2ad,0xa2ba,
592 0xa2c6,0xa2d3,0xa2df,0xa2ec,0xa2f8,0xa305,0xa312,0xa31e,
593 0xa32b,0xa337,0xa344,0xa350,0xa35d,0xa369,0xa376,0xa382,
594 0xa38f,0xa39b,0xa3a8,0xa3b5,0xa3c1,0xa3ce,0xa3da,0xa3e7,
595 0xa3f3,0xa400,0xa40c,0xa418,0xa425,0xa431,0xa43e,0xa44a,
596 0xa457,0xa463,0xa470,0xa47c,0xa489,0xa495,0xa4a2,0xa4ae,
597 0xa4ba,0xa4c7,0xa4d3,0xa4e0,0xa4ec,0xa4f9,0xa505,0xa511,
598 0xa51e,0xa52a,0xa537,0xa543,0xa54f,0xa55c,0xa568,0xa574,
599 0xa581,0xa58d,0xa59a,0xa5a6,0xa5b2,0xa5bf,0xa5cb,0xa5d7,
600 0xa5e4,0xa5f0,0xa5fc,0xa609,0xa615,0xa621,0xa62e,0xa63a,
601 0xa646,0xa653,0xa65f,0xa66b,0xa678,0xa684,0xa690,0xa69d,
602 0xa6a9,0xa6b5,0xa6c1,0xa6ce,0xa6da,0xa6e6,0xa6f2,0xa6ff,
603 0xa70b,0xa717,0xa724,0xa730,0xa73c,0xa748,0xa754,0xa761,
604 0xa76d,0xa779,0xa785,0xa792,0xa79e,0xa7aa,0xa7b6,0xa7c3,
605 0xa7cf,0xa7db,0xa7e7,0xa7f3,0xa800,0xa80c,0xa818,0xa824,
606 0xa830,0xa83c,0xa849,0xa855,0xa861,0xa86d,0xa879,0xa885,
607 0xa892,0xa89e,0xa8aa,0xa8b6,0xa8c2,0xa8ce,0xa8da,0xa8e6,
608 0xa8f3,0xa8ff,0xa90b,0xa917,0xa923,0xa92f,0xa93b,0xa947,
609 0xa953,0xa960,0xa96c,0xa978,0xa984,0xa990,0xa99c,0xa9a8,
610 0xa9b4,0xa9c0,0xa9cc,0xa9d8,0xa9e4,0xa9f0,0xa9fc,0xaa09,
611 0xaa15,0xaa21,0xaa2d,0xaa39,0xaa45,0xaa51,0xaa5d,0xaa69,
612 0xaa75,0xaa81,0xaa8d,0xaa99,0xaaa5,0xaab1,0xaabd,0xaac9,
613 0xaad5,0xaae1,0xaaed,0xaaf9,0xab05,0xab11,0xab1d,0xab29,
614 0xab35,0xab41,0xab4d,0xab58,0xab64,0xab70,0xab7c,0xab88,
615 0xab94,0xaba0,0xabac,0xabb8,0xabc4,0xabd0,0xabdc,0xabe8,
616 0xabf4,0xac00,0xac0b,0xac17,0xac23,0xac2f,0xac3b,0xac47,
617 0xac53,0xac5f,0xac6b,0xac76,0xac82,0xac8e,0xac9a,0xaca6,
618 0xacb2,0xacbe,0xacc9,0xacd5,0xace1,0xaced,0xacf9,0xad05,
619 0xad11,0xad1c,0xad28,0xad34,0xad40,0xad4c,0xad57,0xad63,
620 0xad6f,0xad7b,0xad87,0xad92,0xad9e,0xadaa,0xadb6,0xadc2,
621 0xadcd,0xadd9,0xade5,0xadf1,0xadfd,0xae08,0xae14,0xae20,
622 0xae2c,0xae37,0xae43,0xae4f,0xae5b,0xae66,0xae72,0xae7e,
623 0xae8a,0xae95,0xaea1,0xaead,0xaeb8,0xaec4,0xaed0,0xaedc,
624 0xaee7,0xaef3,0xaeff,0xaf0a,0xaf16,0xaf22,0xaf2e,0xaf39,
625 0xaf45,0xaf51,0xaf5c,0xaf68,0xaf74,0xaf7f,0xaf8b,0xaf97,
626 0xafa2,0xafae,0xafba,0xafc5,0xafd1,0xafdd,0xafe8,0xaff4,
627 0xb000,0xb00b,0xb017,0xb022,0xb02e,0xb03a,0xb045,0xb051,
628 0xb05c,0xb068,0xb074,0xb07f,0xb08b,0xb097,0xb0a2,0xb0ae,
629 0xb0b9,0xb0c5,0xb0d0,0xb0dc,0xb0e8,0xb0f3,0xb0ff,0xb10a,
630 0xb116,0xb121,0xb12d,0xb139,0xb144,0xb150,0xb15b,0xb167,
631 0xb172,0xb17e,0xb189,0xb195,0xb1a0,0xb1ac,0xb1b8,0xb1c3,
632 0xb1cf,0xb1da,0xb1e6,0xb1f1,0xb1fd,0xb208,0xb214,0xb21f,
633 0xb22b,0xb236,0xb242,0xb24d,0xb259,0xb264,0xb270,0xb27b,
634 0xb286,0xb292,0xb29d,0xb2a9,0xb2b4,0xb2c0,0xb2cb,0xb2d7,
635 0xb2e2,0xb2ee,0xb2f9,0xb305,0xb310,0xb31b,0xb327,0xb332,
636 0xb33e,0xb349,0xb355,0xb360,0xb36b,0xb377,0xb382,0xb38e,
637 0xb399,0xb3a4,0xb3b0,0xb3bb,0xb3c7,0xb3d2,0xb3dd,0xb3e9,
638 0xb3f4,0xb400,0xb40b,0xb416,0xb422,0xb42d,0xb438,0xb444,
639 0xb44f,0xb45a,0xb466,0xb471,0xb47c,0xb488,0xb493,0xb49f,
640 0xb4aa,0xb4b5,0xb4c1,0xb4cc,0xb4d7,0xb4e2,0xb4ee,0xb4f9,
641 0xb504,0xb510,0xb51b,0xb526,0xb532,0xb53d,0xb548,0xb554,
642 0xb55f,0xb56a,0xb575,0xb581,0xb58c,0xb597,0xb5a3,0xb5ae,
643 0xb5b9,0xb5c4,0xb5d0,0xb5db,0xb5e6,0xb5f1,0xb5fd,0xb608,
644 0xb613,0xb61e,0xb62a,0xb635,0xb640,0xb64b,0xb657,0xb662,
645 0xb66d,0xb678,0xb684,0xb68f,0xb69a,0xb6a5,0xb6b0,0xb6bc,
646 0xb6c7,0xb6d2,0xb6dd,0xb6e8,0xb6f4,0xb6ff,0xb70a,0xb715,
647 0xb720,0xb72c,0xb737,0xb742,0xb74d,0xb758,0xb763,0xb76f,
648 0xb77a,0xb785,0xb790,0xb79b,0xb7a6,0xb7b2,0xb7bd,0xb7c8,
649 0xb7d3,0xb7de,0xb7e9,0xb7f4,0xb800,0xb80b,0xb816,0xb821,
650 0xb82c,0xb837,0xb842,0xb84d,0xb858,0xb864,0xb86f,0xb87a,
651 0xb885,0xb890,0xb89b,0xb8a6,0xb8b1,0xb8bc,0xb8c7,0xb8d3,
652 0xb8de,0xb8e9,0xb8f4,0xb8ff,0xb90a,0xb915,0xb920,0xb92b,
653 0xb936,0xb941,0xb94c,0xb957,0xb962,0xb96d,0xb978,0xb983,
654 0xb98f,0xb99a,0xb9a5,0xb9b0,0xb9bb,0xb9c6,0xb9d1,0xb9dc,
655 0xb9e7,0xb9f2,0xb9fd,0xba08,0xba13,0xba1e,0xba29,0xba34,
656 0xba3f,0xba4a,0xba55,0xba60,0xba6b,0xba76,0xba81,0xba8c,
657 0xba97,0xbaa2,0xbaad,0xbab8,0xbac3,0xbace,0xbad8,0xbae3,
658 0xbaee,0xbaf9,0xbb04,0xbb0f,0xbb1a,0xbb25,0xbb30,0xbb3b,
659 0xbb46,0xbb51,0xbb5c,0xbb67,0xbb72,0xbb7d,0xbb88,0xbb92,
660 0xbb9d,0xbba8,0xbbb3,0xbbbe,0xbbc9,0xbbd4,0xbbdf,0xbbea,
661 0xbbf5,0xbc00,0xbc0a,0xbc15,0xbc20,0xbc2b,0xbc36,0xbc41,
662 0xbc4c,0xbc57,0xbc61,0xbc6c,0xbc77,0xbc82,0xbc8d,0xbc98,
663 0xbca3,0xbcad,0xbcb8,0xbcc3,0xbcce,0xbcd9,0xbce4,0xbcef,
664 0xbcf9,0xbd04,0xbd0f,0xbd1a,0xbd25,0xbd30,0xbd3a,0xbd45,
665 0xbd50,0xbd5b,0xbd66,0xbd70,0xbd7b,0xbd86,0xbd91,0xbd9c,
666 0xbda6,0xbdb1,0xbdbc,0xbdc7,0xbdd2,0xbddc,0xbde7,0xbdf2,
667 0xbdfd,0xbe08,0xbe12,0xbe1d,0xbe28,0xbe33,0xbe3d,0xbe48,
668 0xbe53,0xbe5e,0xbe68,0xbe73,0xbe7e,0xbe89,0xbe93,0xbe9e,
669 0xbea9,0xbeb4,0xbebe,0xbec9,0xbed4,0xbedf,0xbee9,0xbef4,
670 0xbeff,0xbf0a,0xbf14,0xbf1f,0xbf2a,0xbf34,0xbf3f,0xbf4a,
671 0xbf55,0xbf5f,0xbf6a,0xbf75,0xbf7f,0xbf8a,0xbf95,0xbf9f,
672 0xbfaa,0xbfb5,0xbfbf,0xbfca,0xbfd5,0xbfdf,0xbfea,0xbff5,
673 0xc000,0xc00a,0xc015,0xc01f,0xc02a,0xc035,0xc03f,0xc04a,
674 0xc055,0xc05f,0xc06a,0xc075,0xc07f,0xc08a,0xc095,0xc09f,
675 0xc0aa,0xc0b5,0xc0bf,0xc0ca,0xc0d4,0xc0df,0xc0ea,0xc0f4,
676 0xc0ff,0xc109,0xc114,0xc11f,0xc129,0xc134,0xc13e,0xc149,
677 0xc154,0xc15e,0xc169,0xc173,0xc17e,0xc189,0xc193,0xc19e,
678 0xc1a8,0xc1b3,0xc1bd,0xc1c8,0xc1d3,0xc1dd,0xc1e8,0xc1f2,
679 0xc1fd,0xc207,0xc212,0xc21d,0xc227,0xc232,0xc23c,0xc247,
680 0xc251,0xc25c,0xc266,0xc271,0xc27b,0xc286,0xc290,0xc29b,
681 0xc2a5,0xc2b0,0xc2bb,0xc2c5,0xc2d0,0xc2da,0xc2e5,0xc2ef,
682 0xc2fa,0xc304,0xc30f,0xc319,0xc324,0xc32e,0xc339,0xc343,
683 0xc34e,0xc358,0xc363,0xc36d,0xc377,0xc382,0xc38c,0xc397,
684 0xc3a1,0xc3ac,0xc3b6,0xc3c1,0xc3cb,0xc3d6,0xc3e0,0xc3eb,
685 0xc3f5,0xc400,0xc40a,0xc414,0xc41f,0xc429,0xc434,0xc43e,
686 0xc449,0xc453,0xc45d,0xc468,0xc472,0xc47d,0xc487,0xc492,
687 0xc49c,0xc4a6,0xc4b1,0xc4bb,0xc4c6,0xc4d0,0xc4da,0xc4e5,
688 0xc4ef,0xc4fa,0xc504,0xc50e,0xc519,0xc523,0xc52e,0xc538,
689 0xc542,0xc54d,0xc557,0xc562,0xc56c,0xc576,0xc581,0xc58b,
690 0xc595,0xc5a0,0xc5aa,0xc5b4,0xc5bf,0xc5c9,0xc5d4,0xc5de,
691 0xc5e8,0xc5f3,0xc5fd,0xc607,0xc612,0xc61c,0xc626,0xc631,
692 0xc63b,0xc645,0xc650,0xc65a,0xc664,0xc66f,0xc679,0xc683,
693 0xc68e,0xc698,0xc6a2,0xc6ac,0xc6b7,0xc6c1,0xc6cb,0xc6d6,
694 0xc6e0,0xc6ea,0xc6f5,0xc6ff,0xc709,0xc713,0xc71e,0xc728,
695 0xc732,0xc73d,0xc747,0xc751,0xc75b,0xc766,0xc770,0xc77a,
696 0xc784,0xc78f,0xc799,0xc7a3,0xc7ae,0xc7b8,0xc7c2,0xc7cc,
697 0xc7d7,0xc7e1,0xc7eb,0xc7f5,0xc800,0xc80a,0xc814,0xc81e,
698 0xc828,0xc833,0xc83d,0xc847,0xc851,0xc85c,0xc866,0xc870,
699 0xc87a,0xc884,0xc88f,0xc899,0xc8a3,0xc8ad,0xc8b7,0xc8c2,
700 0xc8cc,0xc8d6,0xc8e0,0xc8ea,0xc8f5,0xc8ff,0xc909,0xc913,
701 0xc91d,0xc928,0xc932,0xc93c,0xc946,0xc950,0xc95a,0xc965,
702 0xc96f,0xc979,0xc983,0xc98d,0xc997,0xc9a2,0xc9ac,0xc9b6,
703 0xc9c0,0xc9ca,0xc9d4,0xc9df,0xc9e9,0xc9f3,0xc9fd,0xca07,
704 0xca11,0xca1b,0xca26,0xca30,0xca3a,0xca44,0xca4e,0xca58,
705 0xca62,0xca6c,0xca76,0xca81,0xca8b,0xca95,0xca9f,0xcaa9,
706 0xcab3,0xcabd,0xcac7,0xcad1,0xcadc,0xcae6,0xcaf0,0xcafa,
707 0xcb04,0xcb0e,0xcb18,0xcb22,0xcb2c,0xcb36,0xcb40,0xcb4a,
708 0xcb55,0xcb5f,0xcb69,0xcb73,0xcb7d,0xcb87,0xcb91,0xcb9b,
709 0xcba5,0xcbaf,0xcbb9,0xcbc3,0xcbcd,0xcbd7,0xcbe1,0xcbeb,
710 0xcbf5,0xcc00,0xcc0a,0xcc14,0xcc1e,0xcc28,0xcc32,0xcc3c,
711 0xcc46,0xcc50,0xcc5a,0xcc64,0xcc6e,0xcc78,0xcc82,0xcc8c,
712 0xcc96,0xcca0,0xccaa,0xccb4,0xccbe,0xccc8,0xccd2,0xccdc,
713 0xcce6,0xccf0,0xccfa,0xcd04,0xcd0e,0xcd18,0xcd22,0xcd2c,
714 0xcd36,0xcd40,0xcd4a,0xcd54,0xcd5e,0xcd68,0xcd72,0xcd7c,
715 0xcd86,0xcd90,0xcd99,0xcda3,0xcdad,0xcdb7,0xcdc1,0xcdcb,
716 0xcdd5,0xcddf,0xcde9,0xcdf3,0xcdfd,0xce07,0xce11,0xce1b,
717 0xce25,0xce2f,0xce39,0xce43,0xce4c,0xce56,0xce60,0xce6a,
718 0xce74,0xce7e,0xce88,0xce92,0xce9c,0xcea6,0xceb0,0xceba,
719 0xcec3,0xcecd,0xced7,0xcee1,0xceeb,0xcef5,0xceff,0xcf09,
720 0xcf13,0xcf1d,0xcf26,0xcf30,0xcf3a,0xcf44,0xcf4e,0xcf58,
721 0xcf62,0xcf6c,0xcf75,0xcf7f,0xcf89,0xcf93,0xcf9d,0xcfa7,
722 0xcfb1,0xcfbb,0xcfc4,0xcfce,0xcfd8,0xcfe2,0xcfec,0xcff6,
723 0xd000,0xd009,0xd013,0xd01d,0xd027,0xd031,0xd03b,0xd044,
724 0xd04e,0xd058,0xd062,0xd06c,0xd076,0xd07f,0xd089,0xd093,
725 0xd09d,0xd0a7,0xd0b0,0xd0ba,0xd0c4,0xd0ce,0xd0d8,0xd0e1,
726 0xd0eb,0xd0f5,0xd0ff,0xd109,0xd112,0xd11c,0xd126,0xd130,
727 0xd13a,0xd143,0xd14d,0xd157,0xd161,0xd16b,0xd174,0xd17e,
728 0xd188,0xd192,0xd19b,0xd1a5,0xd1af,0xd1b9,0xd1c3,0xd1cc,
729 0xd1d6,0xd1e0,0xd1ea,0xd1f3,0xd1fd,0xd207,0xd211,0xd21a,
730 0xd224,0xd22e,0xd238,0xd241,0xd24b,0xd255,0xd25f,0xd268,
731 0xd272,0xd27c,0xd285,0xd28f,0xd299,0xd2a3,0xd2ac,0xd2b6,
732 0xd2c0,0xd2c9,0xd2d3,0xd2dd,0xd2e7,0xd2f0,0xd2fa,0xd304,
733 0xd30d,0xd317,0xd321,0xd32b,0xd334,0xd33e,0xd348,0xd351,
734 0xd35b,0xd365,0xd36e,0xd378,0xd382,0xd38b,0xd395,0xd39f,
735 0xd3a8,0xd3b2,0xd3bc,0xd3c6,0xd3cf,0xd3d9,0xd3e3,0xd3ec,
736 0xd3f6,0xd400,0xd409,0xd413,0xd41c,0xd426,0xd430,0xd439,
737 0xd443,0xd44d,0xd456,0xd460,0xd46a,0xd473,0xd47d,0xd487,
738 0xd490,0xd49a,0xd4a3,0xd4ad,0xd4b7,0xd4c0,0xd4ca,0xd4d4,
739 0xd4dd,0xd4e7,0xd4f0,0xd4fa,0xd504,0xd50d,0xd517,0xd521,
740 0xd52a,0xd534,0xd53d,0xd547,0xd551,0xd55a,0xd564,0xd56d,
741 0xd577,0xd581,0xd58a,0xd594,0xd59d,0xd5a7,0xd5b0,0xd5ba,
742 0xd5c4,0xd5cd,0xd5d7,0xd5e0,0xd5ea,0xd5f4,0xd5fd,0xd607,
743 0xd610,0xd61a,0xd623,0xd62d,0xd637,0xd640,0xd64a,0xd653,
744 0xd65d,0xd666,0xd670,0xd679,0xd683,0xd68c,0xd696,0xd6a0,
745 0xd6a9,0xd6b3,0xd6bc,0xd6c6,0xd6cf,0xd6d9,0xd6e2,0xd6ec,
746 0xd6f5,0xd6ff,0xd708,0xd712,0xd71b,0xd725,0xd72f,0xd738,
747 0xd742,0xd74b,0xd755,0xd75e,0xd768,0xd771,0xd77b,0xd784,
748 0xd78e,0xd797,0xd7a1,0xd7aa,0xd7b4,0xd7bd,0xd7c7,0xd7d0,
749 0xd7da,0xd7e3,0xd7ed,0xd7f6,0xd800,0xd809,0xd812,0xd81c,
750 0xd825,0xd82f,0xd838,0xd842,0xd84b,0xd855,0xd85e,0xd868,
751 0xd871,0xd87b,0xd884,0xd88e,0xd897,0xd8a0,0xd8aa,0xd8b3,
752 0xd8bd,0xd8c6,0xd8d0,0xd8d9,0xd8e3,0xd8ec,0xd8f5,0xd8ff,
753 0xd908,0xd912,0xd91b,0xd925,0xd92e,0xd938,0xd941,0xd94a,
754 0xd954,0xd95d,0xd967,0xd970,0xd979,0xd983,0xd98c,0xd996,
755 0xd99f,0xd9a9,0xd9b2,0xd9bb,0xd9c5,0xd9ce,0xd9d8,0xd9e1,
756 0xd9ea,0xd9f4,0xd9fd,0xda07,0xda10,0xda19,0xda23,0xda2c,
757 0xda35,0xda3f,0xda48,0xda52,0xda5b,0xda64,0xda6e,0xda77,
758 0xda81,0xda8a,0xda93,0xda9d,0xdaa6,0xdaaf,0xdab9,0xdac2,
759 0xdacb,0xdad5,0xdade,0xdae8,0xdaf1,0xdafa,0xdb04,0xdb0d,
760 0xdb16,0xdb20,0xdb29,0xdb32,0xdb3c,0xdb45,0xdb4e,0xdb58,
761 0xdb61,0xdb6a,0xdb74,0xdb7d,0xdb86,0xdb90,0xdb99,0xdba2,
762 0xdbac,0xdbb5,0xdbbe,0xdbc8,0xdbd1,0xdbda,0xdbe4,0xdbed,
763 0xdbf6,0xdc00,0xdc09,0xdc12,0xdc1b,0xdc25,0xdc2e,0xdc37,
764 0xdc41,0xdc4a,0xdc53,0xdc5d,0xdc66,0xdc6f,0xdc78,0xdc82,
765 0xdc8b,0xdc94,0xdc9e,0xdca7,0xdcb0,0xdcb9,0xdcc3,0xdccc,
766 0xdcd5,0xdcde,0xdce8,0xdcf1,0xdcfa,0xdd04,0xdd0d,0xdd16,
767 0xdd1f,0xdd29,0xdd32,0xdd3b,0xdd44,0xdd4e,0xdd57,0xdd60,
768 0xdd69,0xdd73,0xdd7c,0xdd85,0xdd8e,0xdd98,0xdda1,0xddaa,
769 0xddb3,0xddbd,0xddc6,0xddcf,0xddd8,0xdde2,0xddeb,0xddf4,
770 0xddfd,0xde06,0xde10,0xde19,0xde22,0xde2b,0xde35,0xde3e,
771 0xde47,0xde50,0xde59,0xde63,0xde6c,0xde75,0xde7e,0xde87,
772 0xde91,0xde9a,0xdea3,0xdeac,0xdeb5,0xdebf,0xdec8,0xded1,
773 0xdeda,0xdee3,0xdeed,0xdef6,0xdeff,0xdf08,0xdf11,0xdf1a,
774 0xdf24,0xdf2d,0xdf36,0xdf3f,0xdf48,0xdf52,0xdf5b,0xdf64,
775 0xdf6d,0xdf76,0xdf7f,0xdf89,0xdf92,0xdf9b,0xdfa4,0xdfad,
776 0xdfb6,0xdfbf,0xdfc9,0xdfd2,0xdfdb,0xdfe4,0xdfed,0xdff6,
777 0xe000,0xe009,0xe012,0xe01b,0xe024,0xe02d,0xe036,0xe03f,
778 0xe049,0xe052,0xe05b,0xe064,0xe06d,0xe076,0xe07f,0xe088,
779 0xe092,0xe09b,0xe0a4,0xe0ad,0xe0b6,0xe0bf,0xe0c8,0xe0d1,
780 0xe0db,0xe0e4,0xe0ed,0xe0f6,0xe0ff,0xe108,0xe111,0xe11a,
781 0xe123,0xe12c,0xe136,0xe13f,0xe148,0xe151,0xe15a,0xe163,
782 0xe16c,0xe175,0xe17e,0xe187,0xe190,0xe199,0xe1a3,0xe1ac,
783 0xe1b5,0xe1be,0xe1c7,0xe1d0,0xe1d9,0xe1e2,0xe1eb,0xe1f4,
784 0xe1fd,0xe206,0xe20f,0xe218,0xe221,0xe22b,0xe234,0xe23d,
785 0xe246,0xe24f,0xe258,0xe261,0xe26a,0xe273,0xe27c,0xe285,
786 0xe28e,0xe297,0xe2a0,0xe2a9,0xe2b2,0xe2bb,0xe2c4,0xe2cd,
787 0xe2d6,0xe2df,0xe2e8,0xe2f1,0xe2fa,0xe303,0xe30c,0xe315,
788 0xe31f,0xe328,0xe331,0xe33a,0xe343,0xe34c,0xe355,0xe35e,
789 0xe367,0xe370,0xe379,0xe382,0xe38b,0xe394,0xe39d,0xe3a6,
790 0xe3af,0xe3b8,0xe3c1,0xe3ca,0xe3d3,0xe3dc,0xe3e5,0xe3ee,
791 0xe3f7,0xe400,0xe408,0xe411,0xe41a,0xe423,0xe42c,0xe435,
792 0xe43e,0xe447,0xe450,0xe459,0xe462,0xe46b,0xe474,0xe47d,
793 0xe486,0xe48f,0xe498,0xe4a1,0xe4aa,0xe4b3,0xe4bc,0xe4c5,
794 0xe4ce,0xe4d7,0xe4e0,0xe4e9,0xe4f2,0xe4fa,0xe503,0xe50c,
795 0xe515,0xe51e,0xe527,0xe530,0xe539,0xe542,0xe54b,0xe554,
796 0xe55d,0xe566,0xe56f,0xe578,0xe580,0xe589,0xe592,0xe59b,
797 0xe5a4,0xe5ad,0xe5b6,0xe5bf,0xe5c8,0xe5d1,0xe5da,0xe5e3,
798 0xe5eb,0xe5f4,0xe5fd,0xe606,0xe60f,0xe618,0xe621,0xe62a,
799 0xe633,0xe63c,0xe644,0xe64d,0xe656,0xe65f,0xe668,0xe671,
800 0xe67a,0xe683,0xe68c,0xe694,0xe69d,0xe6a6,0xe6af,0xe6b8,
801 0xe6c1,0xe6ca,0xe6d3,0xe6db,0xe6e4,0xe6ed,0xe6f6,0xe6ff,
802 0xe708,0xe711,0xe71a,0xe722,0xe72b,0xe734,0xe73d,0xe746,
803 0xe74f,0xe758,0xe760,0xe769,0xe772,0xe77b,0xe784,0xe78d,
804 0xe795,0xe79e,0xe7a7,0xe7b0,0xe7b9,0xe7c2,0xe7cb,0xe7d3,
805 0xe7dc,0xe7e5,0xe7ee,0xe7f7,0xe800,0xe808,0xe811,0xe81a,
806 0xe823,0xe82c,0xe834,0xe83d,0xe846,0xe84f,0xe858,0xe861,
807 0xe869,0xe872,0xe87b,0xe884,0xe88d,0xe895,0xe89e,0xe8a7,
808 0xe8b0,0xe8b9,0xe8c1,0xe8ca,0xe8d3,0xe8dc,0xe8e5,0xe8ed,
809 0xe8f6,0xe8ff,0xe908,0xe911,0xe919,0xe922,0xe92b,0xe934,
810 0xe93c,0xe945,0xe94e,0xe957,0xe960,0xe968,0xe971,0xe97a,
811 0xe983,0xe98b,0xe994,0xe99d,0xe9a6,0xe9ae,0xe9b7,0xe9c0,
812 0xe9c9,0xe9d2,0xe9da,0xe9e3,0xe9ec,0xe9f5,0xe9fd,0xea06,
813 0xea0f,0xea18,0xea20,0xea29,0xea32,0xea3b,0xea43,0xea4c,
814 0xea55,0xea5e,0xea66,0xea6f,0xea78,0xea80,0xea89,0xea92,
815 0xea9b,0xeaa3,0xeaac,0xeab5,0xeabe,0xeac6,0xeacf,0xead8,
816 0xeae0,0xeae9,0xeaf2,0xeafb,0xeb03,0xeb0c,0xeb15,0xeb1d,
817 0xeb26,0xeb2f,0xeb38,0xeb40,0xeb49,0xeb52,0xeb5a,0xeb63,
818 0xeb6c,0xeb74,0xeb7d,0xeb86,0xeb8f,0xeb97,0xeba0,0xeba9,
819 0xebb1,0xebba,0xebc3,0xebcb,0xebd4,0xebdd,0xebe5,0xebee,
820 0xebf7,0xec00,0xec08,0xec11,0xec1a,0xec22,0xec2b,0xec34,
821 0xec3c,0xec45,0xec4e,0xec56,0xec5f,0xec68,0xec70,0xec79,
822 0xec82,0xec8a,0xec93,0xec9c,0xeca4,0xecad,0xecb5,0xecbe,
823 0xecc7,0xeccf,0xecd8,0xece1,0xece9,0xecf2,0xecfb,0xed03,
824 0xed0c,0xed15,0xed1d,0xed26,0xed2e,0xed37,0xed40,0xed48,
825 0xed51,0xed5a,0xed62,0xed6b,0xed74,0xed7c,0xed85,0xed8d,
826 0xed96,0xed9f,0xeda7,0xedb0,0xedb8,0xedc1,0xedca,0xedd2,
827 0xeddb,0xede4,0xedec,0xedf5,0xedfd,0xee06,0xee0f,0xee17,
828 0xee20,0xee28,0xee31,0xee3a,0xee42,0xee4b,0xee53,0xee5c,
829 0xee65,0xee6d,0xee76,0xee7e,0xee87,0xee8f,0xee98,0xeea1,
830 0xeea9,0xeeb2,0xeeba,0xeec3,0xeecc,0xeed4,0xeedd,0xeee5,
831 0xeeee,0xeef6,0xeeff,0xef08,0xef10,0xef19,0xef21,0xef2a,
832 0xef32,0xef3b,0xef43,0xef4c,0xef55,0xef5d,0xef66,0xef6e,
833 0xef77,0xef7f,0xef88,0xef90,0xef99,0xefa2,0xefaa,0xefb3,
834 0xefbb,0xefc4,0xefcc,0xefd5,0xefdd,0xefe6,0xefee,0xeff7,
835 0xf000,0xf008,0xf011,0xf019,0xf022,0xf02a,0xf033,0xf03b,
836 0xf044,0xf04c,0xf055,0xf05d,0xf066,0xf06e,0xf077,0xf07f,
837 0xf088,0xf090,0xf099,0xf0a1,0xf0aa,0xf0b2,0xf0bb,0xf0c3,
838 0xf0cc,0xf0d4,0xf0dd,0xf0e5,0xf0ee,0xf0f6,0xf0ff,0xf107,
839 0xf110,0xf118,0xf121,0xf129,0xf132,0xf13a,0xf143,0xf14b,
840 0xf154,0xf15c,0xf165,0xf16d,0xf176,0xf17e,0xf187,0xf18f,
841 0xf198,0xf1a0,0xf1a9,0xf1b1,0xf1ba,0xf1c2,0xf1cb,0xf1d3,
842 0xf1dc,0xf1e4,0xf1ec,0xf1f5,0xf1fd,0xf206,0xf20e,0xf217,
843 0xf21f,0xf228,0xf230,0xf239,0xf241,0xf24a,0xf252,0xf25a,
844 0xf263,0xf26b,0xf274,0xf27c,0xf285,0xf28d,0xf296,0xf29e,
845 0xf2a6,0xf2af,0xf2b7,0xf2c0,0xf2c8,0xf2d1,0xf2d9,0xf2e1,
846 0xf2ea,0xf2f2,0xf2fb,0xf303,0xf30c,0xf314,0xf31c,0xf325,
847 0xf32d,0xf336,0xf33e,0xf347,0xf34f,0xf357,0xf360,0xf368,
848 0xf371,0xf379,0xf381,0xf38a,0xf392,0xf39b,0xf3a3,0xf3ac,
849 0xf3b4,0xf3bc,0xf3c5,0xf3cd,0xf3d6,0xf3de,0xf3e6,0xf3ef,
850 0xf3f7,0xf400,0xf408,0xf410,0xf419,0xf421,0xf429,0xf432,
851 0xf43a,0xf443,0xf44b,0xf453,0xf45c,0xf464,0xf46d,0xf475,
852 0xf47d,0xf486,0xf48e,0xf496,0xf49f,0xf4a7,0xf4b0,0xf4b8,
853 0xf4c0,0xf4c9,0xf4d1,0xf4d9,0xf4e2,0xf4ea,0xf4f2,0xf4fb,
854 0xf503,0xf50c,0xf514,0xf51c,0xf525,0xf52d,0xf535,0xf53e,
855 0xf546,0xf54e,0xf557,0xf55f,0xf567,0xf570,0xf578,0xf580,
856 0xf589,0xf591,0xf599,0xf5a2,0xf5aa,0xf5b2,0xf5bb,0xf5c3,
857 0xf5cb,0xf5d4,0xf5dc,0xf5e4,0xf5ed,0xf5f5,0xf5fd,0xf606,
858 0xf60e,0xf616,0xf61f,0xf627,0xf62f,0xf638,0xf640,0xf648,
859 0xf651,0xf659,0xf661,0xf66a,0xf672,0xf67a,0xf682,0xf68b,
860 0xf693,0xf69b,0xf6a4,0xf6ac,0xf6b4,0xf6bd,0xf6c5,0xf6cd,
861 0xf6d6,0xf6de,0xf6e6,0xf6ee,0xf6f7,0xf6ff,0xf707,0xf710,
862 0xf718,0xf720,0xf728,0xf731,0xf739,0xf741,0xf74a,0xf752,
863 0xf75a,0xf762,0xf76b,0xf773,0xf77b,0xf784,0xf78c,0xf794,
864 0xf79c,0xf7a5,0xf7ad,0xf7b5,0xf7bd,0xf7c6,0xf7ce,0xf7d6,
865 0xf7de,0xf7e7,0xf7ef,0xf7f7,0xf800,0xf808,0xf810,0xf818,
866 0xf821,0xf829,0xf831,0xf839,0xf842,0xf84a,0xf852,0xf85a,
867 0xf863,0xf86b,0xf873,0xf87b,0xf883,0xf88c,0xf894,0xf89c,
868 0xf8a4,0xf8ad,0xf8b5,0xf8bd,0xf8c5,0xf8ce,0xf8d6,0xf8de,
869 0xf8e6,0xf8ef,0xf8f7,0xf8ff,0xf907,0xf90f,0xf918,0xf920,
870 0xf928,0xf930,0xf939,0xf941,0xf949,0xf951,0xf959,0xf962,
871 0xf96a,0xf972,0xf97a,0xf982,0xf98b,0xf993,0xf99b,0xf9a3,
872 0xf9ab,0xf9b4,0xf9bc,0xf9c4,0xf9cc,0xf9d4,0xf9dd,0xf9e5,
873 0xf9ed,0xf9f5,0xf9fd,0xfa06,0xfa0e,0xfa16,0xfa1e,0xfa26,
874 0xfa2f,0xfa37,0xfa3f,0xfa47,0xfa4f,0xfa58,0xfa60,0xfa68,
875 0xfa70,0xfa78,0xfa80,0xfa89,0xfa91,0xfa99,0xfaa1,0xfaa9,
876 0xfab1,0xfaba,0xfac2,0xfaca,0xfad2,0xfada,0xfae2,0xfaeb,
877 0xfaf3,0xfafb,0xfb03,0xfb0b,0xfb13,0xfb1c,0xfb24,0xfb2c,
878 0xfb34,0xfb3c,0xfb44,0xfb4c,0xfb55,0xfb5d,0xfb65,0xfb6d,
879 0xfb75,0xfb7d,0xfb85,0xfb8e,0xfb96,0xfb9e,0xfba6,0xfbae,
880 0xfbb6,0xfbbe,0xfbc7,0xfbcf,0xfbd7,0xfbdf,0xfbe7,0xfbef,
881 0xfbf7,0xfc00,0xfc08,0xfc10,0xfc18,0xfc20,0xfc28,0xfc30,
882 0xfc38,0xfc40,0xfc49,0xfc51,0xfc59,0xfc61,0xfc69,0xfc71,
883 0xfc79,0xfc81,0xfc8a,0xfc92,0xfc9a,0xfca2,0xfcaa,0xfcb2,
884 0xfcba,0xfcc2,0xfcca,0xfcd2,0xfcdb,0xfce3,0xfceb,0xfcf3,
885 0xfcfb,0xfd03,0xfd0b,0xfd13,0xfd1b,0xfd23,0xfd2c,0xfd34,
886 0xfd3c,0xfd44,0xfd4c,0xfd54,0xfd5c,0xfd64,0xfd6c,0xfd74,
887 0xfd7c,0xfd84,0xfd8d,0xfd95,0xfd9d,0xfda5,0xfdad,0xfdb5,
888 0xfdbd,0xfdc5,0xfdcd,0xfdd5,0xfddd,0xfde5,0xfded,0xfdf5,
889 0xfdfd,0xfe06,0xfe0e,0xfe16,0xfe1e,0xfe26,0xfe2e,0xfe36,
890 0xfe3e,0xfe46,0xfe4e,0xfe56,0xfe5e,0xfe66,0xfe6e,0xfe76,
891 0xfe7e,0xfe86,0xfe8e,0xfe97,0xfe9f,0xfea7,0xfeaf,0xfeb7,
892 0xfebf,0xfec7,0xfecf,0xfed7,0xfedf,0xfee7,0xfeef,0xfef7,
893 0xfeff,0xff07,0xff0f,0xff17,0xff1f,0xff27,0xff2f,0xff37,
894 0xff3f,0xff47,0xff4f,0xff57,0xff5f,0xff67,0xff6f,0xff77,
895 0xff7f,0xff87,0xff8f,0xff97,0xff9f,0xffa7,0xffaf,0xffb7,
896 0xffbf,0xffc7,0xffcf,0xffd7,0xffdf,0xffe7,0xffef,0xfff7
897 ];
898
899 const RA144_CODEBOOK1: [u16; 128] = [
900 19657, 18474, 18365, 17520, 21048, 18231, 18584, 16671,
901 20363, 19069, 19409, 18430, 21844, 18753, 19613, 17411,
902 20389, 21772, 20129, 21702, 20978, 20472, 19627, 19387,
903 21477, 23134, 21841, 23919, 22089, 21519, 21134, 20852,
904 19675, 17821, 19044, 17477, 19986, 16955, 18446, 16086,
905 21138, 18899, 20952, 18929, 21452, 17833, 20104, 17159,
906 19770, 20056, 20336, 20866, 19329, 18217, 18908, 18004,
907 21556, 21948, 23079, 23889, 20922, 19544, 20984, 19781,
908 19781, 20984, 19544, 20922, 23889, 23079, 21948, 21556,
909 18004, 18908, 18217, 19329, 20866, 20336, 20056, 19770,
910 17159, 20104, 17833, 21452, 18929, 20952, 18899, 21138,
911 16086, 18446, 16955, 19986, 17477, 19044, 17821, 19675,
912 20852, 21134, 21519, 22089, 23919, 21841, 23134, 21477,
913 19387, 19627, 20472, 20978, 21702, 20129, 21772, 20389,
914 17411, 19613, 18753, 21844, 18430, 19409, 19069, 20363,
915 16671, 18584, 18231, 21048, 17520, 18365, 18474, 19657,
916 ];
917 const RA144_VECTORS1: [[i8; BLOCKSIZE]; 128] = [
918 [
919 38, -4, 15, -4, 14, -13, 12, -11, -2, -6,
920 -6, -11, -45, -16, -11, -13, -7, 6, -12, 4,
921 -20, 3, -16, 12, -1, 12, 46, 24, 0, 33,
922 -3, 9, -12, -12, -8, -7, 17, -6, 0, -2,
923 ], [
924 60, -16, 3, -22, 10, -32, 0, -28, -17, -18,
925 -3, -25, -37, -23, -10, 3, 2, 3, 0, 3,
926 -14, 0, -14, -1, 0, 2, 32, 9, -1, 25,
927 7, 13, -5, 13, 8, 1, 2, 8, -10, 6,
928 ], [
929 27, -12, 28, -2, 6, -7, 15, 9, -11, 1,
930 -13, -11, -40, 4, -29, -14, -19, -5, -23, -8,
931 -30, -13, -17, 0, -14, 12, 34, 20, -2, 25,
932 2, -16, -4, -12, 15, 16, 29, 7, 24, 10,
933 ], [
934 49, -24, 16, -20, 2, -26, 2, -7, -25, -10,
935 -11, -25, -32, -3, -27, 2, -8, -8, -11, -9,
936 -24, -17, -16, -14, -13, 2, 20, 5, -4, 17,
937 14, -12, 3, 13, 33, 25, 14, 23, 15, 19,
938 ], [
939 46, -6, 21, 8, -2, -16, -5, -8, -11, 4,
940 8, 15, -24, 4, -2, -26, -3, -16, -16, -14,
941 -9, -2, -1, 4, 19, 7, 36, 17, 9, 13,
942 0, 31, -5, -12, 7, -8, 11, -15, -13, -4,
943 ], [
944 68, -18, 9, -9, -6, -35, -18, -25, -26, -7,
945 10, 1, -16, -3, -1, -9, 6, -19, -4, -15,
946 -4, -6, 0, -8, 20, -2, 23, 2, 7, 5,
947 12, 35, 1, 13, 24, 0, -3, 0, -22, 4,
948 ], [
949 35, -14, 34, 10, -10, -10, -1, 12, -20, 12,
950 0, 15, -18, 24, -20, -27, -14, -28, -27, -27,
951 -20, -19, -2, -8, 5, 7, 25, 13, 5, 5,
952 6, 5, 2, -12, 31, 15, 23, -1, 12, 8,
953 ], [
954 57, -26, 22, -7, -14, -28, -14, -3, -35, 0,
955 3, 1, -11, 16, -18, -10, -4, -31, -15, -28,
956 -14, -23, -1, -21, 7, -2, 11, -1, 3, -1,
957 18, 9, 10, 13, 49, 24, 8, 14, 2, 16,
958 ], [
959 25, 15, 22, 11, 18, 4, 15, -22, 8, -2,
960 -17, -9, -48, -20, -30, -17, -16, 11, -1, 16,
961 2, 10, -5, 26, -2, -4, 22, 0, 2, 10,
962 -6, 13, -14, 10, -23, 0, 10, -2, 1, 0,
963 ], [
964 47, 3, 11, -6, 15, -13, 2, -38, -6, -13,
965 -15, -22, -40, -28, -28, 0, -5, 8, 10, 15,
966 7, 7, -4, 13, -1, -14, 9, -14, 0, 2,
967 4, 18, -7, 36, -6, 8, -3, 13, -7, 8,
968 ], [
969 14, 7, 36, 13, 10, 10, 18, 0, 0, 5,
970 -25, -8, -43, 0, -48, -18, -27, 0, -12, 3,
971 -7, -6, -7, 13, -15, -5, 11, -3, 0, 2,
972 0, -12, -6, 10, 0, 23, 22, 11, 26, 12,
973 ], [
974 36, -5, 24, -4, 7, -7, 6, -17, -14, -5,
975 -22, -22, -35, -8, -46, -1, -17, -3, 0, 2,
976 -2, -10, -5, 0, -14, -15, -2, -18, -2, -4,
977 11, -7, 1, 36, 18, 32, 7, 27, 17, 20,
978 ], [
979 33, 13, 29, 24, 1, 1, -2, -18, 0, 9,
980 -3, 17, -27, 0, -21, -30, -12, -11, -5, -2,
981 12, 4, 9, 19, 18, -9, 13, -6, 11, -8,
982 -2, 35, -8, 10, -7, -1, 4, -11, -10, -2,
983 ], [
984 55, 1, 17, 6, -1, -16, -15, -35, -15, -2,
985 0, 4, -19, -8, -20, -13, -1, -14, 7, -3,
986 18, 0, 10, 5, 19, -19, 0, -21, 8, -16,
987 9, 39, 0, 36, 10, 7, -9, 4, -20, 5,
988 ], [
989 22, 5, 42, 26, -6, 8, 1, 2, -9, 17,
990 -10, 18, -21, 19, -39, -31, -23, -23, -16, -15,
991 2, -12, 7, 6, 5, -9, 1, -10, 7, -16,
992 4, 9, 0, 10, 17, 22, 16, 2, 14, 9,
993 ], [
994 44, -6, 30, 8, -9, -10, -11, -14, -23, 5,
995 -8, 4, -14, 12, -37, -14, -12, -26, -4, -16,
996 8, -16, 9, -7, 6, -19, -12, -25, 5, -24,
997 15, 13, 8, 36, 34, 31, 1, 18, 4, 18,
998 ], [
999 -3, -5, -9, -7, 15, -1, 5, 13, 2, 12,
1000 5, 2, -21, -23, -2, -16, 0, 5, -6, 13,
1001 -23, 3, -32, 10, -15, 8, 44, 28, 9, 37,
1002 -2, 13, -9, -15, -12, -27, -7, -12, 0, -11,
1003 ], [
1004 18, -17, -21, -25, 11, -19, -6, -3, -11, 0,
1005 7, -11, -13, -31, -1, 0, 9, 1, 5, 12,
1006 -18, 0, -31, -2, -13, -1, 30, 14, 7, 29,
1007 9, 18, -1, 10, 4, -18, -22, 3, -10, -2,
1008 ], [
1009 -13, -13, 3, -5, 7, 4, 9, 34, -5, 20,
1010 -2, 3, -16, -3, -20, -17, -11, -7, -17, 0,
1011 -34, -13, -33, -2, -28, 8, 32, 24, 5, 29,
1012 3, -12, 0, -15, 11, -3, 3, 2, 24, 1,
1013 ], [
1014 8, -25, -8, -23, 3, -13, -3, 17, -20, 8,
1015 0, -10, -8, -11, -18, 0, -1, -10, -5, 0,
1016 -28, -17, -32, -15, -26, -1, 19, 9, 3, 21,
1017 15, -7, 6, 9, 29, 5, -10, 17, 15, 9,
1018 ], [
1019 4, -6, -3, 5, -1, -4, -11, 16, -6, 23,
1020 19, 29, 0, -3, 6, -30, 3, -17, -10, -5,
1021 -13, -2, -17, 3, 5, 3, 35, 21, 17, 17,
1022 2, 35, -2, -15, 3, -28, -13, -21, -13, -13,
1023 ], [
1024 26, -19, -15, -12, -5, -22, -24, 0, -21, 12,
1025 21, 15, 8, -11, 7, -12, 14, -20, 2, -6,
1026 -7, -6, -16, -9, 6, -5, 21, 7, 15, 10,
1027 13, 39, 5, 10, 20, -19, -28, -5, -22, -5,
1028 ], [
1029 -5, -15, 9, 7, -9, 2, -8, 37, -14, 31,
1030 11, 29, 5, 16, -11, -30, -7, -29, -21, -18,
1031 -23, -19, -18, -9, -7, 3, 23, 17, 14, 9,
1032 8, 9, 6, -15, 27, -4, -2, -6, 12, -1,
1033 ], [
1034 16, -27, -2, -10, -13, -16, -20, 20, -29, 20,
1035 14, 16, 13, 8, -9, -13, 2, -33, -9, -19,
1036 -17, -23, -17, -22, -6, -6, 9, 2, 12, 2,
1037 20, 13, 13, 10, 45, 4, -16, 8, 2, 7,
1038 ], [
1039 -16, 14, -2, 8, 20, 17, 9, 2, 14, 16,
1040 -6, 5, -24, -28, -21, -20, -8, 9, 4, 25,
1041 -1, 11, -22, 24, -15, -8, 21, 5, 11, 14,
1042 -5, 18, -11, 7, -27, -20, -14, -7, 1, -9,
1043 ], [
1044 6, 2, -14, -9, 16, -1, -3, -14, 0, 5,
1045 -3, -8, -16, -36, -19, -3, 1, 6, 17, 24,
1046 4, 7, -21, 11, -14, -18, 7, -9, 9, 7,
1047 6, 22, -3, 33, -10, -11, -28, 7, -7, 0,
1048 ], [
1049 -26, 6, 11, 10, 12, 23, 12, 23, 5, 24,
1050 -13, 5, -19, -8, -38, -21, -20, -2, -6, 12,
1051 -11, -5, -23, 11, -29, -9, 9, 0, 7, 6,
1052 1, -7, -2, 7, -3, 3, -2, 6, 27, 3,
1053 ], [
1054 -4, -6, 0, -7, 8, 4, 0, 6, -9, 13,
1055 -11, -7, -11, -15, -37, -4, -9, -5, 5, 11,
1056 -5, -9, -22, -1, -27, -18, -4, -14, 5, 0,
1057 12, -3, 4, 32, 14, 12, -17, 22, 17, 11,
1058 ], [
1059 -8, 12, 3, 21, 3, 14, -8, 5, 4, 28,
1060 7, 32, -2, -8, -12, -34, -4, -12, 1, 6,
1061 9, 4, -7, 17, 4, -13, 11, -1, 19, -4,
1062 0, 39, -4, 7, -11, -21, -20, -16, -10, -11,
1063 ], [
1064 13, 0, -8, 3, 0, -4, -21, -11, -9, 16,
1065 10, 18, 5, -16, -10, -16, 5, -15, 13, 5,
1066 15, 1, -6, 4, 6, -23, -2, -16, 17, -12,
1067 10, 44, 3, 33, 6, -12, -34, -1, -20, -3,
1068 ], [
1069 -18, 4, 17, 23, -4, 20, -4, 26, -3, 36,
1070 0, 32, 2, 12, -29, -34, -16, -24, -10, -6,
1071 0, -12, -8, 4, -8, -13, 0, -6, 16, -12,
1072 5, 13, 3, 7, 13, 3, -8, -2, 14, 0,
1073 ], [
1074 3, -7, 5, 5, -8, 2, -17, 9, -18, 24,
1075 2, 19, 10, 4, -28, -17, -5, -28, 2, -7,
1076 4, -15, -7, -8, -6, -23, -13, -21, 14, -20,
1077 17, 18, 11, 33, 30, 11, -23, 13, 5, 9,
1078 ], [
1079 60, 10, 7, -1, 9, -8, 6, -13, 2, -15,
1080 -1, -10, -13, -11, 15, 0, 6, 9, -1, 0,
1081 -13, 1, -11, -3, -13, 21, 13, 26, -7, 31,
1082 -10, -7, -16, -33, -31, -10, 22, -8, 1, -2,
1083 ], [
1084 82, -1, -4, -19, 6, -27, -6, -29, -12, -26,
1085 1, -24, -5, -18, 17, 17, 17, 6, 10, 0,
1086 -7, -2, -9, -16, -12, 11, 0, 11, -9, 23,
1087 0, -3, -8, -8, -13, -1, 8, 7, -7, 6,
1088 ], [
1089 49, 2, 21, 0, 1, -2, 9, 8, -6, -6,
1090 -8, -10, -8, 9, -2, 0, -4, -2, -13, -12,
1091 -23, -15, -12, -16, -26, 21, 2, 21, -11, 23,
1092 -4, -33, -7, -33, -6, 13, 34, 5, 27, 10,
1093 ], [
1094 71, -10, 9, -17, -1, -20, -3, -8, -21, -18,
1095 -6, -24, 0, 1, 0, 16, 6, -5, 0, -13,
1096 -17, -19, -11, -29, -25, 11, -11, 6, -13, 15,
1097 7, -29, 0, -8, 11, 22, 20, 21, 17, 18,
1098 ], [
1099 67, 8, 14, 11, -7, -11, -11, -9, -7, -3,
1100 13, 16, 8, 9, 24, -12, 10, -13, -5, -17,
1101 -2, -4, 3, -10, 6, 17, 4, 19, 0, 11,
1102 -6, 13, -9, -33, -14, -10, 16, -17, -10, -4,
1103 ], [
1104 90, -3, 2, -6, -10, -29, -24, -26, -21, -15,
1105 15, 2, 16, 1, 25, 4, 21, -16, 6, -18,
1106 3, -8, 5, -24, 8, 7, -9, 4, -1, 3,
1107 5, 18, -1, -7, 2, -1, 2, -1, -19, 3,
1108 ], [
1109 57, 0, 27, 13, -14, -5, -7, 11, -15, 4,
1110 5, 16, 13, 29, 6, -13, 0, -25, -16, -31,
1111 -12, -22, 2, -23, -6, 16, -7, 14, -2, 3,
1112 0, -12, 0, -33, 9, 13, 28, -3, 14, 7,
1113 ], [
1114 79, -11, 15, -4, -18, -23, -20, -5, -30, -7,
1115 7, 2, 21, 21, 8, 3, 10, -28, -4, -31,
1116 -6, -25, 3, -37, -4, 7, -20, 0, -4, -4,
1117 11, -7, 6, -8, 27, 22, 14, 12, 5, 16,
1118 ], [
1119 47, 30, 15, 14, 14, 9, 9, -23, 13, -10,
1120 -12, -7, -16, -15, -3, -3, -1, 14, 9, 12,
1121 9, 8, 0, 10, -14, 4, -9, 2, -5, 8,
1122 -13, -3, -18, -10, -45, -3, 16, -4, 4, 0,
1123 ], [
1124 69, 17, 3, -3, 10, -8, -3, -40, -1, -21,
1125 -10, -21, -8, -23, -1, 13, 8, 11, 21, 11,
1126 15, 4, 0, -2, -13, -5, -23, -12, -7, 0,
1127 -1, 0, -10, 14, -28, 5, 1, 11, -5, 7,
1128 ], [
1129 36, 21, 28, 16, 6, 16, 12, -2, 4, -2,
1130 -20, -7, -11, 4, -20, -4, -12, 2, -1, 0,
1131 0, -8, -2, -2, -27, 4, -21, -2, -9, 0,
1132 -6, -29, -9, -10, -21, 21, 28, 10, 29, 11,
1133 ], [
1134 58, 9, 16, -1, 2, -2, 0, -19, -10, -13,
1135 -17, -21, -3, -3, -19, 12, -2, 0, 10, -1,
1136 5, -12, 0, -15, -26, -5, -34, -16, -11, -7,
1137 4, -25, -2, 14, -3, 29, 13, 25, 20, 20,
1138 ], [
1139 55, 28, 21, 27, -2, 7, -8, -20, 4, 1,
1140 1, 18, 5, 4, 5, -16, 2, -8, 5, -5,
1141 19, 2, 14, 3, 6, 0, -18, -4, 2, -11,
1142 -8, 18, -11, -10, -29, -3, 10, -13, -8, -3,
1143 ], [
1144 77, 16, 9, 9, -6, -11, -21, -37, -10, -10,
1145 4, 5, 13, -3, 7, 0, 13, -11, 17, -6,
1146 25, -1, 15, -9, 7, -9, -32, -19, 0, -18,
1147 2, 22, -3, 15, -12, 5, -4, 2, -17, 5,
1148 ], [
1149 44, 20, 34, 29, -10, 13, -4, 0, -4, 9,
1150 -5, 19, 10, 24, -11, -17, -8, -20, -5, -19,
1151 9, -14, 12, -9, -6, 0, -30, -9, 0, -19,
1152 -2, -7, -2, -10, -5, 20, 21, 1, 17, 9,
1153 ], [
1154 66, 8, 23, 11, -14, -5, -17, -16, -19, -2,
1155 -3, 5, 18, 17, -10, 0, 1, -23, 6, -20,
1156 15, -18, 14, -22, -5, -10, -44, -23, -2, -26,
1157 9, -3, 4, 14, 12, 29, 7, 16, 7, 18,
1158 ], [
1159 18, 9, -17, -4, 11, 3, 0, 11, 7, 4,
1160 10, 3, 10, -18, 24, -3, 14, 7, 4, 10,
1161 -16, 1, -27, -4, -27, 17, 12, 30, 0, 35,
1162 -9, -3, -12, -36, -35, -30, -2, -13, 2, -11,
1163 ], [
1164 40, -2, -29, -22, 7, -14, -12, -5, -7, -7,
1165 12, -9, 18, -26, 26, 14, 24, 4, 16, 9,
1166 -10, -2, -26, -18, -26, 7, -1, 15, -1, 27,
1167 2, 0, -4, -11, -17, -21, -16, 1, -7, -3,
1168 ], [
1169 8, 1, -3, -2, 3, 10, 3, 32, -1, 12,
1170 2, 4, 15, 1, 7, -3, 2, -4, -6, -3,
1171 -26, -15, -29, -17, -40, 17, 0, 26, -2, 27,
1172 -2, -29, -4, -36, -10, -6, 9, 0, 27, 0,
1173 ], [
1174 30, -11, -15, -20, 0, -8, -9, 15, -15, 0,
1175 5, -9, 23, -6, 8, 13, 13, -7, 5, -3,
1176 -20, -19, -27, -31, -39, 7, -13, 11, -4, 19,
1177 8, -25, 3, -11, 7, 2, -4, 16, 18, 9,
1178 ], [
1179 26, 7, -11, 8, -5, 1, -17, 14, -1, 15,
1180 24, 30, 32, 1, 33, -16, 18, -14, 0, -8,
1181 -6, -4, -12, -12, -6, 13, 2, 23, 8, 15,
1182 -4, 17, -5, -36, -18, -30, -8, -22, -10, -14,
1183 ], [
1184 48, -4, -23, -9, -9, -17, -30, -2, -16, 3,
1185 26, 16, 40, -6, 35, 1, 28, -17, 12, -9,
1186 0, -8, -11, -25, -5, 3, -10, 8, 6, 7,
1187 6, 22, 1, -11, -1, -21, -22, -7, -19, -5,
1188 ], [
1189 15, 0, 2, 10, -13, 7, -14, 35, -10, 23,
1190 16, 31, 37, 21, 16, -17, 6, -26, -10, -21,
1191 -16, -21, -13, -25, -19, 13, -8, 19, 5, 7,
1192 1, -8, 2, -36, 5, -6, 3, -8, 15, -1,
1193 ], [
1194 37, -12, -9, -7, -17, -11, -26, 18, -25, 12,
1195 19, 17, 45, 14, 17, 0, 17, -30, 1, -22,
1196 -10, -25, -12, -38, -18, 3, -22, 4, 3, 0,
1197 13, -3, 10, -11, 23, 2, -10, 7, 5, 7,
1198 ], [
1199 5, 29, -9, 11, 15, 22, 3, 0, 18, 8,
1200 -1, 6, 7, -23, 6, -6, 5, 12, 15, 21,
1201 5, 8, -17, 9, -28, 0, -11, 6, 2, 12,
1202 -11, 0, -14, -13, -49, -22, -8, -9, 4, -9,
1203 ], [
1204 27, 16, -21, -6, 12, 3, -9, -16, 3, -2,
1205 1, -7, 15, -31, 7, 10, 16, 9, 27, 21,
1206 11, 5, -16, -3, -26, -9, -24, -7, 0, 4,
1207 0, 4, -6, 11, -32, -14, -23, 6, -5, -1,
1208 ], [
1209 -4, 20, 3, 13, 8, 28, 6, 21, 10, 16,
1210 -8, 7, 12, -3, -11, -7, -5, 0, 4, 8,
1211 -4, -8, -18, -3, -41, 0, -22, 2, 0, 4,
1212 -5, -25, -6, -14, -25, 1, 2, 4, 29, 2,
1213 ], [
1214 17, 8, -8, -4, 4, 10, -6, 5, -4, 5,
1215 -6, -6, 20, -10, -9, 9, 4, -2, 16, 7,
1216 1, -12, -17, -16, -39, -9, -36, -12, -2, -3,
1217 6, -21, 1, 11, -7, 10, -11, 20, 20, 11,
1218 ], [
1219 13, 27, -3, 24, -1, 19, -14, 3, 9, 20,
1220 12, 33, 29, -3, 15, -20, 9, -9, 11, 3,
1221 16, 2, -2, 2, -7, -3, -20, 0, 10, -7,
1222 -7, 22, -7, -13, -33, -23, -14, -18, -7, -12,
1223 ], [
1224 35, 15, -15, 6, -4, 1, -27, -12, -5, 8,
1225 15, 19, 37, -11, 16, -2, 20, -12, 23, 2,
1226 22, -1, -1, -11, -5, -13, -34, -14, 8, -14,
1227 4, 26, 0, 11, -16, -14, -29, -2, -17, -3,
1228 ], [
1229 3, 19, 9, 26, -8, 26, -10, 24, 0, 28,
1230 5, 33, 34, 17, -2, -20, -1, -22, 0, -10,
1231 6, -14, -3, -10, -20, -4, -32, -4, 7, -15,
1232 0, -3, 0, -13, -9, 0, -3, -4, 17, 0,
1233 ], [
1234 25, 7, -2, 8, -12, 7, -23, 8, -13, 16,
1235 7, 20, 42, 9, 0, -3, 9, -25, 12, -10,
1236 12, -18, -2, -24, -19, -13, -46, -19, 5, -22,
1237 10, 0, 8, 11, 8, 9, -17, 11, 7, 8,
1238 ], [
1239 -25, -7, 2, -8, 12, -7, 23, -8, 13, -16,
1240 -7, -20, -42, -9, 0, 3, -9, 25, -12, 10,
1241 -12, 18, 2, 24, 19, 13, 46, 19, -5, 22,
1242 -10, 0, -8, -11, -8, -9, 17, -11, -7, -8,
1243 ], [
1244 -3, -19, -9, -26, 8, -26, 10, -24, 0, -28,
1245 -5, -33, -34, -17, 2, 20, 1, 22, 0, 10,
1246 -6, 14, 3, 10, 20, 4, 32, 4, -7, 15,
1247 0, 3, 0, 13, 9, 0, 3, 4, -17, 0,
1248 ], [
1249 -35, -15, 15, -6, 4, -1, 27, 12, 5, -8,
1250 -15, -19, -37, 11, -16, 2, -20, 12, -23, -2,
1251 -22, 1, 1, 11, 5, 13, 34, 14, -8, 14,
1252 -4, -26, 0, -11, 16, 14, 29, 2, 17, 3,
1253 ], [
1254 -13, -27, 3, -24, 1, -19, 14, -3, -9, -20,
1255 -12, -33, -29, 3, -15, 20, -9, 9, -11, -3,
1256 -16, -2, 2, -2, 7, 3, 20, 0, -10, 7,
1257 7, -22, 7, 13, 33, 23, 14, 18, 7, 12,
1258 ], [
1259 -17, -8, 8, 4, -4, -10, 6, -5, 4, -5,
1260 6, 6, -20, 10, 9, -9, -4, 2, -16, -7,
1261 -1, 12, 17, 16, 39, 9, 36, 12, 2, 3,
1262 -6, 21, -1, -11, 7, -10, 11, -20, -20, -11,
1263 ], [
1264 4, -20, -3, -13, -8, -28, -6, -21, -10, -16,
1265 8, -7, -12, 3, 11, 7, 5, 0, -4, -8,
1266 4, 8, 18, 3, 41, 0, 22, -2, 0, -4,
1267 5, 25, 6, 14, 25, -1, -2, -4, -29, -2,
1268 ], [
1269 -27, -16, 21, 6, -12, -3, 9, 16, -3, 2,
1270 -1, 7, -15, 31, -7, -10, -16, -9, -27, -21,
1271 -11, -5, 16, 3, 26, 9, 24, 7, 0, -4,
1272 0, -4, 6, -11, 32, 14, 23, -6, 5, 1,
1273 ], [
1274 -5, -29, 9, -11, -15, -22, -3, 0, -18, -8,
1275 1, -6, -7, 23, -6, 6, -5, -12, -15, -21,
1276 -5, -8, 17, -9, 28, 0, 11, -6, -2, -12,
1277 11, 0, 14, 13, 49, 22, 8, 9, -4, 9,
1278 ], [
1279 -37, 12, 9, 7, 17, 11, 26, -18, 25, -12,
1280 -19, -17, -45, -14, -17, 0, -17, 30, -1, 22,
1281 10, 25, 12, 38, 18, -3, 22, -4, -3, 0,
1282 -13, 3, -10, 11, -23, -2, 10, -7, -5, -7,
1283 ], [
1284 -15, 0, -2, -10, 13, -7, 14, -35, 10, -23,
1285 -16, -31, -37, -21, -16, 17, -6, 26, 10, 21,
1286 16, 21, 13, 25, 19, -13, 8, -19, -5, -7,
1287 -1, 8, -2, 36, -5, 6, -3, 8, -15, 1,
1288 ], [
1289 -48, 4, 23, 9, 9, 17, 30, 2, 16, -3,
1290 -26, -16, -40, 6, -35, -1, -28, 17, -12, 9,
1291 0, 8, 11, 25, 5, -3, 10, -8, -6, -7,
1292 -6, -22, -1, 11, 1, 21, 22, 7, 19, 5,
1293 ], [
1294 -26, -7, 11, -8, 5, -1, 17, -14, 1, -15,
1295 -24, -30, -32, -1, -33, 16, -18, 14, 0, 8,
1296 6, 4, 12, 12, 6, -13, -2, -23, -8, -15,
1297 4, -17, 5, 36, 18, 30, 8, 22, 10, 14,
1298 ], [
1299 -30, 11, 15, 20, 0, 8, 9, -15, 15, 0,
1300 -5, 9, -23, 6, -8, -13, -13, 7, -5, 3,
1301 20, 19, 27, 31, 39, -7, 13, -11, 4, -19,
1302 -8, 25, -3, 11, -7, -2, 4, -16, -18, -9,
1303 ], [
1304 -8, -1, 3, 2, -3, -10, -3, -32, 1, -12,
1305 -2, -4, -15, -1, -7, 3, -2, 4, 6, 3,
1306 26, 15, 29, 17, 40, -17, 0, -26, 2, -27,
1307 2, 29, 4, 36, 10, 6, -9, 0, -27, 0,
1308 ], [
1309 -40, 2, 29, 22, -7, 14, 12, 5, 7, 7,
1310 -12, 9, -18, 26, -26, -14, -24, -4, -16, -9,
1311 10, 2, 26, 18, 26, -7, 1, -15, 1, -27,
1312 -2, 0, 4, 11, 17, 21, 16, -1, 7, 3,
1313 ], [
1314 -18, -9, 17, 4, -11, -3, 0, -11, -7, -4,
1315 -10, -3, -10, 18, -24, 3, -14, -7, -4, -10,
1316 16, -1, 27, 4, 27, -17, -12, -30, 0, -35,
1317 9, 3, 12, 36, 35, 30, 2, 13, -2, 11,
1318 ], [
1319 -66, -8, -23, -11, 14, 5, 17, 16, 19, 2,
1320 3, -5, -18, -17, 10, 0, -1, 23, -6, 20,
1321 -15, 18, -14, 22, 5, 10, 44, 23, 2, 26,
1322 -9, 3, -4, -14, -12, -29, -7, -16, -7, -18,
1323 ], [
1324 -44, -20, -34, -29, 10, -13, 4, 0, 4, -9,
1325 5, -19, -10, -24, 11, 17, 8, 20, 5, 19,
1326 -9, 14, -12, 9, 6, 0, 30, 9, 0, 19,
1327 2, 7, 2, 10, 5, -20, -21, -1, -17, -9,
1328 ], [
1329 -77, -16, -9, -9, 6, 11, 21, 37, 10, 10,
1330 -4, -5, -13, 3, -7, 0, -13, 11, -17, 6,
1331 -25, 1, -15, 9, -7, 9, 32, 19, 0, 18,
1332 -2, -22, 3, -15, 12, -5, 4, -2, 17, -5,
1333 ], [
1334 -55, -28, -21, -27, 2, -7, 8, 20, -4, -1,
1335 -1, -18, -5, -4, -5, 16, -2, 8, -5, 5,
1336 -19, -2, -14, -3, -6, 0, 18, 4, -2, 11,
1337 8, -18, 11, 10, 29, 3, -10, 13, 8, 3,
1338 ], [
1339 -58, -9, -16, 1, -2, 2, 0, 19, 10, 13,
1340 17, 21, 3, 3, 19, -12, 2, 0, -10, 1,
1341 -5, 12, 0, 15, 26, 5, 34, 16, 11, 7,
1342 -4, 25, 2, -14, 3, -29, -13, -25, -20, -20,
1343 ], [
1344 -36, -21, -28, -16, -6, -16, -12, 2, -4, 2,
1345 20, 7, 11, -4, 20, 4, 12, -2, 1, 0,
1346 0, 8, 2, 2, 27, -4, 21, 2, 9, 0,
1347 6, 29, 9, 10, 21, -21, -28, -10, -29, -11,
1348 ], [
1349 -69, -17, -3, 3, -10, 8, 3, 40, 1, 21,
1350 10, 21, 8, 23, 1, -13, -8, -11, -21, -11,
1351 -15, -4, 0, 2, 13, 5, 23, 12, 7, 0,
1352 1, 0, 10, -14, 28, -5, -1, -11, 5, -7,
1353 ], [
1354 -47, -30, -15, -14, -14, -9, -9, 23, -13, 10,
1355 12, 7, 16, 15, 3, 3, 1, -14, -9, -12,
1356 -9, -8, 0, -10, 14, -4, 9, -2, 5, -8,
1357 13, 3, 18, 10, 45, 3, -16, 4, -4, 0,
1358 ], [
1359 -79, 11, -15, 4, 18, 23, 20, 5, 30, 7,
1360 -7, -2, -21, -21, -8, -3, -10, 28, 4, 31,
1361 6, 25, -3, 37, 4, -7, 20, 0, 4, 4,
1362 -11, 7, -6, 8, -27, -22, -14, -12, -5, -16,
1363 ], [
1364 -57, 0, -27, -13, 14, 5, 7, -11, 15, -4,
1365 -5, -16, -13, -29, -6, 13, 0, 25, 16, 31,
1366 12, 22, -2, 23, 6, -16, 7, -14, 2, -3,
1367 0, 12, 0, 33, -9, -13, -28, 3, -14, -7,
1368 ], [
1369 -90, 3, -2, 6, 10, 29, 24, 26, 21, 15,
1370 -15, -2, -16, -1, -25, -4, -21, 16, -6, 18,
1371 -3, 8, -5, 24, -8, -7, 9, -4, 1, -3,
1372 -5, -18, 1, 7, -2, 1, -2, 1, 19, -3,
1373 ], [
1374 -67, -8, -14, -11, 7, 11, 11, 9, 7, 3,
1375 -13, -16, -8, -9, -24, 12, -10, 13, 5, 17,
1376 2, 4, -3, 10, -6, -17, -4, -19, 0, -11,
1377 6, -13, 9, 33, 14, 10, -16, 17, 10, 4,
1378 ], [
1379 -71, 10, -9, 17, 1, 20, 3, 8, 21, 18,
1380 6, 24, 0, -1, 0, -16, -6, 5, 0, 13,
1381 17, 19, 11, 29, 25, -11, 11, -6, 13, -15,
1382 -7, 29, 0, 8, -11, -22, -20, -21, -17, -18,
1383 ], [
1384 -49, -2, -21, 0, -1, 2, -9, -8, 6, 6,
1385 8, 10, 8, -9, 2, 0, 4, 2, 13, 12,
1386 23, 15, 12, 16, 26, -21, -2, -21, 11, -23,
1387 4, 33, 7, 33, 6, -13, -34, -5, -27, -10,
1388 ], [
1389 -82, 1, 4, 19, -6, 27, 6, 29, 12, 26,
1390 -1, 24, 5, 18, -17, -17, -17, -6, -10, 0,
1391 7, 2, 9, 16, 12, -11, 0, -11, 9, -23,
1392 0, 3, 8, 8, 13, 1, -8, -7, 7, -6,
1393 ], [
1394 -60, -10, -7, 1, -9, 8, -6, 13, -2, 15,
1395 1, 10, 13, 11, -15, 0, -6, -9, 1, 0,
1396 13, -1, 11, 3, 13, -21, -13, -26, 7, -31,
1397 10, 7, 16, 33, 31, 10, -22, 8, -1, 2,
1398 ], [
1399 -3, 7, -5, -5, 8, -2, 17, -9, 18, -24,
1400 -2, -19, -10, -4, 28, 17, 5, 28, -2, 7,
1401 -4, 15, 7, 8, 6, 23, 13, 21, -14, 20,
1402 -17, -18, -11, -33, -30, -11, 23, -13, -5, -9,
1403 ], [
1404 18, -4, -17, -23, 4, -20, 4, -26, 3, -36,
1405 0, -32, -2, -12, 29, 34, 16, 24, 10, 6,
1406 0, 12, 8, -4, 8, 13, 0, 6, -16, 12,
1407 -5, -13, -3, -7, -13, -3, 8, 2, -14, 0,
1408 ], [
1409 -13, 0, 8, -3, 0, 4, 21, 11, 9, -16,
1410 -10, -18, -5, 16, 10, 16, -5, 15, -13, -5,
1411 -15, -1, 6, -4, -6, 23, 2, 16, -17, 12,
1412 -10, -44, -3, -33, -6, 12, 34, 1, 20, 3,
1413 ], [
1414 8, -12, -3, -21, -3, -14, 8, -5, -4, -28,
1415 -7, -32, 2, 8, 12, 34, 4, 12, -1, -6,
1416 -9, -4, 7, -17, -4, 13, -11, 1, -19, 4,
1417 0, -39, 4, -7, 11, 21, 20, 16, 10, 11,
1418 ], [
1419 4, 6, 0, 7, -8, -4, 0, -6, 9, -13,
1420 11, 7, 11, 15, 37, 4, 9, 5, -5, -11,
1421 5, 9, 22, 1, 27, 18, 4, 14, -5, 0,
1422 -12, 3, -4, -32, -14, -12, 17, -22, -17, -11,
1423 ], [
1424 26, -6, -11, -10, -12, -23, -12, -23, -5, -24,
1425 13, -5, 19, 8, 38, 21, 20, 2, 6, -12,
1426 11, 5, 23, -11, 29, 9, -9, 0, -7, -6,
1427 -1, 7, 2, -7, 3, -3, 2, -6, -27, -3,
1428 ], [
1429 -6, -2, 14, 9, -16, 1, 3, 14, 0, -5,
1430 3, 8, 16, 36, 19, 3, -1, -6, -17, -24,
1431 -4, -7, 21, -11, 14, 18, -7, 9, -9, -7,
1432 -6, -22, 3, -33, 10, 11, 28, -7, 7, 0,
1433 ], [
1434 16, -14, 2, -8, -20, -17, -9, -2, -14, -16,
1435 6, -5, 24, 28, 21, 20, 8, -9, -4, -25,
1436 1, -11, 22, -24, 15, 8, -21, -5, -11, -14,
1437 5, -18, 11, -7, 27, 20, 14, 7, -1, 9,
1438 ], [
1439 -16, 27, 2, 10, 13, 16, 20, -20, 29, -20,
1440 -14, -16, -13, -8, 9, 13, -2, 33, 9, 19,
1441 17, 23, 17, 22, 6, 6, -9, -2, -12, -2,
1442 -20, -13, -13, -10, -45, -4, 16, -8, -2, -7,
1443 ], [
1444 5, 15, -9, -7, 9, -2, 8, -37, 14, -31,
1445 -11, -29, -5, -16, 11, 30, 7, 29, 21, 18,
1446 23, 19, 18, 9, 7, -3, -23, -17, -14, -9,
1447 -8, -9, -6, 15, -27, 4, 2, 6, -12, 1,
1448 ], [
1449 -26, 19, 15, 12, 5, 22, 24, 0, 21, -12,
1450 -21, -15, -8, 11, -7, 12, -14, 20, -2, 6,
1451 7, 6, 16, 9, -6, 5, -21, -7, -15, -10,
1452 -13, -39, -5, -10, -20, 19, 28, 5, 22, 5,
1453 ], [
1454 -4, 6, 3, -5, 1, 4, 11, -16, 6, -23,
1455 -19, -29, 0, 3, -6, 30, -3, 17, 10, 5,
1456 13, 2, 17, -3, -5, -3, -35, -21, -17, -17,
1457 -2, -35, 2, 15, -3, 28, 13, 21, 13, 13,
1458 ], [
1459 -8, 25, 8, 23, -3, 13, 3, -17, 20, -8,
1460 0, 10, 8, 11, 18, 0, 1, 10, 5, 0,
1461 28, 17, 32, 15, 26, 1, -19, -9, -3, -21,
1462 -15, 7, -6, -9, -29, -5, 10, -17, -15, -9,
1463 ], [
1464 13, 13, -3, 5, -7, -4, -9, -34, 5, -20,
1465 2, -3, 16, 3, 20, 17, 11, 7, 17, 0,
1466 34, 13, 33, 2, 28, -8, -32, -24, -5, -29,
1467 -3, 12, 0, 15, -11, 3, -3, -2, -24, -1,
1468 ], [
1469 -18, 17, 21, 25, -11, 19, 6, 3, 11, 0,
1470 -7, 11, 13, 31, 1, 0, -9, -1, -5, -12,
1471 18, 0, 31, 2, 13, 1, -30, -14, -7, -29,
1472 -9, -18, 1, -10, -4, 18, 22, -3, 10, 2,
1473 ], [
1474 3, 5, 9, 7, -15, 1, -5, -13, -2, -12,
1475 -5, -2, 21, 23, 2, 16, 0, -5, 6, -13,
1476 23, -3, 32, -10, 15, -8, -44, -28, -9, -37,
1477 2, -13, 9, 15, 12, 27, 7, 12, 0, 11,
1478 ], [
1479 -44, 6, -30, -8, 9, 10, 11, 14, 23, -5,
1480 8, -4, 14, -12, 37, 14, 12, 26, 4, 16,
1481 -8, 16, -9, 7, -6, 19, 12, 25, -5, 24,
1482 -15, -13, -8, -36, -34, -31, -1, -18, -4, -18,
1483 ], [
1484 -22, -5, -42, -26, 6, -8, -1, -2, 9, -17,
1485 10, -18, 21, -19, 39, 31, 23, 23, 16, 15,
1486 -2, 12, -7, -6, -5, 9, -1, 10, -7, 16,
1487 -4, -9, 0, -10, -17, -22, -16, -2, -14, -9,
1488 ], [
1489 -55, -1, -17, -6, 1, 16, 15, 35, 15, 2,
1490 0, -4, 19, 8, 20, 13, 1, 14, -7, 3,
1491 -18, 0, -10, -5, -19, 19, 0, 21, -8, 16,
1492 -9, -39, 0, -36, -10, -7, 9, -4, 20, -5,
1493 ], [
1494 -33, -13, -29, -24, -1, -1, 2, 18, 0, -9,
1495 3, -17, 27, 0, 21, 30, 12, 11, 5, 2,
1496 -12, -4, -9, -19, -18, 9, -13, 6, -11, 8,
1497 2, -35, 8, -10, 7, 1, -4, 11, 10, 2,
1498 ], [
1499 -36, 5, -24, 4, -7, 7, -6, 17, 14, 5,
1500 22, 22, 35, 8, 46, 1, 17, 3, 0, -2,
1501 2, 10, 5, 0, 14, 15, 2, 18, 2, 4,
1502 -11, 7, -1, -36, -18, -32, -7, -27, -17, -20,
1503 ], [
1504 -14, -7, -36, -13, -10, -10, -18, 0, 0, -5,
1505 25, 8, 43, 0, 48, 18, 27, 0, 12, -3,
1506 7, 6, 7, -13, 15, 5, -11, 3, 0, -2,
1507 0, 12, 6, -10, 0, -23, -22, -11, -26, -12,
1508 ], [
1509 -47, -3, -11, 6, -15, 13, -2, 38, 6, 13,
1510 15, 22, 40, 28, 28, 0, 5, -8, -10, -15,
1511 -7, -7, 4, -13, 1, 14, -9, 14, 0, -2,
1512 -4, -18, 7, -36, 6, -8, 3, -13, 7, -8,
1513 ], [
1514 -25, -15, -22, -11, -18, -4, -15, 22, -8, 2,
1515 17, 9, 48, 20, 30, 17, 16, -11, 1, -16,
1516 -2, -10, 5, -26, 2, 4, -22, 0, -2, -10,
1517 6, -13, 14, -10, 23, 0, -10, 2, -1, 0,
1518 ], [
1519 -57, 26, -22, 7, 14, 28, 14, 3, 35, 0,
1520 -3, -1, 11, -16, 18, 10, 4, 31, 15, 28,
1521 14, 23, 1, 21, -7, 2, -11, 1, -3, 1,
1522 -18, -9, -10, -13, -49, -24, -8, -14, -2, -16,
1523 ], [
1524 -35, 14, -34, -10, 10, 10, 1, -12, 20, -12,
1525 0, -15, 18, -24, 20, 27, 14, 28, 27, 27,
1526 20, 19, 2, 8, -5, -7, -25, -13, -5, -5,
1527 -6, -5, -2, 12, -31, -15, -23, 1, -12, -8,
1528 ], [
1529 -68, 18, -9, 9, 6, 35, 18, 25, 26, 7,
1530 -10, -1, 16, 3, 1, 9, -6, 19, 4, 15,
1531 4, 6, 0, 8, -20, 2, -23, -2, -7, -5,
1532 -12, -35, -1, -13, -24, 0, 3, 0, 22, -4,
1533 ], [
1534 -46, 6, -21, -8, 2, 16, 5, 8, 11, -4,
1535 -8, -15, 24, -4, 2, 26, 3, 16, 16, 14,
1536 9, 2, 1, -4, -19, -7, -36, -17, -9, -13,
1537 0, -31, 5, 12, -7, 8, -11, 15, 13, 4,
1538 ], [
1539 -49, 24, -16, 20, -2, 26, -2, 7, 25, 10,
1540 11, 25, 32, 3, 27, -2, 8, 8, 11, 9,
1541 24, 17, 16, 14, 13, -2, -20, -5, 4, -17,
1542 -14, 12, -3, -13, -33, -25, -14, -23, -15, -19,
1543 ], [
1544 -27, 12, -28, 2, -6, 7, -15, -9, 11, -1,
1545 13, 11, 40, -4, 29, 14, 19, 5, 23, 8,
1546 30, 13, 17, 0, 14, -12, -34, -20, 2, -25,
1547 -2, 16, 4, 12, -15, -16, -29, -7, -24, -10,
1548 ], [
1549 -60, 16, -3, 22, -10, 32, 0, 28, 17, 18,
1550 3, 25, 37, 23, 10, -3, -2, -3, 0, -3,
1551 14, 0, 14, 1, 0, -2, -32, -9, 1, -25,
1552 -7, -13, 5, -13, -8, -1, -2, -8, 10, -6,
1553 ], [
1554 -38, 4, -15, 4, -14, 13, -12, 11, 2, 6,
1555 6, 11, 45, 16, 11, 13, 7, -6, 12, -4,
1556 20, -3, 16, -12, 1, -12, -46, -24, 0, -33,
1557 3, -9, 12, 12, 8, 7, -17, 6, 0, 2
1558 ]
1559 ];
1560 const RA144_CODEBOOK2: [u16; 128] = [
1561 12174, 13380, 13879, 13832, 13170, 13227, 13204, 12053,
1562 12410, 13988, 14348, 14631, 13100, 13415, 13224, 12268,
1563 11982, 13825, 13499, 14210, 13877, 14788, 13811, 13109,
1564 11449, 13275, 12833, 13717, 12728, 13696, 12759, 12405,
1565 10230, 12185, 11628, 13161, 11762, 13458, 12312, 12818,
1566 10443, 12773, 12011, 14020, 11818, 13825, 12453, 13226,
1567 10446, 13162, 11881, 14300, 12859, 16288, 13490, 15053,
1568 10155, 12820, 11519, 13973, 12041, 15081, 12635, 14198,
1569 14198, 12635, 15081, 12041, 13973, 11519, 12820, 10155,
1570 15053, 13490, 16288, 12859, 14300, 11881, 13162, 10446,
1571 13226, 12453, 13825, 11818, 14020, 12011, 12773, 10443,
1572 12818, 12312, 13458, 11762, 13161, 11628, 12185, 10230,
1573 12405, 12759, 13696, 12728, 13717, 12833, 13275, 11449,
1574 13109, 13811, 14788, 13877, 14210, 13499, 13825, 11982,
1575 12268, 13224, 13415, 13100, 14631, 14348, 13988, 12410,
1576 12053, 13204, 13227, 13170, 13832, 13879, 13380, 12174,
1577 ];
1578 const RA144_VECTORS2: [[i8; BLOCKSIZE]; 128] = [
1579 [
1580 73, -32, -60, -15, -26, 59, 2, -33, 30, -10,
1581 -3, -17, 8, 30, -1, -26, -4, -22, 10, 16,
1582 -36, -5, -11, 56, 37, 6, -10, -5, -13, -3,
1583 6, -5, 11, 4, -19, -5, -16, 41, 24, 13,
1584 ], [
1585 4, -11, -37, 23, -5, 46, -2, -29, -5, -39,
1586 -21, -9, 0, 49, 12, -9, -16, -26, 22, 15,
1587 -45, -20, -5, 40, 22, 17, -26, 31, -14, 2,
1588 -14, 10, 30, 20, -27, -9, -39, 39, 18, 5,
1589 ], [
1590 34, -25, -48, -28, -11, 34, -2, -41, 9, -7,
1591 -17, 21, 20, 24, -17, -33, 0, -24, 10, 42,
1592 3, -5, 10, 42, 11, 8, -3, 3, 16, 9,
1593 22, -2, 0, -33, -10, 18, 7, 58, 10, 28,
1594 ], [
1595 -34, -4, -25, 10, 9, 21, -7, -36, -26, -36,
1596 -35, 28, 12, 42, -3, -16, -12, -28, 21, 42,
1597 -5, -21, 16, 26, -4, 19, -19, 39, 15, 15,
1598 1, 13, 19, -17, -17, 14, -15, 55, 4, 19,
1599 ], [
1600 28, -20, -51, -14, -6, 7, 0, -26, 27, -4,
1601 18, -40, -6, 16, -1, -15, 0, -55, -5, -16,
1602 -19, 14, -3, 49, 14, 1, -22, -30, -12, 0,
1603 24, 15, 9, -17, -45, -29, 4, 28, 51, 35,
1604 ], [
1605 -40, 0, -28, 24, 14, -5, -4, -21, -7, -33,
1606 0, -32, -15, 35, 12, 1, -11, -58, 5, -16,
1607 -28, 0, 1, 33, 0, 11, -39, 5, -14, 6,
1608 3, 31, 28, -1, -53, -33, -19, 25, 46, 26,
1609 ], [
1610 -11, -14, -39, -27, 9, -17, -4, -33, 6, 0,
1611 4, -1, 5, 10, -17, -22, 5, -57, -5, 9,
1612 20, 13, 18, 35, -11, 3, -16, -22, 17, 13,
1613 40, 19, -1, -55, -35, -5, 27, 44, 37, 49,
1614 ], [
1615 -80, 6, -16, 11, 30, -30, -9, -28, -28, -29,
1616 -13, 6, -2, 28, -3, -5, -7, -60, 5, 9,
1617 11, -1, 24, 19, -27, 13, -32, 13, 15, 19,
1618 19, 35, 17, -39, -43, -9, 4, 42, 32, 41,
1619 ], [
1620 78, -21, -43, 4, -38, 17, 17, -5, 55, 24,
1621 -15, -36, 14, 4, 24, -24, 12, 5, 17, 31,
1622 -54, -5, -2, 27, 43, -12, 2, 9, -9, -15,
1623 22, -3, 28, 21, -20, 3, 20, 28, 9, -5,
1624 ], [
1625 9, -1, -20, 43, -17, 3, 12, 0, 20, -4,
1626 -33, -29, 6, 22, 38, -7, 0, 1, 29, 30,
1627 -63, -21, 3, 11, 27, -1, -14, 45, -10, -9,
1628 1, 12, 47, 37, -28, 0, -2, 26, 4, -13,
1629 ], [
1630 39, -14, -30, -8, -22, -8, 12, -12, 34, 27,
1631 -29, 2, 26, -2, 8, -31, 16, 3, 17, 57,
1632 -14, -6, 19, 13, 16, -10, 8, 17, 20, -2,
1633 38, 0, 17, -16, -11, 27, 44, 45, -4, 8,
1634 ], [
1635 -29, 5, -7, 30, -1, -21, 7, -7, 0, 0,
1636 -47, 9, 18, 15, 22, -14, 4, 0, 28, 57,
1637 -23, -21, 25, -2, 1, 0, -7, 53, 19, 3,
1638 17, 15, 36, 0, -19, 24, 21, 43, -9, 0,
1639 ], [
1640 33, -10, -34, 5, -17, -35, 15, 1, 53, 30,
1641 6, -59, 0, -10, 24, -13, 17, -27, 1, -1,
1642 -37, 13, 4, 20, 20, -18, -10, -16, -8, -11,
1643 39, 18, 26, 0, -46, -20, 41, 15, 37, 15,
1644 ], [
1645 -35, 10, -11, 44, 3, -48, 10, 6, 17, 2,
1646 -11, -51, -8, 8, 38, 3, 4, -31, 12, -2,
1647 -46, -1, 10, 4, 5, -7, -26, 19, -10, -5,
1648 18, 34, 45, 15, -54, -24, 18, 13, 31, 7,
1649 ], [
1650 -5, -3, -21, -7, -2, -60, 10, -5, 32, 34,
1651 -7, -20, 11, -16, 8, -20, 21, -29, 1, 24,
1652 2, 13, 27, 6, -5, -15, -3, -8, 21, 1,
1653 55, 21, 15, -38, -37, 3, 65, 32, 23, 30,
1654 ], [
1655 -74, 17, 0, 31, 18, -73, 5, 0, -3, 5,
1656 -25, -12, 3, 1, 22, -3, 9, -33, 12, 24,
1657 -6, -2, 33, -9, -21, -5, -20, 27, 19, 7,
1658 34, 37, 34, -22, -44, 0, 41, 29, 17, 21,
1659 ], [
1660 76, -35, -31, -28, -49, 43, -40, 0, 29, -14,
1661 8, 5, 10, 18, -26, -46, 0, 7, 6, 3,
1662 -25, -7, -2, 40, 28, 14, 18, -3, -27, -28,
1663 -8, -45, -13, 34, -13, -27, -15, 31, 12, 3,
1664 ], [
1665 7, -15, -9, 9, -28, 29, -45, 5, -6, -43,
1666 -9, 12, 2, 36, -12, -30, -11, 3, 17, 3,
1667 -34, -22, 3, 24, 12, 24, 2, 32, -28, -22,
1668 -29, -29, 5, 50, -21, -31, -38, 29, 7, -5,
1669 ], [
1670 36, -29, -19, -41, -34, 18, -45, -6, 8, -10,
1671 -5, 43, 23, 11, -42, -53, 5, 5, 6, 30,
1672 14, -8, 20, 26, 1, 16, 25, 4, 3, -15,
1673 7, -41, -23, -3, -4, -3, 8, 48, -1, 17,
1674 ], [
1675 -32, -8, 3, -2, -13, 4, -50, -1, -27, -39,
1676 -23, 51, 15, 30, -27, -37, -7, 1, 17, 29,
1677 5, -23, 25, 10, -14, 26, 8, 41, 1, -9,
1678 -13, -26, -5, 12, -12, -7, -14, 45, -6, 9,
1679 ], [
1680 31, -24, -23, -27, -29, -9, -43, 8, 26, -7,
1681 30, -17, -4, 3, -26, -35, 5, -24, -10, -28,
1682 -9, 12, 5, 33, 5, 8, 5, -29, -26, -24,
1683 9, -23, -14, 12, -39, -52, 5, 18, 39, 24,
1684 ], [
1685 -37, -3, 0, 10, -7, -22, -48, 12, -8, -36,
1686 12, -9, -12, 22, -12, -19, -6, -28, 0, -29,
1687 -18, -3, 11, 17, -10, 18, -10, 7, -27, -18,
1688 -11, -7, 3, 28, -47, -55, -18, 15, 34, 16,
1689 ], [
1690 -8, -17, -10, -40, -13, -34, -47, 0, 5, -4,
1691 16, 21, 8, -2, -42, -43, 10, -26, -10, -2,
1692 31, 11, 27, 19, -21, 10, 12, -20, 3, -11,
1693 25, -20, -25, -25, -29, -28, 28, 34, 25, 38,
1694 ], [
1695 -77, 2, 11, -1, 7, -47, -52, 5, -29, -33,
1696 -1, 28, 0, 15, -28, -26, -2, -30, 0, -2,
1697 22, -4, 33, 3, -36, 21, -3, 15, 2, -5,
1698 4, -4, -6, -9, -37, -31, 5, 32, 20, 30,
1699 ], [
1700 81, -25, -14, -8, -61, 0, -25, 28, 54, 20,
1701 -3, -14, 17, -8, 0, -44, 16, 35, 13, 18,
1702 -43, -7, 6, 11, 33, -4, 30, 11, -22, -40,
1703 6, -43, 3, 50, -14, -18, 22, 18, -1, -16,
1704 ], [
1705 12, -4, 8, 29, -39, -12, -30, 33, 19, -8,
1706 -21, -6, 8, 9, 13, -28, 4, 31, 24, 18,
1707 -52, -23, 12, -4, 18, 5, 14, 47, -24, -34,
1708 -14, -27, 22, 66, -22, -22, -1, 16, -6, -24,
1709 ], [
1710 41, -18, -2, -21, -45, -24, -30, 21, 33, 24,
1711 -17, 24, 29, -15, -16, -51, 21, 33, 13, 45,
1712 -3, -8, 28, -2, 7, -2, 37, 19, 7, -27,
1713 22, -39, -7, 12, -5, 5, 45, 35, -15, -1,
1714 ], [
1715 -27, 1, 20, 17, -24, -38, -35, 26, -1, -4,
1716 -35, 32, 21, 3, -2, -35, 8, 29, 24, 44,
1717 -12, -24, 34, -18, -8, 7, 21, 55, 5, -21,
1718 2, -23, 11, 28, -13, 1, 22, 33, -21, -10,
1719 ], [
1720 36, -13, -5, -7, -40, -51, -28, 36, 52, 27,
1721 18, -36, 2, -22, 0, -33, 21, 2, -3, -13,
1722 -26, 11, 14, 4, 10, -10, 18, -14, -22, -36,
1723 24, -21, 1, 28, -40, -42, 42, 5, 25, 5,
1724 ], [
1725 -32, 6, 17, 31, -19, -65, -33, 41, 16, -1,
1726 0, -29, -6, -4, 13, -17, 9, -1, 8, -14,
1727 -35, -3, 19, -11, -4, 0, 1, 21, -23, -30,
1728 3, -5, 20, 44, -48, -46, 19, 3, 20, -3,
1729 ], [
1730 -3, -7, 6, -20, -25, -77, -32, 29, 31, 30,
1731 4, 2, 14, -29, -16, -40, 26, 0, -3, 12,
1732 13, 10, 36, -9, -15, -8, 24, -6, 7, -22,
1733 40, -17, -8, -9, -31, -18, 66, 22, 11, 19,
1734 ], [
1735 -72, 13, 29, 18, -4, -90, -37, 34, -4, 1,
1736 -13, 9, 6, -11, -2, -24, 13, -3, 7, 11,
1737 4, -4, 42, -25, -31, 1, 8, 29, 6, -17,
1738 19, -2, 10, 6, -38, -22, 42, 19, 6, 11,
1739 ], [
1740 116, -20, -68, -30, -28, 83, 28, -18, 32, -22,
1741 -13, -21, 5, 28, 5, -7, -24, -8, -22, 17,
1742 -23, 30, -25, 45, 15, -9, -11, -18, 22, -10,
1743 4, -2, 19, -12, 23, 3, -43, 2, 12, -4,
1744 ], [
1745 47, 0, -45, 7, -7, 69, 23, -13, -2, -51,
1746 -32, -14, -3, 47, 19, 8, -37, -11, -10, 16,
1747 -32, 15, -19, 29, 0, 1, -28, 18, 20, -4,
1748 -16, 13, 38, 3, 15, 0, -66, 0, 7, -13,
1749 ], [
1750 77, -13, -56, -43, -13, 57, 23, -26, 11, -19,
1751 -27, 16, 17, 22, -10, -15, -19, -10, -22, 43,
1752 16, 30, -2, 31, -11, -6, -5, -9, 52, 2,
1753 20, 0, 8, -50, 33, 27, -19, 19, -1, 9,
1754 ], [
1755 8, 6, -33, -4, 7, 44, 18, -21, -23, -48,
1756 -46, 24, 9, 40, 3, 1, -32, -13, -11, 43,
1757 7, 14, 3, 15, -26, 3, -21, 26, 50, 8,
1758 0, 16, 27, -34, 25, 23, -43, 17, -6, 1,
1759 ], [
1760 71, -9, -59, -29, -8, 30, 26, -11, 30, -16,
1761 8, -44, -9, 14, 5, 2, -19, -40, -38, -15,
1762 -7, 50, -17, 38, -7, -14, -24, -43, 22, -6,
1763 22, 19, 17, -34, -2, -20, -23, -10, 39, 16,
1764 ], [
1765 2, 11, -36, 9, 13, 17, 21, -6, -5, -45,
1766 -10, -36, -18, 33, 19, 19, -31, -44, -27, -15,
1767 -16, 34, -11, 22, -22, -4, -40, -7, 21, 0,
1768 1, 35, 36, -18, -10, -24, -46, -12, 34, 8,
1769 ], [
1770 32, -2, -47, -42, 7, 5, 21, -18, 9, -12,
1771 -5, -5, 2, 8, -10, -4, -14, -42, -38, 10,
1772 33, 49, 5, 24, -33, -12, -17, -35, 52, 6,
1773 38, 22, 7, -72, 7, 3, 0, 6, 25, 30,
1774 ], [
1775 -36, 18, -24, -3, 28, -7, 16, -13, -26, -41,
1776 -24, 1, -5, 26, 3, 12, -27, -46, -27, 10,
1777 24, 34, 10, 8, -49, -2, -34, 0, 51, 12,
1778 17, 38, 25, -56, 0, 0, -22, 3, 20, 22,
1779 ], [
1780 121, -9, -50, -10, -40, 40, 43, 9, 58, 12,
1781 -25, -41, 11, 2, 31, -5, -8, 19, -15, 32,
1782 -41, 30, -16, 16, 20, -28, 0, -3, 26, -22,
1783 19, 0, 36, 4, 22, 12, -6, -9, -1, -24,
1784 ], [
1785 52, 10, -27, 27, -18, 26, 38, 14, 23, -16,
1786 -44, -33, 3, 20, 45, 10, -20, 15, -3, 31,
1787 -50, 14, -10, 0, 5, -17, -15, 32, 24, -16,
1788 -1, 15, 55, 20, 14, 8, -29, -12, -7, -32,
1789 ], [
1790 82, -3, -38, -23, -24, 15, 38, 2, 37, 15,
1791 -39, -2, 23, -4, 15, -12, -3, 17, -15, 58,
1792 -1, 29, 6, 2, -5, -26, 7, 4, 56, -9,
1793 35, 3, 25, -33, 32, 36, 17, 7, -15, -9,
1794 ], [
1795 13, 17, -15, 15, -3, 1, 33, 7, 1, -12,
1796 -58, 5, 15, 13, 29, 3, -16, 13, -4, 57,
1797 -10, 13, 11, -13, -21, -15, -9, 40, 55, -3,
1798 14, 19, 44, -17, 24, 32, -5, 4, -21, -18,
1799 ], [
1800 76, 1, -41, -9, -19, -12, 41, 17, 55, 18,
1801 -3, -63, -3, -12, 30, 5, -3, -12, -31, 0,
1802 -24, 49, -8, 9, -1, -33, -12, -29, 27, -18,
1803 37, 21, 34, -17, -3, -11, 14, -23, 25, -2,
1804 ], [
1805 7, 22, -18, 29, 1, -25, 36, 21, 20, -9,
1806 -22, -56, -11, 6, 45, 21, -15, -16, -20, -1,
1807 -33, 34, -2, -6, -17, -23, -28, 6, 25, -12,
1808 16, 37, 53, -1, -11, -15, -8, -25, 20, -11,
1809 ], [
1810 37, 8, -29, -22, -4, -37, 36, 9, 34, 22,
1811 -17, -24, 8, -18, 15, -2, 1, -14, -31, 25,
1812 15, 48, 13, -4, -28, -31, -5, -21, 57, -4,
1813 53, 24, 23, -55, 6, 12, 37, -6, 11, 11,
1814 ], [
1815 -31, 28, -6, 16, 16, -50, 31, 14, 0, -6,
1816 -36, -17, 0, 0, 29, 14, -11, -18, -20, 25,
1817 6, 33, 19, -20, -43, -21, -21, 14, 55, 0,
1818 32, 40, 42, -39, -1, 8, 14, -8, 6, 3,
1819 ], [
1820 119, -24, -39, -44, -51, 66, -14, 15, 31, -26,
1821 -1, 0, 7, 16, -19, -28, -19, 22, -26, 4,
1822 -13, 28, -16, 29, 5, -1, 16, -16, 8, -35,
1823 -10, -42, -4, 17, 29, -19, -42, -7, 0, -15,
1824 ], [
1825 50, -3, -16, -5, -30, 53, -19, 20, -3, -55,
1826 -19, 8, 0, 34, -5, -11, -32, 18, -15, 4,
1827 -22, 13, -10, 13, -9, 8, 0, 19, 7, -29,
1828 -31, -26, 13, 33, 21, -22, -65, -9, -4, -23,
1829 ], [
1830 79, -17, -27, -56, -36, 41, -19, 8, 10, -22,
1831 -15, 39, 20, 9, -35, -35, -15, 20, -26, 31,
1832 26, 27, 6, 15, -20, 0, 23, -8, 38, -22,
1833 5, -38, -15, -20, 39, 4, -18, 9, -13, -1,
1834 ], [
1835 10, 3, -4, -18, -15, 27, -24, 13, -24, -51,
1836 -34, 47, 12, 28, -21, -19, -27, 16, -15, 30,
1837 17, 12, 12, 0, -36, 10, 7, 27, 37, -16,
1838 -15, -22, 3, -4, 31, 1, -42, 7, -18, -9,
1839 ], [
1840 74, -12, -30, -42, -30, 14, -16, 23, 29, -19,
1841 20, -21, -7, 1, -19, -17, -14, -10, -43, -27,
1842 3, 48, -8, 22, -16, -7, 4, -42, 9, -31,
1843 6, -20, -6, -4, 3, -43, -22, -20, 28, 5,
1844 ], [
1845 5, 7, -7, -4, -9, 0, -21, 28, -6, -48,
1846 2, -14, -15, 20, -5, 0, -27, -14, -32, -28,
1847 -5, 32, -2, 6, -32, 3, -12, -5, 8, -25,
1848 -14, -4, 12, 11, -4, -47, -45, -22, 22, -2,
1849 ], [
1850 34, -6, -18, -55, -15, -11, -21, 16, 8, -16,
1851 6, 16, 5, -4, -35, -24, -10, -12, -43, -1,
1852 43, 47, 14, 8, -43, -5, 10, -34, 39, -18,
1853 22, -16, -17, -42, 13, -19, 1, -3, 14, 20,
1854 ], [
1855 -34, 14, 4, -17, 5, -24, -26, 20, -27, -45,
1856 -12, 24, -2, 13, -21, -8, -22, -16, -32, -2,
1857 34, 31, 20, -7, -58, 5, -5, 2, 38, -12,
1858 2, -1, 1, -26, 5, -23, -21, -6, 8, 11,
1859 ], [
1860 124, -13, -21, -23, -62, 23, 0, 43, 57, 8,
1861 -13, -18, 14, -10, 6, -26, -3, 49, -19, 19,
1862 -31, 27, -7, 0, 11, -20, 29, -1, 12, -47,
1863 4, -39, 11, 34, 28, -9, -5, -19, -13, -34,
1864 ], [
1865 55, 6, 1, 14, -41, 10, -4, 48, 22, -20,
1866 -31, -10, 5, 7, 20, -9, -16, 45, -8, 19,
1867 -40, 12, -1, -15, -4, -10, 12, 34, 11, -41,
1868 -16, -24, 30, 49, 20, -13, -28, -22, -18, -43,
1869 ], [
1870 84, -6, -9, -36, -47, -1, -4, 36, 36, 12,
1871 -27, 20, 26, -17, -9, -33, 1, 47, -19, 46,
1872 9, 27, 15, -13, -15, -18, 35, 6, 42, -33,
1873 20, -36, 1, -4, 38, 14, 18, -2, -27, -20,
1874 ], [
1875 15, 13, 13, 1, -26, -14, -9, 41, 1, -16,
1876 -46, 27, 18, 1, 4, -16, -11, 43, -8, 45,
1877 0, 11, 21, -29, -30, -8, 19, 42, 41, -28,
1878 0, -20, 20, 11, 30, 10, -4, -5, -32, -28,
1879 ], [
1880 79, -2, -12, -22, -42, -28, -1, 51, 54, 15,
1881 8, -41, 0, -24, 6, -15, 1, 17, -36, -12,
1882 -14, 47, 0, -6, -11, -26, 16, -27, 13, -43,
1883 22, -18, 10, 12, 2, -34, 15, -33, 13, -13,
1884 ], [
1885 10, 18, 10, 15, -21, -41, -6, 56, 19, -13,
1886 -9, -33, -9, -6, 20, 1, -11, 13, -24, -13,
1887 -23, 32, 6, -22, -26, -15, 0, 8, 12, -37,
1888 1, -2, 28, 27, -5, -37, -7, -35, 8, -21,
1889 ], [
1890 39, 4, 0, -35, -27, -53, -6, 44, 33, 18,
1891 -5, -2, 11, -31, -9, -22, 6, 15, -36, 13,
1892 25, 46, 23, -20, -37, -24, 23, -19, 43, -29,
1893 38, -14, 0, -26, 12, -10, 38, -16, 0, 0,
1894 ], [
1895 -29, 25, 22, 2, -6, -67, -11, 49, -1, -10,
1896 -24, 5, 3, -13, 4, -5, -6, 11, -25, 12,
1897 16, 31, 28, -36, -53, -13, 6, 16, 42, -24,
1898 17, 1, 18, -10, 4, -13, 15, -18, -5, -7,
1899 ], [
1900 29, -25, -22, -2, 6, 67, 11, -49, 1, 10,
1901 24, -5, -3, 13, -4, 5, 6, -11, 25, -12,
1902 -16, -31, -28, 36, 53, 13, -6, -16, -42, 24,
1903 -17, -1, -18, 10, -4, 13, -15, 18, 5, 7,
1904 ], [
1905 -39, -4, 0, 35, 27, 53, 6, -44, -33, -18,
1906 5, 2, -11, 31, 9, 22, -6, -15, 36, -13,
1907 -25, -46, -23, 20, 37, 24, -23, 19, -43, 29,
1908 -38, 14, 0, 26, -12, 10, -38, 16, 0, 0,
1909 ], [
1910 -10, -18, -10, -15, 21, 41, 6, -56, -19, 13,
1911 9, 33, 9, 6, -20, -1, 11, -13, 24, 13,
1912 23, -32, -6, 22, 26, 15, 0, -8, -12, 37,
1913 -1, 2, -28, -27, 5, 37, 7, 35, -8, 21,
1914 ], [
1915 -79, 2, 12, 22, 42, 28, 1, -51, -54, -15,
1916 -8, 41, 0, 24, -6, 15, -1, -17, 36, 12,
1917 14, -47, 0, 6, 11, 26, -16, 27, -13, 43,
1918 -22, 18, -10, -12, -2, 34, -15, 33, -13, 13,
1919 ], [
1920 -15, -13, -13, -1, 26, 14, 9, -41, -1, 16,
1921 46, -27, -18, -1, -4, 16, 11, -43, 8, -45,
1922 0, -11, -21, 29, 30, 8, -19, -42, -41, 28,
1923 0, 20, -20, -11, -30, -10, 4, 5, 32, 28,
1924 ], [
1925 -84, 6, 9, 36, 47, 1, 4, -36, -36, -12,
1926 27, -20, -26, 17, 9, 33, -1, -47, 19, -46,
1927 -9, -27, -15, 13, 15, 18, -35, -6, -42, 33,
1928 -20, 36, -1, 4, -38, -14, -18, 2, 27, 20,
1929 ], [
1930 -55, -6, -1, -14, 41, -10, 4, -48, -22, 20,
1931 31, 10, -5, -7, -20, 9, 16, -45, 8, -19,
1932 40, -12, 1, 15, 4, 10, -12, -34, -11, 41,
1933 16, 24, -30, -49, -20, 13, 28, 22, 18, 43,
1934 ], [
1935 -124, 13, 21, 23, 62, -23, 0, -43, -57, -8,
1936 13, 18, -14, 10, -6, 26, 3, -49, 19, -19,
1937 31, -27, 7, 0, -11, 20, -29, 1, -12, 47,
1938 -4, 39, -11, -34, -28, 9, 5, 19, 13, 34,
1939 ], [
1940 34, -14, -4, 17, -5, 24, 26, -20, 27, 45,
1941 12, -24, 2, -13, 21, 8, 22, 16, 32, 2,
1942 -34, -31, -20, 7, 58, -5, 5, -2, -38, 12,
1943 -2, 1, -1, 26, -5, 23, 21, 6, -8, -11,
1944 ], [
1945 -34, 6, 18, 55, 15, 11, 21, -16, -8, 16,
1946 -6, -16, -5, 4, 35, 24, 10, 12, 43, 1,
1947 -43, -47, -14, -8, 43, 5, -10, 34, -39, 18,
1948 -22, 16, 17, 42, -13, 19, -1, 3, -14, -20,
1949 ], [
1950 -5, -7, 7, 4, 9, 0, 21, -28, 6, 48,
1951 -2, 14, 15, -20, 5, 0, 27, 14, 32, 28,
1952 5, -32, 2, -6, 32, -3, 12, 5, -8, 25,
1953 14, 4, -12, -11, 4, 47, 45, 22, -22, 2,
1954 ], [
1955 -74, 12, 30, 42, 30, -14, 16, -23, -29, 19,
1956 -20, 21, 7, -1, 19, 17, 14, 10, 43, 27,
1957 -3, -48, 8, -22, 16, 7, -4, 42, -9, 31,
1958 -6, 20, 6, 4, -3, 43, 22, 20, -28, -5,
1959 ], [
1960 -10, -3, 4, 18, 15, -27, 24, -13, 24, 51,
1961 34, -47, -12, -28, 21, 19, 27, -16, 15, -30,
1962 -17, -12, -12, 0, 36, -10, -7, -27, -37, 16,
1963 15, 22, -3, 4, -31, -1, 42, -7, 18, 9,
1964 ], [
1965 -79, 17, 27, 56, 36, -41, 19, -8, -10, 22,
1966 15, -39, -20, -9, 35, 35, 15, -20, 26, -31,
1967 -26, -27, -6, -15, 20, 0, -23, 8, -38, 22,
1968 -5, 38, 15, 20, -39, -4, 18, -9, 13, 1,
1969 ], [
1970 -50, 3, 16, 5, 30, -53, 19, -20, 3, 55,
1971 19, -8, 0, -34, 5, 11, 32, -18, 15, -4,
1972 22, -13, 10, -13, 9, -8, 0, -19, -7, 29,
1973 31, 26, -13, -33, -21, 22, 65, 9, 4, 23,
1974 ], [
1975 -119, 24, 39, 44, 51, -66, 14, -15, -31, 26,
1976 1, 0, -7, -16, 19, 28, 19, -22, 26, -4,
1977 13, -28, 16, -29, -5, 1, -16, 16, -8, 35,
1978 10, 42, 4, -17, -29, 19, 42, 7, 0, 15,
1979 ], [
1980 31, -28, 6, -16, -16, 50, -31, -14, 0, 6,
1981 36, 17, 0, 0, -29, -14, 11, 18, 20, -25,
1982 -6, -33, -19, 20, 43, 21, 21, -14, -55, 0,
1983 -32, -40, -42, 39, 1, -8, -14, 8, -6, -3,
1984 ], [
1985 -37, -8, 29, 22, 4, 37, -36, -9, -34, -22,
1986 17, 24, -8, 18, -15, 2, -1, 14, 31, -25,
1987 -15, -48, -13, 4, 28, 31, 5, 21, -57, 4,
1988 -53, -24, -23, 55, -6, -12, -37, 6, -11, -11,
1989 ], [
1990 -7, -22, 18, -29, -1, 25, -36, -21, -20, 9,
1991 22, 56, 11, -6, -45, -21, 15, 16, 20, 1,
1992 33, -34, 2, 6, 17, 23, 28, -6, -25, 12,
1993 -16, -37, -53, 1, 11, 15, 8, 25, -20, 11,
1994 ], [
1995 -76, -1, 41, 9, 19, 12, -41, -17, -55, -18,
1996 3, 63, 3, 12, -30, -5, 3, 12, 31, 0,
1997 24, -49, 8, -9, 1, 33, 12, 29, -27, 18,
1998 -37, -21, -34, 17, 3, 11, -14, 23, -25, 2,
1999 ], [
2000 -13, -17, 15, -15, 3, -1, -33, -7, -1, 12,
2001 58, -5, -15, -13, -29, -3, 16, -13, 4, -57,
2002 10, -13, -11, 13, 21, 15, 9, -40, -55, 3,
2003 -14, -19, -44, 17, -24, -32, 5, -4, 21, 18,
2004 ], [
2005 -82, 3, 38, 23, 24, -15, -38, -2, -37, -15,
2006 39, 2, -23, 4, -15, 12, 3, -17, 15, -58,
2007 1, -29, -6, -2, 5, 26, -7, -4, -56, 9,
2008 -35, -3, -25, 33, -32, -36, -17, -7, 15, 9,
2009 ], [
2010 -52, -10, 27, -27, 18, -26, -38, -14, -23, 16,
2011 44, 33, -3, -20, -45, -10, 20, -15, 3, -31,
2012 50, -14, 10, 0, -5, 17, 15, -32, -24, 16,
2013 1, -15, -55, -20, -14, -8, 29, 12, 7, 32,
2014 ], [
2015 -121, 9, 50, 10, 40, -40, -43, -9, -58, -12,
2016 25, 41, -11, -2, -31, 5, 8, -19, 15, -32,
2017 41, -30, 16, -16, -20, 28, 0, 3, -26, 22,
2018 -19, 0, -36, -4, -22, -12, 6, 9, 1, 24,
2019 ], [
2020 36, -18, 24, 3, -28, 7, -16, 13, 26, 41,
2021 24, -1, 5, -26, -3, -12, 27, 46, 27, -10,
2022 -24, -34, -10, -8, 49, 2, 34, 0, -51, -12,
2023 -17, -38, -25, 56, 0, 0, 22, -3, -20, -22,
2024 ], [
2025 -32, 2, 47, 42, -7, -5, -21, 18, -9, 12,
2026 5, 5, -2, -8, 10, 4, 14, 42, 38, -10,
2027 -33, -49, -5, -24, 33, 12, 17, 35, -52, -6,
2028 -38, -22, -7, 72, -7, -3, 0, -6, -25, -30,
2029 ], [
2030 -2, -11, 36, -9, -13, -17, -21, 6, 5, 45,
2031 10, 36, 18, -33, -19, -19, 31, 44, 27, 15,
2032 16, -34, 11, -22, 22, 4, 40, 7, -21, 0,
2033 -1, -35, -36, 18, 10, 24, 46, 12, -34, -8,
2034 ], [
2035 -71, 9, 59, 29, 8, -30, -26, 11, -30, 16,
2036 -8, 44, 9, -14, -5, -2, 19, 40, 38, 15,
2037 7, -50, 17, -38, 7, 14, 24, 43, -22, 6,
2038 -22, -19, -17, 34, 2, 20, 23, 10, -39, -16,
2039 ], [
2040 -8, -6, 33, 4, -7, -44, -18, 21, 23, 48,
2041 46, -24, -9, -40, -3, -1, 32, 13, 11, -43,
2042 -7, -14, -3, -15, 26, -3, 21, -26, -50, -8,
2043 0, -16, -27, 34, -25, -23, 43, -17, 6, -1,
2044 ], [
2045 -77, 13, 56, 43, 13, -57, -23, 26, -11, 19,
2046 27, -16, -17, -22, 10, 15, 19, 10, 22, -43,
2047 -16, -30, 2, -31, 11, 6, 5, 9, -52, -2,
2048 -20, 0, -8, 50, -33, -27, 19, -19, 1, -9,
2049 ], [
2050 -47, 0, 45, -7, 7, -69, -23, 13, 2, 51,
2051 32, 14, 3, -47, -19, -8, 37, 11, 10, -16,
2052 32, -15, 19, -29, 0, -1, 28, -18, -20, 4,
2053 16, -13, -38, -3, -15, 0, 66, 0, -7, 13,
2054 ], [
2055 -116, 20, 68, 30, 28, -83, -28, 18, -32, 22,
2056 13, 21, -5, -28, -5, 7, 24, 8, 22, -17,
2057 23, -30, 25, -45, -15, 9, 11, 18, -22, 10,
2058 -4, 2, -19, 12, -23, -3, 43, -2, -12, 4,
2059 ], [
2060 72, -13, -29, -18, 4, 90, 37, -34, 4, -1,
2061 13, -9, -6, 11, 2, 24, -13, 3, -7, -11,
2062 -4, 4, -42, 25, 31, -1, -8, -29, -6, 17,
2063 -19, 2, -10, -6, 38, 22, -42, -19, -6, -11,
2064 ], [
2065 3, 7, -6, 20, 25, 77, 32, -29, -31, -30,
2066 -4, -2, -14, 29, 16, 40, -26, 0, 3, -12,
2067 -13, -10, -36, 9, 15, 8, -24, 6, -7, 22,
2068 -40, 17, 8, 9, 31, 18, -66, -22, -11, -19,
2069 ], [
2070 32, -6, -17, -31, 19, 65, 33, -41, -16, 1,
2071 0, 29, 6, 4, -13, 17, -9, 1, -8, 14,
2072 35, 3, -19, 11, 4, 0, -1, -21, 23, 30,
2073 -3, 5, -20, -44, 48, 46, -19, -3, -20, 3,
2074 ], [
2075 -36, 13, 5, 7, 40, 51, 28, -36, -52, -27,
2076 -18, 36, -2, 22, 0, 33, -21, -2, 3, 13,
2077 26, -11, -14, -4, -10, 10, -18, 14, 22, 36,
2078 -24, 21, -1, -28, 40, 42, -42, -5, -25, -5,
2079 ], [
2080 27, -1, -20, -17, 24, 38, 35, -26, 1, 4,
2081 35, -32, -21, -3, 2, 35, -8, -29, -24, -44,
2082 12, 24, -34, 18, 8, -7, -21, -55, -5, 21,
2083 -2, 23, -11, -28, 13, -1, -22, -33, 21, 10,
2084 ], [
2085 -41, 18, 2, 21, 45, 24, 30, -21, -33, -24,
2086 17, -24, -29, 15, 16, 51, -21, -33, -13, -45,
2087 3, 8, -28, 2, -7, 2, -37, -19, -7, 27,
2088 -22, 39, 7, -12, 5, -5, -45, -35, 15, 1,
2089 ], [
2090 -12, 4, -8, -29, 39, 12, 30, -33, -19, 8,
2091 21, 6, -8, -9, -13, 28, -4, -31, -24, -18,
2092 52, 23, -12, 4, -18, -5, -14, -47, 24, 34,
2093 14, 27, -22, -66, 22, 22, 1, -16, 6, 24,
2094 ], [
2095 -81, 25, 14, 8, 61, 0, 25, -28, -54, -20,
2096 3, 14, -17, 8, 0, 44, -16, -35, -13, -18,
2097 43, 7, -6, -11, -33, 4, -30, -11, 22, 40,
2098 -6, 43, -3, -50, 14, 18, -22, -18, 1, 16,
2099 ], [
2100 77, -2, -11, 1, -7, 47, 52, -5, 29, 33,
2101 1, -28, 0, -15, 28, 26, 2, 30, 0, 2,
2102 -22, 4, -33, -3, 36, -21, 3, -15, -2, 5,
2103 -4, 4, 6, 9, 37, 31, -5, -32, -20, -30,
2104 ], [
2105 8, 17, 10, 40, 13, 34, 47, 0, -5, 4,
2106 -16, -21, -8, 2, 42, 43, -10, 26, 10, 2,
2107 -31, -11, -27, -19, 21, -10, -12, 20, -3, 11,
2108 -25, 20, 25, 25, 29, 28, -28, -34, -25, -38,
2109 ], [
2110 37, 3, 0, -10, 7, 22, 48, -12, 8, 36,
2111 -12, 9, 12, -22, 12, 19, 6, 28, 0, 29,
2112 18, 3, -11, -17, 10, -18, 10, -7, 27, 18,
2113 11, 7, -3, -28, 47, 55, 18, -15, -34, -16,
2114 ], [
2115 -31, 24, 23, 27, 29, 9, 43, -8, -26, 7,
2116 -30, 17, 4, -3, 26, 35, -5, 24, 10, 28,
2117 9, -12, -5, -33, -5, -8, -5, 29, 26, 24,
2118 -9, 23, 14, -12, 39, 52, -5, -18, -39, -24,
2119 ], [
2120 32, 8, -3, 2, 13, -4, 50, 1, 27, 39,
2121 23, -51, -15, -30, 27, 37, 7, -1, -17, -29,
2122 -5, 23, -25, -10, 14, -26, -8, -41, -1, 9,
2123 13, 26, 5, -12, 12, 7, 14, -45, 6, -9,
2124 ], [
2125 -36, 29, 19, 41, 34, -18, 45, 6, -8, 10,
2126 5, -43, -23, -11, 42, 53, -5, -5, -6, -30,
2127 -14, 8, -20, -26, -1, -16, -25, -4, -3, 15,
2128 -7, 41, 23, 3, 4, 3, -8, -48, 1, -17,
2129 ], [
2130 -7, 15, 9, -9, 28, -29, 45, -5, 6, 43,
2131 9, -12, -2, -36, 12, 30, 11, -3, -17, -3,
2132 34, 22, -3, -24, -12, -24, -2, -32, 28, 22,
2133 29, 29, -5, -50, 21, 31, 38, -29, -7, 5,
2134 ], [
2135 -76, 35, 31, 28, 49, -43, 40, 0, -29, 14,
2136 -8, -5, -10, -18, 26, 46, 0, -7, -6, -3,
2137 25, 7, 2, -40, -28, -14, -18, 3, 27, 28,
2138 8, 45, 13, -34, 13, 27, 15, -31, -12, -3,
2139 ], [
2140 74, -17, 0, -31, -18, 73, -5, 0, 3, -5,
2141 25, 12, -3, -1, -22, 3, -9, 33, -12, -24,
2142 6, 2, -33, 9, 21, 5, 20, -27, -19, -7,
2143 -34, -37, -34, 22, 44, 0, -41, -29, -17, -21,
2144 ], [
2145 5, 3, 21, 7, 2, 60, -10, 5, -32, -34,
2146 7, 20, -11, 16, -8, 20, -21, 29, -1, -24,
2147 -2, -13, -27, -6, 5, 15, 3, 8, -21, -1,
2148 -55, -21, -15, 38, 37, -3, -65, -32, -23, -30,
2149 ], [
2150 35, -10, 11, -44, -3, 48, -10, -6, -17, -2,
2151 11, 51, 8, -8, -38, -3, -4, 31, -12, 2,
2152 46, 1, -10, -4, -5, 7, 26, -19, 10, 5,
2153 -18, -34, -45, -15, 54, 24, -18, -13, -31, -7,
2154 ], [
2155 -33, 10, 34, -5, 17, 35, -15, -1, -53, -30,
2156 -6, 59, 0, 10, -24, 13, -17, 27, -1, 1,
2157 37, -13, -4, -20, -20, 18, 10, 16, 8, 11,
2158 -39, -18, -26, 0, 46, 20, -41, -15, -37, -15,
2159 ], [
2160 29, -5, 7, -30, 1, 21, -7, 7, 0, 0,
2161 47, -9, -18, -15, -22, 14, -4, 0, -28, -57,
2162 23, 21, -25, 2, -1, 0, 7, -53, -19, -3,
2163 -17, -15, -36, 0, 19, -24, -21, -43, 9, 0,
2164 ], [
2165 -39, 14, 30, 8, 22, 8, -12, 12, -34, -27,
2166 29, -2, -26, 2, -8, 31, -16, -3, -17, -57,
2167 14, 6, -19, -13, -16, 10, -8, -17, -20, 2,
2168 -38, 0, -17, 16, 11, -27, -44, -45, 4, -8,
2169 ], [
2170 -9, 1, 20, -43, 17, -3, -12, 0, -20, 4,
2171 33, 29, -6, -22, -38, 7, 0, -1, -29, -30,
2172 63, 21, -3, -11, -27, 1, 14, -45, 10, 9,
2173 -1, -12, -47, -37, 28, 0, 2, -26, -4, 13,
2174 ], [
2175 -78, 21, 43, -4, 38, -17, -17, 5, -55, -24,
2176 15, 36, -14, -4, -24, 24, -12, -5, -17, -31,
2177 54, 5, 2, -27, -43, 12, -2, -9, 9, 15,
2178 -22, 3, -28, -21, 20, -3, -20, -28, -9, 5,
2179 ], [
2180 80, -6, 16, -11, -30, 30, 9, 28, 28, 29,
2181 13, -6, 2, -28, 3, 5, 7, 60, -5, -9,
2182 -11, 1, -24, -19, 27, -13, 32, -13, -15, -19,
2183 -19, -35, -17, 39, 43, 9, -4, -42, -32, -41,
2184 ], [
2185 11, 14, 39, 27, -9, 17, 4, 33, -6, 0,
2186 -4, 1, -5, -10, 17, 22, -5, 57, 5, -9,
2187 -20, -13, -18, -35, 11, -3, 16, 22, -17, -13,
2188 -40, -19, 1, 55, 35, 5, -27, -44, -37, -49,
2189 ], [
2190 40, 0, 28, -24, -14, 5, 4, 21, 7, 33,
2191 0, 32, 15, -35, -12, -1, 11, 58, -5, 16,
2192 28, 0, -1, -33, 0, -11, 39, -5, 14, -6,
2193 -3, -31, -28, 1, 53, 33, 19, -25, -46, -26,
2194 ], [
2195 -28, 20, 51, 14, 6, -7, 0, 26, -27, 4,
2196 -18, 40, 6, -16, 1, 15, 0, 55, 5, 16,
2197 19, -14, 3, -49, -14, -1, 22, 30, 12, 0,
2198 -24, -15, -9, 17, 45, 29, -4, -28, -51, -35,
2199 ], [
2200 34, 4, 25, -10, -9, -21, 7, 36, 26, 36,
2201 35, -28, -12, -42, 3, 16, 12, 28, -21, -42,
2202 5, 21, -16, -26, 4, -19, 19, -39, -15, -15,
2203 -1, -13, -19, 17, 17, -14, 15, -55, -4, -19,
2204 ], [
2205 -34, 25, 48, 28, 11, -34, 2, 41, -9, 7,
2206 17, -21, -20, -24, 17, 33, 0, 24, -10, -42,
2207 -3, 5, -10, -42, -11, -8, 3, -3, -16, -9,
2208 -22, 2, 0, 33, 10, -18, -7, -58, -10, -28,
2209 ], [
2210 -4, 11, 37, -23, 5, -46, 2, 29, 5, 39,
2211 21, 9, 0, -49, -12, 9, 16, 26, -22, -15,
2212 45, 20, 5, -40, -22, -17, 26, -31, 14, -2,
2213 14, -10, -30, -20, 27, 9, 39, -39, -18, -5,
2214 ], [
2215 -73, 32, 60, 15, 26, -59, -2, 33, -30, 10,
2216 3, 17, -8, -30, 1, 26, 4, 22, -10, -16,
2217 36, 5, 11, -56, -37, -6, 10, 5, 13, 3,
2218 -6, 5, -11, -4, 19, 5, 16, -41, -24, -13
2219 ]
2220 ];
2221
2222 const RA144_GAIN_VAL_TAB: [[u16; 3]; 256] = [
2223 [ 541, 956, 768], [ 877, 581, 568], [ 675,1574, 635], [1248,1464, 668],
2224 [1246, 839, 1394], [2560,1386, 991], [ 925, 687, 608], [2208, 797, 1144],
2225 [ 535, 832, 799], [ 762, 605, 1154], [ 832,1122, 1003], [1180, 687, 1176],
2226 [1292, 901, 732], [1656, 689, 896], [1750,1248, 848], [2284, 942, 1022],
2227 [ 824,1472, 643], [ 517, 765, 512], [ 562,1816, 1522], [ 694,1826, 2700],
2228 [ 704, 524, 672], [1442, 757, 2232], [ 884, 551, 1266], [2232,1007, 1692],
2229 [ 932, 746, 777], [1132, 822, 926], [1226, 771, 611], [2948,1342, 1008],
2230 [1302, 594, 1158], [1602, 636, 1128], [3408, 910, 1438], [1996, 614, 575],
2231 [ 665, 935, 628], [ 631,1192, 829], [ 644, 926, 1052], [ 879, 988, 1226],
2232 [ 941,2768, 2772], [ 565,1344, 2304], [ 547, 628, 740], [ 639, 532, 1074],
2233 [ 955,1208, 598], [1124,1160, 900], [1206, 899, 1242], [ 746, 533, 624],
2234 [1458,1028, 735], [1706,1102, 692], [1898,1018, 1004], [2176, 988, 735],
2235 [1578, 782, 1642], [ 897, 516, 754], [2068, 702, 1656], [2344, 818, 1526],
2236 [ 907, 652, 592], [1056, 652, 642], [2124,1416, 780], [2664,1250, 727],
2237 [1894, 727, 1108], [2196, 657, 981], [4840, 920, 1704], [4992,1238, 983],
2238 [2420, 909, 1094], [2760, 935, 1032], [2800, 612, 853], [3068, 832, 574],
2239 [ 523,1796, 923], [ 722,1916, 1382], [1226,1542, 928], [ 758, 757, 584],
2240 [ 512,1134, 577], [ 615,1276, 698], [ 574,2568, 2356], [ 993,2728, 3512],
2241 [ 539, 890, 913], [ 694, 928, 1088], [ 805, 600, 1360], [2160, 951, 3128],
2242 [ 816, 950, 590], [ 955, 847, 811], [1094, 883, 556], [1304, 888, 604],
2243 [ 863,1170, 855], [1023, 997, 1032], [ 932,1228, 1280], [ 627, 564, 573],
2244 [ 876, 900, 1448], [1030, 857, 1792], [1294, 953, 1758], [1612, 854, 1714],
2245 [1090,1166, 631], [1314,1202, 751], [1480, 905, 795], [1682,1016, 568],
2246 [1494,1178, 983], [ 878, 613, 526], [1728,1446, 779], [2136,1348, 774],
2247 [ 950, 649, 939], [1180, 703, 899], [1236, 527, 1158], [1450, 647, 972],
2248 [1282, 647, 707], [1460, 663, 644], [1614, 572, 578], [3516,1222, 821],
2249 [2668, 729, 1682], [3128, 585, 1502], [3208, 733, 976], [6800, 871, 1416],
2250 [3480, 743, 1408], [3764, 899, 1170], [3772, 632, 875], [4092, 732, 638],
2251 [3112, 753, 2620], [3372, 945, 1890], [3768, 969, 2288], [2016, 559, 854],
2252 [1736, 729, 787], [1940, 686, 547], [2140, 635, 674], [4480,1272, 828],
2253 [3976, 592, 1666], [4384, 621, 1388], [4400, 801, 955], [4656, 522, 646],
2254 [4848, 625, 1636], [4984, 591, 874], [5352, 535, 1001], [11216,938, 1184],
2255 [ 925,3280, 1476], [ 735,1580, 1088], [1150,1576, 674], [ 655, 783, 528],
2256 [ 527,2052, 1354], [ 782,1704, 1880], [ 578, 910, 1026], [ 692, 882, 1468],
2257 [ 586, 683, 715], [ 739, 609, 717], [ 778, 773, 697], [ 922, 785, 813],
2258 [ 766, 651, 984], [ 978, 596, 1030], [1070, 757, 1080], [1324, 687, 1178],
2259 [1108,2144, 979], [ 723, 982, 690], [ 936, 956, 527], [1180,1002, 547],
2260 [ 517,1306, 825], [ 832,1184, 974], [1024, 957, 903], [1262,1090, 906],
2261 [1028, 720, 649], [1192, 679, 694], [2468,1480, 979], [2844,1370, 877],
2262 [1310, 835, 848], [1508, 839, 698], [1742,1030, 769], [1910, 852, 573],
2263 [1280, 859, 1174], [1584, 863, 1108], [1686, 708, 1364], [1942, 768, 1104],
2264 [ 891, 536, 690], [1016, 560, 663], [2172, 870, 1348], [2404, 999, 1170],
2265 [1890, 966, 889], [2116, 912, 777], [2296,1020, 714], [4872,1844, 932],
2266 [2392, 778, 929], [2604, 772, 744], [2764, 957, 722], [5832,1532, 984],
2267 [2188, 519, 1264], [2332, 532, 922], [5064, 995, 2412], [2708, 571, 874],
2268 [2408, 545, 666], [5016,1084, 875], [5376, 983, 1196], [5536, 979, 730],
2269 [5344, 634, 1744], [5688, 706, 1348], [5912, 977, 1190], [6072, 905, 763],
2270 [6048, 582, 1526], [11968,1013,1816], [12864,937, 1900], [12560,1086, 998],
2271 [1998, 684, 1884], [2504, 633, 1992], [1252, 567, 835], [1478, 571, 973],
2272 [2620, 769, 1414], [2808, 952, 1142], [2908, 712, 1028], [2976, 686, 741],
2273 [1462, 552, 714], [3296, 991, 1452], [1590, 615, 544], [3480,1150, 824],
2274 [3212, 832, 923], [3276, 839, 531], [3548, 786, 852], [3732, 764, 570],
2275 [5728, 906, 2616], [6272, 804, 2252], [3096, 535, 876], [3228, 598, 649],
2276 [6536, 759, 1436], [6648, 993, 846], [6864, 567, 1210],[14016,1012, 1302],
2277 [3408, 548, 1098], [7160,1008, 1742], [7136,1000, 1182], [7480,1032, 836],
2278 [7448, 612, 1552], [7744, 614, 816], [8384, 777, 1438], [8784, 694, 786],
2279 [ 882,1508, 1068], [ 597, 837, 766], [1270, 954, 1408], [ 803, 550, 798],
2280 [1398,1308, 798], [1848,1534, 738], [ 970, 675, 608], [1264, 706, 684],
2281 [1716, 767, 1126], [2108, 765, 1404], [2236, 924, 1003], [2472,1048, 611],
2282 [ 999, 942, 963], [1094, 857, 935], [2936, 926, 1138], [1934, 746, 551],
2283 [3336, 633, 1762], [3764, 701, 1454], [1890, 564, 636], [4096,1126, 793],
2284 [3936, 556, 1140], [3936, 540, 740], [4216, 764, 874], [8480,1328, 1014],
2285 [2184, 515, 1042], [4432, 934, 1344], [4784, 945, 1112], [5016,1062, 733],
2286 [9216,1020, 2028], [9968, 924, 1188], [5424, 909, 1206], [6512, 744, 1086]
2287 ];
2288 const RA144_GAIN_EXP_TAB: [u8; 256] = [
2289 15, 15, 15, 15, 15, 16, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14,
2290 14, 13, 14, 14, 13, 14, 13, 14, 13, 13, 13, 14, 13, 13, 14, 13,
2291 13, 13, 13, 13, 14, 13, 12, 12, 13, 13, 13, 12, 13, 13, 13, 13,
2292 13, 12, 13, 13, 12, 12, 13, 13, 13, 13, 14, 14, 13, 13, 13, 13,
2293 13, 13, 13, 12, 12, 12, 13, 13, 12, 12, 12, 13, 12, 12, 12, 12,
2294 12, 12, 12, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 12, 12,
2295 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 13, 13, 13, 13,
2296 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14,
2297 13, 12, 12, 11, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2298 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 11, 11, 11, 11,
2299 12, 12, 12, 12, 11, 11, 12, 12, 12, 12, 12, 13, 12, 12, 12, 13,
2300 12, 12, 13, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14,
2301 12, 12, 11, 11, 12, 12, 12, 12, 11, 12, 11, 12, 12, 12, 12, 12,
2302 13, 13, 12, 12, 13, 13, 13, 14, 12, 13, 13, 13, 13, 13, 13, 13,
2303 11, 10, 11, 10, 11, 11, 10, 10, 11, 11, 11, 11, 10, 9, 11, 10,
2304 12, 12, 11, 12, 12, 12, 12, 13, 11, 12, 12, 12, 13, 13, 12, 12
2305 ];