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