diff options
Diffstat (limited to 'baseline/source')
130 files changed, 65876 insertions, 0 deletions
diff --git a/baseline/source/adpcm_dec/ChangeLog.txt b/baseline/source/adpcm_dec/ChangeLog.txt new file mode 100644 index 0000000..b9c4f96 --- /dev/null +++ b/baseline/source/adpcm_dec/ChangeLog.txt | |||
@@ -0,0 +1,32 @@ | |||
1 | File: minver.c | ||
2 | Original provenience: SNU-RT Benchmark Suite for Worst Case Timing Analysis | ||
3 | |||
4 | 2016-02-26: | ||
5 | - Added TACLeBench header to line 1 | ||
6 | - Rename global variable a to minver_a | ||
7 | - Rename global variable b to minver_b | ||
8 | - Rename global variable c to minver_c | ||
9 | - Rename global variable aa to minver_aa | ||
10 | - Rename global variable a_i to minver_a_i | ||
11 | - Rename global variable e to minver_e | ||
12 | - Rename global variable det to minver_det | ||
13 | - Renamed function minver to minver_minver | ||
14 | - Renamed function mmul to minver_mmul | ||
15 | - Renamed function fabs to minver_fabs | ||
16 | - Renamed function main to minver_main | ||
17 | - Created new function main, calling minver_init, minver_main and | ||
18 | returning minver_return | ||
19 | - Reordered functions in source code: initialization- and | ||
20 | return-value-related functions first, followed by algorithm core | ||
21 | functions, followed by main functions | ||
22 | - Applied code formatting with astyle as in the example | ||
23 | |||
24 | 2016-03-09: | ||
25 | - Removed static keyword for global variables | ||
26 | - Renamed global variables, prepended adpcm_dec | ||
27 | |||
28 | 2016-05-23: | ||
29 | - Check sum added and checked against the expected value | ||
30 | |||
31 | 2016-05-25: | ||
32 | - Corrected expected value \ No newline at end of file | ||
diff --git a/baseline/source/adpcm_dec/adpcm_dec.c b/baseline/source/adpcm_dec/adpcm_dec.c new file mode 100644 index 0000000..6811e69 --- /dev/null +++ b/baseline/source/adpcm_dec/adpcm_dec.c | |||
@@ -0,0 +1,719 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 1.x | ||
5 | |||
6 | Name: adpcm_dec | ||
7 | |||
8 | Author: Sung-Soo Lim | ||
9 | |||
10 | Function: | ||
11 | CCITT G.722 ADPCM (Adaptive Differential Pulse Code Modulation) | ||
12 | algorithm. | ||
13 | 16khz sample rate data is stored in the array test_data[SIZE]. | ||
14 | Results are stored in the array compressed[SIZE] and result[SIZE]. | ||
15 | Execution time is determined by the constant SIZE (default value | ||
16 | is 2000). | ||
17 | |||
18 | Source: SNU-RT Benchmark Suite | ||
19 | |||
20 | Changes: adpcm benchmark was split into decode and encode benchmark | ||
21 | |||
22 | License: may be used, modified, and re-distributed freely, but | ||
23 | the SNU-RT Benchmark Suite must be acknowledged | ||
24 | |||
25 | */ | ||
26 | |||
27 | /* | ||
28 | This program is derived from the SNU-RT Benchmark Suite for Worst | ||
29 | Case Timing Analysis by Sung-Soo Lim | ||
30 | |||
31 | Original source: C Algorithms for Real-Time DSP by P. M. Embree | ||
32 | */ | ||
33 | |||
34 | /* | ||
35 | Forward declaration of functions | ||
36 | */ | ||
37 | |||
38 | #include "../extra.h" | ||
39 | |||
40 | void adpcm_dec_decode( int ); | ||
41 | int adpcm_dec_filtez( int *bpl, int *dlt ); | ||
42 | void adpcm_dec_upzero( int dlt, int *dlti, int *bli ); | ||
43 | int adpcm_dec_filtep( int rlt1, int al1, int rlt2, int al2 ); | ||
44 | |||
45 | int adpcm_dec_logscl( int il, int nbl ); | ||
46 | int adpcm_dec_scalel( int nbl, int shift_constant ); | ||
47 | int adpcm_dec_uppol2( int al1, int al2, int plt, int plt1, int plt2 ); | ||
48 | int adpcm_dec_uppol1( int al1, int apl2, int plt, int plt1 ); | ||
49 | |||
50 | int adpcm_dec_logsch( int ih, int nbh ); | ||
51 | void adpcm_dec_reset(); | ||
52 | int adpcm_dec_fabs( int n ); | ||
53 | int adpcm_dec_cos( int n ); | ||
54 | int adpcm_dec_sin( int n ); | ||
55 | |||
56 | void adpcm_dec_init(); | ||
57 | int adpcm_dec_return(); | ||
58 | void adpcm_dec_main(); | ||
59 | //int main( void ); | ||
60 | |||
61 | |||
62 | /* | ||
63 | Declaration of macros | ||
64 | */ | ||
65 | /* common sampling rate for sound cards on IBM/PC */ | ||
66 | #define SAMPLE_RATE 11025 | ||
67 | #define PI 3141 | ||
68 | #define SIZE 3 | ||
69 | #define IN_END 4 | ||
70 | |||
71 | /* | ||
72 | Declaration of global variables | ||
73 | */ | ||
74 | |||
75 | int adpcm_dec_test_data[SIZE * 2], adpcm_dec_result[SIZE * 2]; | ||
76 | |||
77 | /* Input data for the decoder usually generated by the encoder. */ | ||
78 | int adpcm_dec_compressed[SIZE] = { 0, 253, 32 }; | ||
79 | |||
80 | /* G722 C code */ | ||
81 | |||
82 | /* QMF filter coefficients: | ||
83 | scaled by a factor of 4 compared to G722 CCITT recommendation */ | ||
84 | int adpcm_dec_h[24] = { | ||
85 | 12, -44, -44, 212, 48, -624, 128, 1448, | ||
86 | -840, -3220, 3804, 15504, 15504, 3804, -3220, -840, | ||
87 | 1448, 128, -624, 48, 212, -44, -44, 12 | ||
88 | }; | ||
89 | |||
90 | //int xl,xh; | ||
91 | |||
92 | /* variables for receive quadrature mirror filter here */ | ||
93 | int adpcm_dec_accumc[11], adpcm_dec_accumd[11]; | ||
94 | |||
95 | /* outputs of decode() */ | ||
96 | int adpcm_dec_xout1, adpcm_dec_xout2; | ||
97 | |||
98 | int adpcm_dec_xs, adpcm_dec_xd; | ||
99 | |||
100 | /* variables for encoder (hi and lo) here */ | ||
101 | |||
102 | int adpcm_dec_il, adpcm_dec_szl, adpcm_dec_spl, adpcm_dec_sl, adpcm_dec_el; | ||
103 | |||
104 | int adpcm_dec_qq4_code4_table[16] = { | ||
105 | 0, -20456, -12896, -8968, -6288, -4240, -2584, -1200, | ||
106 | 20456, 12896, 8968, 6288, 4240, 2584, 1200, 0 | ||
107 | }; | ||
108 | |||
109 | |||
110 | int adpcm_dec_qq6_code6_table[64] = { | ||
111 | -136, -136, -136, -136, -24808, -21904, -19008, -16704, | ||
112 | -14984, -13512, -12280, -11192, -10232, -9360, -8576, -7856, | ||
113 | -7192, -6576, -6000, -5456, -4944, -4464, -4008, -3576, | ||
114 | -3168, -2776, -2400, -2032, -1688, -1360, -1040, -728, | ||
115 | 24808, 21904, 19008, 16704, 14984, 13512, 12280, 11192, | ||
116 | 10232, 9360, 8576, 7856, 7192, 6576, 6000, 5456, | ||
117 | 4944, 4464, 4008, 3576, 3168, 2776, 2400, 2032, | ||
118 | 1688, 1360, 1040, 728, 432, 136, -432, -136 | ||
119 | }; | ||
120 | |||
121 | |||
122 | int adpcm_dec_wl_code_table[16] = { | ||
123 | -60, 3042, 1198, 538, 334, 172, 58, -30, | ||
124 | 3042, 1198, 538, 334, 172, 58, -30, -60 | ||
125 | }; | ||
126 | |||
127 | |||
128 | int adpcm_dec_ilb_table[32] = { | ||
129 | 2048, 2093, 2139, 2186, 2233, 2282, 2332, 2383, | ||
130 | 2435, 2489, 2543, 2599, 2656, 2714, 2774, 2834, | ||
131 | 2896, 2960, 3025, 3091, 3158, 3228, 3298, 3371, | ||
132 | 3444, 3520, 3597, 3676, 3756, 3838, 3922, 4008 | ||
133 | }; | ||
134 | |||
135 | int adpcm_dec_nbl; /* delay line */ | ||
136 | int adpcm_dec_al1, adpcm_dec_al2; | ||
137 | int adpcm_dec_plt, adpcm_dec_plt1, adpcm_dec_plt2; | ||
138 | int adpcm_dec_rs; | ||
139 | int adpcm_dec_dlt; | ||
140 | int adpcm_dec_rlt, adpcm_dec_rlt1, adpcm_dec_rlt2; | ||
141 | |||
142 | |||
143 | int adpcm_dec_detl; | ||
144 | |||
145 | |||
146 | int adpcm_dec_deth; | ||
147 | int adpcm_dec_sh; /* this comes from adaptive predictor */ | ||
148 | int adpcm_dec_eh; | ||
149 | |||
150 | int adpcm_dec_qq2_code2_table[4] = { | ||
151 | -7408, -1616, 7408, 1616 | ||
152 | }; | ||
153 | |||
154 | int adpcm_dec_wh_code_table[4] = { | ||
155 | 798, -214, 798, -214 | ||
156 | }; | ||
157 | |||
158 | |||
159 | int adpcm_dec_dh, adpcm_dec_ih; | ||
160 | int adpcm_dec_nbh, adpcm_dec_szh; | ||
161 | int adpcm_dec_sph, adpcm_dec_ph, adpcm_dec_yh, adpcm_dec_rh; | ||
162 | |||
163 | int adpcm_dec_delay_dhx[6]; | ||
164 | |||
165 | int adpcm_dec_delay_bph[6]; | ||
166 | |||
167 | int adpcm_dec_ah1, adpcm_dec_ah2; | ||
168 | int adpcm_dec_ph1, adpcm_dec_ph2; | ||
169 | int adpcm_dec_rh1, adpcm_dec_rh2; | ||
170 | |||
171 | /* variables for decoder here */ | ||
172 | int adpcm_dec_ilr, adpcm_dec_yl, adpcm_dec_rl; | ||
173 | int adpcm_dec_dec_deth, adpcm_dec_dec_detl, adpcm_dec_dec_dlt; | ||
174 | |||
175 | int adpcm_dec_dec_del_bpl[6]; | ||
176 | |||
177 | int adpcm_dec_dec_del_dltx[6]; | ||
178 | |||
179 | int adpcm_dec_dec_plt, adpcm_dec_dec_plt1, adpcm_dec_dec_plt2; | ||
180 | int adpcm_dec_dec_szl, adpcm_dec_dec_spl, adpcm_dec_dec_sl; | ||
181 | int adpcm_dec_dec_rlt1, adpcm_dec_dec_rlt2, adpcm_dec_dec_rlt; | ||
182 | int adpcm_dec_dec_al1, adpcm_dec_dec_al2; | ||
183 | int adpcm_dec_dl; | ||
184 | int adpcm_dec_dec_nbl, adpcm_dec_dec_yh, adpcm_dec_dec_dh, adpcm_dec_dec_nbh; | ||
185 | |||
186 | /* variables used in filtez */ | ||
187 | int adpcm_dec_dec_del_bph[6]; | ||
188 | |||
189 | int adpcm_dec_dec_del_dhx[6]; | ||
190 | |||
191 | int adpcm_dec_dec_szh; | ||
192 | /* variables used in filtep */ | ||
193 | int adpcm_dec_dec_rh1, adpcm_dec_dec_rh2; | ||
194 | int adpcm_dec_dec_ah1, adpcm_dec_dec_ah2; | ||
195 | int adpcm_dec_dec_ph, adpcm_dec_dec_sph; | ||
196 | |||
197 | int adpcm_dec_dec_sh, adpcm_dec_dec_rh; | ||
198 | |||
199 | int adpcm_dec_dec_ph1, adpcm_dec_dec_ph2; | ||
200 | |||
201 | |||
202 | /* | ||
203 | Arithmetic math functions | ||
204 | */ | ||
205 | |||
206 | |||
207 | /* MAX: 1 */ | ||
208 | int adpcm_dec_fabs( int n ) | ||
209 | { | ||
210 | int f; | ||
211 | |||
212 | |||
213 | if ( n >= 0 ) | ||
214 | f = n; | ||
215 | else | ||
216 | f = -n; | ||
217 | |||
218 | return f; | ||
219 | } | ||
220 | |||
221 | |||
222 | int adpcm_dec_sin( int rad ) | ||
223 | { | ||
224 | int diff; | ||
225 | int app = 0; | ||
226 | int inc = 1; | ||
227 | |||
228 | |||
229 | /* MAX dependent on rad's value, say 50 */ | ||
230 | _Pragma( "loopbound min 0 max 0" ) | ||
231 | while ( rad > 2 * PI ) | ||
232 | rad -= 2 * PI; | ||
233 | |||
234 | _Pragma( "loopbound min 0 max 1999" ) | ||
235 | while ( rad < -2 * PI ) | ||
236 | rad += 2 * PI; | ||
237 | |||
238 | diff = rad; | ||
239 | app = diff; | ||
240 | diff = ( diff * ( -( rad * rad ) ) ) / ( ( 2 * inc ) * ( 2 * inc + 1 ) ); | ||
241 | app = app + diff; | ||
242 | inc++; | ||
243 | |||
244 | /* REALLY: while(my_fabs(diff) >= 0.00001) { */ | ||
245 | /* MAX: 1000 */ | ||
246 | _Pragma( "loopbound min 849 max 2424" ) | ||
247 | while ( adpcm_dec_fabs( diff ) >= 1 ) { | ||
248 | diff = ( diff * ( -( rad * rad ) ) ) / ( ( 2 * inc ) * ( 2 * inc + 1 ) ); | ||
249 | app = app + diff; | ||
250 | inc++; | ||
251 | } | ||
252 | |||
253 | return app; | ||
254 | } | ||
255 | |||
256 | |||
257 | int adpcm_dec_cos( int rad ) | ||
258 | { | ||
259 | return ( adpcm_dec_sin( PI / 2 - rad ) ); | ||
260 | } | ||
261 | |||
262 | |||
263 | /* | ||
264 | Algorithm core functions | ||
265 | */ | ||
266 | |||
267 | /* decode function, result in xout1 and xout2 */ | ||
268 | void adpcm_dec_decode( int input ) | ||
269 | { | ||
270 | int i; | ||
271 | long int xa1, xa2; /* qmf accumulators */ | ||
272 | int *h_ptr, *ac_ptr, *ac_ptr1, *ad_ptr, *ad_ptr1; | ||
273 | |||
274 | |||
275 | /* split transmitted word from input into ilr and ih */ | ||
276 | adpcm_dec_ilr = input & 0x3f; | ||
277 | adpcm_dec_ih = input >> 6; | ||
278 | |||
279 | /* LOWER SUB_BAND DECODER */ | ||
280 | |||
281 | /* filtez: compute predictor output for zero section */ | ||
282 | adpcm_dec_dec_szl = adpcm_dec_filtez( adpcm_dec_dec_del_bpl, | ||
283 | adpcm_dec_dec_del_dltx ); | ||
284 | |||
285 | /* filtep: compute predictor output signal for pole section */ | ||
286 | adpcm_dec_dec_spl = adpcm_dec_filtep( adpcm_dec_dec_rlt1, adpcm_dec_dec_al1, | ||
287 | adpcm_dec_dec_rlt2, adpcm_dec_dec_al2 ); | ||
288 | |||
289 | adpcm_dec_dec_sl = adpcm_dec_dec_spl + adpcm_dec_dec_szl; | ||
290 | |||
291 | /* invqxl: compute quantized difference signal for adaptive predic */ | ||
292 | adpcm_dec_dec_dlt = ( ( long )adpcm_dec_dec_detl * | ||
293 | adpcm_dec_qq4_code4_table[adpcm_dec_ilr | ||
294 | >> 2] ) >> 15; | ||
295 | |||
296 | /* invqxl: compute quantized difference signal for decoder output */ | ||
297 | adpcm_dec_dl = ( ( long )adpcm_dec_dec_detl * | ||
298 | adpcm_dec_qq6_code6_table[adpcm_dec_il] ) >> | ||
299 | 15; | ||
300 | |||
301 | adpcm_dec_rl = adpcm_dec_dl + adpcm_dec_dec_sl; | ||
302 | |||
303 | /* logscl: quantizer scale factor adaptation in the lower sub-band */ | ||
304 | adpcm_dec_dec_nbl = adpcm_dec_logscl( adpcm_dec_ilr, adpcm_dec_dec_nbl ); | ||
305 | |||
306 | /* scalel: computes quantizer scale factor in the lower sub band */ | ||
307 | adpcm_dec_dec_detl = adpcm_dec_scalel( adpcm_dec_dec_nbl, 8 ); | ||
308 | |||
309 | /* parrec - add pole predictor output to quantized diff. signal */ | ||
310 | /* for partially reconstructed signal */ | ||
311 | adpcm_dec_dec_plt = adpcm_dec_dec_dlt + adpcm_dec_dec_szl; | ||
312 | |||
313 | /* upzero: update zero section predictor coefficients */ | ||
314 | adpcm_dec_upzero( adpcm_dec_dec_dlt, adpcm_dec_dec_del_dltx, | ||
315 | adpcm_dec_dec_del_bpl ); | ||
316 | |||
317 | /* uppol2: update second predictor coefficient apl2 and delay it as al2 */ | ||
318 | adpcm_dec_dec_al2 = adpcm_dec_uppol2( adpcm_dec_dec_al1, adpcm_dec_dec_al2, | ||
319 | adpcm_dec_dec_plt, adpcm_dec_dec_plt1, | ||
320 | adpcm_dec_dec_plt2 ); | ||
321 | |||
322 | /* uppol1: update first predictor coef. (pole setion) */ | ||
323 | adpcm_dec_dec_al1 = adpcm_dec_uppol1( adpcm_dec_dec_al1, adpcm_dec_dec_al2, | ||
324 | adpcm_dec_dec_plt, adpcm_dec_dec_plt1 ); | ||
325 | |||
326 | /* recons : compute recontructed signal for adaptive predictor */ | ||
327 | adpcm_dec_dec_rlt = adpcm_dec_dec_sl + adpcm_dec_dec_dlt; | ||
328 | |||
329 | /* done with lower sub band decoder, implement delays for next time */ | ||
330 | adpcm_dec_dec_rlt2 = adpcm_dec_dec_rlt1; | ||
331 | adpcm_dec_dec_rlt1 = adpcm_dec_dec_rlt; | ||
332 | adpcm_dec_dec_plt2 = adpcm_dec_dec_plt1; | ||
333 | adpcm_dec_dec_plt1 = adpcm_dec_dec_plt; | ||
334 | |||
335 | /* HIGH SUB-BAND DECODER */ | ||
336 | |||
337 | /* filtez: compute predictor output for zero section */ | ||
338 | adpcm_dec_dec_szh = adpcm_dec_filtez( adpcm_dec_dec_del_bph, | ||
339 | adpcm_dec_dec_del_dhx ); | ||
340 | |||
341 | /* filtep: compute predictor output signal for pole section */ | ||
342 | adpcm_dec_dec_sph = adpcm_dec_filtep( adpcm_dec_dec_rh1, adpcm_dec_dec_ah1, | ||
343 | adpcm_dec_dec_rh2, adpcm_dec_dec_ah2 ); | ||
344 | |||
345 | /* predic:compute the predictor output value in the higher sub_band decoder */ | ||
346 | adpcm_dec_dec_sh = adpcm_dec_dec_sph + adpcm_dec_dec_szh; | ||
347 | |||
348 | /* invqah: in-place compute the quantized difference signal */ | ||
349 | adpcm_dec_dec_dh = ( ( long )adpcm_dec_dec_deth * | ||
350 | adpcm_dec_qq2_code2_table[adpcm_dec_ih] ) >> 15L ; | ||
351 | |||
352 | /* logsch: update logarithmic quantizer scale factor in hi sub band */ | ||
353 | adpcm_dec_dec_nbh = adpcm_dec_logsch( adpcm_dec_ih, adpcm_dec_dec_nbh ); | ||
354 | |||
355 | /* scalel: compute the quantizer scale factor in the higher sub band */ | ||
356 | adpcm_dec_dec_deth = adpcm_dec_scalel( adpcm_dec_dec_nbh, 10 ); | ||
357 | |||
358 | /* parrec: compute partially recontructed signal */ | ||
359 | adpcm_dec_dec_ph = adpcm_dec_dec_dh + adpcm_dec_dec_szh; | ||
360 | |||
361 | /* upzero: update zero section predictor coefficients */ | ||
362 | adpcm_dec_upzero( adpcm_dec_dec_dh, adpcm_dec_dec_del_dhx, | ||
363 | adpcm_dec_dec_del_bph ); | ||
364 | |||
365 | /* uppol2: update second predictor coefficient aph2 and delay it as ah2 */ | ||
366 | adpcm_dec_dec_ah2 = adpcm_dec_uppol2( adpcm_dec_dec_ah1, adpcm_dec_dec_ah2, | ||
367 | adpcm_dec_dec_ph, adpcm_dec_dec_ph1, adpcm_dec_dec_ph2 ); | ||
368 | |||
369 | /* uppol1: update first predictor coef. (pole setion) */ | ||
370 | adpcm_dec_dec_ah1 = adpcm_dec_uppol1( adpcm_dec_dec_ah1, adpcm_dec_dec_ah2, | ||
371 | adpcm_dec_dec_ph, adpcm_dec_dec_ph1 ); | ||
372 | |||
373 | /* recons : compute recontructed signal for adaptive predictor */ | ||
374 | adpcm_dec_rh = adpcm_dec_dec_sh + adpcm_dec_dec_dh; | ||
375 | |||
376 | /* done with high band decode, implementing delays for next time here */ | ||
377 | adpcm_dec_dec_rh2 = adpcm_dec_dec_rh1; | ||
378 | adpcm_dec_dec_rh1 = adpcm_dec_rh; | ||
379 | adpcm_dec_dec_ph2 = adpcm_dec_dec_ph1; | ||
380 | adpcm_dec_dec_ph1 = adpcm_dec_dec_ph; | ||
381 | |||
382 | /* end of higher sub_band decoder */ | ||
383 | |||
384 | /* end with receive quadrature mirror filters */ | ||
385 | adpcm_dec_xd = adpcm_dec_rl - adpcm_dec_rh; | ||
386 | adpcm_dec_xs = adpcm_dec_rl + adpcm_dec_rh; | ||
387 | |||
388 | /* receive quadrature mirror filters implemented here */ | ||
389 | h_ptr = adpcm_dec_h; | ||
390 | ac_ptr = adpcm_dec_accumc; | ||
391 | ad_ptr = adpcm_dec_accumd; | ||
392 | xa1 = ( long ) adpcm_dec_xd * ( *h_ptr++ ); | ||
393 | xa2 = ( long ) adpcm_dec_xs * ( *h_ptr++ ); | ||
394 | |||
395 | /* main multiply accumulate loop for samples and coefficients */ | ||
396 | _Pragma( "loopbound min 10 max 10" ) | ||
397 | for ( i = 0; i < 10; i++ ) { | ||
398 | xa1 += ( long )( *ac_ptr++ ) * ( *h_ptr++ ); | ||
399 | xa2 += ( long )( *ad_ptr++ ) * ( *h_ptr++ ); | ||
400 | } | ||
401 | |||
402 | /* final mult/accumulate */ | ||
403 | xa1 += ( long )( *ac_ptr ) * ( *h_ptr++ ); | ||
404 | xa2 += ( long )( *ad_ptr ) * ( *h_ptr++ ); | ||
405 | |||
406 | /* scale by 2^14 */ | ||
407 | adpcm_dec_xout1 = xa1 >> 14; | ||
408 | adpcm_dec_xout2 = xa2 >> 14; | ||
409 | |||
410 | /* update delay lines */ | ||
411 | ac_ptr1 = ac_ptr - 1; | ||
412 | ad_ptr1 = ad_ptr - 1; | ||
413 | |||
414 | _Pragma( "loopbound min 10 max 10" ) | ||
415 | for ( i = 0; i < 10; i++ ) { | ||
416 | *ac_ptr-- = *ac_ptr1--; | ||
417 | *ad_ptr-- = *ad_ptr1--; | ||
418 | } | ||
419 | |||
420 | *ac_ptr = adpcm_dec_xd; | ||
421 | *ad_ptr = adpcm_dec_xs; | ||
422 | |||
423 | return; | ||
424 | } | ||
425 | |||
426 | |||
427 | /* filtez - compute predictor output signal (zero section) */ | ||
428 | /* input: bpl1-6 and dlt1-6, output: szl */ | ||
429 | int adpcm_dec_filtez( int *bpl, int *dlt ) | ||
430 | { | ||
431 | int i; | ||
432 | long int zl; | ||
433 | |||
434 | |||
435 | zl = ( long )( *bpl++ ) * ( *dlt++ ); | ||
436 | |||
437 | /* MAX: 5 */ | ||
438 | _Pragma( "loopbound min 5 max 5" ) | ||
439 | for ( i = 1; i < 6; i++ ) | ||
440 | zl += ( long )( *bpl++ ) * ( *dlt++ ); | ||
441 | |||
442 | return ( ( int )( zl >> 14 ) ); /* x2 here */ | ||
443 | } | ||
444 | |||
445 | |||
446 | /* filtep - compute predictor output signal (pole section) */ | ||
447 | /* input rlt1-2 and al1-2, output spl */ | ||
448 | int adpcm_dec_filtep( int rlt1, int al1, int rlt2, int al2 ) | ||
449 | { | ||
450 | long int pl, pl2; | ||
451 | |||
452 | |||
453 | pl = 2 * rlt1; | ||
454 | pl = ( long ) al1 * pl; | ||
455 | pl2 = 2 * rlt2; | ||
456 | pl += ( long ) al2 * pl2; | ||
457 | |||
458 | return ( ( int )( pl >> 15 ) ); | ||
459 | } | ||
460 | |||
461 | |||
462 | /* logscl - update log quantizer scale factor in lower sub-band */ | ||
463 | /* note that nbl is passed and returned */ | ||
464 | int adpcm_dec_logscl( int il, int nbl ) | ||
465 | { | ||
466 | long int wd; | ||
467 | |||
468 | |||
469 | wd = ( ( long )nbl * 127L ) >> 7L; /* leak factor 127/128 */ | ||
470 | nbl = ( int )wd + adpcm_dec_wl_code_table[il >> 2]; | ||
471 | |||
472 | if ( nbl < 0 ) | ||
473 | nbl = 0; | ||
474 | if ( nbl > 18432 ) | ||
475 | nbl = 18432; | ||
476 | |||
477 | return ( nbl ); | ||
478 | } | ||
479 | |||
480 | |||
481 | /* scalel: compute quantizer scale factor in lower or upper sub-band*/ | ||
482 | int adpcm_dec_scalel( int nbl, int shift_constant ) | ||
483 | { | ||
484 | int wd1, wd2, wd3; | ||
485 | |||
486 | |||
487 | wd1 = ( nbl >> 6 ) & 31; | ||
488 | wd2 = nbl >> 11; | ||
489 | wd3 = adpcm_dec_ilb_table[wd1] >> ( shift_constant + 1 - wd2 ); | ||
490 | |||
491 | return ( wd3 << 3 ); | ||
492 | } | ||
493 | |||
494 | |||
495 | /* upzero - inputs: dlt, dlti[0-5], bli[0-5], outputs: updated bli[0-5] */ | ||
496 | /* also implements delay of bli and update of dlti from dlt */ | ||
497 | void adpcm_dec_upzero( int dlt, int *dlti, int *bli ) | ||
498 | { | ||
499 | int i, wd2, wd3; | ||
500 | |||
501 | |||
502 | /*if dlt is zero, then no sum into bli */ | ||
503 | if ( dlt == 0 ) { | ||
504 | _Pragma( "loopbound min 6 max 6" ) | ||
505 | for ( i = 0; i < 6; i++ ) { | ||
506 | bli[i] = ( int )( ( 255L * bli[i] ) >> 8L ); /* leak factor of 255/256 */ | ||
507 | } | ||
508 | |||
509 | } else { | ||
510 | _Pragma( "loopbound min 6 max 6" ) | ||
511 | for ( i = 0; i < 6; i++ ) { | ||
512 | if ( ( long )dlt * dlti[i] >= 0 ) | ||
513 | wd2 = 128; | ||
514 | else | ||
515 | wd2 = -128; | ||
516 | |||
517 | wd3 = ( int )( ( 255L * bli[i] ) >> 8L ); /* leak factor of 255/256 */ | ||
518 | bli[i] = wd2 + wd3; | ||
519 | } | ||
520 | |||
521 | } | ||
522 | |||
523 | /* implement delay line for dlt */ | ||
524 | dlti[5] = dlti[4]; | ||
525 | dlti[4] = dlti[3]; | ||
526 | dlti[3] = dlti[2]; | ||
527 | dlti[1] = dlti[0]; | ||
528 | dlti[0] = dlt; | ||
529 | |||
530 | return; | ||
531 | } | ||
532 | |||
533 | |||
534 | /* uppol2 - update second predictor coefficient (pole section) */ | ||
535 | /* inputs: al1, al2, plt, plt1, plt2. outputs: apl2 */ | ||
536 | int adpcm_dec_uppol2( int al1, int al2, int plt, int plt1, int plt2 ) | ||
537 | { | ||
538 | long int wd2, wd4; | ||
539 | int apl2; | ||
540 | |||
541 | |||
542 | wd2 = 4L * ( long )al1; | ||
543 | if ( ( long )plt * plt1 >= 0L ) | ||
544 | wd2 = -wd2; /* check same sign */ | ||
545 | wd2 = wd2 >> 7; /* gain of 1/128 */ | ||
546 | |||
547 | if ( ( long )plt * plt2 >= 0L ) { | ||
548 | wd4 = wd2 + 128; /* same sign case */ | ||
549 | } else | ||
550 | wd4 = wd2 - 128; | ||
551 | apl2 = wd4 + ( 127L * ( long )al2 >> 7L ); /* leak factor of 127/128 */ | ||
552 | |||
553 | /* apl2 is limited to +-.75 */ | ||
554 | if ( apl2 > 12288 ) | ||
555 | apl2 = 12288; | ||
556 | if ( apl2 < -12288 ) | ||
557 | apl2 = -12288; | ||
558 | |||
559 | return ( apl2 ); | ||
560 | } | ||
561 | |||
562 | |||
563 | /* uppol1 - update first predictor coefficient (pole section) */ | ||
564 | /* inputs: al1, apl2, plt, plt1. outputs: apl1 */ | ||
565 | int adpcm_dec_uppol1( int al1, int apl2, int plt, int plt1 ) | ||
566 | { | ||
567 | long int wd2; | ||
568 | int wd3, apl1; | ||
569 | |||
570 | |||
571 | wd2 = ( ( long )al1 * 255L ) >> 8L; /* leak factor of 255/256 */ | ||
572 | if ( ( long )plt * plt1 >= 0L ) { | ||
573 | apl1 = ( int )wd2 + 192; /* same sign case */ | ||
574 | } else | ||
575 | apl1 = ( int )wd2 - 192; | ||
576 | |||
577 | /* note: wd3= .9375-.75 is always positive */ | ||
578 | wd3 = 15360 - apl2; /* limit value */ | ||
579 | if ( apl1 > wd3 ) | ||
580 | apl1 = wd3; | ||
581 | if ( apl1 < -wd3 ) | ||
582 | apl1 = -wd3; | ||
583 | |||
584 | return ( apl1 ); | ||
585 | } | ||
586 | |||
587 | |||
588 | /* logsch - update log quantizer scale factor in higher sub-band */ | ||
589 | /* note that nbh is passed and returned */ | ||
590 | int adpcm_dec_logsch( int ih, int nbh ) | ||
591 | { | ||
592 | int wd; | ||
593 | |||
594 | |||
595 | wd = ( ( long )nbh * 127L ) >> 7L; /* leak factor 127/128 */ | ||
596 | nbh = wd + adpcm_dec_wh_code_table[ih]; | ||
597 | |||
598 | if ( nbh < 0 ) | ||
599 | nbh = 0; | ||
600 | if ( nbh > 22528 ) | ||
601 | nbh = 22528; | ||
602 | |||
603 | return ( nbh ); | ||
604 | } | ||
605 | |||
606 | /* | ||
607 | Initialization- and return-value-related functions | ||
608 | */ | ||
609 | |||
610 | /* clear all storage locations */ | ||
611 | |||
612 | void adpcm_dec_reset() | ||
613 | { | ||
614 | int i; | ||
615 | |||
616 | |||
617 | adpcm_dec_detl = adpcm_dec_dec_detl = 32; /* reset to min scale factor */ | ||
618 | adpcm_dec_deth = adpcm_dec_dec_deth = 8; | ||
619 | adpcm_dec_nbl = adpcm_dec_al1 = adpcm_dec_al2 = adpcm_dec_plt1 = adpcm_dec_plt2 | ||
620 | = adpcm_dec_rlt1 = adpcm_dec_rlt2 = 0; | ||
621 | adpcm_dec_nbh = adpcm_dec_ah1 = adpcm_dec_ah2 = adpcm_dec_ph1 = adpcm_dec_ph2 = | ||
622 | adpcm_dec_rh1 = adpcm_dec_rh2 = 0; | ||
623 | adpcm_dec_dec_nbl = adpcm_dec_dec_al1 = adpcm_dec_dec_al2 = adpcm_dec_dec_plt1 = | ||
624 | adpcm_dec_dec_plt2 = adpcm_dec_dec_rlt1 = adpcm_dec_dec_rlt2 = 0; | ||
625 | adpcm_dec_dec_nbh = adpcm_dec_dec_ah1 = adpcm_dec_dec_ah2 = adpcm_dec_dec_ph1 = | ||
626 | adpcm_dec_dec_ph2 = adpcm_dec_dec_rh1 = adpcm_dec_dec_rh2 = 0; | ||
627 | |||
628 | _Pragma( "loopbound min 6 max 6" ) | ||
629 | for ( i = 0; i < 6; i++ ) { | ||
630 | ////delay_dltx[i] = 0; | ||
631 | adpcm_dec_delay_dhx[i] = 0; | ||
632 | adpcm_dec_dec_del_dltx[i] = 0; | ||
633 | adpcm_dec_dec_del_dhx[i] = 0; | ||
634 | } | ||
635 | |||
636 | _Pragma( "loopbound min 6 max 6" ) | ||
637 | for ( i = 0; i < 6; i++ ) { | ||
638 | //delay_bpl[i] = 0; | ||
639 | adpcm_dec_delay_bph[i] = 0; | ||
640 | adpcm_dec_dec_del_bpl[i] = 0; | ||
641 | adpcm_dec_dec_del_bph[i] = 0; | ||
642 | } | ||
643 | |||
644 | _Pragma( "loopbound min 11 max 11" ) | ||
645 | for ( i = 0; i < 11; i++ ) { | ||
646 | adpcm_dec_accumc[i] = 0; | ||
647 | adpcm_dec_accumd[i] = 0; | ||
648 | } | ||
649 | |||
650 | return; | ||
651 | } | ||
652 | |||
653 | void adpcm_dec_init() | ||
654 | { | ||
655 | int i, j, f; | ||
656 | volatile int x = 0; | ||
657 | /* read in amplitude and frequency for test data */ | ||
658 | j = 10; | ||
659 | f = 2000; | ||
660 | |||
661 | /* reset, initialize required memory */ | ||
662 | adpcm_dec_reset(); | ||
663 | |||
664 | /* 16 KHz sample rate */ | ||
665 | /* XXmain_0, MAX: 2 */ | ||
666 | /* Since the number of times we loop in adpcm_dec_sin depends on the | ||
667 | argument we add the fact: xxmain_0:[]: */ | ||
668 | _Pragma( "loopbound min 3 max 3" ) | ||
669 | for ( i = 0 ; i < SIZE ; i++ ) { | ||
670 | adpcm_dec_test_data[i] = ( int ) j * adpcm_dec_cos( f * PI * i ); | ||
671 | |||
672 | /* avoid constant-propagation optimizations */ | ||
673 | adpcm_dec_test_data[i] += x; | ||
674 | } | ||
675 | } | ||
676 | |||
677 | int adpcm_dec_return() | ||
678 | { | ||
679 | int i; | ||
680 | int check_sum = 0; | ||
681 | |||
682 | for (i = 0; i < IN_END; i += 2) | ||
683 | { | ||
684 | check_sum += ( adpcm_dec_result[i] + adpcm_dec_result[i + 1] ); | ||
685 | } | ||
686 | |||
687 | return check_sum != -2; | ||
688 | } | ||
689 | |||
690 | /* | ||
691 | Main functions | ||
692 | */ | ||
693 | |||
694 | void _Pragma( "entrypoint" ) adpcm_dec_main( void ) | ||
695 | { | ||
696 | int i; | ||
697 | |||
698 | _Pragma( "loopbound min 2 max 2" ) | ||
699 | for ( i = 0 ; i < IN_END ; i += 2 ) { | ||
700 | adpcm_dec_decode( adpcm_dec_compressed[i / 2] ); | ||
701 | adpcm_dec_result[i] = adpcm_dec_xout1; | ||
702 | adpcm_dec_result[i + 1] = adpcm_dec_xout2; | ||
703 | } | ||
704 | |||
705 | } | ||
706 | |||
707 | |||
708 | int main(int argc, char **argv) | ||
709 | { | ||
710 | SET_UP | ||
711 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
712 | START_LOOP | ||
713 | adpcm_dec_init(); | ||
714 | adpcm_dec_main(); | ||
715 | STOP_LOOP | ||
716 | } | ||
717 | WRITE_TO_FILE | ||
718 | return ( adpcm_dec_return() ); | ||
719 | } | ||
diff --git a/baseline/source/adpcm_dec/timedTest.txt b/baseline/source/adpcm_dec/timedTest.txt new file mode 100644 index 0000000..82c0948 --- /dev/null +++ b/baseline/source/adpcm_dec/timedTest.txt | |||
@@ -0,0 +1,100 @@ | |||
1 | adpcm_dec none 7 none 100 123133 timedTest 0 (null) | ||
2 | adpcm_dec none 7 none 100 123203 timedTest 1 (null) | ||
3 | adpcm_dec none 7 none 100 123482 timedTest 2 (null) | ||
4 | adpcm_dec none 7 none 100 138289 timedTest 3 (null) | ||
5 | adpcm_dec none 7 none 100 123272 timedTest 4 (null) | ||
6 | adpcm_dec none 7 none 100 122924 timedTest 5 (null) | ||
7 | adpcm_dec none 7 none 100 123064 timedTest 6 (null) | ||
8 | adpcm_dec none 7 none 100 123343 timedTest 7 (null) | ||
9 | adpcm_dec none 7 none 100 123553 timedTest 8 (null) | ||
10 | adpcm_dec none 7 none 100 123483 timedTest 9 (null) | ||
11 | adpcm_dec none 7 none 100 123692 timedTest 10 (null) | ||
12 | adpcm_dec none 7 none 100 123762 timedTest 11 (null) | ||
13 | adpcm_dec none 7 none 100 123622 timedTest 12 (null) | ||
14 | adpcm_dec none 7 none 100 138569 timedTest 13 (null) | ||
15 | adpcm_dec none 7 none 100 123831 timedTest 14 (null) | ||
16 | adpcm_dec none 7 none 100 123343 timedTest 15 (null) | ||
17 | adpcm_dec none 7 none 100 123552 timedTest 16 (null) | ||
18 | adpcm_dec none 7 none 100 123622 timedTest 17 (null) | ||
19 | adpcm_dec none 7 none 100 123761 timedTest 18 (null) | ||
20 | adpcm_dec none 7 none 100 123343 timedTest 19 (null) | ||
21 | adpcm_dec none 7 none 100 123692 timedTest 20 (null) | ||
22 | adpcm_dec none 7 none 100 123972 timedTest 21 (null) | ||
23 | adpcm_dec none 7 none 100 123762 timedTest 22 (null) | ||
24 | adpcm_dec none 7 none 100 123622 timedTest 23 (null) | ||
25 | adpcm_dec none 7 none 100 123482 timedTest 24 (null) | ||
26 | adpcm_dec none 7 none 100 123552 timedTest 25 (null) | ||
27 | adpcm_dec none 7 none 100 123832 timedTest 26 (null) | ||
28 | adpcm_dec none 7 none 100 123971 timedTest 27 (null) | ||
29 | adpcm_dec none 7 none 100 123692 timedTest 28 (null) | ||
30 | adpcm_dec none 7 none 100 123832 timedTest 29 (null) | ||
31 | adpcm_dec none 7 none 100 123762 timedTest 30 (null) | ||
32 | adpcm_dec none 7 none 100 123902 timedTest 31 (null) | ||
33 | adpcm_dec none 7 none 100 123692 timedTest 32 (null) | ||
34 | adpcm_dec none 7 none 100 123762 timedTest 33 (null) | ||
35 | adpcm_dec none 7 none 100 123762 timedTest 34 (null) | ||
36 | adpcm_dec none 7 none 100 123832 timedTest 35 (null) | ||
37 | adpcm_dec none 7 none 100 124041 timedTest 36 (null) | ||
38 | adpcm_dec none 7 none 100 123762 timedTest 37 (null) | ||
39 | adpcm_dec none 7 none 100 123553 timedTest 38 (null) | ||
40 | adpcm_dec none 7 none 100 123692 timedTest 39 (null) | ||
41 | adpcm_dec none 7 none 100 138709 timedTest 40 (null) | ||
42 | adpcm_dec none 7 none 100 123762 timedTest 41 (null) | ||
43 | adpcm_dec none 7 none 100 123971 timedTest 42 (null) | ||
44 | adpcm_dec none 7 none 100 123832 timedTest 43 (null) | ||
45 | adpcm_dec none 7 none 100 123622 timedTest 44 (null) | ||
46 | adpcm_dec none 7 none 100 123692 timedTest 45 (null) | ||
47 | adpcm_dec none 7 none 100 123692 timedTest 46 (null) | ||
48 | adpcm_dec none 7 none 100 123622 timedTest 47 (null) | ||
49 | adpcm_dec none 7 none 100 123971 timedTest 48 (null) | ||
50 | adpcm_dec none 7 none 100 123762 timedTest 49 (null) | ||
51 | adpcm_dec none 7 none 100 124042 timedTest 50 (null) | ||
52 | adpcm_dec none 7 none 100 123971 timedTest 51 (null) | ||
53 | adpcm_dec none 7 none 100 123482 timedTest 52 (null) | ||
54 | adpcm_dec none 7 none 100 123832 timedTest 53 (null) | ||
55 | adpcm_dec none 7 none 100 123692 timedTest 54 (null) | ||
56 | adpcm_dec none 7 none 100 124041 timedTest 55 (null) | ||
57 | adpcm_dec none 7 none 100 123902 timedTest 56 (null) | ||
58 | adpcm_dec none 7 none 100 123972 timedTest 57 (null) | ||
59 | adpcm_dec none 7 none 100 123901 timedTest 58 (null) | ||
60 | adpcm_dec none 7 none 100 123692 timedTest 59 (null) | ||
61 | adpcm_dec none 7 none 100 123553 timedTest 60 (null) | ||
62 | adpcm_dec none 7 none 100 123692 timedTest 61 (null) | ||
63 | adpcm_dec none 7 none 100 124041 timedTest 62 (null) | ||
64 | adpcm_dec none 7 none 100 123971 timedTest 63 (null) | ||
65 | adpcm_dec none 7 none 100 124251 timedTest 64 (null) | ||
66 | adpcm_dec none 7 none 100 123622 timedTest 65 (null) | ||
67 | adpcm_dec none 7 none 100 123972 timedTest 66 (null) | ||
68 | adpcm_dec none 7 none 100 137870 timedTest 67 (null) | ||
69 | adpcm_dec none 7 none 100 123622 timedTest 68 (null) | ||
70 | adpcm_dec none 7 none 100 123553 timedTest 69 (null) | ||
71 | adpcm_dec none 7 none 100 123901 timedTest 70 (null) | ||
72 | adpcm_dec none 7 none 100 124041 timedTest 71 (null) | ||
73 | adpcm_dec none 7 none 100 123483 timedTest 72 (null) | ||
74 | adpcm_dec none 7 none 100 123831 timedTest 73 (null) | ||
75 | adpcm_dec none 7 none 100 123971 timedTest 74 (null) | ||
76 | adpcm_dec none 7 none 100 123413 timedTest 75 (null) | ||
77 | adpcm_dec none 7 none 100 123622 timedTest 76 (null) | ||
78 | adpcm_dec none 7 none 100 123553 timedTest 77 (null) | ||
79 | adpcm_dec none 7 none 100 123692 timedTest 78 (null) | ||
80 | adpcm_dec none 7 none 100 123692 timedTest 79 (null) | ||
81 | adpcm_dec none 7 none 100 123832 timedTest 80 (null) | ||
82 | adpcm_dec none 7 none 100 123692 timedTest 81 (null) | ||
83 | adpcm_dec none 7 none 100 123692 timedTest 82 (null) | ||
84 | adpcm_dec none 7 none 100 123482 timedTest 83 (null) | ||
85 | adpcm_dec none 7 none 100 124251 timedTest 84 (null) | ||
86 | adpcm_dec none 7 none 100 124111 timedTest 85 (null) | ||
87 | adpcm_dec none 7 none 100 124041 timedTest 86 (null) | ||
88 | adpcm_dec none 7 none 100 123692 timedTest 87 (null) | ||
89 | adpcm_dec none 7 none 100 124111 timedTest 88 (null) | ||
90 | adpcm_dec none 7 none 100 123972 timedTest 89 (null) | ||
91 | adpcm_dec none 7 none 100 123832 timedTest 90 (null) | ||
92 | adpcm_dec none 7 none 100 123483 timedTest 91 (null) | ||
93 | adpcm_dec none 7 none 100 123483 timedTest 92 (null) | ||
94 | adpcm_dec none 7 none 100 123692 timedTest 93 (null) | ||
95 | adpcm_dec none 7 none 100 124390 timedTest 94 (null) | ||
96 | adpcm_dec none 7 none 100 123831 timedTest 95 (null) | ||
97 | adpcm_dec none 7 none 100 123762 timedTest 96 (null) | ||
98 | adpcm_dec none 7 none 100 123692 timedTest 97 (null) | ||
99 | adpcm_dec none 7 none 100 123692 timedTest 98 (null) | ||
100 | adpcm_dec none 7 none 100 123902 timedTest 99 (null) | ||
diff --git a/baseline/source/adpcm_enc/ChangeLog.txt b/baseline/source/adpcm_enc/ChangeLog.txt new file mode 100644 index 0000000..0029192 --- /dev/null +++ b/baseline/source/adpcm_enc/ChangeLog.txt | |||
@@ -0,0 +1,34 @@ | |||
1 | File: adpcm_enc.c | ||
2 | Original provenience: C Algorithms for Real-Time DSP by P. M. Embree | ||
3 | |||
4 | 2016-03-07: | ||
5 | - Rename adpcm_encode to adpcm_enc | ||
6 | - Add generic TACLeBench header | ||
7 | - Remove #define Seoul_Mate around main | ||
8 | - Remove swedish comment after setting frequency to 2000 | ||
9 | - Introduce adpcm_enc_init, adpcm_main, adpcm_return | ||
10 | - Make test_data and compressed global variables | ||
11 | 2016-04-26: | ||
12 | - Remove forward declarations of functions gaussian, iir_filter, fir_filter, | ||
13 | fft, setup_codec, key_down, int_enable, int_disable, flags, getinput, | ||
14 | sendout, which are never defined | ||
15 | - Remove commented declarations of invqxl and invqah | ||
16 | - Remove unused structure COMPLEX | ||
17 | - Remove prefix my_ from functions names my_fabs, my_cos, my_sin, my_abs | ||
18 | - Prefix all global symbols with benchmark name | ||
19 | - Remove variables accumc and accumd together with their initialization loop, | ||
20 | since they are never read | ||
21 | - Remove unused variables xs and xd | ||
22 | - Remove unused array wl_table | ||
23 | - Remove unused variable rs and rh | ||
24 | - Remove unused variables and their initializations (only required for decoder): | ||
25 | ilr, yl, rl, dec_deth, dec_del_bpl, dec_plt, dec_plt1, dec_plt2, dec_szl, | ||
26 | dec_spl, dec_sl, dec_rlt1, dec_rlt2, dec_rlt, dec_al1, dec_al2, dl, dec_nbl, | ||
27 | dec_yh, dec_dh, dec_nbh, dec_rh2, dec_ah1, dec_ah2, dec_ph, dec_sph, dec_sh, | ||
28 | dec_rh, dec_ph1, dec_ph2, | ||
29 | - Add addition on each element of input data with volatile variable to | ||
30 | avoid constant-propagation optimizations through the compoiler | ||
31 | - Add computation of check sum | ||
32 | - Add return return statement: zero if check sum is correct | ||
33 | 2016-05-20: | ||
34 | - Apply code formatting with astyle | ||
diff --git a/baseline/source/adpcm_enc/adpcm_enc.c b/baseline/source/adpcm_enc/adpcm_enc.c new file mode 100644 index 0000000..d9fb09a --- /dev/null +++ b/baseline/source/adpcm_enc/adpcm_enc.c | |||
@@ -0,0 +1,758 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: adpcm_enc | ||
7 | |||
8 | Author: Sung-Soo Lim | ||
9 | |||
10 | Function: CCITT G.722 ADPCM (Adaptive Differential Pulse Code Modulation) | ||
11 | algorithm. 16khz sample rate data is stored in the array test_data[SIZE]. | ||
12 | Results are stored in the array compressed[SIZE]. | ||
13 | Execution time is determined by the constant SIZE (default value is 2000). | ||
14 | |||
15 | |||
16 | Source: C Algorithms for Real-Time DSP by P. M. Embree | ||
17 | and SNU-RT Benchmark Suite for Worst Case Timing Analysis | ||
18 | collected and modified by S.-S. Lim <sslim@archi.snu.ac.kr> | ||
19 | |||
20 | Original name: adpcm_encoder | ||
21 | |||
22 | Changes: no major functional changes | ||
23 | |||
24 | License: may be used, modified, and re-distributed freely, but the | ||
25 | SNU-RT Benchmark Suite must be acknowledged | ||
26 | |||
27 | */ | ||
28 | |||
29 | |||
30 | /* common sampling rate for sound cards on IBM/PC */ | ||
31 | |||
32 | #include "../extra.h" | ||
33 | #define SAMPLE_RATE 11025 | ||
34 | |||
35 | #define PI 3141 | ||
36 | #define SIZE 3 | ||
37 | #define IN_END 4 | ||
38 | |||
39 | |||
40 | /* | ||
41 | Forward declaration of functions | ||
42 | */ | ||
43 | |||
44 | int adpcm_enc_encode( int, int ); | ||
45 | int adpcm_enc_filtez( int *bpl, int *dlt ); | ||
46 | void adpcm_enc_upzero( int dlt, int *dlti, int *bli ); | ||
47 | int adpcm_enc_filtep( int rlt1, int al1, int rlt2, int al2 ); | ||
48 | int adpcm_enc_quantl( int el, int detl ); | ||
49 | int adpcm_enc_logscl( int il, int nbl ); | ||
50 | int adpcm_enc_scalel( int nbl, int shift_constant ); | ||
51 | int adpcm_enc_uppol2( int al1, int al2, int plt, int plt1, int plt2 ); | ||
52 | int adpcm_enc_uppol1( int al1, int apl2, int plt, int plt1 ); | ||
53 | int adpcm_enc_logsch( int ih, int nbh ); | ||
54 | void adpcm_enc_reset(); | ||
55 | int adpcm_enc_fabs( int n ); | ||
56 | int adpcm_enc_cos( int n ); | ||
57 | int adpcm_enc_sin( int n ); | ||
58 | int adpcm_enc_abs( int n ); | ||
59 | void adpcm_enc_init(void); | ||
60 | void adpcm_enc_main(void); | ||
61 | int adpcm_enc_return(void); | ||
62 | //int main(void); | ||
63 | |||
64 | /* | ||
65 | Forward declaration of global variables | ||
66 | */ | ||
67 | |||
68 | int adpcm_enc_test_data[SIZE * 2], adpcm_enc_compressed[SIZE]; | ||
69 | |||
70 | |||
71 | /* G722 C code */ | ||
72 | |||
73 | /* variables for transimit quadrature mirror filter here */ | ||
74 | int adpcm_enc_tqmf[24]; | ||
75 | |||
76 | /* QMF filter coefficients: | ||
77 | scaled by a factor of 4 compared to G722 CCITT recommendation */ | ||
78 | int adpcm_enc_h[24] = { | ||
79 | 12, -44, -44, 212, 48, -624, 128, 1448, | ||
80 | -840, -3220, 3804, 15504, 15504, 3804, -3220, -840, | ||
81 | 1448, 128, -624, 48, 212, -44, -44, 12 | ||
82 | }; | ||
83 | |||
84 | int adpcm_enc_xl, adpcm_enc_xh; | ||
85 | |||
86 | /* variables for encoder (hi and lo) here */ | ||
87 | |||
88 | int adpcm_enc_il, adpcm_enc_szl, adpcm_enc_spl, adpcm_enc_sl, adpcm_enc_el; | ||
89 | |||
90 | int adpcm_enc_qq4_code4_table[16] = { | ||
91 | 0, -20456, -12896, -8968, -6288, -4240, -2584, -1200, | ||
92 | 20456, 12896, 8968, 6288, 4240, 2584, 1200, 0 | ||
93 | }; | ||
94 | |||
95 | int adpcm_enc_qq5_code5_table[32] = { | ||
96 | -280, -280, -23352, -17560, -14120, -11664, -9752, -8184, | ||
97 | -6864, -5712, -4696, -3784, -2960, -2208, -1520, -880, | ||
98 | 23352, 17560, 14120, 11664, 9752, 8184, 6864, 5712, | ||
99 | 4696, 3784, 2960, 2208, 1520, 880, 280, -280 | ||
100 | }; | ||
101 | |||
102 | int adpcm_enc_qq6_code6_table[64] = { | ||
103 | -136, -136, -136, -136, -24808, -21904, -19008, -16704, | ||
104 | -14984, -13512, -12280, -11192, -10232, -9360, -8576, -7856, | ||
105 | -7192, -6576, -6000, -5456, -4944, -4464, -4008, -3576, | ||
106 | -3168, -2776, -2400, -2032, -1688, -1360, -1040, -728, | ||
107 | 24808, 21904, 19008, 16704, 14984, 13512, 12280, 11192, | ||
108 | 10232, 9360, 8576, 7856, 7192, 6576, 6000, 5456, | ||
109 | 4944, 4464, 4008, 3576, 3168, 2776, 2400, 2032, | ||
110 | 1688, 1360, 1040, 728, 432, 136, -432, -136 | ||
111 | }; | ||
112 | |||
113 | int adpcm_enc_delay_bpl[6]; | ||
114 | |||
115 | int adpcm_enc_delay_dltx[6]; | ||
116 | |||
117 | int adpcm_enc_wl_code_table[16] = { | ||
118 | -60, 3042, 1198, 538, 334, 172, 58, -30, | ||
119 | 3042, 1198, 538, 334, 172, 58, -30, -60 | ||
120 | }; | ||
121 | |||
122 | int adpcm_enc_ilb_table[32] = { | ||
123 | 2048, 2093, 2139, 2186, 2233, 2282, 2332, 2383, | ||
124 | 2435, 2489, 2543, 2599, 2656, 2714, 2774, 2834, | ||
125 | 2896, 2960, 3025, 3091, 3158, 3228, 3298, 3371, | ||
126 | 3444, 3520, 3597, 3676, 3756, 3838, 3922, 4008 | ||
127 | }; | ||
128 | |||
129 | int adpcm_enc_nbl; /* delay line */ | ||
130 | int adpcm_enc_al1, adpcm_enc_al2; | ||
131 | int adpcm_enc_plt, adpcm_enc_plt1, adpcm_enc_plt2; | ||
132 | int adpcm_enc_dlt; | ||
133 | int adpcm_enc_rlt, adpcm_enc_rlt1, adpcm_enc_rlt2; | ||
134 | |||
135 | /* decision levels - pre-multiplied by 8, 0 to indicate end */ | ||
136 | int adpcm_enc_decis_levl[30] = { | ||
137 | 280, 576, 880, 1200, 1520, 1864, 2208, 2584, | ||
138 | 2960, 3376, 3784, 4240, 4696, 5200, 5712, 6288, | ||
139 | 6864, 7520, 8184, 8968, 9752, 10712, 11664, 12896, | ||
140 | 14120, 15840, 17560, 20456, 23352, 32767 | ||
141 | }; | ||
142 | |||
143 | int adpcm_enc_detl; | ||
144 | |||
145 | /* quantization table 31 long to make quantl look-up easier, | ||
146 | last entry is for mil=30 case when wd is max */ | ||
147 | int adpcm_enc_quant26bt_pos[31] = { | ||
148 | 61, 60, 59, 58, 57, 56, 55, 54, | ||
149 | 53, 52, 51, 50, 49, 48, 47, 46, | ||
150 | 45, 44, 43, 42, 41, 40, 39, 38, | ||
151 | 37, 36, 35, 34, 33, 32, 32 | ||
152 | }; | ||
153 | |||
154 | /* quantization table 31 long to make quantl look-up easier, | ||
155 | last entry is for mil=30 case when wd is max */ | ||
156 | int adpcm_enc_quant26bt_neg[31] = { | ||
157 | 63, 62, 31, 30, 29, 28, 27, 26, | ||
158 | 25, 24, 23, 22, 21, 20, 19, 18, | ||
159 | 17, 16, 15, 14, 13, 12, 11, 10, | ||
160 | 9, 8, 7, 6, 5, 4, 4 | ||
161 | }; | ||
162 | |||
163 | |||
164 | int adpcm_enc_deth; | ||
165 | int adpcm_enc_sh; /* this comes from adaptive predictor */ | ||
166 | int adpcm_enc_eh; | ||
167 | |||
168 | int adpcm_enc_qq2_code2_table[4] = { | ||
169 | -7408, -1616, 7408, 1616 | ||
170 | }; | ||
171 | |||
172 | int adpcm_enc_wh_code_table[4] = { | ||
173 | 798, -214, 798, -214 | ||
174 | }; | ||
175 | |||
176 | |||
177 | int adpcm_enc_dh, adpcm_enc_ih; | ||
178 | int adpcm_enc_nbh, adpcm_enc_szh; | ||
179 | int adpcm_enc_sph, adpcm_enc_ph, adpcm_enc_yh; | ||
180 | |||
181 | int adpcm_enc_delay_dhx[6]; | ||
182 | int adpcm_enc_delay_bph[6]; | ||
183 | |||
184 | int adpcm_enc_ah1, adpcm_enc_ah2; | ||
185 | int adpcm_enc_ph1, adpcm_enc_ph2; | ||
186 | int adpcm_enc_rh1, adpcm_enc_rh2; | ||
187 | |||
188 | |||
189 | /* G722 encode function two ints in, one 8 bit output */ | ||
190 | |||
191 | /* put input samples in xin1 = first value, xin2 = second value */ | ||
192 | /* returns il and ih stored together */ | ||
193 | |||
194 | |||
195 | /* MAX: 1 */ | ||
196 | int adpcm_enc_abs( int n ) | ||
197 | { | ||
198 | int m; | ||
199 | |||
200 | |||
201 | if ( n >= 0 ) | ||
202 | m = n; | ||
203 | else | ||
204 | m = -n; | ||
205 | |||
206 | return m; | ||
207 | } | ||
208 | |||
209 | |||
210 | /* MAX: 1 */ | ||
211 | int adpcm_enc_fabs( int n ) | ||
212 | { | ||
213 | int f; | ||
214 | |||
215 | |||
216 | if ( n >= 0 ) | ||
217 | f = n; | ||
218 | else | ||
219 | f = -n; | ||
220 | |||
221 | return f; | ||
222 | } | ||
223 | |||
224 | |||
225 | int adpcm_enc_sin( int rad ) | ||
226 | { | ||
227 | int diff; | ||
228 | int app = 0; | ||
229 | int inc = 1; | ||
230 | |||
231 | |||
232 | /* MAX dependent on rad's value, say 50 */ | ||
233 | _Pragma("loopbound min 0 max 0") | ||
234 | while ( rad > 2 * PI ) { | ||
235 | rad -= 2 * PI; | ||
236 | } | ||
237 | |||
238 | /* MAX dependent on rad's value, say 50 */ | ||
239 | _Pragma("loopbound min 0 max 1999") | ||
240 | while ( rad < -2 * PI ) { | ||
241 | rad += 2 * PI; | ||
242 | } | ||
243 | |||
244 | diff = rad; | ||
245 | app = diff; | ||
246 | diff = (diff * (-(rad*rad))) / ((2 * inc) * (2 * inc + 1)); | ||
247 | app = app + diff; | ||
248 | inc++; | ||
249 | |||
250 | /* REALLY: while(my_fabs(diff) >= 0.00001) { */ | ||
251 | /* MAX: 1000 */ | ||
252 | _Pragma("loopbound min 849 max 2424") | ||
253 | while ( adpcm_enc_fabs( diff ) >= 1 ) { | ||
254 | diff = (diff * (-(rad*rad))) / ((2 * inc) * (2 * inc + 1)); | ||
255 | app = app + diff; | ||
256 | inc++; | ||
257 | } | ||
258 | |||
259 | return app; | ||
260 | } | ||
261 | |||
262 | |||
263 | int adpcm_enc_cos( int rad ) | ||
264 | { | ||
265 | return( adpcm_enc_sin( PI / 2 - rad ) ); | ||
266 | } | ||
267 | |||
268 | |||
269 | /* MAX: 1 */ | ||
270 | int adpcm_enc_encode( int xin1, int xin2 ) | ||
271 | { | ||
272 | int i; | ||
273 | int *h_ptr, *tqmf_ptr, *tqmf_ptr1; | ||
274 | long int xa, xb; | ||
275 | int decis; | ||
276 | |||
277 | |||
278 | /* transmit quadrature mirror filters implemented here */ | ||
279 | h_ptr = adpcm_enc_h; | ||
280 | tqmf_ptr = adpcm_enc_tqmf; | ||
281 | xa = (long)(*tqmf_ptr++) * (*h_ptr++); | ||
282 | xb = (long)(*tqmf_ptr++) * (*h_ptr++); | ||
283 | |||
284 | /* main multiply accumulate loop for samples and coefficients */ | ||
285 | /* MAX: 10 */ | ||
286 | _Pragma("loopbound min 10 max 10") | ||
287 | for ( i = 0; i < 10; i++ ) { | ||
288 | xa += (long)(*tqmf_ptr++) * (*h_ptr++); | ||
289 | xb += (long)(*tqmf_ptr++) * (*h_ptr++); | ||
290 | } | ||
291 | |||
292 | /* final mult/accumulate */ | ||
293 | xa += (long)(*tqmf_ptr++) * (*h_ptr++); | ||
294 | xb += (long)(*tqmf_ptr) * (*h_ptr++); | ||
295 | |||
296 | /* update delay line tqmf */ | ||
297 | tqmf_ptr1 = tqmf_ptr - 2; | ||
298 | /* MAX: 22 */ | ||
299 | _Pragma("loopbound min 22 max 22") | ||
300 | for ( i = 0; i < 22; i++ ) { | ||
301 | *tqmf_ptr-- = *tqmf_ptr1--; | ||
302 | } | ||
303 | |||
304 | *tqmf_ptr-- = xin1; | ||
305 | *tqmf_ptr = xin2; | ||
306 | |||
307 | /* scale outputs */ | ||
308 | adpcm_enc_xl = (xa + xb) >> 15; | ||
309 | adpcm_enc_xh = (xa - xb) >> 15; | ||
310 | |||
311 | /* end of quadrature mirror filter code */ | ||
312 | |||
313 | /* starting with lower sub band encoder */ | ||
314 | |||
315 | /* filtez - compute predictor output section - zero section */ | ||
316 | adpcm_enc_szl = adpcm_enc_filtez( adpcm_enc_delay_bpl, adpcm_enc_delay_dltx ); | ||
317 | |||
318 | /* filtep - compute predictor output signal (pole section) */ | ||
319 | adpcm_enc_spl = adpcm_enc_filtep( adpcm_enc_rlt1, adpcm_enc_al1, adpcm_enc_rlt2, adpcm_enc_al2 ); | ||
320 | |||
321 | /* compute the predictor output value in the lower sub_band encoder */ | ||
322 | adpcm_enc_sl = adpcm_enc_szl + adpcm_enc_spl; | ||
323 | adpcm_enc_el = adpcm_enc_xl - adpcm_enc_sl; | ||
324 | |||
325 | /* quantl: quantize the difference signal */ | ||
326 | adpcm_enc_il = adpcm_enc_quantl( adpcm_enc_el, adpcm_enc_detl ); | ||
327 | |||
328 | /* invqxl: computes quantized difference signal */ | ||
329 | /* for invqbl, truncate by 2 lsbs, so mode = 3 */ | ||
330 | adpcm_enc_dlt = ( (long) adpcm_enc_detl * adpcm_enc_qq4_code4_table[adpcm_enc_il >> 2] ) >> 15; | ||
331 | |||
332 | /* logscl: updates logarithmic quant. scale factor in low sub band */ | ||
333 | adpcm_enc_nbl = adpcm_enc_logscl( adpcm_enc_il, adpcm_enc_nbl ); | ||
334 | |||
335 | /* scalel: compute the quantizer scale factor in the lower sub band */ | ||
336 | /* calling parameters nbl and 8 (constant such that scalel can be scaleh) */ | ||
337 | adpcm_enc_detl = adpcm_enc_scalel( adpcm_enc_nbl, 8 ); | ||
338 | |||
339 | /* parrec - simple addition to compute recontructed signal for adaptive pred */ | ||
340 | adpcm_enc_plt = adpcm_enc_dlt + adpcm_enc_szl; | ||
341 | |||
342 | /* upzero: update zero section predictor coefficients (sixth order)*/ | ||
343 | /* calling parameters: dlt, dlt1, dlt2, ..., dlt6 from dlt */ | ||
344 | /* bpli (linear_buffer in which all six values are delayed */ | ||
345 | /* return params: updated bpli, delayed dltx */ | ||
346 | adpcm_enc_upzero( adpcm_enc_dlt, adpcm_enc_delay_dltx, adpcm_enc_delay_bpl ); | ||
347 | |||
348 | /* uppol2- update second predictor coefficient apl2 and delay it as al2 */ | ||
349 | /* calling parameters: al1, al2, plt, plt1, plt2 */ | ||
350 | adpcm_enc_al2 = adpcm_enc_uppol2( adpcm_enc_al1, adpcm_enc_al2, adpcm_enc_plt, adpcm_enc_plt1, adpcm_enc_plt2 ); | ||
351 | |||
352 | /* uppol1 :update first predictor coefficient apl1 and delay it as al1 */ | ||
353 | /* calling parameters: al1, apl2, plt, plt1 */ | ||
354 | adpcm_enc_al1 = adpcm_enc_uppol1( adpcm_enc_al1, adpcm_enc_al2, adpcm_enc_plt, adpcm_enc_plt1); | ||
355 | |||
356 | /* recons : compute recontructed signal for adaptive predictor */ | ||
357 | adpcm_enc_rlt = adpcm_enc_sl + adpcm_enc_dlt; | ||
358 | |||
359 | /* done with lower sub_band encoder; now implement delays for next time*/ | ||
360 | adpcm_enc_rlt2 = adpcm_enc_rlt1; | ||
361 | adpcm_enc_rlt1 = adpcm_enc_rlt; | ||
362 | adpcm_enc_plt2 = adpcm_enc_plt1; | ||
363 | adpcm_enc_plt1 = adpcm_enc_plt; | ||
364 | |||
365 | /* high band encode */ | ||
366 | |||
367 | adpcm_enc_szh = adpcm_enc_filtez( adpcm_enc_delay_bph, adpcm_enc_delay_dhx ); | ||
368 | |||
369 | adpcm_enc_sph = adpcm_enc_filtep( adpcm_enc_rh1, adpcm_enc_ah1, adpcm_enc_rh2, adpcm_enc_ah2 ); | ||
370 | |||
371 | /* predic: sh = sph + szh */ | ||
372 | adpcm_enc_sh = adpcm_enc_sph + adpcm_enc_szh; | ||
373 | /* subtra: eh = xh - sh */ | ||
374 | adpcm_enc_eh = adpcm_enc_xh - adpcm_enc_sh; | ||
375 | |||
376 | /* quanth - quantization of difference signal for higher sub-band */ | ||
377 | /* quanth: in-place for speed params: eh, deth (has init. value) */ | ||
378 | if ( adpcm_enc_eh >= 0 ) | ||
379 | adpcm_enc_ih = 3; /* 2,3 are pos codes */ | ||
380 | else | ||
381 | adpcm_enc_ih = 1; /* 0,1 are neg codes */ | ||
382 | |||
383 | decis = ( 564L * (long)adpcm_enc_deth ) >> 12L; | ||
384 | if ( adpcm_enc_abs( adpcm_enc_eh ) > decis ) | ||
385 | adpcm_enc_ih--; /* mih = 2 case */ | ||
386 | |||
387 | /* invqah: compute the quantized difference signal, higher sub-band*/ | ||
388 | adpcm_enc_dh = ( (long)adpcm_enc_deth * adpcm_enc_qq2_code2_table[adpcm_enc_ih] ) >> 15L ; | ||
389 | |||
390 | /* logsch: update logarithmic quantizer scale factor in hi sub-band*/ | ||
391 | adpcm_enc_nbh = adpcm_enc_logsch( adpcm_enc_ih, adpcm_enc_nbh ); | ||
392 | |||
393 | /* note : scalel and scaleh use same code, different parameters */ | ||
394 | adpcm_enc_deth = adpcm_enc_scalel( adpcm_enc_nbh, 10 ); | ||
395 | |||
396 | /* parrec - add pole predictor output to quantized diff. signal */ | ||
397 | adpcm_enc_ph = adpcm_enc_dh + adpcm_enc_szh; | ||
398 | |||
399 | /* upzero: update zero section predictor coefficients (sixth order) */ | ||
400 | /* calling parameters: dh, dhi, bphi */ | ||
401 | /* return params: updated bphi, delayed dhx */ | ||
402 | adpcm_enc_upzero( adpcm_enc_dh, adpcm_enc_delay_dhx, adpcm_enc_delay_bph ); | ||
403 | |||
404 | /* uppol2: update second predictor coef aph2 and delay as ah2 */ | ||
405 | /* calling params: ah1, ah2, ph, ph1, ph2 */ | ||
406 | adpcm_enc_ah2 = adpcm_enc_uppol2( adpcm_enc_ah1, adpcm_enc_ah2, adpcm_enc_ph, adpcm_enc_ph1, adpcm_enc_ph2 ); | ||
407 | |||
408 | /* uppol1: update first predictor coef. aph2 and delay it as ah1 */ | ||
409 | adpcm_enc_ah1 = adpcm_enc_uppol1( adpcm_enc_ah1, adpcm_enc_ah2, adpcm_enc_ph, adpcm_enc_ph1 ); | ||
410 | |||
411 | /* recons for higher sub-band */ | ||
412 | adpcm_enc_yh = adpcm_enc_sh + adpcm_enc_dh; | ||
413 | |||
414 | /* done with higher sub-band encoder, now Delay for next time */ | ||
415 | adpcm_enc_rh2 = adpcm_enc_rh1; | ||
416 | adpcm_enc_rh1 = adpcm_enc_yh; | ||
417 | adpcm_enc_ph2 = adpcm_enc_ph1; | ||
418 | adpcm_enc_ph1 = adpcm_enc_ph; | ||
419 | |||
420 | /* multiplex ih and il to get signals together */ | ||
421 | return( adpcm_enc_il | (adpcm_enc_ih << 6) ); | ||
422 | } | ||
423 | |||
424 | |||
425 | /* filtez - compute predictor output signal (zero section) */ | ||
426 | /* input: bpl1-6 and dlt1-6, output: szl */ | ||
427 | int adpcm_enc_filtez( int *bpl, int *dlt ) | ||
428 | { | ||
429 | int i; | ||
430 | long int zl; | ||
431 | |||
432 | |||
433 | zl = (long)(*bpl++) * (*dlt++); | ||
434 | |||
435 | /* MAX: 5 */ | ||
436 | _Pragma("loopbound min 5 max 5") | ||
437 | for ( i = 1; i < 6; i++ ) { | ||
438 | zl += (long)(*bpl++) * (*dlt++); | ||
439 | } | ||
440 | |||
441 | return( (int)(zl >> 14) ); /* x2 here */ | ||
442 | } | ||
443 | |||
444 | |||
445 | /* filtep - compute predictor output signal (pole section) */ | ||
446 | /* input rlt1-2 and al1-2, output spl */ | ||
447 | int adpcm_enc_filtep( int rlt1, int al1, int rlt2, int al2 ) | ||
448 | { | ||
449 | long int pl, pl2; | ||
450 | |||
451 | |||
452 | pl = 2 * rlt1; | ||
453 | pl = (long) al1 * pl; | ||
454 | pl2 = 2 * rlt2; | ||
455 | pl += (long) al2 * pl2; | ||
456 | |||
457 | return( (int)(pl >> 15) ); | ||
458 | } | ||
459 | |||
460 | |||
461 | /* quantl - quantize the difference signal in the lower sub-band */ | ||
462 | int adpcm_enc_quantl( int el, int detl ) | ||
463 | { | ||
464 | int ril, mil; | ||
465 | long int wd, decis; | ||
466 | |||
467 | |||
468 | /* abs of difference signal */ | ||
469 | wd = adpcm_enc_abs( el ); | ||
470 | |||
471 | /* determine mil based on decision levels and detl gain */ | ||
472 | /* MAX: 30 */ | ||
473 | _Pragma("loopbound min 1 max 30") | ||
474 | for ( mil = 0; mil < 30; mil++ ) { | ||
475 | decis = (adpcm_enc_decis_levl[mil] * (long)detl) >> 15L; | ||
476 | if ( wd <= decis ) | ||
477 | break; | ||
478 | } | ||
479 | |||
480 | /* if mil=30 then wd is less than all decision levels */ | ||
481 | if ( el >= 0 ) | ||
482 | ril = adpcm_enc_quant26bt_pos[mil]; | ||
483 | else | ||
484 | ril = adpcm_enc_quant26bt_neg[mil]; | ||
485 | |||
486 | return( ril ); | ||
487 | } | ||
488 | |||
489 | |||
490 | /* invqxl is either invqbl or invqal depending on parameters passed */ | ||
491 | /* returns dlt, code table is pre-multiplied by 8 */ | ||
492 | |||
493 | /* int invqxl(int il,int detl,int *code_table,int mode) */ | ||
494 | /* { */ | ||
495 | /* long int dlt; */ | ||
496 | /* dlt = (long)detl*code_table[il >> (mode-1)]; */ | ||
497 | /* return((int)(dlt >> 15)); */ | ||
498 | /* } */ | ||
499 | |||
500 | /* logscl - update log quantizer scale factor in lower sub-band */ | ||
501 | /* note that nbl is passed and returned */ | ||
502 | int adpcm_enc_logscl( int il, int nbl ) | ||
503 | { | ||
504 | long int wd; | ||
505 | |||
506 | |||
507 | wd = ((long)nbl * 127L) >> 7L; /* leak factor 127/128 */ | ||
508 | nbl = (int)wd + adpcm_enc_wl_code_table[il >> 2]; | ||
509 | |||
510 | if ( nbl < 0 ) | ||
511 | nbl = 0; | ||
512 | if ( nbl > 18432 ) | ||
513 | nbl = 18432; | ||
514 | |||
515 | return( nbl ); | ||
516 | } | ||
517 | |||
518 | |||
519 | /* scalel: compute quantizer scale factor in lower or upper sub-band*/ | ||
520 | int adpcm_enc_scalel( int nbl, int shift_constant ) | ||
521 | { | ||
522 | int wd1, wd2, wd3; | ||
523 | |||
524 | |||
525 | wd1 = (nbl >> 6) & 31; | ||
526 | wd2 = nbl >> 11; | ||
527 | wd3 = adpcm_enc_ilb_table[wd1] >> (shift_constant + 1 - wd2); | ||
528 | |||
529 | return( wd3 << 3 ); | ||
530 | } | ||
531 | |||
532 | |||
533 | /* upzero - inputs: dlt, dlti[0-5], bli[0-5], outputs: updated bli[0-5] */ | ||
534 | /* also implements delay of bli and update of dlti from dlt */ | ||
535 | void adpcm_enc_upzero( int dlt, int *dlti, int *bli ) | ||
536 | { | ||
537 | int i, wd2, wd3; | ||
538 | |||
539 | |||
540 | /*if dlt is zero, then no sum into bli */ | ||
541 | if ( dlt == 0 ) { | ||
542 | _Pragma("loopbound min 6 max 6") | ||
543 | for ( i = 0; i < 6; i++ ) { | ||
544 | bli[i] = (int)((255L * bli[i]) >> 8L); /* leak factor of 255/256 */ | ||
545 | } | ||
546 | |||
547 | } else { | ||
548 | _Pragma("loopbound min 6 max 6") | ||
549 | for ( i = 0; i < 6; i++ ) { | ||
550 | if ( (long)dlt * dlti[i] >= 0 ) | ||
551 | wd2 = 128; | ||
552 | else | ||
553 | wd2 = -128; | ||
554 | |||
555 | wd3 = (int)((255L * bli[i]) >> 8L); /* leak factor of 255/256 */ | ||
556 | bli[i] = wd2 + wd3; | ||
557 | } | ||
558 | |||
559 | } | ||
560 | |||
561 | /* implement delay line for dlt */ | ||
562 | dlti[5] = dlti[4]; | ||
563 | dlti[4] = dlti[3]; | ||
564 | dlti[3] = dlti[2]; | ||
565 | dlti[1] = dlti[0]; | ||
566 | dlti[0] = dlt; | ||
567 | |||
568 | return; | ||
569 | } | ||
570 | |||
571 | |||
572 | /* uppol2 - update second predictor coefficient (pole section) */ | ||
573 | /* inputs: al1, al2, plt, plt1, plt2. outputs: apl2 */ | ||
574 | int adpcm_enc_uppol2( int al1, int al2, int plt, int plt1, int plt2 ) | ||
575 | { | ||
576 | long int wd2, wd4; | ||
577 | int apl2; | ||
578 | |||
579 | |||
580 | wd2 = 4L * (long)al1; | ||
581 | if ( (long)plt * plt1 >= 0L ) | ||
582 | wd2 = -wd2; /* check same sign */ | ||
583 | wd2 = wd2 >> 7; /* gain of 1/128 */ | ||
584 | |||
585 | if ( (long)plt * plt2 >= 0L ) { | ||
586 | wd4 = wd2 + 128; /* same sign case */ | ||
587 | } else { | ||
588 | wd4 = wd2 - 128; | ||
589 | } | ||
590 | apl2 = wd4 + (127L*(long)al2 >> 7L); /* leak factor of 127/128 */ | ||
591 | |||
592 | /* apl2 is limited to +-.75 */ | ||
593 | if ( apl2 > 12288 ) | ||
594 | apl2 = 12288; | ||
595 | if ( apl2 < -12288 ) | ||
596 | apl2 = -12288; | ||
597 | |||
598 | return( apl2 ); | ||
599 | } | ||
600 | |||
601 | |||
602 | /* uppol1 - update first predictor coefficient (pole section) */ | ||
603 | /* inputs: al1, apl2, plt, plt1. outputs: apl1 */ | ||
604 | int adpcm_enc_uppol1( int al1, int apl2, int plt, int plt1 ) | ||
605 | { | ||
606 | long int wd2; | ||
607 | int wd3, apl1; | ||
608 | |||
609 | |||
610 | wd2 = ((long)al1 * 255L) >> 8L; /* leak factor of 255/256 */ | ||
611 | if ( (long)plt * plt1 >= 0L ) { | ||
612 | apl1 = (int)wd2 + 192; /* same sign case */ | ||
613 | } else { | ||
614 | apl1 = (int)wd2 - 192; | ||
615 | } | ||
616 | |||
617 | /* note: wd3= .9375-.75 is always positive */ | ||
618 | wd3 = 15360 - apl2; /* limit value */ | ||
619 | if ( apl1 > wd3 ) | ||
620 | apl1 = wd3; | ||
621 | if ( apl1 < -wd3 ) | ||
622 | apl1 = -wd3; | ||
623 | |||
624 | return( apl1 ); | ||
625 | } | ||
626 | |||
627 | |||
628 | /* INVQAH: inverse adaptive quantizer for the higher sub-band */ | ||
629 | /* returns dh, code table is pre-multiplied by 8 */ | ||
630 | /* int invqah(int ih,int deth) */ | ||
631 | /* { */ | ||
632 | /* long int rdh; */ | ||
633 | /* rdh = ((long)deth*qq2_code2_table[ih]) >> 15L ; */ | ||
634 | /* return((int)(rdh )); */ | ||
635 | /* } */ | ||
636 | |||
637 | |||
638 | /* logsch - update log quantizer scale factor in higher sub-band */ | ||
639 | /* note that nbh is passed and returned */ | ||
640 | int adpcm_enc_logsch( int ih, int nbh ) | ||
641 | { | ||
642 | int wd; | ||
643 | |||
644 | |||
645 | wd = ((long)nbh * 127L) >> 7L; /* leak factor 127/128 */ | ||
646 | nbh = wd + adpcm_enc_wh_code_table[ih]; | ||
647 | |||
648 | if ( nbh < 0 ) | ||
649 | nbh = 0; | ||
650 | if ( nbh > 22528 ) | ||
651 | nbh = 22528; | ||
652 | |||
653 | return( nbh ); | ||
654 | } | ||
655 | |||
656 | |||
657 | /* | ||
658 | Initialization- and return-value-related functions | ||
659 | */ | ||
660 | |||
661 | /* clear all storage locations */ | ||
662 | |||
663 | void adpcm_enc_reset(void) | ||
664 | { | ||
665 | int i; | ||
666 | |||
667 | adpcm_enc_detl = 32; /* reset to min scale factor */ | ||
668 | adpcm_enc_deth = 8; | ||
669 | adpcm_enc_nbl = adpcm_enc_al1 = adpcm_enc_al2 = adpcm_enc_plt1 = adpcm_enc_plt2 = adpcm_enc_rlt1 = adpcm_enc_rlt2 = 0; | ||
670 | adpcm_enc_nbh = adpcm_enc_ah1 = adpcm_enc_ah2 = adpcm_enc_ph1 = adpcm_enc_ph2 = adpcm_enc_rh1 = adpcm_enc_rh2 = 0; | ||
671 | |||
672 | _Pragma("loopbound min 6 max 6") | ||
673 | for ( i = 0; i < 6; i++) { | ||
674 | adpcm_enc_delay_dltx[i] = 0; | ||
675 | adpcm_enc_delay_dhx[i] = 0; | ||
676 | } | ||
677 | |||
678 | _Pragma("loopbound min 6 max 6") | ||
679 | for ( i = 0; i < 6; i++ ) { | ||
680 | adpcm_enc_delay_bpl[i] = 0; | ||
681 | adpcm_enc_delay_bph[i] = 0; | ||
682 | } | ||
683 | |||
684 | _Pragma("loopbound min 23 max 23") | ||
685 | for ( i = 0; i < 23; i++ ) { | ||
686 | adpcm_enc_tqmf[i] = 0; | ||
687 | } | ||
688 | |||
689 | return; | ||
690 | } | ||
691 | |||
692 | |||
693 | void adpcm_enc_init(void) | ||
694 | { | ||
695 | int i, j, f; | ||
696 | volatile int x = 0; | ||
697 | |||
698 | /* reset, initialize required memory */ | ||
699 | adpcm_enc_reset(); | ||
700 | |||
701 | /* read in amplitude and frequency for test data */ | ||
702 | j = 10; | ||
703 | f = 2000; | ||
704 | |||
705 | /* 16 KHz sample rate */ | ||
706 | /* XXmain_0, MAX: 2 */ | ||
707 | /* Since the number of times we loop in my_sin depends on the argument we | ||
708 | add the fact: xxmain_0:[]: */ | ||
709 | _Pragma("loopbound min 3 max 3") | ||
710 | for ( i = 0 ; i < SIZE ; i++) { | ||
711 | adpcm_enc_test_data[i] = (int) j * adpcm_enc_cos( f * PI * i ); | ||
712 | |||
713 | /* avoid constant-propagation optimizations */ | ||
714 | adpcm_enc_test_data[i] += x; | ||
715 | } | ||
716 | } | ||
717 | |||
718 | |||
719 | int adpcm_enc_return(void) | ||
720 | { | ||
721 | int i; | ||
722 | int check_sum = 0; | ||
723 | |||
724 | for ( i = 0 ; i < IN_END ; i += 2 ) { | ||
725 | check_sum += adpcm_enc_compressed[i/2]; | ||
726 | } | ||
727 | |||
728 | return check_sum != 385; | ||
729 | } | ||
730 | |||
731 | |||
732 | /* | ||
733 | Main functions | ||
734 | */ | ||
735 | |||
736 | void _Pragma( "entrypoint" ) adpcm_enc_main(void) | ||
737 | { | ||
738 | int i; | ||
739 | /* MAX: 2 */ | ||
740 | _Pragma("loopbound min 2 max 2") | ||
741 | for ( i = 0 ; i < IN_END ; i += 2 ) { | ||
742 | adpcm_enc_compressed[i/2] = adpcm_enc_encode( adpcm_enc_test_data[i], adpcm_enc_test_data[i+1] ); | ||
743 | } | ||
744 | |||
745 | } | ||
746 | |||
747 | int main(int argc, char **argv) | ||
748 | { | ||
749 | SET_UP | ||
750 | for(jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
751 | START_LOOP | ||
752 | adpcm_enc_init(); | ||
753 | adpcm_enc_main(); | ||
754 | STOP_LOOP | ||
755 | } | ||
756 | WRITE_TO_FILE | ||
757 | return adpcm_enc_return(); | ||
758 | } | ||
diff --git a/baseline/source/ammunition/ChangeLog.txt b/baseline/source/ammunition/ChangeLog.txt new file mode 100644 index 0000000..814ed86 --- /dev/null +++ b/baseline/source/ammunition/ChangeLog.txt | |||
@@ -0,0 +1,66 @@ | |||
1 | File: ammunition.c | ||
2 | Original provenience: DINO programming language | ||
3 | |||
4 | 2016-03-03: | ||
5 | - Add generic TACLeBench header | ||
6 | - Prefix global functions with benchmark name | ||
7 | - Introduce volatile result variable for return statements | ||
8 | - Split code into ammunition_init and ammunition_main | ||
9 | - Fix compiler warnings "array subscript is of type 'char'": | ||
10 | char => unsigned char | ||
11 | - Fix compiler warnings "'&&' within '||'": | ||
12 | Place additional parentheses | ||
13 | - Remove usages and comments related to the macros | ||
14 | HAVE_MEMMOVE, NDEBUG, HAVE_MEMCMP | ||
15 | - Remove comment related to unused NO_TEMPLATE macro | ||
16 | 2016-05-02: | ||
17 | - Change C++ style comments to ISO C90 compliant comments | ||
18 | - Avoid mixing declarations and code: move declaration of variable writePos in | ||
19 | functions ammunition_sprintf_d and ammunition_sprintf_u | ||
20 | - Change datatype in function ammunition_bits_test of iteration variables i and | ||
21 | j from int to unsigned int to avoid comparison between signed and unsigned | ||
22 | integer expressions | ||
23 | - Add forward declarations to ammunition.c | ||
24 | - Introduce variable ammunition_result | ||
25 | - Parantheses around comparison in functions ammunition_isdigit and | ||
26 | ammunition_isspace | ||
27 | - Remove usage of limits.h, move definitions of limits into separate file | ||
28 | ammunition_limits.h | ||
29 | - Remove unconditional assignments of variable result to zero after each test in | ||
30 | functions ammunition_bits_test and ammunition_arithm_test | ||
31 | - Remove unused functions unsigned_integer_maximum, integer_minimum, | ||
32 | integer_maximum, integer_remainder | ||
33 | - Remove unused declaration of function default_arithmetic_overflow_reaction | ||
34 | - Remove unused variables zero_constant_itself, zero_constant | ||
35 | - Remove unused declarations of functions set_unsigned_integer_overflow_reaction | ||
36 | and set_integer_overflow_reaction | ||
37 | - Remove block #ifndef MAX_INTEGER_OPERAND_SIZE, set definition of | ||
38 | MAX_INTEGER_OPERAND_SIZE to 128, since this is default | ||
39 | 2016-05-10: | ||
40 | - Integrate new version of arithm library from ammunition repository from | ||
41 | dino repository on github (commit: db9cfab042c332abb234ec8d72750103010981c1), | ||
42 | which hanles arithmetic shifts by negative numbers. This change now makes all | ||
43 | test cases in ammunition.c pass. Update headers unsigned int bits => int bits | ||
44 | - Remove assert statements | ||
45 | - Fix memcmp implementation: dereferencing pointer was missing | ||
46 | - Add loop-bound annotation to memcmp | ||
47 | - Fix strcmp implementation | ||
48 | - Integrate working versions of memcpy and memset from pm benchmark | ||
49 | - Update signature of ammunition_memcpy to original version: | ||
50 | void *memcpy(void *dest, const void *src, size_x n); | ||
51 | - Move functions from libc into separate file, introduce header files | ||
52 | ammunition_limits.h, ammunition_stdio.h, ammunition_stdlib.h, | ||
53 | ammunition_string.h | ||
54 | - Fix overflow in sprintf_d: change datatype of variable 'copyOfNumber' from int | ||
55 | to long, since the negative value of INT_MIN is undefined | ||
56 | 2016-05-17: | ||
57 | - Remove all static declarations of global functions | ||
58 | - Rename variables 'digit_number' to digit_num to keep lines below 80 characters | ||
59 | - Rename op1_digit_number to op1_digit_number and op1_digit_num in function | ||
60 | 'ammunition_multiply_unsigned_integer_without_overflow_reaction' | ||
61 | - Rename variable 'scaled_op1_digit_number' in function | ||
62 | 'ammunition_divide_unsigned_integer_without_overflow_reaction' | ||
63 | - Apply code formatting with astyle | ||
64 | |||
65 | 2017-08-18: | ||
66 | - Add explicit casts to silence g++ warnings. | ||
diff --git a/baseline/source/ammunition/README b/baseline/source/ammunition/README new file mode 100644 index 0000000..8caddf4 --- /dev/null +++ b/baseline/source/ammunition/README | |||
@@ -0,0 +1,86 @@ | |||
1 | This directory AMMUNITION contains reusable packages on C/C++: | ||
2 | `allocate', `vlobject', `objstack', `hashtab', `commline', `ticker', | ||
3 | `position', `errors', `bits', `arithm', `IEEE': | ||
4 | o allocate | ||
5 | Allocating and freeing memory with automatic fixing some | ||
6 | allocation errors. | ||
7 | o vlobject | ||
8 | Work with variable length objects (VLO). Any number of bytes | ||
9 | may be added to and removed from the end of VLO. If it is | ||
10 | needed the memory allocated for storing variable length object | ||
11 | may be expanded possibly with changing the object place. But | ||
12 | between any additions of the bytes (or tailoring) the object | ||
13 | place is not changed. To decrease number of changes of the | ||
14 | object place the memory being allocated for the object is | ||
15 | longer than the current object length. | ||
16 | o objstack | ||
17 | Work with stacks of objects (OS). Work with the object on the | ||
18 | stack top is analogous to one with a variable length object. | ||
19 | One motivation for the package is the problem of growing char | ||
20 | strings in symbol tables. Memory for OS is allocated by | ||
21 | segments. A segment may contain more one objects. The most | ||
22 | recently allocated segment contains object on the top of OS. | ||
23 | If there is not sufficient free memory for the top object than | ||
24 | new segment is created and the top object is transferred into | ||
25 | the new segment, i.e. there is not any memory reallocation. | ||
26 | Therefore the top object may change its address. But other | ||
27 | objects never change address. | ||
28 | o hashtab | ||
29 | Work with hash tables. The package permits to work | ||
30 | simultaneously with several expandable hash tables. Besides | ||
31 | insertion and search of elements the elements from the hash | ||
32 | tables can be also removed. The table element can be only a | ||
33 | pointer. The size of hash tables is not fixed. The hash | ||
34 | table will be automatically expanded when its occupancy will | ||
35 | became big. | ||
36 | o position | ||
37 | Work with source code positions. The package serves to | ||
38 | support information about source positions of compiled files | ||
39 | taking all included files into account. | ||
40 | o errors | ||
41 | Output of compiler messages. The package serves output | ||
42 | one-pass or multi-pass compiler messages of various modes | ||
43 | (errors, warnings, fatal, system errors and appended messages) | ||
44 | in Unix style or for traditional listing. The package also | ||
45 | permits adequate error reporting for included files. | ||
46 | o commline | ||
47 | Work with command line. The package implements features | ||
48 | analogous to ones of public domain function `getopt'. The | ||
49 | goal of the package creation is to use more readable language | ||
50 | of command line description and to use command line | ||
51 | description as help output of program. | ||
52 | o ticker | ||
53 | Simultaneous work with several tickers (timers). | ||
54 | o bits | ||
55 | Work with bit strings (copying, moving, setting, testing, | ||
56 | comparison). | ||
57 | o arithm | ||
58 | Implementing host machine-independently arbitrary precision | ||
59 | integer numbers arithmetic. The implementation of the package | ||
60 | functions are not sufficiently efficient in order to use for | ||
61 | run-time. The package functions are oriented to implement | ||
62 | constant-folding in compilers, cross-compilers. | ||
63 | o IEEE | ||
64 | Implementing host machine-independently IEEE floating point | ||
65 | arithmetic. The implementation of the package functions are | ||
66 | not sufficiently efficient in order to use for run-time. The | ||
67 | package functions are oriented to implement constant-folding | ||
68 | in compilers, cross-compilers. | ||
69 | |||
70 | There are files with corresponding names and extensions `.h' | ||
71 | (interface file for C/C++), `.c' (implementation file on C), and | ||
72 | `.cpp' (implementation file on C++). | ||
73 | |||
74 | To install AMMUNITION see file INSTALL in the current directory. | ||
75 | |||
76 | There are also shell scripts for testing the package with | ||
77 | corresponding names and extension `.tst'. Documentation of the | ||
78 | reusable packages is in files `ammunition.txt', `ammunition.dvi', | ||
79 | `ammunition.ps', `ammunition.info*', `ammunition*.html', | ||
80 | `ammunition*.rtf' for C and `ammunition++.txt', `ammunition++.dvi', | ||
81 | `ammunition++.ps', `ammunition++.info*', `ammunition++*.html', | ||
82 | `ammunition++*.rtf'. | ||
83 | |||
84 | Please send bug reports and comments to vmakarov@fnmail.com | ||
85 | |||
86 | Vladimir Makarov | ||
diff --git a/baseline/source/ammunition/ammunition.c b/baseline/source/ammunition/ammunition.c new file mode 100644 index 0000000..224babd --- /dev/null +++ b/baseline/source/ammunition/ammunition.c | |||
@@ -0,0 +1,1185 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: ammunition | ||
7 | |||
8 | Author: Vladimir Makarov <vmakarov@gcc.gnu.org> | ||
9 | |||
10 | Function: Tests reusable packages bits and arith | ||
11 | bits: Work with bit strings (copying, moving, setting, testing, comparison). | ||
12 | arith: Implementing host machine-independently arbitrary precision integer | ||
13 | numbers arithmetic. The implementation of the package functions are not | ||
14 | sufficiently efficient in order to use for run-time. The package | ||
15 | functions are oriented to implement constant-folding in compilers, | ||
16 | cross-compilers. | ||
17 | |||
18 | Source: DINO programming language repository | ||
19 | https://github.com/dino-lang/dino/ | ||
20 | |||
21 | Changes: no major functional changes | ||
22 | |||
23 | License: GPL 2 and LGPL 2 | ||
24 | |||
25 | */ | ||
26 | |||
27 | #include "../extra.h" | ||
28 | #include "bits.h" | ||
29 | #include "arithm.h" | ||
30 | #include "ammunition_stdlib.h" | ||
31 | #include "ammunition_stdio.h" | ||
32 | #include "ammunition_string.h" | ||
33 | |||
34 | /* | ||
35 | Forward declaration of functions | ||
36 | */ | ||
37 | |||
38 | void ammunition_reset_str_bits( char *str, char *s ); | ||
39 | void ammunition_reset_str_arithm( char *str, char *s, char *d, char *e, | ||
40 | char *g ); | ||
41 | int ammunition_bits_test(); | ||
42 | int ammunition_arithm_test(); | ||
43 | void ammunition_init( void ); | ||
44 | int ammunition_return( void ); | ||
45 | void ammunition_main( void ); | ||
46 | //int main( void ); | ||
47 | |||
48 | |||
49 | /* | ||
50 | Forward declaration of global variables | ||
51 | */ | ||
52 | |||
53 | int ammunition_result; | ||
54 | |||
55 | |||
56 | /* | ||
57 | Core functions | ||
58 | */ | ||
59 | |||
60 | void ammunition_reset_str_bits( char *str, char *s ) | ||
61 | { | ||
62 | int i; | ||
63 | _Pragma( "loopbound min 8 max 8" ) | ||
64 | for ( i = 0; i < 8; i++ ) { | ||
65 | str[i] = 0; | ||
66 | s[i] = 0; | ||
67 | } | ||
68 | } | ||
69 | |||
70 | |||
71 | void ammunition_reset_str_arithm( char *str, char *s, char *d, char *e, | ||
72 | char *g ) | ||
73 | { | ||
74 | int i; | ||
75 | _Pragma( "loopbound min 20 max 20" ) | ||
76 | for ( i = 0; i < 20; i++ ) { | ||
77 | str[i] = 0; | ||
78 | s[i] = 0; | ||
79 | } | ||
80 | |||
81 | _Pragma( "loopbound min 4 max 4" ) | ||
82 | for ( i = 0; i < 4; i++ ) { | ||
83 | d[i] = 0; | ||
84 | e[i] = 0; | ||
85 | } | ||
86 | |||
87 | _Pragma( "loopbound min 6 max 6" ) | ||
88 | for ( i = 0; i < 6; i++ ) | ||
89 | g[i] = 0; | ||
90 | } | ||
91 | |||
92 | |||
93 | int ammunition_bits_test() | ||
94 | { | ||
95 | char str[8]; | ||
96 | char str1[8]; | ||
97 | |||
98 | int result = 0; | ||
99 | unsigned int i, j; | ||
100 | |||
101 | /* Test 1 */ | ||
102 | ammunition_reset_str_bits( str, str1 ); | ||
103 | |||
104 | _Pragma( "loopbound min 64 max 64" ) | ||
105 | for ( i = 0; i < sizeof ( str ) * CHAR_BIT; i++ ) { | ||
106 | if ( BIT ( str, i ) ) | ||
107 | result = 1; | ||
108 | } | ||
109 | |||
110 | _Pragma( "loopbound min 64 max 64" ) | ||
111 | for ( i = 0; i < sizeof ( str ) * CHAR_BIT; i++ ) { | ||
112 | SET_BIT ( str, i, 1 ); | ||
113 | _Pragma( "loopbound min 64 max 64" ) | ||
114 | for ( j = 0; j < sizeof ( str ) * CHAR_BIT; j++ ) | ||
115 | if ( j <= i ) { | ||
116 | if ( BIT ( str, j ) == 0 ) | ||
117 | result = 1; | ||
118 | } else | ||
119 | if ( BIT ( str, j ) ) | ||
120 | result = 1; | ||
121 | } | ||
122 | |||
123 | /* Test 2 */ | ||
124 | ammunition_reset_str_bits( str, str1 ); | ||
125 | |||
126 | _Pragma( "loopbound min 64 max 64" ) | ||
127 | for ( i = 0; i < sizeof ( str ) * CHAR_BIT; i++ ) | ||
128 | if ( !ammunition_is_zero_bit_string ( | ||
129 | str, i, ( sizeof ( str ) * CHAR_BIT - i ) / 2 + 1 ) ) | ||
130 | result = 1; | ||
131 | ammunition_bit_string_set ( str, 13, 1, 35 ); | ||
132 | _Pragma( "loopbound min 13 max 13" ) | ||
133 | for ( i = 0; i < 13; i++ ) | ||
134 | if ( !ammunition_is_zero_bit_string ( str, i, 13 - i ) ) | ||
135 | result = 1; | ||
136 | _Pragma( "loopbound min 35 max 35" ) | ||
137 | for ( i = 13; i < 48; i++ ) | ||
138 | if ( ammunition_is_zero_bit_string ( str, i, 48 - i ) ) | ||
139 | result = 1; | ||
140 | _Pragma( "loopbound min 16 max 16" ) | ||
141 | for ( i = 48; i < sizeof ( str ) * CHAR_BIT; i++ ) | ||
142 | if ( !ammunition_is_zero_bit_string ( str, i, | ||
143 | sizeof ( str ) * CHAR_BIT - i ) ) | ||
144 | result = 1; | ||
145 | |||
146 | /* Test 3 */ | ||
147 | ammunition_reset_str_bits( str, str1 ); | ||
148 | |||
149 | _Pragma( "loopbound min 42 max 42" ) | ||
150 | for ( i = 0; i + i / 2 + 1 < sizeof ( str ) * CHAR_BIT; i++ ) { | ||
151 | ammunition_bit_string_set ( str, i, 1, i / 2 + 1 ); | ||
152 | if ( !ammunition_is_zero_bit_string ( str, 0, i - 1 ) ) | ||
153 | result = 1; | ||
154 | if ( ammunition_is_zero_bit_string ( str, i, i / 2 + 1 ) ) | ||
155 | result = 1; | ||
156 | if ( !ammunition_is_zero_bit_string ( | ||
157 | str, i + i / 2 + 1, sizeof ( str ) * CHAR_BIT - ( i + i / 2 + 1 ) ) ) | ||
158 | result = 1; | ||
159 | ammunition_bit_string_set ( str, 0, 0, sizeof ( str ) * CHAR_BIT ); | ||
160 | } | ||
161 | |||
162 | /* Test 4 */ | ||
163 | ammunition_reset_str_bits( str, str1 ); | ||
164 | |||
165 | ammunition_bit_string_set ( str, 2, 1, 43 ); | ||
166 | ammunition_bit_string_set ( str1, 2, 1, 40 ); | ||
167 | _Pragma( "loopbound min 42 max 42" ) | ||
168 | for ( i = 0; i < 42; i++ ) | ||
169 | if ( ammunition_bit_string_comparison ( str, i, str1, i, 42 - i ) != 0 ) | ||
170 | result = 1; | ||
171 | _Pragma( "loopbound min 43 max 43" ) | ||
172 | for ( i = 0; i < 43; i++ ) | ||
173 | if ( ammunition_bit_string_comparison ( str, i, str1, i, | ||
174 | sizeof ( str ) * CHAR_BIT - i ) | ||
175 | <= 0 ) | ||
176 | result = 1; | ||
177 | _Pragma( "loopbound min 43 max 43" ) | ||
178 | for ( i = 0; i < 43; i++ ) | ||
179 | if ( ammunition_bit_string_comparison ( str1, i, str, i, | ||
180 | sizeof ( str ) * CHAR_BIT - i ) | ||
181 | >= 0 ) | ||
182 | result = 1; | ||
183 | |||
184 | /* Test 5 */ | ||
185 | ammunition_reset_str_bits( str, str1 ); | ||
186 | |||
187 | ammunition_bit_string_set ( str, 2, 1, 43 ); | ||
188 | _Pragma( "loopbound min 59 max 59" ) | ||
189 | for ( i = 0; i + 5 < sizeof ( str ) * CHAR_BIT; i++ ) { | ||
190 | ammunition_bit_string_copy ( str1, i + 5, str, i, | ||
191 | sizeof ( str ) * CHAR_BIT - i - 5 ); | ||
192 | if ( ammunition_bit_string_comparison ( | ||
193 | str1, i + 5, str, i, sizeof ( str ) * CHAR_BIT - i - 5 ) != 0 ) | ||
194 | result = 1; | ||
195 | } | ||
196 | |||
197 | /* Test 6 */ | ||
198 | ammunition_reset_str_bits( str, str1 ); | ||
199 | |||
200 | ammunition_bit_string_set ( str, 2, 1, 43 ); | ||
201 | ammunition_bit_string_set ( str1, 2, 1, 43 ); | ||
202 | _Pragma( "loopbound min 59 max 59" ) | ||
203 | for ( i = 0; i + 5 < sizeof ( str ) * CHAR_BIT; i++ ) { | ||
204 | ammunition_bit_string_set ( str, 0, 0, sizeof ( str ) * CHAR_BIT ); | ||
205 | ammunition_bit_string_set ( str, 2, 1, 43 ); | ||
206 | ammunition_bit_string_move ( str, i + 5, str, i, | ||
207 | sizeof ( str ) * CHAR_BIT - i - 5 ); | ||
208 | if ( ammunition_bit_string_comparison ( | ||
209 | str, i + 5, str1, i, sizeof ( str ) * CHAR_BIT - i - 5 ) != 0 ) | ||
210 | result = 1; | ||
211 | } | ||
212 | |||
213 | /* Test 7 */ | ||
214 | ammunition_reset_str_bits( str, str1 ); | ||
215 | |||
216 | ammunition_bit_string_set ( str, 2, 1, 43 ); | ||
217 | ammunition_bit_string_set ( str1, 2, 1, 43 ); | ||
218 | _Pragma( "loopbound min 59 max 59" ) | ||
219 | for ( i = 0; i + 5 < sizeof ( str ) * CHAR_BIT; i++ ) { | ||
220 | ammunition_bit_string_set ( str, 0, 0, sizeof ( str ) * CHAR_BIT ); | ||
221 | ammunition_bit_string_set ( str, 2, 1, 43 ); | ||
222 | ammunition_bit_string_move ( str, i, str, i + 5, | ||
223 | sizeof ( str ) * CHAR_BIT - i - 5 ); | ||
224 | if ( ammunition_bit_string_comparison ( | ||
225 | str, i, str1, i + 5, sizeof ( str ) * CHAR_BIT - i - 5 ) != 0 ) | ||
226 | result = 1; | ||
227 | } | ||
228 | |||
229 | return result; | ||
230 | } | ||
231 | |||
232 | |||
233 | int ammunition_arithm_test() | ||
234 | { | ||
235 | int result = 0; | ||
236 | |||
237 | /* Test 1 */ | ||
238 | int i; | ||
239 | char str [20], s[20], d[4], e[4], g[6]; | ||
240 | |||
241 | ammunition_integer_from_string ( 4, "-2147483649", d ); | ||
242 | if ( !ammunition_overflow_bit ) | ||
243 | result = 1; | ||
244 | ammunition_sprintf_d( str, INT_MIN ); | ||
245 | ammunition_integer_from_string ( 4, str, d ); | ||
246 | if ( ammunition_overflow_bit ) | ||
247 | result = 1; | ||
248 | ammunition_integer_to_string( 4, d, s ); | ||
249 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
250 | result = 1; | ||
251 | ammunition_integer_from_string ( 4, "2147483648", d ); | ||
252 | if ( !ammunition_overflow_bit ) | ||
253 | result = 1; | ||
254 | ammunition_sprintf_d( str, INT_MAX ); | ||
255 | ammunition_integer_from_string ( 4, str, d ); | ||
256 | if ( ammunition_overflow_bit ) | ||
257 | result = 1; | ||
258 | ammunition_integer_to_string( 4, d, s ); | ||
259 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
260 | result = 1; | ||
261 | _Pragma( "loopbound min 4000 max 4000" ) | ||
262 | for ( i = -2000; i < 2000 ; i++ ) { | ||
263 | ammunition_sprintf_d( str, i ); | ||
264 | ammunition_integer_from_string ( 4, str, d ); | ||
265 | if ( ammunition_overflow_bit ) | ||
266 | result = 1; | ||
267 | ammunition_integer_to_string( 4, d, s ); | ||
268 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
269 | result = 1; | ||
270 | } | ||
271 | |||
272 | /* Test 2 */ | ||
273 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
274 | |||
275 | ammunition_unsigned_integer_from_string ( 4, "4294967296", d ); | ||
276 | if ( !ammunition_overflow_bit ) | ||
277 | result = 1; | ||
278 | ammunition_sprintf_u( str, UINT_MAX ); | ||
279 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
280 | if ( ammunition_overflow_bit ) | ||
281 | result = 1; | ||
282 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
283 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
284 | result = 1; | ||
285 | _Pragma( "loopbound min 4000 max 4000" ) | ||
286 | for ( i = 0; i < 4000 ; i++ ) { | ||
287 | ammunition_sprintf_u( str, i ); | ||
288 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
289 | if ( ammunition_overflow_bit ) | ||
290 | result = 1; | ||
291 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
292 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
293 | result = 1; | ||
294 | } | ||
295 | |||
296 | /* Test 3 */ | ||
297 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
298 | |||
299 | ammunition_sprintf_d( str, INT_MAX ); | ||
300 | ammunition_integer_from_string ( 4, str, d ); | ||
301 | ammunition_integer_from_string ( 4, "1", e ); | ||
302 | ammunition_add_integer ( 4, d, e, d ); | ||
303 | if ( !ammunition_overflow_bit ) | ||
304 | result = 1; | ||
305 | ammunition_sprintf_d( str, INT_MAX - 4 ); | ||
306 | ammunition_integer_from_string ( 4, str, d ); | ||
307 | ammunition_sprintf_d( str, 4 ); | ||
308 | ammunition_integer_from_string ( 4, str, e ); | ||
309 | ammunition_add_integer ( 4, d, e, d ); | ||
310 | if ( ammunition_overflow_bit ) | ||
311 | result = 1; | ||
312 | ammunition_integer_to_string( 4, d, s ); | ||
313 | ammunition_sprintf_d( str, INT_MAX ); | ||
314 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
315 | result = 1; | ||
316 | _Pragma( "loopbound min 4000 max 4000" ) | ||
317 | for ( i = -2000; i < 2000 ; i++ ) { | ||
318 | ammunition_sprintf_d( str, i ); | ||
319 | ammunition_integer_from_string ( 4, str, d ); | ||
320 | ammunition_sprintf_d( str, i + 1 ); | ||
321 | ammunition_integer_from_string ( 4, str, e ); | ||
322 | ammunition_add_integer ( 4, d, e, d ); | ||
323 | if ( ammunition_overflow_bit ) | ||
324 | result = 1; | ||
325 | ammunition_integer_to_string( 4, d, s ); | ||
326 | if ( ammunition_atoi ( s ) != i + i + 1 ) | ||
327 | result = 1; | ||
328 | } | ||
329 | |||
330 | /* Test 4 */ | ||
331 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
332 | |||
333 | ammunition_sprintf_u( str, UINT_MAX ); | ||
334 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
335 | ammunition_unsigned_integer_from_string ( 4, "1", e ); | ||
336 | ammunition_add_unsigned_integer ( 4, d, e, d ); | ||
337 | if ( !ammunition_overflow_bit ) | ||
338 | result = 1; | ||
339 | ammunition_sprintf_u( str, UINT_MAX - 4 ); | ||
340 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
341 | ammunition_sprintf_u( str, 4 ); | ||
342 | ammunition_unsigned_integer_from_string ( 4, str, e ); | ||
343 | ammunition_add_unsigned_integer ( 4, d, e, d ); | ||
344 | if ( ammunition_overflow_bit ) | ||
345 | result = 1; | ||
346 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
347 | ammunition_sprintf_u( str, UINT_MAX ); | ||
348 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
349 | result = 1; | ||
350 | _Pragma( "loopbound min 4000 max 4000" ) | ||
351 | for ( i = 0; i < 4000 ; i++ ) { | ||
352 | ammunition_sprintf_u( str, i ); | ||
353 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
354 | ammunition_sprintf_u( str, i + 1 ); | ||
355 | ammunition_unsigned_integer_from_string ( 4, str, e ); | ||
356 | ammunition_add_unsigned_integer ( 4, d, e, d ); | ||
357 | if ( ammunition_overflow_bit ) | ||
358 | result = 1; | ||
359 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
360 | if ( ammunition_atoi ( s ) != i + i + 1 ) | ||
361 | result = 1; | ||
362 | } | ||
363 | |||
364 | /* Test 5 */ | ||
365 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
366 | |||
367 | ammunition_sprintf_d( str, INT_MIN ); | ||
368 | ammunition_integer_from_string ( 4, str, d ); | ||
369 | ammunition_integer_from_string ( 4, "1", e ); | ||
370 | ammunition_subtract_integer ( 4, d, e, d ); | ||
371 | if ( !ammunition_overflow_bit ) | ||
372 | result = 1; | ||
373 | ammunition_sprintf_d( str, INT_MIN + 4 ); | ||
374 | ammunition_integer_from_string ( 4, str, d ); | ||
375 | ammunition_sprintf_d( str, 4 ); | ||
376 | ammunition_integer_from_string ( 4, str, e ); | ||
377 | ammunition_subtract_integer ( 4, d, e, d ); | ||
378 | if ( ammunition_overflow_bit ) | ||
379 | result = 1; | ||
380 | ammunition_integer_to_string( 4, d, s ); | ||
381 | ammunition_sprintf_d( str, INT_MIN ); | ||
382 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
383 | result = 1; | ||
384 | _Pragma( "loopbound min 4000 max 4000" ) | ||
385 | for ( i = -2000; i < 2000 ; i++ ) { | ||
386 | ammunition_sprintf_d( str, i ); | ||
387 | ammunition_integer_from_string ( 4, str, d ); | ||
388 | ammunition_sprintf_d( str, 10 - i ); | ||
389 | ammunition_integer_from_string ( 4, str, e ); | ||
390 | ammunition_subtract_integer ( 4, d, e, d ); | ||
391 | if ( ammunition_overflow_bit ) | ||
392 | result = 1; | ||
393 | ammunition_integer_to_string( 4, d, s ); | ||
394 | if ( ammunition_atoi ( s ) != i + i - 10 ) | ||
395 | result = 1; | ||
396 | } | ||
397 | |||
398 | /* Test 6 */ | ||
399 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
400 | |||
401 | ammunition_sprintf_u( str, UINT_MAX - 2 ); | ||
402 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
403 | ammunition_sprintf_u( str, UINT_MAX - 1 ); | ||
404 | ammunition_unsigned_integer_from_string ( 4, str, e ); | ||
405 | ammunition_subtract_unsigned_integer ( 4, d, e, d ); | ||
406 | if ( !ammunition_overflow_bit ) | ||
407 | result = 1; | ||
408 | ammunition_sprintf_u( str, UINT_MAX ); | ||
409 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
410 | ammunition_subtract_unsigned_integer ( 4, d, d, d ); | ||
411 | if ( ammunition_overflow_bit ) | ||
412 | result = 1; | ||
413 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
414 | if ( ammunition_strcmp ( s, "0" ) != 0 ) | ||
415 | result = 1; | ||
416 | _Pragma( "loopbound min 4000 max 4000" ) | ||
417 | for ( i = 0; i < 4000 ; i++ ) { | ||
418 | ammunition_sprintf_u( str, i ); | ||
419 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
420 | ammunition_sprintf_u( str, i / 2 ); | ||
421 | ammunition_unsigned_integer_from_string ( 4, str, e ); | ||
422 | ammunition_subtract_unsigned_integer ( 4, d, e, d ); | ||
423 | if ( ammunition_overflow_bit ) | ||
424 | result = 1; | ||
425 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
426 | if ( ammunition_atoi ( s ) != i - i / 2 ) | ||
427 | result = 1; | ||
428 | } | ||
429 | |||
430 | /* Test 7 */ | ||
431 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
432 | |||
433 | ammunition_sprintf_d( str, INT_MAX / 2 + 1 ); | ||
434 | ammunition_integer_from_string ( 4, str, d ); | ||
435 | ammunition_integer_from_string ( 4, "2", e ); | ||
436 | ammunition_multiply_integer ( 4, d, e, d ); | ||
437 | if ( !ammunition_overflow_bit ) | ||
438 | result = 1; | ||
439 | ammunition_sprintf_d( str, INT_MIN / 2 - 1 ); | ||
440 | ammunition_integer_from_string ( 4, str, d ); | ||
441 | ammunition_integer_from_string ( 4, "2", e ); | ||
442 | ammunition_multiply_integer ( 4, d, e, d ); | ||
443 | if ( !ammunition_overflow_bit ) | ||
444 | result = 1; | ||
445 | ammunition_sprintf_d( str, INT_MAX / 3 ); | ||
446 | ammunition_integer_from_string ( 4, str, d ); | ||
447 | ammunition_sprintf_d( str, 3 ); | ||
448 | ammunition_integer_from_string ( 4, str, e ); | ||
449 | ammunition_multiply_integer ( 4, d, e, d ); | ||
450 | if ( ammunition_overflow_bit ) | ||
451 | result = 1; | ||
452 | ammunition_integer_to_string( 4, d, s ); | ||
453 | ammunition_sprintf_d( str, ( INT_MAX / 3 ) * 3 ); | ||
454 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
455 | result = 1; | ||
456 | ammunition_sprintf_d( str, INT_MIN / 2 ); | ||
457 | ammunition_integer_from_string ( 4, str, d ); | ||
458 | ammunition_sprintf_d( str, 2 ); | ||
459 | ammunition_integer_from_string ( 4, str, e ); | ||
460 | ammunition_multiply_integer ( 4, d, e, d ); | ||
461 | if ( ammunition_overflow_bit ) | ||
462 | result = 1; | ||
463 | ammunition_integer_to_string( 4, d, s ); | ||
464 | ammunition_sprintf_d( str, ( INT_MIN / 2 ) * 2 ); | ||
465 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
466 | result = 1; | ||
467 | _Pragma( "loopbound min 4000 max 4000" ) | ||
468 | for ( i = -2000; i < 2000 ; i++ ) { | ||
469 | ammunition_sprintf_d( str, i ); | ||
470 | ammunition_integer_from_string ( 4, str, d ); | ||
471 | ammunition_sprintf_d( str, i + 1000 ); | ||
472 | ammunition_integer_from_string ( 4, str, e ); | ||
473 | ammunition_multiply_integer ( 4, d, e, d ); | ||
474 | if ( ammunition_overflow_bit ) | ||
475 | result = 1; | ||
476 | ammunition_integer_to_string( 4, d, s ); | ||
477 | if ( ammunition_atoi ( s ) != i * ( i + 1000 ) ) | ||
478 | result = 1; | ||
479 | } | ||
480 | |||
481 | /* Test 8 */ | ||
482 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
483 | |||
484 | ammunition_sprintf_u( str, UINT_MAX / 5 + 1 ); | ||
485 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
486 | ammunition_sprintf_u( str, 5 ); | ||
487 | ammunition_unsigned_integer_from_string ( 4, str, e ); | ||
488 | ammunition_multiply_unsigned_integer ( 4, d, e, d ); | ||
489 | if ( !ammunition_overflow_bit ) | ||
490 | result = 1; | ||
491 | ammunition_sprintf_u( str, UINT_MAX / 2 ); | ||
492 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
493 | ammunition_sprintf_u( str, 2 ); | ||
494 | ammunition_unsigned_integer_from_string ( 4, str, e ); | ||
495 | ammunition_multiply_unsigned_integer ( 4, d, e, d ); | ||
496 | if ( ammunition_overflow_bit ) | ||
497 | result = 1; | ||
498 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
499 | ammunition_sprintf_u( str, ( UINT_MAX / 2 ) * 2 ); | ||
500 | if ( ammunition_strcmp ( s, str ) != 0 ) | ||
501 | result = 1; | ||
502 | _Pragma( "loopbound min 4000 max 4000" ) | ||
503 | for ( i = 0; i < 4000 ; i++ ) { | ||
504 | ammunition_sprintf_u( str, i ); | ||
505 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
506 | ammunition_sprintf_u( str, i / 2 ); | ||
507 | ammunition_unsigned_integer_from_string ( 4, str, e ); | ||
508 | ammunition_multiply_unsigned_integer ( 4, d, e, d ); | ||
509 | if ( ammunition_overflow_bit ) | ||
510 | result = 1; | ||
511 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
512 | if ( ammunition_atoi ( s ) != i * ( i / 2 ) ) | ||
513 | result = 1; | ||
514 | } | ||
515 | |||
516 | /* Test 9 */ | ||
517 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
518 | |||
519 | ammunition_integer_from_string ( 4, "10", d ); | ||
520 | ammunition_integer_from_string ( 4, "0", e ); | ||
521 | ammunition_divide_integer ( 4, d, e, d ); | ||
522 | if ( !ammunition_overflow_bit ) | ||
523 | result = 1; | ||
524 | _Pragma( "loopbound min 4000 max 4000" ) | ||
525 | for ( i = -2000; i < 2000 ; i++ ) { | ||
526 | ammunition_sprintf_d( str, i ); | ||
527 | ammunition_integer_from_string ( 4, str, d ); | ||
528 | ammunition_sprintf_d( str, ( i < 0 ? - i / 20 + 1 : - i / 20 - 1 ) ); | ||
529 | ammunition_integer_from_string ( 4, str, e ); | ||
530 | ammunition_divide_integer ( 4, d, e, d ); | ||
531 | if ( ammunition_overflow_bit ) | ||
532 | result = 1; | ||
533 | ammunition_integer_to_string( 4, d, s ); | ||
534 | if ( ammunition_atoi ( s ) != i / ( i < 0 ? - i / 20 + 1 : - i / 20 - 1 ) ) | ||
535 | result = 1; | ||
536 | ammunition_sprintf_d( str, i ); | ||
537 | ammunition_integer_from_string ( 4, str, d ); | ||
538 | ammunition_divide_integer ( 4, d, e, e ); | ||
539 | if ( ammunition_overflow_bit ) | ||
540 | result = 1; | ||
541 | ammunition_integer_to_string( 4, e, s ); | ||
542 | if ( ammunition_atoi ( s ) != i / ( i < 0 ? - i / 20 + 1 : - i / 20 - 1 ) ) | ||
543 | result = 1; | ||
544 | } | ||
545 | |||
546 | /* Test 10 */ | ||
547 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
548 | |||
549 | ammunition_unsigned_integer_from_string ( 4, "10", d ); | ||
550 | ammunition_unsigned_integer_from_string ( 4, "0", e ); | ||
551 | ammunition_divide_unsigned_integer ( 4, d, e, d ); | ||
552 | if ( !ammunition_overflow_bit ) | ||
553 | result = 1; | ||
554 | _Pragma( "loopbound min 4000 max 4000" ) | ||
555 | for ( i = 0; i < 4000 ; i++ ) { | ||
556 | ammunition_sprintf_u( str, i ); | ||
557 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
558 | ammunition_sprintf_u( str, i / 20 + 1 ); | ||
559 | ammunition_unsigned_integer_from_string ( 4, str, e ); | ||
560 | ammunition_divide_unsigned_integer ( 4, d, e, d ); | ||
561 | if ( ammunition_overflow_bit ) | ||
562 | result = 1; | ||
563 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
564 | if ( ammunition_atoi ( s ) != i / ( i / 20 + 1 ) ) | ||
565 | result = 1; | ||
566 | } | ||
567 | |||
568 | /* Test 11 */ | ||
569 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
570 | |||
571 | ammunition_unsigned_integer_from_string ( 4, "10", d ); | ||
572 | ammunition_unsigned_integer_from_string ( 4, "0", e ); | ||
573 | ammunition_unsigned_integer_remainder ( 4, d, e, d ); | ||
574 | if ( !ammunition_overflow_bit ) | ||
575 | result = 1; | ||
576 | _Pragma( "loopbound min 4000 max 4000" ) | ||
577 | for ( i = 0; i < 4000 ; i++ ) { | ||
578 | ammunition_sprintf_u( str, i ); | ||
579 | ammunition_unsigned_integer_from_string ( 4, str, d ); | ||
580 | ammunition_sprintf_u( str, i / 20 + 1 ); | ||
581 | ammunition_unsigned_integer_from_string ( 4, str, e ); | ||
582 | ammunition_unsigned_integer_remainder ( 4, d, e, d ); | ||
583 | if ( ammunition_overflow_bit ) | ||
584 | result = 1; | ||
585 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
586 | if ( ammunition_atoi ( s ) != i % ( i / 20 + 1 ) ) | ||
587 | result = 1; | ||
588 | } | ||
589 | |||
590 | /* Test 12 */ | ||
591 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
592 | |||
593 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
594 | ammunition_unsigned_integer_shift_right ( 4, d, 0, d ); | ||
595 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
596 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "1348" ) != 0 ) | ||
597 | result = 1; | ||
598 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
599 | ammunition_unsigned_integer_shift_right ( 4, d, 32, d ); | ||
600 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
601 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "0" ) != 0 ) | ||
602 | result = 1; | ||
603 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
604 | ammunition_unsigned_integer_shift_right ( 4, d, 8, d ); | ||
605 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
606 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "5" ) != 0 ) | ||
607 | result = 1; | ||
608 | ammunition_unsigned_integer_from_string ( 4, "134890", d ); | ||
609 | ammunition_unsigned_integer_shift_right ( 4, d, 13, d ); | ||
610 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
611 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "16" ) != 0 ) | ||
612 | result = 1; | ||
613 | ammunition_unsigned_integer_from_string ( 4, "134890", d ); | ||
614 | ammunition_unsigned_integer_shift_left ( 4, d, -13, d ); | ||
615 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
616 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "16" ) != 0 ) | ||
617 | result = 1; | ||
618 | |||
619 | /* Test 13 */ | ||
620 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
621 | |||
622 | ammunition_integer_from_string ( 4, "1348", d ); | ||
623 | ammunition_integer_shift_right ( 4, d, 0, d ); | ||
624 | ammunition_integer_to_string( 4, d, s ); | ||
625 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "1348" ) != 0 ) | ||
626 | result = 1; | ||
627 | ammunition_integer_from_string ( 4, "1348", d ); | ||
628 | ammunition_integer_shift_right ( 4, d, 32, d ); | ||
629 | ammunition_integer_to_string( 4, d, s ); | ||
630 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "0" ) != 0 ) | ||
631 | result = 1; | ||
632 | ammunition_integer_from_string ( 4, "1348", d ); | ||
633 | ammunition_integer_shift_right ( 4, d, 8, d ); | ||
634 | ammunition_integer_to_string( 4, d, s ); | ||
635 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "5" ) != 0 ) | ||
636 | result = 1; | ||
637 | ammunition_integer_from_string ( 4, "134890", d ); | ||
638 | ammunition_integer_shift_right ( 4, d, 13, d ); | ||
639 | ammunition_integer_to_string( 4, d, s ); | ||
640 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "16" ) != 0 ) | ||
641 | result = 1; | ||
642 | ammunition_integer_from_string ( 4, "134890", d ); | ||
643 | ammunition_integer_shift_left ( 4, d, -13, d ); | ||
644 | ammunition_integer_to_string( 4, d, s ); | ||
645 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "16" ) != 0 ) | ||
646 | result = 1; | ||
647 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
648 | ammunition_integer_shift_right ( 4, d, 0, d ); | ||
649 | ammunition_integer_to_string( 4, d, s ); | ||
650 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "-1348" ) != 0 ) | ||
651 | result = 1; | ||
652 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
653 | ammunition_integer_shift_right ( 4, d, 32, d ); | ||
654 | ammunition_integer_to_string( 4, d, s ); | ||
655 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "-1" ) != 0 ) | ||
656 | result = 1; | ||
657 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
658 | ammunition_integer_shift_right ( 4, d, 8, d ); | ||
659 | ammunition_integer_to_string( 4, d, s ); | ||
660 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "-6" ) != 0 ) | ||
661 | result = 1; | ||
662 | ammunition_integer_from_string ( 4, "-134890", d ); | ||
663 | ammunition_integer_shift_right ( 4, d, 13, d ); | ||
664 | ammunition_integer_to_string( 4, d, s ); | ||
665 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "-17" ) != 0 ) | ||
666 | result = 1; | ||
667 | ammunition_integer_from_string ( 4, "-134890", d ); | ||
668 | ammunition_integer_shift_left ( 4, d, -13, d ); | ||
669 | ammunition_integer_to_string( 4, d, s ); | ||
670 | if ( !ammunition_overflow_bit || ammunition_strcmp ( s, "-17" ) != 0 ) | ||
671 | result = 1; | ||
672 | |||
673 | /* Test 14 */ | ||
674 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
675 | |||
676 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
677 | ammunition_unsigned_integer_shift_left ( 4, d, 0, d ); | ||
678 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
679 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "1348" ) != 0 ) | ||
680 | result = 1; | ||
681 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
682 | ammunition_unsigned_integer_shift_left ( 4, d, 22, d ); | ||
683 | if ( !ammunition_overflow_bit ) | ||
684 | result = 1; | ||
685 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
686 | ammunition_unsigned_integer_shift_left ( 4, d, 8, d ); | ||
687 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
688 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "345088" ) != 0 ) | ||
689 | result = 1; | ||
690 | ammunition_unsigned_integer_from_string ( 4, "134890", d ); | ||
691 | ammunition_unsigned_integer_shift_left ( 4, d, 13, d ); | ||
692 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
693 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "1105018880" ) != 0 ) | ||
694 | result = 1; | ||
695 | ammunition_unsigned_integer_from_string ( 4, "134890", d ); | ||
696 | ammunition_unsigned_integer_shift_right ( 4, d, -13, d ); | ||
697 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
698 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "1105018880" ) != 0 ) | ||
699 | result = 1; | ||
700 | |||
701 | /* Test 15 */ | ||
702 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
703 | |||
704 | ammunition_integer_from_string ( 4, "1348", d ); | ||
705 | ammunition_integer_shift_left ( 4, d, 0, d ); | ||
706 | ammunition_integer_to_string( 4, d, s ); | ||
707 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "1348" ) != 0 ) | ||
708 | result = 1; | ||
709 | ammunition_integer_from_string ( 4, "1348", d ); | ||
710 | ammunition_integer_shift_left ( 4, d, 21, d ); | ||
711 | if ( !ammunition_overflow_bit ) | ||
712 | result = 1; | ||
713 | ammunition_integer_from_string ( 4, "1348", d ); | ||
714 | ammunition_integer_shift_left ( 4, d, 8, d ); | ||
715 | ammunition_integer_to_string( 4, d, s ); | ||
716 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "345088" ) != 0 ) | ||
717 | result = 1; | ||
718 | ammunition_integer_from_string ( 4, "134890", d ); | ||
719 | ammunition_integer_shift_left ( 4, d, 13, d ); | ||
720 | ammunition_integer_to_string( 4, d, s ); | ||
721 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "1105018880" ) != 0 ) | ||
722 | result = 1; | ||
723 | ammunition_integer_from_string ( 4, "134890", d ); | ||
724 | ammunition_integer_shift_right ( 4, d, -13, d ); | ||
725 | ammunition_integer_to_string( 4, d, s ); | ||
726 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "1105018880" ) != 0 ) | ||
727 | result = 1; | ||
728 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
729 | ammunition_integer_shift_left ( 4, d, 0, d ); | ||
730 | ammunition_integer_to_string( 4, d, s ); | ||
731 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "-1348" ) != 0 ) | ||
732 | result = 1; | ||
733 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
734 | ammunition_integer_shift_left ( 4, d, 21, d ); | ||
735 | if ( !ammunition_overflow_bit ) | ||
736 | result = 1; | ||
737 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
738 | ammunition_integer_shift_left ( 4, d, 8, d ); | ||
739 | ammunition_integer_to_string( 4, d, s ); | ||
740 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "-345088" ) != 0 ) | ||
741 | result = 1; | ||
742 | ammunition_integer_from_string ( 4, "-134890", d ); | ||
743 | ammunition_integer_shift_left ( 4, d, 13, d ); | ||
744 | ammunition_integer_to_string( 4, d, s ); | ||
745 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "-1105018880" ) != 0 ) | ||
746 | result = 1; | ||
747 | ammunition_integer_from_string ( 4, "-134890", d ); | ||
748 | ammunition_integer_shift_right ( 4, d, -13, d ); | ||
749 | ammunition_integer_to_string( 4, d, s ); | ||
750 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "-1105018880" ) != 0 ) | ||
751 | result = 1; | ||
752 | |||
753 | /* Test 16 */ | ||
754 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
755 | |||
756 | ammunition_integer_from_string ( 4, "-10", d ); | ||
757 | ammunition_integer_from_string ( 4, "1348", e ); | ||
758 | if ( ammunition_eq_integer ( 4, d, e ) ) | ||
759 | result = 1; | ||
760 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
761 | ammunition_integer_from_string ( 4, "-1348", e ); | ||
762 | if ( !ammunition_eq_integer ( 4, d, e ) ) | ||
763 | result = 1; | ||
764 | |||
765 | /* Test 17 */ | ||
766 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
767 | |||
768 | ammunition_unsigned_integer_from_string ( 4, "10", d ); | ||
769 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
770 | if ( ammunition_eq_unsigned_integer ( 4, d, e ) ) | ||
771 | result = 1; | ||
772 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
773 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
774 | if ( !ammunition_eq_unsigned_integer ( 4, d, e ) ) | ||
775 | result = 1; | ||
776 | |||
777 | /* Test 18 */ | ||
778 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
779 | |||
780 | ammunition_integer_from_string ( 4, "-10", d ); | ||
781 | ammunition_integer_from_string ( 4, "1348", e ); | ||
782 | if ( !ammunition_ne_integer ( 4, d, e ) ) | ||
783 | result = 1; | ||
784 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
785 | ammunition_integer_from_string ( 4, "-1348", e ); | ||
786 | if ( ammunition_ne_integer ( 4, d, e ) ) | ||
787 | result = 1; | ||
788 | |||
789 | /* Test 19 */ | ||
790 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
791 | |||
792 | ammunition_unsigned_integer_from_string ( 4, "10", d ); | ||
793 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
794 | if ( !ammunition_ne_unsigned_integer ( 4, d, e ) ) | ||
795 | result = 1; | ||
796 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
797 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
798 | if ( ammunition_ne_unsigned_integer ( 4, d, e ) ) | ||
799 | result = 1; | ||
800 | |||
801 | /* Test 20 */ | ||
802 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
803 | |||
804 | ammunition_integer_from_string ( 4, "-10", d ); | ||
805 | ammunition_integer_from_string ( 4, "1348", e ); | ||
806 | if ( ammunition_gt_integer ( 4, d, e ) ) | ||
807 | result = 1; | ||
808 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
809 | ammunition_integer_from_string ( 4, "-1348", e ); | ||
810 | if ( ammunition_gt_integer ( 4, d, e ) ) | ||
811 | result = 1; | ||
812 | ammunition_integer_from_string ( 4, "-1000000", d ); | ||
813 | ammunition_integer_from_string ( 4, "-1348", e ); | ||
814 | if ( ammunition_gt_integer ( 4, d, e ) ) | ||
815 | result = 1; | ||
816 | ammunition_integer_from_string ( 4, "1000000", d ); | ||
817 | ammunition_integer_from_string ( 4, "1348", e ); | ||
818 | if ( !ammunition_gt_integer ( 4, d, e ) ) | ||
819 | result = 1; | ||
820 | |||
821 | /* Test 21 */ | ||
822 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
823 | |||
824 | ammunition_unsigned_integer_from_string ( 4, "10", d ); | ||
825 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
826 | if ( ammunition_gt_unsigned_integer ( 4, d, e ) ) | ||
827 | result = 1; | ||
828 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
829 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
830 | if ( ammunition_gt_unsigned_integer ( 4, d, e ) ) | ||
831 | result = 1; | ||
832 | ammunition_unsigned_integer_from_string ( 4, "1000000", d ); | ||
833 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
834 | if ( !ammunition_gt_unsigned_integer ( 4, d, e ) ) | ||
835 | result = 1; | ||
836 | |||
837 | /* Test 22 */ | ||
838 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
839 | |||
840 | ammunition_integer_from_string ( 4, "-10", d ); | ||
841 | ammunition_integer_from_string ( 4, "1348", e ); | ||
842 | if ( !ammunition_lt_integer ( 4, d, e ) ) | ||
843 | result = 1; | ||
844 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
845 | ammunition_integer_from_string ( 4, "-1348", e ); | ||
846 | if ( ammunition_lt_integer ( 4, d, e ) ) | ||
847 | result = 1; | ||
848 | ammunition_integer_from_string ( 4, "-1000000", d ); | ||
849 | ammunition_integer_from_string ( 4, "-1348", e ); | ||
850 | if ( !ammunition_lt_integer ( 4, d, e ) ) | ||
851 | result = 1; | ||
852 | ammunition_integer_from_string ( 4, "1000000", d ); | ||
853 | ammunition_integer_from_string ( 4, "1348", e ); | ||
854 | if ( ammunition_lt_integer ( 4, d, e ) ) | ||
855 | result = 1; | ||
856 | |||
857 | /* Test 23 */ | ||
858 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
859 | |||
860 | ammunition_unsigned_integer_from_string ( 4, "10", d ); | ||
861 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
862 | if ( !ammunition_lt_unsigned_integer ( 4, d, e ) ) | ||
863 | result = 1; | ||
864 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
865 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
866 | if ( ammunition_lt_unsigned_integer ( 4, d, e ) ) | ||
867 | result = 1; | ||
868 | ammunition_unsigned_integer_from_string ( 4, "1000000", d ); | ||
869 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
870 | if ( ammunition_lt_unsigned_integer ( 4, d, e ) ) | ||
871 | result = 1; | ||
872 | |||
873 | /* Test 24 */ | ||
874 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
875 | |||
876 | ammunition_integer_from_string ( 4, "-10", d ); | ||
877 | ammunition_integer_from_string ( 4, "1348", e ); | ||
878 | if ( ammunition_ge_integer ( 4, d, e ) ) | ||
879 | result = 1; | ||
880 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
881 | ammunition_integer_from_string ( 4, "-1348", e ); | ||
882 | if ( !ammunition_ge_integer ( 4, d, e ) ) | ||
883 | result = 1; | ||
884 | ammunition_integer_from_string ( 4, "-1000000", d ); | ||
885 | ammunition_integer_from_string ( 4, "-1348", e ); | ||
886 | if ( ammunition_ge_integer ( 4, d, e ) ) | ||
887 | result = 1; | ||
888 | ammunition_integer_from_string ( 4, "1000000", d ); | ||
889 | ammunition_integer_from_string ( 4, "1348", e ); | ||
890 | if ( !ammunition_ge_integer ( 4, d, e ) ) | ||
891 | result = 1; | ||
892 | |||
893 | /* Test 25 */ | ||
894 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
895 | |||
896 | ammunition_unsigned_integer_from_string ( 4, "10", d ); | ||
897 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
898 | if ( ammunition_ge_unsigned_integer ( 4, d, e ) ) | ||
899 | result = 1; | ||
900 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
901 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
902 | if ( !ammunition_ge_unsigned_integer ( 4, d, e ) ) | ||
903 | result = 1; | ||
904 | ammunition_unsigned_integer_from_string ( 4, "1000000", d ); | ||
905 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
906 | if ( !ammunition_ge_unsigned_integer ( 4, d, e ) ) | ||
907 | result = 1; | ||
908 | |||
909 | /* Test 26 */ | ||
910 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
911 | |||
912 | ammunition_integer_from_string ( 4, "-10", d ); | ||
913 | ammunition_integer_from_string ( 4, "1348", e ); | ||
914 | if ( !ammunition_le_integer ( 4, d, e ) ) | ||
915 | result = 1; | ||
916 | ammunition_integer_from_string ( 4, "-1348", d ); | ||
917 | ammunition_integer_from_string ( 4, "-1348", e ); | ||
918 | if ( !ammunition_le_integer ( 4, d, e ) ) | ||
919 | result = 1; | ||
920 | ammunition_integer_from_string ( 4, "-1000000", d ); | ||
921 | ammunition_integer_from_string ( 4, "-1348", e ); | ||
922 | if ( !ammunition_le_integer ( 4, d, e ) ) | ||
923 | result = 1; | ||
924 | ammunition_integer_from_string ( 4, "1000000", d ); | ||
925 | ammunition_integer_from_string ( 4, "1348", e ); | ||
926 | if ( ammunition_le_integer ( 4, d, e ) ) | ||
927 | result = 1; | ||
928 | |||
929 | /* Test 27 */ | ||
930 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
931 | |||
932 | ammunition_unsigned_integer_from_string ( 4, "10", d ); | ||
933 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
934 | if ( !ammunition_le_unsigned_integer ( 4, d, e ) ) | ||
935 | result = 1; | ||
936 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
937 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
938 | if ( !ammunition_le_unsigned_integer ( 4, d, e ) ) | ||
939 | result = 1; | ||
940 | ammunition_unsigned_integer_from_string ( 4, "1000000", d ); | ||
941 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
942 | if ( ammunition_le_unsigned_integer ( 4, d, e ) ) | ||
943 | result = 1; | ||
944 | |||
945 | /* Test 28 */ | ||
946 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
947 | |||
948 | ammunition_unsigned_integer_from_string ( 4, "70000", d ); | ||
949 | ammunition_change_unsigned_integer_size ( 4, d, 2, d ); | ||
950 | if ( !ammunition_overflow_bit ) | ||
951 | result = 1; | ||
952 | ammunition_unsigned_integer_from_string ( 4, "30000", d ); | ||
953 | ammunition_change_unsigned_integer_size ( 4, d, 2, d ); | ||
954 | ammunition_integer_to_string( 2, d, s ); | ||
955 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "30000" ) != 0 ) | ||
956 | result = 1; | ||
957 | ammunition_unsigned_integer_from_string ( 4, "11230000", g ); | ||
958 | ammunition_change_unsigned_integer_size ( 4, g, 6, g ); | ||
959 | ammunition_integer_to_string( 6, g, s ); | ||
960 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "11230000" ) != 0 ) | ||
961 | result = 1; | ||
962 | |||
963 | /* Test 29 */ | ||
964 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
965 | |||
966 | ammunition_integer_from_string ( 4, "40000", d ); | ||
967 | ammunition_change_integer_size ( 4, d, 2, d ); | ||
968 | if ( !ammunition_overflow_bit ) | ||
969 | result = 1; | ||
970 | ammunition_integer_from_string ( 4, "-33000", d ); | ||
971 | ammunition_change_integer_size ( 4, d, 2, d ); | ||
972 | if ( !ammunition_overflow_bit ) | ||
973 | result = 1; | ||
974 | ammunition_integer_from_string ( 4, "30000", d ); | ||
975 | ammunition_change_integer_size ( 4, d, 2, d ); | ||
976 | ammunition_integer_to_string( 2, d, s ); | ||
977 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "30000" ) != 0 ) | ||
978 | result = 1; | ||
979 | ammunition_integer_from_string ( 4, "-30000", d ); | ||
980 | ammunition_change_integer_size ( 4, d, 2, d ); | ||
981 | ammunition_integer_to_string( 2, d, s ); | ||
982 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "-30000" ) != 0 ) | ||
983 | result = 1; | ||
984 | ammunition_integer_from_string ( 4, "11230000", g ); | ||
985 | ammunition_change_integer_size ( 4, g, 6, g ); | ||
986 | ammunition_integer_to_string( 6, g, s ); | ||
987 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "11230000" ) != 0 ) | ||
988 | result = 1; | ||
989 | ammunition_integer_from_string ( 4, "-11230000", g ); | ||
990 | ammunition_change_integer_size ( 4, g, 6, g ); | ||
991 | ammunition_integer_to_string( 6, g, s ); | ||
992 | if ( ammunition_overflow_bit || ammunition_strcmp ( s, "-11230000" ) != 0 ) | ||
993 | result = 1; | ||
994 | |||
995 | /* Test 30 */ | ||
996 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
997 | |||
998 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
999 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
1000 | ammunition_unsigned_integer_or ( 4, d, e, e ); | ||
1001 | ammunition_unsigned_integer_to_string ( 4, e, s ); | ||
1002 | if ( ammunition_strcmp ( s, "1348" ) != 0 ) | ||
1003 | result = 1; | ||
1004 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
1005 | ammunition_unsigned_integer_from_string ( 4, "0", e ); | ||
1006 | ammunition_unsigned_integer_or ( 4, d, e, e ); | ||
1007 | ammunition_unsigned_integer_to_string ( 4, e, s ); | ||
1008 | if ( ammunition_strcmp ( s, "1348" ) != 0 ) | ||
1009 | result = 1; | ||
1010 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
1011 | ammunition_unsigned_integer_from_string ( 4, "4294967295", e ); | ||
1012 | ammunition_unsigned_integer_or ( 4, d, e, e ); | ||
1013 | ammunition_unsigned_integer_to_string ( 4, e, s ); | ||
1014 | if ( ammunition_strcmp ( s, "4294967295" ) != 0 ) | ||
1015 | result = 1; | ||
1016 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
1017 | ammunition_unsigned_integer_from_string ( 4, "96", e ); | ||
1018 | ammunition_unsigned_integer_or ( 4, d, e, e ); | ||
1019 | ammunition_unsigned_integer_to_string ( 4, e, s ); | ||
1020 | if ( ammunition_strcmp ( s, "1380" ) != 0 ) | ||
1021 | result = 1; | ||
1022 | |||
1023 | /* Test 31 */ | ||
1024 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
1025 | |||
1026 | ammunition_integer_from_string ( 4, "1348", d ); | ||
1027 | ammunition_integer_from_string ( 4, "1348", e ); | ||
1028 | ammunition_integer_or ( 4, d, e, e ); | ||
1029 | ammunition_integer_to_string( 4, e, s ); | ||
1030 | if ( ammunition_strcmp ( s, "1348" ) != 0 ) | ||
1031 | result = 1; | ||
1032 | ammunition_integer_from_string ( 4, "1348", d ); | ||
1033 | ammunition_integer_from_string ( 4, "0", e ); | ||
1034 | ammunition_integer_or ( 4, d, e, e ); | ||
1035 | ammunition_integer_to_string( 4, e, s ); | ||
1036 | if ( ammunition_strcmp ( s, "1348" ) != 0 ) | ||
1037 | result = 1; | ||
1038 | ammunition_integer_from_string ( 4, "1348", d ); | ||
1039 | ammunition_integer_from_string ( 4, "-1", e ); | ||
1040 | ammunition_integer_or ( 4, d, e, e ); | ||
1041 | ammunition_integer_to_string( 4, e, s ); | ||
1042 | if ( ammunition_strcmp ( s, "-1" ) != 0 ) | ||
1043 | result = 1; | ||
1044 | ammunition_integer_from_string ( 4, "1348", d ); | ||
1045 | ammunition_integer_from_string ( 4, "96", e ); | ||
1046 | ammunition_integer_or ( 4, d, e, e ); | ||
1047 | ammunition_integer_to_string( 4, e, s ); | ||
1048 | if ( ammunition_strcmp ( s, "1380" ) != 0 ) | ||
1049 | result = 1; | ||
1050 | |||
1051 | /* Test 32 */ | ||
1052 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
1053 | |||
1054 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
1055 | ammunition_unsigned_integer_from_string ( 4, "1348", e ); | ||
1056 | ammunition_unsigned_integer_and ( 4, d, e, e ); | ||
1057 | ammunition_unsigned_integer_to_string ( 4, e, s ); | ||
1058 | if ( ammunition_strcmp ( s, "1348" ) != 0 ) | ||
1059 | result = 1; | ||
1060 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
1061 | ammunition_unsigned_integer_from_string ( 4, "0", e ); | ||
1062 | ammunition_unsigned_integer_and ( 4, d, e, e ); | ||
1063 | ammunition_unsigned_integer_to_string ( 4, e, s ); | ||
1064 | if ( ammunition_strcmp ( s, "0" ) != 0 ) | ||
1065 | result = 1; | ||
1066 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
1067 | ammunition_unsigned_integer_from_string ( 4, "4294967295", e ); | ||
1068 | ammunition_unsigned_integer_and ( 4, d, e, e ); | ||
1069 | ammunition_unsigned_integer_to_string ( 4, e, s ); | ||
1070 | if ( ammunition_strcmp ( s, "1348" ) != 0 ) | ||
1071 | result = 1; | ||
1072 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
1073 | ammunition_unsigned_integer_from_string ( 4, "96", e ); | ||
1074 | ammunition_unsigned_integer_and ( 4, d, e, e ); | ||
1075 | ammunition_unsigned_integer_to_string ( 4, e, s ); | ||
1076 | if ( ammunition_strcmp ( s, "64" ) != 0 ) | ||
1077 | result = 1; | ||
1078 | |||
1079 | /* Test 33 */ | ||
1080 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
1081 | |||
1082 | ammunition_integer_from_string ( 4, "1348", d ); | ||
1083 | ammunition_integer_from_string ( 4, "1348", e ); | ||
1084 | ammunition_integer_and ( 4, d, e, e ); | ||
1085 | ammunition_integer_to_string( 4, e, s ); | ||
1086 | if ( ammunition_strcmp ( s, "1348" ) != 0 ) | ||
1087 | result = 1; | ||
1088 | ammunition_integer_from_string ( 4, "1348", d ); | ||
1089 | ammunition_integer_from_string ( 4, "0", e ); | ||
1090 | ammunition_integer_and ( 4, d, e, e ); | ||
1091 | ammunition_integer_to_string( 4, e, s ); | ||
1092 | if ( ammunition_strcmp ( s, "0" ) != 0 ) | ||
1093 | result = 1; | ||
1094 | ammunition_integer_from_string ( 4, "1348", d ); | ||
1095 | ammunition_integer_from_string ( 4, "-1", e ); | ||
1096 | ammunition_integer_and ( 4, d, e, e ); | ||
1097 | ammunition_integer_to_string( 4, e, s ); | ||
1098 | if ( ammunition_strcmp ( s, "1348" ) != 0 ) | ||
1099 | result = 1; | ||
1100 | ammunition_integer_from_string ( 4, "1348", d ); | ||
1101 | ammunition_integer_from_string ( 4, "96", e ); | ||
1102 | ammunition_integer_and ( 4, d, e, e ); | ||
1103 | ammunition_integer_to_string( 4, e, s ); | ||
1104 | if ( ammunition_strcmp ( s, "64" ) != 0 ) | ||
1105 | result = 1; | ||
1106 | |||
1107 | /* Test 34 */ | ||
1108 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
1109 | |||
1110 | ammunition_unsigned_integer_from_string ( 4, "1348", d ); | ||
1111 | ammunition_unsigned_integer_not ( 4, d, d ); | ||
1112 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
1113 | if ( ammunition_strcmp ( s, "4294965947" ) != 0 ) | ||
1114 | result = 1; | ||
1115 | ammunition_unsigned_integer_from_string ( 4, "0", d ); | ||
1116 | ammunition_unsigned_integer_not ( 4, d, d ); | ||
1117 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
1118 | if ( ammunition_strcmp ( s, "4294967295" ) != 0 ) | ||
1119 | result = 1; | ||
1120 | ammunition_unsigned_integer_from_string ( 4, "4294967295", d ); | ||
1121 | ammunition_unsigned_integer_not ( 4, d, d ); | ||
1122 | ammunition_unsigned_integer_to_string ( 4, d, s ); | ||
1123 | if ( ammunition_strcmp ( s, "0" ) != 0 ) | ||
1124 | result = 1; | ||
1125 | |||
1126 | /* Test 35 */ | ||
1127 | ammunition_reset_str_arithm( str, s, d, e, g ); | ||
1128 | |||
1129 | ammunition_integer_from_string ( 4, "1348", d ); | ||
1130 | ammunition_integer_not ( 4, d, d ); | ||
1131 | ammunition_integer_to_string( 4, d, s ); | ||
1132 | if ( ammunition_strcmp ( s, "-1349" ) != 0 ) | ||
1133 | result = 1; | ||
1134 | ammunition_integer_from_string ( 4, "0", d ); | ||
1135 | ammunition_integer_not ( 4, d, d ); | ||
1136 | ammunition_integer_to_string( 4, d, s ); | ||
1137 | if ( ammunition_strcmp ( s, "-1" ) != 0 ) | ||
1138 | result = 1; | ||
1139 | ammunition_integer_from_string ( 4, "-1", d ); | ||
1140 | ammunition_integer_not ( 4, d, d ); | ||
1141 | ammunition_integer_to_string( 4, d, s ); | ||
1142 | if ( ammunition_strcmp ( s, "0" ) != 0 ) | ||
1143 | result = 1; | ||
1144 | |||
1145 | return result; | ||
1146 | } | ||
1147 | |||
1148 | |||
1149 | /* | ||
1150 | Initialization- and return-value-related functions | ||
1151 | */ | ||
1152 | |||
1153 | void ammunition_init( void ) | ||
1154 | { | ||
1155 | ammunition_result = 0; | ||
1156 | } | ||
1157 | |||
1158 | int ammunition_return( void ) | ||
1159 | { | ||
1160 | return ammunition_result; | ||
1161 | } | ||
1162 | |||
1163 | /* | ||
1164 | Main functions | ||
1165 | */ | ||
1166 | |||
1167 | void _Pragma( "entrypoint" ) ammunition_main( void ) | ||
1168 | { | ||
1169 | ammunition_result |= ammunition_bits_test(); | ||
1170 | ammunition_result |= ammunition_arithm_test(); | ||
1171 | } | ||
1172 | |||
1173 | |||
1174 | int main( int argc, char **argv ) | ||
1175 | { | ||
1176 | SET_UP | ||
1177 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
1178 | START_LOOP | ||
1179 | ammunition_init(); | ||
1180 | ammunition_main(); | ||
1181 | STOP_LOOP | ||
1182 | } | ||
1183 | WRITE_TO_FILE | ||
1184 | return ( ammunition_return() ); | ||
1185 | } | ||
diff --git a/baseline/source/ammunition/ammunitionTimed.txt b/baseline/source/ammunition/ammunitionTimed.txt new file mode 100644 index 0000000..b49784b --- /dev/null +++ b/baseline/source/ammunition/ammunitionTimed.txt | |||
@@ -0,0 +1,100 @@ | |||
1 | ammunition none 7 none 100 52370648 ammunitionTimed 0 (null) | ||
2 | ammunition none 7 none 100 52473247 ammunitionTimed 1 (null) | ||
3 | ammunition none 7 none 100 52317008 ammunitionTimed 2 (null) | ||
4 | ammunition none 7 none 100 52427850 ammunitionTimed 3 (null) | ||
5 | ammunition none 7 none 100 52418211 ammunitionTimed 4 (null) | ||
6 | ammunition none 7 none 100 52452295 ammunitionTimed 5 (null) | ||
7 | ammunition none 7 none 100 52400750 ammunitionTimed 6 (null) | ||
8 | ammunition none 7 none 100 52491197 ammunitionTimed 7 (null) | ||
9 | ammunition none 7 none 100 52383220 ammunitionTimed 8 (null) | ||
10 | ammunition none 7 none 100 52455367 ammunitionTimed 9 (null) | ||
11 | ammunition none 7 none 100 52359403 ammunitionTimed 10 (null) | ||
12 | ammunition none 7 none 100 52366038 ammunitionTimed 11 (null) | ||
13 | ammunition none 7 none 100 52373652 ammunitionTimed 12 (null) | ||
14 | ammunition none 7 none 100 52349625 ammunitionTimed 13 (null) | ||
15 | ammunition none 7 none 100 52418910 ammunitionTimed 14 (null) | ||
16 | ammunition none 7 none 100 52359124 ammunitionTimed 15 (null) | ||
17 | ammunition none 7 none 100 52403265 ammunitionTimed 16 (null) | ||
18 | ammunition none 7 none 100 52403055 ammunitionTimed 17 (null) | ||
19 | ammunition none 7 none 100 52355073 ammunitionTimed 18 (null) | ||
20 | ammunition none 7 none 100 52359473 ammunitionTimed 19 (null) | ||
21 | ammunition none 7 none 100 52337402 ammunitionTimed 20 (null) | ||
22 | ammunition none 7 none 100 52367365 ammunitionTimed 21 (null) | ||
23 | ammunition none 7 none 100 52290188 ammunitionTimed 22 (null) | ||
24 | ammunition none 7 none 100 52308907 ammunitionTimed 23 (null) | ||
25 | ammunition none 7 none 100 52417792 ammunitionTimed 24 (null) | ||
26 | ammunition none 7 none 100 52284112 ammunitionTimed 25 (null) | ||
27 | ammunition none 7 none 100 52490150 ammunitionTimed 26 (null) | ||
28 | ammunition none 7 none 100 52386712 ammunitionTimed 27 (null) | ||
29 | ammunition none 7 none 100 52323504 ammunitionTimed 28 (null) | ||
30 | ammunition none 7 none 100 52339289 ammunitionTimed 29 (null) | ||
31 | ammunition none 7 none 100 52340825 ammunitionTimed 30 (null) | ||
32 | ammunition none 7 none 100 52367296 ammunitionTimed 31 (null) | ||
33 | ammunition none 7 none 100 52336146 ammunitionTimed 32 (null) | ||
34 | ammunition none 7 none 100 52374210 ammunitionTimed 33 (null) | ||
35 | ammunition none 7 none 100 52414021 ammunitionTimed 34 (null) | ||
36 | ammunition none 7 none 100 52441748 ammunitionTimed 35 (null) | ||
37 | ammunition none 7 none 100 52366458 ammunitionTimed 36 (null) | ||
38 | ammunition none 7 none 100 52371905 ammunitionTimed 37 (null) | ||
39 | ammunition none 7 none 100 52367086 ammunitionTimed 38 (null) | ||
40 | ammunition none 7 none 100 52324622 ammunitionTimed 39 (null) | ||
41 | ammunition none 7 none 100 52381543 ammunitionTimed 40 (null) | ||
42 | ammunition none 7 none 100 52295707 ammunitionTimed 41 (null) | ||
43 | ammunition none 7 none 100 52346692 ammunitionTimed 42 (null) | ||
44 | ammunition none 7 none 100 52314983 ammunitionTimed 43 (null) | ||
45 | ammunition none 7 none 100 52349625 ammunitionTimed 44 (null) | ||
46 | ammunition none 7 none 100 52466123 ammunitionTimed 45 (null) | ||
47 | ammunition none 7 none 100 52374629 ammunitionTimed 46 (null) | ||
48 | ammunition none 7 none 100 52358006 ammunitionTimed 47 (null) | ||
49 | ammunition none 7 none 100 52392369 ammunitionTimed 48 (null) | ||
50 | ammunition none 7 none 100 52480232 ammunitionTimed 49 (null) | ||
51 | ammunition none 7 none 100 52368203 ammunitionTimed 50 (null) | ||
52 | ammunition none 7 none 100 52430364 ammunitionTimed 51 (null) | ||
53 | ammunition none 7 none 100 52342502 ammunitionTimed 52 (null) | ||
54 | ammunition none 7 none 100 52345504 ammunitionTimed 53 (null) | ||
55 | ammunition none 7 none 100 52495388 ammunitionTimed 54 (null) | ||
56 | ammunition none 7 none 100 52344107 ammunitionTimed 55 (null) | ||
57 | ammunition none 7 none 100 52388109 ammunitionTimed 56 (null) | ||
58 | ammunition none 7 none 100 52431760 ammunitionTimed 57 (null) | ||
59 | ammunition none 7 none 100 52364712 ammunitionTimed 58 (null) | ||
60 | ammunition none 7 none 100 52337473 ammunitionTimed 59 (null) | ||
61 | ammunition none 7 none 100 52433158 ammunitionTimed 60 (null) | ||
62 | ammunition none 7 none 100 52458790 ammunitionTimed 61 (null) | ||
63 | ammunition none 7 none 100 52402357 ammunitionTimed 62 (null) | ||
64 | ammunition none 7 none 100 52307440 ammunitionTimed 63 (null) | ||
65 | ammunition none 7 none 100 52515921 ammunitionTimed 64 (null) | ||
66 | ammunition none 7 none 100 52419607 ammunitionTimed 65 (null) | ||
67 | ammunition none 7 none 100 52401518 ammunitionTimed 66 (null) | ||
68 | ammunition none 7 none 100 52432389 ammunitionTimed 67 (null) | ||
69 | ammunition none 7 none 100 52310862 ammunitionTimed 68 (null) | ||
70 | ammunition none 7 none 100 52279992 ammunitionTimed 69 (null) | ||
71 | ammunition none 7 none 100 52402148 ammunitionTimed 70 (null) | ||
72 | ammunition none 7 none 100 52390414 ammunitionTimed 71 (null) | ||
73 | ammunition none 7 none 100 52374629 ammunitionTimed 72 (null) | ||
74 | ammunition none 7 none 100 52377493 ammunitionTimed 73 (null) | ||
75 | ammunition none 7 none 100 52334749 ammunitionTimed 74 (null) | ||
76 | ammunition none 7 none 100 52402845 ammunitionTimed 75 (null) | ||
77 | ammunition none 7 none 100 52391601 ammunitionTimed 76 (null) | ||
78 | ammunition none 7 none 100 52382800 ammunitionTimed 77 (null) | ||
79 | ammunition none 7 none 100 52471641 ammunitionTimed 78 (null) | ||
80 | ammunition none 7 none 100 52349137 ammunitionTimed 79 (null) | ||
81 | ammunition none 7 none 100 52408293 ammunitionTimed 80 (null) | ||
82 | ammunition none 7 none 100 52454180 ammunitionTimed 81 (null) | ||
83 | ammunition none 7 none 100 52407525 ammunitionTimed 82 (null) | ||
84 | ammunition none 7 none 100 52463749 ammunitionTimed 83 (null) | ||
85 | ammunition none 7 none 100 52335517 ammunitionTimed 84 (null) | ||
86 | ammunition none 7 none 100 52338800 ammunitionTimed 85 (null) | ||
87 | ammunition none 7 none 100 52406268 ammunitionTimed 86 (null) | ||
88 | ammunition none 7 none 100 52269236 ammunitionTimed 87 (null) | ||
89 | ammunition none 7 none 100 52310862 ammunitionTimed 88 (null) | ||
90 | ammunition none 7 none 100 52286138 ammunitionTimed 89 (null) | ||
91 | ammunition none 7 none 100 52381963 ammunitionTimed 90 (null) | ||
92 | ammunition none 7 none 100 52390343 ammunitionTimed 91 (null) | ||
93 | ammunition none 7 none 100 52426663 ammunitionTimed 92 (null) | ||
94 | ammunition none 7 none 100 52344736 ammunitionTimed 93 (null) | ||
95 | ammunition none 7 none 100 52346343 ammunitionTimed 94 (null) | ||
96 | ammunition none 7 none 100 52380287 ammunitionTimed 95 (null) | ||
97 | ammunition none 7 none 100 52344597 ammunitionTimed 96 (null) | ||
98 | ammunition none 7 none 100 52315263 ammunitionTimed 97 (null) | ||
99 | ammunition none 7 none 100 52418560 ammunitionTimed 98 (null) | ||
100 | ammunition none 7 none 100 52333352 ammunitionTimed 99 (null) | ||
diff --git a/baseline/source/ammunition/ammunition_libc.c b/baseline/source/ammunition/ammunition_libc.c new file mode 100644 index 0000000..4cce6e9 --- /dev/null +++ b/baseline/source/ammunition/ammunition_libc.c | |||
@@ -0,0 +1,166 @@ | |||
1 | /* | ||
2 | Include section | ||
3 | */ | ||
4 | |||
5 | #include "ammunition_string.h" | ||
6 | #include "ammunition_stdio.h" | ||
7 | #include "ammunition_stdlib.h" | ||
8 | |||
9 | |||
10 | /* | ||
11 | Standard library functions | ||
12 | */ | ||
13 | |||
14 | char ammunition_isdigit( unsigned char c ) | ||
15 | { | ||
16 | if ( ( c >= '0' ) & ( c <= '9' ) ) | ||
17 | return 1; | ||
18 | else | ||
19 | return 0; | ||
20 | } | ||
21 | |||
22 | int ammunition_isspace( int c ) | ||
23 | { | ||
24 | return ( c == ' ' ) | ( c == '\t' ) | ( c == '\n' ) | ( c == '\r' ); | ||
25 | } | ||
26 | |||
27 | void *ammunition_memcpy( void *dest, const void *src, size_x size ) | ||
28 | { | ||
29 | size_x i; | ||
30 | _Pragma( "loopbound min 2 max 6" ) | ||
31 | for ( i = 0; i < size; i++ ) | ||
32 | ( ( unsigned char * )dest )[i] = ( ( unsigned char * )src )[i]; | ||
33 | |||
34 | return dest; | ||
35 | } | ||
36 | |||
37 | |||
38 | void *ammunition_memset( void *s, int c, size_x n ) | ||
39 | { | ||
40 | size_x i; | ||
41 | _Pragma( "loopbound min 0 max 4" ) | ||
42 | for ( i = 0; i < n; i++ ) | ||
43 | ( ( unsigned char * )s )[i] = ( unsigned char )c; | ||
44 | |||
45 | return s; | ||
46 | } | ||
47 | |||
48 | |||
49 | int ammunition_memcmp ( const void *mem1, const void *mem2, size_x size ) | ||
50 | { | ||
51 | const unsigned char *p1 = (const unsigned char *) mem1, | ||
52 | *p2 = (const unsigned char *) mem2; | ||
53 | _Pragma( "loopbound min 0 max 4" ) | ||
54 | while ( size-- ) | ||
55 | if ( *p1 != *p2 ) | ||
56 | return ( *p1 - *p2 ); | ||
57 | else | ||
58 | p1++, p2++; | ||
59 | return 0; | ||
60 | } | ||
61 | |||
62 | |||
63 | /* The following function is an analog of standard C function | ||
64 | `memmove'. The function returns the first operand. */ | ||
65 | |||
66 | void *ammunition_memmove ( void *s1, const void *s2, size_x n ) | ||
67 | { | ||
68 | int i; | ||
69 | |||
70 | if ( ( ( char * ) s1 < ( char * ) s2 && ( char * ) s1 + n <= ( char * ) s2 ) | ||
71 | || ( ( char * ) s2 < ( char * ) s1 | ||
72 | && ( char * ) s2 + n <= ( char * ) s1 ) ) | ||
73 | return ( void * ) ammunition_memcpy ( s1, s2, n ); | ||
74 | if ( ( char * ) s1 < ( char * ) s2 && ( char * ) s1 + n > ( char * ) s2 ) { | ||
75 | _Pragma( "loopbound min 0 max 4" ) | ||
76 | for ( i = 0; ( size_x ) i < n; i++ ) | ||
77 | ( ( char * ) s1 ) [i] = ( ( char * ) s2 ) [i]; | ||
78 | } else { | ||
79 | _Pragma( "loopbound min 0 max 4" ) | ||
80 | for ( i = n - 1; i >= 0; i-- ) | ||
81 | ( ( char * ) s1 )[i] = ( ( char * ) s2 ) [i]; | ||
82 | } | ||
83 | return s1; | ||
84 | } | ||
85 | |||
86 | int ammunition_strcmp ( const char *str1, const char *str2 ) | ||
87 | { | ||
88 | _Pragma( "loopbound min 1 max 4008" ) | ||
89 | while ( *str1 && ( *str1 == *str2 ) ) | ||
90 | str1++, str2++; | ||
91 | return *( const unsigned char * )str1 - *( const unsigned char * )str2; | ||
92 | } | ||
93 | |||
94 | int ammunition_atoi ( const char *str ) | ||
95 | { | ||
96 | int result = 0; | ||
97 | int sign = ( str[0] == '-' ? -1 : 1 ); | ||
98 | |||
99 | int readingPos = 0; | ||
100 | if ( str[0] == '-' || str[0] == '+' ) | ||
101 | readingPos++; | ||
102 | _Pragma( "loopbound min 1 max 1" ) | ||
103 | do { | ||
104 | result *= 10; | ||
105 | result += str[readingPos++] - 48; | ||
106 | } while ( str[readingPos] != 0 ); | ||
107 | |||
108 | return sign * result; | ||
109 | } | ||
110 | |||
111 | |||
112 | int ammunition_sprintf_d( char *s, int number ) | ||
113 | { | ||
114 | /* How many decimal digits do we need? */ | ||
115 | char digits = 0; | ||
116 | unsigned char writePos = 0; | ||
117 | long long copyOfNumber = number; | ||
118 | _Pragma( "loopbound min 1 max 10" ) | ||
119 | do { | ||
120 | digits++; | ||
121 | copyOfNumber /= 10; | ||
122 | } while ( copyOfNumber != 0 ); | ||
123 | |||
124 | writePos = digits; | ||
125 | if ( number < 0 ) { | ||
126 | writePos++; | ||
127 | s[0] = '-'; | ||
128 | } | ||
129 | s[writePos] = 0; | ||
130 | |||
131 | copyOfNumber = number; | ||
132 | _Pragma( "loopbound min 1 max 10" ) | ||
133 | do { | ||
134 | s[--writePos] = 48 + ( ( copyOfNumber >= 0 ? | ||
135 | copyOfNumber : -copyOfNumber ) % 10 ); | ||
136 | copyOfNumber /= 10; | ||
137 | } while ( copyOfNumber != 0 ); | ||
138 | |||
139 | return digits + ( number < 0 ? 1 : 0 ); | ||
140 | } | ||
141 | |||
142 | |||
143 | int ammunition_sprintf_u( char *s, unsigned int number ) | ||
144 | { | ||
145 | /* How many decimal digits do we need? */ | ||
146 | char digits = 0; | ||
147 | unsigned char writePos = 0; | ||
148 | unsigned long copyOfNumber = number; | ||
149 | _Pragma( "loopbound min 1 max 10" ) | ||
150 | do { | ||
151 | digits++; | ||
152 | copyOfNumber /= 10; | ||
153 | } while ( copyOfNumber != 0 ); | ||
154 | |||
155 | writePos = digits; | ||
156 | s[writePos] = 0; | ||
157 | |||
158 | copyOfNumber = number; | ||
159 | _Pragma( "loopbound min 1 max 10" ) | ||
160 | do { | ||
161 | s[--writePos] = 48 + ( copyOfNumber % 10 ); | ||
162 | copyOfNumber /= 10; | ||
163 | } while ( copyOfNumber != 0 ); | ||
164 | |||
165 | return digits; | ||
166 | } | ||
diff --git a/baseline/source/ammunition/ammunition_limits.h b/baseline/source/ammunition/ammunition_limits.h new file mode 100644 index 0000000..0de4c82 --- /dev/null +++ b/baseline/source/ammunition/ammunition_limits.h | |||
@@ -0,0 +1,35 @@ | |||
1 | #ifndef AMMUNITION_LIMITS_H | ||
2 | #define AMMUNITION_LIMITS_H | ||
3 | |||
4 | #ifndef CHAR_BIT | ||
5 | #define CHAR_BIT 8 | ||
6 | #endif | ||
7 | #ifndef UCHAR_MAX | ||
8 | #define UCHAR_MAX 255 | ||
9 | #endif | ||
10 | #ifndef SCHAR_MAX | ||
11 | #define SCHAR_MAX 127 | ||
12 | #endif | ||
13 | #ifndef SCHAR_MIN | ||
14 | #define SCHAR_MIN (-128) | ||
15 | #endif | ||
16 | #ifndef USHRT_MAX | ||
17 | #define USHRT_MAX 65535 | ||
18 | #endif | ||
19 | #ifndef SHRT_MAX | ||
20 | #define SHRT_MAX 32767 | ||
21 | #endif | ||
22 | #ifndef SHRT_MIN | ||
23 | #define SHRT_MIN (-32768) | ||
24 | #endif | ||
25 | #ifndef UINT_MAX | ||
26 | #define UINT_MAX (INT_MAX * 2U + 1) | ||
27 | #endif | ||
28 | #ifndef INT_MAX | ||
29 | #define INT_MAX 2147483647 | ||
30 | #endif | ||
31 | #ifndef INT_MIN | ||
32 | #define INT_MIN (-INT_MAX-1) | ||
33 | #endif | ||
34 | |||
35 | #endif /* #ifndef AMMUNITION_LIMITS_H */ | ||
diff --git a/baseline/source/ammunition/ammunition_stdio.h b/baseline/source/ammunition/ammunition_stdio.h new file mode 100644 index 0000000..a3a7a4b --- /dev/null +++ b/baseline/source/ammunition/ammunition_stdio.h | |||
@@ -0,0 +1,8 @@ | |||
1 | #ifndef AMMUNITION_STDIO_H | ||
2 | #define AMMUNITION_STDIO_H | ||
3 | |||
4 | int ammunition_sprintf_d( char *s, int number ); | ||
5 | |||
6 | int ammunition_sprintf_u( char *s, unsigned int number ); | ||
7 | |||
8 | #endif | ||
diff --git a/baseline/source/ammunition/ammunition_stdlib.h b/baseline/source/ammunition/ammunition_stdlib.h new file mode 100644 index 0000000..d907212 --- /dev/null +++ b/baseline/source/ammunition/ammunition_stdlib.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef AMMUNITION_STDLIB_H | ||
2 | #define AMMUNITION_STDLIB_H | ||
3 | |||
4 | int ammunition_atoi ( const char *str ); | ||
5 | |||
6 | #endif | ||
diff --git a/baseline/source/ammunition/ammunition_string.h b/baseline/source/ammunition/ammunition_string.h new file mode 100644 index 0000000..6b042f8 --- /dev/null +++ b/baseline/source/ammunition/ammunition_string.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef AMMUNITION_STRING_H | ||
2 | #define AMMUNITION_STRING_H | ||
3 | |||
4 | typedef unsigned int size_x; | ||
5 | //typedef __SIZE_TYPE__ size_x; | ||
6 | |||
7 | /* | ||
8 | Forward declaration of functions | ||
9 | */ | ||
10 | |||
11 | void *ammunition_memcpy( void *, const void *, size_x ); | ||
12 | void *ammunition_memset( void *, int, size_x ); | ||
13 | int ammunition_memcmp ( const void *mem1, const void *mem2, size_x size ); | ||
14 | void *ammunition_memmove ( void *s1, const void *s2, size_x n ); | ||
15 | int ammunition_strcmp ( const char *str1, const char *str2 ); | ||
16 | |||
17 | #endif /* AMMUNITION_STRING_H */ | ||
18 | |||
diff --git a/baseline/source/ammunition/arithm.c b/baseline/source/ammunition/arithm.c new file mode 100644 index 0000000..9480846 --- /dev/null +++ b/baseline/source/ammunition/arithm.c | |||
@@ -0,0 +1,1384 @@ | |||
1 | /* | ||
2 | FILE NAME: arithm.c | ||
3 | |||
4 | TITLE: Package for arbitrary precision integer arithmetic | ||
5 | |||
6 | DESCRIPTION: This abstract data implements arbitrary precision | ||
7 | integer and unsigned integer numbers by machine independent | ||
8 | way. The implementation of the package functions are not | ||
9 | sufficiently efficient in order to use for run-time. The | ||
10 | package functions are oriented to implement constant-folding in | ||
11 | compilers. This package is necessary because host machine may | ||
12 | not support such arithmetic for target machine. For example, | ||
13 | VAX does not support does not support more 32-bits integer | ||
14 | numbers arithmetic. The numbers are represented by bytes in | ||
15 | big endian mode, negative integer numbers are represented in | ||
16 | complementary code. All sizes are given in bytes and must be | ||
17 | positive. Results of executions of all functions can coincide | ||
18 | with a operand(s). All functions of addition, subtraction, | ||
19 | multiplication, division, evaluation of remainder, shift, | ||
20 | changing size and transformation of string into number fix | ||
21 | overflow. The overflow is fixed when result can not be | ||
22 | represented by number of given size. | ||
23 | |||
24 | */ | ||
25 | |||
26 | #include "arithm.h" | ||
27 | #include "ammunition_string.h" | ||
28 | |||
29 | |||
30 | /* This variable can have only two values 0 or 1. The value `1' | ||
31 | corresponds to overflow. The variable value are modified by all | ||
32 | functions of addition, subtract, multiplication, division, | ||
33 | evaluation of remainder, shift, changing size and transformation of | ||
34 | string into number fix overflow. */ | ||
35 | |||
36 | int ammunition_overflow_bit; | ||
37 | |||
38 | |||
39 | /* The following function adds unsigned integers. The function | ||
40 | returns 1 if unsigned integer overflow is fixed, 0 otherwise. | ||
41 | Result can be placed in any operand. */ | ||
42 | |||
43 | int ammunition_add_unsigned_integer_without_overflow_reaction | ||
44 | ( int size, const void *op1, const void *op2, void *result ) | ||
45 | { | ||
46 | int digit_num; | ||
47 | int carry; | ||
48 | unsigned int sum; | ||
49 | |||
50 | _Pragma( "loopbound min 4 max 4" ) | ||
51 | for ( digit_num = size - 1, carry = 0; digit_num >= 0; digit_num-- ) { | ||
52 | sum = ( ( ( unsigned char * ) op1 ) [digit_num] | ||
53 | + ( ( unsigned char * ) op2 ) [digit_num] + carry ); | ||
54 | if ( sum > UCHAR_MAX ) { | ||
55 | sum -= UCHAR_MAX + 1; | ||
56 | carry = 1; | ||
57 | } else | ||
58 | carry = 0; | ||
59 | ( ( unsigned char * ) result ) [digit_num] = sum; | ||
60 | } | ||
61 | return carry != 0; | ||
62 | } | ||
63 | |||
64 | /* The following function adds unsigned integers. The function | ||
65 | returns 1 if unsigned integer overflow (the first operand is less | ||
66 | than the second) is fixed, 0 otherwise. Result can be placed in | ||
67 | any operand. */ | ||
68 | |||
69 | int ammunition_subtract_unsigned_integer_without_overflow_reaction | ||
70 | ( int size, const void *op1, const void *op2, void *result ) | ||
71 | { | ||
72 | int digit_num; | ||
73 | int carry; | ||
74 | int subtraction; | ||
75 | |||
76 | _Pragma( "loopbound min 4 max 4" ) | ||
77 | for ( digit_num = size - 1, carry = 0; digit_num >= 0; digit_num-- ) { | ||
78 | subtraction = ( ( ( unsigned char * ) op1 ) [digit_num] | ||
79 | - ( ( unsigned char * ) op2 ) [digit_num] - carry ); | ||
80 | if ( subtraction < 0 ) { | ||
81 | subtraction += UCHAR_MAX + 1; | ||
82 | carry = 1; | ||
83 | } else | ||
84 | carry = 0; | ||
85 | ( ( unsigned char * ) result ) [digit_num] = subtraction; | ||
86 | } | ||
87 | return carry != 0; | ||
88 | } | ||
89 | |||
90 | /* The following function makes complementary code of number. Result | ||
91 | can be placed in operand. */ | ||
92 | |||
93 | void ammunition_make_complementary_code | ||
94 | ( int size, const void *operand, void *result ) | ||
95 | { | ||
96 | int digit_num; | ||
97 | int carry; | ||
98 | int subtraction; | ||
99 | |||
100 | _Pragma( "loopbound min 2 max 6" ) | ||
101 | for ( digit_num = size - 1, carry = 0; digit_num >= 0; digit_num-- ) { | ||
102 | subtraction = ( 0 - ( ( unsigned char * ) operand ) [digit_num] - carry ); | ||
103 | if ( subtraction != 0 ) { | ||
104 | subtraction += UCHAR_MAX + 1; | ||
105 | carry = 1; | ||
106 | } else | ||
107 | carry = 0; | ||
108 | ( ( unsigned char * ) result ) [digit_num] = subtraction; | ||
109 | } | ||
110 | } | ||
111 | |||
112 | /* The following function multiplys unsigned integer by digit (byte | ||
113 | size). The function returns 1 if unsigned integer overflow is | ||
114 | fixed, 0 otherwise. */ | ||
115 | |||
116 | int ammunition_multiply_unsigned_integer_by_digit_without_overflow_reaction | ||
117 | ( int size, void *operand, unsigned int digit ) | ||
118 | { | ||
119 | int digit_num; | ||
120 | unsigned int carry; | ||
121 | unsigned int sum; | ||
122 | |||
123 | _Pragma( "loopbound min 4 max 4" ) | ||
124 | for ( digit_num = size - 1, carry = 0; digit_num >= 0; digit_num-- ) { | ||
125 | sum = ( ( ( unsigned char * ) operand ) [digit_num] * digit + carry ); | ||
126 | if ( sum > UCHAR_MAX ) { | ||
127 | carry = sum / ( UCHAR_MAX + 1 ); | ||
128 | sum %= UCHAR_MAX + 1; | ||
129 | } else | ||
130 | carry = 0; | ||
131 | ( ( unsigned char * ) operand ) [digit_num] = sum; | ||
132 | } | ||
133 | return carry != 0; | ||
134 | } | ||
135 | |||
136 | |||
137 | /* Originally reaction on all integer and unsigned integer overflow is | ||
138 | equal to the following function. The function does nothing. */ | ||
139 | |||
140 | void | ||
141 | ammunition_arithmetic_overflow_reaction ( void ) | ||
142 | {} | ||
143 | |||
144 | |||
145 | /* Originally reaction on all integer and unsigned integer overflow is | ||
146 | equal to the following function. The function does nothing. */ | ||
147 | |||
148 | void | ||
149 | ammunition_arithmetic_unsigned_overflow_reaction ( void ) | ||
150 | {} | ||
151 | |||
152 | |||
153 | /* This page contains functions for arbitrary precision addition. */ | ||
154 | |||
155 | /* The function adds unsigned integers and fixes overflow reaction if | ||
156 | it is needed. The function makes this with the aid of function | ||
157 | `add_unsigned_integer_without_overflow_reaction'. Result can be | ||
158 | placed in any operand. */ | ||
159 | |||
160 | void | ||
161 | ammunition_add_unsigned_integer ( int size, const void *op1, const void *op2, | ||
162 | void *result ) | ||
163 | { | ||
164 | ammunition_overflow_bit | ||
165 | = ammunition_add_unsigned_integer_without_overflow_reaction ( | ||
166 | size, op1, op2, result ); | ||
167 | if ( ammunition_overflow_bit != 0 ) | ||
168 | ammunition_arithmetic_unsigned_overflow_reaction(); | ||
169 | } | ||
170 | |||
171 | /* The function adds integers and fixes overflow reaction if it is | ||
172 | needed. The function makes this with the aid of function | ||
173 | `add_unsigned_integer_without_overflow_reaction'. Result can be | ||
174 | placed in any operand. */ | ||
175 | |||
176 | void | ||
177 | ammunition_add_integer ( int size, const void *op1, const void *op2, | ||
178 | void *result ) | ||
179 | { | ||
180 | int op1_sign; | ||
181 | int sign_equality; | ||
182 | |||
183 | op1_sign = INTEGER_SIGN ( op1 ); | ||
184 | sign_equality = INTEGER_SIGN ( op1 ) == INTEGER_SIGN ( op2 ); | ||
185 | ammunition_add_unsigned_integer_without_overflow_reaction ( | ||
186 | size, op1, op2, result ); | ||
187 | ammunition_overflow_bit = sign_equality && | ||
188 | ( op1_sign != INTEGER_SIGN ( result ) ); | ||
189 | if ( ammunition_overflow_bit != 0 ) | ||
190 | ammunition_arithmetic_overflow_reaction(); | ||
191 | } | ||
192 | |||
193 | |||
194 | |||
195 | /* This page contains functions for arbitrary precision subtraction. */ | ||
196 | |||
197 | /* The function subtracts unsigned integers and fixes overflow | ||
198 | reaction if it is needed. The function makes this with the aid of | ||
199 | function `subtract_unsigned_integer_without_overflow_reaction'. | ||
200 | Result can be placed in any operand. */ | ||
201 | |||
202 | void | ||
203 | ammunition_subtract_unsigned_integer ( int size, const void *op1, | ||
204 | const void *op2, | ||
205 | void *result ) | ||
206 | { | ||
207 | ammunition_overflow_bit | ||
208 | = ammunition_subtract_unsigned_integer_without_overflow_reaction ( | ||
209 | size, op1, op2, result ); | ||
210 | if ( ammunition_overflow_bit != 0 ) | ||
211 | ammunition_arithmetic_unsigned_overflow_reaction(); | ||
212 | } | ||
213 | |||
214 | /* The function subtracts integers and fixes overflow reaction if it | ||
215 | is needed. The function makes this with the aid of function | ||
216 | `subtract_unsigned_integer_without_overflow_reaction'. Result can | ||
217 | be placed in any operand. */ | ||
218 | |||
219 | void | ||
220 | ammunition_subtract_integer ( int size, const void *op1, const void *op2, | ||
221 | void *result ) | ||
222 | { | ||
223 | int op1_sign; | ||
224 | int sign_unequality; | ||
225 | |||
226 | op1_sign = INTEGER_SIGN ( op1 ); | ||
227 | sign_unequality = INTEGER_SIGN ( op1 ) != INTEGER_SIGN ( op2 ); | ||
228 | ammunition_subtract_unsigned_integer_without_overflow_reaction ( | ||
229 | size, op1, op2, result ); | ||
230 | ammunition_overflow_bit = sign_unequality && | ||
231 | ( op1_sign != INTEGER_SIGN ( result ) ); | ||
232 | if ( ammunition_overflow_bit != 0 ) | ||
233 | ammunition_arithmetic_overflow_reaction(); | ||
234 | } | ||
235 | |||
236 | |||
237 | |||
238 | /* This page contains functions for arbitrary precision multiplication. */ | ||
239 | |||
240 | /* The following function multiplys unsigned integers. The function | ||
241 | returns 1 if unsigned integer overflow is fixed, 0 otherwise. | ||
242 | Result can be placed in any operand. */ | ||
243 | |||
244 | int ammunition_multiply_unsigned_integer_without_overflow_reaction | ||
245 | ( int size, const void *op1, const void *op2, void *result ) | ||
246 | { | ||
247 | int op1_digit_num; | ||
248 | int op2_digit_num; | ||
249 | int carry; | ||
250 | unsigned long int partial_sum; | ||
251 | int result_digit_number; | ||
252 | int overflow_flag; | ||
253 | unsigned char long_result [2 * MAX_INTEGER_OPERAND_SIZE]; | ||
254 | |||
255 | ammunition_memset ( long_result + size, 0, ( size_x ) size ); | ||
256 | _Pragma( "loopbound min 4 max 4" ) | ||
257 | for ( op2_digit_num = size - 1; op2_digit_num >= 0; op2_digit_num-- ) { | ||
258 | if ( ( ( unsigned char * ) op2 ) [op2_digit_num] != 0 ) { | ||
259 | _Pragma( "loopbound min 4 max 4" ) | ||
260 | for ( op1_digit_num = size - 1, carry = 0; op1_digit_num >= 0; | ||
261 | op1_digit_num-- ) { | ||
262 | partial_sum | ||
263 | = ( ( ( unsigned char * ) op1 ) [op1_digit_num] | ||
264 | * ( ( unsigned char * ) op2 ) [op2_digit_num] | ||
265 | + long_result [op1_digit_num + op2_digit_num + 1] | ||
266 | + carry ); | ||
267 | long_result [op1_digit_num + op2_digit_num + 1] | ||
268 | = ( unsigned char ) ( partial_sum % ( UCHAR_MAX + 1 ) ); | ||
269 | carry = partial_sum / ( UCHAR_MAX + 1 ); | ||
270 | } | ||
271 | long_result [op2_digit_num] = carry; | ||
272 | } else | ||
273 | long_result [op2_digit_num] = 0; | ||
274 | } | ||
275 | overflow_flag = 0; | ||
276 | _Pragma( "loopbound min 1 max 4" ) | ||
277 | for ( result_digit_number = size - 1; result_digit_number >= 0; | ||
278 | result_digit_number-- ) { | ||
279 | if ( long_result [result_digit_number] != 0 ) { | ||
280 | overflow_flag = 1; | ||
281 | break; | ||
282 | } | ||
283 | } | ||
284 | ammunition_memcpy ( result, long_result + size, ( size_x ) size ); | ||
285 | return overflow_flag; | ||
286 | } | ||
287 | |||
288 | /* The following function multiplys unsigned integers and fixes | ||
289 | overflow reaction if it is needed. The function makes this with | ||
290 | the aid of function | ||
291 | `multiply_unsigned_integer_without_overflow_reaction'. Result can | ||
292 | be placed in any operand. */ | ||
293 | |||
294 | void | ||
295 | ammunition_multiply_unsigned_integer ( int size, const void *op1, | ||
296 | const void *op2, | ||
297 | void *result ) | ||
298 | { | ||
299 | ammunition_overflow_bit = | ||
300 | ammunition_multiply_unsigned_integer_without_overflow_reaction ( | ||
301 | size, op1, op2, result ); | ||
302 | if ( ammunition_overflow_bit ) | ||
303 | ammunition_arithmetic_unsigned_overflow_reaction(); | ||
304 | } | ||
305 | |||
306 | /* The function multiplys integers and fixes overflow reaction if it | ||
307 | is needed. The function makes this with the aid of function | ||
308 | `multiply_unsigned_integer_without_overflow_reaction'. Result can | ||
309 | be placed in any operand. */ | ||
310 | |||
311 | void | ||
312 | ammunition_multiply_integer ( int size, const void *op1, const void *op2, | ||
313 | void *result ) | ||
314 | { | ||
315 | int negative_result_flag; | ||
316 | unsigned char op1_complementary [MAX_INTEGER_OPERAND_SIZE]; | ||
317 | unsigned char op2_complementary [MAX_INTEGER_OPERAND_SIZE]; | ||
318 | unsigned const char *abs_op1; | ||
319 | unsigned const char *abs_op2; | ||
320 | int unsigned_result_sign; | ||
321 | |||
322 | negative_result_flag = INTEGER_SIGN ( op1 ) != INTEGER_SIGN ( op2 ); | ||
323 | if ( INTEGER_SIGN ( op1 ) ) { | ||
324 | /* May be integer overflow. But result is correct because | ||
325 | it is unsigned. */ | ||
326 | ammunition_make_complementary_code ( size, op1, op1_complementary ); | ||
327 | abs_op1 = ( unsigned const char * )op1_complementary; | ||
328 | } else | ||
329 | abs_op1 = ( unsigned const char * )op1; | ||
330 | if ( INTEGER_SIGN ( op2 ) ) { | ||
331 | /* May be integer overflow. But result is correct because | ||
332 | it is unsigned. */ | ||
333 | ammunition_make_complementary_code ( size, op2, op2_complementary ); | ||
334 | abs_op2 = ( unsigned const char * )op2_complementary; | ||
335 | } else | ||
336 | abs_op2 = ( unsigned const char * )op2; | ||
337 | ammunition_overflow_bit = | ||
338 | ammunition_multiply_unsigned_integer_without_overflow_reaction ( | ||
339 | size, abs_op1, abs_op2, result ); | ||
340 | unsigned_result_sign = INTEGER_SIGN ( result ); | ||
341 | if ( negative_result_flag ) | ||
342 | ammunition_make_complementary_code ( size, result, result ); | ||
343 | if ( unsigned_result_sign | ||
344 | && ( !negative_result_flag | ||
345 | || INTEGER_SIGN ( result ) != unsigned_result_sign ) ) | ||
346 | /* Unsigned result can not be represented as integer. */ | ||
347 | ammunition_overflow_bit = 1; | ||
348 | if ( ammunition_overflow_bit ) | ||
349 | ammunition_arithmetic_overflow_reaction(); | ||
350 | } | ||
351 | |||
352 | |||
353 | |||
354 | /* This page contains functions for arbitrary precision division. */ | ||
355 | |||
356 | /* The following function divides unsigned integers. The function | ||
357 | returns 1 if unsigned integer overflow (division by zero) is fixed, | ||
358 | 0 otherwise. Result can be placed in any operand. See algorithm | ||
359 | in Knuth's book. */ | ||
360 | |||
361 | int ammunition_divide_unsigned_integer_without_overflow_reaction | ||
362 | ( int size, const void *op1, const void *op2, void *result ) | ||
363 | { | ||
364 | int scaled_op1_digit_num; | ||
365 | unsigned int q_approximation; | ||
366 | int first_nonzero_digit_number; | ||
367 | int op2_digit_number; | ||
368 | unsigned int scale; | ||
369 | unsigned char scaled_op1 [MAX_INTEGER_OPERAND_SIZE + 1]; | ||
370 | unsigned char normalized_op2 [MAX_INTEGER_OPERAND_SIZE]; | ||
371 | unsigned char extended_normalized_op2 [MAX_INTEGER_OPERAND_SIZE + 1]; | ||
372 | |||
373 | _Pragma( "loopbound min 4 max 4" ) | ||
374 | for ( op2_digit_number = 0; op2_digit_number < size; op2_digit_number++ ) { | ||
375 | if ( ( ( unsigned char * ) op2 ) [op2_digit_number] != 0 ) | ||
376 | break; | ||
377 | } | ||
378 | first_nonzero_digit_number = op2_digit_number; | ||
379 | if ( first_nonzero_digit_number == size ) { | ||
380 | /* Zero divisor */ | ||
381 | ammunition_memset ( result, 0, ( size_x ) size ); | ||
382 | return 1 /* TRUE */; | ||
383 | } else | ||
384 | if ( first_nonzero_digit_number == size - 1 ) { | ||
385 | /* Division by digit. */ | ||
386 | int digit_num; | ||
387 | int digit; | ||
388 | unsigned long divisable; | ||
389 | unsigned long remainder; | ||
390 | |||
391 | digit = ( ( unsigned char * ) op2 ) [first_nonzero_digit_number]; | ||
392 | ammunition_memcpy ( result, op1, ( size_x ) size ); | ||
393 | remainder = 0; | ||
394 | _Pragma( "loopbound min 4 max 4" ) | ||
395 | for ( digit_num = 0; digit_num < size; digit_num++ ) { | ||
396 | divisable = ( remainder * ( UCHAR_MAX + 1 ) | ||
397 | + ( ( unsigned char * ) result ) [digit_num] ); | ||
398 | remainder = divisable % digit; | ||
399 | ( ( unsigned char * ) result ) [digit_num] | ||
400 | = ( unsigned char ) ( divisable / digit ); | ||
401 | } | ||
402 | return 0 /* FALSE */; | ||
403 | } | ||
404 | /* Normalization of divisor. */ | ||
405 | scale = ( UCHAR_MAX + 1 ) / ( ( ( unsigned char * ) op2 ) [op2_digit_number] + | ||
406 | 1 ); | ||
407 | ammunition_memcpy ( scaled_op1 + 1, op1, ( size_x ) size ); | ||
408 | *scaled_op1 = 0; | ||
409 | |||
410 | ammunition_multiply_unsigned_integer_by_digit_without_overflow_reaction | ||
411 | ( size + 1, scaled_op1, scale ); | ||
412 | |||
413 | ammunition_memcpy ( normalized_op2, op2, ( size_x ) size ); | ||
414 | |||
415 | ammunition_multiply_unsigned_integer_by_digit_without_overflow_reaction | ||
416 | ( size, normalized_op2, scale ); | ||
417 | |||
418 | _Pragma( "loopbound min 0 max 0" ) | ||
419 | for ( scaled_op1_digit_num = 0; | ||
420 | scaled_op1_digit_num <= first_nonzero_digit_number; | ||
421 | scaled_op1_digit_num++ ) { | ||
422 | /* Division of `scaled_op1[scaled_op1_digit_number]..scaled_op1[size]' by | ||
423 | `normalized_op2[first_nonzero_digit_number]..normalized_op2[size-1]' | ||
424 | for evaluation of one digit of quotient | ||
425 | `result[size-1-first_nonzero_digit_number-scaled_op1_digit_number]'. | ||
426 | */ | ||
427 | if ( scaled_op1 [scaled_op1_digit_num] | ||
428 | == normalized_op2 [first_nonzero_digit_number] ) | ||
429 | q_approximation = UCHAR_MAX; | ||
430 | else | ||
431 | q_approximation | ||
432 | = ( scaled_op1 [scaled_op1_digit_num] * ( UCHAR_MAX + 1 ) | ||
433 | + scaled_op1 [scaled_op1_digit_num + 1] ) | ||
434 | / normalized_op2 [first_nonzero_digit_number]; | ||
435 | |||
436 | _Pragma( "loopbound min 0 max 0" ) | ||
437 | while ( normalized_op2 [first_nonzero_digit_number + 1] * q_approximation | ||
438 | > ( ( ( unsigned long int ) scaled_op1 [scaled_op1_digit_num] | ||
439 | * ( UCHAR_MAX + 1 ) | ||
440 | + scaled_op1 [scaled_op1_digit_num + 1] | ||
441 | - q_approximation | ||
442 | * normalized_op2 [first_nonzero_digit_number] ) | ||
443 | * ( UCHAR_MAX + 1 ) + scaled_op1 [scaled_op1_digit_num + 2] ) ) | ||
444 | q_approximation --; | ||
445 | |||
446 | /* Multiply and subtract */ | ||
447 | ammunition_memcpy ( extended_normalized_op2 + 1, | ||
448 | normalized_op2 + first_nonzero_digit_number, | ||
449 | ( size_x ) ( size - first_nonzero_digit_number ) ); | ||
450 | *extended_normalized_op2 = 0; | ||
451 | ammunition_multiply_unsigned_integer_by_digit_without_overflow_reaction | ||
452 | ( size - first_nonzero_digit_number + 1, extended_normalized_op2, | ||
453 | q_approximation ); | ||
454 | if ( ammunition_subtract_unsigned_integer_without_overflow_reaction | ||
455 | ( size - first_nonzero_digit_number + 1, | ||
456 | scaled_op1 + scaled_op1_digit_num, extended_normalized_op2, | ||
457 | scaled_op1 + scaled_op1_digit_num ) ) { | ||
458 | /* Negative result. Compensation by addition. */ | ||
459 | q_approximation--; | ||
460 | ammunition_memcpy ( extended_normalized_op2 + 1, | ||
461 | normalized_op2 + first_nonzero_digit_number, | ||
462 | ( size_x ) ( size - first_nonzero_digit_number ) ); | ||
463 | *extended_normalized_op2 = 0; | ||
464 | |||
465 | ammunition_add_unsigned_integer_without_overflow_reaction | ||
466 | ( size - first_nonzero_digit_number + 1, | ||
467 | scaled_op1 + scaled_op1_digit_num, extended_normalized_op2, | ||
468 | scaled_op1 + scaled_op1_digit_num ); | ||
469 | |||
470 | } | ||
471 | ( ( unsigned char * ) result ) [size - 1 - first_nonzero_digit_number | ||
472 | + scaled_op1_digit_num] = q_approximation; | ||
473 | } | ||
474 | ammunition_memset ( result, 0, | ||
475 | ( size_x ) ( size - 1 - first_nonzero_digit_number ) ); | ||
476 | return 0 /* TRUE */; | ||
477 | } | ||
478 | |||
479 | /* The function divides unsigned integers and fixes overflow reaction | ||
480 | if it is needed. The function makes this with the aid of function | ||
481 | `divide_unsigned_integer_without_overflow_reaction'. Result can be | ||
482 | placed in any operand. */ | ||
483 | |||
484 | void | ||
485 | ammunition_divide_unsigned_integer ( int size, const void *op1, const void *op2, | ||
486 | void *result ) | ||
487 | { | ||
488 | ammunition_overflow_bit = | ||
489 | ammunition_divide_unsigned_integer_without_overflow_reaction ( | ||
490 | size, op1, op2, result ); | ||
491 | if ( ammunition_overflow_bit ) | ||
492 | ammunition_arithmetic_unsigned_overflow_reaction(); | ||
493 | } | ||
494 | |||
495 | /* The function divides integers and fixes overflow reaction if it is | ||
496 | needed. The function makes this with the aid of function | ||
497 | `divide_unsigned_integer_without_overflow_reaction'. Result can be | ||
498 | placed in any operand. */ | ||
499 | |||
500 | void | ||
501 | ammunition_divide_integer ( int size, const void *op1, const void *op2, | ||
502 | void *result ) | ||
503 | { | ||
504 | int negative_result_flag; | ||
505 | unsigned char op1_complementary [MAX_INTEGER_OPERAND_SIZE]; | ||
506 | unsigned char op2_complementary [MAX_INTEGER_OPERAND_SIZE]; | ||
507 | unsigned const char *abs_op1; | ||
508 | unsigned const char *abs_op2; | ||
509 | int unsigned_result_sign; | ||
510 | |||
511 | negative_result_flag = INTEGER_SIGN ( op1 ) != INTEGER_SIGN ( op2 ); | ||
512 | if ( INTEGER_SIGN ( op1 ) ) { | ||
513 | /* May be integer overflow for minimal int. But result is correct because | ||
514 | it is unsigned. */ | ||
515 | ammunition_make_complementary_code ( size, op1, op1_complementary ); | ||
516 | abs_op1 = ( unsigned const char * )op1_complementary; | ||
517 | } else | ||
518 | abs_op1 = ( unsigned const char * )op1; | ||
519 | if ( INTEGER_SIGN ( op2 ) ) { | ||
520 | /* May be integer overflow for minimal int. But result is correct | ||
521 | because it is unsigned. */ | ||
522 | ammunition_make_complementary_code ( size, op2, op2_complementary ); | ||
523 | abs_op2 = ( unsigned const char * )op2_complementary; | ||
524 | } else | ||
525 | abs_op2 = ( unsigned const char * )op2; | ||
526 | ammunition_overflow_bit = | ||
527 | ammunition_divide_unsigned_integer_without_overflow_reaction ( | ||
528 | size, abs_op1, abs_op2, result ); | ||
529 | unsigned_result_sign = INTEGER_SIGN ( result ); | ||
530 | if ( negative_result_flag ) | ||
531 | ammunition_make_complementary_code ( size, result, result ); | ||
532 | if ( unsigned_result_sign | ||
533 | && ( !negative_result_flag | ||
534 | || INTEGER_SIGN ( result ) != unsigned_result_sign ) ) | ||
535 | /* Unsigned result can not be represented as integer. */ | ||
536 | ammunition_overflow_bit = 1; | ||
537 | if ( ammunition_overflow_bit ) | ||
538 | ammunition_arithmetic_overflow_reaction(); | ||
539 | } | ||
540 | |||
541 | |||
542 | |||
543 | /* This page contains functions for arbitrary precision evaluation of | ||
544 | remainder. */ | ||
545 | |||
546 | /* The function evaluates remainder of division of unsigned integers | ||
547 | as `op1 - (op1/op2)*op2' and fixes overflow reaction if it is | ||
548 | needed. Result can be placed in any operand. */ | ||
549 | |||
550 | void | ||
551 | ammunition_unsigned_integer_remainder ( int size, const void *op1, | ||
552 | const void *op2, | ||
553 | void *result ) | ||
554 | { | ||
555 | unsigned char temporary [MAX_INTEGER_OPERAND_SIZE]; | ||
556 | |||
557 | ammunition_divide_unsigned_integer ( size, op1, op2, temporary ); | ||
558 | if ( ammunition_overflow_bit ) | ||
559 | /* Reaction on zero is called from `divide_unsigned_integer'. */ | ||
560 | ammunition_memset ( result, 0, ( size_x ) size ); | ||
561 | else { | ||
562 | ammunition_multiply_unsigned_integer ( size, temporary, op2, temporary ); | ||
563 | ammunition_subtract_unsigned_integer ( size, op1, temporary, result ); | ||
564 | } | ||
565 | } | ||
566 | |||
567 | |||
568 | /* This page contains functions for arbitrary precision number shifts. */ | ||
569 | |||
570 | /* This function makes right shift of unsigned integer of given size | ||
571 | on given number of bits. If number of bits is negative the | ||
572 | function makes shift to left actually with the aid of function | ||
573 | `unsigned_integer_shift_left'. The function fixes overflow when | ||
574 | result can not be represented by number of given size, i.e. in | ||
575 | other words the opposite unsigned shift (to left) results in number | ||
576 | not equal to source operand. Result can be placed in operand. */ | ||
577 | |||
578 | void | ||
579 | ammunition_unsigned_integer_shift_right ( int size, const void *operand, | ||
580 | int bits, void *result ) | ||
581 | { | ||
582 | int byte_number; | ||
583 | unsigned byte; | ||
584 | unsigned carry; | ||
585 | int bit_shift; | ||
586 | int byte_shift; | ||
587 | |||
588 | |||
589 | if ( bits < 0 ) | ||
590 | ammunition_unsigned_integer_shift_left ( size, operand, -bits, result ); | ||
591 | else { | ||
592 | ammunition_overflow_bit = 0; | ||
593 | byte_shift = bits / CHAR_BIT; | ||
594 | bit_shift = bits % CHAR_BIT; | ||
595 | _Pragma( "loopbound min 0 max 3" ) | ||
596 | for ( byte_number = ( byte_shift >= size ? 0 : size - byte_shift ); | ||
597 | byte_number < size; byte_number++ ) | ||
598 | if ( ( ( unsigned char * ) operand ) [byte_number] != 0 ) { | ||
599 | ammunition_overflow_bit = 1; | ||
600 | break; | ||
601 | } | ||
602 | if ( byte_shift >= size ) | ||
603 | ammunition_memset ( result, 0, ( size_x ) size ); | ||
604 | else { | ||
605 | ammunition_memmove ( ( char * ) result + byte_shift, operand, | ||
606 | ( size_x ) ( size - byte_shift ) ); | ||
607 | ammunition_memset ( result, 0, ( size_x ) byte_shift ); | ||
608 | if ( bit_shift == 0 ) | ||
609 | return; | ||
610 | _Pragma( "loopbound min 3 max 3" ) | ||
611 | for ( byte_number = byte_shift, carry = 0; byte_number < size; | ||
612 | byte_number++ ) { | ||
613 | byte = ( ( unsigned char * ) result ) [byte_number]; | ||
614 | ( ( unsigned char * ) result ) [byte_number] | ||
615 | = carry | ( byte >> bit_shift ); | ||
616 | carry = ( byte << ( CHAR_BIT - bit_shift ) ) & UCHAR_MAX; | ||
617 | } | ||
618 | if ( carry != 0 ) | ||
619 | ammunition_overflow_bit = 1; | ||
620 | } | ||
621 | if ( ammunition_overflow_bit ) | ||
622 | ammunition_arithmetic_unsigned_overflow_reaction(); | ||
623 | } | ||
624 | } | ||
625 | |||
626 | /* This function makes right arithmetic shift of integer of given size | ||
627 | on given number of bits. If number of bits is negative the | ||
628 | function makes shift to left actually with the aid of function | ||
629 | `integer_shift_left'. The function fixes overflow when result can | ||
630 | not be represented by number of given size, i.e. in other words the | ||
631 | opposite shift (to left) results in number not equal to source | ||
632 | operand. Result can be placed in operand. */ | ||
633 | |||
634 | void | ||
635 | ammunition_integer_shift_right ( int size, const void *operand, int bits, | ||
636 | void *result ) | ||
637 | { | ||
638 | int byte_number; | ||
639 | unsigned byte; | ||
640 | unsigned carry; | ||
641 | int bit_shift; | ||
642 | int byte_shift; | ||
643 | int operand_sign; | ||
644 | |||
645 | if ( bits < 0 ) | ||
646 | ammunition_integer_shift_left ( size, operand, -bits, result ); | ||
647 | else { | ||
648 | operand_sign = INTEGER_SIGN ( operand ); | ||
649 | ammunition_overflow_bit = 0; | ||
650 | byte_shift = bits / CHAR_BIT; | ||
651 | bit_shift = bits % CHAR_BIT; | ||
652 | _Pragma( "loopbound min 0 max 3" ) | ||
653 | for ( byte_number = ( byte_shift >= size ? 0 : size - byte_shift ); | ||
654 | byte_number < size; byte_number++ ) | ||
655 | if ( ( ( unsigned char * ) operand ) [byte_number] != 0 ) { | ||
656 | ammunition_overflow_bit = 1; | ||
657 | break; | ||
658 | } | ||
659 | if ( byte_shift >= size ) | ||
660 | ammunition_memset ( result, | ||
661 | ( operand_sign ? UCHAR_MAX : 0 ), ( size_x ) size ); | ||
662 | else { | ||
663 | ammunition_memmove ( ( char * ) result + byte_shift, operand, | ||
664 | ( size_x ) ( size - byte_shift ) ); | ||
665 | ammunition_memset ( result, ( operand_sign ? UCHAR_MAX : 0 ), | ||
666 | ( size_x ) byte_shift ); | ||
667 | if ( bit_shift == 0 ) | ||
668 | return; | ||
669 | carry = ( ( ( operand_sign ? UCHAR_MAX : 0 ) << ( CHAR_BIT - bit_shift ) ) | ||
670 | & UCHAR_MAX ); | ||
671 | _Pragma( "loopbound min 3 max 3" ) | ||
672 | for ( byte_number = byte_shift; byte_number < size; byte_number++ ) { | ||
673 | byte = ( ( unsigned char * ) result ) [byte_number]; | ||
674 | ( ( unsigned char * ) result ) [byte_number] | ||
675 | = carry | ( byte >> bit_shift ); | ||
676 | carry = ( byte << ( CHAR_BIT - bit_shift ) ) & UCHAR_MAX; | ||
677 | } | ||
678 | if ( carry != 0 ) | ||
679 | ammunition_overflow_bit = 1; | ||
680 | } | ||
681 | if ( ammunition_overflow_bit ) | ||
682 | ammunition_arithmetic_overflow_reaction(); | ||
683 | } | ||
684 | } | ||
685 | |||
686 | /* This function makes left shift of unsigned integer of given size on | ||
687 | given number of bits. If number of bits is negative the function | ||
688 | makes shift to left actually with the aid of function | ||
689 | `unsigned_integer_shift_right'. The function fixes overflow when | ||
690 | result can not be represented by number of given size, i.e. i.e. in | ||
691 | other words the opposite shift (to right) results in number not | ||
692 | equal to source operand. Result can be placed in operand. */ | ||
693 | |||
694 | void | ||
695 | ammunition_unsigned_integer_shift_left ( int size, const void *operand, | ||
696 | int bits, void *result ) | ||
697 | { | ||
698 | int byte_number; | ||
699 | unsigned byte; | ||
700 | unsigned carry; | ||
701 | int bit_shift; | ||
702 | int byte_shift; | ||
703 | |||
704 | if ( bits < 0 ) | ||
705 | ammunition_unsigned_integer_shift_right ( size, operand, -bits, result ); | ||
706 | else { | ||
707 | ammunition_overflow_bit = 0; | ||
708 | byte_shift = bits / CHAR_BIT; | ||
709 | bit_shift = bits % CHAR_BIT; | ||
710 | _Pragma( "loopbound min 0 max 2" ) | ||
711 | for ( byte_number = 0; byte_number < byte_shift && byte_number < size; | ||
712 | byte_number++ ) | ||
713 | if ( ( ( unsigned char * ) operand ) [byte_number] != 0 ) { | ||
714 | ammunition_overflow_bit = 1; | ||
715 | break; | ||
716 | } | ||
717 | if ( byte_shift >= size ) | ||
718 | ammunition_memset ( result, 0, ( size_x ) size ); | ||
719 | else { | ||
720 | ammunition_memmove ( result, ( char * ) operand + byte_shift, | ||
721 | ( size_x ) ( size - byte_shift ) ); | ||
722 | ammunition_memset ( ( char * ) result + ( size - byte_shift ), 0, | ||
723 | ( size_x ) byte_shift ); | ||
724 | if ( bit_shift == 0 ) | ||
725 | return; | ||
726 | _Pragma( "loopbound min 2 max 3" ) | ||
727 | for ( byte_number = size - byte_shift - 1, carry = 0; | ||
728 | byte_number >= 0; byte_number-- ) { | ||
729 | byte = ( ( unsigned char * ) result ) [byte_number]; | ||
730 | ( ( unsigned char * ) result ) [byte_number] | ||
731 | = carry | ( byte << bit_shift ); | ||
732 | carry = byte >> ( CHAR_BIT - bit_shift ); | ||
733 | } | ||
734 | if ( carry != 0 ) | ||
735 | ammunition_overflow_bit = 1; | ||
736 | } | ||
737 | if ( ammunition_overflow_bit ) | ||
738 | ammunition_arithmetic_unsigned_overflow_reaction(); | ||
739 | } | ||
740 | } | ||
741 | |||
742 | /* This function makes left arithmetic shift of integer of given size | ||
743 | on given number of bits. If number of bits is negative the | ||
744 | function makes shift to left actually with the aid of function | ||
745 | `integer_shift_right'. The function fixes overflow when result can | ||
746 | not be represented by number of given size, i.e. in other words the | ||
747 | opposite shift (to right) results in number not equal to source | ||
748 | operand. Result can be placed in operand. */ | ||
749 | |||
750 | void | ||
751 | ammunition_integer_shift_left ( int size, const void *operand, int bits, | ||
752 | void *result ) | ||
753 | { | ||
754 | int byte_number; | ||
755 | unsigned byte; | ||
756 | unsigned carry; | ||
757 | int bit_shift; | ||
758 | int byte_shift; | ||
759 | int operand_sign; | ||
760 | |||
761 | if ( bits < 0 ) | ||
762 | ammunition_integer_shift_right ( size, operand, -bits, result ); | ||
763 | else { | ||
764 | operand_sign = INTEGER_SIGN ( operand ); | ||
765 | ammunition_overflow_bit = 0; | ||
766 | byte_shift = bits / CHAR_BIT; | ||
767 | bit_shift = bits % CHAR_BIT; | ||
768 | _Pragma( "loopbound min 0 max 2" ) | ||
769 | for ( byte_number = 0; byte_number < byte_shift && byte_number < size; | ||
770 | byte_number++ ) | ||
771 | if ( ( ( unsigned char * ) operand ) [byte_number] | ||
772 | != ( operand_sign ? UCHAR_MAX : 0 ) ) { | ||
773 | ammunition_overflow_bit = 1; | ||
774 | break; | ||
775 | } | ||
776 | if ( byte_shift >= size ) | ||
777 | ammunition_memset ( result, 0, ( size_x ) size ); | ||
778 | else { | ||
779 | ammunition_memmove ( result, ( char * ) operand + byte_shift, | ||
780 | ( size_x ) ( size - byte_shift ) ); | ||
781 | ammunition_memset ( ( char * ) result + ( size - byte_shift ), 0, | ||
782 | ( size_x ) byte_shift ); | ||
783 | if ( bit_shift == 0 ) | ||
784 | return; | ||
785 | _Pragma( "loopbound min 2 max 3" ) | ||
786 | for ( byte_number = size - byte_shift - 1, carry = 0; | ||
787 | byte_number >= 0; byte_number-- ) { | ||
788 | byte = ( ( unsigned char * ) result ) [byte_number]; | ||
789 | ( ( unsigned char * ) result ) [byte_number] | ||
790 | = carry | ( byte << bit_shift ); | ||
791 | carry = byte >> ( CHAR_BIT - bit_shift ); | ||
792 | } | ||
793 | if ( carry != ( ( unsigned ) ( operand_sign ? UCHAR_MAX : 0 ) | ||
794 | >> ( CHAR_BIT - bit_shift ) ) ) | ||
795 | ammunition_overflow_bit = 1; | ||
796 | } | ||
797 | if ( operand_sign != INTEGER_SIGN ( result ) ) | ||
798 | ammunition_overflow_bit = 1; | ||
799 | if ( ammunition_overflow_bit ) | ||
800 | ammunition_arithmetic_overflow_reaction(); | ||
801 | } | ||
802 | } | ||
803 | |||
804 | |||
805 | |||
806 | /* This page contains functions for bitwise operations of arbitrary | ||
807 | precision numbers. */ | ||
808 | |||
809 | /* This function makes bitwise `or' of two integers of given size. */ | ||
810 | |||
811 | void | ||
812 | ammunition_integer_or ( int size, const void *op1, const void *op2, | ||
813 | void *result ) | ||
814 | { | ||
815 | int byte_number; | ||
816 | |||
817 | _Pragma( "loopbound min 4 max 4" ) | ||
818 | for ( byte_number = 0; byte_number < size; byte_number++ ) { | ||
819 | ( ( unsigned char * ) result ) [byte_number] | ||
820 | = ( ( unsigned char * ) op1 ) [byte_number] | ||
821 | | ( ( unsigned char * ) op2 ) [byte_number]; | ||
822 | } | ||
823 | } | ||
824 | |||
825 | /* This function makes bitwise `or' of two unsigned integers of given | ||
826 | size. */ | ||
827 | |||
828 | void | ||
829 | ammunition_unsigned_integer_or ( int size, const void *op1, const void *op2, | ||
830 | void *result ) | ||
831 | { | ||
832 | ammunition_integer_or ( size, op1, op2, result ); | ||
833 | } | ||
834 | |||
835 | |||
836 | /* This function makes bitwise `and' of two integers of given size. */ | ||
837 | |||
838 | void | ||
839 | ammunition_integer_and ( int size, const void *op1, const void *op2, | ||
840 | void *result ) | ||
841 | { | ||
842 | int byte_number; | ||
843 | |||
844 | _Pragma( "loopbound min 4 max 4" ) | ||
845 | for ( byte_number = 0; byte_number < size; byte_number++ ) { | ||
846 | ( ( unsigned char * ) result ) [byte_number] | ||
847 | = ( ( unsigned char * ) op1 ) [byte_number] | ||
848 | & ( ( unsigned char * ) op2 ) [byte_number]; | ||
849 | } | ||
850 | } | ||
851 | |||
852 | /* This function makes bitwise `and' of two unsigned integers of given | ||
853 | size. */ | ||
854 | |||
855 | void | ||
856 | ammunition_unsigned_integer_and ( int size, const void *op1, const void *op2, | ||
857 | void *result ) | ||
858 | { | ||
859 | ammunition_integer_and ( size, op1, op2, result ); | ||
860 | } | ||
861 | |||
862 | |||
863 | /* This function makes bitwise `not' of integer of given size. */ | ||
864 | |||
865 | void | ||
866 | ammunition_integer_not ( int size, const void *operand, void *result ) | ||
867 | { | ||
868 | int byte_number; | ||
869 | |||
870 | _Pragma( "loopbound min 4 max 4" ) | ||
871 | for ( byte_number = 0; byte_number < size; byte_number++ ) { | ||
872 | ( ( unsigned char * ) result ) [byte_number] | ||
873 | = ( ( unsigned char * ) operand ) [byte_number] ^ UCHAR_MAX; | ||
874 | } | ||
875 | } | ||
876 | |||
877 | /* This function makes bitwise `not' of unsigned integer of given | ||
878 | size. */ | ||
879 | |||
880 | void | ||
881 | ammunition_unsigned_integer_not ( int size, const void *operand, void *result ) | ||
882 | { | ||
883 | ammunition_integer_not ( size, operand, result ); | ||
884 | } | ||
885 | |||
886 | |||
887 | |||
888 | /* This page contains functions for comparison of arbitrary precision | ||
889 | numbers. */ | ||
890 | |||
891 | /* This function compares two unsigned integers of given size on | ||
892 | equality. The function returns 1 if unsigned integers are equal, 0 | ||
893 | otherwise. */ | ||
894 | |||
895 | int | ||
896 | ammunition_eq_unsigned_integer ( int size, const void *op1, const void *op2 ) | ||
897 | { | ||
898 | return ammunition_memcmp ( op1, op2, ( size_x ) size ) == 0; | ||
899 | } | ||
900 | |||
901 | /* This function compares two integers of given size on equality. The | ||
902 | function returns 1 if integers are equal, 0 otherwise. */ | ||
903 | |||
904 | int | ||
905 | ammunition_eq_integer ( int size, const void *op1, const void *op2 ) | ||
906 | { | ||
907 | return ammunition_memcmp ( op1, op2, ( size_x ) size ) == 0; | ||
908 | } | ||
909 | |||
910 | /* This function compares two unsigned integers of given size on | ||
911 | inequality. The function returns 1 if unsigned integers are not | ||
912 | equal, 0 otherwise. */ | ||
913 | |||
914 | int | ||
915 | ammunition_ne_unsigned_integer ( int size, const void *op1, const void *op2 ) | ||
916 | { | ||
917 | return ammunition_memcmp ( op1, op2, ( size_x ) size ) != 0; | ||
918 | } | ||
919 | |||
920 | /* This function compares two integers of given size on inequality. | ||
921 | The function returns 1 if integers are not equal, 0 otherwise. */ | ||
922 | |||
923 | int | ||
924 | ammunition_ne_integer ( int size, const void *op1, const void *op2 ) | ||
925 | { | ||
926 | return ammunition_memcmp ( op1, op2, ( size_x ) size ) != 0; | ||
927 | } | ||
928 | |||
929 | |||
930 | /* This function compares two memory parts of given size on that the | ||
931 | first operand is greater than the second. The bytes are described | ||
932 | as unsigned. The function returns 1 if the first operand is | ||
933 | greater than the second, - 1 if the first operand is less than the | ||
934 | second, 0 otherwise. */ | ||
935 | |||
936 | int ammunition_bytes_comparison ( const void *op1, const void *op2, int size ) | ||
937 | { | ||
938 | const unsigned char *str1 = ( unsigned const char * )op1; | ||
939 | const unsigned char *str2 = ( unsigned const char * )op2; | ||
940 | |||
941 | _Pragma( "loopbound min 1 max 4" ) | ||
942 | while ( size > 0 && *str1 == *str2 ) { | ||
943 | str1++; | ||
944 | str2++; | ||
945 | size--; | ||
946 | } | ||
947 | if ( size <= 0 ) | ||
948 | return 0; | ||
949 | else | ||
950 | if ( *str1 > *str2 ) | ||
951 | return 1; | ||
952 | else | ||
953 | return -1; | ||
954 | } | ||
955 | |||
956 | /* This function compares two unsigned integers of given size on that | ||
957 | the first operand is greater than the second. The function returns | ||
958 | 1 if the first unsigned integer is greater than the second, 0 | ||
959 | otherwise. */ | ||
960 | |||
961 | int | ||
962 | ammunition_gt_unsigned_integer ( int size, const void *op1, const void *op2 ) | ||
963 | { | ||
964 | return ammunition_bytes_comparison ( op1, op2, size ) > 0; | ||
965 | } | ||
966 | |||
967 | /* This function compares two integers of given size on that the first | ||
968 | operand is greater than the second. The function returns 1 if the | ||
969 | first integer is greater than the second, 0 otherwise. */ | ||
970 | |||
971 | int ammunition_gt_integer ( int size, const void *op1, const void *op2 ) | ||
972 | { | ||
973 | if ( INTEGER_SIGN ( op1 ) == 0 ) { | ||
974 | if ( INTEGER_SIGN ( op2 ) == 0 ) | ||
975 | return ammunition_bytes_comparison ( op1, op2, size ) > 0; | ||
976 | else | ||
977 | return 1; /* TRUE */ | ||
978 | } else | ||
979 | if ( INTEGER_SIGN ( op2 ) == 0 ) | ||
980 | return 0; /*FALSE*/ | ||
981 | else | ||
982 | return ammunition_bytes_comparison ( op1, op2, size ) > 0; | ||
983 | } | ||
984 | |||
985 | /* This function compares two unsigned integers of given size on that | ||
986 | the first operand is less than the second. The function returns 1 | ||
987 | if the first unsigned integer is less than the second, 0 | ||
988 | otherwise. */ | ||
989 | |||
990 | int | ||
991 | ammunition_lt_unsigned_integer ( int size, const void *op1, const void *op2 ) | ||
992 | { | ||
993 | return ammunition_bytes_comparison ( op1, op2, size ) < 0; | ||
994 | } | ||
995 | |||
996 | /* This function compares two integers of given size on that the first | ||
997 | operand is less than the second. The function returns 1 if the | ||
998 | first integer is less than the second, 0 otherwise. */ | ||
999 | |||
1000 | int | ||
1001 | ammunition_lt_integer ( int size, const void *op1, const void *op2 ) | ||
1002 | { | ||
1003 | if ( INTEGER_SIGN ( op1 ) == 0 ) { | ||
1004 | if ( INTEGER_SIGN ( op2 ) == 0 ) | ||
1005 | return ammunition_bytes_comparison ( op1, op2, size ) < 0; | ||
1006 | else | ||
1007 | return 0; /*FALSE*/ | ||
1008 | } else | ||
1009 | if ( INTEGER_SIGN ( op2 ) == 0 ) | ||
1010 | return 1; /* TRUE */ | ||
1011 | else | ||
1012 | return ammunition_bytes_comparison ( op1, op2, size ) < 0; | ||
1013 | } | ||
1014 | |||
1015 | /* This function compares two unsigned integers of given size on that | ||
1016 | the first operand is greater than or equal to the second. The | ||
1017 | function returns 1 if the first unsigned integer is greater than or | ||
1018 | equal to the second, 0 otherwise. */ | ||
1019 | |||
1020 | int | ||
1021 | ammunition_ge_unsigned_integer ( int size, const void *op1, const void *op2 ) | ||
1022 | { | ||
1023 | return ammunition_bytes_comparison ( op1, op2, size ) >= 0; | ||
1024 | } | ||
1025 | |||
1026 | /* This function compares two integers of given size on that the first | ||
1027 | operand is greater than or equal to the second. The function | ||
1028 | returns 1 if the first integer is greater than or equal to the | ||
1029 | second, 0 otherwise. */ | ||
1030 | |||
1031 | int | ||
1032 | ammunition_ge_integer ( int size, const void *op1, const void *op2 ) | ||
1033 | { | ||
1034 | if ( INTEGER_SIGN ( op1 ) == 0 ) { | ||
1035 | if ( INTEGER_SIGN ( op2 ) == 0 ) | ||
1036 | return ammunition_bytes_comparison ( op1, op2, size ) >= 0; | ||
1037 | else | ||
1038 | return 1; /* TRUE */ | ||
1039 | } else | ||
1040 | if ( INTEGER_SIGN ( op2 ) == 0 ) | ||
1041 | return 0; /*FALSE*/ | ||
1042 | else | ||
1043 | return ammunition_bytes_comparison ( op1, op2, size ) >= 0; | ||
1044 | } | ||
1045 | |||
1046 | /* This function compares two unsigned integers of given size on that | ||
1047 | the first operand is less than or equal to the second. The | ||
1048 | function returns 1 if the first unsigned integer is less than or | ||
1049 | equal to the second, 0 otherwise. */ | ||
1050 | |||
1051 | int | ||
1052 | ammunition_le_unsigned_integer ( int size, const void *op1, const void *op2 ) | ||
1053 | { | ||
1054 | return ammunition_bytes_comparison ( op1, op2, size ) <= 0; | ||
1055 | } | ||
1056 | |||
1057 | /* This function compares two integers of given size on that the first | ||
1058 | operand is less than or equal to the second. The function returns | ||
1059 | 1 if the first integer is less than or equal to the second, 0 | ||
1060 | otherwise. */ | ||
1061 | |||
1062 | int | ||
1063 | ammunition_le_integer ( int size, const void *op1, const void *op2 ) | ||
1064 | { | ||
1065 | if ( INTEGER_SIGN ( op1 ) == 0 ) { | ||
1066 | if ( INTEGER_SIGN ( op2 ) == 0 ) | ||
1067 | return ammunition_bytes_comparison ( op1, op2, size ) <= 0; | ||
1068 | else | ||
1069 | return 0; /*FALSE*/ | ||
1070 | } else | ||
1071 | if ( INTEGER_SIGN ( op2 ) == 0 ) | ||
1072 | return 1; /* TRUE */ | ||
1073 | else | ||
1074 | return ammunition_bytes_comparison ( op1, op2, size ) <= 0; | ||
1075 | } | ||
1076 | |||
1077 | |||
1078 | |||
1079 | /* This page contains functions for changing size of arbitrary | ||
1080 | precision numbers. */ | ||
1081 | |||
1082 | /* The function changes size of unsigned integer. The function fixes | ||
1083 | overflow when result can not be represented by number of given | ||
1084 | size. Result can be placed in operand. */ | ||
1085 | |||
1086 | void | ||
1087 | ammunition_change_unsigned_integer_size ( int operand_size, const void *operand, | ||
1088 | int result_size, void *result ) | ||
1089 | { | ||
1090 | int operand_digit_number; | ||
1091 | |||
1092 | ammunition_overflow_bit = 0; | ||
1093 | if ( operand_size <= result_size ) { | ||
1094 | ammunition_memmove ( ( char * ) result + result_size - operand_size, | ||
1095 | operand, ( size_x ) operand_size ); | ||
1096 | ammunition_memset ( result, 0, ( size_x ) ( result_size - operand_size ) ); | ||
1097 | } else { | ||
1098 | _Pragma( "loopbound min 2 max 2" ) | ||
1099 | for ( operand_digit_number = 0; | ||
1100 | operand_digit_number < operand_size - result_size; | ||
1101 | operand_digit_number++ ) { | ||
1102 | if ( ( ( unsigned char * ) operand ) [operand_digit_number] != 0 ) { | ||
1103 | ammunition_overflow_bit = 1; | ||
1104 | break; | ||
1105 | } | ||
1106 | } | ||
1107 | ammunition_memmove ( result, | ||
1108 | ( char * ) operand + operand_size - result_size, | ||
1109 | ( size_x ) result_size ); | ||
1110 | } | ||
1111 | if ( ammunition_overflow_bit ) | ||
1112 | ammunition_arithmetic_unsigned_overflow_reaction(); | ||
1113 | } | ||
1114 | |||
1115 | /* The function changes size of integer. The function fixes overflow | ||
1116 | when result can not be represented by number of given size. Result | ||
1117 | can be placed in operand. */ | ||
1118 | |||
1119 | void | ||
1120 | ammunition_change_integer_size ( int operand_size, const void *operand, | ||
1121 | int result_size, void *result ) | ||
1122 | { | ||
1123 | int operand_digit_number; | ||
1124 | int operand_sign; | ||
1125 | |||
1126 | ammunition_overflow_bit = 0; | ||
1127 | operand_sign = INTEGER_SIGN ( operand ); | ||
1128 | if ( operand_size <= result_size ) { | ||
1129 | ammunition_memmove ( ( char * ) result + result_size - operand_size, | ||
1130 | operand, ( size_x ) operand_size ); | ||
1131 | ammunition_memset ( result, ( operand_sign ? UCHAR_MAX : 0 ), | ||
1132 | ( size_x ) ( result_size - operand_size ) ); | ||
1133 | } else { | ||
1134 | _Pragma( "loopbound min 2 max 2" ) | ||
1135 | for ( operand_digit_number = 0; | ||
1136 | operand_digit_number < operand_size - result_size; | ||
1137 | operand_digit_number++ ) { | ||
1138 | if ( ( ( unsigned char * ) operand ) [operand_digit_number] | ||
1139 | != ( operand_sign ? UCHAR_MAX : 0 ) ) { | ||
1140 | ammunition_overflow_bit = 1; | ||
1141 | break; | ||
1142 | } | ||
1143 | } | ||
1144 | ammunition_memmove ( result, | ||
1145 | ( char * ) operand + operand_size - result_size, | ||
1146 | ( size_x ) result_size ); | ||
1147 | if ( operand_sign != INTEGER_SIGN ( result ) ) | ||
1148 | ammunition_overflow_bit = 1; | ||
1149 | } | ||
1150 | if ( ammunition_overflow_bit ) | ||
1151 | ammunition_arithmetic_overflow_reaction(); | ||
1152 | } | ||
1153 | |||
1154 | |||
1155 | |||
1156 | /* This page contains functions for conversion of arbitrary precision | ||
1157 | numbers to ascii representation. */ | ||
1158 | |||
1159 | /* This function transforms unsigned integer of given size to BASE | ||
1160 | ascii representation. BASE should be between 2 and 36 including | ||
1161 | them. Digits more 9 are represented by 'a', 'b' etc. Sign is | ||
1162 | absent in result string. The function returns the result | ||
1163 | string. */ | ||
1164 | |||
1165 | char * | ||
1166 | ammunition_unsigned_integer_to_based_string ( int size, const void *operand, | ||
1167 | int base, | ||
1168 | char *result ) | ||
1169 | { | ||
1170 | int digit_num; | ||
1171 | int i; | ||
1172 | unsigned long divisable; | ||
1173 | unsigned long remainder; | ||
1174 | int nonzero_flag; | ||
1175 | int length; | ||
1176 | int temporary; | ||
1177 | unsigned char operand_copy [MAX_INTEGER_OPERAND_SIZE]; | ||
1178 | |||
1179 | ammunition_memcpy ( operand_copy, operand, ( size_x ) size ); | ||
1180 | length = 0; | ||
1181 | _Pragma( "loopbound min 1 max 10" ) | ||
1182 | do { | ||
1183 | nonzero_flag = 0 /* FALSE */; | ||
1184 | _Pragma( "loopbound min 2 max 6" ) | ||
1185 | for ( digit_num = 0, remainder = 0; digit_num < size; digit_num++ ) { | ||
1186 | divisable = remainder * ( UCHAR_MAX + 1 ) + operand_copy [digit_num]; | ||
1187 | remainder = divisable % base; | ||
1188 | operand_copy [digit_num] = ( unsigned char ) ( divisable / base ); | ||
1189 | if ( operand_copy [digit_num] != 0 ) | ||
1190 | nonzero_flag = 1 /* TRUE */; | ||
1191 | } | ||
1192 | result [length++] = ( unsigned char ) ( remainder < 10 ? '0' + remainder | ||
1193 | : 'a' + remainder - 10 ); | ||
1194 | } while ( nonzero_flag ); | ||
1195 | result [length] = '\0'; | ||
1196 | _Pragma( "loopbound min 0 max 5" ) | ||
1197 | for ( i = 0; i < length / 2; i++ ) { | ||
1198 | temporary = result [i]; | ||
1199 | result [i] = result [length - i - 1]; | ||
1200 | result [length - i - 1] = temporary; | ||
1201 | } | ||
1202 | return result; | ||
1203 | } | ||
1204 | |||
1205 | |||
1206 | /* This function transforms unsigned integer of given size to decimal | ||
1207 | ascii representation. Sign is absent in result string. The | ||
1208 | function returns the result string. */ | ||
1209 | |||
1210 | char * | ||
1211 | ammunition_unsigned_integer_to_string ( int size, const void *operand, | ||
1212 | char *result ) | ||
1213 | { | ||
1214 | return ammunition_unsigned_integer_to_based_string ( size, operand, 10, | ||
1215 | result ); | ||
1216 | } | ||
1217 | |||
1218 | |||
1219 | /* This function transforms integer of given size to BASE ascii | ||
1220 | representation. BASE should be between 2 and 36 including them. | ||
1221 | Digits more 9 are represented by 'a', 'b' etc. Sign is present in | ||
1222 | result string only for negative numbers. The function returns the | ||
1223 | result string. */ | ||
1224 | |||
1225 | char * | ||
1226 | ammunition_integer_to_based_string ( int size, const void *operand, int base, | ||
1227 | char *result ) | ||
1228 | { | ||
1229 | unsigned char operand_copy [MAX_INTEGER_OPERAND_SIZE]; | ||
1230 | |||
1231 | if ( !INTEGER_SIGN ( operand ) ) | ||
1232 | return ammunition_unsigned_integer_to_based_string ( size, operand, base, | ||
1233 | result ); | ||
1234 | ammunition_memcpy ( operand_copy, operand, ( size_x ) size ); | ||
1235 | /* May be integer overflow. But result is correct because it is unsigned. */ | ||
1236 | ammunition_make_complementary_code ( size, operand_copy, operand_copy ); | ||
1237 | *result = '-'; | ||
1238 | ammunition_unsigned_integer_to_based_string ( size, operand_copy, base, | ||
1239 | result + 1 ); | ||
1240 | return result; | ||
1241 | } | ||
1242 | |||
1243 | |||
1244 | |||
1245 | /* This function transforms integer of given size to decimal ascii | ||
1246 | representation. Sign is present in result string only for negative | ||
1247 | numbers. The function returns the result string. */ | ||
1248 | |||
1249 | char * | ||
1250 | ammunition_integer_to_string ( int size, const void *operand, char *result ) | ||
1251 | { | ||
1252 | return ammunition_integer_to_based_string ( size, operand, 10, result ); | ||
1253 | } | ||
1254 | |||
1255 | /* This page contains functions for conversion of decimal ascii | ||
1256 | representation to arbitrary precision numbers. */ | ||
1257 | |||
1258 | /* The function adds digit (byte size) to unsigned integer. The | ||
1259 | function returns 1 if unsigned integer overflow is fixed, 0 | ||
1260 | otherwise. */ | ||
1261 | |||
1262 | int ammunition_add_digit_to_unsigned_integer_without_overflow_reaction | ||
1263 | ( int size, void *operand, unsigned int digit ) | ||
1264 | { | ||
1265 | int digit_num; | ||
1266 | unsigned int carry; | ||
1267 | unsigned int sum; | ||
1268 | |||
1269 | _Pragma( "loopbound min 4 max 4" ) | ||
1270 | for ( digit_num = size - 1, carry = digit; digit_num >= 0; | ||
1271 | digit_num-- ) { | ||
1272 | sum = ( ( unsigned char * ) operand ) [digit_num] + carry; | ||
1273 | if ( sum > UCHAR_MAX ) { | ||
1274 | carry = sum / ( UCHAR_MAX + 1 ); | ||
1275 | sum %= UCHAR_MAX + 1; | ||
1276 | } else | ||
1277 | carry = 0; | ||
1278 | ( ( unsigned char * ) operand ) [digit_num] = sum; | ||
1279 | } | ||
1280 | return carry != 0; | ||
1281 | } | ||
1282 | |||
1283 | /* This function transforms source string (decimal ascii | ||
1284 | representation without sign) to given size unsigned integer and | ||
1285 | returns pointer to first non digit in the source string through a | ||
1286 | parameter. If the string started with invalid integer | ||
1287 | representation the result will be zero and returns the operand | ||
1288 | through the parameter. The function returns 1 if unsigned integer | ||
1289 | overflow is fixed, 0 otherwise. */ | ||
1290 | |||
1291 | int ammunition_string_to_unsigned_integer_without_overflow_reaction | ||
1292 | ( int size, const char *operand, void *result, char **first_nondigit ) | ||
1293 | { | ||
1294 | int overflow_flag; | ||
1295 | |||
1296 | ammunition_memset ( result, 0, ( size_x ) size ); | ||
1297 | _Pragma( "loopbound min 0 max 10" ) | ||
1298 | for ( overflow_flag = 0; ammunition_isdigit ( *operand ); operand++ ) { | ||
1299 | overflow_flag | ||
1300 | = overflow_flag || | ||
1301 | ammunition_multiply_unsigned_integer_by_digit_without_overflow_reaction | ||
1302 | ( size, result, 10 ); | ||
1303 | overflow_flag | ||
1304 | = overflow_flag | ||
1305 | || ammunition_add_digit_to_unsigned_integer_without_overflow_reaction | ||
1306 | ( size, result, *operand - '0' ); | ||
1307 | } | ||
1308 | *first_nondigit = ( char * ) operand; | ||
1309 | return overflow_flag; | ||
1310 | } | ||
1311 | |||
1312 | /* This function skips all white spaces at the begin of source string | ||
1313 | and transforms tail of the source string (decimal ascii | ||
1314 | representation without sign) to given size unsigned integer with | ||
1315 | the aid of function | ||
1316 | `string_to_unsigned_integer_without_overflow_reaction'. If the | ||
1317 | string started with invalid unsigned integer representation the | ||
1318 | result will be zero. The function fixes overflow when result can | ||
1319 | not be represented by number of given size. The function returns | ||
1320 | address of the first nondigit in the source string. */ | ||
1321 | |||
1322 | char * | ||
1323 | ammunition_unsigned_integer_from_string ( int size, const char *operand, | ||
1324 | void *result ) | ||
1325 | { | ||
1326 | char *first_nondigit; | ||
1327 | |||
1328 | _Pragma( "loopbound min 0 max 0" ) | ||
1329 | while ( ammunition_isspace ( *operand ) ) | ||
1330 | operand++; | ||
1331 | ammunition_overflow_bit | ||
1332 | = ammunition_string_to_unsigned_integer_without_overflow_reaction | ||
1333 | ( size, operand, result, &first_nondigit ); | ||
1334 | if ( ammunition_overflow_bit ) | ||
1335 | ammunition_arithmetic_unsigned_overflow_reaction(); | ||
1336 | return first_nondigit; | ||
1337 | } | ||
1338 | |||
1339 | /* This function skips all white spaces at the begin of source string | ||
1340 | and transforms tail of the source string (decimal ascii | ||
1341 | representation with possible sign `+' or `-') to given size integer | ||
1342 | with the aid of function | ||
1343 | `string_to_unsigned_integer_without_overflow_reaction'. If the | ||
1344 | string started with invalid integer representation the result will | ||
1345 | be zero. The function fixes overflow when result can not be | ||
1346 | represented by number of given size. the function returns Address | ||
1347 | of the first nondigit in the source string. */ | ||
1348 | |||
1349 | char * | ||
1350 | ammunition_integer_from_string ( int size, const char *operand, void *result ) | ||
1351 | { | ||
1352 | int negative_number_flag; | ||
1353 | char *first_nondigit; | ||
1354 | int unsigned_result_sign; | ||
1355 | |||
1356 | _Pragma( "loopbound min 0 max 0" ) | ||
1357 | while ( ammunition_isspace ( *operand ) ) | ||
1358 | operand++; | ||
1359 | negative_number_flag = 0; /* FALSE */ | ||
1360 | if ( *operand == '+' ) | ||
1361 | operand++; | ||
1362 | else | ||
1363 | if ( *operand == '-' ) { | ||
1364 | operand++; | ||
1365 | negative_number_flag = 1; /* TRUE */ | ||
1366 | } | ||
1367 | ammunition_overflow_bit | ||
1368 | = ammunition_string_to_unsigned_integer_without_overflow_reaction | ||
1369 | ( size, operand, result, &first_nondigit ); | ||
1370 | unsigned_result_sign = INTEGER_SIGN ( result ); | ||
1371 | if ( negative_number_flag ) | ||
1372 | /* May be integer overflow when `result' is correct. But result | ||
1373 | is correct because it is unsigned. */ | ||
1374 | ammunition_make_complementary_code ( size, result, result ); | ||
1375 | ammunition_overflow_bit | ||
1376 | = ammunition_overflow_bit | ||
1377 | || ( unsigned_result_sign | ||
1378 | && ( !negative_number_flag | ||
1379 | || INTEGER_SIGN ( result ) != unsigned_result_sign ) ); | ||
1380 | if ( ammunition_overflow_bit ) | ||
1381 | ammunition_arithmetic_unsigned_overflow_reaction(); | ||
1382 | return first_nondigit; | ||
1383 | } | ||
1384 | |||
diff --git a/baseline/source/ammunition/arithm.h b/baseline/source/ammunition/arithm.h new file mode 100644 index 0000000..8ed78bf --- /dev/null +++ b/baseline/source/ammunition/arithm.h | |||
@@ -0,0 +1,123 @@ | |||
1 | /* | ||
2 | FILE NAME: arithm.h | ||
3 | |||
4 | TITLE: Include file of package for arbitrary precision integer | ||
5 | arithmetic | ||
6 | |||
7 | DESCRIPTION: This header file contains ANSI C prototype definitions of | ||
8 | the package functions and definitions of external | ||
9 | variable of the package and C++ classes for arbitrary | ||
10 | precision integer arithmetic. | ||
11 | |||
12 | */ | ||
13 | |||
14 | |||
15 | #ifndef __ARITHMETIC__ | ||
16 | #define __ARITHMETIC__ | ||
17 | |||
18 | #include "ammunition_limits.h" | ||
19 | |||
20 | |||
21 | /* This page contains definitions of variables and macros common for | ||
22 | all package functions. */ | ||
23 | |||
24 | /* The value of macro is suggested to be maximum length of integer operands | ||
25 | The length of use integers should be not greater than this value. */ | ||
26 | |||
27 | #define MAX_INTEGER_OPERAND_SIZE 128 | ||
28 | |||
29 | /* The following macro value is sign of integer number (0 or 1) given | ||
30 | as macro parameter. */ | ||
31 | |||
32 | #define INTEGER_SIGN(operand) (*(unsigned char *) (operand) >> (CHAR_BIT - 1)) | ||
33 | |||
34 | extern int ammunition_overflow_bit; | ||
35 | |||
36 | extern void ammunition_add_unsigned_integer ( int size, const void *op1, | ||
37 | const void *op2, | ||
38 | void *result ); | ||
39 | extern void ammunition_add_integer ( int size, const void *op1, const void *op2, | ||
40 | void *result ); | ||
41 | extern void ammunition_subtract_unsigned_integer ( int size, const void *op1, | ||
42 | const void *op2, void *result ); | ||
43 | extern void ammunition_subtract_integer ( int size, const void *op1, | ||
44 | const void *op2, | ||
45 | void *result ); | ||
46 | extern void ammunition_multiply_unsigned_integer ( int size, const void *op1, | ||
47 | const void *op2, void *result ); | ||
48 | extern void ammunition_multiply_integer ( int size, const void *op1, | ||
49 | const void *op2, | ||
50 | void *result ); | ||
51 | extern void ammunition_divide_unsigned_integer ( int size, const void *op1, | ||
52 | const void *op2, void *result ); | ||
53 | extern void ammunition_divide_integer ( int size, const void *op1, | ||
54 | const void *op2, | ||
55 | void *result ); | ||
56 | extern void ammunition_unsigned_integer_remainder ( int size, const void *op1, | ||
57 | const void *op2, void *result ); | ||
58 | |||
59 | extern void ammunition_unsigned_integer_shift_right ( int size, | ||
60 | const void *operand, | ||
61 | int bits, void *result ); | ||
62 | extern void ammunition_integer_shift_right ( int size, const void *operand, | ||
63 | int bits, void *result ); | ||
64 | extern void ammunition_integer_shift_left ( int size, const void *operand, | ||
65 | int bits, void *result ); | ||
66 | extern void ammunition_unsigned_integer_shift_left ( int size, | ||
67 | const void *operand, | ||
68 | int bits, void *result ); | ||
69 | |||
70 | extern void ammunition_integer_or ( int size, const void *op1, | ||
71 | const void *op2, void *result ); | ||
72 | extern void ammunition_unsigned_integer_or ( int size, const void *op1, | ||
73 | const void *op2, void *result ); | ||
74 | extern void ammunition_integer_and ( int size, const void *op1, | ||
75 | const void *op2, void *result ); | ||
76 | extern void ammunition_unsigned_integer_and ( int size, const void *op1, | ||
77 | const void *op2, void *result ); | ||
78 | extern void ammunition_integer_not ( int size, const void *operand, | ||
79 | void *result ); | ||
80 | extern void ammunition_unsigned_integer_not ( int size, const void *operand, | ||
81 | void *result ); | ||
82 | |||
83 | extern int ammunition_eq_unsigned_integer ( int size, const void *op1, | ||
84 | const void *op2 ); | ||
85 | extern int ammunition_eq_integer ( int size, const void *op1, const void *op2 ); | ||
86 | extern int ammunition_ne_unsigned_integer ( int size, const void *op1, | ||
87 | const void *op2 ); | ||
88 | extern int ammunition_ne_integer ( int size, const void *op1, const void *op2 ); | ||
89 | extern int ammunition_gt_unsigned_integer ( int size, const void *op1, | ||
90 | const void *op2 ); | ||
91 | extern int ammunition_gt_integer ( int size, const void *op1, const void *op2 ); | ||
92 | extern int ammunition_lt_unsigned_integer ( int size, const void *op1, | ||
93 | const void *op2 ); | ||
94 | extern int ammunition_lt_integer ( int size, const void *op1, const void *op2 ); | ||
95 | extern int ammunition_ge_unsigned_integer ( int size, const void *op1, | ||
96 | const void *op2 ); | ||
97 | extern int ammunition_ge_integer ( int size, const void *op1, const void *op2 ); | ||
98 | extern int ammunition_le_unsigned_integer ( int size, const void *op1, | ||
99 | const void *op2 ); | ||
100 | extern int ammunition_le_integer ( int size, const void *op1, const void *op2 ); | ||
101 | |||
102 | extern void ammunition_change_unsigned_integer_size | ||
103 | ( int operand_size, const void *operand, int result_size, void *result ); | ||
104 | extern void ammunition_change_integer_size ( int operand_size, | ||
105 | const void *operand, | ||
106 | int result_size, void *result ); | ||
107 | |||
108 | extern char *ammunition_unsigned_integer_to_string ( int size, | ||
109 | const void *operand, | ||
110 | char *result ); | ||
111 | extern char *ammunition_integer_to_string ( int size, const void *operand, | ||
112 | char *result ); | ||
113 | |||
114 | extern char *ammunition_unsigned_integer_from_string ( int size, | ||
115 | const char *operand, | ||
116 | void *result ); | ||
117 | extern char *ammunition_integer_from_string ( int size, const char *operand, | ||
118 | void *result ); | ||
119 | |||
120 | char ammunition_isdigit( unsigned char c ); | ||
121 | int ammunition_isspace( int c ); | ||
122 | |||
123 | #endif /* #ifndef __ARITHMETIC__ */ | ||
diff --git a/baseline/source/ammunition/bits.c b/baseline/source/ammunition/bits.c new file mode 100644 index 0000000..9169656 --- /dev/null +++ b/baseline/source/ammunition/bits.c | |||
@@ -0,0 +1,313 @@ | |||
1 | /* | ||
2 | |||
3 | FILE NAME: bits.c | ||
4 | |||
5 | TITLE: Package for work with bits | ||
6 | |||
7 | DESCRIPTION: This file implements functions of the package for work | ||
8 | with bit strings. A bit is given by address (start address) of | ||
9 | byte from which counting bits starts and its displacement which | ||
10 | is any non negative number of bit from the start address. The | ||
11 | most significant bit of the start address byte has number 0. | ||
12 | The bit string is given by its first bit and its length in | ||
13 | bits. | ||
14 | |||
15 | */ | ||
16 | |||
17 | #include "bits.h" | ||
18 | |||
19 | /* This function determines that given bit string contains only zero | ||
20 | bits. The function retruns TRUE if all bits of given bit string | ||
21 | are zero or `bit_length' <= 0. Value of `bit_displacement' must be | ||
22 | non-negative and can be greater than CHAR_BIT. */ | ||
23 | |||
24 | int | ||
25 | ammunition_is_zero_bit_string ( const void *start_byte, int bit_displacement, | ||
26 | int bit_length ) | ||
27 | { | ||
28 | const unsigned char *current_byte = ( unsigned const char * )start_byte; | ||
29 | |||
30 | if ( bit_length <= 0 ) | ||
31 | return 1 /* TRUE */; | ||
32 | current_byte += bit_displacement / CHAR_BIT; | ||
33 | bit_displacement %= CHAR_BIT; | ||
34 | if ( bit_length < CHAR_BIT - bit_displacement ) | ||
35 | return ( ( ( *current_byte << bit_displacement ) | ||
36 | & ( UCHAR_MAX << ( CHAR_BIT - bit_length ) ) ) | ||
37 | & UCHAR_MAX ) == 0; | ||
38 | else | ||
39 | if ( bit_displacement != 0 ) { | ||
40 | if ( ( ( *current_byte << bit_displacement ) & UCHAR_MAX ) != 0 ) | ||
41 | return 0 /* FALSE */; | ||
42 | current_byte += 1; | ||
43 | bit_length -= CHAR_BIT - bit_displacement; | ||
44 | } | ||
45 | _Pragma( "loopbound min 0 max 7" ) | ||
46 | while ( bit_length >= CHAR_BIT ) { | ||
47 | if ( *current_byte != 0 ) | ||
48 | return 0 /* FALSE */; | ||
49 | current_byte++; | ||
50 | bit_length -= CHAR_BIT; | ||
51 | } | ||
52 | if ( bit_length > 0 && ( *current_byte >> ( CHAR_BIT - bit_length ) ) != 0 ) | ||
53 | return 0 /* FALSE */; | ||
54 | return 1 /* TRUE */; | ||
55 | } | ||
56 | |||
57 | /* This function sets up new value of all bits of given bit string. | ||
58 | This function is analog of standard C function `memset'. Value of | ||
59 | `bit_displacement' must be non-negative and can be greater than | ||
60 | CHAR_BIT. */ | ||
61 | |||
62 | void | ||
63 | ammunition_bit_string_set ( void *start_byte, int bit_displacement, int bit, | ||
64 | int bit_length ) | ||
65 | { | ||
66 | unsigned char *current_byte = ( unsigned char * )start_byte; | ||
67 | unsigned char filling_byte; | ||
68 | int mask; | ||
69 | |||
70 | if ( bit_length <= 0 ) | ||
71 | return ; | ||
72 | bit = bit != 0; /* 1 or 0 */ | ||
73 | filling_byte = ( bit ? UCHAR_MAX : 0 ); | ||
74 | current_byte += bit_displacement / CHAR_BIT; | ||
75 | bit_displacement %= CHAR_BIT; | ||
76 | if ( bit_displacement != 0 ) { | ||
77 | mask = UCHAR_MAX << ( CHAR_BIT - bit_displacement ); | ||
78 | if ( bit_length < CHAR_BIT - bit_displacement ) | ||
79 | mask |= UCHAR_MAX >> ( bit_displacement + bit_length ); | ||
80 | *current_byte = ( *current_byte & mask ) | ( filling_byte & ~mask ); | ||
81 | current_byte += 1; | ||
82 | bit_length -= CHAR_BIT - bit_displacement; | ||
83 | } | ||
84 | _Pragma( "loopbound min 0 max 8" ) | ||
85 | while ( bit_length >= CHAR_BIT ) { | ||
86 | *current_byte = filling_byte; | ||
87 | current_byte++; | ||
88 | bit_length -= CHAR_BIT; | ||
89 | } | ||
90 | if ( bit_length > 0 ) | ||
91 | *current_byte | ||
92 | = ( *current_byte & ~( UCHAR_MAX << ( CHAR_BIT - bit_length ) ) ) | ||
93 | | ( filling_byte & ( UCHAR_MAX << ( CHAR_BIT - bit_length ) ) ); | ||
94 | } | ||
95 | |||
96 | /* This function copys a bit string to another bit string. This | ||
97 | function is analog of standard C function `memcpy'. Values of | ||
98 | `to_bit_displacement' and `from_bit_displacement' must be | ||
99 | non-negative and can be greater than CHAR_BIT. The bit string must | ||
100 | be non-overlapped. */ | ||
101 | |||
102 | void | ||
103 | ammunition_bit_string_copy ( void *to, int to_bit_displacement, | ||
104 | const void *from, int from_bit_displacement, | ||
105 | int bit_length ) | ||
106 | { | ||
107 | unsigned char *current_to_byte = ( unsigned char * )to; | ||
108 | const unsigned char *current_from_byte = ( unsigned const char * )from; | ||
109 | int byte; | ||
110 | int mask; | ||
111 | |||
112 | if ( bit_length <= 0 ) | ||
113 | return ; | ||
114 | current_to_byte += to_bit_displacement / CHAR_BIT; | ||
115 | to_bit_displacement %= CHAR_BIT; | ||
116 | current_from_byte += from_bit_displacement / CHAR_BIT; | ||
117 | from_bit_displacement %= CHAR_BIT; | ||
118 | _Pragma( "loopbound min 1 max 8" ) | ||
119 | while ( 1 ) { | ||
120 | byte = ( ( ( *current_from_byte << from_bit_displacement ) & UCHAR_MAX ) | ||
121 | | ( from_bit_displacement != 0 | ||
122 | && bit_length > ( CHAR_BIT - from_bit_displacement ) | ||
123 | ? current_from_byte [1] >> ( CHAR_BIT - from_bit_displacement ) | ||
124 | : 0 ) ); | ||
125 | if ( bit_length <= CHAR_BIT ) | ||
126 | break; | ||
127 | /* Shift is correct when to_bit_displacement == 0 because its | ||
128 | value is less than word bit size. */ | ||
129 | *current_to_byte | ||
130 | = ( *current_to_byte | ||
131 | & ( UCHAR_MAX << ( CHAR_BIT - to_bit_displacement ) ) ) | ||
132 | | ( byte >> to_bit_displacement ); | ||
133 | if ( to_bit_displacement != 0 ) | ||
134 | current_to_byte [1] | ||
135 | = ( current_to_byte [1] & ( UCHAR_MAX >> to_bit_displacement ) ) | ||
136 | | ( byte << ( CHAR_BIT - to_bit_displacement ) ); | ||
137 | bit_length -= CHAR_BIT; | ||
138 | current_from_byte++; | ||
139 | current_to_byte++; | ||
140 | } | ||
141 | /* Shift is correct when to_bit_displacement == 0 because its | ||
142 | value is less than word bit size. */ | ||
143 | mask = ( ( UCHAR_MAX << ( CHAR_BIT - to_bit_displacement ) ) | ||
144 | | ( UCHAR_MAX >> ( to_bit_displacement + bit_length ) ) ); | ||
145 | *current_to_byte | ||
146 | = ( *current_to_byte & mask ) | ( ( byte >> to_bit_displacement ) & ~mask ); | ||
147 | bit_length -= CHAR_BIT - to_bit_displacement; | ||
148 | if ( bit_length > 0 ) | ||
149 | current_to_byte [1] | ||
150 | = ( current_to_byte [1] & ( UCHAR_MAX >> bit_length ) ) | ||
151 | | ( ( byte << ( CHAR_BIT - to_bit_displacement ) ) | ||
152 | & ( UCHAR_MAX << ( CHAR_BIT - bit_length ) ) ); | ||
153 | } | ||
154 | |||
155 | /* This function copys a bit string to another bit string. Copying | ||
156 | starts with the last bits of the bit strings. This function is | ||
157 | used by function `bit_string_move'. Values of | ||
158 | `to_bit_displacement' and `from_bit_displacement' must be | ||
159 | non-negative and can be greater than CHAR_BIT. The bit string must | ||
160 | be non-overlapped. */ | ||
161 | |||
162 | void ammunition_reverse_bit_string_copy ( void *to, int to_bit_displacement, | ||
163 | const void *from, int from_bit_displacement, | ||
164 | int bit_length ) | ||
165 | { | ||
166 | unsigned char *current_to_byte = ( unsigned char * )to; | ||
167 | const unsigned char *current_from_byte = ( unsigned const char * )from; | ||
168 | int byte; | ||
169 | int mask; | ||
170 | |||
171 | if ( bit_length <= 0 ) | ||
172 | return ; | ||
173 | to_bit_displacement += bit_length - 1; | ||
174 | current_to_byte += to_bit_displacement / CHAR_BIT; /* last byte */ | ||
175 | to_bit_displacement %= CHAR_BIT; /* last bit */ | ||
176 | from_bit_displacement += bit_length - 1; | ||
177 | current_from_byte += from_bit_displacement / CHAR_BIT; /* last byte */ | ||
178 | from_bit_displacement %= CHAR_BIT; /* last bit */ | ||
179 | _Pragma( "loopbound min 1 max 8" ) | ||
180 | while ( 1 ) { | ||
181 | /* Shift is correct when to_bit_displacement == 0 because its | ||
182 | value is less than word bit size. */ | ||
183 | byte = ( ( *current_from_byte >> ( CHAR_BIT - 1 - from_bit_displacement ) ) | ||
184 | | ( ( from_bit_displacement != CHAR_BIT - 1 | ||
185 | && bit_length > from_bit_displacement + 1 | ||
186 | ? current_from_byte [ -1 ] << ( from_bit_displacement + 1 ) | ||
187 | : 0 ) | ||
188 | & UCHAR_MAX ) ); | ||
189 | if ( bit_length <= CHAR_BIT ) | ||
190 | break; | ||
191 | /* Shift is correct when to_bit_displacement == 0 because its | ||
192 | value is less than word bit size. */ | ||
193 | *current_to_byte | ||
194 | = ( *current_to_byte & ( UCHAR_MAX >> ( to_bit_displacement + 1 ) ) ) | ||
195 | | ( byte << ( CHAR_BIT - 1 - to_bit_displacement ) ); | ||
196 | if ( to_bit_displacement != CHAR_BIT - 1 ) | ||
197 | current_to_byte [-1] | ||
198 | = ( current_to_byte [-1] | ||
199 | & ( UCHAR_MAX << ( CHAR_BIT - 1 - to_bit_displacement ) ) ) | ||
200 | | ( byte >> ( to_bit_displacement + 1 ) ); | ||
201 | bit_length -= CHAR_BIT; | ||
202 | current_from_byte--; | ||
203 | current_to_byte--; | ||
204 | } | ||
205 | /* Shift is correct when to_bit_displacement == 0 because its | ||
206 | value is less than word bit size. */ | ||
207 | mask = ( ( UCHAR_MAX >> ( to_bit_displacement + 1 ) ) | | ||
208 | ( UCHAR_MAX << ( CHAR_BIT - 1 - to_bit_displacement | ||
209 | + bit_length ) ) ); | ||
210 | *current_to_byte | ||
211 | = ( *current_to_byte & mask ) | ||
212 | | ( ( byte << ( CHAR_BIT - 1 - to_bit_displacement ) ) & ~mask ); | ||
213 | bit_length -= to_bit_displacement + 1; | ||
214 | if ( bit_length > 0 ) | ||
215 | current_to_byte [-1] | ||
216 | = ( current_to_byte [-1] & ( UCHAR_MAX << bit_length ) ) | ||
217 | | ( byte >> ( to_bit_displacement + 1 ) | ||
218 | & ( UCHAR_MAX >> ( CHAR_BIT - bit_length ) ) ); | ||
219 | } | ||
220 | |||
221 | /* This function copys a bit string to another bit string with the aid | ||
222 | of functions `bit_string_copy' and `reverse_bit_string_copy'. This | ||
223 | function is analog of standard C function `memmove'. Values of | ||
224 | `to_bit_displacement' and `from_bit_displacement' must be | ||
225 | non-negative and can be greater than CHAR_BIT. The bit string can | ||
226 | be overlapped. */ | ||
227 | |||
228 | void | ||
229 | ammunition_bit_string_move ( void *to, int to_bit_displacement, | ||
230 | const void *from, int from_bit_displacement, | ||
231 | int bit_length ) | ||
232 | { | ||
233 | unsigned char *current_to_byte = ( unsigned char * )to; | ||
234 | const unsigned char *current_from_byte = ( unsigned const char * )from; | ||
235 | |||
236 | if ( bit_length <= 0 ) | ||
237 | return ; | ||
238 | current_to_byte += to_bit_displacement / CHAR_BIT; | ||
239 | to_bit_displacement %= CHAR_BIT; | ||
240 | current_from_byte += from_bit_displacement / CHAR_BIT; | ||
241 | from_bit_displacement %= CHAR_BIT; | ||
242 | if ( current_from_byte > current_to_byte | ||
243 | || ( current_from_byte == current_to_byte | ||
244 | && from_bit_displacement > to_bit_displacement ) ) | ||
245 | ammunition_bit_string_copy ( current_to_byte, to_bit_displacement, | ||
246 | current_from_byte, from_bit_displacement, | ||
247 | bit_length ); | ||
248 | else | ||
249 | ammunition_reverse_bit_string_copy ( current_to_byte, to_bit_displacement, | ||
250 | current_from_byte, | ||
251 | from_bit_displacement, bit_length ); | ||
252 | } | ||
253 | |||
254 | /* This function compares bit strings. This function is analog of | ||
255 | standard C function `memcmp'. The function returns 0 if the bit | ||
256 | strings are equal, 1 if the first bit string is greater than the | ||
257 | second, -1 if the first bit string is less than the first. Values | ||
258 | of `bit_displacement1' and `bit_displacement2' must be non-negative | ||
259 | and can be greater than CHAR_BIT. */ | ||
260 | |||
261 | int | ||
262 | ammunition_bit_string_comparison ( const void *str1, int bit_displacement1, | ||
263 | const void *str2, int bit_displacement2, | ||
264 | int bit_length ) | ||
265 | { | ||
266 | const unsigned char *current_byte1 = ( unsigned const char * )str1; | ||
267 | const unsigned char *current_byte2 = ( unsigned const char * )str2; | ||
268 | int byte1; | ||
269 | int byte2; | ||
270 | int mask; | ||
271 | |||
272 | if ( bit_length <= 0 ) | ||
273 | return 0; | ||
274 | current_byte1 += bit_displacement1 / CHAR_BIT; | ||
275 | bit_displacement1 %= CHAR_BIT; | ||
276 | current_byte2 += bit_displacement2 / CHAR_BIT; | ||
277 | bit_displacement2 %= CHAR_BIT; | ||
278 | _Pragma( "loopbound min 1 max 284" ) | ||
279 | while ( 1 ) { | ||
280 | byte1 = ( ( ( *current_byte1 << bit_displacement1 ) & UCHAR_MAX ) | ||
281 | | ( bit_displacement1 != 0 | ||
282 | /* Shift is correct when to_bit_displacement == 0 | ||
283 | because its value is less than word bit size. */ | ||
284 | && bit_length > CHAR_BIT - bit_displacement1 | ||
285 | ? current_byte1 [1] >> ( CHAR_BIT - bit_displacement1 ) | ||
286 | : 0 ) ); | ||
287 | byte2 = ( ( ( *current_byte2 << bit_displacement2 ) & UCHAR_MAX ) | ||
288 | | ( bit_displacement2 != 0 | ||
289 | && bit_length > CHAR_BIT - bit_displacement2 | ||
290 | ? current_byte2 [1] >> ( CHAR_BIT - bit_displacement2 ) | ||
291 | : 0 ) ); | ||
292 | if ( bit_length <= CHAR_BIT ) | ||
293 | break; | ||
294 | if ( byte1 > byte2 ) | ||
295 | return 1; | ||
296 | else | ||
297 | if ( byte1 < byte2 ) | ||
298 | return -1; | ||
299 | bit_length -= CHAR_BIT; | ||
300 | current_byte2++; | ||
301 | current_byte1++; | ||
302 | } | ||
303 | /* Shift is correct when to_bit_displacement == 0 because its value | ||
304 | is less than word bit size. */ | ||
305 | mask = UCHAR_MAX << ( CHAR_BIT - bit_length ); | ||
306 | if ( ( byte1 & mask ) > ( byte2 & mask ) ) | ||
307 | return 1; | ||
308 | else | ||
309 | if ( ( byte1 & mask ) < ( byte2 & mask ) ) | ||
310 | return -1; | ||
311 | else | ||
312 | return 0; | ||
313 | } | ||
diff --git a/baseline/source/ammunition/bits.h b/baseline/source/ammunition/bits.h new file mode 100644 index 0000000..70cf8bd --- /dev/null +++ b/baseline/source/ammunition/bits.h | |||
@@ -0,0 +1,60 @@ | |||
1 | /* | ||
2 | FILE NAME: bits.h | ||
3 | |||
4 | TITLE: Include file of package for work with bits | ||
5 | |||
6 | DESCRIPTION: | ||
7 | This is header file contains macros and the ANSI C prototype | ||
8 | definitions for the package for work with bits and bit strings | ||
9 | and C++ class for work with bits and bit strings. A bit is | ||
10 | given by address (start address) of byte from which counting | ||
11 | bits starts and its displacement which is any non negative | ||
12 | number of bit from the start address. The most significant bit | ||
13 | of the start address byte has number 0. The bit string is | ||
14 | given by its first bit and its length in bits. | ||
15 | |||
16 | */ | ||
17 | |||
18 | #ifndef __BITS__ | ||
19 | #define __BITS__ | ||
20 | |||
21 | #include "ammunition_limits.h" | ||
22 | |||
23 | /* This macro value returns bit vlaue (0 or 1) with given bit | ||
24 | displacement (0, 1, ...). The macro has side effects! Value of | ||
25 | `bit_displacement' must be nonegative and can be greater than | ||
26 | CHAR_BIT. */ | ||
27 | |||
28 | #define BIT(start_byte, bit_displacement)\ | ||
29 | ((((const char *) (start_byte)) [(bit_displacement) / CHAR_BIT]\ | ||
30 | >> (CHAR_BIT - 1 - (bit_displacement) % CHAR_BIT)) & 1) | ||
31 | |||
32 | |||
33 | /* This macro value sets up new value (must be `0' or `1') of a given | ||
34 | bit (bit displacement starts with 0). The macro has side effects! | ||
35 | Value of `bit_displacement' must be nonegative and can be greater | ||
36 | than CHAR_BIT. */ | ||
37 | |||
38 | #define SET_BIT(start_byte, bit_displacement, bit)\ | ||
39 | (((char *) (start_byte)) [(bit_displacement) / CHAR_BIT]\ | ||
40 | = (((char *) (start_byte)) [(bit_displacement) / CHAR_BIT]\ | ||
41 | & ~(1 << (CHAR_BIT - 1 - (bit_displacement) % CHAR_BIT)))\ | ||
42 | | ((bit) << (CHAR_BIT - 1 - (bit_displacement) % CHAR_BIT))) | ||
43 | |||
44 | int ammunition_is_zero_bit_string ( const void *start_byte, | ||
45 | int bit_displacement, | ||
46 | int bit_length ); | ||
47 | void ammunition_bit_string_set ( void *start_byte, int bit_displacement, | ||
48 | int bit, | ||
49 | int bit_length ); | ||
50 | void ammunition_bit_string_copy ( void *to, int to_bit_displacement, | ||
51 | const void *from, int from_bit_displacement, | ||
52 | int bit_length ); | ||
53 | void ammunition_bit_string_move ( void *to, int to_bit_displacement, | ||
54 | const void *from, int from_bit_displacement, | ||
55 | int bit_length ); | ||
56 | int ammunition_bit_string_comparison ( const void *str1, int bit_displacement1, | ||
57 | const void *str2, int bit_displacement2, | ||
58 | int bit_length ); | ||
59 | |||
60 | #endif /* #ifndef __BITS__ */ | ||
diff --git a/baseline/source/ammunition/gmon.out b/baseline/source/ammunition/gmon.out new file mode 100644 index 0000000..2d07b7f --- /dev/null +++ b/baseline/source/ammunition/gmon.out | |||
Binary files differ | |||
diff --git a/baseline/source/ammunition/timeScript b/baseline/source/ammunition/timeScript new file mode 100644 index 0000000..33ba812 --- /dev/null +++ b/baseline/source/ammunition/timeScript | |||
@@ -0,0 +1,8 @@ | |||
1 | #!/bin/bash | ||
2 | startTime=$(date +%N) | ||
3 | echo start time $startTime | ||
4 | $1 | ||
5 | stopTime=$(date +%N) | ||
6 | echo stop time $stopTime | ||
7 | totalTime=`expr $stopTime - $startTime` | ||
8 | echo total time $totalTime | ||
diff --git a/baseline/source/anagram/ChangeLog.txt b/baseline/source/anagram/ChangeLog.txt new file mode 100644 index 0000000..fdba1cc --- /dev/null +++ b/baseline/source/anagram/ChangeLog.txt | |||
@@ -0,0 +1,125 @@ | |||
1 | File: anagram.c | ||
2 | Original provenience: unknown | ||
3 | Source: unknown | ||
4 | |||
5 | 2017-04-18: | ||
6 | - Annotated anagram_main as entry-point for timing analysis | ||
7 | |||
8 | 2016-06-22: | ||
9 | - Fixed type signature of function anagram_main to conform to TACLeBench | ||
10 | standard, i.e. `void anagram_main (void)`. | ||
11 | |||
12 | 2016-05-24: | ||
13 | - Changed type of global variables anagram_achPhrase and | ||
14 | anagram_dictionary to `char const *[]`. | ||
15 | - Changed parameter type of function anagram_BuildMask to | ||
16 | `char const *`. | ||
17 | |||
18 | 2016-04-26: | ||
19 | - Fixed array out-of-bounds access introduced by earlier change. | ||
20 | |||
21 | 2016-04-20: | ||
22 | - Fixed some compiler warnings. | ||
23 | - Return value of anagram_return depends on the computation inside | ||
24 | of anagram_main. | ||
25 | |||
26 | 2016-03-22 | ||
27 | - Added forward declarations for all functions. | ||
28 | - Renamed function main to anagram_main. | ||
29 | - Added function anagram_init that calls anagram_ReadDict, removed | ||
30 | call to anagram_ReadDict from anagram_main. | ||
31 | - Added function anagram_return that handles the return value. | ||
32 | - Added new function main that first calls anagram_init, | ||
33 | then anagram_main and finally returns the return value of | ||
34 | anagram_return. | ||
35 | - Added generic TACLeBench header to all files. | ||
36 | - Introduced comments to split file in sections for type | ||
37 | definitions, forward declarations, global variables, | ||
38 | initialization-related and return-value-related functions, | ||
39 | core benchmark functions, and main routine. | ||
40 | - Renamed ch2i, DICTWORDS, Quad, MASK_BITS, MAX_QUADS, MAXCAND, | ||
41 | MAXSOL, ALPHABET, Word, PWord, PPWord, apwCand, cpwCand, Letter, | ||
42 | PLetter, alPhrase, cchPhraseLength, aqMainMask, aqMainSign, | ||
43 | cchMinLength, auGlobalFrequency, achByFrequency, pchDictionary, | ||
44 | Reset, ReadDict, BuildMask, NewWord, NextWord, BuildWord, | ||
45 | AddWords, apwSol, cpwLast, OneStep, DumpWords, FindAnagram and | ||
46 | SortCandidates to anagram_ch2i, anagram_DICTWORDS, anagram_Quad, | ||
47 | anagram_MASK_BITS, anagram_MAX_QUADS, anagram_MAXCAND, | ||
48 | anagram_MAXSOL, anagram_ALPHABET, anagram_Word, anagram_PWord, | ||
49 | anagram_PPWord, anagram_apwCand, anagram_cpwCand, anagram_Letter, | ||
50 | anagram_PLetter, anagram_alPhrase, anagram_cchPhraseLength, | ||
51 | anagram_aqMainMask, anagram_aqMainSign, anagram_cchMinLength, | ||
52 | anagram_auGlobalFrequency, anagram_achByFrequency, | ||
53 | anagram_pchDictionary, anagram_Reset, anagram_ReadDict, | ||
54 | anagram_BuildMask, anagram_NewWord, anagram_NextWord, | ||
55 | anagram_BuildWord, anagram_AddWords, anagram_apwSol, | ||
56 | anagram_cpwLast, anagram_OneStep, anagram_DumpWords, | ||
57 | anagram_FindAnagram and anagram_SortCandidates. | ||
58 | - Renamed swapi, pivot, qsorts, simulated_heap and freeHeapPos to | ||
59 | anagram_swapi, anagram_pivot, anagram_qsorts, | ||
60 | anagram_simulated_heap and anagram_freeHeapPos. | ||
61 | - Renamed achPhrase and dictionary to anagram_achPhrase and | ||
62 | anagram_dictionary. | ||
63 | - Renamed CompareFrequency to anagram_CompareFrequency. | ||
64 | - Increased simulated heap in anagram_stdlib.c to 18000 bytes to | ||
65 | prevent segmentation fault. | ||
66 | - Changed header guard _WCCMALLOC_H to ANAGRAM_STRINGS_H. | ||
67 | - Renamed wccmalloc, wccbzero to anagram_malloc, anagram_bzero. | ||
68 | - Moved declaration of anagram_malloc to header anagram_stdlib.h. | ||
69 | - Introduced header guard ANAGRAM_CTYPE_H. | ||
70 | - Renamed wccislower, wccisupper, wccisalpha, wcctolower to | ||
71 | anagram_islower, anagram_isupper, anagram_isalpha, | ||
72 | anagram_tolower. | ||
73 | - Removed illegal keyword "inline". | ||
74 | - Changed header guard _WCCSTDLIB_H to ANAGRAM_STDLIB_H. | ||
75 | - Renamed wccqsort to anagram_qsort. | ||
76 | - Fixed compiler warning "no previous extern declaration for | ||
77 | non-static variable" for variables simulated_heap and | ||
78 | freeHeapPos by declaring them static. | ||
79 | - Renamed preprocessor define HEAP_SIZE to ANAGRAM_HEAP_SIZE. | ||
80 | - Fixed compiler warning "no previous prototype for function" by | ||
81 | moving includes to the top of the file. | ||
82 | - Fixed compiler warnings "implicit conversion changes signedness" | ||
83 | and "comparison of integers of different signs" by consistenly | ||
84 | using the type unsigned long in qsort helper functions. | ||
85 | - Moved function CompareFrequency to file anagram.c, added | ||
86 | declaration for it in file anagram_compare.h and included it in | ||
87 | anagram_stdlib.h. | ||
88 | - Fixed compiler warning "no previous extern declaration for | ||
89 | non-static variable" by adding forward declarations. | ||
90 | - Fixed compiler warning "macro is not used" by removing unused | ||
91 | macros MAXWORDS and i2ch. | ||
92 | - Replaced macro ch2i by proper function. | ||
93 | - Fixed compiler warning "array subscript is of type 'char' in | ||
94 | function CompareFrequency. | ||
95 | - Fixed compiler warning "unused variable" by removing variable i | ||
96 | in function Reset. | ||
97 | - Fixed compiler warning "no previous extern declaration for | ||
98 | non-static variable" by making global variables in file | ||
99 | anagram.c static. | ||
100 | - Replaced macro lPhrase by its expansion. | ||
101 | - Fixed compiler warnings "implicit conversion loses integer | ||
102 | precision" and "implicit conversion changes signedness" by | ||
103 | adding explicit casts or using the appropriate type for local | ||
104 | variables. | ||
105 | - Fixed compiler warning "array subscript is of type 'char'" by | ||
106 | changing type of some local variables as well as of global | ||
107 | variable achByFrequency to int. | ||
108 | - Changed all //-style comments to /* */-style comments. | ||
109 | - Moved contents of wccmalloc.c to anagram_stdlib.c. | ||
110 | - Renamed input.c to anagram_input.c. | ||
111 | - Renamed wccctype.h to anagram_ctype.h. | ||
112 | - Renamed wccstdlib.c to anagram_stdlib.c. | ||
113 | - Renamed wccstdlib.h to anagram_stdlib.h. | ||
114 | - Renamed wccmalloc.h to anagram_strings.h. | ||
115 | - Applied TACLeBench formatting rules via | ||
116 | astyle --options=doc/example/astylerc.txt | ||
117 | - Tested conformance to C99 via | ||
118 | clang -fsyntax-only -Weverything -Wno-unknown-pragmas -Wno-padded -pedantic -std=c99 | ||
119 | |||
120 | 2017-06-27 | ||
121 | - Remove static declarations. | ||
122 | |||
123 | 2017-07-10: | ||
124 | - Adjust alignment calculation in anagram_malloc to not add padding on already | ||
125 | aligned addresses. This prevents a buffer overflow of anagram_simulated_heap. | ||
diff --git a/baseline/source/anagram/anagram.c b/baseline/source/anagram/anagram.c new file mode 100644 index 0000000..8f140a3 --- /dev/null +++ b/baseline/source/anagram/anagram.c | |||
@@ -0,0 +1,670 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version 2.0 | ||
5 | |||
6 | Name: anagram | ||
7 | |||
8 | Author: Raymond Chen | ||
9 | |||
10 | Function: A program that computes anagrams. | ||
11 | |||
12 | Source: See below. | ||
13 | |||
14 | Original name: anagram | ||
15 | |||
16 | Changes: See ChangeLog.txt | ||
17 | |||
18 | License: See below. | ||
19 | |||
20 | */ | ||
21 | |||
22 | /* | ||
23 | Anagram program by Raymond Chen, | ||
24 | inspired by a similar program by Brian Scearce | ||
25 | |||
26 | This program is Copyright 1991 by Raymond Chen. | ||
27 | (rjc@math.princeton.edu) | ||
28 | |||
29 | This program may be freely distributed provided all alterations | ||
30 | to the original are clearly indicated as such. | ||
31 | */ | ||
32 | |||
33 | /* There are two tricks. First is the Basic Idea: | ||
34 | |||
35 | When the user types in a phrase, the phrase is first preprocessed to | ||
36 | determine how many of each letter appears. A bit field is then constructed | ||
37 | dynamically, such that each field is large enough to hold the next power | ||
38 | of two larger than the number of times the character appears. For example, | ||
39 | if the phrase is hello, world, the bit field would be | ||
40 | |||
41 | 00 00 00 000 000 00 00 | ||
42 | d e h l o r w | ||
43 | |||
44 | The phrase hello, world, itself would be encoded as | ||
45 | |||
46 | 01 01 01 011 010 01 01 | ||
47 | d e h l o r w | ||
48 | |||
49 | and the word hollow would be encoded as | ||
50 | |||
51 | 00 00 01 010 010 00 01 | ||
52 | d e h l o r w | ||
53 | |||
54 | The top bit of each field is set in a special value called the sign. | ||
55 | Here, the sign would be | ||
56 | |||
57 | 10 10 10 100 100 10 10 | ||
58 | d e h l o r w | ||
59 | |||
60 | |||
61 | The reason for packing the values into a bit field is that the operation | ||
62 | of subtracting out the letters of a word from the current phrase can be | ||
63 | carried out in parallel. for example, subtracting the word hello from | ||
64 | the phrase hello, world, is merely | ||
65 | |||
66 | d e h l o r w | ||
67 | 01 01 01 011 010 01 01 (dehllloorw) | ||
68 | - 00 00 01 010 010 00 01 (hlloow) | ||
69 | ======================== | ||
70 | 01 01 00 001 000 01 00 (delr) | ||
71 | |||
72 | Since none of the sign bits is set, the word fits, and we can continue. | ||
73 | Suppose the next word we tried was hood. | ||
74 | |||
75 | d e h l o r w | ||
76 | 01 01 00 001 000 01 00 (delr) | ||
77 | - 01 00 01 000 010 00 00 (hood) | ||
78 | ======================== | ||
79 | 00 00 11 000 110 01 00 | ||
80 | ^ ^ | ||
81 | A sign bit is set. (Two, actually.) This means that hood does not | ||
82 | fit in delr, so we skip it and try another word. (Observe that | ||
83 | when a sign bit becomes set, it screws up the values for the letters to | ||
84 | the left of that bit, but that's not important.) | ||
85 | |||
86 | The inner loop of an anagram program is testing to see if a | ||
87 | word fits in the collection of untried letters. Traditional methods | ||
88 | keep an array of 26 integers, which are then compared in turn. This | ||
89 | means that there are 26 comparisons per word. | ||
90 | |||
91 | This method reduces the number of comparisons to MAX_QUAD, typically 2. | ||
92 | Instead of looping through an array, we merely perform the indicated | ||
93 | subtraction and test if any of the sign bits is set. | ||
94 | */ | ||
95 | |||
96 | /* The nuts and bolts: | ||
97 | |||
98 | The dictionary is loaded and preprocessed. The preprocessed dictionary | ||
99 | is a concatenation of copies of the structure: | ||
100 | |||
101 | struct dictword { | ||
102 | char bStructureSize; -- size of this structure | ||
103 | char cLetters; -- number of letters in the word | ||
104 | char achWord[]; -- the word itself (0-terminated) | ||
105 | } | ||
106 | |||
107 | Since this is a variable-sized structure, we keep its size in the structure | ||
108 | itself for rapid stepping through the table. | ||
109 | |||
110 | When a phrase is typed in, it is first preprocessed as described in the | ||
111 | Basic Idea. We then go through the dictionary, testing each word. If | ||
112 | the word fits in our phrase, we build the bit field for its frequency | ||
113 | table and add it to the list of candidates. | ||
114 | */ | ||
115 | |||
116 | /* | ||
117 | The Second Trick: | ||
118 | |||
119 | Before diving into our anagram search, we then tabulate how many times | ||
120 | each letter appears in our list of candidates, and sort the table, with | ||
121 | the rarest letter first. | ||
122 | |||
123 | We then do our anagram search. | ||
124 | |||
125 | Like most anagram programs, this program does a depth-first search. | ||
126 | Although most anagram programs do some sort of heuristics to decide what | ||
127 | order to place words in the list_of_candidates, the search itself proceeds | ||
128 | according to a greedy algorithm. That is, once you find a word that fits, | ||
129 | subtract it and recurse. | ||
130 | |||
131 | This anagram program exercises some restraint and does not march down | ||
132 | every branch that shows itself. Instead, it only goes down branches | ||
133 | that use the rarest unused letter. This helps to find dead ends faster. | ||
134 | |||
135 | FindAnagram(unused_letters, list_of_candidates) { | ||
136 | l = the rarest letter as yet unused | ||
137 | For word in list_of_candidates { | ||
138 | if word does not fit in unused_letters, go on to the next word. | ||
139 | if word does not contain l, defer. | ||
140 | FindAnagram(unused_letters - word, list_of_candidates[word,...]) | ||
141 | } | ||
142 | } | ||
143 | |||
144 | |||
145 | The heuristic of the Second Trick can probably be improved. I invite | ||
146 | anyone willing to improve it to do so. | ||
147 | */ | ||
148 | |||
149 | /* Before compiling, make sure Quad and MASK_BITS are set properly. For best | ||
150 | results, make Quad the largest integer size supported on your machine. | ||
151 | So if your machine has long longs, make Quad an unsigned long long. | ||
152 | (I called it Quad because on most machines, the largest integer size | ||
153 | supported is a four-byte unsigned long.) | ||
154 | |||
155 | If you need to be able to anagram larger phrases, increase MAX_QUADS. | ||
156 | If you increase it beyond 4, you'll have to add a few more loop unrolling | ||
157 | steps to FindAnagram. | ||
158 | */ | ||
159 | |||
160 | #include "../extra.h" | ||
161 | #include "anagram_ctype.h" | ||
162 | #include "anagram_stdlib.h" | ||
163 | #include "anagram_strings.h" | ||
164 | |||
165 | #include "anagram_compare.h" | ||
166 | |||
167 | |||
168 | /* | ||
169 | Defines | ||
170 | */ | ||
171 | |||
172 | #define anagram_DICTWORDS 2279 | ||
173 | #define anagram_MASK_BITS 32 /* number of bits in a Quad */ | ||
174 | #define anagram_MAX_QUADS 2 /* controls largest phrase */ | ||
175 | #define anagram_MAXCAND 100 /* candidates */ | ||
176 | #define anagram_MAXSOL 51 /* words in the solution */ | ||
177 | #define anagram_ALPHABET 26 /* letters in the alphabet */ | ||
178 | |||
179 | #define anagram_OneStep( i ) \ | ||
180 | if ( ( aqNext[ i ] = pqMask[ i ] - pw->aqMask[ i ] ) & anagram_aqMainSign[ i ] ) { \ | ||
181 | ppwStart ++; \ | ||
182 | continue; \ | ||
183 | } | ||
184 | |||
185 | |||
186 | /* | ||
187 | Type definitions | ||
188 | */ | ||
189 | |||
190 | typedef unsigned int anagram_Quad; /* for building our bit mask */ | ||
191 | |||
192 | /* A Word remembers the information about a candidate word. */ | ||
193 | typedef struct { | ||
194 | char *pchWord; /* the word itself */ | ||
195 | anagram_Quad aqMask[ anagram_MAX_QUADS ]; /* the word's mask */ | ||
196 | unsigned cchLength; /* letters in the word */ | ||
197 | char padding[4]; | ||
198 | } anagram_Word; | ||
199 | typedef anagram_Word *anagram_PWord; | ||
200 | typedef anagram_Word **anagram_PPWord; | ||
201 | |||
202 | /* A Letter remembers information about each letter in the phrase to | ||
203 | be anagrammed. */ | ||
204 | typedef struct { | ||
205 | unsigned uFrequency; /* how many times it appears */ | ||
206 | unsigned uShift; /* how to mask */ | ||
207 | unsigned uBits; /* the bit mask itself */ | ||
208 | unsigned iq; /* which Quad to inspect? */ | ||
209 | } anagram_Letter; | ||
210 | typedef anagram_Letter *anagram_PLetter; | ||
211 | |||
212 | |||
213 | /* | ||
214 | Forward declaration of functions | ||
215 | */ | ||
216 | |||
217 | void anagram_init( void ); | ||
218 | void anagram_main( void ); | ||
219 | int anagram_return( void ); | ||
220 | int anagram_ch2i( int ch ); | ||
221 | void anagram_AddWords( void ); | ||
222 | void anagram_BuildMask( char const *pchPhrase ); | ||
223 | void anagram_BuildWord( char *pchWord ); | ||
224 | void anagram_DumpWords( void ); | ||
225 | void anagram_FindAnagram( anagram_Quad *pqMask, | ||
226 | anagram_PPWord ppwStart, | ||
227 | int iLetter ); | ||
228 | anagram_PWord anagram_NewWord( void ); | ||
229 | anagram_PWord anagram_NextWord( void ); | ||
230 | void anagram_ReadDict( void ); | ||
231 | void anagram_Reset( void ); | ||
232 | void anagram_SortCandidates( void ); | ||
233 | |||
234 | |||
235 | /* | ||
236 | Declaration of global variables | ||
237 | */ | ||
238 | |||
239 | extern char const *anagram_achPhrase[ 3 ]; | ||
240 | extern char const *anagram_dictionary[ anagram_DICTWORDS ]; | ||
241 | |||
242 | /* candidates we've found so far */ | ||
243 | static anagram_PWord anagram_apwCand[ anagram_MAXCAND ]; | ||
244 | /* how many of them? */ | ||
245 | static unsigned anagram_cpwCand; | ||
246 | |||
247 | /* statistics on the current phrase */ | ||
248 | static anagram_Letter anagram_alPhrase[ anagram_ALPHABET ]; | ||
249 | |||
250 | /* number of letters in phrase */ | ||
251 | static int anagram_cchPhraseLength; | ||
252 | |||
253 | /* the bit field for the full phrase */ | ||
254 | static anagram_Quad anagram_aqMainMask[ anagram_MAX_QUADS ]; | ||
255 | /* where the sign bits are */ | ||
256 | static anagram_Quad anagram_aqMainSign[ anagram_MAX_QUADS ]; | ||
257 | |||
258 | static const int anagram_cchMinLength = 3; | ||
259 | |||
260 | /* auGlobalFrequency counts the number of times each letter appears, | ||
261 | summed over all candidate words. This is used to decide which letter | ||
262 | to attack first. */ | ||
263 | static unsigned anagram_auGlobalFrequency[ anagram_ALPHABET ]; | ||
264 | static int anagram_achByFrequency[ anagram_ALPHABET ]; /* for sorting */ | ||
265 | |||
266 | /* the dictionary is read here */ | ||
267 | static char *anagram_pchDictionary; | ||
268 | |||
269 | /* the answers */ | ||
270 | static anagram_PWord anagram_apwSol[ anagram_MAXSOL ]; | ||
271 | static int anagram_cpwLast; | ||
272 | |||
273 | /* buffer to write an answer */ | ||
274 | static char anagram_buffer[30]; | ||
275 | |||
276 | /* | ||
277 | Initialization- and return-value-related functions | ||
278 | */ | ||
279 | |||
280 | /* ReadDict -- read the dictionary file into memory and preprocess it | ||
281 | |||
282 | A word of length cch in the dictionary is encoded as follows: | ||
283 | |||
284 | byte 0 = cch + 3 | ||
285 | byte 1 = number of letters in the word | ||
286 | byte 2... = the word itself, null-terminated | ||
287 | |||
288 | Observe that cch+3 is the length of the total encoding. These | ||
289 | byte streams are concatenated, and terminated with a 0. | ||
290 | */ | ||
291 | void anagram_ReadDict( void ) | ||
292 | { | ||
293 | char *pch; | ||
294 | char *pchBase; | ||
295 | unsigned len; | ||
296 | unsigned cWords = 0; | ||
297 | unsigned cLetters; | ||
298 | int i; | ||
299 | volatile char bitmask = 0; | ||
300 | |||
301 | len = 0; | ||
302 | _Pragma( "loopbound min 2279 max 2279" ) | ||
303 | for ( i = 0; i < anagram_DICTWORDS; i ++ ) { | ||
304 | unsigned strlen = 0; | ||
305 | _Pragma( "loopbound min 1 max 5" ) | ||
306 | while ( anagram_dictionary[ i ][ strlen ] != 0 ) | ||
307 | strlen ++; | ||
308 | len += strlen + 2; | ||
309 | } | ||
310 | |||
311 | pchBase = anagram_pchDictionary = ( char * )anagram_malloc( len ); | ||
312 | |||
313 | _Pragma( "loopbound min 2279 max 2279" ) | ||
314 | for ( i = 0; i < anagram_DICTWORDS; i ++ ) { | ||
315 | int index = 0; | ||
316 | pch = pchBase + 2; /* reserve for length */ | ||
317 | cLetters = 0; | ||
318 | |||
319 | _Pragma( "loopbound min 1 max 5" ) | ||
320 | while ( anagram_dictionary[ i ][ index ] != '\0' ) { | ||
321 | if ( anagram_isalpha( anagram_dictionary[ i ][ index ] ) ) | ||
322 | cLetters ++; | ||
323 | *pch ++ = anagram_dictionary[ i ][ index ]; | ||
324 | index ++; | ||
325 | *( pch - 1 ) ^= bitmask; | ||
326 | } | ||
327 | *pch ++ = '\0'; | ||
328 | *pchBase = ( char )( pch - pchBase ); | ||
329 | pchBase[ 1 ] = ( char )cLetters; | ||
330 | pchBase = pch; | ||
331 | cWords ++; | ||
332 | } | ||
333 | |||
334 | *pchBase ++ = 0; | ||
335 | } | ||
336 | |||
337 | |||
338 | void anagram_init( void ) | ||
339 | { | ||
340 | anagram_ReadDict(); | ||
341 | } | ||
342 | |||
343 | |||
344 | int anagram_return( void ) | ||
345 | { | ||
346 | int i; | ||
347 | char const *answer = "duke rip amy"; | ||
348 | |||
349 | for ( i = 0; i < 12; i++ ) | ||
350 | if ( answer[ i ] != anagram_buffer[ i ] ) | ||
351 | return 1; | ||
352 | |||
353 | return 0; | ||
354 | } | ||
355 | |||
356 | |||
357 | /* | ||
358 | Core benchmark functions | ||
359 | */ | ||
360 | |||
361 | /* convert letter to index */ | ||
362 | int anagram_ch2i( int ch ) | ||
363 | { | ||
364 | return ch - 'a'; | ||
365 | } | ||
366 | |||
367 | |||
368 | int anagram_CompareFrequency( char *pch1, char *pch2 ) | ||
369 | { | ||
370 | return anagram_auGlobalFrequency[ ( (int) *pch1 ) ] < | ||
371 | anagram_auGlobalFrequency[ ( (int) *pch2 ) ] | ||
372 | ? -1 : | ||
373 | anagram_auGlobalFrequency[ ( (int) *pch1 ) ] == | ||
374 | anagram_auGlobalFrequency[ ( (int) *pch2 ) ] | ||
375 | ? 0 : 1; | ||
376 | } | ||
377 | |||
378 | |||
379 | void anagram_Reset( void ) | ||
380 | { | ||
381 | anagram_bzero( ( char * )anagram_alPhrase, | ||
382 | sizeof( anagram_Letter ) * anagram_ALPHABET ); | ||
383 | anagram_bzero( ( char * )anagram_aqMainMask, | ||
384 | sizeof( anagram_Quad ) * anagram_MAX_QUADS ); | ||
385 | anagram_bzero( ( char * )anagram_aqMainSign, | ||
386 | sizeof( anagram_Quad ) * anagram_MAX_QUADS ); | ||
387 | anagram_bzero( ( char * )anagram_auGlobalFrequency, | ||
388 | sizeof( unsigned ) * anagram_ALPHABET ); | ||
389 | anagram_bzero( ( char * )anagram_achByFrequency, | ||
390 | sizeof( int ) * anagram_ALPHABET ); | ||
391 | anagram_bzero( ( char * )anagram_apwCand, | ||
392 | sizeof( anagram_PWord ) * anagram_MAXCAND ); | ||
393 | anagram_cchPhraseLength = 0; | ||
394 | anagram_cpwCand = 0; | ||
395 | } | ||
396 | |||
397 | |||
398 | void anagram_BuildMask( char const *pchPhrase ) | ||
399 | { | ||
400 | int i; | ||
401 | int ch; | ||
402 | unsigned iq; /* which Quad? */ | ||
403 | unsigned int cbtUsed; /* bits used in the current Quad */ | ||
404 | unsigned int cbtNeed; /* bits needed for current letter */ | ||
405 | anagram_Quad qNeed; /* used to build the mask */ | ||
406 | |||
407 | /* Tabulate letter frequencies in the phrase */ | ||
408 | anagram_cchPhraseLength = 0; | ||
409 | _Pragma( "loopbound min 11 max 12" ) | ||
410 | while ( ( ch = *pchPhrase ++ ) != '\0' ) { | ||
411 | if ( anagram_isalpha( ch ) ) { | ||
412 | ch = anagram_tolower( ch ); | ||
413 | anagram_alPhrase[ anagram_ch2i( ch ) ].uFrequency ++; | ||
414 | anagram_cchPhraseLength ++; | ||
415 | } | ||
416 | } | ||
417 | |||
418 | /* Build masks */ | ||
419 | iq = 0; /* which quad being used */ | ||
420 | cbtUsed = 0; /* bits used so far */ | ||
421 | |||
422 | _Pragma( "loopbound min 26 max 26" ) | ||
423 | for ( i = 0; i < anagram_ALPHABET; i ++ ) { | ||
424 | if ( anagram_alPhrase[ i ].uFrequency == 0 ) { | ||
425 | anagram_auGlobalFrequency[ i ] = ~0u; /* to make it sort last */ | ||
426 | } else { | ||
427 | anagram_auGlobalFrequency[ i ] = 0u; | ||
428 | _Pragma( "loopbound min 1 max 2" ) | ||
429 | for ( cbtNeed = 1, qNeed = 1; | ||
430 | anagram_alPhrase[ i ].uFrequency >= qNeed; | ||
431 | cbtNeed ++, qNeed <<= 1 ) | ||
432 | ; | ||
433 | if ( cbtUsed + cbtNeed > anagram_MASK_BITS ) | ||
434 | cbtUsed = 0; | ||
435 | anagram_alPhrase[ i ].uBits = qNeed - 1; | ||
436 | if ( cbtUsed ) | ||
437 | qNeed <<= cbtUsed; | ||
438 | anagram_aqMainSign[ iq ] |= qNeed; | ||
439 | anagram_aqMainMask[ iq ] |= | ||
440 | ( anagram_Quad )anagram_alPhrase[ i ].uFrequency << cbtUsed; | ||
441 | anagram_alPhrase[ i ].uShift = cbtUsed; | ||
442 | anagram_alPhrase[ i ].iq = iq; | ||
443 | cbtUsed += cbtNeed; | ||
444 | } | ||
445 | } | ||
446 | } | ||
447 | |||
448 | |||
449 | anagram_PWord anagram_NewWord( void ) | ||
450 | { | ||
451 | anagram_PWord pw; | ||
452 | |||
453 | pw = ( anagram_Word * )anagram_malloc( sizeof( anagram_Word ) ); | ||
454 | return pw; | ||
455 | } | ||
456 | |||
457 | |||
458 | /* NextWord -- get another candidate entry, creating if necessary */ | ||
459 | anagram_PWord anagram_NextWord( void ) | ||
460 | { | ||
461 | anagram_PWord pw; | ||
462 | pw = anagram_apwCand[ anagram_cpwCand ++ ]; | ||
463 | if ( pw != 0 ) | ||
464 | return pw; | ||
465 | anagram_apwCand[ anagram_cpwCand - 1 ] = anagram_NewWord(); | ||
466 | return anagram_apwCand[ anagram_cpwCand - 1 ]; | ||
467 | } | ||
468 | |||
469 | |||
470 | /* BuildWord -- build a Word structure from an ASCII word | ||
471 | If the word does not fit, then do nothing. */ | ||
472 | void anagram_BuildWord( char *pchWord ) | ||
473 | { | ||
474 | unsigned char cchFrequency[ anagram_ALPHABET ]; | ||
475 | int i; | ||
476 | char *pch = pchWord; | ||
477 | anagram_PWord pw; | ||
478 | unsigned int cchLength = 0; | ||
479 | |||
480 | anagram_bzero( ( char * )cchFrequency, | ||
481 | sizeof( unsigned char ) * anagram_ALPHABET ); | ||
482 | |||
483 | /* Build frequency table */ | ||
484 | _Pragma( "loopbound min 3 max 636" ) | ||
485 | while ( ( i = *pch ++ ) != '\0' ) { | ||
486 | if ( !anagram_isalpha( i ) ) | ||
487 | continue; | ||
488 | i = anagram_ch2i( anagram_tolower( i ) ); | ||
489 | if ( ++ cchFrequency[ i ] > anagram_alPhrase[ i ].uFrequency ) | ||
490 | return ; | ||
491 | ++ cchLength; | ||
492 | } | ||
493 | |||
494 | /* Update global count */ | ||
495 | _Pragma( "loopbound min 26 max 26" ) | ||
496 | for ( i = 0; i < anagram_ALPHABET; i ++ ) | ||
497 | anagram_auGlobalFrequency[ i ] += cchFrequency[ i ]; | ||
498 | |||
499 | /* Create a Word structure and fill it in, including building the | ||
500 | bitfield of frequencies. */ | ||
501 | pw = anagram_NextWord(); | ||
502 | anagram_bzero( ( char * )( pw->aqMask ), | ||
503 | sizeof( anagram_Quad ) * anagram_MAX_QUADS ); | ||
504 | |||
505 | pw->pchWord = pchWord; | ||
506 | pw->cchLength = cchLength; | ||
507 | _Pragma( "loopbound min 26 max 26" ) | ||
508 | for ( i = 0; i < anagram_ALPHABET; i ++ ) { | ||
509 | pw->aqMask[ anagram_alPhrase[i].iq ] |= | ||
510 | ( anagram_Quad )cchFrequency[ i ] << anagram_alPhrase[ i ].uShift; | ||
511 | } | ||
512 | } | ||
513 | |||
514 | |||
515 | /* AddWords -- build the list of candidates */ | ||
516 | void anagram_AddWords( void ) | ||
517 | { | ||
518 | char *pch = anagram_pchDictionary; /* walk through the dictionary */ | ||
519 | |||
520 | anagram_cpwCand = 0; | ||
521 | |||
522 | _Pragma( "loopbound min 1967 max 1967" ) | ||
523 | while ( *pch ) { | ||
524 | if ( ( pch[ 1 ] >= anagram_cchMinLength && | ||
525 | pch[ 1 ] + anagram_cchMinLength <= anagram_cchPhraseLength ) | ||
526 | || pch[ 1 ] == anagram_cchPhraseLength ) | ||
527 | anagram_BuildWord( pch + 2 ); | ||
528 | pch += *pch; | ||
529 | } | ||
530 | } | ||
531 | |||
532 | |||
533 | void anagram_DumpWords( void ) | ||
534 | { | ||
535 | int i, j; | ||
536 | int offset = 0; | ||
537 | _Pragma( "loopbound min 3 max 3" ) | ||
538 | for ( i = 0; i < anagram_cpwLast; i ++ ) { | ||
539 | _Pragma( "loopbound min 3 max 5" ) | ||
540 | for ( j = 0; anagram_apwSol[ i ]->pchWord[ j ] != '\0'; j ++ ) | ||
541 | anagram_buffer[ offset + j ] = anagram_apwSol[ i ]->pchWord[ j ]; | ||
542 | offset += j; | ||
543 | |||
544 | anagram_buffer[ offset ++ ] = ' '; | ||
545 | } | ||
546 | anagram_buffer[ offset ++ ] = '\0'; | ||
547 | } | ||
548 | |||
549 | |||
550 | void anagram_FindAnagram( anagram_Quad *pqMask, anagram_PPWord ppwStart, | ||
551 | int iLetter ) | ||
552 | { | ||
553 | anagram_Quad aqNext[ anagram_MAX_QUADS ]; | ||
554 | register anagram_PWord pw; | ||
555 | anagram_Quad qMask; | ||
556 | unsigned iq; | ||
557 | anagram_PPWord ppwEnd = &anagram_apwCand[ 0 ]; | ||
558 | ppwEnd += anagram_cpwCand; | ||
559 | |||
560 | _Pragma( "loopbound min 1 max 7" ) | ||
561 | while ( 1 ) { | ||
562 | iq = anagram_alPhrase[ anagram_achByFrequency[iLetter] ].iq; | ||
563 | qMask = anagram_alPhrase[ anagram_achByFrequency[iLetter] ].uBits << | ||
564 | anagram_alPhrase[ anagram_achByFrequency[iLetter] ].uShift; | ||
565 | if ( pqMask[ iq ] & qMask ) | ||
566 | break; | ||
567 | iLetter ++; | ||
568 | } | ||
569 | |||
570 | _Pragma( "loopbound min 0 max 114" ) | ||
571 | while ( ppwStart < ppwEnd ) { | ||
572 | pw = *ppwStart; | ||
573 | |||
574 | #if anagram_MAX_QUADS > 0 | ||
575 | anagram_OneStep( 0 ); | ||
576 | #endif | ||
577 | |||
578 | #if anagram_MAX_QUADS > 1 | ||
579 | anagram_OneStep( 1 ); | ||
580 | #endif | ||
581 | |||
582 | #if anagram_MAX_QUADS > 2 | ||
583 | anagram_OneStep( 2 ); | ||
584 | #endif | ||
585 | |||
586 | #if anagram_MAX_QUADS > 3 | ||
587 | anagram_OneStep( 3 ); | ||
588 | #endif | ||
589 | |||
590 | #if anagram_MAX_QUADS > 4 | ||
591 | @@"Add more unrolling steps here, please."@@ | ||
592 | #endif | ||
593 | |||
594 | /* If the pivot letter isn't present, defer this word until later */ | ||
595 | if ( ( pw->aqMask[ iq ] & qMask ) == 0 ) { | ||
596 | *ppwStart = *( -- ppwEnd ); | ||
597 | *ppwEnd = pw; | ||
598 | continue; | ||
599 | } | ||
600 | |||
601 | /* If we get here, this means the word fits. */ | ||
602 | anagram_apwSol[ anagram_cpwLast ++ ] = pw; | ||
603 | if ( anagram_cchPhraseLength -= pw->cchLength ) { /* recurse */ | ||
604 | /* The recursive call scrambles the tail, so we have to be | ||
605 | pessimistic. */ | ||
606 | ppwEnd = &anagram_apwCand[ 0 ]; | ||
607 | ppwEnd += anagram_cpwCand; | ||
608 | anagram_FindAnagram( &aqNext[ 0 ], ppwStart, iLetter ); | ||
609 | } else { /* found one */ | ||
610 | anagram_DumpWords(); | ||
611 | } | ||
612 | anagram_cchPhraseLength += pw->cchLength; | ||
613 | -- anagram_cpwLast; | ||
614 | ppwStart ++; | ||
615 | continue; | ||
616 | } | ||
617 | } | ||
618 | |||
619 | |||
620 | void anagram_SortCandidates( void ) | ||
621 | { | ||
622 | int i; | ||
623 | |||
624 | /* Sort the letters by frequency */ | ||
625 | _Pragma( "loopbound min 26 max 26" ) | ||
626 | for ( i = 0; i < anagram_ALPHABET; i ++ ) | ||
627 | anagram_achByFrequency[ i ] = i; | ||
628 | anagram_qsort( anagram_achByFrequency, anagram_ALPHABET, sizeof( int ) ); | ||
629 | } | ||
630 | |||
631 | |||
632 | void _Pragma( "entrypoint" ) anagram_main( void ) | ||
633 | { | ||
634 | int i; | ||
635 | |||
636 | _Pragma( "loopbound min 3 max 3" ) | ||
637 | for ( i = 0; i < 3; i ++ ) { | ||
638 | anagram_Reset(); | ||
639 | anagram_BuildMask( anagram_achPhrase[ i ] ); | ||
640 | anagram_AddWords(); | ||
641 | if ( anagram_cpwCand == 0 || anagram_cchPhraseLength == 0 ) | ||
642 | continue; | ||
643 | |||
644 | anagram_cpwLast = 0; | ||
645 | anagram_SortCandidates(); | ||
646 | _Pragma( "marker call_find" ) | ||
647 | anagram_FindAnagram( anagram_aqMainMask, anagram_apwCand, 0 ); | ||
648 | _Pragma( "flowrestriction 1*anagram_FindAnagram <= 51*call_find" ) | ||
649 | } | ||
650 | } | ||
651 | |||
652 | |||
653 | /* | ||
654 | Main function | ||
655 | */ | ||
656 | |||
657 | int main(int argc, char **argv) | ||
658 | { | ||
659 | SET_UP | ||
660 | //int jobsComplete; | ||
661 | //int maxJobs=100; | ||
662 | //for(jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
663 | START_LOOP | ||
664 | anagram_init(); | ||
665 | anagram_main(); | ||
666 | STOP_LOOP | ||
667 | //} | ||
668 | WRITE_TO_FILE | ||
669 | return anagram_return(); | ||
670 | } | ||
diff --git a/baseline/source/anagram/anagramTest.txt b/baseline/source/anagram/anagramTest.txt new file mode 100644 index 0000000..21d58d8 --- /dev/null +++ b/baseline/source/anagram/anagramTest.txt | |||
@@ -0,0 +1,100 @@ | |||
1 | anagram none 7 none 100 992260 anagramTest 0 none | ||
2 | anagram none 7 none 100 32657649 anagramTest 1 none | ||
3 | anagram none 7 none 100 50 anagramTest 2 none | ||
4 | anagram none 7 none 100 140726366772064 anagramTest 3 none | ||
5 | anagram none 7 none 100 140332637564920 anagramTest 4 none | ||
6 | anagram none 7 none 100 140332637511040 anagramTest 5 none | ||
7 | anagram none 7 none 100 140726366771844 anagramTest 6 none | ||
8 | anagram none 7 none 100 140726366772048 anagramTest 7 none | ||
9 | anagram none 7 none 100 140332643575048 anagramTest 8 none | ||
10 | anagram none 7 none 100 140724603453440 anagramTest 9 none | ||
11 | anagram none 7 none 100 3 anagramTest 10 none | ||
12 | anagram none 7 none 100 140724603453440 anagramTest 11 none | ||
13 | anagram none 7 none 100 3 anagramTest 12 none | ||
14 | anagram none 7 none 100 0 anagramTest 13 none | ||
15 | anagram none 7 none 100 0 anagramTest 14 none | ||
16 | anagram none 7 none 100 140332643726528 anagramTest 15 none | ||
17 | anagram none 7 none 100 140726366772208 anagramTest 16 none | ||
18 | anagram none 7 none 100 140332643575120 anagramTest 17 none | ||
19 | anagram none 7 none 100 0 anagramTest 18 none | ||
20 | anagram none 7 none 100 140332643725672 anagramTest 19 none | ||
21 | anagram none 7 none 100 140726366772248 anagramTest 20 none | ||
22 | anagram none 7 none 100 140332641512223 anagramTest 21 none | ||
23 | anagram none 7 none 100 1 anagramTest 22 none | ||
24 | anagram none 7 none 100 140332643575120 anagramTest 23 none | ||
25 | anagram none 7 none 100 1 anagramTest 24 none | ||
26 | anagram none 7 none 100 0 anagramTest 25 none | ||
27 | anagram none 7 none 100 1 anagramTest 26 none | ||
28 | anagram none 7 none 100 140332643725672 anagramTest 27 none | ||
29 | anagram none 7 none 100 1 anagramTest 28 none | ||
30 | anagram none 7 none 100 140332643723736 anagramTest 29 none | ||
31 | anagram none 7 none 100 0 anagramTest 30 none | ||
32 | anagram none 7 none 100 0 anagramTest 31 none | ||
33 | anagram none 7 none 100 140332643726528 anagramTest 32 none | ||
34 | anagram none 7 none 100 140726366772064 anagramTest 33 none | ||
35 | anagram none 7 none 100 7472231616 anagramTest 34 none | ||
36 | anagram none 7 none 100 140726366772048 anagramTest 35 none | ||
37 | anagram none 7 none 100 2090089586 anagramTest 36 none | ||
38 | anagram none 7 none 100 4195443 anagramTest 37 none | ||
39 | anagram none 7 none 100 4294967295 anagramTest 38 none | ||
40 | anagram none 7 none 100 140332641470296 anagramTest 39 none | ||
41 | anagram none 7 none 100 140332637550808 anagramTest 40 none | ||
42 | anagram none 7 none 100 140332643573760 anagramTest 41 none | ||
43 | anagram none 7 none 100 140332637522848 anagramTest 42 none | ||
44 | anagram none 7 none 100 2118 anagramTest 43 none | ||
45 | anagram none 7 none 100 140332643573760 anagramTest 44 none | ||
46 | anagram none 7 none 100 140332637511040 anagramTest 45 none | ||
47 | anagram none 7 none 100 140332637564920 anagramTest 46 none | ||
48 | anagram none 7 none 100 140332641510987 anagramTest 47 none | ||
49 | anagram none 7 none 100 2118 anagramTest 48 none | ||
50 | anagram none 7 none 100 140332637564920 anagramTest 49 none | ||
51 | anagram none 7 none 100 140332643573760 anagramTest 50 none | ||
52 | anagram none 7 none 100 140726366772312 anagramTest 51 none | ||
53 | anagram none 7 none 100 140726366772308 anagramTest 52 none | ||
54 | anagram none 7 none 100 6316152 anagramTest 53 none | ||
55 | anagram none 7 none 100 4196240 anagramTest 54 none | ||
56 | anagram none 7 none 100 140726366773040 anagramTest 55 none | ||
57 | anagram none 7 none 100 0 anagramTest 56 none | ||
58 | anagram none 7 none 100 0 anagramTest 57 none | ||
59 | anagram none 7 none 100 140726366772816 anagramTest 58 none | ||
60 | anagram none 7 none 100 140332641532614 anagramTest 59 none | ||
61 | anagram none 7 none 100 1 anagramTest 60 none | ||
62 | anagram none 7 none 100 0 anagramTest 61 none | ||
63 | anagram none 7 none 100 140332637564920 anagramTest 62 none | ||
64 | anagram none 7 none 100 140332637550808 anagramTest 63 none | ||
65 | anagram none 7 none 100 140726366772528 anagramTest 64 none | ||
66 | anagram none 7 none 100 140332641566447 anagramTest 65 none | ||
67 | anagram none 7 none 100 65280 anagramTest 66 none | ||
68 | anagram none 7 none 100 0 anagramTest 67 none | ||
69 | anagram none 7 none 100 3399988123389603631 anagramTest 68 none | ||
70 | anagram none 7 none 100 3399988123389603631 anagramTest 69 none | ||
71 | anagram none 7 none 100 0 anagramTest 70 none | ||
72 | anagram none 7 none 100 0 anagramTest 71 none | ||
73 | anagram none 7 none 100 -72057594037927936 anagramTest 72 none | ||
74 | anagram none 7 none 100 -72057594037927936 anagramTest 73 none | ||
75 | anagram none 7 none 100 6872211992017990772 anagramTest 74 none | ||
76 | anagram none 7 none 100 8387223540636804214 anagramTest 75 none | ||
77 | anagram none 7 none 100 0 anagramTest 76 none | ||
78 | anagram none 7 none 100 0 anagramTest 77 none | ||
79 | anagram none 7 none 100 0 anagramTest 78 none | ||
80 | anagram none 7 none 100 0 anagramTest 79 none | ||
81 | anagram none 7 none 100 0 anagramTest 80 none | ||
82 | anagram none 7 none 100 0 anagramTest 81 none | ||
83 | anagram none 7 none 100 1 anagramTest 82 none | ||
84 | anagram none 7 none 100 0 anagramTest 83 none | ||
85 | anagram none 7 none 100 1 anagramTest 84 none | ||
86 | anagram none 7 none 100 140332643725672 anagramTest 85 none | ||
87 | anagram none 7 none 100 0 anagramTest 86 none | ||
88 | anagram none 7 none 100 140332643727104 anagramTest 87 none | ||
89 | anagram none 7 none 100 10 anagramTest 88 none | ||
90 | anagram none 7 none 100 -1 anagramTest 89 none | ||
91 | anagram none 7 none 100 85603611 anagramTest 90 none | ||
92 | anagram none 7 none 100 140726366778684 anagramTest 91 none | ||
93 | anagram none 7 none 100 140726366773128 anagramTest 92 none | ||
94 | anagram none 7 none 100 140726366772560 anagramTest 93 none | ||
95 | anagram none 7 none 100 140726366772816 anagramTest 94 none | ||
96 | anagram none 7 none 100 4196240 anagramTest 95 none | ||
97 | anagram none 7 none 100 140726366773040 anagramTest 96 none | ||
98 | anagram none 7 none 100 0 anagramTest 97 none | ||
99 | anagram none 7 none 100 0 anagramTest 98 none | ||
100 | anagram none 7 none 100 140332637720208 anagramTest 99 none | ||
diff --git a/baseline/source/anagram/anagram_compare.h b/baseline/source/anagram/anagram_compare.h new file mode 100644 index 0000000..31e869a --- /dev/null +++ b/baseline/source/anagram/anagram_compare.h | |||
@@ -0,0 +1,27 @@ | |||
1 | /* | ||
2 | |||
3 | This header is part of the TACLeBench benchmark suite. | ||
4 | Version 2.0 | ||
5 | |||
6 | Name: anagram_compare.h | ||
7 | |||
8 | Author: Raymond Chen | ||
9 | |||
10 | Function: This header contains the comparison functions used by anagram. | ||
11 | |||
12 | Source: unknown | ||
13 | |||
14 | Original name: anagram | ||
15 | |||
16 | Changes: See ChangeLog.txt | ||
17 | |||
18 | License: See anagram.c | ||
19 | |||
20 | */ | ||
21 | |||
22 | #ifndef ANAGRAM_COMPARE_H | ||
23 | #define ANAGRAM_COMPARE_H | ||
24 | |||
25 | int anagram_CompareFrequency( char *pch1, char *pch2 ); | ||
26 | |||
27 | #endif | ||
diff --git a/baseline/source/anagram/anagram_ctype.h b/baseline/source/anagram/anagram_ctype.h new file mode 100644 index 0000000..ebb8232 --- /dev/null +++ b/baseline/source/anagram/anagram_ctype.h | |||
@@ -0,0 +1,45 @@ | |||
1 | /* | ||
2 | |||
3 | This header is part of the TACLeBench benchmark suite. | ||
4 | Version 2.0 | ||
5 | |||
6 | Name: anagram_ctype.h | ||
7 | |||
8 | Author: Raymond Chen | ||
9 | |||
10 | Function: This header contains some C library functions used by anagram. | ||
11 | |||
12 | Source: unknown | ||
13 | |||
14 | Original name: anagram | ||
15 | |||
16 | Changes: See ChangeLog.txt | ||
17 | |||
18 | License: See anagram.c | ||
19 | |||
20 | */ | ||
21 | |||
22 | #ifndef ANAGRAM_CTYPE_H | ||
23 | #define ANAGRAM_CTYPE_H | ||
24 | |||
25 | int anagram_islower( int c ) | ||
26 | { | ||
27 | return 'a' <= c && c <= 'z'; | ||
28 | } | ||
29 | |||
30 | int anagram_isupper( int c ) | ||
31 | { | ||
32 | return 'A' <= c && c <= 'Z'; | ||
33 | } | ||
34 | |||
35 | int anagram_isalpha( int c ) | ||
36 | { | ||
37 | return anagram_isupper( c ) || anagram_islower( c ); | ||
38 | } | ||
39 | |||
40 | int anagram_tolower( int c ) | ||
41 | { | ||
42 | return anagram_isupper( c ) ? c + ( 'a' - 'A' ) : c; | ||
43 | } | ||
44 | |||
45 | #endif | ||
diff --git a/baseline/source/anagram/anagram_input.c b/baseline/source/anagram/anagram_input.c new file mode 100644 index 0000000..e3d5f71 --- /dev/null +++ b/baseline/source/anagram/anagram_input.c | |||
@@ -0,0 +1,2317 @@ | |||
1 | /* | ||
2 | |||
3 | This file is part of the TACLeBench benchmark suite. | ||
4 | Version 2.0 | ||
5 | |||
6 | Name: anagram_input.c | ||
7 | |||
8 | Author: Raymond Chen | ||
9 | |||
10 | Function: This file contains the input data used by anagram. | ||
11 | |||
12 | Source: anagram | ||
13 | |||
14 | Original name: anagram | ||
15 | |||
16 | Changes: See ChangeLog.txt | ||
17 | |||
18 | License: See anagram.c | ||
19 | |||
20 | */ | ||
21 | |||
22 | /* | ||
23 | Forward declaration of global variables | ||
24 | */ | ||
25 | |||
26 | extern char const *anagram_achPhrase[ 3 ]; | ||
27 | extern char const *anagram_dictionary[ 2279 ]; | ||
28 | |||
29 | |||
30 | /* | ||
31 | Definition of global variables | ||
32 | */ | ||
33 | char const *anagram_achPhrase[ 3 ] = { "todd austin", | ||
34 | "john alledy", | ||
35 | "mary updike" | ||
36 | }; | ||
37 | |||
38 | char const *anagram_dictionary[ 2279 ] = { "2nd", | ||
39 | "4th", | ||
40 | "8th", | ||
41 | "a", | ||
42 | "ABA", | ||
43 | "aback", | ||
44 | "abash", | ||
45 | "abbas", | ||
46 | "abbey", | ||
47 | "abed", | ||
48 | "abet", | ||
49 | "abort", | ||
50 | "abut", | ||
51 | "Accra", | ||
52 | "ACM", | ||
53 | "acorn", | ||
54 | "Acts", | ||
55 | "Ada", | ||
56 | "adapt", | ||
57 | "added", | ||
58 | "addle", | ||
59 | "Adele", | ||
60 | "Aden", | ||
61 | "admix", | ||
62 | "adore", | ||
63 | "adult", | ||
64 | "affix", | ||
65 | "afire", | ||
66 | "aft", | ||
67 | "agate", | ||
68 | "agave", | ||
69 | "Agee", | ||
70 | "agent", | ||
71 | "agile", | ||
72 | "Agnew", | ||
73 | "agone", | ||
74 | "ahoy", | ||
75 | "Aida", | ||
76 | "aim", | ||
77 | "Ainu", | ||
78 | "airy", | ||
79 | "Ajax", | ||
80 | "Alamo", | ||
81 | "alarm", | ||
82 | "alb", | ||
83 | "Alcoa", | ||
84 | "alder", | ||
85 | "Aleck", | ||
86 | "alert", | ||
87 | "algae", | ||
88 | "alia", | ||
89 | "alike", | ||
90 | "alive", | ||
91 | "allay", | ||
92 | "alley", | ||
93 | "Allis", | ||
94 | "allow", | ||
95 | "ally", | ||
96 | "Allyn", | ||
97 | "aloe", | ||
98 | "aloha", | ||
99 | "along", | ||
100 | "aloud", | ||
101 | "also", | ||
102 | "alter", | ||
103 | "Alton", | ||
104 | "Alva", | ||
105 | "amaze", | ||
106 | "amber", | ||
107 | "ami", | ||
108 | "amigo", | ||
109 | "amiss", | ||
110 | "Amman", | ||
111 | "Amoco", | ||
112 | "amok", | ||
113 | "Amos", | ||
114 | "ample", | ||
115 | "amra", | ||
116 | "amy", | ||
117 | "Andes", | ||
118 | "angel", | ||
119 | "Angie", | ||
120 | "angry", | ||
121 | "Angus", | ||
122 | "Anne", | ||
123 | "annex", | ||
124 | "annoy", | ||
125 | "annul", | ||
126 | "ante", | ||
127 | "any", | ||
128 | "apex", | ||
129 | "apple", | ||
130 | "apron", | ||
131 | "apt", | ||
132 | "arch", | ||
133 | "argue", | ||
134 | "Aries", | ||
135 | "arm", | ||
136 | "army", | ||
137 | "aroma", | ||
138 | "array", | ||
139 | "arrow", | ||
140 | "Artie", | ||
141 | "arty", | ||
142 | "arum", | ||
143 | "a's", | ||
144 | "ash", | ||
145 | "ashen", | ||
146 | "ashy", | ||
147 | "askew", | ||
148 | "assai", | ||
149 | "Assam", | ||
150 | "Astor", | ||
151 | "ate", | ||
152 | "atlas", | ||
153 | "atone", | ||
154 | "audit", | ||
155 | "Aug", | ||
156 | "augur", | ||
157 | "auk", | ||
158 | "aural", | ||
159 | "avid", | ||
160 | "avoid", | ||
161 | "avow", | ||
162 | "awash", | ||
163 | "awe", | ||
164 | "awn", | ||
165 | "awry", | ||
166 | "axe", | ||
167 | "axial", | ||
168 | "axis", | ||
169 | "axon", | ||
170 | "Ayers", | ||
171 | "Aztec", | ||
172 | "b", | ||
173 | "babe", | ||
174 | "Bach", | ||
175 | "bad", | ||
176 | "bait", | ||
177 | "baldy", | ||
178 | "balm", | ||
179 | "balsa", | ||
180 | "bam", | ||
181 | "ban", | ||
182 | "bane", | ||
183 | "banjo", | ||
184 | "barb", | ||
185 | "barn", | ||
186 | "baron", | ||
187 | "basal", | ||
188 | "Basel", | ||
189 | "basil", | ||
190 | "bassi", | ||
191 | "baste", | ||
192 | "batch", | ||
193 | "Bates", | ||
194 | "batik", | ||
195 | "Bator", | ||
196 | "bawd", | ||
197 | "bay", | ||
198 | "bayed", | ||
199 | "bayou", | ||
200 | "be", | ||
201 | "beak", | ||
202 | "bean", | ||
203 | "beard", | ||
204 | "beat", | ||
205 | "beck", | ||
206 | "Becky", | ||
207 | "bed", | ||
208 | "bedim", | ||
209 | "bee", | ||
210 | "beech", | ||
211 | "beep", | ||
212 | "beet", | ||
213 | "befit", | ||
214 | "beg", | ||
215 | "begin", | ||
216 | "beige", | ||
217 | "Bela", | ||
218 | "belch", | ||
219 | "belt", | ||
220 | "beman", | ||
221 | "bench", | ||
222 | "Benny", | ||
223 | "bent", | ||
224 | "Benz", | ||
225 | "berth", | ||
226 | "beset", | ||
227 | "bet", | ||
228 | "betel", | ||
229 | "Bette", | ||
230 | "bevy", | ||
231 | "Bible", | ||
232 | "bide", | ||
233 | "big", | ||
234 | "bile", | ||
235 | "bilk", | ||
236 | "binge", | ||
237 | "bit", | ||
238 | "bite", | ||
239 | "black", | ||
240 | "blanc", | ||
241 | "bland", | ||
242 | "blare", | ||
243 | "blat", | ||
244 | "blaze", | ||
245 | "bled", | ||
246 | "blest", | ||
247 | "blind", | ||
248 | "Blinn", | ||
249 | "bliss", | ||
250 | "blitz", | ||
251 | "blob", | ||
252 | "blond", | ||
253 | "blood", | ||
254 | "bloom", | ||
255 | "blot", | ||
256 | "blown", | ||
257 | "blue", | ||
258 | "bluff", | ||
259 | "Blum", | ||
260 | "blur", | ||
261 | "board", | ||
262 | "boat", | ||
263 | "bock", | ||
264 | "bog", | ||
265 | "bogy", | ||
266 | "boil", | ||
267 | "Boise", | ||
268 | "bomb", | ||
269 | "bon", | ||
270 | "bong", | ||
271 | "bonus", | ||
272 | "bonze", | ||
273 | "booby", | ||
274 | "book", | ||
275 | "booky", | ||
276 | "boon", | ||
277 | "booze", | ||
278 | "bore", | ||
279 | "Boris", | ||
280 | "boron", | ||
281 | "Bosch", | ||
282 | "bosom", | ||
283 | "bound", | ||
284 | "bourn", | ||
285 | "bowel", | ||
286 | "boy", | ||
287 | "Boyce", | ||
288 | "bract", | ||
289 | "Brady", | ||
290 | "brag", | ||
291 | "brake", | ||
292 | "brant", | ||
293 | "brass", | ||
294 | "Braun", | ||
295 | "bravo", | ||
296 | "bread", | ||
297 | "bream", | ||
298 | "breve", | ||
299 | "brew", | ||
300 | "briar", | ||
301 | "Brice", | ||
302 | "brief", | ||
303 | "bring", | ||
304 | "briny", | ||
305 | "broad", | ||
306 | "broth", | ||
307 | "brunt", | ||
308 | "BSTJ", | ||
309 | "bub", | ||
310 | "buck", | ||
311 | "Budd", | ||
312 | "buddy", | ||
313 | "Buick", | ||
314 | "built", | ||
315 | "bulge", | ||
316 | "bulky", | ||
317 | "bum", | ||
318 | "bump", | ||
319 | "bunch", | ||
320 | "bundy", | ||
321 | "bunk", | ||
322 | "Burch", | ||
323 | "burg", | ||
324 | "burl", | ||
325 | "Burma", | ||
326 | "burnt", | ||
327 | "Burr", | ||
328 | "bury", | ||
329 | "bush", | ||
330 | "bushy", | ||
331 | "bust", | ||
332 | "busy", | ||
333 | "butte", | ||
334 | "butyl", | ||
335 | "buyer", | ||
336 | "by", | ||
337 | "bylaw", | ||
338 | "Byrd", | ||
339 | "byte", | ||
340 | "cab", | ||
341 | "cable", | ||
342 | "cacao", | ||
343 | "cacti", | ||
344 | "Cairo", | ||
345 | "Caleb", | ||
346 | "call", | ||
347 | "calm", | ||
348 | "canal", | ||
349 | "canoe", | ||
350 | "canon", | ||
351 | "can't", | ||
352 | "cap", | ||
353 | "caper", | ||
354 | "capo", | ||
355 | "card", | ||
356 | "Carey", | ||
357 | "Carib", | ||
358 | "Carla", | ||
359 | "carol", | ||
360 | "carve", | ||
361 | "cash", | ||
362 | "caste", | ||
363 | "catch", | ||
364 | "cater", | ||
365 | "caulk", | ||
366 | "cause", | ||
367 | "CBS", | ||
368 | "cedar", | ||
369 | "cent", | ||
370 | "Cetus", | ||
371 | "Chad", | ||
372 | "chaff", | ||
373 | "chair", | ||
374 | "champ", | ||
375 | "char", | ||
376 | "chasm", | ||
377 | "chaw", | ||
378 | "cheat", | ||
379 | "cheer", | ||
380 | "chef", | ||
381 | "Chen", | ||
382 | "chew", | ||
383 | "chick", | ||
384 | "chief", | ||
385 | "Chile", | ||
386 | "chill", | ||
387 | "chine", | ||
388 | "chip", | ||
389 | "chock", | ||
390 | "choir", | ||
391 | "chomp", | ||
392 | "chose", | ||
393 | "Chris", | ||
394 | "chuff", | ||
395 | "chum", | ||
396 | "chump", | ||
397 | "CIA", | ||
398 | "cinch", | ||
399 | "cite", | ||
400 | "city", | ||
401 | "clad", | ||
402 | "clan", | ||
403 | "clank", | ||
404 | "Clara", | ||
405 | "Claus", | ||
406 | "claw", | ||
407 | "clean", | ||
408 | "cleat", | ||
409 | "clerk", | ||
410 | "clime", | ||
411 | "cling", | ||
412 | "clink", | ||
413 | "Clio", | ||
414 | "clod", | ||
415 | "clomp", | ||
416 | "cloth", | ||
417 | "clove", | ||
418 | "cluck", | ||
419 | "clump", | ||
420 | "clung", | ||
421 | "Clyde", | ||
422 | "cobra", | ||
423 | "coco", | ||
424 | "coda", | ||
425 | "Cody", | ||
426 | "Cohn", | ||
427 | "coin", | ||
428 | "col", | ||
429 | "Colby", | ||
430 | "coney", | ||
431 | "Congo", | ||
432 | "cony", | ||
433 | "cool", | ||
434 | "coon", | ||
435 | "copra", | ||
436 | "copy", | ||
437 | "Corey", | ||
438 | "corn", | ||
439 | "corps", | ||
440 | "cos", | ||
441 | "cosy", | ||
442 | "couch", | ||
443 | "cough", | ||
444 | "count", | ||
445 | "coup", | ||
446 | "cove", | ||
447 | "cowry", | ||
448 | "coy", | ||
449 | "CPA", | ||
450 | "crack", | ||
451 | "craft", | ||
452 | "Craig", | ||
453 | "crank", | ||
454 | "crash", | ||
455 | "crate", | ||
456 | "crawl", | ||
457 | "craze", | ||
458 | "creak", | ||
459 | "cream", | ||
460 | "credo", | ||
461 | "creek", | ||
462 | "Creon", | ||
463 | "crept", | ||
464 | "crest", | ||
465 | "crew", | ||
466 | "crib", | ||
467 | "crime", | ||
468 | "crimp", | ||
469 | "crisp", | ||
470 | "crock", | ||
471 | "croft", | ||
472 | "crone", | ||
473 | "crook", | ||
474 | "crowd", | ||
475 | "CRT", | ||
476 | "crumb", | ||
477 | "crump", | ||
478 | "crush", | ||
479 | "crux", | ||
480 | "cub", | ||
481 | "cube", | ||
482 | "cuff", | ||
483 | "cup", | ||
484 | "Cupid", | ||
485 | "cur", | ||
486 | "curb", | ||
487 | "curie", | ||
488 | "cusp", | ||
489 | "cute", | ||
490 | "cycad", | ||
491 | "cynic", | ||
492 | "d", | ||
493 | "daffy", | ||
494 | "dairy", | ||
495 | "daisy", | ||
496 | "dally", | ||
497 | "dame", | ||
498 | "Damon", | ||
499 | "Dan", | ||
500 | "dance", | ||
501 | "Dane", | ||
502 | "dank", | ||
503 | "Dante", | ||
504 | "Dar", | ||
505 | "darn", | ||
506 | "dart", | ||
507 | "dash", | ||
508 | "davit", | ||
509 | "day", | ||
510 | "De", | ||
511 | "deaf", | ||
512 | "deal", | ||
513 | "death", | ||
514 | "debit", | ||
515 | "Dec", | ||
516 | "decal", | ||
517 | "Dee", | ||
518 | "Deere", | ||
519 | "deify", | ||
520 | "deity", | ||
521 | "Della", | ||
522 | "delta", | ||
523 | "demur", | ||
524 | "den", | ||
525 | "Denny", | ||
526 | "dense", | ||
527 | "deny", | ||
528 | "depth", | ||
529 | "desk", | ||
530 | "deus", | ||
531 | "devil", | ||
532 | "dewar", | ||
533 | "Dhabi", | ||
534 | "diary", | ||
535 | "dick", | ||
536 | "dicta", | ||
537 | "did", | ||
538 | "die", | ||
539 | "Diego", | ||
540 | "diety", | ||
541 | "dill", | ||
542 | "din", | ||
543 | "dine", | ||
544 | "dirty", | ||
545 | "disc", | ||
546 | "ditch", | ||
547 | "dive", | ||
548 | "DNA", | ||
549 | "dock", | ||
550 | "Dodd", | ||
551 | "doff", | ||
552 | "dogma", | ||
553 | "dolce", | ||
554 | "doll", | ||
555 | "dolly", | ||
556 | "done", | ||
557 | "door", | ||
558 | "dope", | ||
559 | "Doric", | ||
560 | "dose", | ||
561 | "dote", | ||
562 | "doubt", | ||
563 | "Doug", | ||
564 | "dove", | ||
565 | "dowel", | ||
566 | "doze", | ||
567 | "Dr", | ||
568 | "Draco", | ||
569 | "drama", | ||
570 | "drape", | ||
571 | "drawl", | ||
572 | "dread", | ||
573 | "dreg", | ||
574 | "dress", | ||
575 | "drew", | ||
576 | "drib", | ||
577 | "drier", | ||
578 | "drill", | ||
579 | "drip", | ||
580 | "dross", | ||
581 | "drown", | ||
582 | "druid", | ||
583 | "drunk", | ||
584 | "dry", | ||
585 | "du", | ||
586 | "Duane", | ||
587 | "ducat", | ||
588 | "duct", | ||
589 | "duel", | ||
590 | "duff", | ||
591 | "Duffy", | ||
592 | "Dugan", | ||
593 | "duke", | ||
594 | "dull", | ||
595 | "dulse", | ||
596 | "duly", | ||
597 | "dump", | ||
598 | "dumpy", | ||
599 | "dunce", | ||
600 | "dunk", | ||
601 | "dupe", | ||
602 | "dusky", | ||
603 | "dwarf", | ||
604 | "dwelt", | ||
605 | "Dwyer", | ||
606 | "dyer", | ||
607 | "Dyke", | ||
608 | "dyne", | ||
609 | "each", | ||
610 | "eager", | ||
611 | "ear", | ||
612 | "earn", | ||
613 | "ease", | ||
614 | "eat", | ||
615 | "eater", | ||
616 | "Eben", | ||
617 | "Ecole", | ||
618 | "Eden", | ||
619 | "edge", | ||
620 | "edgy", | ||
621 | "edict", | ||
622 | "Edith", | ||
623 | "EDT", | ||
624 | "eel", | ||
625 | "eft", | ||
626 | "egg", | ||
627 | "Egypt", | ||
628 | "eject", | ||
629 | "el", | ||
630 | "elan", | ||
631 | "elate", | ||
632 | "elect", | ||
633 | "elfin", | ||
634 | "elide", | ||
635 | "elk", | ||
636 | "Ella", | ||
637 | "Ellis", | ||
638 | "Elmer", | ||
639 | "else", | ||
640 | "Elton", | ||
641 | "elude", | ||
642 | "elves", | ||
643 | "ember", | ||
644 | "Emile", | ||
645 | "Emory", | ||
646 | "Eng", | ||
647 | "Engle", | ||
648 | "Enid", | ||
649 | "Enos", | ||
650 | "enter", | ||
651 | "envoy", | ||
652 | "epoxy", | ||
653 | "equal", | ||
654 | "erase", | ||
655 | "ere", | ||
656 | "erg", | ||
657 | "Erich", | ||
658 | "Ernst", | ||
659 | "Eros", | ||
660 | "err", | ||
661 | "Errol", | ||
662 | "Ervin", | ||
663 | "e's", | ||
664 | "essay", | ||
665 | "ester", | ||
666 | "Ethan", | ||
667 | "Ethel", | ||
668 | "ethic", | ||
669 | "ethos", | ||
670 | "etude", | ||
671 | "Eva", | ||
672 | "Evans", | ||
673 | "event", | ||
674 | "evict", | ||
675 | "exact", | ||
676 | "exam", | ||
677 | "excel", | ||
678 | "exit", | ||
679 | "eye", | ||
680 | "f", | ||
681 | "Faber", | ||
682 | "fable", | ||
683 | "facet", | ||
684 | "fad", | ||
685 | "faery", | ||
686 | "fag", | ||
687 | "fail", | ||
688 | "faint", | ||
689 | "fairy", | ||
690 | "fake", | ||
691 | "fang", | ||
692 | "fare", | ||
693 | "faro", | ||
694 | "fatal", | ||
695 | "fatty", | ||
696 | "fault", | ||
697 | "faun", | ||
698 | "Faust", | ||
699 | "fay", | ||
700 | "FBI", | ||
701 | "fee", | ||
702 | "feed", | ||
703 | "feign", | ||
704 | "Felix", | ||
705 | "Fermi", | ||
706 | "ferry", | ||
707 | "fest", | ||
708 | "fetch", | ||
709 | "fetus", | ||
710 | "few", | ||
711 | "fiend", | ||
712 | "fiery", | ||
713 | "fifth", | ||
714 | "fig", | ||
715 | "fight", | ||
716 | "filet", | ||
717 | "film", | ||
718 | "finch", | ||
719 | "fine", | ||
720 | "finny", | ||
721 | "fire", | ||
722 | "first", | ||
723 | "fish", | ||
724 | "Fisk", | ||
725 | "fist", | ||
726 | "Fitch", | ||
727 | "flack", | ||
728 | "flak", | ||
729 | "flaky", | ||
730 | "flame", | ||
731 | "flank", | ||
732 | "flare", | ||
733 | "flat", | ||
734 | "flax", | ||
735 | "flea", | ||
736 | "fled", | ||
737 | "flee", | ||
738 | "fleet", | ||
739 | "flint", | ||
740 | "flit", | ||
741 | "flock", | ||
742 | "flog", | ||
743 | "flow", | ||
744 | "Floyd", | ||
745 | "flub", | ||
746 | "fluke", | ||
747 | "flute", | ||
748 | "Flynn", | ||
749 | "FM", | ||
750 | "foal", | ||
751 | "focal", | ||
752 | "Foley", | ||
753 | "folk", | ||
754 | "fond", | ||
755 | "food", | ||
756 | "foot", | ||
757 | "fop", | ||
758 | "fore", | ||
759 | "forge", | ||
760 | "form", | ||
761 | "fort", | ||
762 | "forth", | ||
763 | "forty", | ||
764 | "Foss", | ||
765 | "foul", | ||
766 | "fowl", | ||
767 | "FPC", | ||
768 | "frame", | ||
769 | "Franz", | ||
770 | "Frau", | ||
771 | "fray", | ||
772 | "freed", | ||
773 | "fresh", | ||
774 | "friar", | ||
775 | "fro", | ||
776 | "frog", | ||
777 | "from", | ||
778 | "frost", | ||
779 | "frown", | ||
780 | "fry", | ||
781 | "fuel", | ||
782 | "full", | ||
783 | "fun", | ||
784 | "fur", | ||
785 | "furry", | ||
786 | "fussy", | ||
787 | "g", | ||
788 | "gaff", | ||
789 | "gag", | ||
790 | "Gail", | ||
791 | "Galen", | ||
792 | "gall", | ||
793 | "game", | ||
794 | "gamma", | ||
795 | "gap", | ||
796 | "gar", | ||
797 | "garb", | ||
798 | "gas", | ||
799 | "gasp", | ||
800 | "gate", | ||
801 | "gauge", | ||
802 | "gaur", | ||
803 | "gavel", | ||
804 | "gawk", | ||
805 | "gay", | ||
806 | "gecko", | ||
807 | "gel", | ||
808 | "gem", | ||
809 | "Gemma", | ||
810 | "gene", | ||
811 | "genie", | ||
812 | "genre", | ||
813 | "genus", | ||
814 | "germ", | ||
815 | "Gerry", | ||
816 | "get", | ||
817 | "giant", | ||
818 | "gibby", | ||
819 | "gig", | ||
820 | "gild", | ||
821 | "gilt", | ||
822 | "gin", | ||
823 | "Gino", | ||
824 | "given", | ||
825 | "glare", | ||
826 | "gleam", | ||
827 | "glee", | ||
828 | "glib", | ||
829 | "glint", | ||
830 | "gloat", | ||
831 | "glow", | ||
832 | "glut", | ||
833 | "GMT", | ||
834 | "gnaw", | ||
835 | "gnome", | ||
836 | "GNP", | ||
837 | "god", | ||
838 | "Goff", | ||
839 | "gogo", | ||
840 | "golf", | ||
841 | "Goode", | ||
842 | "goof", | ||
843 | "goose", | ||
844 | "gore", | ||
845 | "gory", | ||
846 | "got", | ||
847 | "gourd", | ||
848 | "GPO", | ||
849 | "grace", | ||
850 | "Graff", | ||
851 | "grape", | ||
852 | "grasp", | ||
853 | "grate", | ||
854 | "gravy", | ||
855 | "graze", | ||
856 | "grebe", | ||
857 | "greed", | ||
858 | "Greek", | ||
859 | "Gregg", | ||
860 | "grew", | ||
861 | "grid", | ||
862 | "grime", | ||
863 | "Grimm", | ||
864 | "gripe", | ||
865 | "grit", | ||
866 | "groan", | ||
867 | "gross", | ||
868 | "grout", | ||
869 | "grow", | ||
870 | "grown", | ||
871 | "grub", | ||
872 | "grunt", | ||
873 | "GSA", | ||
874 | "guano", | ||
875 | "guess", | ||
876 | "guide", | ||
877 | "guile", | ||
878 | "guise", | ||
879 | "gules", | ||
880 | "gull", | ||
881 | "gulp", | ||
882 | "gumbo", | ||
883 | "gun", | ||
884 | "gunky", | ||
885 | "guru", | ||
886 | "gush", | ||
887 | "gust", | ||
888 | "gusto", | ||
889 | "guy", | ||
890 | "Gwyn", | ||
891 | "gyp", | ||
892 | "gyro", | ||
893 | "Habib", | ||
894 | "hack", | ||
895 | "had", | ||
896 | "Hades", | ||
897 | "Hagen", | ||
898 | "Hahn", | ||
899 | "haiku", | ||
900 | "hale", | ||
901 | "halma", | ||
902 | "ham", | ||
903 | "Haney", | ||
904 | "Hans", | ||
905 | "hard", | ||
906 | "hare", | ||
907 | "hark", | ||
908 | "harm", | ||
909 | "harsh", | ||
910 | "haste", | ||
911 | "hasty", | ||
912 | "hatch", | ||
913 | "hater", | ||
914 | "hawk", | ||
915 | "Haydn", | ||
916 | "hazel", | ||
917 | "he", | ||
918 | "Healy", | ||
919 | "hear", | ||
920 | "heart", | ||
921 | "heave", | ||
922 | "heavy", | ||
923 | "hedge", | ||
924 | "heel", | ||
925 | "hefty", | ||
926 | "Heinz", | ||
927 | "held", | ||
928 | "he'll", | ||
929 | "hemp", | ||
930 | "hertz", | ||
931 | "hew", | ||
932 | "hex", | ||
933 | "hi", | ||
934 | "hick", | ||
935 | "Hicks", | ||
936 | "hike", | ||
937 | "hilum", | ||
938 | "hind", | ||
939 | "hip", | ||
940 | "hippy", | ||
941 | "hire", | ||
942 | "his", | ||
943 | "hive", | ||
944 | "hobby", | ||
945 | "hoc", | ||
946 | "Hoff", | ||
947 | "hogan", | ||
948 | "Hokan", | ||
949 | "hole", | ||
950 | "Holm", | ||
951 | "holt", | ||
952 | "home", | ||
953 | "homo", | ||
954 | "hondo", | ||
955 | "hood", | ||
956 | "hook", | ||
957 | "hoop", | ||
958 | "hoot", | ||
959 | "hope", | ||
960 | "horn", | ||
961 | "hose", | ||
962 | "hot", | ||
963 | "hound", | ||
964 | "hovel", | ||
965 | "how", | ||
966 | "howdy", | ||
967 | "hub", | ||
968 | "hubby", | ||
969 | "hue", | ||
970 | "huff", | ||
971 | "huge", | ||
972 | "huh", | ||
973 | "hull", | ||
974 | "human", | ||
975 | "Hun", | ||
976 | "hung", | ||
977 | "hunk", | ||
978 | "hurt", | ||
979 | "hurty", | ||
980 | "hutch", | ||
981 | "hydra", | ||
982 | "hyena", | ||
983 | "hymen", | ||
984 | "i", | ||
985 | "ibid", | ||
986 | "IBM", | ||
987 | "icon", | ||
988 | "I'd", | ||
989 | "Idaho", | ||
990 | "ideal", | ||
991 | "idiot", | ||
992 | "idol", | ||
993 | "IEEE", | ||
994 | "iffy", | ||
995 | "igloo", | ||
996 | "iii", | ||
997 | "ileum", | ||
998 | "Iliad", | ||
999 | "ill", | ||
1000 | "Ilona", | ||
1001 | "image", | ||
1002 | "in", | ||
1003 | "inapt", | ||
1004 | "Inca", | ||
1005 | "incur", | ||
1006 | "India", | ||
1007 | "inert", | ||
1008 | "infer", | ||
1009 | "infra", | ||
1010 | "Inman", | ||
1011 | "inn", | ||
1012 | "input", | ||
1013 | "ionic", | ||
1014 | "Iowa", | ||
1015 | "ipso", | ||
1016 | "IR", | ||
1017 | "Iran", | ||
1018 | "irate", | ||
1019 | "Irene", | ||
1020 | "Irish", | ||
1021 | "Irma", | ||
1022 | "is", | ||
1023 | "Ising", | ||
1024 | "Islam", | ||
1025 | "isle", | ||
1026 | "Italy", | ||
1027 | "it'd", | ||
1028 | "Ito", | ||
1029 | "iv", | ||
1030 | "ivy", | ||
1031 | "j", | ||
1032 | "JACM", | ||
1033 | "jag", | ||
1034 | "James", | ||
1035 | "Jane", | ||
1036 | "Janos", | ||
1037 | "Japan", | ||
1038 | "Jason", | ||
1039 | "jaw", | ||
1040 | "jean", | ||
1041 | "jeep", | ||
1042 | "Jeres", | ||
1043 | "jerky", | ||
1044 | "jess", | ||
1045 | "jet", | ||
1046 | "jewel", | ||
1047 | "jig", | ||
1048 | "jilt", | ||
1049 | "Jo", | ||
1050 | "job", | ||
1051 | "jog", | ||
1052 | "join", | ||
1053 | "joke", | ||
1054 | "jolt", | ||
1055 | "Jonas", | ||
1056 | "joule", | ||
1057 | "joust", | ||
1058 | "joy", | ||
1059 | "Juan", | ||
1060 | "judge", | ||
1061 | "judo", | ||
1062 | "Judy", | ||
1063 | "juju", | ||
1064 | "juke", | ||
1065 | "julep", | ||
1066 | "jump", | ||
1067 | "junco", | ||
1068 | "junky", | ||
1069 | "junta", | ||
1070 | "jure", | ||
1071 | "jut", | ||
1072 | "Kafka", | ||
1073 | "kapok", | ||
1074 | "Karp", | ||
1075 | "Kathy", | ||
1076 | "Kay", | ||
1077 | "Keats", | ||
1078 | "keel", | ||
1079 | "keg", | ||
1080 | "kelly", | ||
1081 | "Kemp", | ||
1082 | "Kent", | ||
1083 | "Kenya", | ||
1084 | "kerry", | ||
1085 | "Kevin", | ||
1086 | "keyed", | ||
1087 | "khaki", | ||
1088 | "Khmer", | ||
1089 | "kick", | ||
1090 | "Kiev", | ||
1091 | "kin", | ||
1092 | "Kiowa", | ||
1093 | "kirk", | ||
1094 | "kiss", | ||
1095 | "kite", | ||
1096 | "kiva", | ||
1097 | "Klan", | ||
1098 | "Kline", | ||
1099 | "knee", | ||
1100 | "Knott", | ||
1101 | "Knox", | ||
1102 | "koala", | ||
1103 | "Kong", | ||
1104 | "Korea", | ||
1105 | "kraft", | ||
1106 | "kraut", | ||
1107 | "Kuhn", | ||
1108 | "Kurd", | ||
1109 | "lac", | ||
1110 | "lack", | ||
1111 | "lad", | ||
1112 | "ladle", | ||
1113 | "lag", | ||
1114 | "lain", | ||
1115 | "laity", | ||
1116 | "lam", | ||
1117 | "lame", | ||
1118 | "lamp", | ||
1119 | "lance", | ||
1120 | "lane", | ||
1121 | "Lange", | ||
1122 | "Laos", | ||
1123 | "lapel", | ||
1124 | "lard", | ||
1125 | "Lares", | ||
1126 | "Lars", | ||
1127 | "last", | ||
1128 | "late", | ||
1129 | "Latin", | ||
1130 | "latus", | ||
1131 | "law", | ||
1132 | "lay", | ||
1133 | "layup", | ||
1134 | "lazy", | ||
1135 | "leach", | ||
1136 | "leafy", | ||
1137 | "leak", | ||
1138 | "leapt", | ||
1139 | "learn", | ||
1140 | "leash", | ||
1141 | "leave", | ||
1142 | "ledge", | ||
1143 | "leech", | ||
1144 | "left", | ||
1145 | "leg", | ||
1146 | "leggy", | ||
1147 | "Leila", | ||
1148 | "lemma", | ||
1149 | "Lena", | ||
1150 | "lens", | ||
1151 | "Leo", | ||
1152 | "Leona", | ||
1153 | "lest", | ||
1154 | "level", | ||
1155 | "levy", | ||
1156 | "lewd", | ||
1157 | "liar", | ||
1158 | "lice", | ||
1159 | "lick", | ||
1160 | "lie", | ||
1161 | "lien", | ||
1162 | "life", | ||
1163 | "lift", | ||
1164 | "liken", | ||
1165 | "lilac", | ||
1166 | "Lilly", | ||
1167 | "lily", | ||
1168 | "limb", | ||
1169 | "limit", | ||
1170 | "line", | ||
1171 | "lingo", | ||
1172 | "link", | ||
1173 | "Linus", | ||
1174 | "Lise", | ||
1175 | "lisp", | ||
1176 | "live", | ||
1177 | "livre", | ||
1178 | "load", | ||
1179 | "loam", | ||
1180 | "loan", | ||
1181 | "lob", | ||
1182 | "lobby", | ||
1183 | "local", | ||
1184 | "lock", | ||
1185 | "Loeb", | ||
1186 | "Logan", | ||
1187 | "logic", | ||
1188 | "loin", | ||
1189 | "Loki", | ||
1190 | "loll", | ||
1191 | "Lomb", | ||
1192 | "long", | ||
1193 | "loon", | ||
1194 | "loose", | ||
1195 | "loot", | ||
1196 | "lope", | ||
1197 | "lord", | ||
1198 | "Loren", | ||
1199 | "lose", | ||
1200 | "lossy", | ||
1201 | "Lotte", | ||
1202 | "loud", | ||
1203 | "lousy", | ||
1204 | "low", | ||
1205 | "Lowe", | ||
1206 | "loy", | ||
1207 | "l's", | ||
1208 | "LTV", | ||
1209 | "Lucas", | ||
1210 | "lucky", | ||
1211 | "luge", | ||
1212 | "Luis", | ||
1213 | "lumen", | ||
1214 | "lumpy", | ||
1215 | "lunar", | ||
1216 | "Lund", | ||
1217 | "Lura", | ||
1218 | "lure", | ||
1219 | "lurk", | ||
1220 | "lusty", | ||
1221 | "Lydia", | ||
1222 | "lying", | ||
1223 | "Lynn", | ||
1224 | "Lyon", | ||
1225 | "Lyra", | ||
1226 | "m", | ||
1227 | "Mabel", | ||
1228 | "mace", | ||
1229 | "macho", | ||
1230 | "macro", | ||
1231 | "madam", | ||
1232 | "magi", | ||
1233 | "magna", | ||
1234 | "mail", | ||
1235 | "main", | ||
1236 | "make", | ||
1237 | "Malay", | ||
1238 | "male", | ||
1239 | "mall", | ||
1240 | "malt", | ||
1241 | "mamma", | ||
1242 | "mane", | ||
1243 | "mania", | ||
1244 | "manic", | ||
1245 | "manna", | ||
1246 | "Mans", | ||
1247 | "Mao", | ||
1248 | "map", | ||
1249 | "mar", | ||
1250 | "Mardi", | ||
1251 | "maria", | ||
1252 | "Marin", | ||
1253 | "Mario", | ||
1254 | "Mars", | ||
1255 | "Mary", | ||
1256 | "mask", | ||
1257 | "mast", | ||
1258 | "mat", | ||
1259 | "mate", | ||
1260 | "mater", | ||
1261 | "matte", | ||
1262 | "maul", | ||
1263 | "Mavis", | ||
1264 | "maxim", | ||
1265 | "Maya", | ||
1266 | "Mayer", | ||
1267 | "Mayo", | ||
1268 | "mayst", | ||
1269 | "maze", | ||
1270 | "me", | ||
1271 | "meal", | ||
1272 | "meaty", | ||
1273 | "media", | ||
1274 | "meet", | ||
1275 | "meld", | ||
1276 | "melt", | ||
1277 | "men", | ||
1278 | "Menlo", | ||
1279 | "merge", | ||
1280 | "Merle", | ||
1281 | "merry", | ||
1282 | "mesh", | ||
1283 | "messy", | ||
1284 | "metro", | ||
1285 | "mew", | ||
1286 | "Meyer", | ||
1287 | "mezzo", | ||
1288 | "mica", | ||
1289 | "midst", | ||
1290 | "mien", | ||
1291 | "mig", | ||
1292 | "mila", | ||
1293 | "milk", | ||
1294 | "Mills", | ||
1295 | "milt", | ||
1296 | "Mimi", | ||
1297 | "mince", | ||
1298 | "mine", | ||
1299 | "mini", | ||
1300 | "mink", | ||
1301 | "minor", | ||
1302 | "minot", | ||
1303 | "minus", | ||
1304 | "Mira", | ||
1305 | "mire", | ||
1306 | "mirth", | ||
1307 | "Missy", | ||
1308 | "misty", | ||
1309 | "mite", | ||
1310 | "mitre", | ||
1311 | "mixup", | ||
1312 | "mob", | ||
1313 | "Mobil", | ||
1314 | "mock", | ||
1315 | "model", | ||
1316 | "Moen", | ||
1317 | "Mohr", | ||
1318 | "moist", | ||
1319 | "molar", | ||
1320 | "mole", | ||
1321 | "month", | ||
1322 | "moody", | ||
1323 | "Moore", | ||
1324 | "moral", | ||
1325 | "Moran", | ||
1326 | "morn", | ||
1327 | "Moser", | ||
1328 | "moss", | ||
1329 | "most", | ||
1330 | "motel", | ||
1331 | "moth", | ||
1332 | "motif", | ||
1333 | "motor", | ||
1334 | "motto", | ||
1335 | "mousy", | ||
1336 | "Moyer", | ||
1337 | "Mrs", | ||
1338 | "m's", | ||
1339 | "mud", | ||
1340 | "muggy", | ||
1341 | "Muir", | ||
1342 | "mulch", | ||
1343 | "mule", | ||
1344 | "mull", | ||
1345 | "mum", | ||
1346 | "mummy", | ||
1347 | "muon", | ||
1348 | "mural", | ||
1349 | "murre", | ||
1350 | "mushy", | ||
1351 | "musk", | ||
1352 | "must", | ||
1353 | "Muzo", | ||
1354 | "my", | ||
1355 | "Myers", | ||
1356 | "mynah", | ||
1357 | "Myra", | ||
1358 | "NAACP", | ||
1359 | "Nagy", | ||
1360 | "naive", | ||
1361 | "name", | ||
1362 | "Nancy", | ||
1363 | "nap", | ||
1364 | "nary", | ||
1365 | "nasal", | ||
1366 | "natal", | ||
1367 | "NATO", | ||
1368 | "navy", | ||
1369 | "Nazi", | ||
1370 | "NBC", | ||
1371 | "NCR", | ||
1372 | "ne", | ||
1373 | "near", | ||
1374 | "neath", | ||
1375 | "Ned", | ||
1376 | "need", | ||
1377 | "needy", | ||
1378 | "Nehru", | ||
1379 | "Nell", | ||
1380 | "neon", | ||
1381 | "Nero", | ||
1382 | "net", | ||
1383 | "Neva", | ||
1384 | "neve", | ||
1385 | "new", | ||
1386 | "nice", | ||
1387 | "niche", | ||
1388 | "Niger", | ||
1389 | "night", | ||
1390 | "Nikko", | ||
1391 | "Nile", | ||
1392 | "Niobe", | ||
1393 | "nitty", | ||
1394 | "NJ", | ||
1395 | "no", | ||
1396 | "Noah", | ||
1397 | "Nobel", | ||
1398 | "nodal", | ||
1399 | "noise", | ||
1400 | "Nolan", | ||
1401 | "nolo", | ||
1402 | "noon", | ||
1403 | "nor", | ||
1404 | "nose", | ||
1405 | "notch", | ||
1406 | "Nov", | ||
1407 | "now", | ||
1408 | "n's", | ||
1409 | "NTIS", | ||
1410 | "nude", | ||
1411 | "numb", | ||
1412 | "nurse", | ||
1413 | "NY", | ||
1414 | "oaf", | ||
1415 | "oaken", | ||
1416 | "oar", | ||
1417 | "oasis", | ||
1418 | "oath", | ||
1419 | "obey", | ||
1420 | "objet", | ||
1421 | "ocean", | ||
1422 | "Oct", | ||
1423 | "ode", | ||
1424 | "o'er", | ||
1425 | "off", | ||
1426 | "often", | ||
1427 | "ogle", | ||
1428 | "Okay", | ||
1429 | "old", | ||
1430 | "oldy", | ||
1431 | "olive", | ||
1432 | "Olson", | ||
1433 | "omit", | ||
1434 | "once", | ||
1435 | "only", | ||
1436 | "onset", | ||
1437 | "onus", | ||
1438 | "onyx", | ||
1439 | "ooze", | ||
1440 | "opera", | ||
1441 | "opium", | ||
1442 | "opt", | ||
1443 | "opus", | ||
1444 | "orb", | ||
1445 | "Orin", | ||
1446 | "Orion", | ||
1447 | "osier", | ||
1448 | "ought", | ||
1449 | "our", | ||
1450 | "out", | ||
1451 | "ovate", | ||
1452 | "over", | ||
1453 | "Ovid", | ||
1454 | "owing", | ||
1455 | "ox", | ||
1456 | "oxeye", | ||
1457 | "oxide", | ||
1458 | "Ozark", | ||
1459 | "p", | ||
1460 | "Pablo", | ||
1461 | "pace", | ||
1462 | "pack", | ||
1463 | "pact", | ||
1464 | "padre", | ||
1465 | "pagan", | ||
1466 | "Paine", | ||
1467 | "pale", | ||
1468 | "palm", | ||
1469 | "pane", | ||
1470 | "pansy", | ||
1471 | "Paoli", | ||
1472 | "papa", | ||
1473 | "papaw", | ||
1474 | "pappy", | ||
1475 | "parch", | ||
1476 | "pare", | ||
1477 | "Paris", | ||
1478 | "park", | ||
1479 | "Parks", | ||
1480 | "parse", | ||
1481 | "Paso", | ||
1482 | "passe", | ||
1483 | "past", | ||
1484 | "path", | ||
1485 | "Patsy", | ||
1486 | "Paul", | ||
1487 | "Pauli", | ||
1488 | "pax", | ||
1489 | "PBS", | ||
1490 | "peace", | ||
1491 | "peak", | ||
1492 | "Pease", | ||
1493 | "peck", | ||
1494 | "pedal", | ||
1495 | "pee", | ||
1496 | "peek", | ||
1497 | "peep", | ||
1498 | "pen", | ||
1499 | "penny", | ||
1500 | "pep", | ||
1501 | "Pepsi", | ||
1502 | "Perez", | ||
1503 | "perk", | ||
1504 | "Perle", | ||
1505 | "Perth", | ||
1506 | "peste", | ||
1507 | "Pete", | ||
1508 | "petri", | ||
1509 | "petty", | ||
1510 | "pewee", | ||
1511 | "PhD", | ||
1512 | "phi", | ||
1513 | "phon", | ||
1514 | "phony", | ||
1515 | "phyla", | ||
1516 | "piano", | ||
1517 | "piece", | ||
1518 | "pilot", | ||
1519 | "pinch", | ||
1520 | "ping", | ||
1521 | "pink", | ||
1522 | "pinto", | ||
1523 | "pious", | ||
1524 | "pipe", | ||
1525 | "pique", | ||
1526 | "piss", | ||
1527 | "pithy", | ||
1528 | "pity", | ||
1529 | "pixy", | ||
1530 | "place", | ||
1531 | "plain", | ||
1532 | "plane", | ||
1533 | "plate", | ||
1534 | "Plato", | ||
1535 | "play", | ||
1536 | "plaza", | ||
1537 | "plead", | ||
1538 | "pluck", | ||
1539 | "plug", | ||
1540 | "plump", | ||
1541 | "plunk", | ||
1542 | "plus", | ||
1543 | "pod", | ||
1544 | "podia", | ||
1545 | "Poe", | ||
1546 | "poesy", | ||
1547 | "pogo", | ||
1548 | "poi", | ||
1549 | "poise", | ||
1550 | "poke", | ||
1551 | "polis", | ||
1552 | "Polk", | ||
1553 | "poll", | ||
1554 | "polo", | ||
1555 | "Ponce", | ||
1556 | "pond", | ||
1557 | "pool", | ||
1558 | "poop", | ||
1559 | "pop", | ||
1560 | "porch", | ||
1561 | "pork", | ||
1562 | "Porte", | ||
1563 | "Porto", | ||
1564 | "posh", | ||
1565 | "posse", | ||
1566 | "post", | ||
1567 | "pour", | ||
1568 | "pow", | ||
1569 | "Prado", | ||
1570 | "Pratt", | ||
1571 | "pray", | ||
1572 | "press", | ||
1573 | "prey", | ||
1574 | "price", | ||
1575 | "pride", | ||
1576 | "prig", | ||
1577 | "prime", | ||
1578 | "prior", | ||
1579 | "probe", | ||
1580 | "Prof", | ||
1581 | "prone", | ||
1582 | "p's", | ||
1583 | "psych", | ||
1584 | "pub", | ||
1585 | "puck", | ||
1586 | "puffy", | ||
1587 | "Pugh", | ||
1588 | "pull", | ||
1589 | "puma", | ||
1590 | "pun", | ||
1591 | "punky", | ||
1592 | "puny", | ||
1593 | "pupal", | ||
1594 | "puppy", | ||
1595 | "pure", | ||
1596 | "purl", | ||
1597 | "pus", | ||
1598 | "PVC", | ||
1599 | "Pyle", | ||
1600 | "Pyrex", | ||
1601 | "Qatar", | ||
1602 | "quack", | ||
1603 | "quaff", | ||
1604 | "quash", | ||
1605 | "queen", | ||
1606 | "quell", | ||
1607 | "query", | ||
1608 | "queue", | ||
1609 | "quick", | ||
1610 | "quill", | ||
1611 | "quint", | ||
1612 | "quirt", | ||
1613 | "quo", | ||
1614 | "quote", | ||
1615 | "rabat", | ||
1616 | "rabbi", | ||
1617 | "radar", | ||
1618 | "radio", | ||
1619 | "radix", | ||
1620 | "Rae", | ||
1621 | "rag", | ||
1622 | "rail", | ||
1623 | "rajah", | ||
1624 | "Ralph", | ||
1625 | "Ramo", | ||
1626 | "ran", | ||
1627 | "Rand", | ||
1628 | "randy", | ||
1629 | "Raoul", | ||
1630 | "rape", | ||
1631 | "rare", | ||
1632 | "rasp", | ||
1633 | "rata", | ||
1634 | "rater", | ||
1635 | "rave", | ||
1636 | "raven", | ||
1637 | "razor", | ||
1638 | "R&D", | ||
1639 | "reach", | ||
1640 | "ready", | ||
1641 | "real", | ||
1642 | "reb", | ||
1643 | "reck", | ||
1644 | "reedy", | ||
1645 | "reek", | ||
1646 | "Reese", | ||
1647 | "regal", | ||
1648 | "Reid", | ||
1649 | "relax", | ||
1650 | "reman", | ||
1651 | "Rena", | ||
1652 | "rend", | ||
1653 | "ret", | ||
1654 | "retch", | ||
1655 | "Rhea", | ||
1656 | "rheum", | ||
1657 | "rhino", | ||
1658 | "Rhoda", | ||
1659 | "rib", | ||
1660 | "rice", | ||
1661 | "rick", | ||
1662 | "rid", | ||
1663 | "rifle", | ||
1664 | "rig", | ||
1665 | "rigid", | ||
1666 | "rill", | ||
1667 | "rim", | ||
1668 | "rimy", | ||
1669 | "rink", | ||
1670 | "Rio", | ||
1671 | "rip", | ||
1672 | "ripen", | ||
1673 | "rise", | ||
1674 | "risk", | ||
1675 | "rite", | ||
1676 | "rival", | ||
1677 | "river", | ||
1678 | "road", | ||
1679 | "roar", | ||
1680 | "rob", | ||
1681 | "robe", | ||
1682 | "robin", | ||
1683 | "rodeo", | ||
1684 | "roe", | ||
1685 | "roil", | ||
1686 | "role", | ||
1687 | "Roman", | ||
1688 | "Rome", | ||
1689 | "romp", | ||
1690 | "roof", | ||
1691 | "room", | ||
1692 | "roost", | ||
1693 | "Rosen", | ||
1694 | "rot", | ||
1695 | "rouge", | ||
1696 | "round", | ||
1697 | "rout", | ||
1698 | "rove", | ||
1699 | "Roy", | ||
1700 | "Royce", | ||
1701 | "r's", | ||
1702 | "Ruben", | ||
1703 | "ruby", | ||
1704 | "rude", | ||
1705 | "Rudy", | ||
1706 | "rug", | ||
1707 | "rule", | ||
1708 | "rummy", | ||
1709 | "run", | ||
1710 | "rung", | ||
1711 | "runt", | ||
1712 | "rupee", | ||
1713 | "ruse", | ||
1714 | "rusk", | ||
1715 | "Russo", | ||
1716 | "rusty", | ||
1717 | "Ruth", | ||
1718 | "rutty", | ||
1719 | "Ryan", | ||
1720 | "rye", | ||
1721 | "sa", | ||
1722 | "sabra", | ||
1723 | "sad", | ||
1724 | "sag", | ||
1725 | "sage", | ||
1726 | "sake", | ||
1727 | "sale", | ||
1728 | "Salk", | ||
1729 | "salty", | ||
1730 | "salve", | ||
1731 | "Sam", | ||
1732 | "same", | ||
1733 | "Samoa", | ||
1734 | "sane", | ||
1735 | "sank", | ||
1736 | "Santa", | ||
1737 | "Sao", | ||
1738 | "sappy", | ||
1739 | "Sarah", | ||
1740 | "sari", | ||
1741 | "satyr", | ||
1742 | "Saudi", | ||
1743 | "Sault", | ||
1744 | "save", | ||
1745 | "savvy", | ||
1746 | "SC", | ||
1747 | "scald", | ||
1748 | "scalp", | ||
1749 | "scarf", | ||
1750 | "scat", | ||
1751 | "SCM", | ||
1752 | "scold", | ||
1753 | "scoot", | ||
1754 | "Scot", | ||
1755 | "scram", | ||
1756 | "scrub", | ||
1757 | "scud", | ||
1758 | "scull", | ||
1759 | "scum", | ||
1760 | "SD", | ||
1761 | "seal", | ||
1762 | "seamy", | ||
1763 | "sect", | ||
1764 | "sedge", | ||
1765 | "seedy", | ||
1766 | "seen", | ||
1767 | "seize", | ||
1768 | "semi", | ||
1769 | "sepal", | ||
1770 | "Sepoy", | ||
1771 | "septa", | ||
1772 | "serge", | ||
1773 | "serif", | ||
1774 | "servo", | ||
1775 | "set", | ||
1776 | "Seton", | ||
1777 | "setup", | ||
1778 | "sewn", | ||
1779 | "shad", | ||
1780 | "shag", | ||
1781 | "shah", | ||
1782 | "shaky", | ||
1783 | "shall", | ||
1784 | "shank", | ||
1785 | "shard", | ||
1786 | "Shari", | ||
1787 | "shaw", | ||
1788 | "Shea", | ||
1789 | "shed", | ||
1790 | "sheer", | ||
1791 | "shied", | ||
1792 | "shift", | ||
1793 | "shill", | ||
1794 | "shin", | ||
1795 | "shirk", | ||
1796 | "shish", | ||
1797 | "shoo", | ||
1798 | "shore", | ||
1799 | "shout", | ||
1800 | "shrew", | ||
1801 | "shrub", | ||
1802 | "shunt", | ||
1803 | "SIAM", | ||
1804 | "sib", | ||
1805 | "sibyl", | ||
1806 | "side", | ||
1807 | "sigh", | ||
1808 | "sigma", | ||
1809 | "silk", | ||
1810 | "silly", | ||
1811 | "silt", | ||
1812 | "Simon", | ||
1813 | "since", | ||
1814 | "sinew", | ||
1815 | "singe", | ||
1816 | "sinh", | ||
1817 | "Sioux", | ||
1818 | "sir", | ||
1819 | "siva", | ||
1820 | "sixty", | ||
1821 | "skeet", | ||
1822 | "skew", | ||
1823 | "skid", | ||
1824 | "skimp", | ||
1825 | "skulk", | ||
1826 | "Skye", | ||
1827 | "slab", | ||
1828 | "slag", | ||
1829 | "slake", | ||
1830 | "slap", | ||
1831 | "slay", | ||
1832 | "sleep", | ||
1833 | "sleet", | ||
1834 | "slick", | ||
1835 | "slim", | ||
1836 | "slimy", | ||
1837 | "slog", | ||
1838 | "slosh", | ||
1839 | "sloth", | ||
1840 | "slow", | ||
1841 | "slug", | ||
1842 | "slum", | ||
1843 | "slung", | ||
1844 | "slurp", | ||
1845 | "sly", | ||
1846 | "small", | ||
1847 | "smile", | ||
1848 | "smith", | ||
1849 | "smog", | ||
1850 | "smoky", | ||
1851 | "snack", | ||
1852 | "snark", | ||
1853 | "sneer", | ||
1854 | "snell", | ||
1855 | "snip", | ||
1856 | "snoop", | ||
1857 | "snore", | ||
1858 | "snow", | ||
1859 | "snub", | ||
1860 | "snug", | ||
1861 | "so", | ||
1862 | "soap", | ||
1863 | "soar", | ||
1864 | "soft", | ||
1865 | "soggy", | ||
1866 | "sold", | ||
1867 | "sole", | ||
1868 | "solid", | ||
1869 | "Solon", | ||
1870 | "solve", | ||
1871 | "some", | ||
1872 | "son", | ||
1873 | "sonny", | ||
1874 | "soon", | ||
1875 | "sorb", | ||
1876 | "sore", | ||
1877 | "sort", | ||
1878 | "south", | ||
1879 | "sow", | ||
1880 | "spa", | ||
1881 | "spade", | ||
1882 | "spare", | ||
1883 | "spark", | ||
1884 | "spasm", | ||
1885 | "spate", | ||
1886 | "spawn", | ||
1887 | "spear", | ||
1888 | "speed", | ||
1889 | "spell", | ||
1890 | "Spica", | ||
1891 | "spicy", | ||
1892 | "spiky", | ||
1893 | "spire", | ||
1894 | "Spiro", | ||
1895 | "splay", | ||
1896 | "spoil", | ||
1897 | "spook", | ||
1898 | "spool", | ||
1899 | "spore", | ||
1900 | "spout", | ||
1901 | "spree", | ||
1902 | "sprue", | ||
1903 | "spur", | ||
1904 | "spy", | ||
1905 | "squaw", | ||
1906 | "s's", | ||
1907 | "St", | ||
1908 | "stag", | ||
1909 | "staid", | ||
1910 | "stair", | ||
1911 | "stale", | ||
1912 | "stall", | ||
1913 | "stamp", | ||
1914 | "stand", | ||
1915 | "stark", | ||
1916 | "stash", | ||
1917 | "state", | ||
1918 | "stay", | ||
1919 | "stead", | ||
1920 | "steak", | ||
1921 | "steam", | ||
1922 | "steed", | ||
1923 | "Steen", | ||
1924 | "steer", | ||
1925 | "stern", | ||
1926 | "stew", | ||
1927 | "stile", | ||
1928 | "stilt", | ||
1929 | "stock", | ||
1930 | "stole", | ||
1931 | "stone", | ||
1932 | "stood", | ||
1933 | "stool", | ||
1934 | "stop", | ||
1935 | "storm", | ||
1936 | "story", | ||
1937 | "stove", | ||
1938 | "strap", | ||
1939 | "straw", | ||
1940 | "strip", | ||
1941 | "strum", | ||
1942 | "stud", | ||
1943 | "study", | ||
1944 | "stung", | ||
1945 | "stunt", | ||
1946 | "Sturm", | ||
1947 | "styli", | ||
1948 | "suave", | ||
1949 | "such", | ||
1950 | "sud", | ||
1951 | "sue", | ||
1952 | "Suez", | ||
1953 | "suit", | ||
1954 | "sulky", | ||
1955 | "sung", | ||
1956 | "sunny", | ||
1957 | "sup", | ||
1958 | "supra", | ||
1959 | "surge", | ||
1960 | "Sus", | ||
1961 | "sushi", | ||
1962 | "swank", | ||
1963 | "swap", | ||
1964 | "swear", | ||
1965 | "swelt", | ||
1966 | "swig", | ||
1967 | "swine", | ||
1968 | "swish", | ||
1969 | "swiss", | ||
1970 | "sword", | ||
1971 | "swung", | ||
1972 | "Syria", | ||
1973 | "syrup", | ||
1974 | "tab", | ||
1975 | "tabu", | ||
1976 | "tacit", | ||
1977 | "taffy", | ||
1978 | "Tahoe", | ||
1979 | "take", | ||
1980 | "tale", | ||
1981 | "talk", | ||
1982 | "tamp", | ||
1983 | "tang", | ||
1984 | "tango", | ||
1985 | "tanh", | ||
1986 | "Tanya", | ||
1987 | "tap", | ||
1988 | "tape", | ||
1989 | "tapir", | ||
1990 | "tappa", | ||
1991 | "tar", | ||
1992 | "tardy", | ||
1993 | "tarry", | ||
1994 | "task", | ||
1995 | "tasty", | ||
1996 | "tate", | ||
1997 | "tawny", | ||
1998 | "taxi", | ||
1999 | "teach", | ||
2000 | "tease", | ||
2001 | "tecum", | ||
2002 | "Telex", | ||
2003 | "tempt", | ||
2004 | "tenon", | ||
2005 | "tense", | ||
2006 | "tepid", | ||
2007 | "terry", | ||
2008 | "Tess", | ||
2009 | "Texas", | ||
2010 | "Thai", | ||
2011 | "than", | ||
2012 | "that", | ||
2013 | "Thea", | ||
2014 | "thee", | ||
2015 | "them", | ||
2016 | "then", | ||
2017 | "theta", | ||
2018 | "they", | ||
2019 | "thick", | ||
2020 | "thigh", | ||
2021 | "thin", | ||
2022 | "thing", | ||
2023 | "third", | ||
2024 | "three", | ||
2025 | "threw", | ||
2026 | "thug", | ||
2027 | "thus", | ||
2028 | "ti", | ||
2029 | "tibet", | ||
2030 | "tic", | ||
2031 | "tid", | ||
2032 | "tidy", | ||
2033 | "tied", | ||
2034 | "tift", | ||
2035 | "til", | ||
2036 | "tile", | ||
2037 | "tilt", | ||
2038 | "Timex", | ||
2039 | "Timon", | ||
2040 | "tinge", | ||
2041 | "tipsy", | ||
2042 | "tire", | ||
2043 | "tit", | ||
2044 | "tithe", | ||
2045 | "title", | ||
2046 | "TNT", | ||
2047 | "toad", | ||
2048 | "today", | ||
2049 | "tog", | ||
2050 | "Togo", | ||
2051 | "toil", | ||
2052 | "token", | ||
2053 | "told", | ||
2054 | "tome", | ||
2055 | "tommy", | ||
2056 | "tonal", | ||
2057 | "tong", | ||
2058 | "Toni", | ||
2059 | "tonk", | ||
2060 | "tony", | ||
2061 | "tool", | ||
2062 | "tooth", | ||
2063 | "top", | ||
2064 | "tor", | ||
2065 | "torch", | ||
2066 | "tori", | ||
2067 | "torr", | ||
2068 | "torso", | ||
2069 | "torus", | ||
2070 | "total", | ||
2071 | "totem", | ||
2072 | "tout", | ||
2073 | "tower", | ||
2074 | "town", | ||
2075 | "toxin", | ||
2076 | "track", | ||
2077 | "Tracy", | ||
2078 | "trag", | ||
2079 | "trail", | ||
2080 | "trait", | ||
2081 | "tramp", | ||
2082 | "trap", | ||
2083 | "tread", | ||
2084 | "tree", | ||
2085 | "trend", | ||
2086 | "tress", | ||
2087 | "trial", | ||
2088 | "tribe", | ||
2089 | "trill", | ||
2090 | "tripe", | ||
2091 | "troll", | ||
2092 | "troop", | ||
2093 | "trout", | ||
2094 | "truck", | ||
2095 | "Trudy", | ||
2096 | "trunk", | ||
2097 | "trust", | ||
2098 | "TRW", | ||
2099 | "t's", | ||
2100 | "TTL", | ||
2101 | "tub", | ||
2102 | "tube", | ||
2103 | "tuck", | ||
2104 | "Tudor", | ||
2105 | "tuft", | ||
2106 | "tulle", | ||
2107 | "tum", | ||
2108 | "tuna", | ||
2109 | "tune", | ||
2110 | "tunic", | ||
2111 | "Turin", | ||
2112 | "turk", | ||
2113 | "turn", | ||
2114 | "tusk", | ||
2115 | "tutu", | ||
2116 | "tweak", | ||
2117 | "twice", | ||
2118 | "twill", | ||
2119 | "twine", | ||
2120 | "twirl", | ||
2121 | "twit", | ||
2122 | "two", | ||
2123 | "tying", | ||
2124 | "ugly", | ||
2125 | "ultra", | ||
2126 | "umbra", | ||
2127 | "uncle", | ||
2128 | "union", | ||
2129 | "unite", | ||
2130 | "upend", | ||
2131 | "upper", | ||
2132 | "upset", | ||
2133 | "Upton", | ||
2134 | "urban", | ||
2135 | "urine", | ||
2136 | "us", | ||
2137 | "usage", | ||
2138 | "use", | ||
2139 | "USGS", | ||
2140 | "USIA", | ||
2141 | "usual", | ||
2142 | "usurp", | ||
2143 | "Utah", | ||
2144 | "utile", | ||
2145 | "v", | ||
2146 | "vade", | ||
2147 | "vague", | ||
2148 | "vain", | ||
2149 | "valid", | ||
2150 | "valve", | ||
2151 | "van", | ||
2152 | "vase", | ||
2153 | "vast", | ||
2154 | "Veda", | ||
2155 | "veer", | ||
2156 | "vein", | ||
2157 | "Vella", | ||
2158 | "venom", | ||
2159 | "Venus", | ||
2160 | "verb", | ||
2161 | "Verde", | ||
2162 | "versa", | ||
2163 | "vest", | ||
2164 | "vetch", | ||
2165 | "vex", | ||
2166 | "via", | ||
2167 | "vicar", | ||
2168 | "Vichy", | ||
2169 | "Vida", | ||
2170 | "vie", | ||
2171 | "Viet", | ||
2172 | "vigil", | ||
2173 | "viii", | ||
2174 | "villa", | ||
2175 | "vise", | ||
2176 | "visor", | ||
2177 | "vitae", | ||
2178 | "Vito", | ||
2179 | "viva", | ||
2180 | "vixen", | ||
2181 | "vocal", | ||
2182 | "voice", | ||
2183 | "Volta", | ||
2184 | "vowel", | ||
2185 | "v's", | ||
2186 | "w", | ||
2187 | "wack", | ||
2188 | "wacky", | ||
2189 | "wad", | ||
2190 | "wade", | ||
2191 | "wafer", | ||
2192 | "wag", | ||
2193 | "wah", | ||
2194 | "wail", | ||
2195 | "wait", | ||
2196 | "waive", | ||
2197 | "waken", | ||
2198 | "wale", | ||
2199 | "wally", | ||
2200 | "wan", | ||
2201 | "war", | ||
2202 | "ward", | ||
2203 | "ware", | ||
2204 | "warm", | ||
2205 | "warp", | ||
2206 | "warty", | ||
2207 | "was", | ||
2208 | "washy", | ||
2209 | "water", | ||
2210 | "watt", | ||
2211 | "Watts", | ||
2212 | "way", | ||
2213 | "Wayne", | ||
2214 | "weal", | ||
2215 | "wean", | ||
2216 | "wear", | ||
2217 | "web", | ||
2218 | "weber", | ||
2219 | "we'd", | ||
2220 | "wedge", | ||
2221 | "weed", | ||
2222 | "week", | ||
2223 | "Wei", | ||
2224 | "weird", | ||
2225 | "Welch", | ||
2226 | "well", | ||
2227 | "welsh", | ||
2228 | "wept", | ||
2229 | "were", | ||
2230 | "west", | ||
2231 | "wet", | ||
2232 | "wharf", | ||
2233 | "whee", | ||
2234 | "whelm", | ||
2235 | "when", | ||
2236 | "which", | ||
2237 | "whim", | ||
2238 | "whir", | ||
2239 | "whisk", | ||
2240 | "white", | ||
2241 | "whiz", | ||
2242 | "whoa", | ||
2243 | "whole", | ||
2244 | "whoop", | ||
2245 | "whop", | ||
2246 | "whose", | ||
2247 | "why", | ||
2248 | "widen", | ||
2249 | "widow", | ||
2250 | "wield", | ||
2251 | "Wier", | ||
2252 | "wile", | ||
2253 | "will", | ||
2254 | "Wilma", | ||
2255 | "wilt", | ||
2256 | "win", | ||
2257 | "winch", | ||
2258 | "wino", | ||
2259 | "wipe", | ||
2260 | "wise", | ||
2261 | "wispy", | ||
2262 | "witch", | ||
2263 | "withy", | ||
2264 | "witty", | ||
2265 | "woe", | ||
2266 | "wok", | ||
2267 | "wolve", | ||
2268 | "womb", | ||
2269 | "Wong", | ||
2270 | "Woods", | ||
2271 | "wool", | ||
2272 | "wop", | ||
2273 | "wordy", | ||
2274 | "work", | ||
2275 | "worm", | ||
2276 | "worse", | ||
2277 | "worst", | ||
2278 | "wove", | ||
2279 | "wow", | ||
2280 | "wreck", | ||
2281 | "wrest", | ||
2282 | "wrist", | ||
2283 | "Wu", | ||
2284 | "Wyatt", | ||
2285 | "Wylie", | ||
2286 | "Wyner", | ||
2287 | "x", | ||
2288 | "xenon", | ||
2289 | "x's", | ||
2290 | "yacht", | ||
2291 | "Yale", | ||
2292 | "yam", | ||
2293 | "yang", | ||
2294 | "yarn", | ||
2295 | "Yates", | ||
2296 | "year", | ||
2297 | "yeast", | ||
2298 | "Yeats", | ||
2299 | "Yemen", | ||
2300 | "yield", | ||
2301 | "yip", | ||
2302 | "yodel", | ||
2303 | "yoga", | ||
2304 | "yoke", | ||
2305 | "yore", | ||
2306 | "you'd", | ||
2307 | "y's", | ||
2308 | "Yves", | ||
2309 | "YWCA", | ||
2310 | "Zeiss", | ||
2311 | "zest", | ||
2312 | "zig", | ||
2313 | "zing", | ||
2314 | "zip", | ||
2315 | "Zoe", | ||
2316 | "zoo" | ||
2317 | }; | ||
diff --git a/baseline/source/anagram/anagram_stdlib.c b/baseline/source/anagram/anagram_stdlib.c new file mode 100644 index 0000000..994350b --- /dev/null +++ b/baseline/source/anagram/anagram_stdlib.c | |||
@@ -0,0 +1,153 @@ | |||
1 | /* | ||
2 | |||
3 | This file is part of the TACLeBench benchmark suite. | ||
4 | Version 2.0 | ||
5 | |||
6 | Name: anagram_stdlib.c | ||
7 | |||
8 | Author: Raymond Chen | ||
9 | |||
10 | Function: This file contains the C standard library functions used by anagram. | ||
11 | |||
12 | Source: anagram | ||
13 | |||
14 | Original name: anagram | ||
15 | |||
16 | Changes: See ChangeLog.txt | ||
17 | |||
18 | License: See anagram.c | ||
19 | |||
20 | */ | ||
21 | |||
22 | #include "anagram_stdlib.h" | ||
23 | #include "anagram_strings.h" | ||
24 | |||
25 | /* Includes anagram_CompareFrequency */ | ||
26 | /* This function is included here because the WCC does not */ | ||
27 | /* support function pointers */ | ||
28 | #include "anagram_compare.h" | ||
29 | |||
30 | |||
31 | void anagram_swapi( char *ii, char *ij, unsigned long es ) | ||
32 | { | ||
33 | char *i, *j, c; | ||
34 | |||
35 | i = ( char * )ii; | ||
36 | j = ( char * )ij; | ||
37 | _Pragma( "loopbound min 1 max 1" ) | ||
38 | do { | ||
39 | c = *i; | ||
40 | *i ++ = *j; | ||
41 | *j ++ = c; | ||
42 | es -= sizeof( char ); | ||
43 | } while ( es != 0 ); | ||
44 | } | ||
45 | |||
46 | char *anagram_pivot( char *a, unsigned long n, unsigned long es ) | ||
47 | { | ||
48 | unsigned long j; | ||
49 | char *pi, *pj, *pk; | ||
50 | |||
51 | j = n / 6 * es; | ||
52 | pi = a + j; /* 1/6 */ | ||
53 | j += j; | ||
54 | pj = pi + j; /* 1/2 */ | ||
55 | pk = pj + j; /* 5/6 */ | ||
56 | if ( anagram_CompareFrequency( pi, pj ) < 0 ) { | ||
57 | if ( anagram_CompareFrequency( pi, pk ) < 0 ) { | ||
58 | if ( anagram_CompareFrequency( pj, pk ) < 0 ) | ||
59 | return pj; | ||
60 | return pk; | ||
61 | } | ||
62 | return pi; | ||
63 | } | ||
64 | if ( anagram_CompareFrequency( pj, pk ) < 0 ) { | ||
65 | if ( anagram_CompareFrequency( pi, pk ) < 0 ) | ||
66 | return pi; | ||
67 | return pk; | ||
68 | } | ||
69 | return pj; | ||
70 | } | ||
71 | |||
72 | void anagram_qsorts( char *a, unsigned long n, unsigned long es ) | ||
73 | { | ||
74 | unsigned long j; | ||
75 | char *pi, *pj, *pn; | ||
76 | volatile unsigned int flowfactdummy = 0; | ||
77 | |||
78 | _Pragma( "loopbound min 0 max 6" ) | ||
79 | while ( n > 1 ) { | ||
80 | if ( n > 10 ) | ||
81 | pi = anagram_pivot( a, n, es ); | ||
82 | else | ||
83 | pi = a + ( n >> 1 ) * es; | ||
84 | |||
85 | anagram_swapi( a, pi, es ); | ||
86 | pi = a; | ||
87 | pn = a + n * es; | ||
88 | pj = pn; | ||
89 | _Pragma( "loopbound min 1 max 11" ) | ||
90 | while ( 1 ) { | ||
91 | /* wcc note: this assignment expression was added to avoid assignment of | ||
92 | multiple loop bound annotations to same loop (cf. Ticket #0002323). */ | ||
93 | flowfactdummy ++; | ||
94 | _Pragma( "loopbound min 1 max 5" ) | ||
95 | do { | ||
96 | pi += es; | ||
97 | } while ( pi < pn && anagram_CompareFrequency( pi, a ) < 0 ); | ||
98 | _Pragma( "loopbound min 1 max 4" ) | ||
99 | do { | ||
100 | pj -= es; | ||
101 | } while ( pj > a && anagram_CompareFrequency( pj, a ) > 0 ); | ||
102 | if ( pj < pi ) | ||
103 | break; | ||
104 | anagram_swapi( pi, pj, es ); | ||
105 | } | ||
106 | anagram_swapi( a, pj, es ); | ||
107 | j = ( unsigned long )( pj - a ) / es; | ||
108 | |||
109 | n = n - j - 1; | ||
110 | if ( j >= n ) { | ||
111 | anagram_qsorts( a, j, es ); | ||
112 | a += ( j + 1 ) * es; | ||
113 | } else { | ||
114 | anagram_qsorts( a + ( j + 1 )*es, n, es ); | ||
115 | n = j; | ||
116 | } | ||
117 | } | ||
118 | } | ||
119 | |||
120 | void anagram_qsort( void *va, unsigned long n, unsigned long es ) | ||
121 | { | ||
122 | _Pragma( "marker call_qsorts" ) | ||
123 | anagram_qsorts( ( char * )va, n, es ); | ||
124 | _Pragma( "flowrestriction 1*anagram_qsorts <= 17*call_qsorts" ) | ||
125 | } | ||
126 | |||
127 | |||
128 | /* This must be redefined for each new benchmark */ | ||
129 | #define ANAGRAM_HEAP_SIZE 18000 | ||
130 | |||
131 | static char anagram_simulated_heap[ANAGRAM_HEAP_SIZE]; | ||
132 | static unsigned int anagram_freeHeapPos; | ||
133 | |||
134 | void *anagram_malloc( unsigned int numberOfBytes ) | ||
135 | { | ||
136 | void *currentPos = ( void * )&anagram_simulated_heap[ anagram_freeHeapPos ]; | ||
137 | /* Get a 4-byte address for alignment purposes */ | ||
138 | //anagram_freeHeapPos += ( ( numberOfBytes + 4 ) & ( unsigned int )0xfffffffc ); | ||
139 | unsigned int rem = (numberOfBytes & ( unsigned int )0x3 ); | ||
140 | unsigned int adjustment = rem ? 4 - rem : 0; | ||
141 | anagram_freeHeapPos += numberOfBytes + adjustment; | ||
142 | return currentPos; | ||
143 | } | ||
144 | |||
145 | void anagram_bzero( char *p, unsigned long len ) | ||
146 | { | ||
147 | unsigned long i; | ||
148 | |||
149 | _Pragma( "loopbound min 8 max 416" ) | ||
150 | for ( i = 0; i < len; ++ i ) | ||
151 | *p ++ = '\0'; | ||
152 | } | ||
153 | |||
diff --git a/baseline/source/anagram/anagram_stdlib.h b/baseline/source/anagram/anagram_stdlib.h new file mode 100644 index 0000000..0e745d5 --- /dev/null +++ b/baseline/source/anagram/anagram_stdlib.h | |||
@@ -0,0 +1,29 @@ | |||
1 | /* | ||
2 | |||
3 | This header is part of the TACLeBench benchmark suite. | ||
4 | Version 2.0 | ||
5 | |||
6 | Name: anagram_stdlib.h | ||
7 | |||
8 | Author: Raymond Chen | ||
9 | |||
10 | Function: This header contains some C standard library functions used by anagram. | ||
11 | |||
12 | Source: unknown | ||
13 | |||
14 | Original name: anagram | ||
15 | |||
16 | Changes: See ChangeLog.txt | ||
17 | |||
18 | License: See anagram.c | ||
19 | |||
20 | */ | ||
21 | |||
22 | #ifndef ANAGRAM_STDLIB_H | ||
23 | #define ANAGRAM_STDLIB_H | ||
24 | |||
25 | void *anagram_malloc( unsigned int numberOfBytes ); | ||
26 | |||
27 | void anagram_qsort( void *va, unsigned long n, unsigned long es ); | ||
28 | |||
29 | #endif | ||
diff --git a/baseline/source/anagram/anagram_strings.h b/baseline/source/anagram/anagram_strings.h new file mode 100644 index 0000000..1e023fc --- /dev/null +++ b/baseline/source/anagram/anagram_strings.h | |||
@@ -0,0 +1,27 @@ | |||
1 | /* | ||
2 | |||
3 | This header is part of the TACLeBench benchmark suite. | ||
4 | Version 2.0 | ||
5 | |||
6 | Name: anagram_strings.h | ||
7 | |||
8 | Author: Raymond Chen | ||
9 | |||
10 | Function: This header contains some C standard library functions used by anagram. | ||
11 | |||
12 | Source: unknown | ||
13 | |||
14 | Original name: anagram | ||
15 | |||
16 | Changes: See ChangeLog.txt | ||
17 | |||
18 | License: See anagram.c | ||
19 | |||
20 | */ | ||
21 | |||
22 | #ifndef ANAGRAM_STRINGS_H | ||
23 | #define ANAGRAM_STRINGS_H | ||
24 | |||
25 | void anagram_bzero( char *p, unsigned long len ); | ||
26 | |||
27 | #endif | ||
diff --git a/baseline/source/audiobeam/README b/baseline/source/audiobeam/README new file mode 100644 index 0000000..e228eda --- /dev/null +++ b/baseline/source/audiobeam/README | |||
@@ -0,0 +1,86 @@ | |||
1 | Readme file for Oxygen beamforming source code distribution | ||
2 | ----------------------------------------------------------- | ||
3 | |||
4 | This is a very very beta distribution of beamforming source code from | ||
5 | MIT LCS. | ||
6 | |||
7 | There is only one source file, main.c, and one header file, | ||
8 | main.h. You can compile everything using the Makefile included in the | ||
9 | distribution. | ||
10 | |||
11 | The input to the program is a text file containing floating | ||
12 | point values for the signal read on each of the microphones. For n | ||
13 | microphones, each line of the text files represents a temporal sample | ||
14 | and should contain n floating point values separated by spaces, e.g.: | ||
15 | |||
16 | -1.8569790e-004 -9.0919049e-004 3.6711283e-004 -1.0073081e-005 ... | ||
17 | |||
18 | There are several modes of operation for the program: | ||
19 | |||
20 | 1. The most basic mode is to process the microphone data and to | ||
21 | calculate the output based on one beam focused on a particular point | ||
22 | in space. The coordinates for the microphones and the focus point are | ||
23 | specified inside main.c (eventually to be moved to a separate file). | ||
24 | |||
25 | 2. Far field search mode. This mode assumes a far-field source (which | ||
26 | means we have a planar wavefront) and a linear array, and sweeps over | ||
27 | 180 degrees in the plane of the array. The microphone coordinates are | ||
28 | specified in main.c, and the NUM_ANGLES constant defines how many | ||
29 | angle values should be tested (a value of 180 means one beam per each | ||
30 | degree). The energy of the signal over a particular window | ||
31 | (ANGLE_ENERGY_WINDOW_SIZE) is computed for each beam. The direction | ||
32 | with maximum energy is considered the direction that the speech signal | ||
33 | is coming from, and is printed out by the program. | ||
34 | |||
35 | 3. Near-field hill climbing mode. This mode accepts a starting | ||
36 | coordinate and attempts to "hill-climb" through the space seeking the | ||
37 | maximum energy. Each of the x, y, and z coordinates are perturbed in | ||
38 | the positive and negative directions at each time interval | ||
39 | (GRID_ENERGY_WINDOW_SIZE) by a step size (GRID_STEP_SIZE). This | ||
40 | perturbation, along with the original coordinate, produces seven | ||
41 | coordinates to be tested. The direction with the maximum energy | ||
42 | replaces the current reference coordinate. For instance, if we have a | ||
43 | starting reference coordinate of (1,1,0) and our step size is 0.01, we | ||
44 | will evaluate the energy for the following seven beams: | ||
45 | |||
46 | (1,1,0) | ||
47 | (0.99,1,0) | ||
48 | (1.01,1,0) | ||
49 | (1,0.99,0) | ||
50 | (1,1.01,0) | ||
51 | (1,1,-0.01) | ||
52 | (1,1,0.01) | ||
53 | |||
54 | Now let's say the beam (1,1.01,0) has the maximum energy; then this | ||
55 | coordinate will replace the original reference coordinate of (1,1,0). | ||
56 | |||
57 | For methods 2, and 3, we are not outputting anything to disk, we are | ||
58 | just printing the result. This is because we have just started to work | ||
59 | with these methods, and have not applied them in real systems. This | ||
60 | code is currently being ported to RAW. | ||
61 | |||
62 | To get a list of parameters for the delay_and_sum executable that is | ||
63 | generated when the source is compiled, just type ./delay_and_sum . | ||
64 | |||
65 | There is some sample data included with the program, in the data | ||
66 | directory. There is some data for a near-field and far-field | ||
67 | source. The README.txt file in each directory specifies the microphone | ||
68 | and source position. The data1 file, when processed with a beamformer | ||
69 | aligned in the proper direction should produce something like a sinc | ||
70 | function (see | ||
71 | http://ccrma-www.stanford.edu/~jos/Interpolation/sinc_function.html). | ||
72 | |||
73 | The data2 file should produce an audio signal of a woman saying "the | ||
74 | simplest method". If the beamformer is aligned properly, the noise | ||
75 | should be reduced significantly over the source signal from only one | ||
76 | of the microphones (use print_datafile.pl to isolate one | ||
77 | microphone). You can convert the data file that the program produces | ||
78 | to wave files using sox. | ||
79 | |||
80 | |||
81 | |||
82 | |||
83 | |||
84 | --------------------------------- | ||
85 | Eugene Weinstein | ||
86 | ecoder@mit.edu \ No newline at end of file | ||
diff --git a/baseline/source/audiobeam/audiobeam.c b/baseline/source/audiobeam/audiobeam.c new file mode 100644 index 0000000..ed5d656 --- /dev/null +++ b/baseline/source/audiobeam/audiobeam.c | |||
@@ -0,0 +1,594 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: audiobeam | ||
7 | |||
8 | Author: Eugene Weinstein | ||
9 | |||
10 | Function: Audio beam former | ||
11 | |||
12 | Source: StreamIt | ||
13 | http://groups.csail.mit.edu/cag/streamit/ | ||
14 | |||
15 | Changes: no functional changes | ||
16 | |||
17 | License: see license.txt | ||
18 | |||
19 | */ | ||
20 | |||
21 | |||
22 | /* | ||
23 | Include section | ||
24 | */ | ||
25 | |||
26 | #include "../extra.h" | ||
27 | #include "audiobeamlibm.h" | ||
28 | #include "audiobeamlibmalloc.h" | ||
29 | #include "audiobeam.h" | ||
30 | |||
31 | /* | ||
32 | Forward declaration of functions | ||
33 | */ | ||
34 | |||
35 | void audiobeam_init(); | ||
36 | int audiobeam_return(); | ||
37 | void audiobeam_main( void ); | ||
38 | //int main( void ); | ||
39 | void audiobeam_preprocess_delays( struct audiobeam_PreprocessedDelays | ||
40 | prep_delays[], float *delays ); | ||
41 | float *audiobeam_parse_line( float *float_arr, int num_mic ); | ||
42 | long int audiobeam_find_max_in_arr( float *arr, int size ); | ||
43 | long int audiobeam_find_min_in_arr( float *arr, int size ); | ||
44 | int audiobeam_wrapped_inc_offset( int i, int offset, int max_i ); | ||
45 | int audiobeam_wrapped_dec_offset( int i, int offset, int max_i ); | ||
46 | int audiobeam_wrapped_inc( int i, int max_i ); | ||
47 | int audiobeam_wrapped_dec( int i, int max_i ); | ||
48 | struct audiobeam_DataQueue *audiobeam_init_data_queue( int max_delay, | ||
49 | int num_mic ); | ||
50 | struct audiobeam_Delays *audiobeam_init_delays ( int num_angles, int num_mic ); | ||
51 | void audiobeam_calc_distances( float *source_location, | ||
52 | float audiobeam_mic_locations[15][3], | ||
53 | float *distances, | ||
54 | int num_mic ); | ||
55 | void audiobeam_calc_delays( float *distances, float *delays, int sound_speed, | ||
56 | int sampling_rate, int num_mic ); | ||
57 | void audiobeam_adjust_delays( float *delays, int num_mic ); | ||
58 | float *audiobeam_calc_weights_lr ( int num_mic ); | ||
59 | float *audiobeam_calc_weights_left_only ( int num_mic ); | ||
60 | float audiobeam_calculate_energy( float *samples, int num_samples ); | ||
61 | float audiobeam_do_beamforming( struct audiobeam_PreprocessedDelays | ||
62 | preprocessed_delays[], | ||
63 | float **sample_queue, | ||
64 | int queue_head, | ||
65 | long int max_delay, | ||
66 | int num_mic, | ||
67 | float *weights ); | ||
68 | int audiobeam_process_signal( struct audiobeam_Delays *delays, int num_mic, | ||
69 | float sampling_rate, float **beamform_results, | ||
70 | struct audiobeam_DataQueue *queue, | ||
71 | int num_beams, int window, float *weights ); | ||
72 | int audiobeam_calc_beamforming_result( struct audiobeam_Delays *delays, | ||
73 | float **beamform_results, | ||
74 | float *energies, | ||
75 | struct audiobeam_DataQueue *queue, | ||
76 | int num_beams, int window, | ||
77 | int hamming ); | ||
78 | void audiobeam_calc_single_pos( float source_location[3], | ||
79 | float audiobeam_mic_locations[15][3], | ||
80 | int hamming ); | ||
81 | |||
82 | |||
83 | /* | ||
84 | Declaration of global variables | ||
85 | */ | ||
86 | |||
87 | extern float audiobeam_input[5760]; | ||
88 | extern float audiobeam_mic_locations[15][3]; | ||
89 | extern float audiobeam_source_location[3]; | ||
90 | extern float audiobeam_origin_location[3]; | ||
91 | int audiobeam_input_pos; | ||
92 | int audiobeam_checksum; | ||
93 | |||
94 | |||
95 | /* | ||
96 | Initialization- and return-value-related functions | ||
97 | */ | ||
98 | |||
99 | void audiobeam_init() | ||
100 | { | ||
101 | audiobeam_input_pos = 0; | ||
102 | audiobeam_checksum = 0; | ||
103 | |||
104 | unsigned int i; | ||
105 | unsigned char *p; | ||
106 | volatile char bitmask = 0; | ||
107 | |||
108 | /* | ||
109 | Apply volatile XOR-bitmask to entire input array. | ||
110 | */ | ||
111 | p = ( unsigned char * ) &audiobeam_input[ 0 ]; | ||
112 | _Pragma( "loopbound min 23040 max 23040" ) | ||
113 | for ( i = 0; i < sizeof( audiobeam_input ); ++i, ++p ) | ||
114 | *p ^= bitmask; | ||
115 | |||
116 | p = ( unsigned char * ) &audiobeam_mic_locations[ 0 ]; | ||
117 | _Pragma( "loopbound min 180 max 180" ) | ||
118 | for ( i = 0; i < sizeof( audiobeam_mic_locations ); ++i, ++p ) | ||
119 | *p ^= bitmask; | ||
120 | |||
121 | p = ( unsigned char * ) &audiobeam_source_location[ 0 ]; | ||
122 | _Pragma( "loopbound min 12 max 12" ) | ||
123 | for ( i = 0; i < sizeof( audiobeam_source_location ); ++i, ++p ) | ||
124 | *p ^= bitmask; | ||
125 | |||
126 | p = ( unsigned char * ) &audiobeam_origin_location[ 0 ]; | ||
127 | _Pragma( "loopbound min 12 max 12" ) | ||
128 | for ( i = 0; i < sizeof( audiobeam_origin_location ); ++i, ++p ) | ||
129 | *p ^= bitmask; | ||
130 | } | ||
131 | |||
132 | |||
133 | int audiobeam_return() | ||
134 | { | ||
135 | return ( audiobeam_checksum +1!= 0 ); | ||
136 | } | ||
137 | |||
138 | |||
139 | /* | ||
140 | Algorithm core functions | ||
141 | */ | ||
142 | |||
143 | void audiobeam_preprocess_delays( struct audiobeam_PreprocessedDelays | ||
144 | prep_delays[], float *delays ) | ||
145 | { | ||
146 | int i; | ||
147 | |||
148 | _Pragma( "loopbound min 15 max 15" ) | ||
149 | for ( i = 0; i < 15; i++ ) { | ||
150 | prep_delays[i].delay = delays[i]; | ||
151 | prep_delays[i].high = ( int ) audiobeam_ceil( delays[i] ); | ||
152 | prep_delays[i].low = ( int ) audiobeam_floor( delays[i] ); | ||
153 | prep_delays[i].offset = delays[i] - prep_delays[i].low; | ||
154 | } | ||
155 | } | ||
156 | |||
157 | |||
158 | float *audiobeam_parse_line( float *float_arr, int num_mic ) | ||
159 | { | ||
160 | int i; | ||
161 | |||
162 | _Pragma( "loopbound min 15 max 15" ) | ||
163 | for ( i = 0; i < num_mic; i++ ) | ||
164 | float_arr[i] = audiobeam_input[audiobeam_input_pos++]; | ||
165 | |||
166 | return float_arr; | ||
167 | } | ||
168 | |||
169 | |||
170 | long int audiobeam_find_max_in_arr( float *arr, int size ) | ||
171 | { | ||
172 | int i; | ||
173 | float max = 0; | ||
174 | |||
175 | _Pragma( "loopbound min 15 max 15" ) | ||
176 | for ( i = 0; i < size; i++ ) { | ||
177 | if ( arr[i] > max ) | ||
178 | max = arr[i]; | ||
179 | } | ||
180 | |||
181 | return audiobeam_ceil( max ); | ||
182 | } | ||
183 | |||
184 | |||
185 | long int audiobeam_find_min_in_arr( float *arr, int size ) | ||
186 | { | ||
187 | int i; | ||
188 | float min = arr[0]; | ||
189 | |||
190 | _Pragma( "loopbound min 15 max 15" ) | ||
191 | for ( i = 0; i < size; i++ ) { | ||
192 | if ( arr[i] < min ) | ||
193 | min = arr[i]; | ||
194 | } | ||
195 | |||
196 | return audiobeam_floor( min ); | ||
197 | } | ||
198 | |||
199 | |||
200 | int audiobeam_wrapped_inc_offset( int i, int offset, int max_i ) | ||
201 | { | ||
202 | if ( i + offset > max_i ) | ||
203 | return ( i + offset - max_i - 1 ); | ||
204 | else | ||
205 | return ( i + offset ); | ||
206 | } | ||
207 | |||
208 | |||
209 | int audiobeam_wrapped_dec_offset( int i, int offset, int max_i ) | ||
210 | { | ||
211 | if ( i - offset < 0 ) | ||
212 | return ( max_i - ( offset - i ) + 1 ); | ||
213 | else | ||
214 | return ( i - offset ); | ||
215 | } | ||
216 | |||
217 | |||
218 | int audiobeam_wrapped_inc( int i, int max_i ) | ||
219 | { | ||
220 | return audiobeam_wrapped_inc_offset( i, 1, max_i ); | ||
221 | } | ||
222 | |||
223 | |||
224 | int audiobeam_wrapped_dec( int i, int max_i ) | ||
225 | { | ||
226 | return audiobeam_wrapped_dec_offset( i, 1, max_i ); | ||
227 | } | ||
228 | |||
229 | |||
230 | struct audiobeam_DataQueue *audiobeam_init_data_queue( int max_delay, | ||
231 | int num_mic ) | ||
232 | { | ||
233 | int i, j; | ||
234 | |||
235 | struct audiobeam_DataQueue *queue; | ||
236 | queue = ( struct audiobeam_DataQueue * ) audiobeam_malloc( sizeof( | ||
237 | struct audiobeam_DataQueue ) ); | ||
238 | queue->sample_queue = ( float ** ) audiobeam_malloc( ( max_delay + 1 ) | ||
239 | * sizeof( float * ) ); | ||
240 | |||
241 | _Pragma( "loopbound min 15 max 15" ) | ||
242 | for ( i = 0; i < ( max_delay + 1 ); i++ ) { | ||
243 | ( queue->sample_queue )[i] = ( float * ) audiobeam_malloc( num_mic | ||
244 | * sizeof( float ) ); | ||
245 | _Pragma( "loopbound min 15 max 15" ) | ||
246 | for ( j = 0; j < num_mic; j++ ) { | ||
247 | ( queue->sample_queue )[i][j] = 0.0; // Initialize values to 0 | ||
248 | } | ||
249 | } | ||
250 | |||
251 | queue->head = 0; | ||
252 | queue->tail = 0; | ||
253 | queue->full = 0; | ||
254 | |||
255 | return queue; | ||
256 | } | ||
257 | |||
258 | |||
259 | struct audiobeam_Delays *audiobeam_init_delays ( int num_angles, int num_mic ) | ||
260 | { | ||
261 | struct audiobeam_Delays *delays; | ||
262 | int i; | ||
263 | |||
264 | delays = ( struct audiobeam_Delays * ) audiobeam_malloc( sizeof( | ||
265 | struct audiobeam_Delays ) ); | ||
266 | |||
267 | // Initialize the delays array | ||
268 | delays->delay_values = ( float ** ) audiobeam_malloc( num_angles | ||
269 | * sizeof( float * ) ); | ||
270 | |||
271 | _Pragma( "loopbound min 1 max 1" ) | ||
272 | for ( i = 0; i < ( num_angles ); i++ ) { | ||
273 | delays->delay_values[i] = ( float * ) audiobeam_malloc( num_mic | ||
274 | * sizeof( float ) ); | ||
275 | } | ||
276 | |||
277 | return delays; | ||
278 | } | ||
279 | |||
280 | void audiobeam_calc_distances( float *source_location, | ||
281 | float audiobeam_mic_locations[15][3], | ||
282 | float *distances, | ||
283 | int num_mic ) | ||
284 | { | ||
285 | int i; | ||
286 | |||
287 | _Pragma( "loopbound min 15 max 15" ) | ||
288 | for ( i = 0; i < num_mic; i++ ) { | ||
289 | distances[i] = ( audiobeam_sqrt( ( audiobeam_mic_locations[i][0] | ||
290 | - source_location[0] ) * | ||
291 | ( audiobeam_mic_locations[i][0] | ||
292 | - source_location[0] ) + | ||
293 | ( audiobeam_mic_locations[i][1] | ||
294 | - source_location[1] ) * | ||
295 | ( audiobeam_mic_locations[i][1] | ||
296 | - source_location[1] ) + | ||
297 | ( audiobeam_mic_locations[i][2] | ||
298 | - source_location[2] ) * | ||
299 | ( audiobeam_mic_locations[i][2] | ||
300 | - source_location[2] ) ) ); | ||
301 | } | ||
302 | } | ||
303 | |||
304 | |||
305 | void audiobeam_calc_delays( float *distances, float *delays, int sound_speed, | ||
306 | int sampling_rate, int num_mic ) | ||
307 | { | ||
308 | int i; | ||
309 | |||
310 | _Pragma( "loopbound min 15 max 15" ) | ||
311 | for ( i = 0; i < num_mic; i++ ) | ||
312 | delays[i] = ( distances[i] / sound_speed ) * sampling_rate; | ||
313 | } | ||
314 | |||
315 | |||
316 | void audiobeam_adjust_delays( float *delays, int num_mic ) | ||
317 | { | ||
318 | int i; | ||
319 | long int min_delay = audiobeam_find_min_in_arr ( delays, num_mic ) - 1; | ||
320 | |||
321 | _Pragma( "loopbound min 15 max 15" ) | ||
322 | for ( i = 0; i < num_mic; i++ ) | ||
323 | delays[i] -= min_delay; | ||
324 | } | ||
325 | |||
326 | |||
327 | float *audiobeam_calc_weights_lr ( int num_mic ) | ||
328 | { | ||
329 | float *weights = ( float * ) audiobeam_malloc( num_mic * sizeof( float ) ); | ||
330 | int index = 0; | ||
331 | int y, z; | ||
332 | |||
333 | int half = num_mic / 4; | ||
334 | |||
335 | _Pragma( "loopbound min 0 max 0" ) | ||
336 | for ( z = 1; z >= -1; z -= 2 ) { | ||
337 | _Pragma( "loopbound min 0 max 0" ) | ||
338 | for ( y = 0; y < half; y++ ) { | ||
339 | weights[index] = 0.54 + 0.46 * audiobeam_cos( audiobeam_M_PI * y | ||
340 | / half ); | ||
341 | index++; | ||
342 | } | ||
343 | _Pragma( "loopbound min 0 max 0" ) | ||
344 | for ( y = 0; y < half; y++ ) { | ||
345 | weights[index] = 0.54 + 0.46 * audiobeam_cos( audiobeam_M_PI * ( -y ) | ||
346 | / half ); | ||
347 | index++; | ||
348 | } | ||
349 | } | ||
350 | |||
351 | return weights; | ||
352 | } | ||
353 | |||
354 | |||
355 | float *audiobeam_calc_weights_left_only ( int num_mic ) | ||
356 | { | ||
357 | float *weights = ( float * ) audiobeam_malloc( num_mic * sizeof( float ) ); | ||
358 | int index = 0; | ||
359 | int y; | ||
360 | |||
361 | int half = num_mic / 2; | ||
362 | |||
363 | _Pragma( "loopbound min 15 max 15" ) | ||
364 | for ( y = -half; y <= half; y++ ) { | ||
365 | weights[index] = 0.54 + 0.46 * audiobeam_cos( audiobeam_M_PI * y / half ); | ||
366 | index++; | ||
367 | } | ||
368 | |||
369 | return weights; | ||
370 | } | ||
371 | |||
372 | |||
373 | float audiobeam_calculate_energy( float *samples, int num_samples ) | ||
374 | { | ||
375 | int i; | ||
376 | float sum = 0.0; | ||
377 | |||
378 | _Pragma( "loopbound min 0 max 0" ) | ||
379 | for ( i = 0; i < num_samples; i++ ) | ||
380 | sum += ( samples[i] * samples[i] ); | ||
381 | |||
382 | return sum; | ||
383 | } | ||
384 | |||
385 | |||
386 | float audiobeam_do_beamforming( struct audiobeam_PreprocessedDelays | ||
387 | preprocessed_delays[], | ||
388 | float **sample_queue, | ||
389 | int queue_head, | ||
390 | long int max_delay, | ||
391 | int num_mic, | ||
392 | float *weights ) | ||
393 | { | ||
394 | int i; | ||
395 | float sum = 0; | ||
396 | int delay_floor; | ||
397 | int delay_ceil; | ||
398 | int low_index; | ||
399 | int high_index; | ||
400 | float interpolated_value; | ||
401 | |||
402 | // add up all the num_mic delayed samples | ||
403 | _Pragma( "loopbound min 15 max 15" ) | ||
404 | for ( i = 0; i < num_mic; i++ ) { | ||
405 | delay_floor = preprocessed_delays[i].low; | ||
406 | delay_ceil = preprocessed_delays[i].high; | ||
407 | |||
408 | // Inline wrap around here | ||
409 | // Low index gets index of sample right before desired sample | ||
410 | low_index = queue_head + delay_floor; | ||
411 | if ( low_index > max_delay ) | ||
412 | low_index -= ( max_delay + 1 ); | ||
413 | |||
414 | // High index gets index of sample right after desired sample | ||
415 | high_index = queue_head + delay_ceil; | ||
416 | if ( high_index > max_delay ) | ||
417 | high_index -= ( max_delay + 1 ); | ||
418 | |||
419 | // i gives the value of the microphone we want. However, since | ||
420 | // the array only has microphones first_mic to last_mic, we | ||
421 | // need to offset our index by first_mic | ||
422 | |||
423 | interpolated_value = ( ( ( sample_queue[high_index][i] - | ||
424 | sample_queue[low_index][i] ) | ||
425 | * ( preprocessed_delays[i].offset ) ) | ||
426 | + sample_queue[low_index][i] ); | ||
427 | |||
428 | // If we have microphone weights, multiply the value by the weight | ||
429 | if ( weights != 0 ) | ||
430 | sum += ( interpolated_value * weights[i] ); | ||
431 | else | ||
432 | sum += interpolated_value; | ||
433 | } | ||
434 | |||
435 | return sum; | ||
436 | |||
437 | } | ||
438 | |||
439 | |||
440 | int audiobeam_process_signal( struct audiobeam_Delays *delays, int num_mic, | ||
441 | float sampling_rate, float **beamform_results, | ||
442 | struct audiobeam_DataQueue *queue, | ||
443 | int num_beams, int window, float *weights ) | ||
444 | { | ||
445 | int i, j; | ||
446 | float time_index = 0; | ||
447 | float time_index_inc = ( 1.0 / sampling_rate ); | ||
448 | |||
449 | float value; | ||
450 | |||
451 | int done = 0; | ||
452 | |||
453 | struct audiobeam_PreprocessedDelays preprocessed_delays[15]; | ||
454 | |||
455 | audiobeam_preprocess_delays( preprocessed_delays, delays->delay_values[0] ); | ||
456 | |||
457 | _Pragma( "loopbound min 13 max 13" ) | ||
458 | for ( i = 0; i < delays->max_delay - 1; i++ ) { | ||
459 | if ( audiobeam_input_pos < 5760 ) | ||
460 | audiobeam_parse_line( ( queue->sample_queue )[queue->head], 15 ); | ||
461 | else | ||
462 | return -1; | ||
463 | queue->head = audiobeam_wrapped_inc( queue->head, delays->max_delay ); | ||
464 | } | ||
465 | _Pragma( "loopbound min 371 max 371" ) | ||
466 | for ( i = 0; ( i < window ) || ( window < 0 ) ; i++ ) { | ||
467 | if ( audiobeam_input_pos < 5760 ) | ||
468 | audiobeam_parse_line( ( queue->sample_queue )[queue->head], 15 ); | ||
469 | else { | ||
470 | done = 1; | ||
471 | break; | ||
472 | } | ||
473 | |||
474 | _Pragma( "loopbound min 1 max 1" ) | ||
475 | for ( j = 0; j < num_beams; j++ ) { | ||
476 | value = audiobeam_do_beamforming( preprocessed_delays, | ||
477 | ( queue->sample_queue ), | ||
478 | audiobeam_wrapped_inc( queue->head, | ||
479 | delays->max_delay ), | ||
480 | delays->max_delay, num_mic, weights ); | ||
481 | |||
482 | |||
483 | value = value / num_mic; | ||
484 | |||
485 | if ( beamform_results != 0 ) | ||
486 | beamform_results[j][i] = value; | ||
487 | } | ||
488 | |||
489 | queue->tail = queue->head; | ||
490 | queue->head = audiobeam_wrapped_inc( queue->head, delays->max_delay ); | ||
491 | |||
492 | time_index += time_index_inc; | ||
493 | } | ||
494 | |||
495 | return ( done ); | ||
496 | } | ||
497 | |||
498 | |||
499 | int audiobeam_calc_beamforming_result( struct audiobeam_Delays *delays, | ||
500 | float **beamform_results, | ||
501 | float *energies, | ||
502 | struct audiobeam_DataQueue *queue, | ||
503 | int num_beams, int window, | ||
504 | int hamming ) | ||
505 | { | ||
506 | int i; | ||
507 | int done; | ||
508 | float *weights = 0; | ||
509 | |||
510 | if ( hamming ) { | ||
511 | if ( ( 15 % 2 ) == 1 ) | ||
512 | weights = audiobeam_calc_weights_left_only( 15 ); | ||
513 | else | ||
514 | weights = audiobeam_calc_weights_lr( 15 ); | ||
515 | } | ||
516 | |||
517 | done = audiobeam_process_signal( delays, 15, 16000, | ||
518 | beamform_results, | ||
519 | queue, num_beams, window, weights ); | ||
520 | |||
521 | if ( beamform_results != 0 ) { | ||
522 | _Pragma( "loopbound min 1 max 1" ) | ||
523 | for ( i = 0; i < num_beams; i++ ) | ||
524 | energies[i] = audiobeam_calculate_energy( beamform_results[i], window ); | ||
525 | } | ||
526 | return done; | ||
527 | } | ||
528 | |||
529 | |||
530 | void audiobeam_calc_single_pos( float source_location[3], | ||
531 | float audiobeam_mic_locations[15][3], | ||
532 | int hamming ) | ||
533 | { | ||
534 | float mic_distances[15]; | ||
535 | struct audiobeam_Delays *delays = audiobeam_init_delays( 1, 15 ); | ||
536 | struct audiobeam_DataQueue *queue; | ||
537 | |||
538 | float **beamform_results; | ||
539 | float *energies; | ||
540 | |||
541 | beamform_results = ( float ** ) audiobeam_malloc( 1 * sizeof( float * ) ); | ||
542 | beamform_results[0] = ( float * ) audiobeam_malloc( 384 * sizeof( float ) ); | ||
543 | energies = ( float * ) audiobeam_malloc( 1 * sizeof( float * ) ); | ||
544 | |||
545 | // Calculate distances from source to each of mics | ||
546 | audiobeam_calc_distances( source_location, audiobeam_mic_locations, | ||
547 | mic_distances, 15 ); | ||
548 | |||
549 | audiobeam_calc_delays( mic_distances, | ||
550 | delays->delay_values[0], | ||
551 | 342, 16000, 15 ); | ||
552 | |||
553 | audiobeam_adjust_delays( delays->delay_values[0], 15 ); | ||
554 | |||
555 | delays->max_delay = audiobeam_find_max_in_arr ( delays->delay_values[0], 15 ); | ||
556 | |||
557 | queue = audiobeam_init_data_queue( delays->max_delay, 15 ); | ||
558 | |||
559 | audiobeam_calc_beamforming_result( delays, beamform_results, | ||
560 | energies, queue, 1, -1, hamming ); | ||
561 | |||
562 | audiobeam_checksum += beamform_results[0][0] * 1000; | ||
563 | } | ||
564 | |||
565 | |||
566 | /* | ||
567 | Main functions | ||
568 | */ | ||
569 | |||
570 | void _Pragma( "entrypoint" ) audiobeam_main( void ) | ||
571 | { | ||
572 | char hamming = 1; | ||
573 | audiobeam_calc_single_pos( audiobeam_source_location, | ||
574 | audiobeam_mic_locations, | ||
575 | hamming ); | ||
576 | } | ||
577 | |||
578 | |||
579 | int main( int argc, char **argv ) | ||
580 | { | ||
581 | //SET_UP | ||
582 | int jobsComplete; | ||
583 | int maxJobs=100; | ||
584 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
585 | // START_LOOP | ||
586 | audiobeam_init(); | ||
587 | audiobeam_main(); | ||
588 | // STOP_LOOP | ||
589 | } | ||
590 | //WRITE_TO_FILE | ||
591 | |||
592 | return ( audiobeam_return() ); | ||
593 | } | ||
594 | |||
diff --git a/baseline/source/audiobeam/audiobeam.h b/baseline/source/audiobeam/audiobeam.h new file mode 100644 index 0000000..ff2e844 --- /dev/null +++ b/baseline/source/audiobeam/audiobeam.h | |||
@@ -0,0 +1,50 @@ | |||
1 | #ifndef AUDIOBEAM_MAIN_H | ||
2 | #define AUDIOBEAM_MAIN_H | ||
3 | |||
4 | struct audiobeam_DataQueue { | ||
5 | float **sample_queue; | ||
6 | int head; | ||
7 | int tail; | ||
8 | unsigned char full; | ||
9 | }; | ||
10 | |||
11 | |||
12 | struct audiobeam_Delays { | ||
13 | float **delay_values; | ||
14 | long int max_delay; | ||
15 | }; | ||
16 | |||
17 | |||
18 | struct audiobeam_PreprocessedDelays { | ||
19 | float delay; | ||
20 | int low; | ||
21 | int high; | ||
22 | float offset; | ||
23 | }; | ||
24 | |||
25 | |||
26 | #undef FLT_MAX | ||
27 | #define FLT_MAX 999e999 | ||
28 | |||
29 | #define SOUND_SPEED 342 | ||
30 | #define SAMPLING_RATE 16000 | ||
31 | #define CARTESIAN_DISTANCE(x1,y1,z1,x2,y2,z2) (sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2))); | ||
32 | |||
33 | #define NUM_MIC 15 | ||
34 | #define ANGLE_ENERGY_WINDOW_SIZE 400 | ||
35 | #define GRID_STEP_SIZE 0.003 // .3cm | ||
36 | #define NUM_DIRS 7 | ||
37 | #define NUM_TILES 16 | ||
38 | |||
39 | #define MIC_HORIZ_SPACE 0.038257 | ||
40 | #define MIC_VERT_SPACE 0.015001 | ||
41 | #define TWO23 8388608.0 // 2^23 | ||
42 | #define BUFFER_SIZE 384 // No of input-tupels (each with NUM_MIC elements) | ||
43 | #define NUM_MIC_IN_CHAIN 32 | ||
44 | #define NUM_BOARDS_IN_CHAIN 16 | ||
45 | #define INPUT_LENGTH 5760 | ||
46 | |||
47 | #define INTERPOLATE(low_value, high_value, offset) (((high_value-low_value)*(offset)) + low_value) | ||
48 | |||
49 | #endif | ||
50 | |||
diff --git a/baseline/source/audiobeam/audiobeaminput.c b/baseline/source/audiobeam/audiobeaminput.c new file mode 100644 index 0000000..efcd067 --- /dev/null +++ b/baseline/source/audiobeam/audiobeaminput.c | |||
@@ -0,0 +1,5784 @@ | |||
1 | float audiobeam_input[5760] = { | ||
2 | -2.1628241e-002, | ||
3 | -6.1782300e-002, | ||
4 | 1.2674258e-002, | ||
5 | 4.5557573e-002, | ||
6 | -3.1999024e-002, | ||
7 | 1.5042214e-002, | ||
8 | -2.2025290e-002, | ||
9 | -1.1691264e-001, | ||
10 | -1.1481735e-002, | ||
11 | -1.4446880e-002, | ||
12 | -1.5755706e-002, | ||
13 | -8.0576309e-002, | ||
14 | 2.0622295e-002, | ||
15 | -1.9724793e-003, | ||
16 | -1.2299200e-001, | ||
17 | -8.3279195e-002, | ||
18 | -1.0825949e-002, | ||
19 | 7.5347056e-002, | ||
20 | -3.6992287e-003, | ||
21 | 1.2980213e-002, | ||
22 | 5.9641118e-002, | ||
23 | 1.8884644e-002, | ||
24 | -5.5868450e-002, | ||
25 | 4.1899706e-002, | ||
26 | -2.0939881e-002, | ||
27 | 2.0535662e-002, | ||
28 | -9.9773254e-002, | ||
29 | -1.5328980e-002, | ||
30 | 2.1354349e-002, | ||
31 | 1.3485441e-002, | ||
32 | 6.2665707e-003, | ||
33 | -1.0335293e-002, | ||
34 | -4.1743319e-002, | ||
35 | 4.3513189e-002, | ||
36 | -4.2254620e-002, | ||
37 | -2.7446285e-002, | ||
38 | 4.5134873e-002, | ||
39 | 5.6054726e-002, | ||
40 | 6.2557771e-002, | ||
41 | 4.2653265e-002, | ||
42 | 7.6308850e-003, | ||
43 | 1.4700700e-002, | ||
44 | 5.4820763e-002, | ||
45 | -1.3939644e-002, | ||
46 | -8.8708573e-002, | ||
47 | 1.4383734e-002, | ||
48 | 4.0463345e-003, | ||
49 | 3.5856296e-002, | ||
50 | 2.7271902e-002, | ||
51 | 2.0721019e-002, | ||
52 | 3.5167562e-002, | ||
53 | -2.7007340e-002, | ||
54 | -1.3367771e-002, | ||
55 | -6.8606571e-002, | ||
56 | -1.1089227e-001, | ||
57 | 7.3041941e-002, | ||
58 | -5.2066383e-002, | ||
59 | -5.1117839e-003, | ||
60 | -3.7742692e-002, | ||
61 | -1.1895006e-002, | ||
62 | -5.7323089e-002, | ||
63 | -5.4802003e-003, | ||
64 | -8.4072455e-003, | ||
65 | 1.5633496e-002, | ||
66 | 4.6059069e-002, | ||
67 | -6.1861422e-002, | ||
68 | -3.3034801e-002, | ||
69 | 1.7182310e-002, | ||
70 | 1.1807449e-001, | ||
71 | 8.2171643e-003, | ||
72 | -1.4691311e-002, | ||
73 | -7.2660364e-004, | ||
74 | 4.6637366e-002, | ||
75 | -6.9687813e-004, | ||
76 | -2.7780373e-002, | ||
77 | 5.9544506e-002, | ||
78 | -5.6050055e-003, | ||
79 | -3.5444498e-002, | ||
80 | 1.2845303e-002, | ||
81 | -1.0379076e-001, | ||
82 | -8.5864760e-002, | ||
83 | 1.9192324e-002, | ||
84 | -2.6644473e-003, | ||
85 | 5.4431089e-003, | ||
86 | -9.2110237e-003, | ||
87 | 7.9344657e-002, | ||
88 | 4.7203951e-002, | ||
89 | 9.6834909e-002, | ||
90 | -1.0553527e-001, | ||
91 | -8.5097540e-004, | ||
92 | 5.9460688e-002, | ||
93 | 4.4844228e-002, | ||
94 | -2.8858692e-002, | ||
95 | 4.4496937e-002, | ||
96 | -3.9902243e-002, | ||
97 | 5.5557069e-002, | ||
98 | -1.1814152e-002, | ||
99 | -5.8464847e-002, | ||
100 | -1.0753965e-002, | ||
101 | 5.7336183e-002, | ||
102 | 2.6582677e-002, | ||
103 | 2.2119089e-002, | ||
104 | -1.4469086e-002, | ||
105 | 3.2141585e-002, | ||
106 | -1.0303352e-001, | ||
107 | -1.8856419e-003, | ||
108 | 3.8161312e-002, | ||
109 | -3.7091166e-002, | ||
110 | -5.1262587e-003, | ||
111 | 4.2556931e-002, | ||
112 | -5.8465556e-002, | ||
113 | 4.2193534e-002, | ||
114 | -1.4951154e-002, | ||
115 | 1.7423551e-002, | ||
116 | 2.7519487e-002, | ||
117 | -9.0048353e-002, | ||
118 | -2.6206603e-002, | ||
119 | -1.1536221e-002, | ||
120 | 4.5418578e-002, | ||
121 | -9.1746774e-002, | ||
122 | 1.6370112e-002, | ||
123 | 8.2439024e-003, | ||
124 | -1.7961312e-002, | ||
125 | -7.5403629e-002, | ||
126 | -6.6798880e-003, | ||
127 | -9.2569474e-003, | ||
128 | -1.8133432e-002, | ||
129 | -6.7922929e-002, | ||
130 | -3.3209516e-002, | ||
131 | 4.7587886e-002, | ||
132 | -4.4354675e-002, | ||
133 | -7.9939507e-002, | ||
134 | -1.0312521e-001, | ||
135 | -4.6389013e-002, | ||
136 | -6.8492137e-002, | ||
137 | 8.7253275e-003, | ||
138 | -1.0040243e-002, | ||
139 | -2.3972856e-002, | ||
140 | 1.9377428e-003, | ||
141 | -1.2364076e-002, | ||
142 | -3.3033927e-002, | ||
143 | 6.2238030e-002, | ||
144 | -4.7879158e-002, | ||
145 | -1.9680886e-002, | ||
146 | -3.2198806e-002, | ||
147 | -4.0721657e-003, | ||
148 | -1.7973043e-002, | ||
149 | 9.3910391e-003, | ||
150 | -9.1117967e-002, | ||
151 | 3.6036154e-002, | ||
152 | -9.3285589e-003, | ||
153 | -3.9239303e-002, | ||
154 | -1.4022387e-001, | ||
155 | 1.1102588e-001, | ||
156 | -9.1222642e-002, | ||
157 | -4.0301199e-002, | ||
158 | 7.1912258e-002, | ||
159 | 1.5040754e-002, | ||
160 | 8.1648312e-002, | ||
161 | 3.9995645e-002, | ||
162 | -1.3388074e-002, | ||
163 | 1.9629547e-002, | ||
164 | 3.5710780e-003, | ||
165 | 1.1166215e-002, | ||
166 | -4.0137762e-002, | ||
167 | 3.6284046e-002, | ||
168 | 4.1404491e-002, | ||
169 | -5.8754380e-002, | ||
170 | -7.8104994e-003, | ||
171 | -5.3507568e-002, | ||
172 | 1.3005354e-002, | ||
173 | -1.6914462e-002, | ||
174 | 8.5270739e-002, | ||
175 | 3.9979512e-002, | ||
176 | 4.5752537e-002, | ||
177 | -3.1159018e-002, | ||
178 | 4.9213792e-002, | ||
179 | 6.1313765e-002, | ||
180 | 4.3386180e-002, | ||
181 | -1.1103888e-002, | ||
182 | -2.9414395e-002, | ||
183 | -1.2976305e-002, | ||
184 | 6.2751925e-002, | ||
185 | 2.6120284e-002, | ||
186 | -2.4616119e-002, | ||
187 | -3.6435894e-002, | ||
188 | 7.1182254e-002, | ||
189 | 2.2753153e-002, | ||
190 | 3.0188200e-002, | ||
191 | -3.1009759e-002, | ||
192 | -8.5616927e-002, | ||
193 | -4.6712075e-002, | ||
194 | 1.0069141e-002, | ||
195 | -1.2036765e-001, | ||
196 | 3.4740635e-002, | ||
197 | 1.0916700e-001, | ||
198 | -7.5289504e-002, | ||
199 | -5.3676914e-002, | ||
200 | -1.6396310e-002, | ||
201 | 5.2259303e-002, | ||
202 | -2.2119146e-002, | ||
203 | 4.3186864e-002, | ||
204 | 5.1169779e-002, | ||
205 | 6.6785827e-002, | ||
206 | 8.4849447e-002, | ||
207 | -5.2696816e-002, | ||
208 | -6.5414943e-003, | ||
209 | 8.6775788e-002, | ||
210 | 8.7802920e-003, | ||
211 | 2.8938998e-002, | ||
212 | -6.8520041e-003, | ||
213 | 5.1510683e-002, | ||
214 | -2.9026553e-002, | ||
215 | 3.8173521e-002, | ||
216 | 2.2338277e-002, | ||
217 | 3.0163548e-002, | ||
218 | -4.3077452e-002, | ||
219 | 7.9805371e-002, | ||
220 | 4.7317864e-002, | ||
221 | -3.1363067e-002, | ||
222 | 3.0903885e-002, | ||
223 | -1.3112581e-002, | ||
224 | 4.6251235e-002, | ||
225 | 2.5813919e-002, | ||
226 | -5.2188163e-002, | ||
227 | 5.9587326e-003, | ||
228 | 1.0092254e-002, | ||
229 | 1.2104228e-002, | ||
230 | 2.7865320e-002, | ||
231 | 3.4901635e-002, | ||
232 | -2.5736803e-002, | ||
233 | 1.3229570e-002, | ||
234 | 3.6694281e-003, | ||
235 | 3.3012708e-002, | ||
236 | 2.9284882e-002, | ||
237 | 3.0060870e-002, | ||
238 | 4.5508139e-002, | ||
239 | -3.6974026e-002, | ||
240 | 7.7034396e-002, | ||
241 | -6.8227707e-002, | ||
242 | 5.3618194e-002, | ||
243 | -6.1636629e-002, | ||
244 | 4.1438304e-002, | ||
245 | 1.1367451e-002, | ||
246 | -4.4009108e-002, | ||
247 | -2.3843912e-002, | ||
248 | -1.6703032e-002, | ||
249 | 3.7265590e-002, | ||
250 | -7.8425072e-003, | ||
251 | 7.0384481e-002, | ||
252 | -2.4218783e-002, | ||
253 | -3.5625536e-002, | ||
254 | 1.8010625e-002, | ||
255 | 1.1966647e-002, | ||
256 | 2.5491626e-003, | ||
257 | 3.1251434e-003, | ||
258 | -2.6075724e-002, | ||
259 | -4.3802442e-002, | ||
260 | -1.2920483e-002, | ||
261 | 3.3085779e-002, | ||
262 | -3.9037317e-003, | ||
263 | -2.8269926e-002, | ||
264 | 4.1542553e-002, | ||
265 | -8.2930418e-002, | ||
266 | 5.6657974e-002, | ||
267 | 3.4391329e-002, | ||
268 | -5.5825221e-002, | ||
269 | 6.8989268e-002, | ||
270 | 1.2541652e-003, | ||
271 | -7.7722092e-002, | ||
272 | -4.6334370e-003, | ||
273 | 3.1744148e-002, | ||
274 | -5.5503811e-002, | ||
275 | -3.4445949e-002, | ||
276 | -9.4038308e-003, | ||
277 | -2.7828988e-002, | ||
278 | 1.0887660e-001, | ||
279 | 1.3636863e-002, | ||
280 | -3.7585580e-002, | ||
281 | 4.0418722e-002, | ||
282 | -1.3737476e-002, | ||
283 | -5.0488197e-003, | ||
284 | 1.3194491e-001, | ||
285 | 7.2649277e-002, | ||
286 | -3.6200249e-002, | ||
287 | -4.1687712e-002, | ||
288 | -1.7974402e-001, | ||
289 | -9.9629449e-002, | ||
290 | -8.8510199e-002, | ||
291 | -3.2055261e-002, | ||
292 | 1.7036375e-002, | ||
293 | 1.8071052e-002, | ||
294 | 4.4934493e-002, | ||
295 | -1.0864015e-002, | ||
296 | 9.9226525e-003, | ||
297 | -1.6564939e-002, | ||
298 | -3.4734325e-002, | ||
299 | 3.5725355e-002, | ||
300 | 3.0344723e-002, | ||
301 | -3.6905057e-002, | ||
302 | 1.4666105e-002, | ||
303 | -9.1517247e-002, | ||
304 | -3.3012325e-002, | ||
305 | 5.8220711e-002, | ||
306 | -6.8047909e-003, | ||
307 | 3.6517819e-002, | ||
308 | 8.7157879e-002, | ||
309 | -1.4120887e-002, | ||
310 | 5.4666271e-002, | ||
311 | 2.0673658e-002, | ||
312 | -5.8489896e-002, | ||
313 | -1.0321028e-001, | ||
314 | 1.7051732e-002, | ||
315 | -4.4728363e-003, | ||
316 | 7.1522488e-004, | ||
317 | -6.6825032e-002, | ||
318 | -3.0624456e-002, | ||
319 | 5.7023563e-002, | ||
320 | -1.1878060e-002, | ||
321 | 1.7099754e-002, | ||
322 | 4.3931414e-002, | ||
323 | 6.1445253e-002, | ||
324 | 3.9676417e-002, | ||
325 | 7.7224665e-002, | ||
326 | 6.4921134e-002, | ||
327 | -5.6517669e-003, | ||
328 | 5.5906816e-002, | ||
329 | -2.1154100e-002, | ||
330 | 2.4198912e-002, | ||
331 | 1.2288710e-002, | ||
332 | 3.5640310e-002, | ||
333 | -3.7175887e-002, | ||
334 | -6.0273241e-002, | ||
335 | 6.4682700e-003, | ||
336 | 2.1266448e-002, | ||
337 | -6.8591151e-002, | ||
338 | 1.1184946e-002, | ||
339 | 4.6699013e-003, | ||
340 | -1.0346103e-001, | ||
341 | -7.7362572e-002, | ||
342 | 4.7383361e-003, | ||
343 | -1.4630850e-002, | ||
344 | 3.7812788e-002, | ||
345 | 1.6292353e-002, | ||
346 | -4.8009838e-002, | ||
347 | 8.0999615e-002, | ||
348 | 2.1004391e-003, | ||
349 | 1.5541126e-001, | ||
350 | -6.1366286e-003, | ||
351 | -7.1757358e-002, | ||
352 | -1.8036409e-002, | ||
353 | 4.4754181e-002, | ||
354 | 8.4250625e-003, | ||
355 | 2.0321052e-002, | ||
356 | 2.3096646e-002, | ||
357 | -4.7739081e-002, | ||
358 | -3.6540263e-002, | ||
359 | -1.3962473e-002, | ||
360 | -1.4429499e-002, | ||
361 | 5.4134628e-002, | ||
362 | -3.4826503e-002, | ||
363 | -9.5953591e-002, | ||
364 | -2.5723076e-003, | ||
365 | 2.5258029e-002, | ||
366 | -1.7985838e-002, | ||
367 | -3.2436879e-002, | ||
368 | 7.4368827e-002, | ||
369 | 7.8647624e-002, | ||
370 | 1.0656742e-002, | ||
371 | 8.4282290e-003, | ||
372 | 2.5266494e-002, | ||
373 | 1.0782181e-002, | ||
374 | 7.0122588e-002, | ||
375 | 4.5656108e-002, | ||
376 | -1.7103947e-002, | ||
377 | 4.2780530e-002, | ||
378 | -9.6794177e-003, | ||
379 | -6.4130219e-003, | ||
380 | -9.2925547e-002, | ||
381 | 5.4742908e-002, | ||
382 | -7.5128799e-002, | ||
383 | -7.3489810e-002, | ||
384 | -3.0056779e-003, | ||
385 | -7.9295585e-003, | ||
386 | -2.1268989e-002, | ||
387 | -1.8030581e-002, | ||
388 | 1.8197354e-002, | ||
389 | -9.1941398e-002, | ||
390 | -6.5053760e-002, | ||
391 | -2.8177888e-002, | ||
392 | 6.2682028e-002, | ||
393 | -2.5915727e-002, | ||
394 | -1.5832074e-002, | ||
395 | 6.8064152e-002, | ||
396 | 7.3910585e-003, | ||
397 | 9.9715351e-003, | ||
398 | 1.4832463e-002, | ||
399 | -8.5346638e-004, | ||
400 | 1.7638664e-002, | ||
401 | 3.0446443e-002, | ||
402 | -1.2396491e-002, | ||
403 | -5.8601288e-002, | ||
404 | -5.7627198e-003, | ||
405 | -7.1554886e-003, | ||
406 | -6.3799636e-003, | ||
407 | -7.9695655e-002, | ||
408 | 2.4753204e-002, | ||
409 | 8.6758471e-003, | ||
410 | -4.9728861e-002, | ||
411 | 2.0786272e-002, | ||
412 | -7.6560881e-002, | ||
413 | 1.8730544e-002, | ||
414 | 2.1715688e-002, | ||
415 | 4.1880687e-002, | ||
416 | -4.0154045e-002, | ||
417 | -3.0255220e-002, | ||
418 | 7.5668890e-002, | ||
419 | 2.6577586e-002, | ||
420 | 6.0758844e-002, | ||
421 | 4.1263811e-002, | ||
422 | -7.2132197e-002, | ||
423 | -5.4040115e-002, | ||
424 | 4.5831681e-002, | ||
425 | 2.9148772e-002, | ||
426 | -9.9761159e-002, | ||
427 | -2.4308664e-002, | ||
428 | -5.9443444e-002, | ||
429 | 3.9842573e-002, | ||
430 | -4.8058590e-002, | ||
431 | -1.6081315e-002, | ||
432 | 5.2772543e-002, | ||
433 | 1.9132275e-002, | ||
434 | 1.3499840e-002, | ||
435 | -2.5313375e-002, | ||
436 | 4.1852174e-002, | ||
437 | 2.8461234e-002, | ||
438 | 3.5598046e-002, | ||
439 | -4.2019346e-002, | ||
440 | 3.0022497e-002, | ||
441 | 1.3199080e-003, | ||
442 | 8.3394564e-002, | ||
443 | 2.2949521e-002, | ||
444 | 4.1566899e-002, | ||
445 | 1.1383869e-002, | ||
446 | -2.6939783e-002, | ||
447 | -1.8963007e-002, | ||
448 | -6.3268458e-002, | ||
449 | 5.8324716e-002, | ||
450 | 4.8789982e-002, | ||
451 | 5.6035385e-002, | ||
452 | -2.0057577e-002, | ||
453 | 4.8354809e-002, | ||
454 | 6.4102491e-002, | ||
455 | 8.5367473e-003, | ||
456 | -4.4917671e-003, | ||
457 | 5.3137245e-002, | ||
458 | -3.4406597e-003, | ||
459 | -2.5126308e-002, | ||
460 | 3.6564998e-003, | ||
461 | 9.6593471e-002, | ||
462 | 7.4728111e-002, | ||
463 | -6.7266129e-002, | ||
464 | -4.9014918e-002, | ||
465 | 7.2046324e-005, | ||
466 | 1.0162088e-001, | ||
467 | 3.4409693e-002, | ||
468 | 7.3462774e-003, | ||
469 | -8.0225074e-002, | ||
470 | 4.8609099e-002, | ||
471 | 3.2217993e-002, | ||
472 | -2.8071970e-002, | ||
473 | -3.6815087e-002, | ||
474 | 3.0467444e-002, | ||
475 | 4.3287817e-002, | ||
476 | -1.3733658e-002, | ||
477 | 2.5769175e-002, | ||
478 | 2.6532442e-002, | ||
479 | 6.3705272e-002, | ||
480 | 9.0108580e-004, | ||
481 | -8.9331571e-003, | ||
482 | 4.0743375e-002, | ||
483 | 2.1807528e-002, | ||
484 | 7.9702732e-002, | ||
485 | -7.5750752e-003, | ||
486 | 7.0674335e-002, | ||
487 | 3.7582849e-002, | ||
488 | 3.9334641e-003, | ||
489 | -2.5679423e-002, | ||
490 | 2.2647574e-002, | ||
491 | -6.4712014e-002, | ||
492 | 2.4315794e-002, | ||
493 | 1.5494849e-002, | ||
494 | -3.9942923e-002, | ||
495 | 3.3496104e-002, | ||
496 | -5.9740340e-002, | ||
497 | 3.5474677e-002, | ||
498 | 6.6577221e-002, | ||
499 | 6.8351408e-002, | ||
500 | -7.7174045e-002, | ||
501 | -3.3267903e-002, | ||
502 | -4.3616992e-002, | ||
503 | 1.2970427e-001, | ||
504 | 6.0899210e-002, | ||
505 | 4.3444379e-003, | ||
506 | -1.0402039e-001, | ||
507 | 4.3108587e-002, | ||
508 | 1.3577371e-002, | ||
509 | 3.3900628e-002, | ||
510 | 7.3707838e-003, | ||
511 | -1.5925799e-002, | ||
512 | 6.4439821e-002, | ||
513 | 1.7075281e-003, | ||
514 | 1.0684273e-001, | ||
515 | 1.3675111e-002, | ||
516 | -1.8111888e-003, | ||
517 | -2.8508186e-002, | ||
518 | -6.5596762e-002, | ||
519 | 1.8536230e-002, | ||
520 | 2.3318748e-002, | ||
521 | 4.7302415e-002, | ||
522 | 7.7239329e-003, | ||
523 | -2.4929896e-002, | ||
524 | -3.5669784e-002, | ||
525 | 4.8605025e-002, | ||
526 | 9.7598834e-002, | ||
527 | 3.3591893e-002, | ||
528 | 1.3978895e-002, | ||
529 | 2.2590039e-002, | ||
530 | -5.5155328e-002, | ||
531 | -2.3844007e-002, | ||
532 | -2.8932963e-002, | ||
533 | -4.5784933e-002, | ||
534 | -2.5579789e-002, | ||
535 | 8.6706332e-002, | ||
536 | 8.5991126e-002, | ||
537 | -4.4830492e-002, | ||
538 | 1.7419718e-002, | ||
539 | 1.4916965e-002, | ||
540 | -6.2744229e-002, | ||
541 | -2.1218715e-002, | ||
542 | 5.9749921e-002, | ||
543 | 2.6471628e-003, | ||
544 | 1.4696082e-002, | ||
545 | -1.1916464e-001, | ||
546 | -7.4054943e-002, | ||
547 | 3.3702032e-002, | ||
548 | -7.2744375e-002, | ||
549 | 2.0153878e-002, | ||
550 | -4.7562683e-002, | ||
551 | -3.2418295e-002, | ||
552 | 1.8784044e-002, | ||
553 | 9.4509719e-002, | ||
554 | 8.6064590e-002, | ||
555 | -1.2657551e-002, | ||
556 | -3.8219708e-002, | ||
557 | -5.9906689e-002, | ||
558 | 3.8677878e-002, | ||
559 | 3.2909039e-002, | ||
560 | 1.3356926e-002, | ||
561 | -1.9001381e-002, | ||
562 | -3.9834512e-002, | ||
563 | 1.6185466e-002, | ||
564 | -2.1554965e-002, | ||
565 | -1.0883439e-001, | ||
566 | -2.9635956e-002, | ||
567 | 1.2873885e-002, | ||
568 | 2.7852743e-002, | ||
569 | 3.5614484e-003, | ||
570 | -4.7306763e-002, | ||
571 | -1.0771995e-001, | ||
572 | -7.9289260e-004, | ||
573 | 1.1021590e-001, | ||
574 | -6.1261912e-003, | ||
575 | 5.2735506e-002, | ||
576 | -5.0261529e-002, | ||
577 | 3.2092184e-002, | ||
578 | 3.1401447e-002, | ||
579 | 2.6629993e-002, | ||
580 | -2.9882337e-003, | ||
581 | -6.0317700e-002, | ||
582 | -3.0940994e-002, | ||
583 | -3.8375379e-002, | ||
584 | -1.0663192e-001, | ||
585 | -1.1058175e-002, | ||
586 | -5.6424824e-002, | ||
587 | -7.7026313e-003, | ||
588 | -4.1079471e-002, | ||
589 | -2.1629167e-002, | ||
590 | -2.6973772e-002, | ||
591 | -4.5878364e-002, | ||
592 | 1.5542578e-002, | ||
593 | -4.9103021e-002, | ||
594 | -1.0554701e-002, | ||
595 | -5.0947614e-002, | ||
596 | -3.1865395e-002, | ||
597 | 9.0008999e-002, | ||
598 | 4.5801038e-002, | ||
599 | 1.5787324e-002, | ||
600 | 6.1816926e-002, | ||
601 | 3.9975029e-002, | ||
602 | -8.0101743e-002, | ||
603 | 3.6589676e-002, | ||
604 | -4.0044532e-002, | ||
605 | -5.4152676e-003, | ||
606 | -2.7100833e-002, | ||
607 | 2.0669295e-003, | ||
608 | 4.2072166e-002, | ||
609 | -4.8541169e-002, | ||
610 | -6.0994910e-002, | ||
611 | 7.2269246e-002, | ||
612 | 1.8547974e-002, | ||
613 | 3.2317037e-002, | ||
614 | -3.7668570e-002, | ||
615 | 2.3090187e-002, | ||
616 | -8.4282566e-003, | ||
617 | 1.2909956e-002, | ||
618 | -4.6799208e-003, | ||
619 | -7.5882838e-002, | ||
620 | -4.5005968e-002, | ||
621 | 6.0924318e-002, | ||
622 | 1.5170746e-002, | ||
623 | -8.0718858e-003, | ||
624 | -3.1913614e-002, | ||
625 | 2.9448478e-002, | ||
626 | 5.6982375e-002, | ||
627 | -2.2421475e-002, | ||
628 | 2.7408554e-002, | ||
629 | -1.0052456e-001, | ||
630 | -3.0342741e-002, | ||
631 | -8.0221320e-002, | ||
632 | -5.2820631e-002, | ||
633 | 1.4287569e-002, | ||
634 | -3.5261023e-002, | ||
635 | -1.2712299e-002, | ||
636 | 1.0298138e-002, | ||
637 | -7.4545734e-002, | ||
638 | -7.1662807e-003, | ||
639 | -6.3049311e-002, | ||
640 | -3.3128714e-003, | ||
641 | -3.7018937e-002, | ||
642 | -9.2155629e-002, | ||
643 | 4.4295353e-003, | ||
644 | -2.5345078e-002, | ||
645 | -5.0175815e-004, | ||
646 | -2.2425974e-002, | ||
647 | 7.0790673e-002, | ||
648 | 4.6067398e-002, | ||
649 | 1.3356450e-002, | ||
650 | -7.5350427e-002, | ||
651 | 9.2272647e-002, | ||
652 | -6.0388207e-002, | ||
653 | 6.2880311e-002, | ||
654 | -4.6813092e-002, | ||
655 | 6.4358587e-002, | ||
656 | 6.5476593e-002, | ||
657 | -5.0385005e-002, | ||
658 | 1.1259635e-002, | ||
659 | -2.8642227e-002, | ||
660 | 6.0591769e-003, | ||
661 | 7.8259699e-003, | ||
662 | -4.0086083e-002, | ||
663 | -1.3107082e-002, | ||
664 | -2.5073934e-002, | ||
665 | 1.5301678e-002, | ||
666 | -6.1350007e-002, | ||
667 | -4.0860320e-002, | ||
668 | 4.5224779e-002, | ||
669 | -4.4892524e-002, | ||
670 | 8.8006431e-002, | ||
671 | -3.3282403e-002, | ||
672 | -5.6195537e-002, | ||
673 | -1.1931638e-001, | ||
674 | -6.8019421e-002, | ||
675 | -7.0651820e-003, | ||
676 | 1.0114029e-001, | ||
677 | 2.6799939e-002, | ||
678 | -4.5414349e-002, | ||
679 | 7.3662653e-002, | ||
680 | 2.6023897e-002, | ||
681 | -7.7197973e-002, | ||
682 | 1.8472004e-002, | ||
683 | 6.4325310e-003, | ||
684 | 1.0535758e-001, | ||
685 | -8.2482506e-002, | ||
686 | -1.0868944e-001, | ||
687 | 8.7186828e-002, | ||
688 | 4.2331149e-003, | ||
689 | 6.6302594e-003, | ||
690 | 5.0652627e-002, | ||
691 | -2.6295176e-002, | ||
692 | 1.1319735e-002, | ||
693 | -5.3688488e-002, | ||
694 | -8.3685938e-002, | ||
695 | 3.8054233e-002, | ||
696 | -2.5923609e-002, | ||
697 | 8.7603907e-002, | ||
698 | 4.4975322e-002, | ||
699 | 2.0615118e-002, | ||
700 | 3.7674950e-002, | ||
701 | 5.6434838e-002, | ||
702 | 1.0977012e-001, | ||
703 | 2.1349762e-003, | ||
704 | -1.4936346e-004, | ||
705 | 6.7930892e-002, | ||
706 | 3.2086590e-003, | ||
707 | -4.5878929e-002, | ||
708 | -4.4181125e-002, | ||
709 | 2.4715658e-002, | ||
710 | 7.9994617e-002, | ||
711 | 5.2384101e-002, | ||
712 | -9.5190518e-003, | ||
713 | -3.7239495e-002, | ||
714 | 1.9883359e-002, | ||
715 | 4.0730677e-003, | ||
716 | -1.1677479e-001, | ||
717 | -2.6374780e-002, | ||
718 | -7.9398641e-002, | ||
719 | -3.5523570e-002, | ||
720 | -1.8151457e-002, | ||
721 | -3.7191923e-002, | ||
722 | -1.0831981e-001, | ||
723 | 5.5198514e-002, | ||
724 | 8.2754639e-002, | ||
725 | -5.5996264e-002, | ||
726 | -6.5431323e-002, | ||
727 | 1.6211145e-002, | ||
728 | -6.8206035e-002, | ||
729 | -2.9416838e-002, | ||
730 | 5.3307249e-002, | ||
731 | 1.7472763e-002, | ||
732 | 3.7312882e-003, | ||
733 | -5.1498829e-002, | ||
734 | -6.2257189e-002, | ||
735 | -2.9692831e-002, | ||
736 | -2.4493198e-002, | ||
737 | -2.7319437e-003, | ||
738 | 5.8815114e-002, | ||
739 | -6.3249182e-002, | ||
740 | 2.0730820e-002, | ||
741 | 9.5563463e-003, | ||
742 | -2.2720249e-002, | ||
743 | 2.5296131e-002, | ||
744 | -1.9878781e-002, | ||
745 | -3.4238910e-002, | ||
746 | -2.4677844e-002, | ||
747 | 6.9236841e-002, | ||
748 | -3.4704441e-002, | ||
749 | -3.9318071e-002, | ||
750 | 5.7750083e-002, | ||
751 | 3.4211433e-002, | ||
752 | -5.0475709e-002, | ||
753 | 2.5174181e-002, | ||
754 | -4.6996048e-002, | ||
755 | 1.6221876e-002, | ||
756 | -2.6204170e-002, | ||
757 | 1.0630488e-002, | ||
758 | 4.5517196e-003, | ||
759 | 8.3863415e-002, | ||
760 | 4.8780028e-002, | ||
761 | 2.3656142e-002, | ||
762 | -8.5385372e-002, | ||
763 | -7.6803464e-003, | ||
764 | 1.3583644e-002, | ||
765 | 1.0156741e-001, | ||
766 | 1.1623477e-001, | ||
767 | 3.0703572e-002, | ||
768 | -1.8790478e-002, | ||
769 | -2.5434562e-002, | ||
770 | 2.6081461e-002, | ||
771 | -8.0973679e-002, | ||
772 | 4.7528492e-003, | ||
773 | 5.1709027e-002, | ||
774 | -2.7152886e-002, | ||
775 | 3.3078882e-002, | ||
776 | 9.5807816e-002, | ||
777 | -1.6742069e-002, | ||
778 | 5.2847289e-002, | ||
779 | 7.4190627e-002, | ||
780 | 8.4661383e-003, | ||
781 | -1.7127745e-002, | ||
782 | 2.5387176e-002, | ||
783 | -2.4425657e-002, | ||
784 | 1.0363293e-002, | ||
785 | 3.2901544e-002, | ||
786 | 2.4049224e-002, | ||
787 | -3.6364045e-002, | ||
788 | -1.8374024e-002, | ||
789 | 1.9170206e-002, | ||
790 | 3.5899319e-002, | ||
791 | 2.2884438e-002, | ||
792 | -4.2986435e-004, | ||
793 | -3.7263522e-002, | ||
794 | -2.4107817e-002, | ||
795 | -1.0160656e-002, | ||
796 | -5.2244378e-003, | ||
797 | 8.4713192e-002, | ||
798 | -3.3175117e-003, | ||
799 | -6.8918873e-002, | ||
800 | -1.0757423e-001, | ||
801 | 1.9995005e-002, | ||
802 | 1.0018587e-002, | ||
803 | -1.0031442e-003, | ||
804 | -2.6646668e-002, | ||
805 | -1.4140223e-002, | ||
806 | -1.9093589e-002, | ||
807 | 8.2412659e-002, | ||
808 | 5.0569231e-002, | ||
809 | -1.9249580e-003, | ||
810 | 1.6857775e-002, | ||
811 | 4.4516048e-002, | ||
812 | 2.9634803e-002, | ||
813 | -7.4675793e-002, | ||
814 | 6.9128286e-002, | ||
815 | 1.7838807e-002, | ||
816 | -1.5706998e-002, | ||
817 | 2.3497836e-002, | ||
818 | -2.7256676e-002, | ||
819 | -1.6892391e-002, | ||
820 | -6.2498894e-002, | ||
821 | 1.8814550e-002, | ||
822 | 6.7802861e-002, | ||
823 | -4.5010985e-002, | ||
824 | -7.9693020e-004, | ||
825 | -1.6417629e-002, | ||
826 | -1.6571552e-002, | ||
827 | -3.2170429e-002, | ||
828 | -3.1451461e-002, | ||
829 | 5.9127646e-002, | ||
830 | 4.2496269e-002, | ||
831 | 5.8440594e-002, | ||
832 | -3.7761868e-002, | ||
833 | 1.4543937e-001, | ||
834 | 4.6291259e-003, | ||
835 | -8.8031773e-003, | ||
836 | -3.7376149e-002, | ||
837 | 4.4444334e-002, | ||
838 | -3.2946165e-002, | ||
839 | 2.7709611e-002, | ||
840 | -4.6454274e-002, | ||
841 | -5.4184987e-003, | ||
842 | 1.9082159e-002, | ||
843 | 1.1097683e-003, | ||
844 | -7.1272377e-002, | ||
845 | 1.8112885e-003, | ||
846 | 2.6898226e-003, | ||
847 | -3.0686681e-002, | ||
848 | -1.9829229e-002, | ||
849 | 3.0867601e-002, | ||
850 | -6.2758817e-002, | ||
851 | -2.2846248e-002, | ||
852 | 6.0573296e-002, | ||
853 | 3.7414532e-002, | ||
854 | 3.6169907e-002, | ||
855 | -2.3442499e-003, | ||
856 | 2.5963449e-002, | ||
857 | -5.0418274e-002, | ||
858 | -7.0858380e-003, | ||
859 | 2.2793366e-002, | ||
860 | -4.5274123e-002, | ||
861 | 4.4264571e-002, | ||
862 | -5.5435866e-002, | ||
863 | -6.0444822e-002, | ||
864 | -4.4730927e-002, | ||
865 | -2.6702128e-003, | ||
866 | 3.0721521e-002, | ||
867 | 3.9441000e-003, | ||
868 | 8.3714830e-002, | ||
869 | -1.2824805e-002, | ||
870 | 8.9065027e-002, | ||
871 | -4.1791317e-002, | ||
872 | -9.6506591e-004, | ||
873 | -2.2150161e-002, | ||
874 | -5.4266803e-002, | ||
875 | -7.9756811e-002, | ||
876 | 2.9723999e-003, | ||
877 | -5.4652294e-004, | ||
878 | -8.3350132e-002, | ||
879 | 1.0241351e-002, | ||
880 | -9.6004506e-002, | ||
881 | 1.1043342e-002, | ||
882 | -1.0036827e-001, | ||
883 | 5.4166215e-002, | ||
884 | 5.3435462e-002, | ||
885 | 1.0602215e-002, | ||
886 | 2.9868847e-002, | ||
887 | -2.4597423e-003, | ||
888 | 1.1437786e-002, | ||
889 | -4.2279579e-002, | ||
890 | -8.8732642e-003, | ||
891 | -2.9476925e-002, | ||
892 | 3.6694209e-002, | ||
893 | 3.3176455e-005, | ||
894 | -7.3778252e-003, | ||
895 | -3.9144818e-002, | ||
896 | -8.3308862e-003, | ||
897 | 4.6791993e-002, | ||
898 | -1.7037485e-003, | ||
899 | 4.5892237e-002, | ||
900 | 1.5597981e-002, | ||
901 | -5.6087508e-002, | ||
902 | -4.1107610e-005, | ||
903 | -1.0683418e-002, | ||
904 | -2.6103976e-002, | ||
905 | -8.4348999e-003, | ||
906 | 3.2082383e-002, | ||
907 | 1.4938214e-001, | ||
908 | 3.9964806e-002, | ||
909 | -7.8254583e-003, | ||
910 | 4.6722479e-002, | ||
911 | 9.3200915e-002, | ||
912 | 2.4464994e-002, | ||
913 | 8.3718835e-004, | ||
914 | 1.5250387e-002, | ||
915 | -1.2400454e-001, | ||
916 | -2.8639656e-002, | ||
917 | -1.5938766e-002, | ||
918 | -2.5676238e-002, | ||
919 | -5.1847115e-002, | ||
920 | 1.7639941e-003, | ||
921 | 4.9326733e-003, | ||
922 | -1.5856443e-002, | ||
923 | -9.1307767e-004, | ||
924 | -1.5554562e-002, | ||
925 | 2.5941199e-002, | ||
926 | -2.9757970e-002, | ||
927 | 1.2201936e-001, | ||
928 | 8.0973215e-002, | ||
929 | 1.7146982e-002, | ||
930 | 1.4736881e-002, | ||
931 | 6.0467585e-002, | ||
932 | 5.4698972e-002, | ||
933 | 2.5876279e-002, | ||
934 | 1.0164087e-002, | ||
935 | 3.8201202e-002, | ||
936 | -6.0518215e-002, | ||
937 | -1.3895876e-002, | ||
938 | 3.4728204e-002, | ||
939 | -1.1711300e-001, | ||
940 | -1.1216734e-002, | ||
941 | -3.9340786e-002, | ||
942 | -2.7309751e-002, | ||
943 | 5.9063770e-003, | ||
944 | 2.0738498e-002, | ||
945 | -1.3812395e-002, | ||
946 | -5.7982126e-002, | ||
947 | -9.3680977e-002, | ||
948 | -4.9666791e-002, | ||
949 | -2.6529709e-002, | ||
950 | 5.2766295e-002, | ||
951 | -2.1506279e-002, | ||
952 | 9.3091830e-002, | ||
953 | -3.5081971e-002, | ||
954 | 1.4449703e-002, | ||
955 | 5.8269304e-002, | ||
956 | 1.0329005e-001, | ||
957 | -3.4264617e-002, | ||
958 | -1.9998674e-002, | ||
959 | 4.0219340e-002, | ||
960 | 2.0651887e-002, | ||
961 | 5.2208561e-003, | ||
962 | 2.1487670e-002, | ||
963 | 2.4204968e-002, | ||
964 | 3.0673837e-002, | ||
965 | -8.5293543e-003, | ||
966 | -5.3952186e-002, | ||
967 | 8.9865270e-002, | ||
968 | 1.0436717e-001, | ||
969 | -9.7344984e-003, | ||
970 | -9.7393746e-003, | ||
971 | 5.2162345e-002, | ||
972 | 6.8291250e-003, | ||
973 | -3.3926390e-002, | ||
974 | -3.5345884e-002, | ||
975 | -2.1419424e-002, | ||
976 | 2.4503709e-002, | ||
977 | 4.4872568e-002, | ||
978 | -3.6811060e-002, | ||
979 | 4.6761401e-002, | ||
980 | 4.9242905e-002, | ||
981 | 2.9535711e-002, | ||
982 | -7.5315008e-003, | ||
983 | 8.4931550e-003, | ||
984 | 1.3235857e-001, | ||
985 | 8.4181971e-002, | ||
986 | -6.3526263e-002, | ||
987 | 4.1655473e-003, | ||
988 | 6.3417279e-003, | ||
989 | -1.3065747e-002, | ||
990 | -5.7645495e-002, | ||
991 | 1.8950407e-002, | ||
992 | 3.6717958e-002, | ||
993 | 1.2058270e-001, | ||
994 | 2.9698808e-002, | ||
995 | 6.3712863e-002, | ||
996 | -7.8927013e-002, | ||
997 | -1.1092228e-001, | ||
998 | 7.5127329e-002, | ||
999 | 3.6792936e-002, | ||
1000 | 1.8047426e-002, | ||
1001 | 1.6372435e-002, | ||
1002 | -1.1358573e-002, | ||
1003 | -1.1114199e-002, | ||
1004 | -3.1011890e-003, | ||
1005 | 1.2753148e-001, | ||
1006 | -1.3063278e-003, | ||
1007 | 2.9175038e-002, | ||
1008 | 1.0744000e-002, | ||
1009 | 8.5396074e-003, | ||
1010 | 3.0555550e-002, | ||
1011 | 1.9846964e-002, | ||
1012 | -2.0887290e-003, | ||
1013 | 7.4108765e-004, | ||
1014 | -6.8980202e-002, | ||
1015 | -6.9539294e-002, | ||
1016 | -7.1891402e-002, | ||
1017 | 2.6483042e-002, | ||
1018 | -1.0604522e-001, | ||
1019 | 1.4946154e-002, | ||
1020 | -2.0885875e-002, | ||
1021 | 8.1620406e-002, | ||
1022 | 2.2391518e-003, | ||
1023 | -4.3108583e-002, | ||
1024 | -2.8345459e-002, | ||
1025 | 2.1767961e-002, | ||
1026 | -4.1509277e-002, | ||
1027 | 5.0332798e-002, | ||
1028 | -3.0747398e-003, | ||
1029 | 8.1280247e-003, | ||
1030 | -2.8574311e-002, | ||
1031 | -3.7557299e-002, | ||
1032 | 4.6116535e-002, | ||
1033 | -7.5548776e-002, | ||
1034 | 4.2485208e-002, | ||
1035 | -1.2735059e-002, | ||
1036 | -4.8713882e-002, | ||
1037 | 3.4080268e-002, | ||
1038 | 3.8109829e-002, | ||
1039 | -7.9933234e-002, | ||
1040 | 5.0868655e-003, | ||
1041 | -3.6956005e-002, | ||
1042 | -6.5608678e-003, | ||
1043 | 6.1566793e-002, | ||
1044 | 3.9747615e-002, | ||
1045 | -7.0776849e-003, | ||
1046 | -1.0039001e-002, | ||
1047 | 1.0635588e-001, | ||
1048 | -3.2262564e-002, | ||
1049 | 6.6284637e-002, | ||
1050 | -1.5602956e-002, | ||
1051 | 9.8826341e-002, | ||
1052 | 2.8765472e-002, | ||
1053 | 4.9988770e-002, | ||
1054 | 2.8083188e-002, | ||
1055 | 3.7850396e-003, | ||
1056 | 3.8099036e-002, | ||
1057 | -6.2803094e-002, | ||
1058 | -8.0284071e-003, | ||
1059 | 1.7678623e-002, | ||
1060 | 1.5384533e-001, | ||
1061 | 3.0604908e-002, | ||
1062 | -2.2938654e-002, | ||
1063 | -6.6147444e-003, | ||
1064 | 8.0228244e-003, | ||
1065 | 6.3229249e-002, | ||
1066 | 1.9888120e-002, | ||
1067 | -1.2483914e-002, | ||
1068 | -3.3020847e-002, | ||
1069 | 5.4285124e-002, | ||
1070 | -2.2046600e-002, | ||
1071 | 7.6270296e-002, | ||
1072 | -3.8125981e-002, | ||
1073 | 4.2116981e-002, | ||
1074 | 6.8249119e-002, | ||
1075 | 4.9569658e-002, | ||
1076 | -1.2181580e-002, | ||
1077 | -3.3950151e-002, | ||
1078 | -3.3512560e-002, | ||
1079 | -4.0037716e-002, | ||
1080 | 3.8517111e-002, | ||
1081 | -3.0444190e-002, | ||
1082 | -1.8608773e-002, | ||
1083 | 1.5643509e-002, | ||
1084 | 4.0250976e-002, | ||
1085 | 1.9776990e-002, | ||
1086 | -3.1560979e-002, | ||
1087 | -3.1229293e-003, | ||
1088 | -2.5832801e-003, | ||
1089 | 2.7968081e-002, | ||
1090 | -5.6392681e-002, | ||
1091 | 4.7360525e-002, | ||
1092 | 3.8619319e-003, | ||
1093 | 9.9891506e-002, | ||
1094 | -1.8199130e-003, | ||
1095 | 3.1119514e-003, | ||
1096 | -9.1106029e-002, | ||
1097 | -1.4519250e-002, | ||
1098 | 3.7010312e-002, | ||
1099 | -1.1213690e-002, | ||
1100 | 2.1256532e-002, | ||
1101 | -5.3987387e-002, | ||
1102 | 5.7866117e-002, | ||
1103 | -4.2626330e-002, | ||
1104 | -3.3483769e-002, | ||
1105 | -5.2898877e-002, | ||
1106 | -6.7225352e-002, | ||
1107 | 5.1417756e-002, | ||
1108 | 1.3929020e-003, | ||
1109 | 5.2022234e-002, | ||
1110 | 1.0592230e-001, | ||
1111 | -6.8998892e-002, | ||
1112 | -7.3435118e-002, | ||
1113 | 3.0523655e-002, | ||
1114 | -5.7162591e-003, | ||
1115 | -3.2771503e-002, | ||
1116 | 9.2367770e-003, | ||
1117 | -6.7747716e-003, | ||
1118 | 1.0333099e-002, | ||
1119 | -1.5577876e-002, | ||
1120 | -6.7817347e-002, | ||
1121 | -6.6533637e-002, | ||
1122 | -6.3984097e-002, | ||
1123 | 5.6216531e-002, | ||
1124 | 1.5579751e-002, | ||
1125 | -2.7104760e-003, | ||
1126 | 2.0901166e-002, | ||
1127 | -1.1389339e-002, | ||
1128 | 2.4314314e-002, | ||
1129 | 9.6320945e-003, | ||
1130 | -3.5425250e-002, | ||
1131 | 2.9816167e-002, | ||
1132 | -1.0582802e-001, | ||
1133 | 7.9031755e-002, | ||
1134 | 5.8936482e-002, | ||
1135 | 4.9235081e-002, | ||
1136 | -2.0598427e-002, | ||
1137 | 2.7257218e-002, | ||
1138 | 8.3473318e-002, | ||
1139 | 1.0047121e-001, | ||
1140 | 7.7116867e-002, | ||
1141 | 3.9518492e-002, | ||
1142 | 6.3112265e-003, | ||
1143 | -6.8158283e-002, | ||
1144 | 8.2755720e-003, | ||
1145 | -1.4671408e-002, | ||
1146 | 1.0928921e-001, | ||
1147 | -5.3580922e-002, | ||
1148 | -4.9000311e-002, | ||
1149 | 9.9920986e-002, | ||
1150 | 3.5724099e-002, | ||
1151 | 3.0645803e-002, | ||
1152 | 2.1810846e-003, | ||
1153 | -3.5472111e-002, | ||
1154 | -5.8047398e-002, | ||
1155 | 4.6521237e-002, | ||
1156 | 5.3030675e-002, | ||
1157 | 1.6183593e-002, | ||
1158 | 4.7161315e-002, | ||
1159 | 1.5496372e-002, | ||
1160 | -2.6065334e-002, | ||
1161 | 5.4108355e-002, | ||
1162 | 1.1113747e-001, | ||
1163 | -4.3256641e-002, | ||
1164 | 1.6776514e-002, | ||
1165 | -9.2777987e-002, | ||
1166 | 1.0831881e-001, | ||
1167 | 2.6550297e-002, | ||
1168 | 5.6809097e-002, | ||
1169 | 4.1708284e-003, | ||
1170 | -9.3188930e-002, | ||
1171 | -3.7166019e-002, | ||
1172 | 7.2595776e-002, | ||
1173 | -5.8774162e-002, | ||
1174 | -8.4078954e-003, | ||
1175 | -8.3732623e-002, | ||
1176 | -1.4874571e-002, | ||
1177 | 4.1882968e-002, | ||
1178 | -3.2712401e-002, | ||
1179 | -2.7953154e-002, | ||
1180 | 1.1313205e-002, | ||
1181 | 4.9524990e-002, | ||
1182 | 2.0294329e-003, | ||
1183 | 3.8285760e-002, | ||
1184 | -1.4648978e-002, | ||
1185 | -3.5010308e-002, | ||
1186 | 3.2018027e-002, | ||
1187 | -1.7151604e-002, | ||
1188 | -9.6536966e-002, | ||
1189 | -4.6726273e-002, | ||
1190 | 1.7288478e-002, | ||
1191 | 1.5788740e-002, | ||
1192 | 5.2848095e-003, | ||
1193 | 4.1795447e-002, | ||
1194 | 4.6331282e-002, | ||
1195 | 7.0958286e-002, | ||
1196 | -3.3004895e-002, | ||
1197 | -1.5541634e-002, | ||
1198 | -6.4899819e-002, | ||
1199 | 4.4813983e-002, | ||
1200 | 2.1314689e-002, | ||
1201 | 2.5903378e-002, | ||
1202 | 3.1412995e-002, | ||
1203 | 2.7655815e-002, | ||
1204 | 7.0916690e-003, | ||
1205 | 3.6198660e-002, | ||
1206 | -2.9768515e-002, | ||
1207 | 5.8014817e-002, | ||
1208 | -5.8727472e-002, | ||
1209 | -1.2787628e-002, | ||
1210 | 1.2855854e-001, | ||
1211 | -7.0659467e-002, | ||
1212 | -9.9019211e-002, | ||
1213 | -3.2969432e-002, | ||
1214 | 3.1190632e-002, | ||
1215 | 6.5956753e-003, | ||
1216 | -1.6987652e-002, | ||
1217 | 4.0088843e-002, | ||
1218 | -1.0857916e-001, | ||
1219 | 1.1385790e-002, | ||
1220 | 6.8736591e-002, | ||
1221 | 9.1859027e-003, | ||
1222 | -2.2753959e-002, | ||
1223 | 6.5639798e-002, | ||
1224 | 4.4619698e-002, | ||
1225 | -5.3424194e-004, | ||
1226 | 3.2475239e-002, | ||
1227 | -5.5982848e-002, | ||
1228 | -5.9416171e-003, | ||
1229 | -2.6137328e-002, | ||
1230 | 4.7534015e-002, | ||
1231 | -4.3905563e-002, | ||
1232 | 4.7139261e-002, | ||
1233 | -5.0539423e-002, | ||
1234 | -5.2509019e-003, | ||
1235 | -8.4340990e-003, | ||
1236 | 1.7266091e-002, | ||
1237 | -6.5954891e-002, | ||
1238 | -1.1344100e-001, | ||
1239 | -2.5794929e-002, | ||
1240 | 5.3678895e-002, | ||
1241 | -1.0500180e-002, | ||
1242 | 5.6847837e-002, | ||
1243 | -3.0370988e-002, | ||
1244 | -9.2272021e-004, | ||
1245 | -1.1716566e-002, | ||
1246 | -6.7153889e-002, | ||
1247 | -4.9491944e-002, | ||
1248 | -2.7151079e-002, | ||
1249 | 4.9084906e-003, | ||
1250 | -3.3137805e-002, | ||
1251 | -5.7067625e-002, | ||
1252 | -3.5807416e-003, | ||
1253 | -1.9012110e-002, | ||
1254 | -2.3489886e-002, | ||
1255 | -6.6147208e-002, | ||
1256 | -1.9730903e-002, | ||
1257 | -5.7617192e-002, | ||
1258 | -1.7743738e-002, | ||
1259 | 6.2747755e-002, | ||
1260 | 3.0746059e-002, | ||
1261 | -2.1208817e-002, | ||
1262 | 1.0724738e-002, | ||
1263 | -9.5295048e-002, | ||
1264 | -8.3696293e-003, | ||
1265 | 2.8928609e-002, | ||
1266 | 7.7547429e-002, | ||
1267 | -2.8433474e-002, | ||
1268 | 3.9000811e-002, | ||
1269 | 1.8594177e-002, | ||
1270 | 7.3604845e-002, | ||
1271 | -4.0570215e-002, | ||
1272 | 4.0428101e-002, | ||
1273 | 5.2162122e-002, | ||
1274 | 6.9720490e-002, | ||
1275 | 1.3917348e-003, | ||
1276 | -4.1967149e-002, | ||
1277 | 1.2040326e-002, | ||
1278 | -9.0859684e-002, | ||
1279 | 3.0619641e-002, | ||
1280 | 7.9828021e-002, | ||
1281 | -9.5582231e-002, | ||
1282 | 4.4977158e-003, | ||
1283 | 5.3050166e-002, | ||
1284 | -3.9280557e-002, | ||
1285 | 2.1825815e-003, | ||
1286 | 2.6836286e-002, | ||
1287 | -1.0693240e-002, | ||
1288 | 1.2507669e-002, | ||
1289 | 8.7551531e-002, | ||
1290 | -4.2170924e-002, | ||
1291 | 7.4021050e-002, | ||
1292 | -5.0257861e-002, | ||
1293 | 4.2440318e-003, | ||
1294 | 2.8498362e-002, | ||
1295 | 4.0712278e-002, | ||
1296 | 1.3630666e-002, | ||
1297 | 3.7506385e-002, | ||
1298 | 2.9021782e-002, | ||
1299 | 9.4969857e-003, | ||
1300 | 7.3668316e-002, | ||
1301 | -1.0430524e-002, | ||
1302 | 7.8640111e-003, | ||
1303 | -1.9579539e-002, | ||
1304 | -1.3354780e-002, | ||
1305 | 4.6553749e-002, | ||
1306 | -1.5359398e-002, | ||
1307 | -3.6958328e-002, | ||
1308 | 3.9183126e-002, | ||
1309 | 9.0763364e-002, | ||
1310 | -5.7310947e-002, | ||
1311 | 6.8567752e-002, | ||
1312 | 3.0379537e-002, | ||
1313 | -1.7131879e-002, | ||
1314 | -4.9845297e-002, | ||
1315 | 6.6236979e-002, | ||
1316 | -3.5226094e-002, | ||
1317 | 4.1319436e-002, | ||
1318 | -1.0414640e-002, | ||
1319 | -7.3110434e-002, | ||
1320 | -6.7060543e-003, | ||
1321 | -2.2661736e-003, | ||
1322 | 5.4214708e-002, | ||
1323 | -5.6731971e-002, | ||
1324 | 8.0169623e-002, | ||
1325 | 6.8708173e-002, | ||
1326 | 5.1555900e-002, | ||
1327 | -2.3028383e-002, | ||
1328 | 2.3845756e-003, | ||
1329 | 4.3290569e-002, | ||
1330 | -5.0088302e-003, | ||
1331 | -8.5495950e-003, | ||
1332 | -2.2929081e-002, | ||
1333 | -1.4934858e-002, | ||
1334 | -1.9331882e-002, | ||
1335 | 3.1952820e-002, | ||
1336 | 2.2837591e-002, | ||
1337 | -6.5833588e-003, | ||
1338 | 9.3564125e-002, | ||
1339 | -5.3479061e-002, | ||
1340 | -4.7856971e-003, | ||
1341 | 7.8291548e-002, | ||
1342 | -6.4278719e-002, | ||
1343 | 5.2534052e-002, | ||
1344 | -8.4991604e-003, | ||
1345 | -2.5331472e-002, | ||
1346 | -1.1670703e-004, | ||
1347 | -1.6794583e-002, | ||
1348 | -3.6946100e-005, | ||
1349 | 7.9706385e-002, | ||
1350 | 1.8011858e-002, | ||
1351 | 4.5273832e-002, | ||
1352 | 1.9568899e-002, | ||
1353 | 4.5061760e-002, | ||
1354 | -2.6682717e-002, | ||
1355 | -1.8814340e-002, | ||
1356 | -8.5389413e-003, | ||
1357 | -4.6897567e-002, | ||
1358 | -7.9016702e-002, | ||
1359 | -2.1058150e-005, | ||
1360 | 5.8849807e-002, | ||
1361 | -2.5161493e-002, | ||
1362 | 6.0245233e-002, | ||
1363 | -8.2636501e-002, | ||
1364 | -6.9368318e-002, | ||
1365 | -1.5064100e-002, | ||
1366 | -3.4932382e-002, | ||
1367 | 4.4579915e-003, | ||
1368 | -5.9080060e-003, | ||
1369 | 8.9889824e-002, | ||
1370 | 8.1831512e-002, | ||
1371 | 1.6338686e-002, | ||
1372 | -5.4180978e-002, | ||
1373 | -5.3267629e-003, | ||
1374 | -2.8476462e-003, | ||
1375 | 1.7450439e-002, | ||
1376 | -2.4213885e-002, | ||
1377 | 7.1383978e-003, | ||
1378 | -8.5575620e-002, | ||
1379 | -9.7688859e-002, | ||
1380 | 5.4026353e-002, | ||
1381 | 6.8738257e-002, | ||
1382 | -3.1782928e-002, | ||
1383 | 2.9354257e-002, | ||
1384 | -1.6843133e-002, | ||
1385 | -3.4228093e-002, | ||
1386 | -4.9087072e-002, | ||
1387 | -8.8609944e-003, | ||
1388 | -4.2395609e-002, | ||
1389 | 6.0299570e-002, | ||
1390 | -3.9805763e-002, | ||
1391 | -3.9969178e-002, | ||
1392 | -1.0972287e-002, | ||
1393 | -3.1903343e-002, | ||
1394 | -2.3021388e-002, | ||
1395 | 9.5381824e-002, | ||
1396 | -3.8131819e-002, | ||
1397 | -2.7944014e-002, | ||
1398 | 7.9797347e-002, | ||
1399 | 1.5055618e-002, | ||
1400 | -6.0223999e-002, | ||
1401 | 2.1349786e-002, | ||
1402 | 1.4010766e-001, | ||
1403 | -7.0365161e-002, | ||
1404 | 9.5470745e-002, | ||
1405 | -5.5280731e-002, | ||
1406 | 9.0676740e-002, | ||
1407 | 8.0165216e-003, | ||
1408 | 3.8071961e-002, | ||
1409 | 3.4452332e-002, | ||
1410 | 1.2608974e-001, | ||
1411 | 7.4568874e-003, | ||
1412 | 2.2179776e-002, | ||
1413 | -5.1449927e-003, | ||
1414 | -1.5259731e-003, | ||
1415 | 2.4388062e-002, | ||
1416 | 2.8159902e-002, | ||
1417 | 6.3528510e-002, | ||
1418 | 7.2459203e-002, | ||
1419 | -6.6724867e-002, | ||
1420 | 4.9840343e-002, | ||
1421 | 1.0288982e-002, | ||
1422 | -3.7523292e-003, | ||
1423 | 2.4660586e-002, | ||
1424 | 1.0905181e-001, | ||
1425 | 2.0534327e-002, | ||
1426 | -1.6624929e-002, | ||
1427 | -4.7427409e-002, | ||
1428 | 7.1932143e-002, | ||
1429 | 2.4785276e-002, | ||
1430 | -1.2656870e-002, | ||
1431 | -4.3142163e-003, | ||
1432 | -8.5065080e-002, | ||
1433 | 1.1401731e-002, | ||
1434 | 4.2186129e-002, | ||
1435 | 1.7953548e-002, | ||
1436 | -9.5471407e-003, | ||
1437 | -2.7867915e-002, | ||
1438 | 7.5845281e-003, | ||
1439 | 3.6129267e-002, | ||
1440 | -1.2896952e-001, | ||
1441 | -1.4991468e-002, | ||
1442 | 3.9146522e-002, | ||
1443 | -7.6952239e-002, | ||
1444 | 2.3154057e-002, | ||
1445 | 3.2631339e-002, | ||
1446 | 3.6032235e-003, | ||
1447 | 2.4348659e-002, | ||
1448 | -5.0004772e-003, | ||
1449 | -3.9711602e-002, | ||
1450 | -2.5957781e-002, | ||
1451 | -8.4744957e-003, | ||
1452 | -6.8234352e-002, | ||
1453 | -2.8744676e-002, | ||
1454 | 2.3341254e-002, | ||
1455 | 4.3007108e-002, | ||
1456 | 1.2712390e-002, | ||
1457 | 2.8427956e-002, | ||
1458 | -1.5923634e-002, | ||
1459 | 4.4011784e-002, | ||
1460 | -1.5711433e-002, | ||
1461 | 4.4606989e-002, | ||
1462 | -1.7483925e-002, | ||
1463 | -1.2423254e-001, | ||
1464 | 6.2454024e-003, | ||
1465 | 6.6168154e-002, | ||
1466 | 2.1085300e-002, | ||
1467 | 9.0749477e-003, | ||
1468 | -2.0534154e-002, | ||
1469 | 6.9048807e-002, | ||
1470 | -9.2613632e-003, | ||
1471 | -2.7695812e-003, | ||
1472 | -4.1107764e-002, | ||
1473 | 2.1935377e-002, | ||
1474 | -8.4933698e-003, | ||
1475 | 7.9754080e-002, | ||
1476 | 2.8930188e-002, | ||
1477 | -1.5746665e-002, | ||
1478 | -5.5368360e-002, | ||
1479 | 4.8760088e-002, | ||
1480 | -2.3262447e-002, | ||
1481 | 1.9970261e-003, | ||
1482 | 1.7181455e-002, | ||
1483 | -2.6662315e-002, | ||
1484 | 2.9476649e-003, | ||
1485 | 3.6398404e-002, | ||
1486 | -1.0718664e-002, | ||
1487 | -1.3419702e-002, | ||
1488 | -1.4303328e-002, | ||
1489 | -5.1753021e-002, | ||
1490 | -8.8633620e-003, | ||
1491 | -6.6385388e-002, | ||
1492 | -1.8360778e-002, | ||
1493 | 4.0996838e-002, | ||
1494 | -2.1821426e-002, | ||
1495 | 1.9446502e-002, | ||
1496 | 7.8258137e-002, | ||
1497 | 1.1935359e-003, | ||
1498 | 1.2671015e-001, | ||
1499 | 5.4051017e-003, | ||
1500 | 8.9554422e-002, | ||
1501 | 5.1612989e-002, | ||
1502 | -5.9613506e-002, | ||
1503 | 1.0465684e-001, | ||
1504 | 3.5325477e-002, | ||
1505 | -7.4798564e-002, | ||
1506 | -6.6674861e-002, | ||
1507 | 2.8210488e-002, | ||
1508 | 3.9519939e-003, | ||
1509 | 4.2419282e-002, | ||
1510 | 4.8733699e-002, | ||
1511 | 4.9734069e-002, | ||
1512 | -8.2263082e-002, | ||
1513 | -1.0431084e-003, | ||
1514 | 6.5382265e-003, | ||
1515 | 2.7104024e-002, | ||
1516 | -6.1504411e-002, | ||
1517 | -1.1030328e-001, | ||
1518 | -1.1088406e-001, | ||
1519 | 4.6883361e-002, | ||
1520 | -4.8929726e-002, | ||
1521 | -1.1842483e-002, | ||
1522 | -3.2343663e-002, | ||
1523 | 2.8083963e-002, | ||
1524 | 6.5341653e-003, | ||
1525 | 6.4197433e-003, | ||
1526 | -5.1922064e-002, | ||
1527 | 5.9610106e-002, | ||
1528 | -3.0492144e-003, | ||
1529 | -2.0038627e-002, | ||
1530 | 6.6832718e-003, | ||
1531 | 3.5125897e-002, | ||
1532 | 4.9157559e-002, | ||
1533 | -1.1599903e-002, | ||
1534 | -8.6904299e-004, | ||
1535 | -8.6599262e-002, | ||
1536 | 6.2299405e-002, | ||
1537 | 9.4208251e-003, | ||
1538 | 7.3197513e-002, | ||
1539 | 7.5060589e-003, | ||
1540 | 1.5188546e-002, | ||
1541 | 8.4467481e-003, | ||
1542 | 1.6309540e-002, | ||
1543 | -3.6380831e-002, | ||
1544 | -1.5684802e-002, | ||
1545 | -1.2750901e-004, | ||
1546 | -3.9540578e-002, | ||
1547 | -2.6086647e-002, | ||
1548 | 5.0982353e-002, | ||
1549 | -3.8994541e-002, | ||
1550 | -7.8152817e-002, | ||
1551 | -2.1288151e-002, | ||
1552 | 3.2125646e-002, | ||
1553 | -4.9028664e-002, | ||
1554 | -5.2017685e-002, | ||
1555 | 4.8786860e-003, | ||
1556 | 8.7710015e-002, | ||
1557 | 3.7430190e-002, | ||
1558 | 3.6962894e-002, | ||
1559 | -1.4930609e-003, | ||
1560 | -6.6490921e-002, | ||
1561 | 1.1278370e-001, | ||
1562 | 1.6259975e-002, | ||
1563 | -1.1381280e-001, | ||
1564 | 3.0235399e-002, | ||
1565 | 7.9035487e-004, | ||
1566 | -3.8638327e-002, | ||
1567 | 4.3147897e-002, | ||
1568 | 8.8130106e-002, | ||
1569 | -1.4913096e-002, | ||
1570 | 3.9678262e-003, | ||
1571 | 3.6966598e-002, | ||
1572 | 6.3040724e-002, | ||
1573 | -4.9035837e-002, | ||
1574 | -3.0293084e-003, | ||
1575 | 7.2467143e-002, | ||
1576 | 3.3553250e-003, | ||
1577 | 1.1619490e-002, | ||
1578 | 2.5048420e-002, | ||
1579 | -1.3875509e-003, | ||
1580 | 4.3384801e-003, | ||
1581 | -1.9225635e-002, | ||
1582 | -3.4205233e-002, | ||
1583 | -6.1043519e-002, | ||
1584 | 2.7920233e-002, | ||
1585 | 1.5845125e-002, | ||
1586 | -3.1788360e-002, | ||
1587 | 5.5265277e-003, | ||
1588 | -8.8053862e-003, | ||
1589 | 5.1596808e-002, | ||
1590 | -2.6382888e-002, | ||
1591 | 1.3528723e-002, | ||
1592 | 9.7188179e-004, | ||
1593 | 4.5393222e-002, | ||
1594 | 1.4350879e-001, | ||
1595 | -8.3970455e-002, | ||
1596 | -5.3058686e-002, | ||
1597 | -1.7168532e-002, | ||
1598 | 5.2123339e-002, | ||
1599 | -1.0874975e-001, | ||
1600 | -8.4692593e-002, | ||
1601 | 2.0470836e-002, | ||
1602 | 1.3786291e-002, | ||
1603 | -4.3504389e-002, | ||
1604 | -5.5751144e-003, | ||
1605 | -9.6933329e-002, | ||
1606 | -6.0058163e-002, | ||
1607 | -5.0236621e-002, | ||
1608 | 2.1957145e-002, | ||
1609 | 4.6918366e-002, | ||
1610 | 5.4757597e-003, | ||
1611 | -1.2851732e-001, | ||
1612 | 5.3503448e-002, | ||
1613 | -7.8722951e-002, | ||
1614 | 2.5143808e-002, | ||
1615 | 3.8130327e-002, | ||
1616 | 1.1190727e-001, | ||
1617 | -2.2211112e-003, | ||
1618 | 3.4395397e-003, | ||
1619 | -6.6144203e-002, | ||
1620 | -1.3250907e-002, | ||
1621 | 1.4285490e-002, | ||
1622 | -4.7426798e-002, | ||
1623 | 4.3459402e-002, | ||
1624 | 1.9567583e-002, | ||
1625 | -3.2933903e-002, | ||
1626 | 7.9884585e-003, | ||
1627 | -3.6921691e-002, | ||
1628 | -5.2601711e-002, | ||
1629 | -3.7588436e-002, | ||
1630 | -5.7858993e-002, | ||
1631 | -3.9355983e-003, | ||
1632 | -1.9668686e-002, | ||
1633 | 1.7962753e-002, | ||
1634 | 7.1980552e-002, | ||
1635 | -1.2059618e-002, | ||
1636 | 3.4579944e-002, | ||
1637 | -1.8839556e-002, | ||
1638 | -1.7604317e-002, | ||
1639 | 7.8825547e-002, | ||
1640 | 8.4168663e-003, | ||
1641 | -1.6198144e-002, | ||
1642 | 7.7326058e-003, | ||
1643 | -1.4566324e-001, | ||
1644 | 7.0918323e-002, | ||
1645 | 2.7943557e-002, | ||
1646 | 1.5952735e-002, | ||
1647 | 5.3303709e-002, | ||
1648 | -8.3804957e-002, | ||
1649 | -6.6985571e-002, | ||
1650 | -1.3191151e-002, | ||
1651 | -4.2864677e-002, | ||
1652 | -5.9477390e-002, | ||
1653 | 4.9906263e-002, | ||
1654 | 4.4401362e-002, | ||
1655 | 4.7588494e-002, | ||
1656 | 2.5451538e-002, | ||
1657 | -3.7015590e-002, | ||
1658 | 1.8897192e-002, | ||
1659 | 8.5686801e-002, | ||
1660 | 5.1878702e-003, | ||
1661 | 4.3894402e-003, | ||
1662 | 1.8570041e-002, | ||
1663 | 5.5022301e-002, | ||
1664 | -4.0645765e-002, | ||
1665 | -5.0799009e-002, | ||
1666 | -2.3060691e-002, | ||
1667 | -5.3046714e-002, | ||
1668 | -2.9921308e-002, | ||
1669 | -4.2374683e-002, | ||
1670 | -2.0684933e-003, | ||
1671 | -3.1561538e-002, | ||
1672 | -2.6520727e-002, | ||
1673 | 2.2842715e-002, | ||
1674 | 4.7241369e-002, | ||
1675 | 1.5938051e-003, | ||
1676 | -3.1393040e-002, | ||
1677 | -2.2067479e-002, | ||
1678 | 1.3659794e-002, | ||
1679 | -3.1810808e-002, | ||
1680 | 5.2038109e-002, | ||
1681 | 5.5282333e-002, | ||
1682 | 7.3406997e-002, | ||
1683 | -8.5669402e-002, | ||
1684 | 3.0521734e-002, | ||
1685 | 1.3090940e-005, | ||
1686 | -4.7165506e-002, | ||
1687 | 4.8765186e-003, | ||
1688 | -2.9407043e-002, | ||
1689 | 1.9843096e-002, | ||
1690 | -2.7632043e-002, | ||
1691 | 1.4379705e-002, | ||
1692 | 3.2263917e-002, | ||
1693 | 5.4751887e-002, | ||
1694 | -3.4032149e-002, | ||
1695 | -9.9526757e-003, | ||
1696 | 2.5634676e-002, | ||
1697 | 2.5738815e-003, | ||
1698 | -5.5256747e-003, | ||
1699 | 4.1466343e-002, | ||
1700 | -2.8007927e-002, | ||
1701 | 8.2962880e-002, | ||
1702 | 5.3608424e-002, | ||
1703 | -6.6232246e-003, | ||
1704 | -1.1529210e-001, | ||
1705 | -3.5498392e-002, | ||
1706 | 2.0099626e-002, | ||
1707 | 4.5948750e-002, | ||
1708 | 1.7926143e-002, | ||
1709 | -5.9056747e-002, | ||
1710 | -9.6797251e-002, | ||
1711 | -2.4358114e-002, | ||
1712 | -6.1063654e-002, | ||
1713 | 2.0158520e-003, | ||
1714 | 8.7163319e-002, | ||
1715 | -8.9921518e-002, | ||
1716 | -9.8666202e-003, | ||
1717 | -9.3794619e-004, | ||
1718 | 4.5791584e-002, | ||
1719 | 8.5254269e-003, | ||
1720 | 3.7372616e-002, | ||
1721 | -5.3279812e-002, | ||
1722 | 7.8030247e-004, | ||
1723 | 1.1843336e-002, | ||
1724 | -7.4212330e-002, | ||
1725 | 1.1414296e-001, | ||
1726 | -4.1485582e-002, | ||
1727 | -2.2089769e-003, | ||
1728 | -6.1672113e-003, | ||
1729 | 9.8929283e-003, | ||
1730 | -7.8207292e-002, | ||
1731 | -4.8161136e-003, | ||
1732 | -7.2059255e-002, | ||
1733 | -3.5922784e-002, | ||
1734 | -1.9786275e-002, | ||
1735 | 1.5833828e-002, | ||
1736 | 5.2545743e-002, | ||
1737 | 9.9962946e-003, | ||
1738 | 1.0473584e-001, | ||
1739 | -2.6380727e-002, | ||
1740 | 6.2664438e-002, | ||
1741 | -1.0710067e-002, | ||
1742 | -5.6621248e-002, | ||
1743 | -6.2640861e-002, | ||
1744 | 2.4906349e-002, | ||
1745 | 4.9470811e-002, | ||
1746 | 1.5582134e-002, | ||
1747 | -1.1034795e-002, | ||
1748 | 3.7179257e-002, | ||
1749 | -7.9083587e-002, | ||
1750 | 3.1086424e-002, | ||
1751 | -1.3685837e-002, | ||
1752 | -3.7552842e-002, | ||
1753 | -2.9528094e-002, | ||
1754 | -1.7008381e-002, | ||
1755 | 3.7137697e-002, | ||
1756 | 4.5722891e-002, | ||
1757 | -6.7639973e-002, | ||
1758 | 1.0411136e-002, | ||
1759 | -9.5948463e-002, | ||
1760 | -7.6491282e-002, | ||
1761 | 1.0515447e-001, | ||
1762 | -7.2395284e-002, | ||
1763 | 2.6384356e-002, | ||
1764 | -9.7803448e-004, | ||
1765 | -1.2178894e-002, | ||
1766 | -4.3298010e-002, | ||
1767 | -1.4118456e-002, | ||
1768 | -6.3811250e-003, | ||
1769 | 3.5987445e-002, | ||
1770 | -8.0165530e-003, | ||
1771 | -2.0932915e-002, | ||
1772 | -1.3187860e-002, | ||
1773 | -4.3430054e-002, | ||
1774 | -3.0586505e-002, | ||
1775 | 9.8974586e-002, | ||
1776 | 5.5685044e-002, | ||
1777 | -1.1098877e-001, | ||
1778 | 3.4420705e-002, | ||
1779 | 2.6632342e-002, | ||
1780 | 2.8768821e-002, | ||
1781 | -5.6656185e-002, | ||
1782 | -2.4035643e-002, | ||
1783 | 4.4599132e-002, | ||
1784 | 5.2401286e-002, | ||
1785 | -3.1991215e-002, | ||
1786 | 3.8827361e-003, | ||
1787 | 4.7437513e-002, | ||
1788 | 6.7940056e-002, | ||
1789 | -2.3003581e-002, | ||
1790 | -6.3955657e-002, | ||
1791 | 1.0081807e-001, | ||
1792 | -4.4211577e-003, | ||
1793 | -4.1263060e-002, | ||
1794 | -5.8970926e-002, | ||
1795 | -2.4349696e-002, | ||
1796 | 3.2867209e-002, | ||
1797 | -2.4008048e-004, | ||
1798 | 6.9810225e-002, | ||
1799 | 1.5450610e-002, | ||
1800 | 2.3319726e-002, | ||
1801 | -1.0005801e-001, | ||
1802 | 6.2685066e-003, | ||
1803 | 3.3200964e-003, | ||
1804 | -6.0496946e-002, | ||
1805 | -8.8884008e-003, | ||
1806 | 1.6134449e-003, | ||
1807 | -7.2506916e-002, | ||
1808 | 1.8835241e-003, | ||
1809 | -9.1372012e-003, | ||
1810 | -3.9166883e-002, | ||
1811 | -3.0408037e-002, | ||
1812 | 1.3371700e-001, | ||
1813 | -8.4833604e-002, | ||
1814 | -2.0082991e-002, | ||
1815 | -6.7833227e-002, | ||
1816 | 2.8939942e-002, | ||
1817 | 3.2760884e-002, | ||
1818 | -1.1389661e-004, | ||
1819 | -4.3484404e-002, | ||
1820 | -5.9579661e-002, | ||
1821 | 8.5932179e-002, | ||
1822 | -1.2312202e-001, | ||
1823 | 4.5080645e-002, | ||
1824 | 7.8749960e-002, | ||
1825 | 8.5343585e-002, | ||
1826 | 8.3452328e-003, | ||
1827 | 3.8885343e-002, | ||
1828 | -5.4756855e-002, | ||
1829 | -5.2942923e-002, | ||
1830 | -8.5138845e-003, | ||
1831 | 6.6560990e-002, | ||
1832 | -5.8418572e-002, | ||
1833 | 2.3870988e-002, | ||
1834 | 1.8931370e-002, | ||
1835 | 5.9471104e-002, | ||
1836 | -8.6742031e-002, | ||
1837 | -4.4123808e-002, | ||
1838 | 1.7375058e-002, | ||
1839 | -6.3987147e-002, | ||
1840 | 6.3031471e-003, | ||
1841 | -5.2766788e-002, | ||
1842 | 1.6462106e-001, | ||
1843 | 3.4654166e-002, | ||
1844 | 1.8664640e-002, | ||
1845 | 2.0932790e-002, | ||
1846 | -4.3515283e-003, | ||
1847 | -2.2953377e-002, | ||
1848 | -4.1758215e-002, | ||
1849 | 5.7430654e-002, | ||
1850 | -5.3591655e-002, | ||
1851 | -4.6850896e-002, | ||
1852 | 4.1910973e-002, | ||
1853 | 1.1157103e-004, | ||
1854 | -2.2629752e-002, | ||
1855 | 6.5200275e-002, | ||
1856 | -2.2924410e-003, | ||
1857 | -1.0436647e-002, | ||
1858 | -5.9483696e-002, | ||
1859 | -3.6216756e-003, | ||
1860 | -1.3438807e-002, | ||
1861 | 1.2187937e-002, | ||
1862 | -1.3021007e-002, | ||
1863 | 3.3878909e-002, | ||
1864 | -2.2899083e-002, | ||
1865 | -2.3054076e-002, | ||
1866 | 4.7348343e-002, | ||
1867 | 2.8499078e-002, | ||
1868 | -1.7052032e-003, | ||
1869 | -1.3753287e-002, | ||
1870 | -2.9609163e-002, | ||
1871 | -1.3025597e-002, | ||
1872 | -6.1569574e-003, | ||
1873 | 8.8234767e-003, | ||
1874 | -4.4598847e-002, | ||
1875 | -7.8588213e-002, | ||
1876 | -1.8194816e-002, | ||
1877 | -6.0633228e-002, | ||
1878 | 3.4385559e-003, | ||
1879 | 5.9361395e-002, | ||
1880 | 8.2140593e-002, | ||
1881 | 1.4939745e-002, | ||
1882 | -3.1639344e-002, | ||
1883 | -1.2825312e-002, | ||
1884 | -3.5217707e-002, | ||
1885 | -1.9635520e-002, | ||
1886 | 3.1739325e-002, | ||
1887 | -2.7107236e-002, | ||
1888 | 4.2299225e-002, | ||
1889 | 1.9675302e-002, | ||
1890 | -2.6289167e-002, | ||
1891 | -3.7438885e-002, | ||
1892 | -6.5984833e-002, | ||
1893 | 4.2748691e-003, | ||
1894 | -3.3482818e-002, | ||
1895 | -2.6690228e-002, | ||
1896 | -3.6330879e-002, | ||
1897 | -4.4149481e-002, | ||
1898 | -1.5138292e-002, | ||
1899 | 2.8942426e-002, | ||
1900 | -1.6976163e-002, | ||
1901 | -5.9543856e-002, | ||
1902 | 7.4778255e-002, | ||
1903 | 2.8451870e-002, | ||
1904 | 6.2164171e-002, | ||
1905 | -4.0415989e-002, | ||
1906 | -4.2244492e-002, | ||
1907 | 4.6573272e-002, | ||
1908 | -1.8520798e-002, | ||
1909 | -6.9907182e-002, | ||
1910 | 1.1254468e-002, | ||
1911 | 7.4484796e-002, | ||
1912 | 2.3774997e-003, | ||
1913 | -1.9725799e-002, | ||
1914 | -1.1798209e-002, | ||
1915 | -4.5521440e-002, | ||
1916 | 2.7514728e-002, | ||
1917 | -7.2190342e-002, | ||
1918 | -2.9948385e-002, | ||
1919 | -4.6214661e-003, | ||
1920 | -7.9002112e-004, | ||
1921 | 5.0066640e-002, | ||
1922 | 5.3029490e-004, | ||
1923 | -1.8871680e-002, | ||
1924 | -1.9149132e-002, | ||
1925 | 1.4202910e-002, | ||
1926 | 3.0816823e-002, | ||
1927 | -9.0922658e-002, | ||
1928 | 2.0531126e-002, | ||
1929 | -6.7237163e-002, | ||
1930 | 3.5264507e-002, | ||
1931 | -4.3345885e-002, | ||
1932 | 4.3736504e-002, | ||
1933 | -5.0592953e-002, | ||
1934 | -1.9560698e-002, | ||
1935 | 7.4759581e-002, | ||
1936 | -1.5500722e-002, | ||
1937 | -3.2266454e-002, | ||
1938 | -1.4974813e-002, | ||
1939 | -3.1814004e-003, | ||
1940 | 7.1627759e-002, | ||
1941 | -1.0014999e-002, | ||
1942 | -4.4711458e-002, | ||
1943 | 8.7059742e-002, | ||
1944 | -6.6573462e-002, | ||
1945 | 6.3231174e-002, | ||
1946 | -3.9306487e-002, | ||
1947 | -2.8763870e-002, | ||
1948 | -3.4594112e-002, | ||
1949 | -1.7333119e-002, | ||
1950 | 2.7978317e-002, | ||
1951 | -4.4558274e-002, | ||
1952 | 4.0316504e-002, | ||
1953 | -9.8056766e-003, | ||
1954 | -1.1169830e-001, | ||
1955 | 2.6367365e-003, | ||
1956 | -6.3107346e-002, | ||
1957 | -4.7852804e-002, | ||
1958 | 1.4822515e-002, | ||
1959 | -5.5825883e-002, | ||
1960 | 8.4652163e-002, | ||
1961 | 3.7276497e-002, | ||
1962 | 5.8380260e-002, | ||
1963 | 1.0308762e-003, | ||
1964 | -1.7541914e-002, | ||
1965 | -8.1294365e-002, | ||
1966 | 2.6500601e-002, | ||
1967 | 1.1576202e-002, | ||
1968 | -2.8475597e-002, | ||
1969 | -3.6427135e-002, | ||
1970 | 1.0486963e-002, | ||
1971 | 3.5852026e-002, | ||
1972 | 1.7207452e-002, | ||
1973 | -4.2250927e-002, | ||
1974 | 9.2791032e-002, | ||
1975 | 2.0848079e-002, | ||
1976 | -1.0474350e-002, | ||
1977 | -1.8906142e-002, | ||
1978 | -3.9285383e-004, | ||
1979 | -1.0622005e-001, | ||
1980 | 3.0895699e-002, | ||
1981 | 7.2310785e-002, | ||
1982 | -4.9338252e-002, | ||
1983 | -6.6112754e-002, | ||
1984 | 1.7508514e-002, | ||
1985 | 1.1321926e-003, | ||
1986 | -2.4713477e-002, | ||
1987 | -4.2692403e-002, | ||
1988 | 3.6496772e-002, | ||
1989 | -8.7503250e-003, | ||
1990 | -2.3071223e-002, | ||
1991 | 6.0697872e-002, | ||
1992 | -1.6211612e-002, | ||
1993 | 2.7467415e-002, | ||
1994 | -2.3241079e-002, | ||
1995 | 7.6276171e-003, | ||
1996 | -6.3827211e-002, | ||
1997 | 6.7257864e-002, | ||
1998 | 2.2947393e-002, | ||
1999 | 1.7785758e-002, | ||
2000 | 4.1818868e-003, | ||
2001 | 3.5410854e-002, | ||
2002 | 1.0202987e-003, | ||
2003 | -7.0561943e-003, | ||
2004 | -2.0778987e-002, | ||
2005 | 3.2302118e-002, | ||
2006 | 4.8279751e-003, | ||
2007 | -2.3094511e-002, | ||
2008 | -5.9461961e-002, | ||
2009 | 4.2486021e-002, | ||
2010 | -8.3970460e-002, | ||
2011 | 3.1847805e-002, | ||
2012 | 1.4792567e-002, | ||
2013 | 8.3035216e-002, | ||
2014 | -1.9097569e-002, | ||
2015 | -3.7566345e-002, | ||
2016 | -1.9294024e-002, | ||
2017 | -2.9735991e-002, | ||
2018 | -1.6259656e-002, | ||
2019 | 8.7230220e-003, | ||
2020 | 1.5761104e-002, | ||
2021 | 1.1869692e-002, | ||
2022 | 3.3119792e-002, | ||
2023 | -1.4862967e-002, | ||
2024 | 1.1372784e-002, | ||
2025 | -3.2009087e-002, | ||
2026 | -2.9738311e-002, | ||
2027 | 7.4243184e-002, | ||
2028 | 4.4110110e-002, | ||
2029 | -2.6555813e-002, | ||
2030 | -1.4281194e-002, | ||
2031 | -3.1948659e-002, | ||
2032 | 2.7573051e-002, | ||
2033 | 4.3762921e-003, | ||
2034 | -1.5129696e-002, | ||
2035 | -1.7735857e-002, | ||
2036 | -4.4445686e-003, | ||
2037 | -5.8616688e-002, | ||
2038 | -2.7569930e-002, | ||
2039 | -4.5140779e-002, | ||
2040 | -7.2200604e-002, | ||
2041 | 1.3667304e-002, | ||
2042 | 5.7192972e-002, | ||
2043 | -6.3690024e-002, | ||
2044 | 5.5174808e-003, | ||
2045 | -5.8892530e-002, | ||
2046 | -3.6233013e-002, | ||
2047 | 8.6180660e-002, | ||
2048 | -6.4381045e-002, | ||
2049 | 8.1908618e-002, | ||
2050 | -8.2615195e-003, | ||
2051 | -8.7344886e-002, | ||
2052 | -3.6686884e-002, | ||
2053 | -4.3487249e-002, | ||
2054 | -2.7761943e-002, | ||
2055 | -4.3954059e-002, | ||
2056 | 1.0761718e-001, | ||
2057 | -3.3942906e-002, | ||
2058 | -5.6751929e-002, | ||
2059 | 5.3761364e-002, | ||
2060 | -8.2361460e-002, | ||
2061 | -2.0107493e-002, | ||
2062 | -1.3391457e-001, | ||
2063 | -2.7865675e-002, | ||
2064 | -3.7665218e-003, | ||
2065 | 2.6626941e-003, | ||
2066 | 2.1434427e-002, | ||
2067 | 4.9598442e-002, | ||
2068 | -9.1795559e-002, | ||
2069 | 5.6763841e-002, | ||
2070 | -7.2345509e-002, | ||
2071 | 4.3385691e-002, | ||
2072 | -6.4303252e-002, | ||
2073 | -2.6067521e-002, | ||
2074 | 3.1430980e-002, | ||
2075 | -4.8380081e-002, | ||
2076 | -1.7143742e-003, | ||
2077 | 3.8524956e-002, | ||
2078 | 4.7310190e-002, | ||
2079 | -8.4985104e-003, | ||
2080 | 2.5096835e-002, | ||
2081 | -2.2478417e-003, | ||
2082 | 4.8128123e-002, | ||
2083 | 3.7762949e-002, | ||
2084 | 1.4420063e-003, | ||
2085 | -4.4095518e-002, | ||
2086 | 4.5456933e-003, | ||
2087 | -3.2426183e-003, | ||
2088 | -1.2533115e-002, | ||
2089 | 4.7767545e-002, | ||
2090 | -2.8620801e-002, | ||
2091 | 7.8751032e-002, | ||
2092 | -1.6406002e-002, | ||
2093 | 6.0648681e-002, | ||
2094 | -5.7970442e-002, | ||
2095 | -1.7637331e-002, | ||
2096 | -6.9358645e-002, | ||
2097 | -3.7997615e-002, | ||
2098 | 3.9156091e-002, | ||
2099 | 1.1321921e-001, | ||
2100 | 8.4415942e-002, | ||
2101 | -1.1387462e-002, | ||
2102 | -1.6199663e-002, | ||
2103 | -2.9916549e-002, | ||
2104 | -2.7917984e-003, | ||
2105 | -7.9695543e-002, | ||
2106 | 8.2671498e-002, | ||
2107 | 1.3319799e-002, | ||
2108 | -1.7930240e-002, | ||
2109 | -9.1601668e-003, | ||
2110 | 4.1019127e-002, | ||
2111 | 7.5932944e-002, | ||
2112 | 1.0036314e-001, | ||
2113 | 3.8966354e-002, | ||
2114 | 4.6995786e-003, | ||
2115 | -4.5149567e-002, | ||
2116 | -4.8486656e-002, | ||
2117 | -4.1927255e-002, | ||
2118 | 1.1311800e-002, | ||
2119 | 3.6819401e-002, | ||
2120 | 1.7973596e-002, | ||
2121 | 6.7898952e-003, | ||
2122 | 1.5963322e-002, | ||
2123 | -4.9877456e-002, | ||
2124 | -3.7059174e-002, | ||
2125 | 1.4450399e-002, | ||
2126 | 2.0093318e-002, | ||
2127 | 3.4367981e-002, | ||
2128 | -5.5058558e-003, | ||
2129 | -6.7143431e-002, | ||
2130 | -4.8644499e-002, | ||
2131 | -6.9472431e-002, | ||
2132 | 2.5107776e-002, | ||
2133 | -4.6781145e-002, | ||
2134 | -2.7352285e-002, | ||
2135 | -4.7986822e-002, | ||
2136 | -7.1934644e-003, | ||
2137 | -2.3173127e-002, | ||
2138 | 6.4055565e-002, | ||
2139 | -1.9370286e-002, | ||
2140 | -4.9411717e-003, | ||
2141 | 3.4615802e-002, | ||
2142 | -5.2643368e-002, | ||
2143 | -3.4227554e-002, | ||
2144 | 5.9084487e-002, | ||
2145 | -6.7507249e-002, | ||
2146 | 1.4470533e-003, | ||
2147 | 7.4639509e-002, | ||
2148 | -3.9766965e-002, | ||
2149 | 3.5756960e-002, | ||
2150 | -7.0471549e-003, | ||
2151 | -3.9222635e-003, | ||
2152 | 7.3001614e-002, | ||
2153 | 2.3197043e-002, | ||
2154 | -2.5701022e-003, | ||
2155 | -6.5877930e-002, | ||
2156 | 2.7559657e-003, | ||
2157 | 1.9592050e-002, | ||
2158 | -9.3462547e-002, | ||
2159 | -1.0871925e-002, | ||
2160 | -2.9680792e-002, | ||
2161 | -1.9738425e-002, | ||
2162 | -2.7152604e-002, | ||
2163 | 2.3876803e-002, | ||
2164 | 4.5884118e-002, | ||
2165 | -2.4799389e-002, | ||
2166 | -2.0581584e-002, | ||
2167 | -5.4267497e-002, | ||
2168 | -2.6460954e-003, | ||
2169 | 5.1362202e-002, | ||
2170 | -6.9012380e-002, | ||
2171 | 4.4005296e-002, | ||
2172 | 6.3975781e-002, | ||
2173 | -2.6047622e-003, | ||
2174 | 1.2042036e-002, | ||
2175 | 1.6037381e-002, | ||
2176 | -5.1284209e-002, | ||
2177 | -4.2194785e-002, | ||
2178 | -1.6515324e-003, | ||
2179 | 2.8902550e-002, | ||
2180 | 2.6850380e-002, | ||
2181 | -6.0423448e-002, | ||
2182 | 5.8605766e-003, | ||
2183 | 1.2158635e-002, | ||
2184 | 7.2552454e-002, | ||
2185 | 3.1314062e-002, | ||
2186 | -9.3072204e-002, | ||
2187 | 3.1162922e-002, | ||
2188 | 1.3286605e-002, | ||
2189 | 3.9595454e-002, | ||
2190 | 4.0202073e-002, | ||
2191 | 6.5767605e-002, | ||
2192 | -1.2155519e-002, | ||
2193 | 3.3751439e-002, | ||
2194 | -3.2171914e-002, | ||
2195 | 4.8066982e-002, | ||
2196 | -3.9282293e-002, | ||
2197 | 8.3241192e-003, | ||
2198 | 6.9639890e-002, | ||
2199 | 2.7334229e-002, | ||
2200 | -1.5479579e-001, | ||
2201 | 1.6788538e-002, | ||
2202 | -3.1497022e-002, | ||
2203 | -4.2282993e-002, | ||
2204 | 6.3590085e-002, | ||
2205 | 2.5116069e-002, | ||
2206 | -8.6396723e-003, | ||
2207 | 3.3260424e-002, | ||
2208 | -8.4721611e-002, | ||
2209 | -3.3390999e-003, | ||
2210 | -1.1246017e-001, | ||
2211 | 4.1668358e-002, | ||
2212 | -5.8633451e-002, | ||
2213 | 1.8811584e-002, | ||
2214 | -2.6955831e-002, | ||
2215 | 3.4502149e-002, | ||
2216 | -1.5140931e-002, | ||
2217 | -1.1615508e-001, | ||
2218 | 1.9473941e-002, | ||
2219 | -2.4164678e-002, | ||
2220 | -4.7663500e-002, | ||
2221 | 2.5149605e-002, | ||
2222 | -4.2667606e-002, | ||
2223 | -3.0691488e-002, | ||
2224 | -6.2397484e-002, | ||
2225 | -2.2317443e-002, | ||
2226 | 7.1583564e-002, | ||
2227 | -1.7501358e-002, | ||
2228 | -7.4035381e-003, | ||
2229 | 3.6729476e-002, | ||
2230 | -1.1245837e-002, | ||
2231 | 2.6520782e-002, | ||
2232 | -8.1593552e-002, | ||
2233 | -6.9408470e-002, | ||
2234 | 1.4619786e-003, | ||
2235 | 3.8453478e-003, | ||
2236 | -6.3397206e-003, | ||
2237 | -6.0058523e-002, | ||
2238 | -4.8251718e-003, | ||
2239 | 3.8074781e-002, | ||
2240 | -7.8163411e-002, | ||
2241 | 2.1385600e-002, | ||
2242 | -2.1922130e-002, | ||
2243 | -4.0160455e-002, | ||
2244 | -6.8293755e-002, | ||
2245 | 9.0554557e-004, | ||
2246 | 2.6664980e-002, | ||
2247 | 7.1501149e-004, | ||
2248 | 2.0586511e-002, | ||
2249 | 3.8317298e-002, | ||
2250 | 1.2622402e-002, | ||
2251 | 3.0425320e-002, | ||
2252 | -5.9992562e-003, | ||
2253 | -3.2448647e-002, | ||
2254 | -8.4599232e-002, | ||
2255 | 2.0966498e-002, | ||
2256 | 3.0616978e-002, | ||
2257 | -4.1909029e-003, | ||
2258 | 4.3755380e-002, | ||
2259 | 3.5853709e-002, | ||
2260 | 8.2636139e-002, | ||
2261 | 5.2616538e-002, | ||
2262 | -4.4023308e-002, | ||
2263 | -4.5906585e-002, | ||
2264 | 2.5247372e-002, | ||
2265 | 1.5587727e-002, | ||
2266 | -2.8171046e-002, | ||
2267 | -3.2571994e-003, | ||
2268 | 3.1224580e-002, | ||
2269 | 2.3534457e-002, | ||
2270 | 2.4495916e-002, | ||
2271 | 2.3711856e-002, | ||
2272 | 4.4990479e-002, | ||
2273 | 2.4656755e-002, | ||
2274 | 1.2819956e-002, | ||
2275 | 5.7528241e-002, | ||
2276 | -6.3140487e-003, | ||
2277 | -9.8533686e-002, | ||
2278 | -5.9046861e-002, | ||
2279 | 4.5919961e-002, | ||
2280 | 4.9303678e-002, | ||
2281 | -5.1366348e-002, | ||
2282 | 2.4237326e-002, | ||
2283 | -3.5253937e-002, | ||
2284 | 7.6315728e-002, | ||
2285 | -6.2809404e-002, | ||
2286 | -1.1060411e-002, | ||
2287 | 1.2072602e-002, | ||
2288 | 8.1692168e-002, | ||
2289 | 8.2459510e-002, | ||
2290 | 1.2056340e-003, | ||
2291 | -1.0799649e-001, | ||
2292 | -7.2058599e-002, | ||
2293 | 5.1223849e-002, | ||
2294 | 1.1635586e-001, | ||
2295 | 6.3237829e-002, | ||
2296 | 4.1510274e-002, | ||
2297 | -2.9788578e-002, | ||
2298 | 4.8771019e-002, | ||
2299 | -5.6674600e-002, | ||
2300 | 1.9869930e-002, | ||
2301 | -1.2678819e-002, | ||
2302 | -2.7919754e-002, | ||
2303 | 2.8331693e-002, | ||
2304 | 3.1691790e-002, | ||
2305 | 1.1562239e-002, | ||
2306 | -2.8202192e-002, | ||
2307 | 2.1270404e-002, | ||
2308 | -4.2846202e-002, | ||
2309 | -3.2805821e-002, | ||
2310 | 1.5184402e-002, | ||
2311 | 5.4017276e-002, | ||
2312 | -7.4480916e-003, | ||
2313 | 3.9322390e-002, | ||
2314 | 8.8590506e-002, | ||
2315 | 1.8869046e-002, | ||
2316 | -4.8504749e-002, | ||
2317 | 1.9943452e-002, | ||
2318 | -4.0731200e-002, | ||
2319 | -1.2975217e-003, | ||
2320 | -1.6745164e-003, | ||
2321 | 4.7281664e-002, | ||
2322 | -2.7791569e-002, | ||
2323 | 8.0857121e-003, | ||
2324 | -4.8178120e-002, | ||
2325 | -5.8281241e-002, | ||
2326 | -3.2593209e-002, | ||
2327 | -2.1746188e-002, | ||
2328 | -1.0017483e-002, | ||
2329 | 2.9529554e-002, | ||
2330 | -1.4875157e-002, | ||
2331 | -4.5985303e-002, | ||
2332 | 4.9477795e-002, | ||
2333 | -2.8808805e-002, | ||
2334 | -1.3613209e-002, | ||
2335 | -3.2427996e-002, | ||
2336 | -7.3709623e-002, | ||
2337 | 2.9008787e-003, | ||
2338 | -2.4949574e-002, | ||
2339 | 2.9417830e-002, | ||
2340 | -5.0911040e-002, | ||
2341 | 7.2199223e-002, | ||
2342 | -3.8502572e-003, | ||
2343 | -9.9986041e-002, | ||
2344 | -1.0110846e-001, | ||
2345 | 2.7240523e-002, | ||
2346 | 3.7231607e-004, | ||
2347 | -4.8403626e-002, | ||
2348 | -4.2828865e-002, | ||
2349 | -4.0941132e-002, | ||
2350 | 2.1262003e-002, | ||
2351 | 2.8579653e-002, | ||
2352 | -3.8107106e-002, | ||
2353 | -2.5403299e-002, | ||
2354 | 4.0409634e-002, | ||
2355 | -1.3506783e-001, | ||
2356 | 6.7020935e-002, | ||
2357 | 7.6919909e-002, | ||
2358 | -6.2598829e-002, | ||
2359 | -4.4526445e-002, | ||
2360 | 1.2270630e-001, | ||
2361 | 2.3974241e-002, | ||
2362 | -3.6434038e-003, | ||
2363 | 4.6607563e-002, | ||
2364 | 8.1524293e-002, | ||
2365 | -3.0664049e-002, | ||
2366 | 4.4022028e-002, | ||
2367 | 8.6563738e-002, | ||
2368 | 6.5752991e-002, | ||
2369 | -6.7108146e-002, | ||
2370 | -1.0342413e-001, | ||
2371 | -1.8539076e-002, | ||
2372 | -3.0153611e-002, | ||
2373 | 6.7396260e-003, | ||
2374 | -4.4950103e-002, | ||
2375 | -1.2515800e-003, | ||
2376 | 3.0646680e-002, | ||
2377 | 5.5510478e-002, | ||
2378 | -5.2142526e-002, | ||
2379 | -6.6687624e-002, | ||
2380 | 1.5134636e-002, | ||
2381 | 1.3498064e-002, | ||
2382 | -5.4450472e-002, | ||
2383 | -8.9529836e-003, | ||
2384 | 3.0094154e-002, | ||
2385 | 3.2202481e-002, | ||
2386 | 1.3948693e-002, | ||
2387 | -6.7197034e-002, | ||
2388 | -8.5015250e-002, | ||
2389 | 6.3266660e-002, | ||
2390 | 4.2798636e-002, | ||
2391 | -2.0333357e-002, | ||
2392 | -4.0383900e-002, | ||
2393 | -1.3841616e-002, | ||
2394 | 6.3539401e-002, | ||
2395 | -1.4953539e-002, | ||
2396 | 7.3749647e-003, | ||
2397 | 4.6124894e-002, | ||
2398 | -3.3099545e-002, | ||
2399 | 1.6994609e-003, | ||
2400 | 3.1756119e-002, | ||
2401 | 1.1361146e-001, | ||
2402 | 2.3601853e-002, | ||
2403 | -6.1163866e-003, | ||
2404 | 1.4640892e-002, | ||
2405 | -1.3002994e-001, | ||
2406 | -5.9991837e-002, | ||
2407 | -2.2185968e-002, | ||
2408 | -3.5202454e-003, | ||
2409 | -3.2725772e-002, | ||
2410 | -1.6788319e-002, | ||
2411 | -6.9143762e-002, | ||
2412 | -3.0097649e-002, | ||
2413 | 1.2429939e-001, | ||
2414 | 3.2580395e-002, | ||
2415 | -5.0115073e-002, | ||
2416 | 5.0306592e-003, | ||
2417 | -4.4954061e-002, | ||
2418 | 3.6014498e-002, | ||
2419 | -1.3451790e-002, | ||
2420 | 1.6399117e-002, | ||
2421 | 1.3923416e-001, | ||
2422 | -4.9725951e-003, | ||
2423 | 6.2052260e-003, | ||
2424 | -1.1645022e-001, | ||
2425 | -3.5608026e-003, | ||
2426 | 6.4542089e-002, | ||
2427 | 2.5646928e-002, | ||
2428 | -3.9385217e-002, | ||
2429 | 3.4619781e-002, | ||
2430 | -5.5728973e-002, | ||
2431 | -4.1560782e-002, | ||
2432 | 1.8601185e-003, | ||
2433 | -7.7632154e-002, | ||
2434 | -1.1198136e-001, | ||
2435 | 1.7871366e-003, | ||
2436 | 3.2749909e-002, | ||
2437 | 6.3402834e-002, | ||
2438 | -5.4553077e-002, | ||
2439 | -5.3258342e-002, | ||
2440 | 3.3343720e-002, | ||
2441 | 5.6556702e-002, | ||
2442 | -2.8265688e-002, | ||
2443 | -2.3372050e-002, | ||
2444 | -7.1953496e-002, | ||
2445 | 4.9907070e-002, | ||
2446 | -2.6195346e-002, | ||
2447 | -3.1269328e-002, | ||
2448 | -2.2738778e-002, | ||
2449 | -3.6952069e-003, | ||
2450 | 2.3055605e-002, | ||
2451 | 3.7713246e-002, | ||
2452 | -3.3123125e-002, | ||
2453 | 6.3977198e-002, | ||
2454 | 1.2888268e-002, | ||
2455 | -6.4863602e-002, | ||
2456 | -4.6370451e-002, | ||
2457 | -1.2762725e-002, | ||
2458 | -1.1385579e-002, | ||
2459 | 5.3278522e-002, | ||
2460 | 4.0903155e-003, | ||
2461 | 2.4856544e-003, | ||
2462 | 2.6887809e-002, | ||
2463 | -3.6020834e-002, | ||
2464 | 1.7437443e-002, | ||
2465 | 2.0139602e-002, | ||
2466 | 2.9239905e-002, | ||
2467 | 3.8038669e-002, | ||
2468 | -9.6656754e-002, | ||
2469 | 1.5283078e-002, | ||
2470 | -9.4684237e-002, | ||
2471 | 3.5509017e-002, | ||
2472 | -2.3867173e-002, | ||
2473 | 4.9278727e-003, | ||
2474 | -3.9793551e-002, | ||
2475 | -1.1285602e-002, | ||
2476 | -1.1809578e-002, | ||
2477 | 2.7623350e-002, | ||
2478 | 2.1829332e-003, | ||
2479 | 2.9116516e-002, | ||
2480 | -2.3743110e-002, | ||
2481 | -3.6766547e-002, | ||
2482 | 2.0571789e-002, | ||
2483 | 5.6084571e-002, | ||
2484 | 1.3024358e-001, | ||
2485 | -7.5886589e-002, | ||
2486 | 2.7947551e-002, | ||
2487 | 2.3155403e-002, | ||
2488 | -3.1278004e-002, | ||
2489 | -1.4436652e-002, | ||
2490 | -2.4776289e-002, | ||
2491 | -6.8540264e-003, | ||
2492 | -1.0098350e-002, | ||
2493 | -8.8675200e-002, | ||
2494 | 1.5859746e-001, | ||
2495 | -9.1002037e-002, | ||
2496 | 1.2604720e-002, | ||
2497 | -1.0483836e-002, | ||
2498 | -2.8280415e-002, | ||
2499 | 7.1881441e-002, | ||
2500 | -5.6741201e-002, | ||
2501 | 6.6804943e-002, | ||
2502 | 6.1990105e-002, | ||
2503 | 8.1565279e-002, | ||
2504 | 2.2720394e-002, | ||
2505 | -1.2405569e-002, | ||
2506 | 7.1876233e-002, | ||
2507 | -1.0267524e-001, | ||
2508 | -3.0958839e-002, | ||
2509 | 7.9476530e-002, | ||
2510 | 2.1440879e-002, | ||
2511 | -3.6594375e-002, | ||
2512 | 1.2693478e-002, | ||
2513 | -3.5996147e-002, | ||
2514 | -4.4807775e-002, | ||
2515 | 3.0175162e-002, | ||
2516 | 6.0207188e-002, | ||
2517 | -4.4551692e-003, | ||
2518 | 5.2444239e-002, | ||
2519 | -6.7182348e-002, | ||
2520 | 3.4282089e-002, | ||
2521 | 1.2050117e-002, | ||
2522 | 6.7343302e-003, | ||
2523 | -3.4597852e-002, | ||
2524 | 6.2799536e-002, | ||
2525 | 9.0535361e-002, | ||
2526 | 4.6750855e-002, | ||
2527 | 4.5616156e-002, | ||
2528 | -4.7775494e-002, | ||
2529 | 3.3437120e-002, | ||
2530 | 6.3247569e-002, | ||
2531 | -2.5086044e-002, | ||
2532 | 6.0392800e-002, | ||
2533 | -1.0344192e-001, | ||
2534 | 1.0532757e-002, | ||
2535 | 8.0919299e-003, | ||
2536 | -2.0549100e-002, | ||
2537 | 7.9851230e-002, | ||
2538 | 5.9509621e-002, | ||
2539 | -1.0304151e-002, | ||
2540 | -3.6671778e-003, | ||
2541 | 1.0290329e-002, | ||
2542 | -3.6286054e-002, | ||
2543 | -1.1732592e-002, | ||
2544 | -8.4237566e-002, | ||
2545 | 3.3390752e-002, | ||
2546 | -5.1523669e-002, | ||
2547 | -7.7703392e-002, | ||
2548 | 7.2951732e-002, | ||
2549 | 5.5907824e-002, | ||
2550 | 5.5894272e-003, | ||
2551 | 5.4254663e-002, | ||
2552 | 5.1024916e-002, | ||
2553 | -5.6879548e-002, | ||
2554 | -6.2027367e-002, | ||
2555 | -5.6508306e-002, | ||
2556 | -4.3199186e-002, | ||
2557 | -7.0858160e-002, | ||
2558 | -2.7514315e-002, | ||
2559 | -1.0304944e-002, | ||
2560 | 9.7007038e-004, | ||
2561 | -6.7224049e-003, | ||
2562 | 9.2200691e-003, | ||
2563 | 3.8879401e-003, | ||
2564 | -6.5395433e-002, | ||
2565 | 6.6739257e-002, | ||
2566 | 6.1434975e-002, | ||
2567 | -7.8933867e-002, | ||
2568 | -8.4834779e-002, | ||
2569 | -2.7405250e-002, | ||
2570 | -2.6177970e-002, | ||
2571 | -3.3974921e-002, | ||
2572 | -3.5379505e-003, | ||
2573 | 5.0807223e-002, | ||
2574 | -6.0485730e-002, | ||
2575 | -7.1839018e-003, | ||
2576 | 2.6693750e-002, | ||
2577 | 5.3186567e-002, | ||
2578 | 1.4183779e-002, | ||
2579 | -2.2116051e-002, | ||
2580 | -1.3741848e-002, | ||
2581 | 6.1342417e-002, | ||
2582 | -3.7993387e-003, | ||
2583 | 3.7238204e-002, | ||
2584 | -1.0739599e-001, | ||
2585 | -1.4549117e-002, | ||
2586 | 4.0386015e-002, | ||
2587 | 1.2569153e-002, | ||
2588 | 3.5445067e-002, | ||
2589 | -3.8437920e-002, | ||
2590 | -1.4546469e-002, | ||
2591 | 2.3252293e-002, | ||
2592 | 5.8740276e-002, | ||
2593 | -4.5320281e-002, | ||
2594 | 4.8086444e-002, | ||
2595 | -4.6158419e-003, | ||
2596 | -5.5124482e-002, | ||
2597 | -3.3884263e-002, | ||
2598 | -1.6266463e-002, | ||
2599 | -1.6153097e-002, | ||
2600 | -7.1902422e-004, | ||
2601 | 4.7423985e-002, | ||
2602 | 4.5522942e-002, | ||
2603 | 5.8189486e-002, | ||
2604 | -1.6178881e-002, | ||
2605 | -8.5068904e-003, | ||
2606 | -2.1481593e-002, | ||
2607 | 5.9052882e-002, | ||
2608 | 7.6940824e-002, | ||
2609 | -4.1182363e-002, | ||
2610 | 9.3889318e-002, | ||
2611 | 3.2541071e-002, | ||
2612 | -5.0966470e-002, | ||
2613 | 1.1989934e-002, | ||
2614 | 1.3485465e-002, | ||
2615 | 1.1716420e-002, | ||
2616 | -3.3544036e-002, | ||
2617 | 1.0756654e-001, | ||
2618 | 2.3665782e-002, | ||
2619 | 5.1632941e-002, | ||
2620 | 3.3393177e-002, | ||
2621 | 2.6965276e-002, | ||
2622 | -9.3765636e-003, | ||
2623 | -4.0374893e-002, | ||
2624 | -7.6274872e-002, | ||
2625 | 1.8358287e-002, | ||
2626 | -5.4971891e-002, | ||
2627 | -6.1388507e-002, | ||
2628 | 4.0747836e-002, | ||
2629 | -3.0364737e-002, | ||
2630 | -3.8176810e-002, | ||
2631 | 2.1957238e-003, | ||
2632 | 1.5046955e-002, | ||
2633 | -4.6671984e-003, | ||
2634 | -3.7148168e-002, | ||
2635 | -3.7455685e-002, | ||
2636 | 3.7180183e-003, | ||
2637 | -8.5869921e-003, | ||
2638 | 3.5823221e-002, | ||
2639 | 2.0854178e-002, | ||
2640 | -5.6165218e-002, | ||
2641 | -9.2879840e-002, | ||
2642 | 1.4952542e-002, | ||
2643 | -1.6637472e-002, | ||
2644 | 2.7553373e-002, | ||
2645 | 1.1493587e-001, | ||
2646 | -3.5352769e-002, | ||
2647 | -6.9065396e-002, | ||
2648 | 7.7929176e-002, | ||
2649 | -5.9205594e-002, | ||
2650 | -1.8989624e-002, | ||
2651 | 1.1827864e-002, | ||
2652 | -3.8579019e-002, | ||
2653 | 1.6537438e-002, | ||
2654 | -4.5152596e-002, | ||
2655 | -8.0801346e-002, | ||
2656 | -3.4708707e-002, | ||
2657 | -2.0902185e-002, | ||
2658 | 3.5484478e-002, | ||
2659 | -7.2048970e-002, | ||
2660 | 3.9760809e-002, | ||
2661 | -2.1048159e-002, | ||
2662 | 2.9412146e-003, | ||
2663 | -1.2228266e-002, | ||
2664 | -1.0549788e-002, | ||
2665 | -1.3705371e-002, | ||
2666 | -4.2308328e-002, | ||
2667 | -8.5322508e-002, | ||
2668 | 5.6722120e-004, | ||
2669 | 3.8264621e-002, | ||
2670 | 4.3257303e-002, | ||
2671 | 2.8754160e-002, | ||
2672 | 3.3445727e-003, | ||
2673 | 2.9282907e-002, | ||
2674 | 4.8556817e-002, | ||
2675 | -3.3795246e-002, | ||
2676 | 4.0977665e-002, | ||
2677 | 3.6274969e-002, | ||
2678 | 3.3552753e-002, | ||
2679 | 2.9872002e-002, | ||
2680 | 6.3307072e-002, | ||
2681 | 1.4992383e-002, | ||
2682 | -5.8203262e-002, | ||
2683 | -3.0168145e-002, | ||
2684 | -3.2352139e-002, | ||
2685 | 7.6165643e-002, | ||
2686 | 7.1774864e-002, | ||
2687 | -1.7731640e-002, | ||
2688 | 3.7646033e-002, | ||
2689 | 5.8535492e-003, | ||
2690 | 8.3961663e-002, | ||
2691 | -7.6352210e-003, | ||
2692 | -3.6557713e-003, | ||
2693 | -6.1713535e-002, | ||
2694 | -4.8057903e-002, | ||
2695 | -4.6264109e-002, | ||
2696 | -3.4792201e-002, | ||
2697 | -2.7416585e-002, | ||
2698 | -1.3744116e-003, | ||
2699 | -1.9306191e-002, | ||
2700 | -5.0539515e-002, | ||
2701 | 2.7677455e-002, | ||
2702 | -2.2617917e-002, | ||
2703 | -8.4784776e-002, | ||
2704 | 7.3259229e-002, | ||
2705 | 5.9548509e-002, | ||
2706 | -7.2282648e-002, | ||
2707 | -5.0784237e-002, | ||
2708 | 9.1028580e-002, | ||
2709 | 1.6823871e-001, | ||
2710 | 4.3922313e-002, | ||
2711 | 2.0660018e-002, | ||
2712 | 1.2905801e-003, | ||
2713 | -5.9644574e-003, | ||
2714 | -6.6967719e-003, | ||
2715 | 2.1111482e-002, | ||
2716 | 4.5767224e-002, | ||
2717 | 1.9131948e-002, | ||
2718 | 2.6813139e-002, | ||
2719 | -4.6825266e-002, | ||
2720 | 1.1768354e-002, | ||
2721 | -3.0426377e-002, | ||
2722 | -7.0347178e-003, | ||
2723 | -7.6017599e-002, | ||
2724 | 2.1078534e-002, | ||
2725 | -9.1780175e-002, | ||
2726 | 2.7352079e-002, | ||
2727 | 2.7780454e-002, | ||
2728 | 8.3826886e-003, | ||
2729 | -1.5967673e-002, | ||
2730 | -1.0580313e-002, | ||
2731 | 3.8124734e-002, | ||
2732 | 3.6951219e-002, | ||
2733 | -2.5011240e-002, | ||
2734 | 2.9019645e-002, | ||
2735 | 3.3574092e-002, | ||
2736 | 1.2199007e-002, | ||
2737 | -6.3328122e-002, | ||
2738 | -1.0293542e-001, | ||
2739 | 6.2316941e-002, | ||
2740 | -1.1529230e-003, | ||
2741 | 1.0592972e-001, | ||
2742 | -2.3803313e-002, | ||
2743 | -4.2884377e-002, | ||
2744 | -2.3136181e-002, | ||
2745 | 9.6100002e-003, | ||
2746 | -3.8942235e-002, | ||
2747 | 1.0613309e-001, | ||
2748 | 1.1584978e-002, | ||
2749 | -2.8945108e-002, | ||
2750 | 1.1978745e-001, | ||
2751 | 3.3535039e-002, | ||
2752 | -3.3192905e-002, | ||
2753 | 6.4322894e-002, | ||
2754 | 4.3326082e-002, | ||
2755 | 2.2661431e-002, | ||
2756 | 2.1067896e-002, | ||
2757 | -1.6775258e-002, | ||
2758 | -1.1513173e-001, | ||
2759 | 1.6050052e-002, | ||
2760 | 3.6844183e-002, | ||
2761 | 2.9072793e-002, | ||
2762 | -6.7255761e-002, | ||
2763 | 5.7102385e-002, | ||
2764 | 7.0546617e-002, | ||
2765 | -2.0826937e-002, | ||
2766 | -5.7583856e-002, | ||
2767 | 3.0146035e-002, | ||
2768 | -1.9649341e-002, | ||
2769 | 5.1108010e-002, | ||
2770 | -1.2049234e-001, | ||
2771 | 9.1604975e-003, | ||
2772 | -4.4366320e-002, | ||
2773 | 1.0940581e-002, | ||
2774 | -7.4110213e-002, | ||
2775 | 1.0027252e-001, | ||
2776 | 8.3559986e-002, | ||
2777 | -5.0547965e-002, | ||
2778 | 3.0123395e-002, | ||
2779 | 7.0196532e-002, | ||
2780 | -8.3469946e-002, | ||
2781 | 3.3882963e-002, | ||
2782 | 6.1607561e-002, | ||
2783 | 4.4793665e-002, | ||
2784 | -9.6577712e-002, | ||
2785 | -5.0411980e-003, | ||
2786 | -1.5066601e-002, | ||
2787 | 2.4904787e-002, | ||
2788 | 1.1340361e-002, | ||
2789 | 2.9052246e-002, | ||
2790 | 2.6840614e-002, | ||
2791 | -1.9931112e-002, | ||
2792 | 5.2525978e-002, | ||
2793 | -4.9751069e-002, | ||
2794 | -7.9276887e-002, | ||
2795 | 2.8081748e-002, | ||
2796 | -4.1223168e-002, | ||
2797 | 1.3105117e-002, | ||
2798 | -2.6569475e-003, | ||
2799 | -3.2102570e-002, | ||
2800 | -2.6357544e-002, | ||
2801 | 2.2152608e-002, | ||
2802 | -3.1539891e-003, | ||
2803 | -3.4785718e-002, | ||
2804 | -1.0592171e-002, | ||
2805 | -4.0300905e-002, | ||
2806 | -1.5702723e-002, | ||
2807 | -1.8712957e-002, | ||
2808 | 3.3197549e-002, | ||
2809 | -3.6279117e-002, | ||
2810 | 4.2838238e-002, | ||
2811 | -1.6489429e-002, | ||
2812 | 2.4648914e-002, | ||
2813 | 5.1252616e-003, | ||
2814 | -8.1225473e-002, | ||
2815 | -5.6459253e-002, | ||
2816 | -5.2348110e-002, | ||
2817 | -7.0335906e-002, | ||
2818 | -3.3338823e-005, | ||
2819 | -3.2311169e-002, | ||
2820 | 7.4676135e-002, | ||
2821 | -3.7143822e-002, | ||
2822 | -6.8303532e-002, | ||
2823 | -7.0033274e-004, | ||
2824 | -3.7552999e-002, | ||
2825 | -6.6305361e-002, | ||
2826 | 1.2196684e-001, | ||
2827 | 2.2084222e-002, | ||
2828 | 4.1475857e-002, | ||
2829 | -1.0862949e-003, | ||
2830 | -4.0143874e-002, | ||
2831 | -3.7947485e-002, | ||
2832 | 2.3605616e-002, | ||
2833 | 2.3128901e-002, | ||
2834 | 1.6999557e-001, | ||
2835 | 8.7507268e-003, | ||
2836 | -1.6086519e-002, | ||
2837 | 1.6438629e-002, | ||
2838 | 5.3086378e-002, | ||
2839 | 4.2778341e-002, | ||
2840 | -5.1411551e-002, | ||
2841 | -9.1155004e-003, | ||
2842 | 7.1703894e-002, | ||
2843 | -6.2919585e-002, | ||
2844 | -4.1252239e-003, | ||
2845 | -2.7800338e-002, | ||
2846 | 1.3406385e-002, | ||
2847 | -1.9639614e-002, | ||
2848 | 2.0766865e-002, | ||
2849 | -8.0707557e-002, | ||
2850 | -7.9126401e-003, | ||
2851 | 1.2061087e-002, | ||
2852 | 7.8233420e-002, | ||
2853 | 2.5787108e-003, | ||
2854 | 9.6325419e-002, | ||
2855 | 4.2169871e-002, | ||
2856 | 4.5779560e-002, | ||
2857 | 1.1692399e-002, | ||
2858 | 3.6624616e-002, | ||
2859 | -2.1368960e-002, | ||
2860 | 8.6087403e-002, | ||
2861 | -3.9290515e-002, | ||
2862 | -9.1694613e-003, | ||
2863 | 3.1814092e-002, | ||
2864 | 2.4160765e-002, | ||
2865 | -1.1817798e-003, | ||
2866 | 1.1293805e-001, | ||
2867 | 3.5901275e-002, | ||
2868 | 2.3964131e-002, | ||
2869 | 1.4594516e-002, | ||
2870 | 8.3442765e-002, | ||
2871 | 2.7873584e-003, | ||
2872 | 9.2888387e-002, | ||
2873 | 5.6597406e-002, | ||
2874 | 3.3678386e-002, | ||
2875 | 1.1285883e-002, | ||
2876 | -1.3345965e-002, | ||
2877 | -3.7971276e-002, | ||
2878 | 3.8853868e-002, | ||
2879 | 4.0434589e-002, | ||
2880 | -3.5457626e-002, | ||
2881 | 3.4183998e-002, | ||
2882 | 9.8248684e-002, | ||
2883 | -7.6115939e-002, | ||
2884 | -1.1769491e-002, | ||
2885 | -3.8386164e-002, | ||
2886 | -1.8975843e-002, | ||
2887 | -9.3988535e-002, | ||
2888 | -5.5576121e-003, | ||
2889 | -1.8636003e-002, | ||
2890 | 2.8386234e-002, | ||
2891 | -2.4200578e-002, | ||
2892 | 4.1252766e-002, | ||
2893 | -6.8000375e-002, | ||
2894 | -3.7388633e-002, | ||
2895 | -3.0010634e-002, | ||
2896 | -2.0049886e-002, | ||
2897 | 2.5499201e-002, | ||
2898 | -3.7598273e-002, | ||
2899 | -4.4794045e-002, | ||
2900 | 4.9668753e-002, | ||
2901 | 2.8526404e-002, | ||
2902 | -7.6218361e-003, | ||
2903 | -1.0150563e-001, | ||
2904 | -3.1635380e-002, | ||
2905 | 6.0899411e-002, | ||
2906 | -4.0702573e-003, | ||
2907 | 3.6908492e-002, | ||
2908 | 6.0695811e-002, | ||
2909 | -8.5097943e-002, | ||
2910 | 5.3730269e-002, | ||
2911 | 3.7528389e-003, | ||
2912 | 9.3525516e-002, | ||
2913 | -1.4898976e-002, | ||
2914 | 2.7723761e-002, | ||
2915 | -1.3087617e-002, | ||
2916 | -8.5905788e-003, | ||
2917 | -4.0551186e-003, | ||
2918 | 5.2805805e-003, | ||
2919 | 6.8736269e-002, | ||
2920 | 1.5477601e-003, | ||
2921 | 4.0766710e-003, | ||
2922 | 2.4948069e-002, | ||
2923 | -2.3695927e-002, | ||
2924 | 2.0778232e-002, | ||
2925 | 7.7785189e-002, | ||
2926 | -6.5214959e-002, | ||
2927 | -1.6680307e-002, | ||
2928 | -5.1966107e-002, | ||
2929 | 7.5663630e-003, | ||
2930 | -1.3256079e-002, | ||
2931 | 2.9625848e-002, | ||
2932 | -3.9745297e-002, | ||
2933 | 2.5236371e-002, | ||
2934 | -3.2270585e-002, | ||
2935 | 6.2655107e-002, | ||
2936 | 3.3731838e-002, | ||
2937 | 2.2075588e-003, | ||
2938 | -2.9591354e-002, | ||
2939 | 3.1341479e-002, | ||
2940 | -7.6083655e-002, | ||
2941 | 6.1296972e-002, | ||
2942 | -5.6695620e-002, | ||
2943 | 2.2323220e-002, | ||
2944 | 2.3643317e-003, | ||
2945 | 2.5031378e-002, | ||
2946 | 5.5413805e-002, | ||
2947 | 6.0973843e-002, | ||
2948 | -7.3883029e-002, | ||
2949 | 1.3029020e-002, | ||
2950 | 6.5448736e-002, | ||
2951 | -2.3732566e-002, | ||
2952 | -1.6089444e-002, | ||
2953 | -2.1074484e-002, | ||
2954 | 5.7948843e-002, | ||
2955 | 8.6615559e-002, | ||
2956 | -9.1319744e-002, | ||
2957 | -1.0161538e-002, | ||
2958 | 1.9629470e-002, | ||
2959 | 1.9360651e-002, | ||
2960 | -2.8093541e-002, | ||
2961 | -4.2935479e-002, | ||
2962 | 1.0709420e-002, | ||
2963 | 7.8669934e-002, | ||
2964 | 2.3835887e-002, | ||
2965 | 1.8165279e-002, | ||
2966 | -5.4214119e-003, | ||
2967 | -7.9902014e-003, | ||
2968 | 4.5058379e-002, | ||
2969 | -3.2063499e-002, | ||
2970 | -5.8672800e-002, | ||
2971 | 1.2173177e-002, | ||
2972 | 5.9993154e-002, | ||
2973 | 2.3138893e-002, | ||
2974 | 8.0998931e-003, | ||
2975 | -4.4800380e-002, | ||
2976 | -2.4859361e-002, | ||
2977 | -1.5868492e-002, | ||
2978 | -5.2323712e-002, | ||
2979 | -4.5973299e-002, | ||
2980 | -2.3052455e-003, | ||
2981 | 8.1582903e-003, | ||
2982 | 6.8065483e-002, | ||
2983 | 7.6438296e-004, | ||
2984 | 4.0392238e-002, | ||
2985 | -6.5966937e-002, | ||
2986 | -5.0614520e-002, | ||
2987 | -5.5301523e-002, | ||
2988 | -4.2561773e-003, | ||
2989 | 5.9937931e-002, | ||
2990 | -2.1382190e-002, | ||
2991 | -2.0676084e-002, | ||
2992 | -3.5839724e-002, | ||
2993 | -1.2403270e-002, | ||
2994 | -1.8285642e-002, | ||
2995 | -4.5681905e-002, | ||
2996 | 2.5535673e-002, | ||
2997 | 1.4234783e-002, | ||
2998 | -1.9259208e-002, | ||
2999 | -2.5661378e-002, | ||
3000 | 3.0184961e-002, | ||
3001 | -5.6818389e-002, | ||
3002 | 3.2310662e-002, | ||
3003 | -2.4301821e-003, | ||
3004 | -1.2328487e-002, | ||
3005 | -5.4786335e-002, | ||
3006 | -4.8916330e-002, | ||
3007 | 4.8190116e-002, | ||
3008 | -6.0850449e-002, | ||
3009 | 7.7620003e-002, | ||
3010 | -6.6473044e-002, | ||
3011 | 5.1361693e-002, | ||
3012 | -4.4367608e-002, | ||
3013 | 5.9245756e-002, | ||
3014 | 5.3474787e-003, | ||
3015 | 3.8059821e-003, | ||
3016 | -6.1171918e-002, | ||
3017 | -2.9543201e-002, | ||
3018 | -8.3560612e-003, | ||
3019 | -4.1202373e-002, | ||
3020 | -5.3271164e-002, | ||
3021 | 7.6473415e-002, | ||
3022 | 1.3747330e-002, | ||
3023 | -4.2692942e-002, | ||
3024 | -4.7688735e-002, | ||
3025 | 9.0017757e-002, | ||
3026 | -5.5124068e-002, | ||
3027 | -4.9430822e-002, | ||
3028 | 1.9839950e-002, | ||
3029 | 6.1066303e-002, | ||
3030 | -1.3518935e-001, | ||
3031 | 4.5758030e-002, | ||
3032 | 2.8061894e-002, | ||
3033 | 2.2738266e-002, | ||
3034 | -9.3128822e-003, | ||
3035 | 7.9618280e-002, | ||
3036 | -1.2187199e-001, | ||
3037 | 4.5605462e-002, | ||
3038 | -3.0479221e-002, | ||
3039 | 3.8694000e-002, | ||
3040 | -1.8124762e-002, | ||
3041 | 3.7759175e-002, | ||
3042 | 1.8158014e-003, | ||
3043 | -2.7070632e-002, | ||
3044 | -2.3634825e-002, | ||
3045 | 5.2676876e-002, | ||
3046 | -5.2016000e-003, | ||
3047 | -5.4593248e-002, | ||
3048 | -1.6338775e-002, | ||
3049 | -8.0919891e-002, | ||
3050 | 8.7671746e-003, | ||
3051 | 5.8316283e-002, | ||
3052 | -6.9144058e-002, | ||
3053 | -4.6936119e-002, | ||
3054 | 1.6594244e-002, | ||
3055 | -7.6784768e-002, | ||
3056 | -6.3547981e-003, | ||
3057 | 4.8236469e-002, | ||
3058 | 1.6578926e-002, | ||
3059 | -2.8223303e-002, | ||
3060 | -8.7243754e-002, | ||
3061 | 5.5790867e-002, | ||
3062 | 4.5976330e-003, | ||
3063 | -4.0593161e-003, | ||
3064 | -7.1609202e-002, | ||
3065 | 3.6451850e-002, | ||
3066 | -3.6051938e-002, | ||
3067 | 1.0343606e-004, | ||
3068 | 4.0493147e-002, | ||
3069 | 2.1330427e-002, | ||
3070 | -3.3170735e-002, | ||
3071 | -4.4584020e-003, | ||
3072 | 3.1555313e-002, | ||
3073 | -1.1414545e-001, | ||
3074 | 5.6867307e-002, | ||
3075 | 4.0626699e-002, | ||
3076 | -5.8860350e-002, | ||
3077 | -1.0003188e-001, | ||
3078 | -4.8326893e-002, | ||
3079 | -1.2614691e-002, | ||
3080 | -2.1586874e-002, | ||
3081 | -3.1935606e-002, | ||
3082 | 2.4103451e-002, | ||
3083 | 1.4488790e-002, | ||
3084 | -8.0859096e-004, | ||
3085 | -3.8980020e-003, | ||
3086 | 7.4909148e-002, | ||
3087 | -2.8049185e-002, | ||
3088 | -2.0918789e-002, | ||
3089 | -2.4711940e-002, | ||
3090 | 5.3455068e-002, | ||
3091 | -9.7517045e-003, | ||
3092 | -2.4433675e-002, | ||
3093 | 3.7640959e-002, | ||
3094 | 2.4437924e-002, | ||
3095 | 4.6113770e-003, | ||
3096 | -2.1101125e-002, | ||
3097 | -2.2852117e-002, | ||
3098 | -7.2572348e-002, | ||
3099 | 3.6761328e-002, | ||
3100 | 2.6652183e-002, | ||
3101 | -4.3100149e-002, | ||
3102 | -5.4098286e-002, | ||
3103 | 8.2220041e-002, | ||
3104 | 5.5613895e-002, | ||
3105 | 5.4603855e-002, | ||
3106 | -1.3589191e-001, | ||
3107 | 2.3347518e-002, | ||
3108 | 4.6453611e-002, | ||
3109 | 2.2623921e-003, | ||
3110 | 6.0644536e-002, | ||
3111 | -7.5601564e-002, | ||
3112 | -8.9194042e-002, | ||
3113 | -3.4410351e-002, | ||
3114 | -3.4360013e-003, | ||
3115 | 5.1666691e-002, | ||
3116 | 1.2464056e-002, | ||
3117 | -2.3030505e-003, | ||
3118 | -3.9004649e-002, | ||
3119 | 1.1817405e-002, | ||
3120 | -3.4117635e-002, | ||
3121 | -2.8693035e-002, | ||
3122 | -1.5931261e-002, | ||
3123 | 8.0677220e-004, | ||
3124 | 1.8397691e-002, | ||
3125 | -3.1052320e-002, | ||
3126 | 4.9726240e-002, | ||
3127 | -2.0747799e-002, | ||
3128 | -6.0637710e-003, | ||
3129 | -7.9396747e-002, | ||
3130 | 4.8372461e-002, | ||
3131 | -7.1979765e-002, | ||
3132 | 2.6832942e-002, | ||
3133 | 2.9273777e-002, | ||
3134 | -4.8337996e-003, | ||
3135 | 4.0391770e-003, | ||
3136 | -9.4918066e-002, | ||
3137 | 6.2066596e-002, | ||
3138 | 4.9875577e-002, | ||
3139 | -3.3753903e-002, | ||
3140 | -2.4500392e-002, | ||
3141 | 9.0658929e-002, | ||
3142 | -9.8343476e-002, | ||
3143 | -6.2504733e-003, | ||
3144 | 1.1991216e-001, | ||
3145 | 2.8944337e-002, | ||
3146 | 2.6898626e-003, | ||
3147 | -6.4267875e-002, | ||
3148 | 2.9019187e-002, | ||
3149 | 1.9971213e-002, | ||
3150 | 8.0684873e-003, | ||
3151 | 1.3081097e-002, | ||
3152 | -3.1283754e-002, | ||
3153 | -2.8489269e-002, | ||
3154 | -1.1686268e-001, | ||
3155 | -1.3745347e-002, | ||
3156 | 5.3686243e-002, | ||
3157 | -5.2197217e-002, | ||
3158 | -3.3465705e-002, | ||
3159 | -3.5083431e-002, | ||
3160 | 1.6015164e-002, | ||
3161 | 2.4493466e-002, | ||
3162 | -2.3306198e-002, | ||
3163 | -1.9672026e-002, | ||
3164 | -7.6748565e-002, | ||
3165 | -7.1159132e-002, | ||
3166 | -3.6831968e-002, | ||
3167 | -1.1592501e-001, | ||
3168 | -1.1802673e-001, | ||
3169 | 2.8843104e-002, | ||
3170 | -5.9118430e-002, | ||
3171 | -1.1106526e-002, | ||
3172 | -4.0643480e-002, | ||
3173 | -3.3903934e-002, | ||
3174 | 6.9026642e-002, | ||
3175 | -3.3357058e-002, | ||
3176 | 3.1574083e-002, | ||
3177 | 4.0538895e-002, | ||
3178 | 4.3133551e-002, | ||
3179 | 3.7814770e-002, | ||
3180 | 6.4315631e-002, | ||
3181 | -5.5887205e-002, | ||
3182 | -6.1198396e-002, | ||
3183 | 7.2376501e-002, | ||
3184 | -4.4847288e-002, | ||
3185 | 4.4972439e-002, | ||
3186 | 8.9532496e-002, | ||
3187 | 2.7491210e-002, | ||
3188 | 3.5765916e-002, | ||
3189 | -5.8314299e-002, | ||
3190 | -1.5996091e-002, | ||
3191 | -4.3521287e-002, | ||
3192 | -2.8304205e-002, | ||
3193 | -4.3486571e-002, | ||
3194 | 1.0849438e-001, | ||
3195 | 2.2361367e-002, | ||
3196 | -6.1362009e-003, | ||
3197 | 5.3111507e-002, | ||
3198 | -8.8565282e-002, | ||
3199 | 8.4842988e-002, | ||
3200 | 1.0627885e-002, | ||
3201 | 4.4828472e-003, | ||
3202 | 7.7250566e-003, | ||
3203 | -3.5888413e-002, | ||
3204 | 4.5405946e-002, | ||
3205 | 9.5357093e-003, | ||
3206 | 3.8049221e-002, | ||
3207 | 1.1798868e-002, | ||
3208 | 8.5901681e-002, | ||
3209 | 7.2651393e-002, | ||
3210 | -1.0648259e-002, | ||
3211 | -3.5412792e-002, | ||
3212 | -5.2852119e-003, | ||
3213 | -2.8006256e-002, | ||
3214 | -5.8455622e-003, | ||
3215 | 9.2263862e-003, | ||
3216 | 1.4651709e-002, | ||
3217 | -1.1429416e-001, | ||
3218 | 8.0368439e-002, | ||
3219 | 2.6278264e-002, | ||
3220 | 2.0947848e-002, | ||
3221 | 5.9186459e-002, | ||
3222 | 3.0967487e-002, | ||
3223 | -1.1507298e-001, | ||
3224 | -3.4239562e-004, | ||
3225 | -2.0939429e-002, | ||
3226 | 6.9101989e-002, | ||
3227 | 1.9188787e-002, | ||
3228 | -1.7007634e-002, | ||
3229 | -1.4226805e-002, | ||
3230 | 2.0497813e-003, | ||
3231 | 4.8643630e-003, | ||
3232 | -5.0243128e-002, | ||
3233 | 2.6571757e-002, | ||
3234 | -2.5756622e-002, | ||
3235 | -6.2136271e-002, | ||
3236 | 3.0876774e-002, | ||
3237 | -3.2966648e-002, | ||
3238 | -4.6798326e-002, | ||
3239 | -7.2864522e-002, | ||
3240 | -7.0620327e-002, | ||
3241 | 3.1514440e-002, | ||
3242 | 4.7419175e-002, | ||
3243 | -2.9639040e-002, | ||
3244 | -7.4872381e-002, | ||
3245 | 1.0268214e-001, | ||
3246 | -6.4408455e-002, | ||
3247 | -5.1714244e-002, | ||
3248 | -1.4811842e-002, | ||
3249 | -2.6652795e-002, | ||
3250 | -3.3398841e-002, | ||
3251 | -9.1093311e-002, | ||
3252 | -2.9613673e-002, | ||
3253 | -3.2849316e-002, | ||
3254 | -2.1792627e-002, | ||
3255 | -4.8905018e-002, | ||
3256 | 3.8278002e-002, | ||
3257 | -1.0578267e-001, | ||
3258 | 3.9883500e-002, | ||
3259 | -4.0322452e-002, | ||
3260 | -7.7085856e-002, | ||
3261 | -1.1560340e-002, | ||
3262 | -9.6078464e-003, | ||
3263 | -5.2790120e-003, | ||
3264 | -1.7445510e-002, | ||
3265 | 4.1210396e-002, | ||
3266 | -3.1966850e-002, | ||
3267 | -4.2623715e-002, | ||
3268 | -3.8224686e-002, | ||
3269 | -2.3460384e-002, | ||
3270 | -1.8322700e-002, | ||
3271 | 1.5049174e-001, | ||
3272 | -3.1993543e-002, | ||
3273 | 4.3014183e-002, | ||
3274 | -4.4366020e-002, | ||
3275 | -1.9251396e-002, | ||
3276 | -1.2898947e-002, | ||
3277 | -6.0899923e-002, | ||
3278 | -5.9898591e-002, | ||
3279 | -5.6557253e-002, | ||
3280 | 4.6067919e-002, | ||
3281 | 2.0882012e-002, | ||
3282 | -7.1937529e-002, | ||
3283 | -9.5914837e-002, | ||
3284 | -1.2626698e-001, | ||
3285 | -3.6792717e-002, | ||
3286 | 2.8022409e-002, | ||
3287 | -3.4921767e-002, | ||
3288 | -2.2305614e-002, | ||
3289 | -3.2328726e-002, | ||
3290 | -4.8809030e-002, | ||
3291 | -2.6925977e-002, | ||
3292 | -4.2114647e-002, | ||
3293 | 8.7023862e-002, | ||
3294 | -3.7654336e-003, | ||
3295 | 6.9322688e-002, | ||
3296 | 9.2912513e-003, | ||
3297 | 5.7435044e-002, | ||
3298 | 1.9609569e-002, | ||
3299 | -1.1570562e-002, | ||
3300 | 6.1049764e-002, | ||
3301 | -6.4977165e-002, | ||
3302 | -5.0641683e-002, | ||
3303 | -4.9830239e-002, | ||
3304 | 2.9619165e-002, | ||
3305 | -4.3292073e-002, | ||
3306 | -6.2860680e-002, | ||
3307 | 6.3449012e-002, | ||
3308 | 6.3302743e-002, | ||
3309 | -3.7096028e-002, | ||
3310 | -4.6860354e-002, | ||
3311 | 1.6643809e-002, | ||
3312 | -2.8812456e-002, | ||
3313 | -1.2949017e-004, | ||
3314 | -5.0303595e-003, | ||
3315 | -5.1531111e-002, | ||
3316 | 1.0185519e-001, | ||
3317 | -8.8467370e-003, | ||
3318 | -6.4260237e-002, | ||
3319 | 2.2972796e-002, | ||
3320 | -8.7208177e-003, | ||
3321 | 2.1703090e-002, | ||
3322 | -3.2583688e-002, | ||
3323 | 1.9180369e-002, | ||
3324 | -4.6604492e-002, | ||
3325 | 5.9620323e-002, | ||
3326 | -2.3169309e-002, | ||
3327 | 1.7923404e-002, | ||
3328 | 7.0399591e-002, | ||
3329 | -6.3632676e-003, | ||
3330 | -6.2662420e-002, | ||
3331 | -5.0818406e-003, | ||
3332 | 7.6310034e-002, | ||
3333 | 3.8440333e-002, | ||
3334 | 2.3108218e-002, | ||
3335 | 1.0992061e-001, | ||
3336 | -6.6023131e-002, | ||
3337 | 1.0339039e-002, | ||
3338 | -1.2454926e-002, | ||
3339 | 3.0748449e-002, | ||
3340 | 3.8733454e-002, | ||
3341 | -8.1029526e-002, | ||
3342 | -6.3890932e-003, | ||
3343 | -1.7310614e-003, | ||
3344 | -6.5448180e-002, | ||
3345 | -1.3567927e-002, | ||
3346 | -1.4651225e-002, | ||
3347 | -1.6402517e-003, | ||
3348 | -4.0889024e-002, | ||
3349 | 3.3267739e-002, | ||
3350 | -8.7669631e-002, | ||
3351 | -1.1762527e-001, | ||
3352 | -3.0337637e-003, | ||
3353 | -1.0579264e-001, | ||
3354 | 3.8458061e-002, | ||
3355 | 6.1506618e-002, | ||
3356 | -1.2438319e-002, | ||
3357 | -2.0981512e-002, | ||
3358 | 8.6707387e-003, | ||
3359 | 4.1305048e-002, | ||
3360 | 5.8010222e-002, | ||
3361 | 3.4177414e-002, | ||
3362 | 6.1614068e-002, | ||
3363 | 3.7742022e-002, | ||
3364 | 2.2274616e-003, | ||
3365 | -3.3374053e-002, | ||
3366 | -1.3841013e-002, | ||
3367 | -1.5519456e-002, | ||
3368 | -1.1770865e-001, | ||
3369 | -4.0589703e-002, | ||
3370 | 1.1432496e-001, | ||
3371 | -2.8665001e-002, | ||
3372 | -9.7087434e-002, | ||
3373 | 2.8739815e-002, | ||
3374 | 9.2917531e-002, | ||
3375 | 1.1938896e-001, | ||
3376 | -2.9010572e-002, | ||
3377 | -3.4721428e-002, | ||
3378 | -3.4855927e-002, | ||
3379 | -1.2121671e-002, | ||
3380 | -1.0158399e-001, | ||
3381 | 9.7895131e-002, | ||
3382 | -7.8712576e-002, | ||
3383 | -7.9976995e-002, | ||
3384 | 7.6185673e-002, | ||
3385 | -2.8833935e-002, | ||
3386 | 1.8354206e-002, | ||
3387 | -1.7587259e-001, | ||
3388 | -7.8647771e-002, | ||
3389 | 2.2256759e-002, | ||
3390 | -2.1611016e-002, | ||
3391 | 2.4071583e-002, | ||
3392 | 4.5227886e-004, | ||
3393 | -7.2657111e-002, | ||
3394 | -7.2168746e-002, | ||
3395 | -1.1452740e-002, | ||
3396 | 1.6181869e-002, | ||
3397 | 4.5831060e-002, | ||
3398 | -2.3369801e-003, | ||
3399 | -2.8727581e-002, | ||
3400 | 7.5005238e-003, | ||
3401 | -8.9739571e-003, | ||
3402 | -4.1100109e-002, | ||
3403 | -1.6087343e-002, | ||
3404 | 7.4606898e-003, | ||
3405 | 2.9933544e-002, | ||
3406 | -1.2690286e-001, | ||
3407 | -3.9049832e-002, | ||
3408 | 2.7720568e-002, | ||
3409 | 1.7947841e-002, | ||
3410 | 3.4410773e-002, | ||
3411 | 5.5729818e-003, | ||
3412 | -1.8016513e-002, | ||
3413 | -4.8830323e-002, | ||
3414 | 3.2716530e-002, | ||
3415 | -3.4232512e-002, | ||
3416 | -1.6426973e-002, | ||
3417 | 5.0795800e-002, | ||
3418 | -3.1791729e-002, | ||
3419 | 3.7707010e-002, | ||
3420 | 4.5092581e-002, | ||
3421 | -4.8603247e-002, | ||
3422 | 2.9459071e-002, | ||
3423 | -4.6422186e-002, | ||
3424 | 3.9296295e-003, | ||
3425 | -2.8900220e-002, | ||
3426 | 1.1207343e-002, | ||
3427 | -3.5131485e-002, | ||
3428 | 3.0510860e-002, | ||
3429 | 1.0155622e-001, | ||
3430 | 6.2187792e-003, | ||
3431 | 6.7503241e-002, | ||
3432 | 4.7232070e-002, | ||
3433 | -2.1226837e-002, | ||
3434 | -8.4154353e-003, | ||
3435 | 2.0913858e-002, | ||
3436 | 7.0127327e-003, | ||
3437 | -1.2448522e-002, | ||
3438 | 1.6449412e-002, | ||
3439 | 4.5151926e-002, | ||
3440 | 4.6836548e-002, | ||
3441 | -2.0687186e-002, | ||
3442 | -7.3644538e-002, | ||
3443 | -1.0260562e-001, | ||
3444 | 4.1594354e-004, | ||
3445 | 2.2962943e-002, | ||
3446 | -3.6753478e-002, | ||
3447 | -3.6656754e-002, | ||
3448 | -3.9912894e-002, | ||
3449 | 1.1998781e-002, | ||
3450 | 1.2228691e-002, | ||
3451 | 6.9910277e-002, | ||
3452 | 2.4035919e-002, | ||
3453 | 7.1080248e-003, | ||
3454 | 3.6471267e-002, | ||
3455 | -1.5899153e-003, | ||
3456 | -6.2981316e-002, | ||
3457 | -4.8019402e-003, | ||
3458 | 9.9610031e-002, | ||
3459 | 3.4685502e-002, | ||
3460 | -1.4906597e-001, | ||
3461 | 6.2799402e-002, | ||
3462 | -3.8932025e-003, | ||
3463 | 3.5313345e-002, | ||
3464 | 6.4080127e-003, | ||
3465 | 7.7712074e-002, | ||
3466 | 1.9652177e-002, | ||
3467 | 3.3529556e-002, | ||
3468 | 6.7998095e-002, | ||
3469 | 4.0481914e-002, | ||
3470 | -4.5148562e-002, | ||
3471 | 1.2390995e-001, | ||
3472 | 6.0472177e-002, | ||
3473 | -4.0537793e-002, | ||
3474 | -2.9016904e-002, | ||
3475 | 1.0069785e-002, | ||
3476 | -4.3630516e-002, | ||
3477 | 1.6317010e-002, | ||
3478 | -8.1563635e-003, | ||
3479 | -2.9428878e-002, | ||
3480 | -1.0007097e-002, | ||
3481 | 1.1748494e-003, | ||
3482 | -3.7584384e-003, | ||
3483 | -1.0136314e-002, | ||
3484 | 6.9501199e-002, | ||
3485 | -6.2079897e-002, | ||
3486 | 5.6550846e-002, | ||
3487 | -3.1224895e-004, | ||
3488 | 1.5172074e-002, | ||
3489 | 3.5494228e-002, | ||
3490 | -2.8525286e-002, | ||
3491 | 7.0934847e-002, | ||
3492 | -2.1855207e-002, | ||
3493 | -9.0589689e-002, | ||
3494 | -5.0420263e-002, | ||
3495 | -6.4220854e-002, | ||
3496 | 8.0572534e-002, | ||
3497 | 4.4657936e-002, | ||
3498 | 3.8900053e-002, | ||
3499 | 2.3038306e-002, | ||
3500 | -2.9059798e-002, | ||
3501 | 4.1790833e-002, | ||
3502 | -1.4498459e-003, | ||
3503 | -1.4247977e-002, | ||
3504 | -7.2557019e-003, | ||
3505 | 7.0209000e-002, | ||
3506 | 7.1292433e-002, | ||
3507 | -1.0914340e-002, | ||
3508 | 1.0671194e-001, | ||
3509 | -3.9136244e-002, | ||
3510 | -1.3175217e-002, | ||
3511 | 1.3764681e-002, | ||
3512 | 1.1563616e-001, | ||
3513 | -6.3896840e-003, | ||
3514 | -6.2527708e-002, | ||
3515 | 8.8512912e-002, | ||
3516 | -2.9045669e-002, | ||
3517 | 1.5227173e-002, | ||
3518 | -5.0667751e-002, | ||
3519 | 1.2560643e-001, | ||
3520 | 7.4986299e-002, | ||
3521 | 3.3825251e-002, | ||
3522 | 1.5514266e-003, | ||
3523 | -5.2532720e-002, | ||
3524 | 1.7029297e-002, | ||
3525 | -3.2944301e-002, | ||
3526 | -6.1748947e-002, | ||
3527 | 2.6402422e-002, | ||
3528 | -2.6902014e-002, | ||
3529 | -1.1054785e-001, | ||
3530 | 4.5217579e-002, | ||
3531 | 7.2634916e-002, | ||
3532 | 4.7126396e-003, | ||
3533 | 5.3388646e-002, | ||
3534 | 1.4724645e-002, | ||
3535 | 4.8733852e-002, | ||
3536 | -2.4509080e-002, | ||
3537 | -9.1580431e-002, | ||
3538 | 5.2106999e-003, | ||
3539 | -1.5643665e-001, | ||
3540 | -4.8892928e-003, | ||
3541 | -5.3026671e-002, | ||
3542 | -4.4146053e-004, | ||
3543 | 3.2444612e-002, | ||
3544 | -2.3101994e-003, | ||
3545 | 9.4890488e-002, | ||
3546 | -7.8052719e-002, | ||
3547 | 6.0338172e-003, | ||
3548 | -4.0433742e-002, | ||
3549 | -3.9104783e-002, | ||
3550 | 4.0994343e-002, | ||
3551 | 7.7513705e-002, | ||
3552 | -1.8133412e-002, | ||
3553 | -1.8801315e-002, | ||
3554 | 9.9180571e-002, | ||
3555 | 5.9051814e-002, | ||
3556 | 3.2637953e-002, | ||
3557 | 4.5773237e-002, | ||
3558 | 9.2868125e-003, | ||
3559 | -4.4946634e-002, | ||
3560 | -5.0590403e-002, | ||
3561 | -3.3365865e-002, | ||
3562 | 3.5527025e-002, | ||
3563 | 7.4204867e-003, | ||
3564 | 1.5004459e-002, | ||
3565 | -3.4647091e-003, | ||
3566 | 5.5465088e-002, | ||
3567 | 1.1416662e-001, | ||
3568 | -2.6462288e-002, | ||
3569 | 6.8671916e-002, | ||
3570 | -6.3002510e-003, | ||
3571 | 1.1583924e-002, | ||
3572 | 3.1050102e-003, | ||
3573 | -1.0105237e-001, | ||
3574 | -1.0657225e-002, | ||
3575 | -9.8132990e-002, | ||
3576 | -2.8254118e-002, | ||
3577 | 5.8377956e-002, | ||
3578 | -2.3015648e-002, | ||
3579 | -1.7437864e-002, | ||
3580 | -2.2634945e-002, | ||
3581 | -4.8192213e-002, | ||
3582 | -4.7584233e-002, | ||
3583 | 1.9414654e-002, | ||
3584 | -2.7057831e-002, | ||
3585 | 1.7158611e-002, | ||
3586 | 1.3317117e-001, | ||
3587 | -5.5081291e-002, | ||
3588 | -5.0017430e-002, | ||
3589 | 7.6813579e-002, | ||
3590 | 9.4583304e-002, | ||
3591 | -6.9067814e-002, | ||
3592 | 1.9120563e-002, | ||
3593 | 2.1258087e-002, | ||
3594 | 7.2055539e-002, | ||
3595 | -4.4266255e-002, | ||
3596 | -3.2205709e-002, | ||
3597 | -2.8779031e-002, | ||
3598 | -2.3481940e-002, | ||
3599 | 1.7708910e-002, | ||
3600 | -1.9311139e-002, | ||
3601 | 5.3418240e-002, | ||
3602 | 2.4606925e-002, | ||
3603 | 5.0846628e-003, | ||
3604 | -2.0453302e-002, | ||
3605 | 3.5461384e-002, | ||
3606 | 1.3245649e-002, | ||
3607 | -1.4856256e-002, | ||
3608 | -4.1995487e-002, | ||
3609 | -6.8461842e-003, | ||
3610 | 4.3425178e-002, | ||
3611 | -4.2381240e-002, | ||
3612 | -1.2470922e-001, | ||
3613 | -6.6566711e-002, | ||
3614 | -1.5328279e-003, | ||
3615 | 2.1121820e-002, | ||
3616 | -8.9850510e-002, | ||
3617 | 2.0682240e-004, | ||
3618 | -5.8686388e-002, | ||
3619 | 7.1519107e-002, | ||
3620 | 2.7049268e-002, | ||
3621 | 4.3271736e-003, | ||
3622 | -1.8990188e-002, | ||
3623 | 4.1744154e-003, | ||
3624 | -6.7617528e-002, | ||
3625 | -1.5982309e-002, | ||
3626 | -8.6739389e-003, | ||
3627 | 6.8767245e-003, | ||
3628 | -7.0052976e-003, | ||
3629 | 8.3718019e-002, | ||
3630 | 5.8127315e-002, | ||
3631 | -9.4223672e-002, | ||
3632 | -1.3478363e-002, | ||
3633 | -3.2457089e-002, | ||
3634 | -1.7549472e-001, | ||
3635 | 2.8493349e-002, | ||
3636 | 1.0412304e-001, | ||
3637 | -1.1173210e-003, | ||
3638 | 7.1447946e-003, | ||
3639 | 2.7052018e-002, | ||
3640 | 2.1816972e-003, | ||
3641 | -8.8630176e-002, | ||
3642 | -1.0701357e-001, | ||
3643 | -4.1207617e-002, | ||
3644 | 3.7077898e-003, | ||
3645 | 8.7053488e-002, | ||
3646 | 1.4283129e-002, | ||
3647 | 6.4010086e-002, | ||
3648 | -3.7679928e-002, | ||
3649 | 8.3111383e-002, | ||
3650 | 5.6677718e-002, | ||
3651 | 1.4063916e-003, | ||
3652 | -1.0364232e-001, | ||
3653 | 3.6312049e-002, | ||
3654 | -2.6135054e-002, | ||
3655 | 3.1703422e-002, | ||
3656 | -3.5189144e-002, | ||
3657 | 1.6030282e-002, | ||
3658 | -7.0953448e-002, | ||
3659 | -1.6409520e-002, | ||
3660 | 1.5861113e-002, | ||
3661 | -4.0344599e-002, | ||
3662 | 9.3345150e-002, | ||
3663 | -3.2385751e-002, | ||
3664 | 2.9194015e-002, | ||
3665 | -5.3074056e-002, | ||
3666 | -5.8395538e-002, | ||
3667 | 1.4711047e-002, | ||
3668 | 1.6754312e-002, | ||
3669 | -4.1092096e-002, | ||
3670 | -5.7509643e-002, | ||
3671 | 5.8321957e-003, | ||
3672 | 3.4401437e-002, | ||
3673 | 3.5235160e-002, | ||
3674 | 6.4540634e-003, | ||
3675 | 6.8538944e-003, | ||
3676 | -1.0143565e-001, | ||
3677 | -2.5820489e-002, | ||
3678 | -2.0821741e-002, | ||
3679 | 4.4652423e-002, | ||
3680 | -3.4072854e-002, | ||
3681 | -2.6609349e-002, | ||
3682 | 3.3889860e-002, | ||
3683 | -5.3220787e-002, | ||
3684 | -2.4894595e-002, | ||
3685 | -9.6139329e-002, | ||
3686 | -3.3024922e-002, | ||
3687 | 1.7823306e-002, | ||
3688 | -4.2192663e-003, | ||
3689 | -5.3704045e-002, | ||
3690 | 1.1044474e-002, | ||
3691 | 1.4159169e-002, | ||
3692 | 5.6261779e-003, | ||
3693 | 1.4544719e-001, | ||
3694 | -4.2079631e-003, | ||
3695 | -9.5725344e-002, | ||
3696 | -3.6408815e-003, | ||
3697 | 6.0200088e-002, | ||
3698 | 2.9998960e-002, | ||
3699 | -7.3398314e-002, | ||
3700 | -4.8228886e-002, | ||
3701 | 3.3208412e-002, | ||
3702 | -5.6677275e-003, | ||
3703 | -6.6855312e-003, | ||
3704 | -3.0785426e-002, | ||
3705 | 4.2126629e-003, | ||
3706 | 7.0115500e-002, | ||
3707 | -3.9919529e-002, | ||
3708 | 4.0614066e-002, | ||
3709 | -3.0371460e-002, | ||
3710 | 7.2891063e-002, | ||
3711 | 2.3537099e-002, | ||
3712 | 2.9755936e-002, | ||
3713 | -3.7706444e-002, | ||
3714 | -8.3470665e-003, | ||
3715 | 7.6886063e-003, | ||
3716 | -8.4313321e-002, | ||
3717 | -2.9399720e-002, | ||
3718 | -1.4589921e-002, | ||
3719 | 1.7944446e-002, | ||
3720 | -1.1460170e-001, | ||
3721 | -6.2017760e-002, | ||
3722 | 3.4407222e-002, | ||
3723 | -2.7741014e-002, | ||
3724 | -4.6295413e-002, | ||
3725 | -2.7812656e-002, | ||
3726 | -3.0886235e-002, | ||
3727 | 1.1995511e-002, | ||
3728 | -3.2969544e-002, | ||
3729 | -6.9191631e-003, | ||
3730 | -2.9791556e-002, | ||
3731 | 2.0392531e-002, | ||
3732 | -4.7567313e-003, | ||
3733 | -9.8443940e-002, | ||
3734 | -1.2686039e-002, | ||
3735 | -2.1886631e-002, | ||
3736 | -1.5455907e-002, | ||
3737 | -1.1782002e-001, | ||
3738 | 6.1301396e-002, | ||
3739 | 2.1872915e-002, | ||
3740 | -1.0561240e-002, | ||
3741 | -2.3193915e-002, | ||
3742 | 6.9727656e-002, | ||
3743 | 1.4693869e-003, | ||
3744 | -1.3543614e-001, | ||
3745 | -4.0815903e-004, | ||
3746 | 5.6251246e-002, | ||
3747 | -9.1505709e-002, | ||
3748 | 5.7185400e-003, | ||
3749 | 7.1033142e-002, | ||
3750 | -7.9002590e-002, | ||
3751 | -4.1318689e-002, | ||
3752 | 4.9841764e-002, | ||
3753 | 1.7309114e-002, | ||
3754 | 5.7136005e-002, | ||
3755 | -2.1199613e-002, | ||
3756 | -6.1231140e-002, | ||
3757 | 7.2177738e-002, | ||
3758 | 2.5816325e-002, | ||
3759 | -3.9691591e-002, | ||
3760 | -8.4077105e-002, | ||
3761 | 1.8921121e-002, | ||
3762 | 4.0273842e-002, | ||
3763 | -5.0316912e-002, | ||
3764 | -1.2301284e-002, | ||
3765 | 1.4068218e-003, | ||
3766 | 3.9074162e-002, | ||
3767 | 1.1140969e-002, | ||
3768 | -9.0100129e-002, | ||
3769 | 1.6566978e-002, | ||
3770 | 2.2387085e-002, | ||
3771 | -5.5267138e-003, | ||
3772 | -1.4053472e-002, | ||
3773 | 8.5720676e-002, | ||
3774 | 6.6003080e-003, | ||
3775 | -3.4558594e-002, | ||
3776 | -2.1528224e-002, | ||
3777 | 3.4199928e-002, | ||
3778 | 8.3291659e-003, | ||
3779 | -3.4104982e-002, | ||
3780 | 7.5554591e-003, | ||
3781 | 1.0701557e-001, | ||
3782 | 1.3371029e-002, | ||
3783 | -5.4777395e-002, | ||
3784 | -5.4878162e-002, | ||
3785 | -4.1852588e-002, | ||
3786 | -4.0276462e-003, | ||
3787 | 1.0933072e-002, | ||
3788 | 3.1101256e-002, | ||
3789 | -4.6169830e-002, | ||
3790 | -7.8623398e-002, | ||
3791 | -4.0709650e-002, | ||
3792 | -2.2176445e-002, | ||
3793 | -6.1230977e-002, | ||
3794 | 1.6368772e-002, | ||
3795 | -1.0741991e-001, | ||
3796 | -3.4277843e-002, | ||
3797 | 6.1009971e-002, | ||
3798 | -8.3667710e-002, | ||
3799 | 1.1309839e-002, | ||
3800 | 5.4127285e-004, | ||
3801 | 8.4633157e-002, | ||
3802 | -6.3130402e-002, | ||
3803 | -1.1137924e-002, | ||
3804 | -5.0412645e-002, | ||
3805 | -5.4166796e-002, | ||
3806 | -4.6504636e-002, | ||
3807 | 7.8517633e-002, | ||
3808 | 3.1626107e-002, | ||
3809 | -1.8210994e-002, | ||
3810 | -3.5098136e-003, | ||
3811 | -1.2130004e-002, | ||
3812 | -1.3464374e-002, | ||
3813 | 5.0731507e-002, | ||
3814 | -4.3012235e-003, | ||
3815 | 8.2720477e-002, | ||
3816 | -1.3193101e-002, | ||
3817 | -1.3778387e-002, | ||
3818 | 5.5452531e-003, | ||
3819 | -9.3586936e-003, | ||
3820 | -8.6317405e-003, | ||
3821 | -3.6862811e-002, | ||
3822 | -3.2830740e-002, | ||
3823 | 8.4783068e-003, | ||
3824 | -1.5330067e-002, | ||
3825 | 1.1130119e-001, | ||
3826 | 7.3688984e-003, | ||
3827 | -6.4062197e-003, | ||
3828 | 3.9423451e-002, | ||
3829 | 8.1626914e-002, | ||
3830 | -2.2657562e-002, | ||
3831 | 7.7429063e-002, | ||
3832 | -1.7196394e-003, | ||
3833 | -5.1547799e-002, | ||
3834 | 8.5550269e-002, | ||
3835 | 1.0233102e-003, | ||
3836 | -2.7193777e-002, | ||
3837 | 5.8490358e-002, | ||
3838 | 6.2673818e-002, | ||
3839 | -3.9346043e-002, | ||
3840 | -3.9066234e-002, | ||
3841 | -1.2783050e-002, | ||
3842 | -6.3166376e-002, | ||
3843 | 2.7608238e-003, | ||
3844 | -4.7437497e-003, | ||
3845 | 4.1786886e-003, | ||
3846 | -3.2351866e-003, | ||
3847 | -3.3156438e-002, | ||
3848 | -5.4098732e-002, | ||
3849 | -5.6553182e-002, | ||
3850 | 5.8110628e-002, | ||
3851 | 1.1522620e-002, | ||
3852 | -5.4533062e-003, | ||
3853 | -1.6040357e-002, | ||
3854 | -5.2050007e-002, | ||
3855 | 1.1068723e-002, | ||
3856 | 7.0599072e-002, | ||
3857 | -8.2637140e-002, | ||
3858 | -3.3101999e-002, | ||
3859 | -1.7103108e-002, | ||
3860 | -5.2723510e-002, | ||
3861 | 1.1424693e-004, | ||
3862 | -2.0451276e-002, | ||
3863 | -3.8451163e-002, | ||
3864 | -3.9178471e-002, | ||
3865 | 1.0882970e-001, | ||
3866 | -5.9520509e-002, | ||
3867 | -1.6406338e-002, | ||
3868 | -3.7464624e-002, | ||
3869 | -1.5850757e-002, | ||
3870 | 2.8142632e-003, | ||
3871 | 8.5106236e-003, | ||
3872 | -3.4606452e-002, | ||
3873 | 2.1538352e-002, | ||
3874 | -5.1542008e-002, | ||
3875 | -6.0556592e-002, | ||
3876 | -3.0525775e-003, | ||
3877 | 1.0188123e-001, | ||
3878 | -1.6159393e-002, | ||
3879 | -4.6398817e-003, | ||
3880 | -3.4883594e-002, | ||
3881 | 5.7383438e-003, | ||
3882 | 7.6872944e-002, | ||
3883 | 1.6904979e-002, | ||
3884 | -3.9974367e-004, | ||
3885 | -6.4651835e-002, | ||
3886 | 2.0519546e-002, | ||
3887 | 1.4600580e-002, | ||
3888 | 9.3830207e-002, | ||
3889 | 1.1815421e-001, | ||
3890 | 8.2952538e-002, | ||
3891 | 1.3580903e-004, | ||
3892 | -4.5583612e-002, | ||
3893 | -8.4369787e-002, | ||
3894 | 1.0032836e-002, | ||
3895 | 7.8411529e-002, | ||
3896 | 4.3200604e-002, | ||
3897 | -1.5040485e-001, | ||
3898 | -1.2045753e-001, | ||
3899 | -3.0628967e-002, | ||
3900 | 4.6612260e-003, | ||
3901 | 6.4710750e-002, | ||
3902 | -2.6463384e-002, | ||
3903 | 8.0467496e-002, | ||
3904 | 1.5772806e-002, | ||
3905 | -9.0031337e-002, | ||
3906 | 3.8140960e-002, | ||
3907 | 2.4067996e-002, | ||
3908 | -1.4456479e-002, | ||
3909 | 2.5044977e-002, | ||
3910 | -5.5023682e-002, | ||
3911 | -3.1476503e-002, | ||
3912 | 4.6154417e-002, | ||
3913 | 4.1969567e-002, | ||
3914 | -2.1537004e-002, | ||
3915 | -1.3892791e-002, | ||
3916 | -7.9877470e-002, | ||
3917 | -6.6130095e-002, | ||
3918 | -3.3971108e-002, | ||
3919 | 4.9723852e-004, | ||
3920 | -2.3332777e-002, | ||
3921 | 4.4957143e-002, | ||
3922 | 4.5955566e-002, | ||
3923 | 7.3085106e-002, | ||
3924 | 1.4327863e-002, | ||
3925 | 4.4882884e-002, | ||
3926 | -4.5453744e-002, | ||
3927 | 3.2494203e-002, | ||
3928 | -3.5223572e-004, | ||
3929 | -3.4399985e-002, | ||
3930 | -5.9070327e-002, | ||
3931 | -2.4763167e-002, | ||
3932 | 5.4170280e-002, | ||
3933 | -9.3797557e-002, | ||
3934 | -2.4345173e-002, | ||
3935 | 7.5789539e-003, | ||
3936 | 6.5847677e-003, | ||
3937 | -1.1035459e-001, | ||
3938 | 6.4245815e-002, | ||
3939 | -6.3677641e-002, | ||
3940 | -2.7625955e-002, | ||
3941 | -4.9760945e-002, | ||
3942 | 1.9438298e-002, | ||
3943 | -2.0183031e-003, | ||
3944 | 3.9238472e-002, | ||
3945 | 7.3801148e-002, | ||
3946 | -7.4626808e-003, | ||
3947 | -3.5100675e-002, | ||
3948 | 1.1826910e-002, | ||
3949 | -5.0622844e-002, | ||
3950 | 4.3419831e-002, | ||
3951 | -2.2438311e-002, | ||
3952 | 4.0482870e-002, | ||
3953 | -2.5746508e-002, | ||
3954 | -4.5886738e-003, | ||
3955 | -4.2692344e-002, | ||
3956 | 6.0214404e-003, | ||
3957 | -4.9494823e-002, | ||
3958 | -6.9637679e-002, | ||
3959 | -6.0074768e-002, | ||
3960 | -1.3792535e-002, | ||
3961 | 5.8374139e-002, | ||
3962 | 4.0942951e-006, | ||
3963 | -4.1381257e-002, | ||
3964 | 5.5951370e-002, | ||
3965 | -2.9628877e-002, | ||
3966 | 1.2189054e-002, | ||
3967 | 9.2356783e-003, | ||
3968 | 1.9097401e-002, | ||
3969 | 5.8341964e-002, | ||
3970 | -5.8640330e-002, | ||
3971 | -4.0346416e-002, | ||
3972 | -2.0148478e-002, | ||
3973 | -7.3979491e-002, | ||
3974 | -7.6507173e-003, | ||
3975 | -2.6376789e-002, | ||
3976 | 9.3631448e-003, | ||
3977 | 5.7075337e-004, | ||
3978 | -1.7237147e-002, | ||
3979 | -1.4088176e-002, | ||
3980 | -6.5722025e-002, | ||
3981 | 1.7734913e-001, | ||
3982 | 3.9188355e-002, | ||
3983 | -5.3138441e-003, | ||
3984 | 6.6012838e-004, | ||
3985 | -3.7635320e-002, | ||
3986 | 8.6939560e-002, | ||
3987 | 2.5457618e-002, | ||
3988 | -5.3643902e-003, | ||
3989 | -3.5072285e-002, | ||
3990 | 1.7654459e-002, | ||
3991 | -1.7002417e-002, | ||
3992 | -1.1934297e-002, | ||
3993 | 1.0909989e-001, | ||
3994 | -4.5341914e-002, | ||
3995 | 2.9654212e-002, | ||
3996 | -7.3979691e-002, | ||
3997 | 8.1855730e-002, | ||
3998 | -4.1111527e-002, | ||
3999 | 2.8178913e-002, | ||
4000 | 3.0990023e-002, | ||
4001 | -3.8439631e-002, | ||
4002 | 4.6092851e-002, | ||
4003 | 2.0499136e-002, | ||
4004 | -4.0078674e-002, | ||
4005 | -7.5298075e-002, | ||
4006 | 8.6249420e-002, | ||
4007 | 2.0413103e-002, | ||
4008 | 1.4283415e-002, | ||
4009 | 3.3364666e-003, | ||
4010 | 4.5625551e-002, | ||
4011 | 2.8593452e-002, | ||
4012 | 1.0294208e-001, | ||
4013 | 4.6237012e-002, | ||
4014 | 2.3737104e-002, | ||
4015 | 1.4850043e-003, | ||
4016 | 4.5627026e-002, | ||
4017 | -3.1300170e-002, | ||
4018 | 2.7232389e-002, | ||
4019 | -2.5581725e-002, | ||
4020 | -4.2382451e-002, | ||
4021 | -4.1639602e-002, | ||
4022 | -1.2685580e-002, | ||
4023 | -6.8348575e-002, | ||
4024 | -3.5070023e-002, | ||
4025 | -1.9126421e-002, | ||
4026 | -5.1202221e-002, | ||
4027 | -2.1697346e-002, | ||
4028 | 6.3981805e-003, | ||
4029 | 6.1889782e-002, | ||
4030 | -9.5515388e-002, | ||
4031 | -3.5099019e-002, | ||
4032 | -7.5991979e-003, | ||
4033 | 2.6608290e-002, | ||
4034 | -6.5628332e-003, | ||
4035 | 4.0519304e-002, | ||
4036 | 1.8759115e-004, | ||
4037 | -8.2745501e-002, | ||
4038 | 4.8080126e-002, | ||
4039 | -9.4334121e-002, | ||
4040 | -1.7519517e-002, | ||
4041 | 8.4578794e-003, | ||
4042 | -1.0547960e-002, | ||
4043 | -2.9348950e-003, | ||
4044 | 2.2443020e-002, | ||
4045 | -8.3815521e-003, | ||
4046 | 3.4363193e-002, | ||
4047 | 3.5010892e-002, | ||
4048 | -2.7129950e-002, | ||
4049 | -1.8407294e-003, | ||
4050 | -2.7794904e-002, | ||
4051 | 7.5761568e-002, | ||
4052 | -5.1005395e-002, | ||
4053 | 2.2206192e-002, | ||
4054 | 5.5815959e-003, | ||
4055 | 1.3179272e-002, | ||
4056 | 1.3743604e-002, | ||
4057 | 8.4180570e-002, | ||
4058 | -4.5318175e-002, | ||
4059 | -4.0369759e-002, | ||
4060 | -5.5643911e-002, | ||
4061 | 1.1111604e-002, | ||
4062 | 4.9980927e-002, | ||
4063 | -5.3328516e-002, | ||
4064 | -2.5289654e-002, | ||
4065 | -5.3455028e-002, | ||
4066 | -4.5115993e-003, | ||
4067 | 1.2552924e-002, | ||
4068 | 2.4187614e-002, | ||
4069 | -6.5216647e-002, | ||
4070 | -6.7184717e-002, | ||
4071 | -3.4635282e-002, | ||
4072 | 2.6037151e-002, | ||
4073 | -1.2958051e-002, | ||
4074 | -6.4529955e-002, | ||
4075 | -4.7775406e-002, | ||
4076 | 7.7791690e-002, | ||
4077 | -4.1840856e-002, | ||
4078 | 3.5508733e-002, | ||
4079 | 3.6208672e-002, | ||
4080 | 2.8883867e-002, | ||
4081 | -2.2614722e-002, | ||
4082 | -6.2467477e-002, | ||
4083 | 2.1201398e-002, | ||
4084 | -6.4938220e-002, | ||
4085 | -2.5718030e-002, | ||
4086 | 1.0132503e-001, | ||
4087 | -1.0989944e-001, | ||
4088 | 1.7386332e-002, | ||
4089 | -1.9848054e-002, | ||
4090 | 4.6500211e-002, | ||
4091 | 8.7080916e-002, | ||
4092 | 6.1051787e-002, | ||
4093 | -6.9658176e-002, | ||
4094 | 1.8448919e-003, | ||
4095 | -6.3897477e-002, | ||
4096 | 9.5246967e-003, | ||
4097 | -1.7099063e-002, | ||
4098 | 8.6762837e-002, | ||
4099 | -5.1071138e-002, | ||
4100 | -4.1995939e-002, | ||
4101 | -1.5112140e-002, | ||
4102 | 9.4802477e-002, | ||
4103 | -3.6319825e-003, | ||
4104 | 5.6475075e-002, | ||
4105 | -5.2649820e-003, | ||
4106 | 5.5494589e-002, | ||
4107 | -3.6195527e-002, | ||
4108 | 3.0102603e-002, | ||
4109 | 9.6119308e-002, | ||
4110 | 2.9804096e-002, | ||
4111 | -8.3871467e-002, | ||
4112 | -4.6819532e-002, | ||
4113 | -6.6699175e-002, | ||
4114 | -7.8740356e-002, | ||
4115 | 2.3100681e-002, | ||
4116 | 4.0518590e-002, | ||
4117 | -5.5249251e-002, | ||
4118 | 3.4210609e-002, | ||
4119 | 6.3808433e-003, | ||
4120 | 2.9561241e-002, | ||
4121 | -7.9993851e-002, | ||
4122 | -8.6030708e-003, | ||
4123 | 4.9599184e-002, | ||
4124 | -5.3356684e-002, | ||
4125 | -4.3441101e-002, | ||
4126 | 4.6557960e-003, | ||
4127 | -5.8349112e-002, | ||
4128 | 7.0442125e-002, | ||
4129 | 3.3583231e-002, | ||
4130 | 3.5326691e-002, | ||
4131 | -1.4284013e-003, | ||
4132 | 3.7155912e-003, | ||
4133 | -6.1957730e-002, | ||
4134 | -2.5175104e-002, | ||
4135 | 1.0316170e-004, | ||
4136 | 1.3785501e-002, | ||
4137 | -3.4528343e-002, | ||
4138 | 9.4718664e-002, | ||
4139 | -8.5929124e-003, | ||
4140 | 6.2353769e-003, | ||
4141 | -1.9235982e-002, | ||
4142 | -5.0684859e-002, | ||
4143 | -9.0890509e-002, | ||
4144 | 2.9614723e-002, | ||
4145 | -5.8904724e-002, | ||
4146 | -5.9605704e-002, | ||
4147 | 1.7332188e-002, | ||
4148 | -6.2983369e-004, | ||
4149 | 7.6762655e-002, | ||
4150 | -1.5739418e-001, | ||
4151 | 4.7428004e-002, | ||
4152 | -7.4437002e-003, | ||
4153 | 3.2753497e-002, | ||
4154 | -6.4494291e-003, | ||
4155 | -1.0132357e-001, | ||
4156 | 3.1793509e-002, | ||
4157 | -1.9653108e-002, | ||
4158 | -1.3986054e-002, | ||
4159 | -1.0375110e-001, | ||
4160 | 5.9341902e-002, | ||
4161 | 7.4338421e-002, | ||
4162 | -7.4336814e-002, | ||
4163 | -8.8261702e-004, | ||
4164 | 8.4239417e-002, | ||
4165 | 3.6771318e-002, | ||
4166 | 4.6614615e-003, | ||
4167 | -1.0885608e-001, | ||
4168 | 4.0218429e-002, | ||
4169 | -7.3328551e-002, | ||
4170 | 3.4660924e-002, | ||
4171 | -2.2304889e-002, | ||
4172 | 9.1183611e-003, | ||
4173 | -3.1063866e-002, | ||
4174 | 3.7029187e-002, | ||
4175 | -8.5599164e-003, | ||
4176 | -3.1378391e-003, | ||
4177 | -3.4177850e-002, | ||
4178 | -3.6311985e-002, | ||
4179 | 5.4941612e-002, | ||
4180 | -2.5856244e-002, | ||
4181 | 9.8859541e-002, | ||
4182 | -4.1708361e-002, | ||
4183 | 4.4676996e-002, | ||
4184 | 1.0012678e-001, | ||
4185 | 1.2298856e-002, | ||
4186 | 3.9574107e-002, | ||
4187 | -5.4805478e-003, | ||
4188 | -2.5335550e-002, | ||
4189 | 2.0495470e-002, | ||
4190 | -2.8777276e-003, | ||
4191 | -1.2280951e-002, | ||
4192 | -3.6926171e-002, | ||
4193 | -6.4637997e-002, | ||
4194 | 3.1275904e-002, | ||
4195 | -4.0724158e-002, | ||
4196 | 8.2545982e-002, | ||
4197 | 1.7297459e-002, | ||
4198 | 1.7103606e-003, | ||
4199 | -3.6063372e-002, | ||
4200 | -1.9411586e-002, | ||
4201 | 2.5489285e-002, | ||
4202 | 5.3618799e-002, | ||
4203 | -1.5847040e-003, | ||
4204 | -8.2607767e-002, | ||
4205 | 6.4750926e-002, | ||
4206 | 3.4155392e-002, | ||
4207 | 1.2202950e-002, | ||
4208 | -6.3849575e-002, | ||
4209 | -4.2629288e-002, | ||
4210 | -9.3420039e-002, | ||
4211 | 1.8591964e-002, | ||
4212 | -6.2494687e-002, | ||
4213 | 2.7073439e-002, | ||
4214 | -1.6706104e-002, | ||
4215 | 8.5702929e-004, | ||
4216 | 5.5338380e-002, | ||
4217 | -1.1863343e-002, | ||
4218 | 2.4120033e-002, | ||
4219 | -1.9673309e-002, | ||
4220 | -9.0836747e-003, | ||
4221 | -8.4090025e-002, | ||
4222 | -1.6605994e-002, | ||
4223 | 1.2509049e-002, | ||
4224 | 2.9654581e-003, | ||
4225 | 3.5414725e-002, | ||
4226 | -9.1520329e-002, | ||
4227 | 5.3251481e-004, | ||
4228 | -3.9064127e-002, | ||
4229 | 4.3848196e-002, | ||
4230 | -6.5906592e-002, | ||
4231 | -6.2694114e-002, | ||
4232 | -7.5430627e-002, | ||
4233 | -6.9288028e-002, | ||
4234 | -7.3831218e-002, | ||
4235 | -2.2849271e-003, | ||
4236 | 4.1968983e-002, | ||
4237 | 9.1516100e-003, | ||
4238 | 6.3003994e-002, | ||
4239 | 4.0825527e-003, | ||
4240 | -1.1602298e-002, | ||
4241 | 3.4062508e-002, | ||
4242 | -3.6760665e-002, | ||
4243 | -6.6458351e-003, | ||
4244 | 4.5328593e-002, | ||
4245 | 1.5333803e-002, | ||
4246 | 3.1081863e-002, | ||
4247 | 1.0997856e-003, | ||
4248 | 4.0172982e-002, | ||
4249 | -5.1202051e-002, | ||
4250 | 3.0204527e-002, | ||
4251 | -9.1683008e-002, | ||
4252 | 6.6885251e-002, | ||
4253 | -1.4713293e-002, | ||
4254 | -1.8783233e-002, | ||
4255 | -2.6727404e-002, | ||
4256 | -4.0587117e-002, | ||
4257 | 1.7352452e-002, | ||
4258 | 2.4068866e-002, | ||
4259 | 9.3813608e-002, | ||
4260 | 1.4593201e-001, | ||
4261 | -2.6243684e-002, | ||
4262 | 4.2410590e-003, | ||
4263 | 5.7049362e-002, | ||
4264 | -1.0495092e-002, | ||
4265 | 5.5352776e-002, | ||
4266 | -1.4966413e-002, | ||
4267 | 5.8887924e-002, | ||
4268 | -2.9432846e-002, | ||
4269 | 1.5016450e-002, | ||
4270 | 1.8771912e-002, | ||
4271 | 2.9731363e-002, | ||
4272 | -8.9727906e-002, | ||
4273 | -2.8879171e-002, | ||
4274 | -2.4530626e-002, | ||
4275 | -2.1755227e-002, | ||
4276 | 2.6372269e-002, | ||
4277 | 1.6464203e-002, | ||
4278 | -2.9595373e-003, | ||
4279 | -2.8033224e-002, | ||
4280 | -3.8960164e-002, | ||
4281 | -1.4500836e-002, | ||
4282 | 1.2441672e-004, | ||
4283 | 6.9888338e-002, | ||
4284 | -1.3326151e-002, | ||
4285 | -4.4177213e-002, | ||
4286 | 1.0679639e-001, | ||
4287 | -7.7540624e-002, | ||
4288 | 7.3527032e-002, | ||
4289 | 7.1684818e-002, | ||
4290 | 2.4447003e-002, | ||
4291 | 1.3247555e-002, | ||
4292 | 2.5484911e-002, | ||
4293 | -2.0333037e-002, | ||
4294 | 1.0820256e-001, | ||
4295 | -1.5291962e-001, | ||
4296 | 4.0764107e-002, | ||
4297 | -5.3576752e-002, | ||
4298 | -3.3726558e-002, | ||
4299 | 5.9985203e-002, | ||
4300 | 1.4311757e-002, | ||
4301 | 1.0872979e-002, | ||
4302 | 4.8154459e-002, | ||
4303 | -9.8724947e-002, | ||
4304 | 3.5433564e-002, | ||
4305 | -3.0296223e-002, | ||
4306 | -4.9776503e-002, | ||
4307 | 6.4312955e-002, | ||
4308 | -3.8636806e-002, | ||
4309 | 4.1001924e-002, | ||
4310 | 2.8324136e-002, | ||
4311 | -2.4954944e-002, | ||
4312 | 3.0731417e-002, | ||
4313 | -4.0748527e-002, | ||
4314 | 1.0071007e-001, | ||
4315 | -4.2444577e-002, | ||
4316 | 7.4060614e-002, | ||
4317 | 7.0443088e-002, | ||
4318 | -8.5281317e-002, | ||
4319 | 2.2408837e-002, | ||
4320 | -3.0453603e-002, | ||
4321 | 5.3244534e-002, | ||
4322 | -2.7097865e-002, | ||
4323 | 9.3509025e-002, | ||
4324 | -4.0481022e-002, | ||
4325 | 3.0984921e-002, | ||
4326 | 6.2120102e-002, | ||
4327 | 2.5263636e-002, | ||
4328 | 4.7524005e-002, | ||
4329 | -8.3461434e-002, | ||
4330 | -4.0450596e-002, | ||
4331 | 2.4301374e-002, | ||
4332 | 2.4082281e-002, | ||
4333 | 2.7165952e-002, | ||
4334 | 2.5739840e-002, | ||
4335 | -4.4498403e-002, | ||
4336 | -9.3779267e-002, | ||
4337 | 1.3230632e-002, | ||
4338 | 5.6356340e-002, | ||
4339 | -3.1721297e-002, | ||
4340 | -1.1371059e-001, | ||
4341 | 5.1330793e-002, | ||
4342 | 3.9800143e-002, | ||
4343 | 4.4602902e-002, | ||
4344 | 4.0186966e-002, | ||
4345 | -3.3956201e-002, | ||
4346 | -3.4378181e-002, | ||
4347 | 3.0222123e-002, | ||
4348 | 1.3392410e-002, | ||
4349 | -1.1877032e-001, | ||
4350 | -6.1513207e-002, | ||
4351 | 5.1308971e-002, | ||
4352 | -3.4406254e-004, | ||
4353 | -5.6836546e-002, | ||
4354 | 3.1147677e-002, | ||
4355 | 1.2984031e-001, | ||
4356 | 6.9255265e-002, | ||
4357 | -7.3899471e-002, | ||
4358 | 4.4113150e-002, | ||
4359 | 4.1613437e-002, | ||
4360 | -8.3330499e-002, | ||
4361 | -6.7769626e-002, | ||
4362 | 9.9577638e-003, | ||
4363 | 8.5011488e-002, | ||
4364 | 3.1777824e-002, | ||
4365 | -3.0275122e-002, | ||
4366 | -1.9721785e-003, | ||
4367 | -2.8670666e-002, | ||
4368 | -5.1951849e-002, | ||
4369 | 2.6123845e-002, | ||
4370 | -4.6954628e-002, | ||
4371 | 3.9325561e-002, | ||
4372 | -1.4539624e-001, | ||
4373 | -4.4989415e-002, | ||
4374 | 1.2490030e-002, | ||
4375 | 9.8158554e-002, | ||
4376 | -8.8549642e-002, | ||
4377 | 7.0425741e-002, | ||
4378 | 1.6289354e-002, | ||
4379 | 7.6642414e-002, | ||
4380 | 8.2615082e-002, | ||
4381 | 1.5188920e-002, | ||
4382 | 1.0717190e-001, | ||
4383 | 7.8459410e-003, | ||
4384 | -9.8939081e-002, | ||
4385 | 5.4496988e-002, | ||
4386 | -1.9598305e-002, | ||
4387 | -4.8340131e-002, | ||
4388 | 9.1012052e-002, | ||
4389 | 4.5089162e-002, | ||
4390 | 2.7001089e-002, | ||
4391 | 3.9597820e-002, | ||
4392 | -2.9912957e-002, | ||
4393 | -4.5233127e-002, | ||
4394 | -2.6888627e-002, | ||
4395 | 8.2716012e-002, | ||
4396 | 4.1938511e-002, | ||
4397 | -1.2290728e-002, | ||
4398 | -9.1141489e-002, | ||
4399 | -9.3716385e-002, | ||
4400 | 5.0846593e-002, | ||
4401 | -6.9747424e-002, | ||
4402 | 1.5936647e-002, | ||
4403 | 9.0841003e-003, | ||
4404 | -7.9217963e-002, | ||
4405 | 4.2523607e-002, | ||
4406 | -3.4283790e-002, | ||
4407 | 6.2931211e-002, | ||
4408 | 1.9054212e-002, | ||
4409 | 1.0431108e-002, | ||
4410 | -1.7512053e-002, | ||
4411 | 1.5995877e-002, | ||
4412 | -6.9853083e-002, | ||
4413 | -3.6133865e-002, | ||
4414 | 5.1883029e-002, | ||
4415 | -5.4941971e-002, | ||
4416 | 2.5099530e-002, | ||
4417 | 2.1949930e-002, | ||
4418 | -7.2924143e-002, | ||
4419 | -1.2241689e-002, | ||
4420 | -2.5239538e-003, | ||
4421 | 1.0240874e-002, | ||
4422 | -3.5188489e-002, | ||
4423 | -1.4637794e-002, | ||
4424 | 4.2573102e-002, | ||
4425 | -4.6954972e-002, | ||
4426 | 4.9757134e-002, | ||
4427 | 8.9000907e-002, | ||
4428 | -5.7343223e-003, | ||
4429 | -9.4659733e-002, | ||
4430 | 2.2731848e-002, | ||
4431 | -6.3526985e-002, | ||
4432 | -6.2729748e-002, | ||
4433 | -8.5124042e-002, | ||
4434 | -2.2742192e-002, | ||
4435 | 4.9060274e-003, | ||
4436 | 5.9105851e-002, | ||
4437 | 6.6593845e-002, | ||
4438 | -2.0401971e-002, | ||
4439 | -3.4052538e-002, | ||
4440 | 1.0187912e-001, | ||
4441 | -3.9129772e-002, | ||
4442 | 1.6727491e-002, | ||
4443 | 7.9581367e-002, | ||
4444 | 2.3490622e-002, | ||
4445 | -8.5225499e-002, | ||
4446 | 4.5609113e-002, | ||
4447 | 2.5532693e-002, | ||
4448 | -1.3949777e-002, | ||
4449 | 1.1939908e-001, | ||
4450 | 3.1136484e-002, | ||
4451 | 2.1065018e-002, | ||
4452 | -7.3998053e-002, | ||
4453 | -3.3433899e-002, | ||
4454 | 6.4825970e-002, | ||
4455 | -6.6483460e-003, | ||
4456 | 2.1878777e-002, | ||
4457 | -5.5590218e-002, | ||
4458 | 6.2132974e-002, | ||
4459 | 6.0099401e-002, | ||
4460 | 2.6750906e-002, | ||
4461 | -3.2033687e-002, | ||
4462 | 4.8448643e-002, | ||
4463 | -3.8771221e-003, | ||
4464 | -4.8090282e-002, | ||
4465 | -2.9473176e-002, | ||
4466 | -1.6510646e-002, | ||
4467 | 5.6059374e-003, | ||
4468 | -2.8498771e-002, | ||
4469 | 1.4581678e-001, | ||
4470 | 7.2382639e-003, | ||
4471 | 6.9060065e-002, | ||
4472 | 3.1254099e-002, | ||
4473 | 1.1295554e-001, | ||
4474 | -2.0791262e-002, | ||
4475 | 2.6272472e-002, | ||
4476 | 2.3832128e-004, | ||
4477 | 1.7675185e-004, | ||
4478 | 2.2985763e-002, | ||
4479 | 5.8978432e-003, | ||
4480 | 4.4429730e-003, | ||
4481 | 7.5305836e-002, | ||
4482 | 2.7519294e-002, | ||
4483 | 2.6304737e-003, | ||
4484 | -7.5022497e-003, | ||
4485 | 9.7612623e-002, | ||
4486 | -1.1392227e-003, | ||
4487 | 6.3717011e-002, | ||
4488 | 4.2435569e-002, | ||
4489 | -6.8014182e-002, | ||
4490 | 7.4854037e-002, | ||
4491 | 3.2524349e-002, | ||
4492 | 7.0521866e-002, | ||
4493 | 2.0297711e-002, | ||
4494 | -2.7255480e-002, | ||
4495 | -1.3079920e-002, | ||
4496 | -1.1988356e-001, | ||
4497 | 4.2564644e-002, | ||
4498 | 8.9756674e-002, | ||
4499 | 1.7220549e-002, | ||
4500 | -4.4937423e-002, | ||
4501 | -2.9070759e-002, | ||
4502 | -4.4538021e-002, | ||
4503 | -7.8632839e-002, | ||
4504 | -2.8995185e-002, | ||
4505 | -1.4328207e-002, | ||
4506 | 2.6443524e-002, | ||
4507 | 8.9669124e-002, | ||
4508 | 1.7624887e-003, | ||
4509 | 3.2927633e-002, | ||
4510 | -3.1535117e-002, | ||
4511 | -6.6599096e-003, | ||
4512 | 1.0186317e-001, | ||
4513 | 8.9875545e-003, | ||
4514 | 2.8378610e-002, | ||
4515 | -5.5136504e-002, | ||
4516 | 3.3829370e-002, | ||
4517 | 7.1374246e-003, | ||
4518 | -1.4538378e-002, | ||
4519 | 3.9237476e-002, | ||
4520 | 6.8685661e-002, | ||
4521 | -3.3057531e-003, | ||
4522 | 1.1538617e-002, | ||
4523 | 8.8143388e-003, | ||
4524 | -1.9900457e-002, | ||
4525 | 2.0600418e-002, | ||
4526 | 3.0249751e-002, | ||
4527 | -7.3517395e-003, | ||
4528 | 6.4648004e-002, | ||
4529 | -8.6600526e-004, | ||
4530 | 8.3511299e-003, | ||
4531 | -5.4627039e-002, | ||
4532 | -6.4363505e-003, | ||
4533 | 1.6893141e-002, | ||
4534 | 5.5401782e-003, | ||
4535 | -2.4244983e-003, | ||
4536 | -2.0950127e-002, | ||
4537 | -2.2956516e-002, | ||
4538 | 7.8535473e-003, | ||
4539 | 2.4067483e-002, | ||
4540 | 6.1367370e-002, | ||
4541 | -3.3267227e-002, | ||
4542 | -1.7259358e-002, | ||
4543 | -7.3612541e-003, | ||
4544 | -1.5577290e-002, | ||
4545 | 8.5933756e-002, | ||
4546 | 5.0314067e-003, | ||
4547 | -5.7691721e-002, | ||
4548 | -3.1185546e-002, | ||
4549 | -1.0012818e-002, | ||
4550 | -9.3068008e-003, | ||
4551 | -1.2733027e-001, | ||
4552 | -2.4660461e-002, | ||
4553 | -6.9689614e-002, | ||
4554 | 6.7705187e-002, | ||
4555 | -9.0527945e-002, | ||
4556 | -8.9240761e-003, | ||
4557 | -3.6546741e-002, | ||
4558 | -7.8518923e-003, | ||
4559 | 6.0277518e-002, | ||
4560 | 8.8143610e-002, | ||
4561 | -3.6670503e-002, | ||
4562 | 5.9594768e-002, | ||
4563 | -6.2854695e-002, | ||
4564 | 8.4561367e-003, | ||
4565 | 4.2531503e-002, | ||
4566 | 1.2490411e-001, | ||
4567 | -1.2983679e-002, | ||
4568 | 4.8837441e-002, | ||
4569 | 2.8397759e-002, | ||
4570 | 4.9265357e-004, | ||
4571 | -5.0014029e-002, | ||
4572 | -6.4438003e-002, | ||
4573 | 6.3709335e-002, | ||
4574 | -8.3485243e-002, | ||
4575 | -1.3662989e-002, | ||
4576 | -1.1010182e-002, | ||
4577 | -4.1630589e-004, | ||
4578 | 3.7231066e-002, | ||
4579 | 5.8354336e-002, | ||
4580 | 1.4802151e-002, | ||
4581 | -9.2736005e-003, | ||
4582 | 7.0150240e-002, | ||
4583 | -7.5624119e-002, | ||
4584 | -1.8709434e-002, | ||
4585 | 8.1817931e-002, | ||
4586 | 1.0532906e-001, | ||
4587 | -6.6715765e-002, | ||
4588 | 1.1083842e-002, | ||
4589 | -7.4493893e-002, | ||
4590 | -9.9142748e-003, | ||
4591 | 6.2718554e-002, | ||
4592 | 2.7079763e-002, | ||
4593 | -2.5876824e-002, | ||
4594 | -4.8123789e-002, | ||
4595 | 6.1857353e-002, | ||
4596 | -4.2675136e-002, | ||
4597 | -6.2163117e-002, | ||
4598 | -7.4268325e-002, | ||
4599 | -2.9318352e-002, | ||
4600 | -3.3154279e-002, | ||
4601 | 4.8684897e-002, | ||
4602 | -2.4063594e-002, | ||
4603 | -8.6147192e-002, | ||
4604 | -7.1972623e-003, | ||
4605 | -4.4253121e-002, | ||
4606 | -2.1162236e-003, | ||
4607 | -3.5637316e-002, | ||
4608 | -5.0298912e-003, | ||
4609 | 1.9549988e-002, | ||
4610 | -3.1928938e-002, | ||
4611 | -4.5581285e-002, | ||
4612 | 4.7829407e-002, | ||
4613 | 8.7149645e-002, | ||
4614 | 4.0640515e-002, | ||
4615 | 1.4297447e-002, | ||
4616 | 9.8222629e-003, | ||
4617 | 3.2853388e-002, | ||
4618 | 6.8740447e-002, | ||
4619 | -1.2177132e-001, | ||
4620 | 9.4625764e-002, | ||
4621 | -1.5776485e-002, | ||
4622 | -3.2495760e-002, | ||
4623 | 3.0796063e-002, | ||
4624 | -1.5368625e-002, | ||
4625 | -7.9526144e-002, | ||
4626 | -6.2453602e-002, | ||
4627 | 5.9616092e-002, | ||
4628 | -6.4260784e-002, | ||
4629 | 1.5966646e-002, | ||
4630 | 3.1495482e-002, | ||
4631 | 6.5589632e-002, | ||
4632 | -3.4614182e-002, | ||
4633 | -6.9190746e-002, | ||
4634 | -2.0874294e-002, | ||
4635 | 1.3630214e-002, | ||
4636 | 5.3339825e-002, | ||
4637 | 1.6147000e-002, | ||
4638 | 4.2668360e-002, | ||
4639 | -2.5662017e-002, | ||
4640 | 4.5348429e-003, | ||
4641 | 6.1345954e-002, | ||
4642 | 4.1541021e-002, | ||
4643 | -4.9887559e-002, | ||
4644 | -5.8465581e-002, | ||
4645 | -2.1207204e-002, | ||
4646 | 7.9091417e-003, | ||
4647 | -1.2334773e-002, | ||
4648 | -1.0617181e-001, | ||
4649 | 8.9782313e-002, | ||
4650 | -6.8274917e-002, | ||
4651 | 2.1132464e-002, | ||
4652 | 5.7348207e-003, | ||
4653 | -9.2561293e-003, | ||
4654 | -3.7038110e-002, | ||
4655 | -2.8239427e-002, | ||
4656 | 1.8178841e-002, | ||
4657 | -3.9897232e-002, | ||
4658 | 1.0250394e-002, | ||
4659 | 6.3382126e-002, | ||
4660 | 3.1483520e-002, | ||
4661 | -1.4611403e-002, | ||
4662 | -4.1066531e-003, | ||
4663 | 5.7642552e-002, | ||
4664 | 1.2244865e-002, | ||
4665 | 3.7434406e-002, | ||
4666 | 2.2822222e-002, | ||
4667 | 9.2902509e-002, | ||
4668 | 1.1325867e-002, | ||
4669 | -6.2025695e-002, | ||
4670 | 1.5489679e-002, | ||
4671 | -1.6179136e-002, | ||
4672 | -1.7726855e-003, | ||
4673 | 8.7415263e-002, | ||
4674 | 2.9780528e-002, | ||
4675 | -6.5055050e-002, | ||
4676 | -1.7262184e-002, | ||
4677 | -1.2062737e-002, | ||
4678 | 4.1904361e-002, | ||
4679 | -3.4331618e-002, | ||
4680 | 1.2164792e-001, | ||
4681 | 4.9603771e-002, | ||
4682 | -1.3061748e-002, | ||
4683 | 1.1007232e-002, | ||
4684 | -1.4216546e-002, | ||
4685 | -3.5763228e-002, | ||
4686 | 1.2025510e-002, | ||
4687 | 8.2989866e-002, | ||
4688 | 2.0160053e-002, | ||
4689 | -1.6822685e-002, | ||
4690 | 7.3528826e-003, | ||
4691 | 2.0923780e-002, | ||
4692 | 5.2711615e-003, | ||
4693 | -2.5691601e-002, | ||
4694 | 4.5395884e-002, | ||
4695 | -1.5802909e-003, | ||
4696 | 6.8782769e-002, | ||
4697 | 1.1122473e-001, | ||
4698 | 1.0025602e-001, | ||
4699 | 1.3910254e-001, | ||
4700 | -8.5937461e-002, | ||
4701 | 3.2274784e-002, | ||
4702 | 4.8447219e-002, | ||
4703 | -7.6279744e-002, | ||
4704 | -9.4932243e-002, | ||
4705 | -4.6596008e-002, | ||
4706 | 6.9567452e-002, | ||
4707 | -2.0821944e-002, | ||
4708 | 2.8782945e-002, | ||
4709 | -1.8673196e-002, | ||
4710 | -1.0249668e-003, | ||
4711 | 3.0785039e-003, | ||
4712 | 7.5883489e-002, | ||
4713 | -6.3193813e-003, | ||
4714 | 7.7764074e-002, | ||
4715 | -4.3608077e-002, | ||
4716 | -1.3123466e-002, | ||
4717 | 3.6824621e-003, | ||
4718 | -5.9201109e-002, | ||
4719 | -2.3113816e-002, | ||
4720 | -8.8488271e-002, | ||
4721 | -1.1032349e-002, | ||
4722 | -2.3364616e-003, | ||
4723 | -6.5601368e-002, | ||
4724 | 1.4329878e-001, | ||
4725 | 9.5131857e-002, | ||
4726 | 4.2865722e-002, | ||
4727 | -9.6979502e-002, | ||
4728 | -3.5638863e-002, | ||
4729 | 9.0205848e-002, | ||
4730 | 1.9877782e-002, | ||
4731 | -1.2497646e-001, | ||
4732 | 2.5802125e-002, | ||
4733 | 4.6840610e-002, | ||
4734 | -4.7117859e-002, | ||
4735 | -1.0958747e-001, | ||
4736 | -4.6687284e-002, | ||
4737 | 3.3044810e-003, | ||
4738 | -4.3352639e-002, | ||
4739 | 5.5404689e-002, | ||
4740 | -1.4901969e-001, | ||
4741 | -6.5836290e-003, | ||
4742 | -8.3908961e-002, | ||
4743 | -8.4786953e-003, | ||
4744 | 2.6778741e-002, | ||
4745 | -7.1364019e-002, | ||
4746 | 2.9762397e-002, | ||
4747 | 3.8378977e-002, | ||
4748 | -1.3678167e-002, | ||
4749 | 1.0245114e-002, | ||
4750 | -6.8802397e-002, | ||
4751 | -7.9396342e-002, | ||
4752 | 8.9092342e-002, | ||
4753 | -2.5071896e-002, | ||
4754 | 1.6416317e-001, | ||
4755 | -3.3416141e-002, | ||
4756 | -8.8098549e-002, | ||
4757 | -2.8516999e-002, | ||
4758 | -2.8171336e-002, | ||
4759 | 1.4735227e-002, | ||
4760 | 2.1490528e-002, | ||
4761 | 1.0996266e-002, | ||
4762 | -7.9010073e-002, | ||
4763 | 1.3973632e-002, | ||
4764 | 8.5196514e-002, | ||
4765 | -3.4922417e-002, | ||
4766 | 3.4433947e-002, | ||
4767 | 4.5850060e-002, | ||
4768 | -6.6284133e-002, | ||
4769 | -1.0572099e-001, | ||
4770 | -6.6431349e-002, | ||
4771 | 6.0325770e-002, | ||
4772 | -9.2479536e-003, | ||
4773 | -2.2892434e-002, | ||
4774 | -3.9861268e-002, | ||
4775 | 7.7138209e-002, | ||
4776 | 1.1492915e-002, | ||
4777 | 3.1465738e-002, | ||
4778 | -1.2138307e-002, | ||
4779 | 4.7630033e-002, | ||
4780 | -9.7311603e-003, | ||
4781 | 1.3770049e-002, | ||
4782 | -7.3660639e-003, | ||
4783 | 7.4335649e-002, | ||
4784 | -3.6628135e-003, | ||
4785 | 1.2752549e-002, | ||
4786 | 1.3838186e-002, | ||
4787 | 4.2180077e-004, | ||
4788 | -5.4375913e-002, | ||
4789 | 2.1917738e-002, | ||
4790 | -1.2614454e-002, | ||
4791 | -2.3342227e-002, | ||
4792 | -6.4971690e-002, | ||
4793 | 1.6110329e-002, | ||
4794 | 1.4737048e-002, | ||
4795 | 3.0388287e-002, | ||
4796 | -1.6824888e-002, | ||
4797 | 1.7295248e-002, | ||
4798 | 1.0812445e-002, | ||
4799 | -5.5425021e-002, | ||
4800 | -4.9277740e-002, | ||
4801 | 5.0707632e-002, | ||
4802 | 4.1922806e-002, | ||
4803 | 1.8455962e-002, | ||
4804 | 5.0365924e-002, | ||
4805 | 4.4298398e-002, | ||
4806 | 7.6431843e-003, | ||
4807 | 5.9989537e-002, | ||
4808 | -7.6908515e-002, | ||
4809 | 2.8530229e-002, | ||
4810 | 9.5653590e-002, | ||
4811 | -7.2017798e-002, | ||
4812 | -8.0655593e-003, | ||
4813 | 1.0083818e-001, | ||
4814 | 4.9232556e-002, | ||
4815 | -6.6242009e-002, | ||
4816 | 2.9556295e-003, | ||
4817 | -3.5960545e-002, | ||
4818 | 1.1419955e-002, | ||
4819 | 6.6825880e-003, | ||
4820 | 2.9477422e-002, | ||
4821 | -2.9472636e-002, | ||
4822 | 5.5236681e-002, | ||
4823 | 2.8874435e-002, | ||
4824 | -2.2350145e-002, | ||
4825 | -1.4664332e-002, | ||
4826 | -6.8185763e-002, | ||
4827 | -2.0916584e-003, | ||
4828 | -6.2584599e-003, | ||
4829 | 5.9273963e-003, | ||
4830 | 9.7345621e-002, | ||
4831 | 1.7069987e-002, | ||
4832 | -3.5800212e-002, | ||
4833 | 3.8397984e-002, | ||
4834 | -4.6760839e-002, | ||
4835 | -5.0292748e-002, | ||
4836 | -2.1914980e-002, | ||
4837 | -1.8316586e-003, | ||
4838 | -5.2956111e-002, | ||
4839 | -4.4811672e-003, | ||
4840 | 6.3511854e-002, | ||
4841 | -5.7468947e-002, | ||
4842 | 3.3773578e-003, | ||
4843 | -6.2827625e-002, | ||
4844 | -1.0672637e-001, | ||
4845 | -2.3481169e-002, | ||
4846 | -4.9309562e-002, | ||
4847 | -9.6720496e-003, | ||
4848 | 5.8540389e-002, | ||
4849 | -1.4927692e-002, | ||
4850 | 4.5935378e-002, | ||
4851 | -1.5630681e-003, | ||
4852 | -1.8325545e-002, | ||
4853 | 3.2884463e-002, | ||
4854 | 2.3472286e-002, | ||
4855 | 1.9480110e-002, | ||
4856 | -1.5164953e-002, | ||
4857 | 5.0952861e-004, | ||
4858 | 3.6924652e-002, | ||
4859 | 3.9980199e-003, | ||
4860 | 2.7122068e-002, | ||
4861 | 4.0586323e-002, | ||
4862 | -6.8458269e-004, | ||
4863 | 2.4214833e-002, | ||
4864 | -2.6547884e-002, | ||
4865 | -2.4783823e-002, | ||
4866 | 8.8816623e-002, | ||
4867 | 5.5882019e-002, | ||
4868 | 5.3618064e-003, | ||
4869 | -1.1671543e-001, | ||
4870 | -8.2213149e-002, | ||
4871 | -9.6951820e-002, | ||
4872 | 7.3380548e-002, | ||
4873 | -1.2640056e-003, | ||
4874 | 4.1876563e-002, | ||
4875 | 2.5405425e-002, | ||
4876 | 2.4599929e-002, | ||
4877 | 1.4178532e-002, | ||
4878 | 5.5594418e-003, | ||
4879 | 4.2950164e-002, | ||
4880 | 1.8014601e-003, | ||
4881 | -1.2215360e-001, | ||
4882 | 1.0493101e-001, | ||
4883 | 3.1735201e-002, | ||
4884 | 5.5741286e-003, | ||
4885 | -3.2479076e-002, | ||
4886 | 2.6681545e-002, | ||
4887 | 2.8019414e-002, | ||
4888 | -8.0179790e-003, | ||
4889 | 3.1489206e-002, | ||
4890 | 4.3033256e-003, | ||
4891 | -3.7630185e-002, | ||
4892 | 5.3039128e-002, | ||
4893 | 5.1506634e-002, | ||
4894 | -1.7820552e-002, | ||
4895 | -2.4621551e-002, | ||
4896 | -5.5322066e-002, | ||
4897 | 2.5011123e-002, | ||
4898 | -4.7866728e-002, | ||
4899 | -1.0796552e-002, | ||
4900 | -3.3392282e-002, | ||
4901 | -4.7783524e-002, | ||
4902 | -1.8094968e-002, | ||
4903 | -7.2520784e-002, | ||
4904 | -6.5389567e-002, | ||
4905 | 3.9464487e-002, | ||
4906 | -9.8809443e-003, | ||
4907 | 3.1120895e-002, | ||
4908 | -5.4329781e-002, | ||
4909 | 1.6954674e-002, | ||
4910 | -4.8954224e-002, | ||
4911 | 7.3972200e-002, | ||
4912 | 4.7640882e-002, | ||
4913 | 3.0356780e-002, | ||
4914 | 9.5741578e-003, | ||
4915 | -4.1590063e-002, | ||
4916 | 1.1287435e-001, | ||
4917 | -8.6416889e-003, | ||
4918 | -2.2674367e-002, | ||
4919 | 2.1388361e-003, | ||
4920 | 5.5542441e-002, | ||
4921 | 1.0045614e-002, | ||
4922 | -8.7522721e-002, | ||
4923 | 8.7719983e-003, | ||
4924 | 6.7355731e-002, | ||
4925 | -1.6159743e-002, | ||
4926 | 8.7223484e-003, | ||
4927 | 6.0092014e-002, | ||
4928 | -9.4184958e-002, | ||
4929 | -3.6268920e-002, | ||
4930 | -2.1332232e-002, | ||
4931 | -3.1682036e-002, | ||
4932 | 2.8664908e-002, | ||
4933 | 2.6541157e-002, | ||
4934 | -1.0689359e-001, | ||
4935 | -7.0862918e-002, | ||
4936 | -1.1433268e-001, | ||
4937 | 3.4863935e-002, | ||
4938 | 1.0709581e-002, | ||
4939 | -5.5513033e-002, | ||
4940 | -1.5617145e-002, | ||
4941 | 1.9399041e-003, | ||
4942 | 6.6680970e-002, | ||
4943 | -3.5719944e-002, | ||
4944 | -5.5335504e-002, | ||
4945 | -9.3481167e-002, | ||
4946 | 2.3589372e-002, | ||
4947 | 1.2307760e-002, | ||
4948 | -4.1853305e-002, | ||
4949 | 3.2086368e-002, | ||
4950 | 1.3207910e-002, | ||
4951 | -1.2902915e-002, | ||
4952 | 4.0576229e-002, | ||
4953 | -3.1174299e-002, | ||
4954 | -4.7359539e-002, | ||
4955 | 3.2639664e-002, | ||
4956 | 6.8807350e-002, | ||
4957 | 3.0052612e-002, | ||
4958 | -1.6360841e-002, | ||
4959 | 7.3692525e-002, | ||
4960 | 2.3214010e-002, | ||
4961 | -1.9279486e-003, | ||
4962 | -2.9304762e-002, | ||
4963 | 1.4092775e-002, | ||
4964 | -3.8475139e-002, | ||
4965 | 4.0205235e-002, | ||
4966 | 3.5637448e-002, | ||
4967 | 3.1815236e-002, | ||
4968 | 5.4193437e-002, | ||
4969 | 2.7101101e-002, | ||
4970 | -7.8492340e-002, | ||
4971 | -1.3053183e-002, | ||
4972 | 9.8943970e-002, | ||
4973 | 3.2605663e-002, | ||
4974 | -5.3326325e-002, | ||
4975 | 4.7045271e-002, | ||
4976 | 1.9171127e-002, | ||
4977 | -7.0639869e-002, | ||
4978 | -2.6942346e-002, | ||
4979 | 2.1897131e-002, | ||
4980 | 4.4342108e-002, | ||
4981 | 2.5419609e-002, | ||
4982 | 6.5525042e-002, | ||
4983 | -6.2924979e-002, | ||
4984 | 4.2919074e-002, | ||
4985 | 5.7909339e-002, | ||
4986 | -2.0016289e-002, | ||
4987 | -7.1844831e-004, | ||
4988 | 3.3287795e-003, | ||
4989 | 5.2391582e-002, | ||
4990 | 5.1351648e-002, | ||
4991 | 6.9345017e-002, | ||
4992 | 1.6715079e-002, | ||
4993 | 1.0245380e-001, | ||
4994 | 6.5560454e-003, | ||
4995 | -4.2978289e-002, | ||
4996 | 5.1857486e-002, | ||
4997 | 1.6375558e-002, | ||
4998 | -1.1231560e-001, | ||
4999 | 1.8452057e-002, | ||
5000 | 2.7196151e-002, | ||
5001 | -4.7948818e-002, | ||
5002 | 3.8838999e-002, | ||
5003 | -8.1296721e-002, | ||
5004 | -4.4213439e-002, | ||
5005 | 3.3789367e-002, | ||
5006 | -8.9903386e-002, | ||
5007 | -4.8309819e-002, | ||
5008 | 3.0350368e-002, | ||
5009 | 9.3462798e-003, | ||
5010 | -4.3576313e-002, | ||
5011 | 5.0364033e-002, | ||
5012 | -3.3705706e-002, | ||
5013 | 6.9992170e-002, | ||
5014 | 9.4421577e-002, | ||
5015 | -3.7859282e-002, | ||
5016 | -2.4699603e-002, | ||
5017 | 5.0385013e-002, | ||
5018 | -5.4216273e-002, | ||
5019 | 6.9692784e-002, | ||
5020 | 1.0150382e-001, | ||
5021 | 1.7548633e-002, | ||
5022 | 9.8962282e-003, | ||
5023 | -5.6862743e-002, | ||
5024 | 4.1445815e-002, | ||
5025 | 1.9635439e-002, | ||
5026 | -3.1828877e-002, | ||
5027 | -7.5389343e-003, | ||
5028 | -2.2662898e-002, | ||
5029 | -9.3225720e-003, | ||
5030 | 3.3794402e-002, | ||
5031 | -1.5022139e-002, | ||
5032 | -8.3952470e-002, | ||
5033 | -4.4638734e-003, | ||
5034 | 5.0977217e-002, | ||
5035 | -5.6868826e-002, | ||
5036 | 8.2257315e-002, | ||
5037 | -3.3527792e-002, | ||
5038 | -3.8753182e-002, | ||
5039 | -8.9806282e-002, | ||
5040 | 6.8640832e-004, | ||
5041 | 7.2265978e-002, | ||
5042 | -1.2264922e-001, | ||
5043 | 1.0964559e-002, | ||
5044 | -6.3412284e-002, | ||
5045 | 1.2106129e-001, | ||
5046 | -8.5320894e-002, | ||
5047 | -3.7961427e-002, | ||
5048 | -4.1350954e-002, | ||
5049 | -6.7090729e-002, | ||
5050 | 4.9718886e-002, | ||
5051 | -3.3874055e-002, | ||
5052 | -7.1699033e-002, | ||
5053 | 2.5203129e-002, | ||
5054 | 2.0350140e-002, | ||
5055 | 6.4638571e-002, | ||
5056 | -7.2804864e-002, | ||
5057 | 2.3308871e-002, | ||
5058 | 1.5264191e-003, | ||
5059 | -1.1191223e-001, | ||
5060 | -6.0619938e-002, | ||
5061 | -2.2397074e-003, | ||
5062 | 6.8646240e-002, | ||
5063 | -9.5147638e-003, | ||
5064 | -8.9258460e-003, | ||
5065 | -2.2587656e-002, | ||
5066 | -8.8042374e-003, | ||
5067 | 2.7917130e-002, | ||
5068 | 3.0703476e-002, | ||
5069 | 4.0753823e-002, | ||
5070 | -1.9174676e-002, | ||
5071 | 7.6285732e-002, | ||
5072 | 5.5310628e-003, | ||
5073 | 6.7972330e-002, | ||
5074 | 1.6915582e-002, | ||
5075 | -3.3407461e-002, | ||
5076 | 2.3263797e-002, | ||
5077 | 3.1563985e-002, | ||
5078 | 6.0315051e-004, | ||
5079 | -3.1286618e-002, | ||
5080 | -1.1639905e-002, | ||
5081 | -1.2659763e-002, | ||
5082 | 1.2883340e-003, | ||
5083 | -5.0171053e-002, | ||
5084 | -4.9900923e-003, | ||
5085 | -1.0228083e-001, | ||
5086 | -4.8479815e-002, | ||
5087 | -2.9928321e-002, | ||
5088 | -5.5916163e-002, | ||
5089 | 4.7735428e-002, | ||
5090 | -1.3294429e-003, | ||
5091 | -7.5136122e-003, | ||
5092 | 5.4331339e-002, | ||
5093 | -4.2475157e-002, | ||
5094 | -3.2342585e-002, | ||
5095 | -2.1096262e-002, | ||
5096 | 4.8946925e-002, | ||
5097 | -7.7232620e-002, | ||
5098 | 4.6424245e-002, | ||
5099 | -7.1029625e-002, | ||
5100 | -8.3080699e-003, | ||
5101 | -1.8848230e-002, | ||
5102 | -3.3058342e-002, | ||
5103 | 2.4301547e-002, | ||
5104 | -1.9950837e-002, | ||
5105 | -2.6746721e-002, | ||
5106 | -3.1244062e-002, | ||
5107 | 4.9214132e-002, | ||
5108 | -4.3837753e-002, | ||
5109 | -2.6533780e-002, | ||
5110 | -3.2174063e-002, | ||
5111 | 3.1234554e-002, | ||
5112 | 1.8396020e-002, | ||
5113 | 4.2139477e-003, | ||
5114 | -6.3624347e-002, | ||
5115 | 3.8068496e-002, | ||
5116 | -7.5273414e-002, | ||
5117 | -5.4282683e-002, | ||
5118 | 1.0378638e-001, | ||
5119 | -5.4062955e-002, | ||
5120 | 1.0025793e-002, | ||
5121 | -6.6450371e-003, | ||
5122 | 8.2632045e-002, | ||
5123 | -1.1994389e-001, | ||
5124 | 3.1022007e-002, | ||
5125 | -3.1118158e-002, | ||
5126 | 5.0953443e-002, | ||
5127 | -5.1605376e-002, | ||
5128 | -4.8568100e-002, | ||
5129 | -7.4390375e-003, | ||
5130 | -4.7877758e-002, | ||
5131 | -9.4953155e-003, | ||
5132 | -2.6931667e-003, | ||
5133 | 2.3165347e-002, | ||
5134 | 5.9754385e-003, | ||
5135 | 2.5900617e-002, | ||
5136 | -1.5042605e-002, | ||
5137 | -1.4480424e-002, | ||
5138 | 4.2074657e-002, | ||
5139 | 8.9476498e-002, | ||
5140 | 4.5100917e-002, | ||
5141 | -5.1593045e-002, | ||
5142 | 6.0834274e-002, | ||
5143 | 4.0989664e-002, | ||
5144 | -1.7405350e-002, | ||
5145 | 5.9998834e-002, | ||
5146 | 1.2416742e-002, | ||
5147 | 1.8605073e-002, | ||
5148 | 1.0892550e-001, | ||
5149 | -3.2491824e-002, | ||
5150 | -3.1135526e-002, | ||
5151 | -2.9815887e-002, | ||
5152 | 2.0205791e-002, | ||
5153 | 1.6566794e-002, | ||
5154 | 7.0071566e-002, | ||
5155 | -4.9569656e-002, | ||
5156 | 3.9921784e-002, | ||
5157 | -2.8730117e-002, | ||
5158 | -1.7587977e-002, | ||
5159 | 7.1500463e-002, | ||
5160 | 3.6872018e-002, | ||
5161 | -3.4586232e-002, | ||
5162 | -1.6970720e-002, | ||
5163 | 3.4644172e-002, | ||
5164 | -2.0901296e-002, | ||
5165 | 4.2141589e-002, | ||
5166 | -7.6319420e-002, | ||
5167 | 4.5998962e-002, | ||
5168 | -7.3399778e-002, | ||
5169 | -8.1916522e-002, | ||
5170 | 3.8464961e-002, | ||
5171 | -1.1521599e-002, | ||
5172 | 7.2694972e-002, | ||
5173 | -3.9337982e-002, | ||
5174 | 5.9084598e-002, | ||
5175 | -3.4257913e-002, | ||
5176 | -8.6242832e-002, | ||
5177 | -2.5477654e-002, | ||
5178 | 1.5161827e-002, | ||
5179 | 4.3686125e-003, | ||
5180 | -1.1656981e-002, | ||
5181 | -1.5563664e-002, | ||
5182 | 6.2510087e-002, | ||
5183 | -1.0836642e-002, | ||
5184 | 1.2432558e-001, | ||
5185 | -2.2959202e-002, | ||
5186 | 1.3783634e-003, | ||
5187 | 3.3269441e-002, | ||
5188 | 3.8750648e-002, | ||
5189 | -1.3656516e-002, | ||
5190 | 5.9833997e-002, | ||
5191 | 1.4796841e-002, | ||
5192 | -2.2627766e-003, | ||
5193 | 4.9145114e-002, | ||
5194 | -1.1354640e-001, | ||
5195 | 1.3391314e-002, | ||
5196 | -1.3806188e-002, | ||
5197 | 2.7218571e-002, | ||
5198 | -3.9102606e-002, | ||
5199 | 1.0801438e-002, | ||
5200 | -3.4971279e-002, | ||
5201 | -2.3190242e-002, | ||
5202 | -1.6194699e-002, | ||
5203 | -1.9332419e-002, | ||
5204 | -2.7390066e-003, | ||
5205 | 1.8022691e-002, | ||
5206 | -1.5832667e-002, | ||
5207 | -9.2546225e-003, | ||
5208 | -6.4699491e-002, | ||
5209 | 4.7590650e-002, | ||
5210 | 5.4590011e-002, | ||
5211 | -2.0868480e-002, | ||
5212 | 4.8372708e-003, | ||
5213 | 3.5635613e-002, | ||
5214 | 4.9026328e-002, | ||
5215 | -2.8886176e-002, | ||
5216 | 2.4904926e-002, | ||
5217 | 4.6825265e-002, | ||
5218 | -4.1467334e-003, | ||
5219 | -7.4816934e-002, | ||
5220 | 2.4155196e-002, | ||
5221 | -1.2145775e-002, | ||
5222 | -4.8433817e-002, | ||
5223 | -5.1333974e-002, | ||
5224 | -7.6611960e-004, | ||
5225 | -2.0288664e-003, | ||
5226 | 4.4132138e-002, | ||
5227 | 1.3884023e-002, | ||
5228 | 3.3438764e-002, | ||
5229 | -1.7045598e-002, | ||
5230 | -1.3981286e-003, | ||
5231 | 6.0450703e-002, | ||
5232 | 1.6026951e-002, | ||
5233 | -1.0038212e-002, | ||
5234 | -5.9082814e-002, | ||
5235 | -6.8065244e-003, | ||
5236 | -2.0735019e-002, | ||
5237 | 6.4134665e-002, | ||
5238 | 8.5071176e-003, | ||
5239 | -2.2373060e-002, | ||
5240 | 4.3619700e-002, | ||
5241 | 1.5963047e-002, | ||
5242 | -3.0249871e-002, | ||
5243 | -8.3796187e-002, | ||
5244 | -3.4276448e-002, | ||
5245 | 5.3600630e-002, | ||
5246 | -4.6111635e-002, | ||
5247 | 3.2125595e-002, | ||
5248 | 5.8851999e-002, | ||
5249 | -7.8040384e-002, | ||
5250 | 5.2267851e-002, | ||
5251 | 3.4435223e-002, | ||
5252 | 2.1556971e-002, | ||
5253 | -1.7163880e-002, | ||
5254 | -5.0843277e-002, | ||
5255 | -3.2488185e-002, | ||
5256 | -1.7547962e-002, | ||
5257 | 3.1629302e-003, | ||
5258 | 1.1087340e-001, | ||
5259 | 5.8821833e-002, | ||
5260 | 2.7600291e-003, | ||
5261 | -1.8466769e-002, | ||
5262 | 3.1019364e-002, | ||
5263 | 6.9714994e-002, | ||
5264 | 2.6197162e-002, | ||
5265 | -2.5002333e-002, | ||
5266 | 2.1238793e-003, | ||
5267 | 6.3553430e-002, | ||
5268 | -3.4198265e-002, | ||
5269 | 4.8709571e-002, | ||
5270 | -7.2299086e-002, | ||
5271 | -4.3035088e-002, | ||
5272 | 3.5760525e-002, | ||
5273 | 5.3143565e-002, | ||
5274 | 2.8080467e-002, | ||
5275 | 7.4687831e-004, | ||
5276 | 3.3589299e-002, | ||
5277 | -2.7857822e-002, | ||
5278 | 9.3293970e-002, | ||
5279 | -3.1352513e-003, | ||
5280 | -1.1227005e-003, | ||
5281 | -4.5092687e-002, | ||
5282 | -2.5306886e-002, | ||
5283 | -1.0822730e-001, | ||
5284 | -6.5870362e-002, | ||
5285 | 5.0646576e-003, | ||
5286 | -5.7436235e-002, | ||
5287 | 3.2011690e-002, | ||
5288 | -3.5040739e-003, | ||
5289 | -3.9957599e-002, | ||
5290 | 1.6341870e-002, | ||
5291 | -7.6498865e-003, | ||
5292 | -2.5256813e-002, | ||
5293 | 2.8585914e-002, | ||
5294 | -6.4304885e-002, | ||
5295 | -7.0698223e-002, | ||
5296 | -9.2642094e-002, | ||
5297 | -5.6328267e-002, | ||
5298 | -8.0773935e-002, | ||
5299 | -6.5074477e-002, | ||
5300 | 2.0294178e-003, | ||
5301 | -2.4072922e-002, | ||
5302 | 4.2458044e-002, | ||
5303 | 4.7875614e-003, | ||
5304 | -4.2143264e-002, | ||
5305 | -2.8324995e-002, | ||
5306 | -2.9328658e-002, | ||
5307 | -9.2678479e-002, | ||
5308 | 4.5617708e-002, | ||
5309 | 1.2685434e-002, | ||
5310 | -5.4340728e-002, | ||
5311 | 4.2087780e-002, | ||
5312 | 4.0016732e-002, | ||
5313 | -1.2299481e-001, | ||
5314 | 1.0379559e-001, | ||
5315 | 5.7020403e-002, | ||
5316 | -3.9544599e-002, | ||
5317 | -1.8766513e-002, | ||
5318 | 3.2158071e-002, | ||
5319 | 7.3924530e-002, | ||
5320 | -4.6618108e-003, | ||
5321 | -5.5299328e-002, | ||
5322 | 4.4245720e-002, | ||
5323 | 3.7174478e-003, | ||
5324 | 3.4306804e-003, | ||
5325 | 4.2213951e-002, | ||
5326 | -9.1086002e-002, | ||
5327 | 1.5797797e-003, | ||
5328 | -1.0094297e-001, | ||
5329 | -3.1042592e-002, | ||
5330 | 1.6312788e-002, | ||
5331 | -5.7643992e-002, | ||
5332 | 8.5044833e-003, | ||
5333 | -5.8166289e-002, | ||
5334 | 1.9822525e-002, | ||
5335 | -1.4404965e-001, | ||
5336 | -5.5582362e-002, | ||
5337 | -4.5001443e-003, | ||
5338 | -8.6256453e-003, | ||
5339 | -1.0195382e-002, | ||
5340 | -3.5860515e-002, | ||
5341 | -6.9432334e-002, | ||
5342 | -3.8266022e-002, | ||
5343 | -4.0918161e-002, | ||
5344 | -1.1863163e-002, | ||
5345 | 5.0949718e-002, | ||
5346 | -8.0206291e-002, | ||
5347 | -2.6240511e-002, | ||
5348 | 7.6676678e-002, | ||
5349 | -6.5416559e-002, | ||
5350 | -1.4318918e-002, | ||
5351 | -4.3958025e-002, | ||
5352 | -2.1978148e-002, | ||
5353 | -6.4422744e-002, | ||
5354 | -2.2733013e-002, | ||
5355 | 1.2900773e-002, | ||
5356 | -1.7819685e-002, | ||
5357 | -4.7785428e-003, | ||
5358 | 3.4686226e-002, | ||
5359 | 6.4004707e-002, | ||
5360 | -5.3322786e-002, | ||
5361 | -1.8493916e-002, | ||
5362 | 4.9290003e-002, | ||
5363 | -4.5065517e-002, | ||
5364 | -2.9327742e-002, | ||
5365 | 2.3212884e-002, | ||
5366 | -4.8985889e-002, | ||
5367 | 2.9604806e-003, | ||
5368 | -7.0253020e-003, | ||
5369 | -9.2397443e-002, | ||
5370 | -7.6453564e-002, | ||
5371 | -3.4155955e-002, | ||
5372 | -1.0082514e-001, | ||
5373 | -8.0072913e-002, | ||
5374 | 5.9487693e-002, | ||
5375 | -3.2053752e-002, | ||
5376 | -3.4654709e-002, | ||
5377 | -4.2857910e-002, | ||
5378 | 4.3434899e-002, | ||
5379 | -6.1610488e-002, | ||
5380 | 2.3564532e-002, | ||
5381 | 5.0395882e-002, | ||
5382 | -1.0869004e-002, | ||
5383 | 2.7674042e-002, | ||
5384 | 4.1961384e-004, | ||
5385 | 1.1474642e-001, | ||
5386 | 1.5501309e-002, | ||
5387 | 5.3729017e-002, | ||
5388 | 8.2294950e-002, | ||
5389 | 3.6090309e-002, | ||
5390 | 3.2405617e-002, | ||
5391 | 7.8649811e-002, | ||
5392 | 1.3050292e-002, | ||
5393 | -1.6718241e-002, | ||
5394 | -4.2514925e-002, | ||
5395 | 2.0638931e-003, | ||
5396 | -1.0261822e-001, | ||
5397 | 5.5517573e-002, | ||
5398 | -2.6256624e-003, | ||
5399 | 7.3917084e-002, | ||
5400 | -3.2038338e-002, | ||
5401 | 5.9286807e-003, | ||
5402 | -4.9553265e-002, | ||
5403 | 4.0402131e-003, | ||
5404 | 1.9006069e-002, | ||
5405 | 1.5037719e-002, | ||
5406 | -3.8431930e-002, | ||
5407 | -3.4089576e-003, | ||
5408 | -2.8898708e-003, | ||
5409 | -5.1916447e-002, | ||
5410 | -9.3843168e-002, | ||
5411 | 2.9937678e-002, | ||
5412 | -3.9290957e-002, | ||
5413 | 4.4290160e-002, | ||
5414 | -4.2250820e-002, | ||
5415 | -1.6616660e-002, | ||
5416 | -1.0653179e-002, | ||
5417 | -3.4916960e-002, | ||
5418 | -3.1852948e-002, | ||
5419 | 1.8960722e-002, | ||
5420 | 6.0590194e-002, | ||
5421 | 1.7919981e-002, | ||
5422 | -2.1735260e-002, | ||
5423 | 2.5431032e-003, | ||
5424 | -2.3276711e-003, | ||
5425 | 4.7679757e-003, | ||
5426 | 2.6771182e-002, | ||
5427 | -8.0137596e-002, | ||
5428 | -4.9700338e-002, | ||
5429 | 2.4445536e-002, | ||
5430 | -7.2537218e-002, | ||
5431 | -1.8968099e-002, | ||
5432 | 6.6550477e-002, | ||
5433 | 6.7579085e-002, | ||
5434 | -3.1351180e-002, | ||
5435 | 1.6129275e-002, | ||
5436 | 3.6101242e-002, | ||
5437 | 1.1199196e-002, | ||
5438 | 7.9145428e-003, | ||
5439 | 4.0067468e-002, | ||
5440 | 6.0585461e-003, | ||
5441 | -7.4588015e-003, | ||
5442 | 2.1235782e-002, | ||
5443 | 6.3041751e-003, | ||
5444 | -1.1634076e-003, | ||
5445 | 2.2258425e-002, | ||
5446 | -3.4248029e-002, | ||
5447 | -4.5811428e-002, | ||
5448 | 1.0578831e-002, | ||
5449 | -5.5482586e-002, | ||
5450 | -6.8507992e-002, | ||
5451 | -7.7083934e-002, | ||
5452 | -5.3913115e-002, | ||
5453 | 5.9790071e-002, | ||
5454 | -2.0841051e-002, | ||
5455 | 2.3080531e-002, | ||
5456 | 1.1187349e-001, | ||
5457 | -7.1392621e-002, | ||
5458 | 2.9668837e-003, | ||
5459 | -2.9860507e-002, | ||
5460 | 4.6683202e-002, | ||
5461 | 8.5830739e-002, | ||
5462 | -2.0897455e-002, | ||
5463 | 3.2863177e-002, | ||
5464 | 2.2323987e-002, | ||
5465 | 4.8358711e-002, | ||
5466 | 8.7562303e-003, | ||
5467 | 1.4793712e-002, | ||
5468 | -2.5985375e-002, | ||
5469 | -4.6720770e-002, | ||
5470 | -5.9782514e-002, | ||
5471 | -4.2989314e-002, | ||
5472 | 7.8223798e-002, | ||
5473 | 1.1501209e-001, | ||
5474 | 1.2024343e-001, | ||
5475 | -5.6786240e-002, | ||
5476 | -4.8421534e-002, | ||
5477 | -2.5415443e-002, | ||
5478 | 2.4664879e-002, | ||
5479 | 1.7783775e-002, | ||
5480 | 2.0466227e-002, | ||
5481 | 7.8206669e-002, | ||
5482 | -8.2391143e-002, | ||
5483 | -1.3995146e-002, | ||
5484 | -2.0960454e-002, | ||
5485 | -5.6618569e-002, | ||
5486 | -2.6705178e-002, | ||
5487 | -8.1531358e-002, | ||
5488 | 6.4664818e-003, | ||
5489 | 5.6946318e-002, | ||
5490 | 5.0003662e-002, | ||
5491 | 3.5673980e-002, | ||
5492 | 8.0875426e-002, | ||
5493 | -4.4495078e-002, | ||
5494 | -2.6194380e-002, | ||
5495 | 4.5188183e-002, | ||
5496 | -4.2455744e-002, | ||
5497 | 5.7249340e-002, | ||
5498 | -4.6127242e-002, | ||
5499 | -5.4839710e-002, | ||
5500 | -5.0448334e-002, | ||
5501 | -2.2395030e-004, | ||
5502 | -6.2981968e-002, | ||
5503 | 3.6554485e-002, | ||
5504 | 4.5243127e-003, | ||
5505 | 6.8154599e-003, | ||
5506 | 1.6305659e-001, | ||
5507 | 3.9595164e-003, | ||
5508 | -1.0792651e-002, | ||
5509 | -2.8054860e-002, | ||
5510 | -9.9706967e-002, | ||
5511 | 2.3929942e-002, | ||
5512 | -3.5658959e-004, | ||
5513 | 6.6546468e-002, | ||
5514 | 7.6294884e-002, | ||
5515 | -4.0440534e-002, | ||
5516 | -8.1371512e-002, | ||
5517 | -7.7127876e-002, | ||
5518 | 3.4857333e-002, | ||
5519 | 4.3231191e-002, | ||
5520 | 2.2144645e-002, | ||
5521 | -3.8698213e-002, | ||
5522 | -5.4129054e-002, | ||
5523 | -3.2626325e-002, | ||
5524 | -7.0222190e-002, | ||
5525 | -5.1754787e-002, | ||
5526 | -9.5744838e-002, | ||
5527 | -1.7610262e-003, | ||
5528 | 8.7360648e-003, | ||
5529 | -4.6748263e-002, | ||
5530 | -4.4850953e-002, | ||
5531 | 8.2298815e-002, | ||
5532 | 1.0185814e-002, | ||
5533 | -3.0866560e-004, | ||
5534 | 1.6675645e-002, | ||
5535 | -4.2935404e-002, | ||
5536 | -3.1656641e-002, | ||
5537 | -5.6516863e-002, | ||
5538 | -4.7656267e-004, | ||
5539 | 1.0889961e-001, | ||
5540 | 1.2029252e-002, | ||
5541 | -1.3472583e-002, | ||
5542 | 3.6157205e-002, | ||
5543 | 4.4803936e-002, | ||
5544 | 1.5275167e-002, | ||
5545 | -4.7686528e-002, | ||
5546 | 6.0330901e-002, | ||
5547 | 1.3728328e-002, | ||
5548 | 4.8689836e-002, | ||
5549 | -3.5294359e-002, | ||
5550 | -7.4547708e-002, | ||
5551 | 3.0394600e-002, | ||
5552 | 8.6384237e-002, | ||
5553 | -4.9979038e-002, | ||
5554 | 1.3943821e-002, | ||
5555 | -8.2317359e-002, | ||
5556 | 2.6078427e-002, | ||
5557 | -4.8139628e-002, | ||
5558 | -5.8720671e-002, | ||
5559 | 5.3289578e-003, | ||
5560 | -2.4543964e-002, | ||
5561 | -3.1049552e-002, | ||
5562 | -6.8795054e-002, | ||
5563 | 2.6130466e-002, | ||
5564 | 6.4881211e-003, | ||
5565 | -1.7466698e-002, | ||
5566 | 6.9418212e-002, | ||
5567 | 9.6543814e-002, | ||
5568 | 1.6716383e-002, | ||
5569 | 1.0116932e-001, | ||
5570 | 3.1515754e-002, | ||
5571 | -1.5792490e-001, | ||
5572 | -3.1915346e-002, | ||
5573 | -4.3203259e-002, | ||
5574 | -1.3039328e-002, | ||
5575 | 1.0861618e-002, | ||
5576 | 2.0098174e-002, | ||
5577 | -5.8931575e-002, | ||
5578 | 4.5019833e-002, | ||
5579 | -4.4827929e-002, | ||
5580 | -8.5719969e-002, | ||
5581 | 4.7105627e-002, | ||
5582 | 8.1454794e-002, | ||
5583 | 1.5516734e-002, | ||
5584 | -5.0548980e-002, | ||
5585 | 5.9127415e-003, | ||
5586 | -7.5578193e-002, | ||
5587 | 1.1628813e-001, | ||
5588 | 4.7500758e-002, | ||
5589 | 4.9223640e-002, | ||
5590 | 2.2248040e-002, | ||
5591 | -1.7063173e-002, | ||
5592 | 6.7174653e-002, | ||
5593 | -8.8027078e-003, | ||
5594 | -7.9122977e-002, | ||
5595 | -2.7534155e-002, | ||
5596 | 1.8033777e-002, | ||
5597 | -6.3064595e-002, | ||
5598 | -3.2992531e-002, | ||
5599 | -1.3414397e-002, | ||
5600 | -3.7650237e-002, | ||
5601 | -5.4990281e-003, | ||
5602 | 4.9549050e-002, | ||
5603 | -7.8256965e-002, | ||
5604 | -4.6347502e-002, | ||
5605 | -3.7844657e-002, | ||
5606 | -4.6727423e-002, | ||
5607 | 5.1371291e-002, | ||
5608 | -3.1964828e-002, | ||
5609 | -1.5232444e-003, | ||
5610 | -6.8143489e-002, | ||
5611 | -5.5095855e-002, | ||
5612 | -1.0895044e-002, | ||
5613 | -2.5604041e-003, | ||
5614 | 2.7027105e-002, | ||
5615 | -7.6982878e-003, | ||
5616 | -9.5337685e-002, | ||
5617 | -1.8635429e-002, | ||
5618 | -1.0751357e-001, | ||
5619 | -5.6070283e-002, | ||
5620 | 1.4123461e-002, | ||
5621 | -1.8192970e-002, | ||
5622 | 4.4540436e-002, | ||
5623 | 1.3600658e-002, | ||
5624 | 3.2261098e-002, | ||
5625 | 4.4861229e-002, | ||
5626 | -1.5863787e-002, | ||
5627 | -1.0092780e-002, | ||
5628 | -3.9516555e-003, | ||
5629 | 3.8360973e-002, | ||
5630 | 6.1804829e-002, | ||
5631 | 1.0870303e-001, | ||
5632 | 4.7383438e-002, | ||
5633 | -5.0590863e-002, | ||
5634 | -5.2113776e-002, | ||
5635 | 5.2393207e-002, | ||
5636 | 1.2177198e-002, | ||
5637 | 6.2526425e-002, | ||
5638 | 8.3174224e-003, | ||
5639 | -2.4071062e-002, | ||
5640 | 2.8581013e-002, | ||
5641 | -6.0028375e-003, | ||
5642 | 1.5238535e-002, | ||
5643 | 5.2025149e-003, | ||
5644 | -3.6385591e-002, | ||
5645 | -9.3463539e-003, | ||
5646 | -9.7549044e-003, | ||
5647 | 4.1434624e-002, | ||
5648 | -3.5638211e-002, | ||
5649 | 6.1524697e-002, | ||
5650 | 1.2879217e-002, | ||
5651 | -1.1074718e-002, | ||
5652 | 7.5826917e-003, | ||
5653 | -4.3450751e-002, | ||
5654 | -3.4027473e-002, | ||
5655 | 6.3700920e-002, | ||
5656 | -5.2272643e-002, | ||
5657 | -2.8750180e-002, | ||
5658 | 4.0041018e-002, | ||
5659 | -8.1966458e-002, | ||
5660 | -1.0461089e-002, | ||
5661 | 2.5452300e-002, | ||
5662 | 6.7107297e-002, | ||
5663 | -3.3918191e-002, | ||
5664 | -1.0212989e-001, | ||
5665 | -6.3527291e-002, | ||
5666 | 3.1678548e-002, | ||
5667 | -6.5778118e-002, | ||
5668 | -1.6823229e-002, | ||
5669 | 2.2988117e-003, | ||
5670 | -4.8242461e-002, | ||
5671 | -1.4582693e-002, | ||
5672 | -4.9060246e-002, | ||
5673 | -3.4256626e-003, | ||
5674 | 4.1172518e-002, | ||
5675 | 3.2772250e-002, | ||
5676 | 2.4890066e-002, | ||
5677 | 3.4522929e-003, | ||
5678 | 4.4704585e-002, | ||
5679 | -5.9967401e-002, | ||
5680 | 1.4541680e-002, | ||
5681 | -7.9411114e-002, | ||
5682 | -6.5131143e-002, | ||
5683 | -4.2051810e-002, | ||
5684 | 4.2103006e-002, | ||
5685 | -9.8683984e-004, | ||
5686 | -5.0962061e-003, | ||
5687 | -2.2606406e-002, | ||
5688 | -1.2325980e-001, | ||
5689 | 9.5086419e-002, | ||
5690 | -1.9106034e-002, | ||
5691 | -5.1992218e-002, | ||
5692 | -6.7436377e-002, | ||
5693 | -1.5798067e-002, | ||
5694 | -7.5885603e-002, | ||
5695 | 1.7614604e-002, | ||
5696 | 3.0602185e-002, | ||
5697 | -4.5707990e-002, | ||
5698 | 5.0279499e-002, | ||
5699 | 1.3599448e-002, | ||
5700 | -8.4652879e-002, | ||
5701 | 1.4275404e-002, | ||
5702 | 5.3761838e-002, | ||
5703 | 1.3130364e-002, | ||
5704 | -5.7785349e-003, | ||
5705 | 1.0995249e-001, | ||
5706 | 3.6117865e-002, | ||
5707 | 2.2136081e-002, | ||
5708 | 1.1263325e-002, | ||
5709 | -4.9338919e-002, | ||
5710 | 4.2415991e-002, | ||
5711 | -6.3570185e-002, | ||
5712 | 5.1525003e-002, | ||
5713 | 8.9408937e-002, | ||
5714 | -4.3531507e-002, | ||
5715 | 2.5382423e-002, | ||
5716 | 5.7394710e-002, | ||
5717 | 1.1827633e-001, | ||
5718 | -1.4335949e-002, | ||
5719 | 2.4596850e-002, | ||
5720 | -1.8394004e-002, | ||
5721 | 1.3479964e-002, | ||
5722 | -5.5450915e-002, | ||
5723 | -1.3887857e-002, | ||
5724 | 3.7399926e-002, | ||
5725 | 4.2692709e-002, | ||
5726 | -9.1345703e-002, | ||
5727 | -6.4179097e-002, | ||
5728 | 5.1528849e-002, | ||
5729 | 1.1923834e-001, | ||
5730 | 8.0392828e-003, | ||
5731 | -7.4190647e-003, | ||
5732 | 1.1158220e-002, | ||
5733 | 2.3106872e-002, | ||
5734 | 2.5289633e-002, | ||
5735 | -7.8109586e-002, | ||
5736 | 4.4033891e-002, | ||
5737 | 2.9868351e-002, | ||
5738 | 2.5709704e-002, | ||
5739 | 6.5446252e-003, | ||
5740 | 1.7279125e-002, | ||
5741 | 8.8849380e-002, | ||
5742 | -4.2399471e-002, | ||
5743 | 3.2297167e-002, | ||
5744 | -3.3758385e-002, | ||
5745 | 5.3666150e-002, | ||
5746 | 3.7628322e-002, | ||
5747 | -1.3602948e-002, | ||
5748 | 8.3115154e-002, | ||
5749 | -4.4130785e-002, | ||
5750 | 1.5545953e-002, | ||
5751 | -5.7188645e-002, | ||
5752 | 3.3708440e-002, | ||
5753 | 7.9527486e-003, | ||
5754 | 7.2838427e-002, | ||
5755 | -8.7159852e-004, | ||
5756 | 9.8852335e-002, | ||
5757 | 4.3261724e-002, | ||
5758 | -2.2410237e-002, | ||
5759 | -1.9969511e-002, | ||
5760 | 1.3049591e-002, | ||
5761 | 1.3520410e-001 | ||
5762 | }; | ||
5763 | |||
5764 | float audiobeam_mic_locations[15][3] = { | ||
5765 | {1.5, 2.79, 0}, | ||
5766 | {1.5, 2.82, 0}, | ||
5767 | {1.5, 2.85, 0}, | ||
5768 | {1.5, 2.88, 0}, | ||
5769 | {1.5, 2.91, 0}, | ||
5770 | {1.5, 2.94, 0}, | ||
5771 | {1.5, 2.97, 0}, | ||
5772 | {1.5, 3, 0}, | ||
5773 | {1.5, 3.03, 0}, | ||
5774 | {1.5, 3.06, 0}, | ||
5775 | {1.5, 3.09, 0}, | ||
5776 | {1.5, 3.12, 0}, | ||
5777 | {1.5, 3.15, 0}, | ||
5778 | {1.5, 3.18, 0}, | ||
5779 | {1.5, 3.21, 0} | ||
5780 | }; | ||
5781 | |||
5782 | float audiobeam_source_location[3] = {1.1677, 2.1677, 1}; | ||
5783 | |||
5784 | float audiobeam_origin_location[3] = {1.5, 3, 0}; | ||
diff --git a/baseline/source/audiobeam/audiobeamlibm.c b/baseline/source/audiobeam/audiobeamlibm.c new file mode 100644 index 0000000..259f40b --- /dev/null +++ b/baseline/source/audiobeam/audiobeamlibm.c | |||
@@ -0,0 +1,423 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: audiobeamlibm.c | ||
7 | |||
8 | Author: Ian Lance Taylor and J.T. Conklin | ||
9 | |||
10 | Function: IEEE754 software library routines. | ||
11 | |||
12 | Source: Sun Microsystems and Cygnus | ||
13 | |||
14 | Original name: Unknown | ||
15 | |||
16 | Changes: No major functional changes. | ||
17 | |||
18 | License: See the terms below. | ||
19 | |||
20 | */ | ||
21 | |||
22 | /* | ||
23 | ==================================================== | ||
24 | Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
25 | |||
26 | Developed at SunPro, a Sun Microsystems, Inc. business. | ||
27 | Permission to use, copy, modify, and distribute this | ||
28 | software is freely granted, provided that this notice | ||
29 | is preserved. | ||
30 | ==================================================== | ||
31 | */ | ||
32 | |||
33 | |||
34 | #include "audiobeamlibm.h" | ||
35 | #include "audiobeamlibmath.h" | ||
36 | |||
37 | |||
38 | static const int audiobeam_npio2_hw[] = { | ||
39 | 0x3fc90f00, 0x40490f00, 0x4096cb00, 0x40c90f00, 0x40fb5300, 0x4116cb00, | ||
40 | 0x412fed00, 0x41490f00, 0x41623100, 0x417b5300, 0x418a3a00, 0x4196cb00, | ||
41 | 0x41a35c00, 0x41afed00, 0x41bc7e00, 0x41c90f00, 0x41d5a000, 0x41e23100, | ||
42 | 0x41eec200, 0x41fb5300, 0x4203f200, 0x420a3a00, 0x42108300, 0x4216cb00, | ||
43 | 0x421d1400, 0x42235c00, 0x4229a500, 0x422fed00, 0x42363600, 0x423c7e00, | ||
44 | 0x4242c700, 0x42490f00 | ||
45 | }; | ||
46 | |||
47 | static const float | ||
48 | audiobeam_invpio2 = 6.3661980629e-01f, /* 0x3f22f984 */ | ||
49 | audiobeam_pio2_1 = 1.5707855225e+00f, /* 0x3fc90f80 */ | ||
50 | audiobeam_pio2_1t = 1.0804334124e-05f, /* 0x37354443 */ | ||
51 | audiobeam_pio2_2 = 1.0804273188e-05f, /* 0x37354400 */ | ||
52 | audiobeam_pio2_2t = 6.0770999344e-11f, /* 0x2e85a308 */ | ||
53 | audiobeam_pio2_3 = 6.0770943833e-11f, /* 0x2e85a300 */ | ||
54 | audiobeam_pio2_3t = 6.1232342629e-17f; /* 0x248d3132 */ | ||
55 | |||
56 | static const float | ||
57 | audiobeam_C1 = 4.1666667908e-02f, /* 0x3d2aaaab */ | ||
58 | audiobeam_C2 = -1.3888889225e-03f, /* 0xbab60b61 */ | ||
59 | audiobeam_C3 = 2.4801587642e-05f, /* 0x37d00d01 */ | ||
60 | audiobeam_C4 = -2.7557314297e-07f, /* 0xb493f27c */ | ||
61 | audiobeam_C5 = 2.0875723372e-09f, /* 0x310f74f6 */ | ||
62 | audiobeam_C6 = -1.1359647598e-11f; /* 0xad47d74e */ | ||
63 | |||
64 | static const float | ||
65 | audiobeam_S1 = -1.6666667163e-01f, /* 0xbe2aaaab */ | ||
66 | audiobeam_S2 = 8.3333337680e-03f, /* 0x3c088889 */ | ||
67 | audiobeam_S3 = -1.9841270114e-04f, /* 0xb9500d01 */ | ||
68 | audiobeam_S4 = 2.7557314297e-06f, /* 0x3638ef1b */ | ||
69 | audiobeam_S5 = -2.5050759689e-08f, /* 0xb2d72f34 */ | ||
70 | audiobeam_S6 = 1.5896910177e-10f; /* 0x2f2ec9d3 */ | ||
71 | |||
72 | static const float | ||
73 | audiobeam_two25 = 3.355443200e+07f, /* 0x4c000000 */ | ||
74 | audiobeam_twom25 = 2.9802322388e-08f; /* 0x33000000 */ | ||
75 | |||
76 | |||
77 | int audiobeam___ieee754_rem_pio2f( float x, float *y ) | ||
78 | { | ||
79 | float z, w, t, r, fn; | ||
80 | int i, j, n = 0, ix, hx; | ||
81 | |||
82 | AUDIOBEAM_GET_FLOAT_WORD( hx, x ); | ||
83 | ix = hx & 0x7fffffff; | ||
84 | if ( ix <= 0x3f490fd8 ) { | ||
85 | y[0] = x; | ||
86 | y[1] = 0; | ||
87 | return 0; | ||
88 | } | ||
89 | if ( ix < 0x4016cbe4 ) { | ||
90 | if ( hx > 0 ) { | ||
91 | z = x - audiobeam_pio2_1; | ||
92 | if ( ( ix & 0xfffffff0 ) != 0x3fc90fd0 ) { | ||
93 | y[0] = z - audiobeam_pio2_1t; | ||
94 | y[1] = ( z - y[0] ) - audiobeam_pio2_1t; | ||
95 | } else { | ||
96 | z -= audiobeam_pio2_2; | ||
97 | y[0] = z - audiobeam_pio2_2t; | ||
98 | y[1] = ( z - y[0] ) - audiobeam_pio2_2t; | ||
99 | } | ||
100 | return 1; | ||
101 | } else { | ||
102 | z = x + audiobeam_pio2_1; | ||
103 | if ( ( ix & 0xfffffff0 ) != 0x3fc90fd0 ) { | ||
104 | y[0] = z + audiobeam_pio2_1t; | ||
105 | y[1] = ( z - y[0] ) + audiobeam_pio2_1t; | ||
106 | } else { | ||
107 | z += audiobeam_pio2_2; | ||
108 | y[0] = z + audiobeam_pio2_2t; | ||
109 | y[1] = ( z - y[0] ) + audiobeam_pio2_2t; | ||
110 | } | ||
111 | return -1; | ||
112 | } | ||
113 | } | ||
114 | if ( ix <= 0x43490f80 ) { | ||
115 | t = audiobeam_fabsf( x ); | ||
116 | n = ( int ) ( t * audiobeam_invpio2 + audiobeam_half ); | ||
117 | fn = ( float )n; | ||
118 | r = t - fn * audiobeam_pio2_1; | ||
119 | w = fn * audiobeam_pio2_1t; | ||
120 | if ( n < 32 && ( int )( ix & 0xffffff00 ) != audiobeam_npio2_hw[n - 1] ) | ||
121 | y[0] = r - w; | ||
122 | else { | ||
123 | unsigned int high; | ||
124 | j = ix >> 23; | ||
125 | y[0] = r - w; | ||
126 | AUDIOBEAM_GET_FLOAT_WORD( high, y[0] ); | ||
127 | i = j - ( ( high >> 23 ) & 0xff ); | ||
128 | if ( i > 8 ) { | ||
129 | t = r; | ||
130 | w = fn * audiobeam_pio2_2; | ||
131 | r = t - w; | ||
132 | w = fn * audiobeam_pio2_2t - ( ( t - r ) - w ); | ||
133 | y[0] = r - w; | ||
134 | AUDIOBEAM_GET_FLOAT_WORD( high, y[0] ); | ||
135 | i = j - ( ( high >> 23 ) & 0xff ); | ||
136 | if ( i > 25 ) { | ||
137 | t = r; | ||
138 | w = fn * audiobeam_pio2_3; | ||
139 | r = t - w; | ||
140 | w = fn * audiobeam_pio2_3t - ( ( t - r ) - w ); | ||
141 | y[0] = r - w; | ||
142 | } | ||
143 | } | ||
144 | } | ||
145 | y[1] = ( r - y[0] ) - w; | ||
146 | if ( hx < 0 ) { | ||
147 | y[0] = -y[0]; | ||
148 | y[1] = -y[1]; | ||
149 | return -n; | ||
150 | } else return n; | ||
151 | } | ||
152 | if ( ix >= 0x7f800000 ) { | ||
153 | y[0] = y[1] = x - x; | ||
154 | return 0; | ||
155 | } | ||
156 | |||
157 | return n; | ||
158 | } | ||
159 | |||
160 | |||
161 | float audiobeam___kernel_cosf( float x, float y ) | ||
162 | { | ||
163 | float a, hz, z, r, qx; | ||
164 | int ix; | ||
165 | AUDIOBEAM_GET_FLOAT_WORD( ix, x ); | ||
166 | ix &= 0x7fffffff; | ||
167 | if ( ix < 0x32000000 ) { | ||
168 | if ( ( ( int )x ) == 0 ) return audiobeam_one; | ||
169 | } | ||
170 | z = x * x; | ||
171 | r = z * ( audiobeam_C1 + z * ( audiobeam_C2 + z * ( audiobeam_C3 + z * | ||
172 | ( audiobeam_C4 + z * | ||
173 | ( audiobeam_C5 + z * audiobeam_C6 ) ) ) ) ); | ||
174 | if ( ix < 0x3e99999a ) | ||
175 | return audiobeam_one - ( ( float )0.5f * z - ( z * r - x * y ) ); | ||
176 | else { | ||
177 | if ( ix > 0x3f480000 ) | ||
178 | qx = ( float )0.28125f; | ||
179 | else | ||
180 | AUDIOBEAM_SET_FLOAT_WORD( qx, ix - 0x01000000 ); | ||
181 | hz = ( float )0.5f * z - qx; | ||
182 | a = audiobeam_one - qx; | ||
183 | return a - ( hz - ( z * r - x * y ) ); | ||
184 | } | ||
185 | } | ||
186 | |||
187 | |||
188 | float audiobeam___kernel_sinf( float x, float y, int iy ) | ||
189 | { | ||
190 | float z, r, v; | ||
191 | int ix; | ||
192 | AUDIOBEAM_GET_FLOAT_WORD( ix, x ); | ||
193 | ix &= 0x7fffffff; | ||
194 | if ( ix < 0x32000000 ) { | ||
195 | if ( ( int )x == 0 ) return x; | ||
196 | } | ||
197 | z = x * x; | ||
198 | v = z * x; | ||
199 | r = audiobeam_S2 + z * ( audiobeam_S3 + z * ( audiobeam_S4 + z * ( audiobeam_S5 + z * audiobeam_S6 ) ) ); | ||
200 | if ( iy == 0 ) return x + v * ( audiobeam_S1 + z * r ); | ||
201 | else return x - ( ( z * ( audiobeam_half * y - v * r ) - y ) - v * audiobeam_S1 ); | ||
202 | } | ||
203 | |||
204 | |||
205 | float audiobeam___copysignf( float x, float y ) | ||
206 | { | ||
207 | unsigned int ix, iy; | ||
208 | AUDIOBEAM_GET_FLOAT_WORD( ix, x ); | ||
209 | AUDIOBEAM_GET_FLOAT_WORD( iy, y ); | ||
210 | AUDIOBEAM_SET_FLOAT_WORD( x, ( ix & 0x7fffffff ) | ( iy & 0x80000000 ) ); | ||
211 | return x; | ||
212 | } | ||
213 | |||
214 | |||
215 | float audiobeam___cosf( float x ) | ||
216 | { | ||
217 | float y[2], z = 0.0f; | ||
218 | int n, ix; | ||
219 | |||
220 | AUDIOBEAM_GET_FLOAT_WORD( ix, x ); | ||
221 | |||
222 | ix &= 0x7fffffff; | ||
223 | if ( ix <= 0x3f490fd8 ) return audiobeam___kernel_cosf( x, z ); | ||
224 | |||
225 | else | ||
226 | if ( ix >= 0x7f800000 ) return x - x; | ||
227 | |||
228 | else { | ||
229 | y[0] = 0.0; | ||
230 | y[1] = 0.0; | ||
231 | n = audiobeam___ieee754_rem_pio2f( x, y ); | ||
232 | switch ( n & 3 ) { | ||
233 | case 0: | ||
234 | return audiobeam___kernel_cosf( y[0], y[1] ); | ||
235 | case 1: | ||
236 | return -audiobeam___kernel_sinf( y[0], y[1], 1 ); | ||
237 | case 2: | ||
238 | return -audiobeam___kernel_cosf( y[0], y[1] ); | ||
239 | default: | ||
240 | return audiobeam___kernel_sinf( y[0], y[1], 1 ); | ||
241 | } | ||
242 | } | ||
243 | } | ||
244 | |||
245 | |||
246 | float audiobeam___fabsf( float x ) | ||
247 | { | ||
248 | unsigned int ix; | ||
249 | AUDIOBEAM_GET_FLOAT_WORD( ix, x ); | ||
250 | AUDIOBEAM_SET_FLOAT_WORD( x, ix & 0x7fffffff ); | ||
251 | return x; | ||
252 | } | ||
253 | |||
254 | |||
255 | float audiobeam___floorf( float x ) | ||
256 | { | ||
257 | int i0, j0; | ||
258 | unsigned int i; | ||
259 | AUDIOBEAM_GET_FLOAT_WORD( i0, x ); | ||
260 | j0 = ( ( i0 >> 23 ) & 0xff ) - 0x7f; | ||
261 | if ( j0 < 23 ) { | ||
262 | if ( j0 < 0 ) { | ||
263 | if ( audiobeam_huge + x > ( float )0.0f ) { | ||
264 | if ( i0 >= 0 ) | ||
265 | i0 = 0; | ||
266 | else | ||
267 | if ( ( i0 & 0x7fffffff ) != 0 ) | ||
268 | i0 = 0xbf800000; | ||
269 | } | ||
270 | } else { | ||
271 | i = ( 0x007fffff ) >> j0; | ||
272 | if ( ( i0 & i ) == 0 ) return x; | ||
273 | if ( audiobeam_huge + x > ( float )0.0f ) { | ||
274 | if ( i0 < 0 ) i0 += ( 0x00800000 ) >> j0; | ||
275 | i0 &= ( ~i ); | ||
276 | } | ||
277 | } | ||
278 | } else { | ||
279 | if ( j0 == 0x80 ) return x + x; | ||
280 | else return x; | ||
281 | } | ||
282 | AUDIOBEAM_SET_FLOAT_WORD( x, i0 ); | ||
283 | return x; | ||
284 | } | ||
285 | |||
286 | |||
287 | int audiobeam___isinff ( float x ) | ||
288 | { | ||
289 | int ix, t; | ||
290 | AUDIOBEAM_GET_FLOAT_WORD( ix, x ); | ||
291 | t = ix & 0x7fffffff; | ||
292 | t ^= 0x7f800000; | ||
293 | t |= -t; | ||
294 | return ~( t >> 31 ) & ( ix >> 30 ); | ||
295 | } | ||
296 | |||
297 | |||
298 | float audiobeam___scalbnf ( float x, int n ) | ||
299 | { | ||
300 | int k, ix; | ||
301 | AUDIOBEAM_GET_FLOAT_WORD( ix, x ); | ||
302 | k = ( ix & 0x7f800000 ) >> 23; | ||
303 | if ( k == 0 ) { | ||
304 | if ( ( ix & 0x7fffffff ) == 0 ) return x; | ||
305 | x *= audiobeam_two25; | ||
306 | AUDIOBEAM_GET_FLOAT_WORD( ix, x ); | ||
307 | k = ( ( ix & 0x7f800000 ) >> 23 ) - 25; | ||
308 | } | ||
309 | if ( k == 0xff ) return x + x; | ||
310 | k = k + n; | ||
311 | if ( n > 50000 || k > 0xfe ) | ||
312 | return audiobeam_huge * audiobeam___copysignf( audiobeam_huge, | ||
313 | x ); | ||
314 | if ( n < -50000 ) | ||
315 | return audiobeam_tiny * audiobeam___copysignf( audiobeam_tiny, | ||
316 | x ); | ||
317 | if ( k > 0 ) { | ||
318 | AUDIOBEAM_SET_FLOAT_WORD( x, ( ix & 0x807fffff ) | ( k << 23 ) ); | ||
319 | return x; | ||
320 | } | ||
321 | if ( k <= -25 ) | ||
322 | return audiobeam_tiny * audiobeam___copysignf( audiobeam_tiny, | ||
323 | x ); | ||
324 | k += 25; | ||
325 | AUDIOBEAM_SET_FLOAT_WORD( x, ( ix & 0x807fffff ) | ( k << 23 ) ); | ||
326 | return x * audiobeam_twom25; | ||
327 | } | ||
328 | |||
329 | |||
330 | float audiobeam___ceilf( float x ) | ||
331 | { | ||
332 | int i0, j0; | ||
333 | unsigned int i; | ||
334 | |||
335 | AUDIOBEAM_GET_FLOAT_WORD( i0, x ); | ||
336 | j0 = ( ( i0 >> 23 ) & 0xff ) - 0x7f; | ||
337 | if ( j0 < 23 ) { | ||
338 | if ( j0 < 0 ) { | ||
339 | if ( audiobeam_huge + x > ( float )0.0 ) { | ||
340 | if ( i0 < 0 ) | ||
341 | i0 = 0x80000000; | ||
342 | else | ||
343 | if ( i0 != 0 ) | ||
344 | i0 = 0x3f800000; | ||
345 | } | ||
346 | } else { | ||
347 | i = ( 0x007fffff ) >> j0; | ||
348 | if ( ( i0 & i ) == 0 ) return x; | ||
349 | if ( audiobeam_huge + x > ( float )0.0 ) { | ||
350 | if ( i0 > 0 ) i0 += ( 0x00800000 ) >> j0; | ||
351 | i0 &= ( ~i ); | ||
352 | } | ||
353 | } | ||
354 | } else { | ||
355 | if ( j0 == 0x80 ) return x + x; | ||
356 | else return x; | ||
357 | } | ||
358 | AUDIOBEAM_SET_FLOAT_WORD( x, i0 ); | ||
359 | return x; | ||
360 | } | ||
361 | |||
362 | |||
363 | float audiobeam___ieee754_sqrtf( float x ) | ||
364 | { | ||
365 | float z; | ||
366 | int sign = ( int )0x80000000; | ||
367 | int ix, s, q, m, t, i; | ||
368 | unsigned int r; | ||
369 | |||
370 | AUDIOBEAM_GET_FLOAT_WORD( ix, x ); | ||
371 | |||
372 | if ( ( ix & 0x7f800000 ) == 0x7f800000 ) | ||
373 | return x * x + x; | ||
374 | if ( ix <= 0 ) { | ||
375 | if ( ( ix & ( ~sign ) ) == 0 ) return x; | ||
376 | else | ||
377 | if ( ix < 0 ) | ||
378 | return ( x - x ) / ( x - x ); | ||
379 | } | ||
380 | m = ( ix >> 23 ); | ||
381 | if ( m == 0 ) { | ||
382 | _Pragma( "loopbound min 0 max 0" ) | ||
383 | for ( i = 0; ( ix & 0x00800000 ) == 0; i++ ) | ||
384 | ix <<= 1; | ||
385 | m -= i - 1; | ||
386 | } | ||
387 | m -= 127; | ||
388 | ix = ( ix & 0x007fffff ) | 0x00800000; | ||
389 | if ( m & 1 ) | ||
390 | ix += ix; | ||
391 | m >>= 1; | ||
392 | |||
393 | ix += ix; | ||
394 | q = s = 0; | ||
395 | r = 0x01000000; | ||
396 | |||
397 | _Pragma( "loopbound min 25 max 25" ) | ||
398 | while ( r != 0 ) { | ||
399 | t = s + r; | ||
400 | if ( t <= ix ) { | ||
401 | s = t + r; | ||
402 | ix -= t; | ||
403 | q += r; | ||
404 | } | ||
405 | ix += ix; | ||
406 | r >>= 1; | ||
407 | } | ||
408 | |||
409 | if ( ix != 0 ) { | ||
410 | z = audiobeam_one - audiobeam_tiny; | ||
411 | if ( z >= audiobeam_one ) { | ||
412 | z = audiobeam_one + audiobeam_tiny; | ||
413 | if ( z > audiobeam_one ) | ||
414 | q += 2; | ||
415 | else | ||
416 | q += ( q & 1 ); | ||
417 | } | ||
418 | } | ||
419 | ix = ( q >> 1 ) + 0x3f000000; | ||
420 | ix += ( m << 23 ); | ||
421 | AUDIOBEAM_SET_FLOAT_WORD( z, ix ); | ||
422 | return z; | ||
423 | } | ||
diff --git a/baseline/source/audiobeam/audiobeamlibm.h b/baseline/source/audiobeam/audiobeamlibm.h new file mode 100644 index 0000000..b06b563 --- /dev/null +++ b/baseline/source/audiobeam/audiobeamlibm.h | |||
@@ -0,0 +1,59 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: quicksortlibm.c | ||
7 | |||
8 | Author: Ian Lance Taylor | ||
9 | |||
10 | Function: IEEE754 software library routines. | ||
11 | |||
12 | Source: Sun Microsystems and Cygnus | ||
13 | |||
14 | Original name: Unknown | ||
15 | |||
16 | Changes: No major functional changes. | ||
17 | |||
18 | License: See audiobeamlibm.c | ||
19 | |||
20 | */ | ||
21 | |||
22 | #ifndef AUDIOBEAM_LIBM | ||
23 | #define AUDIOBEAM_LIBM | ||
24 | |||
25 | #define audiobeam_M_PI 3.14159265358979323846 | ||
26 | |||
27 | static const float | ||
28 | audiobeam_one = 1.0f, | ||
29 | audiobeam_tiny = 1.0e-30f, | ||
30 | audiobeam_half = 5.0000000000e-01, /* 0x3f000000 */ | ||
31 | audiobeam_huge = 1.0e30, | ||
32 | audiobeam_two8 = 2.5600000000e+02, /* 0x43800000 */ | ||
33 | audiobeam_twon8 = 3.9062500000e-03, /* 0x3b800000 */ | ||
34 | audiobeam_zero = 0.0; | ||
35 | |||
36 | #define audiobeam_cos audiobeam___cosf | ||
37 | #define audiobeam_fabs audiobeam___fabsf | ||
38 | #define audiobeam_fabsf audiobeam___fabsf | ||
39 | #define audiobeam_isinf audiobeam___isinff | ||
40 | #define audiobeam_sqrt audiobeam___ieee754_sqrtf | ||
41 | #define audiobeam_ceil audiobeam___ceilf | ||
42 | #define audiobeam_floor audiobeam___floorf | ||
43 | |||
44 | float audiobeam___copysignf( float x, float y ); | ||
45 | float audiobeam___cosf( float x ); | ||
46 | float audiobeam___fabsf( float x ); | ||
47 | float audiobeam___floorf( float x ); | ||
48 | int audiobeam___ieee754_rem_pio2f( float x, float *y ); | ||
49 | float audiobeam___ieee754_sqrtf( float x ); | ||
50 | int audiobeam___isinff ( float x ); | ||
51 | float audiobeam___kernel_cosf( float x, float y ); | ||
52 | float audiobeam___kernel_sinf( float x, float y, int iy ); | ||
53 | int audiobeam___kernel_rem_pio2f( float *x, float *y, int e0, int nx, | ||
54 | int prec, const int *ipio2 ); | ||
55 | float audiobeam___scalbnf ( float x, int n ); | ||
56 | float audiobeam___ceilf( float x ); | ||
57 | float audiobeam___floorf( float x ); | ||
58 | |||
59 | #endif // AUDIOBEAM_LIBM | ||
diff --git a/baseline/source/audiobeam/audiobeamlibmalloc.c b/baseline/source/audiobeam/audiobeamlibmalloc.c new file mode 100644 index 0000000..50c3073 --- /dev/null +++ b/baseline/source/audiobeam/audiobeamlibmalloc.c | |||
@@ -0,0 +1,14 @@ | |||
1 | #include "audiobeamlibmalloc.h" | ||
2 | |||
3 | #define AUDIOBEAM_HEAP_SIZE 10000 | ||
4 | |||
5 | static char audiobeam_simulated_heap[AUDIOBEAM_HEAP_SIZE]; | ||
6 | static unsigned int audiobeam_freeHeapPos; | ||
7 | |||
8 | void *audiobeam_malloc( unsigned int numberOfBytes ) | ||
9 | { | ||
10 | void *currentPos = ( void * )&audiobeam_simulated_heap[ audiobeam_freeHeapPos ]; | ||
11 | /* Get a 4-byte address for alignment purposes */ | ||
12 | audiobeam_freeHeapPos += ( ( numberOfBytes + 4 ) & ( unsigned int )0xfffffffc ); | ||
13 | return currentPos; | ||
14 | } \ No newline at end of file | ||
diff --git a/baseline/source/audiobeam/audiobeamlibmalloc.h b/baseline/source/audiobeam/audiobeamlibmalloc.h new file mode 100644 index 0000000..eccbdb9 --- /dev/null +++ b/baseline/source/audiobeam/audiobeamlibmalloc.h | |||
@@ -0,0 +1,27 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: audiobeamlibmalloc.c | ||
7 | |||
8 | Author: unkown | ||
9 | |||
10 | Function: Memory allocation. | ||
11 | |||
12 | Source: Sun Microsystems and Cygnus | ||
13 | |||
14 | Original name: Unknown | ||
15 | |||
16 | Changes: No major functional changes. | ||
17 | |||
18 | License: see license.txt | ||
19 | |||
20 | */ | ||
21 | |||
22 | #ifndef AUDIOBEAM_MALLOC_H | ||
23 | #define AUDIOBEAM_MALLOC_H | ||
24 | |||
25 | void *audiobeam_malloc( unsigned int numberOfBytes ); | ||
26 | |||
27 | #endif | ||
diff --git a/baseline/source/audiobeam/audiobeamlibmath.h b/baseline/source/audiobeam/audiobeamlibmath.h new file mode 100644 index 0000000..77bda0f --- /dev/null +++ b/baseline/source/audiobeam/audiobeamlibmath.h | |||
@@ -0,0 +1,69 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: audiobeamlibmath.h | ||
7 | |||
8 | Author: Unknown | ||
9 | |||
10 | Function: IEEE754 software library routines. | ||
11 | |||
12 | Source: Sun Microsystems | ||
13 | |||
14 | Original name: math_private.h | ||
15 | |||
16 | Changes: No major functional changes. | ||
17 | |||
18 | License: See the terms below. | ||
19 | |||
20 | */ | ||
21 | |||
22 | |||
23 | /* | ||
24 | ==================================================== | ||
25 | Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
26 | |||
27 | Developed at SunPro, a Sun Microsystems, Inc. business. | ||
28 | Permission to use, copy, modify, and distribute this | ||
29 | software is freely granted, provided that this notice | ||
30 | is preserved. | ||
31 | ==================================================== | ||
32 | */ | ||
33 | |||
34 | /* | ||
35 | from: @(#)fdlibm.h 5.1 93/09/24 | ||
36 | */ | ||
37 | |||
38 | #ifndef AUDIOBEAM_MATH_PRIVATE_H_ | ||
39 | #define AUDIOBEAM_MATH_PRIVATE_H_ | ||
40 | |||
41 | #include "audiobeamlibm.h" | ||
42 | |||
43 | /* A union which permits us to convert between a float and a 32 bit | ||
44 | int. */ | ||
45 | |||
46 | typedef union { | ||
47 | float value; | ||
48 | unsigned int word; | ||
49 | } audiobeam_ieee_float_shape_type; | ||
50 | |||
51 | /* Get a 32 bit int from a float. */ | ||
52 | |||
53 | #define AUDIOBEAM_GET_FLOAT_WORD(i,d) \ | ||
54 | { \ | ||
55 | audiobeam_ieee_float_shape_type gf_u; \ | ||
56 | gf_u.value = (d); \ | ||
57 | (i) = gf_u.word; \ | ||
58 | } | ||
59 | |||
60 | /* Set a float from a 32 bit int. */ | ||
61 | |||
62 | #define AUDIOBEAM_SET_FLOAT_WORD(d,i) \ | ||
63 | { \ | ||
64 | audiobeam_ieee_float_shape_type sf_u; \ | ||
65 | sf_u.word = (i); \ | ||
66 | (d) = sf_u.value; \ | ||
67 | } | ||
68 | |||
69 | #endif /* _MATH_PRIVATE_H_ */ | ||
diff --git a/baseline/source/audiobeam/changeLog.txt b/baseline/source/audiobeam/changeLog.txt new file mode 100644 index 0000000..b9b8933 --- /dev/null +++ b/baseline/source/audiobeam/changeLog.txt | |||
@@ -0,0 +1,36 @@ | |||
1 | File: audiobeam.c | ||
2 | Original provenience: StreamIt | ||
3 | http://groups.csail.mit.edu/cag/streamit/ | ||
4 | |||
5 | 2015-12-29: | ||
6 | - Removed original header comment, replaced by TACLeBench header. | ||
7 | - Renamed libraryfiles according to TACLeBench naming scheme. | ||
8 | - Removed all preprocessor macros, integrated them directly in the source code. | ||
9 | - Added prefix "audiobeam_" to all global symbols. | ||
10 | - Added explicit forward declarations of functions. | ||
11 | - Added an empty init function | ||
12 | - Added preprocessor command to determine if 32 or 64 bit in audiobeamlibmalloc.h | ||
13 | - Added new function audiobeam_return producing a checksum as return value. | ||
14 | - Added new function audiobeam_main according to TACLeBench guidelines. | ||
15 | audiobeam_main is annotated as entry-point for timing analysis. | ||
16 | - Applied code formatting according to the following rules | ||
17 | - Lines shall not be wider than 80 characters; whenever possible, appropriate | ||
18 | line breaks shall be inserted to keep lines below 80 characters | ||
19 | - Indentation is done using whitespaces only, no tabs. Code is indented by | ||
20 | two whitespaces | ||
21 | - Two empty lines are put between any two functions | ||
22 | - In non-empty lists or index expressions, opening '(' and '[' are followed by | ||
23 | one whitespace, closing ')' and ']' are preceded by one whitespace | ||
24 | - In comma- or colon-separated argument lists, one whitespace is put after | ||
25 | each comma/colon | ||
26 | - Names of functions and global variables all start with a benchmark-specific | ||
27 | prefix (here: bs_) followed by lowercase letter (e.g., bs_square) | ||
28 | - For pointer types, one whitespace is put before the '*' | ||
29 | - Operators within expressions shall be preceded and followed by one | ||
30 | whitespace | ||
31 | - Code of then- and else-parts of if-then-else statements shall be put in | ||
32 | separate lines, not in the same lines as the if-condition or the keyword | ||
33 | "else" | ||
34 | - Opening braces '{' denoting the beginning of code for some if-else or loop | ||
35 | body shall be put at the end of the same line where the keywords "if", | ||
36 | "else", "for", "while" etc. occur \ No newline at end of file | ||
diff --git a/baseline/source/audiobeam/license.txt b/baseline/source/audiobeam/license.txt new file mode 100644 index 0000000..7029925 --- /dev/null +++ b/baseline/source/audiobeam/license.txt | |||
@@ -0,0 +1,21 @@ | |||
1 | The MIT License | ||
2 | |||
3 | Copyright (c) <year> <copyright holders> | ||
4 | |||
5 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
6 | of this software and associated documentation files (the "Software"), to deal | ||
7 | in the Software without restriction, including without limitation the rights | ||
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
9 | copies of the Software, and to permit persons to whom the Software is | ||
10 | furnished to do so, subject to the following conditions: | ||
11 | |||
12 | The above copyright notice and this permission notice shall be included in | ||
13 | all copies or substantial portions of the Software. | ||
14 | |||
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
21 | THE SOFTWARE. | ||
diff --git a/baseline/source/cjpeg_transupp/ChangeLog.txt b/baseline/source/cjpeg_transupp/ChangeLog.txt new file mode 100644 index 0000000..df4383c --- /dev/null +++ b/baseline/source/cjpeg_transupp/ChangeLog.txt | |||
@@ -0,0 +1,36 @@ | |||
1 | File: cjpeg_transupp.c | ||
2 | Original provenience: MediaBench II benchmark suite, | ||
3 | http://euler.slu.edu/~fritts/mediabench (mirror) | ||
4 | |||
5 | 2015-11-03: | ||
6 | - Removed original header comment, replaced by TACLeBench header. | ||
7 | - Removed unnecessary preprocessor macros. | ||
8 | - Removed unnecessary code parts, simplified header files and include | ||
9 | relationships. | ||
10 | - Added prefix "cjpeg_transupp" to all global symbols. | ||
11 | - Added explicit forward declarations of functions. | ||
12 | - Replaced initialization code by TACLeBench-compliant initialization code. | ||
13 | - Added new function cjpeg_transupp_return producing a checksum as return value. | ||
14 | - Added new function cjpeg_transupp_main according to TACLeBench guidelines. | ||
15 | cjpeg_transupp_main is annotated as entry-point for timing analysis. | ||
16 | - Applied code formatting according to the following rules | ||
17 | - Lines shall not be wider than 80 characters; whenever possible, appropriate | ||
18 | line breaks shall be inserted to keep lines below 80 characters | ||
19 | - Indentation is done using whitespaces only, no tabs. Code is indented by | ||
20 | two whitespaces | ||
21 | - Two empty lines are put between any two functions | ||
22 | - In non-empty lists or index expressions, opening '(' and '[' are followed by | ||
23 | one whitespace, closing ')' and ']' are preceded by one whitespace | ||
24 | - In comma- or colon-separated argument lists, one whitespace is put after | ||
25 | each comma/colon | ||
26 | - Names of functions and global variables all start with a benchmark-specific | ||
27 | prefix (here: bs_) followed by lowercase letter (e.g., bs_square) | ||
28 | - For pointer types, one whitespace is put before the '*' | ||
29 | - Operators within expressions shall be preceded and followed by one | ||
30 | whitespace | ||
31 | - Code of then- and else-parts of if-then-else statements shall be put in | ||
32 | separate lines, not in the same lines as the if-condition or the keyword | ||
33 | "else" | ||
34 | - Opening braces '{' denoting the beginning of code for some if-else or loop | ||
35 | body shall be put at the end of the same line where the keywords "if", | ||
36 | "else", "for", "while" etc. occur | ||
diff --git a/baseline/source/cjpeg_transupp/README b/baseline/source/cjpeg_transupp/README new file mode 100644 index 0000000..8dba954 --- /dev/null +++ b/baseline/source/cjpeg_transupp/README | |||
@@ -0,0 +1,417 @@ | |||
1 | The Independent JPEG Group's JPEG software | ||
2 | ========================================== | ||
3 | |||
4 | README for release 6a of 7-Feb-96 | ||
5 | ================================= | ||
6 | |||
7 | This distribution contains the sixth public release of the Independent JPEG | ||
8 | Group's free JPEG software. You are welcome to redistribute this software and | ||
9 | to use it for any purpose, subject to the conditions under LEGAL ISSUES, below. | ||
10 | |||
11 | Serious users of this software (particularly those incorporating it into | ||
12 | larger programs) should contact IJG at jpeg-info@uunet.uu.net to be added to | ||
13 | our electronic mailing list. Mailing list members are notified of updates | ||
14 | and have a chance to participate in technical discussions, etc. | ||
15 | |||
16 | This software is the work of Tom Lane, Philip Gladstone, Luis Ortiz, Jim | ||
17 | Boucher, Lee Crocker, Julian Minguillon, George Phillips, Davide Rossi, | ||
18 | Ge' Weijers, and other members of the Independent JPEG Group. | ||
19 | |||
20 | IJG is not affiliated with the official ISO JPEG standards committee. | ||
21 | |||
22 | |||
23 | DOCUMENTATION ROADMAP | ||
24 | ===================== | ||
25 | |||
26 | This file contains the following sections: | ||
27 | |||
28 | OVERVIEW General description of JPEG and the IJG software. | ||
29 | LEGAL ISSUES Copyright, lack of warranty, terms of distribution. | ||
30 | REFERENCES Where to learn more about JPEG. | ||
31 | ARCHIVE LOCATIONS Where to find newer versions of this software. | ||
32 | RELATED SOFTWARE Other stuff you should get. | ||
33 | FILE FORMAT WARS Software *not* to get. | ||
34 | TO DO Plans for future IJG releases. | ||
35 | |||
36 | Other documentation files in the distribution are: | ||
37 | |||
38 | User documentation: | ||
39 | install.doc How to configure and install the IJG software. | ||
40 | usage.doc Usage instructions for cjpeg, djpeg, jpegtran, | ||
41 | rdjpgcom, and wrjpgcom. | ||
42 | *.1 Unix-style man pages for programs (same info as usage.doc). | ||
43 | wizard.doc Advanced usage instructions for JPEG wizards only. | ||
44 | change.log Version-to-version change highlights. | ||
45 | Programmer and internal documentation: | ||
46 | libjpeg.doc How to use the JPEG library in your own programs. | ||
47 | example.c Sample code for calling the JPEG library. | ||
48 | structure.doc Overview of the JPEG library's internal structure. | ||
49 | filelist.doc Road map of IJG files. | ||
50 | coderules.doc Coding style rules --- please read if you contribute code. | ||
51 | |||
52 | Please read at least the files install.doc and usage.doc. Useful information | ||
53 | can also be found in the JPEG FAQ (Frequently Asked Questions) article. See | ||
54 | ARCHIVE LOCATIONS below to find out where to obtain the FAQ article. | ||
55 | |||
56 | If you want to understand how the JPEG code works, we suggest reading one or | ||
57 | more of the REFERENCES, then looking at the documentation files (in roughly | ||
58 | the order listed) before diving into the code. | ||
59 | |||
60 | |||
61 | OVERVIEW | ||
62 | ======== | ||
63 | |||
64 | This package contains C software to implement JPEG image compression and | ||
65 | decompression. JPEG (pronounced "jay-peg") is a standardized compression | ||
66 | method for full-color and gray-scale images. JPEG is intended for compressing | ||
67 | "real-world" scenes; line drawings, cartoons and other non-realistic images | ||
68 | are not its strong suit. JPEG is lossy, meaning that the output image is not | ||
69 | exactly identical to the input image. Hence you must not use JPEG if you | ||
70 | have to have identical output bits. However, on typical photographic images, | ||
71 | very good compression levels can be obtained with no visible change, and | ||
72 | remarkably high compression levels are possible if you can tolerate a | ||
73 | low-quality image. For more details, see the references, or just experiment | ||
74 | with various compression settings. | ||
75 | |||
76 | This software implements JPEG baseline, extended-sequential, and progressive | ||
77 | compression processes. Provision is made for supporting all variants of these | ||
78 | processes, although some uncommon parameter settings aren't implemented yet. | ||
79 | For legal reasons, we are not distributing code for the arithmetic-coding | ||
80 | variants of JPEG; see LEGAL ISSUES. We have made no provision for supporting | ||
81 | the hierarchical or lossless processes defined in the standard. | ||
82 | |||
83 | We provide a set of library routines for reading and writing JPEG image files, | ||
84 | plus two sample applications "cjpeg" and "djpeg", which use the library to | ||
85 | perform conversion between JPEG and some other popular image file formats. | ||
86 | The library is intended to be reused in other applications. | ||
87 | |||
88 | In order to support file conversion and viewing software, we have included | ||
89 | considerable functionality beyond the bare JPEG coding/decoding capability; | ||
90 | for example, the color quantization modules are not strictly part of JPEG | ||
91 | decoding, but they are essential for output to colormapped file formats or | ||
92 | colormapped displays. These extra functions can be compiled out of the | ||
93 | library if not required for a particular application. We have also included | ||
94 | "jpegtran", a utility for lossless transcoding between different JPEG | ||
95 | processes, and "rdjpgcom" and "wrjpgcom", two simple applications for | ||
96 | inserting and extracting textual comments in JFIF files. | ||
97 | |||
98 | The emphasis in designing this software has been on achieving portability and | ||
99 | flexibility, while also making it fast enough to be useful. In particular, | ||
100 | the software is not intended to be read as a tutorial on JPEG. (See the | ||
101 | REFERENCES section for introductory material.) Rather, it is intended to | ||
102 | be reliable, portable, industrial-strength code. We do not claim to have | ||
103 | achieved that goal in every aspect of the software, but we strive for it. | ||
104 | |||
105 | We welcome the use of this software as a component of commercial products. | ||
106 | No royalty is required, but we do ask for an acknowledgement in product | ||
107 | documentation, as described under LEGAL ISSUES. | ||
108 | |||
109 | Lossless image transformation routines. These routines work on DCT coefficient | ||
110 | arrays and thus do not require any lossy decompression or recompression of the | ||
111 | image. Thanks to Guido Vollbeding for the initial design and code of this | ||
112 | feature. | ||
113 | |||
114 | Horizontal flipping is done in-place, using a single top-to-bottom pass through | ||
115 | the virtual source array. It will thus be much the fastest option for images | ||
116 | larger than main memory. | ||
117 | |||
118 | The other routines require a set of destination virtual arrays, so they need | ||
119 | twice as much memory as jpegtran normally does. The destination arrays are | ||
120 | always written in normal scan order (top to bottom) because the virtual array | ||
121 | manager expects this. The source arrays will be scanned in the corresponding | ||
122 | order, which means multiple passes through the source arrays for most of the | ||
123 | transforms. That could result in much thrashing if the image is larger than main | ||
124 | memory. | ||
125 | |||
126 | Some notes about the operating environment of the individual transform routines: | ||
127 | 1. Both the source and destination virtual arrays are allocated from the source | ||
128 | JPEG object, and therefore should be manipulated by calling the source's | ||
129 | memory manager. | ||
130 | 2. The destination's component count should be used. It may be smaller than the | ||
131 | source's when forcing to grayscale. | ||
132 | 3. Likewise the destination's sampling factors should be used. When forcing to | ||
133 | grayscale the destination's sampling factors will be all 1, and we may as | ||
134 | well take that as the effective iMCU size. | ||
135 | 4. When "trim" is in effect, the destination's dimensions will be the trimmed | ||
136 | values but the source's will be untrimmed. | ||
137 | 5. All the routines assume that the source and destination buffers are padded | ||
138 | out to a full iMCU boundary. This is true, although for the source buffer it | ||
139 | is an undocumented property of jdcoefct.c. | ||
140 | Notes 2,3,4 boil down to this: generally we should use the destination's | ||
141 | dimensions and ignore the source's. | ||
142 | |||
143 | |||
144 | LEGAL ISSUES | ||
145 | ============ | ||
146 | |||
147 | In plain English: | ||
148 | |||
149 | 1. We don't promise that this software works. (But if you find any bugs, | ||
150 | please let us know!) | ||
151 | 2. You can use this software for whatever you want. You don't have to pay us. | ||
152 | 3. You may not pretend that you wrote this software. If you use it in a | ||
153 | program, you must acknowledge somewhere in your documentation that | ||
154 | you've used the IJG code. | ||
155 | |||
156 | In legalese: | ||
157 | |||
158 | The authors make NO WARRANTY or representation, either express or implied, | ||
159 | with respect to this software, its quality, accuracy, merchantability, or | ||
160 | fitness for a particular purpose. This software is provided "AS IS", and you, | ||
161 | its user, assume the entire risk as to its quality and accuracy. | ||
162 | |||
163 | This software is copyright (C) 1991-1996, Thomas G. Lane. | ||
164 | All Rights Reserved except as specified below. | ||
165 | |||
166 | Permission is hereby granted to use, copy, modify, and distribute this | ||
167 | software (or portions thereof) for any purpose, without fee, subject to these | ||
168 | conditions: | ||
169 | (1) If any part of the source code for this software is distributed, then this | ||
170 | README file must be included, with this copyright and no-warranty notice | ||
171 | unaltered; and any additions, deletions, or changes to the original files | ||
172 | must be clearly indicated in accompanying documentation. | ||
173 | (2) If only executable code is distributed, then the accompanying | ||
174 | documentation must state that "this software is based in part on the work of | ||
175 | the Independent JPEG Group". | ||
176 | (3) Permission for use of this software is granted only if the user accepts | ||
177 | full responsibility for any undesirable consequences; the authors accept | ||
178 | NO LIABILITY for damages of any kind. | ||
179 | |||
180 | These conditions apply to any software derived from or based on the IJG code, | ||
181 | not just to the unmodified library. If you use our work, you ought to | ||
182 | acknowledge us. | ||
183 | |||
184 | Permission is NOT granted for the use of any IJG author's name or company name | ||
185 | in advertising or publicity relating to this software or products derived from | ||
186 | it. This software may be referred to only as "the Independent JPEG Group's | ||
187 | software". | ||
188 | |||
189 | We specifically permit and encourage the use of this software as the basis of | ||
190 | commercial products, provided that all warranty or liability claims are | ||
191 | assumed by the product vendor. | ||
192 | |||
193 | |||
194 | ansi2knr.c is included in this distribution by permission of L. Peter Deutsch, | ||
195 | sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA. | ||
196 | ansi2knr.c is NOT covered by the above copyright and conditions, but instead | ||
197 | by the usual distribution terms of the Free Software Foundation; principally, | ||
198 | that you must include source code if you redistribute it. (See the file | ||
199 | ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part | ||
200 | of any program generated from the IJG code, this does not limit you more than | ||
201 | the foregoing paragraphs do. | ||
202 | |||
203 | The configuration script "configure" was produced with GNU Autoconf. It | ||
204 | is copyright by the Free Software Foundation but is freely distributable. | ||
205 | |||
206 | It appears that the arithmetic coding option of the JPEG spec is covered by | ||
207 | patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot | ||
208 | legally be used without obtaining one or more licenses. For this reason, | ||
209 | support for arithmetic coding has been removed from the free JPEG software. | ||
210 | (Since arithmetic coding provides only a marginal gain over the unpatented | ||
211 | Huffman mode, it is unlikely that very many implementations will support it.) | ||
212 | So far as we are aware, there are no patent restrictions on the remaining | ||
213 | code. | ||
214 | |||
215 | WARNING: Unisys has begun to enforce their patent on LZW compression against | ||
216 | GIF encoders and decoders. You will need a license from Unisys to use the | ||
217 | included rdgif.c or wrgif.c files in a commercial or shareware application. | ||
218 | At this time, Unisys is not enforcing their patent against freeware, so | ||
219 | distribution of this package remains legal. However, we intend to remove | ||
220 | GIF support from the IJG package as soon as a suitable replacement format | ||
221 | becomes reasonably popular. | ||
222 | |||
223 | We are required to state that | ||
224 | "The Graphics Interchange Format(c) is the Copyright property of | ||
225 | CompuServe Incorporated. GIF(sm) is a Service Mark property of | ||
226 | CompuServe Incorporated." | ||
227 | |||
228 | |||
229 | REFERENCES | ||
230 | ========== | ||
231 | |||
232 | We highly recommend reading one or more of these references before trying to | ||
233 | understand the innards of the JPEG software. | ||
234 | |||
235 | The best short technical introduction to the JPEG compression algorithm is | ||
236 | Wallace, Gregory K. "The JPEG Still Picture Compression Standard", | ||
237 | Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44. | ||
238 | (Adjacent articles in that issue discuss MPEG motion picture compression, | ||
239 | applications of JPEG, and related topics.) If you don't have the CACM issue | ||
240 | handy, a PostScript file containing a revised version of Wallace's article | ||
241 | is available at ftp.uu.net, graphics/jpeg/wallace.ps.gz. The file (actually | ||
242 | a preprint for an article that appeared in IEEE Trans. Consumer Electronics) | ||
243 | omits the sample images that appeared in CACM, but it includes corrections | ||
244 | and some added material. Note: the Wallace article is copyright ACM and | ||
245 | IEEE, and it may not be used for commercial purposes. | ||
246 | |||
247 | A somewhat less technical, more leisurely introduction to JPEG can be found in | ||
248 | "The Data Compression Book" by Mark Nelson, published by M&T Books (Redwood | ||
249 | City, CA), 1991, ISBN 1-55851-216-0. This book provides good explanations and | ||
250 | example C code for a multitude of compression methods including JPEG. It is | ||
251 | an excellent source if you are comfortable reading C code but don't know much | ||
252 | about data compression in general. The book's JPEG sample code is far from | ||
253 | industrial-strength, but when you are ready to look at a full implementation, | ||
254 | you've got one here... | ||
255 | |||
256 | The best full description of JPEG is the textbook "JPEG Still Image Data | ||
257 | Compression Standard" by William B. Pennebaker and Joan L. Mitchell, published | ||
258 | by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. Price US$59.95, 638 pp. | ||
259 | The book includes the complete text of the ISO JPEG standards (DIS 10918-1 | ||
260 | and draft DIS 10918-2). This is by far the most complete exposition of JPEG | ||
261 | in existence, and we highly recommend it. | ||
262 | |||
263 | The JPEG standard itself is not available electronically; you must order a | ||
264 | paper copy through ISO or ITU. (Unless you feel a need to own a certified | ||
265 | official copy, we recommend buying the Pennebaker and Mitchell book instead; | ||
266 | it's much cheaper and includes a great deal of useful explanatory material.) | ||
267 | In the USA, copies of the standard may be ordered from ANSI Sales at (212) | ||
268 | 642-4900, or from Global Engineering Documents at (800) 854-7179. (ANSI | ||
269 | doesn't take credit card orders, but Global does.) It's not cheap: as of | ||
270 | 1992, ANSI was charging $95 for Part 1 and $47 for Part 2, plus 7% | ||
271 | shipping/handling. The standard is divided into two parts, Part 1 being the | ||
272 | actual specification, while Part 2 covers compliance testing methods. Part 1 | ||
273 | is titled "Digital Compression and Coding of Continuous-tone Still Images, | ||
274 | Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS | ||
275 | 10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of | ||
276 | Continuous-tone Still Images, Part 2: Compliance testing" and has document | ||
277 | numbers ISO/IEC IS 10918-2, ITU-T T.83. | ||
278 | |||
279 | Extensions to the original JPEG standard are defined in JPEG Part 3, a new ISO | ||
280 | document. Part 3 is undergoing ISO balloting and is expected to be approved | ||
281 | by the end of 1995; it will have document numbers ISO/IEC IS 10918-3, ITU-T | ||
282 | T.84. IJG currently does not support any Part 3 extensions. | ||
283 | |||
284 | The JPEG standard does not specify all details of an interchangeable file | ||
285 | format. For the omitted details we follow the "JFIF" conventions, revision | ||
286 | 1.02. A copy of the JFIF spec is available from: | ||
287 | Literature Department | ||
288 | C-Cube Microsystems, Inc. | ||
289 | 1778 McCarthy Blvd. | ||
290 | Milpitas, CA 95035 | ||
291 | phone (408) 944-6300, fax (408) 944-6314 | ||
292 | A PostScript version of this document is available at ftp.uu.net, file | ||
293 | graphics/jpeg/jfif.ps.gz. It can also be obtained by e-mail from the C-Cube | ||
294 | mail server, netlib@c3.pla.ca.us. Send the message "send jfif_ps from jpeg" | ||
295 | to the server to obtain the JFIF document; send the message "help" if you have | ||
296 | trouble. | ||
297 | |||
298 | The TIFF 6.0 file format specification can be obtained by FTP from sgi.com | ||
299 | (192.48.153.1), file graphics/tiff/TIFF6.ps.Z; or you can order a printed | ||
300 | copy from Aldus Corp. at (206) 628-6593. The JPEG incorporation scheme | ||
301 | found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. | ||
302 | IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). | ||
303 | Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 | ||
304 | (Compression tag 7). Copies of this Note can be obtained from sgi.com or | ||
305 | from ftp.uu.net:/graphics/jpeg/. It is expected that the next revision of | ||
306 | the TIFF spec will replace the 6.0 JPEG design with the Note's design. | ||
307 | Although IJG's own code does not support TIFF/JPEG, the free libtiff library | ||
308 | uses our library to implement TIFF/JPEG per the Note. libtiff is available | ||
309 | from sgi.com:/graphics/tiff/. | ||
310 | |||
311 | |||
312 | ARCHIVE LOCATIONS | ||
313 | ================= | ||
314 | |||
315 | The "official" archive site for this software is ftp.uu.net (Internet | ||
316 | address 192.48.96.9). The most recent released version can always be found | ||
317 | there in directory graphics/jpeg. This particular version will be archived | ||
318 | as graphics/jpeg/jpegsrc.v6a.tar.gz. If you are on the Internet, you | ||
319 | can retrieve files from ftp.uu.net by standard anonymous FTP. If you don't | ||
320 | have FTP access, UUNET's archives are also available via UUCP; contact | ||
321 | help@uunet.uu.net for information on retrieving files that way. | ||
322 | |||
323 | Numerous Internet sites maintain copies of the UUNET files. However, only | ||
324 | ftp.uu.net is guaranteed to have the latest official version. | ||
325 | |||
326 | You can also obtain this software in DOS-compatible "zip" archive format from | ||
327 | the SimTel archives (ftp.coast.net:/SimTel/msdos/graphics/), or on CompuServe | ||
328 | in the Graphics Support forum (GO CIS:GRAPHSUP), library 12 "JPEG Tools". | ||
329 | Again, these versions may sometimes lag behind the ftp.uu.net release. | ||
330 | |||
331 | The JPEG FAQ (Frequently Asked Questions) article is a useful source of | ||
332 | general information about JPEG. It is updated constantly and therefore is | ||
333 | not included in this distribution. The FAQ is posted every two weeks to | ||
334 | Usenet newsgroups comp.graphics.misc, news.answers, and other groups. | ||
335 | You can always obtain the latest version from the news.answers archive at | ||
336 | rtfm.mit.edu. By FTP, fetch /pub/usenet/news.answers/jpeg-faq/part1 and | ||
337 | .../part2. If you don't have FTP, send e-mail to mail-server@rtfm.mit.edu | ||
338 | with body | ||
339 | send usenet/news.answers/jpeg-faq/part1 | ||
340 | send usenet/news.answers/jpeg-faq/part2 | ||
341 | |||
342 | |||
343 | RELATED SOFTWARE | ||
344 | ================ | ||
345 | |||
346 | Numerous viewing and image manipulation programs now support JPEG. (Quite a | ||
347 | few of them use this library to do so.) The JPEG FAQ described above lists | ||
348 | some of the more popular free and shareware viewers, and tells where to | ||
349 | obtain them on Internet. | ||
350 | |||
351 | If you are on a Unix machine, we highly recommend Jef Poskanzer's free | ||
352 | PBMPLUS image software, which provides many useful operations on PPM-format | ||
353 | image files. In particular, it can convert PPM images to and from a wide | ||
354 | range of other formats. You can obtain this package by FTP from ftp.x.org | ||
355 | (contrib/pbmplus*.tar.Z) or ftp.ee.lbl.gov (pbmplus*.tar.Z). There is also | ||
356 | a newer update of this package called NETPBM, available from | ||
357 | wuarchive.wustl.edu under directory /graphics/graphics/packages/NetPBM/. | ||
358 | Unfortunately PBMPLUS/NETPBM is not nearly as portable as the IJG software | ||
359 | is; you are likely to have difficulty making it work on any non-Unix machine. | ||
360 | |||
361 | A different free JPEG implementation, written by the PVRG group at Stanford, | ||
362 | is available from havefun.stanford.edu in directory pub/jpeg. This program | ||
363 | is designed for research and experimentation rather than production use; | ||
364 | it is slower, harder to use, and less portable than the IJG code, but it | ||
365 | is easier to read and modify. Also, the PVRG code supports lossless JPEG, | ||
366 | which we do not. | ||
367 | |||
368 | |||
369 | FILE FORMAT WARS | ||
370 | ================ | ||
371 | |||
372 | Some JPEG programs produce files that are not compatible with our library. | ||
373 | The root of the problem is that the ISO JPEG committee failed to specify a | ||
374 | concrete file format. Some vendors "filled in the blanks" on their own, | ||
375 | creating proprietary formats that no one else could read. (For example, none | ||
376 | of the early commercial JPEG implementations for the Macintosh were able to | ||
377 | exchange compressed files.) | ||
378 | |||
379 | The file format we have adopted is called JFIF (see REFERENCES). This format | ||
380 | has been agreed to by a number of major commercial JPEG vendors, and it has | ||
381 | become the de facto standard. JFIF is a minimal or "low end" representation. | ||
382 | We recommend the use of TIFF/JPEG (TIFF revision 6.0 as modified by TIFF | ||
383 | Technical Note #2) for "high end" applications that need to record a lot of | ||
384 | additional data about an image. TIFF/JPEG is fairly new and not yet widely | ||
385 | supported, unfortunately. | ||
386 | |||
387 | The upcoming JPEG Part 3 standard defines a file format called SPIFF. | ||
388 | SPIFF is interoperable with JFIF, in the sense that most JFIF decoders should | ||
389 | be able to read the most common variant of SPIFF. SPIFF has some technical | ||
390 | advantages over JFIF, but its major claim to fame is simply that it is an | ||
391 | official standard rather than an informal one. At this point it is unclear | ||
392 | whether SPIFF will supersede JFIF or whether JFIF will remain the de-facto | ||
393 | standard. IJG intends to support SPIFF once the standard is frozen, but we | ||
394 | have not decided whether it should become our default output format or not. | ||
395 | (In any case, our decoder will remain capable of reading JFIF indefinitely.) | ||
396 | |||
397 | Various proprietary file formats incorporating JPEG compression also exist. | ||
398 | We have little or no sympathy for the existence of these formats. Indeed, | ||
399 | one of the original reasons for developing this free software was to help | ||
400 | force convergence on common, open format standards for JPEG files. Don't | ||
401 | use a proprietary file format! | ||
402 | |||
403 | |||
404 | TO DO | ||
405 | ===== | ||
406 | |||
407 | In future versions, we are considering supporting some of the upcoming JPEG | ||
408 | Part 3 extensions --- principally, variable quantization and the SPIFF file | ||
409 | format. | ||
410 | |||
411 | Tuning the software for better behavior at low quality/high compression | ||
412 | settings is also of interest. The current method for scaling the | ||
413 | quantization tables is known not to be very good at low Q values. | ||
414 | |||
415 | As always, speeding things up is high on our priority list. | ||
416 | |||
417 | Please send bug reports, offers of help, etc. to jpeg-info@uunet.uu.net. | ||
diff --git a/baseline/source/cjpeg_transupp/cjpeg_transupp.c b/baseline/source/cjpeg_transupp/cjpeg_transupp.c new file mode 100644 index 0000000..e77d15b --- /dev/null +++ b/baseline/source/cjpeg_transupp/cjpeg_transupp.c | |||
@@ -0,0 +1,718 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: cjpeg_transupp | ||
7 | |||
8 | Author: Thomas G. Lane | ||
9 | |||
10 | Function: This file contains image transformation routines and other utility | ||
11 | code used by the jpegtran sample application. These are NOT part of the core | ||
12 | JPEG library. But we keep these routines separate from jpegtran.c to ease | ||
13 | the task of maintaining jpegtran-like programs that have other user | ||
14 | interfaces. | ||
15 | |||
16 | Source: MediaBench II | ||
17 | http://euler.slu.edu/~fritts/mediabench (mirror) | ||
18 | |||
19 | Original name: cjpeg | ||
20 | |||
21 | Changes: No major functional changes. | ||
22 | |||
23 | License: See the accompanying README file. | ||
24 | |||
25 | */ | ||
26 | |||
27 | |||
28 | /* | ||
29 | Include section | ||
30 | */ | ||
31 | |||
32 | #include "../extra.h" | ||
33 | #include "jpeglib.h" | ||
34 | |||
35 | |||
36 | /* | ||
37 | Forward declaration of functions | ||
38 | */ | ||
39 | |||
40 | void cjpeg_transupp_initSeed( void ); | ||
41 | signed char cjpeg_transupp_randomInteger( void ); | ||
42 | void cjpeg_transupp_init( void ); | ||
43 | int cjpeg_transupp_return( void ); | ||
44 | void cjpeg_transupp_do_flip_v( j_compress_ptr ); | ||
45 | void cjpeg_transupp_do_rot_90( j_compress_ptr ); | ||
46 | void cjpeg_transupp_do_rot_180( j_compress_ptr ); | ||
47 | void cjpeg_transupp_do_rot_270( j_compress_ptr ); | ||
48 | void cjpeg_transupp_do_transverse( j_compress_ptr ); | ||
49 | void cjpeg_transupp_main( void ); | ||
50 | //int main( void ); | ||
51 | |||
52 | |||
53 | /* | ||
54 | Declaration of global variables | ||
55 | */ | ||
56 | |||
57 | volatile int cjpeg_transupp_seed; | ||
58 | |||
59 | signed char cjpeg_transupp_input[ 256 ]; | ||
60 | signed char cjpeg_transupp_input2[ 80 ]; | ||
61 | signed char cjpeg_transupp_input3[ 65 ]; | ||
62 | signed char cjpeg_transupp_input3_2[ 65 ]; | ||
63 | signed char cjpeg_transupp_input4[ 64 ]; | ||
64 | signed char cjpeg_transupp_input5[ 65 ]; | ||
65 | signed char cjpeg_transupp_input5_2[ 65 ]; | ||
66 | |||
67 | /* Output arrays replace writing of results into a file. */ | ||
68 | signed char cjpeg_transupp_output_data[ 512 ]; | ||
69 | signed char cjpeg_transupp_output_data2[ 512 ]; | ||
70 | signed char cjpeg_transupp_output_data3[ 512 ]; | ||
71 | signed char cjpeg_transupp_output_data4[ 512 ]; | ||
72 | signed char cjpeg_transupp_output_data5[ 512 ]; | ||
73 | |||
74 | struct jpeg_compress_struct cjpeg_transupp_dstinfo; | ||
75 | |||
76 | |||
77 | /* | ||
78 | Initialization- and return-value-related functions | ||
79 | */ | ||
80 | |||
81 | void cjpeg_transupp_initSeed( void ) | ||
82 | { | ||
83 | cjpeg_transupp_seed = 0; | ||
84 | } | ||
85 | |||
86 | |||
87 | /* | ||
88 | cjpeg_transupp_RandomInteger generates random integers between -128 and 127. | ||
89 | */ | ||
90 | signed char cjpeg_transupp_randomInteger( void ) | ||
91 | { | ||
92 | cjpeg_transupp_seed = ( ( ( cjpeg_transupp_seed * 133 ) + 81 ) % 256 ) - 128; | ||
93 | return( cjpeg_transupp_seed ); | ||
94 | } | ||
95 | |||
96 | |||
97 | void cjpeg_transupp_init( void ) | ||
98 | { | ||
99 | register int i; | ||
100 | |||
101 | |||
102 | cjpeg_transupp_dstinfo.max_h_samp_factor = 2; | ||
103 | cjpeg_transupp_dstinfo.max_v_samp_factor = 2; | ||
104 | cjpeg_transupp_dstinfo.num_components = 3; | ||
105 | |||
106 | cjpeg_transupp_initSeed(); | ||
107 | |||
108 | _Pragma( "loopbound min 256 max 256" ) | ||
109 | for ( i = 0; i < 256; i++ ) | ||
110 | cjpeg_transupp_input[ i ] = cjpeg_transupp_randomInteger(); | ||
111 | |||
112 | _Pragma( "loopbound min 80 max 80" ) | ||
113 | for ( i = 0; i < 80; i++ ) | ||
114 | cjpeg_transupp_input2[ i ] = cjpeg_transupp_randomInteger(); | ||
115 | |||
116 | _Pragma( "loopbound min 65 max 65" ) | ||
117 | for ( i = 0; i < 65; i++ ) | ||
118 | cjpeg_transupp_input3[ i ] = cjpeg_transupp_randomInteger(); | ||
119 | |||
120 | _Pragma( "loopbound min 65 max 65" ) | ||
121 | for ( i = 0; i < 65; i++ ) | ||
122 | cjpeg_transupp_input3_2[ i ] = cjpeg_transupp_randomInteger(); | ||
123 | |||
124 | _Pragma( "loopbound min 64 max 64" ) | ||
125 | for ( i = 0; i < 64; i++ ) | ||
126 | cjpeg_transupp_input4[ i ] = cjpeg_transupp_randomInteger(); | ||
127 | |||
128 | _Pragma( "loopbound min 65 max 65" ) | ||
129 | for ( i = 0; i < 65; i++ ) | ||
130 | cjpeg_transupp_input5[ i ] = cjpeg_transupp_randomInteger(); | ||
131 | |||
132 | _Pragma( "loopbound min 65 max 65" ) | ||
133 | for ( i = 0; i < 65; i++ ) | ||
134 | cjpeg_transupp_input5_2[ i ] = cjpeg_transupp_randomInteger(); | ||
135 | } | ||
136 | |||
137 | |||
138 | int cjpeg_transupp_return( void ) | ||
139 | { | ||
140 | int checksum = 0; | ||
141 | unsigned int i; | ||
142 | |||
143 | |||
144 | _Pragma( "loopbound min 512 max 512" ) | ||
145 | for ( i = 0; i < 512; i++ ) | ||
146 | checksum += cjpeg_transupp_output_data[ i ]; | ||
147 | |||
148 | _Pragma( "loopbound min 512 max 512" ) | ||
149 | for ( i = 0; i < 512; i++ ) | ||
150 | checksum += cjpeg_transupp_output_data2[ i ]; | ||
151 | |||
152 | _Pragma( "loopbound min 512 max 512" ) | ||
153 | for ( i = 0; i < 512; i++ ) | ||
154 | checksum += cjpeg_transupp_output_data3[ i ]; | ||
155 | |||
156 | _Pragma( "loopbound min 512 max 512" ) | ||
157 | for ( i = 0; i < 512; i++ ) | ||
158 | checksum += cjpeg_transupp_output_data4[ i ]; | ||
159 | |||
160 | _Pragma( "loopbound min 512 max 512" ) | ||
161 | for ( i = 0; i < 512; i++ ) | ||
162 | checksum += cjpeg_transupp_output_data5[ i ]; | ||
163 | |||
164 | return( checksum ); | ||
165 | } | ||
166 | |||
167 | |||
168 | /* | ||
169 | Algorithm core functions | ||
170 | */ | ||
171 | |||
172 | /* | ||
173 | Vertical flip | ||
174 | */ | ||
175 | void cjpeg_transupp_do_flip_v( j_compress_ptr dstinfo ) | ||
176 | { | ||
177 | unsigned int MCU_rows, comp_height, dst_blk_x, dst_blk_y; | ||
178 | int ci, i, j, offset_y; | ||
179 | JCOEFPTR src_ptr, dst_ptr; | ||
180 | |||
181 | |||
182 | /* | ||
183 | We output into a separate array because we can't touch different rows of the | ||
184 | source virtual array simultaneously. Otherwise, this is a pretty | ||
185 | straightforward analog of horizontal flip. | ||
186 | Within a DCT block, vertical mirroring is done by changing the signs of | ||
187 | odd-numbered rows. | ||
188 | Partial iMCUs at the bottom edge are copied verbatim. | ||
189 | */ | ||
190 | MCU_rows = dstinfo->image_height / ( dstinfo->max_v_samp_factor * DCTSIZE ); | ||
191 | |||
192 | int compptr_v_samp_factor = 8; | ||
193 | unsigned int compptr_height_in_blocks = 19; | ||
194 | unsigned int compptr_width_in_blocks = 29; | ||
195 | |||
196 | _Pragma( "loopbound min 3 max 3" ) | ||
197 | for ( ci = 0; ci < dstinfo->num_components; | ||
198 | ci++, compptr_v_samp_factor = 1, compptr_width_in_blocks = 15 ) { | ||
199 | comp_height = MCU_rows * compptr_v_samp_factor; | ||
200 | |||
201 | compptr_height_in_blocks = 10; | ||
202 | _Pragma( "loopbound min 2 max 10" ) | ||
203 | for ( dst_blk_y = 0; dst_blk_y < compptr_height_in_blocks; | ||
204 | dst_blk_y += compptr_v_samp_factor ) { | ||
205 | |||
206 | _Pragma( "loopbound min 1 max 8" ) | ||
207 | for ( offset_y = 0; offset_y < compptr_v_samp_factor; offset_y++ ) { | ||
208 | if ( dst_blk_y < comp_height ) { | ||
209 | |||
210 | /* Row is within the mirrorable area. */ | ||
211 | _Pragma( "loopbound min 15 max 29" ) | ||
212 | for ( dst_blk_x = 0; dst_blk_x < compptr_width_in_blocks; | ||
213 | dst_blk_x++ ) { | ||
214 | |||
215 | src_ptr = cjpeg_transupp_input; | ||
216 | dst_ptr = cjpeg_transupp_output_data; | ||
217 | |||
218 | _Pragma( "loopbound min 4 max 4" ) | ||
219 | for ( i = 0; i < DCTSIZE; i += 2 ) { | ||
220 | |||
221 | /* copy even row */ | ||
222 | j = 0; | ||
223 | _Pragma( "loopbound min 8 max 8" ) | ||
224 | do { | ||
225 | if ( dst_blk_x < comp_height ) | ||
226 | *dst_ptr++ = *src_ptr++; | ||
227 | j++; | ||
228 | } while ( j < DCTSIZE ); | ||
229 | |||
230 | /* copy odd row with sign change */ | ||
231 | j = 0; | ||
232 | _Pragma( "loopbound min 8 max 8" ) | ||
233 | do { | ||
234 | if ( dst_blk_x < comp_height ) | ||
235 | *dst_ptr++ = - *src_ptr++; | ||
236 | j++; | ||
237 | } while ( j < DCTSIZE ); | ||
238 | } | ||
239 | } | ||
240 | } | ||
241 | } | ||
242 | } | ||
243 | } | ||
244 | } | ||
245 | |||
246 | |||
247 | /* | ||
248 | 90 degree rotation is equivalent to | ||
249 | 1. Transposing the image; | ||
250 | 2. Horizontal mirroring. | ||
251 | These two steps are merged into a single processing routine. | ||
252 | */ | ||
253 | void cjpeg_transupp_do_rot_90( j_compress_ptr dstinfo ) | ||
254 | { | ||
255 | unsigned int MCU_cols, comp_width, dst_blk_x, dst_blk_y; | ||
256 | int ci, i, j, offset_x, offset_y; | ||
257 | JCOEFPTR src_ptr, dst_ptr; | ||
258 | |||
259 | |||
260 | /* | ||
261 | Because of the horizontal mirror step, we can't process partial iMCUs at the | ||
262 | (output) right edge properly. They just get transposed and not mirrored. | ||
263 | */ | ||
264 | MCU_cols = dstinfo->image_width / ( dstinfo->max_h_samp_factor * DCTSIZE ); | ||
265 | |||
266 | int compptr_h_samp_factor = 2; | ||
267 | int compptr_v_samp_factor = 8; | ||
268 | unsigned int compptr_height_in_blocks = 29; | ||
269 | unsigned int compptr_width_in_blocks = 19; | ||
270 | |||
271 | |||
272 | _Pragma( "loopbound min 3 max 3" ) | ||
273 | for ( ci = 0; ci < dstinfo->num_components; | ||
274 | ci++, compptr_h_samp_factor = compptr_v_samp_factor = 1, | ||
275 | compptr_height_in_blocks = 15, compptr_width_in_blocks = 10 ) { | ||
276 | |||
277 | comp_width = MCU_cols * compptr_h_samp_factor; | ||
278 | |||
279 | _Pragma( "loopbound min 4 max 15" ) | ||
280 | for ( dst_blk_y = 0; dst_blk_y < compptr_height_in_blocks; | ||
281 | dst_blk_y += compptr_v_samp_factor ) { | ||
282 | |||
283 | offset_y = 0; | ||
284 | _Pragma( "loopbound min 1 max 8" ) | ||
285 | for ( ; offset_y < compptr_v_samp_factor; offset_y++ ) { | ||
286 | dst_blk_x = 0; | ||
287 | _Pragma( "loopbound min 10 max 10" ) | ||
288 | for ( ; dst_blk_x < compptr_width_in_blocks; | ||
289 | dst_blk_x += compptr_h_samp_factor ) { | ||
290 | |||
291 | offset_x = 0; | ||
292 | _Pragma( "loopbound min 1 max 2" ) | ||
293 | for ( ; offset_x < compptr_h_samp_factor; offset_x++ ) { | ||
294 | |||
295 | src_ptr = cjpeg_transupp_input2; | ||
296 | |||
297 | if ( dst_blk_x < comp_width ) { | ||
298 | |||
299 | /* Block is within the mirrorable area. */ | ||
300 | dst_ptr = cjpeg_transupp_output_data2; | ||
301 | |||
302 | _Pragma( "loopbound min 4 max 4" ) | ||
303 | for ( i = 0; i < DCTSIZE; i++ ) { | ||
304 | j = 0; | ||
305 | _Pragma( "loopbound min 8 max 8" ) | ||
306 | for ( ; j < DCTSIZE; j++ ) | ||
307 | dst_ptr[ j * DCTSIZE + i ] = src_ptr[ i * DCTSIZE + j ]; | ||
308 | |||
309 | i++; | ||
310 | |||
311 | _Pragma( "loopbound min 8 max 8" ) | ||
312 | for ( j = 0; j < DCTSIZE; j++ ) | ||
313 | dst_ptr[ j * DCTSIZE + i ] = -src_ptr[ i * DCTSIZE + j ]; | ||
314 | } | ||
315 | } else { | ||
316 | /* Edge blocks are transposed but not mirrored. */ | ||
317 | dst_ptr = cjpeg_transupp_output_data2; | ||
318 | |||
319 | _Pragma( "loopbound min 8 max 8" ) | ||
320 | for ( i = 0; i < DCTSIZE; i++ ) | ||
321 | j = 0; | ||
322 | _Pragma( "loopbound min 8 max 8" ) | ||
323 | for ( ; j < DCTSIZE; j++ ) { | ||
324 | if ( dst_blk_y < comp_width ) | ||
325 | dst_ptr[ j * DCTSIZE + i ] = src_ptr[ i * DCTSIZE + j ]; | ||
326 | } | ||
327 | } | ||
328 | } | ||
329 | } | ||
330 | } | ||
331 | } | ||
332 | } | ||
333 | } | ||
334 | |||
335 | |||
336 | /* | ||
337 | 270 degree rotation is equivalent to | ||
338 | 1. Horizontal mirroring; | ||
339 | 2. Transposing the image. | ||
340 | These two steps are merged into a single processing routine. | ||
341 | */ | ||
342 | void cjpeg_transupp_do_rot_270( j_compress_ptr dstinfo ) | ||
343 | { | ||
344 | unsigned int MCU_rows, comp_height, dst_blk_x, dst_blk_y; | ||
345 | int ci, i, j, offset_x, offset_y; | ||
346 | JCOEFPTR src_ptr, dst_ptr; | ||
347 | |||
348 | |||
349 | /* | ||
350 | Because of the horizontal mirror step, we can't process partial iMCUs at the | ||
351 | (output) bottom edge properly. They just get transposed and not mirrored. | ||
352 | */ | ||
353 | MCU_rows = dstinfo->image_height / ( dstinfo->max_v_samp_factor * DCTSIZE ); | ||
354 | |||
355 | int compptr_h_samp_factor = 2; | ||
356 | int compptr_v_samp_factor = 8; | ||
357 | unsigned int compptr_height_in_blocks = 29; | ||
358 | unsigned int compptr_width_in_blocks = 19; | ||
359 | |||
360 | _Pragma( "loopbound min 3 max 3" ) | ||
361 | for ( ci = 0; ci < dstinfo->num_components; | ||
362 | ci++, compptr_h_samp_factor = compptr_v_samp_factor = 1, | ||
363 | compptr_height_in_blocks = 15, compptr_width_in_blocks = 10 ) { | ||
364 | |||
365 | comp_height = MCU_rows * compptr_v_samp_factor; | ||
366 | |||
367 | _Pragma( "loopbound min 4 max 15" ) | ||
368 | for ( dst_blk_y = 0; dst_blk_y < compptr_height_in_blocks; | ||
369 | dst_blk_y += compptr_v_samp_factor ) { | ||
370 | |||
371 | offset_y = 0; | ||
372 | _Pragma( "loopbound min 1 max 8" ) | ||
373 | for ( ; offset_y < compptr_v_samp_factor; offset_y++ ) { | ||
374 | dst_blk_x = 0; | ||
375 | _Pragma( "loopbound min 10 max 10" ) | ||
376 | for ( ; dst_blk_x < compptr_width_in_blocks; | ||
377 | dst_blk_x += compptr_h_samp_factor ) { | ||
378 | |||
379 | offset_x = 0; | ||
380 | _Pragma( "loopbound min 1 max 2" ) | ||
381 | for ( ; offset_x < compptr_h_samp_factor; offset_x++ ) { | ||
382 | |||
383 | dst_ptr = cjpeg_transupp_output_data3; | ||
384 | |||
385 | if ( dst_blk_y < comp_height ) { | ||
386 | |||
387 | /* Block is within the mirrorable area. */ | ||
388 | src_ptr = cjpeg_transupp_input3; | ||
389 | |||
390 | _Pragma( "loopbound min 8 max 8" ) | ||
391 | for ( i = 0; i < DCTSIZE; i++ ) { | ||
392 | j = 0; | ||
393 | _Pragma( "loopbound min 4 max 4" ) | ||
394 | for ( ; j < DCTSIZE; j++ ) { | ||
395 | dst_ptr[ j * DCTSIZE + i ] = src_ptr[ i * DCTSIZE + j ]; | ||
396 | j++; | ||
397 | dst_ptr[ j * DCTSIZE + i ] = -src_ptr[ i * DCTSIZE + j ]; | ||
398 | } | ||
399 | } | ||
400 | } else { | ||
401 | |||
402 | /* Edge blocks are transposed but not mirrored. */ | ||
403 | src_ptr = cjpeg_transupp_input3_2; | ||
404 | |||
405 | _Pragma( "loopbound min 8 max 8" ) | ||
406 | for ( i = 0; i < DCTSIZE; i++ ) | ||
407 | j = 0; | ||
408 | _Pragma( "loopbound min 8 max 8" ) | ||
409 | for ( ; j < DCTSIZE; j++ ) { | ||
410 | if ( dst_blk_y < comp_height ) | ||
411 | dst_ptr[ j * DCTSIZE + i ] = src_ptr[ i * DCTSIZE + j ]; | ||
412 | } | ||
413 | } | ||
414 | } | ||
415 | } | ||
416 | } | ||
417 | } | ||
418 | } | ||
419 | } | ||
420 | |||
421 | |||
422 | /* | ||
423 | 180 degree rotation is equivalent to | ||
424 | 1. Vertical mirroring; | ||
425 | 2. Horizontal mirroring. | ||
426 | These two steps are merged into a single processing routine. | ||
427 | */ | ||
428 | void cjpeg_transupp_do_rot_180( j_compress_ptr dstinfo ) | ||
429 | { | ||
430 | unsigned int MCU_cols, MCU_rows, comp_width, comp_height, dst_blk_x, | ||
431 | dst_blk_y; | ||
432 | int ci, i, j, offset_y; | ||
433 | JCOEFPTR src_ptr, dst_ptr; | ||
434 | |||
435 | int compptr_h_samp_factor = 2; | ||
436 | int compptr_v_samp_factor = 8; | ||
437 | unsigned int compptr_width_in_blocks = 29; | ||
438 | unsigned int compptr_height_in_blocks = 19; | ||
439 | |||
440 | |||
441 | MCU_cols = dstinfo->image_width / ( dstinfo->max_h_samp_factor * DCTSIZE ); | ||
442 | MCU_rows = dstinfo->image_height / ( dstinfo->max_v_samp_factor * DCTSIZE ); | ||
443 | |||
444 | _Pragma( "loopbound min 3 max 3" ) | ||
445 | for ( ci = 0; ci < dstinfo->num_components; ci++, | ||
446 | compptr_h_samp_factor = compptr_v_samp_factor = 1, | ||
447 | compptr_width_in_blocks = 15, compptr_height_in_blocks = 10 ) { | ||
448 | |||
449 | comp_width = MCU_cols * compptr_h_samp_factor; | ||
450 | comp_height = MCU_rows * compptr_v_samp_factor; | ||
451 | |||
452 | _Pragma( "loopbound min 3 max 10" ) | ||
453 | for ( dst_blk_y = 0; dst_blk_y < compptr_height_in_blocks; | ||
454 | dst_blk_y += compptr_v_samp_factor ) { | ||
455 | offset_y = 0; | ||
456 | _Pragma( "loopbound min 1 max 8" ) | ||
457 | for ( ; offset_y < compptr_v_samp_factor; offset_y++ ) { | ||
458 | if ( dst_blk_y < comp_height ) { | ||
459 | |||
460 | /* Row is within the mirrorable area. */ | ||
461 | |||
462 | /* Process the blocks that can be mirrored both ways. */ | ||
463 | _Pragma( "loopbound min 14 max 28" ) | ||
464 | for ( dst_blk_x = 0; dst_blk_x < comp_width; dst_blk_x++ ) { | ||
465 | dst_ptr = cjpeg_transupp_output_data4; | ||
466 | src_ptr = cjpeg_transupp_input4; | ||
467 | |||
468 | _Pragma( "loopbound min 4 max 4" ) | ||
469 | for ( i = 0; i < DCTSIZE; i += 2 ) { | ||
470 | j = 0; | ||
471 | /* For even row, negate every odd column. */ | ||
472 | _Pragma( "loopbound min 4 max 4" ) | ||
473 | for ( ; j < DCTSIZE; j += 2 ) { | ||
474 | if ( dst_blk_x < comp_height ) { | ||
475 | *dst_ptr++ = *src_ptr++; | ||
476 | *dst_ptr++ = - *src_ptr++; | ||
477 | } | ||
478 | } | ||
479 | |||
480 | j = 0; | ||
481 | /* For odd row, negate every even column. */ | ||
482 | _Pragma( "loopbound min 4 max 4" ) | ||
483 | for ( ; j < DCTSIZE; j += 2 ) { | ||
484 | if ( dst_blk_x < comp_height ) { | ||
485 | *dst_ptr++ = - *src_ptr++; | ||
486 | *dst_ptr++ = *src_ptr++; | ||
487 | } | ||
488 | } | ||
489 | } | ||
490 | } | ||
491 | |||
492 | /* Any remaining right-edge blocks are only mirrored vertically. */ | ||
493 | _Pragma( "loopbound min 1 max 1" ) | ||
494 | for ( ; dst_blk_x < compptr_width_in_blocks; dst_blk_x++ ) { | ||
495 | |||
496 | dst_ptr = cjpeg_transupp_output_data4; | ||
497 | src_ptr = cjpeg_transupp_input4; | ||
498 | _Pragma( "loopbound min 4 max 4" ) | ||
499 | for ( i = 0; i < DCTSIZE; i += 2 ) { | ||
500 | j = 0; | ||
501 | _Pragma( "loopbound min 8 max 8" ) | ||
502 | for ( ; j < DCTSIZE; j++ ) | ||
503 | *dst_ptr++ = *src_ptr++; | ||
504 | j = 0; | ||
505 | _Pragma( "loopbound min 8 max 8" ) | ||
506 | for ( ; j < DCTSIZE; j++ ) | ||
507 | *dst_ptr++ = - *src_ptr++; | ||
508 | } | ||
509 | } | ||
510 | } else { | ||
511 | |||
512 | /* Remaining rows are just mirrored horizontally. */ | ||
513 | dst_blk_x = 0; | ||
514 | /* Process the blocks that can be mirrored. */ | ||
515 | _Pragma( "loopbound min 14 max 28" ) | ||
516 | do { | ||
517 | dst_ptr = cjpeg_transupp_output_data4; | ||
518 | src_ptr = cjpeg_transupp_input4; | ||
519 | |||
520 | i = 0; | ||
521 | _Pragma( "loopbound min 32 max 32" ) | ||
522 | while ( i < DCTSIZE2 ) { | ||
523 | *dst_ptr++ = *src_ptr++; | ||
524 | *dst_ptr++ = - *src_ptr++; | ||
525 | i += 2; | ||
526 | dst_ptr += 0; | ||
527 | } | ||
528 | dst_blk_x++; | ||
529 | dst_ptr += 0; | ||
530 | } while ( dst_blk_x < comp_width ); | ||
531 | |||
532 | /* Any remaining right-edge blocks are only copied. */ | ||
533 | _Pragma( "loopbound min 1 max 1" ) | ||
534 | for ( ; dst_blk_x < compptr_width_in_blocks; dst_blk_x++ ) { | ||
535 | |||
536 | dst_ptr = cjpeg_transupp_output_data4; | ||
537 | src_ptr = cjpeg_transupp_input4; | ||
538 | _Pragma( "loopbound min 64 max 64" ) | ||
539 | do { | ||
540 | *dst_ptr++ = *src_ptr++; | ||
541 | i++; | ||
542 | } while ( i < DCTSIZE2 ); | ||
543 | } | ||
544 | } | ||
545 | } | ||
546 | } | ||
547 | } | ||
548 | } | ||
549 | |||
550 | |||
551 | /* | ||
552 | Transverse transpose is equivalent to | ||
553 | 1. 180 degree rotation; | ||
554 | 2. Transposition; | ||
555 | or | ||
556 | 1. Horizontal mirroring; | ||
557 | 2. Transposition; | ||
558 | 3. Horizontal mirroring. | ||
559 | These steps are merged into a single processing routine. | ||
560 | */ | ||
561 | void cjpeg_transupp_do_transverse( j_compress_ptr dstinfo ) | ||
562 | { | ||
563 | unsigned int MCU_cols, MCU_rows, comp_width, comp_height, dst_blk_x, | ||
564 | dst_blk_y; | ||
565 | int ci, i, j, offset_x, offset_y; | ||
566 | JCOEFPTR src_ptr, dst_ptr; | ||
567 | |||
568 | int compptr_h_samp_factor = 2; | ||
569 | int compptr_v_samp_factor = 8; | ||
570 | unsigned int compptr_height_in_blocks = 29; | ||
571 | unsigned int compptr_width_in_blocks = 19; | ||
572 | |||
573 | |||
574 | MCU_cols = dstinfo->image_width / ( dstinfo->max_h_samp_factor * DCTSIZE ); | ||
575 | MCU_rows = dstinfo->image_height / ( dstinfo->max_v_samp_factor * DCTSIZE ); | ||
576 | |||
577 | _Pragma( "loopbound min 3 max 3" ) | ||
578 | for ( ci = 0; ci < dstinfo->num_components; ci++, | ||
579 | compptr_h_samp_factor = compptr_v_samp_factor = 1, | ||
580 | compptr_height_in_blocks = 15, compptr_width_in_blocks = 10 ) { | ||
581 | |||
582 | comp_width = MCU_cols * compptr_h_samp_factor; | ||
583 | comp_height = MCU_rows * compptr_v_samp_factor; | ||
584 | |||
585 | _Pragma( "loopbound min 4 max 15" ) | ||
586 | for ( dst_blk_y = 0; dst_blk_y < compptr_height_in_blocks; | ||
587 | dst_blk_y += compptr_v_samp_factor ) { | ||
588 | offset_y = 0; | ||
589 | _Pragma( "loopbound min 1 max 8" ) | ||
590 | do { | ||
591 | dst_blk_x = 0; | ||
592 | _Pragma( "loopbound min 10 max 10" ) | ||
593 | do { | ||
594 | offset_x = 0; | ||
595 | _Pragma( "loopbound min 1 max 2" ) | ||
596 | for ( ; offset_x < compptr_h_samp_factor; offset_x++ ) { | ||
597 | |||
598 | if ( dst_blk_y < comp_height ) { | ||
599 | src_ptr = cjpeg_transupp_input5; | ||
600 | |||
601 | if ( dst_blk_x < comp_width ) { | ||
602 | /* Block is within the mirrorable area. */ | ||
603 | dst_ptr = cjpeg_transupp_output_data5; | ||
604 | |||
605 | _Pragma( "loopbound min 4 max 4" ) | ||
606 | for ( i = 0; i < DCTSIZE; i++ ) { | ||
607 | j = 0; | ||
608 | _Pragma( "loopbound min 4 max 4" ) | ||
609 | for ( ; j < DCTSIZE; j++ ) { | ||
610 | if ( dst_blk_y < comp_width ) | ||
611 | dst_ptr[ j * DCTSIZE + i ] = src_ptr[ i * DCTSIZE + j ]; | ||
612 | j++; | ||
613 | dst_ptr[ j * DCTSIZE + i ] = -src_ptr[ i * DCTSIZE + j ]; | ||
614 | } | ||
615 | i++; | ||
616 | _Pragma( "loopbound min 4 max 4" ) | ||
617 | for ( j = 0; j < DCTSIZE; j++ ) { | ||
618 | if ( dst_blk_y < comp_width ) | ||
619 | dst_ptr[ j * DCTSIZE + i ] = -src_ptr[ i * DCTSIZE + j ]; | ||
620 | j++; | ||
621 | dst_ptr[ j * DCTSIZE + i ] = src_ptr[ i * DCTSIZE + j ]; | ||
622 | } | ||
623 | } | ||
624 | } else { | ||
625 | /* Right-edge blocks are mirrored in y only */ | ||
626 | dst_ptr = cjpeg_transupp_output_data5; | ||
627 | _Pragma( "loopbound min 8 max 8" ) | ||
628 | for ( i = 0; i < DCTSIZE; i++ ) { | ||
629 | j = 0; | ||
630 | _Pragma( "loopbound min 4 max 4" ) | ||
631 | for ( ; j < DCTSIZE; j++ ) { | ||
632 | if ( dst_blk_y < comp_width ) | ||
633 | dst_ptr[ j * DCTSIZE + i ] = src_ptr[ i * DCTSIZE + j ]; | ||
634 | j++; | ||
635 | dst_ptr[ j * DCTSIZE + i ] = -src_ptr[ i * DCTSIZE + j ]; | ||
636 | } | ||
637 | } | ||
638 | } | ||
639 | } else { | ||
640 | src_ptr = cjpeg_transupp_input5_2; | ||
641 | |||
642 | if ( dst_blk_x < comp_width ) { | ||
643 | /* Bottom-edge blocks are mirrored in x only */ | ||
644 | dst_ptr = cjpeg_transupp_output_data5; | ||
645 | |||
646 | _Pragma( "loopbound min 4 max 4" ) | ||
647 | for ( i = 0; i < DCTSIZE; i++ ) { | ||
648 | j = 0; | ||
649 | _Pragma( "loopbound min 8 max 8" ) | ||
650 | for ( ; j < DCTSIZE; j++ ) | ||
651 | dst_ptr[ j * DCTSIZE + i ] = src_ptr[ i * DCTSIZE + j ]; | ||
652 | i++; | ||
653 | _Pragma( "loopbound min 8 max 8" ) | ||
654 | for ( j = 0; j < DCTSIZE; j++ ) | ||
655 | dst_ptr[ j * DCTSIZE + i ] = -src_ptr[ i * DCTSIZE + j ]; | ||
656 | } | ||
657 | } else { | ||
658 | /* At lower right corner, just transpose, no mirroring */ | ||
659 | dst_ptr = cjpeg_transupp_output_data5; | ||
660 | _Pragma( "loopbound min 8 max 8" ) | ||
661 | for ( i = 0; i < DCTSIZE; i++ ) | ||
662 | j = 0; | ||
663 | _Pragma( "loopbound min 8 max 8" ) | ||
664 | for ( ; j < DCTSIZE; j++ ) | ||
665 | dst_ptr[ j * DCTSIZE + i ] = src_ptr[ i * DCTSIZE + j ]; | ||
666 | } | ||
667 | } | ||
668 | dst_blk_x += compptr_h_samp_factor; | ||
669 | } | ||
670 | } while ( dst_blk_x < compptr_width_in_blocks ); | ||
671 | offset_y++; | ||
672 | } while ( offset_y < compptr_v_samp_factor ); | ||
673 | } | ||
674 | } | ||
675 | } | ||
676 | |||
677 | |||
678 | /* | ||
679 | Main functions | ||
680 | */ | ||
681 | |||
682 | void _Pragma ( "entrypoint" ) cjpeg_transupp_main( void ) | ||
683 | { | ||
684 | cjpeg_transupp_dstinfo.image_width = 227; | ||
685 | cjpeg_transupp_dstinfo.image_height = 149; | ||
686 | |||
687 | cjpeg_transupp_do_flip_v( &cjpeg_transupp_dstinfo ); | ||
688 | |||
689 | cjpeg_transupp_dstinfo.image_width = 149; | ||
690 | cjpeg_transupp_dstinfo.image_height = 227; | ||
691 | |||
692 | cjpeg_transupp_do_rot_90( &cjpeg_transupp_dstinfo ); | ||
693 | cjpeg_transupp_do_rot_270( &cjpeg_transupp_dstinfo ); | ||
694 | |||
695 | cjpeg_transupp_dstinfo.image_width = 227; | ||
696 | cjpeg_transupp_dstinfo.image_height = 149; | ||
697 | |||
698 | cjpeg_transupp_do_rot_180( &cjpeg_transupp_dstinfo ); | ||
699 | |||
700 | cjpeg_transupp_dstinfo.image_width = 149; | ||
701 | cjpeg_transupp_dstinfo.image_height = 227; | ||
702 | |||
703 | cjpeg_transupp_do_transverse( &cjpeg_transupp_dstinfo ); | ||
704 | } | ||
705 | |||
706 | |||
707 | int main(int argc, char **argv) | ||
708 | { | ||
709 | SET_UP | ||
710 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
711 | START_LOOP | ||
712 | cjpeg_transupp_init(); | ||
713 | cjpeg_transupp_main(); | ||
714 | STOP_LOOP | ||
715 | } | ||
716 | WRITE_TO_FILE | ||
717 | return ( cjpeg_transupp_return() - 660 != 0 ); | ||
718 | } | ||
diff --git a/baseline/source/cjpeg_transupp/jpeglib.h b/baseline/source/cjpeg_transupp/jpeglib.h new file mode 100644 index 0000000..bb4c940 --- /dev/null +++ b/baseline/source/cjpeg_transupp/jpeglib.h | |||
@@ -0,0 +1,757 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: jpeglib | ||
7 | |||
8 | Author: Thomas G. Lane | ||
9 | |||
10 | Function: This file defines the application interface for the JPEG library. | ||
11 | Most applications using the library need only include this file, and perhaps | ||
12 | jerror.h if they want to know the exact error codes. | ||
13 | |||
14 | Source: MediaBench II | ||
15 | http://euler.slu.edu/~fritts/mediabench (mirror) | ||
16 | |||
17 | Original name: cjpeg | ||
18 | |||
19 | Changes: No major functional changes. | ||
20 | |||
21 | License: See the accompanying README file. | ||
22 | |||
23 | */ | ||
24 | |||
25 | |||
26 | #ifndef JPEGLIB_H | ||
27 | #define JPEGLIB_H | ||
28 | |||
29 | /* | ||
30 | Various constants determining the sizes of things. | ||
31 | All of these are specified by the JPEG standard, so don't change them if you | ||
32 | want to be compatible. | ||
33 | */ | ||
34 | |||
35 | /* The basic DCT block is 8x8 samples */ | ||
36 | #define DCTSIZE 8 | ||
37 | |||
38 | /* DCTSIZE squared; # of elements in a block */ | ||
39 | #define DCTSIZE2 64 | ||
40 | |||
41 | |||
42 | /* | ||
43 | Data structures for images (arrays of samples and of DCT coefficients). | ||
44 | On 80x86 machines, the image arrays are too big for near pointers, but the | ||
45 | pointer arrays can fit in near memory. | ||
46 | */ | ||
47 | |||
48 | /* ptr to one image row of pixel samples. */ | ||
49 | typedef unsigned char *JSAMPROW; | ||
50 | |||
51 | /* ptr to some rows (a 2-D sample array) */ | ||
52 | typedef JSAMPROW *JSAMPARRAY; | ||
53 | |||
54 | /* one block of coefficients */ | ||
55 | typedef signed char JBLOCK[DCTSIZE2]; | ||
56 | |||
57 | /* pointer to one row of coefficient blocks */ | ||
58 | typedef JBLOCK *JBLOCKROW; | ||
59 | |||
60 | /* a 2-D array of coefficient blocks */ | ||
61 | typedef JBLOCKROW *JBLOCKARRAY; | ||
62 | |||
63 | /* useful in a couple of places */ | ||
64 | typedef signed char *JCOEFPTR; | ||
65 | |||
66 | |||
67 | /* | ||
68 | DCT coefficient quantization tables. | ||
69 | */ | ||
70 | |||
71 | typedef struct { | ||
72 | /* quantization step for each coefficient */ | ||
73 | /* | ||
74 | This array gives the coefficient quantizers in natural array order (not the | ||
75 | zigzag order in which they are stored in a JPEG DQT marker). | ||
76 | CAUTION: IJG versions prior to v6a kept this array in zigzag order. | ||
77 | */ | ||
78 | unsigned short quantval[ DCTSIZE2 ]; | ||
79 | |||
80 | /* 1 when table has been output */ | ||
81 | /* | ||
82 | This field is used only during compression. It's initialized 0 when the | ||
83 | table is created, and set 1 when it's been output to the file. You could | ||
84 | suppress output of a table by setting this to 1. (See jpeg_suppress_tables | ||
85 | for an example.) | ||
86 | */ | ||
87 | int sent_table; | ||
88 | } JQUANT_TBL; | ||
89 | |||
90 | |||
91 | /* | ||
92 | Huffman coding tables. | ||
93 | */ | ||
94 | |||
95 | typedef struct { | ||
96 | /* These two fields directly represent the contents of a JPEG DHT marker */ | ||
97 | |||
98 | /* bits[k] = # of symbols with codes of */ | ||
99 | /* length k bits; bits[0] is unused */ | ||
100 | unsigned char bits[ 17 ]; | ||
101 | |||
102 | /* The symbols, in order of incr code length */ | ||
103 | /* | ||
104 | This field is used only during compression. It's initialized 0 when the | ||
105 | table is created, and set 1 when it's been output to the file. You could | ||
106 | suppress output of a table by setting this to 1. (See jpeg_suppress_tables | ||
107 | for an example.) | ||
108 | */ | ||
109 | unsigned char huffval[ 256 ]; | ||
110 | |||
111 | /* 1 when table has been output */ | ||
112 | int sent_table; | ||
113 | } JHUFF_TBL; | ||
114 | |||
115 | |||
116 | /* | ||
117 | Basic info about one component (color channel). | ||
118 | */ | ||
119 | |||
120 | typedef struct { | ||
121 | /* | ||
122 | These values are fixed over the whole image. For compression, they must be | ||
123 | supplied by parameter setup; for decompression, they are read from the SOF | ||
124 | marker. | ||
125 | */ | ||
126 | |||
127 | /* identifier for this component (0..255) */ | ||
128 | int component_id; | ||
129 | |||
130 | /* its index in SOF or cinfo->comp_info[] */ | ||
131 | int component_index; | ||
132 | |||
133 | /* horizontal sampling factor (1..4) */ | ||
134 | int h_samp_factor; | ||
135 | |||
136 | /* vertical sampling factor (1..4) */ | ||
137 | int v_samp_factor; | ||
138 | |||
139 | /* quantization table selector (0..3) */ | ||
140 | int quant_tbl_no; | ||
141 | |||
142 | /* | ||
143 | These values may vary between scans. For compression, they must be supplied | ||
144 | by parameter setup; for decompression, they are read from the SOS marker. | ||
145 | The decompressor output side may not use these variables. | ||
146 | */ | ||
147 | |||
148 | /* DC entropy table selector (0..3) */ | ||
149 | int dc_tbl_no; | ||
150 | |||
151 | /* AC entropy table selector (0..3) */ | ||
152 | int ac_tbl_no; | ||
153 | |||
154 | /* Remaining fields should be treated as private by applications. */ | ||
155 | |||
156 | /* | ||
157 | These values are computed during compression or decompression startup: | ||
158 | Component's size in DCT blocks. Any dummy blocks added to complete an MCU | ||
159 | are not counted; therefore these values do not depend on whether a scan is | ||
160 | interleaved or not. | ||
161 | */ | ||
162 | unsigned int width_in_blocks; | ||
163 | unsigned int height_in_blocks; | ||
164 | |||
165 | /* | ||
166 | Size of a DCT block in samples. Always DCTSIZE for compression. For | ||
167 | decompression this is the size of the output from one DCT block, reflecting | ||
168 | any scaling we choose to apply during the IDCT step. Values of 1,2,4,8 are | ||
169 | likely to be supported. Note that different components may receive different | ||
170 | IDCT scalings. | ||
171 | */ | ||
172 | int DCT_scaled_size; | ||
173 | |||
174 | /* | ||
175 | The downsampled dimensions are the component's actual, unpadded number of | ||
176 | samples at the main buffer (preprocessing/compression interface), thus | ||
177 | downsampled_width = ceil(image_width * Hi/Hmax) and similarly for height. | ||
178 | For decompression, IDCT scaling is included, so | ||
179 | downsampled_width = ceil(image_width * Hi/Hmax * DCT_scaled_size/DCTSIZE) | ||
180 | */ | ||
181 | |||
182 | /* actual width in samples */ | ||
183 | unsigned int downsampled_width; | ||
184 | |||
185 | /* actual height in samples */ | ||
186 | unsigned int downsampled_height; | ||
187 | |||
188 | /* | ||
189 | This flag is used only for decompression. In cases where some of the | ||
190 | components will be ignored (eg grayscale output from YCbCr image), we can | ||
191 | skip most computations for the unused components. | ||
192 | */ | ||
193 | |||
194 | /* do we need the value of this component? */ | ||
195 | int component_needed; | ||
196 | |||
197 | /* | ||
198 | These values are computed before starting a scan of the component. The | ||
199 | decompressor output side may not use these variables. | ||
200 | */ | ||
201 | |||
202 | /* number of blocks per MCU, horizontally */ | ||
203 | int MCU_width; | ||
204 | |||
205 | /* number of blocks per MCU, vertically */ | ||
206 | int MCU_height; | ||
207 | |||
208 | /* MCU_width * MCU_height */ | ||
209 | int MCU_blocks; | ||
210 | |||
211 | /* MCU width in samples, MCU_width*DCT_scaled_size */ | ||
212 | int MCU_sample_width; | ||
213 | |||
214 | /* # of non-dummy blocks across in last MCU */ | ||
215 | int last_col_width; | ||
216 | |||
217 | /* # of non-dummy blocks down in last MCU */ | ||
218 | int last_row_height; | ||
219 | |||
220 | /* | ||
221 | Saved quantization table for component; (void*)0 if none yet saved. See | ||
222 | jdinput.c comments about the need for this information. This field is | ||
223 | currently used only for decompression. | ||
224 | */ | ||
225 | JQUANT_TBL *quant_table; | ||
226 | |||
227 | /* Private per-component storage for DCT or IDCT subsystem. */ | ||
228 | void *dct_table; | ||
229 | } jpeg_component_info; | ||
230 | |||
231 | |||
232 | /* | ||
233 | The script for encoding a multiple-scan file is an array of these: | ||
234 | */ | ||
235 | |||
236 | typedef struct { | ||
237 | /* number of components encoded in this scan */ | ||
238 | int comps_in_scan; | ||
239 | |||
240 | /* their SOF/comp_info[] indexes */ | ||
241 | int component_index[ 4 ]; | ||
242 | |||
243 | /* progressive JPEG spectral selection parms */ | ||
244 | int Ss, Se; | ||
245 | |||
246 | /* progressive JPEG successive approx. parms */ | ||
247 | int Ah, Al; | ||
248 | } jpeg_scan_info; | ||
249 | |||
250 | |||
251 | /* | ||
252 | Known color spaces. | ||
253 | */ | ||
254 | |||
255 | typedef enum { | ||
256 | /* error/unspecified */ | ||
257 | JCS_UNKNOWN, | ||
258 | |||
259 | /* monochrome */ | ||
260 | JCS_GRAYSCALE, | ||
261 | |||
262 | /* red/green/blue */ | ||
263 | JCS_RGB, | ||
264 | |||
265 | /* Y/Cb/Cr (also known as YUV) */ | ||
266 | JCS_YCbCr, | ||
267 | |||
268 | /* C/M/Y/K */ | ||
269 | JCS_CMYK, | ||
270 | |||
271 | /* Y/Cb/Cr/K */ | ||
272 | JCS_YCCK | ||
273 | } J_COLOR_SPACE; | ||
274 | |||
275 | |||
276 | /* | ||
277 | DCT/IDCT algorithm options. | ||
278 | */ | ||
279 | |||
280 | typedef enum { | ||
281 | /* slow but accurate integer algorithm */ | ||
282 | JDCT_ISLOW, | ||
283 | |||
284 | /* faster, less accurate integer method */ | ||
285 | JDCT_IFAST, | ||
286 | |||
287 | /* floating-point: accurate, fast on fast HW */ | ||
288 | JDCT_FLOAT | ||
289 | } J_DCT_METHOD; | ||
290 | |||
291 | |||
292 | /* | ||
293 | Common fields between JPEG compression and decompression master structs. | ||
294 | */ | ||
295 | |||
296 | #define jpeg_common_fields \ | ||
297 | /* Error handler module */\ | ||
298 | struct jpeg_error_mgr *err; \ | ||
299 | /* Memory manager module */\ | ||
300 | struct jpeg_memory_mgr *mem; \ | ||
301 | /* Progress monitor, or (void*)0 if none */\ | ||
302 | struct jpeg_progress_mgr *progress; \ | ||
303 | /* Available for use by application */\ | ||
304 | void *client_data; \ | ||
305 | /* So common code can tell which is which */\ | ||
306 | int is_decompressor; \ | ||
307 | /* For checking call sequence validity */\ | ||
308 | int global_state | ||
309 | |||
310 | |||
311 | /* | ||
312 | Routines that are to be used by both halves of the library are declared to | ||
313 | receive a pointer to this structure. There are no actual instances of | ||
314 | jpeg_common_struct, only of jpeg_compress_struct and jpeg_decompress_struct. | ||
315 | */ | ||
316 | |||
317 | struct jpeg_common_struct { | ||
318 | /* Fields common to both master struct types */ | ||
319 | jpeg_common_fields; | ||
320 | |||
321 | /* | ||
322 | Additional fields follow in an actual jpeg_compress_struct or | ||
323 | jpeg_decompress_struct. All three structs must agree on these initial | ||
324 | fields! (This would be a lot cleaner in C++.) | ||
325 | */ | ||
326 | }; | ||
327 | |||
328 | typedef struct jpeg_common_struct *j_common_ptr; | ||
329 | typedef struct jpeg_compress_struct *j_compress_ptr; | ||
330 | typedef struct jpeg_decompress_struct *j_decompress_ptr; | ||
331 | |||
332 | |||
333 | /* | ||
334 | Master record for a compression instance | ||
335 | */ | ||
336 | |||
337 | struct jpeg_compress_struct { | ||
338 | /* Fields shared with jpeg_decompress_struct */ | ||
339 | jpeg_common_fields; | ||
340 | |||
341 | /* Destination for compressed data */ | ||
342 | struct jpeg_destination_mgr *dest; | ||
343 | |||
344 | /* | ||
345 | Description of source image --- these fields must be filled in by outer | ||
346 | application before starting compression. in_color_space must be correct | ||
347 | before you can even call jpeg_set_defaults(). | ||
348 | */ | ||
349 | |||
350 | /* input image width */ | ||
351 | unsigned int image_width; | ||
352 | |||
353 | /* input image height */ | ||
354 | unsigned int image_height; | ||
355 | |||
356 | /* # of color components in input image */ | ||
357 | int input_components; | ||
358 | |||
359 | /* colorspace of input image */ | ||
360 | J_COLOR_SPACE in_color_space; | ||
361 | |||
362 | /* image gamma of input image */ | ||
363 | double input_gamma; | ||
364 | |||
365 | /* | ||
366 | Compression parameters --- these fields must be set before calling | ||
367 | jpeg_start_compress(). We recommend calling jpeg_set_defaults() to | ||
368 | initialize everything to reasonable defaults, then changing anything the | ||
369 | application specifically wants to change. That way you won't get burnt when | ||
370 | new parameters are added. Also note that there are several helper routines | ||
371 | to simplify changing parameters. | ||
372 | */ | ||
373 | |||
374 | /* bits of precision in image data */ | ||
375 | int data_precision; | ||
376 | |||
377 | /* # of color components in JPEG image */ | ||
378 | int num_components; | ||
379 | |||
380 | /* colorspace of JPEG image */ | ||
381 | J_COLOR_SPACE jpeg_color_space; | ||
382 | |||
383 | /* comp_info[i] describes component that appears i'th in SOF */ | ||
384 | jpeg_component_info *comp_info; | ||
385 | |||
386 | /* ptrs to coefficient quantization tables, or (void*)0 if not defined */ | ||
387 | JQUANT_TBL *quant_tbl_ptrs[ 4 ]; | ||
388 | |||
389 | /* ptrs to Huffman coding tables, or (void*)0 if not defined */ | ||
390 | JHUFF_TBL *dc_huff_tbl_ptrs[ 4 ]; | ||
391 | JHUFF_TBL *ac_huff_tbl_ptrs[ 4 ]; | ||
392 | |||
393 | /* L values for DC arith-coding tables */ | ||
394 | unsigned char arith_dc_L[ 16 ]; | ||
395 | |||
396 | /* U values for DC arith-coding tables */ | ||
397 | unsigned char arith_dc_U[ 16 ]; | ||
398 | |||
399 | /* Kx values for AC arith-coding tables */ | ||
400 | unsigned char arith_ac_K[ 16 ]; | ||
401 | |||
402 | /* # of entries in scan_info array */ | ||
403 | int num_scans; | ||
404 | |||
405 | /* | ||
406 | script for multi-scan file, or (void*)0 | ||
407 | The default value of scan_info is (void*)0, which causes a single-scan | ||
408 | sequential JPEG file to be emitted. To create a multi-scan file, set | ||
409 | num_scans and scan_info to point to an array of scan definitions. | ||
410 | */ | ||
411 | const jpeg_scan_info *scan_info; | ||
412 | |||
413 | /* 1=caller supplies downsampled data */ | ||
414 | int raw_data_in; | ||
415 | |||
416 | /* 1=arithmetic coding, 0=Huffman */ | ||
417 | int arith_code; | ||
418 | |||
419 | /* 1=optimize entropy encoding parms */ | ||
420 | int optimize_coding; | ||
421 | |||
422 | /* 1=first samples are cosited */ | ||
423 | int CCIR601_sampling; | ||
424 | |||
425 | /* 1..100, or 0 for no input smoothing */ | ||
426 | int smoothing_factor; | ||
427 | |||
428 | /* DCT algorithm selector */ | ||
429 | J_DCT_METHOD dct_method; | ||
430 | |||
431 | |||
432 | /* | ||
433 | The restart interval can be specified in absolute MCUs by setting | ||
434 | restart_interval, or in MCU rows by setting restart_in_rows (in which case | ||
435 | the correct restart_interval will be figured for each scan). | ||
436 | */ | ||
437 | |||
438 | /* MCUs per restart, or 0 for no restart */ | ||
439 | unsigned int restart_interval; | ||
440 | |||
441 | /* if > 0, MCU rows per restart interval */ | ||
442 | int restart_in_rows; | ||
443 | |||
444 | |||
445 | /* | ||
446 | Parameters controlling emission of special markers. | ||
447 | */ | ||
448 | |||
449 | /* should a JFIF marker be written? */ | ||
450 | int write_JFIF_header; | ||
451 | |||
452 | /* What to write for the JFIF version number */ | ||
453 | unsigned char JFIF_major_version; | ||
454 | unsigned char JFIF_minor_version; | ||
455 | |||
456 | /* | ||
457 | These three values are not used by the JPEG code, merely copied into the | ||
458 | JFIF APP0 marker. density_unit can be 0 for unknown, 1 for dots/inch, or 2 | ||
459 | for dots/cm. Note that the pixel aspect ratio is defined by | ||
460 | X_density/Y_density even when density_unit=0. | ||
461 | */ | ||
462 | |||
463 | /* JFIF code for pixel size units */ | ||
464 | unsigned char density_unit; | ||
465 | |||
466 | /* Horizontal pixel density */ | ||
467 | unsigned short X_density; | ||
468 | |||
469 | /* Vertical pixel density */ | ||
470 | unsigned short Y_density; | ||
471 | |||
472 | /* should an Adobe marker be written? */ | ||
473 | int write_Adobe_marker; | ||
474 | |||
475 | /* | ||
476 | State variable: index of next scanline to be written to | ||
477 | jpeg_write_scanlines(). Application may use this to control its processing | ||
478 | loop, e.g., "while (next_scanline < image_height)". | ||
479 | */ | ||
480 | |||
481 | /* 0 .. image_height-1 */ | ||
482 | unsigned int next_scanline; | ||
483 | |||
484 | |||
485 | /* | ||
486 | Remaining fields are known throughout compressor, but generally should not | ||
487 | be touched by a surrounding application. | ||
488 | */ | ||
489 | |||
490 | /* | ||
491 | These fields are computed during compression startup | ||
492 | */ | ||
493 | |||
494 | /* 1 if scan script uses progressive mode */ | ||
495 | int progressive_mode; | ||
496 | |||
497 | /* largest h_samp_factor */ | ||
498 | int max_h_samp_factor; | ||
499 | |||
500 | /* largest v_samp_factor */ | ||
501 | int max_v_samp_factor; | ||
502 | |||
503 | /* | ||
504 | # of iMCU rows to be input to coef ctlr | ||
505 | The coefficient controller receives data in units of MCU rows as defined for | ||
506 | fully interleaved scans (whether the JPEG file is interleaved or not). There | ||
507 | are v_samp_factor * DCTSIZE sample rows of each component in an "iMCU" | ||
508 | (interleaved MCU) row. | ||
509 | */ | ||
510 | unsigned int total_iMCU_rows; | ||
511 | |||
512 | /* | ||
513 | These fields are valid during any one scan. They describe the components | ||
514 | and MCUs actually appearing in the scan. | ||
515 | */ | ||
516 | |||
517 | /* # of JPEG components in this scan */ | ||
518 | int comps_in_scan; | ||
519 | |||
520 | /* *cur_comp_info[i] describes component that appears i'th in SOS */ | ||
521 | jpeg_component_info *cur_comp_info[ 4 ]; | ||
522 | |||
523 | /* # of MCUs across the image */ | ||
524 | unsigned int MCUs_per_row; | ||
525 | |||
526 | /* # of MCU rows in the image */ | ||
527 | unsigned int MCU_rows_in_scan; | ||
528 | |||
529 | /* # of DCT blocks per MCU */ | ||
530 | int blocks_in_MCU; | ||
531 | |||
532 | /* | ||
533 | MCU_membership[i] is index in cur_comp_info of component owning i'th block | ||
534 | in an MCU | ||
535 | */ | ||
536 | int MCU_membership[ 10 ]; | ||
537 | |||
538 | /* progressive JPEG parameters for scan */ | ||
539 | int Ss, Se, Ah, Al; | ||
540 | |||
541 | /* | ||
542 | Links to compression subobjects (methods and private variables of modules) | ||
543 | */ | ||
544 | |||
545 | struct jpeg_comp_master *master; | ||
546 | struct jpeg_c_main_controller *main; | ||
547 | struct jpeg_c_prep_controller *prep; | ||
548 | struct jpeg_c_coef_controller *coef; | ||
549 | struct jpeg_marker_writer *marker; | ||
550 | struct jpeg_color_converter *cconvert; | ||
551 | struct jpeg_downsampler *downsample; | ||
552 | struct jpeg_forward_dct *fdct; | ||
553 | struct jpeg_entropy_encoder *entropy; | ||
554 | |||
555 | /* workspace for jpeg_simple_progression */ | ||
556 | jpeg_scan_info *script_space; | ||
557 | |||
558 | int script_space_size; | ||
559 | }; | ||
560 | |||
561 | |||
562 | /* | ||
563 | "Object" declarations for JPEG modules that may be supplied or called directly | ||
564 | by the surrounding application. As with all objects in the JPEG library, these | ||
565 | structs only define the publicly visible methods and state variables of a | ||
566 | module. Additional private fields may exist after the public ones. | ||
567 | */ | ||
568 | |||
569 | /* | ||
570 | Error handler object | ||
571 | */ | ||
572 | |||
573 | struct jpeg_error_mgr { | ||
574 | /* Error exit handler: does not return to caller */ | ||
575 | void ( *error_exit ) ( j_common_ptr cinfo ); | ||
576 | |||
577 | /* Conditionally emit a trace or warning message */ | ||
578 | void ( *emit_message ) ( j_common_ptr cinfo, int msg_level ); | ||
579 | |||
580 | /* Routine that actually outputs a trace or error message */ | ||
581 | void ( *output_message ) ( j_common_ptr cinfo ); | ||
582 | |||
583 | /* Format a message string for the most recent JPEG error or message */ | ||
584 | void ( *format_message ) ( j_common_ptr cinfo, char *buffer ); | ||
585 | |||
586 | /* Reset error state variables at start of a new image */ | ||
587 | void ( *reset_error_mgr ) ( j_common_ptr cinfo ); | ||
588 | |||
589 | /* | ||
590 | The message ID code and any parameters are saved here. A message can have | ||
591 | one string parameter or up to 8 int parameters. | ||
592 | */ | ||
593 | int msg_code; | ||
594 | |||
595 | union { | ||
596 | int i[ 8 ]; | ||
597 | char s[ 80 ]; | ||
598 | } msg_parm; | ||
599 | |||
600 | |||
601 | /* | ||
602 | Standard state variables for error facility | ||
603 | */ | ||
604 | |||
605 | /* max msg_level that will be displayed */ | ||
606 | int trace_level; | ||
607 | |||
608 | /* | ||
609 | For recoverable corrupt-data errors, we emit a warning message, but keep | ||
610 | going unless emit_message chooses to abort. emit_message should count | ||
611 | warnings in num_warnings. The surrounding application can check for bad data | ||
612 | by seeing if num_warnings is nonzero at the end of processing. | ||
613 | */ | ||
614 | |||
615 | /* number of corrupt-data warnings */ | ||
616 | long num_warnings; | ||
617 | |||
618 | /* | ||
619 | These fields point to the table(s) of error message strings. An application | ||
620 | can change the table pointer to switch to a different message list | ||
621 | (typically, to change the language in which errors are reported). Some | ||
622 | applications may wish to add additional error codes that will be handled by | ||
623 | the JPEG library error mechanism; the second table pointer is used for this | ||
624 | purpose. | ||
625 | |||
626 | First table includes all errors generated by JPEG library itself. Error | ||
627 | code 0 is reserved for a "no such error string" message. | ||
628 | */ | ||
629 | |||
630 | /* Library errors */ | ||
631 | const char *const *jpeg_message_table; | ||
632 | |||
633 | /* Table contains strings 0..last_jpeg_message */ | ||
634 | int last_jpeg_message; | ||
635 | |||
636 | /* | ||
637 | Second table can be added by application (see cjpeg/djpeg for example). It | ||
638 | contains strings numbered first_addon_message..last_addon_message. | ||
639 | */ | ||
640 | |||
641 | /* Non-library errors */ | ||
642 | const char *const *addon_message_table; | ||
643 | |||
644 | /* code for first string in addon table */ | ||
645 | int first_addon_message; | ||
646 | |||
647 | /* code for last string in addon table */ | ||
648 | int last_addon_message; | ||
649 | }; | ||
650 | |||
651 | |||
652 | /* | ||
653 | Progress monitor object | ||
654 | */ | ||
655 | |||
656 | struct jpeg_progress_mgr { | ||
657 | void ( *progress_monitor ) ( j_common_ptr cinfo ); | ||
658 | |||
659 | /* work units completed in this pass */ | ||
660 | long pass_counter; | ||
661 | |||
662 | /* total number of work units in this pass */ | ||
663 | long pass_limit; | ||
664 | |||
665 | /* passes completed so far */ | ||
666 | int completed_passes; | ||
667 | |||
668 | /* total number of passes expected */ | ||
669 | int total_passes; | ||
670 | }; | ||
671 | |||
672 | |||
673 | /* | ||
674 | Data destination object for compression | ||
675 | */ | ||
676 | |||
677 | struct jpeg_destination_mgr { | ||
678 | /* => next byte to write in buffer */ | ||
679 | unsigned char *next_output_byte; | ||
680 | |||
681 | /* # of byte spaces remaining in buffer */ | ||
682 | long unsigned int free_in_buffer; | ||
683 | |||
684 | void ( *init_destination ) ( j_compress_ptr cinfo ); | ||
685 | int ( *empty_output_buffer ) ( j_compress_ptr cinfo ); | ||
686 | void ( *term_destination ) ( j_compress_ptr cinfo ); | ||
687 | }; | ||
688 | |||
689 | |||
690 | /* | ||
691 | Memory manager object. | ||
692 | Allocates "small" objects (a few K total), "large" objects (tens of K), and | ||
693 | "really big" objects (virtual arrays with backing store if needed). The memory | ||
694 | manager does not allow individual objects to be freed; rather, each created | ||
695 | object is assigned to a pool, and whole pools can be freed at once. This is | ||
696 | faster and more convenient than remembering exactly what to free, especially | ||
697 | where malloc()/free() are not too speedy. | ||
698 | NB: alloc routines never return (void*)0. They exit to error_exit if not | ||
699 | successful. | ||
700 | */ | ||
701 | |||
702 | typedef struct jvirt_sarray_control *jvirt_sarray_ptr; | ||
703 | typedef struct jvirt_barray_control *jvirt_barray_ptr; | ||
704 | |||
705 | struct jpeg_memory_mgr { | ||
706 | /* | ||
707 | Method pointers | ||
708 | */ | ||
709 | void *( *alloc_small ) ( | ||
710 | j_common_ptr cinfo, int pool_id, long unsigned int sizeofobject ); | ||
711 | |||
712 | void *( *alloc_large ) ( | ||
713 | j_common_ptr cinfo, int pool_id, long unsigned int sizeofobject ); | ||
714 | |||
715 | JSAMPARRAY ( *alloc_sarray ) ( | ||
716 | j_common_ptr cinfo, int pool_id, unsigned int samplesperrow, | ||
717 | unsigned int numrows ); | ||
718 | |||
719 | JBLOCKARRAY ( *alloc_barray )( | ||
720 | j_common_ptr cinfo, int pool_id, unsigned int blocksperrow, | ||
721 | unsigned int numrows ); | ||
722 | |||
723 | jvirt_sarray_ptr ( *request_virt_sarray ) ( | ||
724 | j_common_ptr cinfo, int pool_id, int pre_zero, unsigned int samplesperrow, | ||
725 | unsigned int numrows, unsigned int maxaccess ); | ||
726 | |||
727 | jvirt_barray_ptr ( *request_virt_barray ) ( | ||
728 | j_common_ptr cinfo, int pool_id, int pre_zero, unsigned int blocksperrow, | ||
729 | unsigned int numrows, unsigned int maxaccess ); | ||
730 | |||
731 | void ( *realize_virt_arrays ) ( j_common_ptr cinfo ); | ||
732 | |||
733 | JSAMPARRAY ( *access_virt_sarray ) ( | ||
734 | j_common_ptr cinfo, jvirt_sarray_ptr ptr, unsigned int start_row, | ||
735 | unsigned int num_rows, int writable ); | ||
736 | |||
737 | JBLOCKARRAY ( *access_virt_barray ) ( | ||
738 | j_common_ptr cinfo, jvirt_barray_ptr ptr, unsigned int start_row, | ||
739 | unsigned int num_rows, int writable ); | ||
740 | |||
741 | void ( *free_pool ) ( j_common_ptr cinfo, int pool_id ); | ||
742 | |||
743 | void ( *self_destruct ) ( j_common_ptr cinfo ); | ||
744 | |||
745 | /* | ||
746 | Limit on memory allocation for this JPEG object. (Note that this is merely | ||
747 | advisory, not a guaranteed maximum; it only affects the space used for | ||
748 | virtual-array buffers.) May be changed by outer application after creating | ||
749 | the JPEG object. | ||
750 | */ | ||
751 | long max_memory_to_use; | ||
752 | |||
753 | /* Maximum allocation request accepted by alloc_large. */ | ||
754 | long max_alloc_chunk; | ||
755 | }; | ||
756 | |||
757 | #endif /* JPEGLIB_H */ | ||
diff --git a/baseline/source/cjpeg_wrbmp/ChangeLog.txt b/baseline/source/cjpeg_wrbmp/ChangeLog.txt new file mode 100644 index 0000000..df21770 --- /dev/null +++ b/baseline/source/cjpeg_wrbmp/ChangeLog.txt | |||
@@ -0,0 +1,104 @@ | |||
1 | File: cjpeg_jpeg6b_wrbmp.c | ||
2 | Original provenience: | ||
3 | |||
4 | 2017-04-18: | ||
5 | - Annotated cjpeg_wrbmp_main as entry-point for timing analysis | ||
6 | |||
7 | 2015-10-14: | ||
8 | - Remove comment on line 1 | ||
9 | - Added generic TACLeBench header to line 1 | ||
10 | - Changed struct name to cjpeg_jpeg6b_wrbmp_name | ||
11 | - Changed the global variable from {name} to cjpeg_jpeg6b_wrbmp_{name} | ||
12 | - Changed the functions from {name} to cjpeg_jpeg6b_wrbmp_{name} | ||
13 | - Removed code in comment | ||
14 | - Added cjpeg_jpeg6b_wrbmp_main() | ||
15 | - Added cjpeg_jpeg6b_wrbmp_return() | ||
16 | - Added cjpeg_jpeg6b_wrbmp_init() | ||
17 | - Added forward declaration of the functions | ||
18 | - Removed unused variables: test_image[] and color_map[] | ||
19 | - Applied Code Style | ||
20 | |||
21 | File: input.c | ||
22 | Original provenience: | ||
23 | |||
24 | 2015-10-12: | ||
25 | - Remove comment on line 1 | ||
26 | - Added generic TACLeBench header to line 1 | ||
27 | - Removed _jpeg6b_ from the prefix | ||
28 | - Changed the global variable from colormap to cjpeg_jpeg6b_wrbmp_colormap | ||
29 | - Removed unused variables: test_image[] and color_map[] | ||
30 | - Moved initialization of cjpeg_jpeg6b_wrbmp_colormap to function. This function is called from cjpeg_jpeg6b_wrbmp_init function | ||
31 | - Applied Code Style | ||
32 | |||
33 | File: cderror.h | ||
34 | Original provenience: | ||
35 | |||
36 | 2015-10-12: | ||
37 | - Remove comment on line 1 | ||
38 | - Added generic TACLeBench header to line 1 | ||
39 | - Removed _jpeg6b_ from the prefix | ||
40 | - Changed JMESSAGE to CJPEG_JPEG6B_WRBMP_JMESSAGE | ||
41 | - Changed JMAKE_ENUM_LIST to CJPEG_JPEG6B_WRBMP_JMAKE_ENUM_LIST | ||
42 | - Applied Code Style | ||
43 | |||
44 | |||
45 | File: cdjpeg.h | ||
46 | Original provenience: | ||
47 | |||
48 | 2015-10-12: | ||
49 | - Remove comment on line 1 | ||
50 | - Added generic TACLeBench header to line 1 | ||
51 | - Rename structs and typedef to cjpeg_jpeg6b_wrbmp_{name} | ||
52 | - Removed unused defines | ||
53 | |||
54 | File: jconfig.h | ||
55 | Original provenience: | ||
56 | |||
57 | 2015-10-12: | ||
58 | - Remove comment on line 1 | ||
59 | - Added generic TACLeBench header to line 1 | ||
60 | - Change defines to CJPEG_JPEG6B_WRBMP_{NAME} | ||
61 | - Removed _jpeg6b_ from the prefix | ||
62 | - Applied Code Style | ||
63 | |||
64 | |||
65 | File: jerror.h | ||
66 | Original provenience: | ||
67 | |||
68 | 2015-10-12: | ||
69 | - Remove comment on line 1 | ||
70 | - Added generic TACLeBench header to line 1 | ||
71 | - Removed error and warning defines | ||
72 | - Removed _jpeg6b_ from the prefix | ||
73 | - Applied Code Style | ||
74 | |||
75 | |||
76 | File: jmorecfg.h | ||
77 | Original provenience: | ||
78 | |||
79 | 2015-10-12: | ||
80 | - Remove comment on line 1 | ||
81 | - Added generic TACLeBench header to line 1 | ||
82 | - Removed unused comments | ||
83 | - Removed _jpeg6b_ from the prefix | ||
84 | - Removed unused defines | ||
85 | - Removed unused typedefs | ||
86 | - Applied Code Style | ||
87 | |||
88 | |||
89 | File: jpeglib.h | ||
90 | Original provenience: | ||
91 | |||
92 | 2015-10-12: | ||
93 | - Remove comment on line 1 | ||
94 | - Used define value directly | ||
95 | - Remove unused typedefs, defines | ||
96 | - Removed _jpeg6b_ from the prefix | ||
97 | - Changed struct name to cjpeg_jpeg6b_wrbmp_{name} | ||
98 | - Changed define {name} to cjpeg_jpeg6b_wrbmp_{name} | ||
99 | - Added generic TACLeBench header to line 1 | ||
100 | - Applied Code Style | ||
101 | |||
102 | |||
103 | |||
104 | |||
diff --git a/baseline/source/cjpeg_wrbmp/README b/baseline/source/cjpeg_wrbmp/README new file mode 100644 index 0000000..fa69a18 --- /dev/null +++ b/baseline/source/cjpeg_wrbmp/README | |||
@@ -0,0 +1,383 @@ | |||
1 | The Independent JPEG Group's JPEG software | ||
2 | ========================================== | ||
3 | |||
4 | README for release 6a of 7-Feb-96 | ||
5 | ================================= | ||
6 | |||
7 | This distribution contains the sixth public release of the Independent JPEG | ||
8 | Group's free JPEG software. You are welcome to redistribute this software and | ||
9 | to use it for any purpose, subject to the conditions under LEGAL ISSUES, below. | ||
10 | |||
11 | Serious users of this software (particularly those incorporating it into | ||
12 | larger programs) should contact IJG at jpeg-info@uunet.uu.net to be added to | ||
13 | our electronic mailing list. Mailing list members are notified of updates | ||
14 | and have a chance to participate in technical discussions, etc. | ||
15 | |||
16 | This software is the work of Tom Lane, Philip Gladstone, Luis Ortiz, Jim | ||
17 | Boucher, Lee Crocker, Julian Minguillon, George Phillips, Davide Rossi, | ||
18 | Ge' Weijers, and other members of the Independent JPEG Group. | ||
19 | |||
20 | IJG is not affiliated with the official ISO JPEG standards committee. | ||
21 | |||
22 | |||
23 | DOCUMENTATION ROADMAP | ||
24 | ===================== | ||
25 | |||
26 | This file contains the following sections: | ||
27 | |||
28 | OVERVIEW General description of JPEG and the IJG software. | ||
29 | LEGAL ISSUES Copyright, lack of warranty, terms of distribution. | ||
30 | REFERENCES Where to learn more about JPEG. | ||
31 | ARCHIVE LOCATIONS Where to find newer versions of this software. | ||
32 | RELATED SOFTWARE Other stuff you should get. | ||
33 | FILE FORMAT WARS Software *not* to get. | ||
34 | TO DO Plans for future IJG releases. | ||
35 | |||
36 | Other documentation files in the distribution are: | ||
37 | |||
38 | User documentation: | ||
39 | install.doc How to configure and install the IJG software. | ||
40 | usage.doc Usage instructions for cjpeg, djpeg, jpegtran, | ||
41 | rdjpgcom, and wrjpgcom. | ||
42 | *.1 Unix-style man pages for programs (same info as usage.doc). | ||
43 | wizard.doc Advanced usage instructions for JPEG wizards only. | ||
44 | change.log Version-to-version change highlights. | ||
45 | Programmer and internal documentation: | ||
46 | libjpeg.doc How to use the JPEG library in your own programs. | ||
47 | example.c Sample code for calling the JPEG library. | ||
48 | structure.doc Overview of the JPEG library's internal structure. | ||
49 | filelist.doc Road map of IJG files. | ||
50 | coderules.doc Coding style rules --- please read if you contribute code. | ||
51 | |||
52 | Please read at least the files install.doc and usage.doc. Useful information | ||
53 | can also be found in the JPEG FAQ (Frequently Asked Questions) article. See | ||
54 | ARCHIVE LOCATIONS below to find out where to obtain the FAQ article. | ||
55 | |||
56 | If you want to understand how the JPEG code works, we suggest reading one or | ||
57 | more of the REFERENCES, then looking at the documentation files (in roughly | ||
58 | the order listed) before diving into the code. | ||
59 | |||
60 | |||
61 | OVERVIEW | ||
62 | ======== | ||
63 | |||
64 | This package contains C software to implement JPEG image compression and | ||
65 | decompression. JPEG (pronounced "jay-peg") is a standardized compression | ||
66 | method for full-color and gray-scale images. JPEG is intended for compressing | ||
67 | "real-world" scenes; line drawings, cartoons and other non-realistic images | ||
68 | are not its strong suit. JPEG is lossy, meaning that the output image is not | ||
69 | exactly identical to the input image. Hence you must not use JPEG if you | ||
70 | have to have identical output bits. However, on typical photographic images, | ||
71 | very good compression levels can be obtained with no visible change, and | ||
72 | remarkably high compression levels are possible if you can tolerate a | ||
73 | low-quality image. For more details, see the references, or just experiment | ||
74 | with various compression settings. | ||
75 | |||
76 | This software implements JPEG baseline, extended-sequential, and progressive | ||
77 | compression processes. Provision is made for supporting all variants of these | ||
78 | processes, although some uncommon parameter settings aren't implemented yet. | ||
79 | For legal reasons, we are not distributing code for the arithmetic-coding | ||
80 | variants of JPEG; see LEGAL ISSUES. We have made no provision for supporting | ||
81 | the hierarchical or lossless processes defined in the standard. | ||
82 | |||
83 | We provide a set of library routines for reading and writing JPEG image files, | ||
84 | plus two sample applications "cjpeg" and "djpeg", which use the library to | ||
85 | perform conversion between JPEG and some other popular image file formats. | ||
86 | The library is intended to be reused in other applications. | ||
87 | |||
88 | In order to support file conversion and viewing software, we have included | ||
89 | considerable functionality beyond the bare JPEG coding/decoding capability; | ||
90 | for example, the color quantization modules are not strictly part of JPEG | ||
91 | decoding, but they are essential for output to colormapped file formats or | ||
92 | colormapped displays. These extra functions can be compiled out of the | ||
93 | library if not required for a particular application. We have also included | ||
94 | "jpegtran", a utility for lossless transcoding between different JPEG | ||
95 | processes, and "rdjpgcom" and "wrjpgcom", two simple applications for | ||
96 | inserting and extracting textual comments in JFIF files. | ||
97 | |||
98 | The emphasis in designing this software has been on achieving portability and | ||
99 | flexibility, while also making it fast enough to be useful. In particular, | ||
100 | the software is not intended to be read as a tutorial on JPEG. (See the | ||
101 | REFERENCES section for introductory material.) Rather, it is intended to | ||
102 | be reliable, portable, industrial-strength code. We do not claim to have | ||
103 | achieved that goal in every aspect of the software, but we strive for it. | ||
104 | |||
105 | We welcome the use of this software as a component of commercial products. | ||
106 | No royalty is required, but we do ask for an acknowledgement in product | ||
107 | documentation, as described under LEGAL ISSUES. | ||
108 | |||
109 | |||
110 | LEGAL ISSUES | ||
111 | ============ | ||
112 | |||
113 | In plain English: | ||
114 | |||
115 | 1. We don't promise that this software works. (But if you find any bugs, | ||
116 | please let us know!) | ||
117 | 2. You can use this software for whatever you want. You don't have to pay us. | ||
118 | 3. You may not pretend that you wrote this software. If you use it in a | ||
119 | program, you must acknowledge somewhere in your documentation that | ||
120 | you've used the IJG code. | ||
121 | |||
122 | In legalese: | ||
123 | |||
124 | The authors make NO WARRANTY or representation, either express or implied, | ||
125 | with respect to this software, its quality, accuracy, merchantability, or | ||
126 | fitness for a particular purpose. This software is provided "AS IS", and you, | ||
127 | its user, assume the entire risk as to its quality and accuracy. | ||
128 | |||
129 | This software is copyright (C) 1991-1996, Thomas G. Lane. | ||
130 | All Rights Reserved except as specified below. | ||
131 | |||
132 | Permission is hereby granted to use, copy, modify, and distribute this | ||
133 | software (or portions thereof) for any purpose, without fee, subject to these | ||
134 | conditions: | ||
135 | (1) If any part of the source code for this software is distributed, then this | ||
136 | README file must be included, with this copyright and no-warranty notice | ||
137 | unaltered; and any additions, deletions, or changes to the original files | ||
138 | must be clearly indicated in accompanying documentation. | ||
139 | (2) If only executable code is distributed, then the accompanying | ||
140 | documentation must state that "this software is based in part on the work of | ||
141 | the Independent JPEG Group". | ||
142 | (3) Permission for use of this software is granted only if the user accepts | ||
143 | full responsibility for any undesirable consequences; the authors accept | ||
144 | NO LIABILITY for damages of any kind. | ||
145 | |||
146 | These conditions apply to any software derived from or based on the IJG code, | ||
147 | not just to the unmodified library. If you use our work, you ought to | ||
148 | acknowledge us. | ||
149 | |||
150 | Permission is NOT granted for the use of any IJG author's name or company name | ||
151 | in advertising or publicity relating to this software or products derived from | ||
152 | it. This software may be referred to only as "the Independent JPEG Group's | ||
153 | software". | ||
154 | |||
155 | We specifically permit and encourage the use of this software as the basis of | ||
156 | commercial products, provided that all warranty or liability claims are | ||
157 | assumed by the product vendor. | ||
158 | |||
159 | |||
160 | ansi2knr.c is included in this distribution by permission of L. Peter Deutsch, | ||
161 | sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA. | ||
162 | ansi2knr.c is NOT covered by the above copyright and conditions, but instead | ||
163 | by the usual distribution terms of the Free Software Foundation; principally, | ||
164 | that you must include source code if you redistribute it. (See the file | ||
165 | ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part | ||
166 | of any program generated from the IJG code, this does not limit you more than | ||
167 | the foregoing paragraphs do. | ||
168 | |||
169 | The configuration script "configure" was produced with GNU Autoconf. It | ||
170 | is copyright by the Free Software Foundation but is freely distributable. | ||
171 | |||
172 | It appears that the arithmetic coding option of the JPEG spec is covered by | ||
173 | patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot | ||
174 | legally be used without obtaining one or more licenses. For this reason, | ||
175 | support for arithmetic coding has been removed from the free JPEG software. | ||
176 | (Since arithmetic coding provides only a marginal gain over the unpatented | ||
177 | Huffman mode, it is unlikely that very many implementations will support it.) | ||
178 | So far as we are aware, there are no patent restrictions on the remaining | ||
179 | code. | ||
180 | |||
181 | WARNING: Unisys has begun to enforce their patent on LZW compression against | ||
182 | GIF encoders and decoders. You will need a license from Unisys to use the | ||
183 | included rdgif.c or wrgif.c files in a commercial or shareware application. | ||
184 | At this time, Unisys is not enforcing their patent against freeware, so | ||
185 | distribution of this package remains legal. However, we intend to remove | ||
186 | GIF support from the IJG package as soon as a suitable replacement format | ||
187 | becomes reasonably popular. | ||
188 | |||
189 | We are required to state that | ||
190 | "The Graphics Interchange Format(c) is the Copyright property of | ||
191 | CompuServe Incorporated. GIF(sm) is a Service Mark property of | ||
192 | CompuServe Incorporated." | ||
193 | |||
194 | |||
195 | REFERENCES | ||
196 | ========== | ||
197 | |||
198 | We highly recommend reading one or more of these references before trying to | ||
199 | understand the innards of the JPEG software. | ||
200 | |||
201 | The best short technical introduction to the JPEG compression algorithm is | ||
202 | Wallace, Gregory K. "The JPEG Still Picture Compression Standard", | ||
203 | Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44. | ||
204 | (Adjacent articles in that issue discuss MPEG motion picture compression, | ||
205 | applications of JPEG, and related topics.) If you don't have the CACM issue | ||
206 | handy, a PostScript file containing a revised version of Wallace's article | ||
207 | is available at ftp.uu.net, graphics/jpeg/wallace.ps.gz. The file (actually | ||
208 | a preprint for an article that appeared in IEEE Trans. Consumer Electronics) | ||
209 | omits the sample images that appeared in CACM, but it includes corrections | ||
210 | and some added material. Note: the Wallace article is copyright ACM and | ||
211 | IEEE, and it may not be used for commercial purposes. | ||
212 | |||
213 | A somewhat less technical, more leisurely introduction to JPEG can be found in | ||
214 | "The Data Compression Book" by Mark Nelson, published by M&T Books (Redwood | ||
215 | City, CA), 1991, ISBN 1-55851-216-0. This book provides good explanations and | ||
216 | example C code for a multitude of compression methods including JPEG. It is | ||
217 | an excellent source if you are comfortable reading C code but don't know much | ||
218 | about data compression in general. The book's JPEG sample code is far from | ||
219 | industrial-strength, but when you are ready to look at a full implementation, | ||
220 | you've got one here... | ||
221 | |||
222 | The best full description of JPEG is the textbook "JPEG Still Image Data | ||
223 | Compression Standard" by William B. Pennebaker and Joan L. Mitchell, published | ||
224 | by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. Price US$59.95, 638 pp. | ||
225 | The book includes the complete text of the ISO JPEG standards (DIS 10918-1 | ||
226 | and draft DIS 10918-2). This is by far the most complete exposition of JPEG | ||
227 | in existence, and we highly recommend it. | ||
228 | |||
229 | The JPEG standard itself is not available electronically; you must order a | ||
230 | paper copy through ISO or ITU. (Unless you feel a need to own a certified | ||
231 | official copy, we recommend buying the Pennebaker and Mitchell book instead; | ||
232 | it's much cheaper and includes a great deal of useful explanatory material.) | ||
233 | In the USA, copies of the standard may be ordered from ANSI Sales at (212) | ||
234 | 642-4900, or from Global Engineering Documents at (800) 854-7179. (ANSI | ||
235 | doesn't take credit card orders, but Global does.) It's not cheap: as of | ||
236 | 1992, ANSI was charging $95 for Part 1 and $47 for Part 2, plus 7% | ||
237 | shipping/handling. The standard is divided into two parts, Part 1 being the | ||
238 | actual specification, while Part 2 covers compliance testing methods. Part 1 | ||
239 | is titled "Digital Compression and Coding of Continuous-tone Still Images, | ||
240 | Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS | ||
241 | 10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of | ||
242 | Continuous-tone Still Images, Part 2: Compliance testing" and has document | ||
243 | numbers ISO/IEC IS 10918-2, ITU-T T.83. | ||
244 | |||
245 | Extensions to the original JPEG standard are defined in JPEG Part 3, a new ISO | ||
246 | document. Part 3 is undergoing ISO balloting and is expected to be approved | ||
247 | by the end of 1995; it will have document numbers ISO/IEC IS 10918-3, ITU-T | ||
248 | T.84. IJG currently does not support any Part 3 extensions. | ||
249 | |||
250 | The JPEG standard does not specify all details of an interchangeable file | ||
251 | format. For the omitted details we follow the "JFIF" conventions, revision | ||
252 | 1.02. A copy of the JFIF spec is available from: | ||
253 | Literature Department | ||
254 | C-Cube Microsystems, Inc. | ||
255 | 1778 McCarthy Blvd. | ||
256 | Milpitas, CA 95035 | ||
257 | phone (408) 944-6300, fax (408) 944-6314 | ||
258 | A PostScript version of this document is available at ftp.uu.net, file | ||
259 | graphics/jpeg/jfif.ps.gz. It can also be obtained by e-mail from the C-Cube | ||
260 | mail server, netlib@c3.pla.ca.us. Send the message "send jfif_ps from jpeg" | ||
261 | to the server to obtain the JFIF document; send the message "help" if you have | ||
262 | trouble. | ||
263 | |||
264 | The TIFF 6.0 file format specification can be obtained by FTP from sgi.com | ||
265 | (192.48.153.1), file graphics/tiff/TIFF6.ps.Z; or you can order a printed | ||
266 | copy from Aldus Corp. at (206) 628-6593. The JPEG incorporation scheme | ||
267 | found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. | ||
268 | IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). | ||
269 | Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 | ||
270 | (Compression tag 7). Copies of this Note can be obtained from sgi.com or | ||
271 | from ftp.uu.net:/graphics/jpeg/. It is expected that the next revision of | ||
272 | the TIFF spec will replace the 6.0 JPEG design with the Note's design. | ||
273 | Although IJG's own code does not support TIFF/JPEG, the free libtiff library | ||
274 | uses our library to implement TIFF/JPEG per the Note. libtiff is available | ||
275 | from sgi.com:/graphics/tiff/. | ||
276 | |||
277 | |||
278 | ARCHIVE LOCATIONS | ||
279 | ================= | ||
280 | |||
281 | The "official" archive site for this software is ftp.uu.net (Internet | ||
282 | address 192.48.96.9). The most recent released version can always be found | ||
283 | there in directory graphics/jpeg. This particular version will be archived | ||
284 | as graphics/jpeg/jpegsrc.v6a.tar.gz. If you are on the Internet, you | ||
285 | can retrieve files from ftp.uu.net by standard anonymous FTP. If you don't | ||
286 | have FTP access, UUNET's archives are also available via UUCP; contact | ||
287 | help@uunet.uu.net for information on retrieving files that way. | ||
288 | |||
289 | Numerous Internet sites maintain copies of the UUNET files. However, only | ||
290 | ftp.uu.net is guaranteed to have the latest official version. | ||
291 | |||
292 | You can also obtain this software in DOS-compatible "zip" archive format from | ||
293 | the SimTel archives (ftp.coast.net:/SimTel/msdos/graphics/), or on CompuServe | ||
294 | in the Graphics Support forum (GO CIS:GRAPHSUP), library 12 "JPEG Tools". | ||
295 | Again, these versions may sometimes lag behind the ftp.uu.net release. | ||
296 | |||
297 | The JPEG FAQ (Frequently Asked Questions) article is a useful source of | ||
298 | general information about JPEG. It is updated constantly and therefore is | ||
299 | not included in this distribution. The FAQ is posted every two weeks to | ||
300 | Usenet newsgroups comp.graphics.misc, news.answers, and other groups. | ||
301 | You can always obtain the latest version from the news.answers archive at | ||
302 | rtfm.mit.edu. By FTP, fetch /pub/usenet/news.answers/jpeg-faq/part1 and | ||
303 | .../part2. If you don't have FTP, send e-mail to mail-server@rtfm.mit.edu | ||
304 | with body | ||
305 | send usenet/news.answers/jpeg-faq/part1 | ||
306 | send usenet/news.answers/jpeg-faq/part2 | ||
307 | |||
308 | |||
309 | RELATED SOFTWARE | ||
310 | ================ | ||
311 | |||
312 | Numerous viewing and image manipulation programs now support JPEG. (Quite a | ||
313 | few of them use this library to do so.) The JPEG FAQ described above lists | ||
314 | some of the more popular free and shareware viewers, and tells where to | ||
315 | obtain them on Internet. | ||
316 | |||
317 | If you are on a Unix machine, we highly recommend Jef Poskanzer's free | ||
318 | PBMPLUS image software, which provides many useful operations on PPM-format | ||
319 | image files. In particular, it can convert PPM images to and from a wide | ||
320 | range of other formats. You can obtain this package by FTP from ftp.x.org | ||
321 | (contrib/pbmplus*.tar.Z) or ftp.ee.lbl.gov (pbmplus*.tar.Z). There is also | ||
322 | a newer update of this package called NETPBM, available from | ||
323 | wuarchive.wustl.edu under directory /graphics/graphics/packages/NetPBM/. | ||
324 | Unfortunately PBMPLUS/NETPBM is not nearly as portable as the IJG software | ||
325 | is; you are likely to have difficulty making it work on any non-Unix machine. | ||
326 | |||
327 | A different free JPEG implementation, written by the PVRG group at Stanford, | ||
328 | is available from havefun.stanford.edu in directory pub/jpeg. This program | ||
329 | is designed for research and experimentation rather than production use; | ||
330 | it is slower, harder to use, and less portable than the IJG code, but it | ||
331 | is easier to read and modify. Also, the PVRG code supports lossless JPEG, | ||
332 | which we do not. | ||
333 | |||
334 | |||
335 | FILE FORMAT WARS | ||
336 | ================ | ||
337 | |||
338 | Some JPEG programs produce files that are not compatible with our library. | ||
339 | The root of the problem is that the ISO JPEG committee failed to specify a | ||
340 | concrete file format. Some vendors "filled in the blanks" on their own, | ||
341 | creating proprietary formats that no one else could read. (For example, none | ||
342 | of the early commercial JPEG implementations for the Macintosh were able to | ||
343 | exchange compressed files.) | ||
344 | |||
345 | The file format we have adopted is called JFIF (see REFERENCES). This format | ||
346 | has been agreed to by a number of major commercial JPEG vendors, and it has | ||
347 | become the de facto standard. JFIF is a minimal or "low end" representation. | ||
348 | We recommend the use of TIFF/JPEG (TIFF revision 6.0 as modified by TIFF | ||
349 | Technical Note #2) for "high end" applications that need to record a lot of | ||
350 | additional data about an image. TIFF/JPEG is fairly new and not yet widely | ||
351 | supported, unfortunately. | ||
352 | |||
353 | The upcoming JPEG Part 3 standard defines a file format called SPIFF. | ||
354 | SPIFF is interoperable with JFIF, in the sense that most JFIF decoders should | ||
355 | be able to read the most common variant of SPIFF. SPIFF has some technical | ||
356 | advantages over JFIF, but its major claim to fame is simply that it is an | ||
357 | official standard rather than an informal one. At this point it is unclear | ||
358 | whether SPIFF will supersede JFIF or whether JFIF will remain the de-facto | ||
359 | standard. IJG intends to support SPIFF once the standard is frozen, but we | ||
360 | have not decided whether it should become our default output format or not. | ||
361 | (In any case, our decoder will remain capable of reading JFIF indefinitely.) | ||
362 | |||
363 | Various proprietary file formats incorporating JPEG compression also exist. | ||
364 | We have little or no sympathy for the existence of these formats. Indeed, | ||
365 | one of the original reasons for developing this free software was to help | ||
366 | force convergence on common, open format standards for JPEG files. Don't | ||
367 | use a proprietary file format! | ||
368 | |||
369 | |||
370 | TO DO | ||
371 | ===== | ||
372 | |||
373 | In future versions, we are considering supporting some of the upcoming JPEG | ||
374 | Part 3 extensions --- principally, variable quantization and the SPIFF file | ||
375 | format. | ||
376 | |||
377 | Tuning the software for better behavior at low quality/high compression | ||
378 | settings is also of interest. The current method for scaling the | ||
379 | quantization tables is known not to be very good at low Q values. | ||
380 | |||
381 | As always, speeding things up is high on our priority list. | ||
382 | |||
383 | Please send bug reports, offers of help, etc. to jpeg-info@uunet.uu.net. | ||
diff --git a/baseline/source/cjpeg_wrbmp/cderror.h b/baseline/source/cjpeg_wrbmp/cderror.h new file mode 100644 index 0000000..e479834 --- /dev/null +++ b/baseline/source/cjpeg_wrbmp/cderror.h | |||
@@ -0,0 +1,140 @@ | |||
1 | |||
2 | /* | ||
3 | |||
4 | This program is part of the TACLeBench benchmark suite. | ||
5 | Version V 1.x | ||
6 | |||
7 | Name: cderror.h | ||
8 | |||
9 | Author: Thomas G. Lane. | ||
10 | |||
11 | This file is part of the Independent JPEG Group's software. | ||
12 | For conditions of distribution and use, see the accompanying README file. | ||
13 | |||
14 | This file defines the error and message codes for the cjpeg/djpeg | ||
15 | applications. These strings are not needed as part of the JPEG library | ||
16 | proper. | ||
17 | Edit this file to add new codes, or to translate the message strings to | ||
18 | some other language. | ||
19 | |||
20 | Source: Independent JPEG Group's software | ||
21 | |||
22 | Changes: no major functional changes | ||
23 | |||
24 | License: See the accompanying README file | ||
25 | |||
26 | */ | ||
27 | |||
28 | #ifndef CJPEG_WRBMP_JMESSAGE | ||
29 | #ifndef CDERROR_H | ||
30 | #define CDERROR_H | ||
31 | /*First time through, define the enum list*/ | ||
32 | #define CJPEG_WRBMP_JMAKE_ENUM_LIST | ||
33 | #else | ||
34 | /* Repeated inclusions of this file are no-ops unless JMESSAGE is defined*/ | ||
35 | #define CJPEG_WRBMP_JMESSAGE(code,string) | ||
36 | #endif | ||
37 | #endif | ||
38 | |||
39 | #ifdef CJPEG_WRBMP_JMAKE_ENUM_LIST | ||
40 | |||
41 | typedef enum { | ||
42 | |||
43 | #define CJPEG_WRBMP_JMESSAGE(code,string) code , | ||
44 | |||
45 | #endif | ||
46 | |||
47 | CJPEG_WRBMP_JMESSAGE( JMSG_FIRSTADDONCODE = 1000, NULL ) //Must be first entry! | ||
48 | |||
49 | #ifdef CJPEG_WRBMP_BMP_SUPPORTED | ||
50 | CJPEG_WRBMP_JMESSAGE( JERR_BMP_BADCMAP, "Unsupported BMP colormap format" ) | ||
51 | CJPEG_WRBMP_JMESSAGE( JERR_BMP_BADDEPTH, "Only 8- and 24-bit BMP files are supported" ) | ||
52 | CJPEG_WRBMP_JMESSAGE( JERR_BMP_BADHEADER, "Invalid BMP file: bad header length" ) | ||
53 | CJPEG_WRBMP_JMESSAGE( JERR_BMP_BADPLANES, "Invalid BMP file: biPlanes not equal to 1" ) | ||
54 | CJPEG_WRBMP_JMESSAGE( JERR_BMP_COLORSPACE, "BMP output must be grayscale or RGB" ) | ||
55 | CJPEG_WRBMP_JMESSAGE( JERR_BMP_COMPRESSED, "Sorry, compressed BMPs not yet supported" ) | ||
56 | CJPEG_WRBMP_JMESSAGE( JERR_BMP_NOT, "Not a BMP file - does not start with BM" ) | ||
57 | CJPEG_WRBMP_JMESSAGE( JTRC_BMP, "%ux%u 24-bit BMP image" ) | ||
58 | CJPEG_WRBMP_JMESSAGE( JTRC_BMP_MAPPED, "%ux%u 8-bit colormapped BMP image" ) | ||
59 | CJPEG_WRBMP_JMESSAGE( JTRC_BMP_OS2, "%ux%u 24-bit OS2 BMP image" ) | ||
60 | CJPEG_WRBMP_JMESSAGE( JTRC_BMP_OS2_MAPPED, "%ux%u 8-bit colormapped OS2 BMP image" ) | ||
61 | #endif | ||
62 | |||
63 | #ifdef CJPEG_WRBMP_GIF_SUPPORTED | ||
64 | CJPEG_WRBMP_JMESSAGE( JERR_GIF_BUG, "GIF output got confused" ) | ||
65 | CJPEG_WRBMP_JMESSAGE( JERR_GIF_CODESIZE, "Bogus GIF codesize %d" ) | ||
66 | CJPEG_WRBMP_JMESSAGE( JERR_GIF_COLORSPACE, "GIF output must be grayscale or RGB" ) | ||
67 | CJPEG_WRBMP_JMESSAGE( JERR_GIF_IMAGENOTFOUND, "Too few images in GIF file" ) | ||
68 | CJPEG_WRBMP_JMESSAGE( JERR_GIF_NOT, "Not a GIF file" ) | ||
69 | CJPEG_WRBMP_JMESSAGE( JTRC_GIF, "%ux%ux%d GIF image" ) | ||
70 | CJPEG_WRBMP_JMESSAGE( JTRC_GIF_BADVERSION, | ||
71 | "Warning: unexpected GIF version number '%c%c%c'" ) | ||
72 | CJPEG_WRBMP_JMESSAGE( JTRC_GIF_EXTENSION, "Ignoring GIF extension block of type 0x%02x" ) | ||
73 | CJPEG_WRBMP_JMESSAGE( JTRC_GIF_NONSQUARE, "Caution: nonsquare pixels in input" ) | ||
74 | CJPEG_WRBMP_JMESSAGE( JWRN_GIF_BADDATA, "Corrupt data in GIF file" ) | ||
75 | CJPEG_WRBMP_JMESSAGE( JWRN_GIF_CHAR, "Bogus char 0x%02x in GIF file, ignoring" ) | ||
76 | CJPEG_WRBMP_JMESSAGE( JWRN_GIF_ENDCODE, "Premature end of GIF image" ) | ||
77 | CJPEG_WRBMP_JMESSAGE( JWRN_GIF_NOMOREDATA, "Ran out of GIF bits" ) | ||
78 | #endif | ||
79 | |||
80 | #ifdef CJPEG_WRBMP_PPM_SUPPORTED | ||
81 | CJPEG_WRBMP_JMESSAGE( JERR_PPM_COLORSPACE, "PPM output must be grayscale or RGB" ) | ||
82 | CJPEG_WRBMP_JMESSAGE( JERR_PPM_NONNUMERIC, "Nonnumeric data in PPM file" ) | ||
83 | CJPEG_WRBMP_JMESSAGE( JERR_PPM_NOT, "Not a PPM/PGM file" ) | ||
84 | CJPEG_WRBMP_JMESSAGE( JTRC_PGM, "%ux%u PGM image" ) | ||
85 | CJPEG_WRBMP_JMESSAGE( JTRC_PGM_TEXT, "%ux%u text PGM image" ) | ||
86 | CJPEG_WRBMP_JMESSAGE( JTRC_PPM, "%ux%u PPM image" ) | ||
87 | CJPEG_WRBMP_JMESSAGE( JTRC_PPM_TEXT, "%ux%u text PPM image" ) | ||
88 | #endif | ||
89 | |||
90 | #ifdef RLE_SUPPORTED | ||
91 | CJPEG_WRBMP_JMESSAGE( JERR_RLE_BADERROR, "Bogus error code from RLE library" ) | ||
92 | CJPEG_WRBMP_JMESSAGE( JERR_RLE_COLORSPACE, "RLE output must be grayscale or RGB" ) | ||
93 | CJPEG_WRBMP_JMESSAGE( JERR_RLE_DIMENSIONS, "Image dimensions (%ux%u) too large for RLE" ) | ||
94 | CJPEG_WRBMP_JMESSAGE( JERR_RLE_EMPTY, "Empty RLE file" ) | ||
95 | CJPEG_WRBMP_JMESSAGE( JERR_RLE_EOF, "Premature EOF in RLE header" ) | ||
96 | CJPEG_WRBMP_JMESSAGE( JERR_RLE_MEM, "Insufficient memory for RLE header" ) | ||
97 | CJPEG_WRBMP_JMESSAGE( JERR_RLE_NOT, "Not an RLE file" ) | ||
98 | CJPEG_WRBMP_JMESSAGE( JERR_RLE_TOOMANYCHANNELS, "Cannot handle %d output channels for RLE" ) | ||
99 | CJPEG_WRBMP_JMESSAGE( JERR_RLE_UNSUPPORTED, "Cannot handle this RLE setup" ) | ||
100 | CJPEG_WRBMP_JMESSAGE( JTRC_RLE, "%ux%u full-color RLE file" ) | ||
101 | CJPEG_WRBMP_JMESSAGE( JTRC_RLE_FULLMAP, "%ux%u full-color RLE file with map of length %d" ) | ||
102 | CJPEG_WRBMP_JMESSAGE( JTRC_RLE_GRAY, "%ux%u grayscale RLE file" ) | ||
103 | CJPEG_WRBMP_JMESSAGE( JTRC_RLE_MAPGRAY, "%ux%u grayscale RLE file with map of length %d" ) | ||
104 | CJPEG_WRBMP_JMESSAGE( JTRC_RLE_MAPPED, "%ux%u colormapped RLE file with map of length %d" ) | ||
105 | #endif | ||
106 | |||
107 | #ifdef CJPEG_WRBMP_TARGA_SUPPORTED | ||
108 | CJPEG_WRBMP_JMESSAGE( JERR_TGA_BADCMAP, "Unsupported Targa colormap format" ) | ||
109 | CJPEG_WRBMP_JMESSAGE( JERR_TGA_BADPARMS, "Invalid or unsupported Targa file" ) | ||
110 | CJPEG_WRBMP_JMESSAGE( JERR_TGA_COLORSPACE, "Targa output must be grayscale or RGB" ) | ||
111 | CJPEG_WRBMP_JMESSAGE( JTRC_TGA, "%ux%u RGB Targa image" ) | ||
112 | CJPEG_WRBMP_JMESSAGE( JTRC_TGA_GRAY, "%ux%u grayscale Targa image" ) | ||
113 | CJPEG_WRBMP_JMESSAGE( JTRC_TGA_MAPPED, "%ux%u colormapped Targa image" ) | ||
114 | #else | ||
115 | CJPEG_WRBMP_JMESSAGE( JERR_TGA_NOTCOMP, "Targa support was not compiled" ) | ||
116 | #endif | ||
117 | |||
118 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_CMAP_FILE, | ||
119 | "Color map file is invalid or of unsupported format" ) | ||
120 | CJPEG_WRBMP_JMESSAGE( JERR_TOO_MANY_COLORS, | ||
121 | "Output file format cannot handle %d colormap entries" ) | ||
122 | CJPEG_WRBMP_JMESSAGE( JERR_UNGETC_FAILED, "ungetc failed" ) | ||
123 | #ifdef CJPEG_WRBMP_TARGA_SUPPORTED | ||
124 | CJPEG_WRBMP_JMESSAGE( JERR_UNKNOWN_FORMAT, | ||
125 | "Unrecognized input file format --- perhaps you need -targa" ) | ||
126 | #else | ||
127 | CJPEG_WRBMP_JMESSAGE( JERR_UNKNOWN_FORMAT, "Unrecognized input file format" ) | ||
128 | #endif | ||
129 | CJPEG_WRBMP_JMESSAGE( JERR_UNSUPPORTED_FORMAT, "Unsupported output file format" ) | ||
130 | |||
131 | #ifdef CJPEG_WRBMP_JMAKE_ENUM_LIST | ||
132 | |||
133 | JMSG_LASTADDONCODE | ||
134 | } CJPEG_WRBMP_ADDON_MESSAGE_CODE; | ||
135 | |||
136 | #undef CJPEG_WRBMP_JMAKE_ENUM_LIST | ||
137 | #endif | ||
138 | |||
139 | /* Zap JMESSAGE macro so that future re-inclusions do nothing by default*/ | ||
140 | #undef CJPEG_WRBMP_JMESSAGE | ||
diff --git a/baseline/source/cjpeg_wrbmp/cdjpeg.h b/baseline/source/cjpeg_wrbmp/cdjpeg.h new file mode 100644 index 0000000..6c3fc7b --- /dev/null +++ b/baseline/source/cjpeg_wrbmp/cdjpeg.h | |||
@@ -0,0 +1,105 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 1.x | ||
5 | |||
6 | Name: cdjpeg.h | ||
7 | |||
8 | Author: Thomas G. Lane. | ||
9 | |||
10 | This file is part of the Independent JPEG Group's software. | ||
11 | For conditions of distribution and use, see the accompanying README file. | ||
12 | |||
13 | This file contains common declarations for the sample applications | ||
14 | cjpeg and djpeg. It is NOT used by the core JPEG library. | ||
15 | |||
16 | Source: Independent JPEG Group's software | ||
17 | |||
18 | Changes: no major functional changes | ||
19 | |||
20 | License: See the accompanying README file | ||
21 | |||
22 | */ | ||
23 | #ifndef CDJPEG_H | ||
24 | #define CDJPEG_H | ||
25 | |||
26 | #define CJPEG_WRBMP_JPEG_CJPEG_DJPEG /* define proper options in jconfig.h */ | ||
27 | #define CJPEG_WRBMP_JPEG_INTERNAL_OPTIONS /* cjpeg.c,djpeg.c need to see xxx_SUPPORTED */ | ||
28 | |||
29 | #include "jpeglib.h" | ||
30 | #include "jerror.h" /* get library error codes too */ | ||
31 | #include "cderror.h" /* get application-specific error codes */ | ||
32 | |||
33 | typedef struct cjpeg_wrbmp_cjpeg_source_struct | ||
34 | *cjpeg_wrbmp_cjpeg_source_ptr; | ||
35 | |||
36 | struct cjpeg_wrbmp_cjpeg_source_struct { | ||
37 | CJPEG_WRBMP_JMETHOD( void, start_input, | ||
38 | ( cjpeg_wrbmp_j_compress_ptr cinfo, | ||
39 | cjpeg_wrbmp_cjpeg_source_ptr sinfo ) ); | ||
40 | CJPEG_WRBMP_JMETHOD( CJPEG_WRBMP_JDIMENSION, get_pixel_rows, | ||
41 | ( cjpeg_wrbmp_j_compress_ptr cinfo, | ||
42 | cjpeg_wrbmp_cjpeg_source_ptr sinfo ) ); | ||
43 | CJPEG_WRBMP_JMETHOD( void, finish_input, | ||
44 | ( cjpeg_wrbmp_j_compress_ptr cinfo, | ||
45 | cjpeg_wrbmp_cjpeg_source_ptr sinfo ) ); | ||
46 | |||
47 | CJPEG_WRBMP_FILE *input_file; | ||
48 | |||
49 | CJPEG_WRBMP_JSAMPARRAY buffer; | ||
50 | CJPEG_WRBMP_JDIMENSION buffer_height; | ||
51 | }; | ||
52 | |||
53 | |||
54 | typedef struct cjpeg_wrbmp_djpeg_dest_struct | ||
55 | *cjpeg_wrbmp_djpeg_dest_ptr; | ||
56 | |||
57 | struct cjpeg_wrbmp_djpeg_dest_struct { | ||
58 | CJPEG_WRBMP_JMETHOD( void, start_output, | ||
59 | ( cjpeg_wrbmp_j_decompress_ptr cinfo, | ||
60 | cjpeg_wrbmp_djpeg_dest_ptr dinfo ) ); | ||
61 | /* Emit the specified number of pixel rows from the buffer. */ | ||
62 | CJPEG_WRBMP_JMETHOD( void, put_pixel_rows, | ||
63 | ( cjpeg_wrbmp_j_decompress_ptr cinfo, | ||
64 | cjpeg_wrbmp_djpeg_dest_ptr dinfo, | ||
65 | CJPEG_WRBMP_JDIMENSION rows_supplied ) ); | ||
66 | /* Finish up at the end of the image. */ | ||
67 | CJPEG_WRBMP_JMETHOD( void, finish_output, | ||
68 | ( cjpeg_wrbmp_j_decompress_ptr cinfo, | ||
69 | cjpeg_wrbmp_djpeg_dest_ptr dinfo ) ); | ||
70 | |||
71 | /* Target file spec; filled in by djpeg.c after object is created. */ | ||
72 | CJPEG_WRBMP_FILE *output_file; | ||
73 | |||
74 | /* Output pixel-row buffer. Created by module init or start_output. | ||
75 | Width is cinfo->output_width * cinfo->output_components; | ||
76 | height is buffer_height. | ||
77 | */ | ||
78 | CJPEG_WRBMP_JSAMPARRAY buffer; | ||
79 | CJPEG_WRBMP_JDIMENSION buffer_height; | ||
80 | } ; | ||
81 | |||
82 | |||
83 | |||
84 | /* | ||
85 | cjpeg/djpeg may need to perform extra passes to convert to or from | ||
86 | the source/destination file format. The JPEG library does not know | ||
87 | about these passes, but we'd like them to be counted by the progress | ||
88 | monitor. We use an expanded progress monitor object to hold the | ||
89 | additional pass count. | ||
90 | */ | ||
91 | |||
92 | struct cjpeg_wrbmp_cdjpeg_progress_mgr { | ||
93 | struct cjpeg_wrbmp_jpeg_progress_mgr | ||
94 | pub; /* fields known to JPEG library */ | ||
95 | int completed_extra_passes; /* extra passes completed */ | ||
96 | int total_extra_passes; /* total extra */ | ||
97 | /* last printed percentage stored here to avoid multiple printouts */ | ||
98 | int percent_done; | ||
99 | }; | ||
100 | |||
101 | typedef struct cjpeg_wrbmp_cdjpeg_progress_mgr | ||
102 | *cjpeg_wrbmp_cd_progress_ptr; | ||
103 | |||
104 | #endif | ||
105 | |||
diff --git a/baseline/source/cjpeg_wrbmp/cjpeg_wrbmp.c b/baseline/source/cjpeg_wrbmp/cjpeg_wrbmp.c new file mode 100644 index 0000000..7bef7ab --- /dev/null +++ b/baseline/source/cjpeg_wrbmp/cjpeg_wrbmp.c | |||
@@ -0,0 +1,225 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 1.x | ||
5 | |||
6 | Name: cjpeg_jpeg6b_wrbmp.c | ||
7 | |||
8 | Author: Thomas G. Lane. | ||
9 | |||
10 | Function: This file contains routines to write output images in Microsoft "BMP" | ||
11 | format (MS Windows 3.x and OS/2 1.x flavors). | ||
12 | Either 8-bit colormapped or 24-bit full-color format can be written. | ||
13 | No compression is supported. | ||
14 | |||
15 | These routines may need modification for non-Unix environments or | ||
16 | specialized applications. As they stand, they assume output to | ||
17 | an ordinary stdio stream. | ||
18 | |||
19 | Source: Independent JPEG Group's software | ||
20 | |||
21 | Changes: a brief summary of major functional changes (not formatting) | ||
22 | |||
23 | License: See the accompanying README file | ||
24 | |||
25 | */ | ||
26 | |||
27 | #include "../extra.h" | ||
28 | #include "cdjpeg.h" | ||
29 | |||
30 | #ifdef CJPEG_WRBMP_BMP_SUPPORTED | ||
31 | |||
32 | /* | ||
33 | Declaration of global variables | ||
34 | */ | ||
35 | typedef struct { | ||
36 | struct cjpeg_wrbmp_djpeg_dest_struct pub; /* public fields */ | ||
37 | cjpeg_wrbmp_boolean is_os2; /* saves the OS2 format request flag */ | ||
38 | cjpeg_wrbmp_jvirt_sarray_ptr | ||
39 | whole_image; /* needed to reverse row order */ | ||
40 | CJPEG_WRBMP_JDIMENSION data_width; /* JSAMPLEs per row */ | ||
41 | CJPEG_WRBMP_JDIMENSION | ||
42 | row_width; /* physical width of one row in the BMP file */ | ||
43 | int pad_bytes; /* number of padding bytes needed per row */ | ||
44 | CJPEG_WRBMP_JDIMENSION | ||
45 | cur_output_row; /* next row# to write to virtual array */ | ||
46 | } cjpeg_wrbmp_bmp_dest_struct; | ||
47 | |||
48 | typedef cjpeg_wrbmp_bmp_dest_struct *cjpeg_wrbmp_bmp_dest_ptr; | ||
49 | extern unsigned char cjpeg_wrbmp_colormap[3][256]; | ||
50 | unsigned char cjpeg_wrbmp_output_array[6144]; | ||
51 | unsigned char *cjpeg_wrbmp_jpeg_stream /*= cjpeg_jpeg6b_wrbmp_output_array*/; | ||
52 | int cjpeg_wrbmp_checksum; | ||
53 | |||
54 | struct cjpeg_wrbmp_jpeg_decompress_struct | ||
55 | cjpeg_wrbmp_jpeg_dec_1; | ||
56 | struct cjpeg_wrbmp_jpeg_decompress_struct | ||
57 | cjpeg_wrbmp_jpeg_dec_2; | ||
58 | struct cjpeg_wrbmp_djpeg_dest_struct | ||
59 | cjpeg_wrbmp_djpeg_dest; | ||
60 | cjpeg_wrbmp_bmp_dest_struct cjpeg_wrbmp_bmp_dest; | ||
61 | |||
62 | /* | ||
63 | Forward declaration of functions | ||
64 | */ | ||
65 | void cjpeg_wrbmp_initInput( void ); | ||
66 | void cjpeg_wrbmp_finish_output_bmp( cjpeg_wrbmp_j_decompress_ptr cinfo); | ||
67 | void cjpeg_wrbmp_write_colormap( cjpeg_wrbmp_j_decompress_ptr | ||
68 | cinfo, | ||
69 | int map_colors, int map_entry_size, | ||
70 | int cMap ); | ||
71 | int cjpeg_wrbmp_putc_modified( int character ); | ||
72 | void cjpeg_wrbmp_init(); | ||
73 | void cjpeg_wrbmp_main(); | ||
74 | int cjpeg_wrbmp_return(); | ||
75 | //int main(); | ||
76 | |||
77 | /* | ||
78 | Initialization functions | ||
79 | */ | ||
80 | void cjpeg_wrbmp_init() | ||
81 | { | ||
82 | cjpeg_wrbmp_initInput(); | ||
83 | |||
84 | cjpeg_wrbmp_jpeg_dec_1.progress = 0; | ||
85 | cjpeg_wrbmp_jpeg_dec_1.output_height = 30; | ||
86 | cjpeg_wrbmp_jpeg_dec_1.actual_number_of_colors = 256; | ||
87 | cjpeg_wrbmp_jpeg_dec_1.out_color_components = 2; | ||
88 | |||
89 | cjpeg_wrbmp_jpeg_dec_2.progress = 0; | ||
90 | cjpeg_wrbmp_jpeg_dec_2.output_height = 30; | ||
91 | cjpeg_wrbmp_jpeg_dec_2.actual_number_of_colors = 256; | ||
92 | cjpeg_wrbmp_jpeg_dec_2.out_color_components = 3; | ||
93 | |||
94 | cjpeg_wrbmp_jpeg_stream = cjpeg_wrbmp_output_array; | ||
95 | |||
96 | cjpeg_wrbmp_checksum = 0; | ||
97 | } | ||
98 | |||
99 | /* | ||
100 | Calculation functions | ||
101 | */ | ||
102 | int cjpeg_wrbmp_putc_modified( int character ) | ||
103 | { | ||
104 | *( cjpeg_wrbmp_jpeg_stream ) = character; | ||
105 | |||
106 | ++cjpeg_wrbmp_jpeg_stream; | ||
107 | |||
108 | cjpeg_wrbmp_checksum += character; | ||
109 | |||
110 | return character; | ||
111 | } | ||
112 | |||
113 | void cjpeg_wrbmp_finish_output_bmp( cjpeg_wrbmp_j_decompress_ptr cinfo ) | ||
114 | { | ||
115 | CJPEG_WRBMP_JDIMENSION row; | ||
116 | cjpeg_wrbmp_cd_progress_ptr progress = | ||
117 | ( cjpeg_wrbmp_cd_progress_ptr ) cinfo->progress; | ||
118 | |||
119 | // Write the file body from our virtual array | ||
120 | _Pragma( "loopbound min 30 max 30" ) | ||
121 | for ( row = cinfo->output_height; row > 0; --row ) { | ||
122 | if ( progress != 0 ) { | ||
123 | progress->pub.pass_counter = ( long )( cinfo->output_height - row ); | ||
124 | progress->pub.pass_limit = ( long ) cinfo->output_height; | ||
125 | } | ||
126 | } | ||
127 | |||
128 | if ( progress != 0 ) | ||
129 | progress->completed_extra_passes++; | ||
130 | } | ||
131 | |||
132 | void cjpeg_wrbmp_write_colormap( cjpeg_wrbmp_j_decompress_ptr | ||
133 | cinfo, | ||
134 | int map_colors, int map_entry_size, int cMap ) | ||
135 | { | ||
136 | |||
137 | int num_colors = cinfo->actual_number_of_colors; | ||
138 | int i; | ||
139 | |||
140 | if ( cMap != 0 ) { | ||
141 | |||
142 | if ( cinfo->out_color_components == 3 ) { | ||
143 | // Normal case with RGB colormap | ||
144 | _Pragma( "loopbound min 256 max 256" ) | ||
145 | for ( i = 0; i < num_colors; i++ ) { | ||
146 | cjpeg_wrbmp_putc_modified( CJPEG_WRBMP_GETJSAMPLE( | ||
147 | cjpeg_wrbmp_colormap[2][i] ) ); | ||
148 | cjpeg_wrbmp_putc_modified( CJPEG_WRBMP_GETJSAMPLE( | ||
149 | cjpeg_wrbmp_colormap[1][i] ) ); | ||
150 | cjpeg_wrbmp_putc_modified( CJPEG_WRBMP_GETJSAMPLE( | ||
151 | cjpeg_wrbmp_colormap[0][i] ) ); | ||
152 | |||
153 | if ( map_entry_size == 4 ) | ||
154 | cjpeg_wrbmp_putc_modified( 0 ); | ||
155 | } | ||
156 | } else { | ||
157 | // Grayscale colormap (only happens with grayscale quantization) | ||
158 | _Pragma( "loopbound min 256 max 256" ) | ||
159 | for ( i = 0; i < num_colors; i++ ) { | ||
160 | |||
161 | cjpeg_wrbmp_putc_modified( CJPEG_WRBMP_GETJSAMPLE( | ||
162 | cjpeg_wrbmp_colormap[2][i] ) ); | ||
163 | cjpeg_wrbmp_putc_modified( CJPEG_WRBMP_GETJSAMPLE( | ||
164 | cjpeg_wrbmp_colormap[1][i] ) ); | ||
165 | cjpeg_wrbmp_putc_modified( CJPEG_WRBMP_GETJSAMPLE( | ||
166 | cjpeg_wrbmp_colormap[0][i] ) ); | ||
167 | |||
168 | if ( map_entry_size == 4 ) | ||
169 | cjpeg_wrbmp_putc_modified( 0 ); | ||
170 | } | ||
171 | } | ||
172 | } else { | ||
173 | // If no colormap, must be grayscale data. Generate a linear "map". | ||
174 | _Pragma( "loopbound min 256 max 256" ) | ||
175 | for ( i = 0; i < 256; i++ ) { | ||
176 | cjpeg_wrbmp_putc_modified( i ); | ||
177 | cjpeg_wrbmp_putc_modified( i ); | ||
178 | cjpeg_wrbmp_putc_modified( i ); | ||
179 | |||
180 | if ( map_entry_size == 4 ) | ||
181 | cjpeg_wrbmp_putc_modified( 0 ); | ||
182 | } | ||
183 | } | ||
184 | |||
185 | // Pad colormap with zeros to ensure specified number of colormap entries. | ||
186 | _Pragma( "loopbound min 512 max 512" ) | ||
187 | for ( ; i < map_colors; i++ ) { | ||
188 | cjpeg_wrbmp_putc_modified( 0 ); | ||
189 | cjpeg_wrbmp_putc_modified( 0 ); | ||
190 | cjpeg_wrbmp_putc_modified( 0 ); | ||
191 | |||
192 | if ( map_entry_size == 4 ) | ||
193 | cjpeg_wrbmp_putc_modified( 0 ); | ||
194 | } | ||
195 | } | ||
196 | |||
197 | void _Pragma( "entrypoint" ) cjpeg_wrbmp_main() | ||
198 | { | ||
199 | cjpeg_wrbmp_finish_output_bmp( &cjpeg_wrbmp_jpeg_dec_1); | ||
200 | cjpeg_wrbmp_write_colormap( &cjpeg_wrbmp_jpeg_dec_1, 768, 4, 1 ); | ||
201 | |||
202 | cjpeg_wrbmp_finish_output_bmp( &cjpeg_wrbmp_jpeg_dec_2 ); | ||
203 | cjpeg_wrbmp_write_colormap( &cjpeg_wrbmp_jpeg_dec_2, 768, 4, 1 ); | ||
204 | } | ||
205 | |||
206 | int cjpeg_wrbmp_return() | ||
207 | { | ||
208 | return (cjpeg_wrbmp_checksum + (-209330) ) != 0; | ||
209 | } | ||
210 | |||
211 | int main(int argc, char **argv) | ||
212 | { | ||
213 | SET_UP | ||
214 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
215 | START_LOOP | ||
216 | cjpeg_wrbmp_init(); | ||
217 | cjpeg_wrbmp_main(); | ||
218 | STOP_LOOP | ||
219 | } | ||
220 | WRITE_TO_FILE | ||
221 | return ( cjpeg_wrbmp_return() ); | ||
222 | } | ||
223 | |||
224 | #endif /* BMP_SUPPORTED */ | ||
225 | |||
diff --git a/baseline/source/cjpeg_wrbmp/input.c b/baseline/source/cjpeg_wrbmp/input.c new file mode 100644 index 0000000..08dec28 --- /dev/null +++ b/baseline/source/cjpeg_wrbmp/input.c | |||
@@ -0,0 +1,79 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 1.x | ||
5 | |||
6 | Name: input.c | ||
7 | |||
8 | Author: Thomas G. Lane. | ||
9 | |||
10 | Function: Input variables for the cjpeg_jpeg6b_wrbmp.c | ||
11 | |||
12 | Source: Independent JPEG Group's software | ||
13 | |||
14 | Changes: no major functional changes | ||
15 | |||
16 | License: See the accompanying README file | ||
17 | |||
18 | */ | ||
19 | |||
20 | unsigned char cjpeg_wrbmp_colormap[3][256]; | ||
21 | |||
22 | void cjpeg_wrbmp_initInput( void ) | ||
23 | { | ||
24 | int i, j; | ||
25 | volatile unsigned char tmp[3][256] = {{44 , 105 , 153 , 71 , 151 , 160 , 188 , 90 , 209 , 131 , | ||
26 | 221 , 114 , 93 , 124 , 208 , 207 , 218 , 54 , 145 , 113 , 153 , 239 , 226 , 83 , 243 , 151 , | ||
27 | 98 , 67 , 114 , 153 , 83 , 186 , 116 , 72 , 188 , 190 , 109 , 162 , 218 , 133 , 208 , 209, | ||
28 | 115 , 251 , 135 , 89 , 143 , 226 , 230 , 246 , 152 , 243 , 152 , 115 , 180 , 78 , 246 , 164, | ||
29 | 250 , 117 , 76 , 150 , 152 , 188 , 251 , 195 , 127 , 111 , 225 , 208 , 94 , 93 , 143 , 131, | ||
30 | 201 , 211 , 99 , 93 , 190 , 157 , 121 , 240 , 117 , 185 , 167 , 137 , 152 , 188 , 250 , 59, | ||
31 | 248 , 245 , 115 , 240 , 192 , 209 , 143 , 136 , 98 , 224 , 167 , 135 , 132 , 189 , 72 , 249, | ||
32 | 205 , 44 , 106 , 96 , 147 , 247 , 249 , 228 , 224 , 249 , 190 , 112 , 135 , 168 , 95 , 205, | ||
33 | 171 , 58 , 112 , 79 , 206 , 75 , 242 , 188 , 189 , 225 , 185 , 81 , 221 , 153 , 244 , 198, | ||
34 | 171 , 163 , 159 , 209 , 240 , 138 , 148 , 207 , 166 , 192 , 188 , 151 , 98 , 190 , 209 , 154, | ||
35 | 225 , 72 , 96 , 249 , 191 , 223 , 207 , 163 , 207 , 133 , 251 , 183 , 135 , 137 , 159 , 247, | ||
36 | 167 , 83 , 123 , 199 , 203 , 144 , 142 , 237 , 77 , 128 , 117 , 169 , 202 , 136 , 128 , 188, | ||
37 | 168 , 55 , 222 , 169 , 116 , 60 , 75 , 175 , 102 , 217 , 168 , 185 , 189 , 225 , 125 , 192, | ||
38 | 112 , 111 , 168 , 239 , 225 , 168 , 97 , 129 , 190 , 175 , 169 , 225 , 170 , 226 , 225 , 226, | ||
39 | 224 , 134 , 106 , 250 , 222 , 148 , 241 , 168 , 166 , 160 , 95 , 190 , 102 , 180 , 193 , 111, | ||
40 | 151 , 165 , 171 , 200 , 52 , 134 , 169 , 223 , 166 , 225 , 169 , 111 , 185 , 109 , 56 , 244, | ||
41 | 157 , 250 , 226 , 231 , 119 , 188 },{42 , 143 , 46 , 91 , 84 , 201 , 140 , 91 , 82 , 140 , 31, | ||
42 | 88 , 44 , 171 , 57 , 115 , 206 , 59 , 145 , 117 , 116 , 53 , 232 , 117 , 80 , 60 , 66 , 64, | ||
43 | 117 , 174 , 89 , 178 , 147 , 63 , 83 , 59 , 103 , 139 , 211 , 64 , 68 , 98 , 118 , 53 , 119, | ||
44 | 90 , 161 , 232 , 171 , 98 , 176 , 236 , 118 , 157 , 180 , 77 , 114 , 88 , 28 , 119 , 40 , 97, | ||
45 | 69 , 189 , 252 , 225 , 119 , 96 , 219 , 84 , 82 , 105 , 158 , 49 , 200 , 61 , 117 , 78 , 63, | ||
46 | 147 , 140 , 69 , 108 , 90 , 161 , 105 , 190 , 114 , 84 , 76 , 70 , 43 , 156 , 222 , 96 , 72, | ||
47 | 143 , 90 , 105 , 56 , 144 , 78 , 129 , 35 , 66 , 101 , 100 , 49 , 105 , 130 , 160 , 239 , 129, | ||
48 | 141 , 83 , 43 , 68 , 106 , 132 , 83 , 92 , 130 , 175 , 63 , 131 , 79 , 192 , 105 , 57 , 160, | ||
49 | 118 , 162 , 141 , 78 , 192 , 128 , 206 , 201 , 203 , 162 , 159 , 163 , 221 , 183 , 157 , 177, | ||
50 | 189 , 192 , 129 , 130 , 54 , 104 , 45 , 101 , 252 , 52 , 91 , 177 , 49 , 221 , 116 , 111 , 143, | ||
51 | 92 , 142 , 159 , 131 , 173 , 61 , 159 , 173 , 81 , 129 , 214 , 213 , 145 , 143 , 232 , 67, | ||
52 | 145 , 130 , 99 , 237 , 110 , 160 , 131 , 67 , 50 , 129 , 131 , 127 , 76 , 92 , 203 , 96 , 206, | ||
53 | 176 , 180 , 85 , 99 , 162 , 118 , 64 , 78 , 190 , 191 , 45 , 101 , 129 , 58 , 72 , 211 , 49, | ||
54 | 115 , 115 , 85 , 61 , 100 , 116 , 107 , 143 , 117 , 219 , 154 , 225 , 174 , 160 , 163 , 119, | ||
55 | 190 , 106 , 186 , 49 , 45 , 177 , 147 , 85 , 138 , 42 , 174 , 59 , 68 , 120 , 71 , 129 , 56, | ||
56 | 149 , 97 , 68 , 88 , 148 , 60 , 239 , 179 , 149 , 104},{44 , 76 , 37 , 56 , 76 , 152 , 122, | ||
57 | 153 , 77 , 191 , 41 , 76 , 39 , 97 , 46 , 109 , 172 , 43 , 116 , 91 , 102 , 49 , 201 , 68 , 88, | ||
58 | 45 , 53 , 95 , 160 , 175 , 102 , 164 , 116 , 50 , 76 , 45 , 86 , 189 , 216 , 50 , 61 , 93 , 196, | ||
59 | 91 , 100 , 58 , 116 , 223 , 166 , 102 , 126 , 221 , 158 , 86 , 235 , 55 , 113 , 120 , 52 , 115, | ||
60 | 42 , 86 , 55 , 165 , 247 , 194 , 160 , 108 , 170 , 108 , 98 , 77 , 168 , 42 , 179 , 70 , 96, | ||
61 | 62 , 71 , 216 , 100 , 71 , 155 , 121 , 146 , 86 , 134 , 105 , 114 , 49 , 100 , 50 , 119 , 218, | ||
62 | 95 , 81 , 220 , 78 , 102 , 50 , 125 , 68 , 170 , 36 , 62 , 119 , 129 , 44 , 151 , 72 , 143, | ||
63 | 241 , 131 , 137 , 79 , 73 , 55 , 122 , 204 , 73 , 74 , 131 , 221 , 53 , 89 , 72 , 178 , 60 , 64, | ||
64 | 145 , 157 , 156 , 177 , 101 , 180 , 112 , 194 , 206 , 178 , 168 , 221 , 153 , 201 , 119 , 222, | ||
65 | 165 , 188 , 212 , 117 , 180 , 45 , 134 , 42 , 130 , 229 , 47 , 107 , 172 , 40 , 221 , 146, | ||
66 | 132 , 138 , 110 , 144 , 188 , 112 , 132 , 64 , 162 , 145 , 140 , 200 , 181 , 215 , 139 , 197, | ||
67 | 183 , 106 , 126 , 116 , 89 , 204 , 152 , 123 , 161 , 52 , 46 , 131 , 167 , 173 , 62 , 70 , 151, | ||
68 | 151 , 197 , 177 , 184 , 96 , 97 , 101 , 130 , 54 , 63 , 141 , 185 , 45 , 126 , 96 , 46 , 71, | ||
69 | 172 , 38 , 114 , 100 , 106 , 69 , 118 , 138 , 127 , 99 , 127 , 198 , 204 , 242 , 248 , 197, | ||
70 | 241 , 74 , 189 , 178 , 252 , 65 , 45 , 148 , 145 , 97 , 168 , 45 , 111 , 43 , 64 , 164 , 80, | ||
71 | 113 , 47 , 136 , 83 , 42 , 91 , 197 , 95 , 222 , 167 , 92 , 98}}; | ||
72 | |||
73 | for ( i = 0; i < 3; i++ ) { | ||
74 | for ( j = 0; j < 256; j++ ) | ||
75 | { | ||
76 | cjpeg_wrbmp_colormap[i][j] = tmp[i][j]; | ||
77 | } | ||
78 | } | ||
79 | } | ||
diff --git a/baseline/source/cjpeg_wrbmp/jconfig.h b/baseline/source/cjpeg_wrbmp/jconfig.h new file mode 100644 index 0000000..9c73988 --- /dev/null +++ b/baseline/source/cjpeg_wrbmp/jconfig.h | |||
@@ -0,0 +1,65 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 1.x | ||
5 | |||
6 | Name: cderror.h | ||
7 | |||
8 | Author: Thomas G. Lane. | ||
9 | |||
10 | This file is part of the Independent JPEG Group's software. | ||
11 | For conditions of distribution and use, see the accompanying README file. | ||
12 | |||
13 | Source: Independent JPEG Group's software | ||
14 | |||
15 | Changes: no major functional changes | ||
16 | |||
17 | License: See the accompanying README files | ||
18 | */ | ||
19 | |||
20 | #ifndef JCONFIG_H | ||
21 | #define JCONFIG_H | ||
22 | |||
23 | #define CJPEG_WRBMP_HAVE_PROTOTYPES | ||
24 | #define CJPEG_WRBMP_HAVE_UNSIGNED_CHAR | ||
25 | #define CJPEG_WRBMP_HAVE_UNSIGNED_SHORT | ||
26 | #undef void | ||
27 | #undef const | ||
28 | #undef CHAR_IS_UNSIGNED | ||
29 | #define CJPEG_WRBMP_HAVE_STDDEF_H | ||
30 | #define CJPEG_WRBMP_HAVE_STDLIB_H | ||
31 | #undef NEED_BSD_STRINGS | ||
32 | #undef NEED_SYS_TYPES_H | ||
33 | #undef CJPEG_JPEG6B_WRBMP_NEED_FAR_POINTERS | ||
34 | #undef NEED_SHORT_EXTERNAL_NAMES | ||
35 | /* Define this if you get warnings about undefined structures. */ | ||
36 | #undef INCOMPLETE_TYPES_BROKEN | ||
37 | |||
38 | #ifdef CJPEG_JPEG6B_WRBMP_JPEG_INTERNALS | ||
39 | |||
40 | #undef RIGHT_SHIFT_IS_UNSIGNED | ||
41 | #define INLINE __inline__ | ||
42 | /* These are for configuring the JPEG memory manager. */ | ||
43 | #undef DEFAULT_MAX_MEM | ||
44 | #undef NO_MKTEMP | ||
45 | |||
46 | #endif /* JPEG_INTERNALS */ | ||
47 | |||
48 | #ifdef CJPEG_WRBMP_JPEG_CJPEG_DJPEG | ||
49 | |||
50 | #define CJPEG_WRBMP_BMP_SUPPORTED /* BMP image file format */ | ||
51 | #define CJPEG_WRBMP_GIF_SUPPORTED /* GIF image file format */ | ||
52 | #define CJPEG_WRBMP_PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ | ||
53 | #undef RLE_SUPPORTED /* Utah RLE image file format */ | ||
54 | #define CJPEG_WRBMP_TARGA_SUPPORTED /* Targa image file format */ | ||
55 | |||
56 | #undef TWO_FILE_COMMANDLINE | ||
57 | #undef NEED_SIGNAL_CATCHER | ||
58 | #undef DONT_USE_B_MODE | ||
59 | |||
60 | /* Define this if you want percent-done progress reports from cjpeg/djpeg. */ | ||
61 | #undef PROGRESS_REPORT | ||
62 | |||
63 | #endif /* JPEG_CJPEG_DJPEG */ | ||
64 | |||
65 | #endif | ||
diff --git a/baseline/source/cjpeg_wrbmp/jerror.h b/baseline/source/cjpeg_wrbmp/jerror.h new file mode 100644 index 0000000..1dc2798 --- /dev/null +++ b/baseline/source/cjpeg_wrbmp/jerror.h | |||
@@ -0,0 +1,203 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 1.x | ||
5 | |||
6 | Name: jerror.h | ||
7 | |||
8 | Author: Thomas G. Lane. | ||
9 | |||
10 | This file defines the error and message codes for the JPEG library. | ||
11 | Edit this file to add new codes, or to translate the message strings to | ||
12 | some other language. | ||
13 | A set of error-reporting macros are defined too. Some applications using | ||
14 | the JPEG library may wish to include this file to get the error codes | ||
15 | sand/or the macros. | ||
16 | |||
17 | Source: Independent JPEG Group's software | ||
18 | |||
19 | Changes: no major functional changes | ||
20 | |||
21 | License: See the accompanying README file | ||
22 | */ | ||
23 | |||
24 | /* | ||
25 | To define the enum list of message codes, include this file without | ||
26 | defining macro JMESSAGE. To create a message string table, include it | ||
27 | again with a suitable JMESSAGE definition (see jerror.c for an example). | ||
28 | */ | ||
29 | #ifndef CJPEG_WRBMP_JMESSAGE | ||
30 | #ifndef JERROR_H | ||
31 | /* First time through, define the enum list */ | ||
32 | #define CJPEG_WRBMP_JMAKE_ENUM_LIST | ||
33 | #else | ||
34 | /* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */ | ||
35 | #define CJPEG_WRBMP_JMESSAGE(code,string) | ||
36 | #endif /* JERROR_H */ | ||
37 | #endif /* JMESSAGE */ | ||
38 | |||
39 | #ifdef CJPEG_WRBMP_JMAKE_ENUM_LIST | ||
40 | |||
41 | typedef enum { | ||
42 | |||
43 | #define CJPEG_WRBMP_JMESSAGE(code,string) code , | ||
44 | |||
45 | #endif /* JMAKE_ENUM_LIST */ | ||
46 | |||
47 | CJPEG_WRBMP_JMESSAGE( JMSG_NOMESSAGE, "Bogus message code %d" ) /* Must be first entry! */ | ||
48 | |||
49 | /* For maintenance convenience, list is alphabetical by message code name */ | ||
50 | CJPEG_WRBMP_JMESSAGE( JERR_ARITH_NOTIMPL, | ||
51 | "Sorry, there are legal restrictions on arithmetic coding" ) | ||
52 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix" ) | ||
53 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix" ) | ||
54 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_BUFFER_MODE, "Bogus buffer control mode" ) | ||
55 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS" ) | ||
56 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_DCT_COEF, "DCT coefficient out of range" ) | ||
57 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_DCTSIZE, "IDCT output block size %d not supported" ) | ||
58 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition" ) | ||
59 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_IN_COLORSPACE, "Bogus input colorspace" ) | ||
60 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace" ) | ||
61 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_LENGTH, "Bogus marker length" ) | ||
62 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_LIB_VERSION, | ||
63 | "Wrong JPEG library version: library is %d, caller expects %d" ) | ||
64 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan" ) | ||
65 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_POOL_ID, "Invalid memory pool code %d" ) | ||
66 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_PRECISION, "Unsupported JPEG data precision %d" ) | ||
67 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_PROGRESSION, | ||
68 | "Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d" ) | ||
69 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_PROG_SCRIPT, | ||
70 | "Invalid progressive parameters at scan script entry %d" ) | ||
71 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_SAMPLING, "Bogus sampling factors" ) | ||
72 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d" ) | ||
73 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_STATE, "Improper call to JPEG library in state %d" ) | ||
74 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_STRUCT_SIZE, | ||
75 | "JPEG parameter struct mismatch: library thinks size is %u, caller expects %u" ) | ||
76 | CJPEG_WRBMP_JMESSAGE( JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access" ) | ||
77 | CJPEG_WRBMP_JMESSAGE( JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small" ) | ||
78 | CJPEG_WRBMP_JMESSAGE( JERR_CANT_SUSPEND, "Suspension not allowed here" ) | ||
79 | CJPEG_WRBMP_JMESSAGE( JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet" ) | ||
80 | CJPEG_WRBMP_JMESSAGE( JERR_COMPONENT_COUNT, "Too many color components: %d, max %d" ) | ||
81 | CJPEG_WRBMP_JMESSAGE( JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request" ) | ||
82 | CJPEG_WRBMP_JMESSAGE( JERR_DAC_INDEX, "Bogus DAC index %d" ) | ||
83 | CJPEG_WRBMP_JMESSAGE( JERR_DAC_VALUE, "Bogus DAC value 0x%x" ) | ||
84 | CJPEG_WRBMP_JMESSAGE( JERR_DHT_INDEX, "Bogus DHT index %d" ) | ||
85 | CJPEG_WRBMP_JMESSAGE( JERR_DQT_INDEX, "Bogus DQT index %d" ) | ||
86 | CJPEG_WRBMP_JMESSAGE( JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)" ) | ||
87 | CJPEG_WRBMP_JMESSAGE( JERR_EMS_READ, "Read from EMS failed" ) | ||
88 | CJPEG_WRBMP_JMESSAGE( JERR_EMS_WRITE, "Write to EMS failed" ) | ||
89 | CJPEG_WRBMP_JMESSAGE( JERR_EOI_EXPECTED, "Didn't expect more than one scan" ) | ||
90 | CJPEG_WRBMP_JMESSAGE( JERR_FILE_READ, "Input file read error" ) | ||
91 | CJPEG_WRBMP_JMESSAGE( JERR_FILE_WRITE, "Output file write error --- out of disk space?" ) | ||
92 | CJPEG_WRBMP_JMESSAGE( JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet" ) | ||
93 | CJPEG_WRBMP_JMESSAGE( JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow" ) | ||
94 | CJPEG_WRBMP_JMESSAGE( JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry" ) | ||
95 | CJPEG_WRBMP_JMESSAGE( JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels" ) | ||
96 | CJPEG_WRBMP_JMESSAGE( JERR_INPUT_EMPTY, "Empty input file" ) | ||
97 | CJPEG_WRBMP_JMESSAGE( JERR_INPUT_EOF, "Premature end of input file" ) | ||
98 | CJPEG_WRBMP_JMESSAGE( JERR_MISMATCHED_QUANT_TABLE, | ||
99 | "Cannot transcode due to multiple use of quantization table %d" ) | ||
100 | CJPEG_WRBMP_JMESSAGE( JERR_MISSING_DATA, "Scan script does not transmit all data" ) | ||
101 | CJPEG_WRBMP_JMESSAGE( JERR_MODE_CHANGE, "Invalid color quantization mode change" ) | ||
102 | CJPEG_WRBMP_JMESSAGE( JERR_NOTIMPL, "Not implemented yet" ) | ||
103 | CJPEG_WRBMP_JMESSAGE( JERR_NOT_COMPILED, "Requested feature was omitted at compile time" ) | ||
104 | CJPEG_WRBMP_JMESSAGE( JERR_NO_BACKING_STORE, "Backing store not supported" ) | ||
105 | CJPEG_WRBMP_JMESSAGE( JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined" ) | ||
106 | CJPEG_WRBMP_JMESSAGE( JERR_NO_IMAGE, "JPEG datastream contains no image" ) | ||
107 | CJPEG_WRBMP_JMESSAGE( JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined" ) | ||
108 | CJPEG_WRBMP_JMESSAGE( JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x" ) | ||
109 | CJPEG_WRBMP_JMESSAGE( JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)" ) | ||
110 | CJPEG_WRBMP_JMESSAGE( JERR_QUANT_COMPONENTS, | ||
111 | "Cannot quantize more than %d color components" ) | ||
112 | CJPEG_WRBMP_JMESSAGE( JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors" ) | ||
113 | CJPEG_WRBMP_JMESSAGE( JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors" ) | ||
114 | CJPEG_WRBMP_JMESSAGE( JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers" ) | ||
115 | CJPEG_WRBMP_JMESSAGE( JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker" ) | ||
116 | CJPEG_WRBMP_JMESSAGE( JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x" ) | ||
117 | CJPEG_WRBMP_JMESSAGE( JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers" ) | ||
118 | CJPEG_WRBMP_JMESSAGE( JERR_SOS_NO_SOF, "Invalid JPEG file structure: SOS before SOF" ) | ||
119 | CJPEG_WRBMP_JMESSAGE( JERR_TFILE_CREATE, "Failed to create temporary file %s" ) | ||
120 | CJPEG_WRBMP_JMESSAGE( JERR_TFILE_READ, "Read failed on temporary file" ) | ||
121 | CJPEG_WRBMP_JMESSAGE( JERR_TFILE_SEEK, "Seek failed on temporary file" ) | ||
122 | CJPEG_WRBMP_JMESSAGE( JERR_TFILE_WRITE, | ||
123 | "Write failed on temporary file --- out of disk space?" ) | ||
124 | CJPEG_WRBMP_JMESSAGE( JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines" ) | ||
125 | CJPEG_WRBMP_JMESSAGE( JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x" ) | ||
126 | CJPEG_WRBMP_JMESSAGE( JERR_VIRTUAL_BUG, "Virtual array controller messed up" ) | ||
127 | CJPEG_WRBMP_JMESSAGE( JERR_WIDTH_OVERFLOW, "Image too wide for this implementation" ) | ||
128 | CJPEG_WRBMP_JMESSAGE( JERR_XMS_READ, "Read from XMS failed" ) | ||
129 | CJPEG_WRBMP_JMESSAGE( JERR_XMS_WRITE, "Write to XMS failed" ) | ||
130 | CJPEG_WRBMP_JMESSAGE( JMSG_COPYRIGHT, JCOPYRIGHT ) | ||
131 | CJPEG_WRBMP_JMESSAGE( JMSG_VERSION, JVERSION ) | ||
132 | CJPEG_WRBMP_JMESSAGE( JTRC_16BIT_TABLES, | ||
133 | "Caution: quantization tables are too coarse for baseline JPEG" ) | ||
134 | CJPEG_WRBMP_JMESSAGE( JTRC_ADOBE, | ||
135 | "Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d" ) | ||
136 | CJPEG_WRBMP_JMESSAGE( JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u" ) | ||
137 | CJPEG_WRBMP_JMESSAGE( JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u" ) | ||
138 | CJPEG_WRBMP_JMESSAGE( JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x" ) | ||
139 | CJPEG_WRBMP_JMESSAGE( JTRC_DHT, "Define Huffman Table 0x%02x" ) | ||
140 | CJPEG_WRBMP_JMESSAGE( JTRC_DQT, "Define Quantization Table %d precision %d" ) | ||
141 | CJPEG_WRBMP_JMESSAGE( JTRC_DRI, "Define Restart Interval %u" ) | ||
142 | CJPEG_WRBMP_JMESSAGE( JTRC_EMS_CLOSE, "Freed EMS handle %u" ) | ||
143 | CJPEG_WRBMP_JMESSAGE( JTRC_EMS_OPEN, "Obtained EMS handle %u" ) | ||
144 | CJPEG_WRBMP_JMESSAGE( JTRC_EOI, "End Of Image" ) | ||
145 | CJPEG_WRBMP_JMESSAGE( JTRC_HUFFBITS, " %3d %3d %3d %3d %3d %3d %3d %3d" ) | ||
146 | CJPEG_WRBMP_JMESSAGE( JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d %d" ) | ||
147 | CJPEG_WRBMP_JMESSAGE( JTRC_JFIF_BADTHUMBNAILSIZE, | ||
148 | "Warning: thumbnail image size does not match data length %u" ) | ||
149 | CJPEG_WRBMP_JMESSAGE( JTRC_JFIF_EXTENSION, | ||
150 | "JFIF extension marker: type 0x%02x, length %u" ) | ||
151 | CJPEG_WRBMP_JMESSAGE( JTRC_JFIF_THUMBNAIL, " with %d x %d thumbnail image" ) | ||
152 | CJPEG_WRBMP_JMESSAGE( JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u" ) | ||
153 | CJPEG_WRBMP_JMESSAGE( JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x" ) | ||
154 | CJPEG_WRBMP_JMESSAGE( JTRC_QUANTVALS, " %4u %4u %4u %4u %4u %4u %4u %4u" ) | ||
155 | CJPEG_WRBMP_JMESSAGE( JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors" ) | ||
156 | CJPEG_WRBMP_JMESSAGE( JTRC_QUANT_NCOLORS, "Quantizing to %d colors" ) | ||
157 | CJPEG_WRBMP_JMESSAGE( JTRC_QUANT_SELECTED, "Selected %d colors for quantization" ) | ||
158 | CJPEG_WRBMP_JMESSAGE( JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d" ) | ||
159 | CJPEG_WRBMP_JMESSAGE( JTRC_RST, "RST%d" ) | ||
160 | CJPEG_WRBMP_JMESSAGE( JTRC_SMOOTH_NOTIMPL, | ||
161 | "Smoothing not supported with nonstandard sampling ratios" ) | ||
162 | CJPEG_WRBMP_JMESSAGE( JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d" ) | ||
163 | CJPEG_WRBMP_JMESSAGE( JTRC_SOF_COMPONENT, " Component %d: %dhx%dv q=%d" ) | ||
164 | CJPEG_WRBMP_JMESSAGE( JTRC_SOI, "Start of Image" ) | ||
165 | CJPEG_WRBMP_JMESSAGE( JTRC_SOS, "Start Of Scan: %d components" ) | ||
166 | CJPEG_WRBMP_JMESSAGE( JTRC_SOS_COMPONENT, " Component %d: dc=%d ac=%d" ) | ||
167 | CJPEG_WRBMP_JMESSAGE( JTRC_SOS_PARAMS, " Ss=%d, Se=%d, Ah=%d, Al=%d" ) | ||
168 | CJPEG_WRBMP_JMESSAGE( JTRC_TFILE_CLOSE, "Closed temporary file %s" ) | ||
169 | CJPEG_WRBMP_JMESSAGE( JTRC_TFILE_OPEN, "Opened temporary file %s" ) | ||
170 | CJPEG_WRBMP_JMESSAGE( JTRC_THUMB_JPEG, | ||
171 | "JFIF extension marker: JPEG-compressed thumbnail image, length %u" ) | ||
172 | CJPEG_WRBMP_JMESSAGE( JTRC_THUMB_PALETTE, | ||
173 | "JFIF extension marker: palette thumbnail image, length %u" ) | ||
174 | CJPEG_WRBMP_JMESSAGE( JTRC_THUMB_RGB, | ||
175 | "JFIF extension marker: RGB thumbnail image, length %u" ) | ||
176 | CJPEG_WRBMP_JMESSAGE( JTRC_UNKNOWN_IDS, | ||
177 | "Unrecognized component IDs %d %d %d, assuming YCbCr" ) | ||
178 | CJPEG_WRBMP_JMESSAGE( JTRC_XMS_CLOSE, "Freed XMS handle %u" ) | ||
179 | CJPEG_WRBMP_JMESSAGE( JTRC_XMS_OPEN, "Obtained XMS handle %u" ) | ||
180 | CJPEG_WRBMP_JMESSAGE( JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d" ) | ||
181 | CJPEG_WRBMP_JMESSAGE( JWRN_BOGUS_PROGRESSION, | ||
182 | "Inconsistent progression sequence for component %d coefficient %d" ) | ||
183 | CJPEG_WRBMP_JMESSAGE( JWRN_EXTRANEOUS_DATA, | ||
184 | "Corrupt JPEG data: %u extraneous bytes before marker 0x%02x" ) | ||
185 | CJPEG_WRBMP_JMESSAGE( JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment" ) | ||
186 | CJPEG_WRBMP_JMESSAGE( JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code" ) | ||
187 | CJPEG_WRBMP_JMESSAGE( JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d" ) | ||
188 | CJPEG_WRBMP_JMESSAGE( JWRN_JPEG_EOF, "Premature end of JPEG file" ) | ||
189 | CJPEG_WRBMP_JMESSAGE( JWRN_MUST_RESYNC, | ||
190 | "Corrupt JPEG data: found marker 0x%02x instead of RST%d" ) | ||
191 | CJPEG_WRBMP_JMESSAGE( JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG" ) | ||
192 | CJPEG_WRBMP_JMESSAGE( JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines" ) | ||
193 | |||
194 | #ifdef CJPEG_WRBMP_JMAKE_ENUM_LIST | ||
195 | |||
196 | JMSG_LASTMSGCODE | ||
197 | } CJPEG_WRBMP_J_MESSAGE_CODE; | ||
198 | |||
199 | #undef CJPEG_WRBMP_JMAKE_ENUM_LIST | ||
200 | #endif /* JMAKE_ENUM_LIST */ | ||
201 | |||
202 | /* Zap JMESSAGE macro so that future re-inclusions do nothing by default */ | ||
203 | #undef CJPEG_WRBMP_JMESSAGE | ||
diff --git a/baseline/source/cjpeg_wrbmp/jmorecfg.h b/baseline/source/cjpeg_wrbmp/jmorecfg.h new file mode 100644 index 0000000..84ee16a --- /dev/null +++ b/baseline/source/cjpeg_wrbmp/jmorecfg.h | |||
@@ -0,0 +1,95 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 1.x | ||
5 | |||
6 | Name: jmorecfg.h | ||
7 | |||
8 | Author: Thomas G. Lane. | ||
9 | |||
10 | This file is part of the Independent JPEG Group's software. | ||
11 | For conditions of distribution and use, see the accompanying README file. | ||
12 | |||
13 | This file contains additional configuration options that customize the | ||
14 | JPEG software for special applications or support machine-dependent | ||
15 | optimizations. Most users will not need to touch this file. | ||
16 | |||
17 | Source: Independent JPEG Group's software | ||
18 | |||
19 | Changes: no major functional changes | ||
20 | |||
21 | License: See the accompanying README file | ||
22 | */ | ||
23 | |||
24 | #ifndef JMORECFG_H | ||
25 | #define JMORECFG_H | ||
26 | |||
27 | |||
28 | #define CJPEG_WRBMP_GETJSAMPLE(value) ((int) (value)) | ||
29 | |||
30 | typedef unsigned char CJPEG_WRBMP_JSAMPLE; | ||
31 | typedef short CJPEG_WRBMP_JCOEF; | ||
32 | typedef unsigned char CJPEG_WRBMP_JOCTET; | ||
33 | |||
34 | /* These typedefs are used for various table entries and so forth. | ||
35 | They must be at least as wide as specified; but making them too big | ||
36 | won't cost a huge amount of memory, so we don't provide special | ||
37 | extraction code like we did for JSAMPLE. (In other words, these | ||
38 | typedefs live at a different point on the speed/space tradeoff curve.) | ||
39 | */ | ||
40 | |||
41 | /* UINT8 must hold at least the values 0..255. */ | ||
42 | |||
43 | typedef unsigned char CJPEG_WRBMP_UINT8; | ||
44 | |||
45 | |||
46 | /* UINT16 must hold at least the values 0..65535. */ | ||
47 | |||
48 | typedef unsigned short CJPEG_WRBMP_UINT16; | ||
49 | |||
50 | |||
51 | /* INT16 must hold at least the values -32768..32767. */ | ||
52 | |||
53 | #ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ | ||
54 | typedef short INT16; | ||
55 | #endif | ||
56 | |||
57 | /* INT32 must hold at least signed 32-bit values. */ | ||
58 | |||
59 | #ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ | ||
60 | typedef long INT32; | ||
61 | #endif | ||
62 | |||
63 | typedef unsigned int CJPEG_WRBMP_JDIMENSION; | ||
64 | |||
65 | /* This macro is used to declare a "method", that is, a function pointer. | ||
66 | We want to supply prototype parameters if the compiler can cope. | ||
67 | Note that the arglist parameter must be parenthesized! | ||
68 | Again, you can customize this if you need special linkage keywords. | ||
69 | */ | ||
70 | |||
71 | #define EXTERN(type) extern type | ||
72 | |||
73 | #ifdef CJPEG_WRBMP_HAVE_PROTOTYPES | ||
74 | #define CJPEG_WRBMP_JMETHOD(type,methodname,arglist) type (*methodname) arglist | ||
75 | #else | ||
76 | #define CJPEG_WRBMP_JMETHOD(type,methodname,arglist) type (*methodname) () | ||
77 | #endif | ||
78 | |||
79 | |||
80 | /* Here is the pseudo-keyword for declaring pointers that must be "far" | ||
81 | on 80x86 machines. Most of the specialized coding for 80x86 is handled | ||
82 | by just saying "FAR *" where such a pointer is needed. In a few places | ||
83 | explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol. | ||
84 | */ | ||
85 | |||
86 | #ifdef CJPEG_JPEG6B_WRBMP_NEED_FAR_POINTERS | ||
87 | #define CJPEG_WRBMP_FAR far | ||
88 | #else | ||
89 | #define CJPEG_WRBMP_FAR | ||
90 | #endif | ||
91 | |||
92 | #ifndef CJPEG_JPEG6B_WRBMP_HAVE_BOOLEAN | ||
93 | typedef int cjpeg_wrbmp_boolean; | ||
94 | #endif | ||
95 | #endif | ||
diff --git a/baseline/source/cjpeg_wrbmp/jpeglib.h b/baseline/source/cjpeg_wrbmp/jpeglib.h new file mode 100644 index 0000000..ab3fba3 --- /dev/null +++ b/baseline/source/cjpeg_wrbmp/jpeglib.h | |||
@@ -0,0 +1,869 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 1.x | ||
5 | |||
6 | Name: jpeglib.h | ||
7 | |||
8 | Author: Thomas G. Lane. | ||
9 | |||
10 | This file is part of the Independent JPEG Group's software. | ||
11 | For conditions of distribution and use, see the accompanying README file. | ||
12 | |||
13 | This file defines the application interface for the JPEG library. | ||
14 | Most applications using the library need only include this file, | ||
15 | and perhaps jerror.h if they want to know the exact error codes. | ||
16 | |||
17 | Source: Independent JPEG Group's software | ||
18 | |||
19 | Changes: no major functional changes | ||
20 | |||
21 | License: See the accompanying README file | ||
22 | */ | ||
23 | |||
24 | |||
25 | #ifndef JPEGLIB_H | ||
26 | #define JPEGLIB_H | ||
27 | |||
28 | typedef int CJPEG_WRBMP_FILE; | ||
29 | typedef unsigned int cjpeg_wrbmp_size_x; | ||
30 | |||
31 | /* | ||
32 | First we include the configuration files that record how this | ||
33 | installation of the JPEG library is set up. jconfig.h can be | ||
34 | generated automatically for many systems. jmorecfg.h contains | ||
35 | manual configuration options that most people need not worry about. | ||
36 | */ | ||
37 | |||
38 | #ifndef JCONFIG_INCLUDED /* in case jinclude.h already did */ | ||
39 | #include "jconfig.h" /* widely used configuration options */ | ||
40 | #endif | ||
41 | #include "jmorecfg.h" /* seldom changed options */ | ||
42 | |||
43 | /* Data structures for images (arrays of samples and of DCT coefficients). | ||
44 | On 80x86 machines, the image arrays are too big for near pointers, | ||
45 | but the pointer arrays can fit in near memory. | ||
46 | */ | ||
47 | |||
48 | typedef CJPEG_WRBMP_JSAMPLE CJPEG_WRBMP_FAR | ||
49 | *CJPEG_WRBMP_JSAMPROW; /* ptr to one image row of pixel samples. */ | ||
50 | typedef CJPEG_WRBMP_JSAMPROW | ||
51 | *CJPEG_WRBMP_JSAMPARRAY; /* ptr to some rows (a 2-D sample array) */ | ||
52 | typedef CJPEG_WRBMP_JSAMPARRAY | ||
53 | *CJPEG_WRBMP_JSAMPIMAGE; /* a 3-D sample array: top index is color */ | ||
54 | |||
55 | typedef CJPEG_WRBMP_JCOEF | ||
56 | CJPEG_WRBMP_JBLOCK[64]; /* one block of coefficients */ | ||
57 | typedef CJPEG_WRBMP_JBLOCK CJPEG_WRBMP_FAR | ||
58 | *CJPEG_WRBMP_JBLOCKROW; /* pointer to one row of coefficient blocks */ | ||
59 | typedef CJPEG_WRBMP_JBLOCKROW | ||
60 | *CJPEG_WRBMP_JBLOCKARRAY; /* a 2-D array of coefficient blocks */ | ||
61 | typedef CJPEG_WRBMP_JBLOCKARRAY | ||
62 | *CJPEG_WRBMP_JBLOCKIMAGE; /* a 3-D array of coefficient blocks */ | ||
63 | |||
64 | typedef CJPEG_WRBMP_JCOEF CJPEG_WRBMP_FAR | ||
65 | *JCOEFPTR; /* useful in a couple of places */ | ||
66 | |||
67 | |||
68 | /* Types for JPEG compression parameters and working tables. */ | ||
69 | |||
70 | |||
71 | /* DCT coefficient quantization tables. */ | ||
72 | |||
73 | typedef struct { | ||
74 | /* This array gives the coefficient quantizers in natural array order | ||
75 | (not the zigzag order in which they are stored in a JPEG DQT marker). | ||
76 | CAUTION: IJG versions prior to v6a kept this array in zigzag order. | ||
77 | */ | ||
78 | CJPEG_WRBMP_UINT16 | ||
79 | quantval[64]; /* quantization step for each coefficient */ | ||
80 | /* This field is used only during compression. It's initialized FALSE when | ||
81 | the table is created, and set TRUE when it's been output to the file. | ||
82 | You could suppress output of a table by setting this to TRUE. | ||
83 | (See jpeg_suppress_tables for an example.) | ||
84 | */ | ||
85 | cjpeg_wrbmp_boolean sent_table; /* TRUE when table has been output */ | ||
86 | } CJPEG_WRBMP_JQUANT_TBL; | ||
87 | |||
88 | |||
89 | /* Huffman coding tables. */ | ||
90 | |||
91 | typedef struct { | ||
92 | /* These two fields directly represent the contents of a JPEG DHT marker */ | ||
93 | CJPEG_WRBMP_UINT8 bits[17]; /* bits[k] = # of symbols with codes of */ | ||
94 | /* length k bits; bits[0] is unused */ | ||
95 | CJPEG_WRBMP_UINT8 | ||
96 | huffval[256]; /* The symbols, in order of incr code length */ | ||
97 | /* This field is used only during compression. It's initialized FALSE when | ||
98 | the table is created, and set TRUE when it's been output to the file. | ||
99 | You could suppress output of a table by setting this to TRUE. | ||
100 | (See jpeg_suppress_tables for an example.) | ||
101 | */ | ||
102 | cjpeg_wrbmp_boolean sent_table; /* TRUE when table has been output */ | ||
103 | } CJPEG_WRBMP_JHUFF_TBL; | ||
104 | |||
105 | |||
106 | /* Basic info about one component (color channel). */ | ||
107 | |||
108 | typedef struct { | ||
109 | /* These values are fixed over the whole image. */ | ||
110 | /* For compression, they must be supplied by parameter setup; */ | ||
111 | /* for decompression, they are read from the SOF marker. */ | ||
112 | int component_id; /* identifier for this component (0..255) */ | ||
113 | int component_index; /* its index in SOF or cinfo->comp_info[] */ | ||
114 | int h_samp_factor; /* horizontal sampling factor (1..4) */ | ||
115 | int v_samp_factor; /* vertical sampling factor (1..4) */ | ||
116 | int quant_tbl_no; /* quantization table selector (0..3) */ | ||
117 | /* These values may vary between scans. */ | ||
118 | /* For compression, they must be supplied by parameter setup; */ | ||
119 | /* for decompression, they are read from the SOS marker. */ | ||
120 | /* The decompressor output side may not use these variables. */ | ||
121 | int dc_tbl_no; /* DC entropy table selector (0..3) */ | ||
122 | int ac_tbl_no; /* AC entropy table selector (0..3) */ | ||
123 | |||
124 | /* Remaining fields should be treated as private by applications. */ | ||
125 | |||
126 | /* These values are computed during compression or decompression startup: */ | ||
127 | /* Component's size in DCT blocks. | ||
128 | Any dummy blocks added to complete an MCU are not counted; therefore | ||
129 | these values do not depend on whether a scan is interleaved or not. | ||
130 | */ | ||
131 | CJPEG_WRBMP_JDIMENSION width_in_blocks; | ||
132 | CJPEG_WRBMP_JDIMENSION height_in_blocks; | ||
133 | /* Size of a DCT block in samples. Always DCTSIZE for compression. | ||
134 | For decompression this is the size of the output from one DCT block, | ||
135 | reflecting any scaling we choose to apply during the IDCT step. | ||
136 | Values of 1,2,4,8 are likely to be supported. Note that different | ||
137 | components may receive different IDCT scalings. | ||
138 | */ | ||
139 | int DCT_scaled_size; | ||
140 | /* The downsampled dimensions are the component's actual, unpadded number | ||
141 | of samples at the main buffer (preprocessing/compression interface), thus | ||
142 | downsampled_width = ceil(image_width * Hi/Hmax) | ||
143 | and similarly for height. For decompression, IDCT scaling is included, so | ||
144 | downsampled_width = ceil(image_width * Hi/Hmax * DCT_scaled_size/DCTSIZE) | ||
145 | */ | ||
146 | CJPEG_WRBMP_JDIMENSION downsampled_width; /* actual width in samples */ | ||
147 | CJPEG_WRBMP_JDIMENSION downsampled_height; /* actual height in samples */ | ||
148 | /* This flag is used only for decompression. In cases where some of the | ||
149 | components will be ignored (eg grayscale output from YCbCr image), | ||
150 | we can skip most computations for the unused components. | ||
151 | */ | ||
152 | cjpeg_wrbmp_boolean | ||
153 | component_needed; /* do we need the value of this component? */ | ||
154 | |||
155 | /* These values are computed before starting a scan of the component. */ | ||
156 | /* The decompressor output side may not use these variables. */ | ||
157 | int MCU_width; /* number of blocks per MCU, horizontally */ | ||
158 | int MCU_height; /* number of blocks per MCU, vertically */ | ||
159 | int MCU_blocks; /* MCU_width * MCU_height */ | ||
160 | int MCU_sample_width; /* MCU width in samples, MCU_width*DCT_scaled_size */ | ||
161 | int last_col_width; /* # of non-dummy blocks across in last MCU */ | ||
162 | int last_row_height; /* # of non-dummy blocks down in last MCU */ | ||
163 | |||
164 | /* Saved quantization table for component; NULL if none yet saved. | ||
165 | See jdinput.c comments about the need for this information. | ||
166 | This field is currently used only for decompression. | ||
167 | */ | ||
168 | CJPEG_WRBMP_JQUANT_TBL *quant_table; | ||
169 | |||
170 | /* Private per-component storage for DCT or IDCT subsystem. */ | ||
171 | void *dct_table; | ||
172 | } cjpeg_wrbmp_jpeg_component_info; | ||
173 | |||
174 | |||
175 | /* The script for encoding a multiple-scan file is an array of these: */ | ||
176 | |||
177 | typedef struct { | ||
178 | int comps_in_scan; /* number of components encoded in this scan */ | ||
179 | int component_index[4]; /* their SOF/comp_info[] indexes */ | ||
180 | int Ss, Se; /* progressive JPEG spectral selection parms */ | ||
181 | int Ah, Al; /* progressive JPEG successive approx. parms */ | ||
182 | } cjpeg_wrbmp_jpeg_scan_info; | ||
183 | |||
184 | /* The decompressor can save APPn and COM markers in a list of these: */ | ||
185 | |||
186 | typedef struct cjpeg_wrbmp_jpeg_marker_struct CJPEG_WRBMP_FAR | ||
187 | *jpeg_saved_marker_ptr; | ||
188 | |||
189 | struct cjpeg_wrbmp_jpeg_marker_struct { | ||
190 | jpeg_saved_marker_ptr next; /* next in list, or NULL */ | ||
191 | CJPEG_WRBMP_UINT8 marker; /* marker code: JPEG_COM, or JPEG_APP0+n */ | ||
192 | unsigned int original_length; /* # bytes of data in the file */ | ||
193 | unsigned int data_length; /* # bytes of data saved at data[] */ | ||
194 | CJPEG_WRBMP_JOCTET CJPEG_WRBMP_FAR | ||
195 | *data; /* the data contained in the marker */ | ||
196 | /* the marker length word is not counted in data_length or original_length */ | ||
197 | }; | ||
198 | |||
199 | /* Known color spaces. */ | ||
200 | |||
201 | typedef enum { | ||
202 | JCS_UNKNOWN, /* error/unspecified */ | ||
203 | JCS_GRAYSCALE, /* monochrome */ | ||
204 | JCS_RGB, /* red/green/blue */ | ||
205 | JCS_YCbCr, /* Y/Cb/Cr (also known as YUV) */ | ||
206 | JCS_CMYK, /* C/M/Y/K */ | ||
207 | JCS_YCCK /* Y/Cb/Cr/K */ | ||
208 | } CJPEG_WRBMP_J_COLOR_SPACE; | ||
209 | |||
210 | /* DCT/IDCT algorithm options. */ | ||
211 | |||
212 | typedef enum { | ||
213 | JDCT_ISLOW, /* slow but accurate integer algorithm */ | ||
214 | JDCT_IFAST, /* faster, less accurate integer method */ | ||
215 | JDCT_FLOAT /* floating-point: accurate, fast on fast HW */ | ||
216 | } CJPEG_WRBMP_J_DCT_METHOD; | ||
217 | |||
218 | /* Dithering options for decompression. */ | ||
219 | |||
220 | typedef enum { | ||
221 | JDITHER_NONE, /* no dithering */ | ||
222 | JDITHER_ORDERED, /* simple ordered dither */ | ||
223 | JDITHER_FS /* Floyd-Steinberg error diffusion dither */ | ||
224 | } CJPEG_WRBMP_J_DITHER_MODE; | ||
225 | |||
226 | |||
227 | /* Common fields between JPEG compression and decompression master structs. */ | ||
228 | |||
229 | #define cjpeg_wrbmp_jpeg_common_fields \ | ||
230 | struct cjpeg_wrbmp_jpeg_error_mgr * err; /* Error handler module */\ | ||
231 | struct cjpeg_wrbmp_jpeg_memory_mgr * mem; /* Memory manager module */\ | ||
232 | struct cjpeg_wrbmp_jpeg_progress_mgr * progress; /* Progress monitor, or NULL if none */\ | ||
233 | void * client_data; /* Available for use by application */\ | ||
234 | cjpeg_wrbmp_boolean is_decompressor; /* So common code can tell which is which */\ | ||
235 | int global_state /* For checking call sequence validity */ | ||
236 | |||
237 | /* Routines that are to be used by both halves of the library are declared | ||
238 | to receive a pointer to this structure. There are no actual instances of | ||
239 | jpeg_common_struct, only of jpeg_compress_struct and jpeg_decompress_struct. | ||
240 | */ | ||
241 | struct cjpeg_wrbmp_jpeg_common_struct { | ||
242 | cjpeg_wrbmp_jpeg_common_fields; /* Fields common to both master struct types */ | ||
243 | /* Additional fields follow in an actual jpeg_compress_struct or | ||
244 | jpeg_decompress_struct. All three structs must agree on these | ||
245 | initial fields! (This would be a lot cleaner in C++.) | ||
246 | */ | ||
247 | }; | ||
248 | |||
249 | typedef struct cjpeg_wrbmp_jpeg_common_struct | ||
250 | *cjpeg_wrbmp_j_common_ptr; | ||
251 | typedef struct cjpeg_wrbmp_jpeg_compress_struct | ||
252 | *cjpeg_wrbmp_j_compress_ptr; | ||
253 | typedef struct cjpeg_wrbmp_jpeg_decompress_struct | ||
254 | *cjpeg_wrbmp_j_decompress_ptr; | ||
255 | |||
256 | |||
257 | /* Master record for a compression instance */ | ||
258 | |||
259 | struct cjpeg_wrbmp_jpeg_compress_struct { | ||
260 | cjpeg_wrbmp_jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */ | ||
261 | |||
262 | /* Destination for compressed data */ | ||
263 | struct cjpeg_wrbmp_jpeg_destination_mgr *dest; | ||
264 | |||
265 | /* Description of source image --- these fields must be filled in by | ||
266 | outer application before starting compression. in_color_space must | ||
267 | be correct before you can even call jpeg_set_defaults(). | ||
268 | */ | ||
269 | |||
270 | CJPEG_WRBMP_JDIMENSION image_width; /* input image width */ | ||
271 | CJPEG_WRBMP_JDIMENSION image_height; /* input image height */ | ||
272 | int input_components; /* # of color components in input image */ | ||
273 | CJPEG_WRBMP_J_COLOR_SPACE in_color_space; /* colorspace of input image */ | ||
274 | |||
275 | float input_gamma; /* image gamma of input image */ | ||
276 | |||
277 | /* Compression parameters --- these fields must be set before calling | ||
278 | jpeg_start_compress(). We recommend calling jpeg_set_defaults() to | ||
279 | initialize everything to reasonable defaults, then changing anything | ||
280 | the application specifically wants to change. That way you won't get | ||
281 | burnt when new parameters are added. Also note that there are several | ||
282 | helper routines to simplify changing parameters. | ||
283 | */ | ||
284 | |||
285 | int data_precision; /* bits of precision in image data */ | ||
286 | |||
287 | int num_components; /* # of color components in JPEG image */ | ||
288 | CJPEG_WRBMP_J_COLOR_SPACE | ||
289 | jpeg_color_space; /* colorspace of JPEG image */ | ||
290 | |||
291 | cjpeg_wrbmp_jpeg_component_info *comp_info; | ||
292 | /* comp_info[i] describes component that appears i'th in SOF */ | ||
293 | |||
294 | CJPEG_WRBMP_JQUANT_TBL *quant_tbl_ptrs[4]; | ||
295 | /* ptrs to coefficient quantization tables, or NULL if not defined */ | ||
296 | |||
297 | CJPEG_WRBMP_JHUFF_TBL *dc_huff_tbl_ptrs[4]; | ||
298 | CJPEG_WRBMP_JHUFF_TBL *ac_huff_tbl_ptrs[4]; | ||
299 | /* ptrs to Huffman coding tables, or NULL if not defined */ | ||
300 | |||
301 | CJPEG_WRBMP_UINT8 | ||
302 | arith_dc_L[16]; /* L values for DC arith-coding tables */ | ||
303 | CJPEG_WRBMP_UINT8 | ||
304 | arith_dc_U[16]; /* U values for DC arith-coding tables */ | ||
305 | CJPEG_WRBMP_UINT8 | ||
306 | arith_ac_K[16]; /* Kx values for AC arith-coding tables */ | ||
307 | |||
308 | int num_scans; /* # of entries in scan_info array */ | ||
309 | const cjpeg_wrbmp_jpeg_scan_info | ||
310 | *scan_info; /* script for multi-scan file, or NULL */ | ||
311 | /* The default value of scan_info is NULL, which causes a single-scan | ||
312 | sequential JPEG file to be emitted. To create a multi-scan file, | ||
313 | set num_scans and scan_info to point to an array of scan definitions. | ||
314 | */ | ||
315 | |||
316 | cjpeg_wrbmp_boolean | ||
317 | raw_data_in; /* TRUE=caller supplies downsampled data */ | ||
318 | cjpeg_wrbmp_boolean | ||
319 | arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ | ||
320 | cjpeg_wrbmp_boolean | ||
321 | optimize_coding; /* TRUE=optimize entropy encoding parms */ | ||
322 | cjpeg_wrbmp_boolean | ||
323 | CCIR601_sampling; /* TRUE=first samples are cosited */ | ||
324 | int smoothing_factor; /* 1..100, or 0 for no input smoothing */ | ||
325 | CJPEG_WRBMP_J_DCT_METHOD dct_method; /* DCT algorithm selector */ | ||
326 | |||
327 | /* The restart interval can be specified in absolute MCUs by setting | ||
328 | restart_interval, or in MCU rows by setting restart_in_rows | ||
329 | (in which case the correct restart_interval will be figured | ||
330 | for each scan). | ||
331 | */ | ||
332 | unsigned int restart_interval; /* MCUs per restart, or 0 for no restart */ | ||
333 | int restart_in_rows; /* if > 0, MCU rows per restart interval */ | ||
334 | |||
335 | /* Parameters controlling emission of special markers. */ | ||
336 | |||
337 | cjpeg_wrbmp_boolean | ||
338 | write_JFIF_header; /* should a JFIF marker be written? */ | ||
339 | CJPEG_WRBMP_UINT8 | ||
340 | JFIF_major_version; /* What to write for the JFIF version number */ | ||
341 | CJPEG_WRBMP_UINT8 JFIF_minor_version; | ||
342 | /* These three values are not used by the JPEG code, merely copied */ | ||
343 | /* into the JFIF APP0 marker. density_unit can be 0 for unknown, */ | ||
344 | /* 1 for dots/inch, or 2 for dots/cm. Note that the pixel aspect */ | ||
345 | /* ratio is defined by X_density/Y_density even when density_unit=0. */ | ||
346 | CJPEG_WRBMP_UINT8 density_unit; /* JFIF code for pixel size units */ | ||
347 | CJPEG_WRBMP_UINT16 X_density; /* Horizontal pixel density */ | ||
348 | CJPEG_WRBMP_UINT16 Y_density; /* Vertical pixel density */ | ||
349 | cjpeg_wrbmp_boolean | ||
350 | write_Adobe_marker; /* should an Adobe marker be written? */ | ||
351 | |||
352 | /* State variable: index of next scanline to be written to | ||
353 | jpeg_write_scanlines(). Application may use this to control its | ||
354 | processing loop, e.g., "while (next_scanline < image_height)". | ||
355 | */ | ||
356 | |||
357 | CJPEG_WRBMP_JDIMENSION next_scanline; /* 0 .. image_height-1 */ | ||
358 | |||
359 | /* Remaining fields are known throughout compressor, but generally | ||
360 | should not be touched by a surrounding application. | ||
361 | */ | ||
362 | |||
363 | /* | ||
364 | These fields are computed during compression startup | ||
365 | */ | ||
366 | cjpeg_wrbmp_boolean | ||
367 | progressive_mode; /* TRUE if scan script uses progressive mode */ | ||
368 | int max_h_samp_factor; /* largest h_samp_factor */ | ||
369 | int max_v_samp_factor; /* largest v_samp_factor */ | ||
370 | |||
371 | CJPEG_WRBMP_JDIMENSION | ||
372 | total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */ | ||
373 | /* The coefficient controller receives data in units of MCU rows as defined | ||
374 | for fully interleaved scans (whether the JPEG file is interleaved or not). | ||
375 | There are v_samp_factor * DCTSIZE sample rows of each component in an | ||
376 | "iMCU" (interleaved MCU) row. | ||
377 | */ | ||
378 | |||
379 | /* | ||
380 | These fields are valid during any one scan. | ||
381 | They describe the components and MCUs actually appearing in the scan. | ||
382 | */ | ||
383 | int comps_in_scan; /* # of JPEG components in this scan */ | ||
384 | cjpeg_wrbmp_jpeg_component_info *cur_comp_info[4]; | ||
385 | /* *cur_comp_info[i] describes component that appears i'th in SOS */ | ||
386 | |||
387 | CJPEG_WRBMP_JDIMENSION MCUs_per_row; /* # of MCUs across the image */ | ||
388 | CJPEG_WRBMP_JDIMENSION | ||
389 | MCU_rows_in_scan; /* # of MCU rows in the image */ | ||
390 | |||
391 | int blocks_in_MCU; /* # of DCT blocks per MCU */ | ||
392 | int MCU_membership[10]; | ||
393 | /* MCU_membership[i] is index in cur_comp_info of component owning */ | ||
394 | /* i'th block in an MCU */ | ||
395 | |||
396 | int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ | ||
397 | |||
398 | cjpeg_wrbmp_jpeg_scan_info | ||
399 | *script_space; /* workspace for jpeg_simple_progression */ | ||
400 | int script_space_size; | ||
401 | }; | ||
402 | |||
403 | |||
404 | /* Master record for a decompression instance */ | ||
405 | |||
406 | struct cjpeg_wrbmp_jpeg_decompress_struct { | ||
407 | cjpeg_wrbmp_jpeg_common_fields; /* Fields shared with jpeg_compress_struct */ | ||
408 | |||
409 | /* Source of compressed data */ | ||
410 | struct cjpeg_wrbmp_jpeg_source_mgr *src; | ||
411 | |||
412 | /* Basic description of image --- filled in by jpeg_read_header(). */ | ||
413 | /* Application may inspect these values to decide how to process image. */ | ||
414 | |||
415 | CJPEG_WRBMP_JDIMENSION | ||
416 | image_width; /* nominal image width (from SOF marker) */ | ||
417 | CJPEG_WRBMP_JDIMENSION image_height; /* nominal image height */ | ||
418 | int num_components; /* # of color components in JPEG image */ | ||
419 | CJPEG_WRBMP_J_COLOR_SPACE | ||
420 | jpeg_color_space; /* colorspace of JPEG image */ | ||
421 | |||
422 | /* Decompression processing parameters --- these fields must be set before | ||
423 | calling jpeg_start_decompress(). Note that jpeg_read_header() initializes | ||
424 | them to default values. | ||
425 | */ | ||
426 | |||
427 | CJPEG_WRBMP_J_COLOR_SPACE out_color_space; /* colorspace for output */ | ||
428 | |||
429 | unsigned int scale_num, scale_denom; /* fraction by which to scale image */ | ||
430 | |||
431 | float output_gamma; /* image gamma wanted in output */ | ||
432 | |||
433 | cjpeg_wrbmp_boolean buffered_image; /* TRUE=multiple output passes */ | ||
434 | cjpeg_wrbmp_boolean raw_data_out; /* TRUE=downsampled data wanted */ | ||
435 | |||
436 | CJPEG_WRBMP_J_DCT_METHOD dct_method; /* IDCT algorithm selector */ | ||
437 | cjpeg_wrbmp_boolean | ||
438 | do_fancy_upsampling; /* TRUE=apply fancy upsampling */ | ||
439 | cjpeg_wrbmp_boolean | ||
440 | do_block_smoothing; /* TRUE=apply interblock smoothing */ | ||
441 | |||
442 | cjpeg_wrbmp_boolean | ||
443 | quantize_colors; /* TRUE=colormapped output wanted */ | ||
444 | /* the following are ignored if not quantize_colors: */ | ||
445 | CJPEG_WRBMP_J_DITHER_MODE | ||
446 | dither_mode; /* type of color dithering to use */ | ||
447 | cjpeg_wrbmp_boolean | ||
448 | two_pass_quantize; /* TRUE=use two-pass color quantization */ | ||
449 | int desired_number_of_colors; /* max # colors to use in created colormap */ | ||
450 | /* these are significant only in buffered-image mode: */ | ||
451 | cjpeg_wrbmp_boolean | ||
452 | enable_1pass_quant; /* enable future use of 1-pass quantizer */ | ||
453 | cjpeg_wrbmp_boolean | ||
454 | enable_EXTERNal_quant;/* enable future use of EXTERNal colormap */ | ||
455 | cjpeg_wrbmp_boolean | ||
456 | enable_2pass_quant; /* enable future use of 2-pass quantizer */ | ||
457 | |||
458 | /* Description of actual output image that will be returned to application. | ||
459 | These fields are computed by jpeg_start_decompress(). | ||
460 | You can also use jpeg_calc_output_dimensions() to determine these values | ||
461 | in advance of calling jpeg_start_decompress(). | ||
462 | */ | ||
463 | |||
464 | CJPEG_WRBMP_JDIMENSION output_width; /* scaled image width */ | ||
465 | CJPEG_WRBMP_JDIMENSION output_height; /* scaled image height */ | ||
466 | int out_color_components; /* # of color components in out_color_space */ | ||
467 | int output_components; /* # of color components returned */ | ||
468 | /* output_components is 1 (a colormap index) when quantizing colors; | ||
469 | otherwise it equals out_color_components. | ||
470 | */ | ||
471 | int rec_outbuf_height; /* min recommended height of scanline buffer */ | ||
472 | /* If the buffer passed to jpeg_read_scanlines() is less than this many rows | ||
473 | high, space and time will be wasted due to unnecessary data copying. | ||
474 | Usually rec_outbuf_height will be 1 or 2, at most 4. | ||
475 | */ | ||
476 | |||
477 | /* When quantizing colors, the output colormap is described by these fields. | ||
478 | The application can supply a colormap by setting colormap non-NULL before | ||
479 | calling jpeg_start_decompress; otherwise a colormap is created during | ||
480 | jpeg_start_decompress or jpeg_start_output. | ||
481 | The map has out_color_components rows and actual_number_of_colors columns. | ||
482 | */ | ||
483 | int actual_number_of_colors; /* number of entries in use */ | ||
484 | CJPEG_WRBMP_JSAMPARRAY | ||
485 | colormap; /* The color map as a 2-D pixel array */ | ||
486 | |||
487 | /* State variables: these variables indicate the progress of decompression. | ||
488 | The application may examine these but must not modify them. | ||
489 | */ | ||
490 | |||
491 | /* Row index of next scanline to be read from jpeg_read_scanlines(). | ||
492 | Application may use this to control its processing loop, e.g., | ||
493 | "while (output_scanline < output_height)". | ||
494 | */ | ||
495 | CJPEG_WRBMP_JDIMENSION output_scanline; /* 0 .. output_height-1 */ | ||
496 | |||
497 | /* Current input scan number and number of iMCU rows completed in scan. | ||
498 | These indicate the progress of the decompressor input side. | ||
499 | */ | ||
500 | int input_scan_number; /* Number of SOS markers seen so far */ | ||
501 | CJPEG_WRBMP_JDIMENSION | ||
502 | input_iMCU_row; /* Number of iMCU rows completed */ | ||
503 | |||
504 | /* The "output scan number" is the notional scan being displayed by the | ||
505 | output side. The decompressor will not allow output scan/row number | ||
506 | to get ahead of input scan/row, but it can fall arbitrarily far behind. | ||
507 | */ | ||
508 | int output_scan_number; /* Nominal scan number being displayed */ | ||
509 | CJPEG_WRBMP_JDIMENSION output_iMCU_row; /* Number of iMCU rows read */ | ||
510 | |||
511 | /* Current progression status. coef_bits[c][i] indicates the precision | ||
512 | with which component c's DCT coefficient i (in zigzag order) is known. | ||
513 | It is -1 when no data has yet been received, otherwise it is the point | ||
514 | transform (shift) value for the most recent scan of the coefficient | ||
515 | (thus, 0 at completion of the progression). | ||
516 | This pointer is NULL when reading a non-progressive file. | ||
517 | */ | ||
518 | int ( *coef_bits )[64]; /* -1 or current Al value for each coef */ | ||
519 | |||
520 | /* Internal JPEG parameters --- the application usually need not look at | ||
521 | these fields. Note that the decompressor output side may not use | ||
522 | any parameters that can change between scans. | ||
523 | */ | ||
524 | |||
525 | /* Quantization and Huffman tables are carried forward across input | ||
526 | datastreams when processing abbreviated JPEG datastreams. | ||
527 | */ | ||
528 | |||
529 | CJPEG_WRBMP_JQUANT_TBL *quant_tbl_ptrs[4]; | ||
530 | /* ptrs to coefficient quantization tables, or NULL if not defined */ | ||
531 | |||
532 | CJPEG_WRBMP_JHUFF_TBL *dc_huff_tbl_ptrs[4]; | ||
533 | CJPEG_WRBMP_JHUFF_TBL *ac_huff_tbl_ptrs[4]; | ||
534 | /* ptrs to Huffman coding tables, or NULL if not defined */ | ||
535 | |||
536 | /* These parameters are never carried across datastreams, since they | ||
537 | are given in SOF/SOS markers or defined to be reset by SOI. | ||
538 | */ | ||
539 | |||
540 | int data_precision; /* bits of precision in image data */ | ||
541 | |||
542 | cjpeg_wrbmp_jpeg_component_info *comp_info; | ||
543 | /* comp_info[i] describes component that appears i'th in SOF */ | ||
544 | |||
545 | cjpeg_wrbmp_boolean | ||
546 | progressive_mode; /* TRUE if SOFn specifies progressive mode */ | ||
547 | cjpeg_wrbmp_boolean | ||
548 | arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ | ||
549 | |||
550 | CJPEG_WRBMP_UINT8 | ||
551 | arith_dc_L[16]; /* L values for DC arith-coding tables */ | ||
552 | CJPEG_WRBMP_UINT8 | ||
553 | arith_dc_U[16]; /* U values for DC arith-coding tables */ | ||
554 | CJPEG_WRBMP_UINT8 | ||
555 | arith_ac_K[16]; /* Kx values for AC arith-coding tables */ | ||
556 | |||
557 | unsigned int | ||
558 | restart_interval; /* MCUs per restart interval, or 0 for no restart */ | ||
559 | |||
560 | /* These fields record data obtained from optional markers recognized by | ||
561 | the JPEG library. | ||
562 | */ | ||
563 | cjpeg_wrbmp_boolean | ||
564 | saw_JFIF_marker; /* TRUE iff a JFIF APP0 marker was found */ | ||
565 | /* Data copied from JFIF marker; only valid if saw_JFIF_marker is TRUE: */ | ||
566 | CJPEG_WRBMP_UINT8 JFIF_major_version; /* JFIF version number */ | ||
567 | CJPEG_WRBMP_UINT8 JFIF_minor_version; | ||
568 | CJPEG_WRBMP_UINT8 density_unit; /* JFIF code for pixel size units */ | ||
569 | CJPEG_WRBMP_UINT16 X_density; /* Horizontal pixel density */ | ||
570 | CJPEG_WRBMP_UINT16 Y_density; /* Vertical pixel density */ | ||
571 | cjpeg_wrbmp_boolean | ||
572 | saw_Adobe_marker; /* TRUE iff an Adobe APP14 marker was found */ | ||
573 | CJPEG_WRBMP_UINT8 | ||
574 | Adobe_transform; /* Color transform code from Adobe marker */ | ||
575 | |||
576 | cjpeg_wrbmp_boolean | ||
577 | CCIR601_sampling; /* TRUE=first samples are cosited */ | ||
578 | |||
579 | /* Aside from the specific data retained from APPn markers known to the | ||
580 | library, the uninterpreted contents of any or all APPn and COM markers | ||
581 | can be saved in a list for examination by the application. | ||
582 | */ | ||
583 | jpeg_saved_marker_ptr marker_list; /* Head of list of saved markers */ | ||
584 | |||
585 | /* Remaining fields are known throughout decompressor, but generally | ||
586 | should not be touched by a surrounding application. | ||
587 | */ | ||
588 | |||
589 | /* | ||
590 | These fields are computed during decompression startup | ||
591 | */ | ||
592 | int max_h_samp_factor; /* largest h_samp_factor */ | ||
593 | int max_v_samp_factor; /* largest v_samp_factor */ | ||
594 | |||
595 | int min_DCT_scaled_size; /* smallest DCT_scaled_size of any component */ | ||
596 | |||
597 | CJPEG_WRBMP_JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */ | ||
598 | /* The coefficient controller's input and output progress is measured in | ||
599 | units of "iMCU" (interleaved MCU) rows. These are the same as MCU rows | ||
600 | in fully interleaved JPEG scans, but are used whether the scan is | ||
601 | interleaved or not. We define an iMCU row as v_samp_factor DCT block | ||
602 | rows of each component. Therefore, the IDCT output contains | ||
603 | v_samp_factor*DCT_scaled_size sample rows of a component per iMCU row. | ||
604 | */ | ||
605 | |||
606 | CJPEG_WRBMP_JSAMPLE | ||
607 | *sample_range_limit; /* table for fast range-limiting */ | ||
608 | |||
609 | /* | ||
610 | These fields are valid during any one scan. | ||
611 | They describe the components and MCUs actually appearing in the scan. | ||
612 | Note that the decompressor output side must not use these fields. | ||
613 | */ | ||
614 | int comps_in_scan; /* # of JPEG components in this scan */ | ||
615 | cjpeg_wrbmp_jpeg_component_info *cur_comp_info[4]; | ||
616 | /* *cur_comp_info[i] describes component that appears i'th in SOS */ | ||
617 | |||
618 | CJPEG_WRBMP_JDIMENSION MCUs_per_row; /* # of MCUs across the image */ | ||
619 | CJPEG_WRBMP_JDIMENSION | ||
620 | MCU_rows_in_scan; /* # of MCU rows in the image */ | ||
621 | |||
622 | int blocks_in_MCU; /* # of DCT blocks per MCU */ | ||
623 | int MCU_membership[10]; | ||
624 | /* MCU_membership[i] is index in cur_comp_info of component owning */ | ||
625 | /* i'th block in an MCU */ | ||
626 | |||
627 | int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ | ||
628 | |||
629 | /* This field is shared between entropy decoder and marker parser. | ||
630 | It is either zero or the code of a JPEG marker that has been | ||
631 | read from the data source, but has not yet been processed. | ||
632 | */ | ||
633 | int unread_marker; | ||
634 | |||
635 | /* | ||
636 | Links to decompression subobjects (methods, private variables of modules) | ||
637 | */ | ||
638 | struct jpeg_decomp_master *master; | ||
639 | struct jpeg_d_main_controller *main; | ||
640 | struct jpeg_d_coef_controller *coef; | ||
641 | struct jpeg_d_post_controller *post; | ||
642 | struct jpeg_input_controller *inputctl; | ||
643 | struct jpeg_marker_reader *marker; | ||
644 | struct jpeg_entropy_decoder *entropy; | ||
645 | struct jpeg_inverse_dct *idct; | ||
646 | struct jpeg_upsampler *upsample; | ||
647 | struct jpeg_color_deconverter *cconvert; | ||
648 | struct jpeg_color_quantizer *cquantize; | ||
649 | }; | ||
650 | |||
651 | |||
652 | /* "Object" declarations for JPEG modules that may be supplied or called | ||
653 | directly by the surrounding application. | ||
654 | As with all objects in the JPEG library, these structs only define the | ||
655 | publicly visible methods and state variables of a module. Additional | ||
656 | private fields may exist after the public ones. | ||
657 | */ | ||
658 | |||
659 | |||
660 | /* Error handler object */ | ||
661 | |||
662 | struct cjpeg_wrbmp_jpeg_error_mgr { | ||
663 | /* Error exit handler: does not return to caller */ | ||
664 | CJPEG_WRBMP_JMETHOD( void, error_exit, | ||
665 | ( cjpeg_wrbmp_j_common_ptr cinfo ) ); | ||
666 | /* Conditionally emit a trace or warning message */ | ||
667 | CJPEG_WRBMP_JMETHOD( void, emit_message, | ||
668 | ( cjpeg_wrbmp_j_common_ptr cinfo, int msg_level ) ); | ||
669 | /* Routine that actually outputs a trace or error message */ | ||
670 | CJPEG_WRBMP_JMETHOD( void, output_message, | ||
671 | ( cjpeg_wrbmp_j_common_ptr cinfo ) ); | ||
672 | /* Format a message string for the most recent JPEG error or message */ | ||
673 | CJPEG_WRBMP_JMETHOD( void, format_message, | ||
674 | ( cjpeg_wrbmp_j_common_ptr cinfo, char *buffer ) ); | ||
675 | #define JMSG_LENGTH_MAX 200 /* recommended size of format_message buffer */ | ||
676 | /* Reset error state variables at start of a new image */ | ||
677 | CJPEG_WRBMP_JMETHOD( void, reset_error_mgr, | ||
678 | ( cjpeg_wrbmp_j_common_ptr cinfo ) ); | ||
679 | |||
680 | /* The message ID code and any parameters are saved here. | ||
681 | A message can have one string parameter or up to 8 int parameters. | ||
682 | */ | ||
683 | int msg_code; | ||
684 | #define JMSG_STR_PARM_MAX 80 | ||
685 | /* | ||
686 | union { | ||
687 | int i[8]; | ||
688 | char s[JMSG_STR_PARM_MAX]; | ||
689 | } msg_parm; | ||
690 | */ | ||
691 | /* Standard state variables for error facility */ | ||
692 | |||
693 | int trace_level; /* max msg_level that will be displayed */ | ||
694 | |||
695 | /* For recoverable corrupt-data errors, we emit a warning message, | ||
696 | but keep going unless emit_message chooses to abort. emit_message | ||
697 | should count warnings in num_warnings. The surrounding application | ||
698 | can check for bad data by seeing if num_warnings is nonzero at the | ||
699 | end of processing. | ||
700 | */ | ||
701 | long num_warnings; /* number of corrupt-data warnings */ | ||
702 | |||
703 | /* These fields point to the table(s) of error message strings. | ||
704 | An application can change the table pointer to switch to a different | ||
705 | message list (typically, to change the language in which errors are | ||
706 | reported). Some applications may wish to add additional error codes | ||
707 | that will be handled by the JPEG library error mechanism; the second | ||
708 | table pointer is used for this purpose. | ||
709 | |||
710 | First table includes all errors generated by JPEG library itself. | ||
711 | Error code 0 is reserved for a "no such error string" message. | ||
712 | */ | ||
713 | const char *const *jpeg_message_table; /* Library errors */ | ||
714 | int last_jpeg_message; /* Table contains strings 0..last_jpeg_message */ | ||
715 | /* Second table can be added by application (see cjpeg/djpeg for example). | ||
716 | It contains strings numbered first_addon_message..last_addon_message. | ||
717 | */ | ||
718 | const char *const *addon_message_table; /* Non-library errors */ | ||
719 | int first_addon_message; /* code for first string in addon table */ | ||
720 | int last_addon_message; /* code for last string in addon table */ | ||
721 | }; | ||
722 | |||
723 | |||
724 | /* Progress monitor object */ | ||
725 | |||
726 | struct cjpeg_wrbmp_jpeg_progress_mgr { | ||
727 | CJPEG_WRBMP_JMETHOD( void, progress_monitor, | ||
728 | ( cjpeg_wrbmp_j_common_ptr cinfo ) ); | ||
729 | |||
730 | long pass_counter; /* work units completed in this pass */ | ||
731 | long pass_limit; /* total number of work units in this pass */ | ||
732 | int completed_passes; /* passes completed so far */ | ||
733 | int total_passes; /* total number of passes expected */ | ||
734 | }; | ||
735 | |||
736 | |||
737 | /* Data destination object for compression */ | ||
738 | |||
739 | struct cjpeg_wrbmp_jpeg_destination_mgr { | ||
740 | CJPEG_WRBMP_JOCTET | ||
741 | *next_output_byte; /* => next byte to write in buffer */ | ||
742 | cjpeg_wrbmp_size_x | ||
743 | free_in_buffer; /* # of byte spaces remaining in buffer */ | ||
744 | |||
745 | CJPEG_WRBMP_JMETHOD( void, init_destination, | ||
746 | ( cjpeg_wrbmp_j_compress_ptr cinfo ) ); | ||
747 | CJPEG_WRBMP_JMETHOD( cjpeg_wrbmp_boolean, empty_output_buffer, | ||
748 | ( cjpeg_wrbmp_j_compress_ptr cinfo ) ); | ||
749 | CJPEG_WRBMP_JMETHOD( void, term_destination, | ||
750 | ( cjpeg_wrbmp_j_compress_ptr cinfo ) ); | ||
751 | }; | ||
752 | |||
753 | |||
754 | /* Data source object for decompression */ | ||
755 | |||
756 | struct cjpeg_wrbmp_jpeg_source_mgr { | ||
757 | const CJPEG_WRBMP_JOCTET | ||
758 | *next_input_byte; /* => next byte to read from buffer */ | ||
759 | cjpeg_wrbmp_size_x bytes_in_buffer; /* # of bytes remaining in buffer */ | ||
760 | |||
761 | CJPEG_WRBMP_JMETHOD( void, init_source, | ||
762 | ( cjpeg_wrbmp_j_decompress_ptr cinfo ) ); | ||
763 | CJPEG_WRBMP_JMETHOD( cjpeg_wrbmp_boolean, fill_input_buffer, | ||
764 | ( cjpeg_wrbmp_j_decompress_ptr cinfo ) ); | ||
765 | CJPEG_WRBMP_JMETHOD( void, skip_input_data, | ||
766 | ( cjpeg_wrbmp_j_decompress_ptr cinfo, long num_bytes ) ); | ||
767 | CJPEG_WRBMP_JMETHOD( cjpeg_wrbmp_boolean, resync_to_restart, | ||
768 | ( cjpeg_wrbmp_j_decompress_ptr cinfo, int desired ) ); | ||
769 | CJPEG_WRBMP_JMETHOD( void, term_source, | ||
770 | ( cjpeg_wrbmp_j_decompress_ptr cinfo ) ); | ||
771 | }; | ||
772 | |||
773 | |||
774 | /* Memory manager object. | ||
775 | Allocates "small" objects (a few K total), "large" objects (tens of K), | ||
776 | and "really big" objects (virtual arrays with backing store if needed). | ||
777 | The memory manager does not allow individual objects to be freed; rather, | ||
778 | each created object is assigned to a pool, and whole pools can be freed | ||
779 | at once. This is faster and more convenient than remembering exactly what | ||
780 | to free, especially where malloc()/free() are not too speedy. | ||
781 | NB: alloc routines never return NULL. They exit to error_exit if not | ||
782 | successful. | ||
783 | */ | ||
784 | |||
785 | typedef struct jvirt_sarray_control *cjpeg_wrbmp_jvirt_sarray_ptr; | ||
786 | typedef struct jvirt_barray_control *cjpeg_wrbmp_jvirt_barray_ptr; | ||
787 | |||
788 | |||
789 | struct cjpeg_wrbmp_jpeg_memory_mgr { | ||
790 | /* Method pointers */ | ||
791 | CJPEG_WRBMP_JMETHOD( void *, alloc_small, | ||
792 | ( cjpeg_wrbmp_j_common_ptr cinfo, int pool_id, | ||
793 | cjpeg_wrbmp_size_x sizeofobject ) ); | ||
794 | CJPEG_WRBMP_JMETHOD( void CJPEG_WRBMP_FAR *, alloc_large, | ||
795 | ( cjpeg_wrbmp_j_common_ptr cinfo, int pool_id, | ||
796 | cjpeg_wrbmp_size_x sizeofobject ) ); | ||
797 | CJPEG_WRBMP_JMETHOD( CJPEG_WRBMP_JSAMPARRAY, alloc_sarray, | ||
798 | ( cjpeg_wrbmp_j_common_ptr cinfo, int pool_id, | ||
799 | CJPEG_WRBMP_JDIMENSION samplesperrow, | ||
800 | CJPEG_WRBMP_JDIMENSION numrows ) ); | ||
801 | CJPEG_WRBMP_JMETHOD( CJPEG_WRBMP_JBLOCKARRAY, alloc_barray, | ||
802 | ( cjpeg_wrbmp_j_common_ptr cinfo, int pool_id, | ||
803 | CJPEG_WRBMP_JDIMENSION blocksperrow, | ||
804 | CJPEG_WRBMP_JDIMENSION numrows ) ); | ||
805 | CJPEG_WRBMP_JMETHOD( cjpeg_wrbmp_jvirt_sarray_ptr, | ||
806 | request_virt_sarray, ( cjpeg_wrbmp_j_common_ptr cinfo, | ||
807 | int pool_id, | ||
808 | cjpeg_wrbmp_boolean pre_zero, | ||
809 | CJPEG_WRBMP_JDIMENSION samplesperrow, | ||
810 | CJPEG_WRBMP_JDIMENSION numrows, | ||
811 | CJPEG_WRBMP_JDIMENSION maxaccess ) ); | ||
812 | CJPEG_WRBMP_JMETHOD( cjpeg_wrbmp_jvirt_barray_ptr, | ||
813 | request_virt_barray, ( cjpeg_wrbmp_j_common_ptr cinfo, | ||
814 | int pool_id, | ||
815 | cjpeg_wrbmp_boolean pre_zero, | ||
816 | CJPEG_WRBMP_JDIMENSION blocksperrow, | ||
817 | CJPEG_WRBMP_JDIMENSION numrows, | ||
818 | CJPEG_WRBMP_JDIMENSION maxaccess ) ); | ||
819 | CJPEG_WRBMP_JMETHOD( void, realize_virt_arrays, | ||
820 | ( cjpeg_wrbmp_j_common_ptr cinfo ) ); | ||
821 | CJPEG_WRBMP_JMETHOD( CJPEG_WRBMP_JSAMPARRAY, access_virt_sarray, | ||
822 | ( cjpeg_wrbmp_j_common_ptr cinfo, | ||
823 | cjpeg_wrbmp_jvirt_sarray_ptr ptr, | ||
824 | CJPEG_WRBMP_JDIMENSION start_row, | ||
825 | CJPEG_WRBMP_JDIMENSION num_rows, | ||
826 | cjpeg_wrbmp_boolean writable ) ); | ||
827 | CJPEG_WRBMP_JMETHOD( CJPEG_WRBMP_JBLOCKARRAY, access_virt_barray, | ||
828 | ( cjpeg_wrbmp_j_common_ptr cinfo, | ||
829 | cjpeg_wrbmp_jvirt_barray_ptr ptr, | ||
830 | CJPEG_WRBMP_JDIMENSION start_row, | ||
831 | CJPEG_WRBMP_JDIMENSION num_rows, | ||
832 | cjpeg_wrbmp_boolean writable ) ); | ||
833 | CJPEG_WRBMP_JMETHOD( void, free_pool, | ||
834 | ( cjpeg_wrbmp_j_common_ptr cinfo, int pool_id ) ); | ||
835 | CJPEG_WRBMP_JMETHOD( void, self_destruct, | ||
836 | ( cjpeg_wrbmp_j_common_ptr cinfo ) ); | ||
837 | |||
838 | /* Limit on memory allocation for this JPEG object. (Note that this is | ||
839 | merely advisory, not a guaranteed maximum; it only affects the space | ||
840 | used for virtual-array buffers.) May be changed by outer application | ||
841 | after creating the JPEG object. | ||
842 | */ | ||
843 | long max_memory_to_use; | ||
844 | |||
845 | /* Maximum allocation request accepted by alloc_large. */ | ||
846 | long max_alloc_chunk; | ||
847 | }; | ||
848 | |||
849 | |||
850 | /* Routine signature for application-supplied marker processing methods. | ||
851 | Need not pass marker code since it is stored in cinfo->unread_marker. | ||
852 | */ | ||
853 | typedef CJPEG_WRBMP_JMETHOD( cjpeg_wrbmp_boolean, | ||
854 | jpeg_marker_parser_method, | ||
855 | ( cjpeg_wrbmp_j_decompress_ptr cinfo ) ); | ||
856 | |||
857 | /* | ||
858 | The JPEG library modules define JPEG_INTERNALS before including this file. | ||
859 | The internal structure declarations are read only when that is true. | ||
860 | Applications using the library should not include jpegint.h, but may wish | ||
861 | to include jerror.h. | ||
862 | */ | ||
863 | |||
864 | #ifdef CJPEG_JPEG6B_WRBMP_JPEG_INTERNALS | ||
865 | #include "jpegint.h" /* fetch private declarations */ | ||
866 | #include "jerror.h" /* fetch error codes too */ | ||
867 | #endif | ||
868 | |||
869 | #endif /* JPEGLIB_H */ | ||
diff --git a/baseline/source/dijkstra/ChangeLog.txt b/baseline/source/dijkstra/ChangeLog.txt new file mode 100644 index 0000000..f96350b --- /dev/null +++ b/baseline/source/dijkstra/ChangeLog.txt | |||
@@ -0,0 +1,44 @@ | |||
1 | File: dijkstra.c | ||
2 | Original provenience: network section of MiBench | ||
3 | |||
4 | 2015-11-30: | ||
5 | - Replaced "NULL" with "0", remove #include of glibc_common.h | ||
6 | - Removed commented code referring to variable "qKill" | ||
7 | - Made ch, i, iPrev, iNode, iCost and iDist local variables | ||
8 | - Stripped (inconsistently applied) Hungarian notation, replaced | ||
9 | prefix "q" with prefix "queue" for global variables, renamed | ||
10 | "next_in" to "queueNext" and "qNew" to "newItem" | ||
11 | - Initialize queueHead statically (like queueCount and queueNext) | ||
12 | - Prefixed all functions and global variables with "dijkstra_", | ||
13 | renaming "dijkstra" to "dijkstra_find" | ||
14 | - Calculate a checksum in dijkstra_main, return its value in new | ||
15 | function dijkstra_return | ||
16 | - Added (empty) function dijkstra_init and a main function | ||
17 | - Reordered functions in source code: initialization- and | ||
18 | return-value-related functions first, followed by algorithm core | ||
19 | functions, followed by main functions | ||
20 | - Added function prototypes | ||
21 | - Applied code formatting with astyle as in the example | ||
22 | - Added general TACLeBench header to beginning of source code | ||
23 | |||
24 | 2016-03-15: | ||
25 | - Return 0 if checksum is as expected, -1 otherwise | ||
26 | - Make all initializations explicit | ||
27 | - Touch input matrix with volatile to rule out optimizations | ||
28 | - Add entrypoint pragma | ||
29 | |||
30 | 2016-06-14: | ||
31 | - Removed cast to make C++ compiler happy | ||
32 | |||
33 | Files: input.h, input.c | ||
34 | Original provenience: network section of MiBench | ||
35 | |||
36 | 2015-11-30: | ||
37 | - Prefix global variable "AdjMatrix" with "dijkstra_" | ||
38 | - Applied code formatting with astyle as in the example | ||
39 | |||
40 | File: glibc_common.h | ||
41 | Original provenience: network section of MiBench | ||
42 | |||
43 | 2015-11-30: | ||
44 | - Removed file | ||
diff --git a/baseline/source/dijkstra/dijkstra.c b/baseline/source/dijkstra/dijkstra.c new file mode 100644 index 0000000..af86ea6 --- /dev/null +++ b/baseline/source/dijkstra/dijkstra.c | |||
@@ -0,0 +1,204 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: dijkstra | ||
7 | |||
8 | Author: unknown | ||
9 | |||
10 | Function: dijkstra finds the shortest path between nodes in a graph | ||
11 | |||
12 | Source: network section of MiBench | ||
13 | |||
14 | Changes: Made some variables local, compute checksum | ||
15 | |||
16 | License: GPL | ||
17 | |||
18 | */ | ||
19 | |||
20 | #include "../extra.h" | ||
21 | #include "input.h" | ||
22 | |||
23 | /* | ||
24 | Definitions of symbolic constants | ||
25 | */ | ||
26 | #define NONE 9999 | ||
27 | #define OUT_OF_MEMORY -1 | ||
28 | #define QUEUE_SIZE 1000 | ||
29 | |||
30 | /* | ||
31 | Type declarations | ||
32 | */ | ||
33 | struct _NODE { | ||
34 | int dist; | ||
35 | int prev; | ||
36 | }; | ||
37 | |||
38 | struct _QITEM { | ||
39 | int node; | ||
40 | int dist; | ||
41 | int prev; | ||
42 | struct _QITEM *next; | ||
43 | }; | ||
44 | |||
45 | /* | ||
46 | Global variable definitions | ||
47 | */ | ||
48 | struct _NODE dijkstra_rgnNodes[NUM_NODES]; | ||
49 | |||
50 | int dijkstra_queueCount; | ||
51 | int dijkstra_queueNext; | ||
52 | struct _QITEM *dijkstra_queueHead; | ||
53 | struct _QITEM dijkstra_queueItems[QUEUE_SIZE]; | ||
54 | |||
55 | int dijkstra_checksum = 0; | ||
56 | |||
57 | /* | ||
58 | Forward declaration of functions | ||
59 | */ | ||
60 | void dijkstra_init( void ); | ||
61 | int dijkstra_return( void ); | ||
62 | int dijkstra_enqueue( int node, int dist, int prev ); | ||
63 | void dijkstra_dequeue( int *node, int *dist, int *prev ); | ||
64 | int dijkstra_qcount( void ); | ||
65 | int dijkstra_find( int chStart, int chEnd ); | ||
66 | void dijkstra_main( void ); | ||
67 | //int main( void ); | ||
68 | |||
69 | void dijkstra_init( void ) | ||
70 | { | ||
71 | int i, k; | ||
72 | volatile int x = 0; | ||
73 | _Pragma( "loopbound min 100 max 100" ) | ||
74 | for ( i = 0; i < NUM_NODES; i++ ) { | ||
75 | _Pragma( "loopbound min 100 max 100" ) | ||
76 | for ( k = 0; k < NUM_NODES; k++ ) { | ||
77 | dijkstra_AdjMatrix[i][k] ^= x; | ||
78 | } | ||
79 | } | ||
80 | |||
81 | dijkstra_queueCount = 0; | ||
82 | dijkstra_queueNext = 0; | ||
83 | dijkstra_queueHead = ( struct _QITEM * )0; | ||
84 | |||
85 | dijkstra_checksum = 0; | ||
86 | } | ||
87 | |||
88 | int dijkstra_return( void ) | ||
89 | { | ||
90 | return ( ( dijkstra_checksum == 25 ) ? 0 : -1 ); | ||
91 | } | ||
92 | |||
93 | int dijkstra_enqueue( int node, int dist, int prev ) | ||
94 | { | ||
95 | struct _QITEM *newItem = &dijkstra_queueItems[dijkstra_queueNext]; | ||
96 | struct _QITEM *last = dijkstra_queueHead; | ||
97 | |||
98 | if ( ++dijkstra_queueNext >= QUEUE_SIZE ) | ||
99 | return OUT_OF_MEMORY; | ||
100 | newItem->node = node; | ||
101 | newItem->dist = dist; | ||
102 | newItem->prev = prev; | ||
103 | newItem->next = 0; | ||
104 | |||
105 | if ( !last ) | ||
106 | dijkstra_queueHead = newItem; | ||
107 | else { | ||
108 | /* TODO: where does this magic loop bound come from? */ | ||
109 | _Pragma( "loopbound min 0 max 313" ) | ||
110 | while ( last->next ) | ||
111 | last = last->next; | ||
112 | last->next = newItem; | ||
113 | } | ||
114 | dijkstra_queueCount++; | ||
115 | return 0; | ||
116 | } | ||
117 | |||
118 | void dijkstra_dequeue( int *node, int *dist, int *prev ) | ||
119 | { | ||
120 | if ( dijkstra_queueHead ) { | ||
121 | *node = dijkstra_queueHead->node; | ||
122 | *dist = dijkstra_queueHead->dist; | ||
123 | *prev = dijkstra_queueHead->prev; | ||
124 | dijkstra_queueHead = dijkstra_queueHead->next; | ||
125 | dijkstra_queueCount--; | ||
126 | } | ||
127 | } | ||
128 | |||
129 | int dijkstra_qcount( void ) | ||
130 | { | ||
131 | return ( dijkstra_queueCount ); | ||
132 | } | ||
133 | |||
134 | int dijkstra_find( int chStart, int chEnd ) | ||
135 | { | ||
136 | int ch; | ||
137 | int prev, node; | ||
138 | int cost, dist; | ||
139 | int i; | ||
140 | |||
141 | _Pragma( "loopbound min 100 max 100" ) | ||
142 | for ( ch = 0; ch < NUM_NODES; ch++ ) { | ||
143 | dijkstra_rgnNodes[ch].dist = NONE; | ||
144 | dijkstra_rgnNodes[ch].prev = NONE; | ||
145 | } | ||
146 | |||
147 | if ( chStart == chEnd ) { | ||
148 | } else { | ||
149 | dijkstra_rgnNodes[chStart].dist = 0; | ||
150 | dijkstra_rgnNodes[chStart].prev = NONE; | ||
151 | |||
152 | if ( dijkstra_enqueue ( chStart, 0, NONE ) == OUT_OF_MEMORY ) | ||
153 | return OUT_OF_MEMORY; | ||
154 | |||
155 | /* TODO: where does this magic loop bound come from? */ | ||
156 | _Pragma( "loopbound min 618 max 928" ) | ||
157 | while ( dijkstra_qcount() > 0 ) { | ||
158 | dijkstra_dequeue ( &node, &dist, &prev ); | ||
159 | _Pragma( "loopbound min 100 max 100" ) | ||
160 | for ( i = 0; i < NUM_NODES; i++ ) { | ||
161 | if ( ( cost = dijkstra_AdjMatrix[node][i] ) != NONE ) { | ||
162 | if ( ( NONE == dijkstra_rgnNodes[i].dist ) || | ||
163 | ( dijkstra_rgnNodes[i].dist > ( cost + dist ) ) ) { | ||
164 | dijkstra_rgnNodes[i].dist = dist + cost; | ||
165 | dijkstra_rgnNodes[i].prev = node; | ||
166 | if ( dijkstra_enqueue ( i, dist + cost, node ) == OUT_OF_MEMORY ) | ||
167 | return OUT_OF_MEMORY; | ||
168 | } | ||
169 | } | ||
170 | } | ||
171 | } | ||
172 | } | ||
173 | return 0; | ||
174 | } | ||
175 | |||
176 | void _Pragma( "entrypoint" ) dijkstra_main( void ) | ||
177 | { | ||
178 | int i, j; | ||
179 | |||
180 | /* finds 20 shortest paths between nodes */ | ||
181 | _Pragma( "loopbound min 20 max 20" ) | ||
182 | for ( i = 0, j = NUM_NODES / 2; i < 20; i++, j++ ) { | ||
183 | j = j % NUM_NODES; | ||
184 | if ( dijkstra_find( i, j ) == OUT_OF_MEMORY ) { | ||
185 | dijkstra_checksum += OUT_OF_MEMORY; | ||
186 | return; | ||
187 | } else | ||
188 | dijkstra_checksum += dijkstra_rgnNodes[j].dist; | ||
189 | dijkstra_queueNext = 0; | ||
190 | } | ||
191 | } | ||
192 | |||
193 | int main(int argc, char** argv ) | ||
194 | { | ||
195 | SET_UP | ||
196 | for(jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
197 | START_LOOP | ||
198 | dijkstra_init(); | ||
199 | dijkstra_main(); | ||
200 | STOP_LOOP | ||
201 | } | ||
202 | WRITE_TO_FILE | ||
203 | return ( dijkstra_return() ); | ||
204 | } | ||
diff --git a/baseline/source/dijkstra/input.c b/baseline/source/dijkstra/input.c new file mode 100644 index 0000000..ab7ffd5 --- /dev/null +++ b/baseline/source/dijkstra/input.c | |||
@@ -0,0 +1,105 @@ | |||
1 | #include "input.h" | ||
2 | |||
3 | unsigned char dijkstra_AdjMatrix[NUM_NODES][NUM_NODES] = { | ||
4 | {32, 32, 54, 12, 52, 56, 8, 30, 44, 94, 44, 39, 65, 19, 51, 91, 1, 5, 89, 34, 25, 58, 20, 51, 38, 65, 30, 7, 20, 10, 51, 18, 43, 71, 97, 61, 26, 5, 57, 70, 65, 0, 75, 29, 86, 93, 87, 87, 64, 75, 88, 89, 100, 7, 40, 37, 38, 36, 44, 24, 46, 95, 43, 89, 32, 5, 15, 58, 77, 72, 95, 8, 38, 69, 37, 24, 27, 90, 77, 92, 31, 30, 80, 30, 37, 86, 33, 76, 21, 77, 100, 68, 37, 8, 22, 69, 81, 38, 94, 57}, | ||
5 | {76, 54, 65, 14, 89, 69, 4, 16, 24, 47, 7, 21, 78, 53, 17, 81, 39, 50, 22, 60, 93, 89, 94, 30, 97, 16, 65, 43, 20, 24, 67, 62, 78, 98, 42, 67, 32, 46, 49, 57, 60, 56, 44, 37, 75, 62, 17, 13, 11, 40, 40, 4, 95, 100, 0, 57, 82, 31, 0, 1, 56, 67, 30, 100, 64, 72, 66, 63, 18, 81, 19, 44, 2, 63, 81, 78, 91, 64, 91, 2, 70, 97, 73, 64, 97, 39, 21, 78, 70, 21, 46, 25, 54, 76, 92, 84, 47, 57, 46, 31}, | ||
6 | {38, 31, 75, 40, 61, 21, 84, 51, 86, 41, 19, 21, 37, 58, 86, 100, 97, 73, 44, 67, 60, 90, 58, 13, 31, 49, 63, 44, 73, 76, 76, 77, 73, 16, 83, 100, 4, 67, 51, 56, 7, 36, 77, 10, 95, 28, 10, 57, 0, 54, 23, 60, 9, 48, 39, 40, 97, 69, 84, 35, 44, 25, 11, 83, 8, 61, 83, 12, 27, 100, 34, 0, 35, 10, 10, 96, 39, 87, 53, 5, 40, 42, 66, 15, 90, 71, 55, 87, 39, 5, 88, 49, 97, 100, 32, 4, 60, 81, 83, 53}, | ||
7 | {80, 16, 53, 14, 94, 29, 77, 99, 16, 29, 3, 22, 71, 35, 4, 61, 6, 25, 13, 11, 30, 0, 27, 94, 66, 25, 64, 92, 5, 47, 44, 85, 29, 63, 65, 89, 59, 41, 87, 41, 36, 57, 29, 7, 92, 33, 34, 64, 59, 47, 76, 55, 13, 2, 48, 46, 27, 12, 37, 99, 25, 48, 83, 20, 77, 13, 9, 35, 55, 62, 76, 57, 18, 72, 64, 10, 4, 64, 74, 63, 77, 15, 18, 91, 84, 32, 36, 77, 10, 39, 75, 35, 87, 23, 22, 30, 37, 31, 65, 58}, | ||
8 | {59, 7, 14, 78, 79, 45, 54, 83, 8, 94, 12, 86, 9, 97, 42, 93, 95, 44, 70, 5, 83, 10, 40, 36, 34, 62, 66, 71, 59, 97, 95, 18, 3, 8, 62, 48, 19, 15, 98, 28, 8, 9, 80, 84, 72, 21, 43, 66, 65, 79, 71, 13, 89, 78, 49, 22, 5, 14, 59, 65, 11, 53, 49, 81, 28, 77, 29, 47, 92, 26, 41, 66, 1, 20, 50, 73, 7, 59, 4, 72, 37, 76, 86, 25, 19, 0, 14, 24, 15, 73, 55, 93, 93, 3, 73, 87, 80, 68, 100, 37}, | ||
9 | {94, 41, 3, 61, 27, 19, 33, 35, 78, 38, 73, 14, 80, 58, 5, 99, 59, 19, 22, 40, 59, 78, 32, 17, 47, 71, 3, 94, 39, 2, 97, 99, 9, 66, 60, 37, 85, 59, 38, 28, 63, 10, 8, 8, 35, 81, 6, 60, 100, 96, 66, 24, 39, 64, 41, 52, 34, 10, 11, 39, 80, 8, 4, 89, 74, 64, 92, 25, 89, 29, 19, 18, 6, 28, 26, 7, 8, 33, 67, 74, 95, 32, 99, 33, 96, 5, 51, 96, 83, 63, 35, 62, 71, 39, 16, 10, 69, 8, 35, 23}, | ||
10 | {3, 55, 41, 76, 49, 68, 83, 23, 67, 15, 97, 61, 13, 61, 60, 75, 33, 77, 71, 15, 39, 72, 43, 76, 77, 59, 53, 11, 33, 88, 34, 37, 8, 76, 79, 23, 9, 62, 46, 76, 43, 9, 2, 57, 70, 28, 31, 69, 4, 68, 84, 10, 39, 26, 52, 82, 52, 4, 93, 85, 59, 94, 21, 33, 35, 67, 57, 44, 28, 69, 86, 37, 78, 54, 94, 14, 48, 25, 83, 18, 59, 33, 28, 99, 25, 81, 46, 77, 51, 39, 62, 9, 32, 49, 43, 33, 15, 100, 77, 9}, | ||
11 | {68, 28, 47, 12, 82, 6, 26, 96, 98, 75, 13, 57, 7, 8, 55, 33, 55, 0, 76, 5, 5, 3, 15, 3, 53, 58, 36, 34, 23, 79, 10, 57, 6, 23, 69, 54, 29, 61, 49, 27, 36, 63, 84, 9, 71, 4, 8, 25, 71, 85, 97, 77, 88, 11, 46, 6, 35, 83, 7, 24, 27, 17, 82, 34, 40, 16, 88, 69, 44, 3, 62, 46, 32, 45, 55, 2, 49, 64, 94, 87, 14, 90, 63, 68, 68, 75, 75, 2, 23, 82, 27, 51, 65, 75, 85, 71, 57, 38, 39, 0}, | ||
12 | {7, 1, 46, 39, 12, 68, 41, 28, 31, 0, 14, 45, 91, 43, 12, 58, 17, 53, 26, 41, 0, 19, 92, 31, 60, 42, 1, 17, 46, 41, 84, 54, 8, 97, 93, 20, 64, 0, 14, 61, 0, 28, 72, 57, 71, 50, 81, 89, 70, 7, 96, 70, 26, 87, 1, 87, 95, 69, 70, 40, 9, 19, 94, 84, 15, 87, 71, 45, 87, 85, 5, 53, 13, 43, 10, 50, 94, 91, 38, 63, 98, 33, 99, 91, 86, 66, 43, 80, 35, 79, 20, 10, 98, 80, 61, 13, 66, 31, 24, 18}, | ||
13 | {82, 97, 72, 61, 39, 48, 11, 99, 38, 49, 27, 2, 49, 26, 59, 0, 58, 1, 81, 59, 80, 67, 70, 77, 46, 97, 56, 79, 27, 81, 63, 75, 77, 0, 36, 82, 48, 47, 81, 53, 62, 7, 55, 77, 100, 13, 78, 24, 81, 24, 83, 26, 91, 18, 2, 2, 14, 25, 47, 7, 72, 10, 83, 14, 10, 18, 96, 25, 65, 42, 78, 93, 16, 32, 70, 15, 11, 47, 5, 58, 71, 89, 84, 27, 73, 86, 96, 88, 77, 43, 95, 48, 19, 43, 62, 96, 61, 24, 20, 92}, | ||
14 | {66, 98, 85, 82, 96, 20, 64, 73, 67, 69, 30, 3, 23, 13, 97, 97, 66, 58, 50, 42, 0, 44, 57, 86, 54, 85, 82, 14, 8, 1, 73, 41, 66, 23, 22, 61, 43, 86, 0, 9, 21, 30, 79, 44, 44, 75, 40, 76, 99, 56, 17, 100, 67, 40, 51, 20, 25, 32, 0, 100, 0, 73, 40, 66, 96, 29, 93, 38, 81, 93, 13, 1, 90, 92, 46, 100, 32, 52, 75, 31, 8, 58, 97, 75, 99, 13, 61, 90, 46, 61, 89, 12, 34, 96, 78, 96, 24, 36, 34, 4}, | ||
15 | {96, 13, 73, 85, 72, 18, 50, 70, 36, 24, 67, 10, 82, 29, 51, 80, 43, 11, 35, 89, 39, 24, 0, 73, 86, 44, 34, 9, 46, 34, 80, 41, 48, 52, 92, 19, 36, 41, 55, 39, 31, 22, 49, 13, 51, 67, 59, 94, 44, 95, 48, 83, 85, 48, 21, 70, 58, 56, 45, 4, 90, 91, 11, 3, 43, 70, 89, 45, 77, 44, 84, 8, 66, 100, 88, 83, 66, 46, 77, 76, 6, 24, 59, 91, 39, 46, 26, 97, 68, 37, 0, 58, 28, 79, 27, 37, 48, 16, 82, 24}, | ||
16 | {60, 66, 32, 92, 65, 19, 74, 97, 32, 16, 72, 38, 41, 97, 96, 46, 43, 88, 42, 77, 25, 9, 34, 19, 88, 28, 56, 1, 44, 3, 25, 70, 69, 24, 27, 100, 9, 0, 96, 7, 84, 34, 12, 91, 30, 7, 36, 39, 95, 78, 16, 86, 53, 16, 71, 6, 44, 26, 7, 54, 30, 100, 23, 65, 23, 50, 65, 99, 17, 26, 73, 67, 60, 85, 57, 57, 92, 93, 96, 52, 36, 78, 4, 90, 61, 75, 96, 4, 68, 3, 25, 64, 69, 14, 28, 58, 31, 59, 56, 48}, | ||
17 | {86, 28, 81, 45, 12, 37, 1, 70, 29, 64, 89, 31, 41, 93, 20, 1, 67, 83, 73, 0, 52, 98, 64, 20, 78, 93, 78, 8, 17, 100, 22, 2, 95, 2, 48, 6, 39, 15, 43, 34, 79, 31, 66, 87, 23, 52, 54, 56, 34, 93, 57, 52, 56, 87, 72, 34, 79, 15, 42, 63, 15, 65, 65, 9, 67, 79, 82, 73, 95, 91, 6, 39, 21, 38, 92, 10, 91, 46, 67, 91, 38, 90, 43, 95, 76, 81, 28, 21, 63, 70, 84, 78, 0, 48, 53, 68, 94, 0, 40, 88}, | ||
18 | {92, 12, 93, 12, 17, 85, 23, 7, 30, 56, 64, 34, 45, 73, 28, 87, 20, 22, 7, 83, 59, 91, 26, 59, 5, 79, 26, 99, 79, 32, 52, 70, 11, 44, 83, 28, 95, 72, 1, 91, 27, 65, 25, 38, 4, 19, 24, 24, 8, 99, 73, 67, 89, 99, 25, 60, 77, 18, 24, 21, 16, 42, 58, 27, 53, 6, 55, 47, 78, 56, 38, 71, 88, 29, 8, 58, 48, 99, 48, 56, 97, 20, 89, 52, 18, 14, 78, 61, 99, 2, 48, 14, 44, 5, 42, 97, 11, 63, 10, 55}, | ||
19 | {19, 48, 25, 73, 77, 100, 30, 91, 99, 78, 13, 95, 98, 1, 12, 82, 82, 91, 8, 80, 93, 22, 61, 2, 28, 2, 66, 5, 65, 76, 61, 50, 90, 86, 22, 32, 52, 52, 22, 50, 96, 1, 10, 59, 70, 90, 40, 51, 80, 14, 98, 38, 37, 58, 40, 31, 60, 72, 2, 91, 47, 63, 7, 2, 15, 29, 34, 67, 48, 23, 83, 9, 24, 59, 69, 94, 48, 8, 11, 27, 90, 8, 31, 93, 32, 38, 90, 58, 9, 92, 48, 23, 55, 55, 25, 36, 51, 60, 69, 65}, | ||
20 | {83, 51, 74, 73, 76, 42, 67, 24, 17, 44, 17, 73, 18, 49, 65, 50, 87, 54, 7, 62, 11, 21, 85, 32, 77, 10, 68, 94, 70, 36, 24, 52, 53, 98, 24, 96, 6, 57, 86, 90, 67, 2, 62, 85, 17, 26, 34, 70, 46, 41, 32, 23, 63, 16, 56, 5, 26, 23, 65, 62, 26, 89, 80, 45, 52, 71, 6, 58, 27, 92, 47, 61, 61, 75, 45, 78, 67, 46, 14, 12, 53, 46, 36, 82, 28, 58, 87, 21, 47, 17, 83, 73, 72, 63, 85, 24, 33, 91, 48, 26}, | ||
21 | {49, 62, 53, 9, 36, 99, 53, 3, 10, 67, 82, 63, 79, 84, 45, 7, 41, 98, 95, 89, 82, 43, 27, 53, 5, 78, 77, 4, 69, 25, 98, 17, 53, 16, 93, 89, 81, 45, 58, 91, 12, 40, 54, 91, 90, 65, 64, 31, 62, 58, 86, 43, 1, 12, 63, 73, 91, 39, 44, 25, 30, 7, 8, 83, 23, 0, 38, 4, 45, 96, 61, 23, 1, 14, 81, 92, 45, 44, 89, 74, 69, 74, 83, 36, 52, 45, 75, 8, 85, 18, 100, 81, 92, 7, 30, 82, 74, 34, 52, 86}, | ||
22 | {96, 12, 8, 98, 94, 89, 55, 38, 100, 43, 11, 68, 83, 95, 3, 0, 39, 78, 9, 90, 63, 8, 37, 20, 83, 67, 1, 56, 67, 53, 7, 62, 66, 16, 25, 25, 71, 80, 63, 70, 89, 75, 3, 37, 35, 6, 38, 74, 51, 47, 30, 80, 21, 67, 100, 3, 100, 68, 26, 66, 87, 33, 27, 52, 15, 53, 43, 53, 99, 6, 22, 88, 47, 26, 24, 82, 99, 28, 21, 15, 75, 51, 95, 63, 84, 61, 66, 83, 28, 58, 14, 14, 58, 42, 33, 39, 61, 76, 92, 25}, | ||
23 | {48, 14, 79, 95, 6, 70, 76, 4, 98, 98, 87, 39, 14, 81, 1, 99, 7, 33, 81, 1, 92, 96, 16, 15, 3, 15, 54, 30, 57, 12, 55, 5, 93, 0, 100, 99, 70, 42, 69, 67, 39, 21, 5, 53, 2, 6, 51, 76, 40, 99, 78, 98, 60, 60, 79, 63, 75, 99, 59, 98, 10, 80, 2, 2, 80, 69, 67, 49, 10, 2, 16, 49, 23, 88, 68, 92, 95, 86, 68, 0, 84, 11, 64, 43, 71, 42, 72, 45, 40, 97, 42, 17, 76, 11, 86, 56, 80, 19, 4, 90}, | ||
24 | {88, 87, 4, 77, 75, 72, 69, 35, 23, 2, 35, 6, 80, 99, 15, 50, 6, 53, 61, 46, 49, 69, 29, 25, 80, 15, 47, 25, 34, 51, 14, 21, 38, 85, 98, 79, 57, 32, 13, 46, 0, 48, 53, 80, 12, 34, 29, 18, 54, 56, 30, 2, 25, 60, 94, 4, 41, 40, 30, 75, 58, 10, 62, 62, 96, 59, 40, 18, 58, 53, 64, 24, 67, 83, 4, 79, 17, 100, 63, 37, 56, 93, 39, 81, 18, 100, 51, 59, 5, 81, 100, 63, 58, 61, 24, 53, 87, 64, 37, 10}, | ||
25 | {83, 67, 34, 49, 50, 38, 27, 33, 4, 56, 70, 60, 15, 75, 6, 33, 40, 57, 59, 46, 4, 24, 75, 62, 86, 100, 81, 38, 29, 17, 48, 79, 84, 48, 27, 100, 87, 21, 32, 57, 77, 68, 16, 92, 9, 22, 92, 49, 79, 16, 95, 83, 40, 70, 10, 25, 35, 91, 29, 30, 74, 43, 8, 24, 92, 2, 23, 44, 23, 22, 0, 66, 56, 16, 58, 65, 4, 15, 14, 49, 31, 75, 32, 71, 10, 8, 63, 45, 100, 92, 42, 73, 1, 50, 97, 93, 18, 87, 36, 41}, | ||
26 | {75, 36, 7, 30, 18, 31, 96, 22, 12, 76, 71, 43, 50, 69, 80, 61, 78, 42, 72, 43, 0, 13, 15, 68, 30, 79, 60, 48, 31, 62, 56, 5, 98, 29, 1, 82, 26, 97, 3, 38, 72, 40, 81, 89, 76, 26, 15, 53, 35, 87, 96, 1, 67, 77, 69, 97, 21, 28, 10, 18, 90, 32, 23, 53, 61, 25, 34, 87, 88, 3, 91, 26, 9, 37, 81, 85, 64, 96, 3, 99, 82, 65, 100, 48, 42, 68, 10, 29, 62, 88, 48, 17, 19, 37, 70, 47, 28, 70, 100, 16}, | ||
27 | {73, 91, 8, 82, 94, 89, 33, 57, 84, 36, 21, 31, 1, 87, 46, 9, 20, 56, 4, 82, 9, 52, 99, 96, 56, 34, 8, 84, 3, 7, 66, 42, 64, 74, 24, 58, 28, 23, 81, 11, 59, 2, 9, 26, 55, 55, 1, 76, 77, 6, 23, 87, 24, 89, 82, 80, 22, 90, 30, 93, 63, 96, 34, 27, 36, 24, 51, 30, 47, 98, 8, 73, 100, 17, 99, 21, 72, 0, 97, 48, 73, 86, 34, 97, 74, 82, 43, 63, 37, 73, 55, 0, 34, 55, 94, 36, 80, 10, 67, 93}, | ||
28 | {7, 75, 65, 74, 92, 64, 95, 63, 30, 57, 77, 2, 42, 11, 65, 16, 59, 7, 45, 97, 46, 66, 63, 81, 20, 56, 83, 66, 32, 49, 59, 39, 90, 23, 12, 81, 53, 73, 9, 49, 29, 87, 17, 72, 64, 83, 54, 89, 90, 65, 85, 36, 30, 13, 83, 16, 35, 65, 83, 67, 14, 7, 73, 70, 97, 85, 51, 16, 24, 26, 65, 53, 79, 83, 91, 8, 65, 10, 98, 20, 41, 48, 22, 71, 62, 4, 54, 63, 36, 36, 30, 16, 9, 2, 86, 5, 53, 36, 88, 77}, | ||
29 | {29, 53, 97, 74, 1, 53, 83, 32, 30, 46, 52, 71, 94, 41, 42, 21, 45, 62, 85, 81, 98, 81, 97, 73, 83, 83, 44, 1, 85, 32, 45, 80, 85, 41, 54, 52, 60, 2, 84, 90, 48, 1, 61, 7, 42, 69, 96, 54, 30, 46, 0, 94, 26, 64, 32, 75, 46, 76, 42, 97, 7, 87, 43, 58, 94, 97, 9, 54, 99, 59, 43, 12, 61, 70, 19, 69, 4, 14, 22, 0, 26, 23, 60, 52, 53, 92, 93, 65, 68, 35, 61, 75, 88, 70, 33, 82, 66, 8, 35, 30}, | ||
30 | {68, 44, 8, 95, 81, 28, 63, 85, 8, 52, 86, 35, 41, 11, 53, 94, 3, 12, 58, 71, 13, 85, 11, 0, 55, 44, 82, 87, 19, 83, 84, 87, 27, 92, 81, 7, 86, 9, 58, 61, 27, 9, 62, 68, 21, 81, 61, 24, 93, 85, 61, 72, 70, 72, 73, 91, 16, 20, 77, 35, 3, 26, 88, 97, 18, 34, 3, 70, 9, 27, 30, 37, 37, 92, 4, 24, 73, 32, 48, 31, 83, 8, 3, 52, 80, 42, 8, 62, 62, 52, 63, 65, 78, 16, 27, 62, 50, 30, 32, 26}, | ||
31 | {24, 62, 63, 27, 20, 67, 51, 59, 65, 65, 90, 48, 73, 93, 66, 18, 0, 75, 47, 63, 26, 76, 94, 3, 59, 21, 66, 75, 17, 64, 0, 41, 25, 63, 68, 11, 97, 85, 70, 61, 49, 60, 8, 88, 18, 41, 6, 19, 15, 19, 48, 41, 61, 41, 10, 19, 62, 42, 95, 46, 5, 95, 53, 98, 58, 21, 8, 20, 5, 79, 81, 21, 4, 56, 8, 89, 97, 81, 74, 11, 100, 21, 18, 61, 29, 95, 46, 57, 37, 40, 2, 42, 1, 56, 5, 59, 43, 14, 79, 14}, | ||
32 | {59, 25, 35, 29, 81, 44, 84, 43, 24, 58, 20, 91, 45, 38, 17, 74, 100, 63, 31, 36, 3, 33, 44, 71, 55, 50, 96, 98, 30, 40, 12, 55, 65, 13, 50, 12, 57, 33, 55, 48, 91, 42, 38, 36, 46, 55, 76, 45, 17, 6, 81, 87, 6, 25, 57, 61, 41, 52, 25, 37, 92, 3, 92, 23, 16, 7, 35, 74, 40, 56, 21, 98, 98, 59, 100, 44, 80, 75, 89, 97, 82, 36, 50, 54, 27, 6, 14, 68, 25, 5, 4, 83, 8, 62, 5, 25, 69, 40, 65, 75}, | ||
33 | {63, 52, 72, 60, 10, 71, 70, 56, 12, 59, 52, 94, 95, 68, 13, 21, 41, 94, 55, 66, 100, 25, 48, 7, 53, 54, 99, 88, 60, 63, 62, 22, 14, 34, 49, 91, 71, 18, 46, 83, 77, 65, 42, 37, 32, 55, 24, 39, 15, 45, 4, 14, 36, 19, 21, 89, 39, 87, 76, 99, 49, 4, 88, 64, 4, 36, 54, 75, 20, 67, 24, 64, 31, 32, 0, 29, 54, 92, 69, 69, 36, 39, 83, 39, 58, 70, 27, 63, 56, 70, 28, 5, 74, 15, 35, 78, 17, 55, 18, 37}, | ||
34 | {88, 8, 0, 85, 41, 68, 14, 95, 59, 49, 63, 61, 54, 11, 66, 79, 81, 94, 41, 3, 29, 69, 75, 69, 50, 9, 46, 33, 30, 30, 71, 18, 39, 37, 2, 80, 4, 83, 40, 29, 98, 2, 57, 52, 13, 22, 30, 60, 82, 71, 29, 10, 6, 3, 79, 22, 79, 91, 56, 76, 21, 26, 94, 26, 63, 62, 72, 34, 45, 11, 29, 42, 13, 86, 94, 93, 75, 90, 18, 56, 27, 48, 33, 33, 17, 78, 55, 63, 69, 10, 38, 56, 2, 31, 48, 32, 93, 19, 32, 3}, | ||
35 | {30, 61, 46, 43, 13, 5, 1, 88, 96, 86, 9, 89, 100, 42, 21, 17, 20, 42, 80, 55, 19, 17, 10, 88, 14, 58, 19, 6, 77, 17, 77, 73, 79, 22, 15, 58, 94, 83, 45, 55, 68, 20, 43, 68, 63, 30, 51, 49, 39, 97, 3, 58, 13, 80, 45, 27, 3, 31, 100, 80, 48, 76, 52, 93, 64, 33, 50, 24, 82, 61, 45, 15, 82, 89, 49, 10, 85, 100, 59, 23, 96, 28, 81, 75, 7, 93, 68, 10, 90, 34, 56, 3, 76, 74, 97, 6, 73, 12, 30, 20}, | ||
36 | {40, 75, 35, 88, 29, 85, 64, 14, 50, 22, 37, 12, 16, 85, 87, 23, 77, 21, 100, 66, 55, 21, 35, 30, 95, 31, 2, 33, 10, 32, 53, 16, 74, 54, 70, 69, 38, 33, 83, 55, 55, 87, 67, 71, 71, 19, 60, 13, 40, 25, 45, 61, 46, 80, 58, 6, 78, 60, 39, 88, 93, 58, 70, 32, 11, 39, 0, 16, 72, 50, 71, 93, 36, 37, 29, 6, 56, 55, 19, 63, 80, 64, 23, 25, 43, 81, 98, 87, 41, 2, 40, 100, 60, 9, 31, 37, 14, 98, 53, 86}, | ||
37 | {47, 90, 44, 83, 26, 73, 55, 49, 27, 40, 11, 73, 70, 0, 64, 13, 82, 61, 66, 89, 29, 6, 88, 89, 15, 85, 93, 30, 82, 11, 82, 96, 1, 26, 78, 27, 65, 100, 42, 93, 39, 53, 31, 9, 54, 96, 89, 1, 22, 54, 90, 52, 60, 43, 6, 42, 27, 99, 72, 75, 10, 19, 70, 11, 45, 14, 4, 10, 13, 47, 69, 52, 66, 100, 27, 86, 61, 15, 53, 84, 36, 42, 35, 96, 85, 41, 37, 78, 40, 75, 53, 16, 95, 22, 94, 5, 36, 98, 15, 15}, | ||
38 | {10, 50, 34, 77, 16, 61, 28, 77, 43, 82, 60, 79, 90, 95, 74, 41, 2, 78, 18, 8, 18, 71, 24, 12, 60, 17, 85, 62, 81, 66, 78, 92, 16, 11, 34, 32, 38, 28, 75, 81, 9, 1, 59, 66, 62, 100, 6, 64, 43, 24, 72, 61, 62, 62, 40, 21, 79, 24, 49, 26, 90, 26, 84, 72, 3, 84, 70, 8, 11, 45, 89, 88, 46, 14, 53, 74, 80, 59, 38, 89, 83, 9, 15, 10, 38, 55, 31, 83, 45, 81, 8, 1, 73, 92, 73, 43, 75, 9, 51, 53}, | ||
39 | {54, 5, 40, 66, 86, 59, 39, 31, 17, 43, 19, 66, 19, 1, 77, 57, 22, 74, 39, 68, 20, 14, 35, 60, 5, 7, 2, 47, 16, 19, 66, 36, 91, 5, 68, 43, 30, 74, 40, 47, 83, 26, 79, 1, 27, 21, 24, 49, 96, 64, 83, 82, 78, 17, 41, 49, 92, 9, 62, 74, 28, 27, 77, 86, 99, 44, 95, 28, 84, 34, 41, 33, 60, 20, 34, 87, 41, 59, 36, 2, 89, 85, 85, 32, 2, 25, 47, 94, 35, 9, 67, 29, 2, 43, 81, 1, 54, 75, 96, 3}, | ||
40 | {9, 37, 36, 35, 23, 37, 22, 30, 62, 24, 33, 50, 8, 84, 48, 77, 8, 95, 70, 9, 70, 37, 5, 73, 46, 86, 74, 100, 27, 35, 70, 2, 72, 5, 37, 95, 42, 25, 25, 3, 49, 24, 19, 24, 7, 67, 0, 82, 28, 71, 92, 98, 74, 63, 70, 86, 14, 9, 52, 41, 45, 21, 43, 83, 93, 47, 44, 35, 72, 35, 4, 88, 59, 91, 11, 32, 57, 11, 13, 51, 48, 71, 49, 88, 33, 85, 40, 48, 61, 92, 55, 5, 79, 65, 54, 71, 11, 98, 72, 83}, | ||
41 | {32, 43, 70, 57, 33, 47, 89, 56, 25, 69, 7, 73, 39, 56, 27, 39, 6, 67, 53, 67, 24, 74, 38, 2, 38, 93, 73, 49, 56, 11, 99, 89, 54, 34, 11, 87, 48, 67, 42, 73, 35, 49, 11, 40, 71, 4, 45, 78, 71, 98, 10, 95, 38, 49, 63, 76, 41, 36, 92, 97, 47, 56, 51, 0, 56, 63, 53, 3, 29, 95, 76, 30, 44, 54, 70, 81, 58, 82, 58, 96, 45, 69, 56, 83, 84, 19, 59, 24, 21, 16, 87, 34, 72, 4, 0, 27, 33, 53, 31, 28}, | ||
42 | {47, 73, 58, 57, 26, 94, 38, 85, 75, 62, 80, 87, 97, 35, 69, 80, 20, 27, 3, 41, 43, 57, 75, 81, 27, 75, 8, 60, 27, 5, 88, 41, 78, 11, 98, 71, 71, 1, 55, 12, 64, 0, 99, 60, 1, 67, 40, 22, 61, 9, 63, 70, 32, 4, 51, 59, 79, 25, 18, 73, 30, 72, 13, 7, 49, 77, 78, 87, 79, 99, 99, 42, 65, 63, 68, 67, 96, 7, 55, 56, 84, 84, 93, 15, 88, 43, 75, 33, 34, 59, 72, 64, 98, 85, 37, 12, 27, 82, 99, 5}, | ||
43 | {80, 63, 13, 11, 92, 48, 44, 88, 55, 99, 9, 4, 48, 1, 20, 2, 10, 61, 1, 44, 86, 73, 74, 83, 23, 11, 62, 50, 93, 26, 22, 38, 90, 1, 15, 47, 49, 59, 34, 71, 23, 44, 75, 38, 11, 61, 40, 22, 21, 41, 32, 7, 13, 6, 56, 36, 84, 17, 52, 76, 44, 74, 80, 100, 42, 96, 46, 91, 20, 81, 27, 10, 91, 2, 48, 1, 29, 88, 90, 51, 95, 22, 58, 7, 95, 13, 9, 78, 31, 61, 19, 41, 1, 65, 40, 43, 26, 86, 100, 47}, | ||
44 | {32, 94, 23, 22, 62, 71, 91, 91, 58, 80, 41, 18, 68, 65, 25, 62, 79, 0, 5, 76, 27, 24, 83, 28, 56, 22, 37, 82, 74, 3, 95, 6, 97, 17, 95, 24, 54, 85, 14, 78, 31, 56, 96, 99, 20, 87, 27, 65, 87, 32, 6, 14, 23, 89, 8, 45, 77, 12, 26, 51, 82, 88, 23, 44, 71, 17, 68, 25, 69, 82, 2, 100, 3, 99, 64, 91, 85, 91, 21, 38, 90, 28, 52, 79, 83, 26, 23, 60, 38, 49, 10, 86, 2, 33, 29, 74, 16, 97, 65, 51}, | ||
45 | {45, 67, 16, 48, 31, 81, 4, 16, 37, 26, 20, 93, 20, 38, 71, 2, 64, 94, 62, 69, 9, 72, 54, 11, 71, 84, 51, 54, 80, 15, 4, 24, 83, 88, 39, 80, 68, 43, 62, 71, 35, 82, 64, 55, 19, 0, 58, 84, 95, 19, 18, 3, 58, 72, 81, 95, 55, 32, 14, 1, 47, 19, 92, 96, 6, 30, 76, 40, 40, 37, 77, 75, 19, 6, 30, 38, 7, 54, 88, 68, 73, 5, 71, 97, 78, 51, 58, 99, 49, 72, 66, 97, 57, 58, 58, 63, 54, 33, 69, 60}, | ||
46 | {37, 12, 1, 56, 18, 31, 60, 92, 51, 14, 59, 90, 19, 29, 87, 63, 47, 10, 28, 96, 82, 94, 58, 39, 17, 16, 68, 38, 15, 3, 64, 52, 15, 65, 74, 100, 62, 0, 92, 12, 14, 50, 2, 33, 46, 55, 63, 59, 65, 91, 20, 46, 50, 79, 51, 34, 61, 19, 72, 76, 89, 35, 95, 3, 67, 68, 69, 28, 68, 60, 41, 82, 77, 43, 82, 22, 98, 44, 47, 28, 0, 67, 74, 50, 11, 92, 84, 72, 77, 21, 14, 65, 23, 8, 34, 90, 42, 2, 84, 10}, | ||
47 | {63, 24, 58, 5, 33, 5, 94, 97, 15, 40, 24, 15, 6, 65, 32, 18, 56, 82, 56, 32, 70, 70, 97, 93, 78, 30, 48, 87, 99, 31, 97, 27, 22, 20, 32, 55, 93, 25, 52, 7, 31, 42, 90, 4, 6, 88, 89, 62, 35, 44, 60, 4, 81, 56, 63, 24, 52, 10, 10, 17, 8, 73, 44, 30, 94, 77, 51, 86, 68, 69, 59, 66, 11, 48, 70, 84, 1, 58, 12, 37, 68, 72, 41, 48, 95, 71, 73, 12, 47, 83, 29, 55, 56, 74, 51, 15, 16, 2, 67, 50}, | ||
48 | {71, 92, 15, 82, 6, 51, 66, 7, 75, 44, 44, 43, 15, 52, 57, 9, 22, 96, 89, 35, 79, 17, 91, 0, 57, 7, 82, 73, 9, 14, 90, 81, 5, 4, 28, 11, 22, 60, 19, 97, 3, 29, 5, 86, 81, 63, 61, 69, 58, 49, 71, 2, 67, 27, 69, 90, 34, 50, 29, 44, 64, 18, 91, 36, 89, 85, 47, 10, 45, 32, 7, 14, 62, 12, 100, 8, 41, 61, 44, 100, 9, 14, 68, 42, 41, 37, 99, 75, 87, 27, 85, 17, 45, 75, 53, 33, 26, 66, 10, 71}, | ||
49 | {99, 84, 85, 60, 62, 51, 68, 3, 11, 11, 69, 87, 92, 36, 96, 32, 39, 94, 74, 93, 87, 58, 9, 31, 100, 28, 30, 25, 94, 6, 62, 92, 90, 12, 17, 52, 29, 86, 55, 40, 63, 90, 94, 21, 92, 55, 53, 31, 14, 93, 23, 0, 17, 99, 98, 16, 26, 27, 7, 86, 34, 35, 78, 90, 13, 95, 41, 43, 46, 62, 49, 76, 51, 42, 97, 9, 63, 15, 40, 77, 8, 63, 43, 25, 61, 40, 7, 53, 68, 81, 38, 68, 82, 82, 57, 95, 43, 65, 37, 55}, | ||
50 | {93, 87, 30, 10, 95, 93, 19, 58, 75, 59, 0, 83, 88, 44, 74, 14, 50, 47, 67, 17, 94, 71, 51, 75, 53, 75, 69, 96, 5, 73, 16, 98, 59, 13, 7, 19, 5, 93, 43, 80, 17, 44, 28, 4, 54, 68, 18, 3, 14, 51, 88, 7, 22, 4, 48, 41, 45, 17, 2, 50, 90, 18, 14, 14, 31, 88, 33, 3, 81, 77, 49, 98, 87, 44, 2, 6, 11, 87, 76, 93, 4, 63, 66, 26, 34, 14, 33, 79, 98, 35, 29, 53, 19, 43, 67, 51, 30, 66, 20, 77}, | ||
51 | {8, 69, 75, 61, 79, 43, 33, 91, 96, 9, 49, 100, 38, 14, 25, 72, 28, 58, 51, 92, 59, 46, 44, 79, 55, 77, 96, 51, 9, 15, 28, 17, 50, 69, 45, 29, 11, 78, 86, 6, 53, 34, 73, 92, 48, 98, 29, 43, 22, 46, 34, 47, 92, 79, 25, 12, 55, 87, 64, 64, 68, 58, 48, 18, 93, 59, 13, 70, 2, 99, 76, 56, 32, 14, 13, 46, 12, 42, 89, 0, 89, 23, 13, 46, 1, 5, 59, 22, 92, 89, 53, 60, 12, 67, 44, 4, 92, 57, 74, 94}, | ||
52 | {55, 15, 15, 53, 30, 28, 99, 8, 71, 88, 75, 59, 77, 88, 4, 44, 93, 29, 66, 51, 17, 85, 10, 96, 17, 54, 100, 8, 77, 73, 2, 31, 89, 17, 50, 85, 46, 48, 93, 83, 35, 67, 7, 11, 54, 78, 21, 13, 7, 88, 64, 91, 38, 74, 87, 56, 94, 86, 64, 70, 25, 32, 67, 80, 50, 16, 64, 62, 30, 56, 10, 32, 89, 17, 9, 8, 95, 31, 21, 68, 18, 85, 59, 22, 24, 11, 78, 84, 97, 42, 19, 88, 40, 86, 67, 90, 68, 30, 17, 99}, | ||
53 | {52, 27, 30, 40, 44, 5, 49, 5, 36, 70, 73, 20, 21, 31, 43, 11, 42, 20, 96, 5, 28, 14, 93, 69, 67, 26, 24, 34, 56, 8, 99, 75, 35, 95, 14, 46, 0, 29, 51, 36, 66, 23, 57, 87, 21, 100, 98, 29, 86, 59, 0, 81, 74, 60, 15, 40, 86, 39, 40, 7, 47, 5, 82, 49, 100, 63, 95, 66, 92, 11, 2, 57, 0, 25, 9, 21, 91, 74, 17, 76, 32, 17, 22, 72, 43, 37, 78, 28, 77, 18, 36, 90, 90, 84, 38, 89, 46, 99, 21, 4}, | ||
54 | {9, 90, 27, 10, 14, 3, 98, 4, 77, 14, 46, 75, 99, 35, 47, 41, 72, 24, 70, 48, 8, 72, 4, 98, 55, 42, 53, 68, 7, 74, 72, 16, 63, 99, 26, 43, 1, 24, 13, 44, 4, 25, 19, 2, 60, 32, 10, 32, 22, 80, 46, 98, 17, 50, 95, 38, 59, 13, 5, 66, 87, 77, 48, 15, 42, 41, 58, 9, 31, 71, 54, 35, 97, 39, 4, 56, 37, 14, 88, 59, 60, 0, 56, 77, 50, 17, 81, 75, 30, 87, 6, 84, 29, 55, 99, 37, 96, 57, 47, 26}, | ||
55 | {94, 67, 27, 56, 5, 98, 12, 8, 11, 66, 67, 37, 66, 90, 80, 83, 6, 61, 23, 2, 47, 30, 86, 42, 51, 51, 80, 46, 74, 26, 38, 67, 59, 31, 23, 64, 29, 1, 38, 6, 33, 4, 44, 100, 60, 90, 48, 32, 50, 71, 1, 63, 67, 87, 5, 17, 3, 51, 29, 77, 77, 33, 10, 35, 65, 100, 65, 60, 0, 2, 32, 33, 73, 42, 99, 100, 32, 12, 31, 48, 84, 99, 11, 50, 86, 83, 34, 55, 33, 63, 32, 76, 97, 8, 77, 27, 7, 7, 53, 74}, | ||
56 | {76, 85, 73, 14, 27, 72, 13, 59, 50, 11, 73, 33, 9, 84, 50, 61, 32, 84, 16, 31, 12, 14, 6, 8, 89, 49, 1, 96, 56, 54, 35, 31, 39, 7, 46, 32, 45, 59, 57, 96, 36, 29, 95, 46, 80, 10, 73, 11, 94, 89, 9, 73, 69, 15, 47, 57, 31, 49, 18, 87, 69, 53, 18, 74, 27, 30, 5, 38, 55, 28, 33, 92, 58, 95, 3, 37, 4, 76, 14, 65, 31, 23, 37, 66, 5, 50, 23, 36, 99, 41, 22, 68, 61, 6, 7, 88, 2, 13, 92, 58}, | ||
57 | {41, 92, 15, 65, 86, 18, 1, 56, 60, 83, 87, 57, 5, 90, 23, 10, 40, 12, 12, 38, 19, 35, 72, 80, 7, 80, 33, 10, 59, 25, 34, 66, 16, 49, 31, 68, 33, 99, 23, 59, 47, 10, 16, 53, 100, 5, 29, 39, 17, 42, 44, 2, 43, 82, 49, 16, 27, 82, 93, 86, 73, 26, 18, 55, 75, 49, 89, 7, 13, 79, 33, 61, 55, 15, 80, 20, 20, 75, 60, 3, 83, 70, 5, 92, 17, 54, 8, 45, 2, 0, 30, 41, 27, 14, 63, 68, 29, 51, 42, 43}, | ||
58 | {96, 75, 70, 50, 90, 49, 71, 9, 90, 97, 79, 73, 66, 50, 64, 83, 4, 72, 27, 73, 39, 24, 80, 32, 4, 42, 100, 34, 60, 41, 43, 55, 82, 12, 5, 71, 27, 42, 46, 16, 38, 24, 89, 3, 41, 19, 52, 11, 57, 46, 84, 96, 36, 29, 27, 40, 72, 94, 40, 98, 0, 83, 18, 83, 95, 90, 53, 88, 31, 66, 71, 69, 56, 59, 38, 97, 44, 57, 7, 1, 2, 57, 97, 4, 87, 91, 10, 24, 84, 51, 21, 84, 33, 39, 66, 95, 96, 86, 82, 26}, | ||
59 | {51, 52, 96, 73, 78, 33, 70, 21, 90, 77, 89, 58, 0, 86, 28, 87, 42, 39, 10, 25, 56, 98, 75, 89, 2, 7, 49, 98, 59, 98, 24, 76, 15, 86, 48, 59, 18, 17, 81, 75, 61, 69, 99, 61, 20, 27, 13, 62, 32, 90, 53, 88, 87, 95, 42, 89, 1, 58, 53, 60, 55, 43, 1, 70, 28, 49, 29, 12, 33, 76, 53, 60, 10, 52, 87, 98, 45, 100, 25, 43, 89, 79, 97, 41, 73, 4, 96, 40, 62, 48, 66, 16, 91, 67, 53, 85, 82, 48, 98, 14}, | ||
60 | {90, 50, 74, 66, 68, 26, 63, 12, 25, 89, 55, 80, 33, 17, 20, 72, 22, 83, 11, 84, 30, 77, 67, 88, 9, 86, 72, 91, 33, 35, 72, 89, 86, 11, 54, 53, 38, 17, 32, 29, 72, 53, 76, 71, 71, 62, 42, 93, 44, 19, 76, 41, 62, 42, 28, 71, 27, 66, 27, 26, 1, 99, 14, 87, 10, 35, 5, 14, 52, 37, 43, 90, 91, 18, 60, 27, 81, 68, 19, 24, 87, 95, 31, 48, 3, 59, 18, 97, 92, 11, 90, 93, 10, 70, 45, 20, 4, 16, 34, 22}, | ||
61 | {54, 43, 11, 10, 62, 37, 37, 8, 4, 22, 99, 57, 83, 30, 4, 86, 55, 89, 49, 46, 0, 38, 38, 77, 74, 49, 97, 79, 66, 97, 0, 86, 5, 79, 62, 33, 15, 65, 41, 87, 87, 6, 9, 35, 2, 14, 21, 57, 69, 36, 3, 35, 40, 7, 11, 13, 23, 74, 92, 55, 36, 93, 40, 42, 37, 68, 75, 18, 32, 83, 71, 85, 89, 81, 19, 91, 61, 6, 13, 29, 8, 16, 65, 48, 91, 76, 62, 80, 16, 19, 34, 52, 78, 74, 94, 14, 7, 69, 33, 5}, | ||
62 | {17, 3, 56, 5, 84, 41, 62, 44, 48, 75, 40, 56, 58, 71, 71, 14, 12, 99, 94, 28, 17, 27, 81, 96, 67, 74, 76, 74, 8, 75, 45, 25, 79, 0, 97, 28, 41, 58, 39, 55, 100, 45, 11, 23, 15, 48, 37, 27, 46, 97, 56, 63, 90, 36, 24, 56, 76, 0, 96, 85, 41, 40, 9, 19, 6, 6, 14, 47, 30, 19, 2, 96, 64, 80, 18, 45, 27, 21, 72, 39, 17, 94, 1, 6, 96, 93, 28, 72, 59, 90, 56, 100, 96, 31, 86, 1, 3, 66, 15, 0}, | ||
63 | {85, 17, 96, 14, 63, 81, 59, 90, 1, 97, 28, 19, 57, 96, 92, 52, 54, 87, 23, 12, 76, 45, 79, 72, 43, 64, 39, 46, 29, 54, 12, 80, 37, 8, 60, 100, 89, 85, 55, 56, 47, 49, 75, 3, 45, 33, 56, 99, 19, 45, 78, 61, 91, 56, 99, 33, 86, 4, 45, 81, 58, 58, 60, 96, 32, 19, 61, 87, 70, 16, 42, 16, 65, 84, 20, 76, 83, 42, 41, 68, 87, 18, 28, 77, 40, 94, 76, 25, 98, 88, 5, 21, 11, 31, 16, 43, 16, 44, 29, 86}, | ||
64 | {60, 37, 1, 24, 20, 88, 67, 69, 29, 7, 36, 16, 25, 65, 59, 65, 24, 1, 56, 21, 89, 61, 42, 100, 58, 25, 8, 74, 69, 3, 25, 95, 40, 26, 85, 27, 81, 51, 96, 9, 58, 32, 25, 49, 63, 51, 80, 87, 52, 35, 74, 40, 62, 82, 5, 19, 73, 13, 59, 7, 16, 84, 1, 56, 77, 53, 49, 57, 3, 45, 66, 28, 43, 58, 77, 72, 8, 57, 58, 60, 92, 98, 66, 20, 79, 71, 39, 52, 84, 65, 59, 100, 48, 27, 21, 91, 80, 71, 47, 83}, | ||
65 | {82, 80, 10, 24, 37, 54, 62, 45, 10, 86, 71, 68, 83, 36, 88, 27, 6, 94, 79, 56, 58, 4, 55, 72, 98, 42, 63, 77, 12, 9, 25, 60, 89, 2, 50, 92, 56, 11, 2, 32, 97, 73, 100, 79, 75, 88, 73, 47, 47, 17, 2, 4, 21, 23, 42, 18, 66, 4, 61, 44, 81, 87, 71, 35, 89, 20, 27, 10, 32, 96, 42, 95, 69, 41, 40, 9, 95, 12, 23, 41, 29, 25, 11, 17, 15, 54, 1, 47, 24, 63, 57, 4, 49, 27, 40, 3, 48, 33, 13, 46}, | ||
66 | {95, 55, 40, 29, 96, 46, 39, 57, 58, 62, 98, 54, 53, 76, 71, 68, 29, 72, 81, 53, 34, 38, 24, 49, 65, 30, 52, 79, 29, 31, 24, 23, 86, 31, 53, 48, 77, 92, 4, 1, 19, 68, 55, 72, 9, 92, 6, 38, 63, 87, 58, 64, 24, 82, 79, 56, 78, 98, 34, 6, 28, 25, 29, 81, 22, 82, 28, 65, 39, 99, 66, 58, 32, 87, 97, 42, 78, 2, 46, 7, 55, 3, 71, 46, 51, 49, 1, 28, 46, 1, 34, 41, 26, 30, 21, 48, 11, 49, 80, 17}, | ||
67 | {13, 45, 75, 11, 99, 37, 53, 76, 39, 66, 83, 95, 35, 19, 40, 87, 69, 7, 81, 81, 8, 82, 21, 35, 11, 42, 49, 89, 57, 95, 5, 36, 40, 47, 14, 38, 84, 33, 80, 23, 99, 29, 84, 34, 48, 90, 87, 16, 97, 67, 64, 71, 48, 51, 72, 59, 60, 88, 48, 83, 82, 53, 86, 21, 66, 100, 25, 50, 32, 72, 39, 31, 0, 22, 65, 48, 78, 51, 31, 40, 84, 61, 10, 32, 11, 83, 57, 71, 70, 4, 20, 51, 24, 5, 39, 90, 4, 30, 5, 36}, | ||
68 | {1, 44, 33, 68, 66, 64, 16, 9, 81, 13, 49, 65, 74, 60, 97, 51, 42, 19, 89, 11, 24, 8, 28, 14, 13, 67, 70, 84, 64, 76, 86, 65, 19, 19, 100, 52, 83, 15, 61, 64, 95, 10, 95, 34, 70, 57, 85, 78, 76, 73, 55, 66, 47, 83, 80, 60, 16, 16, 9, 80, 92, 96, 10, 77, 14, 9, 28, 63, 91, 56, 93, 85, 32, 87, 18, 68, 43, 70, 45, 19, 42, 66, 85, 56, 48, 31, 82, 30, 47, 92, 9, 4, 87, 87, 81, 67, 96, 76, 29, 87}, | ||
69 | {31, 89, 37, 63, 75, 22, 97, 85, 92, 41, 70, 100, 73, 20, 55, 20, 51, 37, 17, 64, 28, 93, 68, 81, 79, 15, 47, 75, 91, 42, 27, 88, 30, 64, 16, 72, 52, 12, 56, 43, 19, 25, 43, 92, 45, 64, 78, 63, 0, 95, 26, 95, 54, 61, 75, 32, 76, 88, 73, 32, 30, 66, 86, 26, 97, 1, 98, 48, 80, 19, 92, 99, 10, 0, 56, 56, 64, 33, 85, 65, 95, 77, 59, 48, 3, 0, 46, 45, 88, 19, 77, 84, 51, 62, 10, 47, 29, 74, 96, 8}, | ||
70 | {94, 53, 73, 3, 53, 28, 25, 16, 62, 76, 47, 22, 53, 73, 70, 22, 73, 15, 68, 60, 0, 10, 44, 52, 73, 54, 65, 68, 94, 60, 77, 53, 79, 15, 23, 31, 44, 48, 14, 72, 91, 27, 94, 9, 100, 29, 31, 72, 44, 99, 32, 11, 9, 76, 29, 48, 96, 94, 15, 55, 20, 58, 8, 99, 40, 31, 97, 84, 45, 77, 55, 35, 3, 14, 44, 3, 43, 42, 75, 87, 40, 73, 64, 15, 14, 93, 29, 76, 53, 11, 31, 73, 69, 39, 37, 8, 70, 100, 58, 81}, | ||
71 | {76, 79, 16, 80, 93, 26, 49, 35, 68, 23, 89, 75, 63, 18, 56, 77, 11, 86, 53, 30, 97, 84, 2, 31, 89, 5, 6, 24, 5, 64, 4, 47, 43, 87, 26, 1, 13, 41, 3, 47, 65, 92, 88, 94, 9, 44, 70, 87, 29, 89, 16, 25, 72, 85, 56, 26, 57, 62, 50, 62, 93, 55, 8, 1, 7, 1, 2, 20, 42, 5, 34, 73, 63, 21, 66, 39, 31, 2, 25, 60, 91, 8, 51, 29, 59, 74, 55, 15, 1, 5, 77, 94, 26, 52, 95, 33, 19, 64, 20, 27}, | ||
72 | {35, 54, 0, 99, 41, 32, 37, 73, 34, 28, 99, 92, 2, 50, 20, 62, 23, 75, 77, 24, 46, 20, 85, 72, 38, 45, 72, 57, 75, 92, 84, 10, 11, 50, 75, 18, 83, 78, 91, 83, 72, 56, 74, 75, 72, 60, 36, 95, 1, 79, 85, 47, 99, 35, 19, 36, 47, 91, 59, 21, 48, 43, 31, 59, 59, 72, 77, 7, 49, 34, 91, 21, 56, 30, 96, 27, 57, 98, 88, 58, 76, 38, 4, 41, 74, 90, 43, 20, 46, 2, 7, 94, 11, 39, 18, 70, 77, 62, 78, 26}, | ||
73 | {62, 34, 47, 17, 30, 8, 10, 87, 72, 98, 44, 47, 1, 15, 54, 75, 4, 98, 61, 17, 100, 69, 10, 10, 74, 96, 46, 50, 23, 23, 42, 85, 23, 55, 68, 54, 29, 44, 40, 0, 41, 51, 14, 42, 66, 68, 84, 36, 31, 10, 53, 30, 45, 30, 6, 85, 25, 53, 1, 14, 42, 43, 65, 66, 65, 32, 86, 94, 42, 25, 95, 83, 42, 8, 91, 74, 42, 40, 10, 74, 51, 63, 70, 62, 59, 77, 47, 50, 96, 48, 64, 3, 57, 28, 35, 21, 26, 20, 15, 68}, | ||
74 | {12, 9, 16, 54, 84, 74, 28, 92, 13, 4, 65, 30, 33, 1, 93, 93, 78, 5, 42, 39, 53, 73, 42, 9, 0, 78, 98, 94, 98, 12, 61, 76, 88, 44, 30, 37, 17, 24, 28, 97, 28, 60, 27, 61, 27, 86, 53, 4, 91, 62, 9, 9, 34, 17, 85, 0, 61, 82, 94, 25, 60, 21, 0, 13, 65, 30, 50, 48, 54, 45, 44, 48, 71, 37, 9, 98, 89, 62, 68, 45, 23, 43, 54, 23, 60, 5, 24, 21, 87, 17, 12, 13, 4, 12, 26, 69, 9, 43, 83, 29}, | ||
75 | {88, 94, 78, 24, 30, 87, 21, 86, 14, 55, 30, 4, 98, 51, 27, 57, 56, 17, 44, 8, 35, 56, 21, 39, 69, 14, 75, 44, 57, 23, 73, 10, 16, 50, 34, 13, 2, 55, 99, 17, 9, 95, 21, 6, 45, 14, 29, 0, 32, 74, 9, 33, 96, 97, 38, 30, 10, 79, 74, 33, 2, 47, 43, 85, 63, 77, 98, 66, 98, 62, 83, 73, 57, 70, 45, 68, 50, 75, 69, 82, 14, 44, 81, 9, 6, 19, 40, 84, 64, 80, 16, 66, 26, 60, 51, 90, 36, 14, 55, 34}, | ||
76 | {43, 3, 73, 100, 73, 18, 67, 89, 93, 1, 37, 6, 11, 17, 82, 85, 2, 88, 68, 67, 68, 50, 99, 60, 9, 15, 49, 12, 30, 70, 12, 73, 73, 85, 38, 11, 2, 71, 67, 95, 39, 3, 67, 16, 20, 15, 0, 90, 69, 34, 22, 36, 85, 20, 63, 94, 36, 11, 72, 32, 48, 84, 71, 87, 69, 75, 65, 37, 11, 31, 99, 50, 34, 31, 33, 20, 46, 100, 76, 15, 34, 98, 17, 18, 18, 80, 78, 20, 58, 16, 18, 72, 100, 55, 58, 34, 96, 89, 72, 6}, | ||
77 | {86, 36, 23, 86, 67, 56, 6, 80, 21, 48, 61, 55, 46, 78, 39, 30, 24, 84, 50, 48, 100, 34, 19, 65, 89, 43, 100, 84, 32, 37, 56, 17, 73, 79, 3, 5, 0, 76, 85, 22, 23, 45, 43, 35, 23, 83, 65, 13, 32, 14, 61, 31, 14, 46, 96, 2, 89, 61, 52, 87, 64, 8, 4, 2, 53, 74, 8, 54, 15, 93, 42, 38, 4, 85, 40, 94, 67, 4, 6, 99, 86, 33, 96, 100, 79, 58, 69, 33, 85, 20, 20, 49, 95, 91, 17, 14, 64, 25, 68, 79}, | ||
78 | {85, 76, 83, 89, 60, 22, 82, 94, 27, 54, 58, 79, 87, 54, 78, 31, 78, 12, 64, 62, 100, 84, 10, 94, 74, 28, 7, 37, 19, 41, 82, 70, 16, 31, 58, 43, 19, 5, 36, 12, 59, 94, 91, 11, 13, 69, 42, 91, 81, 6, 53, 80, 90, 29, 40, 30, 23, 13, 33, 9, 21, 15, 79, 3, 12, 37, 46, 31, 8, 48, 44, 34, 42, 34, 45, 21, 69, 54, 12, 16, 60, 65, 96, 15, 60, 1, 45, 84, 82, 45, 93, 2, 60, 71, 5, 38, 74, 18, 69, 49}, | ||
79 | {66, 12, 83, 74, 47, 94, 96, 15, 47, 74, 31, 6, 4, 94, 89, 64, 61, 100, 13, 42, 44, 72, 44, 70, 9, 16, 7, 83, 34, 77, 98, 66, 55, 80, 40, 1, 74, 1, 84, 20, 41, 81, 94, 45, 40, 48, 8, 1, 47, 89, 43, 58, 60, 54, 27, 69, 36, 1, 18, 70, 44, 15, 1, 99, 96, 7, 0, 35, 75, 50, 21, 15, 30, 14, 60, 37, 62, 35, 38, 76, 23, 47, 33, 49, 67, 60, 18, 2, 27, 2, 38, 71, 17, 6, 70, 79, 13, 36, 80, 89}, | ||
80 | {86, 1, 3, 82, 15, 30, 18, 44, 31, 22, 19, 54, 36, 52, 69, 69, 78, 53, 72, 5, 55, 76, 42, 73, 82, 11, 17, 62, 47, 98, 50, 99, 99, 19, 81, 80, 15, 65, 23, 46, 54, 8, 66, 56, 60, 35, 24, 4, 88, 62, 76, 43, 38, 17, 82, 86, 29, 65, 47, 42, 62, 63, 41, 26, 49, 88, 6, 64, 18, 96, 10, 72, 4, 42, 94, 64, 77, 18, 34, 31, 80, 9, 40, 84, 27, 21, 70, 22, 86, 83, 64, 14, 46, 4, 40, 61, 92, 46, 24, 10}, | ||
81 | {42, 0, 48, 12, 9, 42, 76, 86, 26, 77, 83, 5, 86, 22, 56, 79, 43, 92, 0, 96, 40, 65, 76, 52, 35, 15, 12, 94, 28, 3, 3, 36, 3, 17, 48, 79, 25, 90, 65, 51, 66, 47, 23, 18, 36, 79, 97, 79, 36, 98, 40, 76, 28, 15, 28, 63, 98, 40, 56, 25, 43, 25, 27, 13, 9, 75, 92, 34, 30, 22, 86, 97, 36, 75, 81, 72, 19, 77, 16, 55, 40, 23, 97, 68, 4, 24, 31, 1, 31, 53, 93, 40, 79, 19, 19, 88, 60, 78, 88, 91}, | ||
82 | {66, 39, 53, 1, 13, 33, 39, 32, 76, 22, 53, 16, 11, 16, 84, 15, 40, 81, 17, 37, 34, 76, 44, 79, 96, 63, 32, 21, 6, 86, 11, 73, 25, 30, 40, 4, 29, 46, 3, 5, 68, 56, 21, 79, 72, 71, 60, 79, 18, 77, 82, 52, 53, 25, 97, 14, 55, 95, 35, 61, 80, 13, 33, 4, 9, 74, 9, 39, 19, 12, 10, 53, 34, 98, 98, 73, 68, 57, 17, 52, 0, 99, 3, 19, 24, 66, 100, 79, 60, 34, 39, 40, 13, 39, 44, 23, 79, 19, 28, 64}, | ||
83 | {98, 38, 16, 32, 35, 80, 71, 69, 36, 88, 21, 2, 86, 91, 21, 76, 57, 87, 20, 83, 21, 26, 22, 0, 65, 33, 90, 9, 18, 17, 73, 16, 55, 55, 14, 56, 34, 85, 92, 36, 38, 79, 5, 90, 35, 93, 66, 58, 80, 86, 41, 67, 78, 29, 67, 8, 62, 57, 17, 47, 74, 90, 63, 96, 44, 43, 17, 44, 27, 75, 47, 65, 53, 52, 54, 55, 10, 86, 12, 90, 38, 53, 56, 15, 49, 23, 24, 77, 46, 41, 23, 19, 98, 86, 81, 7, 95, 65, 18, 21}, | ||
84 | {39, 31, 52, 59, 49, 73, 13, 59, 24, 25, 49, 62, 45, 4, 44, 60, 94, 34, 36, 39, 41, 60, 25, 4, 11, 72, 12, 6, 36, 97, 94, 76, 27, 12, 34, 76, 85, 13, 34, 75, 4, 83, 3, 49, 54, 47, 8, 47, 47, 11, 53, 88, 71, 44, 59, 48, 15, 71, 54, 52, 67, 14, 27, 94, 26, 27, 69, 77, 6, 69, 51, 10, 52, 54, 26, 72, 67, 0, 85, 80, 11, 37, 34, 48, 81, 93, 97, 97, 29, 16, 14, 96, 30, 7, 55, 56, 34, 90, 99, 6}, | ||
85 | {58, 50, 16, 76, 70, 8, 47, 3, 9, 32, 49, 87, 69, 83, 35, 16, 75, 98, 79, 3, 13, 93, 65, 44, 100, 86, 66, 100, 75, 65, 5, 33, 81, 88, 75, 16, 97, 22, 86, 72, 54, 35, 58, 89, 17, 59, 71, 59, 56, 49, 28, 70, 41, 60, 80, 40, 45, 11, 5, 20, 42, 10, 19, 22, 99, 94, 5, 61, 82, 91, 32, 1, 25, 90, 57, 9, 49, 27, 34, 71, 43, 62, 40, 50, 21, 86, 91, 33, 98, 62, 53, 39, 73, 38, 28, 37, 98, 33, 98, 80}, | ||
86 | {90, 29, 47, 82, 85, 3, 57, 100, 98, 91, 71, 40, 18, 77, 90, 6, 63, 46, 39, 26, 8, 58, 31, 47, 96, 59, 84, 59, 58, 47, 38, 48, 76, 52, 96, 26, 55, 52, 26, 52, 42, 63, 58, 26, 5, 48, 32, 68, 60, 37, 60, 68, 95, 92, 14, 56, 16, 64, 15, 75, 10, 19, 89, 52, 71, 84, 79, 26, 1, 71, 44, 43, 100, 2, 35, 4, 16, 68, 39, 76, 4, 99, 10, 100, 56, 91, 21, 73, 55, 36, 13, 31, 56, 1, 84, 93, 51, 28, 85, 52}, | ||
87 | {65, 29, 61, 64, 98, 96, 68, 13, 29, 73, 55, 34, 38, 65, 100, 94, 56, 87, 32, 77, 23, 45, 7, 45, 12, 91, 37, 29, 85, 22, 47, 49, 17, 74, 12, 14, 70, 47, 94, 65, 86, 48, 99, 23, 13, 64, 84, 35, 51, 15, 11, 40, 27, 18, 51, 5, 76, 88, 1, 26, 76, 48, 76, 59, 22, 54, 73, 58, 67, 32, 22, 53, 81, 88, 76, 60, 17, 25, 95, 34, 7, 5, 40, 34, 90, 91, 5, 31, 45, 6, 58, 20, 21, 33, 80, 9, 53, 18, 67, 20}, | ||
88 | {51, 55, 73, 31, 42, 14, 57, 26, 40, 51, 60, 13, 22, 0, 47, 78, 91, 18, 9, 1, 92, 33, 22, 79, 32, 68, 88, 85, 86, 20, 71, 2, 75, 43, 100, 84, 24, 56, 9, 30, 6, 35, 43, 95, 1, 56, 73, 59, 40, 48, 60, 31, 81, 82, 9, 12, 15, 97, 63, 1, 83, 34, 70, 58, 43, 70, 41, 67, 25, 16, 63, 99, 17, 5, 93, 19, 27, 31, 78, 68, 79, 37, 99, 59, 86, 75, 37, 0, 37, 67, 68, 20, 0, 38, 78, 43, 7, 85, 77, 99}, | ||
89 | {67, 39, 97, 84, 11, 90, 2, 38, 20, 46, 5, 100, 50, 71, 24, 35, 45, 28, 1, 82, 95, 36, 68, 61, 40, 11, 70, 47, 62, 46, 11, 28, 52, 8, 79, 63, 98, 81, 67, 84, 94, 39, 49, 43, 9, 40, 78, 20, 68, 45, 68, 28, 81, 36, 89, 20, 47, 58, 33, 9, 71, 45, 37, 22, 53, 82, 51, 16, 29, 84, 100, 22, 22, 15, 65, 98, 55, 8, 17, 22, 19, 86, 16, 0, 21, 4, 87, 34, 28, 20, 43, 99, 31, 47, 87, 50, 28, 3, 66, 57}, | ||
90 | {88, 31, 45, 76, 46, 9, 74, 0, 84, 91, 89, 3, 42, 4, 3, 63, 8, 56, 98, 3, 76, 6, 1, 73, 53, 55, 22, 48, 58, 54, 71, 11, 86, 16, 88, 98, 92, 61, 99, 76, 17, 53, 79, 60, 58, 48, 89, 32, 3, 52, 35, 46, 59, 3, 18, 78, 24, 7, 92, 48, 61, 63, 60, 12, 79, 47, 10, 70, 74, 75, 11, 91, 27, 90, 16, 51, 3, 5, 84, 74, 57, 85, 19, 15, 54, 3, 60, 44, 10, 51, 93, 38, 13, 52, 50, 58, 65, 60, 28, 38}, | ||
91 | {34, 39, 95, 28, 96, 11, 79, 99, 16, 28, 38, 73, 80, 57, 55, 100, 27, 14, 44, 3, 65, 36, 41, 79, 54, 92, 2, 18, 17, 30, 56, 18, 36, 50, 46, 98, 27, 24, 62, 43, 19, 0, 83, 99, 23, 37, 98, 50, 51, 41, 20, 82, 43, 61, 26, 97, 18, 29, 14, 2, 25, 36, 20, 61, 53, 66, 24, 80, 56, 87, 90, 41, 87, 72, 39, 9, 8, 3, 26, 25, 44, 46, 73, 54, 73, 100, 50, 58, 95, 31, 60, 19, 67, 80, 47, 86, 11, 71, 32, 33}, | ||
92 | {23, 21, 75, 9, 93, 80, 86, 67, 83, 11, 58, 94, 23, 30, 47, 96, 96, 63, 19, 56, 94, 79, 42, 27, 24, 89, 12, 1, 25, 44, 35, 49, 65, 76, 58, 23, 21, 9, 90, 4, 87, 13, 64, 9, 10, 77, 72, 72, 39, 91, 28, 33, 70, 70, 60, 60, 24, 72, 62, 49, 83, 63, 64, 47, 4, 89, 37, 25, 98, 26, 96, 85, 6, 25, 94, 16, 1, 31, 54, 41, 22, 48, 74, 58, 17, 100, 17, 7, 71, 45, 57, 19, 74, 20, 67, 78, 75, 3, 70, 73}, | ||
93 | {96, 65, 57, 68, 57, 16, 50, 58, 14, 4, 99, 36, 52, 38, 60, 36, 37, 43, 43, 75, 89, 66, 94, 62, 53, 60, 6, 27, 29, 76, 100, 92, 6, 22, 59, 63, 5, 9, 21, 19, 13, 86, 21, 31, 24, 47, 67, 61, 90, 10, 35, 44, 42, 29, 73, 95, 55, 79, 22, 51, 54, 88, 42, 26, 10, 0, 56, 82, 9, 77, 67, 89, 28, 88, 20, 52, 34, 53, 80, 90, 29, 14, 34, 72, 9, 6, 66, 65, 85, 54, 82, 4, 42, 23, 97, 18, 23, 52, 100, 100}, | ||
94 | {95, 66, 54, 23, 19, 40, 75, 19, 60, 20, 8, 89, 35, 42, 60, 10, 48, 93, 41, 99, 46, 22, 69, 54, 45, 66, 38, 35, 17, 37, 0, 12, 69, 54, 35, 54, 61, 76, 73, 20, 97, 48, 8, 98, 90, 35, 7, 4, 94, 15, 69, 5, 37, 38, 60, 83, 3, 98, 84, 20, 1, 84, 99, 36, 3, 100, 57, 64, 76, 96, 50, 38, 43, 25, 35, 100, 60, 8, 70, 53, 23, 38, 58, 27, 42, 84, 76, 11, 48, 59, 99, 15, 8, 97, 51, 11, 97, 7, 42, 38}, | ||
95 | {70, 58, 76, 12, 83, 77, 11, 42, 51, 47, 61, 75, 86, 86, 68, 94, 69, 43, 5, 16, 1, 3, 31, 9, 100, 49, 87, 62, 22, 95, 100, 92, 53, 41, 71, 35, 17, 48, 44, 69, 96, 4, 9, 47, 56, 77, 40, 25, 86, 45, 7, 87, 48, 5, 62, 14, 20, 48, 76, 8, 43, 76, 67, 62, 16, 37, 97, 0, 85, 6, 35, 80, 78, 10, 26, 33, 53, 33, 24, 38, 78, 32, 24, 93, 3, 52, 6, 90, 100, 48, 98, 8, 90, 64, 70, 6, 67, 33, 73, 52}, | ||
96 | {39, 7, 98, 16, 84, 91, 16, 36, 23, 40, 74, 67, 38, 64, 59, 41, 15, 31, 97, 81, 80, 61, 56, 35, 24, 25, 41, 92, 24, 80, 9, 30, 53, 6, 12, 36, 97, 28, 72, 86, 69, 11, 53, 6, 75, 78, 14, 56, 76, 10, 37, 55, 37, 93, 56, 62, 84, 98, 19, 75, 43, 28, 4, 97, 0, 83, 32, 98, 11, 71, 49, 80, 82, 1, 52, 23, 80, 66, 45, 55, 43, 48, 76, 80, 40, 31, 7, 91, 95, 93, 31, 38, 20, 1, 0, 88, 84, 32, 51, 95}, | ||
97 | {2, 100, 40, 85, 1, 59, 74, 47, 91, 18, 68, 33, 67, 9, 80, 73, 6, 53, 29, 1, 46, 60, 5, 32, 61, 5, 86, 11, 3, 36, 72, 6, 36, 12, 57, 37, 71, 97, 50, 61, 14, 17, 61, 47, 93, 6, 20, 99, 25, 15, 66, 37, 76, 71, 36, 2, 42, 21, 80, 12, 58, 52, 18, 94, 30, 41, 97, 67, 3, 12, 94, 17, 96, 54, 31, 88, 26, 51, 86, 18, 66, 52, 55, 7, 89, 91, 77, 98, 79, 56, 9, 36, 74, 94, 96, 3, 34, 92, 70, 37}, | ||
98 | {3, 64, 20, 65, 84, 51, 52, 77, 68, 37, 95, 0, 55, 15, 7, 10, 6, 50, 7, 85, 73, 16, 87, 46, 9, 82, 50, 9, 39, 86, 12, 8, 49, 32, 73, 100, 50, 24, 76, 17, 27, 70, 17, 83, 51, 92, 93, 23, 7, 66, 74, 80, 82, 60, 26, 57, 41, 42, 66, 80, 27, 78, 88, 77, 76, 26, 42, 25, 50, 17, 9, 78, 53, 26, 26, 3, 84, 85, 27, 92, 50, 0, 71, 31, 27, 63, 88, 34, 4, 19, 14, 32, 97, 68, 75, 72, 95, 16, 64, 10}, | ||
99 | {100, 73, 88, 52, 65, 80, 21, 49, 64, 14, 6, 13, 15, 77, 10, 8, 6, 64, 42, 10, 83, 22, 8, 45, 91, 49, 84, 51, 65, 47, 27, 30, 86, 82, 82, 50, 61, 70, 65, 92, 84, 71, 71, 65, 14, 82, 73, 20, 11, 15, 97, 61, 37, 5, 72, 94, 54, 55, 10, 86, 68, 38, 15, 53, 19, 64, 70, 80, 33, 34, 37, 16, 72, 8, 82, 86, 56, 54, 5, 33, 69, 1, 94, 73, 73, 66, 66, 27, 87, 77, 79, 55, 14, 94, 74, 100, 57, 43, 45, 90}, | ||
100 | {44, 83, 73, 15, 91, 54, 0, 46, 74, 72, 79, 9, 39, 39, 82, 12, 71, 13, 5, 57, 90, 84, 11, 70, 77, 52, 69, 0, 95, 14, 56, 38, 63, 28, 19, 53, 48, 19, 65, 89, 57, 9, 98, 97, 14, 45, 8, 85, 58, 80, 42, 14, 63, 19, 50, 5, 71, 86, 72, 66, 66, 28, 70, 28, 56, 90, 81, 71, 75, 11, 59, 32, 87, 56, 28, 1, 67, 2, 86, 91, 82, 27, 71, 10, 47, 21, 82, 17, 6, 54, 49, 38, 82, 86, 66, 3, 75, 12, 74, 15}, | ||
101 | {23, 99, 47, 9, 20, 75, 10, 87, 43, 63, 44, 91, 90, 14, 0, 2, 35, 83, 87, 7, 2, 1, 45, 84, 87, 77, 53, 27, 89, 94, 43, 78, 92, 90, 88, 12, 31, 64, 65, 74, 93, 8, 65, 49, 23, 31, 51, 24, 80, 3, 99, 82, 5, 9, 31, 92, 87, 85, 19, 41, 78, 62, 19, 35, 17, 73, 13, 48, 2, 79, 89, 96, 53, 19, 44, 42, 50, 61, 67, 30, 65, 31, 78, 36, 40, 9, 94, 93, 60, 12, 34, 3, 40, 53, 38, 24, 92, 52, 72, 94}, | ||
102 | {97, 60, 89, 15, 79, 99, 58, 96, 26, 91, 92, 91, 21, 69, 93, 27, 44, 86, 20, 3, 65, 54, 6, 71, 73, 11, 95, 64, 29, 67, 23, 92, 93, 79, 6, 38, 77, 30, 33, 2, 20, 91, 59, 7, 59, 51, 1, 3, 3, 21, 73, 68, 41, 46, 4, 80, 57, 100, 9, 86, 32, 32, 43, 24, 10, 49, 28, 88, 80, 27, 56, 66, 17, 82, 40, 77, 32, 41, 46, 1, 28, 85, 35, 69, 30, 40, 14, 53, 39, 23, 4, 71, 55, 47, 61, 66, 97, 56, 19, 42}, | ||
103 | {83, 41, 74, 0, 22, 80, 77, 21, 20, 89, 22, 14, 73, 58, 83, 70, 98, 63, 22, 2, 86, 27, 39, 41, 40, 66, 73, 36, 21, 92, 44, 4, 32, 85, 4, 21, 64, 47, 42, 85, 1, 64, 65, 40, 88, 48, 9, 51, 77, 99, 53, 63, 92, 58, 3, 31, 24, 76, 34, 11, 33, 44, 15, 31, 28, 86, 52, 93, 99, 94, 43, 100, 24, 7, 40, 11, 21, 15, 63, 99, 13, 82, 61, 4, 40, 30, 2, 30, 72, 36, 41, 71, 80, 23, 1, 8, 8, 20, 67, 7} | ||
104 | }; | ||
105 | |||
diff --git a/baseline/source/dijkstra/input.h b/baseline/source/dijkstra/input.h new file mode 100644 index 0000000..9701828 --- /dev/null +++ b/baseline/source/dijkstra/input.h | |||
@@ -0,0 +1,8 @@ | |||
1 | #ifndef INPUT_H | ||
2 | #define INPUT_H | ||
3 | |||
4 | #define NUM_NODES 100 | ||
5 | |||
6 | extern unsigned char dijkstra_AdjMatrix[NUM_NODES][NUM_NODES]; | ||
7 | |||
8 | #endif /* INPUT_H */ | ||
diff --git a/baseline/source/epic/ChangeLog.txt b/baseline/source/epic/ChangeLog.txt new file mode 100644 index 0000000..5aad4f5 --- /dev/null +++ b/baseline/source/epic/ChangeLog.txt | |||
@@ -0,0 +1,56 @@ | |||
1 | Files: epic.c epic_data.h epic_data.c | ||
2 | Original provenience: MediaBench benchmark suite, | ||
3 | http://euler.slu.edu/~fritts/mediabench/mb1/index.html | ||
4 | |||
5 | 2016-02-03: | ||
6 | - Added TACLeBench header, also kept original copyright notice | ||
7 | - Removed commented-out code | ||
8 | - Removed seemingly unnecessary empty lines | ||
9 | - Removed unused function, variable, macro and type declarations except where | ||
10 | they may help understanding the program. | ||
11 | - Slightly changed wording of original comments to keep them in line with the | ||
12 | modified/removed code parts. | ||
13 | - Separated epic.c to epic.c and epic.h | ||
14 | - Added proper '#ifndef __EPIC_DATA_H_' and friends to epic_data.h | ||
15 | - Moved around all the following so that they are in the given order just after | ||
16 | the header | ||
17 | - macro definitions | ||
18 | - forward declaration of functions | ||
19 | - declaration of global variables | ||
20 | - Added a new main function that first calls init function then the old main | ||
21 | function sans init | ||
22 | - Annotated epic_main() as the entry point of the analysis | ||
23 | - Applied code formatting according to the following rules | ||
24 | - Lines shall not be wider than 80 characters; whenever possible, appropriate | ||
25 | line breaks shall be inserted to keep lines below 80 characters | ||
26 | - Indentation is done using whitespaces only, no tabs. Code is indented by | ||
27 | two whitespaces | ||
28 | - Two empty lines are put between any two functions | ||
29 | - In non-empty lists or index expressions, opening '(' and '[' are followed by | ||
30 | one whitespace, closing ')' and ']' are preceded by one whitespace | ||
31 | - In comma- or colon-separated argument lists, one whitespace is put after | ||
32 | each comma/colon | ||
33 | - Names of functions and global variables all start with a benchmark-specific | ||
34 | prefix (here: epic_) followed by lowercase letter | ||
35 | - For pointer types, one whitespace is put before the '*' | ||
36 | - Operators within expressions shall be preceded and followed by one | ||
37 | whitespace | ||
38 | - Code of then- and else-parts of if-then-else statements shall be put in | ||
39 | separate lines, not in the same lines as the if-condition or the keyword | ||
40 | "else" | ||
41 | - Opening braces '{' denoting the beginning of code for some if-else or loop | ||
42 | body shall be put at the end of the same line where the keywords "if", | ||
43 | "else", "for", "while" etc. occur | ||
44 | |||
45 | 2016-10-10: | ||
46 | - removed unused parameter 'char *edges' in epic_internal_filter() | ||
47 | - included input data definition in epic.c, and removed epic_data.c and epic_data.h | ||
48 | |||
49 | 2016-10-12: | ||
50 | - added initial value to variable 'rt_edge_res_pos' (in case the first for loop | ||
51 | at line 775) is not executed) | ||
52 | - added initial value to variable 'first_col' (in case the first for loop | ||
53 | at line 775) is not executed) | ||
54 | |||
55 | 2016-10_14: | ||
56 | - added epic_return() function | ||
diff --git a/baseline/source/epic/epic.c b/baseline/source/epic/epic.c new file mode 100644 index 0000000..13ba442 --- /dev/null +++ b/baseline/source/epic/epic.c | |||
@@ -0,0 +1,1141 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: epic | ||
7 | |||
8 | Author: Designed by Eero P. Simoncelli and Edward H. Adelson | ||
9 | Written by Eero P. Simoncelli | ||
10 | Developed at the Vision Science Group, The Media Laboratory | ||
11 | Copyright 1989, Massachusetts Institute of Technology | ||
12 | All rights reserved. | ||
13 | |||
14 | Function: Efficient Pyramid Image Coder | ||
15 | |||
16 | Source: MediaBench | ||
17 | |||
18 | |||
19 | Original name: epic | ||
20 | |||
21 | Changes: no major functional changes | ||
22 | |||
23 | License: | ||
24 | Permission to use, copy, or modify this software and its documentation | ||
25 | for educational and research purposes only and without fee is hereby | ||
26 | granted, provided that this copyright notice appear on all copies and | ||
27 | supporting documentation. For any other uses of this software, in | ||
28 | original or modified form, including but not limited to distribution | ||
29 | in whole or in part, specific prior permission must be obtained from | ||
30 | M.I.T. and the authors. These programs shall not be used, rewritten, | ||
31 | or adapted as the basis of a commercial software or hardware product | ||
32 | without first obtaining appropriate licenses from M.I.T. M.I.T. makes | ||
33 | no representations about the suitability of this software for any | ||
34 | purpose. It is provided "as is" without express or implied warranty. | ||
35 | */ | ||
36 | |||
37 | |||
38 | #include "../extra.h" | ||
39 | #include "epic.h" | ||
40 | |||
41 | #define X_SIZE 64 | ||
42 | #define Y_SIZE 64 | ||
43 | |||
44 | float epic_image[] = { | ||
45 | 0x89, 0x88, 0x87, 0x86, 0x89, 0x87, 0x84, 0x86, | ||
46 | 0x83, 0x89, 0x82, 0x83, 0x84, 0x81, 0x80, 0x80, | ||
47 | 0x81, 0x83, 0x88, 0x8A, 0x8E, 0x90, 0x96, 0x98, | ||
48 | 0x95, 0x92, 0x93, 0x88, 0x78, 0x7B, 0x60, 0x52, | ||
49 | 0x41, 0x3F, 0x3A, 0x46, 0x46, 0x48, 0x49, 0x48, | ||
50 | 0x4F, 0x4A, 0x49, 0x50, 0x4C, 0x4B, 0x4D, 0x4C, | ||
51 | 0x4E, 0x4E, 0x4A, 0x49, 0x4D, 0x54, 0x50, 0x59, | ||
52 | 0x51, 0x5A, 0x5E, 0x5A, 0x5D, 0x61, 0x59, 0x65, | ||
53 | 0x63, 0x65, 0x60, 0x62, 0x68, 0x67, 0x64, 0x61, | ||
54 | 0x64, 0x5E, 0x66, 0x63, 0x63, 0x61, 0x67, 0x68, | ||
55 | 0x62, 0x64, 0x66, 0x67, 0x64, 0x63, 0x66, 0x64, | ||
56 | 0x67, 0x66, 0x65, 0x64, 0x64, 0x6A, 0x66, 0x65, | ||
57 | 0x68, 0x66, 0x69, 0x67, 0x6A, 0x66, 0x68, 0x66, | ||
58 | 0x6C, 0x65, 0x69, 0x64, 0x65, 0x64, 0x66, 0x62, | ||
59 | 0x63, 0x68, 0x68, 0x65, 0x64, 0x64, 0x62, 0x63, | ||
60 | 0x68, 0x65, 0x66, 0x69, 0x66, 0x65, 0x61, 0x66, | ||
61 | 0x6E, 0x69, 0x64, 0x61, 0x63, 0x63, 0x66, 0x63, | ||
62 | 0x62, 0x64, 0x60, 0x68, 0x63, 0x61, 0x62, 0x65, | ||
63 | 0x60, 0x63, 0x60, 0x62, 0x60, 0x5E, 0x61, 0x62, | ||
64 | 0x5D, 0x5C, 0x57, 0x5B, 0x58, 0x53, 0x54, 0x47, | ||
65 | 0x49, 0x54, 0x5C, 0x6B, 0x6F, 0x77, 0x7F, 0x80, | ||
66 | 0x88, 0x8A, 0x8C, 0x85, 0x7A, 0x7D, 0x7F, 0x7D, | ||
67 | 0x80, 0x80, 0x81, 0x80, 0x85, 0x82, 0x81, 0x7E, | ||
68 | 0x80, 0x7F, 0x7F, 0x7E, 0x7D, 0x7E, 0x83, 0x7F, | ||
69 | 0x81, 0x83, 0x87, 0x82, 0x83, 0x88, 0x84, 0x82, | ||
70 | 0x82, 0x8A, 0xB3, 0xC5, 0xCD, 0xCF, 0xD4, 0xD3, | ||
71 | 0xD6, 0xCC, 0xB5, 0x80, 0x4E, 0x48, 0x4D, 0x4D, | ||
72 | 0x57, 0x5A, 0x59, 0x5C, 0x62, 0x58, 0x5C, 0x5B, | ||
73 | 0x5B, 0x62, 0x5D, 0x5C, 0x59, 0x5C, 0x5A, 0x59, | ||
74 | 0x5D, 0x5F, 0x5B, 0x5F, 0x60, 0x5E, 0x5E, 0x57, | ||
75 | 0x5F, 0x5F, 0x60, 0x61, 0x5C, 0x61, 0x60, 0x5B, | ||
76 | 0x56, 0x56, 0x57, 0x58, 0x6E, 0x91, 0x96, 0x7E, | ||
77 | 0x89, 0x88, 0x87, 0x86, 0x8A, 0x87, 0x84, 0x87, | ||
78 | 0x83, 0x89, 0x82, 0x83, 0x84, 0x81, 0x80, 0x80, | ||
79 | 0x81, 0x83, 0x88, 0x8A, 0x8E, 0x90, 0x96, 0x98, | ||
80 | 0x94, 0x93, 0x93, 0x88, 0x78, 0x7B, 0x60, 0x52, | ||
81 | 0x41, 0x3F, 0x39, 0x46, 0x46, 0x48, 0x49, 0x47, | ||
82 | 0x50, 0x4A, 0x49, 0x50, 0x4D, 0x4B, 0x4D, 0x4C, | ||
83 | 0x4E, 0x4E, 0x4A, 0x49, 0x4E, 0x54, 0x4F, 0x59, | ||
84 | 0x51, 0x5A, 0x5E, 0x5A, 0x5D, 0x61, 0x59, 0x65, | ||
85 | 0x63, 0x65, 0x5F, 0x62, 0x68, 0x67, 0x64, 0x61, | ||
86 | 0x64, 0x5E, 0x66, 0x63, 0x63, 0x61, 0x67, 0x69, | ||
87 | 0x61, 0x63, 0x66, 0x67, 0x65, 0x63, 0x66, 0x64, | ||
88 | 0x67, 0x67, 0x65, 0x64, 0x64, 0x6A, 0x66, 0x65, | ||
89 | 0x68, 0x66, 0x69, 0x67, 0x6A, 0x67, 0x69, 0x66, | ||
90 | 0x6C, 0x65, 0x69, 0x64, 0x65, 0x64, 0x66, 0x62, | ||
91 | 0x63, 0x68, 0x68, 0x66, 0x64, 0x64, 0x62, 0x63, | ||
92 | 0x68, 0x65, 0x66, 0x6A, 0x67, 0x65, 0x60, 0x66, | ||
93 | 0x6F, 0x6A, 0x64, 0x61, 0x64, 0x63, 0x66, 0x63, | ||
94 | 0x62, 0x64, 0x60, 0x69, 0x64, 0x61, 0x62, 0x65, | ||
95 | 0x60, 0x63, 0x60, 0x62, 0x60, 0x5E, 0x61, 0x62, | ||
96 | 0x5D, 0x5C, 0x57, 0x5B, 0x59, 0x53, 0x54, 0x47, | ||
97 | 0x49, 0x54, 0x5C, 0x6B, 0x6F, 0x77, 0x7F, 0x80, | ||
98 | 0x88, 0x8A, 0x8C, 0x85, 0x7A, 0x7D, 0x7F, 0x7C, | ||
99 | 0x80, 0x80, 0x81, 0x80, 0x85, 0x82, 0x81, 0x7E, | ||
100 | 0x80, 0x7F, 0x7F, 0x7E, 0x7D, 0x7E, 0x83, 0x7F, | ||
101 | 0x81, 0x83, 0x87, 0x81, 0x83, 0x88, 0x84, 0x82, | ||
102 | 0x82, 0x8A, 0xB5, 0xC5, 0xCD, 0xCF, 0xD4, 0xD3, | ||
103 | 0xD6, 0xCC, 0xB4, 0x7E, 0x4D, 0x48, 0x4E, 0x4D, | ||
104 | 0x57, 0x5A, 0x59, 0x5C, 0x62, 0x58, 0x5C, 0x5B, | ||
105 | 0x5B, 0x62, 0x5D, 0x5C, 0x59, 0x5C, 0x5A, 0x59, | ||
106 | 0x5D, 0x5F, 0x5B, 0x5F, 0x60, 0x5E, 0x5E, 0x57, | ||
107 | 0x5F, 0x5F, 0x60, 0x61, 0x5C, 0x61, 0x60, 0x5B, | ||
108 | 0x56, 0x56, 0x57, 0x58, 0x6F, 0x94, 0x9A, 0x82, | ||
109 | 0x88, 0x89, 0x87, 0x86, 0x88, 0x86, 0x84, 0x85, | ||
110 | 0x82, 0x87, 0x82, 0x81, 0x83, 0x81, 0x7F, 0x80, | ||
111 | 0x82, 0x82, 0x87, 0x8A, 0x8F, 0x90, 0x95, 0x98, | ||
112 | 0x95, 0x92, 0x92, 0x88, 0x79, 0x77, 0x5F, 0x51, | ||
113 | 0x41, 0x3E, 0x3B, 0x44, 0x44, 0x46, 0x49, 0x4A, | ||
114 | 0x4C, 0x49, 0x49, 0x4E, 0x4A, 0x4A, 0x4E, 0x4A, | ||
115 | 0x4D, 0x4D, 0x48, 0x4A, 0x4C, 0x52, 0x52, 0x58, | ||
116 | 0x52, 0x59, 0x5E, 0x5A, 0x5D, 0x5F, 0x59, 0x64, | ||
117 | 0x64, 0x64, 0x62, 0x61, 0x66, 0x66, 0x64, 0x60, | ||
118 | 0x62, 0x5F, 0x65, 0x63, 0x62, 0x62, 0x65, 0x66, | ||
119 | 0x62, 0x65, 0x67, 0x66, 0x64, 0x64, 0x65, 0x65, | ||
120 | 0x66, 0x65, 0x65, 0x63, 0x63, 0x67, 0x65, 0x64, | ||
121 | 0x67, 0x67, 0x68, 0x66, 0x6A, 0x66, 0x67, 0x66, | ||
122 | 0x6C, 0x65, 0x6A, 0x64, 0x64, 0x63, 0x66, 0x62, | ||
123 | 0x63, 0x67, 0x69, 0x65, 0x64, 0x63, 0x62, 0x63, | ||
124 | 0x68, 0x65, 0x66, 0x69, 0x66, 0x65, 0x61, 0x65, | ||
125 | 0x6C, 0x69, 0x64, 0x61, 0x62, 0x62, 0x64, 0x63, | ||
126 | 0x61, 0x63, 0x60, 0x66, 0x63, 0x61, 0x62, 0x65, | ||
127 | 0x60, 0x62, 0x60, 0x62, 0x60, 0x5E, 0x60, 0x61, | ||
128 | 0x5C, 0x5C, 0x59, 0x5B, 0x57, 0x53, 0x52, 0x47, | ||
129 | 0x48, 0x54, 0x5C, 0x69, 0x6E, 0x77, 0x7D, 0x80, | ||
130 | 0x88, 0x89, 0x8C, 0x84, 0x7B, 0x7D, 0x7E, 0x7D, | ||
131 | 0x7F, 0x80, 0x81, 0x7F, 0x85, 0x82, 0x80, 0x7E, | ||
132 | 0x7F, 0x7E, 0x7F, 0x7F, 0x7E, 0x7F, 0x82, 0x7F, | ||
133 | 0x81, 0x83, 0x86, 0x82, 0x83, 0x87, 0x84, 0x82, | ||
134 | 0x81, 0x88, 0xB0, 0xC5, 0xCD, 0xCF, 0xD4, 0xD4, | ||
135 | 0xD6, 0xCD, 0xB8, 0x86, 0x51, 0x47, 0x4B, 0x4D, | ||
136 | 0x56, 0x59, 0x59, 0x5B, 0x5F, 0x59, 0x5C, 0x5D, | ||
137 | 0x5B, 0x62, 0x5D, 0x5B, 0x5B, 0x5C, 0x5B, 0x5A, | ||
138 | 0x5E, 0x5F, 0x5D, 0x5F, 0x60, 0x5D, 0x5F, 0x58, | ||
139 | 0x5E, 0x5F, 0x5F, 0x5F, 0x5B, 0x60, 0x60, 0x5C, | ||
140 | 0x57, 0x56, 0x59, 0x5B, 0x6E, 0x8A, 0x87, 0x6C, | ||
141 | 0x84, 0x88, 0x86, 0x84, 0x87, 0x85, 0x84, 0x82, | ||
142 | 0x80, 0x84, 0x82, 0x7E, 0x82, 0x7F, 0x7C, 0x80, | ||
143 | 0x84, 0x80, 0x84, 0x8B, 0x90, 0x92, 0x93, 0x95, | ||
144 | 0x97, 0x91, 0x8E, 0x86, 0x79, 0x6F, 0x5B, 0x4F, | ||
145 | 0x41, 0x3A, 0x3D, 0x3F, 0x40, 0x42, 0x48, 0x4B, | ||
146 | 0x46, 0x48, 0x47, 0x4A, 0x46, 0x49, 0x4D, 0x48, | ||
147 | 0x48, 0x4D, 0x46, 0x4C, 0x4B, 0x4F, 0x55, 0x55, | ||
148 | 0x54, 0x58, 0x5D, 0x5B, 0x5D, 0x5C, 0x5A, 0x61, | ||
149 | 0x62, 0x60, 0x65, 0x61, 0x63, 0x65, 0x64, 0x5F, | ||
150 | 0x60, 0x61, 0x63, 0x63, 0x61, 0x63, 0x61, 0x63, | ||
151 | 0x64, 0x66, 0x67, 0x66, 0x64, 0x65, 0x65, 0x67, | ||
152 | 0x64, 0x64, 0x66, 0x63, 0x62, 0x64, 0x63, 0x62, | ||
153 | 0x65, 0x67, 0x66, 0x65, 0x68, 0x65, 0x64, 0x64, | ||
154 | 0x69, 0x63, 0x69, 0x65, 0x63, 0x61, 0x63, 0x61, | ||
155 | 0x63, 0x68, 0x6B, 0x65, 0x63, 0x61, 0x62, 0x64, | ||
156 | 0x66, 0x64, 0x65, 0x66, 0x63, 0x63, 0x63, 0x65, | ||
157 | 0x65, 0x67, 0x65, 0x60, 0x60, 0x5E, 0x60, 0x64, | ||
158 | 0x5E, 0x63, 0x60, 0x61, 0x5F, 0x60, 0x61, 0x63, | ||
159 | 0x62, 0x62, 0x5E, 0x60, 0x61, 0x60, 0x5E, 0x5D, | ||
160 | 0x5C, 0x5D, 0x5C, 0x5A, 0x54, 0x51, 0x4E, 0x4A, | ||
161 | 0x46, 0x50, 0x59, 0x62, 0x6A, 0x75, 0x79, 0x80, | ||
162 | 0x86, 0x86, 0x8B, 0x83, 0x7F, 0x7E, 0x7E, 0x7E, | ||
163 | 0x7E, 0x81, 0x81, 0x7E, 0x83, 0x82, 0x80, 0x80, | ||
164 | 0x7F, 0x7F, 0x7F, 0x81, 0x81, 0x81, 0x7F, 0x7E, | ||
165 | 0x80, 0x82, 0x84, 0x83, 0x81, 0x84, 0x83, 0x82, | ||
166 | 0x7F, 0x82, 0x9D, 0xBD, 0xC9, 0xCE, 0xD2, 0xD4, | ||
167 | 0xD6, 0xD2, 0xC4, 0xA1, 0x68, 0x49, 0x48, 0x4D, | ||
168 | 0x54, 0x56, 0x59, 0x5A, 0x5A, 0x5B, 0x5B, 0x60, | ||
169 | 0x5B, 0x60, 0x5B, 0x5B, 0x5C, 0x5C, 0x5D, 0x5D, | ||
170 | 0x60, 0x5C, 0x5E, 0x5E, 0x5E, 0x5B, 0x5E, 0x5C, | ||
171 | 0x5D, 0x5E, 0x5F, 0x5C, 0x5C, 0x60, 0x61, 0x5E, | ||
172 | 0x5A, 0x58, 0x5F, 0x62, 0x5F, 0x5D, 0x48, 0x32, | ||
173 | 0x81, 0x85, 0x85, 0x81, 0x86, 0x83, 0x84, 0x80, | ||
174 | 0x7F, 0x84, 0x83, 0x7E, 0x80, 0x7E, 0x7D, 0x80, | ||
175 | 0x82, 0x7F, 0x85, 0x8D, 0x91, 0x93, 0x92, 0x95, | ||
176 | 0x95, 0x8F, 0x8C, 0x84, 0x76, 0x6B, 0x5D, 0x50, | ||
177 | 0x41, 0x38, 0x39, 0x3B, 0x41, 0x41, 0x46, 0x47, | ||
178 | 0x45, 0x47, 0x44, 0x47, 0x45, 0x4A, 0x49, 0x48, | ||
179 | 0x45, 0x4C, 0x48, 0x4C, 0x4E, 0x4E, 0x51, 0x56, | ||
180 | 0x56, 0x59, 0x5A, 0x5C, 0x5C, 0x5E, 0x5A, 0x60, | ||
181 | 0x5D, 0x60, 0x62, 0x61, 0x63, 0x64, 0x62, 0x5F, | ||
182 | 0x61, 0x62, 0x64, 0x62, 0x61, 0x64, 0x61, 0x64, | ||
183 | 0x63, 0x65, 0x65, 0x67, 0x63, 0x66, 0x65, 0x64, | ||
184 | 0x63, 0x65, 0x66, 0x61, 0x60, 0x67, 0x64, 0x62, | ||
185 | 0x63, 0x65, 0x64, 0x65, 0x65, 0x63, 0x62, 0x63, | ||
186 | 0x63, 0x61, 0x67, 0x66, 0x63, 0x5F, 0x5E, 0x60, | ||
187 | 0x63, 0x66, 0x6A, 0x64, 0x62, 0x60, 0x64, 0x63, | ||
188 | 0x65, 0x62, 0x62, 0x62, 0x60, 0x62, 0x63, 0x63, | ||
189 | 0x61, 0x64, 0x65, 0x60, 0x60, 0x5D, 0x61, 0x62, | ||
190 | 0x5D, 0x61, 0x5E, 0x60, 0x5C, 0x60, 0x5F, 0x60, | ||
191 | 0x61, 0x61, 0x5F, 0x60, 0x61, 0x61, 0x5E, 0x5D, | ||
192 | 0x5D, 0x5B, 0x5A, 0x58, 0x52, 0x51, 0x4E, 0x4D, | ||
193 | 0x47, 0x4A, 0x51, 0x5B, 0x66, 0x70, 0x76, 0x7C, | ||
194 | 0x81, 0x84, 0x8A, 0x85, 0x81, 0x80, 0x7F, 0x7C, | ||
195 | 0x7F, 0x82, 0x82, 0x81, 0x82, 0x82, 0x81, 0x84, | ||
196 | 0x80, 0x82, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, | ||
197 | 0x81, 0x82, 0x81, 0x82, 0x7F, 0x81, 0x80, 0x81, | ||
198 | 0x7F, 0x7D, 0x86, 0xAB, 0xC1, 0xCB, 0xCF, 0xD2, | ||
199 | 0xD3, 0xD5, 0xCF, 0xBA, 0x8A, 0x57, 0x48, 0x4D, | ||
200 | 0x51, 0x52, 0x55, 0x5A, 0x5A, 0x5B, 0x59, 0x5F, | ||
201 | 0x59, 0x5C, 0x59, 0x5C, 0x5A, 0x5A, 0x5B, 0x5C, | ||
202 | 0x5F, 0x5C, 0x5D, 0x5B, 0x5D, 0x5C, 0x5C, 0x5E, | ||
203 | 0x5C, 0x5D, 0x61, 0x5E, 0x5D, 0x5F, 0x62, 0x61, | ||
204 | 0x61, 0x5F, 0x60, 0x5A, 0x3D, 0x28, 0x19, 0x13, | ||
205 | 0x82, 0x84, 0x83, 0x7F, 0x84, 0x83, 0x83, 0x81, | ||
206 | 0x80, 0x83, 0x84, 0x82, 0x7F, 0x7F, 0x80, 0x7F, | ||
207 | 0x81, 0x83, 0x87, 0x8E, 0x92, 0x91, 0x93, 0x94, | ||
208 | 0x91, 0x8F, 0x8E, 0x83, 0x72, 0x6A, 0x60, 0x4F, | ||
209 | 0x3F, 0x36, 0x37, 0x3D, 0x42, 0x3F, 0x43, 0x47, | ||
210 | 0x45, 0x45, 0x46, 0x46, 0x47, 0x4B, 0x44, 0x46, | ||
211 | 0x44, 0x47, 0x48, 0x4B, 0x51, 0x4D, 0x4F, 0x56, | ||
212 | 0x56, 0x5A, 0x5A, 0x5B, 0x5B, 0x5D, 0x5B, 0x5F, | ||
213 | 0x5C, 0x62, 0x5D, 0x61, 0x62, 0x63, 0x60, 0x63, | ||
214 | 0x62, 0x63, 0x64, 0x60, 0x61, 0x64, 0x60, 0x66, | ||
215 | 0x5F, 0x63, 0x65, 0x67, 0x63, 0x63, 0x63, 0x63, | ||
216 | 0x63, 0x65, 0x63, 0x61, 0x62, 0x66, 0x63, 0x63, | ||
217 | 0x62, 0x63, 0x61, 0x62, 0x64, 0x61, 0x64, 0x63, | ||
218 | 0x61, 0x64, 0x66, 0x63, 0x63, 0x5E, 0x5D, 0x5E, | ||
219 | 0x63, 0x61, 0x64, 0x63, 0x63, 0x60, 0x63, 0x62, | ||
220 | 0x64, 0x62, 0x63, 0x61, 0x62, 0x61, 0x63, 0x60, | ||
221 | 0x61, 0x61, 0x63, 0x63, 0x61, 0x62, 0x62, 0x60, | ||
222 | 0x5E, 0x5F, 0x5F, 0x61, 0x5D, 0x61, 0x5F, 0x5F, | ||
223 | 0x5F, 0x5E, 0x61, 0x60, 0x5F, 0x5F, 0x62, 0x61, | ||
224 | 0x5D, 0x5A, 0x56, 0x58, 0x54, 0x52, 0x51, 0x4F, | ||
225 | 0x4C, 0x47, 0x4B, 0x57, 0x61, 0x6C, 0x72, 0x79, | ||
226 | 0x7E, 0x82, 0x89, 0x87, 0x82, 0x82, 0x7F, 0x7E, | ||
227 | 0x80, 0x82, 0x86, 0x84, 0x85, 0x84, 0x83, 0x85, | ||
228 | 0x82, 0x82, 0x82, 0x80, 0x81, 0x83, 0x82, 0x80, | ||
229 | 0x80, 0x83, 0x80, 0x81, 0x7F, 0x81, 0x7F, 0x81, | ||
230 | 0x83, 0x7A, 0x7D, 0x95, 0xB7, 0xC6, 0xCD, 0xD0, | ||
231 | 0xD3, 0xD5, 0xD4, 0xC9, 0xA9, 0x73, 0x4B, 0x48, | ||
232 | 0x4D, 0x50, 0x53, 0x57, 0x59, 0x5A, 0x57, 0x5C, | ||
233 | 0x5B, 0x5A, 0x59, 0x5B, 0x59, 0x58, 0x58, 0x5A, | ||
234 | 0x5F, 0x5D, 0x5B, 0x58, 0x5D, 0x5A, 0x5C, 0x5D, | ||
235 | 0x5D, 0x5E, 0x5E, 0x5F, 0x5C, 0x5D, 0x62, 0x65, | ||
236 | 0x66, 0x65, 0x55, 0x3D, 0x20, 0x13, 0x12, 0x17, | ||
237 | 0x83, 0x83, 0x80, 0x81, 0x84, 0x82, 0x81, 0x81, | ||
238 | 0x81, 0x83, 0x81, 0x83, 0x7F, 0x80, 0x80, 0x7E, | ||
239 | 0x83, 0x8A, 0x8A, 0x90, 0x93, 0x91, 0x92, 0x92, | ||
240 | 0x8F, 0x90, 0x8D, 0x83, 0x71, 0x69, 0x5D, 0x4D, | ||
241 | 0x41, 0x37, 0x37, 0x3F, 0x3C, 0x3F, 0x42, 0x48, | ||
242 | 0x44, 0x46, 0x49, 0x4B, 0x4A, 0x4A, 0x41, 0x45, | ||
243 | 0x45, 0x44, 0x44, 0x48, 0x50, 0x4C, 0x51, 0x53, | ||
244 | 0x57, 0x57, 0x5A, 0x5A, 0x5D, 0x5B, 0x5D, 0x5D, | ||
245 | 0x5C, 0x5E, 0x5E, 0x62, 0x5E, 0x62, 0x60, 0x65, | ||
246 | 0x63, 0x63, 0x61, 0x5F, 0x61, 0x63, 0x5E, 0x65, | ||
247 | 0x5E, 0x61, 0x66, 0x63, 0x63, 0x61, 0x63, 0x65, | ||
248 | 0x61, 0x62, 0x62, 0x64, 0x64, 0x63, 0x62, 0x62, | ||
249 | 0x60, 0x63, 0x62, 0x61, 0x64, 0x61, 0x64, 0x63, | ||
250 | 0x62, 0x66, 0x66, 0x63, 0x64, 0x5E, 0x60, 0x5F, | ||
251 | 0x63, 0x62, 0x60, 0x63, 0x62, 0x60, 0x62, 0x62, | ||
252 | 0x64, 0x66, 0x66, 0x63, 0x65, 0x61, 0x65, 0x61, | ||
253 | 0x60, 0x61, 0x61, 0x64, 0x61, 0x63, 0x63, 0x61, | ||
254 | 0x61, 0x5F, 0x61, 0x61, 0x5F, 0x62, 0x5E, 0x60, | ||
255 | 0x5F, 0x5B, 0x5F, 0x61, 0x5E, 0x5F, 0x65, 0x60, | ||
256 | 0x5A, 0x5B, 0x58, 0x59, 0x56, 0x53, 0x52, 0x50, | ||
257 | 0x4E, 0x4B, 0x47, 0x51, 0x5A, 0x67, 0x6E, 0x77, | ||
258 | 0x7B, 0x7F, 0x87, 0x87, 0x86, 0x84, 0x82, 0x83, | ||
259 | 0x83, 0x83, 0x86, 0x87, 0x89, 0x88, 0x87, 0x84, | ||
260 | 0x84, 0x83, 0x80, 0x80, 0x81, 0x84, 0x81, 0x81, | ||
261 | 0x80, 0x81, 0x7F, 0x7F, 0x7F, 0x82, 0x80, 0x81, | ||
262 | 0x84, 0x7C, 0x7E, 0x82, 0xA5, 0xC0, 0xCA, 0xCF, | ||
263 | 0xD3, 0xD5, 0xD5, 0xD2, 0xBF, 0x96, 0x5C, 0x47, | ||
264 | 0x4B, 0x4E, 0x50, 0x55, 0x55, 0x58, 0x57, 0x5A, | ||
265 | 0x5D, 0x5A, 0x5C, 0x59, 0x5C, 0x55, 0x57, 0x5B, | ||
266 | 0x60, 0x5B, 0x5B, 0x59, 0x5B, 0x5B, 0x5F, 0x5B, | ||
267 | 0x5D, 0x5E, 0x5B, 0x5D, 0x5D, 0x5D, 0x65, 0x68, | ||
268 | 0x63, 0x5A, 0x3A, 0x23, 0x19, 0x12, 0x17, 0x19, | ||
269 | 0x83, 0x83, 0x81, 0x84, 0x82, 0x80, 0x82, 0x81, | ||
270 | 0x81, 0x81, 0x80, 0x81, 0x80, 0x7F, 0x7E, 0x82, | ||
271 | 0x86, 0x8C, 0x90, 0x91, 0x91, 0x92, 0x91, 0x92, | ||
272 | 0x90, 0x8F, 0x87, 0x82, 0x72, 0x69, 0x5D, 0x4E, | ||
273 | 0x42, 0x39, 0x37, 0x3E, 0x3A, 0x42, 0x44, 0x43, | ||
274 | 0x46, 0x4B, 0x49, 0x4E, 0x4A, 0x49, 0x42, 0x48, | ||
275 | 0x48, 0x44, 0x42, 0x45, 0x4C, 0x4D, 0x51, 0x51, | ||
276 | 0x55, 0x56, 0x5A, 0x5C, 0x5E, 0x5C, 0x5C, 0x5F, | ||
277 | 0x5D, 0x5C, 0x60, 0x60, 0x5C, 0x62, 0x62, 0x64, | ||
278 | 0x63, 0x61, 0x61, 0x60, 0x61, 0x61, 0x60, 0x63, | ||
279 | 0x61, 0x61, 0x65, 0x62, 0x62, 0x65, 0x65, 0x65, | ||
280 | 0x61, 0x62, 0x64, 0x65, 0x66, 0x63, 0x64, 0x5F, | ||
281 | 0x5F, 0x62, 0x65, 0x64, 0x64, 0x63, 0x62, 0x65, | ||
282 | 0x63, 0x64, 0x65, 0x62, 0x65, 0x60, 0x63, 0x60, | ||
283 | 0x61, 0x66, 0x61, 0x64, 0x5F, 0x60, 0x63, 0x62, | ||
284 | 0x64, 0x67, 0x66, 0x67, 0x66, 0x61, 0x65, 0x64, | ||
285 | 0x60, 0x65, 0x61, 0x62, 0x61, 0x60, 0x64, 0x5F, | ||
286 | 0x63, 0x61, 0x60, 0x5F, 0x5F, 0x5E, 0x5D, 0x60, | ||
287 | 0x61, 0x5D, 0x60, 0x61, 0x60, 0x60, 0x62, 0x5F, | ||
288 | 0x59, 0x5D, 0x5B, 0x5A, 0x57, 0x54, 0x51, 0x56, | ||
289 | 0x4E, 0x4E, 0x48, 0x4C, 0x55, 0x60, 0x6E, 0x75, | ||
290 | 0x79, 0x7D, 0x84, 0x87, 0x89, 0x89, 0x87, 0x85, | ||
291 | 0x84, 0x86, 0x87, 0x8A, 0x89, 0x8A, 0x8A, 0x85, | ||
292 | 0x82, 0x84, 0x82, 0x81, 0x83, 0x83, 0x7D, 0x80, | ||
293 | 0x80, 0x7E, 0x7F, 0x7C, 0x7E, 0x7F, 0x80, 0x80, | ||
294 | 0x7F, 0x80, 0x7F, 0x7B, 0x8D, 0xB5, 0xC5, 0xCC, | ||
295 | 0xD2, 0xD4, 0xD5, 0xD6, 0xCC, 0xB4, 0x7F, 0x4E, | ||
296 | 0x4C, 0x4B, 0x4F, 0x51, 0x56, 0x55, 0x54, 0x59, | ||
297 | 0x5C, 0x59, 0x5D, 0x59, 0x5B, 0x57, 0x57, 0x5D, | ||
298 | 0x5D, 0x58, 0x5D, 0x5D, 0x5A, 0x5F, 0x61, 0x5D, | ||
299 | 0x5F, 0x5E, 0x5D, 0x60, 0x60, 0x63, 0x69, 0x62, | ||
300 | 0x50, 0x38, 0x1D, 0x1A, 0x1C, 0x17, 0x19, 0x18, | ||
301 | 0x81, 0x82, 0x83, 0x82, 0x81, 0x7E, 0x83, 0x83, | ||
302 | 0x80, 0x82, 0x82, 0x80, 0x80, 0x7D, 0x80, 0x88, | ||
303 | 0x8A, 0x8D, 0x93, 0x8F, 0x91, 0x91, 0x90, 0x8F, | ||
304 | 0x90, 0x8C, 0x84, 0x81, 0x71, 0x69, 0x5E, 0x4B, | ||
305 | 0x40, 0x3A, 0x38, 0x3B, 0x3B, 0x45, 0x44, 0x3E, | ||
306 | 0x46, 0x4B, 0x4A, 0x4B, 0x45, 0x47, 0x45, 0x49, | ||
307 | 0x44, 0x45, 0x42, 0x47, 0x4A, 0x4F, 0x52, 0x51, | ||
308 | 0x53, 0x57, 0x59, 0x5D, 0x5B, 0x5E, 0x5A, 0x60, | ||
309 | 0x5F, 0x5F, 0x5F, 0x61, 0x5C, 0x61, 0x64, 0x63, | ||
310 | 0x62, 0x60, 0x62, 0x62, 0x63, 0x60, 0x61, 0x60, | ||
311 | 0x64, 0x64, 0x66, 0x63, 0x61, 0x68, 0x65, 0x65, | ||
312 | 0x63, 0x66, 0x65, 0x63, 0x65, 0x63, 0x64, 0x61, | ||
313 | 0x60, 0x60, 0x62, 0x66, 0x64, 0x61, 0x63, 0x65, | ||
314 | 0x64, 0x62, 0x66, 0x60, 0x67, 0x63, 0x61, 0x5E, | ||
315 | 0x5D, 0x66, 0x65, 0x63, 0x60, 0x60, 0x61, 0x62, | ||
316 | 0x66, 0x68, 0x66, 0x6B, 0x65, 0x62, 0x65, 0x63, | ||
317 | 0x63, 0x64, 0x63, 0x62, 0x60, 0x61, 0x62, 0x5D, | ||
318 | 0x62, 0x62, 0x61, 0x5E, 0x5F, 0x5A, 0x5E, 0x5E, | ||
319 | 0x61, 0x60, 0x62, 0x60, 0x62, 0x5E, 0x5F, 0x60, | ||
320 | 0x5E, 0x5F, 0x59, 0x5B, 0x56, 0x54, 0x51, 0x59, | ||
321 | 0x4E, 0x4E, 0x49, 0x47, 0x52, 0x5B, 0x6B, 0x72, | ||
322 | 0x76, 0x7C, 0x82, 0x86, 0x87, 0x8E, 0x89, 0x85, | ||
323 | 0x85, 0x87, 0x88, 0x8D, 0x89, 0x89, 0x8A, 0x89, | ||
324 | 0x82, 0x84, 0x85, 0x86, 0x86, 0x80, 0x7E, 0x7E, | ||
325 | 0x7E, 0x7F, 0x81, 0x7D, 0x7F, 0x7C, 0x7E, 0x7D, | ||
326 | 0x7E, 0x80, 0x7D, 0x7C, 0x7B, 0x9F, 0xBD, 0xC9, | ||
327 | 0xD0, 0xD3, 0xD5, 0xD6, 0xD3, 0xC6, 0xA3, 0x64, | ||
328 | 0x4C, 0x47, 0x50, 0x4D, 0x58, 0x53, 0x52, 0x58, | ||
329 | 0x59, 0x5A, 0x5C, 0x59, 0x5B, 0x5E, 0x58, 0x5E, | ||
330 | 0x5B, 0x5D, 0x5F, 0x5C, 0x5B, 0x60, 0x63, 0x5F, | ||
331 | 0x62, 0x62, 0x60, 0x64, 0x65, 0x68, 0x63, 0x4F, | ||
332 | 0x30, 0x17, 0x14, 0x13, 0x17, 0x1A, 0x15, 0x17, | ||
333 | 0x82, 0x83, 0x83, 0x80, 0x82, 0x7F, 0x83, 0x86, | ||
334 | 0x83, 0x86, 0x81, 0x81, 0x80, 0x7F, 0x85, 0x88, | ||
335 | 0x8C, 0x8F, 0x92, 0x8E, 0x93, 0x8F, 0x8E, 0x8B, | ||
336 | 0x8E, 0x8A, 0x85, 0x7E, 0x71, 0x68, 0x5E, 0x4F, | ||
337 | 0x42, 0x3E, 0x38, 0x39, 0x3D, 0x45, 0x42, 0x42, | ||
338 | 0x44, 0x47, 0x4B, 0x49, 0x45, 0x46, 0x47, 0x46, | ||
339 | 0x42, 0x45, 0x44, 0x48, 0x4A, 0x50, 0x52, 0x51, | ||
340 | 0x55, 0x54, 0x57, 0x5A, 0x5A, 0x5D, 0x57, 0x5F, | ||
341 | 0x5E, 0x60, 0x5D, 0x61, 0x5E, 0x61, 0x64, 0x62, | ||
342 | 0x60, 0x62, 0x62, 0x63, 0x63, 0x62, 0x62, 0x61, | ||
343 | 0x63, 0x62, 0x65, 0x63, 0x60, 0x65, 0x64, 0x63, | ||
344 | 0x64, 0x66, 0x64, 0x61, 0x62, 0x64, 0x63, 0x63, | ||
345 | 0x63, 0x5F, 0x61, 0x67, 0x62, 0x61, 0x64, 0x63, | ||
346 | 0x63, 0x62, 0x65, 0x61, 0x68, 0x61, 0x63, 0x61, | ||
347 | 0x5D, 0x65, 0x68, 0x62, 0x60, 0x5E, 0x5E, 0x63, | ||
348 | 0x67, 0x69, 0x68, 0x69, 0x69, 0x64, 0x65, 0x64, | ||
349 | 0x65, 0x61, 0x64, 0x64, 0x64, 0x62, 0x62, 0x5C, | ||
350 | 0x60, 0x62, 0x63, 0x61, 0x61, 0x5B, 0x5C, 0x5C, | ||
351 | 0x60, 0x60, 0x61, 0x5F, 0x63, 0x5B, 0x5D, 0x60, | ||
352 | 0x61, 0x5F, 0x5B, 0x5C, 0x5A, 0x53, 0x52, 0x56, | ||
353 | 0x4E, 0x4C, 0x48, 0x44, 0x4E, 0x5A, 0x65, 0x6F, | ||
354 | 0x74, 0x7C, 0x81, 0x85, 0x85, 0x8E, 0x88, 0x87, | ||
355 | 0x88, 0x87, 0x88, 0x8E, 0x89, 0x8A, 0x8A, 0x8B, | ||
356 | 0x86, 0x83, 0x84, 0x87, 0x86, 0x83, 0x80, 0x7F, | ||
357 | 0x7F, 0x81, 0x80, 0x7F, 0x7F, 0x7E, 0x7E, 0x7F, | ||
358 | 0x80, 0x7D, 0x7C, 0x7C, 0x78, 0x84, 0xAD, 0xC3, | ||
359 | 0xCC, 0xD2, 0xD4, 0xD6, 0xD6, 0xCF, 0xB9, 0x87, | ||
360 | 0x54, 0x47, 0x51, 0x4D, 0x56, 0x53, 0x54, 0x59, | ||
361 | 0x57, 0x5B, 0x5E, 0x5B, 0x5E, 0x61, 0x5A, 0x5E, | ||
362 | 0x5A, 0x63, 0x5D, 0x5D, 0x5F, 0x5E, 0x62, 0x5F, | ||
363 | 0x62, 0x65, 0x63, 0x68, 0x6A, 0x63, 0x4D, 0x33, | ||
364 | 0x17, 0x12, 0x1B, 0x11, 0x16, 0x18, 0x14, 0x16, | ||
365 | 0x84, 0x83, 0x82, 0x7F, 0x83, 0x81, 0x82, 0x86, | ||
366 | 0x86, 0x85, 0x80, 0x83, 0x7E, 0x80, 0x85, 0x86, | ||
367 | 0x8C, 0x90, 0x8F, 0x8E, 0x93, 0x8C, 0x8C, 0x8B, | ||
368 | 0x88, 0x88, 0x84, 0x7C, 0x74, 0x68, 0x62, 0x5B, | ||
369 | 0x45, 0x3F, 0x38, 0x3A, 0x3F, 0x42, 0x41, 0x45, | ||
370 | 0x4D, 0x46, 0x49, 0x48, 0x44, 0x47, 0x45, 0x43, | ||
371 | 0x47, 0x46, 0x45, 0x45, 0x4B, 0x51, 0x50, 0x52, | ||
372 | 0x57, 0x54, 0x55, 0x57, 0x59, 0x5B, 0x57, 0x5E, | ||
373 | 0x5B, 0x5E, 0x5E, 0x60, 0x61, 0x60, 0x63, 0x61, | ||
374 | 0x5E, 0x63, 0x61, 0x63, 0x62, 0x63, 0x63, 0x62, | ||
375 | 0x61, 0x61, 0x63, 0x64, 0x60, 0x60, 0x64, 0x61, | ||
376 | 0x63, 0x61, 0x63, 0x61, 0x61, 0x61, 0x63, 0x62, | ||
377 | 0x64, 0x60, 0x61, 0x64, 0x60, 0x61, 0x61, 0x62, | ||
378 | 0x63, 0x60, 0x61, 0x62, 0x65, 0x5F, 0x66, 0x63, | ||
379 | 0x61, 0x63, 0x65, 0x62, 0x5E, 0x5E, 0x5F, 0x62, | ||
380 | 0x65, 0x66, 0x67, 0x67, 0x6D, 0x64, 0x62, 0x63, | ||
381 | 0x65, 0x61, 0x62, 0x62, 0x69, 0x61, 0x64, 0x5C, | ||
382 | 0x5F, 0x61, 0x61, 0x60, 0x61, 0x5C, 0x5B, 0x5E, | ||
383 | 0x60, 0x5F, 0x60, 0x60, 0x60, 0x5B, 0x5E, 0x5E, | ||
384 | 0x60, 0x5C, 0x5D, 0x5C, 0x60, 0x57, 0x53, 0x53, | ||
385 | 0x4E, 0x4D, 0x49, 0x44, 0x4C, 0x55, 0x61, 0x6C, | ||
386 | 0x74, 0x7B, 0x80, 0x84, 0x86, 0x8B, 0x89, 0x89, | ||
387 | 0x89, 0x87, 0x87, 0x8D, 0x89, 0x8C, 0x89, 0x8A, | ||
388 | 0x89, 0x83, 0x83, 0x83, 0x85, 0x86, 0x7F, 0x81, | ||
389 | 0x80, 0x82, 0x7E, 0x7F, 0x7D, 0x80, 0x7F, 0x81, | ||
390 | 0x7F, 0x7C, 0x7D, 0x7B, 0x7B, 0x76, 0x95, 0xBA, | ||
391 | 0xC7, 0xD0, 0xD2, 0xD5, 0xD7, 0xD4, 0xC8, 0xAA, | ||
392 | 0x70, 0x48, 0x4F, 0x4D, 0x54, 0x52, 0x55, 0x58, | ||
393 | 0x56, 0x59, 0x5A, 0x5C, 0x5F, 0x5E, 0x59, 0x5D, | ||
394 | 0x5A, 0x5D, 0x5D, 0x62, 0x63, 0x61, 0x61, 0x62, | ||
395 | 0x63, 0x66, 0x68, 0x6D, 0x65, 0x4A, 0x31, 0x1C, | ||
396 | 0x12, 0x1B, 0x22, 0x16, 0x1B, 0x16, 0x16, 0x18, | ||
397 | 0x84, 0x83, 0x7E, 0x82, 0x83, 0x81, 0x82, 0x85, | ||
398 | 0x87, 0x84, 0x83, 0x84, 0x7D, 0x80, 0x83, 0x88, | ||
399 | 0x8E, 0x90, 0x90, 0x8C, 0x8F, 0x8D, 0x8C, 0x88, | ||
400 | 0x85, 0x86, 0x83, 0x7C, 0x78, 0x6A, 0x63, 0x5A, | ||
401 | 0x43, 0x3A, 0x39, 0x3D, 0x3F, 0x3E, 0x42, 0x43, | ||
402 | 0x57, 0x45, 0x48, 0x44, 0x43, 0x4B, 0x43, 0x44, | ||
403 | 0x48, 0x46, 0x46, 0x46, 0x4C, 0x52, 0x4D, 0x52, | ||
404 | 0x56, 0x59, 0x55, 0x58, 0x57, 0x5A, 0x5B, 0x5B, | ||
405 | 0x5D, 0x5C, 0x5D, 0x60, 0x63, 0x62, 0x60, 0x61, | ||
406 | 0x60, 0x5F, 0x62, 0x63, 0x5F, 0x60, 0x62, 0x62, | ||
407 | 0x61, 0x61, 0x63, 0x64, 0x61, 0x60, 0x64, 0x63, | ||
408 | 0x62, 0x60, 0x64, 0x63, 0x60, 0x5F, 0x63, 0x62, | ||
409 | 0x61, 0x64, 0x5E, 0x61, 0x60, 0x60, 0x5E, 0x62, | ||
410 | 0x60, 0x5F, 0x60, 0x60, 0x61, 0x5F, 0x61, 0x61, | ||
411 | 0x61, 0x61, 0x61, 0x61, 0x5D, 0x60, 0x5E, 0x5F, | ||
412 | 0x63, 0x62, 0x66, 0x66, 0x69, 0x64, 0x61, 0x62, | ||
413 | 0x64, 0x62, 0x63, 0x61, 0x65, 0x61, 0x60, 0x5F, | ||
414 | 0x5E, 0x63, 0x5E, 0x5D, 0x5D, 0x5D, 0x5B, 0x60, | ||
415 | 0x5F, 0x5F, 0x5D, 0x5F, 0x5B, 0x5B, 0x5F, 0x5E, | ||
416 | 0x5D, 0x5A, 0x5C, 0x5B, 0x5C, 0x58, 0x52, 0x51, | ||
417 | 0x4E, 0x51, 0x4A, 0x47, 0x4D, 0x51, 0x5E, 0x69, | ||
418 | 0x74, 0x7B, 0x7E, 0x82, 0x86, 0x89, 0x8B, 0x89, | ||
419 | 0x88, 0x8A, 0x86, 0x88, 0x88, 0x8C, 0x88, 0x89, | ||
420 | 0x89, 0x88, 0x85, 0x7F, 0x83, 0x84, 0x80, 0x80, | ||
421 | 0x80, 0x81, 0x7C, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, | ||
422 | 0x7E, 0x7B, 0x7D, 0x7C, 0x78, 0x74, 0x7F, 0xA8, | ||
423 | 0xC1, 0xCB, 0xD1, 0xD4, 0xD6, 0xD6, 0xD2, 0xC1, | ||
424 | 0x94, 0x57, 0x49, 0x4C, 0x52, 0x53, 0x57, 0x5A, | ||
425 | 0x57, 0x59, 0x53, 0x5A, 0x5E, 0x5C, 0x5A, 0x5A, | ||
426 | 0x5A, 0x57, 0x60, 0x63, 0x65, 0x64, 0x63, 0x64, | ||
427 | 0x66, 0x69, 0x6A, 0x67, 0x4E, 0x30, 0x1C, 0x12, | ||
428 | 0x15, 0x19, 0x1F, 0x1A, 0x1A, 0x16, 0x1A, 0x1B, | ||
429 | 0x81, 0x81, 0x7D, 0x83, 0x85, 0x81, 0x84, 0x84, | ||
430 | 0x86, 0x83, 0x84, 0x83, 0x7E, 0x84, 0x86, 0x8B, | ||
431 | 0x8F, 0x8F, 0x94, 0x8D, 0x8D, 0x8B, 0x8C, 0x85, | ||
432 | 0x85, 0x85, 0x84, 0x7D, 0x79, 0x6B, 0x5C, 0x4F, | ||
433 | 0x3F, 0x36, 0x36, 0x3A, 0x3E, 0x3B, 0x43, 0x44, | ||
434 | 0x4E, 0x45, 0x47, 0x42, 0x45, 0x4B, 0x44, 0x44, | ||
435 | 0x48, 0x44, 0x46, 0x4A, 0x4B, 0x4F, 0x4D, 0x50, | ||
436 | 0x56, 0x5A, 0x57, 0x59, 0x56, 0x58, 0x5E, 0x5C, | ||
437 | 0x5F, 0x5F, 0x5C, 0x5F, 0x5D, 0x65, 0x5D, 0x62, | ||
438 | 0x5F, 0x5C, 0x61, 0x60, 0x5F, 0x5E, 0x61, 0x62, | ||
439 | 0x61, 0x61, 0x63, 0x60, 0x5F, 0x61, 0x63, 0x63, | ||
440 | 0x61, 0x61, 0x64, 0x62, 0x60, 0x61, 0x66, 0x63, | ||
441 | 0x62, 0x64, 0x5E, 0x61, 0x60, 0x5F, 0x5C, 0x5F, | ||
442 | 0x5C, 0x60, 0x5E, 0x5D, 0x5E, 0x5E, 0x5B, 0x5F, | ||
443 | 0x60, 0x5D, 0x5E, 0x60, 0x5E, 0x60, 0x5B, 0x5E, | ||
444 | 0x61, 0x60, 0x63, 0x64, 0x64, 0x65, 0x63, 0x61, | ||
445 | 0x63, 0x61, 0x64, 0x64, 0x60, 0x62, 0x5C, 0x5F, | ||
446 | 0x5D, 0x63, 0x5E, 0x5C, 0x5D, 0x5D, 0x5B, 0x5F, | ||
447 | 0x5E, 0x60, 0x5D, 0x5D, 0x5B, 0x5D, 0x5E, 0x5E, | ||
448 | 0x5C, 0x5B, 0x5D, 0x59, 0x5A, 0x58, 0x52, 0x4D, | ||
449 | 0x4F, 0x4F, 0x4A, 0x4B, 0x50, 0x54, 0x5C, 0x66, | ||
450 | 0x71, 0x79, 0x7C, 0x83, 0x85, 0x89, 0x8B, 0x8A, | ||
451 | 0x87, 0x8D, 0x86, 0x84, 0x87, 0x89, 0x88, 0x88, | ||
452 | 0x87, 0x89, 0x86, 0x81, 0x83, 0x84, 0x82, 0x80, | ||
453 | 0x82, 0x80, 0x7C, 0x7D, 0x7F, 0x7D, 0x7D, 0x7C, | ||
454 | 0x7F, 0x7C, 0x7C, 0x7D, 0x78, 0x75, 0x75, 0x91, | ||
455 | 0xB7, 0xC7, 0xCF, 0xD4, 0xD5, 0xD6, 0xD7, 0xCE, | ||
456 | 0xB2, 0x7C, 0x4A, 0x4A, 0x4F, 0x53, 0x58, 0x5B, | ||
457 | 0x5B, 0x5C, 0x57, 0x59, 0x5E, 0x5C, 0x5A, 0x58, | ||
458 | 0x59, 0x5B, 0x5E, 0x60, 0x61, 0x62, 0x63, 0x64, | ||
459 | 0x69, 0x6B, 0x63, 0x50, 0x2B, 0x27, 0x19, 0x11, | ||
460 | 0x13, 0x15, 0x15, 0x17, 0x14, 0x18, 0x1E, 0x1A, | ||
461 | 0x7F, 0x7F, 0x81, 0x82, 0x84, 0x82, 0x85, 0x83, | ||
462 | 0x83, 0x83, 0x85, 0x82, 0x81, 0x89, 0x8A, 0x8D, | ||
463 | 0x8F, 0x90, 0x92, 0x8E, 0x8A, 0x87, 0x89, 0x85, | ||
464 | 0x87, 0x87, 0x85, 0x7D, 0x78, 0x6C, 0x58, 0x4B, | ||
465 | 0x3B, 0x33, 0x30, 0x36, 0x3E, 0x3D, 0x43, 0x46, | ||
466 | 0x43, 0x46, 0x46, 0x45, 0x48, 0x47, 0x46, 0x44, | ||
467 | 0x49, 0x42, 0x46, 0x4A, 0x4B, 0x4B, 0x4F, 0x4F, | ||
468 | 0x56, 0x5B, 0x57, 0x58, 0x57, 0x5A, 0x5B, 0x5E, | ||
469 | 0x5F, 0x61, 0x5C, 0x5E, 0x5D, 0x61, 0x5E, 0x62, | ||
470 | 0x5D, 0x5E, 0x5F, 0x5E, 0x61, 0x61, 0x60, 0x62, | ||
471 | 0x61, 0x61, 0x60, 0x5F, 0x5D, 0x60, 0x5F, 0x61, | ||
472 | 0x61, 0x60, 0x62, 0x5E, 0x60, 0x64, 0x65, 0x63, | ||
473 | 0x66, 0x65, 0x65, 0x60, 0x5F, 0x5C, 0x59, 0x5B, | ||
474 | 0x5B, 0x5D, 0x59, 0x5C, 0x5B, 0x5D, 0x5E, 0x5F, | ||
475 | 0x5F, 0x5A, 0x5C, 0x5E, 0x5E, 0x5F, 0x5A, 0x60, | ||
476 | 0x5D, 0x5F, 0x5F, 0x63, 0x62, 0x64, 0x63, 0x61, | ||
477 | 0x61, 0x63, 0x64, 0x66, 0x60, 0x61, 0x5E, 0x5D, | ||
478 | 0x5D, 0x5F, 0x5E, 0x5D, 0x60, 0x5C, 0x5D, 0x5F, | ||
479 | 0x5D, 0x5E, 0x5E, 0x5D, 0x5C, 0x60, 0x5E, 0x5D, | ||
480 | 0x5D, 0x5B, 0x5C, 0x59, 0x5C, 0x5B, 0x53, 0x4E, | ||
481 | 0x50, 0x4A, 0x48, 0x4B, 0x50, 0x56, 0x5C, 0x63, | ||
482 | 0x6E, 0x74, 0x7E, 0x83, 0x84, 0x88, 0x8B, 0x89, | ||
483 | 0x89, 0x8B, 0x85, 0x85, 0x87, 0x86, 0x88, 0x85, | ||
484 | 0x86, 0x87, 0x86, 0x85, 0x82, 0x84, 0x82, 0x81, | ||
485 | 0x83, 0x80, 0x7F, 0x7E, 0x7D, 0x7F, 0x7F, 0x7C, | ||
486 | 0x7F, 0x7C, 0x7E, 0x7D, 0x7A, 0x78, 0x75, 0x7C, | ||
487 | 0xA4, 0xC2, 0xCC, 0xD3, 0xD4, 0xD7, 0xD9, 0xD5, | ||
488 | 0xC7, 0xA2, 0x60, 0x46, 0x4E, 0x50, 0x54, 0x57, | ||
489 | 0x5C, 0x5E, 0x5D, 0x5A, 0x5D, 0x5A, 0x5A, 0x59, | ||
490 | 0x59, 0x5E, 0x5E, 0x5D, 0x5E, 0x61, 0x63, 0x67, | ||
491 | 0x69, 0x64, 0x4C, 0x2D, 0x12, 0x1C, 0x1B, 0x10, | ||
492 | 0x0E, 0x14, 0x11, 0x13, 0x12, 0x1B, 0x1D, 0x1A, | ||
493 | 0x82, 0x81, 0x85, 0x82, 0x83, 0x82, 0x85, 0x85, | ||
494 | 0x84, 0x84, 0x87, 0x85, 0x84, 0x8C, 0x8C, 0x90, | ||
495 | 0x91, 0x91, 0x8E, 0x8E, 0x87, 0x84, 0x85, 0x85, | ||
496 | 0x86, 0x89, 0x86, 0x7F, 0x76, 0x69, 0x59, 0x4D, | ||
497 | 0x3A, 0x35, 0x31, 0x36, 0x3F, 0x40, 0x42, 0x45, | ||
498 | 0x45, 0x46, 0x49, 0x44, 0x49, 0x47, 0x48, 0x44, | ||
499 | 0x47, 0x43, 0x46, 0x49, 0x4B, 0x4B, 0x50, 0x52, | ||
500 | 0x54, 0x5A, 0x58, 0x58, 0x59, 0x5E, 0x5B, 0x5C, | ||
501 | 0x5F, 0x5E, 0x5B, 0x5D, 0x62, 0x5F, 0x5F, 0x5F, | ||
502 | 0x5D, 0x5E, 0x60, 0x5F, 0x63, 0x63, 0x5E, 0x62, | ||
503 | 0x61, 0x60, 0x5E, 0x61, 0x60, 0x60, 0x5E, 0x62, | ||
504 | 0x62, 0x5F, 0x5F, 0x5C, 0x60, 0x61, 0x60, 0x65, | ||
505 | 0x67, 0x68, 0x68, 0x61, 0x5F, 0x5A, 0x58, 0x5A, | ||
506 | 0x5A, 0x58, 0x57, 0x59, 0x5A, 0x5D, 0x5F, 0x60, | ||
507 | 0x5D, 0x5C, 0x5C, 0x5C, 0x5B, 0x5D, 0x5C, 0x5F, | ||
508 | 0x5E, 0x5F, 0x60, 0x60, 0x61, 0x62, 0x63, 0x65, | ||
509 | 0x62, 0x64, 0x64, 0x64, 0x61, 0x60, 0x60, 0x5C, | ||
510 | 0x5E, 0x5F, 0x5E, 0x60, 0x5E, 0x5D, 0x5C, 0x5E, | ||
511 | 0x5D, 0x5B, 0x5D, 0x5D, 0x5B, 0x61, 0x5F, 0x5C, | ||
512 | 0x5F, 0x5C, 0x5B, 0x5B, 0x57, 0x59, 0x56, 0x52, | ||
513 | 0x50, 0x4C, 0x49, 0x4B, 0x4E, 0x55, 0x5E, 0x65, | ||
514 | 0x6D, 0x73, 0x7F, 0x81, 0x85, 0x85, 0x8A, 0x89, | ||
515 | 0x8A, 0x88, 0x86, 0x86, 0x88, 0x84, 0x89, 0x83, | ||
516 | 0x88, 0x84, 0x84, 0x84, 0x82, 0x82, 0x82, 0x81, | ||
517 | 0x83, 0x80, 0x80, 0x7F, 0x7F, 0x85, 0x80, 0x7E, | ||
518 | 0x7D, 0x7D, 0x7E, 0x7D, 0x79, 0x79, 0x77, 0x73, | ||
519 | 0x8B, 0xB6, 0xC7, 0xD0, 0xD3, 0xD5, 0xD8, 0xD8, | ||
520 | 0xD2, 0xBC, 0x86, 0x4A, 0x48, 0x50, 0x52, 0x56, | ||
521 | 0x58, 0x5A, 0x58, 0x5C, 0x5C, 0x59, 0x5B, 0x5B, | ||
522 | 0x5A, 0x5E, 0x5E, 0x5E, 0x5F, 0x64, 0x66, 0x69, | ||
523 | 0x62, 0x49, 0x27, 0x13, 0x0D, 0x14, 0x18, 0x10, | ||
524 | 0x12, 0x12, 0x12, 0x14, 0x14, 0x1C, 0x19, 0x21, | ||
525 | 0x82, 0x83, 0x86, 0x83, 0x83, 0x84, 0x84, 0x86, | ||
526 | 0x86, 0x85, 0x85, 0x89, 0x8A, 0x8F, 0x8F, 0x91, | ||
527 | 0x92, 0x8F, 0x8E, 0x8D, 0x86, 0x85, 0x84, 0x84, | ||
528 | 0x85, 0x8A, 0x88, 0x83, 0x76, 0x69, 0x5E, 0x4E, | ||
529 | 0x3D, 0x39, 0x34, 0x38, 0x3F, 0x40, 0x42, 0x45, | ||
530 | 0x48, 0x47, 0x4C, 0x45, 0x4B, 0x49, 0x46, 0x44, | ||
531 | 0x46, 0x43, 0x45, 0x48, 0x4A, 0x4A, 0x4F, 0x51, | ||
532 | 0x53, 0x55, 0x59, 0x59, 0x5A, 0x5D, 0x5B, 0x59, | ||
533 | 0x5F, 0x5C, 0x5D, 0x5C, 0x61, 0x61, 0x5F, 0x5D, | ||
534 | 0x5D, 0x5B, 0x5F, 0x60, 0x61, 0x62, 0x5E, 0x60, | ||
535 | 0x60, 0x60, 0x5F, 0x61, 0x61, 0x61, 0x60, 0x61, | ||
536 | 0x61, 0x5F, 0x60, 0x5E, 0x61, 0x5C, 0x60, 0x65, | ||
537 | 0x65, 0x64, 0x65, 0x62, 0x60, 0x5F, 0x5B, 0x58, | ||
538 | 0x59, 0x55, 0x59, 0x57, 0x5B, 0x5A, 0x5C, 0x5F, | ||
539 | 0x5E, 0x5C, 0x5C, 0x5D, 0x5D, 0x5A, 0x5C, 0x5D, | ||
540 | 0x5E, 0x5F, 0x64, 0x5E, 0x60, 0x62, 0x61, 0x65, | ||
541 | 0x67, 0x62, 0x64, 0x60, 0x60, 0x5D, 0x5F, 0x5E, | ||
542 | 0x60, 0x61, 0x60, 0x60, 0x61, 0x5E, 0x58, 0x5E, | ||
543 | 0x5C, 0x5A, 0x5D, 0x5B, 0x5B, 0x60, 0x5E, 0x5F, | ||
544 | 0x5F, 0x61, 0x5A, 0x59, 0x55, 0x55, 0x57, 0x54, | ||
545 | 0x4F, 0x4D, 0x4B, 0x4A, 0x4A, 0x55, 0x5F, 0x66, | ||
546 | 0x6A, 0x74, 0x7B, 0x7D, 0x84, 0x84, 0x86, 0x89, | ||
547 | 0x88, 0x87, 0x86, 0x84, 0x88, 0x82, 0x88, 0x84, | ||
548 | 0x88, 0x84, 0x83, 0x83, 0x83, 0x82, 0x81, 0x81, | ||
549 | 0x84, 0x81, 0x7F, 0x7F, 0x82, 0x88, 0x81, 0x83, | ||
550 | 0x7D, 0x7F, 0x7D, 0x7D, 0x7A, 0x7A, 0x77, 0x72, | ||
551 | 0x79, 0x9D, 0xBB, 0xCA, 0xD0, 0xD4, 0xD7, 0xD8, | ||
552 | 0xD8, 0xCD, 0xAE, 0x6D, 0x49, 0x50, 0x50, 0x57, | ||
553 | 0x55, 0x58, 0x54, 0x5B, 0x59, 0x5B, 0x5C, 0x5C, | ||
554 | 0x5E, 0x5D, 0x5C, 0x61, 0x62, 0x66, 0x67, 0x65, | ||
555 | 0x51, 0x27, 0x10, 0x0D, 0x15, 0x14, 0x15, 0x10, | ||
556 | 0x16, 0x13, 0x15, 0x17, 0x17, 0x18, 0x19, 0x23 | ||
557 | }; | ||
558 | |||
559 | |||
560 | |||
561 | /* | ||
562 | Macro definitions | ||
563 | */ | ||
564 | |||
565 | #define abs(x) (x>=0 ? x : -(x)) | ||
566 | #define FILTER 0 | ||
567 | #define EXPAND 1 | ||
568 | #define IS == | ||
569 | #define ISNT != | ||
570 | #define AND && | ||
571 | #define OR || | ||
572 | |||
573 | #define NUM_LEVELS 4 | ||
574 | |||
575 | |||
576 | /* | ||
577 | Forward declaration of functions | ||
578 | */ | ||
579 | |||
580 | void epic_init( void ); | ||
581 | void epic_build_pyr( float *image, int x_size, int y_size, int num_levels, | ||
582 | float *lo_filter, float *hi_filter, int filter_size ); | ||
583 | void epic_build_level( float *image, int level_x_size, int level_y_size, | ||
584 | float *lo_filter, float *hi_filter, | ||
585 | int filter_size, float *result_block ); | ||
586 | void epic_internal_transpose( float *mat, int rows, int cols ); | ||
587 | void epic_internal_filter( float *image, int x_dim, int y_dim, float *filt, | ||
588 | float *temp, int x_fdim, int y_fdim, | ||
589 | int xgrid_start, int xgrid_step, int ygrid_start, | ||
590 | int ygrid_step, float *result ); | ||
591 | void epic_reflect1( float *filt, int x_dim, int y_dim, int x_pos, int y_pos, | ||
592 | float *result, int f_or_e ); | ||
593 | void epic_main( void ); | ||
594 | //int main( void ); | ||
595 | |||
596 | |||
597 | /* | ||
598 | Declaration of global variables | ||
599 | */ | ||
600 | |||
601 | float epic_filtertemp[FILTER_SIZE]; | ||
602 | float epic_hi_imagetemp[X_SIZE * Y_SIZE / 2]; | ||
603 | float epic_lo_imagetemp[X_SIZE * Y_SIZE / 2]; | ||
604 | |||
605 | static float epic_lo_filter[FILTER_SIZE] = { | ||
606 | -0.0012475221, -0.0024950907, 0.0087309530, 0.0199579580, | ||
607 | -0.0505290000, -0.1205509700, 0.2930455800, | ||
608 | 0.7061761600, | ||
609 | 0.2930455800, -0.1205509700, -0.0505290000, | ||
610 | 0.0199579580, 0.0087309530, -0.0024950907, -0.0012475221 | ||
611 | }; | ||
612 | |||
613 | static float epic_hi_filter[FILTER_SIZE] = { | ||
614 | 0.0012475221, -0.0024950907, -0.0087309530, 0.0199579580, | ||
615 | 0.0505290000, -0.1205509700, -0.2930455800, | ||
616 | 0.7061761600, | ||
617 | -0.2930455800, -0.1205509700, 0.0505290000, | ||
618 | 0.0199579580, -0.0087309530, -0.0024950907, 0.0012475221 | ||
619 | }; | ||
620 | |||
621 | |||
622 | /* | ||
623 | Initialization function | ||
624 | */ | ||
625 | |||
626 | void epic_init( void ) | ||
627 | { | ||
628 | int i; | ||
629 | |||
630 | _Pragma( "loopbound min 4096 max 9801" ) | ||
631 | for ( i = 0; i < X_SIZE * Y_SIZE; ++i ) | ||
632 | epic_image[i] *= SCALE_FACTOR; | ||
633 | } | ||
634 | |||
635 | |||
636 | /* | ||
637 | Algorithm core functions | ||
638 | */ | ||
639 | |||
640 | /* | ||
641 | ====================================================================== | ||
642 | epic_build_pyr() -- builds a separable QMF-style pyramid. The pyramid | ||
643 | is written over the original image. NOTE: the image size must be | ||
644 | divisible by 2^num_levels, but we do not check this here. | ||
645 | ====================================================================== | ||
646 | */ | ||
647 | void epic_build_pyr( float *image, int x_size, int y_size, int num_levels, | ||
648 | float *lo_filter, float *hi_filter, int filter_size ) | ||
649 | { | ||
650 | int x_level, y_level, level; | ||
651 | |||
652 | x_level = x_size; | ||
653 | y_level = y_size; | ||
654 | |||
655 | _Pragma( "loopbound min 4 max 4" ) | ||
656 | for ( level = 0; level < num_levels; ++level ){ | ||
657 | epic_build_level( image, x_level, y_level, lo_filter, hi_filter, | ||
658 | filter_size, image ); | ||
659 | x_level /= 2; | ||
660 | y_level /= 2; | ||
661 | } | ||
662 | } | ||
663 | |||
664 | |||
665 | /* | ||
666 | ====================================================================== | ||
667 | epic_build_level() -- builds a level of the pyramid by computing 4 | ||
668 | filtered and subsampled images. Since the convolution is separable, | ||
669 | image and result-block can point to the same place! Image order is | ||
670 | lowpass, horizontal, vertical (transposed), and diagonal. | ||
671 | ====================================================================== | ||
672 | */ | ||
673 | void epic_build_level( float *image, int level_x_size, int level_y_size, | ||
674 | float *lo_filter, float *hi_filter, | ||
675 | int filter_size, float *result_block ) | ||
676 | { | ||
677 | int total_size = level_x_size * level_y_size; | ||
678 | |||
679 | /* filter and subsample in the X direction */ | ||
680 | epic_internal_filter ( image, level_x_size, level_y_size, | ||
681 | lo_filter, epic_filtertemp, filter_size, 1, | ||
682 | 0, 2, 0, 1, epic_lo_imagetemp ); | ||
683 | epic_internal_filter ( image, level_x_size, level_y_size, | ||
684 | hi_filter, epic_filtertemp, filter_size, 1, | ||
685 | 1, 2, 0, 1, epic_hi_imagetemp ); | ||
686 | |||
687 | level_x_size /= 2; | ||
688 | /* now filter and subsample in the Y direction */ | ||
689 | epic_internal_filter ( epic_lo_imagetemp, level_x_size, | ||
690 | level_y_size, /* lowpass */ | ||
691 | lo_filter, epic_filtertemp, 1, filter_size, | ||
692 | 0, 1, 0, 2, result_block ); | ||
693 | epic_internal_filter ( epic_lo_imagetemp, level_x_size, | ||
694 | level_y_size, /* horizontal */ | ||
695 | hi_filter, epic_filtertemp, 1, filter_size, | ||
696 | 0, 1, 1, 2, ( result_block += ( total_size / 4 ) ) ); | ||
697 | epic_internal_filter ( epic_hi_imagetemp, level_x_size, | ||
698 | level_y_size, /* vertical */ | ||
699 | lo_filter, epic_filtertemp, 1, filter_size, | ||
700 | 0, 1, 0, 2, ( result_block += ( total_size / 4 ) ) ); | ||
701 | /* transpose the vertical band for more efficient scanning */ | ||
702 | epic_internal_transpose( result_block, level_y_size / 2, level_x_size ); | ||
703 | epic_internal_filter ( epic_hi_imagetemp, level_x_size, | ||
704 | level_y_size, /* diagonal */ | ||
705 | hi_filter, epic_filtertemp, 1, filter_size, | ||
706 | 0, 1, 1, 2, ( result_block += ( total_size / 4 ) ) ); | ||
707 | } | ||
708 | |||
709 | |||
710 | /* | ||
711 | ====================================================================== | ||
712 | In-place matrix tranpose algorithm. Handles non-square matrices, | ||
713 | too! Is there a faster algorithm?? | ||
714 | ====================================================================== | ||
715 | */ | ||
716 | void epic_internal_transpose( float *mat, int rows, int cols ) | ||
717 | { | ||
718 | register int swap_pos; | ||
719 | register int modulus = rows * cols - 1; | ||
720 | register int current_pos; | ||
721 | register float swap_val; | ||
722 | |||
723 | /* loop, ignoring first and last elements */ | ||
724 | _Pragma( "loopbound min 1022 max 2399" ) | ||
725 | for ( current_pos = 1; current_pos < modulus; ++current_pos ) { | ||
726 | /* Compute swap position */ | ||
727 | swap_pos = current_pos; | ||
728 | |||
729 | _Pragma( "loopbound min 1 max 2" ) | ||
730 | do { | ||
731 | swap_pos = ( swap_pos * cols ) % modulus; | ||
732 | } while ( swap_pos < current_pos ); | ||
733 | |||
734 | if ( current_pos != swap_pos ) { | ||
735 | swap_val = mat[swap_pos]; | ||
736 | mat[swap_pos] = mat[current_pos]; | ||
737 | mat[current_pos] = swap_val; | ||
738 | } | ||
739 | } | ||
740 | } | ||
741 | |||
742 | |||
743 | /* -------------------------------------------------------------------- | ||
744 | Correlate FILT with IMAGE, subsampling according to GRID parameters, | ||
745 | with values placed into result array. TEMP is a temporary | ||
746 | array the size of the filter. EDGES is a string -- see convolve.h. | ||
747 | The convolution is done in 9 sections, where the border sections use | ||
748 | specially computed edge-handling filters (see edges.c). The origin | ||
749 | of the filter is assumed to be (floor(x_fdim/2), floor(y_fdim/2)). | ||
750 | 10/6/89 - approximately optimized the choice of register vars on SPARCS. | ||
751 | ------------------------------------------------------------------------ */ | ||
752 | void epic_internal_filter( float *image, int x_dim, int y_dim, float *filt, | ||
753 | float *temp, int x_fdim, int y_fdim, | ||
754 | int xgrid_start, int xgrid_step, int ygrid_start, | ||
755 | int ygrid_step, float *result ) | ||
756 | { | ||
757 | //register double sum; | ||
758 | register float sum; | ||
759 | register int x_filt, im_pos, y_filt_lin; | ||
760 | register int y_im_lin, x_pos, filt_size = x_fdim * y_fdim; | ||
761 | register int y_pos, res_pos; | ||
762 | register int last_ctr_col = x_dim - x_fdim; | ||
763 | int last_ctr_row = ( y_dim - y_fdim ) * x_dim; | ||
764 | int first_row, first_col ; | ||
765 | int x_fmid = x_fdim / 2; | ||
766 | int y_fmid = y_fdim / 2; | ||
767 | int x_stop = x_fdim - x_fmid + 1; | ||
768 | int y_stop = y_fdim - y_fmid + 1; | ||
769 | int ygrid_step_full = ygrid_step * x_dim; | ||
770 | int prev_res_pos, x_res_dim = ( x_dim - xgrid_start + xgrid_step - 1 ) / | ||
771 | xgrid_step; | ||
772 | int rt_edge_res_pos = x_res_dim; | ||
773 | |||
774 | res_pos = 0; | ||
775 | first_col = xgrid_start - x_fmid + xgrid_step; | ||
776 | |||
777 | _Pragma( "loopbound min 1 max 4" ) | ||
778 | for ( y_pos = ygrid_start - y_fmid - 1; y_pos < 0; y_pos += ygrid_step ) { | ||
779 | _Pragma( "loopbound min 1 max 4" ) | ||
780 | for ( x_pos = xgrid_start - x_fmid; /* top-left corner */ | ||
781 | x_pos < 0; | ||
782 | x_pos += xgrid_step ) { | ||
783 | epic_reflect1( filt, x_fdim, y_fdim, x_pos, y_pos, temp, FILTER ); | ||
784 | sum = 0.0f; | ||
785 | x_filt = y_im_lin = 0; | ||
786 | _Pragma( "loopbound min 1 max 15" ) | ||
787 | for ( y_filt_lin = x_fdim; y_filt_lin <= filt_size; | ||
788 | y_filt_lin += x_fdim ) { | ||
789 | im_pos = y_im_lin; | ||
790 | |||
791 | _Pragma( "loopbound min 1 max 15" ) | ||
792 | for ( ; x_filt < y_filt_lin; ++x_filt ) { | ||
793 | sum += image[im_pos] * temp[x_filt]; | ||
794 | ++im_pos; | ||
795 | } | ||
796 | y_im_lin += x_dim; | ||
797 | } | ||
798 | result[res_pos] = sum; | ||
799 | ++res_pos; | ||
800 | } | ||
801 | first_col = x_pos + 1; | ||
802 | epic_reflect1( filt, x_fdim, y_fdim, 0, y_pos, temp, FILTER ); | ||
803 | _Pragma( "loopbound min 41 max 46" ) | ||
804 | for ( x_pos = first_col; /* top edge */ | ||
805 | x_pos < last_ctr_col; | ||
806 | x_pos += xgrid_step ) { | ||
807 | sum = 0.0f; | ||
808 | x_filt = y_im_lin = 0; | ||
809 | _Pragma( "loopbound min 1 max 15" ) | ||
810 | for ( y_filt_lin = x_fdim; y_filt_lin <= filt_size; | ||
811 | y_filt_lin += x_fdim ) { | ||
812 | im_pos = x_pos + y_im_lin; | ||
813 | _Pragma( "loopbound min 1 max 15" ) | ||
814 | for ( ; x_filt < y_filt_lin; ++x_filt ) { | ||
815 | sum += image[im_pos] * temp[x_filt]; | ||
816 | ++im_pos; | ||
817 | } | ||
818 | y_im_lin += x_dim; | ||
819 | } | ||
820 | result[res_pos] = sum; | ||
821 | ++res_pos; | ||
822 | } | ||
823 | rt_edge_res_pos = res_pos + x_res_dim; /* save this for later ... */ | ||
824 | _Pragma( "loopbound min 1 max 4" ) | ||
825 | for ( x_pos += ( 1 - last_ctr_col ); /* top-right corner */ | ||
826 | x_pos < x_stop; | ||
827 | x_pos += xgrid_step ) { | ||
828 | epic_reflect1( filt, x_fdim, y_fdim, x_pos, y_pos, temp, FILTER ); | ||
829 | sum = 0.0f; | ||
830 | x_filt = y_im_lin = 0; | ||
831 | _Pragma( "loopbound min 1 max 15" ) | ||
832 | for ( y_filt_lin = x_fdim; y_filt_lin <= filt_size; | ||
833 | y_filt_lin += x_fdim ) { | ||
834 | im_pos = y_im_lin + last_ctr_col; | ||
835 | |||
836 | _Pragma( "loopbound min 1 max 15" ) | ||
837 | for ( ; x_filt < y_filt_lin; ++x_filt ) { | ||
838 | sum += image[im_pos] * temp[x_filt]; | ||
839 | ++im_pos; | ||
840 | } | ||
841 | y_im_lin += x_dim; | ||
842 | } | ||
843 | result[res_pos] = sum; | ||
844 | ++res_pos; | ||
845 | } | ||
846 | } /* end top */ | ||
847 | |||
848 | first_row = x_dim * ( y_pos + 1 ); /* need this to go down the sides */ | ||
849 | prev_res_pos = res_pos; | ||
850 | _Pragma( "loopbound min 1 max 4" ) | ||
851 | for ( x_pos = xgrid_start - x_fmid; /* left edge */ | ||
852 | x_pos < 1; | ||
853 | x_pos += xgrid_step ) { | ||
854 | res_pos = prev_res_pos; | ||
855 | epic_reflect1( filt, x_fdim, y_fdim, x_pos, 0, temp, FILTER ); | ||
856 | _Pragma( "loopbound min 41 max 97" ) | ||
857 | for ( y_pos = first_row; y_pos < last_ctr_row; | ||
858 | y_pos += ygrid_step_full ) { | ||
859 | sum = 0.0f; | ||
860 | x_filt = 0, y_im_lin = y_pos; | ||
861 | _Pragma( "loopbound min 1 max 15" ) | ||
862 | for ( y_filt_lin = x_fdim; y_filt_lin <= filt_size; | ||
863 | y_filt_lin += x_fdim ) { | ||
864 | im_pos = y_im_lin; | ||
865 | _Pragma( "loopbound min 1 max 15" ) | ||
866 | for ( ; x_filt < y_filt_lin; x_filt++ ) { | ||
867 | sum += image[im_pos] * temp[x_filt]; | ||
868 | ++im_pos; | ||
869 | } | ||
870 | y_im_lin += x_dim; | ||
871 | } | ||
872 | result[res_pos] = sum; | ||
873 | res_pos += x_res_dim; | ||
874 | } | ||
875 | prev_res_pos++; | ||
876 | } | ||
877 | epic_reflect1( filt, x_fdim, y_fdim, 0, 0, temp, FILTER ); | ||
878 | _Pragma( "loopbound min 41 max 97" ) | ||
879 | for ( y_pos = first_row; /* center region of image */ | ||
880 | y_pos < last_ctr_row; | ||
881 | y_pos += ygrid_step_full ) { | ||
882 | res_pos = prev_res_pos; | ||
883 | _Pragma( "loopbound min 41 max 46" ) | ||
884 | for ( x_pos = first_col; | ||
885 | x_pos < last_ctr_col; | ||
886 | x_pos += xgrid_step ) { | ||
887 | sum = 0.0f; | ||
888 | x_filt = 0, y_im_lin = y_pos; | ||
889 | _Pragma( "loopbound min 1 max 15" ) | ||
890 | for ( y_filt_lin = x_fdim; y_filt_lin <= filt_size; | ||
891 | y_filt_lin += x_fdim ) { | ||
892 | im_pos = x_pos + y_im_lin; | ||
893 | _Pragma( "loopbound min 1 max 15" ) | ||
894 | for ( ; x_filt < y_filt_lin; ++x_filt ) { | ||
895 | sum += image[im_pos] * temp[x_filt]; | ||
896 | ++im_pos; | ||
897 | } | ||
898 | y_im_lin += x_dim; | ||
899 | } | ||
900 | result[res_pos] = sum; | ||
901 | ++res_pos; | ||
902 | } | ||
903 | prev_res_pos += x_res_dim; | ||
904 | } | ||
905 | prev_res_pos = rt_edge_res_pos; | ||
906 | _Pragma( "loopbound min 1 max 4" ) | ||
907 | for ( x_pos += ( 1 - last_ctr_col ); /* right edge */ | ||
908 | x_pos < x_stop; | ||
909 | x_pos += xgrid_step ) { | ||
910 | res_pos = prev_res_pos; | ||
911 | epic_reflect1( filt, x_fdim, y_fdim, x_pos, 0, temp, FILTER ); | ||
912 | _Pragma( "loopbound min 41 max 97" ) | ||
913 | for ( y_pos = first_row; y_pos < last_ctr_row; | ||
914 | y_pos += ygrid_step_full ) { | ||
915 | sum = 0.0f; | ||
916 | x_filt = 0, y_im_lin = y_pos; | ||
917 | _Pragma( "loopbound min 1 max 15" ) | ||
918 | for ( y_filt_lin = x_fdim; | ||
919 | y_filt_lin <= filt_size; | ||
920 | y_filt_lin += x_fdim ) { | ||
921 | _Pragma( "loopbound min 1 max 15" ) | ||
922 | for ( im_pos = y_im_lin + last_ctr_col; | ||
923 | x_filt < y_filt_lin; | ||
924 | ++x_filt ) { | ||
925 | sum += image[im_pos] * temp[x_filt]; | ||
926 | ++im_pos; | ||
927 | } | ||
928 | y_im_lin += x_dim; | ||
929 | } | ||
930 | result[res_pos] = sum; | ||
931 | res_pos += x_res_dim; | ||
932 | } | ||
933 | prev_res_pos++; | ||
934 | } /* end mid */ | ||
935 | |||
936 | res_pos -= ( x_res_dim - 1 ); /* go to lower left corner */ | ||
937 | _Pragma( "loopbound min 1 max 4" ) | ||
938 | for ( y_pos = ( ( y_pos - last_ctr_row ) / x_dim ) + 1; /* bottom */ | ||
939 | y_pos < y_stop; | ||
940 | y_pos += ygrid_step ) { | ||
941 | _Pragma( "loopbound min 1 max 4" ) | ||
942 | for ( x_pos = xgrid_start - x_fmid; /* bottom-left corner */ | ||
943 | x_pos < 1; | ||
944 | x_pos += xgrid_step ) { | ||
945 | epic_reflect1( filt, x_fdim, y_fdim, x_pos, y_pos, temp, FILTER ); | ||
946 | sum = 0.0f; | ||
947 | x_filt = 0, y_im_lin = last_ctr_row; | ||
948 | _Pragma( "loopbound min 1 max 15" ) | ||
949 | for ( y_filt_lin = x_fdim; y_filt_lin <= filt_size; | ||
950 | y_filt_lin += x_fdim ) { | ||
951 | _Pragma( "loopbound min 1 max 15" ) | ||
952 | for ( im_pos = y_im_lin; | ||
953 | x_filt < y_filt_lin; | ||
954 | ++x_filt ) { | ||
955 | sum += image[im_pos] * temp[x_filt]; | ||
956 | ++im_pos; | ||
957 | } | ||
958 | y_im_lin += x_dim; | ||
959 | } | ||
960 | result[res_pos] = sum; | ||
961 | ++res_pos; | ||
962 | } | ||
963 | epic_reflect1( filt, x_fdim, y_fdim, 0, y_pos, temp, FILTER ); | ||
964 | _Pragma( "loopbound min 41 max 46" ) | ||
965 | for ( x_pos = first_col; /* bottom edge */ | ||
966 | x_pos < last_ctr_col; | ||
967 | x_pos += xgrid_step ) { | ||
968 | sum = 0.0f; | ||
969 | x_filt = 0, y_im_lin = last_ctr_row; | ||
970 | _Pragma( "loopbound min 1 max 15" ) | ||
971 | for ( y_filt_lin = x_fdim; y_filt_lin <= filt_size; | ||
972 | y_filt_lin += x_fdim ) { | ||
973 | _Pragma( "loopbound min 1 max 15" ) | ||
974 | for ( im_pos = x_pos + y_im_lin; | ||
975 | x_filt < y_filt_lin; | ||
976 | ++x_filt ) { | ||
977 | sum += image[im_pos] * temp[x_filt]; | ||
978 | ++im_pos; | ||
979 | } | ||
980 | y_im_lin += x_dim; | ||
981 | } | ||
982 | result[res_pos] = sum; | ||
983 | ++res_pos; | ||
984 | } | ||
985 | _Pragma( "loopbound min 1 max 4" ) | ||
986 | for ( x_pos += 1 - last_ctr_col; /* bottom-right corner */ | ||
987 | x_pos < x_stop; | ||
988 | x_pos += xgrid_step ) { | ||
989 | epic_reflect1( filt, x_fdim, y_fdim, x_pos, y_pos, temp, FILTER ); | ||
990 | sum = 0.0f; | ||
991 | x_filt = 0, y_im_lin = last_ctr_row; | ||
992 | _Pragma( "loopbound min 1 max 15" ) | ||
993 | for ( y_filt_lin = x_fdim; y_filt_lin <= filt_size; | ||
994 | y_filt_lin += x_fdim ) { | ||
995 | _Pragma( "loopbound min 1 max 15" ) | ||
996 | for ( im_pos = y_im_lin + last_ctr_col; | ||
997 | x_filt < y_filt_lin; | ||
998 | ++x_filt ) { | ||
999 | sum += image[im_pos] * temp[x_filt]; | ||
1000 | ++im_pos; | ||
1001 | } | ||
1002 | y_im_lin += x_dim; | ||
1003 | } | ||
1004 | result[res_pos] = sum; | ||
1005 | ++res_pos; | ||
1006 | } | ||
1007 | } /* end bottom */ | ||
1008 | |||
1009 | } /* end of epic_internal_filter */ | ||
1010 | |||
1011 | |||
1012 | /* | ||
1013 | The following function determine how edges are to be handled | ||
1014 | when performing convolutions of images with linear filters. | ||
1015 | Any edge handling function which is local and linear may be defined, | ||
1016 | except (unfortunately) constants cannot be added. So to treat the | ||
1017 | edges as if the image is surrounded by a gray field, you must paste it | ||
1018 | into a gray image, convolve, and crop it out... | ||
1019 | The main convolution function is called epic_internal_filter. The idea | ||
1020 | is that the convolution function calls the edge handling function which | ||
1021 | computes a new filter based on the old filter and the distance to the | ||
1022 | edge of the image. For example, reflection is done by reflecting the | ||
1023 | filter through the appropriate axis and summing. | ||
1024 | */ | ||
1025 | |||
1026 | /* | ||
1027 | ---------------- EDGE HANDLER ARGUMENTS ------------------------ | ||
1028 | filt - floating point array of filter taps. | ||
1029 | x_dim, y_dim - x and y dimensions of filt. | ||
1030 | x_pos - position of filter relative to the horizontal image edges. Negative | ||
1031 | values indicate left edge, positive indicate right edge. Zero | ||
1032 | indicates that the filter is not touching either edge. An absolute | ||
1033 | value of 1 indicates that the edge tap of the filter is over the | ||
1034 | edge pixel of the image. | ||
1035 | y_pos - analogous to x_pos. | ||
1036 | result - floating point array where the resulting filter will go. The edge | ||
1037 | of this filter will be aligned with the image for application... | ||
1038 | f_or_e - equal to one of the two constants EXPAND or FILTER. | ||
1039 | -------------------------------------------------------------------- | ||
1040 | */ | ||
1041 | |||
1042 | /* -------------------------------------------------------------------- | ||
1043 | epic_reflect1() - Reflection through the edge pixels. This is the right | ||
1044 | thing to do if you are subsampling by 2, since it maintains parity (even | ||
1045 | pixels positions remain even, odd ones remain odd). (note: procedure differs | ||
1046 | depending on f_or_e parameter). */ | ||
1047 | void epic_reflect1( float *filt, int x_dim, int y_dim, int x_pos, int y_pos, | ||
1048 | float *result, int f_or_e ) | ||
1049 | { | ||
1050 | int filt_sz = x_dim * y_dim; | ||
1051 | register int x_start = 0, y_start = 0, x_stop = x_dim, y_stop = filt_sz; | ||
1052 | register int y_filt, x_filt, y_edge, x_edge; | ||
1053 | register int x_base = ( x_pos > 0 ) ? ( x_dim - 1 ) : 0; | ||
1054 | register int y_base = ( y_pos > 0 ) ? ( x_dim * ( y_dim - 1 ) ) : 0; | ||
1055 | int x_edge_dist = ( x_pos > 0 ) ? ( x_pos - x_dim ) : ( ( x_pos < -1 ) ? | ||
1056 | ( x_pos + 1 ) : 0 ); | ||
1057 | int y_edge_dist = x_dim * ( ( y_pos > 0 ) ? ( y_pos - y_dim ) : ( ( | ||
1058 | y_pos < -1 ) ? ( y_pos + 1 ) : 0 ) ); | ||
1059 | int i; | ||
1060 | int mx_pos = ( x_dim / 2 ) + 1; | ||
1061 | int my_pos = ( y_dim / 2 ) + 1; | ||
1062 | |||
1063 | _Pragma( "loopbound min 15 max 15" ) | ||
1064 | for ( i = 0; i < filt_sz; ++i ) result[i] = 0.0f; | ||
1065 | |||
1066 | /* if EXPAND and filter is centered on image edge, do not reflect */ | ||
1067 | if ( f_or_e IS EXPAND ) { | ||
1068 | if ( x_pos IS mx_pos ) x_stop = ( x_dim + 1 ) / 2; | ||
1069 | else | ||
1070 | if ( x_pos IS - mx_pos ) { | ||
1071 | x_start = x_dim / 2; | ||
1072 | x_edge_dist = 0; | ||
1073 | } | ||
1074 | |||
1075 | if ( y_pos IS my_pos ) y_stop = x_dim * ( ( y_dim + 1 ) / 2 ); | ||
1076 | else | ||
1077 | if ( y_pos IS - my_pos ) { | ||
1078 | y_start = x_dim * ( y_dim / 2 ); | ||
1079 | y_edge_dist = 0; | ||
1080 | } | ||
1081 | } | ||
1082 | |||
1083 | y_edge = y_edge_dist; | ||
1084 | /* reflect at boundary of image */ | ||
1085 | _Pragma( "loopbound min 1 max 15" ) | ||
1086 | for ( y_filt = y_start; y_filt < y_stop; y_filt += x_dim ) { | ||
1087 | x_edge = x_edge_dist; | ||
1088 | _Pragma( "loopbound min 1 max 15" ) | ||
1089 | for ( x_filt = y_filt + x_start; x_filt < y_filt + x_stop; ++x_filt ) { | ||
1090 | result[abs( y_base - abs( y_edge ) ) + abs( x_base - abs( x_edge ) )] | ||
1091 | += filt[x_filt]; | ||
1092 | ++x_edge; | ||
1093 | } | ||
1094 | y_edge += x_dim; | ||
1095 | } | ||
1096 | |||
1097 | /* if EXPAND and filter is not centered on image edge, mult edge by 2 */ | ||
1098 | if ( f_or_e IS EXPAND ) { | ||
1099 | if ( ( abs( x_pos ) ISNT mx_pos ) AND ( x_pos ISNT 0 ) ) | ||
1100 | _Pragma( "loopbound min 0 max 0" ) | ||
1101 | for ( y_filt = x_base; y_filt < filt_sz; y_filt += x_dim ) | ||
1102 | result[y_filt] += result[y_filt]; | ||
1103 | if ( ( abs( y_pos ) ISNT my_pos ) AND ( y_pos ISNT 0 ) ) | ||
1104 | _Pragma( "loopbound min 0 max 0" ) | ||
1105 | for ( x_filt = y_base; x_filt < y_base + x_dim; ++x_filt ) | ||
1106 | result[x_filt] += result[x_filt]; | ||
1107 | } | ||
1108 | } | ||
1109 | |||
1110 | |||
1111 | /* | ||
1112 | Main functions | ||
1113 | */ | ||
1114 | |||
1115 | void _Pragma( "entrypoint" ) epic_main( void ) | ||
1116 | { | ||
1117 | epic_build_pyr( epic_image, X_SIZE, Y_SIZE, NUM_LEVELS, epic_lo_filter, | ||
1118 | epic_hi_filter, FILTER_SIZE ); | ||
1119 | } | ||
1120 | |||
1121 | int epic_return(){ | ||
1122 | int i; | ||
1123 | int checksum = 0; | ||
1124 | for ( i=0 ; i<X_SIZE*Y_SIZE ; i+=Y_SIZE+1 ){ | ||
1125 | checksum += epic_image[i]; | ||
1126 | } | ||
1127 | return ( checksum == 43968 ? 0 : 1); | ||
1128 | } | ||
1129 | |||
1130 | int main( int argc, char **argv ) | ||
1131 | { | ||
1132 | SET_UP | ||
1133 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
1134 | START_LOOP | ||
1135 | epic_init(); | ||
1136 | epic_main(); | ||
1137 | STOP_LOOP | ||
1138 | } | ||
1139 | WRITE_TO_FILE | ||
1140 | return epic_return(); | ||
1141 | } | ||
diff --git a/baseline/source/epic/epic.h b/baseline/source/epic/epic.h new file mode 100644 index 0000000..5e5675f --- /dev/null +++ b/baseline/source/epic/epic.h | |||
@@ -0,0 +1,72 @@ | |||
1 | #ifndef __EPIC_H_ | ||
2 | #define __EPIC_H_ | ||
3 | |||
4 | #define EPIC_VERSION 1.1 | ||
5 | |||
6 | /* ============= FUNDAMENTAL LIMITATIONS ============= */ | ||
7 | |||
8 | /* Maximum x- or y-size of image */ | ||
9 | #define MAX_IMAGE_DIM 16384 | ||
10 | |||
11 | /* Maximum number of pyramid levels (value 3*levs+1 stored in 5 bits). | ||
12 | This doesn't need to be larger than log2(MAX_IMAGE_DIM/FILTER_SIZE). */ | ||
13 | #define MAX_LEVELS 10 | ||
14 | |||
15 | /* Maximum number of quantization bins. This essentially determines | ||
16 | the maximum depth image to be represented. */ | ||
17 | #define MAX_BINS 511 | ||
18 | |||
19 | /* ============= SECONDARY (derived) LIMITATIONS ============= */ | ||
20 | |||
21 | /* This number determines the precision of the stored binsizes: | ||
22 | stored coefficients are accurate to +/- (1/SCALE_FACTOR). | ||
23 | On the other hand, this number also will limit the maximum amount | ||
24 | of compression. | ||
25 | It should not be more than [2^(8*sizeof(BinValueType))]/256. */ | ||
26 | #define SCALE_FACTOR 128 | ||
27 | |||
28 | /* This number must be consistent with the filters that are | ||
29 | hardwired into epic.c */ | ||
30 | #define FILTER_SIZE 15 | ||
31 | |||
32 | /* Log (base 2) of MAX_IMAGE_DIM^2: (bits required to store the dimensions) */ | ||
33 | #define LOG_MAX_IMAGE_SIZE 32 | ||
34 | |||
35 | /* The type of the quantized images. Must be SIGNED, and capable of holding | ||
36 | values in the range [-MAX_BINS, MAX_BINS] */ | ||
37 | typedef short BinIndexType; | ||
38 | |||
39 | /* The type used to represent the binsizes. Should be UNSIGNED. If this is | ||
40 | changed, be sure to change the places in epic.c and unepic.c where | ||
41 | binsizes are written or read from files. */ | ||
42 | typedef unsigned short BinValueType; | ||
43 | |||
44 | /* Number of possible values for a symbol. This must be at least | ||
45 | (MAX_BINS * 4) (one sign bit, one tag bit)... */ | ||
46 | #define NUM_SYMBOL_VALUES 65536 | ||
47 | |||
48 | /* Function prototypes. */ | ||
49 | void epic_build_pyr( float *image, int x_size, int y_size, int num_levels, | ||
50 | float *lo_filter, float *hi_filter, int filter_size ); | ||
51 | |||
52 | void epic_build_level( float *image, int level_x_size, int level_y_size, | ||
53 | float *lo_filter, float *hi_filter, | ||
54 | int filter_size, float *result_block ); | ||
55 | |||
56 | void epic_internal_transpose( register float *mat, int rows, | ||
57 | register int cols ); | ||
58 | |||
59 | void epic_reflect1( register float *filt, register int x_dim, int y_dim, | ||
60 | int x_pos, int y_pos, register float *result, int f_or_e ); | ||
61 | |||
62 | void epic_internal_filter( register float *image, register int x_dim, | ||
63 | register int y_dim, float *filt, | ||
64 | register float *temp, register int x_fdim, | ||
65 | register int y_fdim, int xgrid_start, | ||
66 | int xgrid_step, int ygrid_start, int ygrid_step, | ||
67 | register float *result ); | ||
68 | |||
69 | void epic_reflect1( float *filt, int x_dim, int y_dim, int x_pos, int y_pos, | ||
70 | float *result, int f_or_e ); | ||
71 | |||
72 | #endif // __EPIC_H_ | ||
diff --git a/baseline/source/extra.h b/baseline/source/extra.h new file mode 100644 index 0000000..ca92812 --- /dev/null +++ b/baseline/source/extra.h | |||
@@ -0,0 +1,116 @@ | |||
1 | #include <time.h> | ||
2 | #include <sys/mman.h> | ||
3 | #include <stdlib.h> | ||
4 | #include <stdio.h> | ||
5 | #include <string.h> | ||
6 | #include <signal.h> | ||
7 | #include <limits.h> | ||
8 | |||
9 | #define L3_CACHE_SIZE (11264*1024) | ||
10 | |||
11 | |||
12 | |||
13 | #define SET_UP char *thisProgram=argv[1];\ | ||
14 | int maxJobs=atoi(argv[2]);\ | ||
15 | char *thisCore=argv[3];\ | ||
16 | char *otherCore=argv[4];\ | ||
17 | char *otherProgram=argv[5];\ | ||
18 | char *runID=argv[6];\ | ||
19 | int output=atoi(argv[7]);\ | ||
20 | pid_t killMe;\ | ||
21 | struct timespec start, end;\ | ||
22 | int jobsComplete;\ | ||
23 | long progTime[maxJobs*output];\ | ||
24 | char fileName[50];\ | ||
25 | char *bigArray;\ | ||
26 | int wasteCount;\ | ||
27 | strcpy(fileName, runID);\ | ||
28 | strcat(fileName, ".txt");\ | ||
29 | mlockall(MCL_CURRENT || MCL_FUTURE); | ||
30 | |||
31 | |||
32 | //if output==0, endless loop | ||
33 | //avoids int overflow error with large numbers for background loops | ||
34 | |||
35 | #define SAVE_RESULTS if(jobsComplete>-1) progTime[jobsComplete]=(end.tv_nsec-start.tv_nsec)+(1000000000*(end.tv_sec-start.tv_sec)); | ||
36 | |||
37 | #define WRITE_TO_FILE if (output){\ | ||
38 | munlockall();\ | ||
39 | FILE *fp=fopen(fileName, "a");\ | ||
40 | if (fp == NULL) {\ | ||
41 | perror("Error opening file. \n");\ | ||
42 | exit(1);\ | ||
43 | }\ | ||
44 | for(jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){\ | ||
45 | fprintf(fp, "%s %s %s %s %d %ld %s %d \n",\ | ||
46 | thisProgram, otherProgram, thisCore, otherCore, maxJobs,\ | ||
47 | progTime[jobsComplete], runID, jobsComplete);\ | ||
48 | }\ | ||
49 | fclose(fp);\ | ||
50 | } | ||
51 | |||
52 | // Call the wbinvld instruction (it's in a kernel module due to it being ring-0) | ||
53 | #define FLUSH_CACHES FILE *fp = fopen("/proc/wbinvd", "r");\ | ||
54 | if (fp == NULL) {\ | ||
55 | perror("Cache flush module interface cannot be opened");\ | ||
56 | exit(1);\ | ||
57 | }\ | ||
58 | char dummy;\ | ||
59 | if (fread(&dummy, 1, 1, fp) == 0) {\ | ||
60 | perror("Unable to access cache flush module interface");\ | ||
61 | exit(1);\ | ||
62 | }\ | ||
63 | fclose(fp); | ||
64 | |||
65 | //invoke start timer twice, stop timer to make sure timer and vars are in cache | ||
66 | //#define START_TIMER clock_gettime(CLOCK_MONOTONIC, &start);\ | ||
67 | clock_gettime(CLOCK_MONOTONIC, &end);\ | ||
68 | clock_gettime(CLOCK_MONOTONIC, &start);\ | ||
69 | |||
70 | #define START_TIMER clock_gettime(CLOCK_MONOTONIC, &start); | ||
71 | |||
72 | #define STOP_TIMER clock_gettime(CLOCK_MONOTONIC, &end); | ||
73 | |||
74 | //waste a millisecond | ||
75 | |||
76 | #define WASTE_TIME clock_gettime(CLOCK_MONOTONIC, &start);\ | ||
77 | do{clock_gettime(CLOCK_MONOTONIC, &end);}\ | ||
78 | while( (end.tv_sec*1000000000+end.tv_nsec)-(start.tv_sec*1000000000+start.tv_nsec) < 1000000); | ||
79 | |||
80 | |||
81 | #define SLEEP nanosleep((const struct timespec[]){{0, 1000000}}, NULL); | ||
82 | |||
83 | //#define LOOP_WASTE for(wasteCount=0; wasteCount<1000000; wasteCount++){} | ||
84 | |||
85 | //at beginning of loop clear cache, waste some time | ||
86 | //wasting time allows interfering process to build up some cache presence | ||
87 | //using sleep instead of waste time loop causes problems | ||
88 | //both sleeping and spinning give advantage to threaded task | ||
89 | //#define START_LOOP if (output) {KILL_CACHE START_TIMER} | ||
90 | |||
91 | //#define START_LOOP if (output){START_TIMER} | ||
92 | |||
93 | //#define STOP_LOOP if (output) {STOP_TIMER SAVE_RESULTS} | ||
94 | //if (!output) {jobsComplete--;} | ||
95 | |||
96 | #define START_LOOP FLUSH_CACHES START_TIMER | ||
97 | #define STOP_LOOP STOP_TIMER SAVE_RESULTS | ||
98 | |||
99 | |||
100 | /* | ||
101 | Intended structure | ||
102 | |||
103 | main | ||
104 | SET_UP | ||
105 | notice that STOP LOOP negates the ++ if outout=0 | ||
106 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
107 | KILL_CACHE | ||
108 | START_TIMER | ||
109 | tacleInit(); | ||
110 | tacleMain(); | ||
111 | STOP_TIMER | ||
112 | SAVE_RESULTS | ||
113 | } | ||
114 | WRITE_TO_FILE | ||
115 | tacleReturn | ||
116 | */ | ||
diff --git a/baseline/source/fmref/Changelog.txt b/baseline/source/fmref/Changelog.txt new file mode 100644 index 0000000..e9e7055 --- /dev/null +++ b/baseline/source/fmref/Changelog.txt | |||
@@ -0,0 +1,5 @@ | |||
1 | 2017-06-27 | ||
2 | - Remove unused variables | ||
3 | - Introduce fmref_init and fmref_return functions. | ||
4 | - Add prefix fmref_ to global variables. | ||
5 | - Introduce dummy initialization in ieee754_rem_pio2f to please linter. | ||
diff --git a/baseline/source/fmref/fmref.c b/baseline/source/fmref/fmref.c new file mode 100644 index 0000000..6be1436 --- /dev/null +++ b/baseline/source/fmref/fmref.c | |||
@@ -0,0 +1,283 @@ | |||
1 | /* | ||
2 | * fmref.c: C reference implementation of FM Radio | ||
3 | * David Maze <dmaze@cag.lcs.mit.edu> | ||
4 | * $Id: fmref.c,v 1.2 2010-10-04 21:21:26 garus Exp $ | ||
5 | */ | ||
6 | |||
7 | |||
8 | #include "../extra.h" | ||
9 | #include "wcclibm.h" | ||
10 | #ifndef M_PI | ||
11 | #define M_PI 3.1415926535897932384626433832795 | ||
12 | #endif | ||
13 | |||
14 | // Defines | ||
15 | #define SAMPLING_RATE 250000000 | ||
16 | #define CUTOFF_FREQUENCY 108000000 | ||
17 | #define NUM_TAPS 64 | ||
18 | #define MAX_AMPLITUDE 27000.0 | ||
19 | #define BANDWIDTH 10000 | ||
20 | #define DECIMATION 4 | ||
21 | /* Must be at least NUM_TAPS+1: */ | ||
22 | #define IN_BUFFER_LEN 200 | ||
23 | #define EQUALIZER_BANDS 10 | ||
24 | |||
25 | |||
26 | // Type declarations | ||
27 | typedef struct FloatBuffer | ||
28 | { | ||
29 | float buff[IN_BUFFER_LEN]; | ||
30 | int rpos, rlen; | ||
31 | } | ||
32 | FloatBuffer; | ||
33 | /* Low pass filter: */ | ||
34 | typedef struct LPFData | ||
35 | { | ||
36 | float coeff[NUM_TAPS]; | ||
37 | float freq; | ||
38 | int taps, decimation; | ||
39 | } | ||
40 | LPFData; | ||
41 | typedef struct EqualizerData | ||
42 | { | ||
43 | LPFData lpf[EQUALIZER_BANDS + 1]; | ||
44 | FloatBuffer fb[EQUALIZER_BANDS + 1]; | ||
45 | float gain[EQUALIZER_BANDS]; | ||
46 | } | ||
47 | EqualizerData; | ||
48 | |||
49 | // Global vars | ||
50 | float fmref_lpf_coeff[NUM_TAPS]; | ||
51 | float fmref_eq_cutoffs[EQUALIZER_BANDS + 1] = | ||
52 | { 55.000004f, 77.78174f, 110.00001f, 155.56354f, 220.00002f, 311.12695f, | ||
53 | 440.00003f, 622.25415f, 880.00006f, 1244.5078f, 1760.0001f }; | ||
54 | static int fmref_numiters = 2; | ||
55 | |||
56 | // Forward declarations | ||
57 | void fmref_fb_compact(FloatBuffer *fb); | ||
58 | int fmref_fb_ensure_writable(FloatBuffer *fb, int amount); | ||
59 | void fmref_get_floats(FloatBuffer *fb); | ||
60 | void fmref_init_lpf_data(LPFData *data, float freq, int taps, int decimation); | ||
61 | void fmref_run_lpf(FloatBuffer *fbin, FloatBuffer *fbout, LPFData *data); | ||
62 | void fmref_run_demod(FloatBuffer *fbin, FloatBuffer *fbout); | ||
63 | void fmref_init_equalizer(EqualizerData *data); | ||
64 | void fmref_run_equalizer(FloatBuffer *fbin, FloatBuffer *fbout, EqualizerData *data); | ||
65 | void fmref_main(void); | ||
66 | |||
67 | void fmref_init(void) | ||
68 | { | ||
69 | // dummy init function | ||
70 | } | ||
71 | |||
72 | int fmref_return(void) | ||
73 | { | ||
74 | // dummy return value | ||
75 | return 0; | ||
76 | } | ||
77 | |||
78 | int main(int argc, char **argv){ | ||
79 | |||
80 | SET_UP | ||
81 | for(jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
82 | START_LOOP | ||
83 | fmref_init(); | ||
84 | fmref_main(); | ||
85 | STOP_LOOP | ||
86 | } | ||
87 | WRITE_TO_FILE | ||
88 | return fmref_return(); | ||
89 | } | ||
90 | |||
91 | FloatBuffer fmref_fb1, fmref_fb2, fmref_fb3, fmref_fb4; | ||
92 | LPFData fmref_lpf_data; | ||
93 | |||
94 | void fmref_main(void) | ||
95 | { | ||
96 | int i; | ||
97 | EqualizerData eq_data; | ||
98 | |||
99 | fmref_fb1.rpos = fmref_fb1.rlen = 0; | ||
100 | fmref_fb2.rpos = fmref_fb2.rlen = 0; | ||
101 | fmref_fb3.rpos = fmref_fb3.rlen = 0; | ||
102 | fmref_fb4.rpos = fmref_fb4.rlen = 0; | ||
103 | |||
104 | fmref_init_lpf_data(&fmref_lpf_data, CUTOFF_FREQUENCY, NUM_TAPS, DECIMATION); | ||
105 | fmref_init_equalizer(&eq_data); | ||
106 | |||
107 | /* Startup: */ | ||
108 | fmref_get_floats(&fmref_fb1); | ||
109 | /* LPF needs at least NUM_TAPS+1 inputs; fmref_get_floats is fine. */ | ||
110 | fmref_run_lpf(&fmref_fb1, &fmref_fb2, &fmref_lpf_data); | ||
111 | /* run_demod needs 1 input, OK here. */ | ||
112 | /* run_equalizer needs 51 inputs (same reason as for LPF). This means | ||
113 | * running the pipeline up to demod 50 times in advance: */ | ||
114 | _Pragma( "loopbound min 64 max 64" ) | ||
115 | for (i = 0; i < 64; i++) { | ||
116 | if (fmref_fb1.rlen - fmref_fb1.rpos < NUM_TAPS + 1) | ||
117 | fmref_get_floats(&fmref_fb1); | ||
118 | fmref_run_lpf(&fmref_fb1, &fmref_fb2, &fmref_lpf_data); | ||
119 | fmref_run_demod(&fmref_fb2, &fmref_fb3); | ||
120 | } | ||
121 | |||
122 | /* Main loop: */ | ||
123 | _Pragma( "loopbound min 2 max 2" ) | ||
124 | while (fmref_numiters-- > 0) { | ||
125 | /* The low-pass filter will need NUM_TAPS+1 items; read them if we | ||
126 | * need to. */ | ||
127 | if (fmref_fb1.rlen - fmref_fb1.rpos < NUM_TAPS + 1) | ||
128 | fmref_get_floats(&fmref_fb1); | ||
129 | fmref_run_lpf(&fmref_fb1, &fmref_fb2, &fmref_lpf_data); | ||
130 | fmref_run_demod(&fmref_fb2, &fmref_fb3); | ||
131 | fmref_run_equalizer(&fmref_fb3, &fmref_fb4, &eq_data); | ||
132 | |||
133 | } | ||
134 | } | ||
135 | |||
136 | void fmref_fb_compact(FloatBuffer *fb) | ||
137 | { | ||
138 | |||
139 | int i; | ||
140 | char *source; | ||
141 | char *target; | ||
142 | target = (char*)(fb->buff); | ||
143 | source = (char*)(fb->buff + fb->rpos); | ||
144 | _Pragma( "loopbound min 0 max 60" ) | ||
145 | for (i = 0; i < fb->rlen - fb->rpos; i++) { | ||
146 | target[i] = source[i]; | ||
147 | } | ||
148 | fb->rlen -= fb->rpos; | ||
149 | fb->rpos = 0; | ||
150 | } | ||
151 | |||
152 | int fmref_fb_ensure_writable(FloatBuffer *fb, int amount) | ||
153 | { | ||
154 | int available = IN_BUFFER_LEN - fb->rlen; | ||
155 | if (available >= amount) | ||
156 | return 1; | ||
157 | |||
158 | /* Nope, not enough room, move current contents back to the beginning. */ | ||
159 | fmref_fb_compact(fb); | ||
160 | |||
161 | available = IN_BUFFER_LEN - fb->rlen; | ||
162 | if (available >= amount) | ||
163 | return 1; | ||
164 | |||
165 | return 0; | ||
166 | } | ||
167 | |||
168 | void fmref_get_floats(FloatBuffer *fb) | ||
169 | { | ||
170 | static int x = 0; | ||
171 | fmref_fb_compact(fb); | ||
172 | |||
173 | /* Fill the remaining space in fb with 1.0. */ | ||
174 | _Pragma( "loopbound min 200 max 200" ) | ||
175 | while (fb->rlen < IN_BUFFER_LEN) { | ||
176 | fb->buff[fb->rlen++] = (float)x; | ||
177 | x++; | ||
178 | } | ||
179 | } | ||
180 | |||
181 | void fmref_init_lpf_data(LPFData *data, float freq, int taps, int decimation) | ||
182 | { | ||
183 | /* Assume that CUTOFF_FREQUENCY is non-zero. See comments in | ||
184 | * StreamIt LowPassFilter.java for origin. */ | ||
185 | float w = 2 * M_PI * freq / SAMPLING_RATE; | ||
186 | int i; | ||
187 | float m = taps - 1.0f; | ||
188 | |||
189 | data->freq = freq; | ||
190 | data->taps = taps; | ||
191 | data->decimation = decimation; | ||
192 | |||
193 | _Pragma( "loopbound min 64 max 64" ) | ||
194 | for (i = 0; i < taps; i++) { | ||
195 | if (i - m / 2 == 0.0f) | ||
196 | data->coeff[i] = w / M_PI; | ||
197 | else | ||
198 | data->coeff[i] = sin(w * (i - m / 2)) / M_PI / (i - m / 2) * | ||
199 | (0.54f - 0.46f * cos(2 * M_PI * i / m)); | ||
200 | } | ||
201 | } | ||
202 | |||
203 | void fmref_run_lpf(FloatBuffer *fbin, FloatBuffer *fbout, LPFData *data) | ||
204 | { | ||
205 | float sum = 0.0f; | ||
206 | int i = 0; | ||
207 | |||
208 | _Pragma( "loopbound min 64 max 64" ) | ||
209 | for (i = 0; i < data->taps; i++) { | ||
210 | sum += fbin->buff[fbin->rpos + i] * data->coeff[i]; | ||
211 | } | ||
212 | |||
213 | fbin->rpos += data->decimation + 1; | ||
214 | |||
215 | /* Check that there's room in the output buffer; move data if necessary. */ | ||
216 | fmref_fb_ensure_writable(fbout, 1); | ||
217 | fbout->buff[fbout->rlen++] = sum; | ||
218 | } | ||
219 | |||
220 | void fmref_run_demod(FloatBuffer *fbin, FloatBuffer *fbout) | ||
221 | { | ||
222 | float temp, gain; | ||
223 | gain = MAX_AMPLITUDE * SAMPLING_RATE / (BANDWIDTH * M_PI); | ||
224 | temp = fbin->buff[fbin->rpos] * fbin->buff[fbin->rpos + 1]; | ||
225 | temp = gain * atan(temp); | ||
226 | fbin->rpos++; | ||
227 | fmref_fb_ensure_writable(fbout, 1); | ||
228 | fbout->buff[fbout->rlen++] = temp; | ||
229 | } | ||
230 | |||
231 | void fmref_init_equalizer(EqualizerData *data) | ||
232 | { | ||
233 | int i; | ||
234 | |||
235 | /* Equalizer structure: there are ten band-pass filters, with | ||
236 | * cutoffs as shown below. The outputs of these filters get added | ||
237 | * together. Each band-pass filter is LPF(high)-LPF(low). */ | ||
238 | _Pragma( "loopbound min 11 max 11" ) | ||
239 | for (i = 0; i < EQUALIZER_BANDS + 1; i++) | ||
240 | fmref_init_lpf_data(&data->lpf[i], fmref_eq_cutoffs[i], 64, 0); | ||
241 | |||
242 | /* Also initialize member buffers. */ | ||
243 | _Pragma( "loopbound min 11 max 11" ) | ||
244 | for (i = 0; i < EQUALIZER_BANDS + 1; i++) | ||
245 | data->fb[i].rpos = data->fb[i].rlen = 0; | ||
246 | |||
247 | _Pragma( "loopbound min 10 max 10" ) | ||
248 | for (i = 0; i < EQUALIZER_BANDS; i++) { | ||
249 | // the gain amplifies the middle bands the most | ||
250 | float val = (((float)i) - (((float)(EQUALIZER_BANDS - 1)) / 2.0f)) / 5.0f; | ||
251 | data->gain[i] = val > 0 ? 2.0f - val : 2.0f + val; | ||
252 | } | ||
253 | } | ||
254 | |||
255 | void fmref_run_equalizer(FloatBuffer *fbin, FloatBuffer *fbout, EqualizerData *data) | ||
256 | { | ||
257 | int i, rpos; | ||
258 | float lpf_out[EQUALIZER_BANDS + 1]; | ||
259 | float sum = 0.0; | ||
260 | |||
261 | /* Save the input read location; we can reuse the same input data on all | ||
262 | * of the LPFs. */ | ||
263 | rpos = fbin->rpos; | ||
264 | |||
265 | /* Run the child filters. */ | ||
266 | _Pragma( "loopbound min 11 max 11" ) | ||
267 | for (i = 0; i < EQUALIZER_BANDS + 1; i++) { | ||
268 | fbin->rpos = rpos; | ||
269 | fmref_run_lpf(fbin, &data->fb[i], &data->lpf[i]); | ||
270 | lpf_out[i] = data->fb[i].buff[data->fb[i].rpos++]; | ||
271 | } | ||
272 | |||
273 | /* Now process the results of the filters. Remember that each band is | ||
274 | * output(hi)-output(lo). */ | ||
275 | _Pragma( "loopbound min 10 max 10" ) | ||
276 | for (i = 0; i < EQUALIZER_BANDS; i++) | ||
277 | sum += (lpf_out[i + 1] - lpf_out[i]) * data->gain[i]; | ||
278 | |||
279 | /* Write that result. */ | ||
280 | fmref_fb_ensure_writable(fbout, 1); | ||
281 | fbout->buff[fbout->rlen++] = sum; | ||
282 | } | ||
283 | |||
diff --git a/baseline/source/fmref/license.txt b/baseline/source/fmref/license.txt new file mode 100644 index 0000000..7029925 --- /dev/null +++ b/baseline/source/fmref/license.txt | |||
@@ -0,0 +1,21 @@ | |||
1 | The MIT License | ||
2 | |||
3 | Copyright (c) <year> <copyright holders> | ||
4 | |||
5 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
6 | of this software and associated documentation files (the "Software"), to deal | ||
7 | in the Software without restriction, including without limitation the rights | ||
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
9 | copies of the Software, and to permit persons to whom the Software is | ||
10 | furnished to do so, subject to the following conditions: | ||
11 | |||
12 | The above copyright notice and this permission notice shall be included in | ||
13 | all copies or substantial portions of the Software. | ||
14 | |||
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
21 | THE SOFTWARE. | ||
diff --git a/baseline/source/fmref/math_private.h b/baseline/source/fmref/math_private.h new file mode 100644 index 0000000..58d4354 --- /dev/null +++ b/baseline/source/fmref/math_private.h | |||
@@ -0,0 +1,178 @@ | |||
1 | /* | ||
2 | * ==================================================== | ||
3 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
4 | * | ||
5 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
6 | * Permission to use, copy, modify, and distribute this | ||
7 | * software is freely granted, provided that this notice | ||
8 | * is preserved. | ||
9 | * ==================================================== | ||
10 | */ | ||
11 | |||
12 | /* | ||
13 | * from: @(#)fdlibm.h 5.1 93/09/24 | ||
14 | */ | ||
15 | |||
16 | #ifndef _MATH_PRIVATE_H_ | ||
17 | #define _MATH_PRIVATE_H_ | ||
18 | |||
19 | #include "wcclibm.h" | ||
20 | |||
21 | //#include <endian.h> | ||
22 | //#include <sys/types.h> | ||
23 | |||
24 | /* A representation of a double as a union. */ | ||
25 | union ieee754_double | ||
26 | { | ||
27 | double d; | ||
28 | |||
29 | /* This is the IEEE 754 double-precision format. */ | ||
30 | struct { | ||
31 | /* Together these comprise the mantissa. */ | ||
32 | unsigned int mantissa1:32; | ||
33 | unsigned int mantissa0:20; | ||
34 | unsigned int exponent:11; | ||
35 | unsigned int negative:1; | ||
36 | } ieee; | ||
37 | |||
38 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | ||
39 | struct { | ||
40 | /* Together these comprise the mantissa. */ | ||
41 | unsigned int mantissa1:32; | ||
42 | unsigned int mantissa0:19; | ||
43 | unsigned int quiet_nan:1; | ||
44 | unsigned int exponent:11; | ||
45 | unsigned int negative:1; | ||
46 | } ieee_nan; | ||
47 | }; | ||
48 | |||
49 | /* The original fdlibm code used statements like: | ||
50 | n0 = ((*(int*)&one)>>29)^1; * index of high word * | ||
51 | ix0 = *(n0+(int*)&x); * high word of x * | ||
52 | ix1 = *((1-n0)+(int*)&x); * low word of x * | ||
53 | to dig two 32 bit words out of the 64 bit IEEE floating point | ||
54 | value. That is non-ANSI, and, moreover, the gcc instruction | ||
55 | scheduler gets it wrong. We instead use the following macros. | ||
56 | Unlike the original code, we determine the endianness at compile | ||
57 | time, not at run time; I don't see much benefit to selecting | ||
58 | endianness at run time. */ | ||
59 | |||
60 | /* A union which permits us to convert between a double and two 32 bit | ||
61 | ints. */ | ||
62 | |||
63 | /* #if __FLOAT_WORD_ORDER == BIG_ENDIAN */ | ||
64 | /* #warning USING Big Endian float word order */ | ||
65 | /* typedef union */ | ||
66 | /* { */ | ||
67 | /* double value; */ | ||
68 | /* struct */ | ||
69 | /* { */ | ||
70 | /* u_int16_t msw; */ | ||
71 | /* u_int16_t lsw; */ | ||
72 | /* } parts; */ | ||
73 | /* } ieeeDoubleShapeType; */ | ||
74 | |||
75 | /* #endif */ | ||
76 | |||
77 | /* #if __FLOAT_WORD_ORDER == LITTLE_ENDIAN */ | ||
78 | /* #warning USING Little Endian float word order */ | ||
79 | |||
80 | typedef union | ||
81 | { | ||
82 | double value; | ||
83 | struct | ||
84 | { | ||
85 | u_int16_t lsw; | ||
86 | u_int16_t msw; | ||
87 | } parts; | ||
88 | } ieeeDoubleShapeType; | ||
89 | |||
90 | /* #endif */ | ||
91 | |||
92 | /* Get two 32 bit ints from a double. */ | ||
93 | |||
94 | #define EXTRACT_WORDS(ix0,ix1,d) \ | ||
95 | { \ | ||
96 | ieeeDoubleShapeType ew_u; \ | ||
97 | ew_u.value = (d); \ | ||
98 | (ix0) = ew_u.parts.msw; \ | ||
99 | (ix1) = ew_u.parts.lsw; \ | ||
100 | } | ||
101 | |||
102 | /* Get the more significant 32 bit int from a double. */ | ||
103 | |||
104 | #define GET_HIGH_WORD(i,d) \ | ||
105 | { \ | ||
106 | ieeeDoubleShapeType gh_u; \ | ||
107 | gh_u.value = (d); \ | ||
108 | (i) = gh_u.parts.msw; \ | ||
109 | } | ||
110 | |||
111 | /* Get the less significant 32 bit int from a double. */ | ||
112 | |||
113 | #define GET_LOW_WORD(i,d) \ | ||
114 | { \ | ||
115 | ieeeDoubleShapeType gl_u; \ | ||
116 | gl_u.value = (d); \ | ||
117 | (i) = gl_u.parts.lsw; \ | ||
118 | } | ||
119 | |||
120 | /* Set a double from two 32 bit ints. */ | ||
121 | |||
122 | #define INSERT_WORDS(d,ix0,ix1) \ | ||
123 | { \ | ||
124 | ieeeDoubleShapeType iw_u; \ | ||
125 | iw_u.parts.msw = (ix0); \ | ||
126 | iw_u.parts.lsw = (ix1); \ | ||
127 | (d) = iw_u.value; \ | ||
128 | } | ||
129 | |||
130 | /* Set the more significant 32 bits of a double from an int. */ | ||
131 | |||
132 | #define SET_HIGH_WORD(d,v) \ | ||
133 | { \ | ||
134 | ieeeDoubleShapeType sh_u; \ | ||
135 | sh_u.value = (d); \ | ||
136 | sh_u.parts.msw = (v); \ | ||
137 | (d) = sh_u.value; \ | ||
138 | } | ||
139 | |||
140 | /* Set the less significant 32 bits of a double from an int. */ | ||
141 | |||
142 | #define SET_LOW_WORD(d,v) \ | ||
143 | { \ | ||
144 | ieeeDoubleShapeType sl_u; \ | ||
145 | sl_u.value = (d); \ | ||
146 | sl_u.parts.lsw = (v); \ | ||
147 | (d) = sl_u.value; \ | ||
148 | } | ||
149 | |||
150 | /* A union which permits us to convert between a float and a 32 bit | ||
151 | int. */ | ||
152 | |||
153 | typedef union | ||
154 | { | ||
155 | float value; | ||
156 | u_int32_t word; | ||
157 | } ieee_float_shape_type; | ||
158 | |||
159 | /* Get a 32 bit int from a float. */ | ||
160 | |||
161 | #define GET_FLOAT_WORD(i,d) \ | ||
162 | { \ | ||
163 | ieee_float_shape_type gf_u; \ | ||
164 | gf_u.value = (d); \ | ||
165 | (i) = gf_u.word; \ | ||
166 | } | ||
167 | |||
168 | /* Set a float from a 32 bit int. */ | ||
169 | |||
170 | #define SET_FLOAT_WORD(d,i) \ | ||
171 | { \ | ||
172 | ieee_float_shape_type sf_u; \ | ||
173 | sf_u.word = (i); \ | ||
174 | (d) = sf_u.value; \ | ||
175 | } | ||
176 | |||
177 | |||
178 | #endif /* _MATH_PRIVATE_H_ */ | ||
diff --git a/baseline/source/fmref/wcclibm.c b/baseline/source/fmref/wcclibm.c new file mode 100644 index 0000000..39b8cbe --- /dev/null +++ b/baseline/source/fmref/wcclibm.c | |||
@@ -0,0 +1,522 @@ | |||
1 | #include "math_private.h" | ||
2 | #include "wcclibm.h" | ||
3 | |||
4 | |||
5 | |||
6 | /* e_rem_pio2f.c -- float version of e_rem_pio2.c | ||
7 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
8 | */ | ||
9 | |||
10 | /* | ||
11 | * ==================================================== | ||
12 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
13 | * | ||
14 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
15 | * Permission to use, copy, modify, and distribute this | ||
16 | * software is freely granted, provided that this notice | ||
17 | * is preserved. | ||
18 | * ==================================================== | ||
19 | */ | ||
20 | |||
21 | #if defined(LIBM_SCCS) && !defined(lint) | ||
22 | static char rcsid[] = "$NetBSD: e_rem_pio2f.c,v 1.5 1995/05/10 20:46:03 jtc Exp $"; | ||
23 | #endif | ||
24 | |||
25 | /* __ieee754_rem_pio2f(x,y) | ||
26 | * | ||
27 | * return the remainder of x rem pi/2 in y[0]+y[1] | ||
28 | * use __kernel_rem_pio2f() | ||
29 | */ | ||
30 | |||
31 | /* This array is like the one in e_rem_pio2.c, but the numbers are | ||
32 | single precision and the last 8 bits are forced to 0. */ | ||
33 | #ifdef __STDC__ | ||
34 | static const int32_t fmref_npio2_hw[] = { | ||
35 | #else | ||
36 | static int32_t fmref_npio2_hw[] = { | ||
37 | #endif | ||
38 | 0x3fc90f00, 0x40490f00, 0x4096cb00, 0x40c90f00, 0x40fb5300, 0x4116cb00, | ||
39 | 0x412fed00, 0x41490f00, 0x41623100, 0x417b5300, 0x418a3a00, 0x4196cb00, | ||
40 | 0x41a35c00, 0x41afed00, 0x41bc7e00, 0x41c90f00, 0x41d5a000, 0x41e23100, | ||
41 | 0x41eec200, 0x41fb5300, 0x4203f200, 0x420a3a00, 0x42108300, 0x4216cb00, | ||
42 | 0x421d1400, 0x42235c00, 0x4229a500, 0x422fed00, 0x42363600, 0x423c7e00, | ||
43 | 0x4242c700, 0x42490f00 | ||
44 | }; | ||
45 | |||
46 | /* | ||
47 | * invpio2: 24 bits of 2/pi | ||
48 | * pio2_1: first 17 bit of pi/2 | ||
49 | * pio2_1t: pi/2 - pio2_1 | ||
50 | * pio2_2: second 17 bit of pi/2 | ||
51 | * pio2_2t: pi/2 - (pio2_1+pio2_2) | ||
52 | * pio2_3: third 17 bit of pi/2 | ||
53 | * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) | ||
54 | */ | ||
55 | |||
56 | #ifdef __STDC__ | ||
57 | static const float | ||
58 | #else | ||
59 | static float | ||
60 | #endif | ||
61 | /* zero = 0.0000000000e+00f, /\* 0x00000000 *\/ */ | ||
62 | /* half = 5.0000000000e-01f, /\* 0x3f000000 *\/ */ | ||
63 | /* two8 = 2.5600000000e+02f, /\* 0x43800000 *\/ */ | ||
64 | fmref_invpio2 = 6.3661980629e-01f, /* 0x3f22f984 */ | ||
65 | fmref_pio2_1 = 1.5707855225e+00f, /* 0x3fc90f80 */ | ||
66 | fmref_pio2_1t = 1.0804334124e-05f, /* 0x37354443 */ | ||
67 | fmref_pio2_2 = 1.0804273188e-05f, /* 0x37354400 */ | ||
68 | fmref_pio2_2t = 6.0770999344e-11f, /* 0x2e85a308 */ | ||
69 | fmref_pio2_3 = 6.0770943833e-11f, /* 0x2e85a300 */ | ||
70 | fmref_pio2_3t = 6.1232342629e-17f; /* 0x248d3132 */ | ||
71 | |||
72 | #ifdef __STDC__ | ||
73 | int32_t fmref___ieee754_rem_pio2f(float x, float *y) | ||
74 | #else | ||
75 | int32_t fmref___ieee754_rem_pio2f(x,y) | ||
76 | float x,y[]; | ||
77 | #endif | ||
78 | { | ||
79 | float z,w,t,r,fn; | ||
80 | int32_t i,j,n,ix,hx; | ||
81 | |||
82 | GET_FLOAT_WORD(hx,x); | ||
83 | ix = hx&0x7fffffff; | ||
84 | if(ix<=0x3f490fd8) /* |x| ~<= pi/4 , no need for reduction */ | ||
85 | {y[0] = x; y[1] = 0; return 0;} | ||
86 | if(ix<0x4016cbe4) { /* |x| < 3pi/4, special case with n=+-1 */ | ||
87 | if(hx>0) { | ||
88 | z = x - fmref_pio2_1; | ||
89 | if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */ | ||
90 | y[0] = z - fmref_pio2_1t; | ||
91 | y[1] = (z-y[0])-fmref_pio2_1t; | ||
92 | } else { /* near pi/2, use 24+24+24 bit pi */ | ||
93 | z -= fmref_pio2_2; | ||
94 | y[0] = z - fmref_pio2_2t; | ||
95 | y[1] = (z-y[0])-fmref_pio2_2t; | ||
96 | } | ||
97 | return 1; | ||
98 | } else { /* negative x */ | ||
99 | z = x + fmref_pio2_1; | ||
100 | if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */ | ||
101 | y[0] = z + fmref_pio2_1t; | ||
102 | y[1] = (z-y[0])+fmref_pio2_1t; | ||
103 | } else { /* near pi/2, use 24+24+24 bit pi */ | ||
104 | z += fmref_pio2_2; | ||
105 | y[0] = z + fmref_pio2_2t; | ||
106 | y[1] = (z-y[0])+fmref_pio2_2t; | ||
107 | } | ||
108 | return -1; | ||
109 | } | ||
110 | } | ||
111 | if(ix<=0x43490f80) { /* |x| ~<= 2^7*(pi/2), medium size */ | ||
112 | t = fabsf(x); | ||
113 | n = (int32_t) (t*fmref_invpio2+fmref_half); | ||
114 | fn = (float)n; | ||
115 | r = t-fn*fmref_pio2_1; | ||
116 | w = fn*fmref_pio2_1t; /* 1st round good to 40 bit */ | ||
117 | if(n<32&&(int32_t)(ix&0xffffff00)!=fmref_npio2_hw[n-1]) { | ||
118 | y[0] = r-w; /* quick check no cancellation */ | ||
119 | } else { | ||
120 | u_int32_t high; | ||
121 | j = ix>>23; | ||
122 | y[0] = r-w; | ||
123 | GET_FLOAT_WORD(high,y[0]); | ||
124 | i = j-((high>>23)&0xff); | ||
125 | if(i>8) { /* 2nd iteration needed, good to 57 */ | ||
126 | t = r; | ||
127 | w = fn*fmref_pio2_2; | ||
128 | r = t-w; | ||
129 | w = fn*fmref_pio2_2t-((t-r)-w); | ||
130 | y[0] = r-w; | ||
131 | GET_FLOAT_WORD(high,y[0]); | ||
132 | i = j-((high>>23)&0xff); | ||
133 | if(i>25) { /* 3rd iteration need, 74 bits acc */ | ||
134 | t = r; /* will cover all possible cases */ | ||
135 | w = fn*fmref_pio2_3; | ||
136 | r = t-w; | ||
137 | w = fn*fmref_pio2_3t-((t-r)-w); | ||
138 | y[0] = r-w; | ||
139 | } | ||
140 | } | ||
141 | } | ||
142 | y[1] = (r-y[0])-w; | ||
143 | if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;} | ||
144 | else return n; | ||
145 | } | ||
146 | /* | ||
147 | * all other (large) arguments | ||
148 | */ | ||
149 | if(ix>=0x7f800000) { /* x is inf or NaN */ | ||
150 | y[0]=y[1]=x-x; return 0; | ||
151 | } | ||
152 | |||
153 | y[0]=y[1]=x-x; /* dummy initialization */ | ||
154 | return 0; /* doesn't happen for our input */ | ||
155 | } | ||
156 | |||
157 | /* k_cosf.c -- float version of k_cos.c | ||
158 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
159 | */ | ||
160 | |||
161 | /* | ||
162 | * ==================================================== | ||
163 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
164 | * | ||
165 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
166 | * Permission to use, copy, modify, and distribute this | ||
167 | * software is freely granted, provided that this notice | ||
168 | * is preserved. | ||
169 | * ==================================================== | ||
170 | */ | ||
171 | |||
172 | #if defined(LIBM_SCCS) && !defined(lint) | ||
173 | static char rcsid[] = "$NetBSD: k_cosf.c,v 1.4 1995/05/10 20:46:23 jtc Exp $"; | ||
174 | #endif | ||
175 | |||
176 | |||
177 | #ifdef __STDC__ | ||
178 | static const float | ||
179 | #else | ||
180 | static float | ||
181 | #endif | ||
182 | /* one = 1.0000000000e+00, /\* 0x3f800000 *\/ */ | ||
183 | fmref_C1 = 4.1666667908e-02f, /* 0x3d2aaaab */ | ||
184 | fmref_C2 = -1.3888889225e-03f, /* 0xbab60b61 */ | ||
185 | fmref_C3 = 2.4801587642e-05f, /* 0x37d00d01 */ | ||
186 | fmref_C4 = -2.7557314297e-07f, /* 0xb493f27c */ | ||
187 | fmref_C5 = 2.0875723372e-09f, /* 0x310f74f6 */ | ||
188 | fmref_C6 = -1.1359647598e-11f; /* 0xad47d74e */ | ||
189 | |||
190 | #ifdef __STDC__ | ||
191 | float fmref___kernel_cosf(float x, float y) | ||
192 | #else | ||
193 | float fmref___kernel_cosf(x, y) | ||
194 | float x,y; | ||
195 | #endif | ||
196 | { | ||
197 | float a,hz,z,r,qx; | ||
198 | int32_t ix; | ||
199 | GET_FLOAT_WORD(ix,x); | ||
200 | ix &= 0x7fffffff; /* ix = |x|'s high word*/ | ||
201 | if(ix<0x32000000) { /* if x < 2**27 */ | ||
202 | if(((int)x)==0) return fmref_one; /* generate inexact */ | ||
203 | } | ||
204 | z = x*x; | ||
205 | r = z*(fmref_C1+z*(fmref_C2+z*(fmref_C3+z*(fmref_C4+z*(fmref_C5+z*fmref_C6))))); | ||
206 | if(ix < 0x3e99999a) /* if |x| < 0.3 */ | ||
207 | return fmref_one - ((float)0.5f*z - (z*r - x*y)); | ||
208 | else { | ||
209 | if(ix > 0x3f480000) { /* x > 0.78125 */ | ||
210 | qx = (float)0.28125f; | ||
211 | } else { | ||
212 | SET_FLOAT_WORD(qx,ix-0x01000000); /* x/4 */ | ||
213 | } | ||
214 | hz = (float)0.5f*z-qx; | ||
215 | a = fmref_one-qx; | ||
216 | return a - (hz - (z*r-x*y)); | ||
217 | } | ||
218 | } | ||
219 | |||
220 | /* k_sinf.c -- float version of k_sin.c | ||
221 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
222 | */ | ||
223 | |||
224 | /* | ||
225 | * ==================================================== | ||
226 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
227 | * | ||
228 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
229 | * Permission to use, copy, modify, and distribute this | ||
230 | * software is freely granted, provided that this notice | ||
231 | * is preserved. | ||
232 | * ==================================================== | ||
233 | */ | ||
234 | |||
235 | #if defined(LIBM_SCCS) && !defined(lint) | ||
236 | static char rcsid[] = "$NetBSD: k_sinf.c,v 1.4 1995/05/10 20:46:33 jtc Exp $"; | ||
237 | #endif | ||
238 | |||
239 | |||
240 | #ifdef __STDC__ | ||
241 | static const float | ||
242 | #else | ||
243 | static float | ||
244 | #endif | ||
245 | /* half = 5.0000000000e-01f,/\* 0x3f000000 *\/ */ | ||
246 | fmref_S1 = -1.6666667163e-01f, /* 0xbe2aaaab */ | ||
247 | fmref_S2 = 8.3333337680e-03f, /* 0x3c088889 */ | ||
248 | fmref_S3 = -1.9841270114e-04f, /* 0xb9500d01 */ | ||
249 | fmref_S4 = 2.7557314297e-06f, /* 0x3638ef1b */ | ||
250 | fmref_S5 = -2.5050759689e-08f, /* 0xb2d72f34 */ | ||
251 | fmref_S6 = 1.5896910177e-10f; /* 0x2f2ec9d3 */ | ||
252 | |||
253 | #ifdef __STDC__ | ||
254 | float fmref___kernel_sinf(float x, float y, int iy) | ||
255 | #else | ||
256 | float fmref___kernel_sinf(x, y, iy) | ||
257 | float x,y; int iy; /* iy=0 if y is zero */ | ||
258 | #endif | ||
259 | { | ||
260 | float z,r,v; | ||
261 | int32_t ix; | ||
262 | GET_FLOAT_WORD(ix,x); | ||
263 | ix &= 0x7fffffff; /* high word of x */ | ||
264 | if(ix<0x32000000) /* |x| < 2**-27 */ | ||
265 | {if((int)x==0) return x;} /* generate inexact */ | ||
266 | z = x*x; | ||
267 | v = z*x; | ||
268 | r = fmref_S2+z*(fmref_S3+z*(fmref_S4+z*(fmref_S5+z*fmref_S6))); | ||
269 | if(iy==0) return x+v*(fmref_S1+z*r); | ||
270 | else return x-((z*(fmref_half*y-v*r)-y)-v*fmref_S1); | ||
271 | } | ||
272 | /* s_atanf.c -- float version of s_atan.c. | ||
273 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
274 | */ | ||
275 | |||
276 | /* | ||
277 | * ==================================================== | ||
278 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
279 | * | ||
280 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
281 | * Permission to use, copy, modify, and distribute this | ||
282 | * software is freely granted, provided that this notice | ||
283 | * is preserved. | ||
284 | * ==================================================== | ||
285 | */ | ||
286 | |||
287 | #if defined(LIBM_SCCS) && !defined(lint) | ||
288 | static char rcsid[] = "$NetBSD: s_atanf.c,v 1.4 1995/05/10 20:46:47 jtc Exp $"; | ||
289 | #endif | ||
290 | |||
291 | |||
292 | #ifdef __STDC__ | ||
293 | static const float fmref_atanhi[] = { | ||
294 | #else | ||
295 | static float fmref_atanhi[] = { | ||
296 | #endif | ||
297 | 4.6364760399e-01f, /* atan(0.5)hi 0x3eed6338 */ | ||
298 | 7.8539812565e-01f, /* atan(1.0)hi 0x3f490fda */ | ||
299 | 9.8279368877e-01f, /* atan(1.5)hi 0x3f7b985e */ | ||
300 | 1.5707962513e+00f, /* atan(inf)hi 0x3fc90fda */ | ||
301 | }; | ||
302 | |||
303 | #ifdef __STDC__ | ||
304 | static const float fmref_atanlo[] = { | ||
305 | #else | ||
306 | static float fmref_atanlo[] = { | ||
307 | #endif | ||
308 | 5.0121582440e-09f, /* atan(0.5)lo 0x31ac3769 */ | ||
309 | 3.7748947079e-08f, /* atan(1.0)lo 0x33222168 */ | ||
310 | 3.4473217170e-08f, /* atan(1.5)lo 0x33140fb4 */ | ||
311 | 7.5497894159e-08f, /* atan(inf)lo 0x33a22168 */ | ||
312 | }; | ||
313 | |||
314 | #ifdef __STDC__ | ||
315 | static const float fmref_aT[] = { | ||
316 | #else | ||
317 | static float fmref_aT[] = { | ||
318 | #endif | ||
319 | 3.3333334327e-01f, /* 0x3eaaaaaa */ | ||
320 | -2.0000000298e-01f, /* 0xbe4ccccd */ | ||
321 | 1.4285714924e-01f, /* 0x3e124925 */ | ||
322 | -1.1111110449e-01f, /* 0xbde38e38 */ | ||
323 | 9.0908870101e-02f, /* 0x3dba2e6e */ | ||
324 | -7.6918758452e-02f, /* 0xbd9d8795 */ | ||
325 | 6.6610731184e-02f, /* 0x3d886b35 */ | ||
326 | -5.8335702866e-02f, /* 0xbd6ef16b */ | ||
327 | 4.9768779427e-02f, /* 0x3d4bda59 */ | ||
328 | -3.6531571299e-02f, /* 0xbd15a221 */ | ||
329 | 1.6285819933e-02f, /* 0x3c8569d7 */ | ||
330 | }; | ||
331 | |||
332 | /* #ifdef __STDC__ */ | ||
333 | /* static const float */ | ||
334 | /* #else */ | ||
335 | /* static float */ | ||
336 | /* #endif */ | ||
337 | /* one = 1.0, */ | ||
338 | /* huge = 1.0e30; */ | ||
339 | |||
340 | #ifdef __STDC__ | ||
341 | float fmref___atanf(float x) | ||
342 | #else | ||
343 | float fmref___atanf(x) | ||
344 | float x; | ||
345 | #endif | ||
346 | { | ||
347 | float w,s1,s2,z; | ||
348 | int32_t ix,hx,id; | ||
349 | |||
350 | GET_FLOAT_WORD(hx,x); | ||
351 | ix = hx&0x7fffffff; | ||
352 | if(ix>=0x50800000) { /* if |x| >= 2^34 */ | ||
353 | if(ix>0x7f800000) | ||
354 | return x+x; /* NaN */ | ||
355 | if(hx>0) return fmref_atanhi[3]+fmref_atanlo[3]; | ||
356 | else return -fmref_atanhi[3]-fmref_atanlo[3]; | ||
357 | } if (ix < 0x3ee00000) { /* |x| < 0.4375 */ | ||
358 | if (ix < 0x31000000) { /* |x| < 2^-29 */ | ||
359 | if(fmref_huge+x>fmref_one) return x; /* raise inexact */ | ||
360 | } | ||
361 | id = -1; | ||
362 | } else { | ||
363 | x = fabsf(x); | ||
364 | if (ix < 0x3f980000) { /* |x| < 1.1875 */ | ||
365 | if (ix < 0x3f300000) { /* 7/16 <=|x|<11/16 */ | ||
366 | id = 0; x = ((float)2.0f*x-fmref_one)/((float)2.0f+x); | ||
367 | } else { /* 11/16<=|x|< 19/16 */ | ||
368 | id = 1; x = (x-fmref_one)/(x+fmref_one); | ||
369 | } | ||
370 | } else { | ||
371 | if (ix < 0x401c0000) { /* |x| < 2.4375 */ | ||
372 | id = 2; x = (x-(float)1.5f)/(fmref_one+(float)1.5f*x); | ||
373 | } else { /* 2.4375 <= |x| < 2^66 */ | ||
374 | id = 3; x = -(float)1.0f/x; | ||
375 | } | ||
376 | }} | ||
377 | /* end of argument reduction */ | ||
378 | z = x*x; | ||
379 | w = z*z; | ||
380 | /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ | ||
381 | s1 = z*(fmref_aT[0]+w*(fmref_aT[2]+w*(fmref_aT[4]+w*(fmref_aT[6]+w*(fmref_aT[8]+w*fmref_aT[10]))))); | ||
382 | s2 = w*(fmref_aT[1]+w*(fmref_aT[3]+w*(fmref_aT[5]+w*(fmref_aT[7]+w*fmref_aT[9])))); | ||
383 | if (id<0) return x - x*(s1+s2); | ||
384 | else { | ||
385 | z = fmref_atanhi[id] - ((x*(s1+s2) - fmref_atanlo[id]) - x); | ||
386 | return (hx<0)? -z:z; | ||
387 | } | ||
388 | } | ||
389 | //weak_alias (__atanf, atanf) | ||
390 | |||
391 | /* s_cosf.c -- float version of s_cos.c. | ||
392 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
393 | */ | ||
394 | |||
395 | /* | ||
396 | * ==================================================== | ||
397 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
398 | * | ||
399 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
400 | * Permission to use, copy, modify, and distribute this | ||
401 | * software is freely granted, provided that this notice | ||
402 | * is preserved. | ||
403 | * ==================================================== | ||
404 | */ | ||
405 | |||
406 | /* #ifdef __STDC__ */ | ||
407 | /* static const float one=1.0; */ | ||
408 | /* #else */ | ||
409 | /* static float one=1.0; */ | ||
410 | /* #endif */ | ||
411 | |||
412 | #ifdef __STDC__ | ||
413 | float fmref___cosf(float x) | ||
414 | #else | ||
415 | float fmref___cosf(x) | ||
416 | float x; | ||
417 | #endif | ||
418 | { | ||
419 | float y[2],z=0.0f; | ||
420 | int32_t n,ix; | ||
421 | |||
422 | GET_FLOAT_WORD(ix,x); | ||
423 | |||
424 | /* |x| ~< pi/4 */ | ||
425 | ix &= 0x7fffffff; | ||
426 | if(ix <= 0x3f490fd8) return fmref___kernel_cosf(x,z); | ||
427 | |||
428 | /* cos(Inf or NaN) is NaN */ | ||
429 | else if (ix>=0x7f800000) return x-x; | ||
430 | |||
431 | /* argument reduction needed */ | ||
432 | else { | ||
433 | n = fmref___ieee754_rem_pio2f(x,y); | ||
434 | switch(n&3) { | ||
435 | case 0: return fmref___kernel_cosf(y[0],y[1]); | ||
436 | case 1: return -fmref___kernel_sinf(y[0],y[1],1); | ||
437 | case 2: return -fmref___kernel_cosf(y[0],y[1]); | ||
438 | default: | ||
439 | return fmref___kernel_sinf(y[0],y[1],1); | ||
440 | } | ||
441 | } | ||
442 | } | ||
443 | |||
444 | /* s_sinf.c -- float version of s_sin.c. | ||
445 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
446 | */ | ||
447 | |||
448 | /* | ||
449 | * ==================================================== | ||
450 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
451 | * | ||
452 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
453 | * Permission to use, copy, modify, and distribute this | ||
454 | * software is freely granted, provided that this notice | ||
455 | * is preserved. | ||
456 | * ==================================================== | ||
457 | */ | ||
458 | |||
459 | #ifdef __STDC__ | ||
460 | float fmref___sinf(float x) | ||
461 | #else | ||
462 | float fmref___sinf(x) | ||
463 | float x; | ||
464 | #endif | ||
465 | { | ||
466 | float y[2],z=0.0; | ||
467 | int32_t n, ix; | ||
468 | |||
469 | GET_FLOAT_WORD(ix,x); | ||
470 | |||
471 | /* |x| ~< pi/4 */ | ||
472 | ix &= 0x7fffffff; | ||
473 | if(ix <= 0x3f490fd8) return fmref___kernel_sinf(x,z,0); | ||
474 | |||
475 | /* sin(Inf or NaN) is NaN */ | ||
476 | else if (ix>=0x7f800000) return x-x; | ||
477 | |||
478 | /* argument reduction needed */ | ||
479 | else { | ||
480 | n = fmref___ieee754_rem_pio2f(x,y); | ||
481 | switch(n&3) { | ||
482 | case 0: return fmref___kernel_sinf(y[0],y[1],1); | ||
483 | case 1: return fmref___kernel_cosf(y[0],y[1]); | ||
484 | case 2: return -fmref___kernel_sinf(y[0],y[1],1); | ||
485 | default: | ||
486 | return -fmref___kernel_cosf(y[0],y[1]); | ||
487 | } | ||
488 | } | ||
489 | } | ||
490 | |||
491 | /* s_fabsf.c -- float version of s_fabs.c. | ||
492 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
493 | */ | ||
494 | |||
495 | /* | ||
496 | * ==================================================== | ||
497 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
498 | * | ||
499 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
500 | * Permission to use, copy, modify, and distribute this | ||
501 | * software is freely granted, provided that this notice | ||
502 | * is preserved. | ||
503 | * ==================================================== | ||
504 | */ | ||
505 | |||
506 | /* | ||
507 | * fabsf(x) returns the absolute value of x. | ||
508 | */ | ||
509 | |||
510 | |||
511 | #ifdef __STDC__ | ||
512 | float fmref___fabsf(float x) | ||
513 | #else | ||
514 | float fmref___fabsf(x) | ||
515 | float x; | ||
516 | #endif | ||
517 | { | ||
518 | u_int32_t ix; | ||
519 | GET_FLOAT_WORD(ix,x); | ||
520 | SET_FLOAT_WORD(x,ix&0x7fffffff); | ||
521 | return x; | ||
522 | } | ||
diff --git a/baseline/source/fmref/wcclibm.h b/baseline/source/fmref/wcclibm.h new file mode 100644 index 0000000..c00738b --- /dev/null +++ b/baseline/source/fmref/wcclibm.h | |||
@@ -0,0 +1,54 @@ | |||
1 | #ifndef _WCCLIBM | ||
2 | #define _WCCLIBM | ||
3 | |||
4 | #define size_x unsigned long | ||
5 | #define int32_t int | ||
6 | #define uint32_t unsigned int | ||
7 | #define u_int16_t unsigned short | ||
8 | #define u_int32_t unsigned int | ||
9 | |||
10 | // Often used variables/consts | ||
11 | #ifdef __STDC__ | ||
12 | static const float | ||
13 | #else | ||
14 | static float | ||
15 | #endif | ||
16 | fmref_one = 1.0f, | ||
17 | fmref_half = 5.0000000000e-01f, /* 0x3f000000 */ | ||
18 | fmref_zero = 0.0f, | ||
19 | fmref_huge = 1.0e30, | ||
20 | fmref_two8 = 2.5600000000e+02f, /* 0x43800000 */ | ||
21 | fmref_twon8 = 3.9062500000e-03f; /* 0x3b800000 */ | ||
22 | |||
23 | // The following defines map the math functions to specialized calls | ||
24 | #define acos fmref___ieee754_acosf | ||
25 | #define atan fmref___atanf | ||
26 | #define cos fmref___cosf | ||
27 | #define fabs fmref___fabsf | ||
28 | #define fabsf fmref___fabsf | ||
29 | #define isinf fmref___isinff | ||
30 | #define pow fmref___ieee754_powf | ||
31 | #define sqrt fmref___ieee754_sqrtf | ||
32 | #define log10 fmref___ieee754_log10f | ||
33 | #define log fmref___ieee754_logf | ||
34 | #define sin fmref___sinf | ||
35 | |||
36 | float fmref___atanf(float x); | ||
37 | float fmref___copysignf(float x, float y); | ||
38 | float fmref___cosf(float x); | ||
39 | float fmref___fabsf(float x); | ||
40 | float fmref___floorf(float x); | ||
41 | float fmref___ieee754_acosf(float x); | ||
42 | float fmref___ieee754_powf(float x, float y); | ||
43 | int32_t fmref___ieee754_rem_pio2f(float x, float *y); | ||
44 | float fmref___ieee754_sqrtf(float x); | ||
45 | int fmref___isinff (float x); | ||
46 | float fmref___kernel_cosf(float x, float y); | ||
47 | float fmref___kernel_sinf(float x, float y, int iy); | ||
48 | int fmref___kernel_rem_pio2f(float *x, float *y, int e0, int nx, int prec, const int32_t *ipio2); | ||
49 | float fmref___scalbnf (float x, int n); | ||
50 | float fmref___ieee754_logf(float x); | ||
51 | float fmref___ieee754_log10f(float x); | ||
52 | float fmref___sinf(float x); | ||
53 | |||
54 | #endif // _WCCLIBM | ||
diff --git a/baseline/source/g723_enc/ChangeLog.txt b/baseline/source/g723_enc/ChangeLog.txt new file mode 100644 index 0000000..8657026 --- /dev/null +++ b/baseline/source/g723_enc/ChangeLog.txt | |||
@@ -0,0 +1,34 @@ | |||
1 | File: g723_enc.c | ||
2 | Original provenience: SUN Microsystems | ||
3 | |||
4 | 2016-03-02: | ||
5 | - Renamed file to g723_enc and removed all g721 dead code | ||
6 | - Added TACLeBench header to line 1 | ||
7 | - Moved SUN license to license.txt | ||
8 | - Deleted unused code that was commented out | ||
9 | - Renamed functions prepended g723_enc to all function names | ||
10 | - Renamed function main to g723_enc_main | ||
11 | - Created new function main, calling g723_enc_init, g723_enc_main and | ||
12 | returning g723_enc_return | ||
13 | - Reordered functions in source code: initialization- and | ||
14 | return-value-related functions first, followed by algorithm core | ||
15 | functions, followed by main functions | ||
16 | - Applied code formatting with astyle as in the example | ||
17 | |||
18 | 2016-03-09: | ||
19 | - Renamed global variables, prepended g723_enc_ | ||
20 | - Removed static keyword from global variables | ||
21 | - Renamed datatype from g723_enc_g72x_state to g723_enc_state | ||
22 | - Renamed function g723_enc_g72x_init_state to g723_enc_init_state | ||
23 | |||
24 | 2016-05-23: | ||
25 | - Added initialization with volatile int | ||
26 | - Added check_sum and comparison with expected result | ||
27 | |||
28 | 2016-05-25 | ||
29 | - Changed name of struct g723_enc_state to g723_enc_state_t | ||
30 | - Changed name of variable state to g723_enc_state | ||
31 | |||
32 | 2017-07-10 | ||
33 | - Fixed undefined behaviour introduced by accessing the result of a pointer | ||
34 | type cast. | ||
diff --git a/baseline/source/g723_enc/g723_enc.c b/baseline/source/g723_enc/g723_enc.c new file mode 100644 index 0000000..6f31210 --- /dev/null +++ b/baseline/source/g723_enc/g723_enc.c | |||
@@ -0,0 +1,887 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 1.x | ||
5 | |||
6 | Name: g723_enc | ||
7 | |||
8 | Author: Unknown | ||
9 | |||
10 | Function: g723 encoder. | ||
11 | |||
12 | Source: SUN Microsystems | ||
13 | |||
14 | Changes: The benchmark was changed to use the g723 encoder | ||
15 | |||
16 | License: "Unrestricted use" (see license.txt) | ||
17 | |||
18 | */ | ||
19 | |||
20 | /* | ||
21 | Declaration of data types | ||
22 | */ | ||
23 | |||
24 | /* | ||
25 | The following is the definition of the state structure | ||
26 | used by the G.721/G.723 encoder and decoder to preserve their internal | ||
27 | state between successive calls. The meanings of the majority | ||
28 | of the state structure fields are explained in detail in the | ||
29 | CCITT Recommendation G.721. The field names are essentially indentical | ||
30 | to variable names in the bit level description of the coding algorithm | ||
31 | included in this Recommendation. | ||
32 | */ | ||
33 | |||
34 | #include "../extra.h" | ||
35 | struct g723_enc_state_t { | ||
36 | long yl; /* Locked or steady state step size multiplier. */ | ||
37 | short yu; /* Unlocked or non-steady state step size multiplier. */ | ||
38 | short dms; /* Short term energy estimate. */ | ||
39 | short dml; /* Long term energy estimate. */ | ||
40 | short ap; /* Linear weighting coefficient of 'yl' and 'yu'. */ | ||
41 | |||
42 | short a[2]; /* Coefficients of pole portion of prediction filter. */ | ||
43 | short b[6]; /* Coefficients of zero portion of prediction filter. */ | ||
44 | short pk[2]; /* | ||
45 | Signs of previous two samples of a partially | ||
46 | reconstructed signal. | ||
47 | */ | ||
48 | short dq[6]; /* | ||
49 | Previous 6 samples of the quantized difference | ||
50 | signal represented in an internal floating point | ||
51 | format. | ||
52 | */ | ||
53 | short sr[2]; /* | ||
54 | Previous 2 samples of the quantized difference | ||
55 | signal represented in an internal floating point | ||
56 | format. | ||
57 | */ | ||
58 | char td; /* delayed tone detect, new in 1988 version */ | ||
59 | }; | ||
60 | |||
61 | |||
62 | /* | ||
63 | Forward declaration of functions | ||
64 | */ | ||
65 | |||
66 | int g723_enc_abs( int num ); | ||
67 | void g723_enc_init_state( struct g723_enc_state_t *state_ptr ); | ||
68 | int g723_enc_predictor_zero( struct g723_enc_state_t *state_ptr ); | ||
69 | int g723_enc_fmult( int an, int srn ); | ||
70 | int g723_enc_predictor_pole( struct g723_enc_state_t *state_ptr ); | ||
71 | int g723_enc_step_size( struct g723_enc_state_t *state_ptr ); | ||
72 | int g723_enc_quantize( | ||
73 | int d, /* Raw difference signal sample */ | ||
74 | int y, /* Step size multiplier */ | ||
75 | short *table, /* quantization table */ | ||
76 | int size ); /* table size of short integers */ | ||
77 | int g723_enc_reconstruct( | ||
78 | int sign, /* 0 for non-negative value */ | ||
79 | int dqln, /* G.72x codeword */ | ||
80 | int y ); /* Step size multiplier */ | ||
81 | void g723_enc_update( | ||
82 | int code_size, /* distinguish 723_40 with others */ | ||
83 | int y, /* quantizer step size */ | ||
84 | int wi, /* scale factor multiplier */ | ||
85 | int fi, /* for long/short term energies */ | ||
86 | int dq, /* quantized prediction difference */ | ||
87 | int sr, /* reconstructed signal */ | ||
88 | int dqsez, /* difference from 2-pole predictor */ | ||
89 | struct g723_enc_state_t *state_ptr ); /* coder state pointer */ | ||
90 | int g723_enc_quan( | ||
91 | int val, | ||
92 | short *table, | ||
93 | int size ); | ||
94 | int g723_enc_search( | ||
95 | int val, | ||
96 | short *table, | ||
97 | int size ); | ||
98 | int g723_enc_alaw2linear( unsigned char a_val ); | ||
99 | int g723_enc_ulaw2linear( unsigned char u_val ); | ||
100 | int g723_enc_g723_24_encoder( | ||
101 | int sample, | ||
102 | int in_coding, | ||
103 | struct g723_enc_state_t *state_ptr ); | ||
104 | int g723_enc_pack_output( | ||
105 | unsigned char code, | ||
106 | int bits ); | ||
107 | |||
108 | void g723_enc_init(); | ||
109 | int g723_enc_return(); | ||
110 | void g723_enc_main(); | ||
111 | //int main( void ); | ||
112 | |||
113 | /* | ||
114 | Declaration of global variables | ||
115 | */ | ||
116 | |||
117 | struct g723_enc_state_t g723_enc_state; | ||
118 | |||
119 | unsigned int g723_enc_INPUT[256] = { | ||
120 | 51, 17, 31, 53, 95, 17, 70, 22, 49, 12, 8, 39, 28, 37, 99, 54, | ||
121 | 77, 65, 77, 78, 83, 15, 63, 31, 35, 92, 52, 40, 61, 79, 94, 87, | ||
122 | 87, 68, 76, 58, 39, 35, 20, 83, 42, 46, 98, 12, 21, 96, 74, 41, | ||
123 | 78, 76, 96, 2, 32, 76, 24, 59, 4, 96, 32, 5, 44, 92, 57, 12, | ||
124 | 57, 25, 50, 23, 48, 41, 88, 43, 36, 38, 4, 16, 52, 70, 9, 40, | ||
125 | 78, 24, 34, 23, 30, 30, 89, 3, 65, 40, 68, 73, 94, 23, 84, 97, | ||
126 | 78, 43, 68, 81, 16, 28, 13, 87, 75, 21, 14, 29, 81, 22, 56, 72, | ||
127 | 19, 99, 25, 43, 76, 86, 90, 98, 39, 43, 12, 46, 24, 99, 65, 61, | ||
128 | 24, 45, 79, 7, 48, 15, 24, 95, 62, 99, 48, 80, 75, 38, 48, 53, | ||
129 | 9, 60, 35, 14, 78, 71, 45, 71, 9, 97, 55, 74, 58, 64, 78, 18, | ||
130 | 30, 28, 69, 29, 57, 42, 30, 44, 57, 49, 61, 42, 13, 25, 3, 98, | ||
131 | 11, 38, 65, 35, 55, 36, 57, 48, 16, 62, 17, 56, 29, 88, 84, 85, | ||
132 | 90, 60, 54, 16, 66, 69, 26, 10, 82, 19, 42, 35, 84, 13, 26, 17, | ||
133 | 48, 38, 50, 50, 35, 53, 12, 52, 61, 74, 56, 34, 80, 59, 26, 67, | ||
134 | 55, 79, 89, 89, 6, 80, 91, 65, 16, 30, 16, 28, 85, 54, 3, 20, | ||
135 | 2, 36, 62, 52, 55, 15, 83, 3, 2, 38, 62, 2, 63, 92, 37, 73 | ||
136 | }; | ||
137 | |||
138 | |||
139 | |||
140 | unsigned int g723_enc_OUTPUT[256]; | ||
141 | |||
142 | short g723_enc_power2[15] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80, | ||
143 | 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000 | ||
144 | }; | ||
145 | |||
146 | |||
147 | /* | ||
148 | Maps G.723_24 code word to reconstructed scale factor normalized log | ||
149 | magnitude values. | ||
150 | */ | ||
151 | |||
152 | short g723_enc_qtab_723_24[3] = {8, 218, 331}; | ||
153 | |||
154 | /* | ||
155 | Maps G.721 code word to reconstructed scale factor normalized log | ||
156 | magnitude values. | ||
157 | */ | ||
158 | short g723_enc_dqlntab[16] = { -2048, 4, 135, 213, 273, 323, 373, 425, | ||
159 | 425, 373, 323, 273, 213, 135, 4, -2048 | ||
160 | }; | ||
161 | |||
162 | /* Maps G.721 code word to log of scale factor multiplier. */ | ||
163 | short g723_enc_witab[16] = { -12, 18, 41, 64, 112, 198, 355, 1122, | ||
164 | 1122, 355, 198, 112, 64, 41, 18, -12 | ||
165 | }; | ||
166 | /* | ||
167 | Maps G.721 code words to a set of values whose long and short | ||
168 | term averages are computed and then compared to give an indication | ||
169 | how stationary (steady state) the signal is. | ||
170 | */ | ||
171 | short g723_enc_fitab[16] = {0, 0, 0, 0x200, 0x200, 0x200, 0x600, 0xE00, | ||
172 | 0xE00, 0x600, 0x200, 0x200, 0x200, 0, 0, 0 | ||
173 | }; | ||
174 | |||
175 | |||
176 | /* | ||
177 | Declaration of macros | ||
178 | */ | ||
179 | |||
180 | |||
181 | #define AUDIO_ENCODING_ULAW (1) /* ISDN u-law */ | ||
182 | #define AUDIO_ENCODING_ALAW (2) /* ISDN A-law */ | ||
183 | #define AUDIO_ENCODING_LINEAR (3) /* PCM 2's-complement (0-center) */ | ||
184 | |||
185 | #define BIAS (0x84) /* Bias for linear code. */ | ||
186 | |||
187 | #define SIGN_BIT (0x80) /* Sign bit for a A-law byte. */ | ||
188 | #define QUANT_MASK (0xf) /* Quantization field mask. */ | ||
189 | #define SEG_SHIFT (4) /* Left shift for segment number. */ | ||
190 | #define SEG_MASK (0x70) /* Segment field mask. */ | ||
191 | |||
192 | /* | ||
193 | Arithmetic math functions | ||
194 | */ | ||
195 | |||
196 | /* | ||
197 | g723_enc_fmult() | ||
198 | |||
199 | returns the integer product of the 14-bit integer "an" and | ||
200 | "floating point" representation (4-bit exponent, 6-bit mantessa) "srn". | ||
201 | */ | ||
202 | int g723_enc_fmult( | ||
203 | int an, | ||
204 | int srn ) | ||
205 | { | ||
206 | short anmag, anexp, anmant; | ||
207 | short wanexp, wanmant; | ||
208 | short retval; | ||
209 | |||
210 | anmag = ( an > 0 ) ? an : ( ( -an ) & 0x1FFF ); | ||
211 | anexp = g723_enc_quan( anmag, g723_enc_power2, 3 ) - 6; | ||
212 | anmant = ( anmag == 0 ) ? 32 : | ||
213 | ( anexp >= 0 ) ? anmag >> anexp : anmag << -anexp; | ||
214 | wanexp = anexp + ( ( srn >> 6 ) & 0xF ) - 13; | ||
215 | |||
216 | wanmant = ( anmant * ( srn & 077 ) + 0x30 ) >> 4; | ||
217 | retval = ( wanexp >= 0 ) ? ( ( wanmant << wanexp ) & 0x7FFF ) : | ||
218 | ( wanmant >> -wanexp ); | ||
219 | |||
220 | return ( ( ( an ^ srn ) < 0 ) ? -retval : retval ); | ||
221 | } | ||
222 | |||
223 | |||
224 | /* Manish Verma */ | ||
225 | int g723_enc_abs( int num ) | ||
226 | { | ||
227 | return ( num < 0 ) ? -num : num; | ||
228 | } | ||
229 | |||
230 | |||
231 | /* | ||
232 | Algorithm core functions | ||
233 | */ | ||
234 | |||
235 | |||
236 | /* | ||
237 | g723_enc_quan() | ||
238 | |||
239 | quantizes the input val against the table of size short integers. | ||
240 | It returns i if table[i - 1] <= val < table[i]. | ||
241 | |||
242 | Using linear search for simple coding. | ||
243 | */ | ||
244 | int g723_enc_quan( | ||
245 | int val, | ||
246 | short *table, | ||
247 | int size ) | ||
248 | { | ||
249 | int i, | ||
250 | j = 0, | ||
251 | k = 1; | ||
252 | |||
253 | _Pragma( "loopbound min 3 max 15" ) | ||
254 | for ( i = 0; i < size; ++i ) { | ||
255 | |||
256 | if ( k ) { | ||
257 | if ( val < *table++ ) { | ||
258 | j = i; | ||
259 | k = 0; | ||
260 | } | ||
261 | } | ||
262 | } | ||
263 | |||
264 | return ( j ); | ||
265 | } | ||
266 | |||
267 | |||
268 | /* | ||
269 | g723_enc_predictor_zero() | ||
270 | |||
271 | computes the estimated signal from 6-zero predictor. | ||
272 | |||
273 | */ | ||
274 | int | ||
275 | g723_enc_predictor_zero( | ||
276 | struct g723_enc_state_t *state_ptr ) | ||
277 | { | ||
278 | int i; | ||
279 | int sezi; | ||
280 | |||
281 | sezi = g723_enc_fmult( state_ptr->b[0] >> 2, state_ptr->dq[0] ); | ||
282 | _Pragma( "loopbound min 5 max 5" ) | ||
283 | for ( i = 1; i < 6; i++ ) /* ACCUM */ | ||
284 | sezi += g723_enc_fmult( state_ptr->b[i] >> 2, state_ptr->dq[i] ); | ||
285 | |||
286 | return ( sezi ); | ||
287 | } | ||
288 | |||
289 | |||
290 | /* | ||
291 | g723_enc_predictor_pole() | ||
292 | |||
293 | computes the estimated signal from 2-pole predictor. | ||
294 | |||
295 | */ | ||
296 | int | ||
297 | g723_enc_predictor_pole( | ||
298 | struct g723_enc_state_t *state_ptr ) | ||
299 | { | ||
300 | return ( g723_enc_fmult( state_ptr->a[1] >> 2, state_ptr->sr[1] ) + | ||
301 | g723_enc_fmult( state_ptr->a[0] >> 2, state_ptr->sr[0] ) ); | ||
302 | } | ||
303 | |||
304 | /* | ||
305 | g723_enc_step_size() | ||
306 | |||
307 | computes the quantization step size of the adaptive quantizer. | ||
308 | |||
309 | */ | ||
310 | int | ||
311 | g723_enc_step_size( | ||
312 | struct g723_enc_state_t *state_ptr ) | ||
313 | { | ||
314 | int y; | ||
315 | int dif; | ||
316 | int al; | ||
317 | |||
318 | if ( state_ptr->ap >= 256 ) | ||
319 | return ( state_ptr->yu ); | ||
320 | else { | ||
321 | y = state_ptr->yl >> 6; | ||
322 | dif = state_ptr->yu - y; | ||
323 | al = state_ptr->ap >> 2; | ||
324 | if ( dif > 0 ) | ||
325 | y += ( dif * al ) >> 6; | ||
326 | else | ||
327 | if ( dif < 0 ) | ||
328 | y += ( dif * al + 0x3F ) >> 6; | ||
329 | |||
330 | return ( y ); | ||
331 | } | ||
332 | } | ||
333 | |||
334 | /* | ||
335 | g723_enc_quantize() | ||
336 | |||
337 | Given a raw sample, 'd', of the difference signal and a | ||
338 | quantization step size scale factor, 'y', this routine returns the | ||
339 | ADPCM codeword to which that sample gets quantized. The step | ||
340 | size scale factor division operation is done in the log base 2 domain | ||
341 | as a subtraction. | ||
342 | */ | ||
343 | int | ||
344 | g723_enc_quantize( | ||
345 | int d, /* Raw difference signal sample */ | ||
346 | int y, /* Step size multiplier */ | ||
347 | short *table, /* quantization table */ | ||
348 | int size ) /* table size of short integers */ | ||
349 | { | ||
350 | short dqm; /* Magnitude of 'd' */ | ||
351 | short exp; /* Integer part of base 2 log of 'd' */ | ||
352 | short mant; /* Fractional part of base 2 log */ | ||
353 | short dl; /* Log of magnitude of 'd' */ | ||
354 | short dln; /* Step size scale factor normalized log */ | ||
355 | int i; | ||
356 | |||
357 | /* | ||
358 | LOG | ||
359 | |||
360 | Compute base 2 log of 'd', and store in 'dl'. | ||
361 | */ | ||
362 | dqm = g723_enc_abs( d ); | ||
363 | exp = g723_enc_quan( dqm >> 1, g723_enc_power2, 15 ); | ||
364 | mant = ( ( dqm << 7 ) >> exp ) & 0x7F; /* Fractional portion. */ | ||
365 | dl = ( exp << 7 ) + mant; | ||
366 | |||
367 | /* | ||
368 | SUBTB | ||
369 | |||
370 | "Divide" by step size multiplier. | ||
371 | */ | ||
372 | dln = dl - ( y >> 2 ); | ||
373 | |||
374 | /* | ||
375 | QUAN | ||
376 | |||
377 | Obtain codword i for 'd'. | ||
378 | */ | ||
379 | i = g723_enc_quan( dln, table, size ); | ||
380 | |||
381 | if ( d < 0 ) /* take 1's complement of i */ | ||
382 | return ( ( size << 1 ) + 1 - i ); | ||
383 | else | ||
384 | if ( i == 0 ) /* take 1's complement of 0 */ | ||
385 | return ( ( size << 1 ) + 1 ); /* new in 1988 */ | ||
386 | else | ||
387 | return ( i ); | ||
388 | } | ||
389 | /* | ||
390 | g723_enc_reconstruct() | ||
391 | |||
392 | Returns reconstructed difference signal 'dq' obtained from | ||
393 | codeword 'i' and quantization step size scale factor 'y'. | ||
394 | Multiplication is performed in log base 2 domain as addition. | ||
395 | */ | ||
396 | int | ||
397 | g723_enc_reconstruct( | ||
398 | int sign, /* 0 for non-negative value */ | ||
399 | int dqln, /* G.72x codeword */ | ||
400 | int y ) /* Step size multiplier */ | ||
401 | { | ||
402 | short dql; /* Log of 'dq' magnitude */ | ||
403 | short dex; /* Integer part of log */ | ||
404 | short dqt; | ||
405 | short dq; /* Reconstructed difference signal sample */ | ||
406 | |||
407 | dql = dqln + ( y >> 2 ); /* ADDA */ | ||
408 | |||
409 | if ( dql < 0 ) | ||
410 | return ( ( sign ) ? -0x8000 : 0 ); | ||
411 | else { /* ANTILOG */ | ||
412 | dex = ( dql >> 7 ) & 15; | ||
413 | dqt = 128 + ( dql & 127 ); | ||
414 | dq = ( dqt << 7 ) >> ( 14 - dex ); | ||
415 | return ( ( sign ) ? ( dq - 0x8000 ) : dq ); | ||
416 | } | ||
417 | } | ||
418 | |||
419 | |||
420 | /* | ||
421 | g723_enc_update() | ||
422 | |||
423 | updates the state variables for each output code | ||
424 | */ | ||
425 | void | ||
426 | g723_enc_update( | ||
427 | int code_size, /* distinguish 723_40 with others */ | ||
428 | int y, /* quantizer step size */ | ||
429 | int wi, /* scale factor multiplier */ | ||
430 | int fi, /* for long/short term energies */ | ||
431 | int dq, /* quantized prediction difference */ | ||
432 | int sr, /* reconstructed signal */ | ||
433 | int dqsez, /* difference from 2-pole predictor */ | ||
434 | struct g723_enc_state_t *state_ptr ) /* coder state pointer */ | ||
435 | { | ||
436 | int cnt; | ||
437 | short mag, exp; /* Adaptive predictor, FLOAT A */ | ||
438 | short a2p; /* LIMC */ | ||
439 | short a1ul; /* UPA1 */ | ||
440 | short pks1; /* UPA2 */ | ||
441 | short fa1; | ||
442 | char tr; /* tone/transition detector */ | ||
443 | short ylint, thr2, dqthr; | ||
444 | short ylfrac, thr1; | ||
445 | short pk0; | ||
446 | |||
447 | pk0 = ( dqsez < 0 ) ? 1 : 0; /* needed in updating predictor poles */ | ||
448 | |||
449 | mag = dq & 0x7FFF; /* prediction difference magnitude */ | ||
450 | /* TRANS */ | ||
451 | ylint = state_ptr->yl >> 15; /* exponent part of yl */ | ||
452 | ylfrac = ( state_ptr->yl >> 10 ) & 0x1F; /* fractional part of yl */ | ||
453 | thr1 = ( 32 + ylfrac ) << ylint; /* threshold */ | ||
454 | thr2 = ( ylint > 9 ) ? 31 << 10 : thr1; /* limit thr2 to 31 << 10 */ | ||
455 | dqthr = ( thr2 + ( thr2 >> 1 ) ) >> 1; /* dqthr = 0.75 * thr2 */ | ||
456 | if ( state_ptr->td == 0 ) /* signal supposed voice */ | ||
457 | tr = 0; | ||
458 | else | ||
459 | if ( mag <= dqthr ) /* supposed data, but small mag */ | ||
460 | tr = 0; /* treated as voice */ | ||
461 | else /* signal is data (modem) */ | ||
462 | tr = 1; | ||
463 | |||
464 | /* | ||
465 | Quantizer scale factor adaptation. | ||
466 | */ | ||
467 | |||
468 | /* FUNCTW & FILTD & DELAY */ | ||
469 | /* update non-steady state step size multiplier */ | ||
470 | state_ptr->yu = y + ( ( wi - y ) >> 5 ); | ||
471 | |||
472 | /* LIMB */ | ||
473 | if ( state_ptr->yu < 544 ) /* 544 <= yu <= 5120 */ | ||
474 | state_ptr->yu = 544; | ||
475 | else | ||
476 | if ( state_ptr->yu > 5120 ) | ||
477 | state_ptr->yu = 5120; | ||
478 | |||
479 | /* FILTE & DELAY */ | ||
480 | /* update steady state step size multiplier */ | ||
481 | state_ptr->yl += state_ptr->yu + ( ( -state_ptr->yl ) >> 6 ); | ||
482 | |||
483 | /* | ||
484 | Adaptive predictor coefficients. | ||
485 | */ | ||
486 | if ( tr == 1 ) { /* reset a's and b's for modem signal */ | ||
487 | state_ptr->a[0] = 0; | ||
488 | state_ptr->a[1] = 0; | ||
489 | state_ptr->b[0] = 0; | ||
490 | state_ptr->b[1] = 0; | ||
491 | state_ptr->b[2] = 0; | ||
492 | state_ptr->b[3] = 0; | ||
493 | state_ptr->b[4] = 0; | ||
494 | state_ptr->b[5] = 0; | ||
495 | } else { /* update a's and b's */ | ||
496 | pks1 = pk0 ^ state_ptr->pk[0]; /* UPA2 */ | ||
497 | |||
498 | /* update predictor pole a[1] */ | ||
499 | a2p = state_ptr->a[1] - ( state_ptr->a[1] >> 7 ); | ||
500 | if ( dqsez != 0 ) { | ||
501 | fa1 = ( pks1 ) ? state_ptr->a[0] : -state_ptr->a[0]; | ||
502 | if ( fa1 < -8191 ) /* a2p = function of fa1 */ | ||
503 | a2p -= 0x100; | ||
504 | else | ||
505 | if ( fa1 > 8191 ) | ||
506 | a2p += 0xFF; | ||
507 | else | ||
508 | a2p += fa1 >> 5; | ||
509 | if ( pk0 ^ state_ptr->pk[1] ) | ||
510 | /* LIMC */ | ||
511 | if ( a2p <= -12160 ) | ||
512 | a2p = -12288; | ||
513 | else | ||
514 | if ( a2p >= 12416 ) | ||
515 | a2p = 12288; | ||
516 | else | ||
517 | a2p -= 0x80; | ||
518 | else | ||
519 | if ( a2p <= -12416 ) | ||
520 | a2p = -12288; | ||
521 | else | ||
522 | if ( a2p >= 12160 ) | ||
523 | a2p = 12288; | ||
524 | else | ||
525 | a2p += 0x80; | ||
526 | |||
527 | } | ||
528 | |||
529 | /* TRIGB & DELAY */ | ||
530 | state_ptr->a[1] = a2p; | ||
531 | |||
532 | /* UPA1 */ | ||
533 | /* update predictor pole a[0] */ | ||
534 | state_ptr->a[0] -= state_ptr->a[0] >> 8; | ||
535 | if ( dqsez != 0 ) { | ||
536 | if ( pks1 == 0 ) | ||
537 | state_ptr->a[0] += 192; | ||
538 | else | ||
539 | state_ptr->a[0] -= 192; | ||
540 | } | ||
541 | |||
542 | /* LIMD */ | ||
543 | a1ul = 15360 - a2p; | ||
544 | if ( state_ptr->a[0] < -a1ul ) | ||
545 | state_ptr->a[0] = -a1ul; | ||
546 | else | ||
547 | if ( state_ptr->a[0] > a1ul ) | ||
548 | state_ptr->a[0] = a1ul; | ||
549 | |||
550 | /* UPB : update predictor zeros b[6] */ | ||
551 | _Pragma( "loopbound min 6 max 6" ) | ||
552 | for ( cnt = 0; cnt < 6; cnt++ ) { | ||
553 | if ( code_size == 5 ) /* for 40Kbps G.723 */ | ||
554 | state_ptr->b[cnt] -= state_ptr->b[cnt] >> 9; | ||
555 | else /* for G.721 and 24Kbps G.723 */ | ||
556 | state_ptr->b[cnt] -= state_ptr->b[cnt] >> 8; | ||
557 | if ( dq & 0x7FFF ) { /* XOR */ | ||
558 | if ( ( dq ^ state_ptr->dq[cnt] ) >= 0 ) | ||
559 | state_ptr->b[cnt] += 128; | ||
560 | else | ||
561 | state_ptr->b[cnt] -= 128; | ||
562 | } | ||
563 | |||
564 | } | ||
565 | } | ||
566 | |||
567 | _Pragma( "loopbound min 5 max 5" ) | ||
568 | for ( cnt = 5; cnt > 0; cnt-- ) | ||
569 | state_ptr->dq[cnt] = state_ptr->dq[cnt - 1]; | ||
570 | /* FLOAT A : convert dq[0] to 4-bit exp, 6-bit mantissa f.p. */ | ||
571 | if ( mag == 0 ) | ||
572 | state_ptr->dq[0] = ( dq >= 0 ) ? 0x20 : 0xFC20; | ||
573 | else { | ||
574 | exp = g723_enc_quan( mag, g723_enc_power2, 15 ); | ||
575 | state_ptr->dq[0] = ( dq >= 0 ) ? | ||
576 | ( exp << 6 ) + ( ( mag << 6 ) >> exp ) : | ||
577 | ( exp << 6 ) + ( ( mag << 6 ) >> exp ) - 0x400; | ||
578 | |||
579 | } | ||
580 | |||
581 | state_ptr->sr[1] = state_ptr->sr[0]; | ||
582 | /* FLOAT B : convert sr to 4-bit exp., 6-bit mantissa f.p. */ | ||
583 | if ( sr == 0 ) | ||
584 | state_ptr->sr[0] = 0x20; | ||
585 | else | ||
586 | if ( sr > 0 ) { | ||
587 | exp = g723_enc_quan( sr, g723_enc_power2, 15 ); | ||
588 | state_ptr->sr[0] = ( exp << 6 ) + ( ( sr << 6 ) >> exp ); | ||
589 | } else | ||
590 | if ( sr > -32768 ) { | ||
591 | mag = -sr; | ||
592 | exp = g723_enc_quan( mag, g723_enc_power2, 15 ); | ||
593 | state_ptr->sr[0] = ( exp << 6 ) + ( ( mag << 6 ) >> exp ) - 0x400; | ||
594 | } else | ||
595 | state_ptr->sr[0] = 0xFC20; | ||
596 | |||
597 | /* DELAY A */ | ||
598 | state_ptr->pk[1] = state_ptr->pk[0]; | ||
599 | state_ptr->pk[0] = pk0; | ||
600 | |||
601 | /* TONE */ | ||
602 | if ( tr == 1 ) /* this sample has been treated as data */ | ||
603 | state_ptr->td = 0; /* next one will be treated as voice */ | ||
604 | else | ||
605 | if ( a2p < -11776 ) /* small sample-to-sample correlation */ | ||
606 | state_ptr->td = 1; /* signal may be data */ | ||
607 | else /* signal is voice */ | ||
608 | state_ptr->td = 0; | ||
609 | |||
610 | /* | ||
611 | Adaptation speed control. | ||
612 | */ | ||
613 | state_ptr->dms += ( fi - state_ptr->dms ) >> 5; /* FILTA */ | ||
614 | state_ptr->dml += ( ( ( fi << 2 ) - state_ptr->dml ) >> 7 ); /* FILTB */ | ||
615 | |||
616 | if ( tr == 1 ) | ||
617 | state_ptr->ap = 256; | ||
618 | else | ||
619 | if ( y < 1536 ) /* SUBTC */ | ||
620 | state_ptr->ap += ( 0x200 - state_ptr->ap ) >> 4; | ||
621 | else | ||
622 | if ( state_ptr->td == 1 ) | ||
623 | state_ptr->ap += ( 0x200 - state_ptr->ap ) >> 4; | ||
624 | else | ||
625 | if ( g723_enc_abs( ( state_ptr->dms << 2 ) - state_ptr->dml ) >= | ||
626 | ( state_ptr->dml >> 3 ) ) | ||
627 | state_ptr->ap += ( 0x200 - state_ptr->ap ) >> 4; | ||
628 | else | ||
629 | state_ptr->ap += ( -state_ptr->ap ) >> 4; | ||
630 | |||
631 | } | ||
632 | |||
633 | |||
634 | /* | ||
635 | g723_enc_alaw2linear() - Convert an A-law value to 16-bit linear PCM | ||
636 | |||
637 | */ | ||
638 | int | ||
639 | g723_enc_alaw2linear( | ||
640 | unsigned char a_val ) | ||
641 | { | ||
642 | int t; | ||
643 | int seg; | ||
644 | |||
645 | a_val ^= 0x55; | ||
646 | |||
647 | t = ( a_val & QUANT_MASK ) << 4; | ||
648 | seg = ( ( unsigned )a_val & SEG_MASK ) >> SEG_SHIFT; | ||
649 | switch ( seg ) { | ||
650 | case 0: | ||
651 | t += 8; | ||
652 | break; | ||
653 | case 1: | ||
654 | t += 0x108; | ||
655 | break; | ||
656 | default: | ||
657 | t += 0x108; | ||
658 | t <<= seg - 1; | ||
659 | } | ||
660 | return ( ( a_val & SIGN_BIT ) ? t : -t ); | ||
661 | } | ||
662 | |||
663 | |||
664 | /* | ||
665 | g723_enc_ulaw2linear() - Convert a u-law value to 16-bit linear PCM | ||
666 | |||
667 | First, a biased linear code is derived from the code word. An unbiased | ||
668 | output can then be obtained by subtracting 33 from the biased code. | ||
669 | |||
670 | Note that this function expects to be passed the complement of the | ||
671 | original code word. This is in keeping with ISDN conventions. | ||
672 | */ | ||
673 | int | ||
674 | g723_enc_ulaw2linear( | ||
675 | unsigned char u_val ) | ||
676 | { | ||
677 | int t; | ||
678 | |||
679 | /* Complement to obtain normal u-law value. */ | ||
680 | u_val = ~u_val; | ||
681 | |||
682 | /* | ||
683 | Extract and bias the quantization bits. Then | ||
684 | shift up by the segment number and subtract out the bias. | ||
685 | */ | ||
686 | t = ( ( u_val & QUANT_MASK ) << 3 ) + BIAS; | ||
687 | t <<= ( ( unsigned int )u_val & SEG_MASK ) >> SEG_SHIFT; | ||
688 | |||
689 | return ( ( u_val & SIGN_BIT ) ? ( BIAS - t ) : ( t - BIAS ) ); | ||
690 | } | ||
691 | |||
692 | |||
693 | /* | ||
694 | g723_enc_g723_24_encoder() | ||
695 | |||
696 | Encodes a linear PCM, A-law or u-law input sample and returns its 3-bit code. | ||
697 | Returns -1 if invalid input coding value. | ||
698 | */ | ||
699 | int | ||
700 | g723_enc_g723_24_encoder( | ||
701 | int sl, | ||
702 | int in_coding, | ||
703 | struct g723_enc_state_t *state_ptr ) | ||
704 | { | ||
705 | short sei, sezi, se, sez; /* ACCUM */ | ||
706 | short d; /* SUBTA */ | ||
707 | short y; /* MIX */ | ||
708 | short sr; /* ADDB */ | ||
709 | short dqsez; /* ADDC */ | ||
710 | short dq, i; | ||
711 | |||
712 | switch ( in_coding ) { /* linearize input sample to 14-bit PCM */ | ||
713 | case AUDIO_ENCODING_ALAW: | ||
714 | sl = g723_enc_alaw2linear( sl ) >> 2; | ||
715 | break; | ||
716 | case AUDIO_ENCODING_ULAW: | ||
717 | sl = g723_enc_ulaw2linear( sl ) >> 2; | ||
718 | break; | ||
719 | case AUDIO_ENCODING_LINEAR: | ||
720 | sl >>= 2; /* sl of 14-bit dynamic range */ | ||
721 | break; | ||
722 | default: | ||
723 | return ( -1 ); | ||
724 | } | ||
725 | |||
726 | sezi = g723_enc_predictor_zero( state_ptr ); | ||
727 | sez = sezi >> 1; | ||
728 | sei = sezi + g723_enc_predictor_pole( state_ptr ); | ||
729 | se = sei >> 1; /* se = estimated signal */ | ||
730 | |||
731 | d = sl - se; /* d = estimation diff. */ | ||
732 | |||
733 | /* quantize prediction difference d */ | ||
734 | y = g723_enc_step_size( state_ptr ); /* quantizer step size */ | ||
735 | i = g723_enc_quantize( d, y, g723_enc_qtab_723_24, 3 ); /* i = ADPCM code */ | ||
736 | dq = g723_enc_reconstruct( i & 4, g723_enc_dqlntab[i], y ); /* quantized diff. */ | ||
737 | |||
738 | sr = ( dq < 0 ) ? se - ( dq & 0x3FFF ) : se + dq; /* reconstructed signal */ | ||
739 | |||
740 | dqsez = sr + sez - se; /* pole prediction diff. */ | ||
741 | |||
742 | g723_enc_update( 3, y, g723_enc_witab[i], g723_enc_fitab[i], dq, sr, dqsez, state_ptr ); | ||
743 | |||
744 | return ( i ); | ||
745 | } | ||
746 | |||
747 | /* | ||
748 | Pack output codes into bytes and write them to stdout. | ||
749 | Returns 1 if there is residual output, else returns 0. | ||
750 | */ | ||
751 | int | ||
752 | g723_enc_pack_output( | ||
753 | unsigned char code, | ||
754 | int bits ) | ||
755 | { | ||
756 | static unsigned int out_buffer = 0; | ||
757 | static int out_bits = 0; | ||
758 | unsigned char out_byte; | ||
759 | static int i = 0; | ||
760 | |||
761 | out_buffer |= ( code << out_bits ); | ||
762 | out_bits += bits; | ||
763 | if ( out_bits >= 8 ) { | ||
764 | out_byte = out_buffer & 0xff; | ||
765 | out_bits -= 8; | ||
766 | out_buffer >>= 8; | ||
767 | //fwrite(&out_byte, sizeof (char), 1, fp_out); | ||
768 | //fwrite(&out_byte, 1, 1, fp_out); | ||
769 | g723_enc_OUTPUT[i] = out_byte; | ||
770 | i = i + 1; | ||
771 | } | ||
772 | |||
773 | return ( out_bits > 0 ); | ||
774 | } | ||
775 | |||
776 | /* | ||
777 | Initialization- and return-value-related functions | ||
778 | */ | ||
779 | |||
780 | /* | ||
781 | g723_enc_init_state() | ||
782 | |||
783 | This routine initializes and/or resets the g72x_state structure | ||
784 | pointed to by 'state_ptr'. | ||
785 | All the initial state values are specified in the CCITT G.721 document. | ||
786 | */ | ||
787 | void | ||
788 | g723_enc_init_state( | ||
789 | struct g723_enc_state_t *state_ptr ) | ||
790 | { | ||
791 | int cnta; | ||
792 | |||
793 | state_ptr->yl = 34816; | ||
794 | state_ptr->yu = 544; | ||
795 | state_ptr->dms = 0; | ||
796 | state_ptr->dml = 0; | ||
797 | state_ptr->ap = 0; | ||
798 | |||
799 | _Pragma( "loopbound min 2 max 2" ) | ||
800 | for ( cnta = 0; cnta < 2; cnta++ ) { | ||
801 | state_ptr->a[cnta] = 0; | ||
802 | state_ptr->pk[cnta] = 0; | ||
803 | state_ptr->sr[cnta] = 32; | ||
804 | } | ||
805 | _Pragma( "loopbound min 6 max 6" ) | ||
806 | for ( cnta = 0; cnta < 6; cnta++ ) { | ||
807 | state_ptr->b[cnta] = 0; | ||
808 | state_ptr->dq[cnta] = 32; | ||
809 | } | ||
810 | state_ptr->td = 0; | ||
811 | } | ||
812 | |||
813 | |||
814 | void g723_enc_init() | ||
815 | { | ||
816 | int i; | ||
817 | volatile int x = 0; | ||
818 | g723_enc_init_state( &g723_enc_state ); | ||
819 | |||
820 | _Pragma( "loopbound min 256 max 256" ) | ||
821 | for ( i = 0; i < 256; i++ ) { | ||
822 | g723_enc_INPUT[i] += x; | ||
823 | } | ||
824 | } | ||
825 | |||
826 | |||
827 | int g723_enc_return() | ||
828 | { | ||
829 | int i; | ||
830 | int check_sum = 0; | ||
831 | |||
832 | _Pragma( "loopbound min 256 max 256" ) | ||
833 | for ( i = 0; i < 256; i++ ) { | ||
834 | check_sum += g723_enc_OUTPUT[i]; | ||
835 | } | ||
836 | |||
837 | return ( check_sum != 24284 ); | ||
838 | } | ||
839 | |||
840 | /* | ||
841 | Main functions | ||
842 | */ | ||
843 | |||
844 | void _Pragma( "entrypoint" ) g723_enc_main() | ||
845 | { | ||
846 | // struct g72x_state state; | ||
847 | short sample_short; //mv | ||
848 | unsigned char code; | ||
849 | int resid; | ||
850 | int in_coding; | ||
851 | short *in_buf; | ||
852 | int enc_bits; | ||
853 | int i = 0; | ||
854 | |||
855 | enc_bits = 3; | ||
856 | in_coding = AUDIO_ENCODING_ALAW; | ||
857 | in_buf = &sample_short; | ||
858 | |||
859 | _Pragma( "loopbound min 256 max 256" ) | ||
860 | for ( i = 0; i < 256; i++ ) { | ||
861 | *in_buf = g723_enc_INPUT[i]; | ||
862 | code = g723_enc_g723_24_encoder( sample_short, in_coding, &g723_enc_state ); | ||
863 | resid = g723_enc_pack_output( code, enc_bits ); | ||
864 | } | ||
865 | |||
866 | /* Write zero codes until all residual codes are written out */ | ||
867 | _Pragma( "loopbound min 0 max 0" ) | ||
868 | while ( resid ) | ||
869 | resid = g723_enc_pack_output( 0, enc_bits ); | ||
870 | } | ||
871 | |||
872 | |||
873 | int main( int argc, char **argv ) | ||
874 | { | ||
875 | //SET_UP | ||
876 | int jobsComplete; | ||
877 | int maxJobs=9; | ||
878 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
879 | // START_LOOP | ||
880 | g723_enc_init(); | ||
881 | g723_enc_main(); | ||
882 | // STOP_LOOP | ||
883 | } | ||
884 | //WRITE_TO_FILE | ||
885 | return ( g723_enc_return() ); | ||
886 | } | ||
887 | |||
diff --git a/baseline/source/g723_enc/license.txt b/baseline/source/g723_enc/license.txt new file mode 100644 index 0000000..80cf21f --- /dev/null +++ b/baseline/source/g723_enc/license.txt | |||
@@ -0,0 +1,23 @@ | |||
1 | This source code is a product of Sun Microsystems, Inc. and is provided | ||
2 | for unrestricted use. Users may copy or modify this source code without | ||
3 | charge. | ||
4 | |||
5 | SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING | ||
6 | THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR | ||
7 | PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. | ||
8 | |||
9 | Sun source code is provided with no support and without any obligation on | ||
10 | the part of Sun Microsystems, Inc. to assist in its use, correction, | ||
11 | modification or enhancement. | ||
12 | |||
13 | SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE | ||
14 | INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE | ||
15 | OR ANY PART THEREOF. | ||
16 | |||
17 | In no event will Sun Microsystems, Inc. be liable for any lost revenue | ||
18 | or profits or other special, indirect and consequential damages, even if | ||
19 | Sun has been advised of the possibility of such damages. | ||
20 | |||
21 | Sun Microsystems, Inc. | ||
22 | 2550 Garcia Avenue | ||
23 | Mountain View, California 94043 \ No newline at end of file | ||
diff --git a/baseline/source/gsm_dec/COPYRIGHT b/baseline/source/gsm_dec/COPYRIGHT new file mode 100644 index 0000000..eba0e52 --- /dev/null +++ b/baseline/source/gsm_dec/COPYRIGHT | |||
@@ -0,0 +1,16 @@ | |||
1 | Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, | ||
2 | Technische Universitaet Berlin | ||
3 | |||
4 | Any use of this software is permitted provided that this notice is not | ||
5 | removed and that neither the authors nor the Technische Universitaet Berlin | ||
6 | are deemed to have made any representations as to the suitability of this | ||
7 | software for any purpose nor are held responsible for any defects of | ||
8 | this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. | ||
9 | |||
10 | As a matter of courtesy, the authors request to be informed about uses | ||
11 | this software has found, about bugs in this software, and about any | ||
12 | improvements that may be of general interest. | ||
13 | |||
14 | Berlin, 28.11.1994 | ||
15 | Jutta Degener | ||
16 | Carsten Bormann | ||
diff --git a/baseline/source/gsm_dec/ChangeLog.txt b/baseline/source/gsm_dec/ChangeLog.txt new file mode 100644 index 0000000..3d03d86 --- /dev/null +++ b/baseline/source/gsm_dec/ChangeLog.txt | |||
@@ -0,0 +1,87 @@ | |||
1 | File: gsm_dec.c | ||
2 | Original provenience: Jutta Degener and Carsten Bormann, | ||
3 | Technische Universitaet Berlin | ||
4 | |||
5 | 2017-04-18: | ||
6 | - Annotated gsm_dec_main as entry-point for timing analysis | ||
7 | |||
8 | 2016-03-07: | ||
9 | - Add generic TACLeBench header | ||
10 | - Split code into gsm.h, data.h, config.h, private.h, proto.h | ||
11 | - Remove code undefined through macros and unnecessay include guards | ||
12 | - Rename function 'decode' to 'gsm_decode_main' | ||
13 | - Add functions 'gsm_decode_init', 'gsm_decode_return' | ||
14 | - Remove line: /* lpc.c */ | ||
15 | - Remove line: #undef P | ||
16 | 2016-04-27: | ||
17 | - Rename benchmark to from 'gsm_decode' to 'gsm_dec' | ||
18 | - Remove unused content of proto.h and config.h | ||
19 | - Remove usages of prototype macros 'P' and 'GSM_P' and checks if standard | ||
20 | prototypes are availables: use standard prototypes | ||
21 | - Remove functions only defined for debugging purpose | ||
22 | - Remove block around "#ifndef GSM_TABLE_C", since 'GSM_TABLE_C' is defined, | ||
23 | remove define of 'GSM_TABLE_C' | ||
24 | - Define 'SASR' macro once, remove blocks if 'SASR' is not defined | ||
25 | - Remove variables 'f_fast' and 'f_verbose' (both set to 0). Consequently, | ||
26 | remove unused 'function gsm_option' and the defines 'GSM_OPT_VERBOSE' and | ||
27 | 'GSM_OPT_FAST' only used inside 'gsm_option' | ||
28 | - Remove unused variables 'verbose' and 'fast' from 'struct gsm_state' | ||
29 | - Remove unused function declarations 'gsm_explode' and 'gsm_implode' | ||
30 | - Remove unused defines 'GSM_PATCHLEVEL', 'GSM_MINOR', and 'GSM_MAJOR' | ||
31 | - Remove irrelevant comment "// OK" in line calling function 'create' | ||
32 | - Remove unused variable 'd' of type 'word*' from 'gsm_dec_main' | ||
33 | - Remove unused parameter 'struct gsm_state * S' of function 'Gsm_RPE_Decoding' | ||
34 | - Remove block in function 'Gsm_Short_Term_Synthesis_Filter' that is compiled | ||
35 | when 'FAST' macro is defined (per default not activated) | ||
36 | - Replace macro 'FILTER' by its expanded value 'Short_term_synthesis_filtering' | ||
37 | in function 'Gsm_Short_Term_Synthesis_Filter' | ||
38 | - Remove unused 'int j' in function 'Short_term_synthesis_filtering' | ||
39 | - Make iteration variable 'i' in function 'create' type 'unsigned int' to avoid | ||
40 | compiler warnings | ||
41 | - Use rewritten Duff's device for WCET analysis, remove commented original | ||
42 | varinat, keep comment in code marking this change | ||
43 | - Remove unused variable 'temp_sat' of type 'longword' in function | ||
44 | 'APCM_inverse_quantization' | ||
45 | - Remove unused parameter 'S' of type 'struct gsm_state*' in function | ||
46 | 'Gsm_RPE_Decoding' and the respective calls of this function | ||
47 | - Remove unused function | ||
48 | 'Gsm_Update_of_reconstructed_short_time_residual_signal' | ||
49 | - Remove code block activatable by defining 'USE_TABLE_MUL', since macro never | ||
50 | defined | ||
51 | - Rename global variable 'gsmstate' to 'gsm_dec_state' | ||
52 | - Remove lines with #undef GSM_P | ||
53 | - Update function 'create': add void parameter to defintion | ||
54 | - Introduce 'gsm_dec_state_ptr' that points to 'gsm_dec_state', which is | ||
55 | initialized in function 'create'. This is required to maintain the void-void | ||
56 | signature for 'gsm_dec_init' and 'gsm_dec_main'. | ||
57 | - Remove unused commented version of 'GSM_MULT_R' | ||
58 | - Move macros 'GSM_MULT|ADD|SUB' into separate header | ||
59 | - Give include guards unique names: prefix with 'GSM_DEC_' | ||
60 | - Remove unused functions 'gsm_div', 'gsm_add', 'gsm_mult', 'gsm_mult_r', | ||
61 | 'gsm_abs', 'gsm_L_mult', 'gsm_L_add', 'gsm_L_sub', 'gsm_norm' (and array | ||
62 | 'bitoff' used in this function), 'gsm_L_asl', 'gsm_L_asr' | ||
63 | - Rename 'Gsm_Short_Term_Synthesis_Filter' to | ||
64 | 'gsm_dec_Short_Term_Synthesis_Filter' | ||
65 | - Rename 'Gsm_RPE_Decoding' to 'gsm_dec_RPE_Decoding' | ||
66 | - Rename 'Gsm_Long_Term_Synthesis_Filtering' to | ||
67 | 'gsm_dec_Long_Term_Synthesis_Filtering' | ||
68 | - Rename 'Gsm_Decoder' to 'gsm_dec_Decoder' | ||
69 | - Remove unused function declaration of 'decode' | ||
70 | - Prefix all global symbols with benchmark name | ||
71 | - Store return value of in introduced variable 'gsm_dec_result', which is | ||
72 | volatile to avoid optimizations on this variable | ||
73 | - Avoid constant propagation through addition with volatile variable on each | ||
74 | element of the 'gsm_dec_state' structure | ||
75 | 2016-05-10: | ||
76 | - Change coefficients for variable 'B' of 'STEP' macro in function | ||
77 | 'gsm_dec_Decoding_of_the_coded_Log_Area_Ratios' from negative to positive, | ||
78 | since bit shifts of signed values are undefined | ||
79 | - Fix comment why variable 'long ltmp' ist required in function | ||
80 | 'gsm_dec_Decoding_of_the_coded_Log_Area_Ratios' | ||
81 | - Apply code formatting with with astyle | ||
82 | - Manual text formattings: removal of empty lines in function prototypes, | ||
83 | - Indent all multi-line block comments by two spaces | ||
84 | 2016-05-10: | ||
85 | - Remove 'static' declaration of global variables and functions | ||
86 | - Remove unused global variables 'gsm_DLB', 'gsm_INVA', 'gsm_MAC', 'gsm_MIC', | ||
87 | 'gsm_A', 'gsm_B', 'gsm_H' | ||
diff --git a/baseline/source/gsm_dec/add.h b/baseline/source/gsm_dec/add.h new file mode 100644 index 0000000..ffe79b7 --- /dev/null +++ b/baseline/source/gsm_dec/add.h | |||
@@ -0,0 +1,55 @@ | |||
1 | #ifndef GSM_DEC_ADD_H | ||
2 | #define GSM_DEC_ADD_H | ||
3 | |||
4 | #define GSM_MULT_R(a, b) /* word a, word b, !(a == b == MIN_WORD) */ \ | ||
5 | (SASR( ((longword)(a) * (longword)(b) + 16384), 15 )) | ||
6 | |||
7 | # define GSM_MULT(a,b) /* word a, word b, !(a == b == MIN_WORD) */ \ | ||
8 | (SASR( ((longword)(a) * (longword)(b)), 15 )) | ||
9 | |||
10 | # define GSM_L_MULT(a, b) /* word a, word b */ \ | ||
11 | (((longword)(a) * (longword)(b)) << 1) | ||
12 | |||
13 | # define GSM_L_ADD(a, b) \ | ||
14 | ( (a) < 0 ? ( (b) >= 0 ? (a) + (b) \ | ||
15 | : (utmp = (ulongword)-((a) + 1) + (ulongword)-((b) + 1)) \ | ||
16 | >= MAX_LONGWORD ? MIN_LONGWORD : -(longword)utmp-2 ) \ | ||
17 | : ((b) <= 0 ? (a) + (b) \ | ||
18 | : (utmp = (ulongword)(a) + (ulongword)(b)) >= MAX_LONGWORD \ | ||
19 | ? MAX_LONGWORD : utmp)) | ||
20 | |||
21 | /* | ||
22 | # define GSM_ADD(a, b) \ | ||
23 | ((ltmp = (longword)(a) + (longword)(b)) >= MAX_WORD \ | ||
24 | ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp) | ||
25 | */ | ||
26 | /* Nonportable, but faster: */ | ||
27 | |||
28 | #define GSM_ADD(a, b) \ | ||
29 | ((ulongword)((ltmp = (longword)(a) + (longword)(b)) - MIN_WORD) > \ | ||
30 | MAX_WORD - MIN_WORD ? (ltmp > 0 ? MAX_WORD : MIN_WORD) : ltmp) | ||
31 | |||
32 | # define GSM_SUB(a, b) \ | ||
33 | ((ltmp = (longword)(a) - (longword)(b)) >= MAX_WORD \ | ||
34 | ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp) | ||
35 | |||
36 | # define GSM_ABS(a) ((a) < 0 ? ((a) == MIN_WORD ? MAX_WORD : -(a)) : (a)) | ||
37 | |||
38 | #define saturate(x) \ | ||
39 | ((x) < MIN_WORD ? MIN_WORD : (x) > MAX_WORD ? MAX_WORD: (x)) | ||
40 | |||
41 | /* Use these if necessary: | ||
42 | |||
43 | # define GSM_MULT_R(a, b) gsm_mult_r(a, b) | ||
44 | # define GSM_MULT(a, b) gsm_mult(a, b) | ||
45 | # define GSM_L_MULT(a, b) gsm_L_mult(a, b) | ||
46 | |||
47 | # define GSM_L_ADD(a, b) gsm_L_add(a, b) | ||
48 | # define GSM_ADD(a, b) gsm_add(a, b) | ||
49 | # define GSM_SUB(a, b) gsm_sub(a, b) | ||
50 | |||
51 | # define GSM_ABS(a) gsm_abs(a) | ||
52 | |||
53 | */ | ||
54 | |||
55 | #endif /* GSM_DEC_ADD_H */ | ||
diff --git a/baseline/source/gsm_dec/data.h b/baseline/source/gsm_dec/data.h new file mode 100644 index 0000000..81bf20d --- /dev/null +++ b/baseline/source/gsm_dec/data.h | |||
@@ -0,0 +1,865 @@ | |||
1 | #ifndef GSM_DEC_DATA_H | ||
2 | #define GSM_DEC_DATA_H | ||
3 | |||
4 | gsm_signal gsm_dec_pcmdata[] = { | ||
5 | ( short )0x0000, ( short )0x0000, ( short )0x0010, ( short )0x0010, | ||
6 | ( short )0x0010, ( short )0x0020, ( short )0x0020, ( short )0x0018, | ||
7 | ( short )0x0028, ( short )0x0020, ( short )0x0020, ( short )0x0028, | ||
8 | ( short )0x0028, ( short )0x0020, ( short )0x0030, ( short )0x0030, | ||
9 | ( short )0x0028, ( short )0x0010, ( short )0x0008, ( short )0x0000, | ||
10 | ( short )0x0050, ( short )0x0060, ( short )0x0058, ( short )0x00D0, | ||
11 | ( short )0x00E0, ( short )0x00D0, ( short )0x0118, ( short )0x0128, | ||
12 | ( short )0x0118, ( short )0x0128, ( short )0x0110, ( short )0x0100, | ||
13 | ( short )0x00A0, ( short )0x0058, ( short )0x0048, ( short )0x0058, | ||
14 | ( short )0x0060, ( short )0x0058, ( short )0x0050, ( short )0x0048, | ||
15 | ( short )0x0040, ( short )0x0030, ( short )0x0020, ( short )0x0010, | ||
16 | ( short )0x0008, ( short )0xFFF8, ( short )0xFFE8, ( short )0xFFE0, | ||
17 | ( short )0xFFD8, ( short )0xFFC8, ( short )0xFFC0, ( short )0xFFC0, | ||
18 | ( short )0xFF98, ( short )0xFF78, ( short )0xFF78, ( short )0xFFC8, | ||
19 | ( short )0x0000, ( short )0x0010, ( short )0x0040, ( short )0x0060, | ||
20 | ( short )0x0068, ( short )0x0078, ( short )0x0078, ( short )0x0070, | ||
21 | ( short )0x00A8, ( short )0x00C8, ( short )0x00C8, ( short )0x00E0, | ||
22 | ( short )0x00F0, ( short )0x00E8, ( short )0x00F8, ( short )0x00F8, | ||
23 | ( short )0x00F0, ( short )0x00E0, ( short )0x00C8, ( short )0x00B8, | ||
24 | ( short )0x00E8, ( short )0x0100, ( short )0x00F8, ( short )0x00E8, | ||
25 | ( short )0x00D8, ( short )0x00C0, ( short )0x00A8, ( short )0x0020, | ||
26 | ( short )0xFFC0, ( short )0xFFA0, ( short )0xFFA0, ( short )0xFFA8, | ||
27 | ( short )0xFFB0, ( short )0xFFD0, ( short )0xFFF8, ( short )0x0000, | ||
28 | ( short )0x0020, ( short )0x0030, ( short )0x0030, ( short )0x0030, | ||
29 | ( short )0x0028, ( short )0x0020, ( short )0xFFF0, ( short )0xFFD0, | ||
30 | ( short )0xFFC8, ( short )0xFFC8, ( short )0xFFD0, ( short )0xFFD8, | ||
31 | ( short )0xFFE8, ( short )0xFFF8, ( short )0xFFF8, ( short )0x0008, | ||
32 | ( short )0x0018, ( short )0x0018, ( short )0x0078, ( short )0x00B8, | ||
33 | ( short )0x00C0, ( short )0x0100, ( short )0x0130, ( short )0x0128, | ||
34 | ( short )0x0108, ( short )0x00D8, ( short )0x00C0, ( short )0x0078, | ||
35 | ( short )0x0038, ( short )0x0020, ( short )0x0020, ( short )0x0000, | ||
36 | ( short )0xFFE0, ( short )0xFFE0, ( short )0xFFD8, ( short )0xFFC8, | ||
37 | ( short )0xFFC8, ( short )0xFFA0, ( short )0xFF88, ( short )0xFF98, | ||
38 | ( short )0xFF80, ( short )0xFF70, ( short )0xFF80, ( short )0xFF78, | ||
39 | ( short )0xFF78, ( short )0xFF90, ( short )0xFF80, ( short )0xFF78, | ||
40 | ( short )0xFF78, ( short )0xFF50, ( short )0xFF30, ( short )0xFF50, | ||
41 | ( short )0xFF38, ( short )0xFF30, ( short )0xFF40, ( short )0xFF58, | ||
42 | ( short )0xFF70, ( short )0xFF80, ( short )0xFF50, ( short )0xFF38, | ||
43 | ( short )0xFF40, ( short )0xFF18, ( short )0xFF00, ( short )0xFF08, | ||
44 | ( short )0xFF40, ( short )0xFF68, ( short )0xFF80, ( short )0xFF88, | ||
45 | ( short )0xFF88, ( short )0xFF88, ( short )0xFF88, ( short )0xFFB8, | ||
46 | ( short )0xFFE0, ( short )0xFFF0, ( short )0xFFD0, ( short )0xFFB8, | ||
47 | ( short )0xFFB8, ( short )0xFF90, ( short )0xFF70, ( short )0xFF70, | ||
48 | ( short )0xFF50, ( short )0xFF40, ( short )0xFF40, ( short )0xFF58, | ||
49 | ( short )0xFF70, ( short )0xFF80, ( short )0xFFC8, ( short )0x0000, | ||
50 | ( short )0x0018, ( short )0x0030, ( short )0x0048, ( short )0x0048, | ||
51 | ( short )0x0028, ( short )0x0008, ( short )0xFFF8, ( short )0xFFD8, | ||
52 | ( short )0xFFC8, ( short )0xFFB8, ( short )0xFF98, ( short )0xFF78, | ||
53 | ( short )0xFF70, ( short )0xFFF0, ( short )0x0058, ( short )0x0088, | ||
54 | ( short )0x00B8, ( short )0x00D0, ( short )0x00D8, ( short )0x00E8, | ||
55 | ( short )0x0138, ( short )0x0160, ( short )0x0158, ( short )0x0170, | ||
56 | ( short )0x0178, ( short )0x0160, ( short )0x0168, ( short )0x0160, | ||
57 | ( short )0x0140, ( short )0x0118, ( short )0x00F0, ( short )0x00C8, | ||
58 | ( short )0x0098, ( short )0x0078, ( short )0x0060, ( short )0x0018, | ||
59 | ( short )0xFFC0, ( short )0xFF90, ( short )0xFF48, ( short )0xFF00, | ||
60 | ( short )0xFEE8, ( short )0xFEC8, ( short )0xFEB8, ( short )0xFEB8, | ||
61 | ( short )0xFEA0, ( short )0xFE88, ( short )0xFE80, ( short )0xFEB8, | ||
62 | ( short )0xFEF8, ( short )0xFF38, ( short )0xFFA0, ( short )0xFFE8, | ||
63 | ( short )0x0008, ( short )0x0030, ( short )0x0058, ( short )0x0068, | ||
64 | ( short )0x0068, ( short )0x0070, ( short )0x0068, ( short )0x0050, | ||
65 | ( short )0x0040, ( short )0x0040, ( short )0x0020, ( short )0x0000, | ||
66 | ( short )0xFFE8, ( short )0xFFF0, ( short )0xFFF8, ( short )0xFFF8, | ||
67 | ( short )0x0038, ( short )0x0068, ( short )0x0078, ( short )0x0038, | ||
68 | ( short )0x0008, ( short )0xFFF0, ( short )0xFFE0, ( short )0xFFD8, | ||
69 | ( short )0xFFD8, ( short )0xFFE0, ( short )0xFFD0, ( short )0xFFC8, | ||
70 | ( short )0x0000, ( short )0x0030, ( short )0x0048, ( short )0x0068, | ||
71 | ( short )0x0080, ( short )0x0088, ( short )0x0088, ( short )0x0088, | ||
72 | ( short )0x0088, ( short )0x0088, ( short )0x0088, ( short )0x0078, | ||
73 | ( short )0x0098, ( short )0x00B0, ( short )0x00B8, ( short )0x0098, | ||
74 | ( short )0x0070, ( short )0x0058, ( short )0x0060, ( short )0x0078, | ||
75 | ( short )0x00A8, ( short )0x00B8, ( short )0x00A8, ( short )0x00A0, | ||
76 | ( short )0x0080, ( short )0x0068, ( short )0x0060, ( short )0x0058, | ||
77 | ( short )0x0048, ( short )0x0030, ( short )0x0038, ( short )0x0038, | ||
78 | ( short )0x0030, ( short )0x0050, ( short )0x0058, ( short )0x0060, | ||
79 | ( short )0x0030, ( short )0x0008, ( short )0xFFF8, ( short )0xFF90, | ||
80 | ( short )0xFF48, ( short )0xFF28, ( short )0xFF10, ( short )0xFEF8, | ||
81 | ( short )0xFEF0, ( short )0xFED8, ( short )0xFEB0, ( short )0xFEB0, | ||
82 | ( short )0xFEA8, ( short )0xFEB8, ( short )0xFED8, ( short )0xFEF8, | ||
83 | ( short )0xFF10, ( short )0xFF20, ( short )0xFF40, ( short )0xFF58, | ||
84 | ( short )0xFF80, ( short )0xFFA0, ( short )0xFFB8, ( short )0xFFC8, | ||
85 | ( short )0xFFD8, ( short )0xFFE0, ( short )0xFFF0, ( short )0x0048, | ||
86 | ( short )0x0098, ( short )0x00B0, ( short )0x0068, ( short )0x0018, | ||
87 | ( short )0xFFF8, ( short )0xFFE8, ( short )0xFFF0, ( short )0xFFF8, | ||
88 | ( short )0x0020, ( short )0x0038, ( short )0x0038, ( short )0x0050, | ||
89 | ( short )0x0068, ( short )0x0070, ( short )0x0068, ( short )0x0060, | ||
90 | ( short )0x0060, ( short )0x0038, ( short )0x0020, ( short )0x0018, | ||
91 | ( short )0x0040, ( short )0x0060, ( short )0x0068, ( short )0x0040, | ||
92 | ( short )0x0010, ( short )0x0000, ( short )0xFFB0, ( short )0xFF78, | ||
93 | ( short )0xFF70, ( short )0xFF90, ( short )0xFFA8, ( short )0xFFC8, | ||
94 | ( short )0xFF98, ( short )0xFF50, ( short )0xFF50, ( short )0xFF50, | ||
95 | ( short )0xFF58, ( short )0xFF68, ( short )0xFF48, ( short )0xFF20, | ||
96 | ( short )0xFF18, ( short )0xFF38, ( short )0xFF60, ( short )0xFF70, | ||
97 | ( short )0xFF80, ( short )0xFF98, ( short )0xFFA0, ( short )0xFFB8, | ||
98 | ( short )0xFFD0, ( short )0xFFE0, ( short )0x0018, ( short )0x0048, | ||
99 | ( short )0x0058, ( short )0x00B0, ( short )0x00F8, ( short )0x0108, | ||
100 | ( short )0x0118, ( short )0x0120, ( short )0x0118, ( short )0x0130, | ||
101 | ( short )0x0148, ( short )0x0140, ( short )0x0130, ( short )0x0120, | ||
102 | ( short )0x0108, ( short )0x0098, ( short )0x0038, ( short )0x0018, | ||
103 | ( short )0xFFD0, ( short )0xFF90, ( short )0xFF80, ( short )0xFF58, | ||
104 | ( short )0xFF38, ( short )0xFF30, ( short )0xFF48, ( short )0xFF68, | ||
105 | ( short )0xFF78, ( short )0xFF88, ( short )0xFFB8, ( short )0xFFD8, | ||
106 | ( short )0xFFE8, ( short )0xFFD8, ( short )0xFFF0, ( short )0x0010, | ||
107 | ( short )0x0020, ( short )0x0020, ( short )0x0018, ( short )0x0028, | ||
108 | ( short )0x0030, ( short )0x0030, ( short )0x0038, ( short )0x0060, | ||
109 | ( short )0x0080, ( short )0x0080, ( short )0x00B0, ( short )0x00D8, | ||
110 | ( short )0x00D0, ( short )0x00B8, ( short )0x00A8, ( short )0x00A8, | ||
111 | ( short )0x00A0, ( short )0x0090, ( short )0x0078, ( short )0x0070, | ||
112 | ( short )0x0068, ( short )0x0048, ( short )0x0018, ( short )0x0008, | ||
113 | ( short )0x0008, ( short )0x0000, ( short )0x0000, ( short )0xFFE8, | ||
114 | ( short )0xFFB0, ( short )0xFF90, ( short )0xFF88, ( short )0xFF70, | ||
115 | ( short )0xFF60, ( short )0xFF60, ( short )0xFF90, ( short )0xFFC0, | ||
116 | ( short )0xFFD0, ( short )0xFFD8, ( short )0xFFE0, ( short )0xFFE8, | ||
117 | ( short )0x0018, ( short )0x0050, ( short )0x0058, ( short )0x0030, | ||
118 | ( short )0x0008, ( short )0x0000, ( short )0x0018, ( short )0x0038, | ||
119 | ( short )0x0038, ( short )0x0048, ( short )0x0050, ( short )0x0050, | ||
120 | ( short )0x0020, ( short )0x0000, ( short )0xFFF8, ( short )0xFFB0, | ||
121 | ( short )0xFF70, ( short )0xFF68, ( short )0xFFB0, ( short )0xFFE8, | ||
122 | ( short )0xFFF8, ( short )0xFFF8, ( short )0xFFF8, ( short )0xFFF0, | ||
123 | ( short )0x0030, ( short )0x0070, ( short )0x0090, ( short )0x0098, | ||
124 | ( short )0x0098, ( short )0x0090, ( short )0x00A0, ( short )0x00B0, | ||
125 | ( short )0x00B8, ( short )0x00C0, ( short )0x00C0, ( short )0x00A8, | ||
126 | ( short )0x0098, ( short )0x0088, ( short )0x0078, ( short )0x0050, | ||
127 | ( short )0x0030, ( short )0x0020, ( short )0xFFD8, ( short )0xFF98, | ||
128 | ( short )0xFF88, ( short )0xFF50, ( short )0xFF20, ( short )0xFF18, | ||
129 | ( short )0xFEF8, ( short )0xFEE0, ( short )0xFEE8, ( short )0xFE70, | ||
130 | ( short )0xFE08, ( short )0xFE00, ( short )0xFE48, ( short )0xFE98, | ||
131 | ( short )0xFEB8, ( short )0xFEE8, ( short )0xFF10, ( short )0xFF28, | ||
132 | ( short )0xFF18, ( short )0xFF10, ( short )0xFF18, ( short )0xFF48, | ||
133 | ( short )0xFF70, ( short )0xFF88, ( short )0xFFE0, ( short )0x0028, | ||
134 | ( short )0x0040, ( short )0x0058, ( short )0x0068, ( short )0x0070, | ||
135 | ( short )0x0078, ( short )0x0070, ( short )0x0068, ( short )0x0068, | ||
136 | ( short )0x0078, ( short )0x0080, ( short )0x0080, ( short )0x0088, | ||
137 | ( short )0x0088, ( short )0x0080, ( short )0x0058, ( short )0x0030, | ||
138 | ( short )0x0020, ( short )0x0018, ( short )0x0018, ( short )0x0018, | ||
139 | ( short )0x0050, ( short )0x0090, ( short )0x00A0, ( short )0x0080, | ||
140 | ( short )0x0060, ( short )0x0050, ( short )0x0030, ( short )0x0018, | ||
141 | ( short )0x0010, ( short )0x0028, ( short )0x0038, ( short )0x0038, | ||
142 | ( short )0x0018, ( short )0xFFF8, ( short )0xFFF0, ( short )0x0000, | ||
143 | ( short )0x0020, ( short )0x0020, ( short )0x0030, ( short )0x0030, | ||
144 | ( short )0x0030, ( short )0x0040, ( short )0x0050, ( short )0x0050, | ||
145 | ( short )0x0050, ( short )0x0048, ( short )0x0048, ( short )0x0048, | ||
146 | ( short )0x0048, ( short )0x0048, ( short )0x0078, ( short )0x00A0, | ||
147 | ( short )0x00A8, ( short )0x00C0, ( short )0x00C8, ( short )0x00C0, | ||
148 | ( short )0x00D0, ( short )0x00E0, ( short )0x00D8, ( short )0x00E8, | ||
149 | ( short )0x00F0, ( short )0x00E0, ( short )0x0100, ( short )0x0118, | ||
150 | ( short )0x0110, ( short )0x0100, ( short )0x00F0, ( short )0x00D8, | ||
151 | ( short )0x0090, ( short )0x0048, ( short )0x0028, ( short )0x0020, | ||
152 | ( short )0x0020, ( short )0x0020, ( short )0x0038, ( short )0x0050, | ||
153 | ( short )0x0050, ( short )0x0050, ( short )0x0048, ( short )0x0040, | ||
154 | ( short )0x0050, ( short )0x0060, ( short )0x0060, ( short )0x0040, | ||
155 | ( short )0xFFC0, ( short )0xFF58, ( short )0xFF40, ( short )0xFF90, | ||
156 | ( short )0xFFE8, ( short )0x0000, ( short )0x0020, ( short )0x0030, | ||
157 | ( short )0x0030, ( short )0x0068, ( short )0x0098, ( short )0x00A8, | ||
158 | ( short )0x0110, ( short )0x0168, ( short )0x0170, ( short )0x0148, | ||
159 | ( short )0x0118, ( short )0x00F0, ( short )0x00E8, ( short )0x00E0, | ||
160 | ( short )0x00D0, ( short )0x0098, ( short )0x0060, ( short )0x0040, | ||
161 | ( short )0x0000, ( short )0xFFD8, ( short )0xFFD8, ( short )0xFFC0, | ||
162 | ( short )0xFFB0, ( short )0xFFB0, ( short )0xFF78, ( short )0xFF30, | ||
163 | ( short )0xFF10, ( short )0xFEF0, ( short )0xFEE8, ( short )0xFEF0, | ||
164 | ( short )0xFEC8, ( short )0xFED0, ( short )0xFEF8, ( short )0xFF00, | ||
165 | ( short )0xFF10, ( short )0xFF20, ( short )0xFF50, ( short )0xFF78, | ||
166 | ( short )0xFF90, ( short )0xFF80, ( short )0xFF70, ( short )0xFF70, | ||
167 | ( short )0xFF80, ( short )0xFF98, ( short )0xFFA0, ( short )0xFFB8, | ||
168 | ( short )0xFFD0, ( short )0xFFD8, ( short )0xFFF0, ( short )0x0000, | ||
169 | ( short )0x0008, ( short )0x0028, ( short )0x0048, ( short )0x0058, | ||
170 | ( short )0x0078, ( short )0x0070, ( short )0x0058, ( short )0x0068, | ||
171 | ( short )0x0098, ( short )0x00B8, ( short )0x00D8, ( short )0x00F0, | ||
172 | ( short )0x00F0, ( short )0x00E8, ( short )0x00F8, ( short )0x0100, | ||
173 | ( short )0x00D8, ( short )0x00D0, ( short )0x00C8, ( short )0x00E8, | ||
174 | ( short )0x0100, ( short )0x00F0, ( short )0x00E0, ( short )0x00C8, | ||
175 | ( short )0x00B8, ( short )0x00A0, ( short )0x0078, ( short )0x0058, | ||
176 | ( short )0x0038, ( short )0x0020, ( short )0x0010, ( short )0x0010, | ||
177 | ( short )0x0018, ( short )0x0010, ( short )0x0010, ( short )0x0010, | ||
178 | ( short )0x0018, ( short )0x0028, ( short )0x0008, ( short )0xFFE0, | ||
179 | ( short )0xFFC8, ( short )0xFF80, ( short )0xFF48, ( short )0xFF38, | ||
180 | ( short )0xFF40, ( short )0xFF48, ( short )0xFF48, ( short )0xFF70, | ||
181 | ( short )0xFF90, ( short )0xFFA8, ( short )0xFFB8, ( short )0xFFC0, | ||
182 | ( short )0xFFC8, ( short )0xFFC0, ( short )0xFFC0, ( short )0xFFC0, | ||
183 | ( short )0xFFB0, ( short )0xFFA0, ( short )0xFFA0, ( short )0xFFA0, | ||
184 | ( short )0xFFA8, ( short )0xFFB0, ( short )0xFF68, ( short )0xFF28, | ||
185 | ( short )0xFF08, ( short )0xFEF8, ( short )0xFEF8, ( short )0xFEE8, | ||
186 | ( short )0xFEE0, ( short )0xFED8, ( short )0xFEA8, ( short )0xFE98, | ||
187 | ( short )0xFEA8, ( short )0xFEA8, ( short )0xFEA0, ( short )0xFEA0, | ||
188 | ( short )0xFED0, ( short )0xFF00, ( short )0xFF30, ( short )0xFF28, | ||
189 | ( short )0xFF38, ( short )0xFF58, ( short )0xFF48, ( short )0xFF40, | ||
190 | ( short )0xFF48, ( short )0xFFB0, ( short )0x0010, ( short )0x0038, | ||
191 | ( short )0x0028, ( short )0x0010, ( short )0x0008, ( short )0x0050, | ||
192 | ( short )0x00A0, ( short )0x00B8, ( short )0x00A0, ( short )0x0080, | ||
193 | ( short )0x0070, ( short )0x0090, ( short )0x00B0, ( short )0x00B0, | ||
194 | ( short )0x00B8, ( short )0x00B8, ( short )0x00B0, ( short )0x00C0, | ||
195 | ( short )0x00D0, ( short )0x00C8, ( short )0x00A0, ( short )0x0068, | ||
196 | ( short )0x0038, ( short )0xFFF0, ( short )0xFFB0, ( short )0xFF88, | ||
197 | ( short )0xFF78, ( short )0xFF68, ( short )0xFF60, ( short )0xFF90, | ||
198 | ( short )0xFFC0, ( short )0xFFE0, ( short )0x0000, ( short )0x0020, | ||
199 | ( short )0x0030, ( short )0x00A0, ( short )0x0110, ( short )0x0138, | ||
200 | ( short )0x0140, ( short )0x0148, ( short )0x0148, ( short )0x0110, | ||
201 | ( short )0x00E8, ( short )0x00C0, ( short )0x00A0, ( short )0x0088, | ||
202 | ( short )0x0068, ( short )0x0008, ( short )0xFFB0, ( short )0xFF88, | ||
203 | ( short )0xFF58, ( short )0xFF30, ( short )0xFF20, ( short )0xFEF8, | ||
204 | ( short )0xFED8, ( short )0xFED8, ( short )0xFF00, ( short )0xFF20, | ||
205 | ( short )0xFF38, ( short )0xFF50, ( short )0xFF68, ( short )0xFF88, | ||
206 | ( short )0xFFA0, ( short )0xFFB8, ( short )0x0020, ( short )0x0080, | ||
207 | ( short )0x00A0, ( short )0x00D8, ( short )0x0100, ( short )0x0100, | ||
208 | ( short )0x0138, ( short )0x0168, ( short )0x0148, ( short )0x0128, | ||
209 | ( short )0x0120, ( short )0x00F8, ( short )0x00E8, ( short )0x00E0, | ||
210 | ( short )0x00C0, ( short )0x00A8, ( short )0x00B0, ( short )0x0098, | ||
211 | ( short )0x0070, ( short )0x0048, ( short )0x0030, ( short )0xFFD0, | ||
212 | ( short )0xFF60, ( short )0xFF48, ( short )0xFF10, ( short )0xFEA8, | ||
213 | ( short )0xFEA8, ( short )0xFEC0, ( short )0xFEC0, ( short )0xFEE8, | ||
214 | ( short )0xFEB0, ( short )0xFE58, ( short )0xFE88, ( short )0xFED0, | ||
215 | ( short )0xFEB8, ( short )0xFE48, ( short )0xFE58, ( short )0xFEE8, | ||
216 | ( short )0xFF28, ( short )0xFF18, ( short )0xFF60, ( short )0x00A0, | ||
217 | ( short )0x01A0, ( short )0x0188, ( short )0x0178, ( short )0x0208, | ||
218 | ( short )0x0208, ( short )0x0100, ( short )0x0018, ( short )0xFFE0, | ||
219 | ( short )0xFEE0, ( short )0xFD68, ( short )0xFD00, ( short )0xFD60, | ||
220 | ( short )0xFD70, ( short )0xFDA8, ( short )0xFF00, ( short )0x00A0, | ||
221 | ( short )0x0170, ( short )0x0210, ( short )0x02D8, ( short )0x0310, | ||
222 | ( short )0x0218, ( short )0x00A0, ( short )0xFFA0, ( short )0xFDF0, | ||
223 | ( short )0xFBD8, ( short )0xFB08, ( short )0xF9C0, ( short )0xF830, | ||
224 | ( short )0xF8D8, ( short )0xFCC0, ( short )0x0038, ( short )0x01A0, | ||
225 | ( short )0x0380, ( short )0x0A18, ( short )0x0F50, ( short )0x0DB0, | ||
226 | ( short )0x0C30, ( short )0x0E18, ( short )0x0CA8, ( short )0x0570, | ||
227 | ( short )0xFF98, ( short )0xFE38, ( short )0xFBA0, ( short )0xF700, | ||
228 | ( short )0xF5D0, ( short )0xF7C8, ( short )0xF9A8, ( short )0xFB48, | ||
229 | ( short )0xFBB0, ( short )0xFC78, ( short )0xFF00, ( short )0xFE98, | ||
230 | ( short )0xFB20, ( short )0xFA48, ( short )0xFAC0, ( short )0xF8C8, | ||
231 | ( short )0xF6E0, ( short )0xF9C0, ( short )0xFE08, ( short )0xFF80, | ||
232 | ( short )0x0428, ( short )0x0B70, ( short )0x0E18, ( short )0x0D38, | ||
233 | ( short )0x0D38, ( short )0x0C28, ( short )0x01D0, ( short )0xF578, | ||
234 | ( short )0xF108, ( short )0xFB50, ( short )0x0498, ( short )0x0428, | ||
235 | ( short )0x0CE8, ( short )0x2190, ( short )0x29F0, ( short )0x22E0, | ||
236 | ( short )0x1F68, ( short )0x2050, ( short )0x1810, ( short )0x0710, | ||
237 | ( short )0xFA98, ( short )0xF438, ( short )0xEE68, ( short )0xE950, | ||
238 | ( short )0xEBC8, ( short )0xF538, ( short )0xFEB8, ( short )0x0240, | ||
239 | ( short )0x0460, ( short )0x09D0, ( short )0x0978, ( short )0xFFF8, | ||
240 | ( short )0xF810, ( short )0xF190, ( short )0xE8D0, ( short )0xE290, | ||
241 | ( short )0xDF60, ( short )0xDFF0, ( short )0xE668, ( short )0xEC20, | ||
242 | ( short )0xF138, ( short )0xFAC0, ( short )0x04F0, ( short )0x08D0, | ||
243 | ( short )0x08C8, ( short )0x0B18, ( short )0x09F8, ( short )0x0230, | ||
244 | ( short )0xFA38, ( short )0xFA68, ( short )0xFC78, ( short )0xF9B8, | ||
245 | ( short )0xF850, ( short )0xFEA8, ( short )0x05B8, ( short )0x0690, | ||
246 | ( short )0x02E8, ( short )0x0268, ( short )0x0498, ( short )0xFCB0, | ||
247 | ( short )0xF018, ( short )0xEDF8, ( short )0x0090, ( short )0x0F48, | ||
248 | ( short )0x0C70, ( short )0x1278, ( short )0x27B8, ( short )0x2EA0, | ||
249 | ( short )0x21F8, ( short )0x1920, ( short )0x1918, ( short )0x1530, | ||
250 | ( short )0x0638, ( short )0xF858, ( short )0xF720, ( short )0xF9F8, | ||
251 | ( short )0xF600, ( short )0xF850, ( short )0x0590, ( short )0x0EE0, | ||
252 | ( short )0x1000, ( short )0x10D8, ( short )0x1460, ( short )0x10F8, | ||
253 | ( short )0x0500, ( short )0xFBC0, ( short )0xF7A8, ( short )0xF250, | ||
254 | ( short )0xEC00, ( short )0xEB30, ( short )0xF1C8, ( short )0xF920, | ||
255 | ( short )0xFC90, ( short )0x0190, ( short )0x0A60, ( short )0x0E80, | ||
256 | ( short )0x0DB0, ( short )0x0AD8, ( short )0x0690, ( short )0x0168, | ||
257 | ( short )0xFF20, ( short )0xFBD0, ( short )0xF6F8, ( short )0xF660, | ||
258 | ( short )0xF680, ( short )0xF5B0, ( short )0xF7C0, ( short )0xF120, | ||
259 | ( short )0xEA90, ( short )0xF030, ( short )0xEC18, ( short )0xE190, | ||
260 | ( short )0xE558, ( short )0xFF20, ( short )0x1090, ( short )0x0C50, | ||
261 | ( short )0x1248, ( short )0x2788, ( short )0x2AD0, ( short )0x1628, | ||
262 | ( short )0x08F0, ( short )0x0BA8, ( short )0x0538, ( short )0xEF48, | ||
263 | ( short )0xE410, ( short )0xEB10, ( short )0xEF68, ( short )0xEA28, | ||
264 | ( short )0xEC40, ( short )0xFC18, ( short )0x08A8, ( short )0x0818, | ||
265 | ( short )0x0778, ( short )0x0858, ( short )0x02F8, ( short )0xF8E8, | ||
266 | ( short )0xF1F0, ( short )0xEF40, ( short )0xECD0, ( short )0xE958, | ||
267 | ( short )0xEA70, ( short )0xF260, ( short )0xFAF0, ( short )0xFFA0, | ||
268 | ( short )0x04A0, ( short )0x0CF8, ( short )0x10F8, ( short )0x0EA0, | ||
269 | ( short )0x0D48, ( short )0x0BE8, ( short )0x05E0, ( short )0x03B0, | ||
270 | ( short )0x0358, ( short )0xFF18, ( short )0xFB40, ( short )0xF9B0, | ||
271 | ( short )0xF9C0, ( short )0xF7C0, ( short )0xEE90, ( short )0xEAA0, | ||
272 | ( short )0xEE00, ( short )0xE888, ( short )0xE200, ( short )0xEF00, | ||
273 | ( short )0x0948, ( short )0x1400, ( short )0x1270, ( short )0x1D88, | ||
274 | ( short )0x2CD8, ( short )0x2488, ( short )0x0DA8, ( short )0x04B8, | ||
275 | ( short )0x0548, ( short )0xF7B0, ( short )0xE3F0, ( short )0xE268, | ||
276 | ( short )0xEFF8, ( short )0xF5A0, ( short )0xF320, ( short )0xFC68, | ||
277 | ( short )0x0BF0, ( short )0x0FA0, ( short )0x0A50, ( short )0x01F8, | ||
278 | ( short )0xFE60, ( short )0xFC48, ( short )0xF340, ( short )0xEB28, | ||
279 | ( short )0xED58, ( short )0xF3C0, ( short )0xF5B8, ( short )0xF738, | ||
280 | ( short )0x00F8, ( short )0x0C70, ( short )0x0E90, ( short )0x0DE8, | ||
281 | ( short )0x1190, ( short )0x12B0, ( short )0x1058, ( short )0x0B98, | ||
282 | ( short )0x0638, ( short )0x0868, ( short )0x0998, ( short )0x02B0, | ||
283 | ( short )0xFE50, ( short )0x0120, ( short )0x02A0, ( short )0xFC90, | ||
284 | ( short )0xF810, ( short )0xF9D0, ( short )0xF818, ( short )0xF290, | ||
285 | ( short )0xF240, ( short )0xF6D0, ( short )0x0A48, ( short )0x1AD8, | ||
286 | ( short )0x1840, ( short )0x1C18, ( short )0x2B18, ( short )0x29F0, | ||
287 | ( short )0x1608, ( short )0x08B8, ( short )0x0778, ( short )0x0128, | ||
288 | ( short )0xF118, ( short )0xE868, ( short )0xEDA0, ( short )0xF310, | ||
289 | ( short )0xF248, ( short )0xF558, ( short )0x0058, ( short )0x0970, | ||
290 | ( short )0x0688, ( short )0x0108, ( short )0xFD08, ( short )0xF988, | ||
291 | ( short )0xF558, ( short )0xF0A0, ( short )0xF0B0, ( short )0xF540, | ||
292 | ( short )0xF6E8, ( short )0xFCA0, ( short )0x0758, ( short )0x0CD0, | ||
293 | ( short )0x0F60, ( short )0x1338, ( short )0x1458, ( short )0x1278, | ||
294 | ( short )0x0FD0, ( short )0x0CA8, ( short )0x0D50, ( short )0x0D10, | ||
295 | ( short )0x0798, ( short )0x0398, ( short )0x0428, ( short )0x04F0, | ||
296 | ( short )0x0278, ( short )0xFF98, ( short )0x0178, ( short )0x0088, | ||
297 | ( short )0xFB08, ( short )0xF660, ( short )0xF1A8, ( short )0xEF18, | ||
298 | ( short )0xF9E8, ( short )0x0C00, ( short )0x11C8, ( short )0x1260, | ||
299 | ( short )0x1B60, ( short )0x21B0, ( short )0x18E0, ( short )0x0B08, | ||
300 | ( short )0x04C8, ( short )0x0078, ( short )0xF730, ( short )0xEF60, | ||
301 | ( short )0xEB18, ( short )0xEC10, ( short )0xF290, ( short )0xF800, | ||
302 | ( short )0xFB60, ( short )0xFF60, ( short )0x0080, ( short )0xFFA8, | ||
303 | ( short )0xFB08, ( short )0xF1A8, ( short )0xED10, ( short )0xEFF0, | ||
304 | ( short )0xEED0, ( short )0xEB10, ( short )0xEFE8, ( short )0xF8F0, | ||
305 | ( short )0xFDE0, ( short )0x0298, ( short )0x0528, ( short )0x0598, | ||
306 | ( short )0x0928, ( short )0x0A30, ( short )0x0670, ( short )0x08E8, | ||
307 | ( short )0x0BC0, ( short )0x0698, ( short )0x0210, ( short )0x0390, | ||
308 | ( short )0x0560, ( short )0x0288, ( short )0xF910, ( short )0xF468, | ||
309 | ( short )0xF560, ( short )0xF3E0, ( short )0xEE10, ( short )0xE8B0, | ||
310 | ( short )0xE508, ( short )0xEED0, ( short )0x03E0, ( short )0x0638, | ||
311 | ( short )0xFFA8, ( short )0x0BB8, ( short )0x2078, ( short )0x1FA8, | ||
312 | ( short )0x0EF0, ( short )0x0648, ( short )0x05C8, ( short )0xFF18, | ||
313 | ( short )0xF588, ( short )0xEE20, ( short )0xED88, ( short )0xF5A0, | ||
314 | ( short )0xFBA8, ( short )0xFBC0, ( short )0xFA98, ( short )0xFA20, | ||
315 | ( short )0xF7D8, ( short )0xF2D0, ( short )0xEF48, ( short )0xE998, | ||
316 | ( short )0xE378, ( short )0xE530, ( short )0xE868, ( short )0xE890, | ||
317 | ( short )0xEDD0, ( short )0xF798, ( short )0xFBC0, ( short )0xFD20, | ||
318 | ( short )0x0178, ( short )0x0490, ( short )0x04A0, ( short )0x0758, | ||
319 | ( short )0x0858, ( short )0x0490, ( short )0x04F8, ( short )0x0858, | ||
320 | ( short )0x06F0, ( short )0x05F8, ( short )0x0450, ( short )0x0098, | ||
321 | ( short )0xFE60, ( short )0xFDA0, ( short )0xF9E0, ( short )0xF358, | ||
322 | ( short )0xEDC0, ( short )0xF308, ( short )0xFFE0, ( short )0x0018, | ||
323 | ( short )0xFB80, ( short )0x0948, ( short )0x1DB8, ( short )0x1D08, | ||
324 | ( short )0x0F88, ( short )0x0B48, ( short )0x0C50, ( short )0x09C0, | ||
325 | ( short )0xFF78, ( short )0xF1A0, ( short )0xEF28, ( short )0xF6B8, | ||
326 | ( short )0xF9F0, ( short )0xF6F0, ( short )0xF688, ( short )0xF9E0, | ||
327 | ( short )0xF9C0, ( short )0xF4C8, ( short )0xEBD8, ( short )0xE7E8, | ||
328 | ( short )0xEBE0, ( short )0xE8C8, ( short )0xE100, ( short )0xE518, | ||
329 | ( short )0xF0B8, ( short )0xF728, ( short )0xF770, ( short )0xF878, | ||
330 | ( short )0xFF58, ( short )0x06B0, ( short )0x0430, ( short )0x0060, | ||
331 | ( short )0x0390, ( short )0x0A18, ( short )0x0B98, ( short )0x06C8, | ||
332 | ( short )0x0710, ( short )0x0CF0, ( short )0x08D0, ( short )0x01F8, | ||
333 | ( short )0x0280, ( short )0x0238, ( short )0xFD78, ( short )0xF868, | ||
334 | ( short )0xF198, ( short )0xF670, ( short )0x0930, ( short )0x0A78, | ||
335 | ( short )0xFB38, ( short )0x04F0, ( short )0x1EB8, ( short )0x1E98, | ||
336 | ( short )0x0F68, ( short )0x0EC8, ( short )0x1548, ( short )0x1480, | ||
337 | ( short )0x0C60, ( short )0x00B0, ( short )0xFEF8, ( short )0x0830, | ||
338 | ( short )0x0838, ( short )0x0160, ( short )0x0380, ( short )0x07E8, | ||
339 | ( short )0x0270, ( short )0xFBA0, ( short )0xF9C0, ( short )0xF450, | ||
340 | ( short )0xEE08, ( short )0xED08, ( short )0xEE10, ( short )0xEF20, | ||
341 | ( short )0xF1C0, ( short )0xF800, ( short )0xFE70, ( short )0x00B0, | ||
342 | ( short )0x02D8, ( short )0x07C8, ( short )0x09F0, ( short )0x09A8, | ||
343 | ( short )0x0A60, ( short )0x0B28, ( short )0x0C80, ( short )0x0D58, | ||
344 | ( short )0x0BD0, ( short )0x0A48, ( short )0x0900, ( short )0x0768, | ||
345 | ( short )0x03D0, ( short )0x00E0, ( short )0xFFF8, ( short )0xFBD8, | ||
346 | ( short )0xF5E8, ( short )0xFE18, ( short )0x0FE8, ( short )0x1060, | ||
347 | ( short )0x05C8, ( short )0x1078, ( short )0x2638, ( short )0x2580, | ||
348 | ( short )0x1740, ( short )0x14E8, ( short )0x19D0, ( short )0x17D8, | ||
349 | ( short )0x0E10, ( short )0x0270, ( short )0x0120, ( short )0x0900, | ||
350 | ( short )0x0870, ( short )0x0290, ( short )0x03A0, ( short )0x0600, | ||
351 | ( short )0x0100, ( short )0xFE28, ( short )0xFF28, ( short )0xF838, | ||
352 | ( short )0xF0B8, ( short )0xF238, ( short )0xF530, ( short )0xF440, | ||
353 | ( short )0xF440, ( short )0xFA38, ( short )0x0198, ( short )0x03A8, | ||
354 | ( short )0x03D0, ( short )0x0780, ( short )0x0AB8, ( short )0x0B58, | ||
355 | ( short )0x0B10, ( short )0x0AD8, ( short )0x0A08, ( short )0x0878, | ||
356 | ( short )0x07C8, ( short )0x0648, ( short )0x01A0, ( short )0xFF48, | ||
357 | ( short )0xFE58, ( short )0xFA68, ( short )0xF7D0, ( short )0xF758, | ||
358 | ( short )0xF470, ( short )0xF5B0, ( short )0x02A8, ( short )0x0A58, | ||
359 | ( short )0x0448, ( short )0x07C8, ( short )0x1708, ( short )0x1970, | ||
360 | ( short )0x0EC8, ( short )0x0A40, ( short )0x0CD0, ( short )0x0D28, | ||
361 | ( short )0x0838, ( short )0x0010, ( short )0xFAE0, ( short )0xFCB0, | ||
362 | ( short )0xFEB8, ( short )0xFCE8, ( short )0xFBA8, ( short )0xFD10, | ||
363 | ( short )0xFBC8, ( short )0xF910, ( short )0xF960, ( short )0xF830, | ||
364 | ( short )0xF4D8, ( short )0xF500, ( short )0xF860, ( short )0xF9F0, | ||
365 | ( short )0xFB58, ( short )0xFE48, ( short )0x0050, ( short )0x0418, | ||
366 | ( short )0x0910, ( short )0x0940, ( short )0x0830, ( short )0x0AC8, | ||
367 | ( short )0x0C88, ( short )0x0A50, ( short )0x07C0, ( short )0x0700, | ||
368 | ( short )0x0590, ( short )0x0268, ( short )0xFFF0, ( short )0xFBA8, | ||
369 | ( short )0xF720, ( short )0xF698, ( short )0xF2E0, ( short )0xEB68, | ||
370 | ( short )0xEDA0, ( short )0xFC00, ( short )0x0358, ( short )0xFF30, | ||
371 | ( short )0x0398, ( short )0x1220, ( short )0x1860, ( short )0x1368, | ||
372 | ( short )0x10C0, ( short )0x12F0, ( short )0x12A0, ( short )0x0E08, | ||
373 | ( short )0x0780, ( short )0x0010, ( short )0xFAD8, ( short )0xF990, | ||
374 | ( short )0xF7E0, ( short )0xF278, ( short )0xEE10, ( short )0xEB98, | ||
375 | ( short )0xE7A0, ( short )0xE6F8, ( short )0xEA30, ( short )0xE980, | ||
376 | ( short )0xE420, ( short )0xE440, ( short )0xEBA8, ( short )0xEF98, | ||
377 | ( short )0xEF68, ( short )0xF288, ( short )0xF7A8, ( short )0xFC90, | ||
378 | ( short )0x01F8, ( short )0x0528, ( short )0x0630, ( short )0x08E8, | ||
379 | ( short )0x0C98, ( short )0x0D50, ( short )0x0B98, ( short )0x0920, | ||
380 | ( short )0x0678, ( short )0x03F0, ( short )0x0260, ( short )0xFE00, | ||
381 | ( short )0xF810, ( short )0xF4B8, ( short )0xF0C0, ( short )0xEB68, | ||
382 | ( short )0xEF58, ( short )0xFAE8, ( short )0xFDE0, ( short )0xF680, | ||
383 | ( short )0xF910, ( short )0x06E0, ( short )0x0C20, ( short )0x05D8, | ||
384 | ( short )0x0408, ( short )0x05C8, ( short )0x0450, ( short )0x02D0, | ||
385 | ( short )0x0128, ( short )0xFB78, ( short )0xF668, ( short )0xF430, | ||
386 | ( short )0xF150, ( short )0xED90, ( short )0xE870, ( short )0xE448, | ||
387 | ( short )0xE2E0, ( short )0xE048, ( short )0xDDD0, ( short )0xDF08, | ||
388 | ( short )0xE0E0, ( short )0xE098, ( short )0xE258, ( short )0xE520, | ||
389 | ( short )0xE6A8, ( short )0xEA28, ( short )0xEF88, ( short )0xF2A8, | ||
390 | ( short )0xF548, ( short )0xFBA8, ( short )0x01C8, ( short )0x03F8, | ||
391 | ( short )0x0748, ( short )0x0C88, ( short )0x0E98, ( short )0x0DB8, | ||
392 | ( short )0x0D98, ( short )0x0D50, ( short )0x0B68, ( short )0x0970, | ||
393 | ( short )0x06C0, ( short )0x0238, ( short )0xFE18, ( short )0xFB08, | ||
394 | ( short )0xF820, ( short )0xF780, ( short )0xF970, ( short )0xF9B0, | ||
395 | ( short )0xF880, ( short )0xFA28, ( short )0x0028, ( short )0x0698, | ||
396 | ( short )0x0948, ( short )0x08D0, ( short )0x09E0, ( short )0x0DD0, | ||
397 | ( short )0x1010, ( short )0x0D40, ( short )0x0958, ( short )0x0728, | ||
398 | ( short )0x0308, ( short )0xFDA0, ( short )0xF9F8, ( short )0xF418, | ||
399 | ( short )0xEC98, ( short )0xE8B8, ( short )0xE618, ( short )0xE200, | ||
400 | ( short )0xDED0, ( short )0xDF48, ( short )0xE100, ( short )0xE180, | ||
401 | ( short )0xE160, ( short )0xE3C8, ( short )0xE898, ( short )0xEDD8, | ||
402 | ( short )0xF250, ( short )0xF558, ( short )0xFB00, ( short )0x02F8, | ||
403 | ( short )0x07B0, ( short )0x0B80, ( short )0x1108, ( short )0x1518, | ||
404 | ( short )0x1660, ( short )0x1770, ( short )0x1870, ( short )0x16F8, | ||
405 | ( short )0x1300, ( short )0x0F78, ( short )0x0FC0, ( short )0x1070, | ||
406 | ( short )0x0CE8, ( short )0x0AF8, ( short )0x0BD8, ( short )0x0D28, | ||
407 | ( short )0x10A8, ( short )0x1370, ( short )0x10A0, ( short )0x1040, | ||
408 | ( short )0x1518, ( short )0x1740, ( short )0x1550, ( short )0x1398, | ||
409 | ( short )0x10E0, ( short )0x0AC8, ( short )0x0640, ( short )0x0348, | ||
410 | ( short )0xFD18, ( short )0xF658, ( short )0xF1D8, ( short )0xEC20, | ||
411 | ( short )0xE760, ( short )0xE550, ( short )0xE4B8, ( short )0xE418, | ||
412 | ( short )0xE438, ( short )0xE508, ( short )0xE738, ( short )0xEB18, | ||
413 | ( short )0xF0C8, ( short )0xF618, ( short )0xF988, ( short )0xFEC8, | ||
414 | ( short )0x0518, ( short )0x09D8, ( short )0x1118, ( short )0x17F0, | ||
415 | ( short )0x1BB0, ( short )0x1E28, ( short )0x2120, ( short )0x23D8, | ||
416 | ( short )0x2638, ( short )0x2418, ( short )0x2080, ( short )0x1D30, | ||
417 | ( short )0x1CE8, ( short )0x1D98, ( short )0x1CA8, ( short )0x1AD8, | ||
418 | ( short )0x1960, ( short )0x17F8, ( short )0x1A40, ( short )0x1CF8, | ||
419 | ( short )0x1D38, ( short )0x1C30, ( short )0x1A68, ( short )0x1860, | ||
420 | ( short )0x1480, ( short )0x1020, ( short )0x0B68, ( short )0x03E8, | ||
421 | ( short )0xFBA8, ( short )0xF508, ( short )0xEE40, ( short )0xE820, | ||
422 | ( short )0xE338, ( short )0xDE88, ( short )0xDA30, ( short )0xD7D0, | ||
423 | ( short )0xD728, ( short )0xD7D8, ( short )0xD998, ( short )0xDC10, | ||
424 | ( short )0xDFB0, ( short )0xE470, ( short )0xE948, ( short )0xEF98, | ||
425 | ( short )0xF5F0, ( short )0xFC38, ( short )0x0228, ( short )0x0798, | ||
426 | ( short )0x0D98, ( short )0x1320, ( short )0x1760, ( short )0x1A70, | ||
427 | ( short )0x1BE0, ( short )0x1CC0, ( short )0x1D98, ( short )0x1A88, | ||
428 | ( short )0x1658, ( short )0x12A0, ( short )0x1180, ( short )0x10A8, | ||
429 | ( short )0x0ED0, ( short )0x0CC8, ( short )0x0AD8, ( short )0x0920, | ||
430 | ( short )0x0B70, ( short )0x0E30, ( short )0x0EE8, ( short )0x0D80, | ||
431 | ( short )0x0BE0, ( short )0x0AC0, ( short )0x09B8, ( short )0x0890, | ||
432 | ( short )0x0690, ( short )0x01F8, ( short )0xFD30, ( short )0xF9F0, | ||
433 | ( short )0xF5B0, ( short )0xF188, ( short )0xEE38, ( short )0xE9E8, | ||
434 | ( short )0xE5E8, ( short )0xE3E0, ( short )0xE4A0, ( short )0xE608, | ||
435 | ( short )0xE738, ( short )0xE858, ( short )0xE980, ( short )0xEC20, | ||
436 | ( short )0xF030, ( short )0xF450, ( short )0xF878, ( short )0xFC68, | ||
437 | ( short )0xFF68, ( short )0x03C8, ( short )0x08B8, ( short )0x0D00, | ||
438 | ( short )0x1038, ( short )0x12D8, ( short )0x1490, ( short )0x1648, | ||
439 | ( short )0x16B8, ( short )0x1468, ( short )0x1160, ( short )0x0FA8, | ||
440 | ( short )0x1038, ( short )0x1058, ( short )0x0F88, ( short )0x0E50, | ||
441 | ( short )0x0CC8, ( short )0x0CC0, ( short )0x0FC0, ( short )0x1220, | ||
442 | ( short )0x12A0, ( short )0x10F8, ( short )0x0F20, ( short )0x0D28, | ||
443 | ( short )0x0C78, ( short )0x0BB8, ( short )0x08D0, ( short )0x01C8, | ||
444 | ( short )0xFB38, ( short )0xF660, ( short )0xF330, ( short )0xF078, | ||
445 | ( short )0xEC28, ( short )0xE6C8, ( short )0xE2C0, ( short )0xE050, | ||
446 | ( short )0xDFC8, ( short )0xE038, ( short )0xE160, ( short )0xE300, | ||
447 | ( short )0xE568, ( short )0xE6B8, ( short )0xE9A0, ( short )0xED50, | ||
448 | ( short )0xF238, ( short )0xF6D8, ( short )0xFB08, ( short )0xFF10, | ||
449 | ( short )0x02E8, ( short )0x06A0, ( short )0x0AC0, ( short )0x0DC8, | ||
450 | ( short )0x1010, ( short )0x1168, ( short )0x1018, ( short )0x0E90, | ||
451 | ( short )0x0BF8, ( short )0x0B08, ( short )0x0A50, ( short )0x09F0, | ||
452 | ( short )0x0960, ( short )0x0888, ( short )0x0808, ( short )0x09C8, | ||
453 | ( short )0x0BA8, ( short )0x0EE8, ( short )0x1070, ( short )0x10D0, | ||
454 | ( short )0x0F58, ( short )0x0D60, ( short )0x0BA0, ( short )0x0A60, | ||
455 | ( short )0x08F0, ( short )0x0608, ( short )0xFFB0, ( short )0xF938, | ||
456 | ( short )0xF360, ( short )0xF030, ( short )0xEE20, ( short )0xEB70, | ||
457 | ( short )0xE7A8, ( short )0xE410, ( short )0xE140, ( short )0xDFC8, | ||
458 | ( short )0xDFF8, ( short )0xE1F0, ( short )0xE448, ( short )0xE6D0, | ||
459 | ( short )0xE780, ( short )0xE9E8, ( short )0xECF0, ( short )0xF248, | ||
460 | ( short )0xF730, ( short )0xFBC0, ( short )0xFF80, ( short )0x0310, | ||
461 | ( short )0x0670, ( short )0x0A98, ( short )0x0D88, ( short )0x0FD8, | ||
462 | ( short )0x10C0, ( short )0x0EB0, ( short )0x0C48, ( short )0x08B8, | ||
463 | ( short )0x0998, ( short )0x0AC0, ( short )0x0C68, ( short )0x0B78, | ||
464 | ( short )0x09C8, ( short )0x0838, ( short )0x08F8, ( short )0x0A80, | ||
465 | ( short )0x0CA0, ( short )0x0E10, ( short )0x0E48, ( short )0x0D58, | ||
466 | ( short )0x0A28, ( short )0x0750, ( short )0x04F0, ( short )0x0228, | ||
467 | ( short )0xFEE8, ( short )0xFA80, ( short )0xF468, ( short )0xEED0, | ||
468 | ( short )0xEAE0, ( short )0xE8B8, ( short )0xE718, ( short )0xE5B0, | ||
469 | ( short )0xE4A8, ( short )0xE410, ( short )0xE480, ( short )0xE548, | ||
470 | ( short )0xE738, ( short )0xE9B0, ( short )0xED80, ( short )0xF0B8, | ||
471 | ( short )0xF480, ( short )0xF7B0, ( short )0xFB70, ( short )0xFED0, | ||
472 | ( short )0x0328, ( short )0x0720, ( short )0x0A98, ( short )0x0E00, | ||
473 | ( short )0x10F8, ( short )0x12E0, ( short )0x12A8, ( short )0x11B0, | ||
474 | ( short )0x0F58, ( short )0x0F38, ( short )0x0E88, ( short )0x0F08, | ||
475 | ( short )0x0FC0, ( short )0x0FF0, ( short )0x10B8, ( short )0x1138, | ||
476 | ( short )0x1198, ( short )0x13D0, ( short )0x1638, ( short )0x17E8, | ||
477 | ( short )0x1758, ( short )0x1628, ( short )0x1460, ( short )0x10E8, | ||
478 | ( short )0x0CA0, ( short )0x0848, ( short )0x0280, ( short )0xFC90, | ||
479 | ( short )0xF700, ( short )0xF0F8, ( short )0xEB18, ( short )0xE638, | ||
480 | ( short )0xE1B8, ( short )0xDE78, ( short )0xDC58, ( short )0xDBB8, | ||
481 | ( short )0xDC28, ( short )0xDDB0, ( short )0xE030, ( short )0xE330, | ||
482 | ( short )0xE6F0, ( short )0xEC20, ( short )0xF210, ( short )0xF7C0, | ||
483 | ( short )0xFCE0, ( short )0x0150, ( short )0x0570, ( short )0x08F0, | ||
484 | ( short )0x0C70, ( short )0x0F50, ( short )0x12B8, ( short )0x1560, | ||
485 | ( short )0x16E0, ( short )0x1630, ( short )0x14E8, ( short )0x1298, | ||
486 | ( short )0x11B8, ( short )0x1170, ( short )0x11B8, ( short )0x11C0, | ||
487 | ( short )0x0FE8, ( short )0x0E58, ( short )0x0CB8, ( short )0x0C50, | ||
488 | ( short )0x0D68, ( short )0x0E98, ( short )0x0E30, ( short )0x0C28, | ||
489 | ( short )0x0A10, ( short )0x06D8, ( short )0x02E0, ( short )0xFEA0, | ||
490 | ( short )0xFA18, ( short )0xF4E8, ( short )0xF018, ( short )0xEB68, | ||
491 | ( short )0xE6E8, ( short )0xE310, ( short )0xDFC8, ( short )0xDD38, | ||
492 | ( short )0xDBF8, ( short )0xDC38, ( short )0xDDD0, ( short )0xE070, | ||
493 | ( short )0xE390, ( short )0xE760, ( short )0xEB88, ( short )0xEF20, | ||
494 | ( short )0xF378, ( short )0xF830, ( short )0xFCE0, ( short )0x00F8, | ||
495 | ( short )0x0480, ( short )0x0768, ( short )0x0968, ( short )0x0AE0, | ||
496 | ( short )0x0BB8, ( short )0x0C10, ( short )0x0BB0, ( short )0x0A78, | ||
497 | ( short )0x08E0, ( short )0x06E8, ( short )0x0540, ( short )0x0870, | ||
498 | ( short )0x0BE0, ( short )0x0ED0, ( short )0x0E40, ( short )0x0D10, | ||
499 | ( short )0x0CC8, ( short )0x0E28, ( short )0x0FA0, ( short )0x0FB0, | ||
500 | ( short )0x0F18, ( short )0x0DD0, ( short )0x0BC8, ( short )0x08E8, | ||
501 | ( short )0x0628, ( short )0x0300, ( short )0xFF18, ( short )0xFB40, | ||
502 | ( short )0xF780, ( short )0xF388, ( short )0xF028, ( short )0xED80, | ||
503 | ( short )0xEB18, ( short )0xE968, ( short )0xE8C0, ( short )0xE738, | ||
504 | ( short )0xE658, ( short )0xE698, ( short )0xE888, ( short )0xEB38, | ||
505 | ( short )0xEDA0, ( short )0xF178, ( short )0xF5B8, ( short )0xFA28, | ||
506 | ( short )0xFEA8, ( short )0x0300, ( short )0x06C8, ( short )0x0960, | ||
507 | ( short )0x0B70, ( short )0x0CE0, ( short )0x0D70, ( short )0x0D50, | ||
508 | ( short )0x0C60, ( short )0x0890, ( short )0x0418, ( short )0x0028, | ||
509 | ( short )0x01D0, ( short )0x03F8, ( short )0x05A8, ( short )0x0700, | ||
510 | ( short )0x0808, ( short )0x09A0, ( short )0x0B18, ( short )0x0CC8, | ||
511 | ( short )0x0D90, ( short )0x0E68, ( short )0x0EC0, ( short )0x0E30, | ||
512 | ( short )0x0C28, ( short )0x09D8, ( short )0x0730, ( short )0x0308, | ||
513 | ( short )0xFED8, ( short )0xFAC0, ( short )0xF598, ( short )0xF0D8, | ||
514 | ( short )0xECE0, ( short )0xEAA8, ( short )0xE948, ( short )0xE8D0, | ||
515 | ( short )0xE850, ( short )0xE888, ( short )0xE910, ( short )0xEAD0, | ||
516 | ( short )0xED68, ( short )0xF018, ( short )0xF350, ( short )0xF6B8, | ||
517 | ( short )0xFAE0, ( short )0xFF00, ( short )0x02D8, ( short )0x05E8, | ||
518 | ( short )0x0830, ( short )0x09F8, ( short )0x0B08, ( short )0x0B80, | ||
519 | ( short )0x0B60, ( short )0x0988, ( short )0x0648, ( short )0x02D0, | ||
520 | ( short )0x0150, ( short )0x01E8, ( short )0x0270, ( short )0x03E0, | ||
521 | ( short )0x0538, ( short )0x0658, ( short )0x0918, ( short )0x0C00, | ||
522 | ( short )0x0E88, ( short )0x10B8, ( short )0x12A0, ( short )0x13E0, | ||
523 | ( short )0x1488, ( short )0x1448, ( short )0x1368, ( short )0x1120, | ||
524 | ( short )0x0DD0, ( short )0x0A40, ( short )0x0608, ( short )0x0148, | ||
525 | ( short )0xFC80, ( short )0xF860, ( short )0xF4D8, ( short )0xF1C0, | ||
526 | ( short )0xF008, ( short )0xEF38, ( short )0xEE78, ( short )0xEE98, | ||
527 | ( short )0xEF90, ( short )0xF170, ( short )0xF390, ( short )0xF5C0, | ||
528 | ( short )0xF888, ( short )0xFB48, ( short )0xFDF0, ( short )0x0078, | ||
529 | ( short )0x03D0, ( short )0x06C8, ( short )0x08F8, ( short )0x0AA0, | ||
530 | ( short )0x0BC8, ( short )0x0C48, ( short )0x0B30, ( short )0x0978, | ||
531 | ( short )0x06A8, ( short )0x0530, ( short )0x03F0, ( short )0x0438, | ||
532 | ( short )0x03C0, ( short )0x0350, ( short )0x0360, ( short )0x04E8, | ||
533 | ( short )0x0698, ( short )0x07D0, ( short )0x08D0, ( short )0x0998, | ||
534 | ( short )0x0A70, ( short )0x0B48, ( short )0x0B70, ( short )0x0AD0, | ||
535 | ( short )0x09C0, ( short )0x0890, ( short )0x0730, ( short )0x0588, | ||
536 | ( short )0x0358, ( short )0x0140, ( short )0xFF58, ( short )0xFD40, | ||
537 | ( short )0xFB68, ( short )0xF9E8, ( short )0xF828, ( short )0xF6D0, | ||
538 | ( short )0xF608, ( short )0xF5D8, ( short )0xF610, ( short )0xF668, | ||
539 | ( short )0xF778, ( short )0xF8E8, ( short )0xFA48, ( short )0xFCC8, | ||
540 | ( short )0xFF50, ( short )0x01C8, ( short )0x0428, ( short )0x0640, | ||
541 | ( short )0x07D0, ( short )0x09D0, ( short )0x0B40, ( short )0x0BF8, | ||
542 | ( short )0x0C30, ( short )0x0C08, ( short )0x0B08, ( short )0x0988, | ||
543 | ( short )0x07C0, ( short )0x0670, ( short )0x0608, ( short )0x0590, | ||
544 | ( short )0x0588, ( short )0x05B0, ( short )0x05E0, ( short )0x06B8, | ||
545 | ( short )0x0748, ( short )0x0758, ( short )0x0700, ( short )0x06A8, | ||
546 | ( short )0x0620, ( short )0x05D8, ( short )0x0590, ( short )0x0528, | ||
547 | ( short )0x03A8, ( short )0x0240, ( short )0x0108, ( short )0xFF38, | ||
548 | ( short )0xFD50, ( short )0xFBA0, ( short )0xFA38, ( short )0xF920, | ||
549 | ( short )0xF860, ( short )0xF6E8, ( short )0xF640, ( short )0xF628, | ||
550 | ( short )0xF680, ( short )0xF720, ( short )0xF800, ( short )0xF8E0, | ||
551 | ( short )0xF9A0, ( short )0xFA78, ( short )0xFB88, ( short )0xFD20, | ||
552 | ( short )0xFEA0, ( short )0x0008, ( short )0x0110, ( short )0x0200, | ||
553 | ( short )0x0360, ( short )0x04E0, ( short )0x0608, ( short )0x0738, | ||
554 | ( short )0x0838, ( short )0x08D8, ( short )0x0828, ( short )0x0738, | ||
555 | ( short )0x0600, ( short )0x04A8, ( short )0x02E0, ( short )0x0130, | ||
556 | ( short )0xFFA0, ( short )0xFF48, ( short )0xFF10, ( short )0xFEF0, | ||
557 | ( short )0xFF30, ( short )0xFFD0, ( short )0x0090, ( short )0x0090, | ||
558 | ( short )0x0070, ( short )0x0060, ( short )0xFFE8, ( short )0xFF50, | ||
559 | ( short )0xFEB8, ( short )0xFE98, ( short )0xFE88, ( short )0xFE80, | ||
560 | ( short )0xFE58, ( short )0xFE50, ( short )0xFE58, ( short )0xFDB0, | ||
561 | ( short )0xFD08, ( short )0xFC80, ( short )0xFAF8, ( short )0xF988, | ||
562 | ( short )0xF860, ( short )0xF798, ( short )0xF720, ( short )0xF6E8, | ||
563 | ( short )0xF728, ( short )0xF7C0, ( short )0xF8A8, ( short )0xF8F8, | ||
564 | ( short )0xF960, ( short )0xFA18, ( short )0xFAC0, ( short )0xFB58, | ||
565 | ( short )0xFC18, ( short )0xFCE0, ( short )0xFDA0, ( short )0xFE20, | ||
566 | ( short )0xFE88, ( short )0xFEF8, ( short )0xFEF0, ( short )0xFEC8, | ||
567 | ( short )0xFEA8, ( short )0xFDE0, ( short )0xFD10, ( short )0xFC70, | ||
568 | ( short )0xFBA8, ( short )0xFB10, ( short )0xFAB8, ( short )0xFAA0, | ||
569 | ( short )0xFAD0, ( short )0xFB18, ( short )0xFA90, ( short )0xFA18, | ||
570 | ( short )0xFA10, ( short )0xFA80, ( short )0xFB10, ( short )0xFB88, | ||
571 | ( short )0xFC90, ( short )0xFDB8, ( short )0xFEB8, ( short )0xFF80, | ||
572 | ( short )0x0058, ( short )0x0138, ( short )0x0118, ( short )0x00C8, | ||
573 | ( short )0x00C0, ( short )0xFF98, ( short )0xFE30, ( short )0xFD38, | ||
574 | ( short )0xFC68, ( short )0xFB78, ( short )0xFAB8, ( short )0xFAE8, | ||
575 | ( short )0xFB78, ( short )0xFBD0, ( short )0xFBE8, ( short )0xFC18, | ||
576 | ( short )0xFC98, ( short )0xFD28, ( short )0xFD48, ( short )0xFD68, | ||
577 | ( short )0xFD68, ( short )0xFD90, ( short )0xFDB8, ( short )0xFD90, | ||
578 | ( short )0xFD68, ( short )0xFD78, ( short )0xFCA0, ( short )0xFB70, | ||
579 | ( short )0xFAD0, ( short )0xF9F0, ( short )0xF870, ( short )0xF748, | ||
580 | ( short )0xF748, ( short )0xF770, ( short )0xF748, ( short )0xF720, | ||
581 | ( short )0xF7A8, ( short )0xF878, ( short )0xF930, ( short )0xF998, | ||
582 | ( short )0xFA38, ( short )0xFC10, ( short )0xFDA0, ( short )0xFE70, | ||
583 | ( short )0x0030, ( short )0x0248, ( short )0x03A0, ( short )0x0568, | ||
584 | ( short )0x0738, ( short )0x0870, ( short )0x0960, ( short )0x0A10, | ||
585 | ( short )0x0A40, ( short )0x0A28, ( short )0x09B8, ( short )0x08E8, | ||
586 | ( short )0x07E8, ( short )0x06E0, ( short )0x0588, ( short )0x0430, | ||
587 | ( short )0x0300, ( short )0x0260, ( short )0x01D0, ( short )0x0118, | ||
588 | ( short )0xFFB0, ( short )0xFE98, ( short )0xFE18, ( short )0xFDA0, | ||
589 | ( short )0xFD08, ( short )0xFCB8, ( short )0xFCF8, ( short )0xFD60, | ||
590 | ( short )0xFD90, ( short )0xFD90, ( short )0xFDD8, ( short )0xFE50, | ||
591 | ( short )0xFDA0, ( short )0xFCE0, ( short )0xFCC0, ( short )0xFCE8, | ||
592 | ( short )0xFCB0, ( short )0xFC60, ( short )0xFC70, ( short )0xFCB8, | ||
593 | ( short )0xFCE0, ( short )0xFD40, ( short )0xFDD8, ( short )0xFE68, | ||
594 | ( short )0xFF78, ( short )0x0068, ( short )0x0108, ( short )0x0278, | ||
595 | ( short )0x03A0, ( short )0x0420, ( short )0x0590, ( short )0x0708, | ||
596 | ( short )0x07B8, ( short )0x07D8, ( short )0x0808, ( short )0x0838, | ||
597 | ( short )0x07D8, ( short )0x06E8, ( short )0x0600, ( short )0x05B0, | ||
598 | ( short )0x0518, ( short )0x0410, ( short )0x02A0, ( short )0x0198, | ||
599 | ( short )0x00D0, ( short )0x00C8, ( short )0x00B0, ( short )0x0068, | ||
600 | ( short )0x00C0, ( short )0x0150, ( short )0x0180, ( short )0x0220, | ||
601 | ( short )0x02D8, ( short )0x0340, ( short )0x0360, ( short )0x0380, | ||
602 | ( short )0x0380, ( short )0x0338, ( short )0x02C8, ( short )0x02B8, | ||
603 | ( short )0x0280, ( short )0x0200, ( short )0x0100, ( short )0x0098, | ||
604 | ( short )0x0080, ( short )0x0020, ( short )0xFFF0, ( short )0x0000, | ||
605 | ( short )0x0020, ( short )0x0098, ( short )0x0120, ( short )0x0170, | ||
606 | ( short )0x0230, ( short )0x02F0, ( short )0x0350, ( short )0x0480, | ||
607 | ( short )0x05B8, ( short )0x0650, ( short )0x06A8, ( short )0x0738, | ||
608 | ( short )0x0798, ( short )0x07B0, ( short )0x07C0, ( short )0x0798, | ||
609 | ( short )0x0668, ( short )0x0598, ( short )0x0530, ( short )0x04C8, | ||
610 | ( short )0x0410, ( short )0x0350, ( short )0x0278, ( short )0x01D8, | ||
611 | ( short )0x0148, ( short )0x0080, ( short )0x0000, ( short )0xFFC0, | ||
612 | ( short )0xFFD8, ( short )0xFFA8, ( short )0xFF60, ( short )0xFF80, | ||
613 | ( short )0x0018, ( short )0x0070, ( short )0xFFE0, ( short )0xFF88, | ||
614 | ( short )0xFFC0, ( short )0xFF38, ( short )0xFE98, ( short )0xFE50, | ||
615 | ( short )0xFE10, ( short )0xFDD8, ( short )0xFD90, ( short )0xFD30, | ||
616 | ( short )0xFDB8, ( short )0xFE68, ( short )0xFE70, ( short )0xFE60, | ||
617 | ( short )0xFE70, ( short )0xFED0, ( short )0xFF90, ( short )0xFFE0, | ||
618 | ( short )0xFFF0, ( short )0x00A8, ( short )0x0168, ( short )0x01D0, | ||
619 | ( short )0x01F8, ( short )0x0210, ( short )0x0278, ( short )0x0268, | ||
620 | ( short )0x0208, ( short )0x0220, ( short )0x01F8, ( short )0x0198, | ||
621 | ( short )0x0158, ( short )0x0100, ( short )0x00C0, ( short )0x00A0, | ||
622 | ( short )0x0018, ( short )0xFF98, ( short )0xFF28, ( short )0xFEC0, | ||
623 | ( short )0xFE80, ( short )0xFE60, ( short )0xFD88, ( short )0xFCF0, | ||
624 | ( short )0xFCC8, ( short )0xFC70, ( short )0xFC10, ( short )0xFBC8, | ||
625 | ( short )0xFBB0, ( short )0xFBE8, ( short )0xFBE8, ( short )0xFB80, | ||
626 | ( short )0xFB88, ( short )0xFB40, ( short )0xFB18, ( short )0xFB20, | ||
627 | ( short )0xFAB8, ( short )0xFA50, ( short )0xFA50, ( short )0xFAB8, | ||
628 | ( short )0xFAF8, ( short )0xFB18, ( short )0xFBB0, ( short )0xFC88, | ||
629 | ( short )0xFD10, ( short )0xFD40, ( short )0xFD98, ( short )0xFE38, | ||
630 | ( short )0xFEE0, ( short )0xFEF8, ( short )0xFEF0, ( short )0xFF18, | ||
631 | ( short )0xFF18, ( short )0xFF18, ( short )0xFF68, ( short )0xFF98, | ||
632 | ( short )0xFF98, ( short )0xFFD0, ( short )0xFFF8, ( short )0x0048, | ||
633 | ( short )0x0038, ( short )0x0008, ( short )0x0008, ( short )0xFFE0, | ||
634 | ( short )0xFFB0, ( short )0xFFB8, ( short )0xFED0, ( short )0xFE18, | ||
635 | ( short )0xFE18, ( short )0xFDF0, ( short )0xFE38, ( short )0xFE90, | ||
636 | ( short )0xFE90, ( short )0xFDA8, ( short )0xFD48, ( short )0xFD70, | ||
637 | ( short )0xFD68, ( short )0xFD00, ( short )0xFCB8, ( short )0xFCB8, | ||
638 | ( short )0xFCF8, ( short )0xFD00, ( short )0xFC30, ( short )0xFBD0, | ||
639 | ( short )0xFC10, ( short )0xFC20, ( short )0xFBE0, ( short )0xFBA8, | ||
640 | ( short )0xFC30, ( short )0xFD00, ( short )0xFD50, ( short )0xFD90, | ||
641 | ( short )0xFE10, ( short )0xFEA8, ( short )0xFF40, ( short )0xFFA0, | ||
642 | ( short )0xFFD0, ( short )0xFFC8, ( short )0xFFC8, ( short )0xFFD8, | ||
643 | ( short )0xFFA0, ( short )0xFF98, ( short )0xFFB8, ( short )0x0050, | ||
644 | ( short )0x00B8, ( short )0x00B0, ( short )0x01B0, ( short )0x02E0, | ||
645 | ( short )0x0318, ( short )0x0330, ( short )0x02E0, ( short )0x02C8, | ||
646 | ( short )0x0278, ( short )0x0150, ( short )0x0050, ( short )0xFFC0, | ||
647 | ( short )0xFF88, ( short )0xFF18, ( short )0xFE90, ( short )0xFE40, | ||
648 | ( short )0xFE30, ( short )0xFDE8, ( short )0xFDD0, ( short )0xFD70, | ||
649 | ( short )0xFD48, ( short )0xFD10, ( short )0xFC98, ( short )0xFC38, | ||
650 | ( short )0xFC38, ( short )0xFC78, ( short )0xFC98, ( short )0xFCF0, | ||
651 | ( short )0xFDA8, ( short )0xFE48, ( short )0xFEC8, ( short )0xFF30, | ||
652 | ( short )0xFF98, ( short )0x0000, ( short )0x0050, ( short )0x0058, | ||
653 | ( short )0x00A8, ( short )0x00E8, ( short )0x00D0, ( short )0x0138, | ||
654 | ( short )0x01E0, ( short )0x0218, ( short )0x0208, ( short )0x0230, | ||
655 | ( short )0x0258, ( short )0x0248, ( short )0x02B0, ( short )0x0318, | ||
656 | ( short )0x0330, ( short )0x0358, ( short )0x0380, ( short )0x0378, | ||
657 | ( short )0x0408, ( short )0x0480, ( short )0x0460, ( short )0x03C8, | ||
658 | ( short )0x0318, ( short )0x02B0, ( short )0x01E8, ( short )0x00B8, | ||
659 | ( short )0xFFD8, ( short )0xFF30, ( short )0xFEC8, ( short )0xFE60, | ||
660 | ( short )0xFE60, ( short )0xFE78, ( short )0xFE78, ( short )0xFDC0, | ||
661 | ( short )0xFD70, ( short )0xFD50, ( short )0xFD08, ( short )0xFC88, | ||
662 | ( short )0xFC28, ( short )0xFC98, ( short )0xFD18, ( short )0xFD60, | ||
663 | ( short )0xFD60, ( short )0xFDD8, ( short )0xFE90, ( short )0xFEE8, | ||
664 | ( short )0xFF10, ( short )0xFF58, ( short )0xFF90, ( short )0xFFB8, | ||
665 | ( short )0xFFE0, ( short )0xFFF0, ( short )0xFFF0, ( short )0x00D0, | ||
666 | ( short )0x0190, ( short )0x01C8, ( short )0x0180, ( short )0x0188, | ||
667 | ( short )0x01B0, ( short )0x0238, ( short )0x0298, ( short )0x02B8, | ||
668 | ( short )0x0268, ( short )0x0258, ( short )0x0258, ( short )0x0230, | ||
669 | ( short )0x0228, ( short )0x0230, ( short )0x0258, ( short )0x0248, | ||
670 | ( short )0x01F8, ( short )0x0150, ( short )0x00C8, ( short )0x0058, | ||
671 | ( short )0x0058, ( short )0x0038, ( short )0x0000, ( short )0xFF50, | ||
672 | ( short )0xFF00, ( short )0xFEF8, ( short )0xFE80, ( short )0xFDB8, | ||
673 | ( short )0xFD70, ( short )0xFD00, ( short )0xFC90, ( short )0xFC40, | ||
674 | ( short )0xFC28, ( short )0xFC58, ( short )0xFC98, ( short )0xFD10, | ||
675 | ( short )0xFD78, ( short )0xFDE0, ( short )0xFE80, ( short )0xFF08, | ||
676 | ( short )0xFF60, ( short )0xFFD0, ( short )0x0030, ( short )0x0068, | ||
677 | ( short )0x0110, ( short )0x0198, ( short )0x01C0, ( short )0x0208, | ||
678 | ( short )0x0260, ( short )0x0280, ( short )0x0320, ( short )0x0390, | ||
679 | ( short )0x0398, ( short )0x0410, ( short )0x0488, ( short )0x04A0, | ||
680 | ( short )0x0448, ( short )0x0408, ( short )0x03E0, ( short )0x03C8, | ||
681 | ( short )0x0398, ( short )0x0350, ( short )0x0308, ( short )0x02C8, | ||
682 | ( short )0x0278, ( short )0x01D8, ( short )0x0148, ( short )0x00E8, | ||
683 | ( short )0x0040, ( short )0xFFA0, ( short )0xFF50, ( short )0xFDC0, | ||
684 | ( short )0xFC88, ( short )0xFC30, ( short )0xFB88, ( short )0xFAA8, | ||
685 | ( short )0xFA50, ( short )0xFA30, ( short )0xFA40, ( short )0xFA70, | ||
686 | ( short )0xFAB8, ( short )0xFAE0, ( short )0xFB28, ( short )0xFB58, | ||
687 | ( short )0xFB80, ( short )0xFBB0, ( short )0xFC00, ( short )0xFC80, | ||
688 | ( short )0xFCF0, ( short )0xFDB8, ( short )0xFE58, ( short )0xFED8, | ||
689 | ( short )0x0008, ( short )0x0100, ( short )0x0180, ( short )0x01D0, | ||
690 | ( short )0x0210, ( short )0x0248, ( short )0x0238, ( short )0x0200, | ||
691 | ( short )0x01D0, ( short )0x02D0, ( short )0x03A0, ( short )0x03D8, | ||
692 | ( short )0x03C0, ( short )0x03D8, ( short )0x03F8, ( short )0x0370, | ||
693 | ( short )0x02C0, ( short )0x0258, ( short )0x01B8, ( short )0x0120, | ||
694 | ( short )0x0090, ( short )0x0088, ( short )0x00A8, ( short )0x00A8, | ||
695 | ( short )0x0088, ( short )0x0068, ( short )0x0060, ( short )0xFFE0, | ||
696 | ( short )0xFF00, ( short )0xFE50, ( short )0xFDC8, ( short )0xFCF0, | ||
697 | ( short )0xFC30, ( short )0xFBB0, ( short )0xFBD8, ( short )0xFC20, | ||
698 | ( short )0xFC58, ( short )0xFC30, ( short )0xFC40, ( short )0xFC78, | ||
699 | ( short )0xFCC0, ( short )0xFCE8, ( short )0xFD10, ( short )0xFD48, | ||
700 | ( short )0xFD88, ( short )0xFDE8, ( short )0xFF10, ( short )0x0020, | ||
701 | ( short )0x0110, ( short )0x01B8, ( short )0x0248, ( short )0x02C0, | ||
702 | ( short )0x0358, ( short )0x03B8, ( short )0x03C8, ( short )0x0320, | ||
703 | ( short )0x0288, ( short )0x0280, ( short )0x0300, ( short )0x0340, | ||
704 | ( short )0x0320, ( short )0x0380, ( short )0x03F8, ( short )0x0418, | ||
705 | ( short )0x0378, ( short )0x02E0, ( short )0x0288, ( short )0x0280, | ||
706 | ( short )0x0238, ( short )0x01D0, ( short )0x0168, ( short )0x0138, | ||
707 | ( short )0x0110, ( short )0x0140, ( short )0x0148, ( short )0x0150, | ||
708 | ( short )0x00A8, ( short )0x0010, ( short )0xFFB0, ( short )0xFEB8, | ||
709 | ( short )0xFDE0, ( short )0xFD48, ( short )0xFCE8, ( short )0xFCA8, | ||
710 | ( short )0xFC78, ( short )0xFC48, ( short )0xFC50, ( short )0xFC70, | ||
711 | ( short )0xFCA8, ( short )0xFCE8, ( short )0xFD28, ( short )0xFDD0, | ||
712 | ( short )0xFE70, ( short )0xFED8, ( short )0x0040, ( short )0x0188, | ||
713 | ( short )0x0258, ( short )0x03C0, ( short )0x04F0, ( short )0x05B8, | ||
714 | ( short )0x0638, ( short )0x0670, ( short )0x0690, ( short )0x0708, | ||
715 | ( short )0x0708, ( short )0x06B8, ( short )0x0660, ( short )0x0650, | ||
716 | ( short )0x0630, ( short )0x05C8, ( short )0x0578, ( short )0x0548, | ||
717 | ( short )0x0508, ( short )0x0470, ( short )0x03D0, ( short )0x0350, | ||
718 | ( short )0x0278, ( short )0x01A0, ( short )0x00F8, ( short )0x00B0, | ||
719 | ( short )0x0078, ( short )0x0030, ( short )0xFFE8, ( short )0xFFC8, | ||
720 | ( short )0xFFB8, ( short )0xFED0, ( short )0xFE08, ( short )0xFD98, | ||
721 | ( short )0xFC70, ( short )0xFB60, ( short )0xFAA8, ( short )0xFA10, | ||
722 | ( short )0xF9B8, ( short )0xF980, ( short )0xF9A0, ( short )0xFA00, | ||
723 | ( short )0xFA68, ( short )0xFB90, ( short )0xFCB8, ( short )0xFD98, | ||
724 | ( short )0xFE68, ( short )0xFF18, ( short )0xFFC0, ( short )0x0078, | ||
725 | ( short )0x00F8, ( short )0x0218, ( short )0x0320, ( short )0x03C0, | ||
726 | ( short )0x0478, ( short )0x0510, ( short )0x0570, ( short )0x05D8, | ||
727 | ( short )0x05E0, ( short )0x05B8, ( short )0x0508, ( short )0x0468, | ||
728 | ( short )0x03E0, ( short )0x02F0, ( short )0x0218, ( short )0x0168, | ||
729 | ( short )0x00F0, ( short )0x0060, ( short )0xFFD0, ( short )0xFF58, | ||
730 | ( short )0xFEC0, ( short )0xFE48, ( short )0xFDB0, ( short )0xFD58, | ||
731 | ( short )0xFD38, ( short )0xFCD8, ( short )0xFC80, ( short )0xFC50, | ||
732 | ( short )0xFC08, ( short )0xFB48, ( short )0xFA98, ( short )0xF9F8, | ||
733 | ( short )0xF8F8, ( short )0xF810, ( short )0xF7F8, ( short )0xF818, | ||
734 | ( short )0xF848, ( short )0xF8E8, ( short )0xF9E0, ( short )0xFB08, | ||
735 | ( short )0xFC38, ( short )0xFD10, ( short )0xFDE8, ( short )0xFF10, | ||
736 | ( short )0xFFD0, ( short )0x0048, ( short )0x00E0, ( short )0x0160, | ||
737 | ( short )0x01B8, ( short )0x01C8, ( short )0x01E0, ( short )0x0200, | ||
738 | ( short )0x0228, ( short )0x0240, ( short )0x0240, ( short )0x0240, | ||
739 | ( short )0x0260, ( short )0x0280, ( short )0x0280, ( short )0x02F0, | ||
740 | ( short )0x0370, ( short )0x03C8, ( short )0x03C8, ( short )0x03A8, | ||
741 | ( short )0x03A0, ( short )0x02F8, ( short )0x0220, ( short )0x0150, | ||
742 | ( short )0x0098, ( short )0xFFE0, ( short )0xFF20, ( short )0xFEA0, | ||
743 | ( short )0xFE50, ( short )0xFE18, ( short )0xFD38, ( short )0xFC60, | ||
744 | ( short )0xFBE0, ( short )0xFAC8, ( short )0xF9A0, ( short )0xF8B8, | ||
745 | ( short )0xF830, ( short )0xF888, ( short )0xF8B8, ( short )0xF908, | ||
746 | ( short )0xFA80, ( short )0xFBF8, ( short )0xFD48, ( short )0xFEC8, | ||
747 | ( short )0x0040, ( short )0x01B0, ( short )0x0298, ( short )0x0338, | ||
748 | ( short )0x03C0, ( short )0x0470, ( short )0x0520, ( short )0x0588, | ||
749 | ( short )0x0610, ( short )0x0688, ( short )0x06C8, ( short )0x0670, | ||
750 | ( short )0x05E8, ( short )0x0578, ( short )0x0580, ( short )0x0578, | ||
751 | ( short )0x0528, ( short )0x0498, ( short )0x0408, ( short )0x0390, | ||
752 | ( short )0x03F8, ( short )0x0458, ( short )0x0488, ( short )0x0468, | ||
753 | ( short )0x0450, ( short )0x0458, ( short )0x03A8, ( short )0x02D0, | ||
754 | ( short )0x0210, ( short )0x0158, ( short )0x0088, ( short )0xFFA8, | ||
755 | ( short )0xFF00, ( short )0xFE88, ( short )0xFE30, ( short )0xFD88, | ||
756 | ( short )0xFCB8, ( short )0xFC28, ( short )0xFB30, ( short )0xF9F0, | ||
757 | ( short )0xF8E8, ( short )0xF890, ( short )0xF890, ( short )0xF8C0, | ||
758 | ( short )0xF978, ( short )0xFA78, ( short )0xFBE8, ( short )0xFD20, | ||
759 | ( short )0xFE28, ( short )0xFF60, ( short )0x00D8, ( short )0x0220, | ||
760 | ( short )0x02F8, ( short )0x0378, ( short )0x03E0, ( short )0x0438, | ||
761 | ( short )0x0488, ( short )0x0498, ( short )0x04A8, ( short )0x0480, | ||
762 | ( short )0x0440, ( short )0x03C0, ( short )0x02D8, ( short )0x01E8, | ||
763 | ( short )0x0140, ( short )0x00D8, ( short )0x0068, ( short )0xFFE0, | ||
764 | ( short )0x0068, ( short )0x0130, ( short )0x0228, ( short )0x0260, | ||
765 | ( short )0x0278, ( short )0x02D0, ( short )0x02D8, ( short )0x0290, | ||
766 | ( short )0x01E0, ( short )0x00D0, ( short )0xFFE0, ( short )0xFEF8, | ||
767 | ( short )0xFE08, ( short )0xFD28, ( short )0xFC88, ( short )0xFBE0, | ||
768 | ( short )0xFB60, ( short )0xFAD8, ( short )0xFA08, ( short )0xF978, | ||
769 | ( short )0xF8E8, ( short )0xF8B0, ( short )0xF8B0, ( short )0xF8D0, | ||
770 | ( short )0xF9D0, ( short )0xFAF8, ( short )0xFC18, ( short )0xFDB0, | ||
771 | ( short )0xFF38, ( short )0x00A0, ( short )0x01F8, ( short )0x02F8, | ||
772 | ( short )0x03C0, ( short )0x0460, ( short )0x04B8, ( short )0x04C8, | ||
773 | ( short )0x04C8, ( short )0x04C0, ( short )0x0498, ( short )0x0490, | ||
774 | ( short )0x0478, ( short )0x0448, ( short )0x0420, ( short )0x03F8, | ||
775 | ( short )0x0328, ( short )0x0238, ( short )0x01B0, ( short )0x0170, | ||
776 | ( short )0x0128, ( short )0x0090, ( short )0x00E8, ( short )0x01B8, | ||
777 | ( short )0x02B8, ( short )0x0280, ( short )0x0218, ( short )0x0218, | ||
778 | ( short )0x01F0, ( short )0x0148, ( short )0x0000, ( short )0xFEC0, | ||
779 | ( short )0xFE08, ( short )0xFD70, ( short )0xFCA0, ( short )0xFBF0, | ||
780 | ( short )0xFBC0, ( short )0xFBA0, ( short )0xFB80, ( short )0xFB18, | ||
781 | ( short )0xFB28, ( short )0xFB98, ( short )0xFBC0, ( short )0xFBD0, | ||
782 | ( short )0xFC08, ( short )0xFC78, ( short )0xFDC8, ( short )0xFEC8, | ||
783 | ( short )0xFF78, ( short )0x00D0, ( short )0x0238, ( short )0x0360, | ||
784 | ( short )0x0398, ( short )0x0360, ( short )0x0368, ( short )0x0380, | ||
785 | ( short )0x0318, ( short )0x0250, ( short )0x0208, ( short )0x0220, | ||
786 | ( short )0x0218, ( short )0x01F0, ( short )0x01C8, ( short )0x0210, | ||
787 | ( short )0x0270, ( short )0x0270, ( short )0x0240, ( short )0x0290, | ||
788 | ( short )0x0310, ( short )0x0360, ( short )0x0340, ( short )0x0310, | ||
789 | ( short )0x0318, ( short )0x0320, ( short )0x02D8, ( short )0x0240, | ||
790 | ( short )0x0158, ( short )0x00A0, ( short )0x0008, ( short )0xFF30, | ||
791 | ( short )0xFE50, ( short )0xFDA8, ( short )0xFD28, ( short )0xFCC8, | ||
792 | ( short )0xFC60, ( short )0xFBA8, ( short )0xFB40, ( short )0xFB10, | ||
793 | ( short )0xFB18, ( short )0xFB28, ( short )0xFB48, ( short )0xFB68, | ||
794 | ( short )0xFBA8, ( short )0xFBF8, ( short )0xFCB8, ( short )0xFD78, | ||
795 | ( short )0xFE00, ( short )0xFE88, ( short )0xFF30, ( short )0xFF98, | ||
796 | ( short )0xFFC8, ( short )0xFFE8, ( short )0x0050, ( short )0x00B0, | ||
797 | ( short )0x00E0, ( short )0x0040, ( short )0xFF68, ( short )0xFED8, | ||
798 | ( short )0xFEE8, ( short )0xFEE0, ( short )0xFE90, ( short )0xFEA8, | ||
799 | ( short )0xFF88, ( short )0x0080, ( short )0x0188, ( short )0x0208, | ||
800 | ( short )0x0290, ( short )0x0390, ( short )0x0438, ( short )0x0450, | ||
801 | ( short )0x0428, ( short )0x03F8, ( short )0x03E0, ( short )0x0388, | ||
802 | ( short )0x02E0, ( short )0x0240, ( short )0x0190, ( short )0x00D0, | ||
803 | ( short )0x0000, ( short )0x0000, ( short )0x0018, ( short )0x00FF, | ||
804 | ( short )0x0068, ( short )0x00FE, ( short )0x00F8, ( short )0x00FD | ||
805 | }; | ||
806 | |||
807 | gsm_byte gsm_dec_gsmdata[] = { | ||
808 | 0xD5, 0x1F, 0x74, 0x21, 0xA0, 0x50, 0x40, 0xC9, 0x24, 0x7B, 0xFA, 0x6B, | ||
809 | 0x52, 0xE0, 0xB6, 0xD6, 0x8E, 0xB9, 0x2B, 0xAE, 0xE0, 0x8B, 0x23, 0x52, | ||
810 | 0x3B, 0x13, 0x86, 0xE0, 0x14, 0x4A, 0x41, 0x44, 0x32, 0xD3, 0xA1, 0x83, | ||
811 | 0xA1, 0x1D, 0xA6, 0x80, 0xBA, 0xD2, 0x96, 0x26, 0xFB, 0x84, 0x80, 0x6D, | ||
812 | 0x9C, 0x25, 0x1D, 0x9B, 0xAA, 0xC0, 0xBB, 0x4C, 0x95, 0xB9, 0x53, 0xAE, | ||
813 | 0xA0, 0xB6, 0xE4, 0x46, 0x37, 0x1B, 0xD4, 0xA5, 0x7B, 0x1D, 0x22, 0x97, | ||
814 | 0x00, 0xBA, 0xA5, 0x6D, 0xD2, 0xA1, 0x7E, 0xC0, 0xB9, 0x25, 0xD2, 0xB4, | ||
815 | 0x94, 0x9E, 0xE0, 0x3E, 0xDE, 0xED, 0xD6, 0xD2, 0xE2, 0xC0, 0xD7, 0x5D, | ||
816 | 0x8D, 0x59, 0xAC, 0xD3, 0xE4, 0x83, 0x95, 0x59, 0xC0, 0xA1, 0x48, 0xD2, | ||
817 | 0x66, 0xC7, 0x2C, 0x9E, 0xA0, 0x2A, 0xD3, 0xEE, 0x45, 0x1C, 0x80, 0xE0, | ||
818 | 0x6B, 0x34, 0x8C, 0x4B, 0x29, 0xCB, 0x00, 0xBA, 0xF6, 0x0D, 0x26, 0x9A, | ||
819 | 0xD3, 0xA4, 0x82, 0x9D, 0x63, 0x7A, 0xC0, 0x67, 0x24, 0xBA, 0xD6, 0x7C, | ||
820 | 0xC2, 0xC0, 0x37, 0x20, 0x4F, 0x10, 0xE0, 0xC7, 0x80, 0x6A, 0x77, 0x63, | ||
821 | 0xBE, 0x6B, 0x5A, 0xC0, 0xB5, 0x34, 0xD1, 0x34, 0x9C, 0xD4, 0xE8, 0x56, | ||
822 | 0xB2, 0x58, 0x5F, 0x00, 0xB7, 0xAF, 0x92, 0x12, 0x90, 0xD5, 0xA4, 0x39, | ||
823 | 0x23, 0x4E, 0x46, 0x87, 0x51, 0xAC, 0xD8, 0xDB, 0x6D, 0xCB, 0x17, 0x50, | ||
824 | 0x89, 0x7B, 0x44, 0x28, 0x03, 0x6B, 0xD5, 0xA9, 0x36, 0x36, 0xD9, 0x6B, | ||
825 | 0xA8, 0x93, 0x3A, 0x96, 0xEE, 0xFF, 0x67, 0x8B, 0x36, 0xDA, 0x09, 0xB4, | ||
826 | 0x99, 0x67, 0x2B, 0x88, 0xE4, 0xB5, 0xA5, 0xDA, 0x65, 0x47, 0xDA, 0x1E, | ||
827 | 0x96, 0xFA, 0xEC, 0xD5, 0xA9, 0x45, 0x63, 0x1A, 0xCB, 0xC9, 0x48, 0x9D, | ||
828 | 0x83, 0x5F, 0x6F, 0xCB, 0x08, 0x1B, 0x97, 0xC9, 0x18, 0x0A, 0x63, 0xCB, | ||
829 | 0xA6, 0xE1, 0x84, 0xF5, 0x62, 0x61, 0x6A, 0x84, 0xDC, 0xB6, 0x37, 0x9E, | ||
830 | 0xD6, 0xAB, 0x3C, 0x53, 0x93, 0xC1, 0x2A, 0xAA, 0x81, 0x8D, 0x6B, 0x65, | ||
831 | 0x60, 0xA8, 0xFB, 0x2E, 0x22, 0x59, 0x74, 0x61, 0xA6, 0x5D, 0x73, 0x94, | ||
832 | 0xF8, 0xE4, 0xC1, 0x46, 0x26, 0x5E, 0x8A, 0x86, 0xED, 0xD4, 0xA6, 0x2D, | ||
833 | 0x57, 0x6B, 0xBE, 0xE8, 0x58, 0xDA, 0x3D, 0x98, 0x99, 0xBE, 0xA8, 0xC2, | ||
834 | 0xDB, 0x6A, 0x2E, 0x51, 0x62, 0xE5, 0x80, 0x58, 0x76, 0xB8, 0xE4, 0x6C, | ||
835 | 0x84, 0xCA, 0x98, 0x06, 0x0B, 0xFC, 0xD2, 0x66, 0x7C, 0x62, 0x3A, 0x5B, | ||
836 | 0xC5, 0xDF, 0x7D, 0x75, 0x49, 0x1E, 0x52, 0xC7, 0x55, 0xF7, 0x84, 0xA6, | ||
837 | 0xDA, 0x5D, 0x43, 0x26, 0x85, 0x98, 0xD8, 0x8F, 0xB6, 0xC5, 0x28, 0xEB, | ||
838 | 0x3E, 0x75, 0x04, 0xD2, 0x27, 0xBA, 0x2A, 0x2B, 0xB7, 0x03, 0x13, 0x45, | ||
839 | 0x35, 0x1B, 0x78, 0x5F, 0xC3, 0xBA, 0xDB, 0xAE, 0x27, 0xC2, 0x5E, 0xA4, | ||
840 | 0x50, 0x8C, 0x8A, 0xBB, 0x4F, 0x60, 0xC3, 0xEE, 0x41, 0x46, 0x4A, 0xDF, | ||
841 | 0xD2, 0x27, 0xB2, 0xAD, 0xEB, 0x5F, 0x43, 0x4C, 0x6A, 0x09, 0x2A, 0xCC, | ||
842 | 0xB7, 0x47, 0x2A, 0xB9, 0x91, 0xB6, 0xD4, 0x5B, 0x25, 0x58, 0xD8, 0xFD, | ||
843 | 0x46, 0x95, 0x5A, 0xC3, 0x27, 0x5B, 0x3F, 0xFB, 0x12, 0xD2, 0x26, 0xC3, | ||
844 | 0xA9, 0xA1, 0xB6, 0xA2, 0xCB, 0x1B, 0xD0, 0x73, 0xE4, 0xBA, 0xA1, 0xE9, | ||
845 | 0x05, 0xBE, 0x79, 0x23, 0xA4, 0xC2, 0x3A, 0x4B, 0x11, 0xE5, 0x68, 0xC4, | ||
846 | 0xC1, 0xBA, 0xC1, 0xCC, 0x8B, 0x02, 0xD2, 0x63, 0x6C, 0xEE, 0x19, 0x5E, | ||
847 | 0xE1, 0xB6, 0x4C, 0x1A, 0xB4, 0x5E, 0xF0, 0xC2, 0x27, 0x20, 0x55, 0xBD, | ||
848 | 0x6D, 0x64, 0xE1, 0xC7, 0x45, 0xA9, 0x65, 0x6D, 0x7D, 0x42, 0x56, 0xD8, | ||
849 | 0xB2, 0xB6, 0xEC, 0xD3, 0x61, 0x5B, 0x62, 0x61, 0x60, 0xA1, 0x5B, 0xD6, | ||
850 | 0x15, 0x29, 0x09, 0x6C, 0xA1, 0x3E, 0xAD, 0x65, 0x34, 0xC3, 0xC0, 0xC1, | ||
851 | 0x22, 0x6D, 0x4C, 0x57, 0x10, 0xDB, 0x41, 0xD2, 0xE1, 0x77, 0x64, 0xF7, | ||
852 | 0xD3, 0x21, 0x73, 0xA9, 0x29, 0x58, 0xC1, 0xA1, 0x5A, 0x52, 0xB7, 0x32, | ||
853 | 0x64, 0xC1, 0x67, 0x42, 0x74, 0x2C, 0xDC, 0x61, 0x61, 0x65, 0x8B, 0xCB, | ||
854 | 0x04, 0xE5, 0x60, 0xC1, 0xC9, 0x5E, 0x8E, 0x36, 0x83, 0xD2, 0xA2, 0x83, | ||
855 | 0xA9, 0xD9, 0xCD, 0x21, 0xB9, 0x25, 0xCD, 0xE6, 0x1D, 0x60, 0xA1, 0xB4, | ||
856 | 0xAA, 0x8F, 0xBA, 0x75, 0xC3, 0x01, 0x0B, 0x3B, 0x51, 0xDB, 0xEC, 0x62, | ||
857 | 0xE1, 0x38, 0xCD, 0x40, 0x3B, 0xD3, 0xD2, 0x26, 0x94, 0x29, 0xD2, 0x61, | ||
858 | 0x21, 0x6B, 0x4A, 0x8D, 0x24, 0xB5, 0xBB, 0x21, 0x12, 0xA5, 0x99, 0xA5, | ||
859 | 0x1A, 0xCA, 0xA1, 0xEF, 0x5D, 0xAA, 0xAE, 0xD3, 0x64, 0xE1, 0xA3, 0x6B, | ||
860 | 0xAE, 0x35, 0x39, 0xD2, 0x66, 0x73, 0xB6, 0x90, 0xC6, 0xC1, 0x32, 0xD1, | ||
861 | 0xBA, 0xC9, 0x25, 0x65, 0x81, 0xA8, 0xD2, 0xB1, 0xE7, 0x18, 0xBE, 0xC0, | ||
862 | 0xFC, 0xE4, 0x85, 0xB5, 0x06, 0xB4, 0x81, 0x35, 0x46, 0xB6, 0xC8, 0x9B | ||
863 | }; | ||
864 | |||
865 | #endif /* GSM_DEC_DATA_H */ | ||
diff --git a/baseline/source/gsm_dec/gsm.h b/baseline/source/gsm_dec/gsm.h new file mode 100644 index 0000000..1d89577 --- /dev/null +++ b/baseline/source/gsm_dec/gsm.h | |||
@@ -0,0 +1,14 @@ | |||
1 | #ifndef GSM_DEC_GSM_H | ||
2 | #define GSM_DEC_GSM_H | ||
3 | |||
4 | /* | ||
5 | Interface | ||
6 | */ | ||
7 | typedef struct gsm_state *gsm; | ||
8 | typedef short gsm_signal; /* signed 16 bit */ | ||
9 | typedef unsigned char gsm_byte; | ||
10 | typedef gsm_byte gsm_frame[33]; /* 33 * 8 bits */ | ||
11 | |||
12 | #define GSM_MAGIC 0xD /* 13 kbit/s RPE-LTP */ | ||
13 | |||
14 | #endif /* GSM_DEC_GSM_H */ | ||
diff --git a/baseline/source/gsm_dec/gsm_dec.c b/baseline/source/gsm_dec/gsm_dec.c new file mode 100644 index 0000000..7a0a1bd --- /dev/null +++ b/baseline/source/gsm_dec/gsm_dec.c | |||
@@ -0,0 +1,764 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: gsm_dec | ||
7 | |||
8 | Author: Jutta Degener and Carsten Bormann, | ||
9 | Technische Universitaet Berlin | ||
10 | |||
11 | Function: Decoding of GSM data | ||
12 | |||
13 | Source: included in MediaBench/gsm | ||
14 | |||
15 | Original name: gsm_decode | ||
16 | |||
17 | Changes: no major functional changes | ||
18 | |||
19 | License: see the accompanying COPYRIGHT file | ||
20 | |||
21 | */ | ||
22 | |||
23 | |||
24 | #include "../extra.h" | ||
25 | #include "gsm.h" | ||
26 | #include "add.h" | ||
27 | #include "data.h" | ||
28 | #include "private.h" | ||
29 | |||
30 | #define SAMPLES 20 | ||
31 | |||
32 | /* | ||
33 | Forward declaration of global variables | ||
34 | */ | ||
35 | |||
36 | struct gsm_state gsm_dec_state; | ||
37 | gsm gsm_dec_state_ptr; | ||
38 | volatile int gsm_dec_result; | ||
39 | |||
40 | /* | ||
41 | Forward declaration of functions | ||
42 | */ | ||
43 | |||
44 | extern word gsm_dec_sub( word a, word b ); | ||
45 | extern word gsm_dec_asl( word a, int n ); | ||
46 | void gsm_dec_Decoding_of_the_coded_Log_Area_Ratios( | ||
47 | word *LARc, /* coded log area ratio [0..7] IN */ | ||
48 | word *LARpp ); /* out: decoded .. */ | ||
49 | |||
50 | void gsm_dec_Coefficients_0_12( word *LARpp_j_1, word *LARpp_j, word *LARp ); | ||
51 | |||
52 | void gsm_dec_LARp_to_rp( word *LARp ); /* [0..7] IN/OUT */ | ||
53 | |||
54 | extern int gsm_dec_decode( gsm, gsm_byte *, gsm_signal * ); | ||
55 | |||
56 | extern void gsm_dec_Decoder( struct gsm_state *S, | ||
57 | word *LARcr, /* [0..7] IN */ | ||
58 | word *Ncr, /* [0..3] IN */ | ||
59 | word *bcr, /* [0..3] IN */ | ||
60 | word *Mcr, /* [0..3] IN */ | ||
61 | word *xmaxcr, /* [0..3] IN */ | ||
62 | word *xMcr, /* [0..13*4] IN */ | ||
63 | word *s ); /* [0..159] OUT */ | ||
64 | |||
65 | extern void gsm_dec_Long_Term_Synthesis_Filtering( | ||
66 | struct gsm_state *S, word Ncr, word bcr, | ||
67 | word *erp, /* [0..39] IN */ | ||
68 | word *drp ); /* [-120..-1] IN, [0..40] OUT */ | ||
69 | |||
70 | void gsm_dec_RPE_Decoding( word xmaxcr, word Mcr, | ||
71 | word *xMcr, /* [0..12], 3 bits IN */ | ||
72 | word *erp ); /* [0..39] OUT */ | ||
73 | |||
74 | void gsm_dec_RPE_grid_positioning( word Mc, /* grid position IN */ | ||
75 | word *xMp, /* [0..12] IN */ | ||
76 | word *ep /* [0..39] OUT */ | ||
77 | ); | ||
78 | |||
79 | void gsm_dec_APCM_inverse_quantization( word *xMc, /* [0..12] IN */ | ||
80 | word mant, word exp, | ||
81 | word *xMp ); /* [0..12] OUT */ | ||
82 | |||
83 | extern word gsm_dec_asr( word a, int n ); | ||
84 | |||
85 | void gsm_dec_APCM_quantization_xmaxc_to_exp_mant( | ||
86 | word xmaxc, /* IN */ | ||
87 | word *exp_out, /* OUT */ | ||
88 | word *mant_out ); /* OUT */ | ||
89 | |||
90 | void gsm_dec_Postprocessing( struct gsm_state *S, word *s ); | ||
91 | |||
92 | void gsm_dec_Coefficients_13_26( word *LARpp_j_1, word *LARpp_j, | ||
93 | word *LARp ); | ||
94 | |||
95 | void gsm_dec_Coefficients_40_159( word *LARpp_j, word *LARp ); | ||
96 | |||
97 | void gsm_dec_Short_term_synthesis_filtering( struct gsm_state *S, | ||
98 | word *rrp, /* [0..7] IN */ | ||
99 | int k, /* k_end - k_start */ | ||
100 | word *wt, /* [0..k-1] IN */ | ||
101 | word *sr /* [0..k-1] OUT */ | ||
102 | ); | ||
103 | |||
104 | void gsm_dec_Short_Term_Synthesis_Filter( | ||
105 | struct gsm_state *S, word *LARcr, /* received log area ratios [0..7] IN */ | ||
106 | word *wt, /* received d [0..159] IN */ | ||
107 | word *s /* signal s [0..159] OUT */ | ||
108 | ); | ||
109 | |||
110 | void gsm_dec_Coefficients_27_39( word *LARpp_j_1, word *LARpp_j, word *LARp ); | ||
111 | |||
112 | gsm gsm_dec_create( void ); | ||
113 | void gsm_dec_init( void ); | ||
114 | void gsm_dec_main( void ); | ||
115 | //int main( void ); | ||
116 | |||
117 | /* add.c */ | ||
118 | |||
119 | word gsm_dec_sub( word a, word b ) | ||
120 | { | ||
121 | longword diff = ( longword )a - ( longword )b; | ||
122 | return saturate( diff ); | ||
123 | } | ||
124 | |||
125 | word gsm_dec_asl( word a, int n ) | ||
126 | { | ||
127 | if ( n >= 16 ) | ||
128 | return 0; | ||
129 | if ( n <= -16 ) | ||
130 | return -( a < 0 ); | ||
131 | if ( n < 0 ) | ||
132 | return gsm_dec_asr( a, -n ); | ||
133 | return a << n; | ||
134 | } | ||
135 | |||
136 | /* short_term.c */ | ||
137 | /* | ||
138 | SHORT TERM ANALYSIS FILTERING SECTION | ||
139 | */ | ||
140 | |||
141 | /* 4.2.8 */ | ||
142 | |||
143 | void gsm_dec_Decoding_of_the_coded_Log_Area_Ratios( | ||
144 | word *LARc, /* coded log area ratio [0..7] IN */ | ||
145 | word *LARpp ) /* out: decoded .. */ | ||
146 | { | ||
147 | word temp1 /* for STEP */; | ||
148 | long ltmp; /* for GSM_ADD */ | ||
149 | |||
150 | /* This procedure requires for efficient implementation | ||
151 | two tables. | ||
152 | |||
153 | INVA[1..8] = integer( (32768 * 8) / real_A[1..8]) | ||
154 | MIC[1..8] = minimum value of the LARc[1..8] | ||
155 | */ | ||
156 | |||
157 | /* Compute the LARpp[1..8] | ||
158 | */ | ||
159 | |||
160 | /* for (i = 1; i <= 8; i++, B++, MIC++, INVA++, LARc++, LARpp++) { | ||
161 | |||
162 | temp1 = GSM_ADD( *LARc, *MIC ) << 10; | ||
163 | temp2 = *B << 1; | ||
164 | temp1 = GSM_SUB( temp1, temp2 ); | ||
165 | |||
166 | temp1 = GSM_MULT_R( *INVA, temp1 ); | ||
167 | LARpp = GSM_ADD( temp1, temp1 ); | ||
168 | } | ||
169 | */ | ||
170 | |||
171 | #undef STEP | ||
172 | #define STEP(B, MIC, INVA) \ | ||
173 | temp1 = GSM_ADD(*LARc++, MIC) << 10; \ | ||
174 | temp1 = GSM_SUB(temp1, B << 1); \ | ||
175 | temp1 = GSM_MULT_R(INVA, temp1); \ | ||
176 | *LARpp++ = GSM_ADD(temp1, temp1); | ||
177 | |||
178 | STEP( 0, -32, 13107 ); | ||
179 | STEP( 0, -32, 13107 ); | ||
180 | STEP( 2048, -16, 13107 ); | ||
181 | STEP( 2560, -16, 13107 ); | ||
182 | |||
183 | STEP( 94, -8, 19223 ); | ||
184 | STEP( 1792, -8, 17476 ); | ||
185 | STEP( 341, -4, 31454 ); | ||
186 | STEP( 1144, -4, 29708 ); | ||
187 | |||
188 | /* NOTE: the addition of *MIC is used to restore the sign of *LARc. | ||
189 | */ | ||
190 | } | ||
191 | |||
192 | /* 4.2.9 */ | ||
193 | /* Computation of the quantized reflection coefficients | ||
194 | */ | ||
195 | |||
196 | /* 4.2.9.1 Interpolation of the LARpp[1..8] to get the LARp[1..8] | ||
197 | */ | ||
198 | |||
199 | /* | ||
200 | Within each frame of 160 analyzed speech samples the short term | ||
201 | analysis and synthesis filters operate with four different sets of | ||
202 | coefficients, derived from the previous set of decoded LARs(LARpp(j-1)) | ||
203 | and the actual set of decoded LARs (LARpp(j)) | ||
204 | |||
205 | (Initial value: LARpp(j-1)[1..8] = 0.) | ||
206 | */ | ||
207 | |||
208 | |||
209 | void gsm_dec_Coefficients_0_12( word *LARpp_j_1, word *LARpp_j, word *LARp ) | ||
210 | { | ||
211 | int i; | ||
212 | longword ltmp; | ||
213 | |||
214 | _Pragma( "loopbound min 8 max 8" ) | ||
215 | for ( i = 1; i <= 8; i++, LARp++, LARpp_j_1++, LARpp_j++ ) { | ||
216 | *LARp = GSM_ADD( SASR( *LARpp_j_1, 2 ), SASR( *LARpp_j, 2 ) ); | ||
217 | *LARp = GSM_ADD( *LARp, SASR( *LARpp_j_1, 1 ) ); | ||
218 | } | ||
219 | } | ||
220 | |||
221 | /* 4.2.9.2 */ | ||
222 | |||
223 | void gsm_dec_LARp_to_rp( word *LARp ) /* [0..7] IN/OUT */ | ||
224 | /* | ||
225 | The input of this procedure is the interpolated LARp[0..7] array. | ||
226 | The reflection coefficients, rp[i], are used in the analysis | ||
227 | filter and in the synthesis filter. | ||
228 | */ | ||
229 | { | ||
230 | int i; | ||
231 | word temp; | ||
232 | longword ltmp; | ||
233 | |||
234 | _Pragma( "loopbound min 8 max 8" ) | ||
235 | for ( i = 1; i <= 8; i++, LARp++ ) { | ||
236 | |||
237 | /* temp = GSM_ABS( *LARp ); | ||
238 | |||
239 | if (temp < 11059) temp <<= 1; | ||
240 | else if (temp < 20070) temp += 11059; | ||
241 | else temp = GSM_ADD( temp >> 2, 26112 ); | ||
242 | |||
243 | * *LARp = *LARp < 0 ? -temp : temp; | ||
244 | */ | ||
245 | |||
246 | if ( *LARp < 0 ) { | ||
247 | temp = *LARp == MIN_WORD ? MAX_WORD : -( *LARp ); | ||
248 | *LARp = -( ( temp < 11059 ) ? temp << 1 | ||
249 | : ( ( temp < 20070 ) ? temp + 11059 | ||
250 | : GSM_ADD( temp >> 2, 26112 ) ) ); | ||
251 | } else { | ||
252 | temp = *LARp; | ||
253 | *LARp = ( temp < 11059 ) | ||
254 | ? temp << 1 | ||
255 | : ( ( temp < 20070 ) ? temp + 11059 : GSM_ADD( temp >> 2, 26112 ) ); | ||
256 | } | ||
257 | } | ||
258 | } | ||
259 | |||
260 | void gsm_dec_Decoder( struct gsm_state *S, | ||
261 | word *LARcr, /* [0..7] IN */ | ||
262 | word *Ncr, /* [0..3] IN */ | ||
263 | word *bcr, /* [0..3] IN */ | ||
264 | word *Mcr, /* [0..3] IN */ | ||
265 | word *xmaxcr, /* [0..3] IN */ | ||
266 | word *xMcr, /* [0..13*4] IN */ | ||
267 | word *s ) /* [0..159] OUT */ | ||
268 | { | ||
269 | int j, k; | ||
270 | word erp[40], wt[160]; | ||
271 | word *drp = S->dp0 + 120; | ||
272 | |||
273 | _Pragma( "loopbound min 4 max 4" ) | ||
274 | for ( j = 0; j <= 3; j++, xmaxcr++, bcr++, Ncr++, Mcr++, xMcr += 13 ) { | ||
275 | |||
276 | gsm_dec_RPE_Decoding( *xmaxcr, *Mcr, xMcr, erp ); | ||
277 | gsm_dec_Long_Term_Synthesis_Filtering( S, *Ncr, *bcr, erp, drp ); | ||
278 | |||
279 | _Pragma( "loopbound min 40 max 40" ) | ||
280 | for ( k = 0; k <= 39; k++ ) | ||
281 | wt[j * 40 + k] = drp[k]; | ||
282 | } | ||
283 | |||
284 | gsm_dec_Short_Term_Synthesis_Filter( S, LARcr, wt, s ); | ||
285 | gsm_dec_Postprocessing( S, s ); | ||
286 | } | ||
287 | |||
288 | /* 4.3.2 */ | ||
289 | void gsm_dec_Long_Term_Synthesis_Filtering( | ||
290 | struct gsm_state *S, | ||
291 | word Ncr, word bcr, word *erp, /* [0..39] IN */ | ||
292 | word *drp /* [-120..-1] IN, [0..40] OUT */ | ||
293 | ) | ||
294 | /* | ||
295 | This procedure uses the bcr and Ncr parameter to realize the | ||
296 | long term synthesis filtering. The decoding of bcr needs | ||
297 | table 4.3b. | ||
298 | */ | ||
299 | { | ||
300 | longword ltmp; /* for ADD */ | ||
301 | int k; | ||
302 | word brp, drpp, Nr; | ||
303 | |||
304 | /* Check the limits of Nr. | ||
305 | */ | ||
306 | Nr = Ncr < 40 || Ncr > 120 ? S->nrp : Ncr; | ||
307 | S->nrp = Nr; | ||
308 | |||
309 | /* Decoding of the LTP gain bcr | ||
310 | */ | ||
311 | brp = gsm_dec_QLB[bcr]; | ||
312 | |||
313 | /* Computation of the reconstructed short term residual | ||
314 | signal drp[0..39] | ||
315 | */ | ||
316 | |||
317 | _Pragma( "loopbound min 40 max 40" ) | ||
318 | for ( k = 0; k <= 39; k++ ) { | ||
319 | drpp = GSM_MULT_R( brp, drp[k - Nr] ); | ||
320 | drp[k] = GSM_ADD( erp[k], drpp ); | ||
321 | } | ||
322 | |||
323 | /* | ||
324 | Update of the reconstructed short term residual signal | ||
325 | drp[ -1..-120 ] | ||
326 | */ | ||
327 | |||
328 | _Pragma( "loopbound min 120 max 120" ) | ||
329 | for ( k = 0; k <= 119; k++ ) | ||
330 | drp[-120 + k] = drp[-80 + k]; | ||
331 | } | ||
332 | |||
333 | void gsm_dec_RPE_Decoding( word xmaxcr, word Mcr, | ||
334 | word *xMcr, /* [0..12], 3 bits IN */ | ||
335 | word *erp ) /* [0..39] OUT */ | ||
336 | { | ||
337 | word exp, mant; | ||
338 | word xMp[13]; | ||
339 | |||
340 | gsm_dec_APCM_quantization_xmaxc_to_exp_mant( xmaxcr, &exp, &mant ); | ||
341 | gsm_dec_APCM_inverse_quantization( xMcr, mant, exp, xMp ); | ||
342 | gsm_dec_RPE_grid_positioning( Mcr, xMp, erp ); | ||
343 | } | ||
344 | |||
345 | /* 4.2.17 */ | ||
346 | void gsm_dec_RPE_grid_positioning( | ||
347 | word Mc, /* grid position IN */ | ||
348 | word *xMp, /* [0..12] IN */ | ||
349 | word *ep /* [0..39] OUT */ ) | ||
350 | /* | ||
351 | This procedure computes the reconstructed long term residual signal | ||
352 | ep[0..39] for the LTP analysis filter. The inputs are the Mc | ||
353 | which is the grid position selection and the xMp[0..12] decoded | ||
354 | RPE samples which are upsampled by a factor of 3 by inserting zero | ||
355 | values. | ||
356 | */ | ||
357 | { | ||
358 | int i = 13; | ||
359 | |||
360 | /* Rewritten Duff's device for WCET analysis! */ | ||
361 | switch ( Mc ) { | ||
362 | case 3: | ||
363 | *ep++ = 0; | ||
364 | case 2: | ||
365 | *ep++ = 0; | ||
366 | case 1: | ||
367 | *ep++ = 0; | ||
368 | case 0: | ||
369 | *ep++ = *xMp++; | ||
370 | i--; | ||
371 | } | ||
372 | |||
373 | _Pragma( "loopbound min 12 max 12" ) | ||
374 | do { | ||
375 | *ep++ = 0; | ||
376 | *ep++ = 0; | ||
377 | *ep++ = *xMp++; | ||
378 | } while ( --i ); | ||
379 | |||
380 | _Pragma( "loopbound min 0 max 2" ) | ||
381 | while ( ++Mc < 4 ) | ||
382 | *ep++ = 0; | ||
383 | |||
384 | } | ||
385 | |||
386 | /* 4.2.16 */ | ||
387 | void gsm_dec_APCM_inverse_quantization( word *xMc, /* [0..12] IN */ | ||
388 | word mant, | ||
389 | word exp, | ||
390 | word *xMp ) /* [0..12] OUT */ | ||
391 | /* | ||
392 | This part is for decoding the RPE sequence of coded xMc[0..12] | ||
393 | samples to obtain the xMp[0..12] array. Table 4.6 is used to get | ||
394 | the mantissa of xmaxc (FAC[0..7]). | ||
395 | */ | ||
396 | { | ||
397 | int i; | ||
398 | word temp, temp1, temp2, temp3; | ||
399 | longword ltmp; | ||
400 | |||
401 | temp1 = gsm_dec_FAC[mant]; /* see 4.2-15 for mant */ | ||
402 | temp2 = gsm_dec_sub( 6, exp ); /* see 4.2-15 for exp */ | ||
403 | temp3 = gsm_dec_asl( 1, gsm_dec_sub( temp2, 1 ) ); | ||
404 | |||
405 | _Pragma( "loopbound min 13 max 13" ) | ||
406 | for ( i = 13; i--; ) { | ||
407 | |||
408 | /* temp = gsm_sub( *xMc++ << 1, 7 ); */ | ||
409 | temp = ( *xMc++ << 1 ) - 7; /* restore sign */ | ||
410 | |||
411 | temp <<= 12; /* 16 bit signed */ | ||
412 | temp = GSM_MULT_R( temp1, temp ); | ||
413 | temp = GSM_ADD( temp, temp3 ); | ||
414 | *xMp++ = gsm_dec_asr( temp, temp2 ); | ||
415 | } | ||
416 | } | ||
417 | |||
418 | /* | ||
419 | 4.2.4 .. 4.2.7 LPC ANALYSIS SECTION | ||
420 | */ | ||
421 | word gsm_dec_asr( word a, int n ) | ||
422 | { | ||
423 | if ( n >= 16 ) | ||
424 | return -( a < 0 ); | ||
425 | if ( n <= -16 ) | ||
426 | return 0; | ||
427 | if ( n < 0 ) | ||
428 | return a << -n; | ||
429 | |||
430 | return a >> n; | ||
431 | } | ||
432 | |||
433 | /* rpe.c */ | ||
434 | /* 4.12.15 */ | ||
435 | void gsm_dec_APCM_quantization_xmaxc_to_exp_mant( word xmaxc, /* IN */ | ||
436 | word *exp_out, /* OUT */ | ||
437 | word *mant_out ) /* OUT */ | ||
438 | { | ||
439 | word exp, mant; | ||
440 | |||
441 | /* Compute exponent and mantissa of the decoded version of xmaxc | ||
442 | */ | ||
443 | exp = 0; | ||
444 | if ( xmaxc > 15 ) | ||
445 | exp = SASR( xmaxc, 3 ) - 1; | ||
446 | mant = xmaxc - ( exp << 3 ); | ||
447 | |||
448 | if ( mant == 0 ) { | ||
449 | exp = -4; | ||
450 | mant = 7; | ||
451 | } else { | ||
452 | _Pragma( "loopbound min 0 max 3" ) | ||
453 | while ( mant <= 7 ) { | ||
454 | mant = mant << 1 | 1; | ||
455 | exp--; | ||
456 | } | ||
457 | mant -= 8; | ||
458 | } | ||
459 | |||
460 | *exp_out = exp; | ||
461 | *mant_out = mant; | ||
462 | } | ||
463 | |||
464 | /* decode.c */ | ||
465 | /* | ||
466 | 4.3 FIXED POINT IMPLEMENTATION OF THE RPE-LTP DECODER | ||
467 | */ | ||
468 | void gsm_dec_Postprocessing( struct gsm_state *S, word *s ) | ||
469 | { | ||
470 | int k; | ||
471 | word msr = S->msr; | ||
472 | longword ltmp; /* for GSM_ADD */ | ||
473 | word tmp; | ||
474 | |||
475 | _Pragma( "loopbound min 159 max 159" ) | ||
476 | for ( k = 160; --k; ++s ) { | ||
477 | tmp = GSM_MULT_R( msr, 28180 ); | ||
478 | msr = GSM_ADD( *s, tmp ); /* Deemphasis */ | ||
479 | *s = GSM_ADD( msr, msr ) & 0xFFF8; /* Truncation & Upscaling */ | ||
480 | } | ||
481 | S->msr = msr; | ||
482 | } | ||
483 | |||
484 | void gsm_dec_Coefficients_13_26( word *LARpp_j_1, word *LARpp_j, word *LARp ) | ||
485 | { | ||
486 | int i; | ||
487 | longword ltmp; | ||
488 | _Pragma( "loopbound min 8 max 8" ) | ||
489 | for ( i = 1; i <= 8; i++, LARpp_j_1++, LARpp_j++, LARp++ ) | ||
490 | *LARp = GSM_ADD( SASR( *LARpp_j_1, 1 ), SASR( *LARpp_j, 1 ) ); | ||
491 | } | ||
492 | |||
493 | void gsm_dec_Coefficients_40_159( word *LARpp_j, word *LARp ) | ||
494 | { | ||
495 | int i; | ||
496 | |||
497 | _Pragma( "loopbound min 8 max 8" ) | ||
498 | for ( i = 1; i <= 8; i++, LARp++, LARpp_j++ ) | ||
499 | *LARp = *LARpp_j; | ||
500 | } | ||
501 | |||
502 | void gsm_dec_Short_term_synthesis_filtering( struct gsm_state *S, | ||
503 | word *rrp, /* [0..7] IN */ | ||
504 | int k, /* k_end - k_start */ | ||
505 | word *wt, /* [0..k-1] IN */ | ||
506 | word *sr ) /* [0..k-1] OUT */ | ||
507 | { | ||
508 | word *v = S->v; | ||
509 | int i; | ||
510 | word sri, tmp1, tmp2; | ||
511 | longword ltmp; /* for GSM_ADD & GSM_SUB */ | ||
512 | |||
513 | _Pragma( "loopbound min 12 max 118" ) | ||
514 | while ( --k ) { | ||
515 | sri = *wt++; | ||
516 | _Pragma( "loopbound min 8 max 8" ) | ||
517 | for ( i = 8; i--; ) { | ||
518 | |||
519 | /* sri = GSM_SUB( sri, gsm_mult_r( rrp[i], v[i] ) ); | ||
520 | */ | ||
521 | tmp1 = rrp[i]; | ||
522 | tmp2 = v[i]; | ||
523 | tmp2 = | ||
524 | ( tmp1 == MIN_WORD && tmp2 == MIN_WORD | ||
525 | ? MAX_WORD | ||
526 | : 0x0FFFF & ( ( ( longword )tmp1 * ( longword )tmp2 + 16384 ) >> 15 ) ); | ||
527 | |||
528 | sri = GSM_SUB( sri, tmp2 ); | ||
529 | |||
530 | /* v[i+1] = GSM_ADD( v[i], gsm_mult_r( rrp[i], sri ) ); | ||
531 | */ | ||
532 | tmp1 = ( tmp1 == MIN_WORD && sri == MIN_WORD | ||
533 | ? MAX_WORD | ||
534 | : 0x0FFFF & ( ( ( longword )tmp1 * ( longword )sri + 16384 ) >> 15 ) ); | ||
535 | |||
536 | v[i + 1] = GSM_ADD( v[i], tmp1 ); | ||
537 | } | ||
538 | *sr++ = v[0] = sri; | ||
539 | } | ||
540 | } | ||
541 | |||
542 | void gsm_dec_Short_Term_Synthesis_Filter( | ||
543 | struct gsm_state *S, | ||
544 | word *LARcr, /* received log area ratios [0..7] IN */ | ||
545 | word *wt, /* received d [0..159] IN */ | ||
546 | word *s /* signal s [0..159] OUT */ | ||
547 | ) | ||
548 | { | ||
549 | word *LARpp_j = S->LARpp[S->j]; | ||
550 | word *LARpp_j_1 = S->LARpp[S->j ^= 1]; | ||
551 | |||
552 | word LARp[8]; | ||
553 | |||
554 | gsm_dec_Decoding_of_the_coded_Log_Area_Ratios( LARcr, LARpp_j ); | ||
555 | |||
556 | gsm_dec_Coefficients_0_12( LARpp_j_1, LARpp_j, LARp ); | ||
557 | gsm_dec_LARp_to_rp( LARp ); | ||
558 | gsm_dec_Short_term_synthesis_filtering( S, LARp, 13, wt, s ); | ||
559 | |||
560 | gsm_dec_Coefficients_13_26( LARpp_j_1, LARpp_j, LARp ); | ||
561 | gsm_dec_LARp_to_rp( LARp ); | ||
562 | gsm_dec_Short_term_synthesis_filtering( S, LARp, 14, wt + 13, s + 13 ); | ||
563 | |||
564 | gsm_dec_Coefficients_27_39( LARpp_j_1, LARpp_j, LARp ); | ||
565 | gsm_dec_LARp_to_rp( LARp ); | ||
566 | gsm_dec_Short_term_synthesis_filtering( S, LARp, 13, wt + 27, s + 27 ); | ||
567 | |||
568 | gsm_dec_Coefficients_40_159( LARpp_j, LARp ); | ||
569 | gsm_dec_LARp_to_rp( LARp ); | ||
570 | gsm_dec_Short_term_synthesis_filtering( S, LARp, 120, wt + 40, s + 40 ); | ||
571 | } | ||
572 | |||
573 | void gsm_dec_Coefficients_27_39( word *LARpp_j_1, word *LARpp_j, word *LARp ) | ||
574 | { | ||
575 | int i; | ||
576 | longword ltmp; | ||
577 | |||
578 | _Pragma( "loopbound min 8 max 8" ) | ||
579 | for ( i = 1; i <= 8; i++, LARpp_j_1++, LARpp_j++, LARp++ ) { | ||
580 | *LARp = GSM_ADD( SASR( *LARpp_j_1, 2 ), SASR( *LARpp_j, 2 ) ); | ||
581 | *LARp = GSM_ADD( *LARp, SASR( *LARpp_j, 1 ) ); | ||
582 | } | ||
583 | } | ||
584 | |||
585 | /* | ||
586 | Initialization- and return-value-related functions | ||
587 | */ | ||
588 | |||
589 | gsm gsm_dec_create( void ) | ||
590 | { | ||
591 | unsigned int i; | ||
592 | gsm r; | ||
593 | volatile char x = 0; | ||
594 | |||
595 | r = &gsm_dec_state; | ||
596 | |||
597 | _Pragma( "loopbound min 648 max 648" ) | ||
598 | for ( i = 0; i < sizeof( *r ); i++ ) | ||
599 | ( ( char * )r )[i] = 0 + x; | ||
600 | |||
601 | r->nrp = 40; | ||
602 | |||
603 | return r; | ||
604 | } | ||
605 | |||
606 | void gsm_dec_init( void ) | ||
607 | { | ||
608 | gsm_dec_state_ptr = gsm_dec_create(); | ||
609 | } | ||
610 | |||
611 | int gsm_dec_return( void ) | ||
612 | { | ||
613 | return gsm_dec_result; | ||
614 | } | ||
615 | |||
616 | /* | ||
617 | Main functions | ||
618 | */ | ||
619 | |||
620 | /* gsm_decode.c */ | ||
621 | int gsm_dec_decode( gsm s, gsm_byte *c, gsm_signal *target ) | ||
622 | { | ||
623 | word LARc[8], Nc[4], Mc[4], bc[4], xmaxc[4], xmc[13 * 4]; | ||
624 | |||
625 | /* GSM_MAGIC = (*c >> 4) & 0xF; */ | ||
626 | |||
627 | if ( ( ( *c >> 4 ) & 0x0F ) != GSM_MAGIC ) | ||
628 | return -1; | ||
629 | |||
630 | LARc[0] = ( *c++ & 0xF ) << 2; /* 1 */ | ||
631 | LARc[0] |= ( *c >> 6 ) & 0x3; | ||
632 | LARc[1] = *c++ & 0x3F; | ||
633 | LARc[2] = ( *c >> 3 ) & 0x1F; | ||
634 | LARc[3] = ( *c++ & 0x7 ) << 2; | ||
635 | LARc[3] |= ( *c >> 6 ) & 0x3; | ||
636 | LARc[4] = ( *c >> 2 ) & 0xF; | ||
637 | LARc[5] = ( *c++ & 0x3 ) << 2; | ||
638 | LARc[5] |= ( *c >> 6 ) & 0x3; | ||
639 | LARc[6] = ( *c >> 3 ) & 0x7; | ||
640 | LARc[7] = *c++ & 0x7; | ||
641 | Nc[0] = ( *c >> 1 ) & 0x7F; | ||
642 | bc[0] = ( *c++ & 0x1 ) << 1; | ||
643 | bc[0] |= ( *c >> 7 ) & 0x1; | ||
644 | Mc[0] = ( *c >> 5 ) & 0x3; | ||
645 | xmaxc[0] = ( *c++ & 0x1F ) << 1; | ||
646 | xmaxc[0] |= ( *c >> 7 ) & 0x1; | ||
647 | xmc[0] = ( *c >> 4 ) & 0x7; | ||
648 | xmc[1] = ( *c >> 1 ) & 0x7; | ||
649 | xmc[2] = ( *c++ & 0x1 ) << 2; | ||
650 | xmc[2] |= ( *c >> 6 ) & 0x3; | ||
651 | xmc[3] = ( *c >> 3 ) & 0x7; | ||
652 | xmc[4] = *c++ & 0x7; | ||
653 | xmc[5] = ( *c >> 5 ) & 0x7; | ||
654 | xmc[6] = ( *c >> 2 ) & 0x7; | ||
655 | xmc[7] = ( *c++ & 0x3 ) << 1; /* 10 */ | ||
656 | xmc[7] |= ( *c >> 7 ) & 0x1; | ||
657 | xmc[8] = ( *c >> 4 ) & 0x7; | ||
658 | xmc[9] = ( *c >> 1 ) & 0x7; | ||
659 | xmc[10] = ( *c++ & 0x1 ) << 2; | ||
660 | xmc[10] |= ( *c >> 6 ) & 0x3; | ||
661 | xmc[11] = ( *c >> 3 ) & 0x7; | ||
662 | xmc[12] = *c++ & 0x7; | ||
663 | Nc[1] = ( *c >> 1 ) & 0x7F; | ||
664 | bc[1] = ( *c++ & 0x1 ) << 1; | ||
665 | bc[1] |= ( *c >> 7 ) & 0x1; | ||
666 | Mc[1] = ( *c >> 5 ) & 0x3; | ||
667 | xmaxc[1] = ( *c++ & 0x1F ) << 1; | ||
668 | xmaxc[1] |= ( *c >> 7 ) & 0x1; | ||
669 | xmc[13] = ( *c >> 4 ) & 0x7; | ||
670 | xmc[14] = ( *c >> 1 ) & 0x7; | ||
671 | xmc[15] = ( *c++ & 0x1 ) << 2; | ||
672 | xmc[15] |= ( *c >> 6 ) & 0x3; | ||
673 | xmc[16] = ( *c >> 3 ) & 0x7; | ||
674 | xmc[17] = *c++ & 0x7; | ||
675 | xmc[18] = ( *c >> 5 ) & 0x7; | ||
676 | xmc[19] = ( *c >> 2 ) & 0x7; | ||
677 | xmc[20] = ( *c++ & 0x3 ) << 1; | ||
678 | xmc[20] |= ( *c >> 7 ) & 0x1; | ||
679 | xmc[21] = ( *c >> 4 ) & 0x7; | ||
680 | xmc[22] = ( *c >> 1 ) & 0x7; | ||
681 | xmc[23] = ( *c++ & 0x1 ) << 2; | ||
682 | xmc[23] |= ( *c >> 6 ) & 0x3; | ||
683 | xmc[24] = ( *c >> 3 ) & 0x7; | ||
684 | xmc[25] = *c++ & 0x7; | ||
685 | Nc[2] = ( *c >> 1 ) & 0x7F; | ||
686 | bc[2] = ( *c++ & 0x1 ) << 1; /* 20 */ | ||
687 | bc[2] |= ( *c >> 7 ) & 0x1; | ||
688 | Mc[2] = ( *c >> 5 ) & 0x3; | ||
689 | xmaxc[2] = ( *c++ & 0x1F ) << 1; | ||
690 | xmaxc[2] |= ( *c >> 7 ) & 0x1; | ||
691 | xmc[26] = ( *c >> 4 ) & 0x7; | ||
692 | xmc[27] = ( *c >> 1 ) & 0x7; | ||
693 | xmc[28] = ( *c++ & 0x1 ) << 2; | ||
694 | xmc[28] |= ( *c >> 6 ) & 0x3; | ||
695 | xmc[29] = ( *c >> 3 ) & 0x7; | ||
696 | xmc[30] = *c++ & 0x7; | ||
697 | xmc[31] = ( *c >> 5 ) & 0x7; | ||
698 | xmc[32] = ( *c >> 2 ) & 0x7; | ||
699 | xmc[33] = ( *c++ & 0x3 ) << 1; | ||
700 | xmc[33] |= ( *c >> 7 ) & 0x1; | ||
701 | xmc[34] = ( *c >> 4 ) & 0x7; | ||
702 | xmc[35] = ( *c >> 1 ) & 0x7; | ||
703 | xmc[36] = ( *c++ & 0x1 ) << 2; | ||
704 | xmc[36] |= ( *c >> 6 ) & 0x3; | ||
705 | xmc[37] = ( *c >> 3 ) & 0x7; | ||
706 | xmc[38] = *c++ & 0x7; | ||
707 | Nc[3] = ( *c >> 1 ) & 0x7F; | ||
708 | bc[3] = ( *c++ & 0x1 ) << 1; | ||
709 | bc[3] |= ( *c >> 7 ) & 0x1; | ||
710 | Mc[3] = ( *c >> 5 ) & 0x3; | ||
711 | xmaxc[3] = ( *c++ & 0x1F ) << 1; | ||
712 | xmaxc[3] |= ( *c >> 7 ) & 0x1; | ||
713 | xmc[39] = ( *c >> 4 ) & 0x7; | ||
714 | xmc[40] = ( *c >> 1 ) & 0x7; | ||
715 | xmc[41] = ( *c++ & 0x1 ) << 2; | ||
716 | xmc[41] |= ( *c >> 6 ) & 0x3; | ||
717 | xmc[42] = ( *c >> 3 ) & 0x7; | ||
718 | xmc[43] = *c++ & 0x7; /* 30 */ | ||
719 | xmc[44] = ( *c >> 5 ) & 0x7; | ||
720 | xmc[45] = ( *c >> 2 ) & 0x7; | ||
721 | xmc[46] = ( *c++ & 0x3 ) << 1; | ||
722 | xmc[46] |= ( *c >> 7 ) & 0x1; | ||
723 | xmc[47] = ( *c >> 4 ) & 0x7; | ||
724 | xmc[48] = ( *c >> 1 ) & 0x7; | ||
725 | xmc[49] = ( *c++ & 0x1 ) << 2; | ||
726 | xmc[49] |= ( *c >> 6 ) & 0x3; | ||
727 | xmc[50] = ( *c >> 3 ) & 0x7; | ||
728 | xmc[51] = *c & 0x7; /* 33 */ | ||
729 | |||
730 | gsm_dec_Decoder( s, LARc, Nc, bc, Mc, xmaxc, xmc, target ); | ||
731 | |||
732 | return 0; | ||
733 | } | ||
734 | |||
735 | void _Pragma( "entrypoint" ) gsm_dec_main( void ) | ||
736 | { | ||
737 | gsm r; | ||
738 | unsigned i; | ||
739 | gsm_dec_result = 0; | ||
740 | |||
741 | r = gsm_dec_state_ptr; | ||
742 | |||
743 | _Pragma( "loopbound min 1 max 1" ) | ||
744 | for ( i = 0; i < SAMPLES; i++ ) { | ||
745 | if ( gsm_dec_decode( r, gsm_dec_gsmdata + i * sizeof( gsm_frame ), | ||
746 | gsm_dec_pcmdata + i * 160 ) ) { | ||
747 | gsm_dec_result = 1; | ||
748 | return; | ||
749 | } | ||
750 | } | ||
751 | } | ||
752 | |||
753 | int main( int argc, char **argv) | ||
754 | { | ||
755 | SET_UP | ||
756 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
757 | START_LOOP | ||
758 | gsm_dec_init(); | ||
759 | gsm_dec_main(); | ||
760 | STOP_LOOP | ||
761 | } | ||
762 | WRITE_TO_FILE | ||
763 | return ( gsm_dec_return() ); | ||
764 | } | ||
diff --git a/baseline/source/gsm_dec/private.h b/baseline/source/gsm_dec/private.h new file mode 100644 index 0000000..80b5c83 --- /dev/null +++ b/baseline/source/gsm_dec/private.h | |||
@@ -0,0 +1,44 @@ | |||
1 | #ifndef GSM_DEC_PRIVATE_H | ||
2 | #define GSM_DEC_PRIVATE_H | ||
3 | |||
4 | typedef short word; /* 16 bit signed int */ | ||
5 | typedef long longword; /* 32 bit signed int */ | ||
6 | |||
7 | typedef unsigned short uword; /* unsigned word */ | ||
8 | typedef unsigned long ulongword; /* unsigned longword */ | ||
9 | |||
10 | /* Table 4.6 Normalized direct mantissa used to compute xM/xmax | ||
11 | */ | ||
12 | /* i 0 1 2 3 4 5 6 7 */ | ||
13 | word gsm_dec_FAC[8] = { | ||
14 | 18431, 20479, 22527, 24575, 26623, 28671, 30719, 32767 }; | ||
15 | |||
16 | struct gsm_state { | ||
17 | word dp0[ 280 ]; | ||
18 | word z1; /* preprocessing.c, Offset_com. */ | ||
19 | longword L_z2; /* Offset_com. */ | ||
20 | int mp; /* Preemphasis */ | ||
21 | word u[8]; /* short_term_aly_filter.c */ | ||
22 | word LARpp[2][8]; /* */ | ||
23 | word j; /* */ | ||
24 | word nrp; /* 40 */ /* long_term.c, synthesis */ | ||
25 | word v[9]; /* short_term.c, synthesis */ | ||
26 | word msr; /* decoder.c, Postprocessing */ | ||
27 | }; | ||
28 | |||
29 | |||
30 | #define MIN_WORD ((-32767)-1) | ||
31 | #define MAX_WORD ( 32767) | ||
32 | |||
33 | #define MIN_LONGWORD ((-2147483647)-1) | ||
34 | #define MAX_LONGWORD ( 2147483647) | ||
35 | |||
36 | /* >> is a signed arithmetic shift right */ | ||
37 | #define SASR(x, by) ((x) >> (by)) | ||
38 | |||
39 | /* Table 4.3b Quantization levels of the LTP gain quantizer | ||
40 | */ | ||
41 | /* bc 0 1 2 3 */ | ||
42 | word gsm_dec_QLB[4] = { 3277, 11469, 21299, 32767 }; | ||
43 | |||
44 | #endif /* GSM_DEC_PRIVATE_H */ | ||
diff --git a/baseline/source/gsm_enc/COPYRIGHT b/baseline/source/gsm_enc/COPYRIGHT new file mode 100644 index 0000000..eba0e52 --- /dev/null +++ b/baseline/source/gsm_enc/COPYRIGHT | |||
@@ -0,0 +1,16 @@ | |||
1 | Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, | ||
2 | Technische Universitaet Berlin | ||
3 | |||
4 | Any use of this software is permitted provided that this notice is not | ||
5 | removed and that neither the authors nor the Technische Universitaet Berlin | ||
6 | are deemed to have made any representations as to the suitability of this | ||
7 | software for any purpose nor are held responsible for any defects of | ||
8 | this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. | ||
9 | |||
10 | As a matter of courtesy, the authors request to be informed about uses | ||
11 | this software has found, about bugs in this software, and about any | ||
12 | improvements that may be of general interest. | ||
13 | |||
14 | Berlin, 28.11.1994 | ||
15 | Jutta Degener | ||
16 | Carsten Bormann | ||
diff --git a/baseline/source/gsm_enc/ChangeLog.txt b/baseline/source/gsm_enc/ChangeLog.txt new file mode 100644 index 0000000..4dbeeda --- /dev/null +++ b/baseline/source/gsm_enc/ChangeLog.txt | |||
@@ -0,0 +1,8 @@ | |||
1 | 2017-06-28: | ||
2 | - Rename benchmark to gsm_enc. | ||
3 | - Add prefix 'gsm_enc_'. | ||
4 | - Introduce gsm_enc_init and gsm_enc_return functions. | ||
5 | - Rewrite negative shifts to avoid undefined behavior. | ||
6 | - Fix comparisons between signed and unsigned types. | ||
7 | - Remove unused variables and parameters. | ||
8 | - Fix memory corruption in gsm_enc_Short_term_analysis_filtering. | ||
diff --git a/baseline/source/gsm_enc/data.h b/baseline/source/gsm_enc/data.h new file mode 100644 index 0000000..e656335 --- /dev/null +++ b/baseline/source/gsm_enc/data.h | |||
@@ -0,0 +1,452 @@ | |||
1 | #ifndef DATA_H | ||
2 | #define DATA_H | ||
3 | |||
4 | gsm_signal gsm_enc_pcmdata[] = { | ||
5 | (short)0x0000, (short)0x0000, (short)0x0010, (short)0x0010, (short)0x0010, (short)0x0020, (short)0x0020, (short)0x0018, | ||
6 | (short)0x0028, (short)0x0020, (short)0x0020, (short)0x0028, (short)0x0028, (short)0x0020, (short)0x0030, (short)0x0030, | ||
7 | (short)0x0028, (short)0x0010, (short)0x0008, (short)0x0000, (short)0x0050, (short)0x0060, (short)0x0058, (short)0x00D0, | ||
8 | (short)0x00E0, (short)0x00D0, (short)0x0118, (short)0x0128, (short)0x0118, (short)0x0128, (short)0x0110, (short)0x0100, | ||
9 | (short)0x00A0, (short)0x0058, (short)0x0048, (short)0x0058, (short)0x0060, (short)0x0058, (short)0x0050, (short)0x0048, | ||
10 | (short)0x0040, (short)0x0030, (short)0x0020, (short)0x0010, (short)0x0008, (short)0xFFF8, (short)0xFFE8, (short)0xFFE0, | ||
11 | (short)0xFFD8, (short)0xFFC8, (short)0xFFC0, (short)0xFFC0, (short)0xFF98, (short)0xFF78, (short)0xFF78, (short)0xFFC8, | ||
12 | (short)0x0000, (short)0x0010, (short)0x0040, (short)0x0060, (short)0x0068, (short)0x0078, (short)0x0078, (short)0x0070, | ||
13 | (short)0x00A8, (short)0x00C8, (short)0x00C8, (short)0x00E0, (short)0x00F0, (short)0x00E8, (short)0x00F8, (short)0x00F8, | ||
14 | (short)0x00F0, (short)0x00E0, (short)0x00C8, (short)0x00B8, (short)0x00E8, (short)0x0100, (short)0x00F8, (short)0x00E8, | ||
15 | (short)0x00D8, (short)0x00C0, (short)0x00A8, (short)0x0020, (short)0xFFC0, (short)0xFFA0, (short)0xFFA0, (short)0xFFA8, | ||
16 | (short)0xFFB0, (short)0xFFD0, (short)0xFFF8, (short)0x0000, (short)0x0020, (short)0x0030, (short)0x0030, (short)0x0030, | ||
17 | (short)0x0028, (short)0x0020, (short)0xFFF0, (short)0xFFD0, (short)0xFFC8, (short)0xFFC8, (short)0xFFD0, (short)0xFFD8, | ||
18 | (short)0xFFE8, (short)0xFFF8, (short)0xFFF8, (short)0x0008, (short)0x0018, (short)0x0018, (short)0x0078, (short)0x00B8, | ||
19 | (short)0x00C0, (short)0x0100, (short)0x0130, (short)0x0128, (short)0x0108, (short)0x00D8, (short)0x00C0, (short)0x0078, | ||
20 | (short)0x0038, (short)0x0020, (short)0x0020, (short)0x0000, (short)0xFFE0, (short)0xFFE0, (short)0xFFD8, (short)0xFFC8, | ||
21 | (short)0xFFC8, (short)0xFFA0, (short)0xFF88, (short)0xFF98, (short)0xFF80, (short)0xFF70, (short)0xFF80, (short)0xFF78, | ||
22 | (short)0xFF78, (short)0xFF90, (short)0xFF80, (short)0xFF78, (short)0xFF78, (short)0xFF50, (short)0xFF30, (short)0xFF50, | ||
23 | (short)0xFF38, (short)0xFF30, (short)0xFF40, (short)0xFF58, (short)0xFF70, (short)0xFF80, (short)0xFF50, (short)0xFF38, | ||
24 | (short)0xFF40, (short)0xFF18, (short)0xFF00, (short)0xFF08, (short)0xFF40, (short)0xFF68, (short)0xFF80, (short)0xFF88, | ||
25 | (short)0xFF88, (short)0xFF88, (short)0xFF88, (short)0xFFB8, (short)0xFFE0, (short)0xFFF0, (short)0xFFD0, (short)0xFFB8, | ||
26 | (short)0xFFB8, (short)0xFF90, (short)0xFF70, (short)0xFF70, (short)0xFF50, (short)0xFF40, (short)0xFF40, (short)0xFF58, | ||
27 | (short)0xFF70, (short)0xFF80, (short)0xFFC8, (short)0x0000, (short)0x0018, (short)0x0030, (short)0x0048, (short)0x0048, | ||
28 | (short)0x0028, (short)0x0008, (short)0xFFF8, (short)0xFFD8, (short)0xFFC8, (short)0xFFB8, (short)0xFF98, (short)0xFF78, | ||
29 | (short)0xFF70, (short)0xFFF0, (short)0x0058, (short)0x0088, (short)0x00B8, (short)0x00D0, (short)0x00D8, (short)0x00E8, | ||
30 | (short)0x0138, (short)0x0160, (short)0x0158, (short)0x0170, (short)0x0178, (short)0x0160, (short)0x0168, (short)0x0160, | ||
31 | (short)0x0140, (short)0x0118, (short)0x00F0, (short)0x00C8, (short)0x0098, (short)0x0078, (short)0x0060, (short)0x0018, | ||
32 | (short)0xFFC0, (short)0xFF90, (short)0xFF48, (short)0xFF00, (short)0xFEE8, (short)0xFEC8, (short)0xFEB8, (short)0xFEB8, | ||
33 | (short)0xFEA0, (short)0xFE88, (short)0xFE80, (short)0xFEB8, (short)0xFEF8, (short)0xFF38, (short)0xFFA0, (short)0xFFE8, | ||
34 | (short)0x0008, (short)0x0030, (short)0x0058, (short)0x0068, (short)0x0068, (short)0x0070, (short)0x0068, (short)0x0050, | ||
35 | (short)0x0040, (short)0x0040, (short)0x0020, (short)0x0000, (short)0xFFE8, (short)0xFFF0, (short)0xFFF8, (short)0xFFF8, | ||
36 | (short)0x0038, (short)0x0068, (short)0x0078, (short)0x0038, (short)0x0008, (short)0xFFF0, (short)0xFFE0, (short)0xFFD8, | ||
37 | (short)0xFFD8, (short)0xFFE0, (short)0xFFD0, (short)0xFFC8, (short)0x0000, (short)0x0030, (short)0x0048, (short)0x0068, | ||
38 | (short)0x0080, (short)0x0088, (short)0x0088, (short)0x0088, (short)0x0088, (short)0x0088, (short)0x0088, (short)0x0078, | ||
39 | (short)0x0098, (short)0x00B0, (short)0x00B8, (short)0x0098, (short)0x0070, (short)0x0058, (short)0x0060, (short)0x0078, | ||
40 | (short)0x00A8, (short)0x00B8, (short)0x00A8, (short)0x00A0, (short)0x0080, (short)0x0068, (short)0x0060, (short)0x0058, | ||
41 | (short)0x0048, (short)0x0030, (short)0x0038, (short)0x0038, (short)0x0030, (short)0x0050, (short)0x0058, (short)0x0060, | ||
42 | (short)0x0030, (short)0x0008, (short)0xFFF8, (short)0xFF90, (short)0xFF48, (short)0xFF28, (short)0xFF10, (short)0xFEF8, | ||
43 | (short)0xFEF0, (short)0xFED8, (short)0xFEB0, (short)0xFEB0, (short)0xFEA8, (short)0xFEB8, (short)0xFED8, (short)0xFEF8, | ||
44 | (short)0xFF10, (short)0xFF20, (short)0xFF40, (short)0xFF58, (short)0xFF80, (short)0xFFA0, (short)0xFFB8, (short)0xFFC8, | ||
45 | (short)0xFFD8, (short)0xFFE0, (short)0xFFF0, (short)0x0048, (short)0x0098, (short)0x00B0, (short)0x0068, (short)0x0018, | ||
46 | (short)0xFFF8, (short)0xFFE8, (short)0xFFF0, (short)0xFFF8, (short)0x0020, (short)0x0038, (short)0x0038, (short)0x0050, | ||
47 | (short)0x0068, (short)0x0070, (short)0x0068, (short)0x0060, (short)0x0060, (short)0x0038, (short)0x0020, (short)0x0018, | ||
48 | (short)0x0040, (short)0x0060, (short)0x0068, (short)0x0040, (short)0x0010, (short)0x0000, (short)0xFFB0, (short)0xFF78, | ||
49 | (short)0xFF70, (short)0xFF90, (short)0xFFA8, (short)0xFFC8, (short)0xFF98, (short)0xFF50, (short)0xFF50, (short)0xFF50, | ||
50 | (short)0xFF58, (short)0xFF68, (short)0xFF48, (short)0xFF20, (short)0xFF18, (short)0xFF38, (short)0xFF60, (short)0xFF70, | ||
51 | (short)0xFF80, (short)0xFF98, (short)0xFFA0, (short)0xFFB8, (short)0xFFD0, (short)0xFFE0, (short)0x0018, (short)0x0048, | ||
52 | (short)0x0058, (short)0x00B0, (short)0x00F8, (short)0x0108, (short)0x0118, (short)0x0120, (short)0x0118, (short)0x0130, | ||
53 | (short)0x0148, (short)0x0140, (short)0x0130, (short)0x0120, (short)0x0108, (short)0x0098, (short)0x0038, (short)0x0018, | ||
54 | (short)0xFFD0, (short)0xFF90, (short)0xFF80, (short)0xFF58, (short)0xFF38, (short)0xFF30, (short)0xFF48, (short)0xFF68, | ||
55 | (short)0xFF78, (short)0xFF88, (short)0xFFB8, (short)0xFFD8, (short)0xFFE8, (short)0xFFD8, (short)0xFFF0, (short)0x0010, | ||
56 | (short)0x0020, (short)0x0020, (short)0x0018, (short)0x0028, (short)0x0030, (short)0x0030, (short)0x0038, (short)0x0060, | ||
57 | (short)0x0080, (short)0x0080, (short)0x00B0, (short)0x00D8, (short)0x00D0, (short)0x00B8, (short)0x00A8, (short)0x00A8, | ||
58 | (short)0x00A0, (short)0x0090, (short)0x0078, (short)0x0070, (short)0x0068, (short)0x0048, (short)0x0018, (short)0x0008, | ||
59 | (short)0x0008, (short)0x0000, (short)0x0000, (short)0xFFE8, (short)0xFFB0, (short)0xFF90, (short)0xFF88, (short)0xFF70, | ||
60 | (short)0xFF60, (short)0xFF60, (short)0xFF90, (short)0xFFC0, (short)0xFFD0, (short)0xFFD8, (short)0xFFE0, (short)0xFFE8, | ||
61 | (short)0x0018, (short)0x0050, (short)0x0058, (short)0x0030, (short)0x0008, (short)0x0000, (short)0x0018, (short)0x0038, | ||
62 | (short)0x0038, (short)0x0048, (short)0x0050, (short)0x0050, (short)0x0020, (short)0x0000, (short)0xFFF8, (short)0xFFB0, | ||
63 | (short)0xFF70, (short)0xFF68, (short)0xFFB0, (short)0xFFE8, (short)0xFFF8, (short)0xFFF8, (short)0xFFF8, (short)0xFFF0, | ||
64 | (short)0x0030, (short)0x0070, (short)0x0090, (short)0x0098, (short)0x0098, (short)0x0090, (short)0x00A0, (short)0x00B0, | ||
65 | (short)0x00B8, (short)0x00C0, (short)0x00C0, (short)0x00A8, (short)0x0098, (short)0x0088, (short)0x0078, (short)0x0050, | ||
66 | (short)0x0030, (short)0x0020, (short)0xFFD8, (short)0xFF98, (short)0xFF88, (short)0xFF50, (short)0xFF20, (short)0xFF18, | ||
67 | (short)0xFEF8, (short)0xFEE0, (short)0xFEE8, (short)0xFE70, (short)0xFE08, (short)0xFE00, (short)0xFE48, (short)0xFE98, | ||
68 | (short)0xFEB8, (short)0xFEE8, (short)0xFF10, (short)0xFF28, (short)0xFF18, (short)0xFF10, (short)0xFF18, (short)0xFF48, | ||
69 | (short)0xFF70, (short)0xFF88, (short)0xFFE0, (short)0x0028, (short)0x0040, (short)0x0058, (short)0x0068, (short)0x0070, | ||
70 | (short)0x0078, (short)0x0070, (short)0x0068, (short)0x0068, (short)0x0078, (short)0x0080, (short)0x0080, (short)0x0088, | ||
71 | (short)0x0088, (short)0x0080, (short)0x0058, (short)0x0030, (short)0x0020, (short)0x0018, (short)0x0018, (short)0x0018, | ||
72 | (short)0x0050, (short)0x0090, (short)0x00A0, (short)0x0080, (short)0x0060, (short)0x0050, (short)0x0030, (short)0x0018, | ||
73 | (short)0x0010, (short)0x0028, (short)0x0038, (short)0x0038, (short)0x0018, (short)0xFFF8, (short)0xFFF0, (short)0x0000, | ||
74 | (short)0x0020, (short)0x0020, (short)0x0030, (short)0x0030, (short)0x0030, (short)0x0040, (short)0x0050, (short)0x0050, | ||
75 | (short)0x0050, (short)0x0048, (short)0x0048, (short)0x0048, (short)0x0048, (short)0x0048, (short)0x0078, (short)0x00A0, | ||
76 | (short)0x00A8, (short)0x00C0, (short)0x00C8, (short)0x00C0, (short)0x00D0, (short)0x00E0, (short)0x00D8, (short)0x00E8, | ||
77 | (short)0x00F0, (short)0x00E0, (short)0x0100, (short)0x0118, (short)0x0110, (short)0x0100, (short)0x00F0, (short)0x00D8, | ||
78 | (short)0x0090, (short)0x0048, (short)0x0028, (short)0x0020, (short)0x0020, (short)0x0020, (short)0x0038, (short)0x0050, | ||
79 | (short)0x0050, (short)0x0050, (short)0x0048, (short)0x0040, (short)0x0050, (short)0x0060, (short)0x0060, (short)0x0040, | ||
80 | (short)0xFFC0, (short)0xFF58, (short)0xFF40, (short)0xFF90, (short)0xFFE8, (short)0x0000, (short)0x0020, (short)0x0030, | ||
81 | (short)0x0030, (short)0x0068, (short)0x0098, (short)0x00A8, (short)0x0110, (short)0x0168, (short)0x0170, (short)0x0148, | ||
82 | (short)0x0118, (short)0x00F0, (short)0x00E8, (short)0x00E0, (short)0x00D0, (short)0x0098, (short)0x0060, (short)0x0040, | ||
83 | (short)0x0000, (short)0xFFD8, (short)0xFFD8, (short)0xFFC0, (short)0xFFB0, (short)0xFFB0, (short)0xFF78, (short)0xFF30, | ||
84 | (short)0xFF10, (short)0xFEF0, (short)0xFEE8, (short)0xFEF0, (short)0xFEC8, (short)0xFED0, (short)0xFEF8, (short)0xFF00, | ||
85 | (short)0xFF10, (short)0xFF20, (short)0xFF50, (short)0xFF78, (short)0xFF90, (short)0xFF80, (short)0xFF70, (short)0xFF70, | ||
86 | (short)0xFF80, (short)0xFF98, (short)0xFFA0, (short)0xFFB8, (short)0xFFD0, (short)0xFFD8, (short)0xFFF0, (short)0x0000, | ||
87 | (short)0x0008, (short)0x0028, (short)0x0048, (short)0x0058, (short)0x0078, (short)0x0070, (short)0x0058, (short)0x0068, | ||
88 | (short)0x0098, (short)0x00B8, (short)0x00D8, (short)0x00F0, (short)0x00F0, (short)0x00E8, (short)0x00F8, (short)0x0100, | ||
89 | (short)0x00D8, (short)0x00D0, (short)0x00C8, (short)0x00E8, (short)0x0100, (short)0x00F0, (short)0x00E0, (short)0x00C8, | ||
90 | (short)0x00B8, (short)0x00A0, (short)0x0078, (short)0x0058, (short)0x0038, (short)0x0020, (short)0x0010, (short)0x0010, | ||
91 | (short)0x0018, (short)0x0010, (short)0x0010, (short)0x0010, (short)0x0018, (short)0x0028, (short)0x0008, (short)0xFFE0, | ||
92 | (short)0xFFC8, (short)0xFF80, (short)0xFF48, (short)0xFF38, (short)0xFF40, (short)0xFF48, (short)0xFF48, (short)0xFF70, | ||
93 | (short)0xFF90, (short)0xFFA8, (short)0xFFB8, (short)0xFFC0, (short)0xFFC8, (short)0xFFC0, (short)0xFFC0, (short)0xFFC0, | ||
94 | (short)0xFFB0, (short)0xFFA0, (short)0xFFA0, (short)0xFFA0, (short)0xFFA8, (short)0xFFB0, (short)0xFF68, (short)0xFF28, | ||
95 | (short)0xFF08, (short)0xFEF8, (short)0xFEF8, (short)0xFEE8, (short)0xFEE0, (short)0xFED8, (short)0xFEA8, (short)0xFE98, | ||
96 | (short)0xFEA8, (short)0xFEA8, (short)0xFEA0, (short)0xFEA0, (short)0xFED0, (short)0xFF00, (short)0xFF30, (short)0xFF28, | ||
97 | (short)0xFF38, (short)0xFF58, (short)0xFF48, (short)0xFF40, (short)0xFF48, (short)0xFFB0, (short)0x0010, (short)0x0038, | ||
98 | (short)0x0028, (short)0x0010, (short)0x0008, (short)0x0050, (short)0x00A0, (short)0x00B8, (short)0x00A0, (short)0x0080, | ||
99 | (short)0x0070, (short)0x0090, (short)0x00B0, (short)0x00B0, (short)0x00B8, (short)0x00B8, (short)0x00B0, (short)0x00C0, | ||
100 | (short)0x00D0, (short)0x00C8, (short)0x00A0, (short)0x0068, (short)0x0038, (short)0xFFF0, (short)0xFFB0, (short)0xFF88, | ||
101 | (short)0xFF78, (short)0xFF68, (short)0xFF60, (short)0xFF90, (short)0xFFC0, (short)0xFFE0, (short)0x0000, (short)0x0020, | ||
102 | (short)0x0030, (short)0x00A0, (short)0x0110, (short)0x0138, (short)0x0140, (short)0x0148, (short)0x0148, (short)0x0110, | ||
103 | (short)0x00E8, (short)0x00C0, (short)0x00A0, (short)0x0088, (short)0x0068, (short)0x0008, (short)0xFFB0, (short)0xFF88, | ||
104 | (short)0xFF58, (short)0xFF30, (short)0xFF20, (short)0xFEF8, (short)0xFED8, (short)0xFED8, (short)0xFF00, (short)0xFF20, | ||
105 | (short)0xFF38, (short)0xFF50, (short)0xFF68, (short)0xFF88, (short)0xFFA0, (short)0xFFB8, (short)0x0020, (short)0x0080, | ||
106 | (short)0x00A0, (short)0x00D8, (short)0x0100, (short)0x0100, (short)0x0138, (short)0x0168, (short)0x0148, (short)0x0128, | ||
107 | (short)0x0120, (short)0x00F8, (short)0x00E8, (short)0x00E0, (short)0x00C0, (short)0x00A8, (short)0x00B0, (short)0x0098, | ||
108 | (short)0x0070, (short)0x0048, (short)0x0030, (short)0xFFD0, (short)0xFF60, (short)0xFF48, (short)0xFF10, (short)0xFEA8, | ||
109 | (short)0xFEA8, (short)0xFEC0, (short)0xFEC0, (short)0xFEE8, (short)0xFEB0, (short)0xFE58, (short)0xFE88, (short)0xFED0, | ||
110 | (short)0xFEB8, (short)0xFE48, (short)0xFE58, (short)0xFEE8, (short)0xFF28, (short)0xFF18, (short)0xFF60, (short)0x00A0, | ||
111 | (short)0x01A0, (short)0x0188, (short)0x0178, (short)0x0208, (short)0x0208, (short)0x0100, (short)0x0018, (short)0xFFE0, | ||
112 | (short)0xFEE0, (short)0xFD68, (short)0xFD00, (short)0xFD60, (short)0xFD70, (short)0xFDA8, (short)0xFF00, (short)0x00A0, | ||
113 | (short)0x0170, (short)0x0210, (short)0x02D8, (short)0x0310, (short)0x0218, (short)0x00A0, (short)0xFFA0, (short)0xFDF0, | ||
114 | (short)0xFBD8, (short)0xFB08, (short)0xF9C0, (short)0xF830, (short)0xF8D8, (short)0xFCC0, (short)0x0038, (short)0x01A0, | ||
115 | (short)0x0380, (short)0x0A18, (short)0x0F50, (short)0x0DB0, (short)0x0C30, (short)0x0E18, (short)0x0CA8, (short)0x0570, | ||
116 | (short)0xFF98, (short)0xFE38, (short)0xFBA0, (short)0xF700, (short)0xF5D0, (short)0xF7C8, (short)0xF9A8, (short)0xFB48, | ||
117 | (short)0xFBB0, (short)0xFC78, (short)0xFF00, (short)0xFE98, (short)0xFB20, (short)0xFA48, (short)0xFAC0, (short)0xF8C8, | ||
118 | (short)0xF6E0, (short)0xF9C0, (short)0xFE08, (short)0xFF80, (short)0x0428, (short)0x0B70, (short)0x0E18, (short)0x0D38, | ||
119 | (short)0x0D38, (short)0x0C28, (short)0x01D0, (short)0xF578, (short)0xF108, (short)0xFB50, (short)0x0498, (short)0x0428, | ||
120 | (short)0x0CE8, (short)0x2190, (short)0x29F0, (short)0x22E0, (short)0x1F68, (short)0x2050, (short)0x1810, (short)0x0710, | ||
121 | (short)0xFA98, (short)0xF438, (short)0xEE68, (short)0xE950, (short)0xEBC8, (short)0xF538, (short)0xFEB8, (short)0x0240, | ||
122 | (short)0x0460, (short)0x09D0, (short)0x0978, (short)0xFFF8, (short)0xF810, (short)0xF190, (short)0xE8D0, (short)0xE290, | ||
123 | (short)0xDF60, (short)0xDFF0, (short)0xE668, (short)0xEC20, (short)0xF138, (short)0xFAC0, (short)0x04F0, (short)0x08D0, | ||
124 | (short)0x08C8, (short)0x0B18, (short)0x09F8, (short)0x0230, (short)0xFA38, (short)0xFA68, (short)0xFC78, (short)0xF9B8, | ||
125 | (short)0xF850, (short)0xFEA8, (short)0x05B8, (short)0x0690, (short)0x02E8, (short)0x0268, (short)0x0498, (short)0xFCB0, | ||
126 | (short)0xF018, (short)0xEDF8, (short)0x0090, (short)0x0F48, (short)0x0C70, (short)0x1278, (short)0x27B8, (short)0x2EA0, | ||
127 | (short)0x21F8, (short)0x1920, (short)0x1918, (short)0x1530, (short)0x0638, (short)0xF858, (short)0xF720, (short)0xF9F8, | ||
128 | (short)0xF600, (short)0xF850, (short)0x0590, (short)0x0EE0, (short)0x1000, (short)0x10D8, (short)0x1460, (short)0x10F8, | ||
129 | (short)0x0500, (short)0xFBC0, (short)0xF7A8, (short)0xF250, (short)0xEC00, (short)0xEB30, (short)0xF1C8, (short)0xF920, | ||
130 | (short)0xFC90, (short)0x0190, (short)0x0A60, (short)0x0E80, (short)0x0DB0, (short)0x0AD8, (short)0x0690, (short)0x0168, | ||
131 | (short)0xFF20, (short)0xFBD0, (short)0xF6F8, (short)0xF660, (short)0xF680, (short)0xF5B0, (short)0xF7C0, (short)0xF120, | ||
132 | (short)0xEA90, (short)0xF030, (short)0xEC18, (short)0xE190, (short)0xE558, (short)0xFF20, (short)0x1090, (short)0x0C50, | ||
133 | (short)0x1248, (short)0x2788, (short)0x2AD0, (short)0x1628, (short)0x08F0, (short)0x0BA8, (short)0x0538, (short)0xEF48, | ||
134 | (short)0xE410, (short)0xEB10, (short)0xEF68, (short)0xEA28, (short)0xEC40, (short)0xFC18, (short)0x08A8, (short)0x0818, | ||
135 | (short)0x0778, (short)0x0858, (short)0x02F8, (short)0xF8E8, (short)0xF1F0, (short)0xEF40, (short)0xECD0, (short)0xE958, | ||
136 | (short)0xEA70, (short)0xF260, (short)0xFAF0, (short)0xFFA0, (short)0x04A0, (short)0x0CF8, (short)0x10F8, (short)0x0EA0, | ||
137 | (short)0x0D48, (short)0x0BE8, (short)0x05E0, (short)0x03B0, (short)0x0358, (short)0xFF18, (short)0xFB40, (short)0xF9B0, | ||
138 | (short)0xF9C0, (short)0xF7C0, (short)0xEE90, (short)0xEAA0, (short)0xEE00, (short)0xE888, (short)0xE200, (short)0xEF00, | ||
139 | (short)0x0948, (short)0x1400, (short)0x1270, (short)0x1D88, (short)0x2CD8, (short)0x2488, (short)0x0DA8, (short)0x04B8, | ||
140 | (short)0x0548, (short)0xF7B0, (short)0xE3F0, (short)0xE268, (short)0xEFF8, (short)0xF5A0, (short)0xF320, (short)0xFC68, | ||
141 | (short)0x0BF0, (short)0x0FA0, (short)0x0A50, (short)0x01F8, (short)0xFE60, (short)0xFC48, (short)0xF340, (short)0xEB28, | ||
142 | (short)0xED58, (short)0xF3C0, (short)0xF5B8, (short)0xF738, (short)0x00F8, (short)0x0C70, (short)0x0E90, (short)0x0DE8, | ||
143 | (short)0x1190, (short)0x12B0, (short)0x1058, (short)0x0B98, (short)0x0638, (short)0x0868, (short)0x0998, (short)0x02B0, | ||
144 | (short)0xFE50, (short)0x0120, (short)0x02A0, (short)0xFC90, (short)0xF810, (short)0xF9D0, (short)0xF818, (short)0xF290, | ||
145 | (short)0xF240, (short)0xF6D0, (short)0x0A48, (short)0x1AD8, (short)0x1840, (short)0x1C18, (short)0x2B18, (short)0x29F0, | ||
146 | (short)0x1608, (short)0x08B8, (short)0x0778, (short)0x0128, (short)0xF118, (short)0xE868, (short)0xEDA0, (short)0xF310, | ||
147 | (short)0xF248, (short)0xF558, (short)0x0058, (short)0x0970, (short)0x0688, (short)0x0108, (short)0xFD08, (short)0xF988, | ||
148 | (short)0xF558, (short)0xF0A0, (short)0xF0B0, (short)0xF540, (short)0xF6E8, (short)0xFCA0, (short)0x0758, (short)0x0CD0, | ||
149 | (short)0x0F60, (short)0x1338, (short)0x1458, (short)0x1278, (short)0x0FD0, (short)0x0CA8, (short)0x0D50, (short)0x0D10, | ||
150 | (short)0x0798, (short)0x0398, (short)0x0428, (short)0x04F0, (short)0x0278, (short)0xFF98, (short)0x0178, (short)0x0088, | ||
151 | (short)0xFB08, (short)0xF660, (short)0xF1A8, (short)0xEF18, (short)0xF9E8, (short)0x0C00, (short)0x11C8, (short)0x1260, | ||
152 | (short)0x1B60, (short)0x21B0, (short)0x18E0, (short)0x0B08, (short)0x04C8, (short)0x0078, (short)0xF730, (short)0xEF60, | ||
153 | (short)0xEB18, (short)0xEC10, (short)0xF290, (short)0xF800, (short)0xFB60, (short)0xFF60, (short)0x0080, (short)0xFFA8, | ||
154 | (short)0xFB08, (short)0xF1A8, (short)0xED10, (short)0xEFF0, (short)0xEED0, (short)0xEB10, (short)0xEFE8, (short)0xF8F0, | ||
155 | (short)0xFDE0, (short)0x0298, (short)0x0528, (short)0x0598, (short)0x0928, (short)0x0A30, (short)0x0670, (short)0x08E8, | ||
156 | (short)0x0BC0, (short)0x0698, (short)0x0210, (short)0x0390, (short)0x0560, (short)0x0288, (short)0xF910, (short)0xF468, | ||
157 | (short)0xF560, (short)0xF3E0, (short)0xEE10, (short)0xE8B0, (short)0xE508, (short)0xEED0, (short)0x03E0, (short)0x0638, | ||
158 | (short)0xFFA8, (short)0x0BB8, (short)0x2078, (short)0x1FA8, (short)0x0EF0, (short)0x0648, (short)0x05C8, (short)0xFF18, | ||
159 | (short)0xF588, (short)0xEE20, (short)0xED88, (short)0xF5A0, (short)0xFBA8, (short)0xFBC0, (short)0xFA98, (short)0xFA20, | ||
160 | (short)0xF7D8, (short)0xF2D0, (short)0xEF48, (short)0xE998, (short)0xE378, (short)0xE530, (short)0xE868, (short)0xE890, | ||
161 | (short)0xEDD0, (short)0xF798, (short)0xFBC0, (short)0xFD20, (short)0x0178, (short)0x0490, (short)0x04A0, (short)0x0758, | ||
162 | (short)0x0858, (short)0x0490, (short)0x04F8, (short)0x0858, (short)0x06F0, (short)0x05F8, (short)0x0450, (short)0x0098, | ||
163 | (short)0xFE60, (short)0xFDA0, (short)0xF9E0, (short)0xF358, (short)0xEDC0, (short)0xF308, (short)0xFFE0, (short)0x0018, | ||
164 | (short)0xFB80, (short)0x0948, (short)0x1DB8, (short)0x1D08, (short)0x0F88, (short)0x0B48, (short)0x0C50, (short)0x09C0, | ||
165 | (short)0xFF78, (short)0xF1A0, (short)0xEF28, (short)0xF6B8, (short)0xF9F0, (short)0xF6F0, (short)0xF688, (short)0xF9E0, | ||
166 | (short)0xF9C0, (short)0xF4C8, (short)0xEBD8, (short)0xE7E8, (short)0xEBE0, (short)0xE8C8, (short)0xE100, (short)0xE518, | ||
167 | (short)0xF0B8, (short)0xF728, (short)0xF770, (short)0xF878, (short)0xFF58, (short)0x06B0, (short)0x0430, (short)0x0060, | ||
168 | (short)0x0390, (short)0x0A18, (short)0x0B98, (short)0x06C8, (short)0x0710, (short)0x0CF0, (short)0x08D0, (short)0x01F8, | ||
169 | (short)0x0280, (short)0x0238, (short)0xFD78, (short)0xF868, (short)0xF198, (short)0xF670, (short)0x0930, (short)0x0A78, | ||
170 | (short)0xFB38, (short)0x04F0, (short)0x1EB8, (short)0x1E98, (short)0x0F68, (short)0x0EC8, (short)0x1548, (short)0x1480, | ||
171 | (short)0x0C60, (short)0x00B0, (short)0xFEF8, (short)0x0830, (short)0x0838, (short)0x0160, (short)0x0380, (short)0x07E8, | ||
172 | (short)0x0270, (short)0xFBA0, (short)0xF9C0, (short)0xF450, (short)0xEE08, (short)0xED08, (short)0xEE10, (short)0xEF20, | ||
173 | (short)0xF1C0, (short)0xF800, (short)0xFE70, (short)0x00B0, (short)0x02D8, (short)0x07C8, (short)0x09F0, (short)0x09A8, | ||
174 | (short)0x0A60, (short)0x0B28, (short)0x0C80, (short)0x0D58, (short)0x0BD0, (short)0x0A48, (short)0x0900, (short)0x0768, | ||
175 | (short)0x03D0, (short)0x00E0, (short)0xFFF8, (short)0xFBD8, (short)0xF5E8, (short)0xFE18, (short)0x0FE8, (short)0x1060, | ||
176 | (short)0x05C8, (short)0x1078, (short)0x2638, (short)0x2580, (short)0x1740, (short)0x14E8, (short)0x19D0, (short)0x17D8, | ||
177 | (short)0x0E10, (short)0x0270, (short)0x0120, (short)0x0900, (short)0x0870, (short)0x0290, (short)0x03A0, (short)0x0600, | ||
178 | (short)0x0100, (short)0xFE28, (short)0xFF28, (short)0xF838, (short)0xF0B8, (short)0xF238, (short)0xF530, (short)0xF440, | ||
179 | (short)0xF440, (short)0xFA38, (short)0x0198, (short)0x03A8, (short)0x03D0, (short)0x0780, (short)0x0AB8, (short)0x0B58, | ||
180 | (short)0x0B10, (short)0x0AD8, (short)0x0A08, (short)0x0878, (short)0x07C8, (short)0x0648, (short)0x01A0, (short)0xFF48, | ||
181 | (short)0xFE58, (short)0xFA68, (short)0xF7D0, (short)0xF758, (short)0xF470, (short)0xF5B0, (short)0x02A8, (short)0x0A58, | ||
182 | (short)0x0448, (short)0x07C8, (short)0x1708, (short)0x1970, (short)0x0EC8, (short)0x0A40, (short)0x0CD0, (short)0x0D28, | ||
183 | (short)0x0838, (short)0x0010, (short)0xFAE0, (short)0xFCB0, (short)0xFEB8, (short)0xFCE8, (short)0xFBA8, (short)0xFD10, | ||
184 | (short)0xFBC8, (short)0xF910, (short)0xF960, (short)0xF830, (short)0xF4D8, (short)0xF500, (short)0xF860, (short)0xF9F0, | ||
185 | (short)0xFB58, (short)0xFE48, (short)0x0050, (short)0x0418, (short)0x0910, (short)0x0940, (short)0x0830, (short)0x0AC8, | ||
186 | (short)0x0C88, (short)0x0A50, (short)0x07C0, (short)0x0700, (short)0x0590, (short)0x0268, (short)0xFFF0, (short)0xFBA8, | ||
187 | (short)0xF720, (short)0xF698, (short)0xF2E0, (short)0xEB68, (short)0xEDA0, (short)0xFC00, (short)0x0358, (short)0xFF30, | ||
188 | (short)0x0398, (short)0x1220, (short)0x1860, (short)0x1368, (short)0x10C0, (short)0x12F0, (short)0x12A0, (short)0x0E08, | ||
189 | (short)0x0780, (short)0x0010, (short)0xFAD8, (short)0xF990, (short)0xF7E0, (short)0xF278, (short)0xEE10, (short)0xEB98, | ||
190 | (short)0xE7A0, (short)0xE6F8, (short)0xEA30, (short)0xE980, (short)0xE420, (short)0xE440, (short)0xEBA8, (short)0xEF98, | ||
191 | (short)0xEF68, (short)0xF288, (short)0xF7A8, (short)0xFC90, (short)0x01F8, (short)0x0528, (short)0x0630, (short)0x08E8, | ||
192 | (short)0x0C98, (short)0x0D50, (short)0x0B98, (short)0x0920, (short)0x0678, (short)0x03F0, (short)0x0260, (short)0xFE00, | ||
193 | (short)0xF810, (short)0xF4B8, (short)0xF0C0, (short)0xEB68, (short)0xEF58, (short)0xFAE8, (short)0xFDE0, (short)0xF680, | ||
194 | (short)0xF910, (short)0x06E0, (short)0x0C20, (short)0x05D8, (short)0x0408, (short)0x05C8, (short)0x0450, (short)0x02D0, | ||
195 | (short)0x0128, (short)0xFB78, (short)0xF668, (short)0xF430, (short)0xF150, (short)0xED90, (short)0xE870, (short)0xE448, | ||
196 | (short)0xE2E0, (short)0xE048, (short)0xDDD0, (short)0xDF08, (short)0xE0E0, (short)0xE098, (short)0xE258, (short)0xE520, | ||
197 | (short)0xE6A8, (short)0xEA28, (short)0xEF88, (short)0xF2A8, (short)0xF548, (short)0xFBA8, (short)0x01C8, (short)0x03F8, | ||
198 | (short)0x0748, (short)0x0C88, (short)0x0E98, (short)0x0DB8, (short)0x0D98, (short)0x0D50, (short)0x0B68, (short)0x0970, | ||
199 | (short)0x06C0, (short)0x0238, (short)0xFE18, (short)0xFB08, (short)0xF820, (short)0xF780, (short)0xF970, (short)0xF9B0, | ||
200 | (short)0xF880, (short)0xFA28, (short)0x0028, (short)0x0698, (short)0x0948, (short)0x08D0, (short)0x09E0, (short)0x0DD0, | ||
201 | (short)0x1010, (short)0x0D40, (short)0x0958, (short)0x0728, (short)0x0308, (short)0xFDA0, (short)0xF9F8, (short)0xF418, | ||
202 | (short)0xEC98, (short)0xE8B8, (short)0xE618, (short)0xE200, (short)0xDED0, (short)0xDF48, (short)0xE100, (short)0xE180, | ||
203 | (short)0xE160, (short)0xE3C8, (short)0xE898, (short)0xEDD8, (short)0xF250, (short)0xF558, (short)0xFB00, (short)0x02F8, | ||
204 | (short)0x07B0, (short)0x0B80, (short)0x1108, (short)0x1518, (short)0x1660, (short)0x1770, (short)0x1870, (short)0x16F8, | ||
205 | (short)0x1300, (short)0x0F78, (short)0x0FC0, (short)0x1070, (short)0x0CE8, (short)0x0AF8, (short)0x0BD8, (short)0x0D28, | ||
206 | (short)0x10A8, (short)0x1370, (short)0x10A0, (short)0x1040, (short)0x1518, (short)0x1740, (short)0x1550, (short)0x1398, | ||
207 | (short)0x10E0, (short)0x0AC8, (short)0x0640, (short)0x0348, (short)0xFD18, (short)0xF658, (short)0xF1D8, (short)0xEC20, | ||
208 | (short)0xE760, (short)0xE550, (short)0xE4B8, (short)0xE418, (short)0xE438, (short)0xE508, (short)0xE738, (short)0xEB18, | ||
209 | (short)0xF0C8, (short)0xF618, (short)0xF988, (short)0xFEC8, (short)0x0518, (short)0x09D8, (short)0x1118, (short)0x17F0, | ||
210 | (short)0x1BB0, (short)0x1E28, (short)0x2120, (short)0x23D8, (short)0x2638, (short)0x2418, (short)0x2080, (short)0x1D30, | ||
211 | (short)0x1CE8, (short)0x1D98, (short)0x1CA8, (short)0x1AD8, (short)0x1960, (short)0x17F8, (short)0x1A40, (short)0x1CF8, | ||
212 | (short)0x1D38, (short)0x1C30, (short)0x1A68, (short)0x1860, (short)0x1480, (short)0x1020, (short)0x0B68, (short)0x03E8, | ||
213 | (short)0xFBA8, (short)0xF508, (short)0xEE40, (short)0xE820, (short)0xE338, (short)0xDE88, (short)0xDA30, (short)0xD7D0, | ||
214 | (short)0xD728, (short)0xD7D8, (short)0xD998, (short)0xDC10, (short)0xDFB0, (short)0xE470, (short)0xE948, (short)0xEF98, | ||
215 | (short)0xF5F0, (short)0xFC38, (short)0x0228, (short)0x0798, (short)0x0D98, (short)0x1320, (short)0x1760, (short)0x1A70, | ||
216 | (short)0x1BE0, (short)0x1CC0, (short)0x1D98, (short)0x1A88, (short)0x1658, (short)0x12A0, (short)0x1180, (short)0x10A8, | ||
217 | (short)0x0ED0, (short)0x0CC8, (short)0x0AD8, (short)0x0920, (short)0x0B70, (short)0x0E30, (short)0x0EE8, (short)0x0D80, | ||
218 | (short)0x0BE0, (short)0x0AC0, (short)0x09B8, (short)0x0890, (short)0x0690, (short)0x01F8, (short)0xFD30, (short)0xF9F0, | ||
219 | (short)0xF5B0, (short)0xF188, (short)0xEE38, (short)0xE9E8, (short)0xE5E8, (short)0xE3E0, (short)0xE4A0, (short)0xE608, | ||
220 | (short)0xE738, (short)0xE858, (short)0xE980, (short)0xEC20, (short)0xF030, (short)0xF450, (short)0xF878, (short)0xFC68, | ||
221 | (short)0xFF68, (short)0x03C8, (short)0x08B8, (short)0x0D00, (short)0x1038, (short)0x12D8, (short)0x1490, (short)0x1648, | ||
222 | (short)0x16B8, (short)0x1468, (short)0x1160, (short)0x0FA8, (short)0x1038, (short)0x1058, (short)0x0F88, (short)0x0E50, | ||
223 | (short)0x0CC8, (short)0x0CC0, (short)0x0FC0, (short)0x1220, (short)0x12A0, (short)0x10F8, (short)0x0F20, (short)0x0D28, | ||
224 | (short)0x0C78, (short)0x0BB8, (short)0x08D0, (short)0x01C8, (short)0xFB38, (short)0xF660, (short)0xF330, (short)0xF078, | ||
225 | (short)0xEC28, (short)0xE6C8, (short)0xE2C0, (short)0xE050, (short)0xDFC8, (short)0xE038, (short)0xE160, (short)0xE300, | ||
226 | (short)0xE568, (short)0xE6B8, (short)0xE9A0, (short)0xED50, (short)0xF238, (short)0xF6D8, (short)0xFB08, (short)0xFF10, | ||
227 | (short)0x02E8, (short)0x06A0, (short)0x0AC0, (short)0x0DC8, (short)0x1010, (short)0x1168, (short)0x1018, (short)0x0E90, | ||
228 | (short)0x0BF8, (short)0x0B08, (short)0x0A50, (short)0x09F0, (short)0x0960, (short)0x0888, (short)0x0808, (short)0x09C8, | ||
229 | (short)0x0BA8, (short)0x0EE8, (short)0x1070, (short)0x10D0, (short)0x0F58, (short)0x0D60, (short)0x0BA0, (short)0x0A60, | ||
230 | (short)0x08F0, (short)0x0608, (short)0xFFB0, (short)0xF938, (short)0xF360, (short)0xF030, (short)0xEE20, (short)0xEB70, | ||
231 | (short)0xE7A8, (short)0xE410, (short)0xE140, (short)0xDFC8, (short)0xDFF8, (short)0xE1F0, (short)0xE448, (short)0xE6D0, | ||
232 | (short)0xE780, (short)0xE9E8, (short)0xECF0, (short)0xF248, (short)0xF730, (short)0xFBC0, (short)0xFF80, (short)0x0310, | ||
233 | (short)0x0670, (short)0x0A98, (short)0x0D88, (short)0x0FD8, (short)0x10C0, (short)0x0EB0, (short)0x0C48, (short)0x08B8, | ||
234 | (short)0x0998, (short)0x0AC0, (short)0x0C68, (short)0x0B78, (short)0x09C8, (short)0x0838, (short)0x08F8, (short)0x0A80, | ||
235 | (short)0x0CA0, (short)0x0E10, (short)0x0E48, (short)0x0D58, (short)0x0A28, (short)0x0750, (short)0x04F0, (short)0x0228, | ||
236 | (short)0xFEE8, (short)0xFA80, (short)0xF468, (short)0xEED0, (short)0xEAE0, (short)0xE8B8, (short)0xE718, (short)0xE5B0, | ||
237 | (short)0xE4A8, (short)0xE410, (short)0xE480, (short)0xE548, (short)0xE738, (short)0xE9B0, (short)0xED80, (short)0xF0B8, | ||
238 | (short)0xF480, (short)0xF7B0, (short)0xFB70, (short)0xFED0, (short)0x0328, (short)0x0720, (short)0x0A98, (short)0x0E00, | ||
239 | (short)0x10F8, (short)0x12E0, (short)0x12A8, (short)0x11B0, (short)0x0F58, (short)0x0F38, (short)0x0E88, (short)0x0F08, | ||
240 | (short)0x0FC0, (short)0x0FF0, (short)0x10B8, (short)0x1138, (short)0x1198, (short)0x13D0, (short)0x1638, (short)0x17E8, | ||
241 | (short)0x1758, (short)0x1628, (short)0x1460, (short)0x10E8, (short)0x0CA0, (short)0x0848, (short)0x0280, (short)0xFC90, | ||
242 | (short)0xF700, (short)0xF0F8, (short)0xEB18, (short)0xE638, (short)0xE1B8, (short)0xDE78, (short)0xDC58, (short)0xDBB8, | ||
243 | (short)0xDC28, (short)0xDDB0, (short)0xE030, (short)0xE330, (short)0xE6F0, (short)0xEC20, (short)0xF210, (short)0xF7C0, | ||
244 | (short)0xFCE0, (short)0x0150, (short)0x0570, (short)0x08F0, (short)0x0C70, (short)0x0F50, (short)0x12B8, (short)0x1560, | ||
245 | (short)0x16E0, (short)0x1630, (short)0x14E8, (short)0x1298, (short)0x11B8, (short)0x1170, (short)0x11B8, (short)0x11C0, | ||
246 | (short)0x0FE8, (short)0x0E58, (short)0x0CB8, (short)0x0C50, (short)0x0D68, (short)0x0E98, (short)0x0E30, (short)0x0C28, | ||
247 | (short)0x0A10, (short)0x06D8, (short)0x02E0, (short)0xFEA0, (short)0xFA18, (short)0xF4E8, (short)0xF018, (short)0xEB68, | ||
248 | (short)0xE6E8, (short)0xE310, (short)0xDFC8, (short)0xDD38, (short)0xDBF8, (short)0xDC38, (short)0xDDD0, (short)0xE070, | ||
249 | (short)0xE390, (short)0xE760, (short)0xEB88, (short)0xEF20, (short)0xF378, (short)0xF830, (short)0xFCE0, (short)0x00F8, | ||
250 | (short)0x0480, (short)0x0768, (short)0x0968, (short)0x0AE0, (short)0x0BB8, (short)0x0C10, (short)0x0BB0, (short)0x0A78, | ||
251 | (short)0x08E0, (short)0x06E8, (short)0x0540, (short)0x0870, (short)0x0BE0, (short)0x0ED0, (short)0x0E40, (short)0x0D10, | ||
252 | (short)0x0CC8, (short)0x0E28, (short)0x0FA0, (short)0x0FB0, (short)0x0F18, (short)0x0DD0, (short)0x0BC8, (short)0x08E8, | ||
253 | (short)0x0628, (short)0x0300, (short)0xFF18, (short)0xFB40, (short)0xF780, (short)0xF388, (short)0xF028, (short)0xED80, | ||
254 | (short)0xEB18, (short)0xE968, (short)0xE8C0, (short)0xE738, (short)0xE658, (short)0xE698, (short)0xE888, (short)0xEB38, | ||
255 | (short)0xEDA0, (short)0xF178, (short)0xF5B8, (short)0xFA28, (short)0xFEA8, (short)0x0300, (short)0x06C8, (short)0x0960, | ||
256 | (short)0x0B70, (short)0x0CE0, (short)0x0D70, (short)0x0D50, (short)0x0C60, (short)0x0890, (short)0x0418, (short)0x0028, | ||
257 | (short)0x01D0, (short)0x03F8, (short)0x05A8, (short)0x0700, (short)0x0808, (short)0x09A0, (short)0x0B18, (short)0x0CC8, | ||
258 | (short)0x0D90, (short)0x0E68, (short)0x0EC0, (short)0x0E30, (short)0x0C28, (short)0x09D8, (short)0x0730, (short)0x0308, | ||
259 | (short)0xFED8, (short)0xFAC0, (short)0xF598, (short)0xF0D8, (short)0xECE0, (short)0xEAA8, (short)0xE948, (short)0xE8D0, | ||
260 | (short)0xE850, (short)0xE888, (short)0xE910, (short)0xEAD0, (short)0xED68, (short)0xF018, (short)0xF350, (short)0xF6B8, | ||
261 | (short)0xFAE0, (short)0xFF00, (short)0x02D8, (short)0x05E8, (short)0x0830, (short)0x09F8, (short)0x0B08, (short)0x0B80, | ||
262 | (short)0x0B60, (short)0x0988, (short)0x0648, (short)0x02D0, (short)0x0150, (short)0x01E8, (short)0x0270, (short)0x03E0, | ||
263 | (short)0x0538, (short)0x0658, (short)0x0918, (short)0x0C00, (short)0x0E88, (short)0x10B8, (short)0x12A0, (short)0x13E0, | ||
264 | (short)0x1488, (short)0x1448, (short)0x1368, (short)0x1120, (short)0x0DD0, (short)0x0A40, (short)0x0608, (short)0x0148, | ||
265 | (short)0xFC80, (short)0xF860, (short)0xF4D8, (short)0xF1C0, (short)0xF008, (short)0xEF38, (short)0xEE78, (short)0xEE98, | ||
266 | (short)0xEF90, (short)0xF170, (short)0xF390, (short)0xF5C0, (short)0xF888, (short)0xFB48, (short)0xFDF0, (short)0x0078, | ||
267 | (short)0x03D0, (short)0x06C8, (short)0x08F8, (short)0x0AA0, (short)0x0BC8, (short)0x0C48, (short)0x0B30, (short)0x0978, | ||
268 | (short)0x06A8, (short)0x0530, (short)0x03F0, (short)0x0438, (short)0x03C0, (short)0x0350, (short)0x0360, (short)0x04E8, | ||
269 | (short)0x0698, (short)0x07D0, (short)0x08D0, (short)0x0998, (short)0x0A70, (short)0x0B48, (short)0x0B70, (short)0x0AD0, | ||
270 | (short)0x09C0, (short)0x0890, (short)0x0730, (short)0x0588, (short)0x0358, (short)0x0140, (short)0xFF58, (short)0xFD40, | ||
271 | (short)0xFB68, (short)0xF9E8, (short)0xF828, (short)0xF6D0, (short)0xF608, (short)0xF5D8, (short)0xF610, (short)0xF668, | ||
272 | (short)0xF778, (short)0xF8E8, (short)0xFA48, (short)0xFCC8, (short)0xFF50, (short)0x01C8, (short)0x0428, (short)0x0640, | ||
273 | (short)0x07D0, (short)0x09D0, (short)0x0B40, (short)0x0BF8, (short)0x0C30, (short)0x0C08, (short)0x0B08, (short)0x0988, | ||
274 | (short)0x07C0, (short)0x0670, (short)0x0608, (short)0x0590, (short)0x0588, (short)0x05B0, (short)0x05E0, (short)0x06B8, | ||
275 | (short)0x0748, (short)0x0758, (short)0x0700, (short)0x06A8, (short)0x0620, (short)0x05D8, (short)0x0590, (short)0x0528, | ||
276 | (short)0x03A8, (short)0x0240, (short)0x0108, (short)0xFF38, (short)0xFD50, (short)0xFBA0, (short)0xFA38, (short)0xF920, | ||
277 | (short)0xF860, (short)0xF6E8, (short)0xF640, (short)0xF628, (short)0xF680, (short)0xF720, (short)0xF800, (short)0xF8E0, | ||
278 | (short)0xF9A0, (short)0xFA78, (short)0xFB88, (short)0xFD20, (short)0xFEA0, (short)0x0008, (short)0x0110, (short)0x0200, | ||
279 | (short)0x0360, (short)0x04E0, (short)0x0608, (short)0x0738, (short)0x0838, (short)0x08D8, (short)0x0828, (short)0x0738, | ||
280 | (short)0x0600, (short)0x04A8, (short)0x02E0, (short)0x0130, (short)0xFFA0, (short)0xFF48, (short)0xFF10, (short)0xFEF0, | ||
281 | (short)0xFF30, (short)0xFFD0, (short)0x0090, (short)0x0090, (short)0x0070, (short)0x0060, (short)0xFFE8, (short)0xFF50, | ||
282 | (short)0xFEB8, (short)0xFE98, (short)0xFE88, (short)0xFE80, (short)0xFE58, (short)0xFE50, (short)0xFE58, (short)0xFDB0, | ||
283 | (short)0xFD08, (short)0xFC80, (short)0xFAF8, (short)0xF988, (short)0xF860, (short)0xF798, (short)0xF720, (short)0xF6E8, | ||
284 | (short)0xF728, (short)0xF7C0, (short)0xF8A8, (short)0xF8F8, (short)0xF960, (short)0xFA18, (short)0xFAC0, (short)0xFB58, | ||
285 | (short)0xFC18, (short)0xFCE0, (short)0xFDA0, (short)0xFE20, (short)0xFE88, (short)0xFEF8, (short)0xFEF0, (short)0xFEC8, | ||
286 | (short)0xFEA8, (short)0xFDE0, (short)0xFD10, (short)0xFC70, (short)0xFBA8, (short)0xFB10, (short)0xFAB8, (short)0xFAA0, | ||
287 | (short)0xFAD0, (short)0xFB18, (short)0xFA90, (short)0xFA18, (short)0xFA10, (short)0xFA80, (short)0xFB10, (short)0xFB88, | ||
288 | (short)0xFC90, (short)0xFDB8, (short)0xFEB8, (short)0xFF80, (short)0x0058, (short)0x0138, (short)0x0118, (short)0x00C8, | ||
289 | (short)0x00C0, (short)0xFF98, (short)0xFE30, (short)0xFD38, (short)0xFC68, (short)0xFB78, (short)0xFAB8, (short)0xFAE8, | ||
290 | (short)0xFB78, (short)0xFBD0, (short)0xFBE8, (short)0xFC18, (short)0xFC98, (short)0xFD28, (short)0xFD48, (short)0xFD68, | ||
291 | (short)0xFD68, (short)0xFD90, (short)0xFDB8, (short)0xFD90, (short)0xFD68, (short)0xFD78, (short)0xFCA0, (short)0xFB70, | ||
292 | (short)0xFAD0, (short)0xF9F0, (short)0xF870, (short)0xF748, (short)0xF748, (short)0xF770, (short)0xF748, (short)0xF720, | ||
293 | (short)0xF7A8, (short)0xF878, (short)0xF930, (short)0xF998, (short)0xFA38, (short)0xFC10, (short)0xFDA0, (short)0xFE70, | ||
294 | (short)0x0030, (short)0x0248, (short)0x03A0, (short)0x0568, (short)0x0738, (short)0x0870, (short)0x0960, (short)0x0A10, | ||
295 | (short)0x0A40, (short)0x0A28, (short)0x09B8, (short)0x08E8, (short)0x07E8, (short)0x06E0, (short)0x0588, (short)0x0430, | ||
296 | (short)0x0300, (short)0x0260, (short)0x01D0, (short)0x0118, (short)0xFFB0, (short)0xFE98, (short)0xFE18, (short)0xFDA0, | ||
297 | (short)0xFD08, (short)0xFCB8, (short)0xFCF8, (short)0xFD60, (short)0xFD90, (short)0xFD90, (short)0xFDD8, (short)0xFE50, | ||
298 | (short)0xFDA0, (short)0xFCE0, (short)0xFCC0, (short)0xFCE8, (short)0xFCB0, (short)0xFC60, (short)0xFC70, (short)0xFCB8, | ||
299 | (short)0xFCE0, (short)0xFD40, (short)0xFDD8, (short)0xFE68, (short)0xFF78, (short)0x0068, (short)0x0108, (short)0x0278, | ||
300 | (short)0x03A0, (short)0x0420, (short)0x0590, (short)0x0708, (short)0x07B8, (short)0x07D8, (short)0x0808, (short)0x0838, | ||
301 | (short)0x07D8, (short)0x06E8, (short)0x0600, (short)0x05B0, (short)0x0518, (short)0x0410, (short)0x02A0, (short)0x0198, | ||
302 | (short)0x00D0, (short)0x00C8, (short)0x00B0, (short)0x0068, (short)0x00C0, (short)0x0150, (short)0x0180, (short)0x0220, | ||
303 | (short)0x02D8, (short)0x0340, (short)0x0360, (short)0x0380, (short)0x0380, (short)0x0338, (short)0x02C8, (short)0x02B8, | ||
304 | (short)0x0280, (short)0x0200, (short)0x0100, (short)0x0098, (short)0x0080, (short)0x0020, (short)0xFFF0, (short)0x0000, | ||
305 | (short)0x0020, (short)0x0098, (short)0x0120, (short)0x0170, (short)0x0230, (short)0x02F0, (short)0x0350, (short)0x0480, | ||
306 | (short)0x05B8, (short)0x0650, (short)0x06A8, (short)0x0738, (short)0x0798, (short)0x07B0, (short)0x07C0, (short)0x0798, | ||
307 | (short)0x0668, (short)0x0598, (short)0x0530, (short)0x04C8, (short)0x0410, (short)0x0350, (short)0x0278, (short)0x01D8, | ||
308 | (short)0x0148, (short)0x0080, (short)0x0000, (short)0xFFC0, (short)0xFFD8, (short)0xFFA8, (short)0xFF60, (short)0xFF80, | ||
309 | (short)0x0018, (short)0x0070, (short)0xFFE0, (short)0xFF88, (short)0xFFC0, (short)0xFF38, (short)0xFE98, (short)0xFE50, | ||
310 | (short)0xFE10, (short)0xFDD8, (short)0xFD90, (short)0xFD30, (short)0xFDB8, (short)0xFE68, (short)0xFE70, (short)0xFE60, | ||
311 | (short)0xFE70, (short)0xFED0, (short)0xFF90, (short)0xFFE0, (short)0xFFF0, (short)0x00A8, (short)0x0168, (short)0x01D0, | ||
312 | (short)0x01F8, (short)0x0210, (short)0x0278, (short)0x0268, (short)0x0208, (short)0x0220, (short)0x01F8, (short)0x0198, | ||
313 | (short)0x0158, (short)0x0100, (short)0x00C0, (short)0x00A0, (short)0x0018, (short)0xFF98, (short)0xFF28, (short)0xFEC0, | ||
314 | (short)0xFE80, (short)0xFE60, (short)0xFD88, (short)0xFCF0, (short)0xFCC8, (short)0xFC70, (short)0xFC10, (short)0xFBC8, | ||
315 | (short)0xFBB0, (short)0xFBE8, (short)0xFBE8, (short)0xFB80, (short)0xFB88, (short)0xFB40, (short)0xFB18, (short)0xFB20, | ||
316 | (short)0xFAB8, (short)0xFA50, (short)0xFA50, (short)0xFAB8, (short)0xFAF8, (short)0xFB18, (short)0xFBB0, (short)0xFC88, | ||
317 | (short)0xFD10, (short)0xFD40, (short)0xFD98, (short)0xFE38, (short)0xFEE0, (short)0xFEF8, (short)0xFEF0, (short)0xFF18, | ||
318 | (short)0xFF18, (short)0xFF18, (short)0xFF68, (short)0xFF98, (short)0xFF98, (short)0xFFD0, (short)0xFFF8, (short)0x0048, | ||
319 | (short)0x0038, (short)0x0008, (short)0x0008, (short)0xFFE0, (short)0xFFB0, (short)0xFFB8, (short)0xFED0, (short)0xFE18, | ||
320 | (short)0xFE18, (short)0xFDF0, (short)0xFE38, (short)0xFE90, (short)0xFE90, (short)0xFDA8, (short)0xFD48, (short)0xFD70, | ||
321 | (short)0xFD68, (short)0xFD00, (short)0xFCB8, (short)0xFCB8, (short)0xFCF8, (short)0xFD00, (short)0xFC30, (short)0xFBD0, | ||
322 | (short)0xFC10, (short)0xFC20, (short)0xFBE0, (short)0xFBA8, (short)0xFC30, (short)0xFD00, (short)0xFD50, (short)0xFD90, | ||
323 | (short)0xFE10, (short)0xFEA8, (short)0xFF40, (short)0xFFA0, (short)0xFFD0, (short)0xFFC8, (short)0xFFC8, (short)0xFFD8, | ||
324 | (short)0xFFA0, (short)0xFF98, (short)0xFFB8, (short)0x0050, (short)0x00B8, (short)0x00B0, (short)0x01B0, (short)0x02E0, | ||
325 | (short)0x0318, (short)0x0330, (short)0x02E0, (short)0x02C8, (short)0x0278, (short)0x0150, (short)0x0050, (short)0xFFC0, | ||
326 | (short)0xFF88, (short)0xFF18, (short)0xFE90, (short)0xFE40, (short)0xFE30, (short)0xFDE8, (short)0xFDD0, (short)0xFD70, | ||
327 | (short)0xFD48, (short)0xFD10, (short)0xFC98, (short)0xFC38, (short)0xFC38, (short)0xFC78, (short)0xFC98, (short)0xFCF0, | ||
328 | (short)0xFDA8, (short)0xFE48, (short)0xFEC8, (short)0xFF30, (short)0xFF98, (short)0x0000, (short)0x0050, (short)0x0058, | ||
329 | (short)0x00A8, (short)0x00E8, (short)0x00D0, (short)0x0138, (short)0x01E0, (short)0x0218, (short)0x0208, (short)0x0230, | ||
330 | (short)0x0258, (short)0x0248, (short)0x02B0, (short)0x0318, (short)0x0330, (short)0x0358, (short)0x0380, (short)0x0378, | ||
331 | (short)0x0408, (short)0x0480, (short)0x0460, (short)0x03C8, (short)0x0318, (short)0x02B0, (short)0x01E8, (short)0x00B8, | ||
332 | (short)0xFFD8, (short)0xFF30, (short)0xFEC8, (short)0xFE60, (short)0xFE60, (short)0xFE78, (short)0xFE78, (short)0xFDC0, | ||
333 | (short)0xFD70, (short)0xFD50, (short)0xFD08, (short)0xFC88, (short)0xFC28, (short)0xFC98, (short)0xFD18, (short)0xFD60, | ||
334 | (short)0xFD60, (short)0xFDD8, (short)0xFE90, (short)0xFEE8, (short)0xFF10, (short)0xFF58, (short)0xFF90, (short)0xFFB8, | ||
335 | (short)0xFFE0, (short)0xFFF0, (short)0xFFF0, (short)0x00D0, (short)0x0190, (short)0x01C8, (short)0x0180, (short)0x0188, | ||
336 | (short)0x01B0, (short)0x0238, (short)0x0298, (short)0x02B8, (short)0x0268, (short)0x0258, (short)0x0258, (short)0x0230, | ||
337 | (short)0x0228, (short)0x0230, (short)0x0258, (short)0x0248, (short)0x01F8, (short)0x0150, (short)0x00C8, (short)0x0058, | ||
338 | (short)0x0058, (short)0x0038, (short)0x0000, (short)0xFF50, (short)0xFF00, (short)0xFEF8, (short)0xFE80, (short)0xFDB8, | ||
339 | (short)0xFD70, (short)0xFD00, (short)0xFC90, (short)0xFC40, (short)0xFC28, (short)0xFC58, (short)0xFC98, (short)0xFD10, | ||
340 | (short)0xFD78, (short)0xFDE0, (short)0xFE80, (short)0xFF08, (short)0xFF60, (short)0xFFD0, (short)0x0030, (short)0x0068, | ||
341 | (short)0x0110, (short)0x0198, (short)0x01C0, (short)0x0208, (short)0x0260, (short)0x0280, (short)0x0320, (short)0x0390, | ||
342 | (short)0x0398, (short)0x0410, (short)0x0488, (short)0x04A0, (short)0x0448, (short)0x0408, (short)0x03E0, (short)0x03C8, | ||
343 | (short)0x0398, (short)0x0350, (short)0x0308, (short)0x02C8, (short)0x0278, (short)0x01D8, (short)0x0148, (short)0x00E8, | ||
344 | (short)0x0040, (short)0xFFA0, (short)0xFF50, (short)0xFDC0, (short)0xFC88, (short)0xFC30, (short)0xFB88, (short)0xFAA8, | ||
345 | (short)0xFA50, (short)0xFA30, (short)0xFA40, (short)0xFA70, (short)0xFAB8, (short)0xFAE0, (short)0xFB28, (short)0xFB58, | ||
346 | (short)0xFB80, (short)0xFBB0, (short)0xFC00, (short)0xFC80, (short)0xFCF0, (short)0xFDB8, (short)0xFE58, (short)0xFED8, | ||
347 | (short)0x0008, (short)0x0100, (short)0x0180, (short)0x01D0, (short)0x0210, (short)0x0248, (short)0x0238, (short)0x0200, | ||
348 | (short)0x01D0, (short)0x02D0, (short)0x03A0, (short)0x03D8, (short)0x03C0, (short)0x03D8, (short)0x03F8, (short)0x0370, | ||
349 | (short)0x02C0, (short)0x0258, (short)0x01B8, (short)0x0120, (short)0x0090, (short)0x0088, (short)0x00A8, (short)0x00A8, | ||
350 | (short)0x0088, (short)0x0068, (short)0x0060, (short)0xFFE0, (short)0xFF00, (short)0xFE50, (short)0xFDC8, (short)0xFCF0, | ||
351 | (short)0xFC30, (short)0xFBB0, (short)0xFBD8, (short)0xFC20, (short)0xFC58, (short)0xFC30, (short)0xFC40, (short)0xFC78, | ||
352 | (short)0xFCC0, (short)0xFCE8, (short)0xFD10, (short)0xFD48, (short)0xFD88, (short)0xFDE8, (short)0xFF10, (short)0x0020, | ||
353 | (short)0x0110, (short)0x01B8, (short)0x0248, (short)0x02C0, (short)0x0358, (short)0x03B8, (short)0x03C8, (short)0x0320, | ||
354 | (short)0x0288, (short)0x0280, (short)0x0300, (short)0x0340, (short)0x0320, (short)0x0380, (short)0x03F8, (short)0x0418, | ||
355 | (short)0x0378, (short)0x02E0, (short)0x0288, (short)0x0280, (short)0x0238, (short)0x01D0, (short)0x0168, (short)0x0138, | ||
356 | (short)0x0110, (short)0x0140, (short)0x0148, (short)0x0150, (short)0x00A8, (short)0x0010, (short)0xFFB0, (short)0xFEB8, | ||
357 | (short)0xFDE0, (short)0xFD48, (short)0xFCE8, (short)0xFCA8, (short)0xFC78, (short)0xFC48, (short)0xFC50, (short)0xFC70, | ||
358 | (short)0xFCA8, (short)0xFCE8, (short)0xFD28, (short)0xFDD0, (short)0xFE70, (short)0xFED8, (short)0x0040, (short)0x0188, | ||
359 | (short)0x0258, (short)0x03C0, (short)0x04F0, (short)0x05B8, (short)0x0638, (short)0x0670, (short)0x0690, (short)0x0708, | ||
360 | (short)0x0708, (short)0x06B8, (short)0x0660, (short)0x0650, (short)0x0630, (short)0x05C8, (short)0x0578, (short)0x0548, | ||
361 | (short)0x0508, (short)0x0470, (short)0x03D0, (short)0x0350, (short)0x0278, (short)0x01A0, (short)0x00F8, (short)0x00B0, | ||
362 | (short)0x0078, (short)0x0030, (short)0xFFE8, (short)0xFFC8, (short)0xFFB8, (short)0xFED0, (short)0xFE08, (short)0xFD98, | ||
363 | (short)0xFC70, (short)0xFB60, (short)0xFAA8, (short)0xFA10, (short)0xF9B8, (short)0xF980, (short)0xF9A0, (short)0xFA00, | ||
364 | (short)0xFA68, (short)0xFB90, (short)0xFCB8, (short)0xFD98, (short)0xFE68, (short)0xFF18, (short)0xFFC0, (short)0x0078, | ||
365 | (short)0x00F8, (short)0x0218, (short)0x0320, (short)0x03C0, (short)0x0478, (short)0x0510, (short)0x0570, (short)0x05D8, | ||
366 | (short)0x05E0, (short)0x05B8, (short)0x0508, (short)0x0468, (short)0x03E0, (short)0x02F0, (short)0x0218, (short)0x0168, | ||
367 | (short)0x00F0, (short)0x0060, (short)0xFFD0, (short)0xFF58, (short)0xFEC0, (short)0xFE48, (short)0xFDB0, (short)0xFD58, | ||
368 | (short)0xFD38, (short)0xFCD8, (short)0xFC80, (short)0xFC50, (short)0xFC08, (short)0xFB48, (short)0xFA98, (short)0xF9F8, | ||
369 | (short)0xF8F8, (short)0xF810, (short)0xF7F8, (short)0xF818, (short)0xF848, (short)0xF8E8, (short)0xF9E0, (short)0xFB08, | ||
370 | (short)0xFC38, (short)0xFD10, (short)0xFDE8, (short)0xFF10, (short)0xFFD0, (short)0x0048, (short)0x00E0, (short)0x0160, | ||
371 | (short)0x01B8, (short)0x01C8, (short)0x01E0, (short)0x0200, (short)0x0228, (short)0x0240, (short)0x0240, (short)0x0240, | ||
372 | (short)0x0260, (short)0x0280, (short)0x0280, (short)0x02F0, (short)0x0370, (short)0x03C8, (short)0x03C8, (short)0x03A8, | ||
373 | (short)0x03A0, (short)0x02F8, (short)0x0220, (short)0x0150, (short)0x0098, (short)0xFFE0, (short)0xFF20, (short)0xFEA0, | ||
374 | (short)0xFE50, (short)0xFE18, (short)0xFD38, (short)0xFC60, (short)0xFBE0, (short)0xFAC8, (short)0xF9A0, (short)0xF8B8, | ||
375 | (short)0xF830, (short)0xF888, (short)0xF8B8, (short)0xF908, (short)0xFA80, (short)0xFBF8, (short)0xFD48, (short)0xFEC8, | ||
376 | (short)0x0040, (short)0x01B0, (short)0x0298, (short)0x0338, (short)0x03C0, (short)0x0470, (short)0x0520, (short)0x0588, | ||
377 | (short)0x0610, (short)0x0688, (short)0x06C8, (short)0x0670, (short)0x05E8, (short)0x0578, (short)0x0580, (short)0x0578, | ||
378 | (short)0x0528, (short)0x0498, (short)0x0408, (short)0x0390, (short)0x03F8, (short)0x0458, (short)0x0488, (short)0x0468, | ||
379 | (short)0x0450, (short)0x0458, (short)0x03A8, (short)0x02D0, (short)0x0210, (short)0x0158, (short)0x0088, (short)0xFFA8, | ||
380 | (short)0xFF00, (short)0xFE88, (short)0xFE30, (short)0xFD88, (short)0xFCB8, (short)0xFC28, (short)0xFB30, (short)0xF9F0, | ||
381 | (short)0xF8E8, (short)0xF890, (short)0xF890, (short)0xF8C0, (short)0xF978, (short)0xFA78, (short)0xFBE8, (short)0xFD20, | ||
382 | (short)0xFE28, (short)0xFF60, (short)0x00D8, (short)0x0220, (short)0x02F8, (short)0x0378, (short)0x03E0, (short)0x0438, | ||
383 | (short)0x0488, (short)0x0498, (short)0x04A8, (short)0x0480, (short)0x0440, (short)0x03C0, (short)0x02D8, (short)0x01E8, | ||
384 | (short)0x0140, (short)0x00D8, (short)0x0068, (short)0xFFE0, (short)0x0068, (short)0x0130, (short)0x0228, (short)0x0260, | ||
385 | (short)0x0278, (short)0x02D0, (short)0x02D8, (short)0x0290, (short)0x01E0, (short)0x00D0, (short)0xFFE0, (short)0xFEF8, | ||
386 | (short)0xFE08, (short)0xFD28, (short)0xFC88, (short)0xFBE0, (short)0xFB60, (short)0xFAD8, (short)0xFA08, (short)0xF978, | ||
387 | (short)0xF8E8, (short)0xF8B0, (short)0xF8B0, (short)0xF8D0, (short)0xF9D0, (short)0xFAF8, (short)0xFC18, (short)0xFDB0, | ||
388 | (short)0xFF38, (short)0x00A0, (short)0x01F8, (short)0x02F8, (short)0x03C0, (short)0x0460, (short)0x04B8, (short)0x04C8, | ||
389 | (short)0x04C8, (short)0x04C0, (short)0x0498, (short)0x0490, (short)0x0478, (short)0x0448, (short)0x0420, (short)0x03F8, | ||
390 | (short)0x0328, (short)0x0238, (short)0x01B0, (short)0x0170, (short)0x0128, (short)0x0090, (short)0x00E8, (short)0x01B8, | ||
391 | (short)0x02B8, (short)0x0280, (short)0x0218, (short)0x0218, (short)0x01F0, (short)0x0148, (short)0x0000, (short)0xFEC0, | ||
392 | (short)0xFE08, (short)0xFD70, (short)0xFCA0, (short)0xFBF0, (short)0xFBC0, (short)0xFBA0, (short)0xFB80, (short)0xFB18, | ||
393 | (short)0xFB28, (short)0xFB98, (short)0xFBC0, (short)0xFBD0, (short)0xFC08, (short)0xFC78, (short)0xFDC8, (short)0xFEC8, | ||
394 | (short)0xFF78, (short)0x00D0, (short)0x0238, (short)0x0360, (short)0x0398, (short)0x0360, (short)0x0368, (short)0x0380, | ||
395 | (short)0x0318, (short)0x0250, (short)0x0208, (short)0x0220, (short)0x0218, (short)0x01F0, (short)0x01C8, (short)0x0210, | ||
396 | (short)0x0270, (short)0x0270, (short)0x0240, (short)0x0290, (short)0x0310, (short)0x0360, (short)0x0340, (short)0x0310, | ||
397 | (short)0x0318, (short)0x0320, (short)0x02D8, (short)0x0240, (short)0x0158, (short)0x00A0, (short)0x0008, (short)0xFF30, | ||
398 | (short)0xFE50, (short)0xFDA8, (short)0xFD28, (short)0xFCC8, (short)0xFC60, (short)0xFBA8, (short)0xFB40, (short)0xFB10, | ||
399 | (short)0xFB18, (short)0xFB28, (short)0xFB48, (short)0xFB68, (short)0xFBA8, (short)0xFBF8, (short)0xFCB8, (short)0xFD78, | ||
400 | (short)0xFE00, (short)0xFE88, (short)0xFF30, (short)0xFF98, (short)0xFFC8, (short)0xFFE8, (short)0x0050, (short)0x00B0, | ||
401 | (short)0x00E0, (short)0x0040, (short)0xFF68, (short)0xFED8, (short)0xFEE8, (short)0xFEE0, (short)0xFE90, (short)0xFEA8, | ||
402 | (short)0xFF88, (short)0x0080, (short)0x0188, (short)0x0208, (short)0x0290, (short)0x0390, (short)0x0438, (short)0x0450, | ||
403 | (short)0x0428, (short)0x03F8, (short)0x03E0, (short)0x0388, (short)0x02E0, (short)0x0240, (short)0x0190, (short)0x00D0, | ||
404 | (short)0x0000, (short)0x0000, (short)0x0018, (short)0x00FF, (short)0x0068, (short)0x00FE, (short)0x00F8, (short)0x00FD | ||
405 | }; | ||
406 | |||
407 | gsm_byte gsm_enc_gsmdata[] = { | ||
408 | 0xD5, 0x1F, 0x74, 0x21, 0xA0, 0x50, 0x40, 0xC9, 0x24, 0x7B, 0xFA, 0x6B, 0x52, 0xE0, 0xB6, 0xD6, | ||
409 | 0x8E, 0xB9, 0x2B, 0xAE, 0xE0, 0x8B, 0x23, 0x52, 0x3B, 0x13, 0x86, 0xE0, 0x14, 0x4A, 0x41, 0x44, | ||
410 | 0x32, 0xD3, 0xA1, 0x83, 0xA1, 0x1D, 0xA6, 0x80, 0xBA, 0xD2, 0x96, 0x26, 0xFB, 0x84, 0x80, 0x6D, | ||
411 | 0x9C, 0x25, 0x1D, 0x9B, 0xAA, 0xC0, 0xBB, 0x4C, 0x95, 0xB9, 0x53, 0xAE, 0xA0, 0xB6, 0xE4, 0x46, | ||
412 | 0x37, 0x1B, 0xD4, 0xA5, 0x7B, 0x1D, 0x22, 0x97, 0x00, 0xBA, 0xA5, 0x6D, 0xD2, 0xA1, 0x7E, 0xC0, | ||
413 | 0xB9, 0x25, 0xD2, 0xB4, 0x94, 0x9E, 0xE0, 0x3E, 0xDE, 0xED, 0xD6, 0xD2, 0xE2, 0xC0, 0xD7, 0x5D, | ||
414 | 0x8D, 0x59, 0xAC, 0xD3, 0xE4, 0x83, 0x95, 0x59, 0xC0, 0xA1, 0x48, 0xD2, 0x66, 0xC7, 0x2C, 0x9E, | ||
415 | 0xA0, 0x2A, 0xD3, 0xEE, 0x45, 0x1C, 0x80, 0xE0, 0x6B, 0x34, 0x8C, 0x4B, 0x29, 0xCB, 0x00, 0xBA, | ||
416 | 0xF6, 0x0D, 0x26, 0x9A, 0xD3, 0xA4, 0x82, 0x9D, 0x63, 0x7A, 0xC0, 0x67, 0x24, 0xBA, 0xD6, 0x7C, | ||
417 | 0xC2, 0xC0, 0x37, 0x20, 0x4F, 0x10, 0xE0, 0xC7, 0x80, 0x6A, 0x77, 0x63, 0xBE, 0x6B, 0x5A, 0xC0, | ||
418 | 0xB5, 0x34, 0xD1, 0x34, 0x9C, 0xD4, 0xE8, 0x56, 0xB2, 0x58, 0x5F, 0x00, 0xB7, 0xAF, 0x92, 0x12, | ||
419 | 0x90, 0xD5, 0xA4, 0x39, 0x23, 0x4E, 0x46, 0x87, 0x51, 0xAC, 0xD8, 0xDB, 0x6D, 0xCB, 0x17, 0x50, | ||
420 | 0x89, 0x7B, 0x44, 0x28, 0x03, 0x6B, 0xD5, 0xA9, 0x36, 0x36, 0xD9, 0x6B, 0xA8, 0x93, 0x3A, 0x96, | ||
421 | 0xEE, 0xFF, 0x67, 0x8B, 0x36, 0xDA, 0x09, 0xB4, 0x99, 0x67, 0x2B, 0x88, 0xE4, 0xB5, 0xA5, 0xDA, | ||
422 | 0x65, 0x47, 0xDA, 0x1E, 0x96, 0xFA, 0xEC, 0xD5, 0xA9, 0x45, 0x63, 0x1A, 0xCB, 0xC9, 0x48, 0x9D, | ||
423 | 0x83, 0x5F, 0x6F, 0xCB, 0x08, 0x1B, 0x97, 0xC9, 0x18, 0x0A, 0x63, 0xCB, 0xA6, 0xE1, 0x84, 0xF5, | ||
424 | 0x62, 0x61, 0x6A, 0x84, 0xDC, 0xB6, 0x37, 0x9E, 0xD6, 0xAB, 0x3C, 0x53, 0x93, 0xC1, 0x2A, 0xAA, | ||
425 | 0x81, 0x8D, 0x6B, 0x65, 0x60, 0xA8, 0xFB, 0x2E, 0x22, 0x59, 0x74, 0x61, 0xA6, 0x5D, 0x73, 0x94, | ||
426 | 0xF8, 0xE4, 0xC1, 0x46, 0x26, 0x5E, 0x8A, 0x86, 0xED, 0xD4, 0xA6, 0x2D, 0x57, 0x6B, 0xBE, 0xE8, | ||
427 | 0x58, 0xDA, 0x3D, 0x98, 0x99, 0xBE, 0xA8, 0xC2, 0xDB, 0x6A, 0x2E, 0x51, 0x62, 0xE5, 0x80, 0x58, | ||
428 | 0x76, 0xB8, 0xE4, 0x6C, 0x84, 0xCA, 0x98, 0x06, 0x0B, 0xFC, 0xD2, 0x66, 0x7C, 0x62, 0x3A, 0x5B, | ||
429 | 0xC5, 0xDF, 0x7D, 0x75, 0x49, 0x1E, 0x52, 0xC7, 0x55, 0xF7, 0x84, 0xA6, 0xDA, 0x5D, 0x43, 0x26, | ||
430 | 0x85, 0x98, 0xD8, 0x8F, 0xB6, 0xC5, 0x28, 0xEB, 0x3E, 0x75, 0x04, 0xD2, 0x27, 0xBA, 0x2A, 0x2B, | ||
431 | 0xB7, 0x03, 0x13, 0x45, 0x35, 0x1B, 0x78, 0x5F, 0xC3, 0xBA, 0xDB, 0xAE, 0x27, 0xC2, 0x5E, 0xA4, | ||
432 | 0x50, 0x8C, 0x8A, 0xBB, 0x4F, 0x60, 0xC3, 0xEE, 0x41, 0x46, 0x4A, 0xDF, 0xD2, 0x27, 0xB2, 0xAD, | ||
433 | 0xEB, 0x5F, 0x43, 0x4C, 0x6A, 0x09, 0x2A, 0xCC, 0xB7, 0x47, 0x2A, 0xB9, 0x91, 0xB6, 0xD4, 0x5B, | ||
434 | 0x25, 0x58, 0xD8, 0xFD, 0x46, 0x95, 0x5A, 0xC3, 0x27, 0x5B, 0x3F, 0xFB, 0x12, 0xD2, 0x26, 0xC3, | ||
435 | 0xA9, 0xA1, 0xB6, 0xA2, 0xCB, 0x1B, 0xD0, 0x73, 0xE4, 0xBA, 0xA1, 0xE9, 0x05, 0xBE, 0x79, 0x23, | ||
436 | 0xA4, 0xC2, 0x3A, 0x4B, 0x11, 0xE5, 0x68, 0xC4, 0xC1, 0xBA, 0xC1, 0xCC, 0x8B, 0x02, 0xD2, 0x63, | ||
437 | 0x6C, 0xEE, 0x19, 0x5E, 0xE1, 0xB6, 0x4C, 0x1A, 0xB4, 0x5E, 0xF0, 0xC2, 0x27, 0x20, 0x55, 0xBD, | ||
438 | 0x6D, 0x64, 0xE1, 0xC7, 0x45, 0xA9, 0x65, 0x6D, 0x7D, 0x42, 0x56, 0xD8, 0xB2, 0xB6, 0xEC, 0xD3, | ||
439 | 0x61, 0x5B, 0x62, 0x61, 0x60, 0xA1, 0x5B, 0xD6, 0x15, 0x29, 0x09, 0x6C, 0xA1, 0x3E, 0xAD, 0x65, | ||
440 | 0x34, 0xC3, 0xC0, 0xC1, 0x22, 0x6D, 0x4C, 0x57, 0x10, 0xDB, 0x41, 0xD2, 0xE1, 0x77, 0x64, 0xF7, | ||
441 | 0xD3, 0x21, 0x73, 0xA9, 0x29, 0x58, 0xC1, 0xA1, 0x5A, 0x52, 0xB7, 0x32, 0x64, 0xC1, 0x67, 0x42, | ||
442 | 0x74, 0x2C, 0xDC, 0x61, 0x61, 0x65, 0x8B, 0xCB, 0x04, 0xE5, 0x60, 0xC1, 0xC9, 0x5E, 0x8E, 0x36, | ||
443 | 0x83, 0xD2, 0xA2, 0x83, 0xA9, 0xD9, 0xCD, 0x21, 0xB9, 0x25, 0xCD, 0xE6, 0x1D, 0x60, 0xA1, 0xB4, | ||
444 | 0xAA, 0x8F, 0xBA, 0x75, 0xC3, 0x01, 0x0B, 0x3B, 0x51, 0xDB, 0xEC, 0x62, 0xE1, 0x38, 0xCD, 0x40, | ||
445 | 0x3B, 0xD3, 0xD2, 0x26, 0x94, 0x29, 0xD2, 0x61, 0x21, 0x6B, 0x4A, 0x8D, 0x24, 0xB5, 0xBB, 0x21, | ||
446 | 0x12, 0xA5, 0x99, 0xA5, 0x1A, 0xCA, 0xA1, 0xEF, 0x5D, 0xAA, 0xAE, 0xD3, 0x64, 0xE1, 0xA3, 0x6B, | ||
447 | 0xAE, 0x35, 0x39, 0xD2, 0x66, 0x73, 0xB6, 0x90, 0xC6, 0xC1, 0x32, 0xD1, 0xBA, 0xC9, 0x25, 0x65, | ||
448 | 0x81, 0xA8, 0xD2, 0xB1, 0xE7, 0x18, 0xBE, 0xC0, 0xFC, 0xE4, 0x85, 0xB5, 0x06, 0xB4, 0x81, 0x35, | ||
449 | 0x46, 0xB6, 0xC8, 0x9B | ||
450 | }; | ||
451 | |||
452 | #endif /* end of include guard: DATA_H */ | ||
diff --git a/baseline/source/gsm_enc/gsm_enc.c b/baseline/source/gsm_enc/gsm_enc.c new file mode 100644 index 0000000..cdac899 --- /dev/null +++ b/baseline/source/gsm_enc/gsm_enc.c | |||
@@ -0,0 +1,2072 @@ | |||
1 | /* gsm_enc_encode.c */ | ||
2 | /* | ||
3 | * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische | ||
4 | * Universitaet Berlin. See the accompanying file "COPYRIGHT" for | ||
5 | * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. | ||
6 | */ | ||
7 | |||
8 | #include "../extra.h" | ||
9 | #include "private.h" | ||
10 | |||
11 | /* | ||
12 | * Prototypes from add.c | ||
13 | */ | ||
14 | |||
15 | extern word gsm_enc_div (word num, word denum); | ||
16 | |||
17 | extern word gsm_enc_sub (word a, word b); | ||
18 | |||
19 | extern word gsm_enc_norm ( longword a ); | ||
20 | |||
21 | extern word gsm_enc_asl (word a, int n); | ||
22 | |||
23 | extern word gsm_enc_asr (word a, int n); | ||
24 | |||
25 | /* | ||
26 | * Inlined functions from add.h | ||
27 | */ | ||
28 | |||
29 | #define GSM_MULT_R(a, b) /* word a, word b, !(a == b == MIN_WORD) */ \ | ||
30 | (SASR( ((longword)(a) * (longword)(b) + 16384), 15 )) | ||
31 | |||
32 | # define GSM_MULT(a,b) /* word a, word b, !(a == b == MIN_WORD) */ \ | ||
33 | (SASR( ((longword)(a) * (longword)(b)), 15 )) | ||
34 | |||
35 | # define GSM_L_ADD(a, b) \ | ||
36 | ( (a) < 0 ? ( (b) >= 0 ? (a) + (b) \ | ||
37 | : (utmp = (ulongword)-((a) + 1) + (ulongword)-((b) + 1)) \ | ||
38 | >= MAX_LONGWORD ? MIN_LONGWORD : -(longword)utmp-2 ) \ | ||
39 | : ((b) <= 0 ? (a) + (b) \ | ||
40 | : (utmp = (ulongword)(a) + (ulongword)(b)) >= (ulongword)MAX_LONGWORD \ | ||
41 | ? MAX_LONGWORD : a + b)) | ||
42 | |||
43 | #define GSM_ADD(a, b) \ | ||
44 | ((ulongword)((ltmp = (longword)(a) + (longword)(b)) - MIN_WORD) > \ | ||
45 | MAX_WORD - MIN_WORD ? (ltmp > 0 ? MAX_WORD : MIN_WORD) : ltmp) | ||
46 | |||
47 | # define GSM_SUB(a, b) \ | ||
48 | ((ltmp = (longword)(a) - (longword)(b)) >= MAX_WORD \ | ||
49 | ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp) | ||
50 | |||
51 | # define GSM_ABS(a) ((a) < 0 ? ((a) == MIN_WORD ? MAX_WORD : -(a)) : (a)) | ||
52 | |||
53 | #define saturate(x) \ | ||
54 | ((x) < MIN_WORD ? MIN_WORD : (x) > MAX_WORD ? MAX_WORD: (x)) | ||
55 | |||
56 | /* Use these if necessary: | ||
57 | |||
58 | # define GSM_MULT_R(a, b) gsm_enc_mult_r(a, b) | ||
59 | # define GSM_MULT(a, b) gsm_enc_mult(a, b) | ||
60 | # define GSM_L_MULT(a, b) gsm_enc_L_mult(a, b) | ||
61 | |||
62 | # define GSM_L_ADD(a, b) gsm_enc_L_add(a, b) | ||
63 | # define GSM_ADD(a, b) gsm_enc_add(a, b) | ||
64 | # define GSM_SUB(a, b) gsm_enc_sub(a, b) | ||
65 | |||
66 | # define GSM_ABS(a) gsm_enc_abs(a) | ||
67 | */ | ||
68 | |||
69 | /* | ||
70 | * More prototypes from implementations.. | ||
71 | */ | ||
72 | extern void gsm_enc_Gsm_Coder ( | ||
73 | struct gsm_state * S, | ||
74 | word * s, /* [0..159] samples IN */ | ||
75 | word * LARc, /* [0..7] LAR coefficients OUT */ | ||
76 | word * Nc, /* [0..3] LTP lag OUT */ | ||
77 | word * bc, /* [0..3] coded LTP gain OUT */ | ||
78 | word * Mc, /* [0..3] RPE grid selection OUT */ | ||
79 | word * xmaxc,/* [0..3] Coded maximum amplitude OUT */ | ||
80 | word * xMc /* [13*4] normalized RPE samples OUT */); | ||
81 | |||
82 | extern void gsm_enc_Gsm_Long_Term_Predictor ( /* 4x for 160 samples */ | ||
83 | word * d, /* [0..39] residual signal IN */ | ||
84 | word * dp, /* [-120..-1] d' IN */ | ||
85 | word * e, /* [0..40] OUT */ | ||
86 | word * dpp, /* [0..40] OUT */ | ||
87 | word * Nc, /* correlation lag OUT */ | ||
88 | word * bc /* gain factor OUT */); | ||
89 | |||
90 | extern void gsm_enc_Gsm_LPC_Analysis ( | ||
91 | word * s, /* 0..159 signals IN/OUT */ | ||
92 | word * LARc); /* 0..7 LARc's OUT */ | ||
93 | |||
94 | extern void gsm_enc_Gsm_Preprocess ( | ||
95 | struct gsm_state * S, | ||
96 | word * s, word * so); | ||
97 | |||
98 | extern void gsm_enc_Gsm_Short_Term_Analysis_Filter ( | ||
99 | struct gsm_state * S, | ||
100 | word * LARc, /* coded log area ratio [0..7] IN */ | ||
101 | word * d /* st res. signal [0..159] IN/OUT */); | ||
102 | |||
103 | void gsm_enc_Gsm_RPE_Encoding ( | ||
104 | word * e, /* -5..-1][0..39][40..44 IN/OUT */ | ||
105 | word * xmaxc, /* OUT */ | ||
106 | word * Mc, /* OUT */ | ||
107 | word * xMc); /* [0..12] OUT */ | ||
108 | |||
109 | |||
110 | /**************** end #include "private.h" **********************************/ | ||
111 | |||
112 | /* | ||
113 | * Interface | ||
114 | */ | ||
115 | |||
116 | typedef struct gsm_state * gsm; | ||
117 | typedef short gsm_signal; /* signed 16 bit */ | ||
118 | typedef unsigned char gsm_byte; | ||
119 | typedef gsm_byte gsm_frame[33]; /* 33 * 8 bits */ | ||
120 | |||
121 | #define GSM_MAGIC 0xD /* 13 kbit/s RPE-LTP */ | ||
122 | |||
123 | #define GSM_PATCHLEVEL 6 | ||
124 | #define GSM_MINOR 0 | ||
125 | #define GSM_MAJOR 1 | ||
126 | |||
127 | #include "data.h" | ||
128 | |||
129 | extern void gsm_enc_encode (gsm, gsm_signal *, gsm_byte *); | ||
130 | |||
131 | extern int gsm_enc_explode (gsm, gsm_byte *, gsm_signal *); | ||
132 | extern void gsm_enc_implode (gsm, gsm_signal *, gsm_byte *); | ||
133 | |||
134 | |||
135 | /******************* end #include "gsm.h" **********************************/ | ||
136 | |||
137 | #define SAMPLES 20 | ||
138 | |||
139 | /* | ||
140 | Forward declaration of global variables | ||
141 | */ | ||
142 | |||
143 | struct gsm_state gsm_enc_state; | ||
144 | gsm gsm_enc_state_ptr; | ||
145 | volatile int gsm_enc_result; | ||
146 | |||
147 | |||
148 | /* add.c */ | ||
149 | |||
150 | word gsm_enc_sub (word a, word b) | ||
151 | { | ||
152 | longword diff = (longword)a - (longword)b; | ||
153 | return saturate(diff); | ||
154 | } | ||
155 | |||
156 | |||
157 | unsigned char gsm_enc_bitoff[ 256 ] = { | ||
158 | 8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, | ||
159 | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, | ||
160 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
161 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
162 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
163 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
164 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
165 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
166 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
167 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
168 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
169 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
170 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
171 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
172 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
173 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | ||
174 | }; | ||
175 | |||
176 | void gsm_enc_encode (gsm s, gsm_signal * source, gsm_byte * c) | ||
177 | { | ||
178 | word LARc[8], Nc[4], Mc[4], bc[4], xmaxc[4], xmc[13*4]; | ||
179 | |||
180 | gsm_enc_Gsm_Coder(s, source, LARc, Nc, bc, Mc, xmaxc, xmc); | ||
181 | |||
182 | |||
183 | /* variable size | ||
184 | |||
185 | GSM_MAGIC 4 | ||
186 | |||
187 | LARc[0] 6 | ||
188 | LARc[1] 6 | ||
189 | LARc[2] 5 | ||
190 | LARc[3] 5 | ||
191 | LARc[4] 4 | ||
192 | LARc[5] 4 | ||
193 | LARc[6] 3 | ||
194 | LARc[7] 3 | ||
195 | |||
196 | Nc[0] 7 | ||
197 | bc[0] 2 | ||
198 | Mc[0] 2 | ||
199 | xmaxc[0] 6 | ||
200 | xmc[0] 3 | ||
201 | xmc[1] 3 | ||
202 | xmc[2] 3 | ||
203 | xmc[3] 3 | ||
204 | xmc[4] 3 | ||
205 | xmc[5] 3 | ||
206 | xmc[6] 3 | ||
207 | xmc[7] 3 | ||
208 | xmc[8] 3 | ||
209 | xmc[9] 3 | ||
210 | xmc[10] 3 | ||
211 | xmc[11] 3 | ||
212 | xmc[12] 3 | ||
213 | |||
214 | Nc[1] 7 | ||
215 | bc[1] 2 | ||
216 | Mc[1] 2 | ||
217 | xmaxc[1] 6 | ||
218 | xmc[13] 3 | ||
219 | xmc[14] 3 | ||
220 | xmc[15] 3 | ||
221 | xmc[16] 3 | ||
222 | xmc[17] 3 | ||
223 | xmc[18] 3 | ||
224 | xmc[19] 3 | ||
225 | xmc[20] 3 | ||
226 | xmc[21] 3 | ||
227 | xmc[22] 3 | ||
228 | xmc[23] 3 | ||
229 | xmc[24] 3 | ||
230 | xmc[25] 3 | ||
231 | |||
232 | Nc[2] 7 | ||
233 | bc[2] 2 | ||
234 | Mc[2] 2 | ||
235 | xmaxc[2] 6 | ||
236 | xmc[26] 3 | ||
237 | xmc[27] 3 | ||
238 | xmc[28] 3 | ||
239 | xmc[29] 3 | ||
240 | xmc[30] 3 | ||
241 | xmc[31] 3 | ||
242 | xmc[32] 3 | ||
243 | xmc[33] 3 | ||
244 | xmc[34] 3 | ||
245 | xmc[35] 3 | ||
246 | xmc[36] 3 | ||
247 | xmc[37] 3 | ||
248 | xmc[38] 3 | ||
249 | |||
250 | Nc[3] 7 | ||
251 | bc[3] 2 | ||
252 | Mc[3] 2 | ||
253 | xmaxc[3] 6 | ||
254 | xmc[39] 3 | ||
255 | xmc[40] 3 | ||
256 | xmc[41] 3 | ||
257 | xmc[42] 3 | ||
258 | xmc[43] 3 | ||
259 | xmc[44] 3 | ||
260 | xmc[45] 3 | ||
261 | xmc[46] 3 | ||
262 | xmc[47] 3 | ||
263 | xmc[48] 3 | ||
264 | xmc[49] 3 | ||
265 | xmc[50] 3 | ||
266 | xmc[51] 3 | ||
267 | */ | ||
268 | |||
269 | |||
270 | *c++ = ((GSM_MAGIC & 0xF) << 4) /* 1 */ | ||
271 | | ((LARc[0] >> 2) & 0xF); | ||
272 | *c++ = ((LARc[0] & 0x3) << 6) | ||
273 | | (LARc[1] & 0x3F); | ||
274 | *c++ = ((LARc[2] & 0x1F) << 3) | ||
275 | | ((LARc[3] >> 2) & 0x7); | ||
276 | *c++ = ((LARc[3] & 0x3) << 6) | ||
277 | | ((LARc[4] & 0xF) << 2) | ||
278 | | ((LARc[5] >> 2) & 0x3); | ||
279 | *c++ = ((LARc[5] & 0x3) << 6) | ||
280 | | ((LARc[6] & 0x7) << 3) | ||
281 | | (LARc[7] & 0x7); | ||
282 | *c++ = ((Nc[0] & 0x7F) << 1) | ||
283 | | ((bc[0] >> 1) & 0x1); | ||
284 | *c++ = ((bc[0] & 0x1) << 7) | ||
285 | | ((Mc[0] & 0x3) << 5) | ||
286 | | ((xmaxc[0] >> 1) & 0x1F); | ||
287 | *c++ = ((xmaxc[0] & 0x1) << 7) | ||
288 | | ((xmc[0] & 0x7) << 4) | ||
289 | | ((xmc[1] & 0x7) << 1) | ||
290 | | ((xmc[2] >> 2) & 0x1); | ||
291 | *c++ = ((xmc[2] & 0x3) << 6) | ||
292 | | ((xmc[3] & 0x7) << 3) | ||
293 | | (xmc[4] & 0x7); | ||
294 | *c++ = ((xmc[5] & 0x7) << 5) /* 10 */ | ||
295 | | ((xmc[6] & 0x7) << 2) | ||
296 | | ((xmc[7] >> 1) & 0x3); | ||
297 | *c++ = ((xmc[7] & 0x1) << 7) | ||
298 | | ((xmc[8] & 0x7) << 4) | ||
299 | | ((xmc[9] & 0x7) << 1) | ||
300 | | ((xmc[10] >> 2) & 0x1); | ||
301 | *c++ = ((xmc[10] & 0x3) << 6) | ||
302 | | ((xmc[11] & 0x7) << 3) | ||
303 | | (xmc[12] & 0x7); | ||
304 | *c++ = ((Nc[1] & 0x7F) << 1) | ||
305 | | ((bc[1] >> 1) & 0x1); | ||
306 | *c++ = ((bc[1] & 0x1) << 7) | ||
307 | | ((Mc[1] & 0x3) << 5) | ||
308 | | ((xmaxc[1] >> 1) & 0x1F); | ||
309 | *c++ = ((xmaxc[1] & 0x1) << 7) | ||
310 | | ((xmc[13] & 0x7) << 4) | ||
311 | | ((xmc[14] & 0x7) << 1) | ||
312 | | ((xmc[15] >> 2) & 0x1); | ||
313 | *c++ = ((xmc[15] & 0x3) << 6) | ||
314 | | ((xmc[16] & 0x7) << 3) | ||
315 | | (xmc[17] & 0x7); | ||
316 | *c++ = ((xmc[18] & 0x7) << 5) | ||
317 | | ((xmc[19] & 0x7) << 2) | ||
318 | | ((xmc[20] >> 1) & 0x3); | ||
319 | *c++ = ((xmc[20] & 0x1) << 7) | ||
320 | | ((xmc[21] & 0x7) << 4) | ||
321 | | ((xmc[22] & 0x7) << 1) | ||
322 | | ((xmc[23] >> 2) & 0x1); | ||
323 | *c++ = ((xmc[23] & 0x3) << 6) | ||
324 | | ((xmc[24] & 0x7) << 3) | ||
325 | | (xmc[25] & 0x7); | ||
326 | *c++ = ((Nc[2] & 0x7F) << 1) /* 20 */ | ||
327 | | ((bc[2] >> 1) & 0x1); | ||
328 | *c++ = ((bc[2] & 0x1) << 7) | ||
329 | | ((Mc[2] & 0x3) << 5) | ||
330 | | ((xmaxc[2] >> 1) & 0x1F); | ||
331 | *c++ = ((xmaxc[2] & 0x1) << 7) | ||
332 | | ((xmc[26] & 0x7) << 4) | ||
333 | | ((xmc[27] & 0x7) << 1) | ||
334 | | ((xmc[28] >> 2) & 0x1); | ||
335 | *c++ = ((xmc[28] & 0x3) << 6) | ||
336 | | ((xmc[29] & 0x7) << 3) | ||
337 | | (xmc[30] & 0x7); | ||
338 | *c++ = ((xmc[31] & 0x7) << 5) | ||
339 | | ((xmc[32] & 0x7) << 2) | ||
340 | | ((xmc[33] >> 1) & 0x3); | ||
341 | *c++ = ((xmc[33] & 0x1) << 7) | ||
342 | | ((xmc[34] & 0x7) << 4) | ||
343 | | ((xmc[35] & 0x7) << 1) | ||
344 | | ((xmc[36] >> 2) & 0x1); | ||
345 | *c++ = ((xmc[36] & 0x3) << 6) | ||
346 | | ((xmc[37] & 0x7) << 3) | ||
347 | | (xmc[38] & 0x7); | ||
348 | *c++ = ((Nc[3] & 0x7F) << 1) | ||
349 | | ((bc[3] >> 1) & 0x1); | ||
350 | *c++ = ((bc[3] & 0x1) << 7) | ||
351 | | ((Mc[3] & 0x3) << 5) | ||
352 | | ((xmaxc[3] >> 1) & 0x1F); | ||
353 | *c++ = ((xmaxc[3] & 0x1) << 7) | ||
354 | | ((xmc[39] & 0x7) << 4) | ||
355 | | ((xmc[40] & 0x7) << 1) | ||
356 | | ((xmc[41] >> 2) & 0x1); | ||
357 | *c++ = ((xmc[41] & 0x3) << 6) /* 30 */ | ||
358 | | ((xmc[42] & 0x7) << 3) | ||
359 | | (xmc[43] & 0x7); | ||
360 | *c++ = ((xmc[44] & 0x7) << 5) | ||
361 | | ((xmc[45] & 0x7) << 2) | ||
362 | | ((xmc[46] >> 1) & 0x3); | ||
363 | *c++ = ((xmc[46] & 0x1) << 7) | ||
364 | | ((xmc[47] & 0x7) << 4) | ||
365 | | ((xmc[48] & 0x7) << 1) | ||
366 | | ((xmc[49] >> 2) & 0x1); | ||
367 | *c++ = ((xmc[49] & 0x3) << 6) | ||
368 | | ((xmc[50] & 0x7) << 3) | ||
369 | | (xmc[51] & 0x7); | ||
370 | |||
371 | } | ||
372 | |||
373 | /* decode.c */ | ||
374 | /* | ||
375 | * 4.3 FIXED POINT IMPLEMENTATION OF THE RPE-LTP DECODER | ||
376 | */ | ||
377 | |||
378 | /* code.c */ | ||
379 | void gsm_enc_Gsm_Coder ( | ||
380 | |||
381 | struct gsm_state * S, | ||
382 | |||
383 | word * s, /* [0..159] samples IN */ | ||
384 | |||
385 | /* | ||
386 | * The RPE-LTD coder works on a frame by frame basis. The length of | ||
387 | * the frame is equal to 160 samples. Some computations are done | ||
388 | * once per frame to produce at the output of the coder the | ||
389 | * LARc[1..8] parameters which are the coded LAR coefficients and | ||
390 | * also to realize the inverse filtering operation for the entire | ||
391 | * frame (160 samples of signal d[0..159]). These parts produce at | ||
392 | * the output of the coder: | ||
393 | */ | ||
394 | |||
395 | word * LARc, /* [0..7] LAR coefficients OUT */ | ||
396 | |||
397 | /* | ||
398 | * Procedure 4.2.11 to 4.2.18 are to be executed four times per | ||
399 | * frame. That means once for each sub-segment RPE-LTP analysis of | ||
400 | * 40 samples. These parts produce at the output of the coder: | ||
401 | */ | ||
402 | |||
403 | word * Nc, /* [0..3] LTP lag OUT */ | ||
404 | word * bc, /* [0..3] coded LTP gain OUT */ | ||
405 | word * Mc, /* [0..3] RPE grid selection OUT */ | ||
406 | word * xmaxc,/* [0..3] Coded maximum amplitude OUT */ | ||
407 | word * xMc /* [13*4] normalized RPE samples OUT */ | ||
408 | ) | ||
409 | { | ||
410 | int k; | ||
411 | word * dp = S->dp0 + 120; /* [ -120...-1 ] */ | ||
412 | word * dpp = dp; /* [ 0...39 ] */ | ||
413 | |||
414 | static word e [50] = {0}; | ||
415 | |||
416 | word so[160]; | ||
417 | |||
418 | gsm_enc_Gsm_Preprocess (S, s, so); | ||
419 | gsm_enc_Gsm_LPC_Analysis (so, LARc); | ||
420 | gsm_enc_Gsm_Short_Term_Analysis_Filter (S, LARc, so); | ||
421 | |||
422 | _Pragma("loopbound min 4 max 4") | ||
423 | for (k = 0; k <= 3; k++, xMc += 13) { | ||
424 | |||
425 | gsm_enc_Gsm_Long_Term_Predictor ( | ||
426 | so+k*40, /* d [0..39] IN */ | ||
427 | dp, /* dp [-120..-1] IN */ | ||
428 | e + 5, /* e [0..39] OUT */ | ||
429 | dpp, /* dpp [0..39] OUT */ | ||
430 | Nc++, | ||
431 | bc++); | ||
432 | |||
433 | gsm_enc_Gsm_RPE_Encoding ( | ||
434 | e + 5, /* e ][0..39][ IN/OUT */ | ||
435 | xmaxc++, Mc++, xMc ); | ||
436 | /* | ||
437 | * gsm_enc_Gsm_Update_of_reconstructed_short_time_residual_signal | ||
438 | * ( dpp, e + 5, dp ); | ||
439 | */ | ||
440 | |||
441 | { int i; | ||
442 | longword ltmp; | ||
443 | _Pragma("loopbound min 40 max 40") | ||
444 | for (i = 0; i <= 39; i++) { | ||
445 | dp[ i ] = GSM_ADD( e[5 + i], dpp[i] ); | ||
446 | } | ||
447 | } | ||
448 | |||
449 | dp += 40; | ||
450 | dpp += 40; | ||
451 | |||
452 | } | ||
453 | // //(void)memcpy( (char *)S->dp0, (char *)(S->dp0 + 160), | ||
454 | // // 120 * sizeof(*S->dp0) ); | ||
455 | } | ||
456 | |||
457 | /* rpe.c */ | ||
458 | /* 4.2.13 .. 4.2.17 RPE ENCODING SECTION | ||
459 | */ | ||
460 | |||
461 | /* 4.2.13 */ | ||
462 | |||
463 | void gsm_enc_Weighting_filter ( | ||
464 | word * e, /* signal [-5..0.39.44] IN */ | ||
465 | word * x /* signal [0..39] OUT */ | ||
466 | ) | ||
467 | /* | ||
468 | * The coefficients of the weighting filter are stored in a table | ||
469 | * (see table 4.4). The following scaling is used: | ||
470 | * | ||
471 | * H[0..10] = integer( real_H[ 0..10] * 8192 ); | ||
472 | */ | ||
473 | { | ||
474 | /* word wt[ 50 ]; */ | ||
475 | |||
476 | longword L_result; | ||
477 | int k /* , i */ ; | ||
478 | |||
479 | /* Initialization of a temporary working array wt[0...49] | ||
480 | */ | ||
481 | |||
482 | /* for (k = 0; k <= 4; k++) wt[k] = 0; | ||
483 | * for (k = 5; k <= 44; k++) wt[k] = *e++; | ||
484 | * for (k = 45; k <= 49; k++) wt[k] = 0; | ||
485 | * | ||
486 | * (e[-5..-1] and e[40..44] are allocated by the caller, | ||
487 | * are initially zero and are not written anywhere.) | ||
488 | */ | ||
489 | e -= 5; | ||
490 | |||
491 | /* Compute the signal x[0..39] | ||
492 | */ | ||
493 | _Pragma("loopbound min 40 max 40") | ||
494 | for (k = 0; k <= 39; k++) { | ||
495 | |||
496 | L_result = 8192 >> 1; | ||
497 | |||
498 | /* for (i = 0; i <= 10; i++) { | ||
499 | * L_temp = GSM_L_MULT( wt[k+i], gsm_enc_H[i] ); | ||
500 | * L_result = GSM_L_ADD( L_result, L_temp ); | ||
501 | * } | ||
502 | */ | ||
503 | |||
504 | #undef STEP | ||
505 | #define STEP( i, H ) (e[ k + i ] * (longword)H) | ||
506 | |||
507 | /* Every one of these multiplications is done twice -- | ||
508 | * but I don't see an elegant way to optimize this. | ||
509 | * Do you? | ||
510 | */ | ||
511 | |||
512 | #ifdef STUPID_COMPILER | ||
513 | L_result += STEP( 0, -134 ) ; | ||
514 | L_result += STEP( 1, -374 ) ; | ||
515 | /* + STEP( 2, 0 ) */ | ||
516 | L_result += STEP( 3, 2054 ) ; | ||
517 | L_result += STEP( 4, 5741 ) ; | ||
518 | L_result += STEP( 5, 8192 ) ; | ||
519 | L_result += STEP( 6, 5741 ) ; | ||
520 | L_result += STEP( 7, 2054 ) ; | ||
521 | /* + STEP( 8, 0 ) */ | ||
522 | L_result += STEP( 9, -374 ) ; | ||
523 | L_result += STEP( 10, -134 ) ; | ||
524 | #else | ||
525 | L_result += | ||
526 | STEP( 0, -134 ) | ||
527 | + STEP( 1, -374 ) | ||
528 | /* + STEP( 2, 0 ) */ | ||
529 | + STEP( 3, 2054 ) | ||
530 | + STEP( 4, 5741 ) | ||
531 | + STEP( 5, 8192 ) | ||
532 | + STEP( 6, 5741 ) | ||
533 | + STEP( 7, 2054 ) | ||
534 | /* + STEP( 8, 0 ) */ | ||
535 | + STEP( 9, -374 ) | ||
536 | + STEP(10, -134 ) | ||
537 | ; | ||
538 | #endif | ||
539 | /* L_result = GSM_L_ADD( L_result, L_result ); (* scaling(x2) *) | ||
540 | * L_result = GSM_L_ADD( L_result, L_result ); (* scaling(x4) *) | ||
541 | * | ||
542 | * x[k] = SASR( L_result, 16 ); | ||
543 | */ | ||
544 | |||
545 | /* 2 adds vs. >>16 => 14, minus one shift to compensate for | ||
546 | * those we lost when replacing L_MULT by '*'. | ||
547 | */ | ||
548 | |||
549 | L_result = SASR( L_result, 13 ); | ||
550 | x[k] = ( L_result < MIN_WORD ? MIN_WORD | ||
551 | : (L_result > MAX_WORD ? MAX_WORD : L_result )); | ||
552 | } | ||
553 | } | ||
554 | |||
555 | /* 4.2.14 */ | ||
556 | |||
557 | void gsm_enc_RPE_grid_selection ( | ||
558 | word * x, /* [0..39] IN */ | ||
559 | word * xM, /* [0..12] OUT */ | ||
560 | word * Mc_out /* OUT */ | ||
561 | ) | ||
562 | /* | ||
563 | * The signal x[0..39] is used to select the RPE grid which is | ||
564 | * represented by Mc. | ||
565 | */ | ||
566 | { | ||
567 | /* word temp1; */ | ||
568 | int /* m, */ i; | ||
569 | longword L_result, L_temp; | ||
570 | longword EM; /* xxx should be L_EM? */ | ||
571 | word Mc; | ||
572 | |||
573 | longword L_common_0_3; | ||
574 | |||
575 | Mc = 0; | ||
576 | |||
577 | #undef STEP | ||
578 | #define STEP( m, i ) L_temp = SASR( x[m + 3 * i], 2 ); \ | ||
579 | L_result += L_temp * L_temp; | ||
580 | |||
581 | /* common part of 0 and 3 */ | ||
582 | |||
583 | L_result = 0; | ||
584 | STEP( 0, 1 ); STEP( 0, 2 ); STEP( 0, 3 ); STEP( 0, 4 ); | ||
585 | STEP( 0, 5 ); STEP( 0, 6 ); STEP( 0, 7 ); STEP( 0, 8 ); | ||
586 | STEP( 0, 9 ); STEP( 0, 10); STEP( 0, 11); STEP( 0, 12); | ||
587 | L_common_0_3 = L_result; | ||
588 | |||
589 | /* i = 0 */ | ||
590 | |||
591 | STEP( 0, 0 ); | ||
592 | L_result <<= 1; /* implicit in L_MULT */ | ||
593 | EM = L_result; | ||
594 | |||
595 | /* i = 1 */ | ||
596 | |||
597 | L_result = 0; | ||
598 | STEP( 1, 0 ); | ||
599 | STEP( 1, 1 ); STEP( 1, 2 ); STEP( 1, 3 ); STEP( 1, 4 ); | ||
600 | STEP( 1, 5 ); STEP( 1, 6 ); STEP( 1, 7 ); STEP( 1, 8 ); | ||
601 | STEP( 1, 9 ); STEP( 1, 10); STEP( 1, 11); STEP( 1, 12); | ||
602 | L_result <<= 1; | ||
603 | if (L_result > EM) { | ||
604 | Mc = 1; | ||
605 | EM = L_result; | ||
606 | } | ||
607 | |||
608 | /* i = 2 */ | ||
609 | |||
610 | L_result = 0; | ||
611 | STEP( 2, 0 ); | ||
612 | STEP( 2, 1 ); STEP( 2, 2 ); STEP( 2, 3 ); STEP( 2, 4 ); | ||
613 | STEP( 2, 5 ); STEP( 2, 6 ); STEP( 2, 7 ); STEP( 2, 8 ); | ||
614 | STEP( 2, 9 ); STEP( 2, 10); STEP( 2, 11); STEP( 2, 12); | ||
615 | L_result <<= 1; | ||
616 | if (L_result > EM) { | ||
617 | Mc = 2; | ||
618 | EM = L_result; | ||
619 | } | ||
620 | |||
621 | /* i = 3 */ | ||
622 | |||
623 | L_result = L_common_0_3; | ||
624 | STEP( 3, 12 ); | ||
625 | L_result <<= 1; | ||
626 | if (L_result > EM) { | ||
627 | Mc = 3; | ||
628 | } | ||
629 | |||
630 | /**/ | ||
631 | |||
632 | /* Down-sampling by a factor 3 to get the selected xM[0..12] | ||
633 | * RPE sequence. | ||
634 | */ | ||
635 | _Pragma("loopbound min 13 max 13") | ||
636 | for (i = 0; i <= 12; i ++) xM[i] = x[Mc + 3*i]; | ||
637 | *Mc_out = Mc; | ||
638 | |||
639 | } | ||
640 | |||
641 | /* 4.12.15 */ | ||
642 | |||
643 | void gsm_enc_APCM_quantization_xmaxc_to_exp_mant ( | ||
644 | word xmaxc, /* IN */ | ||
645 | word * exp_out, /* OUT */ | ||
646 | word * mant_out ) /* OUT */ | ||
647 | { | ||
648 | word exp, mant; | ||
649 | |||
650 | /* Compute exponent and mantissa of the decoded version of xmaxc | ||
651 | */ | ||
652 | exp = 0; | ||
653 | if (xmaxc > 15) exp = SASR(xmaxc, 3) - 1; | ||
654 | mant = xmaxc - (exp << 3); | ||
655 | |||
656 | if (mant == 0) { | ||
657 | exp = -4; | ||
658 | mant = 7; | ||
659 | } | ||
660 | else { | ||
661 | _Pragma("loopbound min 0 max 3") | ||
662 | while (mant <= 7) { | ||
663 | mant = mant << 1 | 1; | ||
664 | exp--; | ||
665 | } | ||
666 | mant -= 8; | ||
667 | } | ||
668 | |||
669 | *exp_out = exp; | ||
670 | *mant_out = mant; | ||
671 | |||
672 | } | ||
673 | |||
674 | void gsm_enc_APCM_quantization ( | ||
675 | word * xM, /* [0..12] IN */ | ||
676 | |||
677 | word * xMc, /* [0..12] OUT */ | ||
678 | word * mant_out, /* OUT */ | ||
679 | word * exp_out, /* OUT */ | ||
680 | word * xmaxc_out /* OUT */ | ||
681 | ) | ||
682 | { | ||
683 | int i, itest; | ||
684 | |||
685 | word xmax, xmaxc, temp, temp1, temp2; | ||
686 | word exp, mant; | ||
687 | |||
688 | |||
689 | /* Find the maximum absolute value xmax of xM[0..12]. | ||
690 | */ | ||
691 | |||
692 | xmax = 0; | ||
693 | |||
694 | _Pragma("loopbound min 13 max 13") | ||
695 | for (i = 0; i <= 12; i++) { | ||
696 | temp = xM[i]; | ||
697 | temp = GSM_ABS(temp); | ||
698 | if (temp > xmax) xmax = temp; | ||
699 | } | ||
700 | |||
701 | /* Qantizing and coding of xmax to get xmaxc. | ||
702 | */ | ||
703 | |||
704 | exp = 0; | ||
705 | temp = SASR( xmax, 9 ); | ||
706 | itest = 0; | ||
707 | |||
708 | _Pragma("loopbound min 6 max 6") | ||
709 | for (i = 0; i <= 5; i++) { | ||
710 | |||
711 | itest |= (temp <= 0); | ||
712 | temp = SASR( temp, 1 ); | ||
713 | |||
714 | if (itest == 0) exp++; // exp = add (exp, 1) | ||
715 | } | ||
716 | |||
717 | temp = exp + 5; | ||
718 | |||
719 | //xmaxc = gsm_enc_add( SASR(xmax, temp), exp << 3 ); | ||
720 | xmaxc = saturate( ( SASR(xmax, temp) + (exp << 3) )); | ||
721 | |||
722 | /* Quantizing and coding of the xM[0..12] RPE sequence | ||
723 | * to get the xMc[0..12] | ||
724 | */ | ||
725 | |||
726 | gsm_enc_APCM_quantization_xmaxc_to_exp_mant( xmaxc, &exp, &mant ); | ||
727 | |||
728 | /* This computation uses the fact that the decoded version of xmaxc | ||
729 | * can be calculated by using the exponent and the mantissa part of | ||
730 | * xmaxc (logarithmic table). | ||
731 | * So, this method avoids any division and uses only a scaling | ||
732 | * of the RPE samples by a function of the exponent. A direct | ||
733 | * multiplication by the inverse of the mantissa (NRFAC[0..7] | ||
734 | * found in table 4.5) gives the 3 bit coded version xMc[0..12] | ||
735 | * of the RPE samples. | ||
736 | */ | ||
737 | |||
738 | |||
739 | /* Direct computation of xMc[0..12] using table 4.5 | ||
740 | */ | ||
741 | |||
742 | |||
743 | temp1 = 6 - exp; /* normalization by the exponent */ | ||
744 | temp2 = gsm_enc_NRFAC[ mant ]; /* inverse mantissa */ | ||
745 | |||
746 | _Pragma("loopbound min 13 max 13") | ||
747 | for (i = 0; i <= 12; i++) { | ||
748 | |||
749 | temp = xM[i] << temp1; | ||
750 | temp = GSM_MULT( temp, temp2 ); | ||
751 | temp = SASR(temp, 12); | ||
752 | xMc[i] = temp + 4; /* see note below */ | ||
753 | } | ||
754 | |||
755 | /* NOTE: This equation is used to make all the xMc[i] positive. | ||
756 | */ | ||
757 | |||
758 | *mant_out = mant; | ||
759 | *exp_out = exp; | ||
760 | *xmaxc_out = xmaxc; | ||
761 | |||
762 | } | ||
763 | |||
764 | /* 4.2.16 */ | ||
765 | |||
766 | void gsm_enc_APCM_inverse_quantization ( | ||
767 | word * xMc, /* [0..12] IN */ | ||
768 | word mant, | ||
769 | word exp, | ||
770 | word * xMp) /* [0..12] OUT */ | ||
771 | /* | ||
772 | * This part is for decoding the RPE sequence of coded xMc[0..12] | ||
773 | * samples to obtain the xMp[0..12] array. Table 4.6 is used to get | ||
774 | * the mantissa of xmaxc (FAC[0..7]). | ||
775 | */ | ||
776 | { | ||
777 | int i; | ||
778 | word temp, temp1, temp2, temp3; | ||
779 | longword ltmp; | ||
780 | |||
781 | temp1 = gsm_enc_FAC[ mant ]; /* see 4.2-15 for mant */ | ||
782 | temp2 = gsm_enc_sub( 6, exp ); /* see 4.2-15 for exp */ | ||
783 | temp3 = gsm_enc_asl( 1, gsm_enc_sub( temp2, 1 )); | ||
784 | |||
785 | _Pragma("loopbound min 13 max 13") | ||
786 | for (i = 13; i--;) { | ||
787 | |||
788 | /* temp = gsm_enc_sub( *xMc++ << 1, 7 ); */ | ||
789 | temp = (*xMc++ << 1) - 7; /* restore sign */ | ||
790 | |||
791 | temp <<= 12; /* 16 bit signed */ | ||
792 | temp = GSM_MULT_R( temp1, temp ); | ||
793 | temp = GSM_ADD( temp, temp3 ); | ||
794 | *xMp++ = gsm_enc_asr( temp, temp2 ); | ||
795 | } | ||
796 | } | ||
797 | |||
798 | /* 4.2.17 */ | ||
799 | |||
800 | void gsm_enc_RPE_grid_positioning ( | ||
801 | word Mc, /* grid position IN */ | ||
802 | word * xMp, /* [0..12] IN */ | ||
803 | word * ep /* [0..39] OUT */ | ||
804 | ) | ||
805 | /* | ||
806 | * This procedure computes the reconstructed long term residual signal | ||
807 | * ep[0..39] for the LTP analysis filter. The inputs are the Mc | ||
808 | * which is the grid position selection and the xMp[0..12] decoded | ||
809 | * RPE samples which are upsampled by a factor of 3 by inserting zero | ||
810 | * values. | ||
811 | */ | ||
812 | { | ||
813 | int i = 13; | ||
814 | |||
815 | // | ||
816 | // TODO: rewritten Duff's device for WCET analysis! | ||
817 | // | ||
818 | switch (Mc) { | ||
819 | case 3: *ep++ = 0; | ||
820 | case 2: *ep++ = 0; | ||
821 | case 1: *ep++ = 0; | ||
822 | case 0: *ep++ = *xMp++; | ||
823 | i--; | ||
824 | } | ||
825 | |||
826 | _Pragma("loopbound min 12 max 12") | ||
827 | do { | ||
828 | *ep++ = 0; | ||
829 | *ep++ = 0; | ||
830 | *ep++ = *xMp++; | ||
831 | } while (--i); | ||
832 | |||
833 | _Pragma("loopbound min 0 max 3") | ||
834 | while (++Mc < 4) *ep++ = 0; | ||
835 | |||
836 | } | ||
837 | /* | ||
838 | { | ||
839 | int i = 13; | ||
840 | |||
841 | // | ||
842 | //TODO: removed for WCET analysis | ||
843 | //_Pragma("marker outside") | ||
844 | switch (Mc) { | ||
845 | case 3: *ep++ = 0; | ||
846 | case 2: | ||
847 | _Pragma("loopbound min 13 max 13") | ||
848 | do { | ||
849 | *ep++ = 0; | ||
850 | case 1: *ep++ = 0; | ||
851 | case 0: | ||
852 | //_Pragma("marker inside") | ||
853 | *ep++ = *xMp++; | ||
854 | } while (--i); | ||
855 | } | ||
856 | |||
857 | //_Pragma("flowrestriction 1*inside <= 13*outside") | ||
858 | |||
859 | _Pragma("loopbound min 0 max 3") | ||
860 | while (++Mc < 4) *ep++ = 0; | ||
861 | |||
862 | } | ||
863 | */ | ||
864 | |||
865 | /* 4.2.18 */ | ||
866 | |||
867 | /* This procedure adds the reconstructed long term residual signal | ||
868 | * ep[0..39] to the estimated signal dpp[0..39] from the long term | ||
869 | * analysis filter to compute the reconstructed short term residual | ||
870 | * signal dp[-40..-1]; also the reconstructed short term residual | ||
871 | * array dp[-120..-41] is updated. | ||
872 | */ | ||
873 | |||
874 | #if 0 /* Has been inlined in code.c */ | ||
875 | void gsm_enc_Gsm_Update_of_reconstructed_short_time_residual_signal P3((dpp, ep, dp), | ||
876 | word * dpp, /* [0...39] IN */ | ||
877 | word * ep, /* [0...39] IN */ | ||
878 | word * dp) /* [-120...-1] IN/OUT */ | ||
879 | { | ||
880 | int k; | ||
881 | |||
882 | for (k = 0; k <= 79; k++) | ||
883 | dp[ -120 + k ] = dp[ -80 + k ]; | ||
884 | |||
885 | for (k = 0; k <= 39; k++) | ||
886 | dp[ -40 + k ] = gsm_enc_add( ep[k], dpp[k] ); | ||
887 | } | ||
888 | #endif /* Has been inlined in code.c */ | ||
889 | |||
890 | void gsm_enc_Gsm_RPE_Encoding ( | ||
891 | |||
892 | word * e, /* -5..-1][0..39][40..44 IN/OUT */ | ||
893 | word * xmaxc, /* OUT */ | ||
894 | word * Mc, /* OUT */ | ||
895 | word * xMc) /* [0..12] OUT */ | ||
896 | { | ||
897 | word x[40]; | ||
898 | word xM[13], xMp[13]; | ||
899 | word mant, exp; | ||
900 | |||
901 | gsm_enc_Weighting_filter(e, x); | ||
902 | gsm_enc_RPE_grid_selection(x, xM, Mc); | ||
903 | |||
904 | gsm_enc_APCM_quantization( xM, xMc, &mant, &exp, xmaxc); | ||
905 | gsm_enc_APCM_inverse_quantization( xMc, mant, exp, xMp); | ||
906 | |||
907 | gsm_enc_RPE_grid_positioning( *Mc, xMp, e ); | ||
908 | |||
909 | } | ||
910 | |||
911 | /* long_term.c */ | ||
912 | #ifdef USE_TABLE_MUL | ||
913 | |||
914 | unsigned int umul_table[ 513 ][ 256 ]; | ||
915 | |||
916 | # define umul(x9, x15) \ | ||
917 | ((int)(umul_table[x9][x15 & 0x0FF] + (umul_table[x9][ x15 >> 8 ] << 8))) | ||
918 | |||
919 | # define table_mul(a, b) \ | ||
920 | ( (a < 0) ? ((b < 0) ? umul(-a, -b) : -umul(-a, b)) \ | ||
921 | : ((b < 0) ? -umul(a, -b) : umul(a, b))) | ||
922 | |||
923 | #endif /* USE_TABLE_MUL */ | ||
924 | |||
925 | |||
926 | |||
927 | /* | ||
928 | * 4.2.11 .. 4.2.12 LONG TERM PREDICTOR (LTP) SECTION | ||
929 | */ | ||
930 | |||
931 | |||
932 | /* | ||
933 | * This procedure computes the LTP gain (bc) and the LTP lag (Nc) | ||
934 | * for the long term analysis filter. This is done by calculating a | ||
935 | * maximum of the cross-correlation function between the current | ||
936 | * sub-segment short term residual signal d[0..39] (output of | ||
937 | * the short term analysis filter; for simplification the index | ||
938 | * of this array begins at 0 and ends at 39 for each sub-segment of the | ||
939 | * RPE-LTP analysis) and the previous reconstructed short term | ||
940 | * residual signal dp[ -120 .. -1 ]. A dynamic scaling must be | ||
941 | * performed to avoid overflow. | ||
942 | */ | ||
943 | |||
944 | /* This procedure exists in four versions. First, the two integer | ||
945 | * versions with or without table-multiplication (as one function); | ||
946 | * then, the two floating point versions (as another function), with | ||
947 | * or without scaling. | ||
948 | */ | ||
949 | |||
950 | #ifndef USE_FLOAT_MUL | ||
951 | |||
952 | void gsm_enc_Calculation_of_the_LTP_parameters ( | ||
953 | word * d, /* [0..39] IN */ | ||
954 | word * dp, /* [-120..-1] IN */ | ||
955 | word * bc_out, /* OUT */ | ||
956 | word * Nc_out /* OUT */ | ||
957 | ) | ||
958 | { | ||
959 | int k, lambda; | ||
960 | word Nc, bc; | ||
961 | word wt[40]; | ||
962 | |||
963 | longword L_max, L_power; | ||
964 | word R, S, dmax, scal; | ||
965 | word temp; | ||
966 | |||
967 | /* Search of the optimum scaling of d[0..39]. | ||
968 | */ | ||
969 | dmax = 0; | ||
970 | |||
971 | _Pragma("loopbound min 40 max 40") | ||
972 | for (k = 0; k <= 39; k++) { | ||
973 | temp = d[k]; | ||
974 | temp = GSM_ABS( temp ); | ||
975 | if (temp > dmax) dmax = temp; | ||
976 | } | ||
977 | |||
978 | temp = 0; | ||
979 | if (dmax != 0) | ||
980 | temp = gsm_enc_norm( (longword)dmax << 16 ); | ||
981 | |||
982 | if (temp > 6) scal = 0; | ||
983 | else scal = 6 - temp; | ||
984 | |||
985 | |||
986 | /* Initialization of a working array wt | ||
987 | */ | ||
988 | |||
989 | _Pragma("loopbound min 40 max 40") | ||
990 | for (k = 0; k <= 39; k++) wt[k] = SASR( d[k], scal ); | ||
991 | |||
992 | /* Search for the maximum cross-correlation and coding of the LTP lag | ||
993 | */ | ||
994 | L_max = 0; | ||
995 | Nc = 40; /* index for the maximum cross-correlation */ | ||
996 | |||
997 | _Pragma("loopbound min 81 max 81") | ||
998 | for (lambda = 40; lambda <= 120; lambda++) { | ||
999 | |||
1000 | # undef STEP | ||
1001 | # ifdef USE_TABLE_MUL | ||
1002 | # define STEP(k) (table_mul(wt[k], dp[k - lambda])) | ||
1003 | # else | ||
1004 | # define STEP(k) (wt[k] * dp[k - lambda]) | ||
1005 | # endif | ||
1006 | |||
1007 | longword L_result; | ||
1008 | |||
1009 | L_result = STEP(0) ; L_result += STEP(1) ; | ||
1010 | L_result += STEP(2) ; L_result += STEP(3) ; | ||
1011 | L_result += STEP(4) ; L_result += STEP(5) ; | ||
1012 | L_result += STEP(6) ; L_result += STEP(7) ; | ||
1013 | L_result += STEP(8) ; L_result += STEP(9) ; | ||
1014 | L_result += STEP(10) ; L_result += STEP(11) ; | ||
1015 | L_result += STEP(12) ; L_result += STEP(13) ; | ||
1016 | L_result += STEP(14) ; L_result += STEP(15) ; | ||
1017 | L_result += STEP(16) ; L_result += STEP(17) ; | ||
1018 | L_result += STEP(18) ; L_result += STEP(19) ; | ||
1019 | L_result += STEP(20) ; L_result += STEP(21) ; | ||
1020 | L_result += STEP(22) ; L_result += STEP(23) ; | ||
1021 | L_result += STEP(24) ; L_result += STEP(25) ; | ||
1022 | L_result += STEP(26) ; L_result += STEP(27) ; | ||
1023 | L_result += STEP(28) ; L_result += STEP(29) ; | ||
1024 | L_result += STEP(30) ; L_result += STEP(31) ; | ||
1025 | L_result += STEP(32) ; L_result += STEP(33) ; | ||
1026 | L_result += STEP(34) ; L_result += STEP(35) ; | ||
1027 | L_result += STEP(36) ; L_result += STEP(37) ; | ||
1028 | L_result += STEP(38) ; L_result += STEP(39) ; | ||
1029 | |||
1030 | if (L_result > L_max) { | ||
1031 | |||
1032 | Nc = lambda; | ||
1033 | L_max = L_result; | ||
1034 | } | ||
1035 | } | ||
1036 | |||
1037 | *Nc_out = Nc; | ||
1038 | |||
1039 | L_max <<= 1; | ||
1040 | |||
1041 | /* Rescaling of L_max | ||
1042 | */ | ||
1043 | L_max = L_max >> (6 - scal); /* sub(6, scal) */ | ||
1044 | |||
1045 | /* Compute the power of the reconstructed short term residual | ||
1046 | * signal dp[..] | ||
1047 | */ | ||
1048 | L_power = 0; | ||
1049 | _Pragma("loopbound min 40 max 40") | ||
1050 | for (k = 0; k <= 39; k++) { | ||
1051 | |||
1052 | longword L_temp; | ||
1053 | |||
1054 | L_temp = SASR( dp[k - Nc], 3 ); | ||
1055 | L_power += L_temp * L_temp; | ||
1056 | } | ||
1057 | L_power <<= 1; /* from L_MULT */ | ||
1058 | |||
1059 | /* Normalization of L_max and L_power | ||
1060 | */ | ||
1061 | |||
1062 | if (L_max <= 0) { | ||
1063 | *bc_out = 0; | ||
1064 | return; | ||
1065 | } | ||
1066 | if (L_max >= L_power) { | ||
1067 | *bc_out = 3; | ||
1068 | return; | ||
1069 | } | ||
1070 | |||
1071 | temp = gsm_enc_norm( L_power ); | ||
1072 | |||
1073 | R = SASR( L_max << temp, 16 ); | ||
1074 | S = SASR( L_power << temp, 16 ); | ||
1075 | |||
1076 | /* Coding of the LTP gain | ||
1077 | */ | ||
1078 | |||
1079 | /* Table 4.3a must be used to obtain the level DLB[i] for the | ||
1080 | * quantization of the LTP gain b to get the coded version bc. | ||
1081 | */ | ||
1082 | _Pragma("loopbound min 3 max 3") | ||
1083 | for (bc = 0; bc <= 2; bc++) | ||
1084 | /* Replaced by macro function. */ | ||
1085 | //if (R <= gsm_enc_mult(S, gsm_enc_DLB[bc])) | ||
1086 | if (R <= GSM_MULT(S, gsm_enc_DLB[bc])) | ||
1087 | break; | ||
1088 | |||
1089 | *bc_out = bc; | ||
1090 | } | ||
1091 | |||
1092 | #else /* USE_FLOAT_MUL */ | ||
1093 | |||
1094 | void gsm_enc_Calculation_of_the_LTP_parameters ( | ||
1095 | word * d, /* [0..39] IN */ | ||
1096 | word * dp, /* [-120..-1] IN */ | ||
1097 | word * bc_out, /* OUT */ | ||
1098 | word * Nc_out /* OUT */ | ||
1099 | ) | ||
1100 | { | ||
1101 | int k, lambda; | ||
1102 | word Nc, bc; | ||
1103 | |||
1104 | float wt_float[40]; | ||
1105 | float dp_float_base[120], * dp_float = dp_float_base + 120; | ||
1106 | |||
1107 | longword L_max, L_power; | ||
1108 | word R, S, dmax, scal; | ||
1109 | word temp; | ||
1110 | |||
1111 | /* Search of the optimum scaling of d[0..39]. | ||
1112 | */ | ||
1113 | dmax = 0; | ||
1114 | |||
1115 | for (k = 0; k <= 39; k++) { | ||
1116 | temp = d[k]; | ||
1117 | temp = GSM_ABS( temp ); | ||
1118 | if (temp > dmax) dmax = temp; | ||
1119 | } | ||
1120 | |||
1121 | temp = 0; | ||
1122 | if (dmax == 0) scal = 0; | ||
1123 | else { | ||
1124 | temp = gsm_enc_norm( (longword)dmax << 16 ); | ||
1125 | } | ||
1126 | |||
1127 | if (temp > 6) scal = 0; | ||
1128 | else scal = 6 - temp; | ||
1129 | |||
1130 | /* Initialization of a working array wt | ||
1131 | */ | ||
1132 | |||
1133 | for (k = 0; k < 40; k++) wt_float[k] = SASR( d[k], scal ); | ||
1134 | for (k = -120; k < 0; k++) dp_float[k] = dp[k]; | ||
1135 | |||
1136 | /* Search for the maximum cross-correlation and coding of the LTP lag | ||
1137 | */ | ||
1138 | L_max = 0; | ||
1139 | Nc = 40; /* index for the maximum cross-correlation */ | ||
1140 | |||
1141 | for (lambda = 40; lambda <= 120; lambda += 9) { | ||
1142 | |||
1143 | /* Calculate L_result for l = lambda .. lambda + 9. | ||
1144 | */ | ||
1145 | float *lp = dp_float - lambda; | ||
1146 | |||
1147 | float W; | ||
1148 | float a = lp[-8], b = lp[-7], c = lp[-6], | ||
1149 | d = lp[-5], e = lp[-4], f = lp[-3], | ||
1150 | g = lp[-2], h = lp[-1]; | ||
1151 | float E; | ||
1152 | float S0 = 0, S1 = 0, S2 = 0, S3 = 0, S4 = 0, | ||
1153 | S5 = 0, S6 = 0, S7 = 0, S8 = 0; | ||
1154 | |||
1155 | # undef STEP | ||
1156 | # define STEP(K, a, b, c, d, e, f, g, h) \ | ||
1157 | W = wt_float[K]; \ | ||
1158 | E = W * a; S8 += E; \ | ||
1159 | E = W * b; S7 += E; \ | ||
1160 | E = W * c; S6 += E; \ | ||
1161 | E = W * d; S5 += E; \ | ||
1162 | E = W * e; S4 += E; \ | ||
1163 | E = W * f; S3 += E; \ | ||
1164 | E = W * g; S2 += E; \ | ||
1165 | E = W * h; S1 += E; \ | ||
1166 | a = lp[K]; \ | ||
1167 | E = W * a; S0 += E | ||
1168 | |||
1169 | # define STEP_A(K) STEP(K, a, b, c, d, e, f, g, h) | ||
1170 | # define STEP_B(K) STEP(K, b, c, d, e, f, g, h, a) | ||
1171 | # define STEP_C(K) STEP(K, c, d, e, f, g, h, a, b) | ||
1172 | # define STEP_D(K) STEP(K, d, e, f, g, h, a, b, c) | ||
1173 | # define STEP_E(K) STEP(K, e, f, g, h, a, b, c, d) | ||
1174 | # define STEP_F(K) STEP(K, f, g, h, a, b, c, d, e) | ||
1175 | # define STEP_G(K) STEP(K, g, h, a, b, c, d, e, f) | ||
1176 | # define STEP_H(K) STEP(K, h, a, b, c, d, e, f, g) | ||
1177 | |||
1178 | STEP_A( 0); STEP_B( 1); STEP_C( 2); STEP_D( 3); | ||
1179 | STEP_E( 4); STEP_F( 5); STEP_G( 6); STEP_H( 7); | ||
1180 | |||
1181 | STEP_A( 8); STEP_B( 9); STEP_C(10); STEP_D(11); | ||
1182 | STEP_E(12); STEP_F(13); STEP_G(14); STEP_H(15); | ||
1183 | |||
1184 | STEP_A(16); STEP_B(17); STEP_C(18); STEP_D(19); | ||
1185 | STEP_E(20); STEP_F(21); STEP_G(22); STEP_H(23); | ||
1186 | |||
1187 | STEP_A(24); STEP_B(25); STEP_C(26); STEP_D(27); | ||
1188 | STEP_E(28); STEP_F(29); STEP_G(30); STEP_H(31); | ||
1189 | |||
1190 | STEP_A(32); STEP_B(33); STEP_C(34); STEP_D(35); | ||
1191 | STEP_E(36); STEP_F(37); STEP_G(38); STEP_H(39); | ||
1192 | |||
1193 | if (S0 > L_max) { L_max = S0; Nc = lambda; } | ||
1194 | if (S1 > L_max) { L_max = S1; Nc = lambda + 1; } | ||
1195 | if (S2 > L_max) { L_max = S2; Nc = lambda + 2; } | ||
1196 | if (S3 > L_max) { L_max = S3; Nc = lambda + 3; } | ||
1197 | if (S4 > L_max) { L_max = S4; Nc = lambda + 4; } | ||
1198 | if (S5 > L_max) { L_max = S5; Nc = lambda + 5; } | ||
1199 | if (S6 > L_max) { L_max = S6; Nc = lambda + 6; } | ||
1200 | if (S7 > L_max) { L_max = S7; Nc = lambda + 7; } | ||
1201 | if (S8 > L_max) { L_max = S8; Nc = lambda + 8; } | ||
1202 | } | ||
1203 | *Nc_out = Nc; | ||
1204 | |||
1205 | L_max <<= 1; | ||
1206 | |||
1207 | /* Rescaling of L_max | ||
1208 | */ | ||
1209 | L_max = L_max >> (6 - scal); /* sub(6, scal) */ | ||
1210 | |||
1211 | /* Compute the power of the reconstructed short term residual | ||
1212 | * signal dp[..] | ||
1213 | */ | ||
1214 | L_power = 0; | ||
1215 | for (k = 0; k <= 39; k++) { | ||
1216 | |||
1217 | longword L_temp; | ||
1218 | |||
1219 | L_temp = SASR( dp[k - Nc], 3 ); | ||
1220 | L_power += L_temp * L_temp; | ||
1221 | } | ||
1222 | L_power <<= 1; /* from L_MULT */ | ||
1223 | |||
1224 | /* Normalization of L_max and L_power | ||
1225 | */ | ||
1226 | |||
1227 | if (L_max <= 0) { | ||
1228 | *bc_out = 0; | ||
1229 | return; | ||
1230 | } | ||
1231 | if (L_max >= L_power) { | ||
1232 | *bc_out = 3; | ||
1233 | return; | ||
1234 | } | ||
1235 | |||
1236 | temp = gsm_enc_norm( L_power ); | ||
1237 | |||
1238 | R = SASR( L_max << temp, 16 ); | ||
1239 | S = SASR( L_power << temp, 16 ); | ||
1240 | |||
1241 | /* Coding of the LTP gain | ||
1242 | */ | ||
1243 | |||
1244 | /* Table 4.3a must be used to obtain the level DLB[i] for the | ||
1245 | * quantization of the LTP gain b to get the coded version bc. | ||
1246 | */ | ||
1247 | // Replaced by macro function. | ||
1248 | //for (bc = 0; bc <= 2; bc++) if (R <= gsm_enc_mult(S, gsm_enc_DLB[bc])) break; | ||
1249 | for (bc = 0; bc <= 2; bc++) if (R <= GSM_MULT(S, gsm_enc_DLB[bc])) break; | ||
1250 | *bc_out = bc; | ||
1251 | } | ||
1252 | |||
1253 | #endif /* USE_FLOAT_MUL */ | ||
1254 | |||
1255 | |||
1256 | /* 4.2.12 */ | ||
1257 | |||
1258 | void gsm_enc_Long_term_analysis_filtering ( | ||
1259 | word bc, /* IN */ | ||
1260 | word Nc, /* IN */ | ||
1261 | word * dp, /* previous d [-120..-1] IN */ | ||
1262 | word * d, /* d [0..39] IN */ | ||
1263 | word * dpp, /* estimate [0..39] OUT */ | ||
1264 | word * e /* long term res. signal [0..39] OUT */ | ||
1265 | ) | ||
1266 | /* | ||
1267 | * In this part, we have to decode the bc parameter to compute | ||
1268 | * the samples of the estimate dpp[0..39]. The decoding of bc needs the | ||
1269 | * use of table 4.3b. The long term residual signal e[0..39] | ||
1270 | * is then calculated to be fed to the RPE encoding section. | ||
1271 | */ | ||
1272 | { | ||
1273 | int k; | ||
1274 | longword ltmp; | ||
1275 | |||
1276 | # undef STEP | ||
1277 | # define STEP(BP) \ | ||
1278 | _Pragma("loopbound min 40 max 40") \ | ||
1279 | for (k = 0; k <= 39; k++) { \ | ||
1280 | dpp[k] = GSM_MULT_R( BP, dp[k - Nc]); \ | ||
1281 | e[k] = GSM_SUB( d[k], dpp[k] ); \ | ||
1282 | } | ||
1283 | |||
1284 | switch (bc) { | ||
1285 | case 0: STEP( 3277 ); break; | ||
1286 | case 1: STEP( 11469 ); break; | ||
1287 | case 2: STEP( 21299 ); break; | ||
1288 | case 3: STEP( 32767 ); break; | ||
1289 | } | ||
1290 | } | ||
1291 | |||
1292 | void gsm_enc_Gsm_Long_Term_Predictor ( | ||
1293 | |||
1294 | word * d, /* [0..39] residual signal IN */ | ||
1295 | word * dp, /* [-120..-1] d' IN */ | ||
1296 | |||
1297 | word * e, /* [0..39] OUT */ | ||
1298 | word * dpp, /* [0..39] OUT */ | ||
1299 | word * Nc, /* correlation lag OUT */ | ||
1300 | word * bc /* gain factor OUT */ | ||
1301 | ) | ||
1302 | { | ||
1303 | |||
1304 | gsm_enc_Calculation_of_the_LTP_parameters( d, dp, bc, Nc ); | ||
1305 | |||
1306 | gsm_enc_Long_term_analysis_filtering( *bc, *Nc, dp, d, dpp, e ); | ||
1307 | } | ||
1308 | |||
1309 | /* short_term.c */ | ||
1310 | /* | ||
1311 | * SHORT TERM ANALYSIS FILTERING SECTION | ||
1312 | */ | ||
1313 | |||
1314 | /* 4.2.8 */ | ||
1315 | |||
1316 | void gsm_enc_Decoding_of_the_coded_Log_Area_Ratios ( | ||
1317 | word * LARc, /* coded log area ratio [0..7] IN */ | ||
1318 | word * LARpp) /* out: decoded .. */ | ||
1319 | { | ||
1320 | word temp1 /* , temp2 */; | ||
1321 | long ltmp; /* for GSM_ADD */ | ||
1322 | |||
1323 | /* This procedure requires for efficient implementation | ||
1324 | * two tables. | ||
1325 | * | ||
1326 | * INVA[1..8] = integer( (32768 * 8) / real_A[1..8]) | ||
1327 | * MIC[1..8] = minimum value of the LARc[1..8] | ||
1328 | */ | ||
1329 | |||
1330 | /* Compute the LARpp[1..8] | ||
1331 | */ | ||
1332 | |||
1333 | #undef STEP | ||
1334 | #define STEP( B, MIC, INVA ) \ | ||
1335 | temp1 = GSM_ADD( *LARc++, MIC ) << 10; \ | ||
1336 | temp1 = GSM_SUB( temp1, (B >= 0 ? B << 1 : -((-B) << 1))); \ | ||
1337 | temp1 = GSM_MULT_R( INVA, temp1 ); \ | ||
1338 | *LARpp++ = GSM_ADD( temp1, temp1 ); | ||
1339 | |||
1340 | STEP( 0, -32, 13107 ); | ||
1341 | STEP( 0, -32, 13107 ); | ||
1342 | STEP( 2048, -16, 13107 ); | ||
1343 | STEP( -2560, -16, 13107 ); | ||
1344 | |||
1345 | STEP( 94, -8, 19223 ); | ||
1346 | STEP( -1792, -8, 17476 ); | ||
1347 | STEP( -341, -4, 31454 ); | ||
1348 | STEP( -1144, -4, 29708 ); | ||
1349 | |||
1350 | /* NOTE: the addition of *MIC is used to restore | ||
1351 | * the sign of *LARc. | ||
1352 | */ | ||
1353 | } | ||
1354 | |||
1355 | /* 4.2.9 */ | ||
1356 | /* Computation of the quantized reflection coefficients | ||
1357 | */ | ||
1358 | |||
1359 | /* 4.2.9.1 Interpolation of the LARpp[1..8] to get the LARp[1..8] | ||
1360 | */ | ||
1361 | |||
1362 | /* | ||
1363 | * Within each frame of 160 analyzed speech samples the short term | ||
1364 | * analysis and synthesis filters operate with four different sets of | ||
1365 | * coefficients, derived from the previous set of decoded LARs(LARpp(j-1)) | ||
1366 | * and the actual set of decoded LARs (LARpp(j)) | ||
1367 | * | ||
1368 | * (Initial value: LARpp(j-1)[1..8] = 0.) | ||
1369 | */ | ||
1370 | |||
1371 | void gsm_enc_Coefficients_0_12 ( | ||
1372 | word * LARpp_j_1, | ||
1373 | word * LARpp_j, | ||
1374 | word * LARp) | ||
1375 | { | ||
1376 | int i; | ||
1377 | longword ltmp; | ||
1378 | |||
1379 | _Pragma("loopbound min 8 max 8") | ||
1380 | for (i = 1; i <= 8; i++, LARp++, LARpp_j_1++, LARpp_j++) { | ||
1381 | *LARp = GSM_ADD( SASR( *LARpp_j_1, 2 ), SASR( *LARpp_j, 2 )); | ||
1382 | *LARp = GSM_ADD( *LARp, SASR( *LARpp_j_1, 1)); | ||
1383 | } | ||
1384 | } | ||
1385 | |||
1386 | void gsm_enc_Coefficients_13_26 ( | ||
1387 | word * LARpp_j_1, | ||
1388 | word * LARpp_j, | ||
1389 | word * LARp) | ||
1390 | { | ||
1391 | int i; | ||
1392 | longword ltmp; | ||
1393 | _Pragma("loopbound min 8 max 8") | ||
1394 | for (i = 1; i <= 8; i++, LARpp_j_1++, LARpp_j++, LARp++) { | ||
1395 | *LARp = GSM_ADD( SASR( *LARpp_j_1, 1), SASR( *LARpp_j, 1 )); | ||
1396 | } | ||
1397 | } | ||
1398 | |||
1399 | void gsm_enc_Coefficients_27_39 ( | ||
1400 | word * LARpp_j_1, | ||
1401 | word * LARpp_j, | ||
1402 | word * LARp) | ||
1403 | { | ||
1404 | int i; | ||
1405 | longword ltmp; | ||
1406 | |||
1407 | _Pragma("loopbound min 8 max 8") | ||
1408 | for (i = 1; i <= 8; i++, LARpp_j_1++, LARpp_j++, LARp++) { | ||
1409 | *LARp = GSM_ADD( SASR( *LARpp_j_1, 2 ), SASR( *LARpp_j, 2 )); | ||
1410 | *LARp = GSM_ADD( *LARp, SASR( *LARpp_j, 1 )); | ||
1411 | } | ||
1412 | } | ||
1413 | |||
1414 | |||
1415 | void gsm_enc_Coefficients_40_159 ( | ||
1416 | word * LARpp_j, | ||
1417 | word * LARp) | ||
1418 | { | ||
1419 | int i; | ||
1420 | |||
1421 | _Pragma("loopbound min 8 max 8") | ||
1422 | for (i = 1; i <= 8; i++, LARp++, LARpp_j++) { | ||
1423 | *LARp = *LARpp_j; | ||
1424 | } | ||
1425 | } | ||
1426 | |||
1427 | /* 4.2.9.2 */ | ||
1428 | |||
1429 | void gsm_enc_LARp_to_rp ( | ||
1430 | word * LARp) /* [0..7] IN/OUT */ | ||
1431 | /* | ||
1432 | * The input of this procedure is the interpolated LARp[0..7] array. | ||
1433 | * The reflection coefficients, rp[i], are used in the analysis | ||
1434 | * filter and in the synthesis filter. | ||
1435 | */ | ||
1436 | { | ||
1437 | int i; | ||
1438 | word temp; | ||
1439 | longword ltmp; | ||
1440 | |||
1441 | _Pragma("loopbound min 8 max 8") | ||
1442 | for (i = 1; i <= 8; i++, LARp++) { | ||
1443 | |||
1444 | /* temp = GSM_ABS( *LARp ); | ||
1445 | * | ||
1446 | * if (temp < 11059) temp <<= 1; | ||
1447 | * else if (temp < 20070) temp += 11059; | ||
1448 | * else temp = GSM_ADD( temp >> 2, 26112 ); | ||
1449 | * | ||
1450 | * *LARp = *LARp < 0 ? -temp : temp; | ||
1451 | */ | ||
1452 | |||
1453 | if (*LARp < 0) { | ||
1454 | temp = *LARp == MIN_WORD ? MAX_WORD : -(*LARp); | ||
1455 | *LARp = - ((temp < 11059) ? temp << 1 | ||
1456 | : ((temp < 20070) ? temp + 11059 | ||
1457 | : GSM_ADD( temp >> 2, 26112 ))); | ||
1458 | } else { | ||
1459 | temp = *LARp; | ||
1460 | *LARp = (temp < 11059) ? temp << 1 | ||
1461 | : ((temp < 20070) ? temp + 11059 | ||
1462 | : GSM_ADD( temp >> 2, 26112 )); | ||
1463 | } | ||
1464 | } | ||
1465 | } | ||
1466 | |||
1467 | |||
1468 | /* 4.2.10 */ | ||
1469 | void gsm_enc_Short_term_analysis_filtering ( | ||
1470 | struct gsm_state * S, | ||
1471 | word * rp, /* [0..7] IN */ | ||
1472 | int k_n, /* k_end - k_start */ | ||
1473 | word * s /* [0..n-1] IN/OUT */ | ||
1474 | ) | ||
1475 | /* | ||
1476 | * This procedure computes the short term residual signal d[..] to be fed | ||
1477 | * to the RPE-LTP loop from the s[..] signal and from the local rp[..] | ||
1478 | * array (quantized reflection coefficients). As the call of this | ||
1479 | * procedure can be done in many ways (see the interpolation of the LAR | ||
1480 | * coefficient), it is assumed that the computation begins with index | ||
1481 | * k_start (for arrays d[..] and s[..]) and stops with index k_end | ||
1482 | * (k_start and k_end are defined in 4.2.9.1). This procedure also | ||
1483 | * needs to keep the array u[0..7] in memory for each call. | ||
1484 | */ | ||
1485 | { | ||
1486 | word * u = S->u; | ||
1487 | int i; | ||
1488 | word di, zzz, ui, sav, rpi; | ||
1489 | longword ltmp; | ||
1490 | int j; | ||
1491 | |||
1492 | _Pragma("loopbound min 13 max 120") | ||
1493 | for (j=0; j<k_n; ++j) { | ||
1494 | |||
1495 | di = sav = *s; | ||
1496 | |||
1497 | _Pragma("loopbound min 8 max 8") | ||
1498 | for (i = 0; i < 8; i++) { /* YYY */ | ||
1499 | |||
1500 | ui = u[i]; | ||
1501 | rpi = rp[i]; | ||
1502 | u[i] = sav; | ||
1503 | |||
1504 | zzz = GSM_MULT_R(rpi, di); | ||
1505 | sav = GSM_ADD( ui, zzz); | ||
1506 | |||
1507 | zzz = GSM_MULT_R(rpi, ui); | ||
1508 | di = GSM_ADD( di, zzz ); | ||
1509 | |||
1510 | } | ||
1511 | |||
1512 | *s = di; | ||
1513 | } | ||
1514 | } | ||
1515 | |||
1516 | void gsm_enc_Gsm_Short_Term_Analysis_Filter ( | ||
1517 | |||
1518 | struct gsm_state * S, | ||
1519 | |||
1520 | word * LARc, /* coded log area ratio [0..7] IN */ | ||
1521 | word * s /* signal [0..159] IN/OUT */ | ||
1522 | ) | ||
1523 | { | ||
1524 | word * LARpp_j = S->LARpp[ S->j ]; | ||
1525 | word * LARpp_j_1 = S->LARpp[ S->j ^= 1 ]; | ||
1526 | |||
1527 | word LARp[8]; | ||
1528 | |||
1529 | #undef FILTER | ||
1530 | # define FILTER gsm_enc_Short_term_analysis_filtering | ||
1531 | |||
1532 | gsm_enc_Decoding_of_the_coded_Log_Area_Ratios( LARc, LARpp_j ); | ||
1533 | |||
1534 | gsm_enc_Coefficients_0_12( LARpp_j_1, LARpp_j, LARp ); | ||
1535 | gsm_enc_LARp_to_rp( LARp ); | ||
1536 | FILTER( S, LARp, 13, s); | ||
1537 | |||
1538 | gsm_enc_Coefficients_13_26( LARpp_j_1, LARpp_j, LARp); | ||
1539 | gsm_enc_LARp_to_rp( LARp ); | ||
1540 | FILTER( S, LARp, 14, s + 13); | ||
1541 | |||
1542 | gsm_enc_Coefficients_27_39( LARpp_j_1, LARpp_j, LARp); | ||
1543 | gsm_enc_LARp_to_rp( LARp ); | ||
1544 | FILTER( S, LARp, 13, s + 27); | ||
1545 | |||
1546 | gsm_enc_Coefficients_40_159( LARpp_j, LARp); | ||
1547 | gsm_enc_LARp_to_rp( LARp ); | ||
1548 | FILTER( S, LARp, 120, s + 40); | ||
1549 | } | ||
1550 | |||
1551 | /* lpc.c */ | ||
1552 | #undef P | ||
1553 | |||
1554 | /* | ||
1555 | * 4.2.4 .. 4.2.7 LPC ANALYSIS SECTION | ||
1556 | */ | ||
1557 | |||
1558 | /* 4.2.4 */ | ||
1559 | |||
1560 | |||
1561 | void gsm_enc_Autocorrelation ( | ||
1562 | word * s, /* [0..159] IN/OUT */ | ||
1563 | longword * L_ACF) /* [0..8] OUT */ | ||
1564 | /* | ||
1565 | * The goal is to compute the array L_ACF[k]. The signal s[i] must | ||
1566 | * be scaled in order to avoid an overflow situation. | ||
1567 | */ | ||
1568 | { | ||
1569 | int k, i; | ||
1570 | |||
1571 | word temp, smax, scalauto; | ||
1572 | |||
1573 | /* Dynamic scaling of the array s[0..159] | ||
1574 | */ | ||
1575 | |||
1576 | /* Search for the maximum. | ||
1577 | */ | ||
1578 | smax = 0; | ||
1579 | |||
1580 | _Pragma("loopbound min 160 max 160") | ||
1581 | for (k = 0; k <= 159; k++) { | ||
1582 | temp = GSM_ABS( s[k] ); | ||
1583 | if (temp > smax) smax = temp; | ||
1584 | } | ||
1585 | |||
1586 | /* Computation of the scaling factor. | ||
1587 | */ | ||
1588 | if (smax == 0) scalauto = 0; | ||
1589 | else { | ||
1590 | scalauto = 4 - gsm_enc_norm( (longword)smax << 16 );/* sub(4,..) */ | ||
1591 | } | ||
1592 | |||
1593 | /* Scaling of the array s[0...159] | ||
1594 | */ | ||
1595 | |||
1596 | if (scalauto > 0) { | ||
1597 | |||
1598 | # define SCALE(n) \ | ||
1599 | case n: \ | ||
1600 | _Pragma("loopbound min 160 max 160") \ | ||
1601 | for (k = 0; k <= 159; k++) \ | ||
1602 | s[k] = GSM_MULT_R( s[k], 16384 >> (n-1) );\ | ||
1603 | break; | ||
1604 | |||
1605 | switch (scalauto) { | ||
1606 | SCALE(1) | ||
1607 | SCALE(2) | ||
1608 | SCALE(3) | ||
1609 | SCALE(4) | ||
1610 | } | ||
1611 | # undef SCALE | ||
1612 | } | ||
1613 | |||
1614 | /* Compute the L_ACF[..]. | ||
1615 | */ | ||
1616 | { | ||
1617 | word * sp = s; | ||
1618 | word sl = *sp; | ||
1619 | #undef STEP | ||
1620 | # define STEP(k) L_ACF[k] += ((longword)sl * sp[ -(k) ]); | ||
1621 | |||
1622 | # define NEXTI sl = *++sp | ||
1623 | |||
1624 | |||
1625 | _Pragma("loopbound min 9 max 9") | ||
1626 | for (k = 9; k--; L_ACF[k] = 0) ; | ||
1627 | |||
1628 | STEP (0); | ||
1629 | NEXTI; | ||
1630 | STEP(0); STEP(1); | ||
1631 | NEXTI; | ||
1632 | STEP(0); STEP(1); STEP(2); | ||
1633 | NEXTI; | ||
1634 | STEP(0); STEP(1); STEP(2); STEP(3); | ||
1635 | NEXTI; | ||
1636 | STEP(0); STEP(1); STEP(2); STEP(3); STEP(4); | ||
1637 | NEXTI; | ||
1638 | STEP(0); STEP(1); STEP(2); STEP(3); STEP(4); STEP(5); | ||
1639 | NEXTI; | ||
1640 | STEP(0); STEP(1); STEP(2); STEP(3); STEP(4); STEP(5); STEP(6); | ||
1641 | NEXTI; | ||
1642 | STEP(0); STEP(1); STEP(2); STEP(3); STEP(4); STEP(5); STEP(6); STEP(7); | ||
1643 | |||
1644 | _Pragma("loopbound min 152 max 152") | ||
1645 | for (i = 8; i <= 159; i++) { | ||
1646 | |||
1647 | NEXTI; | ||
1648 | |||
1649 | STEP(0); | ||
1650 | STEP(1); STEP(2); STEP(3); STEP(4); | ||
1651 | STEP(5); STEP(6); STEP(7); STEP(8); | ||
1652 | } | ||
1653 | |||
1654 | _Pragma("loopbound min 9 max 9") | ||
1655 | for (k = 9; k--; L_ACF[k] <<= 1) ; | ||
1656 | |||
1657 | } | ||
1658 | /* Rescaling of the array s[0..159] | ||
1659 | */ | ||
1660 | if (scalauto > 0) { | ||
1661 | _Pragma("loopbound min 160 max 160") | ||
1662 | for (k = 160; k--; *s++ <<= scalauto) ; | ||
1663 | } | ||
1664 | } | ||
1665 | |||
1666 | /* 4.2.5 */ | ||
1667 | |||
1668 | void gsm_enc_Reflection_coefficients ( | ||
1669 | longword * L_ACF, /* 0...8 IN */ | ||
1670 | word * r /* 0...7 OUT */ | ||
1671 | ) | ||
1672 | { | ||
1673 | int i, m, n; | ||
1674 | word temp; | ||
1675 | longword ltmp; | ||
1676 | word ACF[9]; /* 0..8 */ | ||
1677 | word P[ 9]; /* 0..8 */ | ||
1678 | word K[ 9]; /* 2..8 */ | ||
1679 | |||
1680 | /* Schur recursion with 16 bits arithmetic. | ||
1681 | */ | ||
1682 | |||
1683 | if (L_ACF[0] == 0) { | ||
1684 | _Pragma("loopbound min 8 max 8") | ||
1685 | for (i = 8; i--; *r++ = 0) ; | ||
1686 | return; | ||
1687 | } | ||
1688 | |||
1689 | temp = gsm_enc_norm( L_ACF[0] ); | ||
1690 | |||
1691 | /* ? overflow ? */ | ||
1692 | _Pragma("loopbound min 9 max 9") | ||
1693 | for (i = 0; i <= 8; i++) ACF[i] = SASR( L_ACF[i] << temp, 16 ); | ||
1694 | |||
1695 | /* Initialize array P[..] and K[..] for the recursion. | ||
1696 | */ | ||
1697 | |||
1698 | _Pragma("loopbound min 7 max 7") | ||
1699 | for (i = 1; i <= 7; i++) K[ i ] = ACF[ i ]; | ||
1700 | |||
1701 | _Pragma("loopbound min 9 max 9") | ||
1702 | for (i = 0; i <= 8; i++) P[ i ] = ACF[ i ]; | ||
1703 | |||
1704 | /* Compute reflection coefficients | ||
1705 | */ | ||
1706 | _Pragma("loopbound min 8 max 8") | ||
1707 | for (n = 1; n <= 8; n++, r++) { | ||
1708 | |||
1709 | temp = P[1]; | ||
1710 | temp = GSM_ABS(temp); | ||
1711 | if (P[0] < temp) { | ||
1712 | _Pragma("loopbound min 8 max 8") | ||
1713 | for (i = n; i <= 8; i++) *r++ = 0; | ||
1714 | return; | ||
1715 | } | ||
1716 | |||
1717 | *r = gsm_enc_div( temp, P[0] ); | ||
1718 | |||
1719 | if (P[1] > 0) *r = -*r; /* r[n] = sub(0, r[n]) */ | ||
1720 | if (n == 8) return; | ||
1721 | |||
1722 | /* Schur recursion | ||
1723 | */ | ||
1724 | temp = GSM_MULT_R( P[1], *r ); | ||
1725 | P[0] = GSM_ADD( P[0], temp ); | ||
1726 | |||
1727 | _Pragma("loopbound min 1 max 7") | ||
1728 | for (m = 1; m <= 8 - n; ++m) { | ||
1729 | temp = GSM_MULT_R( K[ m ], *r ); | ||
1730 | P[m] = GSM_ADD( P[ m+1 ], temp ); | ||
1731 | |||
1732 | temp = GSM_MULT_R( P[ m+1 ], *r ); | ||
1733 | K[m] = GSM_ADD( K[ m ], temp ); | ||
1734 | } | ||
1735 | } | ||
1736 | } | ||
1737 | |||
1738 | /* 4.2.6 */ | ||
1739 | |||
1740 | void gsm_enc_Transformation_to_Log_Area_Ratios ( | ||
1741 | word * r /* 0..7 IN/OUT */ | ||
1742 | ) | ||
1743 | /* | ||
1744 | * The following scaling for r[..] and LAR[..] has been used: | ||
1745 | * | ||
1746 | * r[..] = integer( real_r[..]*32768. ); -1 <= real_r < 1. | ||
1747 | * LAR[..] = integer( real_LAR[..] * 16384 ); | ||
1748 | * with -1.625 <= real_LAR <= 1.625 | ||
1749 | */ | ||
1750 | { | ||
1751 | word temp; | ||
1752 | int i; | ||
1753 | |||
1754 | |||
1755 | /* Computation of the LAR[0..7] from the r[0..7] | ||
1756 | */ | ||
1757 | _Pragma("loopbound min 8 max 8") | ||
1758 | for (i = 1; i <= 8; i++, r++) { | ||
1759 | |||
1760 | temp = *r; | ||
1761 | temp = GSM_ABS(temp); | ||
1762 | |||
1763 | if (temp < 22118) { | ||
1764 | temp >>= 1; | ||
1765 | } else if (temp < 31130) { | ||
1766 | temp -= 11059; | ||
1767 | } else { | ||
1768 | temp -= 26112; | ||
1769 | temp <<= 2; | ||
1770 | } | ||
1771 | |||
1772 | *r = *r < 0 ? -temp : temp; | ||
1773 | } | ||
1774 | } | ||
1775 | |||
1776 | /* 4.2.7 */ | ||
1777 | |||
1778 | void gsm_enc_Quantization_and_coding ( | ||
1779 | word * LAR /* [0..7] IN/OUT */ | ||
1780 | ) | ||
1781 | { | ||
1782 | word temp; | ||
1783 | longword ltmp; | ||
1784 | |||
1785 | |||
1786 | /* This procedure needs four tables; the following equations | ||
1787 | * give the optimum scaling for the constants: | ||
1788 | * | ||
1789 | * A[0..7] = integer( real_A[0..7] * 1024 ) | ||
1790 | * B[0..7] = integer( real_B[0..7] * 512 ) | ||
1791 | * MAC[0..7] = maximum of the LARc[0..7] | ||
1792 | * MIC[0..7] = minimum of the LARc[0..7] | ||
1793 | */ | ||
1794 | |||
1795 | # undef STEP | ||
1796 | # define STEP( A, B, MAC, MIC ) \ | ||
1797 | temp = GSM_MULT( A, *LAR ); \ | ||
1798 | temp = GSM_ADD( temp, B ); \ | ||
1799 | temp = GSM_ADD( temp, 256 ); \ | ||
1800 | temp = SASR( temp, 9 ); \ | ||
1801 | *LAR = temp>MAC ? MAC - MIC : (temp<MIC ? 0 : temp - MIC); \ | ||
1802 | LAR++; | ||
1803 | |||
1804 | STEP( 20480, 0, 31, -32 ); | ||
1805 | STEP( 20480, 0, 31, -32 ); | ||
1806 | STEP( 20480, 2048, 15, -16 ); | ||
1807 | STEP( 20480, -2560, 15, -16 ); | ||
1808 | |||
1809 | STEP( 13964, 94, 7, -8 ); | ||
1810 | STEP( 15360, -1792, 7, -8 ); | ||
1811 | STEP( 8534, -341, 3, -4 ); | ||
1812 | STEP( 9036, -1144, 3, -4 ); | ||
1813 | |||
1814 | # undef STEP | ||
1815 | } | ||
1816 | |||
1817 | void gsm_enc_Gsm_LPC_Analysis ( | ||
1818 | word * s, /* 0..159 signals IN/OUT */ | ||
1819 | word * LARc) /* 0..7 LARc's OUT */ | ||
1820 | { | ||
1821 | longword L_ACF[9]; | ||
1822 | |||
1823 | gsm_enc_Autocorrelation (s, L_ACF ); | ||
1824 | gsm_enc_Reflection_coefficients (L_ACF, LARc ); | ||
1825 | gsm_enc_Transformation_to_Log_Area_Ratios (LARc); | ||
1826 | gsm_enc_Quantization_and_coding (LARc); | ||
1827 | } | ||
1828 | |||
1829 | /* preprocess.c */ | ||
1830 | /* 4.2.0 .. 4.2.3 PREPROCESSING SECTION | ||
1831 | * | ||
1832 | * After A-law to linear conversion (or directly from the | ||
1833 | * Ato D converter) the following scaling is assumed for | ||
1834 | * input to the RPE-LTP algorithm: | ||
1835 | * | ||
1836 | * in: 0.1.....................12 | ||
1837 | * S.v.v.v.v.v.v.v.v.v.v.v.v.*.*.* | ||
1838 | * | ||
1839 | * Where S is the sign bit, v a valid bit, and * a "don't care" bit. | ||
1840 | * The original signal is called sop[..] | ||
1841 | * | ||
1842 | * out: 0.1................... 12 | ||
1843 | * S.S.v.v.v.v.v.v.v.v.v.v.v.v.0.0 | ||
1844 | */ | ||
1845 | |||
1846 | |||
1847 | void gsm_enc_Gsm_Preprocess ( | ||
1848 | struct gsm_state * S, | ||
1849 | word * s, | ||
1850 | word * so ) /* [0..159] IN/OUT */ | ||
1851 | { | ||
1852 | |||
1853 | word z1 = S->z1; | ||
1854 | longword L_z2 = S->L_z2; | ||
1855 | word mp = S->mp; | ||
1856 | |||
1857 | word s1; | ||
1858 | longword L_s2; | ||
1859 | |||
1860 | longword L_temp; | ||
1861 | |||
1862 | word msp, lsp; | ||
1863 | word SO; | ||
1864 | |||
1865 | longword ltmp; /* for ADD */ | ||
1866 | ulongword utmp; /* for L_ADD */ | ||
1867 | |||
1868 | int k = 160; | ||
1869 | |||
1870 | _Pragma("loopbound min 160 max 160") | ||
1871 | while (k--) { | ||
1872 | |||
1873 | /* 4.2.1 Downscaling of the input signal | ||
1874 | */ | ||
1875 | SO = SASR( *s, 3 ) << 2; | ||
1876 | s++; | ||
1877 | |||
1878 | /* 4.2.2 Offset compensation | ||
1879 | * | ||
1880 | * This part implements a high-pass filter and requires extended | ||
1881 | * arithmetic precision for the recursive part of this filter. | ||
1882 | * The input of this procedure is the array so[0...159] and the | ||
1883 | * output the array sof[ 0...159 ]. | ||
1884 | */ | ||
1885 | /* Compute the non-recursive part | ||
1886 | */ | ||
1887 | |||
1888 | s1 = SO - z1; /* s1 = gsm_enc_sub( *so, z1 ); */ | ||
1889 | z1 = SO; | ||
1890 | |||
1891 | /* Compute the recursive part | ||
1892 | */ | ||
1893 | L_s2 = s1; | ||
1894 | L_s2 <<= 15; | ||
1895 | |||
1896 | /* Execution of a 31 bv 16 bits multiplication | ||
1897 | */ | ||
1898 | |||
1899 | msp = SASR( L_z2, 15 ); | ||
1900 | lsp = L_z2-((longword)msp<<15); /* gsm_enc_L_sub(L_z2,(msp<<15)); */ | ||
1901 | |||
1902 | L_s2 += GSM_MULT_R( lsp, 32735 ); | ||
1903 | L_temp = (longword)msp * 32735; /* GSM_L_MULT(msp,32735) >> 1;*/ | ||
1904 | L_z2 = GSM_L_ADD( L_temp, L_s2 ); | ||
1905 | |||
1906 | /* Compute sof[k] with rounding | ||
1907 | */ | ||
1908 | L_temp = GSM_L_ADD( L_z2, 16384 ); | ||
1909 | |||
1910 | /* 4.2.3 Preemphasis | ||
1911 | */ | ||
1912 | |||
1913 | msp = GSM_MULT_R( mp, -28180 ); | ||
1914 | mp = SASR( L_temp, 15 ); | ||
1915 | *so++ = GSM_ADD( mp, msp ); | ||
1916 | } | ||
1917 | |||
1918 | S->z1 = z1; | ||
1919 | S->L_z2 = L_z2; | ||
1920 | S->mp = mp; | ||
1921 | } | ||
1922 | |||
1923 | /* gsm_enc_bench.c */ | ||
1924 | |||
1925 | word gsm_enc_norm (longword a ) | ||
1926 | /* | ||
1927 | * the number of left shifts needed to normalize the 32 bit | ||
1928 | * variable L_var1 for positive values on the interval | ||
1929 | * | ||
1930 | * with minimum of | ||
1931 | * minimum of 1073741824 (01000000000000000000000000000000) and | ||
1932 | * maximum of 2147483647 (01111111111111111111111111111111) | ||
1933 | * | ||
1934 | * | ||
1935 | * and for negative values on the interval with | ||
1936 | * minimum of -2147483648 (-10000000000000000000000000000000) and | ||
1937 | * maximum of -1073741824 ( -1000000000000000000000000000000). | ||
1938 | * | ||
1939 | * in order to normalize the result, the following | ||
1940 | * operation must be done: L_norm_var1 = L_var1 << norm( L_var1 ); | ||
1941 | * | ||
1942 | * (That's 'ffs', only from the left, not the right..) | ||
1943 | */ | ||
1944 | { | ||
1945 | if (a < 0) { | ||
1946 | if (a <= -1073741824) return 0; | ||
1947 | a = ~a; | ||
1948 | } | ||
1949 | |||
1950 | return a & 0xffff0000 | ||
1951 | ? ( a & 0xff000000 | ||
1952 | ? -1 + gsm_enc_bitoff[ 0xFF & (a >> 24) ] | ||
1953 | : 7 + gsm_enc_bitoff[ 0xFF & (a >> 16) ] ) | ||
1954 | : ( a & 0xff00 | ||
1955 | ? 15 + gsm_enc_bitoff[ 0xFF & (a >> 8) ] | ||
1956 | : 23 + gsm_enc_bitoff[ 0xFF & a ] ); | ||
1957 | } | ||
1958 | |||
1959 | word gsm_enc_asl (word a, int n) | ||
1960 | { | ||
1961 | if (n >= 16) return 0; | ||
1962 | if (n <= -16) return -(a < 0); | ||
1963 | if (n < 0) return gsm_enc_asr(a, -n); | ||
1964 | return a << n; | ||
1965 | } | ||
1966 | |||
1967 | word gsm_enc_asr (word a, int n) | ||
1968 | { | ||
1969 | if (n >= 16) return -(a < 0); | ||
1970 | if (n <= -16) return 0; | ||
1971 | if (n < 0) return a << -n; | ||
1972 | |||
1973 | # ifdef SASR | ||
1974 | return a >> n; | ||
1975 | # else | ||
1976 | if (a >= 0) return a >> n; | ||
1977 | else return -(word)( -(uword)a >> n ); | ||
1978 | # endif | ||
1979 | } | ||
1980 | |||
1981 | /* | ||
1982 | * (From p. 46, end of section 4.2.5) | ||
1983 | * | ||
1984 | * NOTE: The following lines gives [sic] one correct implementation | ||
1985 | * of the div(num, denum) arithmetic operation. Compute div | ||
1986 | * which is the integer division of num by denum: with denum | ||
1987 | * >= num > 0 | ||
1988 | */ | ||
1989 | |||
1990 | word gsm_enc_div ( word num, word denum) | ||
1991 | { | ||
1992 | longword L_num = num; | ||
1993 | longword L_denum = denum; | ||
1994 | word div = 0; | ||
1995 | int k = 15; | ||
1996 | |||
1997 | /* The parameter num sometimes becomes zero. | ||
1998 | * Although this is explicitly guarded against in 4.2.5, | ||
1999 | * we assume that the result should then be zero as well. | ||
2000 | */ | ||
2001 | |||
2002 | if (num == 0) | ||
2003 | return 0; | ||
2004 | |||
2005 | _Pragma("loopbound min 15 max 15") | ||
2006 | while (k--) { | ||
2007 | div <<= 1; | ||
2008 | L_num <<= 1; | ||
2009 | |||
2010 | if (L_num >= L_denum) { | ||
2011 | L_num -= L_denum; | ||
2012 | div++; | ||
2013 | } | ||
2014 | } | ||
2015 | |||
2016 | return div; | ||
2017 | } | ||
2018 | |||
2019 | |||
2020 | |||
2021 | gsm gsm_enc_create( void ) | ||
2022 | { | ||
2023 | unsigned int i; | ||
2024 | gsm r; | ||
2025 | |||
2026 | r = &gsm_enc_state; | ||
2027 | |||
2028 | _Pragma("loopbound min 648 max 648") | ||
2029 | for(i=0; i < sizeof(*r); i++) | ||
2030 | ((char *)r)[i]=0; | ||
2031 | |||
2032 | r->nrp = 40; | ||
2033 | |||
2034 | return r; | ||
2035 | } | ||
2036 | |||
2037 | void gsm_enc_init( void ) | ||
2038 | { | ||
2039 | gsm_enc_state_ptr = gsm_enc_create(); | ||
2040 | } | ||
2041 | |||
2042 | int gsm_enc_return( void ) | ||
2043 | { | ||
2044 | return gsm_enc_result; | ||
2045 | } | ||
2046 | |||
2047 | void gsm_enc_main( void ) | ||
2048 | { | ||
2049 | gsm r; | ||
2050 | unsigned i; | ||
2051 | gsm_enc_result = 0; | ||
2052 | |||
2053 | r = gsm_enc_state_ptr; | ||
2054 | |||
2055 | _Pragma("loopbound min 20 max 20") | ||
2056 | for (i=0; i < SAMPLES; i++) { | ||
2057 | gsm_enc_encode(r, gsm_enc_pcmdata + i * 160, gsm_enc_gsmdata + i * sizeof(gsm_frame)); | ||
2058 | } | ||
2059 | } | ||
2060 | |||
2061 | int main( int argc, char** argv ) | ||
2062 | { | ||
2063 | SET_UP | ||
2064 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
2065 | START_LOOP | ||
2066 | gsm_enc_init(); | ||
2067 | gsm_enc_main(); | ||
2068 | STOP_LOOP | ||
2069 | } | ||
2070 | WRITE_TO_FILE | ||
2071 | return ( gsm_enc_return() ); | ||
2072 | } | ||
diff --git a/baseline/source/gsm_enc/private.h b/baseline/source/gsm_enc/private.h new file mode 100644 index 0000000..48786b3 --- /dev/null +++ b/baseline/source/gsm_enc/private.h | |||
@@ -0,0 +1,56 @@ | |||
1 | #ifndef PRIVATE_H | ||
2 | #define PRIVATE_H | ||
3 | |||
4 | typedef short word; /* 16 bit signed int */ | ||
5 | typedef long longword; /* 32 bit signed int */ | ||
6 | |||
7 | typedef unsigned short uword; /* unsigned word */ | ||
8 | typedef unsigned long ulongword; /* unsigned longword */ | ||
9 | |||
10 | struct gsm_state { | ||
11 | |||
12 | word dp0[ 280 ]; | ||
13 | |||
14 | word z1; /* preprocessing.c, Offset_com. */ | ||
15 | longword L_z2; /* Offset_com. */ | ||
16 | int mp; /* Preemphasis */ | ||
17 | |||
18 | word u[8]; /* short_term_aly_filter.c */ | ||
19 | word LARpp[2][8]; /* */ | ||
20 | word j; /* */ | ||
21 | |||
22 | word nrp; /* 40 */ /* long_term.c, synthesis */ | ||
23 | word v[9]; /* short_term.c, synthesis */ | ||
24 | word msr; /* decoder.c, Postprocessing */ | ||
25 | |||
26 | char verbose; /* only used if !NDEBUG */ | ||
27 | char fast; /* only used if FAST */ | ||
28 | |||
29 | }; | ||
30 | |||
31 | |||
32 | #define MIN_WORD ((-32767)-1) | ||
33 | #define MAX_WORD ( 32767) | ||
34 | |||
35 | #define MIN_LONGWORD ((-2147483647)-1) | ||
36 | #define MAX_LONGWORD ( 2147483647) | ||
37 | |||
38 | #define SASR(x, by) ((x) >> (by)) | ||
39 | |||
40 | /* Table 4.3a Decision level of the LTP gain quantizer | ||
41 | */ | ||
42 | /* bc 0 1 2 3 */ | ||
43 | word gsm_enc_DLB[4] = { 6554, 16384, 26214, 32767 }; | ||
44 | |||
45 | |||
46 | /* Table 4.5 Normalized inverse mantissa used to compute xM/xmax | ||
47 | */ | ||
48 | /* i 0 1 2 3 4 5 6 7 */ | ||
49 | word gsm_enc_NRFAC[8] = { 29128, 26215, 23832, 21846, 20165, 18725, 17476, 16384 }; | ||
50 | |||
51 | |||
52 | /* Table 4.6 Normalized direct mantissa used to compute xM/xmax | ||
53 | */ | ||
54 | /* i 0 1 2 3 4 5 6 7 */ | ||
55 | word gsm_enc_FAC[8] = { 18431, 20479, 22527, 24575, 26623, 28671, 30719, 32767 }; | ||
56 | #endif /* PRIVATE_H */ | ||
diff --git a/baseline/source/h264_dec/changeLog.txt b/baseline/source/h264_dec/changeLog.txt new file mode 100644 index 0000000..2d5d97f --- /dev/null +++ b/baseline/source/h264_dec/changeLog.txt | |||
@@ -0,0 +1,41 @@ | |||
1 | File: h264dec_ldecode_macroblock.c | ||
2 | Original provenience: | ||
3 | |||
4 | 2015-12-21: | ||
5 | - Filename changed to h264dec.c | ||
6 | - global.h renamed to h264dec.h | ||
7 | - Removed commented out includes | ||
8 | - Removed all obsolete typedefs, enums and structs. Only remaining ones are | ||
9 | struct img_par and | ||
10 | enum SliceType | ||
11 | - Renamed function decode_one_macroblock to h264dec_decode_one_macroblock | ||
12 | - Function h264dec_decode_one_macroblock changed to void (i.e., removed statement return 0;) | ||
13 | - Added functions h264dec_init, h264dec_return and main | ||
14 | - Added forward declarations of all functions before the declarations of global | ||
15 | variables | ||
16 | - Struct 'ImageParameters' renamed to 'h264dec_ImageParameters' | ||
17 | - Re-ordered functions to fit template-order | ||
18 | - Applied code formatting according to the following rules | ||
19 | (incomplete, to be discussed; I basically used astyle with the attached | ||
20 | options file): | ||
21 | - Lines shall not be wider than 80 characters; whenever possible, appropriate | ||
22 | line breaks shall be inserted to keep lines below 80 characters | ||
23 | - Indentation is done using whitespaces only, no tabs. Code is indented by | ||
24 | two whitespaces | ||
25 | - Two empty lines are put between any two functions | ||
26 | - In non-empty lists or index expressions, opening '(' and '[' are followed by | ||
27 | one whitespace, closing ')' and ']' are preceded by one whitespace | ||
28 | - In comma- or colon-separated argument lists, one whitespace is put after | ||
29 | each comma/colon | ||
30 | - Names of functions and global variables all start with a benchmark-specific | ||
31 | prefix (here: st_) followed by lowercase letter (e.g., st_square) | ||
32 | - For pointer types, one whitespace is put before the '*' | ||
33 | - Operators within expressions shall be preceded and followed by one | ||
34 | whitespace | ||
35 | - Code of then- and else-parts of if-then-else statements shall be put in | ||
36 | separate lines, not in the same lines as the if-condition or the keyword | ||
37 | "else" | ||
38 | - Opening braces '{' denoting the beginning of code for some if-else or loop | ||
39 | body shall be put at the end of the same line where the keywords "if", | ||
40 | "else", "for", "while" etc. occur | ||
41 | - Added general TACLeBench header to beginning of source code \ No newline at end of file | ||
diff --git a/baseline/source/h264_dec/copyright.txt b/baseline/source/h264_dec/copyright.txt new file mode 100644 index 0000000..fe3eece --- /dev/null +++ b/baseline/source/h264_dec/copyright.txt | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | *********************************************************************** | ||
3 | * COPYRIGHT AND WARRANTY INFORMATION | ||
4 | * | ||
5 | * Copyright 2001, International Telecommunications Union, Geneva | ||
6 | * | ||
7 | * DISCLAIMER OF WARRANTY | ||
8 | * | ||
9 | * These software programs are available to the user without any | ||
10 | * license fee or royalty on an "as is" basis. The ITU disclaims | ||
11 | * any and all warranties, whether express, implied, or | ||
12 | * statutory, including any implied warranties of merchantability | ||
13 | * or of fitness for a particular purpose. In no event shall the | ||
14 | * contributor or the ITU be liable for any incidental, punitive, or | ||
15 | * consequential damages of any kind whatsoever arising from the | ||
16 | * use of these programs. | ||
17 | * | ||
18 | * This disclaimer of warranty extends to the user of these programs | ||
19 | * and user's customers, employees, agents, transferees, successors, | ||
20 | * and assigns. | ||
21 | * | ||
22 | * The ITU does not represent or warrant that the programs furnished | ||
23 | * hereunder are free of infringement of any third-party patents. | ||
24 | * Commercial implementations of ITU-T Recommendations, including | ||
25 | * shareware, may be subject to royalty fees to patent holders. | ||
26 | * Information regarding the ITU-T patent policy is available from | ||
27 | * the ITU Web site at http://www.itu.int. | ||
28 | * | ||
29 | * THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE ITU-T PATENT POLICY. | ||
30 | ************************************************************************ | ||
31 | */ | ||
32 | |||
diff --git a/baseline/source/h264_dec/h264_dec.c b/baseline/source/h264_dec/h264_dec.c new file mode 100644 index 0000000..76af705 --- /dev/null +++ b/baseline/source/h264_dec/h264_dec.c | |||
@@ -0,0 +1,610 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: h264_dec_ldecode_macroblock.c | ||
7 | |||
8 | Author: Inge Lille-Langoy et al. | ||
9 | |||
10 | Function: H.264 decoder | ||
11 | |||
12 | Source: MediaBench II | ||
13 | http://euler.slu.edu/~fritts/mediabench (mirror) | ||
14 | |||
15 | Original name: h264_dec_ldecode_macroblock.c | ||
16 | |||
17 | Changes: no functional changes | ||
18 | |||
19 | License: see copyright.txt | ||
20 | |||
21 | */ | ||
22 | |||
23 | |||
24 | /* | ||
25 | Include section | ||
26 | */ | ||
27 | |||
28 | #include "../extra.h" | ||
29 | #include "h264_dec.h" | ||
30 | |||
31 | |||
32 | /* | ||
33 | Forward declaration of functions | ||
34 | */ | ||
35 | |||
36 | void h264_dec_init (); | ||
37 | int h264_dec_return (); | ||
38 | void h264_dec_decode_one_macroblock( struct h264_dec_img_par *img ); | ||
39 | void h264_dec_main( void ); | ||
40 | //int main( void ); | ||
41 | |||
42 | |||
43 | /* | ||
44 | Declaration of global variables | ||
45 | */ | ||
46 | |||
47 | extern signed char h264_dec_mv_array[65][65][2]; | ||
48 | extern short h264_dec_list_imgUV[2][45][45]; | ||
49 | extern int h264_dec_img_m7[16][16]; | ||
50 | |||
51 | char h264_dec_img_mpr[7][7]; | ||
52 | char h264_dec_dec_picture_imgUV[2][64][54]; | ||
53 | struct h264_dec_img_par h264_dec_img; | ||
54 | |||
55 | |||
56 | /* | ||
57 | Initialization- and return-value-related functions | ||
58 | */ | ||
59 | |||
60 | int h264_dec_return () | ||
61 | { | ||
62 | return ( h264_dec_img_mpr[0][0] + h264_dec_dec_picture_imgUV[0][0][0] + 128 != | ||
63 | 0 ); | ||
64 | } | ||
65 | |||
66 | void h264_dec_init () | ||
67 | { | ||
68 | unsigned int i; | ||
69 | unsigned char *p; | ||
70 | volatile char bitmask = 0; | ||
71 | |||
72 | /* | ||
73 | Apply volatile XOR-bitmask to entire input array. | ||
74 | */ | ||
75 | p = ( unsigned char * ) &h264_dec_mv_array[ 0 ]; | ||
76 | _Pragma( "loopbound min 33800 max 33800" ) | ||
77 | for ( i = 0; i < sizeof( h264_dec_mv_array ); ++i, ++p ) | ||
78 | *p ^= bitmask; | ||
79 | |||
80 | p = ( unsigned char * ) &h264_dec_list_imgUV[ 0 ]; | ||
81 | _Pragma( "loopbound min 16200 max 16200" ) | ||
82 | for ( i = 0; i < sizeof( h264_dec_list_imgUV ); ++i, ++p ) | ||
83 | *p ^= bitmask; | ||
84 | |||
85 | p = ( unsigned char * ) &h264_dec_img_m7[ 0 ]; | ||
86 | _Pragma( "loopbound min 1024 max 1024" ) | ||
87 | for ( i = 0; i < sizeof( h264_dec_img_m7 ); ++i, ++p ) | ||
88 | *p ^= bitmask; | ||
89 | |||
90 | h264_dec_img.mb_cr_size_x = 8; | ||
91 | h264_dec_img.mb_cr_size_y = 8; | ||
92 | h264_dec_img.num_blk8x8_uv = 2; | ||
93 | h264_dec_img.pix_c_x = 256; | ||
94 | h264_dec_img.pix_c_y = 256; | ||
95 | h264_dec_img.width_cr = 352; | ||
96 | h264_dec_img.apply_weights = 0; | ||
97 | h264_dec_img.direct_spatial_mv_pred_flag = 1; | ||
98 | h264_dec_img.type = 1; | ||
99 | h264_dec_img.wp_round_chroma = 0; | ||
100 | h264_dec_img.chroma_log2_weight_denom = 0; | ||
101 | } | ||
102 | |||
103 | |||
104 | /* | ||
105 | Algorithm core functions | ||
106 | */ | ||
107 | |||
108 | void h264_dec_decode_one_macroblock( struct h264_dec_img_par *img ) | ||
109 | { | ||
110 | int i = 0, j = 0, ii = 0, jj = 0, i1 = 0, j1 = 0, j4 = 0, i4 = 0; | ||
111 | int uv; | ||
112 | int ioff, joff; | ||
113 | int bw_pred = 0, fw_pred = 0, ifx; | ||
114 | int ii0, jj0, ii1, jj1, if1, jf1, if0, jf0; | ||
115 | int f1_x, f1_y, f2_x, f2_y, f3, f4; | ||
116 | |||
117 | short fw_refframe = -1, bw_refframe = -1; | ||
118 | int mv_mode, pred_dir, intra_prediction; // = currMB->ref_frame; | ||
119 | short fw_ref_idx = -1, bw_ref_idx = -1; | ||
120 | |||
121 | int mb_nr = 0; | ||
122 | short dec_picture_ref_idx = 0; | ||
123 | |||
124 | short active_sps_chroma_format_idc = 1; | ||
125 | short active_pps_weighted_pred_flag = 0; | ||
126 | short active_pps_weighted_bipred_idc = 0; | ||
127 | |||
128 | int smb = 0; | ||
129 | int max_y_cr = 287; | ||
130 | |||
131 | int jf; | ||
132 | |||
133 | int direct_pdir = -1; | ||
134 | |||
135 | int curr_mb_field = 0; | ||
136 | |||
137 | int b8, b4; | ||
138 | |||
139 | int residue_transform_flag = 0; | ||
140 | |||
141 | if ( 1 ) { | ||
142 | f1_x = 64 / img->mb_cr_size_x; | ||
143 | f2_x = f1_x - 1; | ||
144 | |||
145 | f1_y = 64 / img->mb_cr_size_y; | ||
146 | f2_y = f1_y - 1; | ||
147 | |||
148 | f3 = f1_x * f1_y; | ||
149 | f4 = f3 >> 1; | ||
150 | |||
151 | _Pragma( "loopbound min 2 max 2" ) | ||
152 | for ( uv = 0; uv < 2; uv++ ) { | ||
153 | intra_prediction = 0; | ||
154 | |||
155 | |||
156 | _Pragma( "loopbound min 1 max 1" ) | ||
157 | for ( b8 = 0; b8 < ( img->num_blk8x8_uv / 2 ); b8++ ) { | ||
158 | _Pragma( "loopbound min 4 max 4" ) | ||
159 | for ( b4 = 0; b4 < 4; b4++ ) { | ||
160 | joff = 0; | ||
161 | j4 = img->pix_c_y + joff; | ||
162 | ioff = 0; | ||
163 | i4 = img->pix_c_x + ioff; | ||
164 | |||
165 | mv_mode = 1; | ||
166 | pred_dir = -1; | ||
167 | |||
168 | if ( !intra_prediction ) { | ||
169 | if ( pred_dir != 2 ) { | ||
170 | |||
171 | _Pragma( "loopbound min 4 max 4" ) | ||
172 | for ( jj = 0; jj < 4; jj++ ) { | ||
173 | jf = ( ( j4 + jj ) / ( img->mb_cr_size_y / 4 ) ) % 64; | ||
174 | _Pragma( "loopbound min 4 max 4" ) | ||
175 | for ( ii = 0; ii < 4; ii++ ) { | ||
176 | ifx = ( ( i4 + ii ) / ( img->mb_cr_size_x / 4 ) ) % 64; | ||
177 | i1 = ( i4 + ii ) * f1_x + h264_dec_mv_array[jf][ifx][0]; | ||
178 | |||
179 | if ( !curr_mb_field ) | ||
180 | j1 = ( j4 + jj ) * f1_y + h264_dec_mv_array[jf][ifx][1]; | ||
181 | else { | ||
182 | if ( mb_nr % 2 == 0 ) { | ||
183 | j1 = ( ( img->pix_c_y / 2 ) + jj + joff ) * f1_y + | ||
184 | h264_dec_mv_array[jf][ifx][1]; | ||
185 | } else { | ||
186 | j1 = ( ( img->pix_c_y - img->mb_cr_size_y ) / 2 | ||
187 | + jj + joff ) * f1_y + | ||
188 | h264_dec_mv_array[jf][ifx][1]; | ||
189 | } | ||
190 | ++mb_nr; | ||
191 | } | ||
192 | |||
193 | if ( active_sps_chroma_format_idc == 1 ) | ||
194 | j1 += 0; | ||
195 | |||
196 | ii0 = ( ( ( 0 < ( ( i1 / f1_x > img->width_cr - 1 ) ? | ||
197 | img->width_cr - 1 : i1 / f1_x ) ) ? | ||
198 | ( ( i1 / f1_x > img->width_cr - 1 ) ? | ||
199 | img->width_cr - 1 : i1 / f1_x ) : 0 ) ) % 45; | ||
200 | jj0 = ( ( ( 0 < ( ( j1 / f1_y > max_y_cr ) ? | ||
201 | max_y_cr : j1 / f1_y ) ) ? | ||
202 | ( ( j1 / f1_y > max_y_cr ) ? | ||
203 | max_y_cr : j1 / f1_y ) : 0 ) ) % 45; | ||
204 | ii1 = ( ( ( 0 < ( | ||
205 | ( ( i1 + f2_x ) / f1_x > img->width_cr - 1 ) | ||
206 | ? img->width_cr - 1 : ( i1 + f2_x ) / f1_x ) ) | ||
207 | ? ( ( ( i1 + f2_x ) / f1_x > img->width_cr - 1 ) | ||
208 | ? img->width_cr - 1 : | ||
209 | ( i1 + f2_x ) / f1_x ) : 0 ) ) % 45; | ||
210 | jj1 = ( ( ( 0 < ( ( ( j1 + f2_y ) / f1_y > max_y_cr ) | ||
211 | ? max_y_cr : ( j1 + f2_y ) / f1_y ) ) ? | ||
212 | ( ( ( j1 + f2_y ) / f1_y > max_y_cr ) ? | ||
213 | max_y_cr : ( j1 + f2_y ) / f1_y ) : 0 ) ) % 45; | ||
214 | |||
215 | if1 = ( i1 & f2_x ); | ||
216 | jf1 = ( j1 & f2_y ); | ||
217 | if0 = f1_x - if1; | ||
218 | jf0 = f1_y - jf1; | ||
219 | |||
220 | if ( img->apply_weights ) { | ||
221 | } else { | ||
222 | h264_dec_img_mpr[ii + ioff][jj + joff] | ||
223 | = ( if0 * jf0 * h264_dec_list_imgUV[uv][jj0][ii0] | ||
224 | + if1 * jf0 * h264_dec_list_imgUV[uv][jj0][ii1] | ||
225 | + if0 * jf1 * h264_dec_list_imgUV[uv][jj1][ii0] | ||
226 | + if1 * jf1 * h264_dec_list_imgUV[uv][jj1][ii1] | ||
227 | + f4 ) / f3; | ||
228 | } | ||
229 | } | ||
230 | } | ||
231 | } else { | ||
232 | |||
233 | _Pragma( "loopbound min 4 max 4" ) | ||
234 | for ( jj = 0; jj < 4; jj++ ) { | ||
235 | jf = ( j4 + jj ) / ( img->mb_cr_size_y / 4 ); | ||
236 | _Pragma( "loopbound min 4 max 4" ) | ||
237 | for ( ii = 0; ii < 4; ii++ ) { | ||
238 | ifx = ( i4 + ii ) / ( img->mb_cr_size_x / 4 ); | ||
239 | direct_pdir = 2; | ||
240 | |||
241 | if ( mv_mode == 0 && img->direct_spatial_mv_pred_flag ) { | ||
242 | if ( dec_picture_ref_idx != -1 ) { | ||
243 | fw_refframe = 0; | ||
244 | fw_ref_idx = fw_refframe; | ||
245 | } | ||
246 | if ( dec_picture_ref_idx != -1 ) { | ||
247 | bw_refframe = 0; | ||
248 | bw_ref_idx = bw_refframe; | ||
249 | } | ||
250 | |||
251 | if ( dec_picture_ref_idx == -1 ) direct_pdir = 0; | ||
252 | else | ||
253 | if ( dec_picture_ref_idx == -1 ) direct_pdir = 1; | ||
254 | |||
255 | if ( direct_pdir == 0 || direct_pdir == 2 ) { | ||
256 | i1 = ( img->pix_c_x + ii + ioff ) * f1_x + | ||
257 | h264_dec_mv_array[jf][ifx][0]; | ||
258 | |||
259 | if ( !curr_mb_field ) { | ||
260 | j1 = ( img->pix_c_y + jj + joff ) * f1_y + | ||
261 | h264_dec_mv_array[jf][ifx][1]; | ||
262 | } else { | ||
263 | if ( mb_nr % 2 == 0 ) { | ||
264 | j1 = ( ( img->pix_c_y ) / 2 + jj + joff ) * | ||
265 | f1_y + h264_dec_mv_array[jf][ifx][1]; | ||
266 | } else { | ||
267 | j1 = ( ( img->pix_c_y - img->mb_cr_size_y ) | ||
268 | / 2 + jj + joff ) * f1_y | ||
269 | + h264_dec_mv_array[jf][ifx][1]; | ||
270 | } | ||
271 | } | ||
272 | |||
273 | if ( active_sps_chroma_format_idc == 1 ) | ||
274 | j1 += 0; | ||
275 | |||
276 | ii0 = ( ( | ||
277 | ( 0 < ( ( i1 / f1_x > img->width_cr - 1 ) ? | ||
278 | img->width_cr - 1 : i1 / f1_x ) ) ? | ||
279 | ( ( i1 / f1_x > img->width_cr - 1 ) ? | ||
280 | img->width_cr - 1 : i1 / f1_x ) : 0 ) ) % 45; | ||
281 | jj0 = ( ( | ||
282 | ( 0 < ( ( j1 / f1_y > max_y_cr ) ? | ||
283 | max_y_cr : j1 / f1_y ) ) ? ( ( | ||
284 | j1 / f1_y > max_y_cr ) ? | ||
285 | max_y_cr : j1 / f1_y ) : 0 ) | ||
286 | ) % 45; | ||
287 | ii1 = ( ( ( 0 < ( ( ( i1 + f2_x ) / | ||
288 | f1_x > img->width_cr - 1 ) ? | ||
289 | img->width_cr - 1 : | ||
290 | ( i1 + f2_x ) / f1_x ) ) ? | ||
291 | ( ( ( i1 + f2_x ) / f1_x > img->width_cr - 1 ) | ||
292 | ? img->width_cr - 1 : | ||
293 | ( i1 + f2_x ) / f1_x ) : 0 ) ) % 45; | ||
294 | jj1 = ( ( ( 0 < ( ( ( j1 + f2_y ) / f1_y > max_y_cr ) ? | ||
295 | max_y_cr : ( j1 + f2_y ) / f1_y ) ) ? | ||
296 | ( ( ( j1 + f2_y ) / f1_y > max_y_cr ) ? | ||
297 | max_y_cr : ( j1 + f2_y ) / f1_y ) : 0 ) | ||
298 | ) % 45; | ||
299 | |||
300 | |||
301 | if1 = ( i1 & f2_x ); | ||
302 | jf1 = ( j1 & f2_y ); | ||
303 | if0 = f1_x - if1; | ||
304 | jf0 = f1_y - jf1; | ||
305 | |||
306 | fw_pred = ( if0 * jf0 * | ||
307 | h264_dec_list_imgUV[uv][jj0][ii0] + | ||
308 | if1 * jf0 * | ||
309 | h264_dec_list_imgUV[uv][jj0][ii1] + | ||
310 | if0 * jf1 * | ||
311 | h264_dec_list_imgUV[uv][jj1][ii0] + | ||
312 | if1 * jf1 * | ||
313 | h264_dec_list_imgUV[uv][jj1][ii1] + | ||
314 | f4 ) / f3; | ||
315 | } | ||
316 | if ( direct_pdir == 1 || direct_pdir == 2 ) { | ||
317 | i1 = ( img->pix_c_x + ii + ioff ) * f1_x + | ||
318 | h264_dec_mv_array[jf][ifx][0]; | ||
319 | |||
320 | if ( !curr_mb_field ) { | ||
321 | j1 = ( img->pix_c_y + jj + joff ) * f1_y + | ||
322 | h264_dec_mv_array[jf][ifx][1]; | ||
323 | } else { | ||
324 | if ( mb_nr % 2 == 0 ) { | ||
325 | j1 = ( ( img->pix_c_y ) / 2 + jj + joff ) * f1_y | ||
326 | + h264_dec_mv_array[jf][ifx][1]; | ||
327 | } else { | ||
328 | j1 = ( ( img->pix_c_y - img->mb_cr_size_y ) / 2 | ||
329 | + jj + joff ) * f1_y | ||
330 | + h264_dec_mv_array[jf][ifx][1]; | ||
331 | } | ||
332 | } | ||
333 | if ( active_sps_chroma_format_idc == 1 ) | ||
334 | j1 += 0; | ||
335 | |||
336 | ii0 = ( ( ( 0 < ( ( i1 / f1_x > img->width_cr - 1 ) ? | ||
337 | img->width_cr - 1 : i1 / f1_x ) ) ? | ||
338 | ( ( i1 / f1_x > img->width_cr - 1 ) ? | ||
339 | img->width_cr - 1 : i1 / f1_x ) : 0 ) ) % 45; | ||
340 | jj0 = ( ( ( 0 < ( ( j1 / f1_y > max_y_cr ) ? | ||
341 | max_y_cr : j1 / f1_y ) ) ? | ||
342 | ( ( j1 / f1_y > max_y_cr ) ? | ||
343 | max_y_cr : j1 / f1_y ) : 0 ) ) % 45; | ||
344 | ii1 = ( ( ( 0 < ( ( ( i1 + f2_x ) / | ||
345 | f1_x > img->width_cr - 1 ) ? | ||
346 | img->width_cr - 1 : | ||
347 | ( i1 + f2_x ) / f1_x ) ) ? | ||
348 | ( ( ( i1 + f2_x ) / f1_x > img->width_cr - 1 ) | ||
349 | ? img->width_cr - 1 : | ||
350 | ( i1 + f2_x ) / f1_x ) : 0 ) ) % 45; | ||
351 | jj1 = ( ( ( 0 < ( ( ( j1 + f2_y ) / f1_y > max_y_cr ) ? | ||
352 | max_y_cr : ( j1 + f2_y ) / f1_y ) ) ? | ||
353 | ( ( ( j1 + f2_y ) / f1_y > max_y_cr ) ? | ||
354 | max_y_cr : ( j1 + f2_y ) / f1_y ) : 0 ) ) | ||
355 | % 45; | ||
356 | |||
357 | if1 = ( i1 & f2_x ); | ||
358 | jf1 = ( j1 & f2_y ); | ||
359 | if0 = f1_x - if1; | ||
360 | jf0 = f1_y - jf1; | ||
361 | |||
362 | bw_pred = ( if0 * jf0 * | ||
363 | h264_dec_list_imgUV[uv][jj0][ii0] + | ||
364 | if1 * jf0 * | ||
365 | h264_dec_list_imgUV[uv][jj0][ii1] + | ||
366 | if0 * jf1 * | ||
367 | h264_dec_list_imgUV[uv][jj1][ii0] + | ||
368 | if1 * jf1 * | ||
369 | h264_dec_list_imgUV[uv][jj1][ii1] + | ||
370 | f4 ) / f3; | ||
371 | } | ||
372 | |||
373 | } else { | ||
374 | fw_refframe = 0; | ||
375 | bw_refframe = 0; | ||
376 | |||
377 | fw_ref_idx = fw_refframe; | ||
378 | bw_ref_idx = bw_refframe; | ||
379 | |||
380 | i1 = ( img->pix_c_x + ii + ioff ) * f1_x + | ||
381 | h264_dec_mv_array[jf][ifx][0]; | ||
382 | |||
383 | if ( !curr_mb_field ) { | ||
384 | j1 = ( img->pix_c_y + jj + joff ) * f1_y + | ||
385 | h264_dec_mv_array[jf][ifx][1]; | ||
386 | } else { | ||
387 | if ( mb_nr % 2 == 0 ) { | ||
388 | j1 = ( ( img->pix_c_y ) / 2 + jj + joff ) * f1_y + | ||
389 | h264_dec_mv_array[jf][ifx][1]; | ||
390 | } else { | ||
391 | j1 = ( ( img->pix_c_y - img->mb_cr_size_y ) / 2 | ||
392 | + jj + joff ) * f1_y | ||
393 | + h264_dec_mv_array[jf][ifx][1]; | ||
394 | } | ||
395 | } | ||
396 | |||
397 | if ( active_sps_chroma_format_idc == 1 ) | ||
398 | j1 += 0; | ||
399 | |||
400 | ii0 = ( ( ( 0 < ( ( i1 / f1_x > img->width_cr - 1 ) ? | ||
401 | img->width_cr - 1 : i1 / f1_x ) ) ? | ||
402 | ( ( i1 / f1_x > img->width_cr - 1 ) ? | ||
403 | img->width_cr - 1 : i1 / f1_x ) : 0 ) ) | ||
404 | % 45; | ||
405 | jj0 = ( ( ( 0 < ( ( j1 / f1_y > max_y_cr ) ? | ||
406 | max_y_cr : j1 / f1_y ) ) ? | ||
407 | ( ( j1 / f1_y > max_y_cr ) ? | ||
408 | max_y_cr : j1 / f1_y ) : 0 ) ) % 45; | ||
409 | ii1 = ( ( ( 0 < ( ( ( i1 + f2_x ) / | ||
410 | f1_x > img->width_cr - 1 ) ? | ||
411 | img->width_cr - 1 : | ||
412 | ( i1 + f2_x ) / f1_x ) ) ? | ||
413 | ( ( ( i1 + f2_x ) / f1_x > img->width_cr - 1 ) ? | ||
414 | img->width_cr - 1 : | ||
415 | ( i1 + f2_x ) / f1_x ) : 0 ) ) % 45; | ||
416 | jj1 = ( ( ( 0 < ( ( ( j1 + f2_y ) / f1_y > max_y_cr ) ? | ||
417 | max_y_cr : ( j1 + f2_y ) / f1_y ) ) ? | ||
418 | ( ( ( j1 + f2_y ) / f1_y > max_y_cr ) ? | ||
419 | max_y_cr : | ||
420 | ( j1 + f2_y ) / f1_y ) : 0 ) ) % 45; | ||
421 | |||
422 | if1 = ( i1 & f2_x ); | ||
423 | jf1 = ( j1 & f2_y ); | ||
424 | if0 = f1_x - if1; | ||
425 | jf0 = f1_y - jf1; | ||
426 | |||
427 | fw_pred = ( if0 * jf0 * h264_dec_list_imgUV[uv][jj0][ii0] + | ||
428 | if1 * jf0 * h264_dec_list_imgUV[uv][jj0][ii1] + | ||
429 | if0 * jf1 * h264_dec_list_imgUV[uv][jj1][ii0] + | ||
430 | if1 * jf1 * h264_dec_list_imgUV[uv][jj1][ii1] + | ||
431 | f4 ) / f3; | ||
432 | |||
433 | i1 = ( img->pix_c_x + ii + ioff ) * f1_x + | ||
434 | h264_dec_mv_array[jf][ifx][0]; | ||
435 | |||
436 | if ( !curr_mb_field ) { | ||
437 | j1 = ( img->pix_c_y + jj + joff ) * f1_y + | ||
438 | h264_dec_mv_array[jf][ifx][1]; | ||
439 | } else { | ||
440 | if ( mb_nr % 2 == 0 ) { | ||
441 | j1 = ( ( img->pix_c_y ) / 2 + jj + joff ) * f1_y | ||
442 | + h264_dec_mv_array[jf][ifx][1]; | ||
443 | } else { | ||
444 | j1 = ( ( img->pix_c_y - img->mb_cr_size_y ) / 2 + jj | ||
445 | + joff ) * f1_y | ||
446 | + h264_dec_mv_array[jf][ifx][1]; | ||
447 | } | ||
448 | } | ||
449 | |||
450 | if ( active_sps_chroma_format_idc == 1 ) | ||
451 | j1 += 0; | ||
452 | |||
453 | ii0 = ( ( ( 0 < ( ( i1 / f1_x > img->width_cr - 1 ) ? | ||
454 | img->width_cr - 1 : i1 / f1_x ) ) ? | ||
455 | ( ( i1 / f1_x > img->width_cr - 1 ) ? | ||
456 | img->width_cr - 1 : i1 / f1_x ) : 0 ) ) % 45; | ||
457 | jj0 = ( ( ( 0 < ( ( j1 / f1_y > max_y_cr ) ? | ||
458 | max_y_cr : j1 / f1_y ) ) ? | ||
459 | ( ( j1 / f1_y > max_y_cr ) ? | ||
460 | max_y_cr : j1 / f1_y ) : 0 ) ) % 45; | ||
461 | ii1 = ( ( ( 0 < ( ( ( i1 + f2_x ) / | ||
462 | f1_x > img->width_cr - 1 ) ? | ||
463 | img->width_cr - 1 : | ||
464 | ( i1 + f2_x ) / f1_x ) ) ? | ||
465 | ( ( ( i1 + f2_x ) / f1_x > img->width_cr - 1 ) ? | ||
466 | img->width_cr - 1 : | ||
467 | ( i1 + f2_x ) / f1_x ) : 0 ) ) % 45; | ||
468 | jj1 = ( ( ( 0 < ( ( ( j1 + f2_y ) / f1_y > max_y_cr ) ? | ||
469 | max_y_cr : ( j1 + f2_y ) / f1_y ) ) ? | ||
470 | ( ( ( j1 + f2_y ) / f1_y > max_y_cr ) ? | ||
471 | max_y_cr : ( j1 + f2_y ) / f1_y ) : 0 ) ) % 45; | ||
472 | |||
473 | if1 = ( i1 & f2_x ); | ||
474 | jf1 = ( j1 & f2_y ); | ||
475 | if0 = f1_x - if1; | ||
476 | jf0 = f1_y - jf1; | ||
477 | |||
478 | bw_pred = ( if0 * jf0 * h264_dec_list_imgUV[uv][jj0][ii0] + | ||
479 | if1 * jf0 * h264_dec_list_imgUV[uv][jj0][ii1] + | ||
480 | if0 * jf1 * h264_dec_list_imgUV[uv][jj1][ii0] + | ||
481 | if1 * jf1 * h264_dec_list_imgUV[uv][jj1][ii1] + | ||
482 | f4 ) / f3; | ||
483 | } | ||
484 | |||
485 | if ( img->apply_weights ) { | ||
486 | if ( ( ( active_pps_weighted_pred_flag && | ||
487 | ( img->type == P_SLICE || img->type == SP_SLICE ) ) | ||
488 | || ( active_pps_weighted_bipred_idc == 1 && | ||
489 | ( img->type == B_SLICE ) ) ) | ||
490 | && curr_mb_field ) { | ||
491 | fw_ref_idx >>= 1; | ||
492 | bw_ref_idx >>= 1; | ||
493 | } | ||
494 | |||
495 | if ( img->direct_spatial_mv_pred_flag | ||
496 | && direct_pdir == 1 ) { | ||
497 | img->mpr[ii + ioff][jj + joff] = | ||
498 | ( ( ( img->wp_round_chroma ) >> | ||
499 | img->chroma_log2_weight_denom ) < 0 ? 0 : | ||
500 | ( ( img->wp_round_chroma ) >> | ||
501 | img->chroma_log2_weight_denom ) ) + 0; | ||
502 | } else | ||
503 | if ( img->direct_spatial_mv_pred_flag | ||
504 | && direct_pdir == 0 ) { | ||
505 | img->mpr[ii + ioff][jj + joff] = | ||
506 | ( ( ( ( img->wp_round_chroma ) >> | ||
507 | img->chroma_log2_weight_denom ) ) < 0 ? | ||
508 | 0 : | ||
509 | ( ( ( img->wp_round_chroma ) >> | ||
510 | img->chroma_log2_weight_denom ) ) ) ; | ||
511 | } else { | ||
512 | |||
513 | int alpha_fw = 0; | ||
514 | int alpha_bw = 0; | ||
515 | |||
516 | img->mpr[ii + ioff][jj + joff] = | ||
517 | ( ( ( alpha_fw * fw_pred + alpha_bw * | ||
518 | bw_pred + | ||
519 | ( 1 << img->chroma_log2_weight_denom ) ) >> ( | ||
520 | img->chroma_log2_weight_denom + 1 ) ) < 0 ? | ||
521 | 0 : ( ( alpha_fw * fw_pred + alpha_bw * | ||
522 | bw_pred + | ||
523 | ( 1 << img->chroma_log2_weight_denom ) ) >> | ||
524 | ( img->chroma_log2_weight_denom + 1 ) ) ); | ||
525 | } | ||
526 | } else { | ||
527 | if ( img->direct_spatial_mv_pred_flag | ||
528 | && direct_pdir == 1 ) | ||
529 | img->mpr[ii + ioff][jj + joff] = bw_pred; | ||
530 | else | ||
531 | if ( img->direct_spatial_mv_pred_flag | ||
532 | && direct_pdir == 0 ) | ||
533 | img->mpr[ii + ioff][jj + joff] = fw_pred; | ||
534 | else { | ||
535 | img->mpr[ii + ioff][jj + joff] = ( fw_pred + bw_pred | ||
536 | + | ||
537 | 1 ) / 2; | ||
538 | } | ||
539 | } | ||
540 | } | ||
541 | } | ||
542 | } | ||
543 | } | ||
544 | |||
545 | if ( !smb ) { | ||
546 | _Pragma( "loopbound min 4 max 4" ) | ||
547 | for ( ii = 0; ii < 4; ii++ ) { | ||
548 | jj = 0; | ||
549 | _Pragma( "loopbound min 4 max 4" ) | ||
550 | for ( ; jj < 4; jj++ ) { | ||
551 | if ( !residue_transform_flag ) { | ||
552 | h264_dec_dec_picture_imgUV[uv][( j4 + jj ) % 64] | ||
553 | [( i4 + ii ) % 54] | ||
554 | = h264_dec_img_m7[ii][jj]; | ||
555 | } | ||
556 | } | ||
557 | } | ||
558 | } | ||
559 | } | ||
560 | } | ||
561 | |||
562 | if ( smb ) { | ||
563 | _Pragma( "loopbound min 2 max 2" ) | ||
564 | for ( j = 4; j < 6; j++ ) { | ||
565 | joff = ( j - 4 ) * 4; | ||
566 | j4 = img->pix_c_y + joff; | ||
567 | _Pragma( "loopbound min 2 max 2" ) | ||
568 | for ( i = 0; i < 2; i++ ) { | ||
569 | ioff = i * 4; | ||
570 | i4 = img->pix_c_x + ioff; | ||
571 | |||
572 | _Pragma( "loopbound min 4 max 4" ) | ||
573 | for ( ii = 0; ii < 4; ii++ ) | ||
574 | _Pragma( "loopbound min 4 max 4" ) | ||
575 | for ( jj = 0; jj < 4; jj++ ) { | ||
576 | h264_dec_dec_picture_imgUV[uv][( j4 + jj ) % 64] | ||
577 | [( i4 + ii ) % 54] | ||
578 | = h264_dec_img_m7[ii][jj]; | ||
579 | } | ||
580 | } | ||
581 | } | ||
582 | } | ||
583 | } | ||
584 | } | ||
585 | } | ||
586 | |||
587 | |||
588 | /* | ||
589 | Main functions | ||
590 | */ | ||
591 | |||
592 | void _Pragma( "entrypoint" ) h264_dec_main( void ) | ||
593 | { | ||
594 | h264_dec_decode_one_macroblock( &h264_dec_img ); | ||
595 | } | ||
596 | |||
597 | |||
598 | int main( int argc, char** argv ) | ||
599 | { | ||
600 | SET_UP | ||
601 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
602 | START_LOOP | ||
603 | h264_dec_init(); | ||
604 | h264_dec_main(); | ||
605 | STOP_LOOP | ||
606 | } | ||
607 | WRITE_TO_FILE | ||
608 | |||
609 | return ( h264_dec_return() ); | ||
610 | } | ||
diff --git a/baseline/source/h264_dec/h264_dec.h b/baseline/source/h264_dec/h264_dec.h new file mode 100644 index 0000000..ad33a25 --- /dev/null +++ b/baseline/source/h264_dec/h264_dec.h | |||
@@ -0,0 +1,29 @@ | |||
1 | #ifndef __H264DEC_H | ||
2 | #define __H264DEC_H | ||
3 | |||
4 | typedef enum { | ||
5 | P_SLICE = 0, | ||
6 | B_SLICE, | ||
7 | I_SLICE, | ||
8 | SP_SLICE, | ||
9 | SI_SLICE | ||
10 | } h264_dec_SliceType; | ||
11 | |||
12 | // image parameters | ||
13 | typedef struct h264_dec_img_par { | ||
14 | int direct_spatial_mv_pred_flag; | ||
15 | int type; | ||
16 | int width_cr; | ||
17 | int pix_c_y; | ||
18 | int pix_c_x; | ||
19 | unsigned short mpr[16][16]; | ||
20 | unsigned int chroma_log2_weight_denom; | ||
21 | int wp_round_chroma; | ||
22 | unsigned int apply_weights; | ||
23 | int num_blk8x8_uv; | ||
24 | int mb_cr_size_x; | ||
25 | int mb_cr_size_y; | ||
26 | |||
27 | } h264_dec_ImageParameters; | ||
28 | |||
29 | #endif | ||
diff --git a/baseline/source/h264_dec/h264_decinput.c b/baseline/source/h264_dec/h264_decinput.c new file mode 100644 index 0000000..5055179 --- /dev/null +++ b/baseline/source/h264_dec/h264_decinput.c | |||
@@ -0,0 +1,801 @@ | |||
1 | signed char h264_dec_mv_array[65][65][2] = { | ||
2 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
3 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
4 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
5 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
6 | }, | ||
7 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
8 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
9 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
10 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
11 | }, | ||
12 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
13 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
14 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
15 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
16 | }, | ||
17 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
18 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
19 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
20 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
21 | }, | ||
22 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
23 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
24 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
25 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
26 | }, | ||
27 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
28 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
29 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
30 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
31 | }, | ||
32 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
33 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
34 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
35 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
36 | }, | ||
37 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
38 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
39 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
40 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
41 | }, | ||
42 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
43 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
44 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
45 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
46 | }, | ||
47 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
48 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
49 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
50 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
51 | }, | ||
52 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
53 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
54 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
55 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
56 | }, | ||
57 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
58 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
59 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
60 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
61 | }, | ||
62 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
63 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
64 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
65 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
66 | }, | ||
67 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
68 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
69 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
70 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
71 | }, | ||
72 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
73 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
74 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
75 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
76 | }, | ||
77 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
78 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
79 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
80 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
81 | }, | ||
82 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
83 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
84 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
85 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
86 | }, | ||
87 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
88 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
89 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
90 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
91 | }, | ||
92 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
93 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
94 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
95 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
96 | }, | ||
97 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
98 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
99 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
100 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
101 | }, | ||
102 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
103 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
104 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
105 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
106 | }, | ||
107 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
108 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
109 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
110 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
111 | }, | ||
112 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
113 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
114 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
115 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
116 | }, | ||
117 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
118 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
119 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
120 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
121 | }, | ||
122 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
123 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
124 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
125 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
126 | }, | ||
127 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
128 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
129 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
130 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
131 | }, | ||
132 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
133 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
134 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
135 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
136 | }, | ||
137 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
138 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
139 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
140 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
141 | }, | ||
142 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
143 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
144 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
145 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
146 | }, | ||
147 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
148 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
149 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
150 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
151 | }, | ||
152 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
153 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
154 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
155 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
156 | }, | ||
157 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
158 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
159 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
160 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
161 | }, | ||
162 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
163 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
164 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
165 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
166 | }, | ||
167 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
168 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
169 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
170 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
171 | }, | ||
172 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
173 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
174 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
175 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
176 | }, | ||
177 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
178 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
179 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
180 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
181 | }, | ||
182 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
183 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
184 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
185 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
186 | }, | ||
187 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
188 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
189 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
190 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
191 | }, | ||
192 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
193 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
194 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
195 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
196 | }, | ||
197 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
198 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
199 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
200 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
201 | }, | ||
202 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
203 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
204 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
205 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
206 | }, | ||
207 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
208 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
209 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
210 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
211 | }, | ||
212 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
213 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
214 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
215 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
216 | }, | ||
217 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
218 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
219 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
220 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
221 | }, | ||
222 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
223 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
224 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
225 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
226 | }, | ||
227 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
228 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
229 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
230 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
231 | }, | ||
232 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
233 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
234 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
235 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
236 | }, | ||
237 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
238 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
239 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
240 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
241 | }, | ||
242 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
243 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
244 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
245 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
246 | }, | ||
247 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
248 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
249 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
250 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
251 | }, | ||
252 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
253 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
254 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
255 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
256 | }, | ||
257 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
258 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
259 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
260 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
261 | }, | ||
262 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
263 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
264 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
265 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
266 | }, | ||
267 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
268 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
269 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
270 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
271 | }, | ||
272 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
273 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
274 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
275 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
276 | }, | ||
277 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
278 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
279 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
280 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
281 | }, | ||
282 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
283 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
284 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
285 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
286 | }, | ||
287 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
288 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
289 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
290 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
291 | }, | ||
292 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
293 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
294 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
295 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
296 | }, | ||
297 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
298 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
299 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
300 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
301 | }, | ||
302 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
303 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
304 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
305 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
306 | }, | ||
307 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
308 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
309 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
310 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
311 | }, | ||
312 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
313 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
314 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
315 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
316 | }, | ||
317 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
318 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
319 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
320 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
321 | }, | ||
322 | { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
323 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
324 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, | ||
325 | {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} | ||
326 | } | ||
327 | }; | ||
328 | |||
329 | short h264_dec_list_imgUV[2][45][45] = {{ | ||
330 | { | ||
331 | 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, | ||
332 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, | ||
333 | 124, 125, 126, 126, 126, 126, 126, 126, 126, 125, 123, 122, 122, 122, 122 | ||
334 | }, | ||
335 | { | ||
336 | 122, 122, 122, 122, 122, 122, 123, 123, 124, 124, 124, 124, 124, 124, 124, | ||
337 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, 122, 122, | ||
338 | 121, 121, 120, 120, 120, 119, 119, 119, 119, 119, 119, 119, 120, 121, 121 | ||
339 | }, | ||
340 | { | ||
341 | 121, 121, 121, 121, 121, 121, 120, 120, 120, 122, 122, 124, 124, 124, 123, | ||
342 | 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, | ||
343 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
344 | }, | ||
345 | { | ||
346 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, | ||
347 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
348 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121 | ||
349 | }, | ||
350 | { | ||
351 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
352 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
353 | 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 121 | ||
354 | }, | ||
355 | { | ||
356 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
357 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
358 | 122, 123, 123, 123, 123, 123, 123, 123, 124, 125, 125, 125, 125, 125, 125 | ||
359 | }, | ||
360 | { | ||
361 | 125, 125, 125, 125, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 127, | ||
362 | 130, 135, 137, 139, 140, 140, 140, 140, 140, 140, 141, 142, 143, 143, 143, | ||
363 | 143, 143, 143, 143, 142, 142, 142, 141, 141, 140, 140, 139, 138, 137, 137 | ||
364 | }, | ||
365 | { | ||
366 | 136, 136, 135, 135, 135, 134, 133, 133, 134, 134, 135, 135, 135, 135, 135, | ||
367 | 135, 135, 135, 135, 135, 135, 134, 134, 134, 134, 134, 134, 134, 134, 134, | ||
368 | 134, 134, 134, 134, 134, 134, 134, 123, 123, 123, 123, 123, 123, 123, 123 | ||
369 | }, | ||
370 | { | ||
371 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, | ||
372 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, | ||
373 | 124, 124, 123, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123 | ||
374 | }, | ||
375 | { | ||
376 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, | ||
377 | 124, 124, 124, 124, 123, 122, 122, 121, 121, 120, 120, 120, 119, 119, 119, | ||
378 | 119, 119, 119, 119, 120, 121, 121, 121, 121, 121, 121, 121, 121, 120, 120 | ||
379 | }, | ||
380 | { | ||
381 | 120, 122, 122, 124, 124, 124, 123, 122, 122, 122, 122, 122, 122, 122, 121, | ||
382 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
383 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
384 | }, | ||
385 | { | ||
386 | 121, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
387 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
388 | 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
389 | }, | ||
390 | { | ||
391 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
392 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, | ||
393 | 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
394 | }, | ||
395 | { | ||
396 | 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, | ||
397 | 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, | ||
398 | 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 127 | ||
399 | }, | ||
400 | { | ||
401 | 127, 127, 128, 128, 128, 128, 127, 130, 135, 137, 139, 140, 140, 140, 140, | ||
402 | 140, 140, 141, 142, 143, 143, 143, 143, 143, 143, 143, 142, 142, 142, 141, | ||
403 | 141, 140, 140, 139, 138, 137, 137, 136, 136, 135, 135, 135, 134, 133, 133 | ||
404 | }, | ||
405 | { | ||
406 | 134, 134, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 134, 134, | ||
407 | 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 123, | ||
408 | 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124 | ||
409 | }, | ||
410 | { | ||
411 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, | ||
412 | 124, 123, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
413 | 122, 122, 122, 122, 122, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124 | ||
414 | }, | ||
415 | { | ||
416 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, 122, 122, 121, | ||
417 | 121, 120, 120, 120, 119, 119, 119, 119, 119, 119, 119, 120, 121, 121, 121, | ||
418 | 121, 121, 121, 121, 121, 120, 120, 120, 122, 122, 124, 124, 124, 123, 122 | ||
419 | }, | ||
420 | { | ||
421 | 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
422 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
423 | 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122 | ||
424 | }, | ||
425 | { | ||
426 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
427 | 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, | ||
428 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
429 | }, | ||
430 | { | ||
431 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
432 | 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, | ||
433 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122 | ||
434 | }, | ||
435 | { | ||
436 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, | ||
437 | 123, 123, 123, 123, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, | ||
438 | 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 127, 130, 135, 137, 139 | ||
439 | }, | ||
440 | { | ||
441 | 140, 140, 140, 140, 140, 140, 141, 142, 143, 143, 143, 143, 143, 143, 143, | ||
442 | 142, 142, 142, 141, 141, 140, 140, 139, 138, 137, 137, 136, 136, 135, 135, | ||
443 | 135, 134, 133, 133, 134, 134, 135, 135, 135, 135, 135, 135, 135, 135, 135 | ||
444 | }, | ||
445 | { | ||
446 | 135, 135, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, | ||
447 | 134, 134, 134, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, | ||
448 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124 | ||
449 | }, | ||
450 | { | ||
451 | 124, 124, 124, 124, 123, 123, 122, 122, 122, 122, 122, 122, 122, 123, 123, | ||
452 | 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, | ||
453 | 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124 | ||
454 | }, | ||
455 | { | ||
456 | 123, 122, 122, 121, 121, 120, 120, 120, 119, 118, 118, 118, 118, 118, 118, | ||
457 | 119, 120, 120, 120, 120, 120, 120, 120, 120, 120, 119, 119, 121, 121, 123, | ||
458 | 123, 123, 122, 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121 | ||
459 | }, | ||
460 | { | ||
461 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
462 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, | ||
463 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123 | ||
464 | }, | ||
465 | { | ||
466 | 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 122, | ||
467 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
468 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
469 | }, | ||
470 | { | ||
471 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, | ||
472 | 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
473 | 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122 | ||
474 | }, | ||
475 | { | ||
476 | 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, 124, 125, 125, 125, | ||
477 | 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 127, 127, 127, 128, 128, | ||
478 | 128, 128, 128, 130, 134, 136, 138, 139, 139, 139, 139, 139, 139, 140, 142 | ||
479 | }, | ||
480 | { | ||
481 | 143, 143, 143, 142, 142, 142, 142, 142, 142, 142, 141, 141, 140, 140, 139, | ||
482 | 138, 137, 137, 136, 136, 135, 135, 135, 134, 133, 133, 134, 134, 135, 135, | ||
483 | 135, 135, 135, 135, 135, 135, 135, 135, 135, 134, 134, 134, 134, 134, 134 | ||
484 | }, | ||
485 | { | ||
486 | 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 124, 124, 124, 124, 124, | ||
487 | 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, | ||
488 | 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 122, 122, 122 | ||
489 | }, | ||
490 | { | ||
491 | 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, | ||
492 | 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 124, | ||
493 | 124, 124, 124, 124, 124, 124, 124, 123, 122, 122, 121, 121, 120, 120, 119 | ||
494 | }, | ||
495 | { | ||
496 | 118, 118, 118, 118, 118, 118, 118, 118, 119, 120, 120, 120, 120, 120, 120, | ||
497 | 120, 119, 119, 119, 121, 121, 123, 123, 123, 122, 122, 122, 122, 122, 122, | ||
498 | 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
499 | }, | ||
500 | { | ||
501 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
502 | 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
503 | 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123 | ||
504 | }, | ||
505 | { | ||
506 | 123, 123, 123, 123, 123, 123, 122, 121, 121, 121, 121, 121, 121, 121, 121, | ||
507 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
508 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
509 | }, | ||
510 | { | ||
511 | 121, 122, 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 125, 124, 123, | ||
512 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
513 | 121, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122 | ||
514 | }, | ||
515 | { | ||
516 | 122, 122, 123, 123, 123, 123, 123, 123, 123, 124, 125, 125, 125, 125, 125, | ||
517 | 125, 125, 125, 125, 125, 125, 126, 126, 127, 127, 127, 128, 128, 128, 129, | ||
518 | 128, 131, 134, 136, 138, 139, 139, 139, 139, 139, 139, 140, 142, 143, 143 | ||
519 | }, | ||
520 | { | ||
521 | 142, 141, 140, 140, 141, 142, 142, 142, 141, 141, 140, 140, 139, 138, 137, | ||
522 | 137, 136, 136, 135, 135, 135, 134, 133, 133, 134, 134, 135, 135, 135, 135, | ||
523 | 135, 135, 135, 135, 135, 135, 135, 134, 134, 134, 134, 134, 134, 134, 134 | ||
524 | }, | ||
525 | { | ||
526 | 134, 134, 134, 134, 134, 134, 134, 134, 125, 125, 125, 125, 125, 125, 125, | ||
527 | 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, | ||
528 | 126, 126, 125, 124, 124, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123 | ||
529 | }, | ||
530 | { | ||
531 | 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, | ||
532 | 123, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 124, 124, 124, | ||
533 | 124, 124, 124, 124, 124, 123, 122, 122, 121, 121, 120, 120, 119, 118, 117 | ||
534 | }, | ||
535 | { | ||
536 | 117, 117, 117, 117, 117, 118, 119, 119, 119, 119, 119, 119, 119, 119, 118, | ||
537 | 118, 118, 120, 120, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
538 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
539 | }, | ||
540 | { | ||
541 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
542 | 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
543 | 122, 122, 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124 | ||
544 | }, | ||
545 | { | ||
546 | 124, 124, 124, 123, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
547 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
548 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122 | ||
549 | }, | ||
550 | { | ||
551 | 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, | ||
552 | 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, | ||
553 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123 | ||
554 | } | ||
555 | }, | ||
556 | { { | ||
557 | 123, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, | ||
558 | 127, 127, 127, 128, 128, 128, 129, 129, 131, 133, 135, 137, 138, 138, 138, | ||
559 | 138, 138, 138, 139, 142, 143, 143, 142, 140, 139, 139, 140, 141, 142, 142 | ||
560 | }, | ||
561 | { | ||
562 | 141, 141, 140, 140, 139, 138, 137, 137, 136, 136, 135, 135, 135, 134, 133, | ||
563 | 133, 134, 134, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 134, | ||
564 | 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134 | ||
565 | }, | ||
566 | { | ||
567 | 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, | ||
568 | 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 124, 124, 124, 124, 124, | ||
569 | 124, 124, 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124 | ||
570 | }, | ||
571 | { | ||
572 | 124, 124, 124, 124, 124, 124, 123, 123, 122, 122, 122, 122, 122, 122, 122, | ||
573 | 122, 122, 122, 123, 124, 124, 124, 124, 124, 124, 124, 124, 123, 122, 122, | ||
574 | 121, 121, 120, 120, 119, 118, 117, 117, 117, 117, 117, 117, 118, 119, 119 | ||
575 | }, | ||
576 | { | ||
577 | 119, 119, 119, 119, 119, 119, 118, 118, 118, 120, 120, 122, 122, 122, 122, | ||
578 | 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, | ||
579 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
580 | }, | ||
581 | { | ||
582 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, | ||
583 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 124, 124, 124, 124, 124, | ||
584 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, 122, 121, 121, 121 | ||
585 | }, | ||
586 | { | ||
587 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
588 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
589 | 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 121 | ||
590 | }, | ||
591 | { | ||
592 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
593 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
594 | 122, 123, 123, 123, 123, 123, 123, 123, 124, 125, 125, 125, 125, 125, 125 | ||
595 | }, | ||
596 | { | ||
597 | 125, 125, 125, 125, 125, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, | ||
598 | 131, 133, 135, 137, 138, 138, 138, 138, 138, 138, 139, 142, 143, 143, 142, | ||
599 | 140, 139, 139, 140, 141, 142, 142, 141, 141, 140, 140, 139, 138, 137, 137 | ||
600 | }, | ||
601 | { | ||
602 | 136, 136, 135, 135, 135, 134, 133, 133, 134, 134, 135, 135, 135, 135, 135, | ||
603 | 135, 135, 135, 135, 135, 135, 134, 134, 134, 134, 134, 134, 134, 134, 134, | ||
604 | 134, 134, 134, 134, 134, 134, 134, 125, 125, 125, 125, 125, 125, 125, 125 | ||
605 | }, | ||
606 | { | ||
607 | 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, | ||
608 | 126, 125, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 123, 123, | ||
609 | 123, 123, 124, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 123, 123 | ||
610 | }, | ||
611 | { | ||
612 | 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, | ||
613 | 124, 124, 124, 124, 122, 121, 121, 120, 120, 119, 119, 118, 117, 116, 116, | ||
614 | 117, 117, 117, 117, 118, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 | ||
615 | }, | ||
616 | { | ||
617 | 119, 120, 120, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 121, | ||
618 | 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, | ||
619 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
620 | }, | ||
621 | { | ||
622 | 121, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
623 | 122, 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, | ||
624 | 124, 124, 124, 123, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
625 | }, | ||
626 | { | ||
627 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
628 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, | ||
629 | 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
630 | }, | ||
631 | { | ||
632 | 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, | ||
633 | 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, | ||
634 | 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 127 | ||
635 | }, | ||
636 | { | ||
637 | 127, 127, 128, 128, 128, 129, 129, 131, 132, 134, 137, 138, 138, 138, 138, | ||
638 | 138, 138, 139, 142, 142, 142, 141, 140, 139, 139, 140, 141, 141, 141, 141, | ||
639 | 141, 140, 140, 139, 138, 137, 137, 136, 136, 135, 135, 135, 134, 133, 133 | ||
640 | }, | ||
641 | { | ||
642 | 134, 134, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 134, 133, | ||
643 | 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 125, | ||
644 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125 | ||
645 | }, | ||
646 | { | ||
647 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 123, 123, 121, 121, | ||
648 | 122, 123, 123, 123, 123, 123, 123, 123, 123, 123, 122, 122, 122, 122, 122, | ||
649 | 122, 122, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124 | ||
650 | }, | ||
651 | { | ||
652 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, 121, 119, 119, 118, | ||
653 | 118, 117, 117, 116, 116, 115, 115, 116, 116, 117, 117, 118, 119, 119, 120, | ||
654 | 120, 120, 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 122, 122 | ||
655 | }, | ||
656 | { | ||
657 | 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 122, 122, 122, 123, 123, | ||
658 | 123, 123, 123, 123, 123, 123, 123, 122, 121, 121, 121, 121, 121, 121, 121, | ||
659 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
660 | }, | ||
661 | { | ||
662 | 121, 121, 121, 121, 122, 122, 123, 123, 124, 125, 125, 125, 125, 125, 125, | ||
663 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 123, 123, 122, 122, | ||
664 | 121, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
665 | }, | ||
666 | { | ||
667 | 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, | ||
668 | 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
669 | 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121 | ||
670 | }, | ||
671 | { | ||
672 | 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 123, | ||
673 | 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, | ||
674 | 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 128, 128, 129, 129, 130 | ||
675 | }, | ||
676 | { | ||
677 | 131, 133, 136, 137, 137, 138, 138, 139, 139, 140, 141, 141, 141, 140, 140, | ||
678 | 139, 139, 139, 140, 140, 140, 140, 140, 140, 140, 139, 138, 137, 137, 136, | ||
679 | 136, 135, 135, 135, 134, 134, 134, 134, 135, 135, 135, 135, 135, 135, 135 | ||
680 | }, | ||
681 | { | ||
682 | 135, 135, 135, 135, 134, 133, 132, 132, 133, 133, 134, 134, 134, 134, 134, | ||
683 | 134, 134, 134, 134, 134, 134, 125, 125, 125, 125, 125, 125, 125, 125, 125, | ||
684 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125 | ||
685 | }, | ||
686 | { | ||
687 | 125, 125, 125, 123, 122, 120, 120, 121, 122, 123, 123, 123, 123, 123, 123, | ||
688 | 123, 122, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 123, 123, 124, | ||
689 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124 | ||
690 | }, | ||
691 | { | ||
692 | 124, 124, 123, 120, 118, 118, 117, 117, 116, 116, 115, 115, 114, 114, 115, | ||
693 | 116, 117, 117, 118, 119, 119, 120, 120, 120, 120, 120, 120, 120, 120, 120, | ||
694 | 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 121, 121 | ||
695 | }, | ||
696 | { | ||
697 | 121, 121, 122, 122, 122, 123, 124, 124, 124, 124, 123, 123, 123, 123, 122, | ||
698 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
699 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 123, 123 | ||
700 | }, | ||
701 | { | ||
702 | 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, | ||
703 | 125, 125, 124, 123, 123, 122, 122, 121, 120, 120, 121, 121, 121, 121, 121, | ||
704 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122 | ||
705 | }, | ||
706 | { | ||
707 | 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, | ||
708 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, | ||
709 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122 | ||
710 | }, | ||
711 | { | ||
712 | 122, 122, 122, 122, 122, 122, 123, 124, 124, 124, 124, 124, 124, 124, 124, | ||
713 | 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 127, 127, 127, 128, 128, | ||
714 | 128, 128, 128, 128, 129, 129, 130, 130, 132, 135, 136, 137, 138, 138, 139 | ||
715 | }, | ||
716 | { | ||
717 | 139, 139, 140, 140, 140, 139, 139, 138, 138, 138, 139, 139, 139, 139, 139, | ||
718 | 139, 139, 139, 138, 137, 136, 136, 135, 135, 134, 134, 134, 134, 134, 134, | ||
719 | 135, 135, 135, 135, 134, 134, 134, 134, 134, 134, 134, 133, 132, 131, 131 | ||
720 | }, | ||
721 | { | ||
722 | 132, 132, 133, 133, 133, 134, 134, 134, 134, 134, 134, 134, 134, 125, 125, | ||
723 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, | ||
724 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 123, 122, 120, 120, 121 | ||
725 | }, | ||
726 | { | ||
727 | 122, 123, 123, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, | ||
728 | 121, 122, 122, 122, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, | ||
729 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, 120, 118, 117, 117, 116 | ||
730 | }, | ||
731 | { | ||
732 | 116, 115, 115, 114, 114, 114, 115, 116, 117, 117, 118, 119, 120, 120, 120, | ||
733 | 120, 121, 121, 121, 120, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, | ||
734 | 122, 122, 122, 122, 122, 121, 121, 121, 121, 122, 122, 122, 123, 124, 124 | ||
735 | }, | ||
736 | { | ||
737 | 124, 124, 123, 123, 123, 123, 122, 121, 121, 121, 121, 121, 121, 121, 121, | ||
738 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
739 | 121, 121, 121, 122, 122, 123, 123, 124, 125, 125, 125, 125, 125, 125, 125 | ||
740 | }, | ||
741 | { | ||
742 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 123, 123, 122, 122, 121, | ||
743 | 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
744 | 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121 | ||
745 | }, | ||
746 | { | ||
747 | 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, | ||
748 | 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, | ||
749 | 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 123, 124 | ||
750 | }, | ||
751 | { | ||
752 | 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, | ||
753 | 126, 126, 127, 127, 127, 128, 128, 128, 128, 128, 128, 129, 129, 130, 130, | ||
754 | 132, 135, 136, 136, 137, 138, 139, 139, 139, 140, 140, 140, 139, 139, 138 | ||
755 | }, | ||
756 | { | ||
757 | 138, 138, 139, 139, 139, 139, 139, 139, 139, 138, 137, 136, 135, 135, 134, | ||
758 | 134, 133, 133, 133, 133, 134, 134, 134, 134, 134, 134, 133, 133, 133, 133, | ||
759 | 133, 133, 133, 133, 132, 131, 131, 132, 132, 133, 132, 132, 133, 133, 133 | ||
760 | }, | ||
761 | { | ||
762 | 133, 133, 133, 133, 133, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, | ||
763 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, | ||
764 | 124, 124, 123, 121, 120, 120, 121, 122, 122, 122, 122, 122, 122, 122, 122 | ||
765 | }, | ||
766 | { | ||
767 | 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 123, 123, 124, 124, | ||
768 | 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, 123, | ||
769 | 123, 122, 118, 116, 116, 115, 115, 114, 114, 114, 114, 114, 115, 116, 117 | ||
770 | }, | ||
771 | { | ||
772 | 117, 117, 118, 120, 121, 121, 121, 121, 121, 121, 121, 121, 120, 120, 120, | ||
773 | 121, 121, 121, 122, 122, 121, 121, 121, 122, 122, 122, 122, 121, 121, 121, | ||
774 | 121, 122, 122, 122, 123, 124, 124, 124, 124, 123, 123, 123, 123, 122, 121 | ||
775 | }, | ||
776 | { | ||
777 | 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, | ||
778 | 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 124, 124, 124, | ||
779 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125 | ||
780 | } | ||
781 | } | ||
782 | }; | ||
783 | |||
784 | int h264_dec_img_m7[16][16] = { | ||
785 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
786 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
787 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
788 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
789 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
790 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
791 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
792 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
793 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
794 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
795 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
796 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
797 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
798 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
799 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
800 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} | ||
801 | }; | ||
diff --git a/baseline/source/huff_dec/ChangeLog.txt b/baseline/source/huff_dec/ChangeLog.txt new file mode 100644 index 0000000..865c263 --- /dev/null +++ b/baseline/source/huff_dec/ChangeLog.txt | |||
@@ -0,0 +1,20 @@ | |||
1 | File: huff_dec.c | ||
2 | Original provenience: David Bourgin (David.Bourgin@ufrima.imag.fr) | ||
3 | |||
4 | 2016-03-23: | ||
5 | - Replaced dynamic memory allocation by a fixed array with 514 entries | ||
6 | - Replaced memset() with loops | ||
7 | - Replaced file I/O by reading and writing to char arrays | ||
8 | - Added huff_dec_main(), huff_dec_init() and huff_dec_return() | ||
9 | - Added huff_dec_ prefix to all functions, types and global variables | ||
10 | - Changed function arguments to ANSI style | ||
11 | - Replaced macro definitions | ||
12 | - Added generic TACLeBench header replacing previous header | ||
13 | - Included license from compress.txt | ||
14 | - Corrected loop bounds in huff_dec_read_header() | ||
15 | |||
16 | 2016-05-24: | ||
17 | - static removed and huff_dec prefix added | ||
18 | |||
19 | 2016-05-25: | ||
20 | - added const to void g++ warning | ||
diff --git a/baseline/source/huff_dec/compress.txt b/baseline/source/huff_dec/compress.txt new file mode 100644 index 0000000..5966bcf --- /dev/null +++ b/baseline/source/huff_dec/compress.txt | |||
@@ -0,0 +1,1107 @@ | |||
1 | +===========================================================+ | ||
2 | | Introduction to the losslessy compression schemes | | ||
3 | | Description of the codec source codes | | ||
4 | +-----------------------------------------------------------+ | ||
5 | | From David Bourgin (E-mail: david.bourgin@ufrima.imag.fr) | | ||
6 | | Date: 22/9/94 | | ||
7 | +===========================================================+ | ||
8 | |||
9 | ------ BE CARE ------ | ||
10 | This file (compress.txt) is copyrighted. (c) David Bourgin - 1994 | ||
11 | Permission to use this documentation for any purpose other than | ||
12 | its incorporation into a commercial product is hereby granted without fee. | ||
13 | Permission to copy and distribute this documentation only for non-commercial use | ||
14 | is also granted without fee, provided, however, that the above copyright notice | ||
15 | appears in all copies, that both that copyright notice and this permission notice appear in supporting documentation. The author makes no representations about | ||
16 | the suitability of this documentation for any purpose. It is provided "as is" | ||
17 | without express or implied warranty. | ||
18 | |||
19 | The source codes you obtain with this file are *NOT* covered by the same | ||
20 | copyright, because you can include them for both commercial and non-commercial | ||
21 | use. See below for more infos. | ||
22 | |||
23 | The source code files (codrl1.c, dcodrl1.c, codrle2.c, dcodrle2.c, codrle3.c, | ||
24 | dcodrle3.c, codrle4.c, dcodrle4.c, codhuff.c, dcodhuff.c) are copyrighted. | ||
25 | They have been uploaded on ftp in turing.imag.fr (129.88.31.7):/pub/compression | ||
26 | on 22/5/94 and have been modified on 22/9/94. | ||
27 | (c) David Bourgin - 1994 | ||
28 | The source codes I provide have no buggs (!) but being that I make them | ||
29 | available for free I have some notes to make. They can change at any time | ||
30 | without notice. I assume no responsability or liability for any errors or | ||
31 | inaccurracies, make no warranty of any kind (express, implied or statutory) | ||
32 | with respect to this publication and expressly disclaim any and all warranties | ||
33 | of merchantability, fitness for particular purposes. Of course, if you have | ||
34 | some problems to use the information presented here, I will try to help you if | ||
35 | I can. | ||
36 | |||
37 | If you include the source codes in your application, here are the conditions: | ||
38 | - You have to put my name in the header of your source file (not in the | ||
39 | excutable program if you don't want) (this item is a must) | ||
40 | - I would like to see your resulting application, if possible (this item is not | ||
41 | a must, because some applications must remain secret) | ||
42 | - Whenever you gain money with your application, I would like to receive a very | ||
43 | little part in order to be encouraged to update my source codes and to develop | ||
44 | new schemes (this item is not a must) | ||
45 | --------------------- | ||
46 | |||
47 | There are several means to compress data. Here, we are only going to deal with | ||
48 | the losslessy schemes. These schemes are also called non-destructive because | ||
49 | you always recover the initial data you had, and this, as soon as you need them. | ||
50 | With losslessy schemes, you won't never lose any informations (except perhaps | ||
51 | when you store or transmit your data but this is another problem...). | ||
52 | |||
53 | In this introduction, we are going to see: | ||
54 | - The RLE scheme (with different possible algorithms) | ||
55 | - The Huffman schemes (dynamical scheme) | ||
56 | - And the LZW scheme | ||
57 | |||
58 | For the novice, a compresser is a program able to read several data (e.g. bytes) | ||
59 | in input and to write several data in output. The data you obtain from the | ||
60 | output (also called compressed data) will - of course - take less space than | ||
61 | the the input data. This is true in most of cases, if the compresser works | ||
62 | and if the type of the data is correct to be compressed with the given scheme. | ||
63 | The codec (coder-decoder) enables you to save space on your hard disk and/or | ||
64 | to save the communication costs because you always store/transmit the compressed | ||
65 | data. You'll use the decompresser as soon as you need to recover your initial | ||
66 | useful data. Note that the compressed data are useless if you have not | ||
67 | the decoder... | ||
68 | |||
69 | You are doubtless asking "How can I reduce the data size without losing some | ||
70 | informations?". It's easy to answer to this question. I'll only take an example. | ||
71 | I'm sure you have heard about the morse. This system established in the 19th | ||
72 | century use a scheme very close to the huffman one. In the morse you encode | ||
73 | the letters to transmit with two kinds of signs. If you encode these two sign | ||
74 | possibilities in one bit, the symbol 'e' is transmitted in a single bit and | ||
75 | the symbols 'y' and 'z' need four bits. Look at the symbols in the text you are | ||
76 | reading, you'll fast understand the compression ratio... | ||
77 | |||
78 | Important: The source codes associated to the algorithms I present are | ||
79 | completely adaptative on what you need to compress. They all use basical | ||
80 | macros on the top of the file. Usually the macros to change are: | ||
81 | |||
82 | - beginning_of_data | ||
83 | - end_of_data | ||
84 | - read_byte | ||
85 | - read_block | ||
86 | - write_byte | ||
87 | - write_block | ||
88 | |||
89 | These allow the programmer to modify only a little part of the header | ||
90 | of the source codes in order to compress as well memory as files. | ||
91 | |||
92 | beginning_of_data(): Macro used to set the program so that the next read_byte() | ||
93 | call will read the first byte to compress. | ||
94 | end_of_data(): Returns a boolean to know whether there is no more bytes to read | ||
95 | from the input stream. Return 0 if there is no more byte to compress, another | ||
96 | non-zero value otherwise. | ||
97 | read_byte(): Returns a byte read from the input stream if available. | ||
98 | write_byte(x): Writes the byte 'x' to the output stream. | ||
99 | read_block(...) and write_block(...): Same use as read_byte and write_byte(x) | ||
100 | but these macros work on blocks of bytes and not only on a single byte. | ||
101 | |||
102 | If you want to compress *from* the memory, before entering in a xxxcoding | ||
103 | procedure ('xxx' is the actual extension to replace with a given codec), you | ||
104 | have to add a pointer set up to the beginning of the zone to compress. Note | ||
105 | that the following pointer 'source_memory_base' is not to add, it is just given | ||
106 | here to specify a name to the address of the memory zone you are going to | ||
107 | encode or decode. That is the same about source_memory_end which can be either | ||
108 | a pointer to create or an existing pointer. | ||
109 | |||
110 | unsigned char *source_memory_base, /* Base of the source memory */ | ||
111 | *source_memory_end, /* Last address to read. | ||
112 | source_memory_end=source_memory_base+source_zone_length-1 */ | ||
113 | *source_ptr; /* Used in the xxxcoding procedure */ | ||
114 | void pre_start() | ||
115 | { source_ptr=source_memory_base; | ||
116 | xxxcoding(); | ||
117 | } | ||
118 | |||
119 | end_of_data() and read_byte() are also to modify to compress *from* memory: | ||
120 | |||
121 | #define end_of_data() (source_ptr>source_memory_end) | ||
122 | #define read_byte() (*(source_ptr++)) | ||
123 | |||
124 | If you want to compress *to* memory, before entering in a xxxcoding procedure | ||
125 | ('xxx' is the actual extension to replace with a given codec), you have to add | ||
126 | a pointer. Note that the pointer 'dest_memory_base' is not to add, it is just | ||
127 | given there to specify the address of the destination memory zone you are | ||
128 | going to encode or decode. | ||
129 | |||
130 | unsigned char *dest_memory_base, /* Base of the destination memory */ | ||
131 | *dest_ptr; /* Used in the xxxcoding procedure */ | ||
132 | void pre_start() | ||
133 | { dest_ptr=dest_memory_base; | ||
134 | xxxcoding(); | ||
135 | } | ||
136 | |||
137 | Of course, you can combine both from and to memory in the pre_start() procedure. | ||
138 | The files dest_file and source_file handled in the main() function are | ||
139 | to remove... | ||
140 | |||
141 | void pre_start() | ||
142 | { source_ptr=source_memory_base; | ||
143 | dest_ptr=dest_memory_base; | ||
144 | xxxcoding(); | ||
145 | } | ||
146 | |||
147 | In fact, to write to memory, the problem is in the write_byte(x) procedure. | ||
148 | This problem exists because your destination zone can either be a static | ||
149 | zone or a dynamically allocated zone. In the two cases, you have to check | ||
150 | if there is no overflow, especially if the coder is not efficient and must | ||
151 | produce more bytes than you reserved in memory. | ||
152 | |||
153 | In the first case, with a *static* zone, write_byte(x) macro should look like | ||
154 | that: | ||
155 | |||
156 | unsigned long int dest_zone_length, | ||
157 | current_size; | ||
158 | |||
159 | #define write_byte(x) { if (current_size==dest_zone_length) \ | ||
160 | exit(1); \ | ||
161 | dest_ptr[current_size++]=(unsigned char)(x); \ | ||
162 | } | ||
163 | |||
164 | In the static version, the pre_start() procedure is to modify as following: | ||
165 | |||
166 | void pre_start() | ||
167 | { source_ptr=source_memory_base; | ||
168 | dest_ptr=dest_memory_base; | ||
169 | dest_zone_length=...; /* Set up to the actual destination zone length */ | ||
170 | current_size=0; /* Number of written bytes */ | ||
171 | xxxcoding(); | ||
172 | } | ||
173 | Otherwise, dest_ptr is a zone created by the malloc instruction and you can try | ||
174 | to resize the allocated zone with the realloc instruction. Note that I increment | ||
175 | the zone one kilo-bytes by one kylo-bytes. You have to add two other variables: | ||
176 | |||
177 | unsigned long int dest_zone_length, | ||
178 | current_size; | ||
179 | |||
180 | #define write_byte(x) { if (current_size==dest_zone_length) \ | ||
181 | { dest_zone_length += 1024; \ | ||
182 | if ((dest_ptr=(unsigned char *)realloc(dest_ptr,dest_zone_length*sizeof(unsigned char)))==NULL) \ | ||
183 | exit(1); /* You can't compress in memory \ | ||
184 | => I exit but *you* can make a routine to swap on disk */ \ | ||
185 | } \ | ||
186 | dest_ptr[current_size++]=(unsigned char)(x); \ | ||
187 | } | ||
188 | |||
189 | With the dynamically allocated version, change the pre_start() routine as following: | ||
190 | |||
191 | void pre_start() | ||
192 | { source_ptr=source_memory_base; | ||
193 | dest_ptr=dest_memory_base; | ||
194 | dest_zone_length=1024; | ||
195 | if ((dest_ptr=(unsigned char *)malloc(dest_zone_length*sizeof(unsigned char)))==NULL) | ||
196 | exit(1); /* You need at least 1 kb in the dynamical memory ! */ | ||
197 | current_size=0; /* Number of written bytes */ | ||
198 | xxxcoding(); | ||
199 | /* Handle the bytes in dest_ptr but don't forget to free these bytes with: | ||
200 | free(dest_ptr); | ||
201 | */ | ||
202 | } | ||
203 | |||
204 | The previously given macros work as: | ||
205 | |||
206 | void demo() /* The file opening, closing and variables | ||
207 | must be set up by the calling procedure */ | ||
208 | { unsigned char byte; | ||
209 | /* And not 'char byte' (!) */ | ||
210 | while (!end_of_data()) | ||
211 | { byte=read_byte(); | ||
212 | printf("Byte read=%c\n",byte); | ||
213 | } | ||
214 | } | ||
215 | |||
216 | You must not change the rest of the program unless you're really sure and | ||
217 | really need to do it! | ||
218 | |||
219 | +==========================================================+ | ||
220 | | The RLE encoding | | ||
221 | +==========================================================+ | ||
222 | |||
223 | RLE is an acronym that stands for Run Length Encoding. You may encounter it | ||
224 | as an other acronym: RLC, Run Length Coding. | ||
225 | |||
226 | The idea in this scheme is to recode your data with regard to the repetition | ||
227 | frames. A frame is one or more bytes that occurr one or several times. | ||
228 | |||
229 | There are several means to encode occurrences. So, you'll have several codecs. | ||
230 | For example, you may have a sequence such as: | ||
231 | 0,0,0,0,0,0,255,255,255,2,3,4,2,3,4,5,8,11 | ||
232 | |||
233 | Some codecs will only deal with the repetitions of '0' and '255' but some other | ||
234 | will deal with the repetitions of '0', '255', and '2,3,4'. | ||
235 | |||
236 | You have to keep in your mind something important based on this example. A codec | ||
237 | won't work on all the data you will try to compress. So, in case of non | ||
238 | existence of sequence repetitions, the codecs based on RLE schemes must not | ||
239 | display a message to say: "Bye bye". Actually, they will try to encode these | ||
240 | non repeted data with a value that says "Sorry, I only make a copy of the inital | ||
241 | input". Of course, a copy of the input data with an header in front of this copy | ||
242 | will make a biggest output data but if you consider the whole data to compress, | ||
243 | the encoding of repeated frames will take less space than the encoding | ||
244 | of non-repeated frames. | ||
245 | |||
246 | All of the algorithms with the name of RLE have the following look with three | ||
247 | or four values: | ||
248 | - Value saying if there's a repetition | ||
249 | - Value saying how many repetitions (or non repetition) | ||
250 | - Value of the length of the frame (useless if you just encode frame | ||
251 | with one byte as maximum length) | ||
252 | - Value of the frame to repeat (or not) | ||
253 | |||
254 | I gave four algorithms to explain what I say. | ||
255 | |||
256 | *** First RLE scheme *** | ||
257 | |||
258 | The first scheme is the simpliest I know, and looks like the one used in MAC | ||
259 | system (MacPackBit) and some image file formats such as Targa, PCX, TIFF, ... | ||
260 | |||
261 | Here, all compressed blocks begin with a byte, named header, which description | ||
262 | is: | ||
263 | |||
264 | Bits 7 6 5 4 3 2 1 0 | ||
265 | Header X X X X X X X X | ||
266 | |||
267 | Bits 7: Compression status (1=Compression applied) | ||
268 | 0 to 6: Number of bytes to handle | ||
269 | |||
270 | So, if the bit 7 is set up to 0, the 0 to 6 bits give the number of bytes | ||
271 | that follow (minus 1, to gain more over compress) and that were not compressed | ||
272 | (native bytes). If the bit 7 is set up to 1, the same 0 to 6 bits give | ||
273 | the number of repetition (minus 2) of the following byte. | ||
274 | |||
275 | As you see, this method only handle frame with one byte. | ||
276 | |||
277 | Additional note: You have 'minus 1' for non-repeated frames because you must | ||
278 | have at least one byte to compress and 'minus 2' for repeated frames because the | ||
279 | repetition must be 2, at least. | ||
280 | |||
281 | Compression scheme: | ||
282 | |||
283 | First byte=Next | ||
284 | /\ | ||
285 | / \ | ||
286 | Count the byte Count the occurrence of NON identical | ||
287 | occurrences bytes (maximum 128 times) | ||
288 | (maximum 129 times) and store them in an array | ||
289 | | | | ||
290 | | | | ||
291 | 1 bit '1' 1 bit '0' | ||
292 | + 7 bits giving + 7 bits giving | ||
293 | the number (-2) the number (-1) | ||
294 | of repetitions of non repetition | ||
295 | + repeated byte + n non repeated bytes | ||
296 | | | | ||
297 | 1xxxxxxx,yyyyyyyy 0xxxxxxx,n bytes | ||
298 | [-----------------] [----------------] | ||
299 | |||
300 | Example: | ||
301 | |||
302 | Sequence of bytes to encode | Coded values | Differences with compression | ||
303 | | | (unit: byte) | ||
304 | ------------------------------------------------------------------------- | ||
305 | 255,15, | 1,255,15, | -1 | ||
306 | 255,255, | 128,255, | 0 | ||
307 | 15,15, | 128,15, | 0 | ||
308 | 255,255,255, | 129,255, | +1 | ||
309 | 15,15,15, | 129,15, | +1 | ||
310 | 255,255,255,255, | 130,255, | +2 | ||
311 | 15,15,15,15 | 130,15 | +2 | ||
312 | |||
313 | See codecs source codes: codrle1.c and dcodrle1.c | ||
314 | |||
315 | *** Second RLE scheme *** | ||
316 | |||
317 | In the second scheme of RLE compression you look for the less frequent byte | ||
318 | in the source to compress and use it as an header for all compressed block. | ||
319 | |||
320 | In the best cases, the occurrence of this byte is zero in the data to compress. | ||
321 | |||
322 | Two possible schemes, firstly with handling frames with only one byte, | ||
323 | secondly with handling frames with one byte *and* more. The first case is | ||
324 | the subject of this current compression scheme, the second is the subject | ||
325 | of next compression scheme. | ||
326 | |||
327 | For the frame of one byte, header byte is written in front of all repetition | ||
328 | with at least 4 bytes. It is then followed by the repetition number minus 1 and | ||
329 | the repeated byte. | ||
330 | Header byte, Occurrence number-1, repeated byte | ||
331 | |||
332 | If a byte don't repeat more than tree times, the three bytes are written without | ||
333 | changes in the destination stream (no header nor length, nor repetition in front | ||
334 | or after theses bytes). | ||
335 | |||
336 | An exception: If the header byte appears in the source one, two, three and up | ||
337 | times, it'll be respectively encoded as following: | ||
338 | - Header byte, 0 | ||
339 | - Header byte, 1 | ||
340 | - Header byte, 2 | ||
341 | - Header byte, Occurrence number-1, Header byte | ||
342 | |||
343 | Example, let's take the previous example. A non frequent byte is zero-ASCII | ||
344 | because it never appears. | ||
345 | |||
346 | Sequence of bytes to encode | Coded values | Differences with compression | ||
347 | | | (unit: byte) | ||
348 | ------------------------------------------------------------------------- | ||
349 | 255,15, | 255,15, | -1 | ||
350 | 255,255, | 255,255, | 0 | ||
351 | 15,15, | 15,15, | 0 | ||
352 | 255,255,255, | 255,255,255, | 0 | ||
353 | 15,15,15, | 15,15,15, | 0 | ||
354 | 255,255,255,255, | 0,3,255, | -1 | ||
355 | 15,15,15,15 | 0,3,15 | -1 | ||
356 | |||
357 | If the header would appear, we would see: | ||
358 | |||
359 | Sequence of bytes to encode | Coded values | Differences with compression | ||
360 | | | (unit: byte) | ||
361 | ------------------------------------------------------------------------- | ||
362 | 0, | 0,0, | +1 | ||
363 | 255, | 255, | 0 | ||
364 | 0,0, | 0,1, | 0 | ||
365 | 15, | 15, | 0 | ||
366 | 0,0,0, | 0,2, | -1 | ||
367 | 255, | 255, | 0 | ||
368 | 0,0,0,0 | 0,3,0 | -1 | ||
369 | |||
370 | See codecs source codes: codrle2.c and dcodrle2.c | ||
371 | |||
372 | *** Third RLE scheme *** | ||
373 | |||
374 | It's the same idea as the second scheme but we can encode frames with | ||
375 | more than one byte. So we have three cases: | ||
376 | |||
377 | - If it was the header byte, whatever is its occurrence, you encode it with: | ||
378 | Header byte,0,number of occurrence-1 | ||
379 | - For frames which (repetition-1)*length>3, encode it as: | ||
380 | Header byte, Number of frame repetition-1, frame length-1,bytes of frame | ||
381 | - If no previous cases were detected, you write them as originally (no header, | ||
382 | nor length, nor repetition in front or after theses bytes). | ||
383 | |||
384 | Example based on the previous examples: | ||
385 | |||
386 | Sequence of bytes to encode | Coded values | Differences with compression | ||
387 | | | (unit: byte) | ||
388 | ----------------------------------------------------------------------------- | ||
389 | 255,15, | 255,15, | 0 | ||
390 | 255,255, | 255,255, | 0 | ||
391 | 15,15, | 15,15, | 0 | ||
392 | 255,255,255, | 255,255,255, | 0 | ||
393 | 15,15,15, | 15,15,15, | 0 | ||
394 | 255,255,255,255, | 255,255,255,255, | 0 | ||
395 | 15,15,15,15, | 15,15,15,15, | 0 | ||
396 | 16,17,18,16,17,18, |16,17,18,16,17,18,| 0 | ||
397 | 255,255,255,255,255, | 0,4,0,255, | -1 | ||
398 | 15,15,15,15,15, | 0,4,0,15, | -1 | ||
399 | 16,17,18,16,17,18,16,17,18,| 0,2,2,16,17,18, | -3 | ||
400 | 16,17,18,19,16,17,18,19 |0,1,3,16,17,18,19 | -1 | ||
401 | |||
402 | If the header (value 0) would be met, we would see: | ||
403 | |||
404 | Sequence of bytes to encode | Coded values | Differences with compression | ||
405 | | | (unit: byte) | ||
406 | -------------------------------------------------------------------------- | ||
407 | 0, | 0,0,0, | +2 | ||
408 | 255, | 255, | 0 | ||
409 | 0,0, | 0,0,1, | +1 | ||
410 | 15, | 15, | 0 | ||
411 | 0,0,0, | 0,0,2, | 0 | ||
412 | 255, | 255, | 0 | ||
413 | 0,0,0,0 | 0,0,3 | -1 | ||
414 | |||
415 | See codecs source codes: codrle3.c and dcodrle3.c | ||
416 | |||
417 | *** Fourth RLE scheme *** | ||
418 | |||
419 | This last RLE algorithm better handles repetitions of any kind (one byte | ||
420 | and more) and non repetitions, including few non repetitions, and does not | ||
421 | read the source by twice as RLE type 3. | ||
422 | |||
423 | Compression scheme is: | ||
424 | |||
425 | First byte=Next byte? | ||
426 | /\ | ||
427 | Yes / \ No | ||
428 | / \ | ||
429 | 1 bit '0' 1 bit '1' | ||
430 | / \ | ||
431 | / \ | ||
432 | Count the Motif of several | ||
433 | occurrences repeated byte? | ||
434 | of 1 repeated ( 65 bytes repeated | ||
435 | byte (maximum 257 times maxi) | ||
436 | 16449 times) /\ | ||
437 | /\ / \ | ||
438 | / \ / \ | ||
439 | / \ / \ | ||
440 | / \ / \ | ||
441 | 1 bit '0' 1 bit '1' 1 bit '0' 1 bit '1' | ||
442 | + 6 bits + 14 bits + 6 bits of | | ||
443 | giving the giving the the length Number of non repetition | ||
444 | length (-2) length (-66) of the motif (maximum 8224) | ||
445 | of the of the + 8 bits of /\ | ||
446 | repeated byte repeated byte the number (-2) < 33 / \ > 32 | ||
447 | + repeated byte + repeated byte of repetition / \ | ||
448 | | | + bytes of the 1 bit '0' 1 bit '1' | ||
449 | | | motif + 5 bits of + 13 bits | ||
450 | | | | the numer (-1) of the | ||
451 | | | | of non number (-33) | ||
452 | | | | repetition of repetition | ||
453 | | | | + non + non | ||
454 | | | | repeated repeated | ||
455 | | | | bytes bytes | ||
456 | | | | | | | ||
457 | | | | | 111xxxxx,xxxxxxxx,n bytes | ||
458 | | | | | [-------------------------] | ||
459 | | | | | | ||
460 | | | | 110xxxxx,n bytes | ||
461 | | | | [----------------] | ||
462 | | | | | ||
463 | | | 10xxxxxx,yyyyyyyy,n bytes | ||
464 | | | [-------------------------] | ||
465 | | | | ||
466 | | 01xxxxxx,xxxxxxxx,1 byte | ||
467 | | [------------------------] | ||
468 | | | ||
469 | 00xxxxxx,1 byte | ||
470 | [---------------] | ||
471 | |||
472 | Example, same as previously: | ||
473 | |||
474 | Sequence of bytes to encode | Coded values | Differences with compression | ||
475 | | | (unit: byte) | ||
476 | -------------------------------------------------------------------------- | ||
477 | 255,15 | 11000001b,255,15, | +1 | ||
478 | 255,255 | 00000000b,255, | 0 | ||
479 | 15,15 | 00000000b,15, | 0 | ||
480 | 255,255,255 | 00000001b,255, | -1 | ||
481 | 15,15,15 | 00000001b,15, | -1 | ||
482 | 255,255,255,255 | 00000010b,255, | -2 | ||
483 | 15,15,15,15 | 00000010b,15, | -2 | ||
484 | 16,17,18,16,17,18 |10000001b,0,16,17,18,| -1 | ||
485 | 255,255,255,255,255 | 00000011b,255, | -3 | ||
486 | 15,15,15,15,15 | 00000011b,15, | -3 | ||
487 | 16,17,18,16,17,18,16,17,18 | 10000001b,16,17,18, | -4 | ||
488 | 16,17,18,19,16,17,18,19 |10000010b,16,17,18,19| -2 | ||
489 | |||
490 | +==========================================================+ | ||
491 | | The Huffman encoding | | ||
492 | +==========================================================+ | ||
493 | |||
494 | This method comes from the searcher who established the algorithm in 1952. | ||
495 | This method allows both a dynamic and static statistic schemes. A statistic | ||
496 | scheme works on the data occurrences. It is not as with RLE where you had | ||
497 | a consideration of the current occurrence of a frame but rather a consideration | ||
498 | of the global occurrences of each data in the input stream. In this last case, | ||
499 | frames can be any kinds of sequences you want. On the other hand, Huffman | ||
500 | static encoding appears in some compressers such as ARJ on PCs. This enforces | ||
501 | the encoder to consider every statistic as the same for all the data you have. | ||
502 | Of course, the results are not as good as if it were a dynamic encoding. | ||
503 | The static encoding is faster than the dynamic encoding but the dynamic encoding | ||
504 | will be adapted to the statistic of the bytes of the input stream and will | ||
505 | of course become more efficient by producing shortest output. | ||
506 | |||
507 | The main idea in Huffman encoding is to re-code every byte with regard to its | ||
508 | occurrence. The more frequent bytes in the data to compress will be encoded with | ||
509 | less than 8 bits and the others could need 8 bits see even more to be encoded. | ||
510 | You immediately see that the codes associated to the different bytes won't have | ||
511 | identical size. The Huffman method will actually require that the binary codes | ||
512 | have not a fixed size. We speak then about variable length codes. | ||
513 | |||
514 | The dynamical Huffman scheme needs the binary trees for the encoding. This | ||
515 | enables you to obtain the best codes, adapted to the source data. | ||
516 | The demonstration won't be given there. To help the neophyt, I will just explain | ||
517 | what is a binary tree. | ||
518 | |||
519 | A binary tree is special fashion to represent the data. A binary tree is | ||
520 | a structure with an associated value with two pointers. The term of binary has | ||
521 | been given because of the presence of two pointers. Because of some conventions, | ||
522 | one of the pointer is called left pointer and the second pointer is called right | ||
523 | pointer. Here is a visual representation of a binary tree. | ||
524 | |||
525 | Value | ||
526 | / \ | ||
527 | / \ | ||
528 | Value Value | ||
529 | / \ / \ | ||
530 | ... ... ... ... | ||
531 | |||
532 | One problem with a binary encoding is a prefix problem. A prefix is the first | ||
533 | part of the representation of a value, e.g. "h" and "he" are prefixes of "hello" | ||
534 | but not "el". To understand the problem, let's code the letters "A", "B", "C", | ||
535 | "D", and "E" respectively as 00b, 01b, 10b, 11b, and 100b. When you read | ||
536 | the binary sequence 00100100b, you are unable to say if this comes from "ACBA" | ||
537 | or "AEE". To avoid such situations, the codes must have a prefix property. | ||
538 | And the letter "E" mustn't begin with the sequence of an other code. With "A", | ||
539 | "B", "C", "D", and "E" respectively affected with 1b, 01b, 001b, 0001b, and | ||
540 | 0000b, the sequence 1001011b will only be decoded as "ACBA". | ||
541 | |||
542 | 1 0 | ||
543 | <- /\ -> | ||
544 | / \ | ||
545 | "A" /\ | ||
546 | "B" \ | ||
547 | /\ | ||
548 | "C" \ | ||
549 | /\ | ||
550 | "D" "E" | ||
551 | |||
552 | As you see, with this tree, an encoding will have the prefix property | ||
553 | if the bytes are at the end of each "branch" and you have no byte at the "node". | ||
554 | You also see that if you try to reach a character by the right pointer you add | ||
555 | a bit set to 0 and by the left pointer, you add a bit set to 1 to the current | ||
556 | code. The previous *bad* encoding provide the following bad tree: | ||
557 | |||
558 | /\ | ||
559 | / \ | ||
560 | / \ | ||
561 | /\ /\ | ||
562 | / \ "B" "A" | ||
563 | / \ | ||
564 | "D" "C"\ | ||
565 | / \ | ||
566 | "E" | ||
567 | |||
568 | You see here that the coder shouldn't put the "C" at a node... | ||
569 | |||
570 | As you see, the largest binary code are those with the longest distance | ||
571 | from the top of the tree. Finally, the more frequent bytes will be the highest | ||
572 | in the tree in order you have the shortest encoding and the less frequent bytes | ||
573 | will be the lowest in the tree. | ||
574 | |||
575 | From an algorithmic point of view, you make a list of each byte you encountered | ||
576 | in the stream to compress. This list will always be sorted. The zero-occurrence | ||
577 | bytes are removed from this list. You take the two bytes with the smallest | ||
578 | occurrences in the list. Whenever two bytes have the same "weight", you take two | ||
579 | of them regardless to their ASCII value. You join them in a node. This node will | ||
580 | have a fictive byte value (256 will be a good one!) and its weight will be | ||
581 | the sum of the two joined bytes. You replace then the two joined bytes with | ||
582 | the fictive byte. And you continue so until you have one byte (fictive or not) | ||
583 | in the list. Of course, this process will produce the shortest codes if the list | ||
584 | remains sorted. I will not explain with arcana hard maths why the result | ||
585 | is a set of the shortest bytes... | ||
586 | |||
587 | Important: I use as convention that the right sub-trees have a weight greater | ||
588 | or equal to the weight of the left sub-trees. | ||
589 | |||
590 | Example: Let's take a file to compress where we notice the following | ||
591 | occurrences: | ||
592 | |||
593 | Listed bytes | Frequences (Weight) | ||
594 | ---------------------------------- | ||
595 | 0 | 338 | ||
596 | 255 | 300 | ||
597 | 31 | 280 | ||
598 | 77 | 24 | ||
599 | 115 | 21 | ||
600 | 83 | 20 | ||
601 | 222 | 5 | ||
602 | |||
603 | We will begin by joining the bytes 83 and 222. This will produce a fictive node | ||
604 | 1 with a weight of 20+5=25. | ||
605 | |||
606 | (Fictive 1,25) | ||
607 | /\ | ||
608 | / \ | ||
609 | (222,5) (83,20) | ||
610 | |||
611 | Listed bytes | Frequences (Weight) | ||
612 | ---------------------------------- | ||
613 | 0 | 338 | ||
614 | 255 | 300 | ||
615 | 31 | 280 | ||
616 | Fictive 1 | 25 | ||
617 | 77 | 24 | ||
618 | 115 | 21 | ||
619 | |||
620 | Note that the list is sorted... The smallest values in the frequences are 21 and | ||
621 | 24. That is why we will take the bytes 77 and 115 to build the fictive node 2. | ||
622 | |||
623 | (Fictive 2,45) | ||
624 | /\ | ||
625 | / \ | ||
626 | (115,21) (77,25) | ||
627 | |||
628 | Listed bytes | Frequences (Weight) | ||
629 | ---------------------------------- | ||
630 | 0 | 338 | ||
631 | 255 | 300 | ||
632 | 31 | 280 | ||
633 | Fictive 2 | 45 | ||
634 | Fictive 1 | 25 | ||
635 | |||
636 | The nodes with smallest weights are the fictive 1 and 2 nodes. These are joined | ||
637 | to build the fictive node 3 whose weight is 40+25=70. | ||
638 | |||
639 | (Fictive 3,70) | ||
640 | / \ | ||
641 | / \ | ||
642 | / \ | ||
643 | /\ / \ | ||
644 | / \ / \ | ||
645 | (222,5) (83,20) (115,21) (77,25) | ||
646 | |||
647 | Listed bytes | Frequences (Weight) | ||
648 | ---------------------------------- | ||
649 | 0 | 338 | ||
650 | 255 | 300 | ||
651 | 31 | 280 | ||
652 | Fictive 3 | 70 | ||
653 | |||
654 | The fictive node 3 is linked to the byte 31. Total weight: 280+70=350. | ||
655 | |||
656 | (Fictive 4,350) | ||
657 | / \ | ||
658 | / \ | ||
659 | / \ | ||
660 | / \ (31,280) | ||
661 | / \ | ||
662 | / \ | ||
663 | /\ / \ | ||
664 | / \ / \ | ||
665 | (222,5) (83,20) (115,21) (77,25) | ||
666 | |||
667 | Listed bytes | Frequences (Weight) | ||
668 | ---------------------------------- | ||
669 | Fictive 4 | 350 | ||
670 | 0 | 338 | ||
671 | 255 | 300 | ||
672 | |||
673 | As you see, being that we sort the list, the fictive node 4 has become the first | ||
674 | of the list. We join the bytes 0 and 255 in a same fictive node, the number 5 | ||
675 | whose weight is 338+300=638. | ||
676 | |||
677 | (Fictive 5,638) | ||
678 | /\ | ||
679 | / \ | ||
680 | (255,300) (0,338) | ||
681 | |||
682 | Listed bytes | Frequences (Weight) | ||
683 | ---------------------------------- | ||
684 | Fictive 5 | 638 | ||
685 | Fictive 4 | 350 | ||
686 | |||
687 | The fictive nodes 4 and 5 are finally joined. Final weight: 638+350=998 bytes. | ||
688 | It is actually the total byte number in the initial file: 338+300+24+21+20+5. | ||
689 | |||
690 | (Tree,998) | ||
691 | 1 / \ 0 | ||
692 | <- / \ -> | ||
693 | / \ | ||
694 | / \ | ||
695 | / \ | ||
696 | / \ / \ | ||
697 | / \ / \ | ||
698 | / \ / \ | ||
699 | / \ (31,280) (255,300) (0,338) | ||
700 | / \ | ||
701 | / \ | ||
702 | /\ / \ | ||
703 | / \ / \ | ||
704 | (222,5) (83,20) (115,21) (77,25) | ||
705 | |||
706 | Bytes | Huffman codes | Frequences | Binary length*Frequence | ||
707 | ------------------------------------------------------------ | ||
708 | 0 | 00b | 338 | 676 | ||
709 | 255 | 01b | 300 | 600 | ||
710 | 31 | 10b | 280 | 560 | ||
711 | 77 | 1101b | 24 | 96 | ||
712 | 115 | 1100b | 21 | 84 | ||
713 | 83 | 1110b | 20 | 80 | ||
714 | 222 | 1111b | 5 | 20 | ||
715 | |||
716 | Results: Original file size: (338+300+280+24+21+20+5)*8=7904 bits (=998 bytes) | ||
717 | versus 676+600+560+96+84+80+20=2116 bits, i.e. 2116/8=265 bytes. | ||
718 | |||
719 | Now you know how to code an input stream. The last problem is to decode all this | ||
720 | stuff. Actually, when you meet a binary sequence you can't say whether it comes | ||
721 | from such byte list or such other one. Furthermore, if you change the occurrence | ||
722 | of one or two bytes, you won't obtain the same resulting binary tree. Try for | ||
723 | example to encode the previous list but with the following occurrences: | ||
724 | |||
725 | Listed bytes | Frequences (Weight) | ||
726 | ---------------------------------- | ||
727 | 255 | 418 | ||
728 | 0 | 300 | ||
729 | 31 | 100 | ||
730 | 77 | 24 | ||
731 | 115 | 21 | ||
732 | 83 | 20 | ||
733 | 222 | 5 | ||
734 | |||
735 | As you can observe it, the resulting binary tree is quite different, we had yet | ||
736 | the same initial bytes. To not be in such a situation we will put an header | ||
737 | in front of all data. I can't comment longly this header but I can say | ||
738 | I minimize it as much as I could. The header is divided into two parts. | ||
739 | The first part of this header looks closely to a boolean table (coded more or | ||
740 | less in binary to save space) and the second part provide to the decoder | ||
741 | the binary code associated to each byte encountered in the original input | ||
742 | stream. | ||
743 | |||
744 | Here is a summary of the header: | ||
745 | |||
746 | First part | ||
747 | ---------- | ||
748 | First bit | ||
749 | / \ | ||
750 | 1 / \ 0 | ||
751 | / \ | ||
752 | 256 bits set to 0 or 1 5 bits for the number n (minus 1) | ||
753 | depending whether the of bytes encountered | ||
754 | corresponding byte was in the file to compres | ||
755 | in the file to compress | | ||
756 | (=> n bits set to 1, \ / | ||
757 | n>32) n values of 8-bits (n<=32) | ||
758 | \ / | ||
759 | \ / | ||
760 | \ / | ||
761 | Second part | | ||
762 | ----------- | | ||
763 | | | ||
764 | +------------->| | ||
765 | (n+1) times | | | ||
766 | (n bytes of | First bit? | ||
767 | the values | / \ | ||
768 | encountered | 1 / \ 0 | ||
769 | in the | / \ | ||
770 | source file | 8 bits of 5 bits of the | ||
771 | + the code | the length length (-1) | ||
772 | of a | (-1) of the of the following | ||
773 | fictive | following binary | ||
774 | byte | binary code code | ||
775 | to stop the | (length>32) (length<=32) | ||
776 | decoding. | \ / | ||
777 | The fictive | \ / | ||
778 | is set to | \ / | ||
779 | 256 in the | | | ||
780 | Huffman | binary code | ||
781 | -tree of | | | ||
782 | encoding) +--------------| | ||
783 | | | ||
784 | Binary encoding of the source file | ||
785 | | | ||
786 | Code of end of encoding | ||
787 | | | ||
788 | |||
789 | |||
790 | With my codecs I can handle binary sequences with a length of 256 bits. | ||
791 | This correspond to encode all the input stream from one byte to infinite length. | ||
792 | In fact if a byte had a range from 0 to 257 instead of 0 to 255, I would have a | ||
793 | bug with my codecs with an input stream of at least 370,959,230,771,131,880,927, | ||
794 | 453,318,055,001,997,489,772,178,180,790,105 bytes !!! | ||
795 | |||
796 | Where come this explosive number? In fact, to have a severe bug, I must have | ||
797 | a completely unbalanced tree: | ||
798 | |||
799 | Tree | ||
800 | /\ | ||
801 | \ | ||
802 | /\ | ||
803 | \ | ||
804 | /\ | ||
805 | \ | ||
806 | ... | ||
807 | /\ | ||
808 | \ | ||
809 | /\ | ||
810 | |||
811 | Let's take the following example: | ||
812 | |||
813 | Listed bytes | Frequences (Weight) | ||
814 | ---------------------------------- | ||
815 | 32 | 5 | ||
816 | 101 | 3 | ||
817 | 97 | 2 | ||
818 | 100 | 1 | ||
819 | 115 | 1 | ||
820 | |||
821 | This produces the following unbalanced tree: | ||
822 | |||
823 | Tree | ||
824 | /\ | ||
825 | (32,5) \ | ||
826 | /\ | ||
827 | (101,3) \ | ||
828 | /\ | ||
829 | (97,2) \ | ||
830 | /\ | ||
831 | (115,1) (100,1) | ||
832 | |||
833 | Let's speak about a mathematical series: The Fibonacci series. It is defined as | ||
834 | following: | ||
835 | |||
836 | { Fib(0)=0 | ||
837 | { Fib(1)=1 | ||
838 | { Fib(n)=Fib(n-2)+Fib(n-1) | ||
839 | |||
840 | Fib(0)=0, Fib(1)=1, Fib(2)=1, Fib(3)=2, Fib(4)=3, Fib(5)=5, Fib(6)=8, Fib(7)=13, | ||
841 | etc. | ||
842 | |||
843 | But 1, 1, 2, 3, 5, 8 are the occurrences of our list! We can actually | ||
844 | demonstrate that to have an unbalanced tree, we have to take a list with | ||
845 | an occurrence based on the Fibonacci series (these values are minimal). | ||
846 | If the data to compress have m different bytes, when the tree is unbalanced, | ||
847 | the longest code need m-1 bits. In our little previous example where m=5, | ||
848 | the longest codes are associated to the bytes 100 and 115, respectively coded | ||
849 | 0001b and 0000b. We can also say that to have an unbalanced tree we must have | ||
850 | at least 5+3+2+1+1=12=Fib(7)-1. To conclude about all that, with a coder that | ||
851 | uses m-1 bits, you must never have an input stream size over than Fib(m+2)-1, | ||
852 | otherwise, there could be a bug in the output stream. Of course, with my codecs | ||
853 | there will never be a bug because I can deal with binary code sizes of 1 to 256 | ||
854 | bits. Some encoder could use that with m=31, Fib(31+2)-1=3,524,577 and m=32, | ||
855 | Fib(32+2)-1=5,702,886. And an encoder that uses unisgned integer of 32 bits | ||
856 | shouldn't have a bug until about 4 Gb... | ||
857 | |||
858 | +==========================================================+ | ||
859 | | The LZW encoding | | ||
860 | +==========================================================+ | ||
861 | |||
862 | The LZW scheme is due to three searchers, i.e. Abraham Lempel and Jacob Ziv | ||
863 | worked on it in 1977, and Terry Welch achieved this scheme in 1984. | ||
864 | |||
865 | LZW is patented in USA. This patent, number 4,558,302, is covered by Unisys | ||
866 | Corporation. You can usually write (without fees) software codecs which use | ||
867 | the LZW scheme but hardware companies can't do so. You may get a limited | ||
868 | licence by writting to: | ||
869 | Welch Licencing Department | ||
870 | Office of the General Counsel | ||
871 | M/S C1SW19 | ||
872 | Unisys corporation | ||
873 | Blue Bell | ||
874 | Pennsylvania, 19424 (USA) | ||
875 | |||
876 | If you're occidental, you are surely using an LZW encoding every time you are | ||
877 | speaking, especially when you use a dictionary. Let's consider, for example, | ||
878 | the word "Cirrus". As you read a dictionary, you begin with "A", "Aa", and so | ||
879 | on. But a computer has no experience and it must suppose that some words | ||
880 | already exist. That is why with "Cirrus", it supposes that "C", "Ci", "Cir", | ||
881 | "Cirr", "Cirru", and "Cirrus" exist. Of course, being that this is a computer, | ||
882 | all these words are encoded as index numbers. Every time you go forward, you add | ||
883 | a new number associated to the new word. Being that a computer is byte-based | ||
884 | and not alphabetic-based, you have an initial dictionary of 256 letters instead | ||
885 | of our 26 ('A' to 'Z') letters. | ||
886 | |||
887 | Example: Let's code "XYXYZ". First step, "X" is recognized in the initial | ||
888 | dictionary of 256 letters as the 89th. Second step, "Y" is read. Does "XY" | ||
889 | exist? No, then "XY" is stored as the word 256. You write in the output stream | ||
890 | the ASCII of "X", i.e. 88. Now "YX" is tested as not referenced in the current | ||
891 | dictionary. It is stored as the word 257. You write now in the output stream 89 | ||
892 | (ASCII of "Y"). "XY" is now met. But now "XY" is known as the reference 256. | ||
893 | Being that "XY" exists, you test the sequence with one more letter, i.e. "XYZ". | ||
894 | This last word is not referenced in the current dictionary. You write then the | ||
895 | value 256. Finally, you reach the last letter ("Z"). You add "YZ" as the | ||
896 | reference 258 but it is the last letter. That is why you just write the value | ||
897 | 90 (ASCII of "Z"). | ||
898 | |||
899 | Another encoding sample with the string "ABADABCCCABCEABCECCA". | ||
900 | |||
901 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
902 | |Step|Input|Dictionary test|Prefix|New symbol|Dictionary |Output| | ||
903 | | | | | | |D0=ASCII with 256 letters| | | ||
904 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
905 | | 1 | "A" |"A" in D0 | "A" | "B" | D1=D0 | 65 | | ||
906 | | | "B" |"AB" not in D0 | | | and "AB"=256 | | | ||
907 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
908 | | 2 | "A" |"B" in D1 | "B" | "A" | D2=D1 | 66 | | ||
909 | | | |"BA" not in D1 | | | and "BA"=257 | | | ||
910 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
911 | | 3 | "D" |"A" in D2 | "A" | "D" | D3=D2 | 65 | | ||
912 | | | |"AD" not in D2 | | | and "AD"=258 | | | ||
913 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
914 | | 4 | "A" |"D" in D3 | "D" | "A" | D4=D3 | 68 | | ||
915 | | | |"DA" not in D3 | | | and "DA"=259 | | | ||
916 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
917 | | 5 | "B" |"A" in D4 | "AB" | "C" | D5=D4 | 256 | | ||
918 | | | "C" |"AB" in D4 | | | and "ABC"=260 | | | ||
919 | | | |"ABC" not in D4| | | | | | ||
920 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
921 | | 6 | "C" |"C" in D5 | "C" | "C" | D6=D5 | 67 | | ||
922 | | | |"CC" not in D5 | | | and "CC"=261 | | | ||
923 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
924 | | 7 | "C" |"C" in D6 | "CC" | "A" | D7=D6 | 261 | | ||
925 | | | "A" |"CC" in D6 | | | and "CCA"=262 | | | ||
926 | | | |"CCA" not in D6| | | | | | ||
927 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
928 | | 8 | "B" |"A" in D7 | "ABC"| "E" | D8=D7 | 260 | | ||
929 | | | "C" |"AB" in D7 | | | and "ABCE"=263 | | | ||
930 | | | "E" |"ABC" in D7 | | | | | | ||
931 | | | <"ABCE" not in D7| | | | | | ||
932 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
933 | | 9 | "A" |"E" in D8 | "E" | "A" | D9=D8 | 69 | | ||
934 | | | |"EA" not in D8 | | | and "EA"=264 | | | ||
935 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
936 | | 10 | "B" |"A" in D9 |"ABCE"| "C" | D10=D9 | 263 | | ||
937 | | | "C" |"AB" in D9 | | | and "ABCEC"=265 | | | ||
938 | | | "E" |"ABC" in D9 | | | | | | ||
939 | | | "C" |"ABCE" in D9 | | | | | | ||
940 | | | <"ABCEC" not in D9> | | | | | ||
941 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
942 | | 11 | "C" |"C" in D10 | "CCA"| | | 262 | | ||
943 | | | "A" |"CC" in D10 | | | | | | ||
944 | | | <"CCA" not in D10| | | | | | ||
945 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
946 | |||
947 | You will notice a problem with the above output: How to write a code of 256 | ||
948 | (for example) on 8 bits? It's simple to solve this problem. You just say that | ||
949 | the encoding starts with 9 bits and as you reach the 512th word, you use a | ||
950 | 10-bits encoding. With 1024 words, you use 11 bits; with 2048 words, 12 bits; | ||
951 | and so on with all numbers of 2^n (n is positive). To better synchronize | ||
952 | the coder and the decoder with all that, most of implementations use two | ||
953 | additional references. The word 256 is a code of reinitialisation (the codec | ||
954 | must reinitialize completely the current dictionary to its 256 initial letters) | ||
955 | and the word 257 is a code of end of information (no more data to read). | ||
956 | Of course, you start your first new word as the code number 258. | ||
957 | |||
958 | You can also do so as in the GIF file format and start with an initial | ||
959 | dictionary of 18 words to code an input stream with only letters coded on 4 bits | ||
960 | (you start with codes of 5 bits in the output stream!). The 18 initial words | ||
961 | are: 0 to 15 (initial letters), 16 (reinit the dictionary), and 17 (end of | ||
962 | information). First new word has code 18, second word, code 19, ... | ||
963 | |||
964 | Important: You can consider that your dictionary is limited to 4096 different | ||
965 | words (as in GIF and TIFF file formats). But if your dictionary is full, you | ||
966 | can decide to send old codes *without* reinitializing the dictionary. All the | ||
967 | decoders must be compliant with this. This enables you to consider that it is | ||
968 | not efficient to reinitialize the full dictionary. Instead of this, you don't | ||
969 | change the dictionary and you send/receive (depending if it's a coder or a | ||
970 | decoder) existing codes in the full dictionary. | ||
971 | |||
972 | My codecs are able to deal as well with most of initial size of data in the | ||
973 | initial dictionary as with full dictionary. | ||
974 | |||
975 | Let's see how to decode an LZW encoding. We saw with true dynamical Huffman | ||
976 | scheme that you needed an header in the encoding codes. Any header is useless | ||
977 | in LZW scheme. When two successive bytes are read, the first must exist in the | ||
978 | dictionary. This code can be immediately decoded and written in the output | ||
979 | stream. If the second code is equal or less than the word number in the current | ||
980 | dictionary, this code is decoded as the first one. At the opposite, if the | ||
981 | second code is equal to the word number in dictionary plus one, this means you | ||
982 | have to write a word composed with the word (the sentence, not the code number) | ||
983 | of the last code plus the first character of the last code. In between, you make | ||
984 | appear a new word. This new word is the one you just sent to the output stream, | ||
985 | it means composed by all the letters of the word associated to the first code | ||
986 | and the first letter of the word of the second code. You continue the processing | ||
987 | with the second and third codes read in the input stream (of codes)... | ||
988 | |||
989 | Example: Let's decode the previous encoding given a bit more above. | ||
990 | |||
991 | +------+-------+----------------+----------+------------------+--------+ | ||
992 | | Step | Input | Code to decode | New code | Dictionary | Output | | ||
993 | +------+-------+----------------+----------+------------------+--------+ | ||
994 | | 1 | 65 | 65 | 66 | 65,66=256 | "A" | | ||
995 | | | 66 | | | | | | ||
996 | +------+-------+----------------+----------+------------------+--------+ | ||
997 | | 2 | 65 | 66 | 65 | 66,65=257 | "B" | | ||
998 | +------+-------+----------------+----------+------------------+--------+ | ||
999 | | 3 | 68 | 65 | 68 | 65,68=258 | "A" | | ||
1000 | +------+-------+----------------+----------+------------------+--------+ | ||
1001 | | 4 | 256 | 68 | 256 | 68,65=259 | "D" | | ||
1002 | +------+-------+----------------+----------+------------------+--------+ | ||
1003 | | 5 | 67 | 256 | 67 | 65,66,67=260 | "AB" | | ||
1004 | +------+-------+----------------+----------+------------------+--------+ | ||
1005 | | 6 | 261 | 67 | 261 | 67,67=261 | "C" | | ||
1006 | +------+-------+----------------+----------+------------------+--------+ | ||
1007 | | 7 | 260 | 261 | 260 | 67,67,65=262 | "CC" | | ||
1008 | +------+-------+----------------+----------+------------------+--------+ | ||
1009 | | 8 | 69 | 260 | 69 | 65,66,67,69=263 | "ABC" | | ||
1010 | +------+-------+----------------+----------+------------------+--------+ | ||
1011 | | 9 | 263 | 69 | 263 | 69,65=264 | "E" | | ||
1012 | +------+-------+----------------+----------+------------------+--------+ | ||
1013 | | 10 | 262 | 263 | 262 |65,66,67,69,67=256| "ABCE" | | ||
1014 | +------+-------+----------------+----------+------------------+--------+ | ||
1015 | | 11 | | 262 | | | "CCA" | | ||
1016 | +------+-------+----------------+----------+------------------+--------+ | ||
1017 | |||
1018 | Summary: The step 4 is an explicit example. The code to decode is 68 ("D" in | ||
1019 | ASCII) and the new code is 256. The new word to add to the dictionary is the | ||
1020 | letters of the first word plus the the first letter of the second code (code | ||
1021 | 256), i.e. 65 ("A" in ASCII) plus 68 ("D"). So the new word has the letters 68 | ||
1022 | and 65 ("AD"). | ||
1023 | |||
1024 | The step 6 is quite special. The first code to decode is referenced but the | ||
1025 | second new code is not referenced being that the dictionary is limited to 260 | ||
1026 | referenced words. We have to make it as the second previously given case, it | ||
1027 | means you must take the word to decode plus its first letter, i.e. "C"+"C"="CC". | ||
1028 | Be care, if any encountered code is *upper* than the dictionary size plus 1, it | ||
1029 | means you have a problem in your data and/or your codecs are...bad! | ||
1030 | |||
1031 | Tricks to improve LZW encoding (but it becomes a non-standard encoding): | ||
1032 | - To limit the dictionary to an high amount of words (4096 words maximum enable | ||
1033 | you to encode a stream of a maximmum 7,370,880 letters with the same dictionary) | ||
1034 | - To use a dictionary of less than 258 if possible (example, with 16 color | ||
1035 | pictures, you start with a dictionary of 18 words) | ||
1036 | - To not reinitialize a dictionary when it is full | ||
1037 | - To reinitialize a dictionary with the most frequent of the previous dictionary | ||
1038 | - To use the codes from (current dictionary size+1) to (maximum dictionary size) | ||
1039 | because these codes are not used in the standard LZW scheme. | ||
1040 | Such a compression scheme has been used (successfully) by Robin Watts | ||
1041 | <ct93008@ox.ac.uk>. | ||
1042 | |||
1043 | +==========================================================+ | ||
1044 | | Summary | | ||
1045 | +==========================================================+ | ||
1046 | |||
1047 | ------------------------------------------------- | ||
1048 | RLE type 1: | ||
1049 | Fastest compression. Good ratio for general purpose. | ||
1050 | Doesn't need to read the data by twice. | ||
1051 | Decoding fast. | ||
1052 | ------------------------------------------------- | ||
1053 | RLE type 2: | ||
1054 | Fast compression. Very good ratio in general (even for general purposes). | ||
1055 | Need to read the data by twice. | ||
1056 | Decoding fast. | ||
1057 | ------------------------------------------------- | ||
1058 | RLE type 3: | ||
1059 | Slowest compression. Good ratio on image file,quite middle for general purposes. | ||
1060 | Need to read the data by twice. | ||
1061 | Change line: | ||
1062 | #define MAX_RASTER_SIZE 256 | ||
1063 | into: | ||
1064 | #define MAX_RASTER_SIZE 16 | ||
1065 | to speed up the encoding (but the result decreases in ratio). If you compress | ||
1066 | with memory buffers, do not modify this line... | ||
1067 | Decoding fast. | ||
1068 | ------------------------------------------------- | ||
1069 | RLE type 4: | ||
1070 | Slow compression. Good ratio on image file, middle in general purposes. | ||
1071 | Change line: | ||
1072 | #define MAX_RASTER_SIZE 66 | ||
1073 | into: | ||
1074 | #define MAX_RASTER_SIZE 16 | ||
1075 | to speed up the encoding (but the result decreases in ratio). If you compress | ||
1076 | with memory buffers, do not modify this line... | ||
1077 | Decoding fast. | ||
1078 | ------------------------------------------------- | ||
1079 | Huffman: | ||
1080 | Fast compression. Good ratio on text files and similar, middle for general | ||
1081 | purposes. Interesting method to use to compress a buffer already compressed by | ||
1082 | RLE types 1 or 2 methods... | ||
1083 | Decoding fast. | ||
1084 | ------------------------------------------------- | ||
1085 | LZW: | ||
1086 | Quite fast compression. Good, see even very good ratio, for general purposes. | ||
1087 | Bigger the data are, better the compression ratio is. | ||
1088 | Decoding quite fast. | ||
1089 | ------------------------------------------------- | ||
1090 | |||
1091 | The source codes work on all kinds of computers with a C compiler. | ||
1092 | With the compiler, optimize the speed run option instead of space option. | ||
1093 | With UNIX system, it's better to compile them with option -O. | ||
1094 | If you don't use a GNU compiler, the source file MUST NOT have a size | ||
1095 | over 4 Gb for RLE 2, 3, and Huffman, because I count the number | ||
1096 | of occurrences of the bytes. | ||
1097 | So, with GNU compilers, 'unsigned lont int' is 8 bytes instead of 4 bytes | ||
1098 | (as normal C UNIX compilers and PCs' compilers, such as Microsoft C++ | ||
1099 | and Borland C++). | ||
1100 | Actually: | ||
1101 | * Normal UNIX compilers, => 4 Gb (unsigned long int = 4 bytes) | ||
1102 | Microsoft C++ and Borland C++ for PCs | ||
1103 | * GNU UNIX compilers => 17179869184 Gb (unsigned long int = 8 bytes) | ||
1104 | |||
1105 | +==========================================================+ | ||
1106 | | END | | ||
1107 | +==========================================================+ | ||
diff --git a/baseline/source/huff_dec/huff_dec.c b/baseline/source/huff_dec/huff_dec.c new file mode 100644 index 0000000..48bdf4b --- /dev/null +++ b/baseline/source/huff_dec/huff_dec.c | |||
@@ -0,0 +1,393 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: huff_dec | ||
7 | |||
8 | Author: David Bourgin (David.Bourgin@ufrima.imag.fr) | ||
9 | |||
10 | Function: Example of Huffman decoding | ||
11 | |||
12 | Source: ftp://turing.imag.fr/pub/compression/ (1994-09-26) | ||
13 | |||
14 | Original name: dcodhuff.c | ||
15 | |||
16 | Changes: I/O to char arrays instead of file i/o. | ||
17 | Dynamic memory allocation replaced by array. | ||
18 | |||
19 | License: | ||
20 | |||
21 | The source code files (codrl1.c, dcodrl1.c, codrle2.c, dcodrle2.c, codrle3.c, | ||
22 | dcodrle3.c, codrle4.c, dcodrle4.c, codhuff.c, dcodhuff.c) are copyrighted. | ||
23 | They have been uploaded on ftp in turing.imag.fr (129.88.31.7):/pub/compression | ||
24 | on 22/5/94 and have been modified on 22/9/94. | ||
25 | (c) David Bourgin - 1994 | ||
26 | The source codes I provide have no buggs (!) but being that I make them | ||
27 | available for free I have some notes to make. They can change at any time | ||
28 | without notice. I assume no responsability or liability for any errors or | ||
29 | inaccurracies, make no warranty of any kind (express, implied or statutory) | ||
30 | with respect to this publication and expressly disclaim any and all warranties | ||
31 | of merchantability, fitness for particular purposes. Of course, if you have | ||
32 | some problems to use the information presented here, I will try to help you if | ||
33 | I can. | ||
34 | |||
35 | If you include the source codes in your application, here are the conditions: | ||
36 | - You have to put my name in the header of your source file (not in the | ||
37 | excutable program if you don't want) (this item is a must) | ||
38 | - I would like to see your resulting application, if possible (this item is not | ||
39 | a must, because some applications must remain secret) | ||
40 | - Whenever you gain money with your application, I would like to receive a very | ||
41 | little part in order to be encouraged to update my source codes and to develop | ||
42 | new schemes (this item is not a must) | ||
43 | |||
44 | */ | ||
45 | |||
46 | |||
47 | /* | ||
48 | Declaration of types | ||
49 | */ | ||
50 | |||
51 | |||
52 | #include "../extra.h" | ||
53 | typedef struct s_tree { | ||
54 | unsigned int byte; /* A byte has to be coded as an unsigned integer to | ||
55 | allow a node to have a value over 255 */ | ||
56 | struct s_tree *left_ptr; | ||
57 | struct s_tree *right_ptr; | ||
58 | } huff_dec_t_tree; | ||
59 | |||
60 | typedef struct { | ||
61 | unsigned char bits[32]; | ||
62 | unsigned int bits_nb; | ||
63 | unsigned char presence; | ||
64 | } t_bin_val; | ||
65 | |||
66 | |||
67 | /* | ||
68 | Forward declaration of functions | ||
69 | */ | ||
70 | |||
71 | void huff_dec_init( void ); | ||
72 | int huff_dec_return( void ); | ||
73 | int huff_dec_end_of_data(); | ||
74 | int huff_dec_read_byte(); | ||
75 | void huff_dec_write_byte( char ch ); | ||
76 | unsigned char huff_dec_read_code_1_bit(); | ||
77 | unsigned int huff_dec_read_code_n_bits( unsigned int n ); | ||
78 | void huff_dec_read_header( t_bin_val codes_table[257] ); | ||
79 | huff_dec_t_tree *huff_dec_tree_encoding( t_bin_val codes_table[257], | ||
80 | huff_dec_t_tree heap[514] ); | ||
81 | void huff_dec_main( void ); | ||
82 | //int main( void ); | ||
83 | |||
84 | |||
85 | /* | ||
86 | Declaration of global variables | ||
87 | */ | ||
88 | |||
89 | static int huff_dec_input_pos; | ||
90 | static int huff_dec_output_pos; | ||
91 | static char huff_dec_output[1024]; | ||
92 | unsigned char huff_dec_byte_nb_to_read = 0; | ||
93 | unsigned int huff_dec_val_to_read = 0; | ||
94 | |||
95 | |||
96 | /* | ||
97 | Initialization- and return-value-related functions | ||
98 | */ | ||
99 | |||
100 | #define huff_dec_plaintext_len 600 | ||
101 | static const char *huff_dec_plaintext = | ||
102 | "You are doubtless asking \"How can I reduce the data size without losing " | ||
103 | "some informations?\". It's easy to answer to this question. I'll only take " | ||
104 | "an example. I'm sure you have heard about the morse. This system established " | ||
105 | "in the 19th century use a scheme very close to the huffman one. In the morse " | ||
106 | "you encode the letters to transmit with two kinds of signs. If you encode " | ||
107 | "these two sign possibilities in one bit, the symbol 'e' is transmitted in a " | ||
108 | "single bit and the symbols 'y' and 'z' need four bits. Look at the symbols " | ||
109 | "in the text you are reading, you'll fast understand the compression ratio..."; | ||
110 | |||
111 | #define huff_dec_encoded_len 419 | ||
112 | static unsigned char huff_dec_encoded[huff_dec_encoded_len] = { | ||
113 | 128, 0, 0, 0, 80, 133, 32, 32, 128, 100, 4, 32, 63, 239, 255, 240, | ||
114 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
115 | 4, 7, 167, 21, 129, 232, 69, 120, 132, 217, 20, 162, 19, 164, 39, 133, | ||
116 | 252, 138, 105, 20, 194, 19, 129, 240, 172, 138, 248, 150, 11, 11, 240, 201, | ||
117 | 68, 64, 114, 53, 17, 42, 37, 195, 128, 212, 116, 194, 41, 98, 52, 51, | ||
118 | 12, 132, 112, 244, 3, 36, 33, 52, 39, 135, 164, 33, 62, 156, 87, 14, | ||
119 | 110, 22, 87, 50, 85, 198, 99, 142, 140, 194, 81, 78, 158, 84, 129, 254, | ||
120 | 129, 248, 110, 179, 159, 192, 145, 133, 184, 184, 28, 210, 96, 146, 73, 10, | ||
121 | 226, 21, 83, 152, 74, 13, 111, 132, 199, 202, 219, 241, 74, 193, 167, 105, | ||
122 | 222, 31, 147, 6, 55, 31, 129, 40, 232, 52, 153, 160, 148, 18, 36, 197, | ||
123 | 45, 216, 202, 86, 30, 31, 177, 90, 133, 138, 248, 23, 81, 195, 160, 100, | ||
124 | 215, 93, 50, 185, 225, 251, 23, 6, 230, 225, 229, 112, 71, 80, 96, 141, | ||
125 | 205, 176, 230, 85, 196, 9, 24, 93, 90, 121, 225, 76, 68, 152, 63, 25, | ||
126 | 107, 140, 101, 204, 214, 77, 26, 194, 96, 18, 48, 77, 210, 137, 1, 253, | ||
127 | 4, 230, 248, 56, 240, 224, 111, 163, 95, 10, 12, 223, 7, 234, 167, 129, | ||
128 | 40, 36, 96, 135, 125, 245, 250, 2, 198, 120, 127, 0, 145, 133, 213, 167, | ||
129 | 135, 149, 195, 67, 235, 108, 9, 24, 87, 17, 102, 152, 37, 4, 222, 131, | ||
130 | 188, 144, 73, 36, 128, 73, 20, 81, 152, 177, 133, 248, 28, 165, 131, 120, | ||
131 | 127, 240, 242, 184, 104, 125, 109, 129, 35, 30, 4, 145, 65, 202, 88, 9, | ||
132 | 138, 103, 44, 205, 100, 167, 24, 152, 11, 24, 51, 37, 66, 9, 24, 31, | ||
133 | 174, 202, 212, 49, 152, 18, 96, 155, 208, 119, 146, 45, 97, 48, 56, 28, | ||
134 | 194, 90, 224, 204, 144, 232, 176, 36, 96, 126, 187, 43, 83, 12, 121, 129, | ||
135 | 209, 96, 197, 35, 2, 54, 176, 249, 92, 208, 204, 145, 188, 41, 170, 180, | ||
136 | 71, 16, 36, 96, 126, 187, 43, 83, 19, 0, 145, 129, 100, 209, 15, 43, | ||
137 | 135, 55, 6, 238, 180, 194, 90, 17, 229, 115, 21, 168, 251, 140, 131, 162, | ||
138 | 217, 166, 93, 22, 4, 140, 31, 91, 166, 55, 25, 202, 192, 111, 20, 171, | ||
139 | 207, 39, 192, | ||
140 | }; | ||
141 | |||
142 | |||
143 | void huff_dec_init( void ) | ||
144 | { | ||
145 | huff_dec_input_pos = 0; | ||
146 | huff_dec_output_pos = 0; | ||
147 | } | ||
148 | |||
149 | |||
150 | int huff_dec_return( void ) | ||
151 | { | ||
152 | int i; | ||
153 | _Pragma( "loopbound min 1 max 600" ) | ||
154 | for ( i = 0; i < huff_dec_plaintext_len; i++ ) { | ||
155 | if ( huff_dec_plaintext[i] != huff_dec_output[i] ) return i + 1; | ||
156 | } | ||
157 | return 0; | ||
158 | } | ||
159 | |||
160 | |||
161 | /* | ||
162 | Input / output functions | ||
163 | */ | ||
164 | |||
165 | int huff_dec_end_of_data() | ||
166 | { | ||
167 | return huff_dec_input_pos >= huff_dec_encoded_len; | ||
168 | } | ||
169 | |||
170 | |||
171 | int huff_dec_read_byte() | ||
172 | { | ||
173 | return huff_dec_encoded[huff_dec_input_pos++]; | ||
174 | } | ||
175 | |||
176 | |||
177 | void huff_dec_write_byte( char ch ) | ||
178 | { | ||
179 | huff_dec_output[huff_dec_output_pos++] = ch; | ||
180 | } | ||
181 | |||
182 | |||
183 | unsigned char huff_dec_read_code_1_bit() | ||
184 | /* Returned parameters: Returns an unsigned integer with the 0-bit (on the | ||
185 | right of the integer) valid | ||
186 | Action: Reads the next bit in the stream of data to compress | ||
187 | Errors: An input/output error could disturb the running of the program | ||
188 | The source must have enough bits to read | ||
189 | */ | ||
190 | { | ||
191 | if ( huff_dec_byte_nb_to_read ) { | ||
192 | huff_dec_byte_nb_to_read--; | ||
193 | return ( ( huff_dec_val_to_read >> huff_dec_byte_nb_to_read ) & 1 ); | ||
194 | } else { | ||
195 | huff_dec_val_to_read = huff_dec_read_byte(); | ||
196 | huff_dec_byte_nb_to_read = 7; | ||
197 | return ( ( huff_dec_val_to_read >> 7 ) & 1 ); | ||
198 | } | ||
199 | } | ||
200 | |||
201 | |||
202 | unsigned int huff_dec_read_code_n_bits( unsigned int n ) | ||
203 | /* Returned parameters: Returns an unsigned integer with the n-bits (on the | ||
204 | right of the integer) valid | ||
205 | Action: Reads the next n bits in the stream of data to compress | ||
206 | Errors: An input/output error could disturb the running of the program | ||
207 | The source must have enough bits to read | ||
208 | */ | ||
209 | { | ||
210 | unsigned int result = 0; | ||
211 | unsigned i = n; | ||
212 | |||
213 | _Pragma ( "loopbound min 1 max 1" ) | ||
214 | while ( i ) { | ||
215 | _Pragma ( "loopbound min 0 max 2" ) | ||
216 | while ( ( huff_dec_byte_nb_to_read < 9 ) && ( !huff_dec_end_of_data() ) ) { | ||
217 | huff_dec_val_to_read = ( huff_dec_val_to_read << 8 ) + huff_dec_read_byte(); | ||
218 | huff_dec_byte_nb_to_read += 8; | ||
219 | } | ||
220 | if ( i >= huff_dec_byte_nb_to_read ) { | ||
221 | result = ( result << huff_dec_byte_nb_to_read ) + huff_dec_val_to_read; | ||
222 | i -= huff_dec_byte_nb_to_read; | ||
223 | huff_dec_byte_nb_to_read = 0; | ||
224 | } else { | ||
225 | result = ( result << i ) + ( ( huff_dec_val_to_read >> | ||
226 | ( huff_dec_byte_nb_to_read - i ) ) & ( ( 1 << i ) - 1 ) ); | ||
227 | huff_dec_byte_nb_to_read -= i; | ||
228 | i = 0; | ||
229 | } | ||
230 | } | ||
231 | return ( result ); | ||
232 | } | ||
233 | |||
234 | |||
235 | void huff_dec_read_header( t_bin_val codes_table[257] ) | ||
236 | /* Returned parameters: The contain of 'codes_table' is modified | ||
237 | Action: Rebuilds the binary encoding array by using the header | ||
238 | Errors: An input/output error could disturb the running of the program | ||
239 | */ | ||
240 | { | ||
241 | unsigned int i, j; | ||
242 | unsigned num_byte; | ||
243 | |||
244 | _Pragma ( "loopbound min 257 max 257" ) | ||
245 | for ( i = 0; i < 257; i++ ) { | ||
246 | codes_table[i].bits_nb = 0; | ||
247 | _Pragma ( "loopbound min 32 max 32" ) | ||
248 | for ( j = 0; j < 32; j++ ) { | ||
249 | codes_table[i].bits[j] = 0; | ||
250 | } | ||
251 | } | ||
252 | |||
253 | /* == Decoding of the first part of the header === */ | ||
254 | if ( huff_dec_read_code_1_bit() ) | ||
255 | /* First bit=0 => Present bytes coded on n*8 bits | ||
256 | =1 => Present bytes coded on 256 bits */ | ||
257 | _Pragma ( "loopbound min 256 max 256" ) | ||
258 | for ( i = 0; i <= 255; i++ ) | ||
259 | codes_table[i].presence = huff_dec_read_code_1_bit(); | ||
260 | else { | ||
261 | i = huff_dec_read_code_n_bits( 5 ) + 1; | ||
262 | _Pragma ( "loopbound min 1 max 32" ) | ||
263 | while ( i ) { | ||
264 | codes_table[huff_dec_read_code_n_bits( 8 )].presence = 1; | ||
265 | i--; | ||
266 | } | ||
267 | } | ||
268 | codes_table[256].presence = 1; | ||
269 | /* Presence of a fictive 256-byte is enforced! */ | ||
270 | |||
271 | /* == Decoding the second part of the header == */ | ||
272 | _Pragma ( "loopbound min 257 max 257" ) | ||
273 | for ( i = 0; i <= 256; i++ ) | ||
274 | if ( codes_table[i].presence ) { | ||
275 | if ( huff_dec_read_code_1_bit() ) | ||
276 | /* First bit=0 => 5 bits of binary length-1 followed by a binary word | ||
277 | =1 => 8 bits of binary length-1 followed by a binary word */ | ||
278 | j = huff_dec_read_code_n_bits( 8 ) + 1; | ||
279 | else j = huff_dec_read_code_n_bits( 5 ) + 1; | ||
280 | codes_table[i].bits_nb = j; | ||
281 | /* Reading of a binary word */ | ||
282 | num_byte = ( j - 1 ) >> 3; | ||
283 | if ( j & 7 ) { | ||
284 | /* Reads the bits that takes less than one byte */ | ||
285 | codes_table[i].bits[num_byte] = | ||
286 | ( unsigned char )huff_dec_read_code_n_bits( j & 7 ); | ||
287 | j -= j & 7; | ||
288 | num_byte--; | ||
289 | } | ||
290 | |||
291 | _Pragma ( "loopbound min 0 max 1" ) | ||
292 | while ( j >= 8 ) { | ||
293 | /* Reads the bits that takes one byte, at least */ | ||
294 | codes_table[i].bits[num_byte] = | ||
295 | ( unsigned char )huff_dec_read_code_n_bits( 8 ); | ||
296 | j -= 8; | ||
297 | num_byte--; | ||
298 | } | ||
299 | } | ||
300 | } | ||
301 | |||
302 | |||
303 | huff_dec_t_tree *huff_dec_tree_encoding( t_bin_val codes_table[257], | ||
304 | huff_dec_t_tree heap[514] ) | ||
305 | /* Returned parameters: A binary tree is returned | ||
306 | Action: Returns the decoding binary tree built from 'codes_table' | ||
307 | Errors: None | ||
308 | */ | ||
309 | { | ||
310 | unsigned int i; | ||
311 | unsigned int j; | ||
312 | unsigned int heap_top = 0; | ||
313 | huff_dec_t_tree *ptr_tree; | ||
314 | huff_dec_t_tree *current_node; | ||
315 | |||
316 | ptr_tree = &heap[heap_top++]; | ||
317 | ptr_tree->byte = 257; | ||
318 | ptr_tree->left_ptr = 0; | ||
319 | ptr_tree->right_ptr = 0; | ||
320 | _Pragma ( "loopbound min 257 max 257" ) | ||
321 | for ( i = 0; i <= 256; i++ ) { | ||
322 | _Pragma ( "loopbound min 0 max 9" ) | ||
323 | for ( current_node = ptr_tree, j = codes_table[i].bits_nb; j; j-- ) { | ||
324 | if ( codes_table[i].bits[( j - 1 ) >> 3] & ( 1 << ( ( | ||
325 | j - 1 ) & 7 ) ) ) | ||
326 | if ( current_node->left_ptr == 0 ) { | ||
327 | current_node->left_ptr = &heap[heap_top++]; | ||
328 | current_node = current_node->left_ptr; | ||
329 | current_node->left_ptr = 0; | ||
330 | current_node->right_ptr = 0; | ||
331 | } else current_node = current_node->left_ptr; | ||
332 | else | ||
333 | if ( current_node->right_ptr == 0 ) { | ||
334 | current_node->right_ptr = &heap[heap_top++]; | ||
335 | current_node = current_node->right_ptr; | ||
336 | current_node->left_ptr = 0; | ||
337 | current_node->right_ptr = 0; | ||
338 | } else current_node = current_node->right_ptr; | ||
339 | if ( j == 1 ) | ||
340 | current_node->byte = i; | ||
341 | else current_node->byte = 257; | ||
342 | } | ||
343 | }; | ||
344 | return ( ptr_tree ); | ||
345 | } | ||
346 | |||
347 | |||
348 | void _Pragma( "entrypoint" ) huff_dec_main( void ) | ||
349 | /* Returned parameters: None | ||
350 | Action: Decompresses with Huffman method all bytes read by the function | ||
351 | 'read_code_1_bit' and 'read_code_n_bits' | ||
352 | Errors: An input/output error could disturb the running of the program | ||
353 | */ | ||
354 | { | ||
355 | t_bin_val encoding_table[257]; | ||
356 | huff_dec_t_tree heap[514]; /* space for dynamically allocated nodes */ | ||
357 | huff_dec_t_tree *ptr_tree; | ||
358 | huff_dec_t_tree *current_node; | ||
359 | |||
360 | if ( !huff_dec_end_of_data() ) { /* Are there data to compress? */ | ||
361 | huff_dec_read_header( encoding_table ); | ||
362 | ptr_tree = huff_dec_tree_encoding( encoding_table, heap ); | ||
363 | _Pragma ( "loopbound min 602 max 602" ) | ||
364 | do { | ||
365 | current_node = ptr_tree; | ||
366 | _Pragma ( "loopbound min 3 max 9" ) | ||
367 | while ( current_node->byte == 257 ) | ||
368 | if ( huff_dec_read_code_1_bit() ) | ||
369 | /* Bit=1 => Got to left in the node of the tree | ||
370 | =0 => Got to right in the node of the tree */ | ||
371 | current_node = current_node->left_ptr; | ||
372 | else current_node = current_node->right_ptr; | ||
373 | if ( current_node->byte <= 255 ) | ||
374 | huff_dec_write_byte( current_node->byte ); | ||
375 | } while ( current_node->byte != 256 ); | ||
376 | } | ||
377 | } | ||
378 | |||
379 | |||
380 | int main( int argc, char **argv ) | ||
381 | { | ||
382 | //SET_UP | ||
383 | int jobsComplete; | ||
384 | int maxJobs=5; | ||
385 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
386 | // START_LOOP | ||
387 | huff_dec_init(); | ||
388 | huff_dec_main(); | ||
389 | // STOP_LOOP | ||
390 | } | ||
391 | //WRITE_TO_FILE | ||
392 | return ( huff_dec_return() ); | ||
393 | } | ||
diff --git a/baseline/source/huff_enc/ChangeLog.txt b/baseline/source/huff_enc/ChangeLog.txt new file mode 100644 index 0000000..020dc4f --- /dev/null +++ b/baseline/source/huff_enc/ChangeLog.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | File: huff_enc.c | ||
2 | Original provenience: David Bourgin (David.Bourgin@ufrima.imag.fr) | ||
3 | |||
4 | 2017-04-18: | ||
5 | - Annotated huff_enc_main as entry-point for timing analysis | ||
6 | |||
7 | 2016-03-24: | ||
8 | - Replaced dynamic memory allocation by a fixed array with 514 entries | ||
9 | - Replaced memset() with loops | ||
10 | - Added source code for a special qsort() implementation without | ||
11 | function pointer | ||
12 | - Replaced file I/O by reading and writing to char arrays | ||
13 | - Added huff_dec_main(), huff_dec_init() and huff_dec_return() | ||
14 | - Added huff_dec_ prefix to all functions, types and global variables | ||
15 | - Changed function arguments to ANSI style | ||
16 | - Replaced macro definitions | ||
17 | - Added forward declarations of all functions | ||
18 | - Added generic TACLeBench header replacing previous header | ||
19 | - Included license from compress.txt | ||
20 | - Applied code formatting with astyle | ||
21 | |||
22 | 2016-05-24: | ||
23 | - Changed type of j to unsigned to avoid warning | ||
24 | - Removed static declarations | ||
25 | |||
26 | 2016-05-25: | ||
27 | - Precise types to avoid gcc++ warnings | ||
diff --git a/baseline/source/huff_enc/compress.txt b/baseline/source/huff_enc/compress.txt new file mode 100644 index 0000000..5966bcf --- /dev/null +++ b/baseline/source/huff_enc/compress.txt | |||
@@ -0,0 +1,1107 @@ | |||
1 | +===========================================================+ | ||
2 | | Introduction to the losslessy compression schemes | | ||
3 | | Description of the codec source codes | | ||
4 | +-----------------------------------------------------------+ | ||
5 | | From David Bourgin (E-mail: david.bourgin@ufrima.imag.fr) | | ||
6 | | Date: 22/9/94 | | ||
7 | +===========================================================+ | ||
8 | |||
9 | ------ BE CARE ------ | ||
10 | This file (compress.txt) is copyrighted. (c) David Bourgin - 1994 | ||
11 | Permission to use this documentation for any purpose other than | ||
12 | its incorporation into a commercial product is hereby granted without fee. | ||
13 | Permission to copy and distribute this documentation only for non-commercial use | ||
14 | is also granted without fee, provided, however, that the above copyright notice | ||
15 | appears in all copies, that both that copyright notice and this permission notice appear in supporting documentation. The author makes no representations about | ||
16 | the suitability of this documentation for any purpose. It is provided "as is" | ||
17 | without express or implied warranty. | ||
18 | |||
19 | The source codes you obtain with this file are *NOT* covered by the same | ||
20 | copyright, because you can include them for both commercial and non-commercial | ||
21 | use. See below for more infos. | ||
22 | |||
23 | The source code files (codrl1.c, dcodrl1.c, codrle2.c, dcodrle2.c, codrle3.c, | ||
24 | dcodrle3.c, codrle4.c, dcodrle4.c, codhuff.c, dcodhuff.c) are copyrighted. | ||
25 | They have been uploaded on ftp in turing.imag.fr (129.88.31.7):/pub/compression | ||
26 | on 22/5/94 and have been modified on 22/9/94. | ||
27 | (c) David Bourgin - 1994 | ||
28 | The source codes I provide have no buggs (!) but being that I make them | ||
29 | available for free I have some notes to make. They can change at any time | ||
30 | without notice. I assume no responsability or liability for any errors or | ||
31 | inaccurracies, make no warranty of any kind (express, implied or statutory) | ||
32 | with respect to this publication and expressly disclaim any and all warranties | ||
33 | of merchantability, fitness for particular purposes. Of course, if you have | ||
34 | some problems to use the information presented here, I will try to help you if | ||
35 | I can. | ||
36 | |||
37 | If you include the source codes in your application, here are the conditions: | ||
38 | - You have to put my name in the header of your source file (not in the | ||
39 | excutable program if you don't want) (this item is a must) | ||
40 | - I would like to see your resulting application, if possible (this item is not | ||
41 | a must, because some applications must remain secret) | ||
42 | - Whenever you gain money with your application, I would like to receive a very | ||
43 | little part in order to be encouraged to update my source codes and to develop | ||
44 | new schemes (this item is not a must) | ||
45 | --------------------- | ||
46 | |||
47 | There are several means to compress data. Here, we are only going to deal with | ||
48 | the losslessy schemes. These schemes are also called non-destructive because | ||
49 | you always recover the initial data you had, and this, as soon as you need them. | ||
50 | With losslessy schemes, you won't never lose any informations (except perhaps | ||
51 | when you store or transmit your data but this is another problem...). | ||
52 | |||
53 | In this introduction, we are going to see: | ||
54 | - The RLE scheme (with different possible algorithms) | ||
55 | - The Huffman schemes (dynamical scheme) | ||
56 | - And the LZW scheme | ||
57 | |||
58 | For the novice, a compresser is a program able to read several data (e.g. bytes) | ||
59 | in input and to write several data in output. The data you obtain from the | ||
60 | output (also called compressed data) will - of course - take less space than | ||
61 | the the input data. This is true in most of cases, if the compresser works | ||
62 | and if the type of the data is correct to be compressed with the given scheme. | ||
63 | The codec (coder-decoder) enables you to save space on your hard disk and/or | ||
64 | to save the communication costs because you always store/transmit the compressed | ||
65 | data. You'll use the decompresser as soon as you need to recover your initial | ||
66 | useful data. Note that the compressed data are useless if you have not | ||
67 | the decoder... | ||
68 | |||
69 | You are doubtless asking "How can I reduce the data size without losing some | ||
70 | informations?". It's easy to answer to this question. I'll only take an example. | ||
71 | I'm sure you have heard about the morse. This system established in the 19th | ||
72 | century use a scheme very close to the huffman one. In the morse you encode | ||
73 | the letters to transmit with two kinds of signs. If you encode these two sign | ||
74 | possibilities in one bit, the symbol 'e' is transmitted in a single bit and | ||
75 | the symbols 'y' and 'z' need four bits. Look at the symbols in the text you are | ||
76 | reading, you'll fast understand the compression ratio... | ||
77 | |||
78 | Important: The source codes associated to the algorithms I present are | ||
79 | completely adaptative on what you need to compress. They all use basical | ||
80 | macros on the top of the file. Usually the macros to change are: | ||
81 | |||
82 | - beginning_of_data | ||
83 | - end_of_data | ||
84 | - read_byte | ||
85 | - read_block | ||
86 | - write_byte | ||
87 | - write_block | ||
88 | |||
89 | These allow the programmer to modify only a little part of the header | ||
90 | of the source codes in order to compress as well memory as files. | ||
91 | |||
92 | beginning_of_data(): Macro used to set the program so that the next read_byte() | ||
93 | call will read the first byte to compress. | ||
94 | end_of_data(): Returns a boolean to know whether there is no more bytes to read | ||
95 | from the input stream. Return 0 if there is no more byte to compress, another | ||
96 | non-zero value otherwise. | ||
97 | read_byte(): Returns a byte read from the input stream if available. | ||
98 | write_byte(x): Writes the byte 'x' to the output stream. | ||
99 | read_block(...) and write_block(...): Same use as read_byte and write_byte(x) | ||
100 | but these macros work on blocks of bytes and not only on a single byte. | ||
101 | |||
102 | If you want to compress *from* the memory, before entering in a xxxcoding | ||
103 | procedure ('xxx' is the actual extension to replace with a given codec), you | ||
104 | have to add a pointer set up to the beginning of the zone to compress. Note | ||
105 | that the following pointer 'source_memory_base' is not to add, it is just given | ||
106 | here to specify a name to the address of the memory zone you are going to | ||
107 | encode or decode. That is the same about source_memory_end which can be either | ||
108 | a pointer to create or an existing pointer. | ||
109 | |||
110 | unsigned char *source_memory_base, /* Base of the source memory */ | ||
111 | *source_memory_end, /* Last address to read. | ||
112 | source_memory_end=source_memory_base+source_zone_length-1 */ | ||
113 | *source_ptr; /* Used in the xxxcoding procedure */ | ||
114 | void pre_start() | ||
115 | { source_ptr=source_memory_base; | ||
116 | xxxcoding(); | ||
117 | } | ||
118 | |||
119 | end_of_data() and read_byte() are also to modify to compress *from* memory: | ||
120 | |||
121 | #define end_of_data() (source_ptr>source_memory_end) | ||
122 | #define read_byte() (*(source_ptr++)) | ||
123 | |||
124 | If you want to compress *to* memory, before entering in a xxxcoding procedure | ||
125 | ('xxx' is the actual extension to replace with a given codec), you have to add | ||
126 | a pointer. Note that the pointer 'dest_memory_base' is not to add, it is just | ||
127 | given there to specify the address of the destination memory zone you are | ||
128 | going to encode or decode. | ||
129 | |||
130 | unsigned char *dest_memory_base, /* Base of the destination memory */ | ||
131 | *dest_ptr; /* Used in the xxxcoding procedure */ | ||
132 | void pre_start() | ||
133 | { dest_ptr=dest_memory_base; | ||
134 | xxxcoding(); | ||
135 | } | ||
136 | |||
137 | Of course, you can combine both from and to memory in the pre_start() procedure. | ||
138 | The files dest_file and source_file handled in the main() function are | ||
139 | to remove... | ||
140 | |||
141 | void pre_start() | ||
142 | { source_ptr=source_memory_base; | ||
143 | dest_ptr=dest_memory_base; | ||
144 | xxxcoding(); | ||
145 | } | ||
146 | |||
147 | In fact, to write to memory, the problem is in the write_byte(x) procedure. | ||
148 | This problem exists because your destination zone can either be a static | ||
149 | zone or a dynamically allocated zone. In the two cases, you have to check | ||
150 | if there is no overflow, especially if the coder is not efficient and must | ||
151 | produce more bytes than you reserved in memory. | ||
152 | |||
153 | In the first case, with a *static* zone, write_byte(x) macro should look like | ||
154 | that: | ||
155 | |||
156 | unsigned long int dest_zone_length, | ||
157 | current_size; | ||
158 | |||
159 | #define write_byte(x) { if (current_size==dest_zone_length) \ | ||
160 | exit(1); \ | ||
161 | dest_ptr[current_size++]=(unsigned char)(x); \ | ||
162 | } | ||
163 | |||
164 | In the static version, the pre_start() procedure is to modify as following: | ||
165 | |||
166 | void pre_start() | ||
167 | { source_ptr=source_memory_base; | ||
168 | dest_ptr=dest_memory_base; | ||
169 | dest_zone_length=...; /* Set up to the actual destination zone length */ | ||
170 | current_size=0; /* Number of written bytes */ | ||
171 | xxxcoding(); | ||
172 | } | ||
173 | Otherwise, dest_ptr is a zone created by the malloc instruction and you can try | ||
174 | to resize the allocated zone with the realloc instruction. Note that I increment | ||
175 | the zone one kilo-bytes by one kylo-bytes. You have to add two other variables: | ||
176 | |||
177 | unsigned long int dest_zone_length, | ||
178 | current_size; | ||
179 | |||
180 | #define write_byte(x) { if (current_size==dest_zone_length) \ | ||
181 | { dest_zone_length += 1024; \ | ||
182 | if ((dest_ptr=(unsigned char *)realloc(dest_ptr,dest_zone_length*sizeof(unsigned char)))==NULL) \ | ||
183 | exit(1); /* You can't compress in memory \ | ||
184 | => I exit but *you* can make a routine to swap on disk */ \ | ||
185 | } \ | ||
186 | dest_ptr[current_size++]=(unsigned char)(x); \ | ||
187 | } | ||
188 | |||
189 | With the dynamically allocated version, change the pre_start() routine as following: | ||
190 | |||
191 | void pre_start() | ||
192 | { source_ptr=source_memory_base; | ||
193 | dest_ptr=dest_memory_base; | ||
194 | dest_zone_length=1024; | ||
195 | if ((dest_ptr=(unsigned char *)malloc(dest_zone_length*sizeof(unsigned char)))==NULL) | ||
196 | exit(1); /* You need at least 1 kb in the dynamical memory ! */ | ||
197 | current_size=0; /* Number of written bytes */ | ||
198 | xxxcoding(); | ||
199 | /* Handle the bytes in dest_ptr but don't forget to free these bytes with: | ||
200 | free(dest_ptr); | ||
201 | */ | ||
202 | } | ||
203 | |||
204 | The previously given macros work as: | ||
205 | |||
206 | void demo() /* The file opening, closing and variables | ||
207 | must be set up by the calling procedure */ | ||
208 | { unsigned char byte; | ||
209 | /* And not 'char byte' (!) */ | ||
210 | while (!end_of_data()) | ||
211 | { byte=read_byte(); | ||
212 | printf("Byte read=%c\n",byte); | ||
213 | } | ||
214 | } | ||
215 | |||
216 | You must not change the rest of the program unless you're really sure and | ||
217 | really need to do it! | ||
218 | |||
219 | +==========================================================+ | ||
220 | | The RLE encoding | | ||
221 | +==========================================================+ | ||
222 | |||
223 | RLE is an acronym that stands for Run Length Encoding. You may encounter it | ||
224 | as an other acronym: RLC, Run Length Coding. | ||
225 | |||
226 | The idea in this scheme is to recode your data with regard to the repetition | ||
227 | frames. A frame is one or more bytes that occurr one or several times. | ||
228 | |||
229 | There are several means to encode occurrences. So, you'll have several codecs. | ||
230 | For example, you may have a sequence such as: | ||
231 | 0,0,0,0,0,0,255,255,255,2,3,4,2,3,4,5,8,11 | ||
232 | |||
233 | Some codecs will only deal with the repetitions of '0' and '255' but some other | ||
234 | will deal with the repetitions of '0', '255', and '2,3,4'. | ||
235 | |||
236 | You have to keep in your mind something important based on this example. A codec | ||
237 | won't work on all the data you will try to compress. So, in case of non | ||
238 | existence of sequence repetitions, the codecs based on RLE schemes must not | ||
239 | display a message to say: "Bye bye". Actually, they will try to encode these | ||
240 | non repeted data with a value that says "Sorry, I only make a copy of the inital | ||
241 | input". Of course, a copy of the input data with an header in front of this copy | ||
242 | will make a biggest output data but if you consider the whole data to compress, | ||
243 | the encoding of repeated frames will take less space than the encoding | ||
244 | of non-repeated frames. | ||
245 | |||
246 | All of the algorithms with the name of RLE have the following look with three | ||
247 | or four values: | ||
248 | - Value saying if there's a repetition | ||
249 | - Value saying how many repetitions (or non repetition) | ||
250 | - Value of the length of the frame (useless if you just encode frame | ||
251 | with one byte as maximum length) | ||
252 | - Value of the frame to repeat (or not) | ||
253 | |||
254 | I gave four algorithms to explain what I say. | ||
255 | |||
256 | *** First RLE scheme *** | ||
257 | |||
258 | The first scheme is the simpliest I know, and looks like the one used in MAC | ||
259 | system (MacPackBit) and some image file formats such as Targa, PCX, TIFF, ... | ||
260 | |||
261 | Here, all compressed blocks begin with a byte, named header, which description | ||
262 | is: | ||
263 | |||
264 | Bits 7 6 5 4 3 2 1 0 | ||
265 | Header X X X X X X X X | ||
266 | |||
267 | Bits 7: Compression status (1=Compression applied) | ||
268 | 0 to 6: Number of bytes to handle | ||
269 | |||
270 | So, if the bit 7 is set up to 0, the 0 to 6 bits give the number of bytes | ||
271 | that follow (minus 1, to gain more over compress) and that were not compressed | ||
272 | (native bytes). If the bit 7 is set up to 1, the same 0 to 6 bits give | ||
273 | the number of repetition (minus 2) of the following byte. | ||
274 | |||
275 | As you see, this method only handle frame with one byte. | ||
276 | |||
277 | Additional note: You have 'minus 1' for non-repeated frames because you must | ||
278 | have at least one byte to compress and 'minus 2' for repeated frames because the | ||
279 | repetition must be 2, at least. | ||
280 | |||
281 | Compression scheme: | ||
282 | |||
283 | First byte=Next | ||
284 | /\ | ||
285 | / \ | ||
286 | Count the byte Count the occurrence of NON identical | ||
287 | occurrences bytes (maximum 128 times) | ||
288 | (maximum 129 times) and store them in an array | ||
289 | | | | ||
290 | | | | ||
291 | 1 bit '1' 1 bit '0' | ||
292 | + 7 bits giving + 7 bits giving | ||
293 | the number (-2) the number (-1) | ||
294 | of repetitions of non repetition | ||
295 | + repeated byte + n non repeated bytes | ||
296 | | | | ||
297 | 1xxxxxxx,yyyyyyyy 0xxxxxxx,n bytes | ||
298 | [-----------------] [----------------] | ||
299 | |||
300 | Example: | ||
301 | |||
302 | Sequence of bytes to encode | Coded values | Differences with compression | ||
303 | | | (unit: byte) | ||
304 | ------------------------------------------------------------------------- | ||
305 | 255,15, | 1,255,15, | -1 | ||
306 | 255,255, | 128,255, | 0 | ||
307 | 15,15, | 128,15, | 0 | ||
308 | 255,255,255, | 129,255, | +1 | ||
309 | 15,15,15, | 129,15, | +1 | ||
310 | 255,255,255,255, | 130,255, | +2 | ||
311 | 15,15,15,15 | 130,15 | +2 | ||
312 | |||
313 | See codecs source codes: codrle1.c and dcodrle1.c | ||
314 | |||
315 | *** Second RLE scheme *** | ||
316 | |||
317 | In the second scheme of RLE compression you look for the less frequent byte | ||
318 | in the source to compress and use it as an header for all compressed block. | ||
319 | |||
320 | In the best cases, the occurrence of this byte is zero in the data to compress. | ||
321 | |||
322 | Two possible schemes, firstly with handling frames with only one byte, | ||
323 | secondly with handling frames with one byte *and* more. The first case is | ||
324 | the subject of this current compression scheme, the second is the subject | ||
325 | of next compression scheme. | ||
326 | |||
327 | For the frame of one byte, header byte is written in front of all repetition | ||
328 | with at least 4 bytes. It is then followed by the repetition number minus 1 and | ||
329 | the repeated byte. | ||
330 | Header byte, Occurrence number-1, repeated byte | ||
331 | |||
332 | If a byte don't repeat more than tree times, the three bytes are written without | ||
333 | changes in the destination stream (no header nor length, nor repetition in front | ||
334 | or after theses bytes). | ||
335 | |||
336 | An exception: If the header byte appears in the source one, two, three and up | ||
337 | times, it'll be respectively encoded as following: | ||
338 | - Header byte, 0 | ||
339 | - Header byte, 1 | ||
340 | - Header byte, 2 | ||
341 | - Header byte, Occurrence number-1, Header byte | ||
342 | |||
343 | Example, let's take the previous example. A non frequent byte is zero-ASCII | ||
344 | because it never appears. | ||
345 | |||
346 | Sequence of bytes to encode | Coded values | Differences with compression | ||
347 | | | (unit: byte) | ||
348 | ------------------------------------------------------------------------- | ||
349 | 255,15, | 255,15, | -1 | ||
350 | 255,255, | 255,255, | 0 | ||
351 | 15,15, | 15,15, | 0 | ||
352 | 255,255,255, | 255,255,255, | 0 | ||
353 | 15,15,15, | 15,15,15, | 0 | ||
354 | 255,255,255,255, | 0,3,255, | -1 | ||
355 | 15,15,15,15 | 0,3,15 | -1 | ||
356 | |||
357 | If the header would appear, we would see: | ||
358 | |||
359 | Sequence of bytes to encode | Coded values | Differences with compression | ||
360 | | | (unit: byte) | ||
361 | ------------------------------------------------------------------------- | ||
362 | 0, | 0,0, | +1 | ||
363 | 255, | 255, | 0 | ||
364 | 0,0, | 0,1, | 0 | ||
365 | 15, | 15, | 0 | ||
366 | 0,0,0, | 0,2, | -1 | ||
367 | 255, | 255, | 0 | ||
368 | 0,0,0,0 | 0,3,0 | -1 | ||
369 | |||
370 | See codecs source codes: codrle2.c and dcodrle2.c | ||
371 | |||
372 | *** Third RLE scheme *** | ||
373 | |||
374 | It's the same idea as the second scheme but we can encode frames with | ||
375 | more than one byte. So we have three cases: | ||
376 | |||
377 | - If it was the header byte, whatever is its occurrence, you encode it with: | ||
378 | Header byte,0,number of occurrence-1 | ||
379 | - For frames which (repetition-1)*length>3, encode it as: | ||
380 | Header byte, Number of frame repetition-1, frame length-1,bytes of frame | ||
381 | - If no previous cases were detected, you write them as originally (no header, | ||
382 | nor length, nor repetition in front or after theses bytes). | ||
383 | |||
384 | Example based on the previous examples: | ||
385 | |||
386 | Sequence of bytes to encode | Coded values | Differences with compression | ||
387 | | | (unit: byte) | ||
388 | ----------------------------------------------------------------------------- | ||
389 | 255,15, | 255,15, | 0 | ||
390 | 255,255, | 255,255, | 0 | ||
391 | 15,15, | 15,15, | 0 | ||
392 | 255,255,255, | 255,255,255, | 0 | ||
393 | 15,15,15, | 15,15,15, | 0 | ||
394 | 255,255,255,255, | 255,255,255,255, | 0 | ||
395 | 15,15,15,15, | 15,15,15,15, | 0 | ||
396 | 16,17,18,16,17,18, |16,17,18,16,17,18,| 0 | ||
397 | 255,255,255,255,255, | 0,4,0,255, | -1 | ||
398 | 15,15,15,15,15, | 0,4,0,15, | -1 | ||
399 | 16,17,18,16,17,18,16,17,18,| 0,2,2,16,17,18, | -3 | ||
400 | 16,17,18,19,16,17,18,19 |0,1,3,16,17,18,19 | -1 | ||
401 | |||
402 | If the header (value 0) would be met, we would see: | ||
403 | |||
404 | Sequence of bytes to encode | Coded values | Differences with compression | ||
405 | | | (unit: byte) | ||
406 | -------------------------------------------------------------------------- | ||
407 | 0, | 0,0,0, | +2 | ||
408 | 255, | 255, | 0 | ||
409 | 0,0, | 0,0,1, | +1 | ||
410 | 15, | 15, | 0 | ||
411 | 0,0,0, | 0,0,2, | 0 | ||
412 | 255, | 255, | 0 | ||
413 | 0,0,0,0 | 0,0,3 | -1 | ||
414 | |||
415 | See codecs source codes: codrle3.c and dcodrle3.c | ||
416 | |||
417 | *** Fourth RLE scheme *** | ||
418 | |||
419 | This last RLE algorithm better handles repetitions of any kind (one byte | ||
420 | and more) and non repetitions, including few non repetitions, and does not | ||
421 | read the source by twice as RLE type 3. | ||
422 | |||
423 | Compression scheme is: | ||
424 | |||
425 | First byte=Next byte? | ||
426 | /\ | ||
427 | Yes / \ No | ||
428 | / \ | ||
429 | 1 bit '0' 1 bit '1' | ||
430 | / \ | ||
431 | / \ | ||
432 | Count the Motif of several | ||
433 | occurrences repeated byte? | ||
434 | of 1 repeated ( 65 bytes repeated | ||
435 | byte (maximum 257 times maxi) | ||
436 | 16449 times) /\ | ||
437 | /\ / \ | ||
438 | / \ / \ | ||
439 | / \ / \ | ||
440 | / \ / \ | ||
441 | 1 bit '0' 1 bit '1' 1 bit '0' 1 bit '1' | ||
442 | + 6 bits + 14 bits + 6 bits of | | ||
443 | giving the giving the the length Number of non repetition | ||
444 | length (-2) length (-66) of the motif (maximum 8224) | ||
445 | of the of the + 8 bits of /\ | ||
446 | repeated byte repeated byte the number (-2) < 33 / \ > 32 | ||
447 | + repeated byte + repeated byte of repetition / \ | ||
448 | | | + bytes of the 1 bit '0' 1 bit '1' | ||
449 | | | motif + 5 bits of + 13 bits | ||
450 | | | | the numer (-1) of the | ||
451 | | | | of non number (-33) | ||
452 | | | | repetition of repetition | ||
453 | | | | + non + non | ||
454 | | | | repeated repeated | ||
455 | | | | bytes bytes | ||
456 | | | | | | | ||
457 | | | | | 111xxxxx,xxxxxxxx,n bytes | ||
458 | | | | | [-------------------------] | ||
459 | | | | | | ||
460 | | | | 110xxxxx,n bytes | ||
461 | | | | [----------------] | ||
462 | | | | | ||
463 | | | 10xxxxxx,yyyyyyyy,n bytes | ||
464 | | | [-------------------------] | ||
465 | | | | ||
466 | | 01xxxxxx,xxxxxxxx,1 byte | ||
467 | | [------------------------] | ||
468 | | | ||
469 | 00xxxxxx,1 byte | ||
470 | [---------------] | ||
471 | |||
472 | Example, same as previously: | ||
473 | |||
474 | Sequence of bytes to encode | Coded values | Differences with compression | ||
475 | | | (unit: byte) | ||
476 | -------------------------------------------------------------------------- | ||
477 | 255,15 | 11000001b,255,15, | +1 | ||
478 | 255,255 | 00000000b,255, | 0 | ||
479 | 15,15 | 00000000b,15, | 0 | ||
480 | 255,255,255 | 00000001b,255, | -1 | ||
481 | 15,15,15 | 00000001b,15, | -1 | ||
482 | 255,255,255,255 | 00000010b,255, | -2 | ||
483 | 15,15,15,15 | 00000010b,15, | -2 | ||
484 | 16,17,18,16,17,18 |10000001b,0,16,17,18,| -1 | ||
485 | 255,255,255,255,255 | 00000011b,255, | -3 | ||
486 | 15,15,15,15,15 | 00000011b,15, | -3 | ||
487 | 16,17,18,16,17,18,16,17,18 | 10000001b,16,17,18, | -4 | ||
488 | 16,17,18,19,16,17,18,19 |10000010b,16,17,18,19| -2 | ||
489 | |||
490 | +==========================================================+ | ||
491 | | The Huffman encoding | | ||
492 | +==========================================================+ | ||
493 | |||
494 | This method comes from the searcher who established the algorithm in 1952. | ||
495 | This method allows both a dynamic and static statistic schemes. A statistic | ||
496 | scheme works on the data occurrences. It is not as with RLE where you had | ||
497 | a consideration of the current occurrence of a frame but rather a consideration | ||
498 | of the global occurrences of each data in the input stream. In this last case, | ||
499 | frames can be any kinds of sequences you want. On the other hand, Huffman | ||
500 | static encoding appears in some compressers such as ARJ on PCs. This enforces | ||
501 | the encoder to consider every statistic as the same for all the data you have. | ||
502 | Of course, the results are not as good as if it were a dynamic encoding. | ||
503 | The static encoding is faster than the dynamic encoding but the dynamic encoding | ||
504 | will be adapted to the statistic of the bytes of the input stream and will | ||
505 | of course become more efficient by producing shortest output. | ||
506 | |||
507 | The main idea in Huffman encoding is to re-code every byte with regard to its | ||
508 | occurrence. The more frequent bytes in the data to compress will be encoded with | ||
509 | less than 8 bits and the others could need 8 bits see even more to be encoded. | ||
510 | You immediately see that the codes associated to the different bytes won't have | ||
511 | identical size. The Huffman method will actually require that the binary codes | ||
512 | have not a fixed size. We speak then about variable length codes. | ||
513 | |||
514 | The dynamical Huffman scheme needs the binary trees for the encoding. This | ||
515 | enables you to obtain the best codes, adapted to the source data. | ||
516 | The demonstration won't be given there. To help the neophyt, I will just explain | ||
517 | what is a binary tree. | ||
518 | |||
519 | A binary tree is special fashion to represent the data. A binary tree is | ||
520 | a structure with an associated value with two pointers. The term of binary has | ||
521 | been given because of the presence of two pointers. Because of some conventions, | ||
522 | one of the pointer is called left pointer and the second pointer is called right | ||
523 | pointer. Here is a visual representation of a binary tree. | ||
524 | |||
525 | Value | ||
526 | / \ | ||
527 | / \ | ||
528 | Value Value | ||
529 | / \ / \ | ||
530 | ... ... ... ... | ||
531 | |||
532 | One problem with a binary encoding is a prefix problem. A prefix is the first | ||
533 | part of the representation of a value, e.g. "h" and "he" are prefixes of "hello" | ||
534 | but not "el". To understand the problem, let's code the letters "A", "B", "C", | ||
535 | "D", and "E" respectively as 00b, 01b, 10b, 11b, and 100b. When you read | ||
536 | the binary sequence 00100100b, you are unable to say if this comes from "ACBA" | ||
537 | or "AEE". To avoid such situations, the codes must have a prefix property. | ||
538 | And the letter "E" mustn't begin with the sequence of an other code. With "A", | ||
539 | "B", "C", "D", and "E" respectively affected with 1b, 01b, 001b, 0001b, and | ||
540 | 0000b, the sequence 1001011b will only be decoded as "ACBA". | ||
541 | |||
542 | 1 0 | ||
543 | <- /\ -> | ||
544 | / \ | ||
545 | "A" /\ | ||
546 | "B" \ | ||
547 | /\ | ||
548 | "C" \ | ||
549 | /\ | ||
550 | "D" "E" | ||
551 | |||
552 | As you see, with this tree, an encoding will have the prefix property | ||
553 | if the bytes are at the end of each "branch" and you have no byte at the "node". | ||
554 | You also see that if you try to reach a character by the right pointer you add | ||
555 | a bit set to 0 and by the left pointer, you add a bit set to 1 to the current | ||
556 | code. The previous *bad* encoding provide the following bad tree: | ||
557 | |||
558 | /\ | ||
559 | / \ | ||
560 | / \ | ||
561 | /\ /\ | ||
562 | / \ "B" "A" | ||
563 | / \ | ||
564 | "D" "C"\ | ||
565 | / \ | ||
566 | "E" | ||
567 | |||
568 | You see here that the coder shouldn't put the "C" at a node... | ||
569 | |||
570 | As you see, the largest binary code are those with the longest distance | ||
571 | from the top of the tree. Finally, the more frequent bytes will be the highest | ||
572 | in the tree in order you have the shortest encoding and the less frequent bytes | ||
573 | will be the lowest in the tree. | ||
574 | |||
575 | From an algorithmic point of view, you make a list of each byte you encountered | ||
576 | in the stream to compress. This list will always be sorted. The zero-occurrence | ||
577 | bytes are removed from this list. You take the two bytes with the smallest | ||
578 | occurrences in the list. Whenever two bytes have the same "weight", you take two | ||
579 | of them regardless to their ASCII value. You join them in a node. This node will | ||
580 | have a fictive byte value (256 will be a good one!) and its weight will be | ||
581 | the sum of the two joined bytes. You replace then the two joined bytes with | ||
582 | the fictive byte. And you continue so until you have one byte (fictive or not) | ||
583 | in the list. Of course, this process will produce the shortest codes if the list | ||
584 | remains sorted. I will not explain with arcana hard maths why the result | ||
585 | is a set of the shortest bytes... | ||
586 | |||
587 | Important: I use as convention that the right sub-trees have a weight greater | ||
588 | or equal to the weight of the left sub-trees. | ||
589 | |||
590 | Example: Let's take a file to compress where we notice the following | ||
591 | occurrences: | ||
592 | |||
593 | Listed bytes | Frequences (Weight) | ||
594 | ---------------------------------- | ||
595 | 0 | 338 | ||
596 | 255 | 300 | ||
597 | 31 | 280 | ||
598 | 77 | 24 | ||
599 | 115 | 21 | ||
600 | 83 | 20 | ||
601 | 222 | 5 | ||
602 | |||
603 | We will begin by joining the bytes 83 and 222. This will produce a fictive node | ||
604 | 1 with a weight of 20+5=25. | ||
605 | |||
606 | (Fictive 1,25) | ||
607 | /\ | ||
608 | / \ | ||
609 | (222,5) (83,20) | ||
610 | |||
611 | Listed bytes | Frequences (Weight) | ||
612 | ---------------------------------- | ||
613 | 0 | 338 | ||
614 | 255 | 300 | ||
615 | 31 | 280 | ||
616 | Fictive 1 | 25 | ||
617 | 77 | 24 | ||
618 | 115 | 21 | ||
619 | |||
620 | Note that the list is sorted... The smallest values in the frequences are 21 and | ||
621 | 24. That is why we will take the bytes 77 and 115 to build the fictive node 2. | ||
622 | |||
623 | (Fictive 2,45) | ||
624 | /\ | ||
625 | / \ | ||
626 | (115,21) (77,25) | ||
627 | |||
628 | Listed bytes | Frequences (Weight) | ||
629 | ---------------------------------- | ||
630 | 0 | 338 | ||
631 | 255 | 300 | ||
632 | 31 | 280 | ||
633 | Fictive 2 | 45 | ||
634 | Fictive 1 | 25 | ||
635 | |||
636 | The nodes with smallest weights are the fictive 1 and 2 nodes. These are joined | ||
637 | to build the fictive node 3 whose weight is 40+25=70. | ||
638 | |||
639 | (Fictive 3,70) | ||
640 | / \ | ||
641 | / \ | ||
642 | / \ | ||
643 | /\ / \ | ||
644 | / \ / \ | ||
645 | (222,5) (83,20) (115,21) (77,25) | ||
646 | |||
647 | Listed bytes | Frequences (Weight) | ||
648 | ---------------------------------- | ||
649 | 0 | 338 | ||
650 | 255 | 300 | ||
651 | 31 | 280 | ||
652 | Fictive 3 | 70 | ||
653 | |||
654 | The fictive node 3 is linked to the byte 31. Total weight: 280+70=350. | ||
655 | |||
656 | (Fictive 4,350) | ||
657 | / \ | ||
658 | / \ | ||
659 | / \ | ||
660 | / \ (31,280) | ||
661 | / \ | ||
662 | / \ | ||
663 | /\ / \ | ||
664 | / \ / \ | ||
665 | (222,5) (83,20) (115,21) (77,25) | ||
666 | |||
667 | Listed bytes | Frequences (Weight) | ||
668 | ---------------------------------- | ||
669 | Fictive 4 | 350 | ||
670 | 0 | 338 | ||
671 | 255 | 300 | ||
672 | |||
673 | As you see, being that we sort the list, the fictive node 4 has become the first | ||
674 | of the list. We join the bytes 0 and 255 in a same fictive node, the number 5 | ||
675 | whose weight is 338+300=638. | ||
676 | |||
677 | (Fictive 5,638) | ||
678 | /\ | ||
679 | / \ | ||
680 | (255,300) (0,338) | ||
681 | |||
682 | Listed bytes | Frequences (Weight) | ||
683 | ---------------------------------- | ||
684 | Fictive 5 | 638 | ||
685 | Fictive 4 | 350 | ||
686 | |||
687 | The fictive nodes 4 and 5 are finally joined. Final weight: 638+350=998 bytes. | ||
688 | It is actually the total byte number in the initial file: 338+300+24+21+20+5. | ||
689 | |||
690 | (Tree,998) | ||
691 | 1 / \ 0 | ||
692 | <- / \ -> | ||
693 | / \ | ||
694 | / \ | ||
695 | / \ | ||
696 | / \ / \ | ||
697 | / \ / \ | ||
698 | / \ / \ | ||
699 | / \ (31,280) (255,300) (0,338) | ||
700 | / \ | ||
701 | / \ | ||
702 | /\ / \ | ||
703 | / \ / \ | ||
704 | (222,5) (83,20) (115,21) (77,25) | ||
705 | |||
706 | Bytes | Huffman codes | Frequences | Binary length*Frequence | ||
707 | ------------------------------------------------------------ | ||
708 | 0 | 00b | 338 | 676 | ||
709 | 255 | 01b | 300 | 600 | ||
710 | 31 | 10b | 280 | 560 | ||
711 | 77 | 1101b | 24 | 96 | ||
712 | 115 | 1100b | 21 | 84 | ||
713 | 83 | 1110b | 20 | 80 | ||
714 | 222 | 1111b | 5 | 20 | ||
715 | |||
716 | Results: Original file size: (338+300+280+24+21+20+5)*8=7904 bits (=998 bytes) | ||
717 | versus 676+600+560+96+84+80+20=2116 bits, i.e. 2116/8=265 bytes. | ||
718 | |||
719 | Now you know how to code an input stream. The last problem is to decode all this | ||
720 | stuff. Actually, when you meet a binary sequence you can't say whether it comes | ||
721 | from such byte list or such other one. Furthermore, if you change the occurrence | ||
722 | of one or two bytes, you won't obtain the same resulting binary tree. Try for | ||
723 | example to encode the previous list but with the following occurrences: | ||
724 | |||
725 | Listed bytes | Frequences (Weight) | ||
726 | ---------------------------------- | ||
727 | 255 | 418 | ||
728 | 0 | 300 | ||
729 | 31 | 100 | ||
730 | 77 | 24 | ||
731 | 115 | 21 | ||
732 | 83 | 20 | ||
733 | 222 | 5 | ||
734 | |||
735 | As you can observe it, the resulting binary tree is quite different, we had yet | ||
736 | the same initial bytes. To not be in such a situation we will put an header | ||
737 | in front of all data. I can't comment longly this header but I can say | ||
738 | I minimize it as much as I could. The header is divided into two parts. | ||
739 | The first part of this header looks closely to a boolean table (coded more or | ||
740 | less in binary to save space) and the second part provide to the decoder | ||
741 | the binary code associated to each byte encountered in the original input | ||
742 | stream. | ||
743 | |||
744 | Here is a summary of the header: | ||
745 | |||
746 | First part | ||
747 | ---------- | ||
748 | First bit | ||
749 | / \ | ||
750 | 1 / \ 0 | ||
751 | / \ | ||
752 | 256 bits set to 0 or 1 5 bits for the number n (minus 1) | ||
753 | depending whether the of bytes encountered | ||
754 | corresponding byte was in the file to compres | ||
755 | in the file to compress | | ||
756 | (=> n bits set to 1, \ / | ||
757 | n>32) n values of 8-bits (n<=32) | ||
758 | \ / | ||
759 | \ / | ||
760 | \ / | ||
761 | Second part | | ||
762 | ----------- | | ||
763 | | | ||
764 | +------------->| | ||
765 | (n+1) times | | | ||
766 | (n bytes of | First bit? | ||
767 | the values | / \ | ||
768 | encountered | 1 / \ 0 | ||
769 | in the | / \ | ||
770 | source file | 8 bits of 5 bits of the | ||
771 | + the code | the length length (-1) | ||
772 | of a | (-1) of the of the following | ||
773 | fictive | following binary | ||
774 | byte | binary code code | ||
775 | to stop the | (length>32) (length<=32) | ||
776 | decoding. | \ / | ||
777 | The fictive | \ / | ||
778 | is set to | \ / | ||
779 | 256 in the | | | ||
780 | Huffman | binary code | ||
781 | -tree of | | | ||
782 | encoding) +--------------| | ||
783 | | | ||
784 | Binary encoding of the source file | ||
785 | | | ||
786 | Code of end of encoding | ||
787 | | | ||
788 | |||
789 | |||
790 | With my codecs I can handle binary sequences with a length of 256 bits. | ||
791 | This correspond to encode all the input stream from one byte to infinite length. | ||
792 | In fact if a byte had a range from 0 to 257 instead of 0 to 255, I would have a | ||
793 | bug with my codecs with an input stream of at least 370,959,230,771,131,880,927, | ||
794 | 453,318,055,001,997,489,772,178,180,790,105 bytes !!! | ||
795 | |||
796 | Where come this explosive number? In fact, to have a severe bug, I must have | ||
797 | a completely unbalanced tree: | ||
798 | |||
799 | Tree | ||
800 | /\ | ||
801 | \ | ||
802 | /\ | ||
803 | \ | ||
804 | /\ | ||
805 | \ | ||
806 | ... | ||
807 | /\ | ||
808 | \ | ||
809 | /\ | ||
810 | |||
811 | Let's take the following example: | ||
812 | |||
813 | Listed bytes | Frequences (Weight) | ||
814 | ---------------------------------- | ||
815 | 32 | 5 | ||
816 | 101 | 3 | ||
817 | 97 | 2 | ||
818 | 100 | 1 | ||
819 | 115 | 1 | ||
820 | |||
821 | This produces the following unbalanced tree: | ||
822 | |||
823 | Tree | ||
824 | /\ | ||
825 | (32,5) \ | ||
826 | /\ | ||
827 | (101,3) \ | ||
828 | /\ | ||
829 | (97,2) \ | ||
830 | /\ | ||
831 | (115,1) (100,1) | ||
832 | |||
833 | Let's speak about a mathematical series: The Fibonacci series. It is defined as | ||
834 | following: | ||
835 | |||
836 | { Fib(0)=0 | ||
837 | { Fib(1)=1 | ||
838 | { Fib(n)=Fib(n-2)+Fib(n-1) | ||
839 | |||
840 | Fib(0)=0, Fib(1)=1, Fib(2)=1, Fib(3)=2, Fib(4)=3, Fib(5)=5, Fib(6)=8, Fib(7)=13, | ||
841 | etc. | ||
842 | |||
843 | But 1, 1, 2, 3, 5, 8 are the occurrences of our list! We can actually | ||
844 | demonstrate that to have an unbalanced tree, we have to take a list with | ||
845 | an occurrence based on the Fibonacci series (these values are minimal). | ||
846 | If the data to compress have m different bytes, when the tree is unbalanced, | ||
847 | the longest code need m-1 bits. In our little previous example where m=5, | ||
848 | the longest codes are associated to the bytes 100 and 115, respectively coded | ||
849 | 0001b and 0000b. We can also say that to have an unbalanced tree we must have | ||
850 | at least 5+3+2+1+1=12=Fib(7)-1. To conclude about all that, with a coder that | ||
851 | uses m-1 bits, you must never have an input stream size over than Fib(m+2)-1, | ||
852 | otherwise, there could be a bug in the output stream. Of course, with my codecs | ||
853 | there will never be a bug because I can deal with binary code sizes of 1 to 256 | ||
854 | bits. Some encoder could use that with m=31, Fib(31+2)-1=3,524,577 and m=32, | ||
855 | Fib(32+2)-1=5,702,886. And an encoder that uses unisgned integer of 32 bits | ||
856 | shouldn't have a bug until about 4 Gb... | ||
857 | |||
858 | +==========================================================+ | ||
859 | | The LZW encoding | | ||
860 | +==========================================================+ | ||
861 | |||
862 | The LZW scheme is due to three searchers, i.e. Abraham Lempel and Jacob Ziv | ||
863 | worked on it in 1977, and Terry Welch achieved this scheme in 1984. | ||
864 | |||
865 | LZW is patented in USA. This patent, number 4,558,302, is covered by Unisys | ||
866 | Corporation. You can usually write (without fees) software codecs which use | ||
867 | the LZW scheme but hardware companies can't do so. You may get a limited | ||
868 | licence by writting to: | ||
869 | Welch Licencing Department | ||
870 | Office of the General Counsel | ||
871 | M/S C1SW19 | ||
872 | Unisys corporation | ||
873 | Blue Bell | ||
874 | Pennsylvania, 19424 (USA) | ||
875 | |||
876 | If you're occidental, you are surely using an LZW encoding every time you are | ||
877 | speaking, especially when you use a dictionary. Let's consider, for example, | ||
878 | the word "Cirrus". As you read a dictionary, you begin with "A", "Aa", and so | ||
879 | on. But a computer has no experience and it must suppose that some words | ||
880 | already exist. That is why with "Cirrus", it supposes that "C", "Ci", "Cir", | ||
881 | "Cirr", "Cirru", and "Cirrus" exist. Of course, being that this is a computer, | ||
882 | all these words are encoded as index numbers. Every time you go forward, you add | ||
883 | a new number associated to the new word. Being that a computer is byte-based | ||
884 | and not alphabetic-based, you have an initial dictionary of 256 letters instead | ||
885 | of our 26 ('A' to 'Z') letters. | ||
886 | |||
887 | Example: Let's code "XYXYZ". First step, "X" is recognized in the initial | ||
888 | dictionary of 256 letters as the 89th. Second step, "Y" is read. Does "XY" | ||
889 | exist? No, then "XY" is stored as the word 256. You write in the output stream | ||
890 | the ASCII of "X", i.e. 88. Now "YX" is tested as not referenced in the current | ||
891 | dictionary. It is stored as the word 257. You write now in the output stream 89 | ||
892 | (ASCII of "Y"). "XY" is now met. But now "XY" is known as the reference 256. | ||
893 | Being that "XY" exists, you test the sequence with one more letter, i.e. "XYZ". | ||
894 | This last word is not referenced in the current dictionary. You write then the | ||
895 | value 256. Finally, you reach the last letter ("Z"). You add "YZ" as the | ||
896 | reference 258 but it is the last letter. That is why you just write the value | ||
897 | 90 (ASCII of "Z"). | ||
898 | |||
899 | Another encoding sample with the string "ABADABCCCABCEABCECCA". | ||
900 | |||
901 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
902 | |Step|Input|Dictionary test|Prefix|New symbol|Dictionary |Output| | ||
903 | | | | | | |D0=ASCII with 256 letters| | | ||
904 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
905 | | 1 | "A" |"A" in D0 | "A" | "B" | D1=D0 | 65 | | ||
906 | | | "B" |"AB" not in D0 | | | and "AB"=256 | | | ||
907 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
908 | | 2 | "A" |"B" in D1 | "B" | "A" | D2=D1 | 66 | | ||
909 | | | |"BA" not in D1 | | | and "BA"=257 | | | ||
910 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
911 | | 3 | "D" |"A" in D2 | "A" | "D" | D3=D2 | 65 | | ||
912 | | | |"AD" not in D2 | | | and "AD"=258 | | | ||
913 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
914 | | 4 | "A" |"D" in D3 | "D" | "A" | D4=D3 | 68 | | ||
915 | | | |"DA" not in D3 | | | and "DA"=259 | | | ||
916 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
917 | | 5 | "B" |"A" in D4 | "AB" | "C" | D5=D4 | 256 | | ||
918 | | | "C" |"AB" in D4 | | | and "ABC"=260 | | | ||
919 | | | |"ABC" not in D4| | | | | | ||
920 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
921 | | 6 | "C" |"C" in D5 | "C" | "C" | D6=D5 | 67 | | ||
922 | | | |"CC" not in D5 | | | and "CC"=261 | | | ||
923 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
924 | | 7 | "C" |"C" in D6 | "CC" | "A" | D7=D6 | 261 | | ||
925 | | | "A" |"CC" in D6 | | | and "CCA"=262 | | | ||
926 | | | |"CCA" not in D6| | | | | | ||
927 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
928 | | 8 | "B" |"A" in D7 | "ABC"| "E" | D8=D7 | 260 | | ||
929 | | | "C" |"AB" in D7 | | | and "ABCE"=263 | | | ||
930 | | | "E" |"ABC" in D7 | | | | | | ||
931 | | | <"ABCE" not in D7| | | | | | ||
932 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
933 | | 9 | "A" |"E" in D8 | "E" | "A" | D9=D8 | 69 | | ||
934 | | | |"EA" not in D8 | | | and "EA"=264 | | | ||
935 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
936 | | 10 | "B" |"A" in D9 |"ABCE"| "C" | D10=D9 | 263 | | ||
937 | | | "C" |"AB" in D9 | | | and "ABCEC"=265 | | | ||
938 | | | "E" |"ABC" in D9 | | | | | | ||
939 | | | "C" |"ABCE" in D9 | | | | | | ||
940 | | | <"ABCEC" not in D9> | | | | | ||
941 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
942 | | 11 | "C" |"C" in D10 | "CCA"| | | 262 | | ||
943 | | | "A" |"CC" in D10 | | | | | | ||
944 | | | <"CCA" not in D10| | | | | | ||
945 | +----+-----+---------------+------+----------+-------------------------+------+ | ||
946 | |||
947 | You will notice a problem with the above output: How to write a code of 256 | ||
948 | (for example) on 8 bits? It's simple to solve this problem. You just say that | ||
949 | the encoding starts with 9 bits and as you reach the 512th word, you use a | ||
950 | 10-bits encoding. With 1024 words, you use 11 bits; with 2048 words, 12 bits; | ||
951 | and so on with all numbers of 2^n (n is positive). To better synchronize | ||
952 | the coder and the decoder with all that, most of implementations use two | ||
953 | additional references. The word 256 is a code of reinitialisation (the codec | ||
954 | must reinitialize completely the current dictionary to its 256 initial letters) | ||
955 | and the word 257 is a code of end of information (no more data to read). | ||
956 | Of course, you start your first new word as the code number 258. | ||
957 | |||
958 | You can also do so as in the GIF file format and start with an initial | ||
959 | dictionary of 18 words to code an input stream with only letters coded on 4 bits | ||
960 | (you start with codes of 5 bits in the output stream!). The 18 initial words | ||
961 | are: 0 to 15 (initial letters), 16 (reinit the dictionary), and 17 (end of | ||
962 | information). First new word has code 18, second word, code 19, ... | ||
963 | |||
964 | Important: You can consider that your dictionary is limited to 4096 different | ||
965 | words (as in GIF and TIFF file formats). But if your dictionary is full, you | ||
966 | can decide to send old codes *without* reinitializing the dictionary. All the | ||
967 | decoders must be compliant with this. This enables you to consider that it is | ||
968 | not efficient to reinitialize the full dictionary. Instead of this, you don't | ||
969 | change the dictionary and you send/receive (depending if it's a coder or a | ||
970 | decoder) existing codes in the full dictionary. | ||
971 | |||
972 | My codecs are able to deal as well with most of initial size of data in the | ||
973 | initial dictionary as with full dictionary. | ||
974 | |||
975 | Let's see how to decode an LZW encoding. We saw with true dynamical Huffman | ||
976 | scheme that you needed an header in the encoding codes. Any header is useless | ||
977 | in LZW scheme. When two successive bytes are read, the first must exist in the | ||
978 | dictionary. This code can be immediately decoded and written in the output | ||
979 | stream. If the second code is equal or less than the word number in the current | ||
980 | dictionary, this code is decoded as the first one. At the opposite, if the | ||
981 | second code is equal to the word number in dictionary plus one, this means you | ||
982 | have to write a word composed with the word (the sentence, not the code number) | ||
983 | of the last code plus the first character of the last code. In between, you make | ||
984 | appear a new word. This new word is the one you just sent to the output stream, | ||
985 | it means composed by all the letters of the word associated to the first code | ||
986 | and the first letter of the word of the second code. You continue the processing | ||
987 | with the second and third codes read in the input stream (of codes)... | ||
988 | |||
989 | Example: Let's decode the previous encoding given a bit more above. | ||
990 | |||
991 | +------+-------+----------------+----------+------------------+--------+ | ||
992 | | Step | Input | Code to decode | New code | Dictionary | Output | | ||
993 | +------+-------+----------------+----------+------------------+--------+ | ||
994 | | 1 | 65 | 65 | 66 | 65,66=256 | "A" | | ||
995 | | | 66 | | | | | | ||
996 | +------+-------+----------------+----------+------------------+--------+ | ||
997 | | 2 | 65 | 66 | 65 | 66,65=257 | "B" | | ||
998 | +------+-------+----------------+----------+------------------+--------+ | ||
999 | | 3 | 68 | 65 | 68 | 65,68=258 | "A" | | ||
1000 | +------+-------+----------------+----------+------------------+--------+ | ||
1001 | | 4 | 256 | 68 | 256 | 68,65=259 | "D" | | ||
1002 | +------+-------+----------------+----------+------------------+--------+ | ||
1003 | | 5 | 67 | 256 | 67 | 65,66,67=260 | "AB" | | ||
1004 | +------+-------+----------------+----------+------------------+--------+ | ||
1005 | | 6 | 261 | 67 | 261 | 67,67=261 | "C" | | ||
1006 | +------+-------+----------------+----------+------------------+--------+ | ||
1007 | | 7 | 260 | 261 | 260 | 67,67,65=262 | "CC" | | ||
1008 | +------+-------+----------------+----------+------------------+--------+ | ||
1009 | | 8 | 69 | 260 | 69 | 65,66,67,69=263 | "ABC" | | ||
1010 | +------+-------+----------------+----------+------------------+--------+ | ||
1011 | | 9 | 263 | 69 | 263 | 69,65=264 | "E" | | ||
1012 | +------+-------+----------------+----------+------------------+--------+ | ||
1013 | | 10 | 262 | 263 | 262 |65,66,67,69,67=256| "ABCE" | | ||
1014 | +------+-------+----------------+----------+------------------+--------+ | ||
1015 | | 11 | | 262 | | | "CCA" | | ||
1016 | +------+-------+----------------+----------+------------------+--------+ | ||
1017 | |||
1018 | Summary: The step 4 is an explicit example. The code to decode is 68 ("D" in | ||
1019 | ASCII) and the new code is 256. The new word to add to the dictionary is the | ||
1020 | letters of the first word plus the the first letter of the second code (code | ||
1021 | 256), i.e. 65 ("A" in ASCII) plus 68 ("D"). So the new word has the letters 68 | ||
1022 | and 65 ("AD"). | ||
1023 | |||
1024 | The step 6 is quite special. The first code to decode is referenced but the | ||
1025 | second new code is not referenced being that the dictionary is limited to 260 | ||
1026 | referenced words. We have to make it as the second previously given case, it | ||
1027 | means you must take the word to decode plus its first letter, i.e. "C"+"C"="CC". | ||
1028 | Be care, if any encountered code is *upper* than the dictionary size plus 1, it | ||
1029 | means you have a problem in your data and/or your codecs are...bad! | ||
1030 | |||
1031 | Tricks to improve LZW encoding (but it becomes a non-standard encoding): | ||
1032 | - To limit the dictionary to an high amount of words (4096 words maximum enable | ||
1033 | you to encode a stream of a maximmum 7,370,880 letters with the same dictionary) | ||
1034 | - To use a dictionary of less than 258 if possible (example, with 16 color | ||
1035 | pictures, you start with a dictionary of 18 words) | ||
1036 | - To not reinitialize a dictionary when it is full | ||
1037 | - To reinitialize a dictionary with the most frequent of the previous dictionary | ||
1038 | - To use the codes from (current dictionary size+1) to (maximum dictionary size) | ||
1039 | because these codes are not used in the standard LZW scheme. | ||
1040 | Such a compression scheme has been used (successfully) by Robin Watts | ||
1041 | <ct93008@ox.ac.uk>. | ||
1042 | |||
1043 | +==========================================================+ | ||
1044 | | Summary | | ||
1045 | +==========================================================+ | ||
1046 | |||
1047 | ------------------------------------------------- | ||
1048 | RLE type 1: | ||
1049 | Fastest compression. Good ratio for general purpose. | ||
1050 | Doesn't need to read the data by twice. | ||
1051 | Decoding fast. | ||
1052 | ------------------------------------------------- | ||
1053 | RLE type 2: | ||
1054 | Fast compression. Very good ratio in general (even for general purposes). | ||
1055 | Need to read the data by twice. | ||
1056 | Decoding fast. | ||
1057 | ------------------------------------------------- | ||
1058 | RLE type 3: | ||
1059 | Slowest compression. Good ratio on image file,quite middle for general purposes. | ||
1060 | Need to read the data by twice. | ||
1061 | Change line: | ||
1062 | #define MAX_RASTER_SIZE 256 | ||
1063 | into: | ||
1064 | #define MAX_RASTER_SIZE 16 | ||
1065 | to speed up the encoding (but the result decreases in ratio). If you compress | ||
1066 | with memory buffers, do not modify this line... | ||
1067 | Decoding fast. | ||
1068 | ------------------------------------------------- | ||
1069 | RLE type 4: | ||
1070 | Slow compression. Good ratio on image file, middle in general purposes. | ||
1071 | Change line: | ||
1072 | #define MAX_RASTER_SIZE 66 | ||
1073 | into: | ||
1074 | #define MAX_RASTER_SIZE 16 | ||
1075 | to speed up the encoding (but the result decreases in ratio). If you compress | ||
1076 | with memory buffers, do not modify this line... | ||
1077 | Decoding fast. | ||
1078 | ------------------------------------------------- | ||
1079 | Huffman: | ||
1080 | Fast compression. Good ratio on text files and similar, middle for general | ||
1081 | purposes. Interesting method to use to compress a buffer already compressed by | ||
1082 | RLE types 1 or 2 methods... | ||
1083 | Decoding fast. | ||
1084 | ------------------------------------------------- | ||
1085 | LZW: | ||
1086 | Quite fast compression. Good, see even very good ratio, for general purposes. | ||
1087 | Bigger the data are, better the compression ratio is. | ||
1088 | Decoding quite fast. | ||
1089 | ------------------------------------------------- | ||
1090 | |||
1091 | The source codes work on all kinds of computers with a C compiler. | ||
1092 | With the compiler, optimize the speed run option instead of space option. | ||
1093 | With UNIX system, it's better to compile them with option -O. | ||
1094 | If you don't use a GNU compiler, the source file MUST NOT have a size | ||
1095 | over 4 Gb for RLE 2, 3, and Huffman, because I count the number | ||
1096 | of occurrences of the bytes. | ||
1097 | So, with GNU compilers, 'unsigned lont int' is 8 bytes instead of 4 bytes | ||
1098 | (as normal C UNIX compilers and PCs' compilers, such as Microsoft C++ | ||
1099 | and Borland C++). | ||
1100 | Actually: | ||
1101 | * Normal UNIX compilers, => 4 Gb (unsigned long int = 4 bytes) | ||
1102 | Microsoft C++ and Borland C++ for PCs | ||
1103 | * GNU UNIX compilers => 17179869184 Gb (unsigned long int = 8 bytes) | ||
1104 | |||
1105 | +==========================================================+ | ||
1106 | | END | | ||
1107 | +==========================================================+ | ||
diff --git a/baseline/source/huff_enc/huff_enc.c b/baseline/source/huff_enc/huff_enc.c new file mode 100644 index 0000000..2e739e6 --- /dev/null +++ b/baseline/source/huff_enc/huff_enc.c | |||
@@ -0,0 +1,589 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: huff_enc | ||
7 | |||
8 | Author: David Bourgin (David.Bourgin@ufrima.imag.fr) | ||
9 | |||
10 | Function: Example of Huffman encoding | ||
11 | |||
12 | Source: ftp://turing.imag.fr/pub/compression/ (1994-09-22) | ||
13 | |||
14 | Original name: codhuff.c | ||
15 | |||
16 | Changes: I/O to char arrays instead of file i/o. | ||
17 | Dynamic memory allocation replaced by array. | ||
18 | Explicit sorting algorithm. | ||
19 | |||
20 | License: | ||
21 | |||
22 | The source code files (codrl1.c, dcodrl1.c, codrle2.c, dcodrle2.c, codrle3.c, | ||
23 | dcodrle3.c, codrle4.c, dcodrle4.c, codhuff.c, dcodhuff.c) are copyrighted. | ||
24 | They have been uploaded on ftp in turing.imag.fr (129.88.31.7):/pub/compression | ||
25 | on 22/5/94 and have been modified on 22/9/94. | ||
26 | (c) David Bourgin - 1994 | ||
27 | The source codes I provide have no buggs (!) but being that I make them | ||
28 | available for free I have some notes to make. They can change at any time | ||
29 | without notice. I assume no responsability or liability for any errors or | ||
30 | inaccurracies, make no warranty of any kind (express, implied or statutory) | ||
31 | with respect to this publication and expressly disclaim any and all warranties | ||
32 | of merchantability, fitness for particular purposes. Of course, if you have | ||
33 | some problems to use the information presented here, I will try to help you if | ||
34 | I can. | ||
35 | |||
36 | If you include the source codes in your application, here are the conditions: | ||
37 | - You have to put my name in the header of your source file (not in the | ||
38 | excutable program if you don't want) (this item is a must) | ||
39 | - I would like to see your resulting application, if possible (this item is not | ||
40 | a must, because some applications must remain secret) | ||
41 | - Whenever you gain money with your application, I would like to receive a very | ||
42 | little part in order to be encouraged to update my source codes and to develop | ||
43 | new schemes (this item is not a must) | ||
44 | |||
45 | */ | ||
46 | |||
47 | |||
48 | /* | ||
49 | Declaration of types | ||
50 | */ | ||
51 | |||
52 | |||
53 | #include "../extra.h" | ||
54 | typedef struct huff_enc_s_tree { | ||
55 | unsigned int byte; /* A byte has to be coded as an unsigned integer to | ||
56 | allow a node to have a value over 255 */ | ||
57 | unsigned long int weight; | ||
58 | struct huff_enc_s_tree *left_ptr; | ||
59 | struct huff_enc_s_tree *right_ptr; | ||
60 | } huff_enc_t_tree; | ||
61 | |||
62 | typedef struct { | ||
63 | unsigned char bits[32]; | ||
64 | unsigned int bits_nb; | ||
65 | } huff_enc_t_bin_val; | ||
66 | |||
67 | |||
68 | /* | ||
69 | Forward declaration of functions | ||
70 | */ | ||
71 | |||
72 | void huff_enc_init( void ); | ||
73 | int huff_enc_return( void ); | ||
74 | void huff_enc_beginning_of_data(); | ||
75 | int huff_enc_end_of_data(); | ||
76 | int huff_enc_read_byte(); | ||
77 | void huff_enc_write_byte( char ch ); | ||
78 | void huff_enc_write_bin_val( huff_enc_t_bin_val bin_val ); | ||
79 | void huff_enc_fill_encoding( void ); | ||
80 | void huff_enc_write_header( huff_enc_t_bin_val codes_table[257] ); | ||
81 | int huff_enc_weighhuff_enc_t_tree_comp( const void *t1, const void *t2 ); | ||
82 | void huff_enc_swapi( char *ii, char *ij, unsigned long es ); | ||
83 | char *huff_enc_pivot( char *a, unsigned long n, unsigned long es ); | ||
84 | void huff_enc_qsort( char *a, unsigned long n, unsigned long es ); | ||
85 | huff_enc_t_tree *huff_enc_build_tree_encoding( huff_enc_t_tree heap[514] ); | ||
86 | void huff_enc_encode_codes_table( huff_enc_t_tree *tree, | ||
87 | huff_enc_t_bin_val codes_table[257], huff_enc_t_bin_val *code_val ); | ||
88 | void huff_enc_create_codes_table( huff_enc_t_tree *tree, | ||
89 | huff_enc_t_bin_val codes_table[257] ); | ||
90 | void huff_enc_main(); | ||
91 | //int main( void ); | ||
92 | |||
93 | |||
94 | /* | ||
95 | Declaration of global variables | ||
96 | */ | ||
97 | |||
98 | static int huff_enc_input_pos; | ||
99 | static int huff_enc_output_pos; | ||
100 | static unsigned char huff_enc_output[1024]; | ||
101 | static unsigned char huff_enc_byte_nb_to_write = 0; | ||
102 | static unsigned char huff_enc_val_to_write = 0; | ||
103 | |||
104 | |||
105 | /* | ||
106 | Initialization- and return-value-related functions | ||
107 | */ | ||
108 | |||
109 | #define huff_enc_plaintext_len 600 | ||
110 | static const char *huff_enc_plaintext = | ||
111 | "You are doubtless asking \"How can I reduce the data size without losing " | ||
112 | "some informations?\". It's easy to answer to this question. I'll only take " | ||
113 | "an example. I'm sure you have heard about the morse. This system established " | ||
114 | "in the 19th century use a scheme very close to the huffman one. In the morse " | ||
115 | "you encode the letters to transmit with two kinds of signs. If you encode " | ||
116 | "these two sign possibilities in one bit, the symbol 'e' is transmitted in a " | ||
117 | "single bit and the symbols 'y' and 'z' need four bits. Look at the symbols " | ||
118 | "in the text you are reading, you'll fast understand the compression ratio..."; | ||
119 | |||
120 | #define huff_enc_encoded_len 419 | ||
121 | static unsigned char huff_enc_encoded[huff_enc_encoded_len] = { | ||
122 | 128, 0, 0, 0, 80, 133, 32, 32, 128, 100, 4, 32, 63, 239, 255, 240, | ||
123 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
124 | 4, 7, 167, 21, 129, 232, 69, 120, 132, 217, 20, 162, 19, 164, 39, 133, | ||
125 | 252, 138, 105, 20, 194, 19, 129, 240, 172, 138, 248, 150, 11, 11, 240, 201, | ||
126 | 68, 64, 114, 53, 17, 42, 37, 195, 128, 212, 116, 194, 41, 98, 52, 51, | ||
127 | 12, 132, 112, 244, 3, 36, 33, 52, 39, 135, 164, 33, 62, 156, 87, 14, | ||
128 | 110, 22, 87, 50, 85, 198, 99, 142, 140, 194, 81, 78, 158, 84, 129, 254, | ||
129 | 129, 248, 110, 179, 159, 192, 145, 133, 184, 184, 28, 210, 96, 146, 73, 10, | ||
130 | 226, 21, 83, 152, 74, 13, 111, 132, 199, 202, 219, 241, 74, 193, 167, 105, | ||
131 | 222, 31, 147, 6, 55, 31, 129, 40, 232, 52, 153, 160, 148, 18, 36, 197, | ||
132 | 45, 216, 202, 86, 30, 31, 177, 90, 133, 138, 248, 23, 81, 195, 160, 100, | ||
133 | 215, 93, 50, 185, 225, 251, 23, 6, 230, 225, 229, 112, 71, 80, 96, 141, | ||
134 | 205, 176, 230, 85, 196, 9, 24, 93, 90, 121, 225, 76, 68, 152, 63, 25, | ||
135 | 107, 140, 101, 204, 214, 77, 26, 194, 96, 18, 48, 77, 210, 137, 1, 253, | ||
136 | 4, 230, 248, 56, 240, 224, 111, 163, 95, 10, 12, 223, 7, 234, 167, 129, | ||
137 | 40, 36, 96, 135, 125, 245, 250, 2, 198, 120, 127, 0, 145, 133, 213, 167, | ||
138 | 135, 149, 195, 67, 235, 108, 9, 24, 87, 17, 102, 152, 37, 4, 222, 131, | ||
139 | 188, 144, 73, 36, 128, 73, 20, 81, 152, 177, 133, 248, 28, 165, 131, 120, | ||
140 | 127, 240, 242, 184, 104, 125, 109, 129, 35, 30, 4, 145, 65, 202, 88, 9, | ||
141 | 138, 103, 44, 205, 100, 167, 24, 152, 11, 24, 51, 37, 66, 9, 24, 31, | ||
142 | 174, 202, 212, 49, 152, 18, 96, 155, 208, 119, 146, 45, 97, 48, 56, 28, | ||
143 | 194, 90, 224, 204, 144, 232, 176, 36, 96, 126, 187, 43, 83, 12, 121, 129, | ||
144 | 209, 96, 197, 35, 2, 54, 176, 249, 92, 208, 204, 145, 188, 41, 170, 180, | ||
145 | 71, 16, 36, 96, 126, 187, 43, 83, 19, 0, 145, 129, 100, 209, 15, 43, | ||
146 | 135, 55, 6, 238, 180, 194, 90, 17, 229, 115, 21, 168, 251, 140, 131, 162, | ||
147 | 217, 166, 93, 22, 4, 140, 31, 91, 166, 55, 25, 202, 192, 111, 20, 171, | ||
148 | 207, 39, 192, | ||
149 | }; | ||
150 | |||
151 | |||
152 | void huff_enc_init( void ) | ||
153 | { | ||
154 | huff_enc_input_pos = 0; | ||
155 | huff_enc_output_pos = 0; | ||
156 | } | ||
157 | |||
158 | |||
159 | int huff_enc_return( void ) | ||
160 | { | ||
161 | int i; | ||
162 | _Pragma( "loopbound min 1 max 419" ) | ||
163 | for ( i = 0; i < huff_enc_encoded_len; i++ ) { | ||
164 | if ( huff_enc_encoded[i] != huff_enc_output[i] ) return i + 1; | ||
165 | } | ||
166 | return 0; | ||
167 | } | ||
168 | |||
169 | |||
170 | /* | ||
171 | Input / output functions | ||
172 | */ | ||
173 | |||
174 | void huff_enc_beginning_of_data() | ||
175 | { | ||
176 | huff_enc_input_pos = 0; | ||
177 | } | ||
178 | |||
179 | |||
180 | int huff_enc_end_of_data() | ||
181 | { | ||
182 | return huff_enc_input_pos >= huff_enc_plaintext_len; | ||
183 | } | ||
184 | |||
185 | |||
186 | int huff_enc_read_byte() | ||
187 | { | ||
188 | return huff_enc_plaintext[huff_enc_input_pos++]; | ||
189 | } | ||
190 | |||
191 | |||
192 | void huff_enc_write_byte( char ch ) | ||
193 | { | ||
194 | huff_enc_output[huff_enc_output_pos++] = ch; | ||
195 | } | ||
196 | |||
197 | |||
198 | void huff_enc_write_bin_val( huff_enc_t_bin_val bin_val ) | ||
199 | /* Returned parameters: None | ||
200 | Action: Writes in the output stream the value binary-coded into 'bin_val' | ||
201 | Errors: An input/output error could disturb the running of the program | ||
202 | */ | ||
203 | { | ||
204 | unsigned char bit_indice; | ||
205 | unsigned char bin_pos = ( bin_val.bits_nb - 1 ) & 7; | ||
206 | unsigned int pos_byte = ( bin_val.bits_nb - 1 ) >> 3; | ||
207 | |||
208 | for ( bit_indice = 1; | ||
209 | bit_indice <= bin_val.bits_nb; | ||
210 | bit_indice++ ) { | ||
211 | /* Watch for the current bit to write */ | ||
212 | huff_enc_val_to_write = ( huff_enc_val_to_write << 1 ) | | ||
213 | ( ( bin_val.bits[pos_byte] >> bin_pos ) & 1 ); | ||
214 | /* Move to the next bit to write */ | ||
215 | if ( !bin_pos ) { | ||
216 | pos_byte--; | ||
217 | bin_pos = 7; | ||
218 | } else bin_pos--; | ||
219 | if ( huff_enc_byte_nb_to_write == 7 ) { | ||
220 | /* Are already 8 bits written? */ | ||
221 | huff_enc_write_byte( huff_enc_val_to_write ); | ||
222 | huff_enc_byte_nb_to_write = 0; | ||
223 | huff_enc_val_to_write = 0; | ||
224 | } else /* No, then the next writting will be in the next bit */ | ||
225 | huff_enc_byte_nb_to_write++; | ||
226 | } | ||
227 | } | ||
228 | |||
229 | |||
230 | void huff_enc_fill_encoding( void ) | ||
231 | /* Returned parameters: None | ||
232 | Action: Fills the last byte to write in the output stream with zero values | ||
233 | Errors: An input/output error could disturb the running of the program | ||
234 | */ | ||
235 | { | ||
236 | if ( huff_enc_byte_nb_to_write ) | ||
237 | huff_enc_write_byte( huff_enc_val_to_write << | ||
238 | ( 8 - huff_enc_byte_nb_to_write ) ); | ||
239 | } | ||
240 | |||
241 | |||
242 | void huff_enc_write_header( huff_enc_t_bin_val codes_table[257] ) | ||
243 | /* Returned parameters: None | ||
244 | Action: Writes the header in the stream of codes | ||
245 | Errors: An input/output error could disturb the running of the program | ||
246 | */ | ||
247 | { | ||
248 | unsigned int i, j; | ||
249 | huff_enc_t_bin_val bin_val_to_0; | ||
250 | huff_enc_t_bin_val bin_val_to_1; | ||
251 | huff_enc_t_bin_val bin_val; | ||
252 | /* Is used to send in binary mode via huff_enc_write_bin_val */ | ||
253 | |||
254 | *bin_val_to_0.bits = 0; | ||
255 | bin_val_to_0.bits_nb = 1; | ||
256 | *bin_val_to_1.bits = 1; | ||
257 | bin_val_to_1.bits_nb = 1; | ||
258 | for ( i = 0, j = 0; j <= 255; j++ ) | ||
259 | if ( codes_table[j].bits_nb ) i++; | ||
260 | /* From there, i contains the number of bytes of the several | ||
261 | non 0 occurrences to encode. | ||
262 | First part of the header: Specifies the bytes that appear | ||
263 | in the source of encoding */ | ||
264 | if ( i < 32 ) { | ||
265 | /* Encoding of the appeared bytes with a block of bytes */ | ||
266 | huff_enc_write_bin_val( bin_val_to_0 ); | ||
267 | bin_val.bits_nb = 5; | ||
268 | *bin_val.bits = ( unsigned char )( i - 1 ); | ||
269 | huff_enc_write_bin_val( bin_val ); | ||
270 | bin_val.bits_nb = 8; | ||
271 | for ( j = 0; j <= 255; j++ ) | ||
272 | if ( codes_table[j].bits_nb ) { | ||
273 | *bin_val.bits = ( unsigned char )j; | ||
274 | huff_enc_write_bin_val( bin_val ); | ||
275 | } | ||
276 | } else { | ||
277 | /* Encoding of the appeared bytes with a block of bits */ | ||
278 | huff_enc_write_bin_val( bin_val_to_1 ); | ||
279 | for ( j = 0; j <= 255; j++ ) | ||
280 | if ( codes_table[j].bits_nb ) | ||
281 | huff_enc_write_bin_val( bin_val_to_1 ); | ||
282 | else huff_enc_write_bin_val( bin_val_to_0 ); | ||
283 | }; | ||
284 | /* Second part of the header: Specifies the encoding of the bytes | ||
285 | (fictive or not) that appear in the source of encoding */ | ||
286 | for ( i = 0; i <= 256; i++ ) | ||
287 | if ( ( j = codes_table[i].bits_nb ) != 0 ) { | ||
288 | if ( j < 33 ) { | ||
289 | huff_enc_write_bin_val( bin_val_to_0 ); | ||
290 | bin_val.bits_nb = 5; | ||
291 | } else { | ||
292 | huff_enc_write_bin_val( bin_val_to_1 ); | ||
293 | bin_val.bits_nb = 8; | ||
294 | } | ||
295 | *bin_val.bits = ( unsigned char )( j - 1 ); | ||
296 | huff_enc_write_bin_val( bin_val ); | ||
297 | huff_enc_write_bin_val( codes_table[i] ); | ||
298 | } | ||
299 | } | ||
300 | |||
301 | |||
302 | int huff_enc_weighhuff_enc_t_tree_comp( const void *t1, const void *t2 ) | ||
303 | /* Returned parameters: Returns a comparison status | ||
304 | Action: Returns a negative, zero or positive integer depending on the weight | ||
305 | of 'tree2' is less than, equal to, or greater than the weight of | ||
306 | 'tree1' | ||
307 | Errors: None | ||
308 | */ | ||
309 | { | ||
310 | huff_enc_t_tree *const *tree1 = ( huff_enc_t_tree *const * ) t1; | ||
311 | huff_enc_t_tree *const *tree2 = ( huff_enc_t_tree *const * ) t2; | ||
312 | return ( ( *tree2 )->weight ^ ( *tree1 )->weight ) | ||
313 | ? ( ( ( *tree2 )->weight < ( *tree1 )->weight ) ? -1 : 1 ) : 0; | ||
314 | } | ||
315 | |||
316 | |||
317 | void huff_enc_swapi( char *ii, char *ij, unsigned long es ) | ||
318 | { | ||
319 | char *i, *j, c; | ||
320 | |||
321 | i = ( char * )ii; | ||
322 | j = ( char * )ij; | ||
323 | _Pragma( "loopbound min 4 max 4" ) | ||
324 | do { | ||
325 | c = *i; | ||
326 | *i++ = *j; | ||
327 | *j++ = c; | ||
328 | es -= sizeof( char ); | ||
329 | } while ( es != 0 ); | ||
330 | } | ||
331 | |||
332 | |||
333 | char *huff_enc_pivot( char *a, unsigned long n, unsigned long es ) | ||
334 | { | ||
335 | long j; | ||
336 | char *pi, *pj, *pk; | ||
337 | |||
338 | j = n / 6 * es; | ||
339 | pi = a + j; /* 1/6 */ | ||
340 | j += j; | ||
341 | pj = pi + j; /* 1/2 */ | ||
342 | pk = pj + j; /* 5/6 */ | ||
343 | if ( huff_enc_weighhuff_enc_t_tree_comp( pi, pj ) < 0 ) { | ||
344 | if ( huff_enc_weighhuff_enc_t_tree_comp( pi, pk ) < 0 ) { | ||
345 | if ( huff_enc_weighhuff_enc_t_tree_comp( pj, pk ) < 0 ) | ||
346 | return pj; | ||
347 | return pk; | ||
348 | } | ||
349 | return pi; | ||
350 | } | ||
351 | if ( huff_enc_weighhuff_enc_t_tree_comp( pj, pk ) < 0 ) { | ||
352 | if ( huff_enc_weighhuff_enc_t_tree_comp( pi, pk ) < 0 ) | ||
353 | return pi; | ||
354 | return pk; | ||
355 | } | ||
356 | return pj; | ||
357 | } | ||
358 | |||
359 | |||
360 | void huff_enc_qsort( char *a, unsigned long n, unsigned long es ) | ||
361 | { | ||
362 | unsigned long j; | ||
363 | char *pi, *pj, *pn; | ||
364 | unsigned int flowfactdummy = 0; | ||
365 | |||
366 | _Pragma( "loopbound min 0 max 8" ) | ||
367 | while ( n > 1 ) { | ||
368 | if ( n > 10 ) { | ||
369 | pi = huff_enc_pivot( a, n, es ); | ||
370 | } else { | ||
371 | pi = a + ( n >> 1 ) * es; | ||
372 | } | ||
373 | |||
374 | huff_enc_swapi( a, pi, es ); | ||
375 | pi = a; | ||
376 | pn = a + n * es; | ||
377 | pj = pn; | ||
378 | _Pragma( "loopbound min 1 max 110" ) | ||
379 | while ( 1 ) { | ||
380 | /* wcc note: this assignment expression was added to avoid assignment of | ||
381 | * multiple loop bound annotations to same loop (cf. Ticket #0002323). */ | ||
382 | flowfactdummy++; | ||
383 | _Pragma( "loopbound min 1 max 19" ) | ||
384 | do { | ||
385 | pi += es; | ||
386 | } while ( pi < pn && huff_enc_weighhuff_enc_t_tree_comp( pi, a ) < 0 ); | ||
387 | _Pragma( "loopbound min 1 max 25" ) | ||
388 | do { | ||
389 | pj -= es; | ||
390 | } while ( pj > a && huff_enc_weighhuff_enc_t_tree_comp( pj, a ) > 0 ); | ||
391 | if ( pj < pi ) | ||
392 | break; | ||
393 | huff_enc_swapi( pi, pj, es ); | ||
394 | } | ||
395 | huff_enc_swapi( a, pj, es ); | ||
396 | j = ( pj - a ) / es; | ||
397 | |||
398 | n = n - j - 1; | ||
399 | if ( j >= n ) { | ||
400 | huff_enc_qsort( a, j, es ); | ||
401 | a += ( j + 1 ) * es; | ||
402 | } else { | ||
403 | huff_enc_qsort( a + ( j + 1 )*es, n, es ); | ||
404 | n = j; | ||
405 | } | ||
406 | } | ||
407 | } | ||
408 | |||
409 | |||
410 | huff_enc_t_tree *huff_enc_build_tree_encoding( huff_enc_t_tree heap[514] ) | ||
411 | /* Returned parameters: Returns a tree of encoding | ||
412 | Action: Generates an Huffman encoding tree based on the data from | ||
413 | the stream to compress | ||
414 | Errors: None | ||
415 | */ | ||
416 | { | ||
417 | unsigned int i; | ||
418 | unsigned int heap_top = 0; | ||
419 | huff_enc_t_tree *occurrences_table[257]; | ||
420 | huff_enc_t_tree *ptr_fictive_tree; | ||
421 | |||
422 | /* Sets up the occurrences number of all bytes to 0 */ | ||
423 | for ( i = 0; i <= 256; i++ ) { | ||
424 | occurrences_table[i] = &heap[heap_top++]; | ||
425 | occurrences_table[i]->byte = i; | ||
426 | occurrences_table[i]->weight = 0; | ||
427 | occurrences_table[i]->left_ptr = 0; | ||
428 | occurrences_table[i]->right_ptr = 0; | ||
429 | } | ||
430 | /* Valids the occurrences of 'occurrences_table' with regard to the data to | ||
431 | compress */ | ||
432 | if ( !huff_enc_end_of_data() ) { | ||
433 | while ( !huff_enc_end_of_data() ) { | ||
434 | i = huff_enc_read_byte(); | ||
435 | occurrences_table[i]->weight++; | ||
436 | } | ||
437 | occurrences_table[256]->weight = 1; | ||
438 | |||
439 | /* Sorts the occurrences table depending on the weight of each character */ | ||
440 | huff_enc_qsort( ( char * )occurrences_table, 257, sizeof( huff_enc_t_tree * ) ); | ||
441 | |||
442 | for ( i = 256; ( i != 0 ) && ( !occurrences_table[i]->weight ); i-- ) | ||
443 | ; | ||
444 | i++; | ||
445 | /* From there, 'i' gives the number of different bytes with a 0 occurrence | ||
446 | in the stream to compress */ | ||
447 | while ( i > 0 ) { | ||
448 | /* Looks up (i+1)/2 times the occurrence table to link the nodes in an | ||
449 | unique tree */ | ||
450 | ptr_fictive_tree = &heap[heap_top++]; | ||
451 | ptr_fictive_tree->byte = 257; | ||
452 | ptr_fictive_tree->weight = occurrences_table[--i]->weight; | ||
453 | ptr_fictive_tree->left_ptr = occurrences_table[i]; | ||
454 | if ( i ) { | ||
455 | i--; | ||
456 | ptr_fictive_tree->weight += occurrences_table[i]->weight; | ||
457 | ptr_fictive_tree->right_ptr = occurrences_table[i]; | ||
458 | } else ptr_fictive_tree->right_ptr = 0; | ||
459 | occurrences_table[i] = ptr_fictive_tree; | ||
460 | |||
461 | //qsort( ( char * )occurrences_table, i + 1, sizeof( *huff_enc_t_tree ), | ||
462 | //huff_enc_weighhuff_enc_t_tree_comp ); | ||
463 | huff_enc_qsort( ( char * )occurrences_table, i + 1, | ||
464 | sizeof( huff_enc_t_tree * ) ); | ||
465 | |||
466 | if ( i ) /* Is there an other node in the occurrence tables? */ | ||
467 | i++; /* Yes, then takes care to the fictive node */ | ||
468 | } | ||
469 | } | ||
470 | return ( *occurrences_table ); | ||
471 | } | ||
472 | |||
473 | |||
474 | void huff_enc_encode_codes_table( huff_enc_t_tree *tree, | ||
475 | huff_enc_t_bin_val codes_table[257], | ||
476 | huff_enc_t_bin_val *code_val ) | ||
477 | /* Returned parameters: The data of 'codes_table' can have been modified | ||
478 | Action: Stores the encoding tree as a binary encoding table to speed up the | ||
479 | access. 'val_code' gives the encoding for the current node of the tree | ||
480 | Errors: None | ||
481 | */ | ||
482 | { | ||
483 | unsigned int i; | ||
484 | huff_enc_t_bin_val tmp_code_val; | ||
485 | |||
486 | if ( tree->byte == 257 ) { | ||
487 | if ( tree->left_ptr != 0 ) | ||
488 | /* The sub-trees on left begin with an bit set to 1 */ | ||
489 | { | ||
490 | tmp_code_val = *code_val; | ||
491 | for ( i = 31; i > 0; i-- ) | ||
492 | code_val->bits[i] = ( code_val->bits[i] << 1 ) | | ||
493 | ( code_val->bits[i - 1] >> 7 ); | ||
494 | *code_val->bits = ( *code_val->bits << 1 ) | 1; | ||
495 | code_val->bits_nb++; | ||
496 | huff_enc_encode_codes_table( tree->left_ptr, codes_table, code_val ); | ||
497 | *code_val = tmp_code_val; | ||
498 | }; | ||
499 | if ( tree->right_ptr != 0 ) | ||
500 | /* The sub-trees on right begin with an bit set to 0 */ | ||
501 | { | ||
502 | tmp_code_val = *code_val; | ||
503 | for ( i = 31; i > 0; i-- ) | ||
504 | code_val->bits[i] = ( code_val->bits[i] << 1 ) | | ||
505 | ( code_val->bits[i - 1] >> 7 ); | ||
506 | *code_val->bits <<= 1; | ||
507 | code_val->bits_nb++; | ||
508 | huff_enc_encode_codes_table( tree->right_ptr, codes_table, code_val ); | ||
509 | *code_val = tmp_code_val; | ||
510 | }; | ||
511 | } else codes_table[tree->byte] = *code_val; | ||
512 | } | ||
513 | |||
514 | |||
515 | void huff_enc_create_codes_table( huff_enc_t_tree *tree, | ||
516 | huff_enc_t_bin_val codes_table[257] ) | ||
517 | /* Returned parameters: The data in 'codes_table' will be modified | ||
518 | Action: Stores the encoding tree as a binary encoding table to speed up | ||
519 | the access by calling encode_codes_table | ||
520 | Errors: None | ||
521 | */ | ||
522 | { | ||
523 | unsigned int i, j; | ||
524 | huff_enc_t_bin_val code_val; | ||
525 | |||
526 | _Pragma( "loopbound min 32 max 32" ) | ||
527 | for ( i = 0; i < 32; i++ ) { | ||
528 | code_val.bits[i] = 0; | ||
529 | } | ||
530 | code_val.bits_nb = 0; | ||
531 | _Pragma( "loopbound min 257 max 257" ) | ||
532 | for ( j = 0; j < 257; j++ ) { | ||
533 | _Pragma( "loopbound min 32 max 32" ) | ||
534 | for ( i = 0; i < 32; i++ ) { | ||
535 | codes_table[j].bits[i] = 0; | ||
536 | } | ||
537 | codes_table[j].bits_nb = 0; | ||
538 | } | ||
539 | _Pragma( "marker call_encode" ) | ||
540 | _Pragma( "flowrestriction 1*huff_enc_encode_codes_table <= 77*call_encode" ) | ||
541 | huff_enc_encode_codes_table( tree, codes_table, &code_val ); | ||
542 | } | ||
543 | |||
544 | |||
545 | void _Pragma( "entrypoint" ) huff_enc_main() | ||
546 | /* Returned parameters: None | ||
547 | Action: Compresses with Huffman method all bytes read by the function | ||
548 | 'huff_enc_read_byte' | ||
549 | Errors: None | ||
550 | */ | ||
551 | { | ||
552 | huff_enc_t_tree *tree; | ||
553 | huff_enc_t_tree heap[514]; | ||
554 | huff_enc_t_bin_val encoding_table[257]; | ||
555 | unsigned char byte_read; | ||
556 | |||
557 | if ( !huff_enc_end_of_data() ) { | ||
558 | /* Generates only whether there are data */ | ||
559 | tree = huff_enc_build_tree_encoding( heap ); | ||
560 | /* Creation of the best adapted tree */ | ||
561 | huff_enc_create_codes_table( tree, encoding_table ); | ||
562 | /* Obtains the binary encoding in an array to speed up the accesses */ | ||
563 | huff_enc_write_header( encoding_table ); | ||
564 | /* Writes the defintion of the encoding */ | ||
565 | huff_enc_beginning_of_data(); /* Real compression of the data */ | ||
566 | while ( !huff_enc_end_of_data() ) { | ||
567 | byte_read = huff_enc_read_byte(); | ||
568 | huff_enc_write_bin_val( encoding_table[byte_read] ); | ||
569 | } | ||
570 | huff_enc_write_bin_val( encoding_table[256] ); | ||
571 | /* Code of the end of encoding */ | ||
572 | huff_enc_fill_encoding(); | ||
573 | /* Fills the last byte before closing file, if any */ | ||
574 | } | ||
575 | } | ||
576 | |||
577 | |||
578 | int main( int argc, char **argv ) | ||
579 | { | ||
580 | SET_UP | ||
581 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
582 | START_LOOP | ||
583 | huff_enc_init(); | ||
584 | huff_enc_main(); | ||
585 | STOP_LOOP | ||
586 | } | ||
587 | WRITE_TO_FILE | ||
588 | return ( huff_enc_return() ); | ||
589 | } | ||
diff --git a/baseline/source/litmusStuff.h b/baseline/source/litmusStuff.h new file mode 100644 index 0000000..dca2360 --- /dev/null +++ b/baseline/source/litmusStuff.h | |||
@@ -0,0 +1,80 @@ | |||
1 | #include <time.h> | ||
2 | #include <sys/mman.h> | ||
3 | #include <stdlib.h> | ||
4 | #include <stdio.h> | ||
5 | #include <string.h> | ||
6 | #include <signal.h> | ||
7 | #include <limits.h> | ||
8 | #include <../litmus.h> | ||
9 | |||
10 | #define L3_CACHE_SIZE (11264*1024) | ||
11 | |||
12 | #define SAVE_RESULTS if(jobsComplete>-1) progTime[jobsComplete]=(end.tv_nsec-start.tv_nsec)+(1000000000*(end.tv_sec-start.tv_sec)); | ||
13 | |||
14 | |||
15 | #define SET_UP char *thisProgram=argv[1];\ | ||
16 | int maxJobs=atoi(argv[2]);\ | ||
17 | char *thisCore=argv[3];\ | ||
18 | char *otherCore=argv[4];\ | ||
19 | char *otherProgram=argv[5];\ | ||
20 | char *runID=argv[6];\ | ||
21 | int output=atoi(argv[7]);\ | ||
22 | struct timespec start, end;\ | ||
23 | int jobsComplete;\ | ||
24 | long progTime[maxJobs*output];\ | ||
25 | char fileName[50];\ | ||
26 | char *bigArray;\ | ||
27 | strcpy(fileName, runID);\ | ||
28 | strcat(fileName, ".txt");\ | ||
29 | mlockall(MCL_CURRENT || MCL_FUTURE); | ||
30 | |||
31 | #define WRITE_TO_FILE if (output){\ | ||
32 | munlockall();\ | ||
33 | FILE *fp=fopen(fileName, "a");\ | ||
34 | for(jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){\ | ||
35 | fprintf(fp, "%s %s %s %s %d %ld %s %d \n",\ | ||
36 | thisProgram, otherProgram, thisCore, otherCore, maxJobs,\ | ||
37 | progTime[jobsComplete], runID, jobsComplete);\ | ||
38 | }\ | ||
39 | fclose(fp);\ | ||
40 | } | ||
41 | |||
42 | #define KILL_CACHE bigArray=(char *)malloc(L3_CACHE_SIZE);\ | ||
43 | if (bigArray==NULL) perror("Malloc failed.\n");\ | ||
44 | memset(bigArray, 1, L3_CACHE_SIZE);\ | ||
45 | munlock(bigArray, L3_CACHE_SIZE);\ | ||
46 | free(bigArray);\ | ||
47 | bigArray=NULL; | ||
48 | |||
49 | |||
50 | |||
51 | //invoke start timer twice, stop timer to make sure timer and vars are in cache | ||
52 | #define START_TIMER clock_gettime(CLOCK_MONOTONIC, &start);\ | ||
53 | clock_gettime(CLOCK_MONOTONIC, &end);\ | ||
54 | clock_gettime(CLOCK_MONOTONIC, &start);\ | ||
55 | |||
56 | #define STOP_TIMER clock_gettime(CLOCK_MONOTONIC, &end); | ||
57 | |||
58 | |||
59 | #define START_LOOP START_TIMER | ||
60 | |||
61 | #define STOP_LOOP if (output) {STOP_TIMER SAVE_RESULTS} sleep_next_period(); | ||
62 | |||
63 | |||
64 | /* | ||
65 | Intended structure | ||
66 | |||
67 | main | ||
68 | SET_UP | ||
69 | notice that STOP LOOP negates the ++ if outout=0 | ||
70 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
71 | KILL_CACHE | ||
72 | START_TIMER | ||
73 | tacleInit(); | ||
74 | tacleMain(); | ||
75 | STOP_TIMER | ||
76 | SAVE_RESULTS | ||
77 | } | ||
78 | WRITE_TO_FILE | ||
79 | tacleReturn | ||
80 | */ | ||
diff --git a/baseline/source/mpeg2/ChangeLog.txt b/baseline/source/mpeg2/ChangeLog.txt new file mode 100644 index 0000000..f644576 --- /dev/null +++ b/baseline/source/mpeg2/ChangeLog.txt | |||
@@ -0,0 +1,35 @@ | |||
1 | File: mpeg2.c | ||
2 | Original provenience: MediaBench II benchmark suite, | ||
3 | http://euler.slu.edu/~fritts/mediabench (mirror) | ||
4 | |||
5 | 2015-11-05: | ||
6 | - Removed original header comment, replaced by TACLeBench header. | ||
7 | - Removed unnecessary preprocessor macros, integrated required preprocessor | ||
8 | macros directly in the source code. | ||
9 | - Added prefix "mpeg2_" to all global symbols. | ||
10 | - Added explicit forward declarations of functions. | ||
11 | - Added TACLeBench-compliant initialization code. | ||
12 | - Added new function mpeg2_return producing a checksum as return value. | ||
13 | - Added new function mpeg2_main according to TACLeBench guidelines. | ||
14 | mpeg2_main is annotated as entry-point for timing analysis. | ||
15 | - Applied code formatting according to the following rules | ||
16 | - Lines shall not be wider than 80 characters; whenever possible, appropriate | ||
17 | line breaks shall be inserted to keep lines below 80 characters | ||
18 | - Indentation is done using whitespaces only, no tabs. Code is indented by | ||
19 | two whitespaces | ||
20 | - Two empty lines are put between any two functions | ||
21 | - In non-empty lists or index expressions, opening '(' and '[' are followed by | ||
22 | one whitespace, closing ')' and ']' are preceded by one whitespace | ||
23 | - In comma- or colon-separated argument lists, one whitespace is put after | ||
24 | each comma/colon | ||
25 | - Names of functions and global variables all start with a benchmark-specific | ||
26 | prefix (here: bs_) followed by lowercase letter (e.g., bs_square) | ||
27 | - For pointer types, one whitespace is put before the '*' | ||
28 | - Operators within expressions shall be preceded and followed by one | ||
29 | whitespace | ||
30 | - Code of then- and else-parts of if-then-else statements shall be put in | ||
31 | separate lines, not in the same lines as the if-condition or the keyword | ||
32 | "else" | ||
33 | - Opening braces '{' denoting the beginning of code for some if-else or loop | ||
34 | body shall be put at the end of the same line where the keywords "if", | ||
35 | "else", "for", "while" etc. occur | ||
diff --git a/baseline/source/mpeg2/mpeg2.c b/baseline/source/mpeg2/mpeg2.c new file mode 100644 index 0000000..e89e1f9 --- /dev/null +++ b/baseline/source/mpeg2/mpeg2.c | |||
@@ -0,0 +1,13218 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: mpeg2 | ||
7 | |||
8 | Author: MPEG Software Simulation Group | ||
9 | |||
10 | Function: This file contains MPEG 2 motion estimation code. | ||
11 | |||
12 | Source: MediaBench II | ||
13 | http://euler.slu.edu/~fritts/mediabench (mirror) | ||
14 | |||
15 | Original name: MPEG-2 | ||
16 | |||
17 | Changes: For TACLeBench, the code has been changed such that input and | ||
18 | output arrays are scaled down so that the code plus its data fits to the | ||
19 | memories of typical resource-constrained embedded devices. | ||
20 | |||
21 | License: See the following disclaimer from the original source codes. | ||
22 | |||
23 | Disclaimer of Warranty | ||
24 | |||
25 | These software programs are available to the user without any license fee or | ||
26 | royalty on an "as is" basis. The MPEG Software Simulation Group disclaims | ||
27 | any and all warranties, whether express, implied, or statuary, including any | ||
28 | implied warranties or merchantability or of fitness for a particular | ||
29 | purpose. In no event shall the copyright-holder be liable for any | ||
30 | incidental, punitive, or consequential damages of any kind whatsoever | ||
31 | arising from the use of these programs. | ||
32 | |||
33 | This disclaimer of warranty extends to the user of these programs and user's | ||
34 | customers, employees, agents, transferees, successors, and assigns. | ||
35 | |||
36 | The MPEG Software Simulation Group does not represent or warrant that the | ||
37 | programs furnished hereunder are free of infringement of any third-party | ||
38 | patents. | ||
39 | |||
40 | Commercial implementations of MPEG-1 and MPEG-2 video, including shareware, | ||
41 | are subject to royalty fees to patent holders. Many of these patents are | ||
42 | general enough such that they are unavoidable regardless of implementation | ||
43 | design. | ||
44 | |||
45 | */ | ||
46 | |||
47 | |||
48 | /* | ||
49 | Forward declaration of data types | ||
50 | */ | ||
51 | #include "../extra.h" | ||
52 | struct mbinfo; | ||
53 | |||
54 | |||
55 | /* | ||
56 | Forward declaration of functions | ||
57 | */ | ||
58 | |||
59 | void mpeg2_init( void ); | ||
60 | int mpeg2_return( void ); | ||
61 | void mpeg2_motion_estimation( unsigned char *, unsigned char *, unsigned char *, | ||
62 | unsigned char *, unsigned char *, unsigned char *, | ||
63 | int, int, int, int, struct mbinfo *, int, int ); | ||
64 | void mpeg2_frame_ME( unsigned char *, unsigned char *, unsigned char *, | ||
65 | unsigned char *, unsigned char *, int, int, int, int, int, | ||
66 | int, struct mbinfo * ); | ||
67 | void mpeg2_field_ME( unsigned char *, unsigned char *, unsigned char *, | ||
68 | unsigned char *, unsigned char *, unsigned char *, int, | ||
69 | int, int, int, int, int, struct mbinfo *, int, int ); | ||
70 | void mpeg2_frame_estimate( unsigned char *, unsigned char *, unsigned char *, | ||
71 | int, int, int, int, int *, int *, int *, int *, | ||
72 | int *, int *, int *, int *, int *, int *, | ||
73 | int[ 2 ][ 2 ], int[ 2 ][ 2 ] ); | ||
74 | void mpeg2_field_estimate( unsigned char *, unsigned char *, unsigned char *, | ||
75 | unsigned char *, unsigned char *, int, int, int, int, | ||
76 | int, int *, int *, int *, int *, int *, int *, int *, | ||
77 | int *, int *, int *, int *, int *, int *, int * ); | ||
78 | void mpeg2_dpframe_estimate( unsigned char *, unsigned char *, int, int, | ||
79 | int[ 2 ][ 2 ], int[ 2 ][ 2 ], int *, int *, int *, | ||
80 | int *, int *, int * ); | ||
81 | void mpeg2_dpfield_estimate( unsigned char *, unsigned char *, unsigned char *, | ||
82 | int, int, int, int, int *, int *, int *, int * ); | ||
83 | int mpeg2_fullsearch( unsigned char *, unsigned char *, unsigned char *, int, | ||
84 | int, int, int, int, int, int, int, int *, int * ); | ||
85 | int mpeg2_dist1( unsigned char *, unsigned char *, int, int, int, int, int ); | ||
86 | int mpeg2_dist2( unsigned char *, unsigned char *, int, int, int, int ); | ||
87 | int mpeg2_bdist1( unsigned char *, unsigned char *, unsigned char *, int, int, | ||
88 | int, int, int, int ); | ||
89 | int mpeg2_bdist2( unsigned char *, unsigned char *, unsigned char *, int, int, | ||
90 | int, int, int, int ); | ||
91 | int mpeg2_variance( unsigned char *, int ); | ||
92 | void mpeg2_main( void ); | ||
93 | //int main( void ); | ||
94 | |||
95 | |||
96 | /* | ||
97 | Declaration of global variables | ||
98 | */ | ||
99 | |||
100 | struct mbinfo { | ||
101 | int mb_type; | ||
102 | int motion_type; | ||
103 | int dct_type; | ||
104 | int mquant; | ||
105 | int cbp; | ||
106 | int skipped; | ||
107 | int MV[ 2 ][ 2 ][ 2 ]; | ||
108 | int mv_field_sel[ 2 ][ 2 ]; | ||
109 | int dmvector[ 2 ]; | ||
110 | double act; | ||
111 | int var; | ||
112 | }; | ||
113 | |||
114 | volatile int mpeg2_width = 352; | ||
115 | volatile int mpeg2_height = 256; | ||
116 | volatile int mpeg2_width2 = 352; | ||
117 | volatile int mpeg2_height2 = 256; | ||
118 | volatile int mpeg2_M = 3; | ||
119 | volatile int mpeg2_pict_type = 3; | ||
120 | volatile int mpeg2_pict_struct = 3; | ||
121 | volatile int mpeg2_topfirst = 1; | ||
122 | volatile int mpeg2_frame_pred_dct = 0; | ||
123 | struct mbinfo mpeg2_mbinfo[ 352 ]; | ||
124 | |||
125 | unsigned char mpeg2_oldorgframe[] = { | ||
126 | 0x9f, 0x9d, 0x9b, 0x9d, 0x9f, 0xa1, 0xa2, 0xa3, | ||
127 | 0x9e, 0xa2, 0xa5, 0xa5, 0xa2, 0xa1, 0xa4, 0xa7, | ||
128 | 0xa3, 0xa3, 0xa5, 0xa6, 0xa5, 0xa5, 0xa3, 0xa2, | ||
129 | 0x9d, 0xa1, 0xa5, 0xa8, 0xa6, 0xa1, 0x9a, 0x95, | ||
130 | 0x8e, 0x7e, 0x7a, 0x78, 0x70, 0x76, 0x7c, 0x73, | ||
131 | 0x7d, 0x7a, 0x7a, 0x79, 0x7b, 0x83, 0x82, 0x74, | ||
132 | 0x64, 0x57, 0x48, 0x5e, 0x7e, 0x84, 0x6f, 0x4a, | ||
133 | 0x31, 0x43, 0x61, 0x81, 0x9b, 0xac, 0xb6, 0xb9, | ||
134 | 0xb0, 0xa8, 0x9e, 0x9a, 0x9b, 0xa1, 0xaa, 0xb1, | ||
135 | 0x9d, 0x83, 0x65, 0x49, 0x33, 0x30, 0x34, 0x32, | ||
136 | 0x4b, 0x54, 0x68, 0x83, 0x99, 0x9f, 0x94, 0x87, | ||
137 | 0x4f, 0x5e, 0x72, 0x7f, 0x75, 0x52, 0x23, 0x02, | ||
138 | 0x1a, 0x24, 0x24, 0x1b, 0x14, 0x13, 0x1e, 0x30, | ||
139 | 0x43, 0x60, 0x7b, 0x8a, 0x96, 0x9c, 0x97, 0x90, | ||
140 | 0x99, 0x99, 0x92, 0x88, 0x7f, 0x80, 0x97, 0xb5, | ||
141 | 0xa0, 0x94, 0x9a, 0x96, 0x66, 0x2d, 0x14, 0x12, | ||
142 | 0x15, 0x17, 0x27, 0x1c, 0x15, 0x1e, 0x25, 0x3b, | ||
143 | 0x7a, 0xa2, 0xbe, 0xbf, 0xb2, 0x9f, 0x9e, 0xaf, | ||
144 | 0xba, 0x7b, 0x64, 0x8a, 0xa9, 0xa7, 0xa4, 0xaa, | ||
145 | 0xa8, 0xab, 0xad, 0xab, 0xa7, 0xa6, 0xaa, 0xaf, | ||
146 | 0xa4, 0xa6, 0xa9, 0xab, 0xac, 0xac, 0xaa, 0xa9, | ||
147 | 0xa7, 0xaf, 0xba, 0xbc, 0xaf, 0x94, 0x75, 0x60, | ||
148 | 0x7a, 0x85, 0x90, 0x9a, 0xa7, 0xa2, 0x7c, 0x50, | ||
149 | 0x2f, 0x48, 0x65, 0x77, 0x7e, 0x8b, 0xa3, 0xb7, | ||
150 | 0xae, 0x95, 0x7a, 0x6f, 0x75, 0x79, 0x73, 0x69, | ||
151 | 0x56, 0x63, 0x6e, 0x6e, 0x6a, 0x6b, 0x72, 0x78, | ||
152 | 0x65, 0x67, 0x61, 0x51, 0x3f, 0x36, 0x3b, 0x43, | ||
153 | 0x33, 0x24, 0x25, 0x3d, 0x4d, 0x4b, 0x48, 0x4d, | ||
154 | 0x57, 0x4b, 0x42, 0x47, 0x56, 0x62, 0x63, 0x5f, | ||
155 | 0x60, 0x6d, 0x6f, 0x5b, 0x3f, 0x38, 0x4d, 0x67, | ||
156 | 0x4c, 0x3c, 0x2d, 0x2f, 0x3a, 0x3e, 0x33, 0x25, | ||
157 | 0x3b, 0x4e, 0x6d, 0x84, 0x82, 0x75, 0x71, 0x78, | ||
158 | 0x7f, 0x78, 0x6c, 0x61, 0x5a, 0x58, 0x5a, 0x5d, | ||
159 | 0x69, 0x64, 0x59, 0x4c, 0x41, 0x3c, 0x3f, 0x43, | ||
160 | 0x32, 0x3c, 0x26, 0x26, 0x2f, 0x2b, 0x2e, 0x1f, | ||
161 | 0x34, 0x8e, 0xbb, 0xaf, 0xae, 0xb0, 0xa7, 0xa8, | ||
162 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
163 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
164 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
165 | 0xa8, 0xa5, 0xa4, 0xa5, 0xa7, 0xa7, 0xa5, 0xa4, | ||
166 | 0xa0, 0xac, 0xa1, 0x97, 0xa7, 0xac, 0xa5, 0xa9, | ||
167 | 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, | ||
168 | 0xa7, 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, 0xa3, | ||
169 | 0x9e, 0xa0, 0x9d, 0x9a, 0xa1, 0x95, 0x1d, 0x06, | ||
170 | 0x8b, 0x86, 0x87, 0x8e, 0x95, 0x94, 0x90, 0x8d, | ||
171 | 0x92, 0x94, 0x97, 0x9b, 0x9f, 0xa0, 0x9e, 0x9d, | ||
172 | 0x99, 0x9b, 0x9e, 0x9d, 0x98, 0x8e, 0x83, 0x7c, | ||
173 | 0x80, 0x7b, 0x76, 0x74, 0x78, 0x83, 0x8f, 0x97, | ||
174 | 0x92, 0x8f, 0x99, 0xaf, 0xb8, 0xa8, 0x99, 0x9b, | ||
175 | 0x97, 0xb9, 0xc0, 0xb5, 0xb2, 0x9e, 0x8a, 0x90, | ||
176 | 0xa7, 0xc1, 0x9d, 0x6a, 0x56, 0x4a, 0x48, 0x4c, | ||
177 | 0x58, 0x86, 0xb9, 0xca, 0xb8, 0xa1, 0x9c, 0xa1, | ||
178 | 0xbd, 0xc1, 0xba, 0x99, 0x63, 0x30, 0x11, 0x06, | ||
179 | 0x1b, 0x33, 0x5d, 0x7f, 0x91, 0xa7, 0xbf, 0xcb, | ||
180 | 0xbb, 0xb5, 0xb1, 0xb2, 0xb5, 0xb0, 0xa2, 0x95, | ||
181 | 0xca, 0xc3, 0xa6, 0x74, 0x4f, 0x5d, 0x99, 0xd1, | ||
182 | 0xcb, 0xbb, 0xb0, 0x95, 0x69, 0x54, 0x52, 0x48, | ||
183 | 0x5a, 0x51, 0x3d, 0x42, 0x5d, 0x64, 0x73, 0x9c, | ||
184 | 0x9d, 0x91, 0x96, 0x9f, 0x9b, 0x98, 0x91, 0x7f, | ||
185 | 0x64, 0x41, 0x15, 0x12, 0x39, 0x5f, 0x74, 0x83, | ||
186 | 0x86, 0x80, 0x7b, 0x84, 0x8a, 0x7c, 0x5e, 0x41, | ||
187 | 0x36, 0x42, 0x6f, 0xa7, 0xbb, 0xa8, 0x91, 0x89, | ||
188 | 0x88, 0x98, 0xb2, 0xbc, 0xb2, 0xae, 0xb3, 0xb4, | ||
189 | 0xb6, 0xb4, 0xb3, 0xb5, 0xb9, 0xbb, 0xbc, 0xbb, | ||
190 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb5, 0xb4, 0xb3, 0xb2, | ||
191 | 0x9d, 0x80, 0x61, 0x5e, 0x79, 0x9c, 0xb3, 0xbb, | ||
192 | 0xca, 0xc1, 0xaf, 0xa3, 0xac, 0xb9, 0xaf, 0x98, | ||
193 | 0x6e, 0x48, 0x2b, 0x41, 0x7a, 0xa5, 0xa7, 0x96, | ||
194 | 0x9d, 0x87, 0x6e, 0x65, 0x6c, 0x72, 0x6e, 0x67, | ||
195 | 0x66, 0x78, 0x7d, 0x76, 0x7f, 0x96, 0x99, 0x89, | ||
196 | 0x6a, 0x78, 0x87, 0x8a, 0x80, 0x72, 0x6a, 0x68, | ||
197 | 0x56, 0x5a, 0x59, 0x55, 0x55, 0x59, 0x5e, 0x60, | ||
198 | 0x5a, 0x86, 0xb2, 0xb6, 0x92, 0x69, 0x57, 0x57, | ||
199 | 0x6a, 0x59, 0x46, 0x3b, 0x39, 0x34, 0x29, 0x1f, | ||
200 | 0x26, 0x25, 0x23, 0x21, 0x21, 0x26, 0x2e, 0x35, | ||
201 | 0x5c, 0x6e, 0x7a, 0x74, 0x6c, 0x6f, 0x77, 0x7c, | ||
202 | 0x6a, 0x67, 0x62, 0x5d, 0x5b, 0x5b, 0x5d, 0x5f, | ||
203 | 0x54, 0x50, 0x4c, 0x4d, 0x4f, 0x49, 0x3c, 0x31, | ||
204 | 0x35, 0x24, 0x2d, 0x2f, 0x2e, 0x2a, 0x22, 0x3a, | ||
205 | 0x87, 0xaf, 0xb9, 0xab, 0xac, 0xb0, 0xac, 0xad, | ||
206 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
207 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
208 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
209 | 0xac, 0xa6, 0xa2, 0xa5, 0xad, 0xb0, 0xac, 0xa6, | ||
210 | 0xb1, 0xaa, 0x9d, 0x99, 0xa5, 0xad, 0xaa, 0xa7, | ||
211 | 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, | ||
212 | 0xa7, 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, 0xa3, | ||
213 | 0x9e, 0xa0, 0x9d, 0x9a, 0xa1, 0x95, 0x1d, 0x06, | ||
214 | 0x97, 0xa2, 0xa5, 0x9b, 0x93, 0x94, 0x97, 0x96, | ||
215 | 0x8c, 0x84, 0x7c, 0x76, 0x73, 0x6f, 0x69, 0x63, | ||
216 | 0x68, 0x6e, 0x79, 0x87, 0x94, 0x9e, 0xa6, 0xa9, | ||
217 | 0xaa, 0xac, 0xaf, 0xb3, 0xb5, 0xb6, 0xb7, 0xb6, | ||
218 | 0xaa, 0xab, 0x98, 0x90, 0xa3, 0xab, 0xa5, 0xa7, | ||
219 | 0x9e, 0x91, 0x82, 0x7a, 0x85, 0xa2, 0xbb, 0xc0, | ||
220 | 0xba, 0x79, 0x34, 0x26, 0x35, 0x53, 0x73, 0x75, | ||
221 | 0x82, 0x83, 0x87, 0x8b, 0x89, 0x7d, 0x69, 0x59, | ||
222 | 0x27, 0x1c, 0x0f, 0x0c, 0x17, 0x29, 0x39, 0x41, | ||
223 | 0x3e, 0x3a, 0x3c, 0x39, 0x2d, 0x25, 0x21, 0x18, | ||
224 | 0x2b, 0x29, 0x2e, 0x42, 0x60, 0x7b, 0x89, 0x8d, | ||
225 | 0xae, 0x89, 0x6b, 0x7a, 0xab, 0xd3, 0xd9, 0xce, | ||
226 | 0x92, 0x7e, 0x99, 0xba, 0xb8, 0xb8, 0xa3, 0x6e, | ||
227 | 0x59, 0x67, 0x79, 0x76, 0x5d, 0x4f, 0x4c, 0x46, | ||
228 | 0x5d, 0x6c, 0x73, 0x86, 0x99, 0x7c, 0x48, 0x34, | ||
229 | 0x4c, 0x6d, 0x82, 0x81, 0x7b, 0x6d, 0x63, 0x67, | ||
230 | 0x8d, 0x87, 0x77, 0x91, 0xa9, 0xa0, 0x8a, 0x61, | ||
231 | 0x39, 0x1f, 0x32, 0x64, 0x79, 0x6e, 0x59, 0x46, | ||
232 | 0x54, 0x74, 0x9f, 0xb7, 0xb8, 0xb8, 0xb6, 0xac, | ||
233 | 0xad, 0xb7, 0xba, 0xa8, 0x8b, 0x79, 0x7c, 0x86, | ||
234 | 0x83, 0x83, 0x84, 0x85, 0x88, 0x8c, 0x90, 0x92, | ||
235 | 0x95, 0xa7, 0xbe, 0xcb, 0xcb, 0xc3, 0xbb, 0xb7, | ||
236 | 0x9e, 0xa8, 0xaf, 0xb7, 0xc6, 0xce, 0xba, 0x9d, | ||
237 | 0x5f, 0x55, 0x54, 0x6a, 0x8c, 0x9d, 0x95, 0x85, | ||
238 | 0x79, 0x68, 0x56, 0x53, 0x5f, 0x6a, 0x6d, 0x6b, | ||
239 | 0x85, 0x7c, 0x6b, 0x5c, 0x59, 0x56, 0x45, 0x31, | ||
240 | 0x5f, 0x67, 0x6e, 0x70, 0x6c, 0x69, 0x6a, 0x6d, | ||
241 | 0x6a, 0x79, 0x76, 0x5c, 0x52, 0x64, 0x76, 0x7a, | ||
242 | 0x6a, 0x63, 0x5d, 0x5f, 0x63, 0x62, 0x58, 0x4e, | ||
243 | 0x3e, 0x3b, 0x37, 0x36, 0x37, 0x37, 0x34, 0x31, | ||
244 | 0x3d, 0x3a, 0x3e, 0x53, 0x6d, 0x7c, 0x78, 0x6f, | ||
245 | 0x67, 0x66, 0x5e, 0x58, 0x5b, 0x62, 0x5d, 0x52, | ||
246 | 0x56, 0x57, 0x58, 0x57, 0x54, 0x50, 0x4b, 0x48, | ||
247 | 0x4a, 0x4d, 0x4e, 0x45, 0x39, 0x30, 0x30, 0x34, | ||
248 | 0x22, 0x2d, 0x23, 0x29, 0x30, 0x1c, 0x3d, 0x8f, | ||
249 | 0xb2, 0xb3, 0xb0, 0xad, 0xad, 0xaf, 0xad, 0xaa, | ||
250 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
251 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
252 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
253 | 0xa9, 0xad, 0xab, 0xa4, 0xa3, 0xa9, 0xa6, 0x9e, | ||
254 | 0xa4, 0xa4, 0xa1, 0xa3, 0xa8, 0xa8, 0xa8, 0xb0, | ||
255 | 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, | ||
256 | 0xa7, 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, 0xa3, | ||
257 | 0x9e, 0xa0, 0x9d, 0x9a, 0xa1, 0x95, 0x1d, 0x06, | ||
258 | 0xa6, 0xa3, 0xa0, 0x9f, 0xa2, 0xa4, 0xa0, 0x9b, | ||
259 | 0x89, 0x90, 0x9d, 0xab, 0xb5, 0xb6, 0xb1, 0xab, | ||
260 | 0xa7, 0xa6, 0xa3, 0x9c, 0x92, 0x86, 0x7c, 0x75, | ||
261 | 0x78, 0x79, 0x7b, 0x7c, 0x7c, 0x7a, 0x79, 0x78, | ||
262 | 0x8d, 0x95, 0x87, 0x79, 0x89, 0xa3, 0xae, 0xb2, | ||
263 | 0x9e, 0x86, 0x88, 0x95, 0x97, 0x98, 0x7a, 0x42, | ||
264 | 0x12, 0x2d, 0x4a, 0x85, 0xba, 0xbd, 0xac, 0x9f, | ||
265 | 0xaf, 0x8c, 0x58, 0x2a, 0x18, 0x23, 0x3e, 0x54, | ||
266 | 0x6e, 0x8b, 0xaa, 0xb5, 0xb5, 0xbb, 0xca, 0xd6, | ||
267 | 0xca, 0xc1, 0xc3, 0xcc, 0xce, 0xc9, 0xb6, 0x9f, | ||
268 | 0x88, 0x77, 0x61, 0x52, 0x48, 0x3d, 0x2e, 0x22, | ||
269 | 0x24, 0x32, 0x51, 0x7d, 0xa2, 0xa9, 0x94, 0x7d, | ||
270 | 0x9d, 0x8d, 0x93, 0x93, 0x7b, 0x75, 0x75, 0x5f, | ||
271 | 0x33, 0x3f, 0x2c, 0x2d, 0x61, 0x7e, 0x74, 0x73, | ||
272 | 0x52, 0x5f, 0x82, 0x7e, 0x48, 0x3f, 0x78, 0xa7, | ||
273 | 0xa4, 0x94, 0x83, 0x6a, 0x52, 0x5a, 0x78, 0x8a, | ||
274 | 0x85, 0x84, 0x7a, 0x7f, 0x83, 0x82, 0x86, 0x7f, | ||
275 | 0x6a, 0x4c, 0x39, 0x3f, 0x51, 0x69, 0x79, 0x7a, | ||
276 | 0x71, 0x6e, 0x77, 0x81, 0x80, 0x78, 0x69, 0x57, | ||
277 | 0x4a, 0x4a, 0x54, 0x70, 0x94, 0xae, 0xb7, 0xb6, | ||
278 | 0xb1, 0xb0, 0xb0, 0xb1, 0xb4, 0xb9, 0xbe, 0xc0, | ||
279 | 0xba, 0xc3, 0xbe, 0x9f, 0x7a, 0x71, 0x8b, 0xab, | ||
280 | 0xc3, 0xc2, 0xb6, 0xa7, 0xa4, 0xa6, 0x97, 0x80, | ||
281 | 0x6c, 0x6f, 0x64, 0x49, 0x37, 0x4c, 0x85, 0xb8, | ||
282 | 0xc4, 0xae, 0x91, 0x7b, 0x6f, 0x68, 0x5f, 0x58, | ||
283 | 0x4a, 0x2c, 0x26, 0x3f, 0x46, 0x33, 0x32, 0x46, | ||
284 | 0x57, 0x62, 0x72, 0x7e, 0x83, 0x82, 0x7e, 0x7b, | ||
285 | 0x89, 0x92, 0x8f, 0x7a, 0x68, 0x60, 0x59, 0x51, | ||
286 | 0x2c, 0x3f, 0x48, 0x37, 0x22, 0x2c, 0x59, 0x86, | ||
287 | 0x71, 0x57, 0x42, 0x4b, 0x70, 0x96, 0xa7, 0xa9, | ||
288 | 0x7d, 0x7d, 0x7e, 0x7d, 0x7b, 0x79, 0x76, 0x74, | ||
289 | 0x73, 0x5c, 0x4a, 0x4d, 0x57, 0x5a, 0x58, 0x57, | ||
290 | 0x53, 0x51, 0x4e, 0x4c, 0x4b, 0x4c, 0x4d, 0x4e, | ||
291 | 0x50, 0x45, 0x37, 0x2d, 0x2a, 0x2a, 0x2c, 0x2c, | ||
292 | 0x20, 0x27, 0x28, 0x26, 0x1d, 0x41, 0x91, 0xb8, | ||
293 | 0xad, 0xa5, 0xab, 0xb2, 0xac, 0xaa, 0xac, 0xa6, | ||
294 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
295 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
296 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
297 | 0xae, 0xa4, 0xa5, 0xaf, 0xb0, 0xa8, 0xa8, 0xb1, | ||
298 | 0xa9, 0xa6, 0x9e, 0xa4, 0xb0, 0xa9, 0xa0, 0xa7, | ||
299 | 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, | ||
300 | 0xa7, 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, 0xa3, | ||
301 | 0x9e, 0xa0, 0x9d, 0x9a, 0xa1, 0x95, 0x1d, 0x06, | ||
302 | 0xa8, 0x9c, 0x9a, 0xa1, 0x9b, 0x8b, 0x86, 0x8f, | ||
303 | 0xa6, 0xa6, 0xa6, 0xa3, 0xa0, 0xa0, 0xa3, 0xa6, | ||
304 | 0xad, 0xa9, 0xa4, 0xa1, 0xa3, 0xa9, 0xb2, 0xb7, | ||
305 | 0xaf, 0xaf, 0xad, 0xa9, 0xa4, 0x9e, 0x99, 0x96, | ||
306 | 0x88, 0x75, 0x70, 0x73, 0x6f, 0x72, 0x81, 0x89, | ||
307 | 0x94, 0xb7, 0xbf, 0x8e, 0x4b, 0x27, 0x31, 0x4d, | ||
308 | 0x85, 0xa9, 0xb4, 0xb0, 0x99, 0x69, 0x48, 0x3d, | ||
309 | 0x37, 0x49, 0x6b, 0x95, 0xb8, 0xca, 0xcc, 0xc7, | ||
310 | 0xc3, 0xc4, 0xbd, 0xb0, 0xa9, 0xab, 0xac, 0xa9, | ||
311 | 0xa4, 0xa0, 0xa4, 0xa9, 0xa9, 0xab, 0xab, 0xa4, | ||
312 | 0x90, 0x8d, 0x8d, 0x96, 0xa2, 0xa6, 0xa0, 0x97, | ||
313 | 0x7e, 0x7c, 0x67, 0x3d, 0x1d, 0x28, 0x5d, 0x8f, | ||
314 | 0x6f, 0x6e, 0x75, 0x84, 0x8d, 0x82, 0x64, 0x4a, | ||
315 | 0x3e, 0x35, 0x33, 0x38, 0x35, 0x27, 0x26, 0x33, | ||
316 | 0x73, 0x6c, 0x3e, 0x21, 0x3d, 0x62, 0x79, 0x90, | ||
317 | 0x80, 0x75, 0x6c, 0x5e, 0x51, 0x5e, 0x74, 0x7c, | ||
318 | 0x7d, 0x81, 0x8b, 0x7e, 0x71, 0x73, 0x7a, 0x8d, | ||
319 | 0x9c, 0x87, 0x60, 0x4c, 0x5e, 0x7a, 0x89, 0x8f, | ||
320 | 0x92, 0x8b, 0x92, 0x97, 0x82, 0x6a, 0x6a, 0x74, | ||
321 | 0x85, 0x85, 0x82, 0x7e, 0x79, 0x72, 0x6c, 0x68, | ||
322 | 0x73, 0x71, 0x6d, 0x6a, 0x67, 0x64, 0x63, 0x63, | ||
323 | 0x6b, 0x64, 0x61, 0x6a, 0x76, 0x79, 0x6f, 0x63, | ||
324 | 0x58, 0x55, 0x46, 0x38, 0x42, 0x5c, 0x6a, 0x68, | ||
325 | 0x6f, 0x75, 0x79, 0x76, 0x71, 0x73, 0x7f, 0x8b, | ||
326 | 0x7c, 0x6e, 0x5c, 0x51, 0x4e, 0x51, 0x54, 0x55, | ||
327 | 0x57, 0x44, 0x47, 0x5e, 0x5d, 0x4b, 0x57, 0x79, | ||
328 | 0xb3, 0xb0, 0xab, 0xa5, 0x9d, 0x94, 0x8a, 0x83, | ||
329 | 0x8a, 0x73, 0x5e, 0x58, 0x52, 0x48, 0x45, 0x49, | ||
330 | 0x5d, 0x4f, 0x3f, 0x3b, 0x43, 0x4b, 0x4b, 0x48, | ||
331 | 0x47, 0x58, 0x74, 0x8e, 0x92, 0x77, 0x48, 0x23, | ||
332 | 0x44, 0x46, 0x4a, 0x51, 0x5b, 0x66, 0x70, 0x75, | ||
333 | 0x5a, 0x56, 0x57, 0x5d, 0x5d, 0x5a, 0x5f, 0x6a, | ||
334 | 0x66, 0x66, 0x66, 0x61, 0x58, 0x4c, 0x40, 0x39, | ||
335 | 0x34, 0x30, 0x2c, 0x2b, 0x2c, 0x2c, 0x29, 0x27, | ||
336 | 0x26, 0x1d, 0x30, 0x1c, 0x3c, 0x9c, 0xb4, 0xa9, | ||
337 | 0xb0, 0xa7, 0xae, 0xb2, 0xa6, 0xa8, 0xae, 0xa6, | ||
338 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
339 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
340 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
341 | 0xa3, 0xac, 0xb0, 0xac, 0xa8, 0xaa, 0xaf, 0xb1, | ||
342 | 0xaf, 0xa4, 0xa3, 0xaa, 0xac, 0xa9, 0xaa, 0xab, | ||
343 | 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, | ||
344 | 0xa7, 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, 0xa3, | ||
345 | 0x9e, 0xa0, 0x9d, 0x9a, 0xa1, 0x95, 0x1d, 0x06, | ||
346 | 0x91, 0x9d, 0xa0, 0x93, 0x85, 0x88, 0x99, 0xa8, | ||
347 | 0xa1, 0xa5, 0xa7, 0xa5, 0xa1, 0x9f, 0xa2, 0xa6, | ||
348 | 0x98, 0x97, 0x97, 0x99, 0xa0, 0xa9, 0xb2, 0xb8, | ||
349 | 0xb2, 0xb3, 0xb4, 0xb5, 0xb5, 0xb4, 0xb2, 0xb1, | ||
350 | 0xbd, 0x9f, 0x9c, 0xa8, 0xa2, 0x92, 0x7a, 0x5d, | ||
351 | 0x5e, 0x38, 0x1b, 0x1b, 0x3f, 0x82, 0xb5, 0xbe, | ||
352 | 0x90, 0x80, 0x62, 0x48, 0x35, 0x49, 0x82, 0x9f, | ||
353 | 0xc5, 0xc6, 0xc4, 0xbd, 0xb4, 0xac, 0xa9, 0xa8, | ||
354 | 0xa0, 0xa7, 0xa6, 0x9e, 0x9c, 0xa4, 0xa7, 0xa4, | ||
355 | 0x9e, 0x9e, 0xa6, 0xa9, 0xa3, 0xa2, 0xa6, 0xa3, | ||
356 | 0x88, 0x85, 0x85, 0x8e, 0x99, 0x9b, 0x93, 0x8a, | ||
357 | 0x9a, 0x9e, 0xa1, 0x99, 0x84, 0x65, 0x47, 0x33, | ||
358 | 0x36, 0x53, 0x69, 0x6d, 0x64, 0x50, 0x44, 0x49, | ||
359 | 0x3e, 0x37, 0x2c, 0x27, 0x2f, 0x42, 0x60, 0x7a, | ||
360 | 0x4c, 0x2d, 0x34, 0x49, 0x3d, 0x34, 0x45, 0x54, | ||
361 | 0x67, 0x6f, 0x62, 0x51, 0x5b, 0x6c, 0x71, 0x73, | ||
362 | 0x78, 0x75, 0x81, 0x75, 0x6d, 0x73, 0x6e, 0x7c, | ||
363 | 0x79, 0x68, 0x4d, 0x50, 0x77, 0x8e, 0x8f, 0x91, | ||
364 | 0x81, 0x8e, 0x8a, 0x6c, 0x5d, 0x75, 0x8e, 0x8c, | ||
365 | 0x85, 0x88, 0x8b, 0x8d, 0x8b, 0x89, 0x86, 0x85, | ||
366 | 0x85, 0x86, 0x86, 0x85, 0x82, 0x7e, 0x79, 0x76, | ||
367 | 0x70, 0x75, 0x79, 0x77, 0x70, 0x6b, 0x6b, 0x6e, | ||
368 | 0x60, 0x6b, 0x6e, 0x68, 0x69, 0x71, 0x6e, 0x61, | ||
369 | 0x6e, 0x68, 0x67, 0x73, 0x82, 0x82, 0x6f, 0x5b, | ||
370 | 0x69, 0x5e, 0x4e, 0x41, 0x3b, 0x3c, 0x41, 0x45, | ||
371 | 0x5b, 0x68, 0x6d, 0x66, 0x62, 0x6f, 0x81, 0x8c, | ||
372 | 0x82, 0x77, 0x6c, 0x69, 0x71, 0x7d, 0x85, 0x89, | ||
373 | 0x6c, 0x50, 0x42, 0x4f, 0x5a, 0x57, 0x58, 0x62, | ||
374 | 0x32, 0x30, 0x31, 0x38, 0x44, 0x4d, 0x50, 0x50, | ||
375 | 0x46, 0x50, 0x53, 0x45, 0x32, 0x30, 0x43, 0x59, | ||
376 | 0x2b, 0x45, 0x62, 0x69, 0x59, 0x41, 0x31, 0x2b, | ||
377 | 0x3d, 0x4a, 0x54, 0x57, 0x59, 0x5e, 0x5c, 0x56, | ||
378 | 0x58, 0x5b, 0x5d, 0x5c, 0x55, 0x49, 0x3d, 0x35, | ||
379 | 0x25, 0x2c, 0x31, 0x2e, 0x25, 0x20, 0x22, 0x26, | ||
380 | 0x23, 0x20, 0x27, 0x37, 0x81, 0xbb, 0xad, 0xb0, | ||
381 | 0xab, 0xa5, 0xaa, 0xae, 0xa8, 0xac, 0xaf, 0xa4, | ||
382 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
383 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
384 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
385 | 0xac, 0xac, 0xa5, 0x9e, 0xa7, 0xb2, 0xab, 0x99, | ||
386 | 0x8e, 0x7d, 0x88, 0x9a, 0x9a, 0xa7, 0xb3, 0xa6, | ||
387 | 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, | ||
388 | 0xa7, 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, 0xa3, | ||
389 | 0x9e, 0xa0, 0x9d, 0x9a, 0xa1, 0x95, 0x1d, 0x06, | ||
390 | 0x97, 0x9a, 0x91, 0x82, 0x87, 0x9d, 0xa6, 0x9f, | ||
391 | 0xa3, 0xa1, 0x9f, 0x9d, 0x9d, 0x9f, 0xa3, 0xa7, | ||
392 | 0xac, 0xae, 0xb0, 0xab, 0x9d, 0x89, 0x75, 0x68, | ||
393 | 0x68, 0x65, 0x61, 0x62, 0x69, 0x76, 0x84, 0x8d, | ||
394 | 0x9f, 0x9f, 0xa9, 0xaf, 0x9b, 0x71, 0x44, 0x26, | ||
395 | 0x20, 0x2b, 0x73, 0xb5, 0xc1, 0xc5, 0xa8, 0x62, | ||
396 | 0x51, 0x64, 0x59, 0x6b, 0xa2, 0xbe, 0xbe, 0xb8, | ||
397 | 0xa6, 0xa6, 0xa4, 0xa2, 0xa1, 0xa3, 0xa5, 0xa7, | ||
398 | 0xa5, 0xa7, 0x9f, 0x92, 0x93, 0xa2, 0xaa, 0xa7, | ||
399 | 0x9b, 0x98, 0x9d, 0xa2, 0xa1, 0xa6, 0xab, 0xa8, | ||
400 | 0x92, 0x85, 0x76, 0x6f, 0x71, 0x71, 0x6c, 0x65, | ||
401 | 0x75, 0x82, 0x91, 0x95, 0x89, 0x72, 0x5a, 0x4c, | ||
402 | 0x36, 0x36, 0x41, 0x48, 0x42, 0x3c, 0x34, 0x26, | ||
403 | 0x1f, 0x38, 0x24, 0x32, 0x80, 0x87, 0x44, 0x24, | ||
404 | 0x1a, 0x37, 0x3c, 0x2f, 0x2d, 0x2e, 0x2f, 0x36, | ||
405 | 0x45, 0x5a, 0x5f, 0x58, 0x5c, 0x61, 0x63, 0x69, | ||
406 | 0x53, 0x4f, 0x50, 0x53, 0x5b, 0x65, 0x67, 0x69, | ||
407 | 0x71, 0x5e, 0x4f, 0x59, 0x73, 0x84, 0x87, 0x87, | ||
408 | 0x80, 0x68, 0x6b, 0x84, 0x87, 0x7a, 0x7b, 0x85, | ||
409 | 0x81, 0x83, 0x86, 0x8a, 0x8e, 0x8d, 0x89, 0x85, | ||
410 | 0x84, 0x89, 0x90, 0x95, 0x96, 0x92, 0x8c, 0x88, | ||
411 | 0x7e, 0x6f, 0x63, 0x67, 0x76, 0x7e, 0x78, 0x6e, | ||
412 | 0x6f, 0x79, 0x79, 0x6b, 0x65, 0x69, 0x65, 0x5a, | ||
413 | 0x71, 0x7b, 0x86, 0x8b, 0x87, 0x7f, 0x78, 0x75, | ||
414 | 0x7e, 0x73, 0x61, 0x4c, 0x3d, 0x38, 0x3b, 0x3f, | ||
415 | 0x4c, 0x5c, 0x5a, 0x4b, 0x51, 0x6d, 0x7c, 0x76, | ||
416 | 0x7a, 0x7b, 0x80, 0x8c, 0x96, 0x94, 0x88, 0x7b, | ||
417 | 0x67, 0x70, 0x81, 0x8f, 0x8c, 0x77, 0x5d, 0x4d, | ||
418 | 0x3b, 0x45, 0x4e, 0x4c, 0x40, 0x34, 0x2e, 0x2e, | ||
419 | 0x34, 0x38, 0x41, 0x4d, 0x52, 0x4b, 0x3a, 0x2c, | ||
420 | 0x48, 0x43, 0x3f, 0x40, 0x45, 0x4b, 0x50, 0x52, | ||
421 | 0x50, 0x4c, 0x41, 0x3b, 0x43, 0x51, 0x53, 0x4c, | ||
422 | 0x59, 0x51, 0x45, 0x3a, 0x32, 0x30, 0x31, 0x33, | ||
423 | 0x36, 0x2c, 0x22, 0x20, 0x23, 0x25, 0x22, 0x1d, | ||
424 | 0x24, 0x20, 0x48, 0x80, 0x99, 0xa6, 0xb3, 0xb6, | ||
425 | 0xa2, 0xa0, 0xa5, 0xad, 0xad, 0xac, 0xac, 0xaa, | ||
426 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
427 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
428 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
429 | 0xa9, 0xa7, 0xad, 0xad, 0x92, 0x74, 0x7a, 0x95, | ||
430 | 0x99, 0x9d, 0x9b, 0x8e, 0x84, 0x8a, 0x9b, 0xa9, | ||
431 | 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, | ||
432 | 0xa7, 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, 0xa3, | ||
433 | 0x9e, 0xa0, 0x9d, 0x9a, 0xa1, 0x95, 0x1d, 0x06, | ||
434 | 0x8b, 0x7f, 0x81, 0x95, 0xa5, 0xa5, 0xa2, 0xa4, | ||
435 | 0xa3, 0xa3, 0xa5, 0xa8, 0xa8, 0xa2, 0x96, 0x8d, | ||
436 | 0x5c, 0x56, 0x4f, 0x4d, 0x55, 0x66, 0x78, 0x84, | ||
437 | 0x8f, 0x90, 0x90, 0x8e, 0x86, 0x7b, 0x70, 0x69, | ||
438 | 0x6a, 0x73, 0x75, 0x68, 0x42, 0x1e, 0x41, 0x8e, | ||
439 | 0x9a, 0x98, 0xa1, 0xa8, 0xa7, 0xaa, 0xa0, 0x86, | ||
440 | 0x9d, 0x87, 0x80, 0xa5, 0xba, 0xac, 0xa6, 0xa4, | ||
441 | 0xa5, 0xa5, 0xa5, 0xa4, 0xa3, 0xa3, 0xa4, 0xa6, | ||
442 | 0xa4, 0xa2, 0x97, 0x8c, 0x93, 0xa5, 0xa8, 0x9f, | ||
443 | 0xa2, 0xa3, 0xaa, 0xac, 0xa3, 0xa1, 0xa3, 0xa0, | ||
444 | 0x8d, 0x76, 0x57, 0x43, 0x3e, 0x40, 0x40, 0x3e, | ||
445 | 0x47, 0x43, 0x42, 0x4a, 0x55, 0x57, 0x4e, 0x43, | ||
446 | 0x38, 0x28, 0x36, 0x3a, 0x22, 0x27, 0x35, 0x25, | ||
447 | 0x3a, 0x29, 0x84, 0xaa, 0x52, 0x55, 0x94, 0x7c, | ||
448 | 0x89, 0x77, 0x6e, 0x69, 0x54, 0x39, 0x2c, 0x29, | ||
449 | 0x2e, 0x22, 0x26, 0x33, 0x35, 0x38, 0x3f, 0x3e, | ||
450 | 0x40, 0x45, 0x3e, 0x4c, 0x56, 0x58, 0x66, 0x61, | ||
451 | 0x5e, 0x53, 0x51, 0x52, 0x53, 0x67, 0x7f, 0x84, | ||
452 | 0x6d, 0x6d, 0x6f, 0x6e, 0x6f, 0x7a, 0x7f, 0x76, | ||
453 | 0x69, 0x68, 0x6d, 0x78, 0x86, 0x8c, 0x88, 0x82, | ||
454 | 0x7b, 0x81, 0x8a, 0x8f, 0x8e, 0x87, 0x7d, 0x76, | ||
455 | 0x75, 0x7d, 0x86, 0x88, 0x84, 0x80, 0x80, 0x82, | ||
456 | 0x61, 0x71, 0x78, 0x72, 0x73, 0x7c, 0x7e, 0x76, | ||
457 | 0x6f, 0x80, 0x8d, 0x85, 0x71, 0x6a, 0x79, 0x8b, | ||
458 | 0x7b, 0x72, 0x62, 0x50, 0x42, 0x3e, 0x43, 0x49, | ||
459 | 0x3c, 0x37, 0x34, 0x40, 0x5a, 0x75, 0x84, 0x87, | ||
460 | 0x87, 0x82, 0x7f, 0x84, 0x89, 0x85, 0x77, 0x69, | ||
461 | 0x62, 0x76, 0x7e, 0x6d, 0x60, 0x60, 0x5e, 0x55, | ||
462 | 0x44, 0x49, 0x48, 0x3c, 0x2d, 0x2c, 0x3a, 0x4a, | ||
463 | 0x52, 0x50, 0x49, 0x3e, 0x35, 0x36, 0x41, 0x4b, | ||
464 | 0x3d, 0x4a, 0x54, 0x4e, 0x3f, 0x39, 0x43, 0x51, | ||
465 | 0x51, 0x44, 0x3a, 0x37, 0x35, 0x31, 0x36, 0x3f, | ||
466 | 0x39, 0x3a, 0x3c, 0x3b, 0x38, 0x34, 0x2e, 0x2b, | ||
467 | 0x25, 0x26, 0x26, 0x23, 0x21, 0x22, 0x26, 0x2a, | ||
468 | 0x1e, 0x36, 0x8c, 0x9f, 0x9c, 0xae, 0xa0, 0xab, | ||
469 | 0xab, 0xaa, 0xab, 0xaf, 0xab, 0xa4, 0xaa, 0xba, | ||
470 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
471 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
472 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
473 | 0xa1, 0xa7, 0xa9, 0xa7, 0xad, 0xb9, 0xbb, 0xb3, | ||
474 | 0xb0, 0x8e, 0x41, 0x36, 0x89, 0xb6, 0xa7, 0xa6, | ||
475 | 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, | ||
476 | 0xa7, 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, 0xa3, | ||
477 | 0x9e, 0xa0, 0x9d, 0x9a, 0xa1, 0x95, 0x1d, 0x06, | ||
478 | 0x65, 0x7d, 0x9b, 0xab, 0xaa, 0xa4, 0xa1, 0xa3, | ||
479 | 0xa2, 0x9a, 0x88, 0x6f, 0x5b, 0x54, 0x5c, 0x66, | ||
480 | 0x82, 0x9e, 0xac, 0xb3, 0xbc, 0xb3, 0xb0, 0xc3, | ||
481 | 0xb0, 0xac, 0xb7, 0xb2, 0xa6, 0xbf, 0xc1, 0x94, | ||
482 | 0x4e, 0x4c, 0x53, 0x57, 0x44, 0x5b, 0xa5, 0xc8, | ||
483 | 0xb9, 0xab, 0xa2, 0x8f, 0x8d, 0x84, 0x6f, 0x83, | ||
484 | 0x97, 0x8a, 0x91, 0xa2, 0xa6, 0xa7, 0xa6, 0x9d, | ||
485 | 0xa6, 0xa5, 0xa4, 0xa2, 0xa1, 0x9f, 0x9e, 0x9d, | ||
486 | 0xa3, 0xa3, 0xa3, 0xa3, 0xa2, 0xa2, 0xa2, 0xa2, | ||
487 | 0xa1, 0xaa, 0x99, 0xa8, 0xab, 0xa1, 0xa9, 0x8c, | ||
488 | 0xa8, 0xaf, 0xa2, 0x6b, 0x35, 0x32, 0x40, 0x39, | ||
489 | 0x30, 0x32, 0x33, 0x31, 0x30, 0x34, 0x3e, 0x46, | ||
490 | 0x43, 0x40, 0x3b, 0x35, 0x31, 0x3e, 0x6d, 0xa2, | ||
491 | 0xc2, 0xb3, 0x77, 0x50, 0x84, 0xc4, 0xb3, 0x7d, | ||
492 | 0x99, 0xa7, 0x93, 0xab, 0xcc, 0xc0, 0xb5, 0xa6, | ||
493 | 0x77, 0x71, 0x64, 0x4f, 0x36, 0x22, 0x18, 0x15, | ||
494 | 0x25, 0x28, 0x2f, 0x35, 0x33, 0x30, 0x36, 0x3f, | ||
495 | 0x45, 0x46, 0x4f, 0x5b, 0x5e, 0x56, 0x50, 0x4f, | ||
496 | 0x4a, 0x53, 0x5a, 0x5b, 0x5d, 0x64, 0x69, 0x69, | ||
497 | 0x5a, 0x60, 0x69, 0x72, 0x78, 0x7b, 0x7c, 0x7c, | ||
498 | 0x83, 0x8b, 0x7b, 0x6d, 0x76, 0x74, 0x64, 0x5f, | ||
499 | 0x74, 0x82, 0x81, 0x75, 0x70, 0x6f, 0x69, 0x62, | ||
500 | 0x55, 0x62, 0x75, 0x84, 0x8a, 0x84, 0x79, 0x70, | ||
501 | 0x7a, 0x7e, 0x83, 0x87, 0x89, 0x88, 0x85, 0x83, | ||
502 | 0x7b, 0x7e, 0x7b, 0x6a, 0x51, 0x3f, 0x3a, 0x3c, | ||
503 | 0x37, 0x38, 0x3e, 0x4b, 0x5c, 0x69, 0x6f, 0x70, | ||
504 | 0x79, 0x82, 0x86, 0x7d, 0x6c, 0x64, 0x69, 0x72, | ||
505 | 0x86, 0x87, 0x80, 0x6c, 0x52, 0x40, 0x3b, 0x3d, | ||
506 | 0x35, 0x42, 0x41, 0x35, 0x3b, 0x5b, 0x78, 0x83, | ||
507 | 0x63, 0x54, 0x43, 0x39, 0x3a, 0x3f, 0x42, 0x42, | ||
508 | 0x3e, 0x39, 0x34, 0x33, 0x34, 0x34, 0x30, 0x2c, | ||
509 | 0x2b, 0x30, 0x38, 0x3e, 0x40, 0x3f, 0x3c, 0x3a, | ||
510 | 0x35, 0x34, 0x31, 0x2e, 0x2a, 0x27, 0x24, 0x23, | ||
511 | 0x22, 0x23, 0x27, 0x24, 0x1d, 0x1e, 0x23, 0x20, | ||
512 | 0x2f, 0x84, 0x97, 0x90, 0x9d, 0xa2, 0xaa, 0xaf, | ||
513 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
514 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
515 | 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, | ||
516 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
517 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
518 | 0xa9, 0xa2, 0xa3, 0xac, 0xae, 0xa8, 0xa9, 0xb0, | ||
519 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
520 | 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, 0xa3, 0xa3, | ||
521 | 0xa2, 0xa0, 0x9f, 0xa0, 0xa6, 0x94, 0x1b, 0x06, | ||
522 | 0x7f, 0x89, 0x95, 0x99, 0x92, 0x83, 0x73, 0x6a, | ||
523 | 0x4c, 0x5b, 0x6f, 0x82, 0x92, 0xa3, 0xb5, 0xc2, | ||
524 | 0xb8, 0xa9, 0xa6, 0xad, 0xa9, 0x9e, 0xa0, 0xa8, | ||
525 | 0x98, 0xa8, 0xa0, 0xa3, 0xb2, 0x8c, 0x52, 0x46, | ||
526 | 0x51, 0x5b, 0x81, 0xa4, 0x83, 0x5d, 0x6f, 0x7c, | ||
527 | 0x8b, 0x8f, 0xa0, 0xb2, 0xa7, 0x95, 0xa3, 0xb8, | ||
528 | 0x99, 0x88, 0x8a, 0x9a, 0xa3, 0xaa, 0xaa, 0xa2, | ||
529 | 0xa7, 0xa6, 0xa6, 0xa5, 0xa4, 0xa3, 0xa2, 0xa1, | ||
530 | 0x9e, 0x9f, 0xa0, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, | ||
531 | 0xa6, 0x9d, 0xa5, 0xaa, 0xa8, 0x9f, 0x91, 0x8f, | ||
532 | 0xbc, 0xa7, 0x85, 0x8e, 0xa0, 0x6b, 0x42, 0x62, | ||
533 | 0x3a, 0x5f, 0x59, 0x48, 0x4e, 0x42, 0x43, 0x6d, | ||
534 | 0x72, 0x74, 0x7a, 0x87, 0xa8, 0xd5, 0xe3, 0xd1, | ||
535 | 0x7e, 0x3a, 0x67, 0xbc, 0xba, 0xae, 0xa0, 0x6a, | ||
536 | 0x88, 0x92, 0x7f, 0x74, 0x84, 0x9b, 0xb4, 0xc4, | ||
537 | 0xc9, 0xcd, 0xcf, 0xcb, 0xc2, 0xba, 0xb6, 0xb6, | ||
538 | 0xaa, 0x95, 0x6e, 0x4a, 0x3c, 0x3a, 0x2f, 0x1e, | ||
539 | 0x20, 0x29, 0x2f, 0x31, 0x35, 0x3e, 0x40, 0x3d, | ||
540 | 0x3c, 0x47, 0x4f, 0x4c, 0x49, 0x4f, 0x58, 0x5d, | ||
541 | 0x5f, 0x62, 0x63, 0x61, 0x5f, 0x63, 0x6d, 0x76, | ||
542 | 0x6e, 0x62, 0x65, 0x72, 0x6d, 0x5f, 0x64, 0x76, | ||
543 | 0x68, 0x74, 0x76, 0x6f, 0x6e, 0x6f, 0x6a, 0x63, | ||
544 | 0x6a, 0x69, 0x67, 0x67, 0x67, 0x69, 0x6a, 0x6c, | ||
545 | 0x7d, 0x7f, 0x81, 0x81, 0x7f, 0x7a, 0x74, 0x71, | ||
546 | 0x7f, 0x82, 0x83, 0x7c, 0x6f, 0x62, 0x5a, 0x57, | ||
547 | 0x6a, 0x5d, 0x4d, 0x47, 0x4e, 0x5d, 0x6d, 0x75, | ||
548 | 0x77, 0x79, 0x74, 0x69, 0x61, 0x6c, 0x87, 0x9f, | ||
549 | 0xa5, 0x90, 0x71, 0x56, 0x4a, 0x4b, 0x52, 0x58, | ||
550 | 0x48, 0x49, 0x51, 0x60, 0x69, 0x68, 0x62, 0x5e, | ||
551 | 0x3f, 0x45, 0x53, 0x66, 0x77, 0x7b, 0x75, 0x6c, | ||
552 | 0x4b, 0x4f, 0x51, 0x4b, 0x41, 0x3c, 0x3e, 0x43, | ||
553 | 0x40, 0x42, 0x43, 0x41, 0x3d, 0x39, 0x38, 0x38, | ||
554 | 0x37, 0x35, 0x32, 0x2d, 0x27, 0x23, 0x1f, 0x1d, | ||
555 | 0x28, 0x1e, 0x20, 0x24, 0x1e, 0x1e, 0x21, 0x1c, | ||
556 | 0x7f, 0xaa, 0xaf, 0x99, 0x97, 0xa6, 0xaf, 0xa8, | ||
557 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
558 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
559 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
560 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
561 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
562 | 0xa1, 0x74, 0x68, 0x92, 0xb3, 0xab, 0x9f, 0xa4, | ||
563 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
564 | 0xa6, 0xa6, 0xa6, 0xa5, 0xa4, 0xa4, 0xa3, 0xa3, | ||
565 | 0xa2, 0xa0, 0x9f, 0xa0, 0xa7, 0x95, 0x1b, 0x06, | ||
566 | 0x74, 0x6c, 0x60, 0x59, 0x5f, 0x73, 0x8c, 0x9e, | ||
567 | 0xad, 0xb3, 0xb7, 0xb5, 0xaf, 0xa9, 0xa9, 0xab, | ||
568 | 0xa1, 0xa8, 0xae, 0xa9, 0xa1, 0xa2, 0xa3, 0xa0, | ||
569 | 0x9c, 0xae, 0xaf, 0x81, 0x4a, 0x4a, 0x81, 0xb1, | ||
570 | 0x78, 0xa3, 0xbd, 0xae, 0x8a, 0x89, 0x97, 0x7e, | ||
571 | 0x6c, 0x6e, 0x7a, 0x9d, 0x9d, 0x94, 0xa7, 0x9c, | ||
572 | 0x8f, 0x90, 0x9b, 0xa4, 0xa1, 0xa1, 0xa7, 0xab, | ||
573 | 0xa7, 0xa7, 0xa7, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, | ||
574 | 0x97, 0x99, 0x9c, 0xa1, 0xa5, 0xaa, 0xad, 0xaf, | ||
575 | 0xaa, 0xa2, 0xae, 0xa7, 0xa3, 0xa5, 0x98, 0xa3, | ||
576 | 0x95, 0x7e, 0x9c, 0xa2, 0x77, 0x8c, 0xb6, 0xa2, | ||
577 | 0x81, 0x9f, 0x88, 0x90, 0xcf, 0xc8, 0x9c, 0xab, | ||
578 | 0xb9, 0xbb, 0xb8, 0xac, 0x9a, 0x7c, 0x4b, 0x1c, | ||
579 | 0x46, 0xa0, 0xca, 0xb4, 0xab, 0xaf, 0xa1, 0x93, | ||
580 | 0x79, 0x98, 0xaf, 0x9f, 0x95, 0xa0, 0xa1, 0xa1, | ||
581 | 0xab, 0xac, 0xad, 0xad, 0xae, 0xb2, 0xb9, 0xbf, | ||
582 | 0xc4, 0xc9, 0xce, 0xca, 0xbd, 0xaf, 0xaa, 0xac, | ||
583 | 0xa0, 0x89, 0x60, 0x39, 0x28, 0x2a, 0x2f, 0x2e, | ||
584 | 0x2e, 0x31, 0x32, 0x31, 0x32, 0x34, 0x2e, 0x25, | ||
585 | 0x2e, 0x33, 0x39, 0x3e, 0x42, 0x46, 0x4a, 0x4d, | ||
586 | 0x46, 0x4d, 0x54, 0x58, 0x5d, 0x64, 0x62, 0x59, | ||
587 | 0x64, 0x66, 0x65, 0x5e, 0x5c, 0x61, 0x63, 0x5f, | ||
588 | 0x63, 0x65, 0x68, 0x6a, 0x6a, 0x69, 0x67, 0x65, | ||
589 | 0x5f, 0x62, 0x66, 0x69, 0x6a, 0x68, 0x65, 0x62, | ||
590 | 0x72, 0x73, 0x75, 0x77, 0x74, 0x68, 0x57, 0x4a, | ||
591 | 0x45, 0x38, 0x32, 0x44, 0x66, 0x80, 0x85, 0x80, | ||
592 | 0x7e, 0x7c, 0x72, 0x60, 0x54, 0x5b, 0x75, 0x8c, | ||
593 | 0x8c, 0x81, 0x75, 0x72, 0x73, 0x6d, 0x5d, 0x4f, | ||
594 | 0x67, 0x64, 0x71, 0x83, 0x7a, 0x57, 0x40, 0x3f, | ||
595 | 0x3f, 0x5c, 0x77, 0x73, 0x57, 0x3d, 0x38, 0x3e, | ||
596 | 0x46, 0x3e, 0x32, 0x2a, 0x2a, 0x30, 0x38, 0x3d, | ||
597 | 0x3d, 0x35, 0x2b, 0x28, 0x2c, 0x30, 0x30, 0x2e, | ||
598 | 0x2f, 0x2e, 0x2d, 0x2a, 0x28, 0x26, 0x24, 0x23, | ||
599 | 0x23, 0x24, 0x1f, 0x24, 0x2a, 0x21, 0x30, 0x5b, | ||
600 | 0xa7, 0xa9, 0xa9, 0x90, 0x89, 0xa7, 0xb0, 0x9f, | ||
601 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
602 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
603 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
604 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
605 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
606 | 0xa7, 0xb0, 0xb4, 0xad, 0xa8, 0xaa, 0xae, 0xae, | ||
607 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
608 | 0xa7, 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, 0xa4, | ||
609 | 0xa2, 0xa1, 0x9f, 0xa1, 0xa7, 0x95, 0x1b, 0x06, | ||
610 | 0x74, 0x88, 0xa1, 0xb1, 0xb4, 0xb1, 0xb0, 0xb1, | ||
611 | 0xaa, 0xab, 0xa9, 0xa5, 0x9f, 0x9e, 0xa2, 0xa6, | ||
612 | 0x9e, 0xa9, 0xa7, 0xa2, 0xab, 0xad, 0xa1, 0x99, | ||
613 | 0xb9, 0xb4, 0x72, 0x40, 0x71, 0xac, 0x98, 0x67, | ||
614 | 0x79, 0x9b, 0xac, 0xa1, 0x8a, 0x92, 0xae, 0xa8, | ||
615 | 0xa7, 0x8a, 0x67, 0x6c, 0x8a, 0xaa, 0xb2, 0x90, | ||
616 | 0x9a, 0x94, 0x94, 0x9a, 0xa1, 0xa5, 0xa5, 0xa1, | ||
617 | 0xa5, 0xa5, 0xa5, 0xa6, 0xa6, 0xa7, 0xa7, 0xa7, | ||
618 | 0xa7, 0xa6, 0xa5, 0xa4, 0xa3, 0xa2, 0xa1, 0xa1, | ||
619 | 0xa1, 0x9d, 0xa2, 0xae, 0xaf, 0x9f, 0x98, 0xa4, | ||
620 | 0x7d, 0xb4, 0x81, 0x4d, 0x8e, 0xb6, 0x96, 0x8d, | ||
621 | 0x53, 0x86, 0xa2, 0xaf, 0xbc, 0xa6, 0x91, 0xa1, | ||
622 | 0xba, 0x9e, 0xa4, 0xd1, 0xb6, 0x4c, 0x3a, 0x92, | ||
623 | 0xbf, 0xb8, 0xaa, 0x9d, 0xa1, 0xab, 0xa2, 0x8b, | ||
624 | 0x95, 0xab, 0xb6, 0xa3, 0x91, 0x9d, 0xab, 0xa8, | ||
625 | 0xa3, 0xa5, 0xa8, 0xa9, 0xa9, 0xa8, 0xa8, 0xa8, | ||
626 | 0xac, 0xa9, 0xac, 0xb3, 0xb1, 0xa9, 0xa8, 0xaf, | ||
627 | 0xc6, 0xaf, 0xa4, 0xb6, 0xc9, 0xbd, 0x97, 0x76, | ||
628 | 0x61, 0x5f, 0x59, 0x51, 0x4d, 0x49, 0x3e, 0x32, | ||
629 | 0x1e, 0x19, 0x18, 0x20, 0x2c, 0x33, 0x30, 0x2b, | ||
630 | 0x29, 0x2d, 0x2e, 0x31, 0x35, 0x37, 0x44, 0x5a, | ||
631 | 0x58, 0x4c, 0x45, 0x45, 0x46, 0x4c, 0x4c, 0x40, | ||
632 | 0x49, 0x4d, 0x52, 0x57, 0x5a, 0x5a, 0x58, 0x56, | ||
633 | 0x59, 0x5c, 0x61, 0x66, 0x68, 0x67, 0x65, 0x64, | ||
634 | 0x78, 0x75, 0x75, 0x7a, 0x7b, 0x6e, 0x54, 0x3f, | ||
635 | 0x4b, 0x2e, 0x1c, 0x34, 0x69, 0x93, 0x9b, 0x91, | ||
636 | 0x55, 0x62, 0x6f, 0x71, 0x6e, 0x71, 0x80, 0x8e, | ||
637 | 0x9a, 0x89, 0x73, 0x63, 0x5c, 0x59, 0x56, 0x53, | ||
638 | 0x71, 0x71, 0x71, 0x69, 0x57, 0x54, 0x70, 0x94, | ||
639 | 0x77, 0x6a, 0x5b, 0x55, 0x55, 0x54, 0x4d, 0x45, | ||
640 | 0x23, 0x2c, 0x3e, 0x58, 0x70, 0x7d, 0x7d, 0x79, | ||
641 | 0x5c, 0x52, 0x44, 0x38, 0x33, 0x33, 0x36, 0x39, | ||
642 | 0x3b, 0x39, 0x34, 0x2f, 0x29, 0x23, 0x1f, 0x1c, | ||
643 | 0x21, 0x24, 0x26, 0x29, 0x21, 0x20, 0x54, 0x9f, | ||
644 | 0xa2, 0x99, 0x9f, 0x90, 0x92, 0xb5, 0xb6, 0xa6, | ||
645 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
646 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
647 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
648 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
649 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
650 | 0xa7, 0xab, 0xab, 0xa7, 0xa8, 0xac, 0xad, 0xa9, | ||
651 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
652 | 0xa7, 0xa7, 0xa7, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, | ||
653 | 0xa3, 0xa1, 0xa0, 0xa1, 0xa8, 0x96, 0x1c, 0x07, | ||
654 | 0xa1, 0xa7, 0xac, 0xab, 0xa5, 0xa2, 0xa3, 0xa7, | ||
655 | 0x9d, 0xa0, 0xa3, 0xa4, 0xa4, 0xa4, 0xa6, 0xa8, | ||
656 | 0xa3, 0x9c, 0xa7, 0xaa, 0x99, 0x9b, 0xac, 0xb0, | ||
657 | 0xa6, 0x5f, 0x4e, 0x8d, 0xb0, 0x8f, 0x77, 0x83, | ||
658 | 0x9b, 0xa3, 0xa8, 0xac, 0x95, 0x83, 0x9c, 0xaf, | ||
659 | 0xac, 0xb2, 0xa9, 0x83, 0x74, 0x7c, 0x83, 0x97, | ||
660 | 0xae, 0xa4, 0x98, 0x97, 0xa4, 0xac, 0xaa, 0xa5, | ||
661 | 0xa3, 0xa3, 0xa3, 0xa4, 0xa4, 0xa5, 0xa5, 0xa5, | ||
662 | 0xa3, 0xa4, 0xa4, 0xa4, 0xa4, 0xa5, 0xa5, 0xa5, | ||
663 | 0xa5, 0xae, 0x8f, 0x5f, 0x60, 0x83, 0x91, 0x8b, | ||
664 | 0x9d, 0x33, 0x54, 0xb5, 0xa7, 0x85, 0x92, 0x90, | ||
665 | 0x77, 0x88, 0xb8, 0xc3, 0x9b, 0x91, 0xa3, 0x9f, | ||
666 | 0xb4, 0xb2, 0xb0, 0x6f, 0x28, 0x5b, 0xb4, 0xbe, | ||
667 | 0xb0, 0xa7, 0xb7, 0xad, 0x90, 0xa8, 0xaf, 0x75, | ||
668 | 0x97, 0xa9, 0xa5, 0xa2, 0x93, 0x90, 0xac, 0xaa, | ||
669 | 0xaa, 0xaa, 0xaa, 0xab, 0xab, 0xaa, 0xa8, 0xa6, | ||
670 | 0xab, 0xae, 0xac, 0xa9, 0xad, 0xb0, 0xa4, 0x93, | ||
671 | 0x69, 0x7e, 0x9f, 0xb7, 0xba, 0xb0, 0xad, 0xb2, | ||
672 | 0x81, 0xa0, 0xc2, 0xd3, 0xd6, 0xd4, 0xd0, 0xcc, | ||
673 | 0xc2, 0xbd, 0xb7, 0xb2, 0xa7, 0x92, 0x74, 0x5f, | ||
674 | 0x37, 0x25, 0x22, 0x28, 0x2c, 0x37, 0x37, 0x23, | ||
675 | 0x32, 0x2c, 0x35, 0x35, 0x26, 0x26, 0x33, 0x33, | ||
676 | 0x36, 0x31, 0x2a, 0x28, 0x2c, 0x38, 0x45, 0x4e, | ||
677 | 0x4e, 0x51, 0x55, 0x59, 0x5a, 0x58, 0x55, 0x53, | ||
678 | 0x68, 0x67, 0x69, 0x71, 0x75, 0x6b, 0x54, 0x3f, | ||
679 | 0x38, 0x46, 0x64, 0x88, 0x9a, 0x86, 0x55, 0x2c, | ||
680 | 0x56, 0x68, 0x79, 0x79, 0x6b, 0x5c, 0x57, 0x59, | ||
681 | 0x51, 0x53, 0x51, 0x4a, 0x42, 0x40, 0x47, 0x4e, | ||
682 | 0x3e, 0x5e, 0x79, 0x79, 0x71, 0x72, 0x77, 0x78, | ||
683 | 0x67, 0x5f, 0x4d, 0x36, 0x27, 0x2b, 0x3f, 0x51, | ||
684 | 0x88, 0x93, 0x9e, 0xa0, 0x99, 0x8f, 0x88, 0x86, | ||
685 | 0x7c, 0x78, 0x6a, 0x52, 0x38, 0x2b, 0x2f, 0x38, | ||
686 | 0x35, 0x35, 0x33, 0x31, 0x2f, 0x2d, 0x2c, 0x2b, | ||
687 | 0x25, 0x1f, 0x27, 0x26, 0x1e, 0x3e, 0x7a, 0x9d, | ||
688 | 0x98, 0x99, 0xa0, 0x96, 0xa1, 0xb7, 0xae, 0xa9, | ||
689 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
690 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
691 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
692 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
693 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
694 | 0xa9, 0xa7, 0xaa, 0xad, 0xa7, 0x9e, 0xa1, 0xab, | ||
695 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
696 | 0xa8, 0xa8, 0xa7, 0xa7, 0xa6, 0xa5, 0xa5, 0xa5, | ||
697 | 0xa3, 0xa2, 0xa1, 0xa2, 0xa8, 0x96, 0x1d, 0x08, | ||
698 | 0xa4, 0xa2, 0xa1, 0xa4, 0xa7, 0xa8, 0xa5, 0xa1, | ||
699 | 0xa2, 0xa3, 0xa4, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, | ||
700 | 0x9a, 0x96, 0xb0, 0xaa, 0x8c, 0xa7, 0xb8, 0x88, | ||
701 | 0x45, 0x5d, 0xaa, 0xc5, 0x91, 0x88, 0x9e, 0x8d, | ||
702 | 0x6d, 0x8c, 0x9e, 0xa5, 0x99, 0x8f, 0x9d, 0xa0, | ||
703 | 0xa7, 0xa4, 0xa9, 0x9b, 0x92, 0x7a, 0x56, 0x67, | ||
704 | 0xa2, 0xa4, 0x9c, 0x99, 0xa1, 0xa6, 0xa4, 0xa2, | ||
705 | 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa3, 0xa3, 0xa3, | ||
706 | 0xa9, 0xa8, 0xa7, 0xa6, 0xa4, 0xa3, 0xa2, 0xa1, | ||
707 | 0xa5, 0xa0, 0xac, 0xaa, 0xa7, 0x8a, 0x5d, 0x64, | ||
708 | 0x2c, 0x8f, 0x92, 0x6c, 0x99, 0xc1, 0xb7, 0xbb, | ||
709 | 0xa5, 0x7c, 0x92, 0xa4, 0x8b, 0xa8, 0xcc, 0xad, | ||
710 | 0xbe, 0x9f, 0x49, 0x3d, 0x90, 0xa9, 0x94, 0xaa, | ||
711 | 0xa2, 0xa6, 0xa5, 0xad, 0xbd, 0xb5, 0x99, 0x88, | ||
712 | 0x99, 0xb0, 0xa9, 0xb0, 0xa1, 0x8b, 0xa5, 0xab, | ||
713 | 0xaf, 0xaa, 0xa5, 0xa4, 0xa6, 0xa9, 0xaa, 0xaa, | ||
714 | 0xa9, 0xae, 0xaf, 0xab, 0xa5, 0xa3, 0xa6, 0xa8, | ||
715 | 0xba, 0xaa, 0x97, 0x94, 0xa4, 0xaf, 0xa2, 0x8c, | ||
716 | 0x91, 0xa0, 0xad, 0xad, 0xaa, 0xad, 0xb2, 0xb5, | ||
717 | 0xbc, 0xbf, 0xc2, 0xc5, 0xc6, 0xc8, 0xcb, 0xce, | ||
718 | 0xd4, 0xd1, 0xd4, 0xa0, 0x53, 0x60, 0x9b, 0xa5, | ||
719 | 0x6c, 0x40, 0x2a, 0x2c, 0x2b, 0x34, 0x36, 0x23, | ||
720 | 0x21, 0x22, 0x23, 0x25, 0x28, 0x2b, 0x2e, 0x2f, | ||
721 | 0x2f, 0x34, 0x3c, 0x44, 0x4b, 0x4e, 0x4f, 0x4f, | ||
722 | 0x45, 0x49, 0x52, 0x5d, 0x63, 0x60, 0x56, 0x4d, | ||
723 | 0x4c, 0x59, 0x64, 0x5f, 0x4d, 0x41, 0x42, 0x49, | ||
724 | 0x41, 0x54, 0x6a, 0x74, 0x71, 0x6f, 0x76, 0x7e, | ||
725 | 0x53, 0x52, 0x4c, 0x41, 0x3b, 0x46, 0x5f, 0x75, | ||
726 | 0x50, 0x54, 0x4e, 0x43, 0x4d, 0x5f, 0x5a, 0x46, | ||
727 | 0x4b, 0x36, 0x26, 0x35, 0x5b, 0x79, 0x7f, 0x79, | ||
728 | 0x9d, 0xa0, 0xa2, 0x9f, 0x96, 0x8a, 0x7f, 0x78, | ||
729 | 0x63, 0x59, 0x4b, 0x3e, 0x36, 0x31, 0x2b, 0x28, | ||
730 | 0x41, 0x3f, 0x3b, 0x36, 0x30, 0x2b, 0x27, 0x24, | ||
731 | 0x1b, 0x2d, 0x1f, 0x20, 0x58, 0x87, 0x8d, 0x8e, | ||
732 | 0x91, 0x9d, 0x9b, 0x94, 0xa3, 0xab, 0xa2, 0xa8, | ||
733 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
734 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
735 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
736 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
737 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
738 | 0xa5, 0xab, 0xa9, 0xa4, 0xa8, 0xb2, 0xb1, 0xa7, | ||
739 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
740 | 0xa8, 0xa8, 0xa8, 0xa7, 0xa7, 0xa6, 0xa6, 0xa5, | ||
741 | 0xa4, 0xa2, 0xa1, 0xa3, 0xa9, 0x97, 0x1d, 0x08, | ||
742 | 0xaa, 0xa5, 0x9f, 0x9f, 0xa2, 0xa4, 0xa3, 0xa0, | ||
743 | 0xa5, 0xa3, 0xa0, 0x9e, 0x9e, 0xa0, 0xa1, 0xa2, | ||
744 | 0xaf, 0xa7, 0xa0, 0x9d, 0xa5, 0xb0, 0x8a, 0x47, | ||
745 | 0x75, 0xb4, 0xbd, 0x93, 0x80, 0x80, 0x82, 0x8d, | ||
746 | 0x88, 0x95, 0x93, 0x94, 0x89, 0x81, 0x9b, 0xb1, | ||
747 | 0xab, 0x9e, 0x9e, 0xa8, 0xa6, 0x93, 0x87, 0x91, | ||
748 | 0x75, 0x76, 0x6e, 0x75, 0x94, 0xab, 0xad, 0xad, | ||
749 | 0xa9, 0xa8, 0xa7, 0xa6, 0xa5, 0xa4, 0xa4, 0xa3, | ||
750 | 0xa1, 0xa2, 0xa3, 0xa5, 0xa6, 0xa8, 0xa9, 0xa9, | ||
751 | 0xad, 0xa9, 0xa9, 0xac, 0xa6, 0x7f, 0x60, 0x72, | ||
752 | 0xaf, 0x7d, 0x88, 0xaa, 0xa3, 0xa7, 0xb9, 0xae, | ||
753 | 0x99, 0x82, 0x90, 0x95, 0x7e, 0x8d, 0xa9, 0x9c, | ||
754 | 0x3e, 0x14, 0x57, 0xbd, 0xc0, 0xa7, 0xad, 0xaa, | ||
755 | 0xaa, 0xa5, 0xa4, 0x9e, 0x9e, 0xae, 0xa5, 0x7e, | ||
756 | 0x94, 0xac, 0xac, 0xaf, 0xa8, 0x94, 0x9b, 0xab, | ||
757 | 0xac, 0xaa, 0xab, 0xae, 0xb1, 0xb0, 0xaa, 0xa5, | ||
758 | 0xaf, 0xa9, 0xa9, 0xb0, 0xaf, 0xa6, 0xa4, 0xa9, | ||
759 | 0xab, 0xb4, 0xb3, 0xa1, 0x91, 0x92, 0x9e, 0xa7, | ||
760 | 0xaf, 0xb0, 0xad, 0xa8, 0xaa, 0xaf, 0xaf, 0xaa, | ||
761 | 0xa6, 0xac, 0xb0, 0xae, 0xa9, 0xa6, 0xa8, 0xab, | ||
762 | 0xb3, 0xa7, 0xb3, 0xb5, 0x89, 0x68, 0x85, 0xb7, | ||
763 | 0x94, 0x3b, 0x08, 0x21, 0x5e, 0xaa, 0xd2, 0xc7, | ||
764 | 0xc9, 0xc8, 0xc0, 0xae, 0x8e, 0x67, 0x42, 0x2c, | ||
765 | 0x27, 0x29, 0x2d, 0x2f, 0x2f, 0x2c, 0x28, 0x26, | ||
766 | 0x3b, 0x44, 0x4f, 0x55, 0x56, 0x56, 0x58, 0x5a, | ||
767 | 0x4d, 0x4d, 0x44, 0x32, 0x27, 0x36, 0x5b, 0x7c, | ||
768 | 0x9c, 0xa4, 0xa5, 0x94, 0x76, 0x5d, 0x52, 0x52, | ||
769 | 0x3e, 0x42, 0x46, 0x45, 0x3f, 0x37, 0x30, 0x2d, | ||
770 | 0x41, 0x3a, 0x39, 0x48, 0x60, 0x67, 0x53, 0x3a, | ||
771 | 0x38, 0x47, 0x5b, 0x6b, 0x75, 0x7d, 0x88, 0x90, | ||
772 | 0x9c, 0x92, 0x86, 0x81, 0x81, 0x80, 0x7a, 0x74, | ||
773 | 0x69, 0x5f, 0x56, 0x59, 0x60, 0x60, 0x56, 0x4a, | ||
774 | 0x39, 0x38, 0x36, 0x33, 0x30, 0x2e, 0x2c, 0x2b, | ||
775 | 0x16, 0x2f, 0x21, 0x3c, 0x94, 0xaa, 0x8b, 0x90, | ||
776 | 0x95, 0xa4, 0x9b, 0x9b, 0xa8, 0xa7, 0xa7, 0xad, | ||
777 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
778 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
779 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
780 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
781 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
782 | 0xaa, 0xa8, 0xa7, 0xaa, 0xab, 0xa9, 0xa9, 0xaa, | ||
783 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
784 | 0xa9, 0xa9, 0xa8, 0xa8, 0xa7, 0xa6, 0xa6, 0xa6, | ||
785 | 0xa4, 0xa3, 0xa2, 0xa3, 0xa9, 0x97, 0x1e, 0x09, | ||
786 | 0xa0, 0xa1, 0xa2, 0xa1, 0xa0, 0xa1, 0xa3, 0xa5, | ||
787 | 0xa9, 0xa8, 0xa6, 0xa6, 0xa7, 0xa6, 0xa4, 0xa2, | ||
788 | 0x9e, 0xa7, 0x97, 0xa5, 0xb5, 0x73, 0x4e, 0x8a, | ||
789 | 0xb4, 0xb3, 0x9a, 0x82, 0x8d, 0xa5, 0xa8, 0x9e, | ||
790 | 0x9e, 0xad, 0xa9, 0xa3, 0x93, 0x84, 0x94, 0xa2, | ||
791 | 0xa6, 0x9f, 0x97, 0xa4, 0x99, 0x92, 0xa9, 0xa5, | ||
792 | 0x9d, 0x9b, 0x83, 0x6d, 0x73, 0x83, 0x92, 0xa1, | ||
793 | 0xad, 0xac, 0xab, 0xa9, 0xa8, 0xa6, 0xa5, 0xa4, | ||
794 | 0xa7, 0xa7, 0xa6, 0xa6, 0xa5, 0xa5, 0xa4, 0xa4, | ||
795 | 0xad, 0xaa, 0x79, 0x72, 0x6d, 0x56, 0x75, 0x94, | ||
796 | 0x82, 0xa9, 0xbf, 0xbd, 0xb4, 0xa4, 0x9f, 0xae, | ||
797 | 0xaf, 0x87, 0x65, 0x6a, 0x81, 0x77, 0x40, 0x0a, | ||
798 | 0x4f, 0x9e, 0xc4, 0xb1, 0xaa, 0xad, 0xaa, 0xa9, | ||
799 | 0xa9, 0xa7, 0xa9, 0xa3, 0xa1, 0xb1, 0xa6, 0x7c, | ||
800 | 0x99, 0xaa, 0xad, 0xa7, 0xaa, 0x9c, 0x8f, 0xa1, | ||
801 | 0xac, 0xa8, 0xa5, 0xa6, 0xac, 0xaf, 0xae, 0xac, | ||
802 | 0xa6, 0xaa, 0xab, 0xa8, 0xaa, 0xae, 0xae, 0xa9, | ||
803 | 0xa6, 0xa9, 0xaf, 0xb0, 0xa4, 0x96, 0x96, 0x9f, | ||
804 | 0xae, 0xb2, 0xb0, 0xa9, 0xa6, 0xa9, 0xab, 0xaa, | ||
805 | 0xab, 0xaa, 0xa8, 0xa6, 0xa6, 0xa8, 0xaa, 0xad, | ||
806 | 0xa5, 0xb3, 0xa9, 0xb4, 0xbd, 0x75, 0x3a, 0x55, | ||
807 | 0x7d, 0x80, 0xb1, 0xd7, 0xcb, 0xc3, 0xc8, 0xbd, | ||
808 | 0xb9, 0xbe, 0xc5, 0xcb, 0xce, 0xcb, 0xc7, 0xc4, | ||
809 | 0xa9, 0xa4, 0x98, 0x86, 0x70, 0x59, 0x46, 0x3b, | ||
810 | 0x2b, 0x35, 0x3d, 0x3b, 0x33, 0x31, 0x38, 0x40, | ||
811 | 0x4a, 0x50, 0x5c, 0x69, 0x6e, 0x68, 0x5a, 0x4e, | ||
812 | 0x61, 0x71, 0x7f, 0x7c, 0x6b, 0x5a, 0x53, 0x54, | ||
813 | 0x51, 0x43, 0x35, 0x37, 0x47, 0x5b, 0x67, 0x6b, | ||
814 | 0x68, 0x5b, 0x5f, 0x77, 0x81, 0x72, 0x5e, 0x57, | ||
815 | 0x69, 0x75, 0x82, 0x85, 0x7a, 0x6b, 0x5f, 0x5a, | ||
816 | 0x60, 0x6f, 0x83, 0x8d, 0x88, 0x79, 0x68, 0x5e, | ||
817 | 0x58, 0x60, 0x64, 0x5e, 0x4e, 0x40, 0x3b, 0x3b, | ||
818 | 0x3b, 0x39, 0x36, 0x32, 0x2e, 0x29, 0x26, 0x25, | ||
819 | 0x25, 0x15, 0x2c, 0x6d, 0x97, 0x90, 0x83, 0x87, | ||
820 | 0x99, 0xa6, 0x9a, 0xa1, 0xa9, 0xa3, 0xaa, 0xa8, | ||
821 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
822 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
823 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
824 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
825 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
826 | 0xab, 0xa5, 0xa5, 0xab, 0xac, 0xa7, 0xa7, 0xab, | ||
827 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
828 | 0xa9, 0xa9, 0xa8, 0xa8, 0xa7, 0xa7, 0xa6, 0xa6, | ||
829 | 0xa5, 0xa3, 0xa2, 0xa3, 0xa9, 0x97, 0x1e, 0x09, | ||
830 | 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, | ||
831 | 0xa3, 0xa0, 0xac, 0xa7, 0xa6, 0xa5, 0x97, 0x9e, | ||
832 | 0x99, 0xa8, 0xb5, 0xa4, 0x5e, 0x4d, 0x8e, 0xa9, | ||
833 | 0xb6, 0x99, 0x81, 0x91, 0xae, 0xa9, 0xa1, 0xb0, | ||
834 | 0x9c, 0xa3, 0xa8, 0xad, 0xa3, 0x8b, 0x8f, 0xaf, | ||
835 | 0xaa, 0x9c, 0x8e, 0x8d, 0x9a, 0xa6, 0xab, 0xaa, | ||
836 | 0xab, 0xa4, 0xa1, 0x9e, 0x8e, 0x74, 0x61, 0x5b, | ||
837 | 0x6a, 0x7f, 0x94, 0x9e, 0xa7, 0xb2, 0xb5, 0xb2, | ||
838 | 0xa2, 0xb5, 0xb7, 0xad, 0xae, 0xaf, 0xb0, 0xb7, | ||
839 | 0xb2, 0xab, 0x91, 0x4f, 0x54, 0x86, 0x8e, 0xa5, | ||
840 | 0xb0, 0xb0, 0xaa, 0xa3, 0xa6, 0xac, 0xaa, 0xa5, | ||
841 | 0xaa, 0x9f, 0x7b, 0x73, 0x6f, 0x3f, 0x49, 0xa1, | ||
842 | 0xb9, 0xb6, 0xb1, 0xac, 0xa8, 0xa5, 0xa4, 0xa3, | ||
843 | 0xa8, 0xa8, 0xaa, 0xa7, 0xa7, 0xae, 0xa0, 0x82, | ||
844 | 0x9b, 0xa4, 0xa9, 0xa7, 0xa5, 0xa4, 0x9c, 0x92, | ||
845 | 0xaa, 0xaf, 0xac, 0xa4, 0xa3, 0xaa, 0xab, 0xa5, | ||
846 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
847 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
848 | 0x87, 0x9b, 0xab, 0xab, 0xa7, 0xa9, 0xac, 0xac, | ||
849 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
850 | 0xb2, 0xaa, 0xa1, 0xab, 0xad, 0x86, 0x58, 0x4d, | ||
851 | 0x6c, 0xaa, 0xc3, 0xac, 0xa3, 0xab, 0xab, 0xa7, | ||
852 | 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb0, 0xb1, | ||
853 | 0xb7, 0xbf, 0xca, 0xd2, 0xd2, 0xca, 0xbf, 0xb7, | ||
854 | 0x85, 0x5c, 0x2a, 0x0f, 0x12, 0x1e, 0x24, 0x23, | ||
855 | 0x2f, 0x36, 0x3a, 0x3a, 0x3f, 0x42, 0x37, 0x26, | ||
856 | 0x41, 0x4f, 0x60, 0x6b, 0x6a, 0x5e, 0x50, 0x46, | ||
857 | 0x48, 0x4f, 0x58, 0x5d, 0x63, 0x72, 0x88, 0x9a, | ||
858 | 0x9a, 0x94, 0x8f, 0x91, 0x94, 0x8c, 0x7a, 0x6a, | ||
859 | 0x79, 0x70, 0x64, 0x5a, 0x56, 0x5a, 0x62, 0x68, | ||
860 | 0x76, 0x83, 0x7e, 0x67, 0x61, 0x6c, 0x69, 0x58, | ||
861 | 0x5a, 0x5b, 0x5c, 0x5a, 0x55, 0x4d, 0x45, 0x3f, | ||
862 | 0x3e, 0x34, 0x2a, 0x27, 0x2c, 0x2f, 0x2c, 0x27, | ||
863 | 0x1c, 0x5f, 0x97, 0x89, 0x95, 0x9c, 0x7c, 0x90, | ||
864 | 0xaa, 0x9b, 0xa2, 0xac, 0xa5, 0xa6, 0xac, 0xa6, | ||
865 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
866 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
867 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
868 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
869 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
870 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
871 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
872 | 0xa9, 0xa9, 0xa8, 0xa7, 0xa7, 0xa6, 0xa5, 0xa5, | ||
873 | 0xa4, 0xa3, 0xa1, 0xa2, 0xab, 0x9e, 0x16, 0x07, | ||
874 | 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, | ||
875 | 0xa3, 0xa6, 0x97, 0xaf, 0xb1, 0x9a, 0xa9, 0xaa, | ||
876 | 0x9f, 0xa8, 0xa5, 0x58, 0x4b, 0x96, 0xb4, 0xbc, | ||
877 | 0x9a, 0x88, 0x91, 0xa8, 0xaa, 0xa6, 0xa7, 0xa2, | ||
878 | 0x9d, 0xa3, 0xa8, 0xac, 0xa4, 0x8d, 0x8f, 0xac, | ||
879 | 0xa6, 0x9b, 0x90, 0x91, 0x9d, 0xa7, 0xaa, 0xa8, | ||
880 | 0xa5, 0xaa, 0xae, 0xaf, 0xae, 0xaa, 0xa3, 0x9d, | ||
881 | 0x99, 0x8e, 0x7e, 0x72, 0x6a, 0x66, 0x67, 0x6a, | ||
882 | 0x7e, 0x75, 0x82, 0x8e, 0x88, 0x87, 0x7d, 0x61, | ||
883 | 0x5c, 0x87, 0x83, 0x6a, 0x8e, 0x87, 0x4f, 0x5e, | ||
884 | 0xa3, 0xa4, 0x9e, 0x9f, 0xac, 0xad, 0xa3, 0x9f, | ||
885 | 0xae, 0xbe, 0xa9, 0x7d, 0x5a, 0x8a, 0xcc, 0xb0, | ||
886 | 0xb2, 0xb0, 0xad, 0xaa, 0xa8, 0xa7, 0xa8, 0xa8, | ||
887 | 0xa8, 0xa8, 0xaa, 0xa7, 0xa7, 0xae, 0xa0, 0x82, | ||
888 | 0x9d, 0xa6, 0xaa, 0xa8, 0xa7, 0xa6, 0x9f, 0x95, | ||
889 | 0xa4, 0xab, 0xad, 0xa7, 0xa5, 0xaa, 0xab, 0xa7, | ||
890 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
891 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
892 | 0xa2, 0x99, 0x98, 0xa4, 0xac, 0xab, 0xa9, 0xab, | ||
893 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
894 | 0xa8, 0xa2, 0xb1, 0xab, 0x94, 0xa4, 0xac, 0x88, | ||
895 | 0x62, 0x8f, 0xa9, 0xaa, 0xae, 0xae, 0xa6, 0xa3, | ||
896 | 0xab, 0xab, 0xac, 0xac, 0xad, 0xae, 0xaf, 0xaf, | ||
897 | 0xb8, 0xb4, 0xae, 0xaa, 0xaa, 0xae, 0xb4, 0xb8, | ||
898 | 0xb9, 0xbd, 0xc5, 0xcf, 0xcf, 0xbd, 0x9e, 0x86, | ||
899 | 0x5f, 0x40, 0x3c, 0x5a, 0x6c, 0x68, 0x74, 0x90, | ||
900 | 0x8d, 0x7e, 0x6e, 0x69, 0x6a, 0x65, 0x58, 0x4b, | ||
901 | 0x74, 0x77, 0x78, 0x72, 0x6d, 0x71, 0x7e, 0x8b, | ||
902 | 0x8a, 0x74, 0x56, 0x40, 0x3b, 0x42, 0x4c, 0x54, | ||
903 | 0x57, 0x54, 0x4e, 0x48, 0x42, 0x3d, 0x3b, 0x39, | ||
904 | 0x51, 0x5d, 0x66, 0x67, 0x66, 0x64, 0x59, 0x4c, | ||
905 | 0x4c, 0x4f, 0x53, 0x57, 0x57, 0x55, 0x52, 0x50, | ||
906 | 0x28, 0x2c, 0x30, 0x2f, 0x2a, 0x27, 0x28, 0x2a, | ||
907 | 0x16, 0x61, 0x91, 0x93, 0xa3, 0x9c, 0x85, 0xa2, | ||
908 | 0xb1, 0xa1, 0x9b, 0xa0, 0xa2, 0xa6, 0xad, 0xaf, | ||
909 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
910 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
911 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
912 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
913 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
914 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
915 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
916 | 0xa9, 0xa9, 0xa8, 0xa8, 0xa7, 0xa6, 0xa6, 0xa5, | ||
917 | 0xa4, 0xa3, 0xa2, 0xa3, 0xab, 0x9e, 0x17, 0x07, | ||
918 | 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, | ||
919 | 0xa6, 0x9a, 0xa2, 0xa3, 0x9f, 0xac, 0xac, 0x9b, | ||
920 | 0xb1, 0x9c, 0x55, 0x4b, 0x91, 0xb1, 0xa9, 0xaf, | ||
921 | 0x83, 0x88, 0xa0, 0xaf, 0xa6, 0xa3, 0xa6, 0x9f, | ||
922 | 0x9d, 0xa4, 0xa7, 0xab, 0xa5, 0x91, 0x90, 0xa6, | ||
923 | 0xa1, 0x9a, 0x94, 0x98, 0xa2, 0xa9, 0xa8, 0xa5, | ||
924 | 0xa0, 0xa8, 0xaa, 0xa4, 0xa4, 0xaa, 0xa8, 0x9f, | ||
925 | 0x8d, 0x8a, 0x95, 0xaa, 0xb6, 0xaf, 0xa5, 0xa3, | ||
926 | 0x99, 0x9e, 0x9d, 0x95, 0x90, 0x93, 0xa3, 0xb6, | ||
927 | 0xcb, 0x91, 0x62, 0x75, 0xa8, 0xb0, 0xa6, 0xb9, | ||
928 | 0xac, 0xa5, 0xa2, 0xa2, 0xa1, 0xa5, 0xa8, 0xa6, | ||
929 | 0xc1, 0x8a, 0x54, 0x3d, 0x81, 0xc0, 0xaa, 0xa4, | ||
930 | 0xaa, 0xa9, 0xa7, 0xa7, 0xa7, 0xa9, 0xab, 0xad, | ||
931 | 0xa8, 0xa8, 0xaa, 0xa7, 0xa7, 0xae, 0xa0, 0x82, | ||
932 | 0xa0, 0xa8, 0xad, 0xaa, 0xa9, 0xa9, 0xa2, 0x9a, | ||
933 | 0x9b, 0xa6, 0xad, 0xac, 0xa8, 0xaa, 0xab, 0xaa, | ||
934 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
935 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
936 | 0xb1, 0xa0, 0x95, 0x9c, 0xa7, 0xaa, 0xa9, 0xaa, | ||
937 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
938 | 0xa5, 0xb0, 0xaf, 0x9c, 0x93, 0xa5, 0xb6, 0xb5, | ||
939 | 0xb9, 0xba, 0xb3, 0xae, 0xaf, 0xaa, 0xa8, 0xaf, | ||
940 | 0xaa, 0xaa, 0xaa, 0xab, 0xab, 0xac, 0xac, 0xad, | ||
941 | 0xb1, 0xac, 0xa5, 0xa1, 0xa1, 0xa5, 0xac, 0xb1, | ||
942 | 0xb4, 0xb5, 0xb6, 0xb6, 0xb8, 0xbc, 0xc2, 0xc6, | ||
943 | 0xc4, 0xaf, 0x80, 0x52, 0x49, 0x59, 0x5a, 0x49, | ||
944 | 0x45, 0x4d, 0x53, 0x4d, 0x43, 0x43, 0x4f, 0x5c, | ||
945 | 0x71, 0x6a, 0x64, 0x65, 0x6d, 0x75, 0x79, 0x7a, | ||
946 | 0x64, 0x72, 0x82, 0x88, 0x7f, 0x6e, 0x5e, 0x54, | ||
947 | 0x5f, 0x56, 0x48, 0x3f, 0x40, 0x4a, 0x58, 0x62, | ||
948 | 0x51, 0x50, 0x52, 0x57, 0x57, 0x52, 0x50, 0x52, | ||
949 | 0x48, 0x49, 0x49, 0x48, 0x45, 0x41, 0x3d, 0x3a, | ||
950 | 0x36, 0x34, 0x2e, 0x25, 0x20, 0x24, 0x31, 0x3c, | ||
951 | 0x48, 0x9d, 0x9f, 0x8b, 0xa3, 0xa2, 0x8b, 0x89, | ||
952 | 0xaa, 0xa1, 0x98, 0xa0, 0xae, 0xae, 0xa8, 0xaa, | ||
953 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
954 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
955 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
956 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
957 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
958 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
959 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
960 | 0xaa, 0xaa, 0xa9, 0xa8, 0xa8, 0xa7, 0xa6, 0xa6, | ||
961 | 0xa5, 0xa4, 0xa2, 0xa3, 0xac, 0x9f, 0x17, 0x08, | ||
962 | 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, | ||
963 | 0xa7, 0xa1, 0xa0, 0x98, 0xab, 0xab, 0x96, 0xb6, | ||
964 | 0xa0, 0x57, 0x52, 0xa5, 0xb4, 0xa3, 0xa7, 0x76, | ||
965 | 0x85, 0xa0, 0xa7, 0xa1, 0xa5, 0xa4, 0xa2, 0xa9, | ||
966 | 0x9f, 0xa5, 0xa7, 0xa9, 0xa7, 0x96, 0x90, 0x9f, | ||
967 | 0x9c, 0x99, 0x99, 0x9e, 0xa6, 0xa9, 0xa7, 0xa3, | ||
968 | 0xa6, 0xaa, 0xaa, 0xa6, 0xa7, 0xac, 0xae, 0xab, | ||
969 | 0xb7, 0xa7, 0x99, 0x96, 0x99, 0xa0, 0xaa, 0xb5, | ||
970 | 0xaa, 0xbb, 0xb7, 0xae, 0xb3, 0xb2, 0xb0, 0xba, | ||
971 | 0x7c, 0x53, 0x6e, 0xb7, 0xc3, 0xb2, 0xb2, 0xa7, | ||
972 | 0xbc, 0xb5, 0xba, 0xb5, 0xaa, 0xb8, 0xbd, 0xa3, | ||
973 | 0x53, 0x2d, 0x77, 0x96, 0x7d, 0x99, 0xa8, 0xa3, | ||
974 | 0xa7, 0xa6, 0xa5, 0xa5, 0xa6, 0xa9, 0xab, 0xad, | ||
975 | 0xa8, 0xa8, 0xaa, 0xa7, 0xa7, 0xae, 0xa0, 0x82, | ||
976 | 0xa3, 0xab, 0xae, 0xac, 0xab, 0xab, 0xa7, 0x9e, | ||
977 | 0x95, 0xa1, 0xac, 0xae, 0xab, 0xa9, 0xaa, 0xac, | ||
978 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
979 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
980 | 0xaa, 0xad, 0xa8, 0x9d, 0x9b, 0xa4, 0xaa, 0xa8, | ||
981 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
982 | 0xb6, 0xa8, 0xab, 0xa3, 0x8c, 0x9b, 0xb0, 0xa4, | ||
983 | 0xae, 0xa7, 0xa2, 0xa7, 0xad, 0xab, 0xaa, 0xb0, | ||
984 | 0xa9, 0xa9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
985 | 0xaa, 0xab, 0xab, 0xac, 0xac, 0xab, 0xab, 0xaa, | ||
986 | 0xa1, 0xa6, 0xaa, 0xaa, 0xa7, 0xa5, 0xa8, 0xab, | ||
987 | 0xaa, 0xa1, 0x75, 0x43, 0x44, 0x6a, 0x75, 0x60, | ||
988 | 0x59, 0x4c, 0x3b, 0x33, 0x39, 0x4d, 0x65, 0x76, | ||
989 | 0x7a, 0x68, 0x59, 0x5f, 0x73, 0x7e, 0x76, 0x69, | ||
990 | 0x77, 0x79, 0x75, 0x65, 0x50, 0x44, 0x46, 0x4d, | ||
991 | 0x4c, 0x5c, 0x71, 0x81, 0x83, 0x76, 0x62, 0x54, | ||
992 | 0x59, 0x54, 0x49, 0x3e, 0x39, 0x3b, 0x3f, 0x41, | ||
993 | 0x3c, 0x3d, 0x3d, 0x3e, 0x3e, 0x3d, 0x3c, 0x3c, | ||
994 | 0x55, 0x4c, 0x41, 0x38, 0x34, 0x33, 0x32, 0x31, | ||
995 | 0x56, 0x97, 0x87, 0x88, 0x8c, 0x5d, 0x6d, 0xa5, | ||
996 | 0xaf, 0xa5, 0x91, 0x94, 0xac, 0xaf, 0xaa, 0xb3, | ||
997 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
998 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
999 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1000 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1001 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1002 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1003 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1004 | 0xab, 0xaa, 0xaa, 0xa9, 0xa8, 0xa8, 0xa7, 0xa7, | ||
1005 | 0xa5, 0xa4, 0xa3, 0xa4, 0xad, 0x9f, 0x18, 0x09, | ||
1006 | 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, | ||
1007 | 0xa1, 0xac, 0xa2, 0xa7, 0xa4, 0xa5, 0xb5, 0x9f, | ||
1008 | 0x5f, 0x5a, 0xab, 0xc3, 0xa0, 0xa5, 0x99, 0x7c, | ||
1009 | 0x9a, 0xaf, 0xac, 0x9f, 0xa4, 0xa9, 0xa6, 0xa7, | ||
1010 | 0xa0, 0xa6, 0xa6, 0xa7, 0xa9, 0x9c, 0x91, 0x97, | ||
1011 | 0x99, 0x9a, 0x9c, 0xa2, 0xa7, 0xa9, 0xa7, 0xa4, | ||
1012 | 0xa4, 0x9f, 0x9f, 0xa3, 0xa5, 0xa4, 0xa7, 0xae, | ||
1013 | 0xa8, 0xab, 0xa7, 0x9d, 0x98, 0x9c, 0xa0, 0xa1, | ||
1014 | 0xaf, 0xa3, 0x9f, 0x9b, 0x9a, 0xa7, 0x9f, 0x7d, | ||
1015 | 0x59, 0x80, 0xab, 0xc2, 0xb4, 0x9d, 0x91, 0x84, | ||
1016 | 0x6f, 0x78, 0x8e, 0xae, 0xc6, 0xb4, 0x6c, 0x22, | ||
1017 | 0x6c, 0x9c, 0x99, 0xa0, 0x91, 0x77, 0x9c, 0xb0, | ||
1018 | 0xaa, 0xa9, 0xa7, 0xa6, 0xa6, 0xa7, 0xa9, 0xaa, | ||
1019 | 0xa8, 0xa8, 0xaa, 0xa7, 0xa7, 0xae, 0xa0, 0x82, | ||
1020 | 0xa5, 0xac, 0xaf, 0xac, 0xab, 0xad, 0xaa, 0xa2, | ||
1021 | 0x96, 0x9d, 0xa8, 0xae, 0xad, 0xaa, 0xa9, 0xac, | ||
1022 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1023 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1024 | 0xa5, 0xaf, 0xb2, 0xa6, 0x9d, 0x9f, 0xa4, 0xa5, | ||
1025 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1026 | 0xb2, 0xaa, 0xa1, 0x99, 0x9c, 0xaf, 0xb2, 0xa0, | ||
1027 | 0xa1, 0xa4, 0xab, 0xb0, 0xb1, 0xaf, 0xaa, 0xa3, | ||
1028 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0xa9, | ||
1029 | 0xac, 0xaa, 0xa8, 0xa7, 0xa7, 0xa8, 0xaa, 0xac, | ||
1030 | 0xb1, 0xaf, 0xad, 0xaa, 0xaa, 0xaa, 0xab, 0xac, | ||
1031 | 0xa5, 0xa1, 0x8b, 0x67, 0x4e, 0x48, 0x45, 0x40, | ||
1032 | 0x42, 0x4f, 0x5a, 0x58, 0x4e, 0x4b, 0x55, 0x62, | ||
1033 | 0x6b, 0x63, 0x5d, 0x62, 0x6e, 0x75, 0x73, 0x6d, | ||
1034 | 0x67, 0x71, 0x79, 0x75, 0x68, 0x5e, 0x5d, 0x62, | ||
1035 | 0x72, 0x68, 0x59, 0x4c, 0x44, 0x44, 0x48, 0x4c, | ||
1036 | 0x5e, 0x76, 0x84, 0x7f, 0x7b, 0x78, 0x64, 0x48, | ||
1037 | 0x4e, 0x4c, 0x4a, 0x47, 0x44, 0x42, 0x41, 0x41, | ||
1038 | 0x37, 0x31, 0x28, 0x22, 0x22, 0x28, 0x30, 0x36, | ||
1039 | 0x6d, 0xb2, 0x94, 0x89, 0x8e, 0x73, 0x91, 0xb6, | ||
1040 | 0xac, 0xa3, 0x90, 0x95, 0xad, 0xb1, 0xab, 0xb4, | ||
1041 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1042 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1043 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1044 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1045 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1046 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1047 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1048 | 0xab, 0xab, 0xaa, 0xaa, 0xa9, 0xa8, 0xa8, 0xa7, | ||
1049 | 0xa6, 0xa5, 0xa4, 0xa5, 0xad, 0xa0, 0x19, 0x09, | ||
1050 | 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, | ||
1051 | 0x9f, 0xa5, 0xab, 0xa4, 0xa1, 0xb4, 0x9e, 0x52, | ||
1052 | 0x69, 0xa7, 0xbc, 0xab, 0xa8, 0x90, 0x82, 0xac, | ||
1053 | 0xa9, 0xa9, 0xb1, 0xad, 0xa4, 0xac, 0xae, 0x9b, | ||
1054 | 0xa1, 0xa7, 0xa5, 0xa5, 0xab, 0xa1, 0x91, 0x90, | ||
1055 | 0x9a, 0x9b, 0x9f, 0xa2, 0xa6, 0xa8, 0xa8, 0xa7, | ||
1056 | 0xb2, 0xa9, 0xa6, 0xab, 0xa9, 0xa1, 0xa1, 0xa8, | ||
1057 | 0xa2, 0xad, 0xaf, 0xa5, 0xa0, 0xa6, 0xab, 0xa9, | ||
1058 | 0xa1, 0x9e, 0xa1, 0xab, 0xb4, 0xa9, 0x7b, 0x49, | ||
1059 | 0x8b, 0x92, 0x7e, 0x58, 0x52, 0x68, 0x80, 0x98, | ||
1060 | 0x97, 0x9c, 0x81, 0x5a, 0x37, 0x1e, 0x4f, 0xb1, | ||
1061 | 0xae, 0xa6, 0x93, 0xaf, 0xa4, 0x76, 0x8b, 0xad, | ||
1062 | 0xae, 0xac, 0xaa, 0xa8, 0xa6, 0xa7, 0xa8, 0xa9, | ||
1063 | 0xa8, 0xa8, 0xaa, 0xa7, 0xa7, 0xae, 0xa0, 0x82, | ||
1064 | 0xa6, 0xac, 0xae, 0xaa, 0xaa, 0xad, 0xab, 0xa5, | ||
1065 | 0x9e, 0x9d, 0xa1, 0xaa, 0xad, 0xaa, 0xa8, 0xaa, | ||
1066 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1067 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1068 | 0xad, 0xa9, 0xaa, 0xae, 0xab, 0xa1, 0x9e, 0xa2, | ||
1069 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1070 | 0xaa, 0xa5, 0x8d, 0x91, 0xb4, 0xb2, 0xa4, 0xb2, | ||
1071 | 0xa4, 0xa6, 0xab, 0xa8, 0xa4, 0xad, 0xb2, 0xaa, | ||
1072 | 0xad, 0xac, 0xac, 0xab, 0xab, 0xaa, 0xaa, 0xaa, | ||
1073 | 0xad, 0xad, 0xab, 0xab, 0xab, 0xab, 0xad, 0xad, | ||
1074 | 0xac, 0xa8, 0xa4, 0xa5, 0xaa, 0xaf, 0xb1, 0xb0, | ||
1075 | 0xb1, 0xb5, 0xa6, 0x7d, 0x53, 0x45, 0x52, 0x63, | ||
1076 | 0x54, 0x3c, 0x2a, 0x33, 0x4e, 0x5e, 0x56, 0x45, | ||
1077 | 0x59, 0x65, 0x6f, 0x6e, 0x66, 0x66, 0x71, 0x7c, | ||
1078 | 0x81, 0x84, 0x84, 0x7b, 0x6d, 0x5e, 0x55, 0x51, | ||
1079 | 0x68, 0x64, 0x5e, 0x57, 0x50, 0x4c, 0x49, 0x48, | ||
1080 | 0xa4, 0xab, 0x99, 0x74, 0x66, 0x70, 0x6e, 0x5b, | ||
1081 | 0x58, 0x54, 0x4c, 0x44, 0x3d, 0x38, 0x35, 0x34, | ||
1082 | 0x2f, 0x30, 0x2c, 0x20, 0x1a, 0x27, 0x44, 0x5d, | ||
1083 | 0xa2, 0xa6, 0x7a, 0x92, 0xa4, 0x79, 0x84, 0xa0, | ||
1084 | 0xa0, 0x9a, 0x96, 0xa2, 0xb3, 0xb3, 0xab, 0xac, | ||
1085 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1086 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1087 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1088 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1089 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1090 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1091 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1092 | 0xac, 0xac, 0xab, 0xaa, 0xaa, 0xa9, 0xa8, 0xa8, | ||
1093 | 0xa7, 0xa6, 0xa4, 0xa5, 0xae, 0xa1, 0x19, 0x0a, | ||
1094 | 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, | ||
1095 | 0xa7, 0xa1, 0xa1, 0xa0, 0xb4, 0x92, 0x51, 0x6a, | ||
1096 | 0xb0, 0xac, 0x9b, 0xb1, 0xa0, 0x80, 0xa0, 0xad, | ||
1097 | 0xa6, 0xa5, 0xae, 0xaf, 0xa4, 0xa8, 0xab, 0x9f, | ||
1098 | 0xa2, 0xa8, 0xa4, 0xa4, 0xad, 0xa5, 0x92, 0x8a, | ||
1099 | 0x9c, 0x9d, 0xa0, 0xa1, 0xa3, 0xa6, 0xa9, 0xac, | ||
1100 | 0xa8, 0xa7, 0xa7, 0xa8, 0xa8, 0xa5, 0xa3, 0xa4, | ||
1101 | 0xac, 0xa8, 0xa0, 0x98, 0x96, 0x9b, 0xa3, 0xa7, | ||
1102 | 0xa9, 0xaa, 0xa4, 0xad, 0xb5, 0x8c, 0x55, 0x42, | ||
1103 | 0x1e, 0x4b, 0x9d, 0xbe, 0xc0, 0xc0, 0xb5, 0xc0, | ||
1104 | 0xd2, 0xc7, 0x77, 0x29, 0x4a, 0xa4, 0xca, 0xc0, | ||
1105 | 0xb1, 0x8f, 0x9c, 0xae, 0xab, 0x8f, 0x7a, 0xa1, | ||
1106 | 0xaf, 0xad, 0xab, 0xa9, 0xa8, 0xa9, 0xaa, 0xab, | ||
1107 | 0xa8, 0xa8, 0xaa, 0xa7, 0xa7, 0xae, 0xa0, 0x82, | ||
1108 | 0xa5, 0xab, 0xac, 0xa9, 0xa9, 0xad, 0xac, 0xa6, | ||
1109 | 0xa7, 0x9d, 0x9b, 0xa5, 0xad, 0xab, 0xa8, 0xa8, | ||
1110 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1111 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1112 | 0xb0, 0xa8, 0xa6, 0xad, 0xad, 0xa5, 0x9f, 0xa0, | ||
1113 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1114 | 0xae, 0x89, 0x93, 0xb1, 0xa9, 0xa2, 0xac, 0xac, | ||
1115 | 0xb1, 0xab, 0xaf, 0xaf, 0xa9, 0xaf, 0xb2, 0xa5, | ||
1116 | 0xaf, 0xaf, 0xae, 0xad, 0xac, 0xac, 0xab, 0xab, | ||
1117 | 0xab, 0xad, 0xb1, 0xb3, 0xb3, 0xb1, 0xad, 0xab, | ||
1118 | 0xaf, 0xac, 0xaa, 0xa9, 0xaa, 0xa9, 0xa7, 0xa4, | ||
1119 | 0xac, 0xa8, 0xae, 0xac, 0x85, 0x4d, 0x37, 0x42, | ||
1120 | 0x51, 0x57, 0x60, 0x69, 0x6b, 0x66, 0x5d, 0x56, | ||
1121 | 0x78, 0x82, 0x88, 0x82, 0x75, 0x6e, 0x73, 0x7c, | ||
1122 | 0x61, 0x65, 0x6c, 0x72, 0x70, 0x63, 0x4f, 0x40, | ||
1123 | 0x36, 0x39, 0x3c, 0x3e, 0x3e, 0x3c, 0x39, 0x36, | ||
1124 | 0x36, 0x44, 0x4b, 0x47, 0x48, 0x4d, 0x47, 0x39, | ||
1125 | 0x3f, 0x3d, 0x39, 0x36, 0x36, 0x38, 0x3c, 0x3e, | ||
1126 | 0x3c, 0x41, 0x3e, 0x30, 0x20, 0x20, 0x32, 0x45, | ||
1127 | 0x8d, 0xa4, 0x8b, 0x81, 0x82, 0x81, 0x97, 0x97, | ||
1128 | 0xa2, 0x96, 0x98, 0xa4, 0xa9, 0xae, 0xb2, 0xb3, | ||
1129 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1130 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1131 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1132 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1133 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1134 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1135 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1136 | 0xad, 0xac, 0xac, 0xab, 0xaa, 0xaa, 0xa9, 0xa9, | ||
1137 | 0xa7, 0xa6, 0xa5, 0xa6, 0xaf, 0xa1, 0x1a, 0x0b, | ||
1138 | 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, | ||
1139 | 0xaf, 0x9b, 0xa7, 0xbf, 0x87, 0x4d, 0x79, 0xb3, | ||
1140 | 0xb0, 0x96, 0xa6, 0x9d, 0x8d, 0xa7, 0xb1, 0xa6, | ||
1141 | 0x9e, 0xaa, 0xa6, 0xa1, 0xa5, 0xa2, 0xa1, 0xaf, | ||
1142 | 0xa2, 0xa9, 0xa4, 0xa3, 0xad, 0xa7, 0x92, 0x87, | ||
1143 | 0x9d, 0x9f, 0xa0, 0xa0, 0xa1, 0xa4, 0xaa, 0xae, | ||
1144 | 0xa3, 0xaa, 0xab, 0xa5, 0xa3, 0xa6, 0xa2, 0x9a, | ||
1145 | 0x95, 0x8e, 0x90, 0x9e, 0xa8, 0xa9, 0xa9, 0xac, | ||
1146 | 0x9d, 0xa3, 0xbf, 0xc0, 0x88, 0x56, 0x61, 0x83, | ||
1147 | 0x6c, 0x92, 0xc5, 0xb6, 0xaa, 0xb1, 0xac, 0xce, | ||
1148 | 0x86, 0x2b, 0x2c, 0x8e, 0xc8, 0xc2, 0xb1, 0xa3, | ||
1149 | 0xa2, 0x93, 0x97, 0xae, 0xb4, 0x9a, 0x81, 0x84, | ||
1150 | 0xae, 0xad, 0xab, 0xaa, 0xaa, 0xab, 0xad, 0xaf, | ||
1151 | 0xa8, 0xa8, 0xaa, 0xa7, 0xa7, 0xae, 0xa0, 0x82, | ||
1152 | 0xa5, 0xaa, 0xab, 0xa7, 0xa8, 0xac, 0xab, 0xa6, | ||
1153 | 0xae, 0x9e, 0x97, 0xa1, 0xac, 0xab, 0xa7, 0xa6, | ||
1154 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1155 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1156 | 0xaa, 0xaf, 0xae, 0xa6, 0xa5, 0xa8, 0xa6, 0x9f, | ||
1157 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1158 | 0x99, 0x9a, 0xae, 0xb9, 0xad, 0xaa, 0xb0, 0xac, | ||
1159 | 0xb5, 0xa5, 0xa6, 0xac, 0xa9, 0xaf, 0xb3, 0xa7, | ||
1160 | 0xb1, 0xb0, 0xb0, 0xaf, 0xae, 0xad, 0xac, 0xab, | ||
1161 | 0xaa, 0xaa, 0xab, 0xac, 0xac, 0xab, 0xaa, 0xaa, | ||
1162 | 0xab, 0xad, 0xaf, 0xaf, 0xad, 0xac, 0xab, 0xac, | ||
1163 | 0xb9, 0xaa, 0xa8, 0xb1, 0x9d, 0x6c, 0x47, 0x3f, | ||
1164 | 0x4d, 0x5b, 0x69, 0x6c, 0x65, 0x62, 0x68, 0x71, | ||
1165 | 0x6e, 0x6c, 0x6c, 0x72, 0x7b, 0x7f, 0x7d, 0x78, | ||
1166 | 0x76, 0x6e, 0x67, 0x67, 0x68, 0x60, 0x4e, 0x3e, | ||
1167 | 0x59, 0x4e, 0x3d, 0x30, 0x2e, 0x36, 0x43, 0x4c, | ||
1168 | 0x37, 0x37, 0x3a, 0x3f, 0x3f, 0x3c, 0x3a, 0x3b, | ||
1169 | 0x48, 0x44, 0x3f, 0x3a, 0x39, 0x3a, 0x3d, 0x40, | ||
1170 | 0x4e, 0x45, 0x37, 0x28, 0x23, 0x2d, 0x41, 0x52, | ||
1171 | 0x9d, 0xa0, 0x88, 0x79, 0x79, 0x89, 0xa4, 0x9e, | ||
1172 | 0x98, 0x8f, 0x9f, 0xb1, 0xae, 0xaf, 0xb2, 0xaa, | ||
1173 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1174 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1175 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1176 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1177 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1178 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1179 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1180 | 0xad, 0xad, 0xac, 0xab, 0xab, 0xaa, 0xa9, 0xa9, | ||
1181 | 0xa8, 0xa7, 0xa5, 0xa6, 0xaf, 0xa2, 0x1a, 0x0b, | ||
1182 | 0xac, 0xad, 0x9f, 0xa6, 0xa8, 0xa2, 0xa9, 0x9e, | ||
1183 | 0xa5, 0xa5, 0xb6, 0x85, 0x52, 0x77, 0xa7, 0xb5, | ||
1184 | 0xab, 0xa6, 0x95, 0x8b, 0x98, 0xaa, 0xab, 0xa4, | ||
1185 | 0xa6, 0xa6, 0xa7, 0xa7, 0xa6, 0xa4, 0xa1, 0x9f, | ||
1186 | 0xa3, 0x9b, 0xa1, 0xa1, 0xac, 0xa2, 0x7e, 0x8c, | ||
1187 | 0x9b, 0x98, 0xa0, 0xa3, 0x9b, 0x9f, 0xa9, 0xa7, | ||
1188 | 0xa2, 0xa3, 0xa5, 0xa6, 0xa7, 0xa6, 0xa5, 0xa4, | ||
1189 | 0xa1, 0xa9, 0xac, 0xa7, 0xa6, 0xac, 0xb2, 0xb2, | ||
1190 | 0xb4, 0xa1, 0x7d, 0x5b, 0x46, 0x71, 0xb8, 0xbc, | ||
1191 | 0xbb, 0x88, 0x48, 0x7c, 0xb1, 0xb9, 0xaa, 0x44, | ||
1192 | 0x15, 0x85, 0xc0, 0xbd, 0xb3, 0xad, 0xaf, 0xab, | ||
1193 | 0x96, 0x74, 0x95, 0xa5, 0xab, 0xba, 0x9b, 0x87, | ||
1194 | 0xa2, 0xb4, 0xad, 0xaa, 0xac, 0xa7, 0xaa, 0xa7, | ||
1195 | 0xa9, 0xac, 0xa6, 0xa5, 0xa8, 0xb4, 0x90, 0x85, | ||
1196 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
1197 | 0xab, 0xab, 0x9a, 0x93, 0xa3, 0xa9, 0xa8, 0xb2, | ||
1198 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1199 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1200 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1201 | 0x9b, 0xa7, 0xa5, 0xa5, 0xb0, 0xab, 0x9f, 0xa1, | ||
1202 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1203 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1204 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1205 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1206 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1207 | 0xb0, 0xac, 0xac, 0xaf, 0xa2, 0x7c, 0x4b, 0x28, | ||
1208 | 0x47, 0x55, 0x60, 0x5e, 0x58, 0x59, 0x62, 0x68, | ||
1209 | 0x64, 0x67, 0x6b, 0x6c, 0x68, 0x60, 0x57, 0x51, | ||
1210 | 0x5e, 0x5c, 0x55, 0x4a, 0x41, 0x44, 0x52, 0x5e, | ||
1211 | 0x34, 0x3f, 0x4b, 0x4f, 0x49, 0x40, 0x3c, 0x3b, | ||
1212 | 0x40, 0x3b, 0x36, 0x36, 0x3a, 0x3c, 0x3a, 0x37, | ||
1213 | 0x3d, 0x3a, 0x36, 0x31, 0x2f, 0x2e, 0x2f, 0x30, | ||
1214 | 0x39, 0x32, 0x30, 0x28, 0x31, 0x35, 0x31, 0x4e, | ||
1215 | 0xa2, 0xac, 0x88, 0x7c, 0x85, 0x8c, 0xa4, 0xa4, | ||
1216 | 0x8c, 0x9a, 0x9e, 0xa4, 0xb3, 0xb2, 0xaa, 0xb1, | ||
1217 | 0xad, 0xae, 0xaf, 0xb0, 0xb0, 0xae, 0xac, 0xab, | ||
1218 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1219 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1220 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1221 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1222 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1223 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1224 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1225 | 0xaa, 0xab, 0xad, 0xb0, 0xb8, 0xa8, 0x1c, 0x0a, | ||
1226 | 0xa4, 0x9b, 0xae, 0xae, 0xa5, 0xa5, 0x9d, 0xa3, | ||
1227 | 0xa6, 0xb7, 0x7f, 0x56, 0x7b, 0xae, 0xbb, 0x9f, | ||
1228 | 0xab, 0xa1, 0x88, 0x8b, 0xa9, 0xab, 0x9f, 0xa9, | ||
1229 | 0xa5, 0xa6, 0xa6, 0xa5, 0xa3, 0xa4, 0xa8, 0xab, | ||
1230 | 0xad, 0xa8, 0xa5, 0xa5, 0xad, 0x9f, 0x87, 0x8f, | ||
1231 | 0x96, 0x98, 0xa7, 0xaf, 0xa7, 0xa6, 0xaa, 0xa4, | ||
1232 | 0xaa, 0xa9, 0xa8, 0xa7, 0xa7, 0xa8, 0xa9, 0xaa, | ||
1233 | 0xa7, 0xaa, 0xaf, 0xb6, 0xb7, 0xaa, 0x8f, 0x77, | ||
1234 | 0x67, 0x91, 0xaa, 0x82, 0x87, 0xaf, 0xac, 0xb6, | ||
1235 | 0xac, 0x7d, 0x60, 0x84, 0x5c, 0x0f, 0x1a, 0x1e, | ||
1236 | 0x92, 0xaf, 0xb1, 0xaf, 0xab, 0xa1, 0xa4, 0xa3, | ||
1237 | 0xb0, 0x8d, 0xad, 0xbd, 0xb5, 0xaf, 0x92, 0x8c, | ||
1238 | 0x9f, 0xb2, 0xab, 0xa9, 0xac, 0xa7, 0xab, 0xa8, | ||
1239 | 0xa9, 0xac, 0xa6, 0xa6, 0xa9, 0xb3, 0x90, 0x86, | ||
1240 | 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, | ||
1241 | 0xa8, 0xac, 0xa2, 0x96, 0x9d, 0xa9, 0xad, 0xad, | ||
1242 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1243 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1244 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1245 | 0x90, 0x9d, 0xa7, 0xa8, 0xa9, 0xaf, 0xab, 0x9c, | ||
1246 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1247 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1248 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1249 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1250 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1251 | 0xaf, 0xb0, 0xb3, 0xb6, 0xb1, 0x9a, 0x72, 0x52, | ||
1252 | 0x56, 0x60, 0x67, 0x66, 0x60, 0x60, 0x66, 0x6c, | ||
1253 | 0x5f, 0x63, 0x69, 0x6f, 0x72, 0x71, 0x6f, 0x6e, | ||
1254 | 0x5c, 0x4f, 0x46, 0x4d, 0x61, 0x73, 0x78, 0x76, | ||
1255 | 0x65, 0x69, 0x6a, 0x65, 0x5e, 0x5c, 0x60, 0x66, | ||
1256 | 0x6c, 0x5c, 0x47, 0x39, 0x35, 0x38, 0x3b, 0x3c, | ||
1257 | 0x3c, 0x38, 0x31, 0x2b, 0x2a, 0x32, 0x41, 0x4c, | ||
1258 | 0x49, 0x34, 0x30, 0x28, 0x24, 0x2c, 0x46, 0x79, | ||
1259 | 0x99, 0xaa, 0x8d, 0x75, 0x77, 0x8b, 0xa6, 0x9d, | ||
1260 | 0x8c, 0x99, 0x9e, 0xa5, 0xb3, 0xb2, 0xac, 0xb1, | ||
1261 | 0xac, 0xad, 0xaf, 0xb0, 0xb0, 0xaf, 0xad, 0xac, | ||
1262 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1263 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1264 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1265 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1266 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1267 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1268 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1269 | 0xaa, 0xac, 0xad, 0xb0, 0xb8, 0xa7, 0x1c, 0x0a, | ||
1270 | 0xa3, 0xa3, 0xa3, 0x9c, 0xae, 0xb6, 0xa1, 0xa9, | ||
1271 | 0xb8, 0x7b, 0x52, 0x83, 0xb0, 0xa9, 0xa8, 0xa4, | ||
1272 | 0xab, 0x8f, 0x80, 0x97, 0xaf, 0xa8, 0x9f, 0xa7, | ||
1273 | 0xa4, 0xa9, 0xac, 0xaa, 0xa4, 0xa3, 0xa8, 0xad, | ||
1274 | 0xac, 0xaf, 0xa4, 0xa9, 0xae, 0x9e, 0x97, 0x96, | ||
1275 | 0x9b, 0x98, 0x9f, 0xa2, 0x9a, 0xa0, 0xab, 0xab, | ||
1276 | 0xa7, 0xa6, 0xa5, 0xa5, 0xa8, 0xad, 0xb3, 0xb6, | ||
1277 | 0xae, 0xa8, 0x97, 0x7b, 0x66, 0x6d, 0x91, 0xb4, | ||
1278 | 0xc0, 0xb8, 0x7e, 0x65, 0x93, 0xb5, 0xb2, 0xaa, | ||
1279 | 0xa0, 0x7f, 0x6a, 0x7b, 0x7c, 0x87, 0xb7, 0xcb, | ||
1280 | 0xc2, 0xb3, 0xa6, 0xaf, 0xae, 0xa9, 0xb3, 0xae, | ||
1281 | 0x71, 0x5f, 0x73, 0x74, 0x80, 0xa3, 0x9b, 0x89, | ||
1282 | 0x9b, 0xae, 0xa8, 0xa7, 0xab, 0xa8, 0xac, 0xaa, | ||
1283 | 0xaa, 0xac, 0xa7, 0xa8, 0xaa, 0xb1, 0x8f, 0x89, | ||
1284 | 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, | ||
1285 | 0xa5, 0xab, 0xaa, 0x9d, 0x97, 0xa7, 0xb1, 0xa8, | ||
1286 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1287 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1288 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1289 | 0xa4, 0x9a, 0xa1, 0xab, 0xaa, 0xaf, 0xa9, 0x8f, | ||
1290 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1291 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1292 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1293 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1294 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1295 | 0xa8, 0xae, 0xb2, 0xb1, 0xb2, 0xac, 0x91, 0x73, | ||
1296 | 0x45, 0x4a, 0x53, 0x5d, 0x63, 0x69, 0x74, 0x7d, | ||
1297 | 0x70, 0x6f, 0x6d, 0x6b, 0x67, 0x63, 0x60, 0x5e, | ||
1298 | 0x5d, 0x5f, 0x5f, 0x5d, 0x5b, 0x5a, 0x5d, 0x60, | ||
1299 | 0x5d, 0x63, 0x6a, 0x6c, 0x6d, 0x72, 0x7c, 0x85, | ||
1300 | 0x71, 0x62, 0x4e, 0x43, 0x44, 0x4d, 0x56, 0x5b, | ||
1301 | 0x2e, 0x38, 0x44, 0x46, 0x41, 0x3c, 0x3e, 0x42, | ||
1302 | 0x29, 0x1d, 0x20, 0x25, 0x31, 0x37, 0x4e, 0x8c, | ||
1303 | 0xa6, 0xa1, 0x79, 0x61, 0x75, 0xa2, 0xad, 0x81, | ||
1304 | 0x8d, 0x98, 0x9f, 0xa7, 0xb2, 0xb3, 0xae, 0xb1, | ||
1305 | 0xab, 0xad, 0xaf, 0xb0, 0xb0, 0xaf, 0xad, 0xac, | ||
1306 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1307 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1308 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1309 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1310 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1311 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1312 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1313 | 0xab, 0xac, 0xae, 0xb0, 0xb8, 0xa7, 0x1b, 0x09, | ||
1314 | 0xa7, 0xa6, 0x9a, 0xa9, 0xaa, 0x9a, 0xaa, 0xb9, | ||
1315 | 0x82, 0x55, 0x83, 0xb7, 0xaf, 0xa3, 0xa2, 0xa8, | ||
1316 | 0xa6, 0x7e, 0x8a, 0xa8, 0xa3, 0xa3, 0xac, 0xa1, | ||
1317 | 0xa4, 0xac, 0xb3, 0xb1, 0xa9, 0xa3, 0xa4, 0xa8, | ||
1318 | 0xa1, 0xaa, 0x9c, 0xa6, 0xa9, 0x9e, 0xa7, 0xa0, | ||
1319 | 0x8b, 0x90, 0xa2, 0xae, 0xac, 0xb0, 0xb7, 0xb4, | ||
1320 | 0xad, 0xae, 0xaf, 0xac, 0xa1, 0x92, 0x83, 0x79, | ||
1321 | 0x6c, 0x74, 0x89, 0xa5, 0xb7, 0xb8, 0xb1, 0xac, | ||
1322 | 0xc0, 0x8f, 0x63, 0x8b, 0xb0, 0xad, 0xb1, 0xa3, | ||
1323 | 0x9c, 0x95, 0xa5, 0xb8, 0xbd, 0xc2, 0xbe, 0xb2, | ||
1324 | 0xb1, 0xa5, 0xa1, 0xa9, 0xa5, 0xac, 0xb5, 0x95, | ||
1325 | 0x32, 0x43, 0x69, 0x75, 0x8c, 0xb5, 0xac, 0x90, | ||
1326 | 0x98, 0xac, 0xa6, 0xa6, 0xab, 0xa8, 0xad, 0xab, | ||
1327 | 0xaa, 0xac, 0xa8, 0xab, 0xab, 0xaf, 0x8e, 0x8c, | ||
1328 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1329 | 0xa8, 0xa7, 0xae, 0xa8, 0x99, 0xa2, 0xaf, 0xa7, | ||
1330 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1331 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1332 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1333 | 0xae, 0x98, 0x9b, 0xb0, 0xb3, 0xac, 0xaa, 0xab, | ||
1334 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1335 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1336 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1337 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1338 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1339 | 0xa7, 0xb0, 0xb0, 0xaa, 0xac, 0xb0, 0x9f, 0x85, | ||
1340 | 0x57, 0x52, 0x54, 0x60, 0x69, 0x6d, 0x73, 0x7b, | ||
1341 | 0x74, 0x72, 0x6e, 0x6a, 0x65, 0x61, 0x5f, 0x5d, | ||
1342 | 0x82, 0x80, 0x75, 0x63, 0x53, 0x54, 0x65, 0x75, | ||
1343 | 0x69, 0x72, 0x7a, 0x78, 0x6c, 0x5f, 0x56, 0x53, | ||
1344 | 0x4d, 0x51, 0x58, 0x60, 0x62, 0x58, 0x47, 0x39, | ||
1345 | 0x35, 0x47, 0x5b, 0x5f, 0x52, 0x3e, 0x2f, 0x2a, | ||
1346 | 0x2d, 0x26, 0x1b, 0x1b, 0x3d, 0x51, 0x61, 0x9b, | ||
1347 | 0x8a, 0x95, 0x86, 0x61, 0x57, 0x7f, 0x9b, 0x8a, | ||
1348 | 0x90, 0x98, 0xa1, 0xa9, 0xb1, 0xb2, 0xb0, 0xb0, | ||
1349 | 0xaa, 0xac, 0xae, 0xb0, 0xb0, 0xb0, 0xae, 0xad, | ||
1350 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1351 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1352 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1353 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1354 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1355 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1356 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1357 | 0xac, 0xad, 0xae, 0xb1, 0xb8, 0xa6, 0x1a, 0x08, | ||
1358 | 0xa7, 0xa4, 0xa5, 0xab, 0x9b, 0xa0, 0xac, 0x85, | ||
1359 | 0x4f, 0x7f, 0xb7, 0xb1, 0xa3, 0xb1, 0xae, 0xab, | ||
1360 | 0x96, 0x87, 0x9c, 0xaa, 0x99, 0xa1, 0xb1, 0xa2, | ||
1361 | 0xa6, 0xaa, 0xad, 0xac, 0xa7, 0xa5, 0xa9, 0xae, | ||
1362 | 0xa6, 0xb2, 0xab, 0xb4, 0xad, 0x9f, 0xa5, 0x95, | ||
1363 | 0x8c, 0x8c, 0x97, 0x99, 0x8a, 0x82, 0x7f, 0x75, | ||
1364 | 0x7a, 0x79, 0x78, 0x7c, 0x86, 0x95, 0xa4, 0xae, | ||
1365 | 0xb0, 0xb8, 0xbe, 0xb9, 0xac, 0xa2, 0xa3, 0xa8, | ||
1366 | 0xa7, 0x73, 0x87, 0xa4, 0xa7, 0xa7, 0x9c, 0xa5, | ||
1367 | 0x93, 0x9a, 0xb5, 0xb9, 0xac, 0xa7, 0xa5, 0xae, | ||
1368 | 0xab, 0xa6, 0xa9, 0xb1, 0xa8, 0xaa, 0x9c, 0x5e, | ||
1369 | 0x7e, 0xc1, 0xcd, 0x7e, 0x5f, 0x95, 0x9d, 0x70, | ||
1370 | 0x99, 0xac, 0xa7, 0xa7, 0xac, 0xa9, 0xae, 0xac, | ||
1371 | 0xab, 0xac, 0xa9, 0xae, 0xac, 0xad, 0x8d, 0x8f, | ||
1372 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1373 | 0xad, 0xa3, 0xac, 0xb1, 0xa2, 0x9d, 0xa7, 0xa8, | ||
1374 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1375 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1376 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1377 | 0xa6, 0xa5, 0xa8, 0xb4, 0xb4, 0x9c, 0x8f, 0x9c, | ||
1378 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1379 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1380 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1381 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1382 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1383 | 0xaf, 0xb7, 0xb5, 0xad, 0xb0, 0xb9, 0xb0, 0x9b, | ||
1384 | 0x75, 0x65, 0x60, 0x70, 0x7d, 0x7f, 0x82, 0x8a, | ||
1385 | 0x7c, 0x7c, 0x7a, 0x78, 0x74, 0x6f, 0x6b, 0x69, | ||
1386 | 0x5d, 0x56, 0x54, 0x5e, 0x6d, 0x76, 0x71, 0x6a, | ||
1387 | 0x5f, 0x6a, 0x76, 0x79, 0x72, 0x69, 0x65, 0x64, | ||
1388 | 0x64, 0x58, 0x48, 0x40, 0x42, 0x49, 0x4e, 0x50, | ||
1389 | 0x57, 0x5b, 0x5a, 0x51, 0x43, 0x39, 0x36, 0x38, | ||
1390 | 0x2f, 0x23, 0x24, 0x1e, 0x30, 0x59, 0x78, 0x96, | ||
1391 | 0x89, 0x90, 0x84, 0x5e, 0x55, 0x77, 0x90, 0x92, | ||
1392 | 0x95, 0x99, 0xa4, 0xad, 0xb0, 0xb1, 0xb0, 0xac, | ||
1393 | 0xa9, 0xab, 0xae, 0xb0, 0xb1, 0xb0, 0xaf, 0xae, | ||
1394 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1395 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1396 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1397 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1398 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1399 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1400 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1401 | 0xad, 0xae, 0xaf, 0xb1, 0xb8, 0xa6, 0x19, 0x07, | ||
1402 | 0xa4, 0xa6, 0xa9, 0x9d, 0xa9, 0xac, 0x7d, 0x5d, | ||
1403 | 0x8b, 0xaa, 0xab, 0xad, 0xad, 0xa8, 0xae, 0xa4, | ||
1404 | 0x89, 0xa1, 0xa8, 0x9e, 0x9c, 0xa4, 0xa8, 0xaa, | ||
1405 | 0xa8, 0xa5, 0xa2, 0xa1, 0xa4, 0xaa, 0xaf, 0xb3, | ||
1406 | 0xa9, 0x9f, 0x88, 0x73, 0x60, 0x66, 0x7d, 0x7b, | ||
1407 | 0x75, 0x78, 0x8a, 0x97, 0x98, 0xa2, 0xb0, 0xb0, | ||
1408 | 0xbb, 0xbc, 0xbd, 0xbc, 0xb9, 0xb4, 0xaf, 0xab, | ||
1409 | 0xb2, 0xb3, 0xac, 0xa2, 0xa2, 0xac, 0xb1, 0xaf, | ||
1410 | 0x7f, 0x88, 0x9c, 0xa3, 0xab, 0xb5, 0xab, 0x9c, | ||
1411 | 0x9d, 0xaa, 0xb3, 0xa6, 0xa3, 0xb2, 0xb3, 0xaf, | ||
1412 | 0xab, 0xaa, 0xaf, 0xb9, 0xb0, 0xb1, 0xae, 0x82, | ||
1413 | 0x89, 0x86, 0x85, 0x8f, 0xa8, 0xbc, 0xb2, 0x9a, | ||
1414 | 0x9d, 0xb0, 0xaa, 0xa9, 0xad, 0xaa, 0xae, 0xac, | ||
1415 | 0xac, 0xab, 0xaa, 0xb1, 0xad, 0xab, 0x8c, 0x93, | ||
1416 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1417 | 0xb0, 0xa4, 0xa9, 0xb4, 0xac, 0x9e, 0x9f, 0xa7, | ||
1418 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1419 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1420 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1421 | 0xaa, 0xa3, 0x89, 0x7f, 0x95, 0xa1, 0x9e, 0xa1, | ||
1422 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1423 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1424 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1425 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1426 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1427 | 0xad, 0xb2, 0xb2, 0xad, 0xb2, 0xbb, 0xb8, 0xac, | ||
1428 | 0x7e, 0x64, 0x5a, 0x6e, 0x81, 0x82, 0x83, 0x8a, | ||
1429 | 0x71, 0x75, 0x7a, 0x7c, 0x7a, 0x75, 0x6e, 0x69, | ||
1430 | 0x6a, 0x6d, 0x74, 0x7b, 0x7d, 0x79, 0x6f, 0x67, | ||
1431 | 0x57, 0x5e, 0x65, 0x67, 0x68, 0x6d, 0x77, 0x80, | ||
1432 | 0x6e, 0x69, 0x64, 0x64, 0x65, 0x63, 0x5d, 0x58, | ||
1433 | 0x61, 0x59, 0x4c, 0x43, 0x40, 0x42, 0x46, 0x4a, | ||
1434 | 0x3b, 0x25, 0x3b, 0x2e, 0x14, 0x42, 0x74, 0x79, | ||
1435 | 0x7d, 0x8f, 0x84, 0x54, 0x4e, 0x6e, 0x80, 0x97, | ||
1436 | 0x9c, 0x9d, 0xa8, 0xb0, 0xae, 0xae, 0xae, 0xa7, | ||
1437 | 0xa8, 0xaa, 0xad, 0xaf, 0xb1, 0xb1, 0xb0, 0xaf, | ||
1438 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1439 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1440 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1441 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1442 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1443 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1444 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1445 | 0xae, 0xaf, 0xaf, 0xb1, 0xb7, 0xa5, 0x19, 0x06, | ||
1446 | 0xa4, 0xa1, 0xa8, 0xae, 0xa8, 0x77, 0x5d, 0x98, | ||
1447 | 0xbd, 0xb3, 0xa5, 0xab, 0xa7, 0xa8, 0xad, 0x8c, | ||
1448 | 0x8f, 0xae, 0xaa, 0x98, 0xa0, 0xa7, 0xa5, 0xad, | ||
1449 | 0xaa, 0xa5, 0xa2, 0xa6, 0xac, 0xad, 0xa4, 0x9b, | ||
1450 | 0x7b, 0x83, 0x9e, 0xa3, 0xa1, 0xb5, 0xbe, 0xb9, | ||
1451 | 0x90, 0x97, 0xad, 0xba, 0xb3, 0xb0, 0xae, 0xa4, | ||
1452 | 0xa9, 0xaa, 0xab, 0xac, 0xac, 0xab, 0xaa, 0xa9, | ||
1453 | 0xab, 0xb1, 0xac, 0xa2, 0xa8, 0xb4, 0xaa, 0x93, | ||
1454 | 0x79, 0xaa, 0xab, 0xad, 0xaf, 0xa9, 0xae, 0x95, | ||
1455 | 0xa3, 0xae, 0xb2, 0xb2, 0xb0, 0xad, 0xad, 0xac, | ||
1456 | 0xae, 0xae, 0xa9, 0xac, 0xaa, 0xb2, 0xb8, 0x9b, | ||
1457 | 0x95, 0xa3, 0xa8, 0xae, 0xb4, 0xb2, 0xa5, 0x92, | ||
1458 | 0xa2, 0xb5, 0xae, 0xac, 0xaf, 0xab, 0xae, 0xab, | ||
1459 | 0xac, 0xab, 0xaa, 0xb3, 0xae, 0xaa, 0x8c, 0x95, | ||
1460 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1461 | 0xaf, 0xab, 0xa8, 0xaf, 0xb2, 0xa5, 0x9c, 0xa1, | ||
1462 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1463 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1464 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1465 | 0xba, 0xaf, 0x9c, 0x98, 0xaf, 0xc1, 0xb3, 0x9b, | ||
1466 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1467 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1468 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1469 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1470 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1471 | 0xac, 0xad, 0xac, 0xad, 0xb1, 0xb5, 0xb3, 0xaf, | ||
1472 | 0x94, 0x6f, 0x5a, 0x68, 0x75, 0x6d, 0x65, 0x69, | ||
1473 | 0x55, 0x5f, 0x6e, 0x7c, 0x81, 0x7f, 0x77, 0x71, | ||
1474 | 0x78, 0x76, 0x6b, 0x55, 0x41, 0x3e, 0x4d, 0x5d, | ||
1475 | 0x40, 0x4a, 0x57, 0x60, 0x69, 0x75, 0x85, 0x91, | ||
1476 | 0x8d, 0x84, 0x7a, 0x73, 0x6f, 0x6a, 0x63, 0x5c, | ||
1477 | 0x58, 0x4e, 0x45, 0x46, 0x4e, 0x52, 0x4b, 0x43, | ||
1478 | 0x34, 0x1e, 0x2f, 0x27, 0x1d, 0x50, 0x8b, 0xa3, | ||
1479 | 0x9b, 0xa7, 0x84, 0x4d, 0x6c, 0x9d, 0x93, 0x97, | ||
1480 | 0xa3, 0xa0, 0xab, 0xb3, 0xac, 0xab, 0xac, 0xa1, | ||
1481 | 0xa8, 0xaa, 0xad, 0xaf, 0xb1, 0xb1, 0xb1, 0xb0, | ||
1482 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1483 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1484 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1485 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1486 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1487 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1488 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1489 | 0xae, 0xaf, 0xb0, 0xb1, 0xb7, 0xa5, 0x18, 0x05, | ||
1490 | 0xa8, 0xa6, 0xad, 0xae, 0x7a, 0x61, 0x95, 0xb7, | ||
1491 | 0xaa, 0xa5, 0xb0, 0xa3, 0xa3, 0xb6, 0xa4, 0x8b, | ||
1492 | 0x9e, 0xaa, 0xa8, 0x9d, 0x9e, 0xa8, 0xab, 0xa8, | ||
1493 | 0xab, 0xa9, 0xac, 0xb5, 0xba, 0xad, 0x90, 0x78, | ||
1494 | 0x9a, 0x99, 0xb7, 0xac, 0x9d, 0xac, 0xa5, 0x9e, | ||
1495 | 0x8d, 0x90, 0xa0, 0xaa, 0xa3, 0xa4, 0xa8, 0xa3, | ||
1496 | 0xaa, 0xa9, 0xa7, 0xa6, 0xa6, 0xa6, 0xa8, 0xa8, | ||
1497 | 0x9c, 0xae, 0xb1, 0xa7, 0xab, 0xb3, 0x9e, 0x79, | ||
1498 | 0x9d, 0x9c, 0xab, 0xac, 0xb1, 0xb2, 0x9b, 0x98, | ||
1499 | 0xa6, 0xb7, 0xb0, 0xaa, 0xaa, 0xaa, 0xb1, 0xab, | ||
1500 | 0xa7, 0xaf, 0xab, 0xb2, 0xb8, 0xaf, 0x83, 0x3a, | ||
1501 | 0x8f, 0xb1, 0xac, 0x96, 0x9b, 0xae, 0xa8, 0x84, | ||
1502 | 0xa6, 0xb8, 0xb1, 0xae, 0xb0, 0xab, 0xae, 0xab, | ||
1503 | 0xac, 0xab, 0xab, 0xb4, 0xae, 0xa9, 0x8b, 0x96, | ||
1504 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1505 | 0xac, 0xb2, 0xaa, 0xa9, 0xb4, 0xac, 0x9b, 0x9c, | ||
1506 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1507 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1508 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1509 | 0x99, 0x86, 0x7d, 0x79, 0x78, 0x8c, 0xa1, 0xa1, | ||
1510 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1511 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1512 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1513 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1514 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1515 | 0xb6, 0xb2, 0xb1, 0xb3, 0xb4, 0xb2, 0xaf, 0xaf, | ||
1516 | 0x99, 0x70, 0x5a, 0x6a, 0x7a, 0x73, 0x6a, 0x6e, | ||
1517 | 0x69, 0x74, 0x82, 0x8c, 0x8c, 0x81, 0x71, 0x67, | ||
1518 | 0x41, 0x42, 0x48, 0x52, 0x5b, 0x59, 0x4d, 0x41, | ||
1519 | 0x72, 0x7b, 0x83, 0x81, 0x74, 0x66, 0x5d, 0x5a, | ||
1520 | 0x67, 0x65, 0x65, 0x68, 0x6c, 0x6b, 0x64, 0x5d, | ||
1521 | 0x5c, 0x4e, 0x42, 0x46, 0x52, 0x56, 0x4a, 0x3b, | ||
1522 | 0x35, 0x2f, 0x2d, 0x28, 0x3b, 0x4e, 0x5a, 0x7d, | ||
1523 | 0x72, 0xa3, 0x8c, 0x3d, 0x4e, 0x7f, 0x7e, 0x96, | ||
1524 | 0xa7, 0xa2, 0xae, 0xb4, 0xab, 0xaa, 0xaa, 0x9e, | ||
1525 | 0xa7, 0xa9, 0xac, 0xaf, 0xb1, 0xb1, 0xb1, 0xb0, | ||
1526 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1527 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1528 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1529 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1530 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1531 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1532 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1533 | 0xaf, 0xb0, 0xb0, 0xb1, 0xb7, 0xa5, 0x18, 0x05, | ||
1534 | 0xa7, 0xb0, 0xa9, 0x7a, 0x5e, 0x8a, 0xb5, 0xa9, | ||
1535 | 0xa9, 0xa2, 0xae, 0xa7, 0xa7, 0xaa, 0x97, 0x99, | ||
1536 | 0xa7, 0xab, 0xab, 0xa2, 0x98, 0x99, 0xa5, 0xb2, | ||
1537 | 0xab, 0xa7, 0xb0, 0xb5, 0x96, 0x70, 0x79, 0xa0, | ||
1538 | 0xa8, 0xb3, 0xa2, 0x97, 0xaa, 0xae, 0xa6, 0xad, | ||
1539 | 0x8c, 0x81, 0xad, 0xad, 0x9e, 0xaf, 0xa7, 0xa7, | ||
1540 | 0xab, 0xa5, 0xa5, 0xab, 0xab, 0xa7, 0xa8, 0xae, | ||
1541 | 0xa7, 0xb8, 0xa8, 0xa1, 0xb6, 0x9d, 0x7f, 0x9d, | ||
1542 | 0xad, 0x9a, 0xa7, 0xae, 0xb0, 0xa9, 0x97, 0xa4, | ||
1543 | 0xb3, 0xb3, 0xb1, 0xb0, 0xaf, 0xae, 0xae, 0xad, | ||
1544 | 0xb1, 0xad, 0xa6, 0xad, 0xb4, 0xa4, 0xa1, 0xbc, | ||
1545 | 0xc7, 0xb0, 0xa8, 0xa0, 0xa5, 0xb1, 0xa6, 0x9d, | ||
1546 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1547 | 0xb2, 0xb2, 0xaa, 0xb1, 0xaf, 0xa7, 0x8a, 0xa2, | ||
1548 | 0xb0, 0xb0, 0xaf, 0xae, 0xae, 0xad, 0xac, 0xac, | ||
1549 | 0xaf, 0xae, 0xae, 0xad, 0xac, 0xab, 0xaa, 0xa9, | ||
1550 | 0x97, 0xae, 0xb0, 0xa9, 0xb0, 0xaf, 0xa8, 0xac, | ||
1551 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1552 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1553 | 0x97, 0x4d, 0x28, 0x59, 0x98, 0xa5, 0x96, 0x8e, | ||
1554 | 0xa2, 0xab, 0xb0, 0xac, 0xaa, 0xad, 0xae, 0xab, | ||
1555 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1556 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1557 | 0xae, 0xae, 0xaf, 0xb0, 0xb0, 0xb1, 0xb2, 0xb2, | ||
1558 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1559 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1560 | 0x95, 0x6e, 0x54, 0x5f, 0x71, 0x74, 0x76, 0x7d, | ||
1561 | 0x77, 0x7b, 0x82, 0x85, 0x81, 0x75, 0x66, 0x5b, | ||
1562 | 0x63, 0x5a, 0x57, 0x5f, 0x6d, 0x6f, 0x63, 0x54, | ||
1563 | 0x65, 0x6f, 0x6f, 0x5b, 0x3f, 0x33, 0x40, 0x53, | ||
1564 | 0x6a, 0x6f, 0x75, 0x78, 0x74, 0x6a, 0x5e, 0x56, | ||
1565 | 0x55, 0x55, 0x54, 0x51, 0x4c, 0x45, 0x3e, 0x3a, | ||
1566 | 0x2c, 0x37, 0x34, 0x27, 0x52, 0x64, 0x49, 0x66, | ||
1567 | 0x80, 0x9c, 0x74, 0x4f, 0x68, 0x79, 0x82, 0xa4, | ||
1568 | 0xa5, 0x9c, 0xa5, 0xb3, 0xb0, 0xa9, 0xa8, 0xa5, | ||
1569 | 0xa2, 0xa9, 0xb1, 0xb4, 0xb3, 0xb0, 0xaf, 0xaf, | ||
1570 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1571 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1572 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1573 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1574 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1575 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1576 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1577 | 0xaf, 0xae, 0xae, 0xb3, 0xbc, 0xaa, 0x19, 0x02, | ||
1578 | 0xab, 0xac, 0x7b, 0x61, 0x96, 0xbf, 0xb0, 0x9e, | ||
1579 | 0xa5, 0xaa, 0xaa, 0xa6, 0xac, 0xa4, 0x94, 0xa0, | ||
1580 | 0xa7, 0xab, 0xad, 0xa9, 0xa1, 0x9d, 0xa1, 0xa6, | ||
1581 | 0xac, 0xa7, 0x8d, 0x6f, 0x76, 0x9e, 0xb9, 0xba, | ||
1582 | 0xb3, 0xab, 0x9f, 0x9d, 0x9f, 0xa0, 0xaa, 0xbc, | ||
1583 | 0x96, 0x7c, 0x9f, 0xac, 0xab, 0xb8, 0xab, 0xaa, | ||
1584 | 0xab, 0xad, 0xad, 0xaa, 0xa5, 0xa3, 0xa9, 0xb1, | ||
1585 | 0xaa, 0xa9, 0xad, 0xad, 0xab, 0x92, 0x89, 0xba, | ||
1586 | 0xab, 0x9d, 0xaa, 0xb0, 0xae, 0xa7, 0x99, 0xa7, | ||
1587 | 0xb0, 0xac, 0xa8, 0xa5, 0xa5, 0xa9, 0xaf, 0xb3, | ||
1588 | 0xb2, 0xae, 0xae, 0xb5, 0xb3, 0xa3, 0xa2, 0xb5, | ||
1589 | 0xb9, 0xab, 0xae, 0xae, 0xb3, 0xb6, 0xa0, 0x92, | ||
1590 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1591 | 0xb2, 0xb2, 0xab, 0xb1, 0xaf, 0xa7, 0x8b, 0xa3, | ||
1592 | 0xb0, 0xb0, 0xaf, 0xaf, 0xae, 0xad, 0xad, 0xac, | ||
1593 | 0xaf, 0xae, 0xae, 0xad, 0xac, 0xab, 0xaa, 0xaa, | ||
1594 | 0x9a, 0xab, 0xb0, 0xac, 0xad, 0xaf, 0xab, 0xab, | ||
1595 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1596 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1597 | 0xba, 0xc2, 0xcb, 0xcb, 0xbf, 0xad, 0xa0, 0x9a, | ||
1598 | 0xa3, 0xac, 0xb0, 0xac, 0xaa, 0xad, 0xae, 0xab, | ||
1599 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1600 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1601 | 0xae, 0xaf, 0xaf, 0xb0, 0xb1, 0xb1, 0xb2, 0xb2, | ||
1602 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1603 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1604 | 0xa6, 0x82, 0x67, 0x6b, 0x74, 0x70, 0x6d, 0x70, | ||
1605 | 0x6a, 0x75, 0x7e, 0x79, 0x6a, 0x5f, 0x60, 0x66, | ||
1606 | 0x63, 0x63, 0x66, 0x6a, 0x6d, 0x68, 0x5e, 0x56, | ||
1607 | 0x69, 0x65, 0x5e, 0x57, 0x55, 0x5c, 0x69, 0x72, | ||
1608 | 0x6d, 0x70, 0x73, 0x73, 0x6e, 0x63, 0x58, 0x51, | ||
1609 | 0x5b, 0x5b, 0x5b, 0x59, 0x54, 0x4e, 0x48, 0x45, | ||
1610 | 0x26, 0x29, 0x31, 0x38, 0x65, 0x7b, 0x62, 0x6e, | ||
1611 | 0x9e, 0xa9, 0x86, 0x61, 0x5c, 0x7d, 0xa4, 0x99, | ||
1612 | 0xa1, 0xa2, 0xae, 0xb3, 0xa7, 0xa1, 0xa8, 0xaa, | ||
1613 | 0xa3, 0xa9, 0xb1, 0xb4, 0xb3, 0xb0, 0xaf, 0xb0, | ||
1614 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1615 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1616 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1617 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1618 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1619 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1620 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1621 | 0xb2, 0xb0, 0xb1, 0xb5, 0xbe, 0xac, 0x1b, 0x03, | ||
1622 | 0xa2, 0x79, 0x6a, 0x94, 0xbc, 0xb3, 0xa5, 0xaf, | ||
1623 | 0xa2, 0xb1, 0xa6, 0xa7, 0xaf, 0x9b, 0x95, 0xa8, | ||
1624 | 0xa7, 0xaa, 0xae, 0xae, 0xab, 0xa5, 0x9e, 0x9a, | ||
1625 | 0xb2, 0xa6, 0x9e, 0xa5, 0xb4, 0xb9, 0xb1, 0xa5, | ||
1626 | 0xac, 0xa9, 0xa6, 0xa1, 0xa5, 0xb8, 0xc0, 0xb4, | ||
1627 | 0x83, 0x65, 0x7f, 0x91, 0x94, 0x9e, 0x99, 0xa3, | ||
1628 | 0xa4, 0xa9, 0xae, 0xae, 0xac, 0xac, 0xae, 0xb1, | ||
1629 | 0xac, 0xb3, 0xa7, 0xb7, 0x8f, 0x7d, 0xbd, 0xb7, | ||
1630 | 0xa6, 0xa1, 0xae, 0xb2, 0xab, 0xa2, 0x9c, 0xac, | ||
1631 | 0xb4, 0xb1, 0xad, 0xaa, 0xab, 0xae, 0xb2, 0xb5, | ||
1632 | 0xab, 0xa6, 0xad, 0xb2, 0xa7, 0x9f, 0xa9, 0xb6, | ||
1633 | 0xb0, 0xaa, 0xb2, 0xb6, 0xbb, 0xb6, 0x9b, 0x91, | ||
1634 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1635 | 0xb2, 0xb2, 0xab, 0xb2, 0xb0, 0xa7, 0x8b, 0xa3, | ||
1636 | 0xb1, 0xb1, 0xb0, 0xaf, 0xaf, 0xae, 0xad, 0xad, | ||
1637 | 0xae, 0xae, 0xae, 0xad, 0xad, 0xac, 0xac, 0xab, | ||
1638 | 0xa0, 0xa6, 0xaf, 0xb0, 0xab, 0xae, 0xb0, 0xaa, | ||
1639 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1640 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1641 | 0xa5, 0xb7, 0xbc, 0xb0, 0xaa, 0xaf, 0xab, 0x9e, | ||
1642 | 0xa3, 0xac, 0xb1, 0xad, 0xab, 0xae, 0xaf, 0xac, | ||
1643 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1644 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1645 | 0xaf, 0xaf, 0xb0, 0xb1, 0xb1, 0xb2, 0xb3, 0xb3, | ||
1646 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1647 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
1648 | 0xad, 0x8a, 0x69, 0x60, 0x64, 0x67, 0x6e, 0x77, | ||
1649 | 0x6c, 0x77, 0x82, 0x83, 0x7b, 0x71, 0x6c, 0x6c, | ||
1650 | 0x6f, 0x6d, 0x68, 0x61, 0x5d, 0x62, 0x6c, 0x75, | ||
1651 | 0x62, 0x5c, 0x58, 0x5b, 0x64, 0x6c, 0x70, 0x6f, | ||
1652 | 0x6b, 0x6f, 0x73, 0x75, 0x70, 0x67, 0x5c, 0x55, | ||
1653 | 0x58, 0x59, 0x59, 0x58, 0x55, 0x50, 0x4b, 0x48, | ||
1654 | 0x4c, 0x30, 0x2a, 0x38, 0x62, 0x82, 0x75, 0x6e, | ||
1655 | 0x52, 0x70, 0x84, 0x65, 0x52, 0x7a, 0x99, 0x96, | ||
1656 | 0xa3, 0xa7, 0xb0, 0xad, 0xa0, 0xa1, 0xaa, 0xa8, | ||
1657 | 0xa5, 0xaa, 0xb1, 0xb4, 0xb2, 0xb0, 0xb0, 0xb1, | ||
1658 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1659 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1660 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1661 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1662 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1663 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1664 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1665 | 0xb4, 0xb3, 0xb2, 0xb6, 0xc0, 0xad, 0x1c, 0x04, | ||
1666 | 0x72, 0x75, 0xa0, 0xbc, 0xa8, 0xa1, 0xaf, 0xab, | ||
1667 | 0xa4, 0xb1, 0xa5, 0xac, 0xaa, 0x93, 0x9e, 0xac, | ||
1668 | 0xa9, 0xa9, 0xaa, 0xae, 0xb0, 0xac, 0xa2, 0x9a, | ||
1669 | 0xad, 0xb0, 0xab, 0x9e, 0x9c, 0xa7, 0xaf, 0xae, | ||
1670 | 0xb0, 0xa7, 0x99, 0x9b, 0xb3, 0xb2, 0x73, 0x29, | ||
1671 | 0x55, 0x64, 0x9b, 0xaf, 0x9f, 0x98, 0x9f, 0xb6, | ||
1672 | 0xb3, 0xab, 0xa6, 0xa9, 0xab, 0xac, 0xb0, 0xb6, | ||
1673 | 0xad, 0xa8, 0xc1, 0x9d, 0x84, 0xac, 0xb0, 0xa1, | ||
1674 | 0xa3, 0xa6, 0xb2, 0xb4, 0xa9, 0x9f, 0xa2, 0xb1, | ||
1675 | 0xb3, 0xb4, 0xb5, 0xb6, 0xb4, 0xb2, 0xaf, 0xad, | ||
1676 | 0xb8, 0xb0, 0xb6, 0xb4, 0xa0, 0xa0, 0xb1, 0xb6, | ||
1677 | 0xb3, 0xad, 0xb2, 0xb2, 0xb7, 0xb1, 0x9b, 0x9d, | ||
1678 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1679 | 0xb3, 0xb3, 0xac, 0xb3, 0xb0, 0xa8, 0x8c, 0xa4, | ||
1680 | 0xb2, 0xb1, 0xb1, 0xb0, 0xaf, 0xaf, 0xae, 0xae, | ||
1681 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xad, 0xad, 0xad, | ||
1682 | 0xa7, 0xa2, 0xad, 0xb2, 0xa9, 0xae, 0xb4, 0xaa, | ||
1683 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1684 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1685 | 0xac, 0xae, 0xad, 0xab, 0xac, 0xae, 0xa7, 0x9d, | ||
1686 | 0xa4, 0xad, 0xb1, 0xad, 0xab, 0xae, 0xaf, 0xac, | ||
1687 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1688 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1689 | 0xb0, 0xb0, 0xb1, 0xb1, 0xb2, 0xb3, 0xb3, 0xb4, | ||
1690 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1691 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
1692 | 0xbb, 0x9e, 0x7b, 0x65, 0x5f, 0x62, 0x6b, 0x74, | ||
1693 | 0x74, 0x7b, 0x80, 0x7e, 0x72, 0x62, 0x54, 0x4e, | ||
1694 | 0x5f, 0x64, 0x6a, 0x6d, 0x6f, 0x72, 0x77, 0x7b, | ||
1695 | 0x77, 0x7d, 0x84, 0x88, 0x85, 0x7c, 0x71, 0x6a, | ||
1696 | 0x7c, 0x81, 0x85, 0x82, 0x74, 0x5e, 0x47, 0x38, | ||
1697 | 0x4d, 0x4e, 0x4f, 0x4f, 0x4c, 0x48, 0x43, 0x40, | ||
1698 | 0x3f, 0x39, 0x4a, 0x4f, 0x43, 0x51, 0x70, 0x85, | ||
1699 | 0x92, 0x6f, 0x87, 0x72, 0x66, 0x8e, 0x86, 0x78, | ||
1700 | 0xaa, 0xa9, 0xaa, 0xa4, 0x9e, 0xa8, 0xac, 0xa0, | ||
1701 | 0xa7, 0xac, 0xb1, 0xb3, 0xb2, 0xb0, 0xb1, 0xb3, | ||
1702 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1703 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1704 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1705 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1706 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1707 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1708 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
1709 | 0xb4, 0xb2, 0xb2, 0xb6, 0xbf, 0xac, 0x1a, 0x02, | ||
1710 | 0x6d, 0xa0, 0xbc, 0xae, 0xa6, 0xaf, 0xaf, 0xa2, | ||
1711 | 0xab, 0xaa, 0xa7, 0xb0, 0x9f, 0x93, 0xab, 0xaa, | ||
1712 | 0xac, 0xa8, 0xa5, 0xa8, 0xae, 0xb0, 0xab, 0xa5, | ||
1713 | 0x8c, 0xa1, 0xa9, 0x9d, 0x9b, 0xaa, 0xaf, 0xa7, | ||
1714 | 0xab, 0xad, 0xa3, 0xa6, 0xb1, 0x96, 0x65, 0x50, | ||
1715 | 0x9f, 0x98, 0xa2, 0xa9, 0xad, 0xb4, 0xae, 0xa8, | ||
1716 | 0xb3, 0xab, 0xac, 0xb3, 0xb0, 0xa4, 0xa6, 0xb2, | ||
1717 | 0xb5, 0xad, 0xa0, 0x7e, 0x99, 0xbd, 0xa3, 0xa3, | ||
1718 | 0xa1, 0xab, 0xb3, 0xb4, 0xa8, 0x9e, 0xa8, 0xb4, | ||
1719 | 0xaa, 0xac, 0xaf, 0xb1, 0xb1, 0xaf, 0xac, 0xaa, | ||
1720 | 0xad, 0xaa, 0xb2, 0xae, 0x9e, 0xa4, 0xb4, 0xb2, | ||
1721 | 0xb5, 0xb0, 0xb2, 0xaf, 0xb5, 0xac, 0x9b, 0xa9, | ||
1722 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1723 | 0xb4, 0xb4, 0xad, 0xb3, 0xb1, 0xa9, 0x8d, 0xa5, | ||
1724 | 0xb2, 0xb2, 0xb1, 0xb1, 0xb0, 0xaf, 0xaf, 0xae, | ||
1725 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xaf, 0xaf, 0xaf, | ||
1726 | 0xab, 0xa2, 0xaa, 0xb2, 0xab, 0xae, 0xb4, 0xac, | ||
1727 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1728 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
1729 | 0xab, 0xab, 0xaf, 0xb3, 0xb3, 0xac, 0xa5, 0xa1, | ||
1730 | 0xa5, 0xae, 0xb2, 0xae, 0xac, 0xaf, 0xb0, 0xad, | ||
1731 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1732 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1733 | 0xb0, 0xb1, 0xb1, 0xb2, 0xb3, 0xb3, 0xb4, 0xb4, | ||
1734 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
1735 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
1736 | 0xb6, 0xab, 0x97, 0x82, 0x78, 0x79, 0x7e, 0x80, | ||
1737 | 0x70, 0x7a, 0x80, 0x78, 0x66, 0x5b, 0x5e, 0x66, | ||
1738 | 0x79, 0x6d, 0x60, 0x5c, 0x63, 0x73, 0x82, 0x8c, | ||
1739 | 0x85, 0x89, 0x90, 0x95, 0x93, 0x87, 0x75, 0x68, | ||
1740 | 0x6c, 0x69, 0x65, 0x60, 0x5c, 0x59, 0x57, 0x56, | ||
1741 | 0x4a, 0x4b, 0x4b, 0x4a, 0x47, 0x42, 0x3d, 0x3a, | ||
1742 | 0x31, 0x26, 0x3b, 0x56, 0x50, 0x55, 0x6d, 0x6d, | ||
1743 | 0x94, 0x74, 0x87, 0x98, 0x86, 0x8b, 0x9a, 0x92, | ||
1744 | 0xa8, 0xa7, 0xa8, 0xa3, 0x9e, 0xa8, 0xad, 0xa0, | ||
1745 | 0xa9, 0xad, 0xb1, 0xb3, 0xb1, 0xb1, 0xb3, 0xb5, | ||
1746 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1747 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1748 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1749 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1750 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1751 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1752 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1753 | 0xb3, 0xb2, 0xb1, 0xb4, 0xbd, 0xaa, 0x18, 0x00, | ||
1754 | 0xa5, 0xaf, 0xaa, 0xaa, 0xb6, 0xb1, 0xa7, 0xac, | ||
1755 | 0xb0, 0xa6, 0xaa, 0xac, 0x97, 0x9b, 0xb2, 0xa8, | ||
1756 | 0xae, 0xa9, 0xa4, 0xa6, 0xac, 0xb0, 0xb0, 0xae, | ||
1757 | 0xa8, 0x98, 0x97, 0xab, 0xb7, 0xb2, 0xaf, 0xb4, | ||
1758 | 0xaa, 0xad, 0x9d, 0xa0, 0xb2, 0x90, 0x53, 0x3b, | ||
1759 | 0x93, 0x99, 0xa0, 0xa4, 0xa8, 0xae, 0xae, 0xac, | ||
1760 | 0xa4, 0xa6, 0xac, 0xb1, 0xaa, 0xa4, 0xad, 0xbd, | ||
1761 | 0xb2, 0x9e, 0x72, 0x9c, 0xb4, 0xa6, 0xbb, 0xa0, | ||
1762 | 0xa1, 0xb0, 0xb2, 0xb4, 0xa9, 0xa0, 0xae, 0xb5, | ||
1763 | 0xad, 0xad, 0xad, 0xae, 0xb0, 0xb3, 0xb5, 0xb7, | ||
1764 | 0xac, 0xb1, 0xb3, 0xaa, 0xa3, 0xac, 0xb2, 0xa9, | ||
1765 | 0xb0, 0xb1, 0xb4, 0xb3, 0xb8, 0xab, 0x98, 0xae, | ||
1766 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1767 | 0xb5, 0xb5, 0xad, 0xb4, 0xb2, 0xaa, 0x8d, 0xa5, | ||
1768 | 0xb3, 0xb3, 0xb2, 0xb1, 0xb1, 0xb0, 0xaf, 0xaf, | ||
1769 | 0xae, 0xae, 0xae, 0xaf, 0xaf, 0xb0, 0xb0, 0xb1, | ||
1770 | 0xae, 0xa5, 0xa7, 0xaf, 0xaf, 0xaf, 0xb1, 0xaf, | ||
1771 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1772 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
1773 | 0xb6, 0xb6, 0xaf, 0xa8, 0xa9, 0xad, 0xa8, 0x9e, | ||
1774 | 0xa5, 0xae, 0xb3, 0xaf, 0xad, 0xb0, 0xb1, 0xae, | ||
1775 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1776 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1777 | 0xb1, 0xb1, 0xb2, 0xb3, 0xb3, 0xb4, 0xb5, 0xb5, | ||
1778 | 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, | ||
1779 | 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, | ||
1780 | 0xb7, 0xb3, 0x9c, 0x78, 0x62, 0x61, 0x67, 0x68, | ||
1781 | 0x67, 0x6e, 0x77, 0x7c, 0x7e, 0x7e, 0x81, 0x84, | ||
1782 | 0x76, 0x72, 0x6e, 0x6f, 0x73, 0x75, 0x73, 0x71, | ||
1783 | 0x73, 0x6c, 0x69, 0x71, 0x7e, 0x7f, 0x71, 0x62, | ||
1784 | 0x5e, 0x6b, 0x7d, 0x88, 0x85, 0x74, 0x5e, 0x4e, | ||
1785 | 0x55, 0x55, 0x54, 0x51, 0x4c, 0x46, 0x3f, 0x3c, | ||
1786 | 0x30, 0x30, 0x41, 0x5c, 0x4e, 0x44, 0x63, 0x6c, | ||
1787 | 0x94, 0xb1, 0x65, 0x79, 0xbb, 0x9f, 0x8e, 0x86, | ||
1788 | 0x9e, 0xa2, 0xac, 0xaa, 0x9e, 0xa1, 0xaa, 0xa8, | ||
1789 | 0xab, 0xae, 0xb2, 0xb2, 0xb1, 0xb1, 0xb4, 0xb7, | ||
1790 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1791 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1792 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1793 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1794 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1795 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1796 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1797 | 0xb6, 0xb4, 0xb3, 0xb6, 0xbe, 0xab, 0x18, 0x00, | ||
1798 | 0xb9, 0xad, 0xa9, 0xaa, 0xaa, 0xae, 0xaf, 0xa9, | ||
1799 | 0xb1, 0xa9, 0xad, 0x9f, 0x95, 0xa8, 0xb1, 0xa9, | ||
1800 | 0xaf, 0xac, 0xa9, 0xa9, 0xab, 0xae, 0xaf, 0xaf, | ||
1801 | 0xaf, 0x9f, 0x93, 0x9a, 0xa7, 0xaf, 0xb3, 0xb5, | ||
1802 | 0xa6, 0xa7, 0x9f, 0xa3, 0xb4, 0xb1, 0x9f, 0x98, | ||
1803 | 0xb1, 0xa4, 0x94, 0x98, 0xa3, 0xa8, 0xae, 0xb0, | ||
1804 | 0xab, 0xad, 0xa7, 0x9d, 0x9f, 0xae, 0xb6, 0xb4, | ||
1805 | 0x98, 0x7a, 0x9f, 0xc0, 0xba, 0xb9, 0xab, 0x96, | ||
1806 | 0xa3, 0xb2, 0xaf, 0xb2, 0xaa, 0xa3, 0xb3, 0xb4, | ||
1807 | 0xb7, 0xb6, 0xb6, 0xb5, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1808 | 0xc1, 0xc6, 0xb6, 0xa0, 0xa3, 0xb1, 0xb3, 0xad, | ||
1809 | 0xae, 0xb1, 0xb5, 0xb5, 0xba, 0xa9, 0x96, 0xb2, | ||
1810 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
1811 | 0xb5, 0xb5, 0xae, 0xb5, 0xb2, 0xaa, 0x8e, 0xa6, | ||
1812 | 0xb4, 0xb3, 0xb3, 0xb2, 0xb1, 0xb1, 0xb0, 0xb0, | ||
1813 | 0xad, 0xae, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb2, | ||
1814 | 0xaf, 0xa9, 0xa4, 0xab, 0xb4, 0xb1, 0xad, 0xb4, | ||
1815 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1816 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1817 | 0xa4, 0xb0, 0xb5, 0xad, 0xa9, 0xad, 0xae, 0xa9, | ||
1818 | 0xa6, 0xaf, 0xb3, 0xaf, 0xad, 0xb0, 0xb1, 0xae, | ||
1819 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1820 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1821 | 0xb2, 0xb2, 0xb3, 0xb3, 0xb4, 0xb5, 0xb5, 0xb6, | ||
1822 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
1823 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
1824 | 0xbe, 0xbd, 0xa3, 0x77, 0x60, 0x6c, 0x80, 0x88, | ||
1825 | 0x82, 0x7f, 0x81, 0x8c, 0x98, 0x98, 0x8c, 0x7f, | ||
1826 | 0x7c, 0x79, 0x73, 0x6b, 0x66, 0x68, 0x72, 0x7a, | ||
1827 | 0x75, 0x70, 0x6e, 0x74, 0x7d, 0x7d, 0x74, 0x69, | ||
1828 | 0x5b, 0x5a, 0x5a, 0x5b, 0x5c, 0x5e, 0x61, 0x62, | ||
1829 | 0x60, 0x5f, 0x5d, 0x58, 0x51, 0x49, 0x41, 0x3c, | ||
1830 | 0x4e, 0x3d, 0x31, 0x55, 0x64, 0x5a, 0x68, 0x61, | ||
1831 | 0x71, 0xc5, 0x60, 0x23, 0x7a, 0x87, 0x75, 0x98, | ||
1832 | 0x99, 0x9b, 0xa8, 0xaf, 0xa4, 0xa1, 0xa8, 0xab, | ||
1833 | 0xac, 0xaf, 0xb2, 0xb2, 0xb0, 0xb1, 0xb5, 0xb9, | ||
1834 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
1835 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1836 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1837 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1838 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
1839 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
1840 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
1841 | 0xbc, 0xba, 0xb9, 0xbb, 0xc3, 0xaf, 0x1d, 0x05, | ||
1842 | 0xad, 0xa9, 0xa6, 0xa7, 0xa9, 0xa9, 0xa8, 0xa5, | ||
1843 | 0xb0, 0xae, 0xaf, 0x95, 0x96, 0xb1, 0xac, 0xaa, | ||
1844 | 0xb0, 0xaf, 0xae, 0xad, 0xac, 0xab, 0xab, 0xab, | ||
1845 | 0xae, 0xad, 0xa8, 0x9e, 0x98, 0x99, 0xa1, 0xa8, | ||
1846 | 0xb9, 0x98, 0x90, 0xa7, 0xb2, 0xae, 0xb4, 0xc1, | ||
1847 | 0xba, 0xad, 0x9f, 0xad, 0xb7, 0xac, 0xac, 0xb1, | ||
1848 | 0xa9, 0xb4, 0xb3, 0xac, 0xb8, 0xc2, 0xa1, 0x70, | ||
1849 | 0x7f, 0xa7, 0xba, 0xad, 0xad, 0xb5, 0xaa, 0xa1, | ||
1850 | 0xa5, 0xb4, 0xad, 0xb1, 0xac, 0xa5, 0xb6, 0xb3, | ||
1851 | 0xb8, 0xb9, 0xbb, 0xb9, 0xb4, 0xab, 0xa1, 0x9b, | ||
1852 | 0xa4, 0xa8, 0x8d, 0x76, 0x8c, 0xae, 0xbc, 0xc2, | ||
1853 | 0xb1, 0xb4, 0xb4, 0xb1, 0xb7, 0xa6, 0x97, 0xb9, | ||
1854 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
1855 | 0xb5, 0xb5, 0xae, 0xb5, 0xb3, 0xaa, 0x8e, 0xa6, | ||
1856 | 0xb4, 0xb4, 0xb3, 0xb2, 0xb2, 0xb1, 0xb0, 0xb0, | ||
1857 | 0xad, 0xae, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, | ||
1858 | 0xaf, 0xad, 0xa3, 0xa8, 0xb8, 0xb2, 0xaa, 0xb6, | ||
1859 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1860 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1861 | 0xb6, 0xb0, 0xaa, 0xaa, 0xae, 0xaf, 0xaa, 0xa5, | ||
1862 | 0xa6, 0xaf, 0xb4, 0xb0, 0xae, 0xb1, 0xb2, 0xaf, | ||
1863 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1864 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1865 | 0xb2, 0xb2, 0xb3, 0xb4, 0xb4, 0xb5, 0xb6, 0xb6, | ||
1866 | 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, | ||
1867 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
1868 | 0xb8, 0xbd, 0xa8, 0x7d, 0x66, 0x73, 0x88, 0x8f, | ||
1869 | 0x79, 0x76, 0x74, 0x74, 0x76, 0x76, 0x73, 0x70, | ||
1870 | 0x66, 0x72, 0x7a, 0x76, 0x6a, 0x67, 0x71, 0x7e, | ||
1871 | 0x7e, 0x89, 0x93, 0x92, 0x86, 0x77, 0x6e, 0x6b, | ||
1872 | 0x66, 0x6d, 0x75, 0x79, 0x73, 0x65, 0x55, 0x4a, | ||
1873 | 0x64, 0x63, 0x60, 0x5a, 0x51, 0x47, 0x3e, 0x39, | ||
1874 | 0x32, 0x38, 0x3b, 0x6b, 0x7d, 0x69, 0x73, 0x73, | ||
1875 | 0x7f, 0xac, 0x8a, 0x1d, 0x50, 0xb5, 0x9a, 0x98, | ||
1876 | 0x9c, 0x94, 0x9e, 0xae, 0xad, 0xa8, 0xa8, 0xa7, | ||
1877 | 0xad, 0xb0, 0xb2, 0xb1, 0xb0, 0xb1, 0xb5, 0xb9, | ||
1878 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1879 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1880 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1881 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
1882 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
1883 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
1884 | 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, | ||
1885 | 0xc1, 0xbf, 0xbe, 0xc0, 0xc8, 0xb4, 0x21, 0x09, | ||
1886 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1887 | 0xab, 0xb9, 0x9e, 0x95, 0xaa, 0xae, 0xad, 0xad, | ||
1888 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1889 | 0xae, 0xb2, 0xb3, 0xaf, 0xa6, 0x9d, 0x99, 0x98, | ||
1890 | 0xaf, 0x9a, 0xa4, 0xb4, 0xac, 0xac, 0xb1, 0xa5, | ||
1891 | 0xae, 0xa7, 0x9b, 0xa8, 0xb0, 0xac, 0xb1, 0xad, | ||
1892 | 0xb6, 0xa4, 0xb1, 0xcb, 0xb1, 0x79, 0x79, 0xa6, | ||
1893 | 0xc6, 0xac, 0xab, 0xac, 0xb7, 0xb5, 0x99, 0x99, | ||
1894 | 0xb3, 0xaf, 0xb0, 0xa8, 0x9e, 0xac, 0xba, 0xb2, | ||
1895 | 0xb6, 0xb2, 0xb1, 0xb5, 0xb2, 0x99, 0x6e, 0x4c, | ||
1896 | 0x77, 0x97, 0xae, 0xae, 0xb0, 0xbb, 0xbc, 0xb1, | ||
1897 | 0xb7, 0xb3, 0xab, 0xbf, 0xb3, 0x93, 0xa7, 0xbf, | ||
1898 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
1899 | 0xb3, 0xb4, 0xb9, 0xb1, 0xb6, 0xaa, 0x96, 0xb9, | ||
1900 | 0xb5, 0xb5, 0xb4, 0xb3, 0xb3, 0xb2, 0xb1, 0xb1, | ||
1901 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1902 | 0xae, 0xb4, 0xa8, 0xa0, 0xae, 0xb5, 0xb0, 0xb2, | ||
1903 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1904 | 0xae, 0xaf, 0xb0, 0xb1, 0xb1, 0xaf, 0xad, 0xac, | ||
1905 | 0xb2, 0xae, 0xac, 0xaf, 0xb4, 0xb1, 0xa5, 0x9a, | ||
1906 | 0x98, 0xa9, 0xb1, 0xaa, 0xab, 0xb6, 0xb8, 0xae, | ||
1907 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1908 | 0xb0, 0xb0, 0xb1, 0xb2, 0xb2, 0xb3, 0xb4, 0xb4, | ||
1909 | 0xb3, 0xb3, 0xb4, 0xb5, 0xb5, 0xb6, 0xb7, 0xb7, | ||
1910 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
1911 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
1912 | 0xc0, 0xb1, 0xa1, 0x80, 0x70, 0x74, 0x6e, 0x70, | ||
1913 | 0x77, 0x75, 0x78, 0x7d, 0x7c, 0x78, 0x7c, 0x85, | ||
1914 | 0x77, 0x79, 0x7b, 0x7a, 0x78, 0x78, 0x7b, 0x7e, | ||
1915 | 0x7b, 0x7a, 0x82, 0x8b, 0x83, 0x71, 0x6f, 0x7a, | ||
1916 | 0x82, 0x79, 0x6d, 0x62, 0x5d, 0x5c, 0x5c, 0x5d, | ||
1917 | 0x59, 0x54, 0x51, 0x51, 0x53, 0x51, 0x4b, 0x45, | ||
1918 | 0x40, 0x43, 0x2f, 0x48, 0x77, 0x55, 0x31, 0x58, | ||
1919 | 0x7a, 0x8e, 0x7e, 0x31, 0x3e, 0x68, 0x97, 0x8d, | ||
1920 | 0x98, 0x9e, 0xa3, 0xac, 0xa6, 0xa0, 0xae, 0xaf, | ||
1921 | 0xb7, 0xb2, 0xad, 0xae, 0xb3, 0xb6, 0xb4, 0xb1, | ||
1922 | 0xb3, 0xb3, 0xb4, 0xb5, 0xb5, 0xb6, 0xb7, 0xb7, | ||
1923 | 0xb9, 0xb8, 0xb6, 0xb4, 0xb4, 0xb5, 0xb6, 0xb7, | ||
1924 | 0xb8, 0xb7, 0xb4, 0xb2, 0xb2, 0xb5, 0xb8, 0xba, | ||
1925 | 0xc6, 0xc3, 0xbe, 0xb9, 0xb7, 0xb7, 0xb9, 0xba, | ||
1926 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb2, 0xb2, 0xb2, | ||
1927 | 0xb6, 0xb8, 0xbb, 0xbf, 0xc4, 0xc8, 0xcc, 0xcd, | ||
1928 | 0xcd, 0xcd, 0xcd, 0xcc, 0xcc, 0xcb, 0xcb, 0xcb, | ||
1929 | 0xc6, 0xc7, 0xc3, 0xc9, 0xd4, 0xb4, 0x18, 0x07, | ||
1930 | 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, | ||
1931 | 0xab, 0xb8, 0x9e, 0x97, 0xab, 0xae, 0xae, 0xae, | ||
1932 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1933 | 0xb4, 0xaf, 0xa9, 0xaa, 0xad, 0xac, 0xa4, 0x9c, | ||
1934 | 0x90, 0x84, 0x98, 0xb2, 0xb1, 0xb4, 0xb8, 0xab, | ||
1935 | 0xb1, 0xa8, 0x99, 0xa5, 0xae, 0xae, 0xb8, 0xb7, | ||
1936 | 0xbc, 0xbe, 0xa1, 0x73, 0x70, 0x99, 0xb5, 0xb2, | ||
1937 | 0xaf, 0xb2, 0xa9, 0xaf, 0xb6, 0xa0, 0x94, 0xa2, | ||
1938 | 0xb2, 0xae, 0xaf, 0xa8, 0xa0, 0xad, 0xb9, 0xb3, | ||
1939 | 0xb4, 0xb1, 0xaf, 0xb1, 0xb4, 0xb2, 0xa9, 0xa2, | ||
1940 | 0xc0, 0xc9, 0xc4, 0xb1, 0xa5, 0xaa, 0xb2, 0xb2, | ||
1941 | 0xb5, 0xb3, 0xb1, 0xbe, 0xad, 0x95, 0xac, 0xbe, | ||
1942 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
1943 | 0xb4, 0xb5, 0xb9, 0xb2, 0xb6, 0xa9, 0x99, 0xba, | ||
1944 | 0xb5, 0xb5, 0xb4, 0xb4, 0xb3, 0xb2, 0xb2, 0xb1, | ||
1945 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1946 | 0xaf, 0xb4, 0xa9, 0xa2, 0xae, 0xb5, 0xb1, 0xb2, | ||
1947 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
1948 | 0xad, 0xae, 0xb0, 0xb1, 0xb1, 0xb0, 0xae, 0xad, | ||
1949 | 0xac, 0xab, 0xac, 0xaf, 0xb2, 0xb3, 0xb1, 0xaf, | ||
1950 | 0x9c, 0xa7, 0xb0, 0xb2, 0xb2, 0xb4, 0xb3, 0xb1, | ||
1951 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1952 | 0xb0, 0xb1, 0xb1, 0xb2, 0xb3, 0xb3, 0xb4, 0xb4, | ||
1953 | 0xb3, 0xb4, 0xb4, 0xb5, 0xb6, 0xb6, 0xb7, 0xb7, | ||
1954 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
1955 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
1956 | 0xbd, 0xb4, 0xac, 0x90, 0x81, 0x83, 0x7c, 0x7e, | ||
1957 | 0x78, 0x72, 0x73, 0x7c, 0x81, 0x7f, 0x7c, 0x7e, | ||
1958 | 0x92, 0x86, 0x75, 0x69, 0x68, 0x70, 0x7b, 0x83, | ||
1959 | 0x80, 0x7b, 0x7b, 0x7d, 0x75, 0x69, 0x6c, 0x78, | ||
1960 | 0x77, 0x64, 0x50, 0x4c, 0x54, 0x5b, 0x57, 0x50, | ||
1961 | 0x43, 0x41, 0x43, 0x47, 0x4c, 0x4a, 0x42, 0x3a, | ||
1962 | 0x3e, 0x53, 0x46, 0x45, 0x63, 0x56, 0x37, 0x3f, | ||
1963 | 0x88, 0x93, 0x7f, 0x5e, 0x47, 0x4a, 0x51, 0x5f, | ||
1964 | 0x84, 0xa5, 0xb5, 0xac, 0x99, 0x9b, 0xb0, 0xae, | ||
1965 | 0xb1, 0xae, 0xad, 0xaf, 0xb4, 0xb6, 0xb4, 0xb0, | ||
1966 | 0xb3, 0xb4, 0xb4, 0xb5, 0xb6, 0xb6, 0xb7, 0xb7, | ||
1967 | 0xb9, 0xb8, 0xb6, 0xb4, 0xb4, 0xb5, 0xb7, 0xb8, | ||
1968 | 0xb9, 0xb7, 0xb6, 0xb5, 0xb6, 0xb9, 0xbc, 0xbe, | ||
1969 | 0xc3, 0xc1, 0xbe, 0xbb, 0xb8, 0xb7, 0xb7, 0xb7, | ||
1970 | 0xb4, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, | ||
1971 | 0xbe, 0xbf, 0xc1, 0xc4, 0xc7, 0xca, 0xcc, 0xcd, | ||
1972 | 0xcd, 0xcd, 0xcd, 0xcc, 0xcb, 0xcb, 0xca, 0xca, | ||
1973 | 0xc6, 0xc7, 0xc3, 0xc9, 0xd4, 0xb4, 0x18, 0x07, | ||
1974 | 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, | ||
1975 | 0xac, 0xb5, 0x9d, 0x9a, 0xac, 0xae, 0xaf, 0xae, | ||
1976 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
1977 | 0xae, 0xae, 0xae, 0xac, 0xab, 0xac, 0xae, 0xb0, | ||
1978 | 0xad, 0x93, 0x89, 0x88, 0x81, 0x8e, 0xa4, 0xa7, | ||
1979 | 0xa9, 0xa8, 0xa3, 0xb2, 0xb6, 0xa6, 0x9d, 0x90, | ||
1980 | 0x6c, 0x6c, 0x80, 0xa5, 0xbf, 0xc0, 0xb7, 0xb4, | ||
1981 | 0xa2, 0xb2, 0xad, 0xb7, 0xac, 0x91, 0xa0, 0xac, | ||
1982 | 0xb2, 0xad, 0xac, 0xa8, 0xa4, 0xae, 0xb8, 0xb3, | ||
1983 | 0xab, 0xb1, 0xb7, 0xb8, 0xb7, 0xb8, 0xbd, 0xc2, | ||
1984 | 0xbb, 0xbb, 0xb8, 0xaf, 0xa9, 0xac, 0xb6, 0xbe, | ||
1985 | 0xb3, 0xb4, 0xb9, 0xbc, 0xa4, 0x9a, 0xb4, 0xbb, | ||
1986 | 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, | ||
1987 | 0xb5, 0xb6, 0xb8, 0xb4, 0xb6, 0xa8, 0x9e, 0xbb, | ||
1988 | 0xb6, 0xb6, 0xb5, 0xb4, 0xb4, 0xb3, 0xb2, 0xb2, | ||
1989 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1990 | 0xb0, 0xb4, 0xac, 0xa4, 0xac, 0xb3, 0xb2, 0xb2, | ||
1991 | 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, | ||
1992 | 0xac, 0xae, 0xb0, 0xb1, 0xb1, 0xb0, 0xae, 0xad, | ||
1993 | 0xb5, 0xb5, 0xb4, 0xb1, 0xae, 0xad, 0xb0, 0xb3, | ||
1994 | 0x98, 0x9e, 0xaa, 0xb4, 0xb5, 0xb1, 0xaf, 0xb2, | ||
1995 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
1996 | 0xb1, 0xb1, 0xb2, 0xb3, 0xb3, 0xb4, 0xb5, 0xb5, | ||
1997 | 0xb4, 0xb4, 0xb5, 0xb6, 0xb6, 0xb7, 0xb8, 0xb8, | ||
1998 | 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, | ||
1999 | 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, | ||
2000 | 0xbc, 0xb5, 0xad, 0x91, 0x81, 0x86, 0x85, 0x8c, | ||
2001 | 0x84, 0x89, 0x8f, 0x8e, 0x80, 0x72, 0x74, 0x7e, | ||
2002 | 0x86, 0x78, 0x6a, 0x67, 0x71, 0x7e, 0x86, 0x89, | ||
2003 | 0x7d, 0x80, 0x87, 0x8d, 0x86, 0x76, 0x6f, 0x70, | ||
2004 | 0x6a, 0x64, 0x61, 0x65, 0x69, 0x61, 0x4d, 0x3b, | ||
2005 | 0x39, 0x46, 0x4d, 0x44, 0x36, 0x36, 0x4b, 0x61, | ||
2006 | 0x4c, 0x44, 0x39, 0x43, 0x51, 0x46, 0x46, 0x60, | ||
2007 | 0x80, 0xa6, 0x86, 0x68, 0x57, 0x84, 0x76, 0x6b, | ||
2008 | 0x8d, 0xc6, 0xae, 0x9e, 0x9f, 0x9d, 0xb5, 0xac, | ||
2009 | 0xa9, 0xa9, 0xac, 0xb1, 0xb6, 0xb7, 0xb3, 0xb0, | ||
2010 | 0xb4, 0xb4, 0xb5, 0xb6, 0xb6, 0xb7, 0xb8, 0xb8, | ||
2011 | 0xb9, 0xb7, 0xb6, 0xb5, 0xb5, 0xb6, 0xb8, 0xb9, | ||
2012 | 0xba, 0xb9, 0xb9, 0xba, 0xbc, 0xbf, 0xc2, 0xc4, | ||
2013 | 0xc0, 0xc0, 0xc0, 0xbf, 0xbc, 0xb9, 0xb6, 0xb4, | ||
2014 | 0xb6, 0xb7, 0xb8, 0xba, 0xbc, 0xbe, 0xbf, 0xc0, | ||
2015 | 0xc5, 0xc6, 0xc7, 0xc8, 0xca, 0xcb, 0xcd, 0xcd, | ||
2016 | 0xce, 0xcd, 0xcc, 0xcc, 0xcb, 0xca, 0xc9, 0xc9, | ||
2017 | 0xc6, 0xc7, 0xc3, 0xc9, 0xd4, 0xb4, 0x18, 0x07, | ||
2018 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
2019 | 0xad, 0xb1, 0x9d, 0x9f, 0xae, 0xae, 0xb1, 0xaf, | ||
2020 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
2021 | 0xab, 0xae, 0xaf, 0xac, 0xa7, 0xa9, 0xb0, 0xb8, | ||
2022 | 0xa6, 0xa3, 0xaf, 0xb7, 0xab, 0xa0, 0x95, 0x84, | ||
2023 | 0x8d, 0x82, 0x70, 0x7a, 0x86, 0x8b, 0x9c, 0xa0, | ||
2024 | 0xb9, 0xc2, 0xc0, 0xb4, 0xb3, 0xba, 0xb3, 0xa1, | ||
2025 | 0xad, 0xab, 0xb3, 0xb6, 0x99, 0x9a, 0xb8, 0xae, | ||
2026 | 0xb1, 0xac, 0xa9, 0xa7, 0xa9, 0xb0, 0xb5, 0xb4, | ||
2027 | 0xab, 0xb5, 0xbf, 0xc0, 0xb8, 0xb2, 0xb1, 0xb3, | ||
2028 | 0xb2, 0xb0, 0xb3, 0xb8, 0xb4, 0xad, 0xb0, 0xb8, | ||
2029 | 0xb1, 0xb5, 0xbe, 0xb7, 0x9d, 0xa2, 0xba, 0xb9, | ||
2030 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
2031 | 0xb7, 0xb7, 0xb6, 0xb7, 0xb6, 0xa7, 0xa5, 0xbd, | ||
2032 | 0xb7, 0xb6, 0xb6, 0xb5, 0xb4, 0xb4, 0xb3, 0xb3, | ||
2033 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
2034 | 0xb1, 0xb4, 0xaf, 0xa7, 0xaa, 0xb1, 0xb3, 0xb2, | ||
2035 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
2036 | 0xab, 0xad, 0xaf, 0xb1, 0xb1, 0xb1, 0xaf, 0xae, | ||
2037 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb1, 0xb2, 0xb3, 0xb3, | ||
2038 | 0x91, 0x9b, 0xa9, 0xb2, 0xb4, 0xb3, 0xb2, 0xb1, | ||
2039 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
2040 | 0xb2, 0xb2, 0xb3, 0xb3, 0xb4, 0xb5, 0xb5, 0xb6, | ||
2041 | 0xb5, 0xb5, 0xb6, 0xb6, 0xb7, 0xb8, 0xb8, 0xb9, | ||
2042 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2043 | 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, | ||
2044 | 0xc0, 0xaf, 0x97, 0x6b, 0x51, 0x56, 0x5a, 0x67, | ||
2045 | 0x73, 0x6b, 0x69, 0x71, 0x77, 0x76, 0x74, 0x75, | ||
2046 | 0x88, 0x7a, 0x6c, 0x6c, 0x77, 0x7f, 0x7d, 0x77, | ||
2047 | 0x78, 0x7f, 0x8b, 0x93, 0x8f, 0x82, 0x75, 0x6f, | ||
2048 | 0x79, 0x76, 0x6d, 0x5c, 0x46, 0x35, 0x2c, 0x2a, | ||
2049 | 0x4c, 0x41, 0x35, 0x33, 0x3b, 0x44, 0x49, 0x48, | ||
2050 | 0x3a, 0x44, 0x44, 0x38, 0x3a, 0x54, 0x67, 0x64, | ||
2051 | 0x75, 0xa7, 0x7f, 0x4a, 0x62, 0xaf, 0x96, 0x5c, | ||
2052 | 0x91, 0xa5, 0xbd, 0x9d, 0x94, 0xaf, 0xac, 0xb0, | ||
2053 | 0xa3, 0xa7, 0xad, 0xb4, 0xb8, 0xb7, 0xb3, 0xb0, | ||
2054 | 0xb5, 0xb5, 0xb6, 0xb6, 0xb7, 0xb8, 0xb8, 0xb9, | ||
2055 | 0xb8, 0xb7, 0xb6, 0xb5, 0xb6, 0xb8, 0xba, 0xbb, | ||
2056 | 0xbb, 0xbc, 0xbe, 0xc0, 0xc3, 0xc6, 0xc9, 0xca, | ||
2057 | 0xc2, 0xc3, 0xc5, 0xc5, 0xc3, 0xbe, 0xb9, 0xb6, | ||
2058 | 0xba, 0xbb, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xbf, | ||
2059 | 0xc6, 0xc6, 0xc8, 0xc9, 0xcb, 0xcd, 0xce, 0xcf, | ||
2060 | 0xce, 0xcd, 0xcc, 0xcb, 0xca, 0xc8, 0xc7, 0xc7, | ||
2061 | 0xc6, 0xc7, 0xc3, 0xc9, 0xd4, 0xb4, 0x18, 0x07, | ||
2062 | 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, | ||
2063 | 0xad, 0xad, 0x9d, 0xa4, 0xb0, 0xae, 0xb2, 0xaf, | ||
2064 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
2065 | 0xb4, 0xad, 0xa6, 0xa6, 0xab, 0xb0, 0xaf, 0xad, | ||
2066 | 0x97, 0x9d, 0xac, 0xb7, 0xb9, 0xbc, 0xbd, 0xb6, | ||
2067 | 0xb9, 0xb3, 0xa8, 0xb4, 0xbc, 0xb8, 0xbc, 0xb8, | ||
2068 | 0xb0, 0xae, 0xae, 0xaf, 0xad, 0xa9, 0xaa, 0xad, | ||
2069 | 0xb8, 0xa8, 0xb0, 0x9e, 0x8f, 0xae, 0xbd, 0xac, | ||
2070 | 0xb0, 0xab, 0xa6, 0xa7, 0xaf, 0xb2, 0xb2, 0xb5, | ||
2071 | 0xb3, 0xb7, 0xba, 0xb9, 0xb7, 0xb7, 0xb9, 0xbc, | ||
2072 | 0xbc, 0xb3, 0xaf, 0xb0, 0xa9, 0x9d, 0x9d, 0xa7, | ||
2073 | 0xb2, 0xb7, 0xbf, 0xaf, 0x9d, 0xab, 0xbb, 0xb9, | ||
2074 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
2075 | 0xb9, 0xb9, 0xb5, 0xb9, 0xb5, 0xa6, 0xac, 0xbf, | ||
2076 | 0xb7, 0xb7, 0xb6, 0xb6, 0xb5, 0xb4, 0xb4, 0xb3, | ||
2077 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
2078 | 0xb3, 0xb4, 0xb2, 0xab, 0xa8, 0xb0, 0xb5, 0xb2, | ||
2079 | 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, | ||
2080 | 0xaa, 0xac, 0xaf, 0xb1, 0xb2, 0xb1, 0xb0, 0xaf, | ||
2081 | 0xb1, 0xae, 0xad, 0xb1, 0xb6, 0xb5, 0xac, 0xa4, | ||
2082 | 0xa2, 0xb3, 0xbc, 0xb7, 0xb4, 0xb8, 0xb4, 0xaa, | ||
2083 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
2084 | 0xb2, 0xb3, 0xb3, 0xb4, 0xb5, 0xb5, 0xb6, 0xb6, | ||
2085 | 0xb5, 0xb6, 0xb6, 0xb7, 0xb8, 0xb8, 0xb9, 0xb9, | ||
2086 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2087 | 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, | ||
2088 | 0xca, 0xb6, 0x9c, 0x72, 0x60, 0x6c, 0x76, 0x86, | ||
2089 | 0x7d, 0x6e, 0x65, 0x6e, 0x7b, 0x7e, 0x7c, 0x7a, | ||
2090 | 0x84, 0x73, 0x62, 0x60, 0x6b, 0x76, 0x79, 0x75, | ||
2091 | 0x78, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x78, 0x74, | ||
2092 | 0x7a, 0x7d, 0x7b, 0x72, 0x67, 0x64, 0x6c, 0x75, | ||
2093 | 0x60, 0x68, 0x6e, 0x67, 0x57, 0x45, 0x3b, 0x38, | ||
2094 | 0x2e, 0x41, 0x52, 0x4d, 0x4a, 0x5f, 0x65, 0x50, | ||
2095 | 0x71, 0x8b, 0x74, 0x4a, 0x86, 0xa8, 0x8f, 0x59, | ||
2096 | 0x78, 0xb6, 0x9a, 0x84, 0xa3, 0xab, 0xb1, 0xb7, | ||
2097 | 0xa2, 0xa8, 0xaf, 0xb5, 0xb7, 0xb6, 0xb4, 0xb2, | ||
2098 | 0xb5, 0xb6, 0xb6, 0xb7, 0xb8, 0xb8, 0xb9, 0xb9, | ||
2099 | 0xb8, 0xb7, 0xb6, 0xb6, 0xb7, 0xb9, 0xbb, 0xbd, | ||
2100 | 0xbe, 0xc0, 0xc2, 0xc5, 0xc8, 0xcb, 0xcc, 0xcd, | ||
2101 | 0xc6, 0xc8, 0xca, 0xca, 0xc7, 0xc3, 0xbe, 0xba, | ||
2102 | 0xc0, 0xbf, 0xbf, 0xbe, 0xbd, 0xbc, 0xbb, 0xbb, | ||
2103 | 0xc2, 0xc3, 0xc5, 0xc8, 0xcb, 0xce, 0xd0, 0xd1, | ||
2104 | 0xce, 0xcd, 0xcc, 0xcb, 0xc9, 0xc7, 0xc6, 0xc5, | ||
2105 | 0xc6, 0xc7, 0xc3, 0xc9, 0xd4, 0xb4, 0x18, 0x07, | ||
2106 | 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, | ||
2107 | 0xae, 0xa9, 0x9d, 0xa8, 0xb2, 0xaf, 0xb4, 0xb0, | ||
2108 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
2109 | 0xb0, 0xae, 0xab, 0xab, 0xab, 0xad, 0xad, 0xac, | ||
2110 | 0x9b, 0xa3, 0xa9, 0xa9, 0xa7, 0xaa, 0xab, 0xa8, | ||
2111 | 0xad, 0xa7, 0x9d, 0xa9, 0xb0, 0xa9, 0xab, 0xa4, | ||
2112 | 0xa0, 0xa9, 0xae, 0xac, 0xb0, 0xb5, 0xad, 0x9e, | ||
2113 | 0xb5, 0xad, 0xa5, 0x88, 0x94, 0xb5, 0xad, 0xac, | ||
2114 | 0xaf, 0xaa, 0xa3, 0xa7, 0xb4, 0xb4, 0xb0, 0xb5, | ||
2115 | 0xb1, 0xb1, 0xb1, 0xb3, 0xb7, 0xba, 0xbd, 0xbe, | ||
2116 | 0xc0, 0xb8, 0xb7, 0xbc, 0xbb, 0xb4, 0xb5, 0xbd, | ||
2117 | 0xb6, 0xba, 0xbb, 0xa5, 0xa3, 0xb5, 0xb7, 0xba, | ||
2118 | 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, | ||
2119 | 0xbb, 0xba, 0xb4, 0xbc, 0xb5, 0xa5, 0xb3, 0xc0, | ||
2120 | 0xb8, 0xb8, 0xb7, 0xb6, 0xb6, 0xb5, 0xb4, 0xb4, | ||
2121 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
2122 | 0xb4, 0xb4, 0xb5, 0xae, 0xa6, 0xae, 0xb6, 0xb2, | ||
2123 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
2124 | 0xa9, 0xab, 0xae, 0xb0, 0xb2, 0xb2, 0xb1, 0xb0, | ||
2125 | 0xb8, 0xb3, 0xb0, 0xb3, 0xb7, 0xb3, 0xa5, 0x98, | ||
2126 | 0x91, 0xa4, 0xae, 0xa8, 0xaa, 0xb7, 0xb9, 0xaf, | ||
2127 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
2128 | 0xb3, 0xb3, 0xb4, 0xb5, 0xb5, 0xb6, 0xb7, 0xb7, | ||
2129 | 0xb6, 0xb6, 0xb7, 0xb8, 0xb8, 0xb9, 0xba, 0xba, | ||
2130 | 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, | ||
2131 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2132 | 0xbd, 0xab, 0x96, 0x73, 0x66, 0x6f, 0x6f, 0x76, | ||
2133 | 0x7c, 0x77, 0x77, 0x7d, 0x81, 0x80, 0x83, 0x8a, | ||
2134 | 0x82, 0x7a, 0x74, 0x78, 0x83, 0x8d, 0x8f, 0x8d, | ||
2135 | 0x7b, 0x7d, 0x7b, 0x76, 0x79, 0x7d, 0x79, 0x6f, | ||
2136 | 0x78, 0x76, 0x75, 0x74, 0x72, 0x6d, 0x66, 0x61, | ||
2137 | 0x5a, 0x4e, 0x47, 0x51, 0x61, 0x61, 0x4d, 0x38, | ||
2138 | 0x37, 0x37, 0x46, 0x58, 0x5f, 0x62, 0x64, 0x61, | ||
2139 | 0x71, 0x87, 0x78, 0x52, 0x97, 0xa9, 0x9f, 0x84, | ||
2140 | 0x6e, 0xc3, 0xa7, 0xa0, 0xb3, 0xa3, 0xb2, 0xb2, | ||
2141 | 0xa7, 0xad, 0xb3, 0xb6, 0xb6, 0xb5, 0xb5, 0xb6, | ||
2142 | 0xb6, 0xb6, 0xb7, 0xb8, 0xb8, 0xb9, 0xba, 0xba, | ||
2143 | 0xb8, 0xb7, 0xb6, 0xb6, 0xb8, 0xba, 0xbd, 0xbf, | ||
2144 | 0xc1, 0xc3, 0xc6, 0xca, 0xcc, 0xcd, 0xcc, 0xcc, | ||
2145 | 0xca, 0xca, 0xca, 0xc9, 0xc6, 0xc3, 0xc0, 0xbe, | ||
2146 | 0xc4, 0xc3, 0xc2, 0xc0, 0xbe, 0xbc, 0xbb, 0xba, | ||
2147 | 0xc3, 0xc4, 0xc6, 0xc9, 0xcc, 0xcf, 0xd2, 0xd3, | ||
2148 | 0xce, 0xce, 0xcc, 0xca, 0xc8, 0xc6, 0xc4, 0xc3, | ||
2149 | 0xc6, 0xc7, 0xc3, 0xc9, 0xd4, 0xb4, 0x18, 0x07, | ||
2150 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
2151 | 0xaf, 0xa6, 0x9d, 0xac, 0xb3, 0xaf, 0xb5, 0xb0, | ||
2152 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
2153 | 0xa9, 0xb0, 0xb6, 0xb5, 0xaf, 0xab, 0xaf, 0xb4, | ||
2154 | 0x8d, 0x9f, 0xac, 0xaf, 0xb0, 0xb0, 0xab, 0xa6, | ||
2155 | 0xb1, 0xab, 0xa0, 0xad, 0xb4, 0xae, 0xb1, 0xac, | ||
2156 | 0xb5, 0xb0, 0xaa, 0xaa, 0xb0, 0xb5, 0xb4, 0xb1, | ||
2157 | 0xae, 0xb1, 0xa0, 0x91, 0xa1, 0xa9, 0xa4, 0xae, | ||
2158 | 0xaf, 0xaa, 0xa0, 0xa7, 0xb8, 0xb5, 0xae, 0xb6, | ||
2159 | 0xaf, 0xb1, 0xb4, 0xb6, 0xb6, 0xb5, 0xb4, 0xb4, | ||
2160 | 0xb3, 0xb2, 0xb6, 0xbd, 0xbf, 0xbb, 0xb8, 0xb8, | ||
2161 | 0xb9, 0xbd, 0xb4, 0x9c, 0xab, 0xbd, 0xb1, 0xbc, | ||
2162 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2163 | 0xbd, 0xbb, 0xb3, 0xbe, 0xb5, 0xa5, 0xb8, 0xc2, | ||
2164 | 0xb9, 0xb8, 0xb8, 0xb7, 0xb6, 0xb6, 0xb5, 0xb5, | ||
2165 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
2166 | 0xb5, 0xb4, 0xb8, 0xb1, 0xa5, 0xad, 0xb8, 0xb2, | ||
2167 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
2168 | 0xa9, 0xab, 0xae, 0xb0, 0xb2, 0xb2, 0xb2, 0xb1, | ||
2169 | 0xaf, 0xae, 0xae, 0xb2, 0xb6, 0xb7, 0xb2, 0xad, | ||
2170 | 0xba, 0xc2, 0xc2, 0xb8, 0xb2, 0xb5, 0xb5, 0xb0, | ||
2171 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
2172 | 0xb4, 0xb4, 0xb5, 0xb5, 0xb6, 0xb7, 0xb7, 0xb8, | ||
2173 | 0xb7, 0xb7, 0xb8, 0xb8, 0xb9, 0xba, 0xba, 0xbb, | ||
2174 | 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, | ||
2175 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2176 | 0xba, 0xa9, 0x99, 0x7e, 0x76, 0x7c, 0x6f, 0x6b, | ||
2177 | 0x76, 0x6e, 0x6d, 0x74, 0x76, 0x6d, 0x62, 0x5d, | ||
2178 | 0x70, 0x6e, 0x6b, 0x6b, 0x6c, 0x6d, 0x6d, 0x6d, | ||
2179 | 0x84, 0x87, 0x82, 0x7a, 0x7b, 0x7e, 0x74, 0x63, | ||
2180 | 0x64, 0x61, 0x5d, 0x58, 0x55, 0x55, 0x56, 0x57, | ||
2181 | 0x62, 0x61, 0x5c, 0x51, 0x47, 0x44, 0x48, 0x4d, | ||
2182 | 0x3a, 0x4a, 0x4a, 0x45, 0x59, 0x74, 0x74, 0x65, | ||
2183 | 0x75, 0x97, 0x76, 0x50, 0x86, 0xaa, 0x94, 0x7c, | ||
2184 | 0x80, 0x6f, 0xd4, 0xe6, 0xab, 0xad, 0xa8, 0xa8, | ||
2185 | 0xaf, 0xb3, 0xb7, 0xb6, 0xb3, 0xb3, 0xb6, 0xba, | ||
2186 | 0xb7, 0xb7, 0xb8, 0xb8, 0xb9, 0xba, 0xba, 0xbb, | ||
2187 | 0xb8, 0xb7, 0xb6, 0xb7, 0xb8, 0xbb, 0xbe, 0xc0, | ||
2188 | 0xc4, 0xc6, 0xca, 0xcc, 0xcd, 0xcc, 0xcb, 0xc9, | ||
2189 | 0xcb, 0xc9, 0xc6, 0xc3, 0xc0, 0xbf, 0xbf, 0xbf, | ||
2190 | 0xc6, 0xc6, 0xc5, 0xc4, 0xc3, 0xc2, 0xc1, 0xc0, | ||
2191 | 0xca, 0xcb, 0xcc, 0xce, 0xd0, 0xd1, 0xd2, 0xd3, | ||
2192 | 0xcf, 0xce, 0xcc, 0xca, 0xc7, 0xc5, 0xc3, 0xc2, | ||
2193 | 0xc6, 0xc7, 0xc3, 0xc9, 0xd4, 0xb4, 0x18, 0x07, | ||
2194 | 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, | ||
2195 | 0xaf, 0xa5, 0x9d, 0xae, 0xb4, 0xaf, 0xb6, 0xb1, | ||
2196 | 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, | ||
2197 | 0xaf, 0xae, 0xb0, 0xb5, 0xba, 0xba, 0xb5, 0xb0, | ||
2198 | 0x9a, 0xab, 0xb2, 0xad, 0xae, 0xb1, 0xb0, 0xae, | ||
2199 | 0xb3, 0xac, 0x9e, 0xaa, 0xb3, 0xb1, 0xb9, 0xb7, | ||
2200 | 0xb4, 0xb8, 0xb7, 0xb2, 0xb0, 0xb1, 0xae, 0xa8, | ||
2201 | 0xac, 0xb0, 0xa3, 0xab, 0xa9, 0x9a, 0xa9, 0xb0, | ||
2202 | 0xae, 0xa9, 0x9f, 0xa7, 0xba, 0xb6, 0xad, 0xb6, | ||
2203 | 0xb9, 0xbb, 0xbc, 0xb8, 0xb4, 0xb3, 0xb7, 0xbc, | ||
2204 | 0xb4, 0xb4, 0xb4, 0xb5, 0xb8, 0xb9, 0xb7, 0xb5, | ||
2205 | 0xbc, 0xbe, 0xaf, 0x97, 0xb1, 0xc2, 0xad, 0xbe, | ||
2206 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2207 | 0xbe, 0xbc, 0xb2, 0xbf, 0xb5, 0xa4, 0xbb, 0xc3, | ||
2208 | 0xb9, 0xb9, 0xb8, 0xb7, 0xb7, 0xb6, 0xb5, 0xb5, | ||
2209 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
2210 | 0xb6, 0xb4, 0xb9, 0xb2, 0xa4, 0xac, 0xb8, 0xb2, | ||
2211 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
2212 | 0xa8, 0xaa, 0xad, 0xb0, 0xb2, 0xb2, 0xb2, 0xb1, | ||
2213 | 0xb5, 0xb6, 0xb5, 0xb3, 0xb2, 0xb2, 0xb4, 0xb6, | ||
2214 | 0xb5, 0xb4, 0xb4, 0xb2, 0xaf, 0xaf, 0xb3, 0xb9, | ||
2215 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
2216 | 0xb4, 0xb4, 0xb5, 0xb6, 0xb6, 0xb7, 0xb8, 0xb8, | ||
2217 | 0xb7, 0xb7, 0xb8, 0xb9, 0xb9, 0xba, 0xbb, 0xbb, | ||
2218 | 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, | ||
2219 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2220 | 0xc4, 0xae, 0x97, 0x77, 0x69, 0x65, 0x4d, 0x3f, | ||
2221 | 0x5d, 0x6c, 0x81, 0x8b, 0x81, 0x72, 0x72, 0x7a, | ||
2222 | 0x71, 0x6b, 0x61, 0x58, 0x59, 0x66, 0x79, 0x87, | ||
2223 | 0x91, 0x8b, 0x78, 0x63, 0x61, 0x6c, 0x6a, 0x5e, | ||
2224 | 0x4b, 0x5e, 0x6f, 0x6d, 0x5a, 0x48, 0x42, 0x45, | ||
2225 | 0x34, 0x39, 0x40, 0x43, 0x45, 0x4a, 0x54, 0x5b, | ||
2226 | 0x52, 0x51, 0x4b, 0x59, 0x70, 0x6a, 0x59, 0x59, | ||
2227 | 0x6f, 0x90, 0x66, 0x67, 0x95, 0xbb, 0x82, 0x6a, | ||
2228 | 0x97, 0x65, 0x6a, 0xca, 0xd0, 0xa7, 0xbc, 0xa7, | ||
2229 | 0xb4, 0xb7, 0xb9, 0xb6, 0xb2, 0xb1, 0xb7, 0xbc, | ||
2230 | 0xb7, 0xb7, 0xb8, 0xb9, 0xb9, 0xba, 0xbb, 0xbb, | ||
2231 | 0xb7, 0xb7, 0xb6, 0xb7, 0xb9, 0xbc, 0xbf, 0xc1, | ||
2232 | 0xc6, 0xc8, 0xcb, 0xcd, 0xce, 0xcc, 0xc9, 0xc7, | ||
2233 | 0xca, 0xc6, 0xc1, 0xbd, 0xba, 0xbb, 0xbc, 0xbe, | ||
2234 | 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc8, 0xc8, 0xc8, | ||
2235 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd3, 0xd3, | ||
2236 | 0xcf, 0xce, 0xcc, 0xc9, 0xc7, 0xc4, 0xc2, 0xc1, | ||
2237 | 0xc6, 0xc7, 0xc3, 0xc9, 0xd4, 0xb4, 0x18, 0x07, | ||
2238 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
2239 | 0xba, 0xa3, 0xa0, 0xae, 0xb1, 0xb0, 0xb2, 0xb2, | ||
2240 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
2241 | 0xad, 0x97, 0x8a, 0x87, 0x87, 0x8a, 0x84, 0x75, | ||
2242 | 0x9d, 0xa8, 0xb3, 0xb5, 0xb0, 0xad, 0xb2, 0xb9, | ||
2243 | 0xba, 0xb3, 0x94, 0x9e, 0xb2, 0xac, 0xb2, 0xb5, | ||
2244 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
2245 | 0xb0, 0xb0, 0xaf, 0xae, 0xac, 0xab, 0xac, 0xaf, | ||
2246 | 0xbc, 0x9e, 0x9d, 0xb2, 0xb5, 0xb2, 0xb4, 0xb3, | ||
2247 | 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, | ||
2248 | 0xbc, 0xbd, 0xbe, 0xbe, 0xbc, 0xb9, 0xb5, 0xb2, | ||
2249 | 0xc5, 0xb4, 0xa0, 0xa7, 0xbe, 0xbf, 0xb7, 0xbe, | ||
2250 | 0xb9, 0xb9, 0xba, 0xbb, 0xbb, 0xbc, 0xbd, 0xbd, | ||
2251 | 0xbf, 0xba, 0xbd, 0xb9, 0xab, 0xac, 0xba, 0xc1, | ||
2252 | 0xbb, 0xbb, 0xba, 0xb9, 0xb9, 0xb8, 0xb7, 0xb7, | ||
2253 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
2254 | 0xbb, 0xb9, 0xb7, 0xbe, 0xa6, 0x9a, 0xb8, 0xb8, | ||
2255 | 0xb6, 0xb5, 0xb4, 0xb3, 0xb3, 0xb3, 0xb3, 0xb4, | ||
2256 | 0xb0, 0xa2, 0xa9, 0xb5, 0xb2, 0xb3, 0xb8, 0xb2, | ||
2257 | 0xb1, 0xb1, 0xb2, 0xb3, 0xb3, 0xb4, 0xb5, 0xb5, | ||
2258 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
2259 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
2260 | 0xb7, 0xb7, 0xb8, 0xb9, 0xb9, 0xba, 0xbb, 0xbb, | ||
2261 | 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, | ||
2262 | 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbe, 0xbf, | ||
2263 | 0xbc, 0xbb, 0xbd, 0xc1, 0xc5, 0xc3, 0xba, 0xb2, | ||
2264 | 0xc2, 0xb4, 0xab, 0x7c, 0x5c, 0x63, 0x59, 0x53, | ||
2265 | 0x66, 0x6b, 0x69, 0x64, 0x6c, 0x7b, 0x7f, 0x79, | ||
2266 | 0x78, 0x75, 0x78, 0x82, 0x8c, 0x8a, 0x7a, 0x6b, | ||
2267 | 0x57, 0x5a, 0x5f, 0x66, 0x6a, 0x6c, 0x6a, 0x68, | ||
2268 | 0x7a, 0x78, 0x77, 0x73, 0x65, 0x57, 0x58, 0x61, | ||
2269 | 0x63, 0x5c, 0x51, 0x4a, 0x4a, 0x4f, 0x57, 0x5c, | ||
2270 | 0x55, 0x46, 0x3d, 0x42, 0x70, 0x5f, 0x54, 0x5a, | ||
2271 | 0x69, 0x7e, 0x65, 0x6e, 0x9f, 0xa5, 0x8f, 0x7b, | ||
2272 | 0x73, 0x88, 0x94, 0x69, 0xac, 0xab, 0xa8, 0xb3, | ||
2273 | 0xb2, 0xb2, 0xb6, 0xb9, 0xb7, 0xb4, 0xb2, 0xb0, | ||
2274 | 0xbf, 0xaa, 0xbd, 0xc1, 0xcb, 0xc3, 0xbe, 0xb6, | ||
2275 | 0xac, 0xbf, 0xb5, 0xc1, 0xb8, 0xbf, 0xc4, 0xbf, | ||
2276 | 0xc5, 0xbf, 0xcc, 0xca, 0xce, 0xd4, 0xc6, 0xc9, | ||
2277 | 0xc8, 0xcd, 0xcc, 0xc0, 0xb2, 0xb0, 0xbe, 0xcd, | ||
2278 | 0xcd, 0xcb, 0xc8, 0xc6, 0xc4, 0xc4, 0xc5, 0xc6, | ||
2279 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, | ||
2280 | 0xc6, 0xcd, 0xd2, 0xce, 0xc5, 0xc1, 0xc5, 0xcc, | ||
2281 | 0xbe, 0xc4, 0xcb, 0xce, 0xd1, 0xb7, 0x1f, 0x03, | ||
2282 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
2283 | 0xba, 0xa3, 0xa1, 0xaf, 0xb2, 0xb0, 0xb3, 0xb3, | ||
2284 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
2285 | 0xb5, 0xb0, 0xc1, 0xc1, 0xa4, 0xa1, 0xac, 0xa4, | ||
2286 | 0xab, 0xa7, 0xa4, 0xa8, 0xaf, 0xb4, 0xb2, 0xaf, | ||
2287 | 0xbd, 0xbd, 0xa8, 0xa3, 0xb0, 0xb1, 0xb2, 0xb3, | ||
2288 | 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, | ||
2289 | 0xbc, 0xaf, 0xa7, 0xab, 0xb0, 0xae, 0xaa, 0xa9, | ||
2290 | 0xb4, 0xa0, 0xa4, 0xb4, 0xb5, 0xb4, 0xb7, 0xb4, | ||
2291 | 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, | ||
2292 | 0xb9, 0xb8, 0xb6, 0xb5, 0xb7, 0xba, 0xbe, 0xc0, | ||
2293 | 0xbb, 0xa2, 0xa5, 0xba, 0xbb, 0xb4, 0xb9, 0xbd, | ||
2294 | 0xb9, 0xba, 0xba, 0xbb, 0xbc, 0xbc, 0xbd, 0xbd, | ||
2295 | 0xbe, 0xbb, 0xbd, 0xb9, 0xab, 0xad, 0xbb, 0xc1, | ||
2296 | 0xbb, 0xbb, 0xba, 0xba, 0xb9, 0xb8, 0xb8, 0xb7, | ||
2297 | 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, | ||
2298 | 0xb1, 0xc0, 0xb7, 0xb8, 0xaf, 0x9d, 0xaa, 0xb5, | ||
2299 | 0xb4, 0xb6, 0xb8, 0xb9, 0xb7, 0xb2, 0xac, 0xa8, | ||
2300 | 0xb0, 0xa3, 0xa9, 0xb4, 0xb2, 0xb3, 0xb7, 0xb3, | ||
2301 | 0xb2, 0xb2, 0xb3, 0xb3, 0xb4, 0xb5, 0xb5, 0xb6, | ||
2302 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
2303 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
2304 | 0xb7, 0xb8, 0xb8, 0xb9, 0xba, 0xba, 0xbb, 0xbb, | ||
2305 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2306 | 0xba, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbe, 0xbf, | ||
2307 | 0xbe, 0xbd, 0xbd, 0xc0, 0xc3, 0xc1, 0xbb, 0xb5, | ||
2308 | 0xb7, 0xb6, 0xb4, 0x80, 0x53, 0x5c, 0x6b, 0x7c, | ||
2309 | 0x77, 0x6f, 0x6e, 0x76, 0x7c, 0x78, 0x74, 0x74, | ||
2310 | 0x85, 0x74, 0x5f, 0x52, 0x50, 0x53, 0x55, 0x54, | ||
2311 | 0x57, 0x5a, 0x60, 0x67, 0x6d, 0x72, 0x75, 0x76, | ||
2312 | 0x77, 0x6b, 0x63, 0x63, 0x62, 0x5a, 0x55, 0x56, | ||
2313 | 0x44, 0x49, 0x50, 0x58, 0x5b, 0x57, 0x4d, 0x45, | ||
2314 | 0x56, 0x4e, 0x5c, 0x54, 0x61, 0x67, 0x77, 0x65, | ||
2315 | 0x83, 0x82, 0x6b, 0x64, 0x93, 0xa1, 0x80, 0x84, | ||
2316 | 0x78, 0x9f, 0xd0, 0x81, 0x7c, 0xae, 0x9f, 0xab, | ||
2317 | 0xae, 0xb1, 0xba, 0xb9, 0xb1, 0xb6, 0xbd, 0xb9, | ||
2318 | 0xb4, 0xc0, 0xd6, 0xd2, 0xdf, 0xda, 0xd9, 0xce, | ||
2319 | 0xd0, 0xc0, 0xc4, 0xbe, 0xb3, 0xc3, 0xb0, 0xc4, | ||
2320 | 0xc2, 0xcd, 0xc6, 0xcb, 0xc7, 0xbf, 0xcb, 0xc8, | ||
2321 | 0xce, 0xcb, 0xc6, 0xc0, 0xbd, 0xbf, 0xc3, 0xc6, | ||
2322 | 0xcb, 0xc9, 0xc7, 0xc6, 0xc5, 0xc6, 0xc7, 0xc8, | ||
2323 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, | ||
2324 | 0xd4, 0xcc, 0xc4, 0xc2, 0xc5, 0xc8, 0xc6, 0xc2, | ||
2325 | 0xc0, 0xc2, 0xbb, 0xc0, 0xd8, 0xc1, 0x1f, 0x03, | ||
2326 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
2327 | 0xb8, 0xa4, 0xa3, 0xb2, 0xb4, 0xb1, 0xb4, 0xb5, | ||
2328 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
2329 | 0xb3, 0xb4, 0xc0, 0x97, 0x4a, 0x4d, 0x97, 0xc3, | ||
2330 | 0xb8, 0xad, 0xa3, 0xa5, 0xaf, 0xb6, 0xb4, 0xae, | ||
2331 | 0xb5, 0xb2, 0xad, 0xa4, 0xab, 0xb2, 0xad, 0xb5, | ||
2332 | 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, | ||
2333 | 0xbc, 0xaf, 0xa6, 0xaa, 0xb1, 0xb1, 0xae, 0xae, | ||
2334 | 0xa7, 0xa5, 0xae, 0xb6, 0xb5, 0xb8, 0xba, 0xb5, | ||
2335 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2336 | 0xb8, 0xb6, 0xb5, 0xb4, 0xb6, 0xb9, 0xbc, 0xbf, | ||
2337 | 0xa7, 0xa2, 0xb2, 0xc1, 0xb8, 0xb2, 0xb8, 0xba, | ||
2338 | 0xba, 0xba, 0xbb, 0xbc, 0xbc, 0xbd, 0xbe, 0xbe, | ||
2339 | 0xbe, 0xbb, 0xbd, 0xb8, 0xac, 0xb0, 0xbd, 0xc0, | ||
2340 | 0xbc, 0xbc, 0xbb, 0xba, 0xba, 0xb9, 0xb8, 0xb8, | ||
2341 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
2342 | 0xba, 0xbb, 0xb3, 0xb8, 0xb3, 0xa7, 0xb2, 0xbb, | ||
2343 | 0xb4, 0xb7, 0xba, 0xbc, 0xba, 0xb6, 0xb0, 0xac, | ||
2344 | 0xb0, 0xa5, 0xa8, 0xb2, 0xb2, 0xb3, 0xb6, 0xb5, | ||
2345 | 0xb3, 0xb3, 0xb4, 0xb4, 0xb5, 0xb6, 0xb6, 0xb7, | ||
2346 | 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, | ||
2347 | 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, | ||
2348 | 0xb8, 0xb8, 0xb9, 0xba, 0xba, 0xbb, 0xbc, 0xbc, | ||
2349 | 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, | ||
2350 | 0xbb, 0xbc, 0xbc, 0xbd, 0xbd, 0xbe, 0xbe, 0xbe, | ||
2351 | 0xc1, 0xbf, 0xbd, 0xbd, 0xbf, 0xbf, 0xbd, 0xba, | ||
2352 | 0xc5, 0xc0, 0xb9, 0x8b, 0x61, 0x62, 0x6d, 0x77, | ||
2353 | 0x7f, 0x6d, 0x62, 0x68, 0x71, 0x72, 0x73, 0x77, | ||
2354 | 0x78, 0x7e, 0x85, 0x88, 0x83, 0x74, 0x62, 0x55, | ||
2355 | 0x6e, 0x6d, 0x70, 0x77, 0x7c, 0x79, 0x6e, 0x63, | ||
2356 | 0x59, 0x50, 0x4d, 0x55, 0x5c, 0x59, 0x56, 0x56, | ||
2357 | 0x60, 0x66, 0x6a, 0x64, 0x54, 0x45, 0x3d, 0x3b, | ||
2358 | 0x49, 0x46, 0x5e, 0x5a, 0x64, 0x6b, 0x7c, 0x62, | ||
2359 | 0x7a, 0x71, 0x66, 0x63, 0x95, 0x9c, 0x6a, 0x7b, | ||
2360 | 0x96, 0x95, 0x9b, 0x81, 0x76, 0xb0, 0xe2, 0xb7, | ||
2361 | 0xb4, 0xbc, 0xba, 0xb4, 0xb6, 0xba, 0xb6, 0xb2, | ||
2362 | 0xb3, 0xd2, 0xc4, 0x84, 0x6e, 0x72, 0xb2, 0xe5, | ||
2363 | 0xe7, 0xda, 0xc3, 0xcf, 0xca, 0xcb, 0xbe, 0xba, | ||
2364 | 0xc0, 0xc7, 0xbf, 0xc9, 0xcc, 0xc7, 0xd0, 0xc9, | ||
2365 | 0xc3, 0xc2, 0xc4, 0xc8, 0xcd, 0xcd, 0xc9, 0xc5, | ||
2366 | 0xc9, 0xc8, 0xc6, 0xc6, 0xc6, 0xc8, 0xca, 0xcb, | ||
2367 | 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, | ||
2368 | 0xce, 0xce, 0xcb, 0xc3, 0xbb, 0xba, 0xc1, 0xc8, | ||
2369 | 0xba, 0xa7, 0xa8, 0xc2, 0xd4, 0xb2, 0x14, 0x00, | ||
2370 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
2371 | 0xb6, 0xa4, 0xa6, 0xb5, 0xb6, 0xb2, 0xb5, 0xb8, | ||
2372 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
2373 | 0xb9, 0xac, 0xb4, 0xb6, 0xa9, 0xb2, 0xc5, 0xc0, | ||
2374 | 0xb8, 0xb7, 0xb6, 0xb4, 0xb2, 0xb3, 0xb5, 0xb8, | ||
2375 | 0xba, 0xad, 0xb2, 0xab, 0xaf, 0xb7, 0xae, 0xbb, | ||
2376 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
2377 | 0xb1, 0xb3, 0xb2, 0xae, 0xae, 0xb4, 0xb8, 0xb9, | ||
2378 | 0x9e, 0xab, 0xb7, 0xb8, 0xb6, 0xbb, 0xbd, 0xb7, | ||
2379 | 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, | ||
2380 | 0xbb, 0xbc, 0xbc, 0xbc, 0xb9, 0xb5, 0xb1, 0xae, | ||
2381 | 0x9d, 0xba, 0xc0, 0xb5, 0xb8, 0xbc, 0xb7, 0xb6, | ||
2382 | 0xbb, 0xbb, 0xbc, 0xbc, 0xbd, 0xbe, 0xbe, 0xbf, | ||
2383 | 0xbe, 0xbc, 0xbd, 0xb6, 0xac, 0xb4, 0xc0, 0xbf, | ||
2384 | 0xbd, 0xbc, 0xbc, 0xbb, 0xba, 0xba, 0xb9, 0xb9, | ||
2385 | 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, | ||
2386 | 0xb5, 0xb5, 0xb1, 0xbe, 0xc2, 0xae, 0xaa, 0xbb, | ||
2387 | 0xc1, 0xbf, 0xbd, 0xb9, 0xb7, 0xb5, 0xb3, 0xb3, | ||
2388 | 0xb1, 0xa8, 0xa7, 0xaf, 0xb3, 0xb3, 0xb5, 0xb7, | ||
2389 | 0xb4, 0xb5, 0xb5, 0xb6, 0xb7, 0xb7, 0xb8, 0xb8, | ||
2390 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
2391 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
2392 | 0xb9, 0xb9, 0xba, 0xba, 0xbb, 0xbc, 0xbc, 0xbd, | ||
2393 | 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, | ||
2394 | 0xbd, 0xbd, 0xbd, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2395 | 0xc3, 0xc1, 0xbe, 0xbd, 0xbd, 0xbe, 0xbe, 0xbe, | ||
2396 | 0xb8, 0xbd, 0xb7, 0x89, 0x52, 0x46, 0x58, 0x68, | ||
2397 | 0x6d, 0x6b, 0x6c, 0x73, 0x7f, 0x86, 0x7f, 0x73, | ||
2398 | 0x77, 0x7b, 0x7e, 0x7e, 0x7a, 0x76, 0x74, 0x73, | ||
2399 | 0x6e, 0x63, 0x5a, 0x5e, 0x69, 0x6a, 0x5e, 0x50, | ||
2400 | 0x48, 0x4b, 0x55, 0x61, 0x61, 0x58, 0x55, 0x59, | ||
2401 | 0x56, 0x53, 0x4e, 0x49, 0x46, 0x47, 0x4c, 0x50, | ||
2402 | 0x41, 0x3e, 0x4c, 0x57, 0x7c, 0x71, 0x6a, 0x5f, | ||
2403 | 0x79, 0x7b, 0x64, 0x73, 0xab, 0xa3, 0x7c, 0x8d, | ||
2404 | 0x91, 0x9a, 0x90, 0xa3, 0x90, 0x6f, 0xc8, 0xd2, | ||
2405 | 0xa8, 0xba, 0xb7, 0xb2, 0xbe, 0xba, 0xb6, 0xc7, | ||
2406 | 0xcb, 0xc5, 0x95, 0x71, 0x7e, 0x58, 0x38, 0x29, | ||
2407 | 0x62, 0x96, 0xb9, 0xef, 0xeb, 0xd9, 0xd1, 0xc5, | ||
2408 | 0xcc, 0xc3, 0xcc, 0xc5, 0xc6, 0xce, 0xc6, 0xcd, | ||
2409 | 0xcc, 0xcb, 0xca, 0xc6, 0xc3, 0xc3, 0xc7, 0xca, | ||
2410 | 0xc7, 0xc7, 0xc6, 0xc6, 0xc7, 0xca, 0xcc, 0xce, | ||
2411 | 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, | ||
2412 | 0xc5, 0xce, 0xd3, 0xc9, 0xb8, 0xb2, 0xbc, 0xc9, | ||
2413 | 0xc6, 0xba, 0xad, 0xbc, 0xd8, 0xba, 0x18, 0x06, | ||
2414 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
2415 | 0xb4, 0xa4, 0xa9, 0xb9, 0xb8, 0xb3, 0xb7, 0xba, | ||
2416 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
2417 | 0xba, 0xbb, 0xbb, 0xbd, 0xc0, 0xbe, 0xb8, 0xb6, | ||
2418 | 0xb3, 0xba, 0xc1, 0xbf, 0xb7, 0xb2, 0xb5, 0xb9, | ||
2419 | 0xba, 0xb1, 0xb6, 0xa7, 0xa7, 0xb8, 0xb2, 0xb4, | ||
2420 | 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, | ||
2421 | 0xb1, 0xbc, 0xbd, 0xb1, 0xaf, 0xba, 0xbb, 0xb1, | ||
2422 | 0x9e, 0xb2, 0xbd, 0xb9, 0xb8, 0xbd, 0xbd, 0xba, | ||
2423 | 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, | ||
2424 | 0xc0, 0xc0, 0xc0, 0xbd, 0xb9, 0xb4, 0xae, 0xab, | ||
2425 | 0xae, 0xc6, 0xc4, 0xb3, 0xb7, 0xc0, 0xbb, 0xb5, | ||
2426 | 0xbb, 0xbc, 0xbc, 0xbd, 0xbe, 0xbe, 0xbf, 0xbf, | ||
2427 | 0xbe, 0xbd, 0xbd, 0xb4, 0xad, 0xb8, 0xc4, 0xbe, | ||
2428 | 0xbd, 0xbd, 0xbc, 0xbc, 0xbb, 0xba, 0xba, 0xb9, | ||
2429 | 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, | ||
2430 | 0xba, 0xc3, 0xbd, 0xbc, 0xc0, 0xa6, 0xa0, 0xcf, | ||
2431 | 0xc3, 0xc1, 0xbd, 0xb8, 0xb3, 0xb0, 0xad, 0xac, | ||
2432 | 0xb1, 0xaa, 0xa6, 0xac, 0xb3, 0xb3, 0xb3, 0xba, | ||
2433 | 0xb6, 0xb6, 0xb7, 0xb7, 0xb8, 0xb9, 0xb9, 0xba, | ||
2434 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
2435 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
2436 | 0xb9, 0xba, 0xba, 0xbb, 0xbc, 0xbc, 0xbd, 0xbd, | ||
2437 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2438 | 0xbf, 0xbf, 0xbf, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2439 | 0xc3, 0xc2, 0xc0, 0xbe, 0xbd, 0xbd, 0xbe, 0xc0, | ||
2440 | 0xbb, 0xb9, 0xa8, 0x81, 0x55, 0x4e, 0x69, 0x78, | ||
2441 | 0x79, 0x73, 0x6f, 0x72, 0x78, 0x78, 0x71, 0x69, | ||
2442 | 0x76, 0x76, 0x75, 0x71, 0x6c, 0x68, 0x68, 0x69, | ||
2443 | 0x6e, 0x6f, 0x6b, 0x5e, 0x4d, 0x43, 0x43, 0x48, | ||
2444 | 0x42, 0x47, 0x57, 0x68, 0x6a, 0x5c, 0x50, 0x4c, | ||
2445 | 0x61, 0x54, 0x49, 0x48, 0x50, 0x51, 0x48, 0x3d, | ||
2446 | 0x44, 0x40, 0x50, 0x56, 0x74, 0x71, 0x74, 0x66, | ||
2447 | 0x81, 0x91, 0x53, 0x69, 0xa6, 0x91, 0x89, 0x95, | ||
2448 | 0x9e, 0x9b, 0x8a, 0xa0, 0xa8, 0x8a, 0x73, 0xc1, | ||
2449 | 0xbd, 0xc2, 0xc5, 0xbf, 0xb2, 0xa8, 0xb3, 0xc9, | ||
2450 | 0xa5, 0x82, 0x57, 0x5d, 0x98, 0x78, 0x46, 0x39, | ||
2451 | 0x1c, 0x29, 0x35, 0x35, 0x52, 0xa7, 0xbc, 0xca, | ||
2452 | 0xf6, 0xe3, 0xde, 0xce, 0xcc, 0xd3, 0xc8, 0xcd, | ||
2453 | 0xca, 0xcb, 0xca, 0xc7, 0xc4, 0xc4, 0xc7, 0xcb, | ||
2454 | 0xc8, 0xc7, 0xc7, 0xc7, 0xc8, 0xca, 0xcd, 0xcf, | ||
2455 | 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, | ||
2456 | 0xcd, 0xc9, 0xc6, 0xc7, 0xca, 0xc7, 0xbf, 0xb8, | ||
2457 | 0xc0, 0xd7, 0xc1, 0xb9, 0xe1, 0xc8, 0x15, 0x00, | ||
2458 | 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, | ||
2459 | 0xb2, 0xa5, 0xac, 0xbc, 0xba, 0xb4, 0xb8, 0xbd, | ||
2460 | 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, | ||
2461 | 0xba, 0xc1, 0xb9, 0xb5, 0xbe, 0xba, 0xb1, 0xb7, | ||
2462 | 0xb4, 0xb7, 0xbb, 0xbd, 0xbb, 0xb8, 0xb5, 0xb3, | ||
2463 | 0xb1, 0xb8, 0xbc, 0xa6, 0x9f, 0xb9, 0xc4, 0xbd, | ||
2464 | 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, | ||
2465 | 0xb9, 0xbe, 0xba, 0xb2, 0xb6, 0xbd, 0xb1, 0x9d, | ||
2466 | 0xa6, 0xb9, 0xbd, 0xb8, 0xba, 0xbd, 0xbc, 0xbc, | ||
2467 | 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, | ||
2468 | 0xc1, 0xbf, 0xbb, 0xb8, 0xb6, 0xb7, 0xb8, 0xba, | ||
2469 | 0xc7, 0xbe, 0xbf, 0xbe, 0xb5, 0xb9, 0xbf, 0xb7, | ||
2470 | 0xbc, 0xbc, 0xbd, 0xbe, 0xbe, 0xbf, 0xc0, 0xc0, | ||
2471 | 0xbe, 0xbe, 0xbd, 0xb3, 0xad, 0xbc, 0xc7, 0xbd, | ||
2472 | 0xbe, 0xbe, 0xbd, 0xbc, 0xbc, 0xbb, 0xba, 0xba, | ||
2473 | 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, | ||
2474 | 0xc0, 0xbc, 0xc5, 0xaf, 0x86, 0x74, 0x7a, 0x90, | ||
2475 | 0xaf, 0xb2, 0xb6, 0xb8, 0xb8, 0xb4, 0xaf, 0xac, | ||
2476 | 0xb1, 0xad, 0xa5, 0xa9, 0xb3, 0xb3, 0xb2, 0xbc, | ||
2477 | 0xb7, 0xb8, 0xb8, 0xb9, 0xba, 0xba, 0xbb, 0xbb, | ||
2478 | 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, | ||
2479 | 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, | ||
2480 | 0xba, 0xba, 0xbb, 0xbc, 0xbc, 0xbd, 0xbe, 0xbe, | ||
2481 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2482 | 0xc1, 0xc0, 0xc0, 0xbf, 0xbf, 0xbe, 0xbe, 0xbe, | ||
2483 | 0xc0, 0xc2, 0xc4, 0xc2, 0xbf, 0xbd, 0xbe, 0xc0, | ||
2484 | 0xb6, 0xad, 0x96, 0x81, 0x66, 0x5e, 0x71, 0x70, | ||
2485 | 0x72, 0x6c, 0x78, 0x93, 0x96, 0x81, 0x73, 0x77, | ||
2486 | 0x91, 0x87, 0x79, 0x6f, 0x6c, 0x70, 0x77, 0x7b, | ||
2487 | 0x8b, 0x6e, 0x4e, 0x42, 0x4c, 0x5c, 0x63, 0x62, | ||
2488 | 0x64, 0x5d, 0x60, 0x6f, 0x75, 0x63, 0x47, 0x33, | ||
2489 | 0x3a, 0x3d, 0x40, 0x3e, 0x3b, 0x39, 0x3c, 0x3f, | ||
2490 | 0x3c, 0x3b, 0x5e, 0x50, 0x46, 0x60, 0x85, 0x5f, | ||
2491 | 0x77, 0x99, 0x4a, 0x60, 0x9d, 0x7e, 0x7b, 0x79, | ||
2492 | 0xa8, 0x9f, 0x91, 0xa7, 0x92, 0xb9, 0x67, 0x87, | ||
2493 | 0xc5, 0xae, 0xb5, 0xbd, 0xaf, 0xb8, 0xc5, 0xb6, | ||
2494 | 0x8a, 0x61, 0x47, 0x4c, 0x8c, 0x85, 0x69, 0x7a, | ||
2495 | 0x5d, 0x3d, 0x2d, 0x3d, 0x2f, 0x25, 0x26, 0x4d, | ||
2496 | 0x74, 0xa1, 0xc8, 0xea, 0xe9, 0xd3, 0xd1, 0xc7, | ||
2497 | 0xd6, 0xd0, 0xc9, 0xc6, 0xc8, 0xca, 0xca, 0xc8, | ||
2498 | 0xcb, 0xca, 0xc8, 0xc8, 0xc8, 0xca, 0xcc, 0xce, | ||
2499 | 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, | ||
2500 | 0xd1, 0xc8, 0xc3, 0xca, 0xd5, 0xd5, 0xc6, 0xb5, | ||
2501 | 0xcc, 0xcc, 0xd4, 0xcf, 0xbc, 0x9f, 0x1a, 0x0e, | ||
2502 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
2503 | 0xb0, 0xa5, 0xaf, 0xbf, 0xbc, 0xb5, 0xb9, 0xbf, | ||
2504 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2505 | 0xb5, 0xbd, 0xbf, 0xbd, 0xbd, 0xb7, 0xb4, 0xb8, | ||
2506 | 0xba, 0xb8, 0xb7, 0xb9, 0xbd, 0xbe, 0xbb, 0xb8, | ||
2507 | 0xb9, 0xc0, 0xc0, 0xb1, 0x98, 0x9c, 0xbb, 0xc3, | ||
2508 | 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, | ||
2509 | 0xb0, 0xae, 0xaf, 0xb7, 0xbc, 0xb5, 0xa6, 0x9a, | ||
2510 | 0xb2, 0xbe, 0xbb, 0xb6, 0xbc, 0xbc, 0xb9, 0xbf, | ||
2511 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2512 | 0xbe, 0xbc, 0xba, 0xb9, 0xba, 0xbc, 0xc0, 0xc2, | ||
2513 | 0xc5, 0xba, 0xbd, 0xc0, 0xb6, 0xb6, 0xbd, 0xbb, | ||
2514 | 0xbd, 0xbd, 0xbe, 0xbe, 0xbf, 0xc0, 0xc0, 0xc1, | ||
2515 | 0xbe, 0xbe, 0xbd, 0xb2, 0xae, 0xbf, 0xc9, 0xbd, | ||
2516 | 0xbf, 0xbe, 0xbe, 0xbd, 0xbc, 0xbc, 0xbb, 0xbb, | ||
2517 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2518 | 0xbe, 0xc2, 0xd0, 0xb4, 0xa1, 0xb6, 0xb7, 0xad, | ||
2519 | 0xb0, 0xb3, 0xb7, 0xba, 0xbb, 0xb8, 0xb3, 0xb0, | ||
2520 | 0xb1, 0xae, 0xa5, 0xa7, 0xb4, 0xb2, 0xb1, 0xbe, | ||
2521 | 0xb8, 0xb9, 0xb9, 0xba, 0xbb, 0xbb, 0xbc, 0xbc, | ||
2522 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2523 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2524 | 0xbb, 0xbb, 0xbc, 0xbc, 0xbd, 0xbe, 0xbe, 0xbf, | ||
2525 | 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, | ||
2526 | 0xc2, 0xc2, 0xc1, 0xc0, 0xbf, 0xbe, 0xbe, 0xbd, | ||
2527 | 0xbc, 0xc1, 0xc7, 0xc7, 0xc2, 0xbe, 0xbd, 0xbe, | ||
2528 | 0xb2, 0xba, 0xb2, 0xa2, 0x7a, 0x63, 0x79, 0x7e, | ||
2529 | 0x8f, 0x7c, 0x75, 0x7b, 0x72, 0x60, 0x64, 0x79, | ||
2530 | 0x7f, 0x76, 0x6c, 0x6a, 0x6d, 0x70, 0x6d, 0x69, | ||
2531 | 0x5e, 0x70, 0x7c, 0x70, 0x54, 0x43, 0x48, 0x55, | ||
2532 | 0x42, 0x3a, 0x3e, 0x54, 0x64, 0x5f, 0x4c, 0x3d, | ||
2533 | 0x39, 0x43, 0x4a, 0x45, 0x3a, 0x38, 0x43, 0x51, | ||
2534 | 0x32, 0x36, 0x60, 0x52, 0x42, 0x5b, 0x7d, 0x50, | ||
2535 | 0x76, 0xa1, 0x5e, 0x67, 0xa7, 0x91, 0x7d, 0x79, | ||
2536 | 0x8e, 0x88, 0x91, 0xab, 0x9d, 0xd5, 0xaf, 0x70, | ||
2537 | 0xae, 0xaa, 0xb0, 0xb3, 0xb6, 0xbe, 0xa9, 0x7a, | ||
2538 | 0x75, 0x71, 0x84, 0x6b, 0x84, 0x81, 0x61, 0x75, | ||
2539 | 0x99, 0xa5, 0x80, 0x7d, 0x69, 0x5c, 0x4d, 0x29, | ||
2540 | 0x33, 0x2c, 0x1e, 0x43, 0x7c, 0xb0, 0xdf, 0xe7, | ||
2541 | 0xde, 0xda, 0xd4, 0xcd, 0xc9, 0xca, 0xcd, 0xd0, | ||
2542 | 0xce, 0xcd, 0xcb, 0xc9, 0xc8, 0xc9, 0xca, 0xcb, | ||
2543 | 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, | ||
2544 | 0xcd, 0xcc, 0xcd, 0xd1, 0xd3, 0xd2, 0xcd, 0xc8, | ||
2545 | 0xc0, 0xbd, 0xec, 0xf4, 0xb8, 0x92, 0x1e, 0x04, | ||
2546 | 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, | ||
2547 | 0xaf, 0xa5, 0xb0, 0xc0, 0xbc, 0xb5, 0xba, 0xc0, | ||
2548 | 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, | ||
2549 | 0xb6, 0xb6, 0xbf, 0xc2, 0xba, 0xba, 0xbe, 0xbb, | ||
2550 | 0xc0, 0xbe, 0xbc, 0xbb, 0xbc, 0xbf, 0xc3, 0xc5, | ||
2551 | 0xbf, 0xb5, 0xac, 0xaa, 0x7a, 0x57, 0x7f, 0xa0, | ||
2552 | 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, | ||
2553 | 0x9d, 0x9a, 0xa7, 0xbd, 0xbe, 0xaa, 0xa1, 0xa8, | ||
2554 | 0xba, 0xc1, 0xb9, 0xb5, 0xbe, 0xbb, 0xb7, 0xc0, | ||
2555 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2556 | 0xba, 0xbc, 0xbf, 0xc1, 0xc1, 0xc0, 0xbe, 0xbc, | ||
2557 | 0xb2, 0xc2, 0xbf, 0xb5, 0xb8, 0xb9, 0xb7, 0xbc, | ||
2558 | 0xbd, 0xbd, 0xbe, 0xbf, 0xbf, 0xc0, 0xc1, 0xc1, | ||
2559 | 0xbd, 0xbf, 0xbc, 0xb1, 0xae, 0xc1, 0xca, 0xbc, | ||
2560 | 0xbf, 0xbf, 0xbe, 0xbd, 0xbd, 0xbc, 0xbb, 0xbb, | ||
2561 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2562 | 0xb6, 0xd0, 0x9b, 0x58, 0x90, 0xc8, 0xb5, 0xc3, | ||
2563 | 0xcf, 0xcb, 0xc6, 0xbf, 0xb7, 0xb2, 0xad, 0xab, | ||
2564 | 0xb1, 0xaf, 0xa4, 0xa6, 0xb4, 0xb2, 0xb1, 0xbf, | ||
2565 | 0xb9, 0xb9, 0xba, 0xbb, 0xbb, 0xbc, 0xbd, 0xbd, | ||
2566 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2567 | 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, | ||
2568 | 0xbb, 0xbb, 0xbc, 0xbd, 0xbd, 0xbe, 0xbf, 0xbf, | ||
2569 | 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, | ||
2570 | 0xc3, 0xc2, 0xc1, 0xc0, 0xbf, 0xbe, 0xbe, 0xbd, | ||
2571 | 0xb9, 0xc1, 0xc9, 0xca, 0xc4, 0xbe, 0xbc, 0xbc, | ||
2572 | 0xbb, 0xbb, 0xaa, 0x9e, 0x7e, 0x6b, 0x83, 0x85, | ||
2573 | 0x83, 0x76, 0x68, 0x5f, 0x59, 0x60, 0x78, 0x92, | ||
2574 | 0x81, 0x77, 0x6d, 0x6d, 0x71, 0x6f, 0x64, 0x58, | ||
2575 | 0x84, 0x7f, 0x72, 0x5f, 0x50, 0x4d, 0x57, 0x62, | ||
2576 | 0x67, 0x60, 0x60, 0x67, 0x66, 0x5a, 0x4c, 0x47, | ||
2577 | 0x4b, 0x45, 0x40, 0x45, 0x4d, 0x4e, 0x44, 0x39, | ||
2578 | 0x36, 0x3c, 0x5e, 0x63, 0x6f, 0x6c, 0x6d, 0x4c, | ||
2579 | 0x78, 0x9a, 0x5e, 0x53, 0x98, 0x9c, 0x82, 0x8d, | ||
2580 | 0x9d, 0x95, 0xb1, 0x8c, 0xa7, 0xb9, 0xbf, 0x88, | ||
2581 | 0x6b, 0xa7, 0xb9, 0xaf, 0xbd, 0xb5, 0x84, 0x5f, | ||
2582 | 0x60, 0x6c, 0x91, 0x64, 0x79, 0x93, 0x74, 0x7a, | ||
2583 | 0x79, 0x81, 0x91, 0x96, 0x86, 0x8a, 0x74, 0x7c, | ||
2584 | 0x4d, 0x48, 0x4d, 0x3b, 0x2f, 0x33, 0x32, 0x42, | ||
2585 | 0x9c, 0xba, 0xdf, 0xf2, 0xf0, 0xe4, 0xdd, 0xdc, | ||
2586 | 0xd0, 0xcf, 0xcc, 0xc9, 0xc8, 0xc8, 0xc9, 0xca, | ||
2587 | 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, | ||
2588 | 0xcf, 0xd0, 0xd0, 0xd1, 0xd1, 0xd2, 0xd3, 0xd4, | ||
2589 | 0xc9, 0xdb, 0xd2, 0xa6, 0x94, 0x9b, 0x24, 0x09, | ||
2590 | 0xc3, 0xb9, 0xc0, 0xb3, 0xb2, 0xbc, 0xb5, 0xc1, | ||
2591 | 0xa9, 0xa0, 0xb8, 0xb6, 0xbf, 0xc0, 0xc0, 0xb9, | ||
2592 | 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, | ||
2593 | 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, | ||
2594 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2595 | 0xb5, 0xbe, 0xa8, 0x6c, 0x5f, 0xa5, 0xcc, 0xa6, | ||
2596 | 0xbb, 0xbb, 0xba, 0xb9, 0xb9, 0xb8, 0xb7, 0xb7, | ||
2597 | 0x92, 0x81, 0x91, 0xba, 0xc1, 0xa7, 0xa2, 0xb8, | ||
2598 | 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, | ||
2599 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2600 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2601 | 0xc0, 0xbf, 0xbd, 0xbc, 0xbc, 0xbd, 0xbf, 0xc0, | ||
2602 | 0xbd, 0xbd, 0xbe, 0xbf, 0xbf, 0xc0, 0xc1, 0xc1, | ||
2603 | 0xc5, 0xc2, 0xb9, 0xbb, 0xaf, 0xca, 0xc2, 0xc8, | ||
2604 | 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, | ||
2605 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2606 | 0xbd, 0xc0, 0xc6, 0xcd, 0xcf, 0xc7, 0xb7, 0xaa, | ||
2607 | 0x86, 0xb9, 0xcc, 0xbb, 0xb7, 0xba, 0xb7, 0xb6, | ||
2608 | 0xbb, 0xaf, 0xa6, 0xa7, 0xa7, 0xb2, 0xb9, 0xb7, | ||
2609 | 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, | ||
2610 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2611 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2612 | 0xbe, 0xbe, 0xbf, 0xc0, 0xc0, 0xc1, 0xc2, 0xc2, | ||
2613 | 0xc2, 0xc2, 0xc3, 0xc4, 0xc4, 0xc5, 0xc6, 0xc6, | ||
2614 | 0xc1, 0xc2, 0xc3, 0xc3, 0xc1, 0xbf, 0xbc, 0xbb, | ||
2615 | 0xbb, 0xbe, 0xc6, 0xc6, 0xc2, 0xc5, 0xbf, 0xab, | ||
2616 | 0xb5, 0xb6, 0xb6, 0xa4, 0x85, 0x75, 0x76, 0x73, | ||
2617 | 0x5a, 0x5f, 0x65, 0x6a, 0x6c, 0x6c, 0x6d, 0x6e, | ||
2618 | 0x64, 0x5d, 0x65, 0x74, 0x6c, 0x56, 0x5b, 0x75, | ||
2619 | 0x7b, 0x68, 0x5d, 0x65, 0x6a, 0x64, 0x5d, 0x5c, | ||
2620 | 0x50, 0x69, 0x7f, 0x7c, 0x64, 0x4e, 0x4b, 0x51, | ||
2621 | 0x47, 0x4b, 0x51, 0x59, 0x5d, 0x58, 0x4c, 0x43, | ||
2622 | 0x3f, 0x44, 0x5d, 0x66, 0x7f, 0x76, 0x7d, 0x7b, | ||
2623 | 0x6f, 0x85, 0x5c, 0x65, 0x94, 0x76, 0x67, 0x94, | ||
2624 | 0xa3, 0x9d, 0xa1, 0xa2, 0x9c, 0xb1, 0xa9, 0xbd, | ||
2625 | 0x86, 0x89, 0xc3, 0xb0, 0x8e, 0x8c, 0x65, 0x5e, | ||
2626 | 0x88, 0x80, 0x85, 0x76, 0x67, 0x89, 0x62, 0x5b, | ||
2627 | 0x8f, 0x7e, 0x78, 0x85, 0x72, 0x70, 0x95, 0x94, | ||
2628 | 0x9b, 0x9a, 0x7c, 0x70, 0x5d, 0x2f, 0x52, 0x2f, | ||
2629 | 0x1b, 0x27, 0x35, 0x5e, 0xa1, 0xba, 0xe6, 0xfa, | ||
2630 | 0xee, 0xe0, 0xd7, 0xcb, 0xc9, 0xcd, 0xc7, 0xc8, | ||
2631 | 0xd3, 0xce, 0xcf, 0xd6, 0xd4, 0xcb, 0xc6, 0xc9, | ||
2632 | 0xd8, 0xd6, 0xd7, 0xd7, 0xcc, 0xcb, 0xd7, 0xd8, | ||
2633 | 0xf4, 0xe6, 0x96, 0x63, 0x51, 0x52, 0x2f, 0x0a, | ||
2634 | 0xbf, 0xb3, 0xbd, 0xbc, 0xbf, 0xc3, 0xb8, 0xc1, | ||
2635 | 0xad, 0xa4, 0xbd, 0xba, 0xc2, 0xc1, 0xc0, 0xb9, | ||
2636 | 0xbf, 0xbf, 0xbe, 0xbe, 0xbd, 0xbc, 0xbc, 0xbb, | ||
2637 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2638 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2639 | 0xd0, 0xc7, 0x8a, 0x64, 0x8c, 0xb6, 0xbe, 0xc9, | ||
2640 | 0xbc, 0xbb, 0xbb, 0xba, 0xb9, 0xb9, 0xb8, 0xb8, | ||
2641 | 0xae, 0x9b, 0x95, 0xa1, 0xa4, 0x9c, 0xa5, 0xba, | ||
2642 | 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, | ||
2643 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2644 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2645 | 0xc0, 0xbe, 0xbd, 0xbb, 0xbb, 0xbd, 0xbe, 0xc0, | ||
2646 | 0xbe, 0xbe, 0xbf, 0xbf, 0xc0, 0xc1, 0xc1, 0xc2, | ||
2647 | 0xcb, 0xc5, 0xd5, 0xb5, 0x9e, 0xcf, 0xbe, 0xcc, | ||
2648 | 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, | ||
2649 | 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, | ||
2650 | 0xc2, 0xc2, 0xc3, 0xc6, 0xc9, 0xc5, 0xbd, 0xb5, | ||
2651 | 0x9f, 0xc0, 0xc9, 0xbd, 0xbd, 0xc0, 0xb8, 0xb3, | ||
2652 | 0xb2, 0xb7, 0xa1, 0xb0, 0xa9, 0xb6, 0xb2, 0xb5, | ||
2653 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2654 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2655 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2656 | 0xbe, 0xbf, 0xbf, 0xc0, 0xc1, 0xc1, 0xc2, 0xc2, | ||
2657 | 0xc2, 0xc3, 0xc3, 0xc4, 0xc5, 0xc5, 0xc6, 0xc6, | ||
2658 | 0xc3, 0xc4, 0xc4, 0xc4, 0xc2, 0xbf, 0xbc, 0xba, | ||
2659 | 0xb6, 0xb8, 0xc0, 0xc3, 0xc3, 0xca, 0xc8, 0xb7, | ||
2660 | 0xac, 0xb5, 0xb0, 0xb0, 0x8a, 0x64, 0x6c, 0x68, | ||
2661 | 0x66, 0x6e, 0x75, 0x77, 0x74, 0x71, 0x71, 0x72, | ||
2662 | 0x6f, 0x6f, 0x65, 0x5b, 0x67, 0x7f, 0x85, 0x7a, | ||
2663 | 0x71, 0x72, 0x79, 0x82, 0x81, 0x74, 0x64, 0x5c, | ||
2664 | 0x58, 0x64, 0x6c, 0x63, 0x52, 0x49, 0x51, 0x5d, | ||
2665 | 0x55, 0x58, 0x5b, 0x59, 0x54, 0x4f, 0x4c, 0x4b, | ||
2666 | 0x3c, 0x3d, 0x5b, 0x63, 0x74, 0x6d, 0x7a, 0x73, | ||
2667 | 0x61, 0x7b, 0x58, 0x62, 0x93, 0x82, 0x7a, 0xa1, | ||
2668 | 0x9c, 0x90, 0x96, 0xa9, 0xad, 0xbb, 0xa8, 0xb4, | ||
2669 | 0xab, 0x77, 0xa9, 0xcd, 0x72, 0x3c, 0x60, 0x6d, | ||
2670 | 0x7e, 0x82, 0x78, 0x7c, 0x6b, 0x89, 0x85, 0x5c, | ||
2671 | 0x85, 0x6f, 0x71, 0x87, 0x90, 0x83, 0x7a, 0x86, | ||
2672 | 0x79, 0x86, 0x8c, 0x98, 0xa6, 0x83, 0x81, 0x64, | ||
2673 | 0x62, 0x3b, 0x3e, 0x2d, 0x26, 0x24, 0x3e, 0x5b, | ||
2674 | 0xaa, 0xce, 0xdb, 0xeb, 0xe4, 0xd3, 0xdb, 0xcd, | ||
2675 | 0xd2, 0xd8, 0xdd, 0xdb, 0xd6, 0xd0, 0xcb, 0xc7, | ||
2676 | 0xda, 0xd2, 0xcd, 0xd3, 0xdf, 0xd0, 0xd0, 0xfd, | ||
2677 | 0xe9, 0xab, 0x8e, 0x8f, 0x90, 0x7d, 0x1f, 0x04, | ||
2678 | 0xc2, 0xc4, 0xc9, 0xbb, 0xbc, 0xcb, 0xc8, 0xc7, | ||
2679 | 0xb1, 0xa7, 0xbc, 0xb6, 0xbc, 0xbe, 0xc2, 0xbf, | ||
2680 | 0xc2, 0xc1, 0xc1, 0xc0, 0xbf, 0xbe, 0xbd, 0xbd, | ||
2681 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2682 | 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, | ||
2683 | 0xbe, 0xc4, 0xc9, 0xd2, 0xd3, 0xc2, 0xb6, 0xbb, | ||
2684 | 0xbd, 0xbc, 0xbc, 0xbb, 0xba, 0xba, 0xb9, 0xb9, | ||
2685 | 0xc3, 0xc2, 0xa9, 0x87, 0x87, 0xa8, 0xc0, 0xc1, | ||
2686 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2687 | 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, | ||
2688 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2689 | 0xbf, 0xbe, 0xbc, 0xbb, 0xbb, 0xbc, 0xbe, 0xbf, | ||
2690 | 0xbf, 0xbf, 0xc0, 0xc0, 0xc1, 0xc2, 0xc2, 0xc3, | ||
2691 | 0xb4, 0xbf, 0xb3, 0xc2, 0xaf, 0xb3, 0xc9, 0xbd, | ||
2692 | 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, | ||
2693 | 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, | ||
2694 | 0xc7, 0xc3, 0xc0, 0xc0, 0xc2, 0xc4, 0xc4, 0xc3, | ||
2695 | 0xc5, 0xce, 0xca, 0xc1, 0xc2, 0xbf, 0xb3, 0xac, | ||
2696 | 0xb7, 0xc5, 0x98, 0xa9, 0xa0, 0xb2, 0xb1, 0xc0, | ||
2697 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2698 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2699 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2700 | 0xbf, 0xbf, 0xc0, 0xc1, 0xc1, 0xc2, 0xc3, 0xc3, | ||
2701 | 0xc3, 0xc3, 0xc4, 0xc5, 0xc5, 0xc6, 0xc7, 0xc7, | ||
2702 | 0xc7, 0xc7, 0xc7, 0xc5, 0xc2, 0xbf, 0xbb, 0xb9, | ||
2703 | 0xc1, 0xbe, 0xc2, 0xc3, 0xc0, 0xc6, 0xc5, 0xb8, | ||
2704 | 0xab, 0xb6, 0xad, 0xb6, 0x8d, 0x5a, 0x6a, 0x69, | ||
2705 | 0x63, 0x6f, 0x7c, 0x7f, 0x79, 0x74, 0x77, 0x7c, | ||
2706 | 0x64, 0x62, 0x64, 0x6b, 0x72, 0x74, 0x6f, 0x6a, | ||
2707 | 0x66, 0x68, 0x64, 0x5a, 0x55, 0x58, 0x5c, 0x5d, | ||
2708 | 0x56, 0x62, 0x70, 0x71, 0x69, 0x60, 0x5d, 0x5f, | ||
2709 | 0x5e, 0x5f, 0x5c, 0x53, 0x48, 0x43, 0x47, 0x4d, | ||
2710 | 0x39, 0x39, 0x5c, 0x61, 0x65, 0x63, 0x77, 0x6b, | ||
2711 | 0x72, 0x8b, 0x67, 0x65, 0x89, 0x7d, 0x76, 0x8e, | ||
2712 | 0x9d, 0x99, 0x98, 0x9f, 0xa2, 0xb6, 0xa5, 0xa3, | ||
2713 | 0xc7, 0xb7, 0x81, 0xcf, 0xc0, 0x51, 0x7a, 0x98, | ||
2714 | 0x8e, 0x84, 0x6f, 0x75, 0x5e, 0x77, 0x8d, 0x5e, | ||
2715 | 0x88, 0x7c, 0x8c, 0x8d, 0x85, 0x77, 0x66, 0x80, | ||
2716 | 0x96, 0x8b, 0x7e, 0x79, 0x8a, 0x7a, 0x85, 0x9f, | ||
2717 | 0x9e, 0x7f, 0x84, 0x67, 0x4f, 0x35, 0x2e, 0x30, | ||
2718 | 0x28, 0x21, 0x4f, 0x73, 0xab, 0xe1, 0xdf, 0xf1, | ||
2719 | 0xeb, 0xeb, 0xe3, 0xda, 0xda, 0xde, 0xd5, 0xc4, | ||
2720 | 0xb8, 0xc2, 0xe5, 0xe3, 0xc6, 0xd4, 0xe3, 0xcb, | ||
2721 | 0x80, 0x7e, 0x8e, 0x5f, 0x41, 0x62, 0x25, 0x04, | ||
2722 | 0xd8, 0xcc, 0xc9, 0xcb, 0xcd, 0xca, 0xc4, 0xc5, | ||
2723 | 0xb4, 0xad, 0xc6, 0xbf, 0xc2, 0xbe, 0xbf, 0xba, | ||
2724 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2725 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2726 | 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, | ||
2727 | 0xc6, 0xaf, 0xbb, 0xc7, 0xb8, 0xbb, 0xc7, 0xbc, | ||
2728 | 0xbe, 0xbe, 0xbd, 0xbd, 0xbc, 0xbb, 0xbb, 0xba, | ||
2729 | 0xbb, 0xbb, 0xc0, 0xca, 0xcb, 0xc4, 0xc0, 0xc1, | ||
2730 | 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, | ||
2731 | 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, | ||
2732 | 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, | ||
2733 | 0xbf, 0xbe, 0xbc, 0xbb, 0xbb, 0xbc, 0xbe, 0xbf, | ||
2734 | 0xc0, 0xc1, 0xc1, 0xc2, 0xc3, 0xc3, 0xc4, 0xc4, | ||
2735 | 0xc3, 0xc1, 0xcd, 0xc2, 0xb4, 0xc8, 0xcd, 0xd0, | ||
2736 | 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, | ||
2737 | 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, | ||
2738 | 0xc6, 0xc3, 0xc0, 0xbf, 0xc2, 0xc5, 0xc8, 0xca, | ||
2739 | 0xc8, 0xc5, 0xc0, 0xc0, 0xc5, 0xc5, 0xc1, 0xc0, | ||
2740 | 0xab, 0xc3, 0xa1, 0xad, 0xb2, 0xb0, 0xac, 0xb7, | ||
2741 | 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, | ||
2742 | 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, | ||
2743 | 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, | ||
2744 | 0xc0, 0xc0, 0xc1, 0xc1, 0xc2, 0xc3, 0xc3, 0xc4, | ||
2745 | 0xc4, 0xc4, 0xc5, 0xc5, 0xc6, 0xc7, 0xc7, 0xc8, | ||
2746 | 0xc9, 0xc9, 0xc9, 0xc7, 0xc4, 0xc0, 0xbc, 0xb9, | ||
2747 | 0xbc, 0xb7, 0xbb, 0xc1, 0xc2, 0xc9, 0xcd, 0xc5, | ||
2748 | 0xc0, 0xb3, 0xa4, 0xa7, 0x90, 0x71, 0x70, 0x65, | ||
2749 | 0x67, 0x74, 0x7f, 0x7c, 0x6e, 0x64, 0x66, 0x6c, | ||
2750 | 0x60, 0x43, 0x44, 0x6d, 0x85, 0x6f, 0x50, 0x46, | ||
2751 | 0x48, 0x5b, 0x6b, 0x73, 0x7e, 0x89, 0x86, 0x7b, | ||
2752 | 0x71, 0x75, 0x79, 0x77, 0x6e, 0x63, 0x5a, 0x55, | ||
2753 | 0x5b, 0x58, 0x51, 0x49, 0x44, 0x41, 0x43, 0x44, | ||
2754 | 0x3b, 0x3e, 0x63, 0x62, 0x5d, 0x5c, 0x77, 0x69, | ||
2755 | 0x77, 0x8b, 0x6b, 0x65, 0x7f, 0x7c, 0x7c, 0x87, | ||
2756 | 0x8a, 0x93, 0x95, 0xa0, 0x9f, 0xb2, 0xab, 0xac, | ||
2757 | 0xc7, 0xaa, 0x51, 0x96, 0xdd, 0x96, 0x71, 0x5f, | ||
2758 | 0x6f, 0x71, 0x84, 0x87, 0x68, 0x6e, 0x7e, 0x72, | ||
2759 | 0x84, 0x77, 0x7f, 0x76, 0x6d, 0x81, 0x8d, 0x90, | ||
2760 | 0x77, 0x7c, 0x77, 0x76, 0x82, 0x7d, 0x78, 0x75, | ||
2761 | 0x6d, 0x87, 0x8e, 0x94, 0xa8, 0x8c, 0x74, 0x4d, | ||
2762 | 0x41, 0x44, 0x24, 0x34, 0x33, 0x2d, 0x68, 0x7e, | ||
2763 | 0xbf, 0xdb, 0xf7, 0xfb, 0xf1, 0xe7, 0xe2, 0xdf, | ||
2764 | 0xc8, 0xce, 0xd2, 0xdf, 0xd5, 0xe3, 0xe8, 0x96, | ||
2765 | 0x90, 0x72, 0x40, 0x43, 0x7b, 0x77, 0x14, 0x0f, | ||
2766 | 0xcc, 0xd3, 0xd6, 0xd7, 0xd2, 0xd2, 0xde, 0xe6, | ||
2767 | 0xbb, 0xb3, 0xc9, 0xbf, 0xbe, 0xbb, 0xbf, 0xbd, | ||
2768 | 0xbc, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, | ||
2769 | 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, | ||
2770 | 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, | ||
2771 | 0xca, 0xc0, 0xb7, 0xbc, 0xc9, 0xcb, 0xc4, 0xc0, | ||
2772 | 0xc0, 0xbf, 0xbf, 0xbe, 0xbd, 0xbd, 0xbc, 0xbc, | ||
2773 | 0xbe, 0xb3, 0xb3, 0xbd, 0xbf, 0xb8, 0xbb, 0xc7, | ||
2774 | 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, | ||
2775 | 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, | ||
2776 | 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, | ||
2777 | 0xc1, 0xc0, 0xbe, 0xbd, 0xbd, 0xbe, 0xc0, 0xc1, | ||
2778 | 0xc2, 0xc2, 0xc3, 0xc3, 0xc4, 0xc5, 0xc5, 0xc6, | ||
2779 | 0xd0, 0xdc, 0xe5, 0xb5, 0xa7, 0xc6, 0xd1, 0xda, | ||
2780 | 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, | ||
2781 | 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, | ||
2782 | 0xc1, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc9, 0xcb, | ||
2783 | 0xc8, 0xc1, 0xc0, 0xc2, 0xc1, 0xc1, 0xc5, 0xc9, | ||
2784 | 0xa8, 0xba, 0xb0, 0xa7, 0xc0, 0xa9, 0xad, 0xb1, | ||
2785 | 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, | ||
2786 | 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, | ||
2787 | 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, | ||
2788 | 0xc0, 0xc1, 0xc1, 0xc2, 0xc3, 0xc3, 0xc4, 0xc4, | ||
2789 | 0xc4, 0xc5, 0xc5, 0xc6, 0xc7, 0xc7, 0xc8, 0xc8, | ||
2790 | 0xca, 0xca, 0xca, 0xc8, 0xc6, 0xc2, 0xbe, 0xbc, | ||
2791 | 0xbb, 0xb4, 0xb9, 0xc1, 0xc2, 0xc8, 0xcc, 0xc7, | ||
2792 | 0xb1, 0xb7, 0xca, 0xac, 0x77, 0x5f, 0x59, 0x68, | ||
2793 | 0x5b, 0x67, 0x72, 0x71, 0x66, 0x62, 0x68, 0x72, | ||
2794 | 0x63, 0x69, 0x74, 0x7e, 0x80, 0x7a, 0x79, 0x7c, | ||
2795 | 0x77, 0x75, 0x6a, 0x60, 0x65, 0x72, 0x70, 0x63, | ||
2796 | 0x67, 0x69, 0x6b, 0x6a, 0x64, 0x5c, 0x54, 0x4e, | ||
2797 | 0x57, 0x4e, 0x47, 0x49, 0x4f, 0x50, 0x47, 0x3e, | ||
2798 | 0x3e, 0x4c, 0x6f, 0x64, 0x5c, 0x5b, 0x76, 0x6e, | ||
2799 | 0x73, 0x7e, 0x63, 0x5f, 0x70, 0x72, 0x7a, 0x7d, | ||
2800 | 0x97, 0x99, 0x92, 0xa5, 0xa7, 0xb4, 0xb3, 0xb7, | ||
2801 | 0xb4, 0xa0, 0x5e, 0x52, 0xd0, 0xe9, 0x7a, 0x71, | ||
2802 | 0x86, 0x7b, 0x73, 0x6c, 0x71, 0x7b, 0x7b, 0x63, | ||
2803 | 0x5a, 0x73, 0x83, 0x89, 0x7c, 0x78, 0x7d, 0x69, | ||
2804 | 0x63, 0x8b, 0x8f, 0x87, 0x7a, 0x87, 0x93, 0x70, | ||
2805 | 0x6f, 0x86, 0x83, 0x78, 0x88, 0x85, 0x9b, 0x9a, | ||
2806 | 0xa1, 0x7d, 0x7b, 0x54, 0x43, 0x44, 0x20, 0x2a, | ||
2807 | 0x2a, 0x2b, 0x46, 0x82, 0xc4, 0xef, 0xff, 0xff, | ||
2808 | 0xf4, 0xd4, 0xe0, 0xdf, 0xf9, 0xe2, 0x8a, 0x9f, | ||
2809 | 0x94, 0x54, 0x69, 0x98, 0x8a, 0x75, 0x2d, 0x04, | ||
2810 | 0xe1, 0xde, 0xdb, 0xe7, 0xdb, 0xba, 0xaf, 0xab, | ||
2811 | 0xa2, 0xa6, 0xcc, 0xce, 0xd0, 0xc6, 0xc2, 0xbc, | ||
2812 | 0xbf, 0xc0, 0xc0, 0xc1, 0xc1, 0xc2, 0xc2, 0xc3, | ||
2813 | 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, | ||
2814 | 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, | ||
2815 | 0xc4, 0xc8, 0xc3, 0xc2, 0xc5, 0xb8, 0xb4, 0xc9, | ||
2816 | 0xc1, 0xc1, 0xc0, 0xc0, 0xbf, 0xbe, 0xbe, 0xbd, | ||
2817 | 0xbd, 0xc6, 0xc6, 0xbd, 0xbd, 0xc6, 0xc6, 0xbc, | ||
2818 | 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, | ||
2819 | 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, | ||
2820 | 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, | ||
2821 | 0xc4, 0xc2, 0xc0, 0xbf, 0xbf, 0xc0, 0xc2, 0xc4, | ||
2822 | 0xc3, 0xc4, 0xc4, 0xc5, 0xc6, 0xc6, 0xc7, 0xc7, | ||
2823 | 0xc1, 0x7f, 0x40, 0x44, 0x8e, 0xaa, 0xb8, 0xc2, | ||
2824 | 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, | ||
2825 | 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, | ||
2826 | 0xc0, 0xc4, 0xc9, 0xcb, 0xc9, 0xc8, 0xc8, 0xc9, | ||
2827 | 0xd0, 0xca, 0xca, 0xc7, 0xbb, 0xb9, 0xbf, 0xc1, | ||
2828 | 0xb4, 0xb2, 0xba, 0x9d, 0xb8, 0xa4, 0xb0, 0xb7, | ||
2829 | 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, | ||
2830 | 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, | ||
2831 | 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, | ||
2832 | 0xc1, 0xc1, 0xc2, 0xc3, 0xc3, 0xc4, 0xc5, 0xc5, | ||
2833 | 0xc5, 0xc5, 0xc6, 0xc7, 0xc7, 0xc8, 0xc9, 0xc9, | ||
2834 | 0xc8, 0xc9, 0xc9, 0xc9, 0xc8, 0xc5, 0xc2, 0xc0, | ||
2835 | 0xbf, 0xb6, 0xbb, 0xc4, 0xc3, 0xc1, 0xc2, 0xbc, | ||
2836 | 0xb2, 0xaa, 0xc6, 0xaf, 0x93, 0x8e, 0x71, 0x71, | ||
2837 | 0x6c, 0x71, 0x74, 0x6d, 0x62, 0x5f, 0x65, 0x6e, | ||
2838 | 0x76, 0x71, 0x69, 0x67, 0x6f, 0x78, 0x76, 0x6e, | ||
2839 | 0x6f, 0x6a, 0x65, 0x67, 0x72, 0x7a, 0x72, 0x65, | ||
2840 | 0x62, 0x64, 0x66, 0x63, 0x5d, 0x55, 0x4f, 0x4c, | ||
2841 | 0x56, 0x4d, 0x48, 0x50, 0x5d, 0x5f, 0x51, 0x42, | ||
2842 | 0x3e, 0x5d, 0x79, 0x61, 0x5f, 0x5a, 0x71, 0x74, | ||
2843 | 0x87, 0x83, 0x6d, 0x73, 0x7c, 0x7d, 0x8e, 0x90, | ||
2844 | 0x82, 0x96, 0x90, 0xa0, 0xa7, 0xb6, 0xa0, 0x7b, | ||
2845 | 0x69, 0x65, 0x7f, 0x70, 0x77, 0xcd, 0xcb, 0x62, | ||
2846 | 0x5e, 0x81, 0x8a, 0x84, 0x82, 0x78, 0x8d, 0x78, | ||
2847 | 0x70, 0x94, 0x89, 0x82, 0x7c, 0x69, 0x78, 0x88, | ||
2848 | 0x8f, 0x92, 0x7e, 0x81, 0x6c, 0x7b, 0x99, 0x8f, | ||
2849 | 0x83, 0x66, 0x7b, 0x7f, 0x8d, 0x8b, 0x86, 0x82, | ||
2850 | 0x6d, 0x97, 0x97, 0xa5, 0xa0, 0x89, 0x80, 0x52, | ||
2851 | 0x4b, 0x44, 0x39, 0x2a, 0x1d, 0x2a, 0x5a, 0x8b, | ||
2852 | 0xc4, 0xf5, 0xef, 0xff, 0xc2, 0x66, 0x86, 0x8a, | ||
2853 | 0x52, 0x67, 0x72, 0x4e, 0x57, 0x6e, 0x17, 0x04, | ||
2854 | 0xe8, 0xdd, 0xd8, 0xe7, 0xbf, 0x85, 0xa3, 0xdb, | ||
2855 | 0xd0, 0xcd, 0xea, 0xe1, 0xdd, 0xd5, 0xd6, 0xd4, | ||
2856 | 0xcb, 0xcb, 0xc9, 0xc7, 0xc6, 0xc4, 0xc2, 0xc2, | ||
2857 | 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, | ||
2858 | 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, | ||
2859 | 0xc4, 0xb9, 0xba, 0xc0, 0xbc, 0xbd, 0xc6, 0xcb, | ||
2860 | 0xc2, 0xc2, 0xc1, 0xc1, 0xc0, 0xbf, 0xbf, 0xbe, | ||
2861 | 0xc0, 0xbc, 0xbe, 0xc6, 0xc6, 0xbc, 0xb9, 0xbd, | ||
2862 | 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, | ||
2863 | 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, | ||
2864 | 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, | ||
2865 | 0xc6, 0xc5, 0xc3, 0xc2, 0xc2, 0xc3, 0xc5, 0xc6, | ||
2866 | 0xc4, 0xc5, 0xc5, 0xc6, 0xc7, 0xc7, 0xc8, 0xc8, | ||
2867 | 0xc5, 0xb5, 0xb1, 0x50, 0x85, 0xc4, 0x82, 0x7d, | ||
2868 | 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, | ||
2869 | 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, | ||
2870 | 0xc3, 0xc8, 0xcc, 0xcc, 0xc8, 0xc6, 0xc8, 0xca, | ||
2871 | 0xca, 0xc6, 0xca, 0xc8, 0xbe, 0xc3, 0xcc, 0xc6, | ||
2872 | 0xb6, 0xaa, 0xc0, 0xa5, 0xaf, 0xab, 0xab, 0xb6, | ||
2873 | 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, | ||
2874 | 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, | ||
2875 | 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, | ||
2876 | 0xc2, 0xc2, 0xc3, 0xc3, 0xc4, 0xc5, 0xc5, 0xc6, | ||
2877 | 0xc6, 0xc6, 0xc7, 0xc7, 0xc8, 0xc9, 0xc9, 0xca, | ||
2878 | 0xc6, 0xc7, 0xc8, 0xca, 0xc9, 0xc8, 0xc6, 0xc5, | ||
2879 | 0xb4, 0xac, 0xb5, 0xc5, 0xc6, 0xc3, 0xc3, 0xbe, | ||
2880 | 0xb0, 0xa9, 0xbd, 0xab, 0x87, 0x71, 0x58, 0x5a, | ||
2881 | 0x6f, 0x70, 0x6d, 0x68, 0x65, 0x6a, 0x75, 0x7e, | ||
2882 | 0x7b, 0x72, 0x6e, 0x6e, 0x64, 0x59, 0x5f, 0x6e, | ||
2883 | 0x68, 0x68, 0x72, 0x82, 0x8c, 0x89, 0x7f, 0x79, | ||
2884 | 0x7f, 0x7b, 0x71, 0x61, 0x52, 0x4a, 0x4d, 0x51, | ||
2885 | 0x55, 0x4f, 0x4d, 0x54, 0x5e, 0x5f, 0x54, 0x47, | ||
2886 | 0x3a, 0x6a, 0x7c, 0x59, 0x60, 0x57, 0x67, 0x78, | ||
2887 | 0x65, 0x55, 0x47, 0x5c, 0x66, 0x68, 0x83, 0x8b, | ||
2888 | 0x97, 0xa4, 0x8e, 0x99, 0xa0, 0xb2, 0xa9, 0x89, | ||
2889 | 0x6b, 0x91, 0x86, 0x75, 0x62, 0x8a, 0xd5, 0xb9, | ||
2890 | 0x78, 0x73, 0x7f, 0x75, 0x68, 0x56, 0x6f, 0x6a, | ||
2891 | 0x5c, 0x70, 0x65, 0x64, 0x7d, 0x83, 0x7b, 0x7f, | ||
2892 | 0x8e, 0x75, 0x68, 0x8d, 0x91, 0x8f, 0x77, 0x76, | ||
2893 | 0x7e, 0x70, 0x93, 0x92, 0x86, 0x73, 0x7c, 0x92, | ||
2894 | 0x92, 0x8a, 0x8f, 0x78, 0x79, 0x94, 0x97, 0xa5, | ||
2895 | 0xa7, 0x87, 0x60, 0x4a, 0x45, 0x3f, 0x33, 0x28, | ||
2896 | 0x31, 0x22, 0x72, 0x83, 0x7a, 0x87, 0x51, 0x34, | ||
2897 | 0x66, 0x64, 0x75, 0x80, 0x8a, 0x83, 0x24, 0x03, | ||
2898 | 0xe0, 0xef, 0xe6, 0xee, 0xf8, 0xf9, 0xf7, 0xd9, | ||
2899 | 0x49, 0x66, 0xb3, 0xd8, 0xee, 0xe9, 0xe1, 0xd5, | ||
2900 | 0xd6, 0xd5, 0xd2, 0xce, 0xc9, 0xc5, 0xc2, 0xc0, | ||
2901 | 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, | ||
2902 | 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, | ||
2903 | 0xbf, 0xc4, 0xc5, 0xc0, 0xbe, 0xc2, 0xc1, 0xbc, | ||
2904 | 0xc3, 0xc3, 0xc2, 0xc1, 0xc1, 0xc0, 0xbf, 0xbf, | ||
2905 | 0xbc, 0xbc, 0xbd, 0xbf, 0xc0, 0xbf, 0xbf, 0xc0, | ||
2906 | 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, | ||
2907 | 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, | ||
2908 | 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, | ||
2909 | 0xc8, 0xc7, 0xc5, 0xc4, 0xc4, 0xc5, 0xc7, 0xc8, | ||
2910 | 0xc5, 0xc5, 0xc6, 0xc7, 0xc7, 0xc8, 0xc9, 0xc9, | ||
2911 | 0xb9, 0x86, 0x7e, 0x6d, 0xa5, 0x90, 0x73, 0xca, | ||
2912 | 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, | ||
2913 | 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, | ||
2914 | 0xc7, 0xcb, 0xcd, 0xcb, 0xc6, 0xc4, 0xc8, 0xcd, | ||
2915 | 0xce, 0xc9, 0xcd, 0xca, 0xc1, 0xca, 0xcf, 0xc2, | ||
2916 | 0xc5, 0xac, 0xbb, 0x9f, 0x97, 0xae, 0xab, 0xc4, | ||
2917 | 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, | ||
2918 | 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, | ||
2919 | 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, | ||
2920 | 0xc2, 0xc2, 0xc3, 0xc4, 0xc4, 0xc5, 0xc6, 0xc6, | ||
2921 | 0xc6, 0xc6, 0xc7, 0xc8, 0xc8, 0xc9, 0xca, 0xca, | ||
2922 | 0xc4, 0xc5, 0xc8, 0xca, 0xcb, 0xca, 0xc9, 0xc8, | ||
2923 | 0xb8, 0xaf, 0xb8, 0xc8, 0xc6, 0xbe, 0xb9, 0xb3, | ||
2924 | 0xac, 0xa8, 0xb3, 0xb0, 0x8c, 0x6d, 0x6a, 0x74, | ||
2925 | 0x7a, 0x75, 0x6d, 0x66, 0x65, 0x6c, 0x77, 0x7f, | ||
2926 | 0x85, 0x72, 0x62, 0x60, 0x63, 0x64, 0x6a, 0x73, | ||
2927 | 0x74, 0x75, 0x81, 0x8e, 0x87, 0x70, 0x5f, 0x5d, | ||
2928 | 0x5b, 0x65, 0x6f, 0x6e, 0x64, 0x5b, 0x58, 0x5a, | ||
2929 | 0x51, 0x4f, 0x4e, 0x51, 0x55, 0x54, 0x4f, 0x49, | ||
2930 | 0x35, 0x70, 0x7c, 0x53, 0x60, 0x54, 0x5e, 0x79, | ||
2931 | 0x74, 0x59, 0x49, 0x5e, 0x5e, 0x58, 0x72, 0x7a, | ||
2932 | 0x8c, 0x89, 0x89, 0xc1, 0xbb, 0x8f, 0x72, 0x6a, | ||
2933 | 0x73, 0x72, 0x76, 0x8b, 0x8d, 0x72, 0x98, 0xfe, | ||
2934 | 0xa7, 0x68, 0x90, 0x8d, 0x76, 0x5c, 0x60, 0x78, | ||
2935 | 0x68, 0x7b, 0x8f, 0x7d, 0x7f, 0x8d, 0x6f, 0x55, | ||
2936 | 0x8d, 0x91, 0x8f, 0x84, 0x71, 0x7e, 0x6a, 0x8f, | ||
2937 | 0xa1, 0x94, 0x78, 0x72, 0x89, 0x7c, 0x8b, 0x8e, | ||
2938 | 0x86, 0x7e, 0x7c, 0x8e, 0x8f, 0x7e, 0x7e, 0x84, | ||
2939 | 0x6b, 0x86, 0xa0, 0xa3, 0x97, 0x81, 0x66, 0x50, | ||
2940 | 0x39, 0x46, 0x20, 0x48, 0x92, 0x77, 0x5f, 0x82, | ||
2941 | 0x84, 0x8b, 0x74, 0x75, 0x6b, 0x5e, 0x32, 0x08, | ||
2942 | 0xf1, 0xeb, 0xe4, 0xf6, 0xb8, 0x65, 0x7a, 0x96, | ||
2943 | 0x89, 0x75, 0x7d, 0x83, 0xb4, 0xe4, 0xd8, 0xe3, | ||
2944 | 0xe2, 0xe2, 0xe0, 0xdf, 0xdd, 0xdb, 0xda, 0xd9, | ||
2945 | 0xdb, 0xd9, 0xd6, 0xd1, 0xcc, 0xc7, 0xc3, 0xc1, | ||
2946 | 0xbe, 0xbf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc8, 0xc9, | ||
2947 | 0xc5, 0xc5, 0xc5, 0xc6, 0xc7, 0xc7, 0xc8, 0xc8, | ||
2948 | 0xc0, 0xc0, 0xc0, 0xc1, 0xc1, 0xc1, 0xc1, 0xc2, | ||
2949 | 0xc3, 0xc3, 0xc3, 0xc3, 0xc4, 0xc4, 0xc4, 0xc4, | ||
2950 | 0xc2, 0xc3, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc7, | ||
2951 | 0xc7, 0xc7, 0xc8, 0xc9, 0xc9, 0xca, 0xcb, 0xcb, | ||
2952 | 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, | ||
2953 | 0xc6, 0xca, 0xcc, 0xc9, 0xc3, 0xc0, 0xc2, 0xc6, | ||
2954 | 0xc4, 0xc9, 0xcf, 0xcf, 0xcb, 0xc9, 0xcb, 0xce, | ||
2955 | 0xc6, 0xa0, 0x74, 0xc7, 0xec, 0xb3, 0xc3, 0xdb, | ||
2956 | 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, | ||
2957 | 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, | ||
2958 | 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, | ||
2959 | 0xcc, 0xcb, 0xc9, 0xc8, 0xc8, 0xc9, 0xcb, 0xcc, | ||
2960 | 0xae, 0xb8, 0xb6, 0x8a, 0x9e, 0x9d, 0x95, 0xc1, | ||
2961 | 0xc5, 0xc6, 0xc9, 0xcb, 0xcb, 0xcb, 0xca, 0xc9, | ||
2962 | 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, | ||
2963 | 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, | ||
2964 | 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, | ||
2965 | 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, | ||
2966 | 0xbe, 0xc4, 0xc9, 0xca, 0xc7, 0xc6, 0xc9, 0xcd, | ||
2967 | 0xc1, 0xa8, 0xa0, 0xcc, 0xcb, 0xca, 0xbb, 0xc7, | ||
2968 | 0xa6, 0xa1, 0xbf, 0xbd, 0x9c, 0x7f, 0x65, 0x62, | ||
2969 | 0x6a, 0x6b, 0x6f, 0x75, 0x7d, 0x84, 0x87, 0x88, | ||
2970 | 0x73, 0x69, 0x5d, 0x5a, 0x64, 0x75, 0x84, 0x8d, | ||
2971 | 0x8d, 0x8a, 0x87, 0x86, 0x84, 0x7c, 0x70, 0x66, | ||
2972 | 0x7d, 0x74, 0x69, 0x63, 0x61, 0x62, 0x61, 0x5f, | ||
2973 | 0x64, 0x56, 0x48, 0x46, 0x4d, 0x53, 0x51, 0x4c, | ||
2974 | 0x48, 0x85, 0x74, 0x5d, 0x5d, 0x56, 0x6b, 0x7b, | ||
2975 | 0x63, 0x4b, 0x5b, 0x4e, 0x5f, 0x83, 0x80, 0xa5, | ||
2976 | 0x93, 0x84, 0xa1, 0xcf, 0xa9, 0x60, 0x5d, 0x7d, | ||
2977 | 0x88, 0x7b, 0x87, 0x7f, 0x67, 0x5c, 0x71, 0xa8, | ||
2978 | 0xde, 0x80, 0x65, 0x73, 0x7e, 0x7a, 0x6d, 0x7f, | ||
2979 | 0x69, 0x79, 0x89, 0x7c, 0x66, 0x73, 0x8b, 0x8f, | ||
2980 | 0x7b, 0x7b, 0x86, 0x71, 0x79, 0x95, 0x83, 0x79, | ||
2981 | 0x79, 0x84, 0x80, 0x80, 0x8b, 0x85, 0x76, 0x77, | ||
2982 | 0x88, 0x8e, 0x96, 0x8a, 0x90, 0x78, 0x5a, 0x8c, | ||
2983 | 0x8f, 0x94, 0x84, 0x84, 0x79, 0x7c, 0xa1, 0x9e, | ||
2984 | 0x94, 0x6b, 0x46, 0x57, 0x76, 0x67, 0x54, 0x62, | ||
2985 | 0x5f, 0x6a, 0x66, 0x6c, 0x6d, 0x78, 0x26, 0x10, | ||
2986 | 0xe8, 0xf8, 0xeb, 0xf4, 0xd4, 0x95, 0xb5, 0xf2, | ||
2987 | 0xfd, 0xff, 0xf0, 0x92, 0x8c, 0xd8, 0xe9, 0xea, | ||
2988 | 0xeb, 0xea, 0xe9, 0xe7, 0xe6, 0xe4, 0xe3, 0xe2, | ||
2989 | 0xe8, 0xe6, 0xe3, 0xe0, 0xdc, 0xd8, 0xd5, 0xd3, | ||
2990 | 0xcd, 0xcb, 0xca, 0xc7, 0xc4, 0xc2, 0xc0, 0xbf, | ||
2991 | 0xc5, 0xc5, 0xc5, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, | ||
2992 | 0xc3, 0xc3, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, | ||
2993 | 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, | ||
2994 | 0xc4, 0xc4, 0xc5, 0xc6, 0xc7, 0xc7, 0xc8, 0xc8, | ||
2995 | 0xc8, 0xc8, 0xc9, 0xc9, 0xca, 0xcb, 0xcb, 0xcc, | ||
2996 | 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, | ||
2997 | 0xcc, 0xcb, 0xc9, 0xc8, 0xc7, 0xc6, 0xc4, 0xc3, | ||
2998 | 0xc5, 0xca, 0xcf, 0xcf, 0xcc, 0xca, 0xcc, 0xce, | ||
2999 | 0xd8, 0xc8, 0xc8, 0xcc, 0x7e, 0x6c, 0xc5, 0xd4, | ||
3000 | 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, | ||
3001 | 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, | ||
3002 | 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, | ||
3003 | 0xcf, 0xcf, 0xcf, 0xce, 0xcd, 0xcc, 0xcb, 0xca, | ||
3004 | 0xab, 0xaa, 0xbd, 0x8f, 0xa1, 0xaa, 0x97, 0xbd, | ||
3005 | 0xc6, 0xc7, 0xca, 0xcc, 0xcc, 0xcc, 0xcb, 0xca, | ||
3006 | 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, | ||
3007 | 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, | ||
3008 | 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, | ||
3009 | 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, | ||
3010 | 0xd0, 0xcc, 0xc6, 0xc3, 0xc3, 0xc5, 0xc7, 0xc8, | ||
3011 | 0xd4, 0xbb, 0xa9, 0xc2, 0xba, 0xba, 0xb6, 0xca, | ||
3012 | 0xd6, 0xb8, 0xcd, 0xc0, 0x83, 0x67, 0x66, 0x6b, | ||
3013 | 0x74, 0x7f, 0x89, 0x85, 0x76, 0x6a, 0x68, 0x6c, | ||
3014 | 0x6e, 0x7b, 0x87, 0x86, 0x7c, 0x75, 0x79, 0x80, | ||
3015 | 0x80, 0x75, 0x6c, 0x6d, 0x76, 0x7b, 0x75, 0x6d, | ||
3016 | 0x68, 0x64, 0x5e, 0x5c, 0x5c, 0x5a, 0x54, 0x4f, | ||
3017 | 0x58, 0x4e, 0x45, 0x46, 0x4d, 0x4f, 0x49, 0x42, | ||
3018 | 0x3d, 0x7d, 0x78, 0x67, 0x66, 0x5a, 0x62, 0x67, | ||
3019 | 0x5b, 0x4e, 0x51, 0x35, 0x48, 0x70, 0x73, 0xa1, | ||
3020 | 0x97, 0x98, 0xab, 0xa0, 0x74, 0x5f, 0x6f, 0x88, | ||
3021 | 0x6b, 0x71, 0x8a, 0x8b, 0x85, 0x80, 0x72, 0x7a, | ||
3022 | 0xd1, 0xc7, 0x84, 0x6d, 0x74, 0x62, 0x6a, 0x7d, | ||
3023 | 0x73, 0x66, 0x75, 0x80, 0x8c, 0x9b, 0x8a, 0x72, | ||
3024 | 0x79, 0x73, 0x8c, 0x9f, 0x93, 0x75, 0x6b, 0x84, | ||
3025 | 0x77, 0x80, 0x9b, 0x96, 0x73, 0x75, 0x8c, 0x8a, | ||
3026 | 0x92, 0x74, 0x82, 0x7f, 0x7d, 0x93, 0x8b, 0x7f, | ||
3027 | 0x89, 0x6b, 0x78, 0x8d, 0x8d, 0x91, 0x8d, 0x7c, | ||
3028 | 0x73, 0x95, 0xb8, 0x87, 0x3c, 0x56, 0x8e, 0x86, | ||
3029 | 0x79, 0x80, 0x74, 0x71, 0x6b, 0x72, 0x1f, 0x09, | ||
3030 | 0xec, 0xf3, 0xe5, 0xef, 0xf0, 0xee, 0xfe, 0xf0, | ||
3031 | 0x67, 0xa8, 0xec, 0xeb, 0xec, 0xfa, 0xe6, 0xe6, | ||
3032 | 0xef, 0xef, 0xee, 0xed, 0xeb, 0xea, 0xe9, 0xe9, | ||
3033 | 0xf0, 0xef, 0xee, 0xec, 0xe9, 0xe7, 0xe6, 0xe5, | ||
3034 | 0xe4, 0xe3, 0xdf, 0xdb, 0xd6, 0xd2, 0xcf, 0xcd, | ||
3035 | 0xcd, 0xcd, 0xcc, 0xca, 0xc9, 0xc8, 0xc7, 0xc6, | ||
3036 | 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc5, 0xc5, 0xc5, | ||
3037 | 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc6, | ||
3038 | 0xc7, 0xc7, 0xc8, 0xc8, 0xc9, 0xc9, 0xca, 0xca, | ||
3039 | 0xca, 0xca, 0xca, 0xcb, 0xcc, 0xcd, 0xcd, 0xcd, | ||
3040 | 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, | ||
3041 | 0xd2, 0xcd, 0xc8, 0xc8, 0xcb, 0xcc, 0xc7, 0xc1, | ||
3042 | 0xc7, 0xcb, 0xcf, 0xd0, 0xce, 0xcc, 0xcd, 0xce, | ||
3043 | 0xd0, 0xd4, 0xdd, 0xd0, 0xa5, 0xb7, 0xe6, 0xcf, | ||
3044 | 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, | ||
3045 | 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, | ||
3046 | 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, | ||
3047 | 0xd3, 0xd4, 0xd5, 0xd5, 0xd3, 0xcf, 0xca, 0xc7, | ||
3048 | 0xc4, 0xb4, 0xd0, 0x9f, 0xa6, 0xb8, 0xa1, 0xbe, | ||
3049 | 0xc8, 0xc9, 0xcb, 0xcd, 0xce, 0xce, 0xcc, 0xcb, | ||
3050 | 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, | ||
3051 | 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, | ||
3052 | 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, | ||
3053 | 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, | ||
3054 | 0xce, 0xca, 0xc6, 0xc7, 0xcb, 0xcb, 0xc5, 0xbf, | ||
3055 | 0xc9, 0xbc, 0xb0, 0xbe, 0xb8, 0xb6, 0xb3, 0xc4, | ||
3056 | 0xba, 0xa2, 0xca, 0xc2, 0x77, 0x59, 0x5f, 0x63, | ||
3057 | 0x69, 0x6f, 0x72, 0x6b, 0x63, 0x65, 0x72, 0x80, | ||
3058 | 0x85, 0x87, 0x89, 0x87, 0x83, 0x7f, 0x7d, 0x7d, | ||
3059 | 0x85, 0x6f, 0x59, 0x56, 0x65, 0x76, 0x7d, 0x7c, | ||
3060 | 0x68, 0x62, 0x5c, 0x5b, 0x5d, 0x5e, 0x5c, 0x5a, | ||
3061 | 0x4a, 0x46, 0x44, 0x47, 0x4a, 0x46, 0x39, 0x2d, | ||
3062 | 0x30, 0x72, 0x76, 0x62, 0x62, 0x61, 0x61, 0x58, | ||
3063 | 0x5a, 0x53, 0x43, 0x2f, 0x69, 0x9c, 0x8b, 0xa2, | ||
3064 | 0x9a, 0x86, 0x88, 0x68, 0x5d, 0x7f, 0x85, 0x89, | ||
3065 | 0x92, 0x7f, 0x70, 0x5d, 0x71, 0x95, 0x86, 0x72, | ||
3066 | 0x81, 0xbf, 0xa9, 0x84, 0x7c, 0x6e, 0x62, 0x4e, | ||
3067 | 0x69, 0x69, 0x93, 0x92, 0x7c, 0x78, 0x6f, 0x7c, | ||
3068 | 0x8e, 0x84, 0x72, 0x75, 0x78, 0x79, 0x8a, 0x93, | ||
3069 | 0x85, 0x7e, 0x7c, 0x85, 0x89, 0x81, 0x83, 0x93, | ||
3070 | 0x84, 0x6d, 0x8d, 0x98, 0x86, 0x90, 0x88, 0x69, | ||
3071 | 0x73, 0x86, 0x94, 0x80, 0x8b, 0x88, 0x6b, 0x90, | ||
3072 | 0x8a, 0x93, 0x6d, 0x60, 0x93, 0xa1, 0x8a, 0x8e, | ||
3073 | 0x63, 0x6d, 0x65, 0x68, 0x67, 0x71, 0x20, 0x0a, | ||
3074 | 0xea, 0xf6, 0xf3, 0xed, 0xe5, 0xef, 0xf2, 0xc5, | ||
3075 | 0x8a, 0xb5, 0xe9, 0xf4, 0xfa, 0xfb, 0xe8, 0xee, | ||
3076 | 0xed, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8, 0xe8, | ||
3077 | 0xee, 0xed, 0xed, 0xec, 0xec, 0xeb, 0xeb, 0xea, | ||
3078 | 0xee, 0xee, 0xec, 0xeb, 0xe9, 0xe7, 0xe6, 0xe5, | ||
3079 | 0xdd, 0xdc, 0xda, 0xd8, 0xd6, 0xd4, 0xd3, 0xd2, | ||
3080 | 0xcb, 0xcb, 0xca, 0xca, 0xc9, 0xc9, 0xc8, 0xc8, | ||
3081 | 0xce, 0xce, 0xce, 0xcd, 0xcd, 0xcc, 0xcc, 0xcb, | ||
3082 | 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcc, 0xcc, 0xcc, | ||
3083 | 0xcc, 0xcc, 0xcd, 0xcd, 0xce, 0xcf, 0xcf, 0xd0, | ||
3084 | 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, | ||
3085 | 0xd3, 0xd0, 0xcc, 0xcb, 0xcc, 0xcb, 0xc8, 0xc4, | ||
3086 | 0xc9, 0xcc, 0xcf, 0xd0, 0xd0, 0xcf, 0xcf, 0xcf, | ||
3087 | 0xc7, 0xd1, 0xd1, 0xcd, 0xdc, 0xe8, 0xde, 0xd2, | ||
3088 | 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, | ||
3089 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, | ||
3090 | 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, | ||
3091 | 0xd3, 0xd6, 0xd8, 0xd9, 0xd5, 0xce, 0xc7, 0xc2, | ||
3092 | 0xc1, 0xab, 0xc1, 0x9b, 0x9e, 0xb3, 0xb3, 0xc6, | ||
3093 | 0xca, 0xcb, 0xce, 0xd0, 0xd0, 0xd0, 0xcf, 0xce, | ||
3094 | 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, | ||
3095 | 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, | ||
3096 | 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, | ||
3097 | 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, | ||
3098 | 0xd3, 0xcb, 0xc1, 0xbc, 0xc0, 0xc8, 0xcf, 0xd3, | ||
3099 | 0xd6, 0xca, 0xb6, 0xb0, 0xaf, 0xae, 0xac, 0xb6, | ||
3100 | 0x8c, 0x95, 0xc7, 0xbb, 0x79, 0x5d, 0x5a, 0x5e, | ||
3101 | 0x71, 0x67, 0x5a, 0x54, 0x58, 0x64, 0x72, 0x7b, | ||
3102 | 0x77, 0x6a, 0x5f, 0x60, 0x6e, 0x7c, 0x83, 0x84, | ||
3103 | 0x6e, 0x69, 0x67, 0x6c, 0x74, 0x74, 0x6a, 0x5f, | ||
3104 | 0x74, 0x6f, 0x68, 0x64, 0x63, 0x60, 0x5a, 0x55, | ||
3105 | 0x44, 0x46, 0x4b, 0x53, 0x56, 0x4f, 0x41, 0x35, | ||
3106 | 0x51, 0x91, 0x94, 0x69, 0x64, 0x77, 0x70, 0x54, | ||
3107 | 0x54, 0x6c, 0x5c, 0x3e, 0x6d, 0x95, 0x8a, 0xa9, | ||
3108 | 0x9f, 0x80, 0x92, 0x78, 0x69, 0x7e, 0x77, 0x8a, | ||
3109 | 0x69, 0x7d, 0x94, 0x81, 0x79, 0x84, 0x73, 0x69, | ||
3110 | 0x5a, 0x96, 0xe1, 0xb7, 0x69, 0x65, 0x6f, 0x71, | ||
3111 | 0x7d, 0x59, 0x69, 0x6d, 0x70, 0x7f, 0x77, 0x84, | ||
3112 | 0x6e, 0x80, 0x6c, 0x6e, 0x81, 0x94, 0x9d, 0x76, | ||
3113 | 0x75, 0x85, 0x85, 0x89, 0x95, 0x83, 0x6b, 0x70, | ||
3114 | 0x97, 0x86, 0x81, 0x83, 0x80, 0x73, 0x74, 0x8d, | ||
3115 | 0x89, 0x73, 0x85, 0x73, 0x65, 0x9d, 0xa1, 0x65, | ||
3116 | 0x79, 0x56, 0x5f, 0x7d, 0x6f, 0x55, 0x5b, 0x6c, | ||
3117 | 0x7a, 0x86, 0x80, 0x82, 0x7a, 0x79, 0x1c, 0x00, | ||
3118 | 0xeb, 0xfb, 0xf3, 0xf0, 0xf6, 0xef, 0xf1, 0xfc, | ||
3119 | 0xf8, 0xff, 0xff, 0xec, 0xed, 0xf5, 0xf0, 0xf4, | ||
3120 | 0xeb, 0xeb, 0xeb, 0xea, 0xea, 0xe9, 0xe9, 0xe9, | ||
3121 | 0xe9, 0xe9, 0xe9, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
3122 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe9, 0xe9, 0xe9, 0xe9, | ||
3123 | 0xe8, 0xe7, 0xe6, 0xe4, 0xe2, 0xe0, 0xde, 0xdd, | ||
3124 | 0xd7, 0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd3, 0xd2, | ||
3125 | 0xd1, 0xd1, 0xd0, 0xcf, 0xce, 0xcd, 0xcd, 0xcc, | ||
3126 | 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xce, 0xce, 0xce, | ||
3127 | 0xce, 0xcf, 0xcf, 0xd0, 0xd1, 0xd1, 0xd2, 0xd2, | ||
3128 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, | ||
3129 | 0xd1, 0xd3, 0xd3, 0xcf, 0xca, 0xc6, 0xc6, 0xc8, | ||
3130 | 0xcc, 0xcd, 0xcf, 0xd1, 0xd3, 0xd3, 0xd1, 0xcf, | ||
3131 | 0xd2, 0xcd, 0xd7, 0xd7, 0xd4, 0xd3, 0xca, 0xce, | ||
3132 | 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, | ||
3133 | 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, | ||
3134 | 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, | ||
3135 | 0xd3, 0xd5, 0xd8, 0xd7, 0xd4, 0xcc, 0xc4, 0xbf, | ||
3136 | 0xc8, 0xb6, 0xbb, 0xa4, 0x9d, 0x9e, 0xb1, 0xb8, | ||
3137 | 0xcc, 0xce, 0xd0, 0xd2, 0xd3, 0xd2, 0xd1, 0xd0, | ||
3138 | 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, | ||
3139 | 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, | ||
3140 | 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, | ||
3141 | 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, | ||
3142 | 0xc4, 0xc8, 0xcc, 0xcd, 0xca, 0xc8, 0xc9, 0xca, | ||
3143 | 0xd4, 0xd0, 0xbe, 0xb0, 0xbd, 0xbd, 0xb3, 0xac, | ||
3144 | 0xa1, 0xbd, 0xd2, 0xa9, 0x7a, 0x67, 0x5e, 0x6d, | ||
3145 | 0x65, 0x61, 0x5e, 0x5f, 0x65, 0x6e, 0x76, 0x7a, | ||
3146 | 0x80, 0x78, 0x6d, 0x66, 0x66, 0x68, 0x68, 0x68, | ||
3147 | 0x65, 0x6e, 0x7a, 0x81, 0x7d, 0x71, 0x62, 0x59, | ||
3148 | 0x5e, 0x5c, 0x5c, 0x60, 0x63, 0x62, 0x5c, 0x57, | ||
3149 | 0x60, 0x62, 0x64, 0x65, 0x60, 0x53, 0x41, 0x35, | ||
3150 | 0x5f, 0x9c, 0xa0, 0x64, 0x58, 0x77, 0x63, 0x33, | ||
3151 | 0x37, 0x67, 0x6a, 0x5b, 0x86, 0x9e, 0x92, 0xaa, | ||
3152 | 0x76, 0x55, 0x74, 0x73, 0x71, 0x80, 0x6f, 0x81, | ||
3153 | 0x83, 0x72, 0x6e, 0x63, 0x6f, 0x88, 0x85, 0x89, | ||
3154 | 0x68, 0x59, 0xad, 0xd5, 0xa1, 0x7d, 0x6d, 0x66, | ||
3155 | 0x77, 0x69, 0x81, 0x81, 0x6b, 0x65, 0x64, 0x77, | ||
3156 | 0x76, 0x8f, 0x8e, 0x90, 0x79, 0x63, 0x7f, 0x8a, | ||
3157 | 0x86, 0x80, 0x7d, 0x6c, 0x64, 0x87, 0x9c, 0x84, | ||
3158 | 0x83, 0x87, 0x77, 0x83, 0x97, 0x7e, 0x6e, 0x85, | ||
3159 | 0x82, 0x74, 0x77, 0xa3, 0x98, 0x60, 0x78, 0xb6, | ||
3160 | 0x73, 0x5d, 0x56, 0x56, 0x5a, 0x76, 0x8d, 0x86, | ||
3161 | 0x85, 0x84, 0x6b, 0x5f, 0x57, 0x63, 0x1a, 0x0a, | ||
3162 | 0xfb, 0xf5, 0xea, 0xe9, 0xef, 0xf1, 0xee, 0xed, | ||
3163 | 0xf6, 0xf4, 0xee, 0xef, 0xf3, 0xeb, 0xe8, 0xf5, | ||
3164 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xed, 0xed, 0xed, | ||
3165 | 0xea, 0xea, 0xea, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3166 | 0xe9, 0xe9, 0xe8, 0xe8, 0xe7, 0xe6, 0xe6, 0xe6, | ||
3167 | 0xea, 0xe9, 0xe8, 0xe7, 0xe6, 0xe4, 0xe3, 0xe3, | ||
3168 | 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe0, 0xdf, 0xdf, | ||
3169 | 0xd3, 0xd3, 0xd2, 0xd0, 0xcf, 0xce, 0xcd, 0xcc, | ||
3170 | 0xd3, 0xd3, 0xd2, 0xd2, 0xd1, 0xd1, 0xd0, 0xd0, | ||
3171 | 0xd1, 0xd1, 0xd1, 0xd2, 0xd3, 0xd4, 0xd4, 0xd4, | ||
3172 | 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, | ||
3173 | 0xd0, 0xd3, 0xd5, 0xd0, 0xc8, 0xc3, 0xc5, 0xc8, | ||
3174 | 0xcf, 0xce, 0xcf, 0xd2, 0xd5, 0xd6, 0xd2, 0xcf, | ||
3175 | 0xd6, 0xcf, 0xd2, 0xd3, 0xd9, 0xdc, 0xd1, 0xcd, | ||
3176 | 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, | ||
3177 | 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, | ||
3178 | 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, | ||
3179 | 0xd5, 0xd6, 0xd6, 0xd5, 0xd2, 0xcc, 0xc6, 0xc3, | ||
3180 | 0xb8, 0xb0, 0xb4, 0xb1, 0xac, 0x9a, 0xb5, 0xc4, | ||
3181 | 0xce, 0xd0, 0xd2, 0xd4, 0xd5, 0xd4, 0xd3, 0xd2, | ||
3182 | 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, | ||
3183 | 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, | ||
3184 | 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, | ||
3185 | 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, | ||
3186 | 0xd1, 0xd3, 0xd1, 0xc9, 0xc2, 0xc0, 0xc5, 0xcc, | ||
3187 | 0xc0, 0xcc, 0xc6, 0xb8, 0xd4, 0xd5, 0xc4, 0xb0, | ||
3188 | 0xb0, 0xc7, 0xc9, 0x9d, 0x83, 0x74, 0x61, 0x75, | ||
3189 | 0x7d, 0x7f, 0x7c, 0x6f, 0x62, 0x61, 0x6d, 0x7b, | ||
3190 | 0x78, 0x6e, 0x65, 0x64, 0x6b, 0x70, 0x6f, 0x6c, | ||
3191 | 0x64, 0x6b, 0x70, 0x6e, 0x67, 0x62, 0x62, 0x65, | ||
3192 | 0x64, 0x5c, 0x53, 0x50, 0x56, 0x5f, 0x66, 0x69, | ||
3193 | 0x65, 0x65, 0x63, 0x5e, 0x55, 0x49, 0x3c, 0x34, | ||
3194 | 0x3b, 0x6c, 0x80, 0x53, 0x4e, 0x6f, 0x53, 0x23, | ||
3195 | 0x35, 0x54, 0x51, 0x54, 0x84, 0x9e, 0x9c, 0xab, | ||
3196 | 0x92, 0x74, 0x81, 0x7f, 0x86, 0x98, 0x82, 0x75, | ||
3197 | 0x7b, 0x77, 0x89, 0x8a, 0x81, 0x75, 0x61, 0x69, | ||
3198 | 0x8e, 0x69, 0x77, 0xc7, 0xb8, 0x63, 0x55, 0x62, | ||
3199 | 0x8f, 0x74, 0x64, 0x68, 0x6b, 0x77, 0x88, 0x85, | ||
3200 | 0x9e, 0x82, 0x67, 0x74, 0x86, 0x88, 0x90, 0x91, | ||
3201 | 0x7e, 0x74, 0x77, 0x86, 0x8e, 0x8f, 0x8e, 0x8b, | ||
3202 | 0x71, 0x89, 0x8e, 0x95, 0x8f, 0x7a, 0x74, 0x6a, | ||
3203 | 0x90, 0x88, 0x84, 0x87, 0x68, 0x78, 0x9d, 0x61, | ||
3204 | 0x55, 0x92, 0x96, 0x82, 0x90, 0x85, 0x6a, 0x72, | ||
3205 | 0x60, 0x75, 0x7e, 0x8c, 0x8b, 0x89, 0x28, 0x06, | ||
3206 | 0xf1, 0xed, 0xf9, 0xf5, 0xeb, 0xf9, 0xfd, 0xeb, | ||
3207 | 0xe9, 0xf4, 0xef, 0xed, 0xf3, 0xf3, 0xf4, 0xf6, | ||
3208 | 0xef, 0xef, 0xef, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3209 | 0xed, 0xed, 0xed, 0xed, 0xec, 0xec, 0xec, 0xec, | ||
3210 | 0xec, 0xeb, 0xeb, 0xeb, 0xeb, 0xea, 0xea, 0xea, | ||
3211 | 0xe9, 0xe9, 0xe9, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
3212 | 0xec, 0xeb, 0xea, 0xe9, 0xe7, 0xe5, 0xe4, 0xe4, | ||
3213 | 0xdb, 0xda, 0xd9, 0xd8, 0xd6, 0xd5, 0xd3, 0xd3, | ||
3214 | 0xd6, 0xd6, 0xd5, 0xd4, 0xd3, 0xd3, 0xd2, 0xd2, | ||
3215 | 0xd2, 0xd3, 0xd3, 0xd4, 0xd5, 0xd5, 0xd6, 0xd6, | ||
3216 | 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, | ||
3217 | 0xd2, 0xd2, 0xd0, 0xcd, 0xc9, 0xc5, 0xc4, 0xc3, | ||
3218 | 0xd1, 0xcf, 0xcf, 0xd2, 0xd7, 0xd8, 0xd4, 0xcf, | ||
3219 | 0xd0, 0xd9, 0xcd, 0xc6, 0xd0, 0xd4, 0xd4, 0xd9, | ||
3220 | 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, | ||
3221 | 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, | ||
3222 | 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, | ||
3223 | 0xd9, 0xd9, 0xd7, 0xd5, 0xd2, 0xcf, 0xcd, 0xcc, | ||
3224 | 0xb8, 0xab, 0xb3, 0xae, 0xa7, 0x89, 0x9c, 0xc1, | ||
3225 | 0xd0, 0xd2, 0xd4, 0xd6, 0xd7, 0xd6, 0xd5, 0xd4, | ||
3226 | 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, | ||
3227 | 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, | ||
3228 | 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, | ||
3229 | 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, | ||
3230 | 0xca, 0xce, 0xd3, 0xd4, 0xd0, 0xc9, 0xc1, 0xbc, | ||
3231 | 0xc2, 0xd3, 0xcb, 0xac, 0xcb, 0xd0, 0xca, 0xba, | ||
3232 | 0xa9, 0xa4, 0xab, 0xa0, 0x91, 0x7b, 0x63, 0x72, | ||
3233 | 0x7c, 0x7c, 0x77, 0x6a, 0x60, 0x64, 0x77, 0x88, | ||
3234 | 0x6f, 0x64, 0x59, 0x57, 0x5d, 0x64, 0x66, 0x65, | ||
3235 | 0x79, 0x7c, 0x7e, 0x7d, 0x79, 0x76, 0x75, 0x76, | ||
3236 | 0x7d, 0x70, 0x60, 0x57, 0x56, 0x5c, 0x61, 0x63, | ||
3237 | 0x4b, 0x4b, 0x4b, 0x49, 0x48, 0x48, 0x4a, 0x4c, | ||
3238 | 0x3c, 0x4d, 0x68, 0x58, 0x5a, 0x72, 0x5a, 0x42, | ||
3239 | 0x58, 0x5e, 0x44, 0x34, 0x41, 0x54, 0x73, 0x92, | ||
3240 | 0x72, 0x72, 0x84, 0x84, 0x7b, 0x84, 0x8a, 0x86, | ||
3241 | 0x88, 0x6b, 0x64, 0x64, 0x74, 0x85, 0x80, 0x8a, | ||
3242 | 0x76, 0x66, 0x56, 0x9c, 0xda, 0xb8, 0x85, 0x64, | ||
3243 | 0x7f, 0x80, 0x70, 0x84, 0x87, 0x7d, 0x81, 0x55, | ||
3244 | 0x78, 0x84, 0x96, 0x8f, 0x84, 0x7e, 0x6c, 0x67, | ||
3245 | 0x8c, 0x8c, 0x84, 0x8a, 0x8f, 0x70, 0x6b, 0x96, | ||
3246 | 0x94, 0x96, 0x85, 0x7d, 0x67, 0x63, 0x85, 0x84, | ||
3247 | 0x76, 0x96, 0x72, 0x54, 0x74, 0x7a, 0x54, 0x3c, | ||
3248 | 0x80, 0x5b, 0x64, 0x6f, 0x57, 0x66, 0x87, 0x7d, | ||
3249 | 0x86, 0x85, 0x6d, 0x63, 0x5d, 0x6c, 0x24, 0x15, | ||
3250 | 0xf6, 0xf3, 0xf2, 0xf0, 0xf7, 0xf3, 0xe8, 0xf4, | ||
3251 | 0xfa, 0xfa, 0xea, 0xe9, 0xef, 0xea, 0xec, 0xf0, | ||
3252 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xef, 0xef, 0xef, | ||
3253 | 0xee, 0xee, 0xee, 0xed, 0xec, 0xeb, 0xeb, 0xeb, | ||
3254 | 0xe5, 0xe6, 0xe7, 0xe9, 0xea, 0xec, 0xed, 0xee, | ||
3255 | 0xea, 0xea, 0xea, 0xeb, 0xeb, 0xec, 0xec, 0xed, | ||
3256 | 0xea, 0xea, 0xe8, 0xe7, 0xe5, 0xe3, 0xe2, 0xe1, | ||
3257 | 0xe5, 0xe4, 0xe3, 0xe1, 0xe0, 0xde, 0xdd, 0xdc, | ||
3258 | 0xd8, 0xd7, 0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd3, | ||
3259 | 0xd3, 0xd3, 0xd4, 0xd5, 0xd5, 0xd6, 0xd7, 0xd7, | ||
3260 | 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, | ||
3261 | 0xd6, 0xd0, 0xcb, 0xc9, 0xca, 0xc9, 0xc3, 0xbe, | ||
3262 | 0xd2, 0xd0, 0xcf, 0xd2, 0xd8, 0xd9, 0xd5, 0xcf, | ||
3263 | 0xcc, 0xd2, 0xd4, 0xda, 0xd3, 0xd3, 0xe0, 0xd9, | ||
3264 | 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, | ||
3265 | 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, | ||
3266 | 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, | ||
3267 | 0xdd, 0xdb, 0xd8, 0xd5, 0xd3, 0xd2, 0xd2, 0xd3, | ||
3268 | 0xc0, 0xa9, 0xb8, 0xad, 0xa8, 0x8d, 0x9b, 0xda, | ||
3269 | 0xd1, 0xd3, 0xd5, 0xd7, 0xd8, 0xd7, 0xd6, 0xd5, | ||
3270 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, | ||
3271 | 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, | ||
3272 | 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, | ||
3273 | 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, | ||
3274 | 0xc9, 0xc9, 0xca, 0xcf, 0xd3, 0xd1, 0xc8, 0xc0, | ||
3275 | 0xa6, 0xc5, 0xc9, 0xaa, 0xcb, 0xd1, 0xcf, 0xc0, | ||
3276 | 0xbb, 0x91, 0x99, 0xa6, 0x95, 0x79, 0x66, 0x73, | ||
3277 | 0x82, 0x7d, 0x75, 0x6f, 0x69, 0x65, 0x60, 0x5d, | ||
3278 | 0x5d, 0x6b, 0x75, 0x70, 0x63, 0x60, 0x6e, 0x7e, | ||
3279 | 0x81, 0x76, 0x68, 0x5f, 0x5f, 0x64, 0x69, 0x6b, | ||
3280 | 0x57, 0x5a, 0x60, 0x69, 0x70, 0x6f, 0x67, 0x60, | ||
3281 | 0x5e, 0x5a, 0x53, 0x4a, 0x44, 0x44, 0x49, 0x4d, | ||
3282 | 0x5d, 0x4c, 0x5d, 0x59, 0x58, 0x61, 0x4d, 0x4e, | ||
3283 | 0x68, 0x59, 0x3f, 0x44, 0x55, 0x59, 0x5b, 0x56, | ||
3284 | 0x73, 0x68, 0x6b, 0x7e, 0x7c, 0x77, 0x7a, 0x6d, | ||
3285 | 0x6c, 0x6f, 0x87, 0x88, 0x84, 0x7e, 0x68, 0x67, | ||
3286 | 0x83, 0x8b, 0x78, 0x59, 0x8e, 0xc2, 0x8e, 0x5b, | ||
3287 | 0x79, 0x8b, 0x6c, 0x74, 0x6a, 0x65, 0x8e, 0x6e, | ||
3288 | 0x67, 0x60, 0x72, 0x6d, 0x74, 0x84, 0x7a, 0x84, | ||
3289 | 0x81, 0x77, 0x70, 0x6b, 0x77, 0x97, 0x9c, 0x7d, | ||
3290 | 0x7d, 0x76, 0x6b, 0x90, 0x9b, 0x81, 0x80, 0x71, | ||
3291 | 0x58, 0x75, 0x8d, 0x93, 0xa2, 0x73, 0x3a, 0x6a, | ||
3292 | 0x72, 0x7c, 0x78, 0x7b, 0x88, 0x7c, 0x69, 0x6c, | ||
3293 | 0x65, 0x73, 0x72, 0x7b, 0x7c, 0x84, 0x2f, 0x16, | ||
3294 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
3295 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3296 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3297 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3298 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3299 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
3300 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
3301 | 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, | ||
3302 | 0xe5, 0xe5, 0xe4, 0xe3, 0xe3, 0xe2, 0xe1, 0xe1, | ||
3303 | 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, | ||
3304 | 0xdb, 0xda, 0xda, 0xd9, 0xd8, 0xd8, 0xd7, 0xd7, | ||
3305 | 0xd9, 0xd4, 0xd2, 0xcc, 0xc5, 0xcb, 0xcc, 0xc0, | ||
3306 | 0xcd, 0xd8, 0xc5, 0xcf, 0xdd, 0xd3, 0xd8, 0xd8, | ||
3307 | 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, | ||
3308 | 0xd7, 0xd8, 0xd9, 0xdb, 0xdd, 0xdf, 0xe0, 0xe1, | ||
3309 | 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, | ||
3310 | 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, | ||
3311 | 0xdd, 0xd9, 0xdc, 0xe3, 0xe0, 0xd5, 0xcf, 0xd1, | ||
3312 | 0xc6, 0xa7, 0xad, 0xb5, 0xbb, 0x83, 0xaa, 0xcd, | ||
3313 | 0xcd, 0xd6, 0xda, 0xd5, 0xd3, 0xd7, 0xd8, 0xd5, | ||
3314 | 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, | ||
3315 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, | ||
3316 | 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, | ||
3317 | 0xd1, 0xd2, 0xd2, 0xd2, 0xd0, 0xcd, 0xca, 0xc8, | ||
3318 | 0xc6, 0xdc, 0xca, 0xcd, 0xd5, 0xbc, 0xbc, 0xd0, | ||
3319 | 0xc2, 0xbc, 0xb1, 0xa7, 0xb6, 0xa8, 0xb7, 0xa8, | ||
3320 | 0xbe, 0xa2, 0xab, 0xc1, 0x95, 0x73, 0x7f, 0x6b, | ||
3321 | 0x76, 0x71, 0x69, 0x62, 0x65, 0x6c, 0x6d, 0x69, | ||
3322 | 0x7b, 0x76, 0x6c, 0x65, 0x6a, 0x71, 0x6d, 0x62, | ||
3323 | 0x5d, 0x5c, 0x5e, 0x67, 0x72, 0x77, 0x75, 0x70, | ||
3324 | 0x6d, 0x69, 0x64, 0x5f, 0x5b, 0x56, 0x51, 0x4d, | ||
3325 | 0x53, 0x48, 0x4f, 0x52, 0x45, 0x43, 0x43, 0x33, | ||
3326 | 0x50, 0x5e, 0x55, 0x43, 0x4e, 0x61, 0x55, 0x3b, | ||
3327 | 0x51, 0x54, 0x50, 0x53, 0x58, 0x45, 0x2f, 0x2e, | ||
3328 | 0x5f, 0x61, 0x69, 0x74, 0x76, 0x75, 0x80, 0x8f, | ||
3329 | 0x75, 0x68, 0x65, 0x72, 0x7c, 0x7b, 0x7a, 0x7f, | ||
3330 | 0x71, 0x69, 0x71, 0x71, 0x59, 0x94, 0xc7, 0x72, | ||
3331 | 0x65, 0x76, 0x71, 0x7b, 0x90, 0x88, 0x79, 0x7c, | ||
3332 | 0x7b, 0x59, 0x7e, 0x77, 0x87, 0x7f, 0x80, 0x81, | ||
3333 | 0x67, 0x84, 0x92, 0x9c, 0x81, 0x6f, 0x7d, 0x61, | ||
3334 | 0x84, 0x94, 0x80, 0x6b, 0x76, 0x74, 0x6d, 0x7b, | ||
3335 | 0x85, 0x5c, 0x4c, 0x7e, 0x71, 0x5d, 0x92, 0x94, | ||
3336 | 0x89, 0x70, 0x72, 0x6f, 0x57, 0x63, 0x77, 0x68, | ||
3337 | 0x84, 0x8f, 0x87, 0x8a, 0x87, 0x83, 0x1d, 0x00, | ||
3338 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
3339 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3340 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3341 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3342 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3343 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
3344 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
3345 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
3346 | 0xe6, 0xe5, 0xe5, 0xe4, 0xe3, 0xe3, 0xe2, 0xe2, | ||
3347 | 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, | ||
3348 | 0xdf, 0xdf, 0xdf, 0xde, 0xdd, 0xdc, 0xdc, 0xdc, | ||
3349 | 0xd7, 0xda, 0xdb, 0xd0, 0xc6, 0xcd, 0xce, 0xbe, | ||
3350 | 0xc3, 0xd5, 0xcb, 0xd0, 0xda, 0xd3, 0xd8, 0xd7, | ||
3351 | 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, | ||
3352 | 0xd8, 0xd9, 0xda, 0xdc, 0xdd, 0xdf, 0xe0, 0xe1, | ||
3353 | 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, | ||
3354 | 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, | ||
3355 | 0xda, 0xdd, 0xe0, 0xdf, 0xdc, 0xd9, 0xd3, 0xce, | ||
3356 | 0xd1, 0xb5, 0x96, 0xb1, 0xc1, 0x88, 0x95, 0xc7, | ||
3357 | 0xcc, 0xd5, 0xdb, 0xd7, 0xd5, 0xd8, 0xd7, 0xd4, | ||
3358 | 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, | ||
3359 | 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, | ||
3360 | 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, | ||
3361 | 0xd2, 0xd2, 0xd3, 0xd3, 0xd1, 0xce, 0xcb, 0xc9, | ||
3362 | 0xba, 0xbc, 0xcf, 0xd2, 0xd4, 0xca, 0xb5, 0xc1, | ||
3363 | 0xdc, 0xc4, 0xc0, 0x98, 0x9c, 0xd3, 0xc9, 0xc9, | ||
3364 | 0xa1, 0xa7, 0xc1, 0xd2, 0x9c, 0x6a, 0x76, 0x76, | ||
3365 | 0x78, 0x7a, 0x7d, 0x80, 0x81, 0x7c, 0x6f, 0x63, | ||
3366 | 0x7a, 0x7c, 0x76, 0x6d, 0x6c, 0x74, 0x79, 0x77, | ||
3367 | 0x80, 0x7c, 0x75, 0x6d, 0x67, 0x65, 0x67, 0x6a, | ||
3368 | 0x6a, 0x60, 0x58, 0x5a, 0x62, 0x64, 0x5c, 0x52, | ||
3369 | 0x59, 0x50, 0x56, 0x58, 0x4d, 0x4b, 0x4a, 0x3e, | ||
3370 | 0x4c, 0x61, 0x58, 0x40, 0x49, 0x5f, 0x5b, 0x48, | ||
3371 | 0x66, 0x74, 0x69, 0x56, 0x56, 0x54, 0x48, 0x43, | ||
3372 | 0x76, 0x72, 0x79, 0x89, 0x8d, 0x80, 0x70, 0x69, | ||
3373 | 0x84, 0x8d, 0x8c, 0x7f, 0x76, 0x74, 0x6c, 0x60, | ||
3374 | 0x8c, 0x7e, 0x89, 0x93, 0x74, 0x76, 0xa4, 0xac, | ||
3375 | 0x75, 0x68, 0x60, 0x57, 0x84, 0x8b, 0x5e, 0x89, | ||
3376 | 0x7b, 0x74, 0x81, 0x69, 0x81, 0x6e, 0x6f, 0x98, | ||
3377 | 0x98, 0x94, 0x73, 0x80, 0x8e, 0x7d, 0x89, 0x98, | ||
3378 | 0x92, 0x77, 0x73, 0x6d, 0x60, 0x7d, 0x97, 0x83, | ||
3379 | 0x56, 0x7b, 0xae, 0x5d, 0x59, 0x91, 0x5f, 0x6d, | ||
3380 | 0x5a, 0x66, 0x7c, 0x87, 0x88, 0x96, 0x98, 0x84, | ||
3381 | 0x78, 0x58, 0x4e, 0x75, 0x82, 0x81, 0x29, 0x13, | ||
3382 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
3383 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3384 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3385 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3386 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3387 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3388 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
3389 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
3390 | 0xe7, 0xe6, 0xe6, 0xe5, 0xe4, 0xe4, 0xe3, 0xe3, | ||
3391 | 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, | ||
3392 | 0xe5, 0xe5, 0xe4, 0xe3, 0xe3, 0xe2, 0xe1, 0xe1, | ||
3393 | 0xdb, 0xda, 0xdd, 0xd9, 0xce, 0xcc, 0xc9, 0xbc, | ||
3394 | 0xb4, 0xd0, 0xd2, 0xd3, 0xd6, 0xd4, 0xd9, 0xd5, | ||
3395 | 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, | ||
3396 | 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xe0, 0xe1, 0xe1, | ||
3397 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
3398 | 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, | ||
3399 | 0xd8, 0xe1, 0xe3, 0xdc, 0xd9, 0xdc, 0xd7, 0xcc, | ||
3400 | 0xd8, 0xe2, 0x96, 0x92, 0xaf, 0xa1, 0xa7, 0xc9, | ||
3401 | 0xca, 0xd5, 0xdc, 0xda, 0xd8, 0xd9, 0xd7, 0xd2, | ||
3402 | 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, | ||
3403 | 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, | ||
3404 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, | ||
3405 | 0xd2, 0xd3, 0xd4, 0xd4, 0xd2, 0xd0, 0xcd, 0xcb, | ||
3406 | 0xbf, 0xb0, 0xc1, 0xc7, 0xc9, 0xd1, 0xca, 0xcd, | ||
3407 | 0xd2, 0xe4, 0xd9, 0xb9, 0x98, 0xcc, 0xd1, 0xc1, | ||
3408 | 0x5a, 0xaf, 0xd3, 0xb4, 0x7c, 0x67, 0x73, 0x65, | ||
3409 | 0x7a, 0x6f, 0x64, 0x62, 0x69, 0x74, 0x7d, 0x83, | ||
3410 | 0x7d, 0x81, 0x7b, 0x6a, 0x60, 0x65, 0x6f, 0x75, | ||
3411 | 0x87, 0x87, 0x86, 0x82, 0x7c, 0x77, 0x74, 0x72, | ||
3412 | 0x5d, 0x62, 0x67, 0x69, 0x68, 0x6a, 0x6f, 0x74, | ||
3413 | 0x5e, 0x58, 0x59, 0x56, 0x49, 0x43, 0x41, 0x38, | ||
3414 | 0x45, 0x6a, 0x73, 0x67, 0x6d, 0x70, 0x60, 0x52, | ||
3415 | 0x40, 0x5d, 0x66, 0x5d, 0x5f, 0x66, 0x72, 0x85, | ||
3416 | 0x7e, 0x6e, 0x64, 0x6a, 0x74, 0x79, 0x7f, 0x87, | ||
3417 | 0x75, 0x6f, 0x63, 0x5f, 0x6f, 0x83, 0x83, 0x74, | ||
3418 | 0x79, 0x5d, 0x5e, 0x6e, 0x6f, 0x69, 0x8d, 0xd9, | ||
3419 | 0xc2, 0x7e, 0x72, 0x6e, 0x7b, 0x82, 0x6f, 0x95, | ||
3420 | 0x7a, 0x65, 0x6b, 0x63, 0x8b, 0xa3, 0x8f, 0x65, | ||
3421 | 0x71, 0x80, 0x72, 0x7b, 0x8f, 0x87, 0x7c, 0x70, | ||
3422 | 0x7e, 0x72, 0x77, 0x8b, 0x84, 0x67, 0x69, 0x89, | ||
3423 | 0x96, 0xa0, 0x4e, 0x4d, 0x74, 0x6f, 0x84, 0x84, | ||
3424 | 0x85, 0x90, 0x82, 0x69, 0x64, 0x5d, 0x4d, 0x45, | ||
3425 | 0x7a, 0x7b, 0x88, 0x8a, 0x5b, 0x53, 0x11, 0x00, | ||
3426 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
3427 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3428 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3429 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3430 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3431 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3432 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3433 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
3434 | 0xe8, 0xe8, 0xe7, 0xe7, 0xe6, 0xe5, 0xe5, 0xe4, | ||
3435 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
3436 | 0xe7, 0xe7, 0xe6, 0xe6, 0xe5, 0xe4, 0xe4, 0xe3, | ||
3437 | 0xe3, 0xd5, 0xd6, 0xdd, 0xd6, 0xcc, 0xc3, 0xb8, | ||
3438 | 0xa8, 0xc8, 0xd9, 0xd5, 0xd2, 0xd7, 0xdb, 0xd5, | ||
3439 | 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, | ||
3440 | 0xdd, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe1, 0xe2, | ||
3441 | 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, | ||
3442 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
3443 | 0xdc, 0xe1, 0xe1, 0xdd, 0xda, 0xda, 0xd6, 0xd0, | ||
3444 | 0xb3, 0xe3, 0xa5, 0x87, 0xad, 0xb3, 0xc1, 0xc8, | ||
3445 | 0xc9, 0xd5, 0xdd, 0xdc, 0xda, 0xda, 0xd7, 0xd2, | ||
3446 | 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, | ||
3447 | 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, | ||
3448 | 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, | ||
3449 | 0xd3, 0xd3, 0xd4, 0xd5, 0xd4, 0xd2, 0xcf, 0xce, | ||
3450 | 0xc5, 0xc6, 0xc3, 0xd4, 0xd6, 0xca, 0xc6, 0xaf, | ||
3451 | 0xb7, 0xd4, 0xcb, 0xd2, 0xbc, 0xca, 0xd9, 0xaf, | ||
3452 | 0x86, 0xd0, 0xdf, 0xba, 0x84, 0x59, 0x5d, 0x68, | ||
3453 | 0x70, 0x6e, 0x75, 0x80, 0x83, 0x77, 0x68, 0x61, | ||
3454 | 0x6e, 0x73, 0x6d, 0x60, 0x5b, 0x66, 0x76, 0x7e, | ||
3455 | 0x8c, 0x8a, 0x89, 0x89, 0x87, 0x81, 0x78, 0x72, | ||
3456 | 0x5c, 0x67, 0x6e, 0x68, 0x5a, 0x54, 0x5b, 0x66, | ||
3457 | 0x60, 0x5f, 0x5f, 0x5a, 0x4f, 0x49, 0x48, 0x45, | ||
3458 | 0x4e, 0x69, 0x6f, 0x6c, 0x6d, 0x5d, 0x50, 0x5e, | ||
3459 | 0x41, 0x34, 0x2e, 0x4a, 0x6e, 0x6d, 0x62, 0x6a, | ||
3460 | 0x65, 0x6c, 0x7b, 0x87, 0x82, 0x71, 0x6a, 0x6d, | ||
3461 | 0x71, 0x73, 0x7d, 0x87, 0x80, 0x71, 0x6e, 0x76, | ||
3462 | 0x79, 0x84, 0x9c, 0x8b, 0x74, 0x61, 0x64, 0xa2, | ||
3463 | 0xdd, 0x9d, 0x68, 0x69, 0x72, 0x73, 0x7c, 0x81, | ||
3464 | 0x83, 0x67, 0x7b, 0x8e, 0x7e, 0x6b, 0x75, 0x7f, | ||
3465 | 0x6e, 0x87, 0x9c, 0x8b, 0x64, 0x67, 0x86, 0x8b, | ||
3466 | 0x86, 0x9c, 0x80, 0x6a, 0x83, 0x7d, 0x5b, 0x59, | ||
3467 | 0x6a, 0x5a, 0x5c, 0x87, 0x92, 0x7a, 0x7a, 0x7c, | ||
3468 | 0x67, 0x71, 0x61, 0x60, 0x7a, 0x78, 0x75, 0x95, | ||
3469 | 0x8f, 0x66, 0x5f, 0x6d, 0x4a, 0x4b, 0x18, 0x0e, | ||
3470 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
3471 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3472 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3473 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3474 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3475 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3476 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3477 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
3478 | 0xea, 0xe9, 0xe9, 0xe8, 0xe7, 0xe7, 0xe6, 0xe6, | ||
3479 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
3480 | 0xe7, 0xe6, 0xe6, 0xe5, 0xe4, 0xe4, 0xe3, 0xe3, | ||
3481 | 0xe2, 0xd8, 0xd5, 0xd6, 0xd5, 0xd5, 0xc7, 0xaf, | ||
3482 | 0xa3, 0xc0, 0xdb, 0xd7, 0xd1, 0xda, 0xde, 0xd9, | ||
3483 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
3484 | 0xdf, 0xe0, 0xe0, 0xe1, 0xe1, 0xe2, 0xe2, 0xe2, | ||
3485 | 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, | ||
3486 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
3487 | 0xe2, 0xde, 0xdd, 0xe0, 0xde, 0xd6, 0xd4, 0xd6, | ||
3488 | 0xc4, 0xd3, 0xab, 0x85, 0x9e, 0x87, 0xb0, 0xca, | ||
3489 | 0xcb, 0xd6, 0xde, 0xdc, 0xd9, 0xdb, 0xd9, 0xd4, | ||
3490 | 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, | ||
3491 | 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, | ||
3492 | 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, | ||
3493 | 0xd3, 0xd4, 0xd5, 0xd6, 0xd6, 0xd4, 0xd2, 0xd0, | ||
3494 | 0xbf, 0xba, 0x9f, 0xaa, 0xc4, 0xcd, 0xd3, 0xc6, | ||
3495 | 0xae, 0xb9, 0xd4, 0xd0, 0xb7, 0x9d, 0xb9, 0xc5, | ||
3496 | 0x98, 0xc9, 0xc0, 0xa0, 0x81, 0x61, 0x69, 0x7e, | ||
3497 | 0x86, 0x77, 0x70, 0x75, 0x74, 0x6a, 0x65, 0x68, | ||
3498 | 0x7f, 0x7d, 0x72, 0x62, 0x5d, 0x67, 0x70, 0x72, | ||
3499 | 0x85, 0x86, 0x84, 0x7e, 0x77, 0x76, 0x7c, 0x82, | ||
3500 | 0x90, 0x8b, 0x82, 0x77, 0x6b, 0x60, 0x57, 0x52, | ||
3501 | 0x4a, 0x4f, 0x4f, 0x49, 0x44, 0x3f, 0x40, 0x46, | ||
3502 | 0x5b, 0x6a, 0x6d, 0x78, 0x78, 0x4e, 0x3b, 0x61, | ||
3503 | 0x48, 0x47, 0x4b, 0x5f, 0x6c, 0x61, 0x66, 0x86, | ||
3504 | 0x78, 0x76, 0x7a, 0x7f, 0x7b, 0x76, 0x7e, 0x8b, | ||
3505 | 0x7e, 0x67, 0x5b, 0x69, 0x7e, 0x86, 0x87, 0x89, | ||
3506 | 0x70, 0x6b, 0x78, 0x6b, 0x72, 0x85, 0x6c, 0x60, | ||
3507 | 0x9f, 0xbe, 0x8b, 0x56, 0x6b, 0x7b, 0x7c, 0x8e, | ||
3508 | 0x84, 0x75, 0x5a, 0x6d, 0x82, 0x79, 0x79, 0x9b, | ||
3509 | 0x91, 0x73, 0x78, 0x88, 0x88, 0x8b, 0x8f, 0x8d, | ||
3510 | 0x81, 0x76, 0x8b, 0x9b, 0x88, 0x84, 0x97, 0xa0, | ||
3511 | 0x71, 0x5b, 0x8f, 0x7d, 0x5a, 0x6a, 0x61, 0x6f, | ||
3512 | 0x91, 0x8d, 0x7f, 0x8a, 0x96, 0x6e, 0x57, 0x7a, | ||
3513 | 0x57, 0x68, 0x7a, 0x82, 0x6f, 0x82, 0x37, 0x08, | ||
3514 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
3515 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3516 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3517 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3518 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3519 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3520 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3521 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3522 | 0xeb, 0xeb, 0xea, 0xea, 0xe9, 0xe8, 0xe8, 0xe7, | ||
3523 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
3524 | 0xe7, 0xe6, 0xe6, 0xe5, 0xe4, 0xe4, 0xe3, 0xe3, | ||
3525 | 0xdd, 0xe1, 0xdd, 0xce, 0xcd, 0xde, 0xd4, 0xaf, | ||
3526 | 0xa6, 0xb8, 0xd9, 0xd9, 0xd2, 0xde, 0xe1, 0xe1, | ||
3527 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
3528 | 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe3, 0xe3, | ||
3529 | 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
3530 | 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, | ||
3531 | 0xe6, 0xde, 0xdc, 0xe1, 0xdf, 0xd5, 0xd3, 0xd9, | ||
3532 | 0xc9, 0xc6, 0xc4, 0xa5, 0xb0, 0x80, 0x98, 0xb0, | ||
3533 | 0xd0, 0xd9, 0xdd, 0xd9, 0xd6, 0xda, 0xdb, 0xd8, | ||
3534 | 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, | ||
3535 | 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, | ||
3536 | 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, | ||
3537 | 0xd4, 0xd5, 0xd6, 0xd7, 0xd7, 0xd6, 0xd4, 0xd3, | ||
3538 | 0xd4, 0xdb, 0xdb, 0xb7, 0xa4, 0xad, 0xbb, 0xe0, | ||
3539 | 0xeb, 0xd8, 0xcc, 0xd0, 0xce, 0x9a, 0xb9, 0xcd, | ||
3540 | 0xae, 0xda, 0xc4, 0x96, 0x79, 0x6a, 0x74, 0x78, | ||
3541 | 0x77, 0x6b, 0x6b, 0x7a, 0x7b, 0x6b, 0x61, 0x64, | ||
3542 | 0x6f, 0x6f, 0x69, 0x5f, 0x60, 0x6d, 0x77, 0x79, | ||
3543 | 0x7d, 0x89, 0x90, 0x88, 0x79, 0x73, 0x7c, 0x88, | ||
3544 | 0x94, 0x91, 0x8b, 0x82, 0x77, 0x6e, 0x68, 0x65, | ||
3545 | 0x59, 0x60, 0x5a, 0x4d, 0x44, 0x3a, 0x37, 0x42, | ||
3546 | 0x62, 0x71, 0x75, 0x86, 0x8b, 0x54, 0x36, 0x5e, | ||
3547 | 0x67, 0x60, 0x4e, 0x47, 0x52, 0x53, 0x56, 0x66, | ||
3548 | 0x82, 0x78, 0x76, 0x7f, 0x83, 0x7c, 0x74, 0x72, | ||
3549 | 0x71, 0x7e, 0x84, 0x79, 0x70, 0x6e, 0x68, 0x5e, | ||
3550 | 0x91, 0x84, 0x85, 0x73, 0x65, 0x72, 0x70, 0x61, | ||
3551 | 0x75, 0x9d, 0xa9, 0x5a, 0x54, 0x8a, 0x73, 0x64, | ||
3552 | 0x5d, 0x85, 0x84, 0x8d, 0x82, 0x85, 0x76, 0x61, | ||
3553 | 0x80, 0x89, 0x90, 0x86, 0x85, 0x78, 0x61, 0x70, | ||
3554 | 0x8f, 0x8e, 0x93, 0x84, 0x77, 0x94, 0x97, 0x65, | ||
3555 | 0x50, 0x67, 0x60, 0x75, 0x7d, 0x80, 0x9d, 0x8a, | ||
3556 | 0x8b, 0x74, 0x60, 0x66, 0x69, 0x55, 0x58, 0x7a, | ||
3557 | 0x76, 0x7d, 0x60, 0x42, 0x2b, 0x3c, 0x0c, 0x18, | ||
3558 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
3559 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3560 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3561 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3562 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3563 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3564 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3565 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3566 | 0xec, 0xec, 0xeb, 0xeb, 0xea, 0xe9, 0xe9, 0xe8, | ||
3567 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
3568 | 0xe9, 0xe8, 0xe8, 0xe7, 0xe6, 0xe6, 0xe5, 0xe5, | ||
3569 | 0xe0, 0xe4, 0xe4, 0xd7, 0xcf, 0xda, 0xd9, 0xc4, | ||
3570 | 0xad, 0xb2, 0xd4, 0xd9, 0xd4, 0xe1, 0xe4, 0xe9, | ||
3571 | 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
3572 | 0xe4, 0xe4, 0xe4, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
3573 | 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, | ||
3574 | 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
3575 | 0xe4, 0xe1, 0xdf, 0xde, 0xdb, 0xd8, 0xd7, 0xd8, | ||
3576 | 0xc5, 0xc3, 0xc4, 0xa8, 0xb4, 0xa3, 0xa0, 0xb3, | ||
3577 | 0xd5, 0xdb, 0xdc, 0xd5, 0xd3, 0xd8, 0xdd, 0xdd, | ||
3578 | 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, | ||
3579 | 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, | ||
3580 | 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, | ||
3581 | 0xd4, 0xd5, 0xd7, 0xd8, 0xd9, 0xd7, 0xd6, 0xd5, | ||
3582 | 0xd4, 0xce, 0xdb, 0xcf, 0xc2, 0xbf, 0xa4, 0x91, | ||
3583 | 0xba, 0xcb, 0xd0, 0xf5, 0xfd, 0xc7, 0xc4, 0xd6, | ||
3584 | 0xa1, 0xbd, 0xb9, 0xa7, 0x7e, 0x59, 0x6a, 0x82, | ||
3585 | 0x84, 0x75, 0x75, 0x84, 0x82, 0x6b, 0x5c, 0x5f, | ||
3586 | 0x6e, 0x76, 0x75, 0x68, 0x60, 0x65, 0x6e, 0x73, | ||
3587 | 0x8f, 0x92, 0x92, 0x8b, 0x7d, 0x70, 0x66, 0x63, | ||
3588 | 0x7a, 0x7e, 0x80, 0x7d, 0x76, 0x73, 0x75, 0x79, | ||
3589 | 0x5a, 0x63, 0x59, 0x47, 0x3c, 0x2e, 0x2a, 0x38, | ||
3590 | 0x67, 0x78, 0x6a, 0x68, 0x75, 0x53, 0x3d, 0x63, | ||
3591 | 0x59, 0x5e, 0x58, 0x53, 0x56, 0x57, 0x6b, 0x8f, | ||
3592 | 0x71, 0x69, 0x6b, 0x79, 0x82, 0x7e, 0x78, 0x78, | ||
3593 | 0x72, 0x71, 0x6b, 0x6a, 0x7a, 0x8e, 0x8f, 0x83, | ||
3594 | 0x75, 0x6d, 0x6a, 0x7d, 0x88, 0x8d, 0x8d, 0x76, | ||
3595 | 0x5b, 0x7d, 0xe7, 0xc3, 0x59, 0x60, 0x7b, 0x80, | ||
3596 | 0x8b, 0x78, 0x5f, 0x80, 0x63, 0x6f, 0x8c, 0x90, | ||
3597 | 0x78, 0x81, 0x81, 0x66, 0x74, 0x90, 0x89, 0x99, | ||
3598 | 0x78, 0x8b, 0x75, 0x69, 0x77, 0x61, 0x52, 0x76, | ||
3599 | 0x7a, 0x92, 0x91, 0x7b, 0x7a, 0x7d, 0x6b, 0x5e, | ||
3600 | 0x53, 0x60, 0x7d, 0x8a, 0x79, 0x62, 0x45, 0x22, | ||
3601 | 0x20, 0x2d, 0x5c, 0xd8, 0xff, 0xbf, 0x19, 0x18, | ||
3602 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
3603 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3604 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3605 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3606 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3607 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3608 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3609 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3610 | 0xed, 0xed, 0xec, 0xeb, 0xeb, 0xea, 0xe9, 0xe9, | ||
3611 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
3612 | 0xeb, 0xeb, 0xea, 0xea, 0xe9, 0xe8, 0xe8, 0xe7, | ||
3613 | 0xe9, 0xe0, 0xe4, 0xe7, 0xd7, 0xce, 0xd5, 0xdd, | ||
3614 | 0xb3, 0xae, 0xd1, 0xda, 0xd6, 0xe3, 0xe5, 0xee, | ||
3615 | 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, | ||
3616 | 0xe5, 0xe5, 0xe4, 0xe4, 0xe4, 0xe4, 0xe3, 0xe3, | ||
3617 | 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, | ||
3618 | 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, | ||
3619 | 0xe1, 0xe6, 0xe3, 0xda, 0xd7, 0xdc, 0xdb, 0xd5, | ||
3620 | 0xc7, 0xc4, 0xc0, 0xb2, 0xbb, 0xb4, 0x86, 0x97, | ||
3621 | 0xd8, 0xdc, 0xdb, 0xd2, 0xd0, 0xd8, 0xdf, 0xe0, | ||
3622 | 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, | ||
3623 | 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, | ||
3624 | 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, | ||
3625 | 0xd4, 0xd5, 0xd7, 0xd9, 0xd9, 0xd8, 0xd7, 0xd6, | ||
3626 | 0xd4, 0xd3, 0xd7, 0xdd, 0xc9, 0xca, 0xdb, 0xbb, | ||
3627 | 0x73, 0x4f, 0x43, 0x3f, 0x5e, 0x8d, 0x7a, 0xc5, | ||
3628 | 0xa6, 0xe3, 0xf0, 0xc5, 0x85, 0x69, 0x79, 0x77, | ||
3629 | 0x6c, 0x5c, 0x5f, 0x73, 0x76, 0x63, 0x5a, 0x62, | ||
3630 | 0x6b, 0x7c, 0x84, 0x78, 0x6a, 0x6d, 0x7b, 0x85, | ||
3631 | 0x93, 0x7f, 0x6b, 0x68, 0x6f, 0x70, 0x61, 0x51, | ||
3632 | 0x60, 0x56, 0x4e, 0x50, 0x59, 0x5c, 0x54, 0x4a, | ||
3633 | 0x4e, 0x5c, 0x55, 0x47, 0x44, 0x3b, 0x3b, 0x4e, | ||
3634 | 0x61, 0x82, 0x77, 0x6e, 0x82, 0x6b, 0x4d, 0x62, | ||
3635 | 0x73, 0x59, 0x4a, 0x61, 0x76, 0x68, 0x68, 0x86, | ||
3636 | 0x88, 0x86, 0x88, 0x88, 0x7d, 0x6e, 0x6c, 0x74, | ||
3637 | 0x74, 0x6c, 0x6d, 0x78, 0x7c, 0x75, 0x74, 0x79, | ||
3638 | 0x7c, 0x8d, 0x7e, 0x80, 0x79, 0x68, 0x74, 0x6f, | ||
3639 | 0x67, 0x50, 0x98, 0xda, 0xa0, 0x6d, 0x7b, 0x73, | ||
3640 | 0x79, 0x82, 0x5d, 0x87, 0x8a, 0x84, 0x72, 0x71, | ||
3641 | 0x71, 0x67, 0x92, 0x9c, 0x8c, 0x88, 0x78, 0x7c, | ||
3642 | 0x63, 0x92, 0x83, 0x84, 0xb4, 0x91, 0x5e, 0x7f, | ||
3643 | 0x78, 0x60, 0x58, 0x64, 0x6f, 0x70, 0x77, 0x8c, | ||
3644 | 0x6f, 0x5a, 0x3f, 0x13, 0x09, 0x54, 0x97, 0x8f, | ||
3645 | 0xbc, 0xff, 0xff, 0xe9, 0xf9, 0xd5, 0x2a, 0x00, | ||
3646 | 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, 0xf2, 0xf1, | ||
3647 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3648 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3649 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
3650 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3651 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3652 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3653 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3654 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3655 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3656 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
3657 | 0xed, 0xea, 0xe6, 0xe0, 0xdb, 0xda, 0xdc, 0xdf, | ||
3658 | 0xc6, 0xac, 0xbb, 0xc2, 0xdb, 0xe8, 0xe9, 0xe6, | ||
3659 | 0xe9, 0xe8, 0xe8, 0xe7, 0xe6, 0xe5, 0xe5, 0xe4, | ||
3660 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
3661 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
3662 | 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, | ||
3663 | 0xe4, 0xe3, 0xe2, 0xe0, 0xde, 0xdd, 0xdd, 0xde, | ||
3664 | 0xcf, 0xc6, 0xd4, 0xa2, 0xc3, 0xc1, 0x94, 0xa3, | ||
3665 | 0xcf, 0xde, 0xce, 0xcf, 0xcc, 0xd7, 0xde, 0xe3, | ||
3666 | 0xd8, 0xd9, 0xdb, 0xdc, 0xdb, 0xda, 0xd8, 0xd7, | ||
3667 | 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, | ||
3668 | 0xdd, 0xdd, 0xdc, 0xdc, 0xdb, 0xdb, 0xda, 0xda, | ||
3669 | 0xd9, 0xd9, 0xd8, 0xd7, 0xd6, 0xd5, 0xd5, 0xd5, | ||
3670 | 0xe6, 0xd1, 0xce, 0xce, 0xd3, 0xdc, 0xad, 0x63, | ||
3671 | 0x6d, 0x72, 0x48, 0x4d, 0x2a, 0x2e, 0x48, 0x51, | ||
3672 | 0x3e, 0x6d, 0x8e, 0x83, 0x6b, 0x67, 0x6f, 0x72, | ||
3673 | 0x73, 0x6b, 0x70, 0x7b, 0x74, 0x5f, 0x5a, 0x66, | ||
3674 | 0x6b, 0x79, 0x7c, 0x6d, 0x60, 0x5e, 0x5c, 0x57, | ||
3675 | 0x4a, 0x4a, 0x53, 0x65, 0x70, 0x6c, 0x66, 0x65, | ||
3676 | 0x6a, 0x69, 0x64, 0x5d, 0x5b, 0x5b, 0x52, 0x46, | ||
3677 | 0x4f, 0x50, 0x4c, 0x48, 0x41, 0x37, 0x47, 0x69, | ||
3678 | 0x7b, 0x77, 0x6e, 0x70, 0x73, 0x60, 0x56, 0x66, | ||
3679 | 0x68, 0x49, 0x69, 0x51, 0x57, 0x78, 0x85, 0x86, | ||
3680 | 0x7f, 0x7d, 0x75, 0x6f, 0x74, 0x7e, 0x7e, 0x77, | ||
3681 | 0x82, 0x62, 0x5c, 0x5d, 0x75, 0x8a, 0x7e, 0x82, | ||
3682 | 0x7a, 0x70, 0x61, 0x5b, 0x69, 0x7e, 0x82, 0x7a, | ||
3683 | 0x6c, 0x5c, 0x62, 0xaf, 0xcf, 0xa0, 0x83, 0x77, | ||
3684 | 0x81, 0x90, 0x7c, 0x53, 0x74, 0x88, 0x69, 0x80, | ||
3685 | 0x7d, 0x96, 0x84, 0x65, 0x6c, 0x7b, 0x80, 0x8a, | ||
3686 | 0xa4, 0x6f, 0x6b, 0x96, 0x76, 0x55, 0x6a, 0x51, | ||
3687 | 0x87, 0x7d, 0x7f, 0x8a, 0x79, 0x49, 0x1f, 0x0f, | ||
3688 | 0x39, 0x7a, 0xce, 0xff, 0xff, 0xff, 0xfa, 0xfe, | ||
3689 | 0xd3, 0xcc, 0xbf, 0x97, 0x5d, 0x64, 0x2e, 0x00, | ||
3690 | 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, 0xf2, 0xf1, | ||
3691 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3692 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3693 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
3694 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3695 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3696 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3697 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3698 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3699 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3700 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
3701 | 0xea, 0xe8, 0xe6, 0xe3, 0xdf, 0xdb, 0xd6, 0xd3, | ||
3702 | 0xd6, 0xbe, 0xbf, 0xc6, 0xe6, 0xec, 0xe8, 0xe1, | ||
3703 | 0xe9, 0xe8, 0xe8, 0xe7, 0xe6, 0xe6, 0xe5, 0xe5, | ||
3704 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
3705 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
3706 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
3707 | 0xe1, 0xe4, 0xe6, 0xe2, 0xdd, 0xda, 0xdd, 0xe1, | ||
3708 | 0xd3, 0xc1, 0xcc, 0xc2, 0xc4, 0xad, 0x82, 0xa0, | ||
3709 | 0xcf, 0xd2, 0xce, 0xd9, 0xca, 0xd0, 0xdd, 0xdf, | ||
3710 | 0xd9, 0xda, 0xdc, 0xdd, 0xdd, 0xdc, 0xda, 0xd9, | ||
3711 | 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, | ||
3712 | 0xdd, 0xdd, 0xdd, 0xdc, 0xdb, 0xdb, 0xda, 0xda, | ||
3713 | 0xd9, 0xd9, 0xd8, 0xd8, 0xd7, 0xd6, 0xd6, 0xd5, | ||
3714 | 0xd9, 0xd0, 0xda, 0xcc, 0xe8, 0xd6, 0x6a, 0x4f, | ||
3715 | 0x8c, 0x67, 0x49, 0x5f, 0x58, 0x67, 0x6c, 0x7d, | ||
3716 | 0x44, 0x3e, 0x36, 0x3a, 0x4d, 0x61, 0x67, 0x62, | ||
3717 | 0x53, 0x5a, 0x67, 0x72, 0x71, 0x69, 0x65, 0x67, | ||
3718 | 0x78, 0x82, 0x81, 0x72, 0x66, 0x67, 0x6b, 0x6b, | ||
3719 | 0x79, 0x6d, 0x65, 0x67, 0x6b, 0x6c, 0x6f, 0x75, | ||
3720 | 0x63, 0x65, 0x63, 0x5f, 0x61, 0x65, 0x5f, 0x55, | ||
3721 | 0x48, 0x46, 0x41, 0x43, 0x43, 0x39, 0x40, 0x5a, | ||
3722 | 0x75, 0x6e, 0x6a, 0x6e, 0x69, 0x59, 0x59, 0x69, | ||
3723 | 0x4e, 0x59, 0x66, 0x3c, 0x54, 0x75, 0x70, 0x61, | ||
3724 | 0x6c, 0x7a, 0x84, 0x83, 0x80, 0x81, 0x80, 0x7d, | ||
3725 | 0x7c, 0x78, 0x70, 0x87, 0x85, 0x6a, 0x71, 0x74, | ||
3726 | 0x70, 0x87, 0x93, 0x81, 0x68, 0x60, 0x68, 0x71, | ||
3727 | 0x6b, 0x71, 0x67, 0x73, 0xd7, 0xd8, 0x6c, 0x70, | ||
3728 | 0x82, 0x68, 0x75, 0x79, 0x7c, 0x87, 0x87, 0x9b, | ||
3729 | 0x65, 0x79, 0x87, 0x7c, 0x7b, 0x94, 0x8f, 0x65, | ||
3730 | 0x6e, 0x94, 0x76, 0x40, 0x5d, 0x8c, 0x91, 0x97, | ||
3731 | 0x75, 0x49, 0x15, 0x10, 0x56, 0xbb, 0xfa, 0xff, | ||
3732 | 0xff, 0xfc, 0xf8, 0xf6, 0xe9, 0xc2, 0x8b, 0x61, | ||
3733 | 0x51, 0x2f, 0x2d, 0x49, 0x3f, 0x3e, 0x16, 0x13, | ||
3734 | 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, 0xf2, 0xf1, | ||
3735 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3736 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3737 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
3738 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3739 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3740 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3741 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3742 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3743 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3744 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
3745 | 0xe8, 0xe6, 0xe5, 0xe6, 0xe5, 0xde, 0xd2, 0xc8, | ||
3746 | 0xd7, 0xbc, 0xad, 0xc7, 0xf1, 0xe0, 0xe0, 0xee, | ||
3747 | 0xe8, 0xe8, 0xe8, 0xe7, 0xe7, 0xe6, 0xe6, 0xe6, | ||
3748 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
3749 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
3750 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
3751 | 0xe0, 0xe5, 0xe9, 0xe5, 0xdd, 0xda, 0xdd, 0xe3, | ||
3752 | 0xd9, 0xc5, 0xb9, 0xcc, 0xb5, 0xae, 0x86, 0x8d, | ||
3753 | 0xdd, 0xd0, 0xce, 0xe2, 0xca, 0xce, 0xdc, 0xd7, | ||
3754 | 0xdb, 0xdc, 0xdd, 0xdf, 0xdf, 0xde, 0xdc, 0xdb, | ||
3755 | 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, | ||
3756 | 0xde, 0xdd, 0xdd, 0xdc, 0xdc, 0xdb, 0xdb, 0xdb, | ||
3757 | 0xd9, 0xd9, 0xd9, 0xd8, 0xd8, 0xd7, 0xd7, 0xd7, | ||
3758 | 0xdd, 0xdb, 0xdb, 0xef, 0xa6, 0x63, 0x82, 0x6f, | ||
3759 | 0x84, 0x5f, 0x7c, 0xa8, 0x99, 0x7d, 0x49, 0x50, | ||
3760 | 0x61, 0x49, 0x3d, 0x52, 0x73, 0x82, 0x77, 0x67, | ||
3761 | 0x61, 0x6e, 0x7a, 0x7b, 0x76, 0x6f, 0x66, 0x5e, | ||
3762 | 0x74, 0x79, 0x76, 0x68, 0x5e, 0x62, 0x6c, 0x71, | ||
3763 | 0x76, 0x6a, 0x62, 0x61, 0x5c, 0x51, 0x49, 0x48, | ||
3764 | 0x5e, 0x61, 0x60, 0x5e, 0x60, 0x64, 0x60, 0x57, | ||
3765 | 0x4b, 0x4a, 0x45, 0x44, 0x44, 0x3f, 0x4e, 0x6f, | ||
3766 | 0x77, 0x7c, 0x7d, 0x84, 0x81, 0x62, 0x4e, 0x5b, | ||
3767 | 0x55, 0x5e, 0x4b, 0x33, 0x69, 0x7a, 0x7d, 0x8e, | ||
3768 | 0x72, 0x7a, 0x7b, 0x75, 0x74, 0x7e, 0x89, 0x8e, | ||
3769 | 0x68, 0x73, 0x60, 0x5f, 0x71, 0x88, 0x9a, 0x85, | ||
3770 | 0x85, 0x7a, 0x68, 0x61, 0x6f, 0x85, 0x8b, 0x83, | ||
3771 | 0x77, 0x68, 0x6d, 0x63, 0xa5, 0xe7, 0xab, 0x7c, | ||
3772 | 0x64, 0x82, 0x85, 0x6f, 0x7c, 0x7e, 0x6d, 0x85, | ||
3773 | 0x96, 0x77, 0x7c, 0x8d, 0x77, 0x65, 0x79, 0x91, | ||
3774 | 0x9e, 0x8b, 0x82, 0x63, 0x58, 0x41, 0x10, 0x18, | ||
3775 | 0x90, 0xd0, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xf9, | ||
3776 | 0xe0, 0xb2, 0x71, 0x41, 0x33, 0x40, 0x57, 0x67, | ||
3777 | 0x4c, 0x3d, 0x34, 0x50, 0x69, 0x71, 0x21, 0x00, | ||
3778 | 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, 0xf2, 0xf1, | ||
3779 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3780 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3781 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
3782 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3783 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3784 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3785 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3786 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3787 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3788 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
3789 | 0xea, 0xe6, 0xe4, 0xe7, 0xe9, 0xe4, 0xd6, 0xcb, | ||
3790 | 0xd0, 0xd1, 0xb4, 0xb2, 0xde, 0xdd, 0xe3, 0xe5, | ||
3791 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe7, 0xe7, 0xe7, | ||
3792 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
3793 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
3794 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
3795 | 0xe2, 0xe5, 0xe7, 0xe6, 0xe1, 0xde, 0xdf, 0xe0, | ||
3796 | 0xda, 0xbf, 0xa4, 0xcf, 0x94, 0x8a, 0x7c, 0x8b, | ||
3797 | 0xc7, 0xbf, 0xc3, 0xde, 0xd2, 0xda, 0xe1, 0xd4, | ||
3798 | 0xdc, 0xdd, 0xdf, 0xe0, 0xe1, 0xe0, 0xdf, 0xde, | ||
3799 | 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, | ||
3800 | 0xde, 0xde, 0xde, 0xdd, 0xdc, 0xdc, 0xdb, 0xdb, | ||
3801 | 0xda, 0xda, 0xda, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, | ||
3802 | 0xda, 0xd1, 0xed, 0xd4, 0x6c, 0x54, 0x87, 0x87, | ||
3803 | 0x9a, 0x5f, 0x67, 0x7d, 0x71, 0x6b, 0x69, 0x8a, | ||
3804 | 0x9e, 0x90, 0x7d, 0x6f, 0x6b, 0x6d, 0x70, 0x71, | ||
3805 | 0x6c, 0x72, 0x7a, 0x7a, 0x73, 0x68, 0x61, 0x5e, | ||
3806 | 0x68, 0x6b, 0x6a, 0x61, 0x59, 0x5b, 0x66, 0x6f, | ||
3807 | 0x6e, 0x6b, 0x70, 0x7c, 0x7f, 0x74, 0x67, 0x62, | ||
3808 | 0x6d, 0x71, 0x6f, 0x69, 0x66, 0x66, 0x61, 0x59, | ||
3809 | 0x4b, 0x4d, 0x4f, 0x54, 0x54, 0x48, 0x4d, 0x65, | ||
3810 | 0x76, 0x9b, 0x89, 0x64, 0x6f, 0x79, 0x63, 0x52, | ||
3811 | 0x57, 0x76, 0x59, 0x32, 0x65, 0x76, 0x70, 0x60, | ||
3812 | 0x7d, 0x80, 0x80, 0x7d, 0x7d, 0x7a, 0x6c, 0x5c, | ||
3813 | 0x7f, 0x7c, 0x87, 0x78, 0x72, 0x78, 0x69, 0x6d, | ||
3814 | 0x71, 0x80, 0x87, 0x7e, 0x74, 0x73, 0x74, 0x73, | ||
3815 | 0x7b, 0x67, 0x6a, 0x77, 0x66, 0xa8, 0xf3, 0xaf, | ||
3816 | 0x6a, 0x63, 0x6b, 0x6b, 0x72, 0x90, 0x8c, 0x67, | ||
3817 | 0x68, 0x69, 0x60, 0x6a, 0x91, 0xa3, 0x7c, 0x4c, | ||
3818 | 0x31, 0x30, 0x1b, 0x27, 0x94, 0xee, 0xf5, 0xff, | ||
3819 | 0xf5, 0xff, 0xff, 0xff, 0xd7, 0x91, 0x57, 0x3c, | ||
3820 | 0x31, 0x29, 0x25, 0x2e, 0x41, 0x50, 0x54, 0x51, | ||
3821 | 0x3f, 0x64, 0x5e, 0x48, 0x48, 0x5e, 0x22, 0x06, | ||
3822 | 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, 0xf2, 0xf1, | ||
3823 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3824 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3825 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
3826 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3827 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3828 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3829 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3830 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3831 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3832 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
3833 | 0xed, 0xe8, 0xe4, 0xe6, 0xea, 0xe8, 0xdf, 0xd7, | ||
3834 | 0xd7, 0xd7, 0xaf, 0xa5, 0xda, 0xe3, 0xeb, 0xeb, | ||
3835 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe9, 0xe9, 0xe9, | ||
3836 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
3837 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
3838 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
3839 | 0xe7, 0xe5, 0xe4, 0xe5, 0xe7, 0xe6, 0xe0, 0xdc, | ||
3840 | 0xde, 0xd5, 0xae, 0xc5, 0x97, 0xbe, 0xba, 0x8e, | ||
3841 | 0xbb, 0xc0, 0xbc, 0xc9, 0xc0, 0xd1, 0xe0, 0xdd, | ||
3842 | 0xdb, 0xdd, 0xdf, 0xe1, 0xe1, 0xe1, 0xe0, 0xdf, | ||
3843 | 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, | ||
3844 | 0xdf, 0xdf, 0xde, 0xde, 0xdd, 0xdc, 0xdc, 0xdc, | ||
3845 | 0xda, 0xda, 0xda, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, | ||
3846 | 0xd2, 0xe9, 0xa8, 0x65, 0x74, 0x88, 0x79, 0x69, | ||
3847 | 0x77, 0x51, 0x69, 0x8f, 0x90, 0x7f, 0x76, 0x6a, | ||
3848 | 0x74, 0x7b, 0x71, 0x58, 0x53, 0x6d, 0x8f, 0xa0, | ||
3849 | 0x87, 0x7f, 0x7e, 0x82, 0x78, 0x66, 0x62, 0x6c, | ||
3850 | 0x68, 0x6b, 0x6e, 0x6b, 0x64, 0x62, 0x6a, 0x75, | ||
3851 | 0x75, 0x6c, 0x68, 0x6d, 0x6d, 0x66, 0x60, 0x60, | ||
3852 | 0x6b, 0x70, 0x6e, 0x66, 0x5f, 0x5d, 0x59, 0x51, | ||
3853 | 0x53, 0x4c, 0x44, 0x44, 0x45, 0x3a, 0x3c, 0x51, | ||
3854 | 0x7c, 0x5d, 0x53, 0x66, 0x6c, 0x5b, 0x55, 0x5f, | ||
3855 | 0x51, 0x60, 0x4e, 0x35, 0x64, 0x83, 0x92, 0x80, | ||
3856 | 0x6e, 0x70, 0x6f, 0x6e, 0x77, 0x82, 0x82, 0x7a, | ||
3857 | 0x8c, 0x73, 0x69, 0x59, 0x69, 0x89, 0x89, 0x90, | ||
3858 | 0x82, 0x75, 0x63, 0x5c, 0x6b, 0x82, 0x88, 0x81, | ||
3859 | 0x7a, 0x93, 0x6c, 0x73, 0x61, 0x5c, 0xb7, 0xc7, | ||
3860 | 0x8e, 0x69, 0x67, 0x7e, 0x72, 0x66, 0x83, 0x9c, | ||
3861 | 0x73, 0x79, 0x92, 0x9c, 0x6f, 0x34, 0x36, 0x60, | ||
3862 | 0xb6, 0xe3, 0xfc, 0xfe, 0xf1, 0xfb, 0xff, 0xe6, | ||
3863 | 0xaf, 0x73, 0x43, 0x3b, 0x34, 0x1f, 0x1a, 0x28, | ||
3864 | 0x31, 0x30, 0x31, 0x36, 0x41, 0x4f, 0x5c, 0x63, | ||
3865 | 0x47, 0x3f, 0x27, 0x31, 0x4c, 0x5c, 0x17, 0x02, | ||
3866 | 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, 0xf2, 0xf1, | ||
3867 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3868 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3869 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
3870 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3871 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3872 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3873 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3874 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3875 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3876 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3877 | 0xef, 0xea, 0xe6, 0xe6, 0xe8, 0xe8, 0xe4, 0xe0, | ||
3878 | 0xdf, 0xc6, 0x9f, 0xa1, 0xdc, 0xe2, 0xe6, 0xf1, | ||
3879 | 0xe8, 0xe8, 0xe8, 0xe9, 0xe9, 0xea, 0xea, 0xea, | ||
3880 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
3881 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
3882 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
3883 | 0xe9, 0xe5, 0xe3, 0xe6, 0xeb, 0xea, 0xe2, 0xd9, | ||
3884 | 0xcc, 0xc9, 0xba, 0xcd, 0x9e, 0xb0, 0xc1, 0x9c, | ||
3885 | 0xbc, 0xcb, 0xc8, 0xcb, 0xba, 0xca, 0xe0, 0xe4, | ||
3886 | 0xda, 0xdc, 0xde, 0xe0, 0xe1, 0xe1, 0xe0, 0xe0, | ||
3887 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
3888 | 0xdf, 0xdf, 0xdf, 0xde, 0xde, 0xdd, 0xdd, 0xdc, | ||
3889 | 0xdb, 0xdb, 0xdb, 0xdc, 0xdc, 0xdd, 0xdd, 0xdd, | ||
3890 | 0xec, 0xd7, 0x73, 0x5d, 0x7a, 0x85, 0x96, 0x75, | ||
3891 | 0x8a, 0x60, 0x6c, 0x76, 0x72, 0x6e, 0x82, 0x78, | ||
3892 | 0x79, 0x83, 0x7f, 0x70, 0x76, 0x92, 0xa2, 0x9f, | ||
3893 | 0x80, 0x72, 0x6f, 0x74, 0x69, 0x55, 0x54, 0x64, | ||
3894 | 0x6b, 0x6b, 0x6e, 0x6e, 0x68, 0x62, 0x6a, 0x77, | ||
3895 | 0x6d, 0x63, 0x5e, 0x64, 0x67, 0x65, 0x65, 0x68, | ||
3896 | 0x6b, 0x72, 0x73, 0x6c, 0x66, 0x65, 0x63, 0x5e, | ||
3897 | 0x5f, 0x5e, 0x55, 0x4a, 0x3e, 0x38, 0x53, 0x7e, | ||
3898 | 0x80, 0x68, 0x74, 0x78, 0x64, 0x74, 0x7b, 0x50, | ||
3899 | 0x5a, 0x50, 0x5d, 0x5f, 0x76, 0x70, 0x69, 0x5b, | ||
3900 | 0x83, 0x8a, 0x88, 0x7b, 0x71, 0x70, 0x71, 0x70, | ||
3901 | 0x54, 0x82, 0x8b, 0x83, 0x6d, 0x63, 0x70, 0x64, | ||
3902 | 0x5d, 0x74, 0x88, 0x8a, 0x82, 0x79, 0x6b, 0x5e, | ||
3903 | 0x61, 0x80, 0x60, 0x64, 0x7f, 0x5b, 0x6c, 0xc1, | ||
3904 | 0xe5, 0xa9, 0x52, 0x55, 0x7d, 0x6c, 0x64, 0x7c, | ||
3905 | 0x86, 0x70, 0x73, 0x72, 0x7d, 0xca, 0xff, 0xf4, | ||
3906 | 0xff, 0xfd, 0xff, 0xe6, 0x89, 0x76, 0x8c, 0x39, | ||
3907 | 0x17, 0x11, 0x18, 0x28, 0x2a, 0x24, 0x33, 0x4d, | ||
3908 | 0x58, 0x64, 0x70, 0x6e, 0x5f, 0x4d, 0x43, 0x40, | ||
3909 | 0x5a, 0x52, 0x4d, 0x60, 0x62, 0x5e, 0x1e, 0x10, | ||
3910 | 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, 0xf2, 0xf1, | ||
3911 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3912 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3913 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
3914 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3915 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3916 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3917 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3918 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3919 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3920 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3921 | 0xed, 0xeb, 0xe9, 0xe7, 0xe5, 0xe4, 0xe1, 0xe0, | ||
3922 | 0xd8, 0xd2, 0xb9, 0x9d, 0xc8, 0xe5, 0xe3, 0xdc, | ||
3923 | 0xe7, 0xe8, 0xe8, 0xe9, 0xea, 0xea, 0xeb, 0xeb, | ||
3924 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
3925 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
3926 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
3927 | 0xe8, 0xe6, 0xe6, 0xe9, 0xec, 0xe9, 0xe2, 0xdb, | ||
3928 | 0xcf, 0xce, 0xcd, 0xc1, 0xa0, 0xa7, 0xba, 0x7e, | ||
3929 | 0xa9, 0xb3, 0xc4, 0xde, 0xcd, 0xd9, 0xe8, 0xdf, | ||
3930 | 0xd8, 0xda, 0xdc, 0xdf, 0xe0, 0xe0, 0xe0, 0xdf, | ||
3931 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
3932 | 0xe0, 0xe0, 0xdf, 0xdf, 0xde, 0xdd, 0xdd, 0xdd, | ||
3933 | 0xdb, 0xdb, 0xdc, 0xdc, 0xdd, 0xde, 0xde, 0xdf, | ||
3934 | 0xb7, 0x5c, 0x77, 0x7f, 0x63, 0x71, 0x6e, 0x77, | ||
3935 | 0x84, 0x4b, 0x6c, 0x6a, 0x6c, 0x79, 0x8f, 0x94, | ||
3936 | 0x7e, 0x7a, 0x6d, 0x60, 0x64, 0x72, 0x77, 0x71, | ||
3937 | 0x6e, 0x6b, 0x6e, 0x74, 0x70, 0x67, 0x69, 0x73, | ||
3938 | 0x6e, 0x69, 0x67, 0x66, 0x5e, 0x59, 0x65, 0x77, | ||
3939 | 0x7c, 0x73, 0x71, 0x75, 0x73, 0x68, 0x5e, 0x5b, | ||
3940 | 0x62, 0x6b, 0x6e, 0x66, 0x60, 0x60, 0x60, 0x5d, | ||
3941 | 0x49, 0x53, 0x57, 0x52, 0x43, 0x35, 0x48, 0x70, | ||
3942 | 0x89, 0x6d, 0x73, 0x77, 0x5a, 0x56, 0x63, 0x58, | ||
3943 | 0x54, 0x50, 0x66, 0x51, 0x6a, 0x83, 0x84, 0x7f, | ||
3944 | 0x74, 0x78, 0x73, 0x69, 0x69, 0x79, 0x8c, 0x95, | ||
3945 | 0x80, 0x78, 0x65, 0x6d, 0x63, 0x52, 0x72, 0x8a, | ||
3946 | 0x8a, 0x8b, 0x7e, 0x66, 0x5b, 0x68, 0x7d, 0x8a, | ||
3947 | 0x85, 0x71, 0x70, 0x76, 0x87, 0x69, 0x41, 0x6f, | ||
3948 | 0xd7, 0xcb, 0x8d, 0x5f, 0x56, 0x6f, 0x87, 0x67, | ||
3949 | 0x7d, 0x87, 0x9b, 0x85, 0x71, 0xb2, 0xdf, 0xb4, | ||
3950 | 0x69, 0x39, 0x10, 0x1c, 0x1b, 0x01, 0x39, 0xa4, | ||
3951 | 0x58, 0x3e, 0x30, 0x42, 0x5c, 0x68, 0x6a, 0x6c, | ||
3952 | 0x6f, 0x63, 0x57, 0x58, 0x62, 0x67, 0x61, 0x59, | ||
3953 | 0x61, 0x51, 0x49, 0x50, 0x50, 0x6a, 0x31, 0x03, | ||
3954 | 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, 0xf2, 0xf1, | ||
3955 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
3956 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
3957 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
3958 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3959 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
3960 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
3961 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3962 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3963 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
3964 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
3965 | 0xeb, 0xec, 0xeb, 0xe8, 0xe3, 0xdf, 0xdc, 0xdb, | ||
3966 | 0xd0, 0xd6, 0xd2, 0xad, 0xc7, 0xe5, 0xe8, 0xe6, | ||
3967 | 0xe7, 0xe8, 0xe8, 0xe9, 0xea, 0xeb, 0xeb, 0xec, | ||
3968 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
3969 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
3970 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
3971 | 0xe5, 0xe7, 0xea, 0xeb, 0xeb, 0xe7, 0xe2, 0xde, | ||
3972 | 0xd4, 0xcc, 0xdf, 0xd1, 0xb4, 0xa0, 0xc2, 0xa0, | ||
3973 | 0xb3, 0x9f, 0xab, 0xd1, 0xc2, 0xd5, 0xeb, 0xd9, | ||
3974 | 0xd7, 0xd9, 0xdb, 0xde, 0xdf, 0xe0, 0xdf, 0xdf, | ||
3975 | 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, | ||
3976 | 0xe0, 0xe0, 0xdf, 0xdf, 0xde, 0xde, 0xdd, 0xdd, | ||
3977 | 0xdb, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xdf, 0xdf, | ||
3978 | 0x70, 0x5c, 0x68, 0x85, 0x8f, 0x7f, 0x70, 0x78, | ||
3979 | 0xab, 0x55, 0x84, 0x80, 0x8a, 0x8f, 0x73, 0x65, | ||
3980 | 0x77, 0x74, 0x70, 0x6a, 0x64, 0x63, 0x6c, 0x76, | ||
3981 | 0x6d, 0x75, 0x79, 0x76, 0x6f, 0x6a, 0x66, 0x63, | ||
3982 | 0x76, 0x6d, 0x66, 0x62, 0x5a, 0x56, 0x66, 0x7c, | ||
3983 | 0x71, 0x68, 0x65, 0x6a, 0x6a, 0x61, 0x59, 0x58, | ||
3984 | 0x66, 0x6f, 0x72, 0x69, 0x61, 0x60, 0x5f, 0x5c, | ||
3985 | 0x69, 0x5d, 0x50, 0x50, 0x53, 0x45, 0x3f, 0x4c, | ||
3986 | 0x72, 0x77, 0x7c, 0x84, 0x7b, 0x59, 0x4f, 0x6b, | ||
3987 | 0x60, 0x45, 0x58, 0x48, 0x5f, 0x66, 0x61, 0x81, | ||
3988 | 0x74, 0x7b, 0x7e, 0x7e, 0x7e, 0x7a, 0x69, 0x56, | ||
3989 | 0x6d, 0x73, 0x92, 0x94, 0x8a, 0x7f, 0x69, 0x71, | ||
3990 | 0x6e, 0x75, 0x7b, 0x80, 0x89, 0x8e, 0x81, 0x6f, | ||
3991 | 0x7c, 0x55, 0x66, 0x7f, 0x92, 0x8b, 0x62, 0x61, | ||
3992 | 0xa2, 0xfd, 0xcd, 0x74, 0x67, 0x7a, 0x8b, 0x82, | ||
3993 | 0x87, 0x70, 0x73, 0x80, 0x77, 0x6d, 0x69, 0x60, | ||
3994 | 0x60, 0x55, 0x4a, 0x32, 0x37, 0x39, 0x3b, 0x77, | ||
3995 | 0x74, 0x67, 0x6b, 0x7c, 0x7b, 0x65, 0x59, 0x5e, | ||
3996 | 0x78, 0x8b, 0x9d, 0x9c, 0x84, 0x66, 0x51, 0x48, | ||
3997 | 0x38, 0x3f, 0x5e, 0x6e, 0x4f, 0x55, 0x28, 0x04, | ||
3998 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
3999 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4000 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4001 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4002 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4003 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4004 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4005 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4006 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4007 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4008 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4009 | 0xe9, 0xe9, 0xea, 0xea, 0xe9, 0xe6, 0xe4, 0xe2, | ||
4010 | 0xe4, 0xdd, 0xda, 0x9a, 0xa0, 0xc9, 0xec, 0xe3, | ||
4011 | 0xe2, 0xe5, 0xe8, 0xeb, 0xed, 0xec, 0xeb, 0xea, | ||
4012 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4013 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4014 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4015 | 0xed, 0xe7, 0xe9, 0xec, 0xe7, 0xe4, 0xe2, 0xdc, | ||
4016 | 0xe3, 0xa5, 0xb2, 0xb9, 0x8a, 0x83, 0xb6, 0xa5, | ||
4017 | 0xbf, 0xa8, 0xad, 0xb6, 0xbd, 0xdc, 0xe0, 0xdb, | ||
4018 | 0xd7, 0xe2, 0xe2, 0xe3, 0xed, 0xe8, 0xdf, 0xe4, | ||
4019 | 0xdc, 0xdd, 0xe0, 0xe2, 0xe2, 0xe2, 0xe1, 0xe1, | ||
4020 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
4021 | 0xdf, 0xe1, 0xd8, 0xdf, 0xe1, 0xea, 0xc3, 0x41, | ||
4022 | 0x46, 0x79, 0x8d, 0x7c, 0x71, 0x94, 0x8d, 0x95, | ||
4023 | 0x88, 0x57, 0x82, 0x8d, 0x6c, 0x7a, 0x71, 0x4c, | ||
4024 | 0x6d, 0x6c, 0x6a, 0x66, 0x67, 0x70, 0x7d, 0x86, | ||
4025 | 0x68, 0x6f, 0x74, 0x6e, 0x65, 0x62, 0x69, 0x72, | ||
4026 | 0x7a, 0x6f, 0x67, 0x6d, 0x7e, 0x89, 0x89, 0x84, | ||
4027 | 0x7a, 0x72, 0x71, 0x77, 0x77, 0x69, 0x5b, 0x54, | ||
4028 | 0x64, 0x68, 0x6a, 0x68, 0x65, 0x5f, 0x54, 0x4a, | ||
4029 | 0x53, 0x56, 0x56, 0x4b, 0x3b, 0x3b, 0x58, 0x78, | ||
4030 | 0x83, 0x79, 0x69, 0x6e, 0x7a, 0x67, 0x55, 0x5f, | ||
4031 | 0x5c, 0x58, 0x64, 0x50, 0x59, 0x7f, 0x7f, 0x8a, | ||
4032 | 0x6f, 0x6c, 0x75, 0x75, 0x70, 0x82, 0x8d, 0x7a, | ||
4033 | 0x93, 0x7c, 0x7a, 0x68, 0x6a, 0x7a, 0x72, 0x7d, | ||
4034 | 0x82, 0x7c, 0x77, 0x65, 0x68, 0x63, 0x82, 0x7f, | ||
4035 | 0x69, 0x65, 0x81, 0x4b, 0x31, 0x10, 0x16, 0x2f, | ||
4036 | 0x47, 0xa0, 0xef, 0xac, 0x5a, 0x65, 0x6d, 0x67, | ||
4037 | 0x8d, 0x8a, 0x8c, 0x7b, 0x7e, 0x7e, 0x6e, 0x90, | ||
4038 | 0x84, 0x8e, 0x9c, 0x88, 0x6e, 0x67, 0x5a, 0x4f, | ||
4039 | 0x59, 0x63, 0x5a, 0x49, 0x76, 0xa5, 0xaa, 0x8d, | ||
4040 | 0x65, 0x3b, 0x23, 0x33, 0x43, 0x3d, 0x36, 0x3b, | ||
4041 | 0x4e, 0x4f, 0x4e, 0x3e, 0x47, 0x45, 0x1a, 0x0b, | ||
4042 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4043 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4044 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4045 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4046 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4047 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4048 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4049 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4050 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4051 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4052 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4053 | 0xe9, 0xea, 0xea, 0xea, 0xe9, 0xe7, 0xe4, 0xe3, | ||
4054 | 0xda, 0xdc, 0xd3, 0x80, 0x8f, 0xd1, 0xdd, 0xed, | ||
4055 | 0xe3, 0xe5, 0xe8, 0xeb, 0xec, 0xec, 0xeb, 0xea, | ||
4056 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4057 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4058 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4059 | 0xec, 0xe7, 0xe9, 0xeb, 0xe7, 0xe7, 0xe1, 0xd5, | ||
4060 | 0xea, 0xcc, 0xc0, 0xc7, 0x96, 0x8f, 0xdb, 0xa7, | ||
4061 | 0xc0, 0xc1, 0x96, 0xa9, 0xda, 0xda, 0xe7, 0xe3, | ||
4062 | 0xdf, 0xe1, 0xde, 0xdb, 0xde, 0xde, 0xdc, 0xe0, | ||
4063 | 0xdf, 0xe0, 0xe1, 0xe3, 0xe3, 0xe3, 0xe1, 0xe0, | ||
4064 | 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, | ||
4065 | 0xd8, 0xdc, 0xd4, 0xd9, 0xf3, 0xcc, 0x78, 0x64, | ||
4066 | 0x7d, 0x91, 0x91, 0x85, 0x77, 0x85, 0x73, 0x7f, | ||
4067 | 0x71, 0x49, 0x68, 0x85, 0x8f, 0x97, 0x88, 0x8f, | ||
4068 | 0x85, 0x7b, 0x6b, 0x60, 0x66, 0x74, 0x78, 0x73, | ||
4069 | 0x78, 0x79, 0x78, 0x74, 0x6f, 0x6d, 0x6e, 0x70, | ||
4070 | 0x5f, 0x64, 0x6d, 0x76, 0x79, 0x73, 0x65, 0x59, | ||
4071 | 0x76, 0x73, 0x75, 0x77, 0x6f, 0x5e, 0x53, 0x53, | ||
4072 | 0x5a, 0x59, 0x57, 0x53, 0x4d, 0x4a, 0x4f, 0x56, | ||
4073 | 0x55, 0x4d, 0x47, 0x43, 0x40, 0x43, 0x52, 0x63, | ||
4074 | 0x77, 0x80, 0x81, 0x7d, 0x70, 0x50, 0x40, 0x50, | ||
4075 | 0x69, 0x58, 0x54, 0x37, 0x43, 0x70, 0x75, 0x80, | ||
4076 | 0x7d, 0x7e, 0x84, 0x85, 0x7f, 0x7e, 0x79, 0x6c, | ||
4077 | 0x72, 0x70, 0x81, 0x7b, 0x7c, 0x7f, 0x65, 0x5e, | ||
4078 | 0x6b, 0x71, 0x8f, 0x70, 0x78, 0x6c, 0x4d, 0x4f, | ||
4079 | 0x23, 0x4d, 0xa1, 0xb5, 0xf1, 0xff, 0xf4, 0xc2, | ||
4080 | 0x88, 0x59, 0x9f, 0xd6, 0xa5, 0x78, 0x77, 0x8f, | ||
4081 | 0x65, 0x7c, 0x7d, 0x65, 0x73, 0x8c, 0x87, 0x87, | ||
4082 | 0x96, 0x83, 0x74, 0x6a, 0x6e, 0x79, 0x72, 0x66, | ||
4083 | 0x69, 0x6e, 0x78, 0x91, 0x5c, 0x18, 0x1c, 0x3d, | ||
4084 | 0x23, 0x2c, 0x45, 0x5d, 0x5a, 0x48, 0x46, 0x54, | ||
4085 | 0x67, 0x5c, 0x52, 0x48, 0x5e, 0x5d, 0x22, 0x02, | ||
4086 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4087 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4088 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4089 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4090 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4091 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4092 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4093 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4094 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4095 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4096 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4097 | 0xea, 0xea, 0xeb, 0xeb, 0xe9, 0xe7, 0xe5, 0xe3, | ||
4098 | 0xe1, 0xc7, 0xd7, 0x94, 0x84, 0xe8, 0xe5, 0xd9, | ||
4099 | 0xe5, 0xe6, 0xe8, 0xea, 0xeb, 0xeb, 0xeb, 0xea, | ||
4100 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4101 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4102 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4103 | 0xea, 0xe8, 0xea, 0xe9, 0xe8, 0xeb, 0xe0, 0xca, | ||
4104 | 0xe5, 0xd4, 0xbf, 0xdd, 0xb5, 0x7b, 0xbe, 0xae, | ||
4105 | 0xaf, 0xb1, 0x81, 0x9c, 0xe5, 0xca, 0xd5, 0xd9, | ||
4106 | 0xd9, 0xd7, 0xdb, 0xdd, 0xda, 0xd9, 0xda, 0xd5, | ||
4107 | 0xe2, 0xe3, 0xe4, 0xe5, 0xe4, 0xe3, 0xe1, 0xe0, | ||
4108 | 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, | ||
4109 | 0xe8, 0xd5, 0xcf, 0xfd, 0xc7, 0x59, 0x63, 0x90, | ||
4110 | 0x8b, 0x79, 0x6c, 0x7d, 0x8b, 0x95, 0x72, 0x77, | ||
4111 | 0x70, 0x77, 0x9c, 0x97, 0x89, 0x7e, 0x61, 0x6c, | ||
4112 | 0x74, 0x80, 0x84, 0x7a, 0x6e, 0x6c, 0x6d, 0x6c, | ||
4113 | 0x66, 0x64, 0x63, 0x65, 0x69, 0x6c, 0x6b, 0x69, | ||
4114 | 0x5b, 0x63, 0x6c, 0x6f, 0x6a, 0x62, 0x5c, 0x59, | ||
4115 | 0x66, 0x67, 0x6c, 0x6e, 0x64, 0x58, 0x57, 0x5f, | ||
4116 | 0x63, 0x5b, 0x5e, 0x6c, 0x71, 0x64, 0x56, 0x52, | ||
4117 | 0x58, 0x49, 0x3c, 0x3a, 0x3f, 0x4c, 0x62, 0x75, | ||
4118 | 0x8b, 0x7d, 0x69, 0x67, 0x70, 0x66, 0x52, 0x4b, | ||
4119 | 0x5a, 0x51, 0x5c, 0x4e, 0x61, 0x87, 0x7c, 0x7a, | ||
4120 | 0x7f, 0x77, 0x6a, 0x69, 0x74, 0x78, 0x7b, 0x85, | ||
4121 | 0x7a, 0x7c, 0x7f, 0x68, 0x61, 0x72, 0x7a, 0x85, | ||
4122 | 0x7a, 0x7b, 0x57, 0x53, 0x60, 0x5f, 0xb4, 0xc7, | ||
4123 | 0xdc, 0xfc, 0xf2, 0xd0, 0xfb, 0xe3, 0xc3, 0xeb, | ||
4124 | 0xff, 0x89, 0x7e, 0xce, 0xdb, 0x88, 0x3c, 0x3b, | ||
4125 | 0x57, 0x54, 0x5a, 0x84, 0x92, 0x70, 0x68, 0x7b, | ||
4126 | 0x5c, 0x84, 0x97, 0x87, 0x75, 0x74, 0x74, 0x6d, | ||
4127 | 0x94, 0xb2, 0xa7, 0xbe, 0x60, 0x2d, 0x4c, 0x5f, | ||
4128 | 0x68, 0x60, 0x58, 0x51, 0x47, 0x3c, 0x36, 0x37, | ||
4129 | 0x4f, 0x4b, 0x4b, 0x49, 0x61, 0x60, 0x24, 0x04, | ||
4130 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4131 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4132 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4133 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4134 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4135 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4136 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4137 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4138 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4139 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4140 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4141 | 0xea, 0xeb, 0xeb, 0xeb, 0xea, 0xe8, 0xe5, 0xe4, | ||
4142 | 0xef, 0xd8, 0xdd, 0xa7, 0x8b, 0xef, 0xe9, 0xe9, | ||
4143 | 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xea, 0xea, 0xea, | ||
4144 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4145 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4146 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4147 | 0xe9, 0xe9, 0xea, 0xe8, 0xe9, 0xee, 0xe0, 0xc4, | ||
4148 | 0xe9, 0xe1, 0xbb, 0xc7, 0xbe, 0x78, 0x98, 0xb9, | ||
4149 | 0x81, 0x8e, 0xa3, 0xa4, 0xda, 0xd7, 0xe1, 0xe6, | ||
4150 | 0xca, 0xc6, 0xd3, 0xdd, 0xda, 0xe0, 0xe6, 0xdf, | ||
4151 | 0xe4, 0xe5, 0xe6, 0xe6, 0xe5, 0xe4, 0xe2, 0xe0, | ||
4152 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
4153 | 0xdf, 0xdd, 0xf6, 0xcb, 0x71, 0x64, 0x80, 0x7e, | ||
4154 | 0x90, 0x87, 0x80, 0x87, 0x82, 0x86, 0x7a, 0x9b, | ||
4155 | 0x7a, 0x6d, 0x7e, 0x6c, 0x67, 0x80, 0x78, 0x79, | ||
4156 | 0x93, 0x81, 0x6d, 0x64, 0x66, 0x6e, 0x7b, 0x86, | ||
4157 | 0x7c, 0x7c, 0x7c, 0x7a, 0x78, 0x74, 0x71, 0x6f, | ||
4158 | 0x79, 0x79, 0x78, 0x74, 0x6e, 0x6b, 0x6b, 0x6d, | ||
4159 | 0x7d, 0x76, 0x70, 0x6b, 0x61, 0x56, 0x58, 0x60, | ||
4160 | 0x6b, 0x5f, 0x5a, 0x5a, 0x4f, 0x42, 0x4c, 0x62, | ||
4161 | 0x4e, 0x4e, 0x4f, 0x4d, 0x45, 0x45, 0x58, 0x6e, | ||
4162 | 0x83, 0x85, 0x81, 0x7a, 0x74, 0x67, 0x53, 0x46, | ||
4163 | 0x52, 0x49, 0x51, 0x3b, 0x46, 0x6b, 0x65, 0x6a, | ||
4164 | 0x74, 0x81, 0x83, 0x87, 0x89, 0x74, 0x6b, 0x80, | ||
4165 | 0x66, 0x7b, 0x8a, 0x7f, 0x70, 0x64, 0x4d, 0x3a, | ||
4166 | 0x31, 0x50, 0x9e, 0xa5, 0xed, 0xff, 0xdd, 0xe5, | ||
4167 | 0xf4, 0xa7, 0x7b, 0x65, 0x40, 0x11, 0x12, 0x2c, | ||
4168 | 0x5a, 0x70, 0x58, 0x5b, 0xab, 0xd3, 0xcd, 0xe8, | ||
4169 | 0x9c, 0x8f, 0x59, 0x40, 0x39, 0x42, 0x72, 0x86, | ||
4170 | 0x97, 0x94, 0x7a, 0x7e, 0x9a, 0xad, 0xb7, 0xb2, | ||
4171 | 0xb9, 0xc2, 0xa7, 0xf4, 0x90, 0x45, 0x57, 0x5a, | ||
4172 | 0x4c, 0x3f, 0x32, 0x33, 0x43, 0x4c, 0x42, 0x32, | ||
4173 | 0x35, 0x49, 0x5e, 0x57, 0x59, 0x4c, 0x1c, 0x0d, | ||
4174 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4175 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4176 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4177 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4178 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4179 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4180 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4181 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4182 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4183 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4184 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4185 | 0xeb, 0xeb, 0xec, 0xec, 0xea, 0xe8, 0xe6, 0xe4, | ||
4186 | 0xe7, 0xd7, 0xe1, 0xcf, 0x9c, 0xe4, 0xef, 0xed, | ||
4187 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe9, 0xe9, 0xea, 0xeb, | ||
4188 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4189 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4190 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4191 | 0xe9, 0xe9, 0xeb, 0xe8, 0xe9, 0xef, 0xe2, 0xc5, | ||
4192 | 0xc1, 0xe4, 0xc1, 0xb0, 0xc0, 0x95, 0x95, 0xa3, | ||
4193 | 0xab, 0xb3, 0xd4, 0xa7, 0xc2, 0xdf, 0xe2, 0xd1, | ||
4194 | 0xda, 0xd1, 0xd6, 0xd9, 0xd4, 0xdc, 0xe7, 0xe3, | ||
4195 | 0xe3, 0xe4, 0xe5, 0xe6, 0xe5, 0xe4, 0xe2, 0xe1, | ||
4196 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
4197 | 0xdf, 0xff, 0xd6, 0x62, 0x4a, 0x8b, 0x9b, 0x86, | ||
4198 | 0x71, 0x81, 0x8e, 0x96, 0x87, 0x80, 0x65, 0x79, | ||
4199 | 0x63, 0x55, 0x74, 0x81, 0x89, 0x8c, 0x6f, 0x73, | ||
4200 | 0x7f, 0x71, 0x72, 0x82, 0x84, 0x74, 0x6e, 0x75, | ||
4201 | 0x63, 0x6d, 0x76, 0x78, 0x73, 0x71, 0x75, 0x7b, | ||
4202 | 0x78, 0x7b, 0x81, 0x88, 0x8d, 0x8d, 0x87, 0x82, | ||
4203 | 0x7f, 0x70, 0x65, 0x65, 0x68, 0x69, 0x6e, 0x75, | ||
4204 | 0x73, 0x5c, 0x50, 0x58, 0x5c, 0x53, 0x50, 0x56, | ||
4205 | 0x48, 0x48, 0x47, 0x40, 0x37, 0x40, 0x63, 0x87, | ||
4206 | 0x79, 0x7a, 0x78, 0x75, 0x78, 0x79, 0x65, 0x48, | ||
4207 | 0x38, 0x3f, 0x57, 0x48, 0x50, 0x73, 0x73, 0x7f, | ||
4208 | 0x73, 0x71, 0x64, 0x66, 0x75, 0x71, 0x73, 0x8d, | ||
4209 | 0x85, 0x5f, 0x2a, 0x1c, 0x47, 0x8f, 0xcc, 0xe2, | ||
4210 | 0xf7, 0xff, 0xac, 0xb9, 0xf3, 0x8f, 0x53, 0x3c, | ||
4211 | 0x37, 0x3e, 0x28, 0x3b, 0x54, 0x36, 0x14, 0x27, | ||
4212 | 0x4b, 0x3a, 0x27, 0x5b, 0xb1, 0xc1, 0xa7, 0xa0, | ||
4213 | 0xad, 0xcd, 0xe2, 0xf8, 0xd5, 0x8d, 0x69, 0x45, | ||
4214 | 0x23, 0x3a, 0x53, 0x9e, 0xcd, 0xb7, 0xb0, 0xb6, | ||
4215 | 0x9c, 0xa2, 0x94, 0xff, 0xb4, 0x4d, 0x5a, 0x63, | ||
4216 | 0x59, 0x5c, 0x58, 0x4c, 0x40, 0x39, 0x35, 0x31, | ||
4217 | 0x4d, 0x6a, 0x84, 0x72, 0x60, 0x46, 0x17, 0x10, | ||
4218 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4219 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4220 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4221 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4222 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4223 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4224 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4225 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4226 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4227 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4228 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4229 | 0xeb, 0xec, 0xec, 0xec, 0xeb, 0xe9, 0xe6, 0xe5, | ||
4230 | 0xeb, 0xc3, 0xba, 0xba, 0x86, 0xc4, 0xe9, 0xe1, | ||
4231 | 0xea, 0xe9, 0xe8, 0xe7, 0xe7, 0xe8, 0xea, 0xeb, | ||
4232 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4233 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4234 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4235 | 0xe9, 0xe8, 0xea, 0xea, 0xea, 0xee, 0xe4, 0xcf, | ||
4236 | 0xcd, 0xeb, 0xc9, 0xb3, 0xb2, 0x7b, 0x88, 0xae, | ||
4237 | 0x81, 0x8d, 0xb1, 0xad, 0xca, 0xd6, 0xdd, 0xdc, | ||
4238 | 0xe3, 0xdf, 0xde, 0xdd, 0xd9, 0xdb, 0xdf, 0xdd, | ||
4239 | 0xdf, 0xe1, 0xe3, 0xe4, 0xe5, 0xe4, 0xe3, 0xe3, | ||
4240 | 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, | ||
4241 | 0xf3, 0xc8, 0x7f, 0x6d, 0x7b, 0x7e, 0x88, 0x87, | ||
4242 | 0x92, 0x8c, 0x7c, 0x78, 0x79, 0x8f, 0x80, 0x91, | ||
4243 | 0x74, 0x7e, 0x8c, 0x7a, 0x80, 0x82, 0x66, 0x7a, | ||
4244 | 0x86, 0x7d, 0x7e, 0x81, 0x75, 0x63, 0x67, 0x79, | ||
4245 | 0x69, 0x75, 0x7f, 0x7d, 0x71, 0x6a, 0x6c, 0x71, | ||
4246 | 0x7a, 0x7c, 0x82, 0x8a, 0x90, 0x90, 0x8a, 0x85, | ||
4247 | 0x81, 0x71, 0x64, 0x64, 0x66, 0x63, 0x61, 0x62, | ||
4248 | 0x4e, 0x54, 0x64, 0x72, 0x6b, 0x58, 0x50, 0x54, | ||
4249 | 0x40, 0x40, 0x40, 0x3e, 0x37, 0x38, 0x4b, 0x62, | ||
4250 | 0x81, 0x87, 0x86, 0x72, 0x62, 0x65, 0x5b, 0x3e, | ||
4251 | 0x42, 0x48, 0x5c, 0x43, 0x41, 0x60, 0x65, 0x76, | ||
4252 | 0x75, 0x85, 0x90, 0x8d, 0x78, 0x4e, 0x2b, 0x22, | ||
4253 | 0x59, 0xa1, 0xe8, 0xff, 0xff, 0xe1, 0xde, 0xdf, | ||
4254 | 0xe3, 0x81, 0x5e, 0x34, 0x40, 0x2e, 0x13, 0x3b, | ||
4255 | 0x26, 0x31, 0x50, 0x74, 0x3d, 0x2b, 0x2e, 0x17, | ||
4256 | 0x41, 0x3e, 0x3e, 0x31, 0x36, 0x98, 0xd1, 0x80, | ||
4257 | 0x1d, 0x3b, 0x60, 0x86, 0xa0, 0xc2, 0xe8, 0xe8, | ||
4258 | 0xd5, 0xbb, 0x6d, 0x73, 0xa9, 0xb7, 0xba, 0xa7, | ||
4259 | 0xae, 0xbf, 0xa6, 0xf3, 0xb0, 0x5d, 0x67, 0x59, | ||
4260 | 0x70, 0x6a, 0x5d, 0x48, 0x33, 0x2d, 0x3e, 0x54, | ||
4261 | 0x5a, 0x6d, 0x7e, 0x6f, 0x68, 0x53, 0x1f, 0x0f, | ||
4262 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4263 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4264 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4265 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4266 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4267 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4268 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4269 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4270 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4271 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4272 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4273 | 0xec, 0xec, 0xed, 0xed, 0xeb, 0xe9, 0xe7, 0xe5, | ||
4274 | 0xeb, 0xe4, 0xc4, 0xb8, 0xaf, 0xcb, 0xce, 0xe5, | ||
4275 | 0xec, 0xea, 0xe8, 0xe7, 0xe6, 0xe8, 0xea, 0xeb, | ||
4276 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4277 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4278 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4279 | 0xeb, 0xe7, 0xea, 0xed, 0xeb, 0xeb, 0xe7, 0xdb, | ||
4280 | 0xc3, 0xce, 0xcc, 0xc4, 0xc7, 0x83, 0x7f, 0xd7, | ||
4281 | 0xb2, 0x7f, 0x74, 0x9c, 0xca, 0xd0, 0xcc, 0xd1, | ||
4282 | 0xd6, 0xdb, 0xdc, 0xdd, 0xe3, 0xe4, 0xe2, 0xe5, | ||
4283 | 0xdb, 0xdd, 0xdf, 0xe2, 0xe4, 0xe5, 0xe4, 0xe4, | ||
4284 | 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, | ||
4285 | 0xe1, 0x6c, 0x5f, 0x76, 0x86, 0x92, 0x7a, 0x82, | ||
4286 | 0x85, 0x8a, 0x84, 0x7b, 0x6c, 0x76, 0x6f, 0x8e, | ||
4287 | 0x62, 0x6b, 0x78, 0x61, 0x73, 0x98, 0x89, 0x8b, | ||
4288 | 0x96, 0x89, 0x77, 0x6c, 0x6c, 0x6f, 0x6c, 0x66, | ||
4289 | 0x5c, 0x65, 0x6f, 0x73, 0x70, 0x6d, 0x6d, 0x6f, | ||
4290 | 0x87, 0x86, 0x82, 0x7a, 0x73, 0x71, 0x75, 0x7a, | ||
4291 | 0x6f, 0x6c, 0x6f, 0x78, 0x79, 0x71, 0x6b, 0x6c, | ||
4292 | 0x6d, 0x63, 0x59, 0x57, 0x5b, 0x60, 0x63, 0x66, | ||
4293 | 0x59, 0x51, 0x49, 0x45, 0x44, 0x4d, 0x66, 0x7e, | ||
4294 | 0x79, 0x74, 0x72, 0x70, 0x78, 0x88, 0x6a, 0x2b, | ||
4295 | 0x30, 0x3e, 0x5e, 0x52, 0x53, 0x69, 0x5c, 0x60, | ||
4296 | 0x8a, 0x5a, 0x36, 0x46, 0x86, 0xd2, 0xf9, 0xf7, | ||
4297 | 0xf8, 0xff, 0xff, 0xff, 0xd6, 0x83, 0x4e, 0x2a, | ||
4298 | 0x1f, 0x31, 0x44, 0x47, 0x4e, 0x66, 0x94, 0x53, | ||
4299 | 0x20, 0x46, 0x3b, 0x65, 0x61, 0x42, 0x2d, 0x45, | ||
4300 | 0x58, 0x51, 0x46, 0x2c, 0x18, 0x74, 0xe0, 0xc4, | ||
4301 | 0x7c, 0x26, 0x18, 0x3e, 0x39, 0x1e, 0x2f, 0x66, | ||
4302 | 0x8b, 0xd7, 0xd3, 0xcf, 0xc7, 0xa7, 0xb0, 0xaf, | ||
4303 | 0xaf, 0xa6, 0x92, 0xdd, 0xb7, 0x43, 0x3a, 0x39, | ||
4304 | 0x42, 0x35, 0x31, 0x38, 0x38, 0x33, 0x3f, 0x54, | ||
4305 | 0x50, 0x58, 0x62, 0x5a, 0x62, 0x57, 0x22, 0x0c, | ||
4306 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4307 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4308 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4309 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4310 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4311 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4312 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4313 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4314 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4315 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4316 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4317 | 0xec, 0xed, 0xed, 0xed, 0xec, 0xe9, 0xe7, 0xe5, | ||
4318 | 0xed, 0xf4, 0xe3, 0xc4, 0xad, 0xba, 0xc0, 0xe9, | ||
4319 | 0xed, 0xeb, 0xe8, 0xe6, 0xe6, 0xe7, 0xea, 0xeb, | ||
4320 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4321 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4322 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4323 | 0xec, 0xe6, 0xea, 0xef, 0xeb, 0xe9, 0xe9, 0xe4, | ||
4324 | 0xc8, 0xcc, 0xce, 0x9d, 0xb9, 0x9b, 0x68, 0xc8, | ||
4325 | 0xb5, 0x98, 0xb1, 0xd3, 0xd1, 0xcd, 0xca, 0xdd, | ||
4326 | 0xe2, 0xe6, 0xdc, 0xd6, 0xde, 0xdd, 0xdc, 0xe6, | ||
4327 | 0xd8, 0xda, 0xdd, 0xe1, 0xe3, 0xe5, 0xe5, 0xe5, | ||
4328 | 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
4329 | 0x68, 0x64, 0x6c, 0x7a, 0x8d, 0x94, 0x88, 0x82, | ||
4330 | 0x7f, 0x82, 0x83, 0x88, 0x7d, 0x7e, 0x6c, 0x88, | ||
4331 | 0x62, 0x5c, 0x88, 0x80, 0x62, 0x6c, 0x6b, 0x6e, | ||
4332 | 0x79, 0x8a, 0x8a, 0x75, 0x6b, 0x71, 0x6c, 0x5b, | ||
4333 | 0x5b, 0x5e, 0x63, 0x69, 0x6b, 0x68, 0x62, 0x5d, | ||
4334 | 0x65, 0x6d, 0x72, 0x6e, 0x68, 0x6c, 0x7c, 0x8c, | ||
4335 | 0x7c, 0x84, 0x94, 0x9f, 0x98, 0x86, 0x7b, 0x7b, | ||
4336 | 0x6a, 0x68, 0x62, 0x59, 0x55, 0x58, 0x5d, 0x5e, | ||
4337 | 0x53, 0x50, 0x4c, 0x48, 0x42, 0x45, 0x5b, 0x72, | ||
4338 | 0x71, 0x7b, 0x82, 0x75, 0x6d, 0x7f, 0x75, 0x48, | ||
4339 | 0x4f, 0x4e, 0x5d, 0x46, 0x49, 0x64, 0x5a, 0x5d, | ||
4340 | 0x7b, 0x98, 0xcf, 0xf6, 0xff, 0xff, 0xf3, 0xcd, | ||
4341 | 0xbe, 0x7c, 0x26, 0x18, 0x1e, 0x23, 0x49, 0x5b, | ||
4342 | 0x2d, 0x3d, 0x54, 0x59, 0x8a, 0x7a, 0x4a, 0x2e, | ||
4343 | 0x20, 0x48, 0x37, 0x61, 0x5f, 0x4f, 0x3e, 0x49, | ||
4344 | 0x54, 0x53, 0x2a, 0x2f, 0x49, 0x5a, 0x95, 0xc3, | ||
4345 | 0xc8, 0x5a, 0x33, 0x33, 0x28, 0x1f, 0x22, 0x48, | ||
4346 | 0x3f, 0x2f, 0x03, 0x57, 0xbb, 0xbc, 0xc0, 0xbe, | ||
4347 | 0xb4, 0xa5, 0x9c, 0xdc, 0xb9, 0x29, 0x1d, 0x34, | ||
4348 | 0x42, 0x37, 0x3c, 0x4c, 0x47, 0x36, 0x3e, 0x58, | ||
4349 | 0x55, 0x5b, 0x62, 0x55, 0x5a, 0x4f, 0x1b, 0x06, | ||
4350 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4351 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4352 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
4353 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4354 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4355 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4356 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4357 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4358 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4359 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4360 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4361 | 0xee, 0xee, 0xe9, 0xe6, 0xea, 0xef, 0xe9, 0xdd, | ||
4362 | 0xd7, 0xf0, 0xeb, 0xc4, 0xb3, 0xb8, 0xba, 0xde, | ||
4363 | 0xf4, 0xeb, 0xd9, 0xf5, 0xe8, 0xe8, 0xee, 0xed, | ||
4364 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4365 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4366 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4367 | 0xeb, 0xec, 0xed, 0xeb, 0xe9, 0xe9, 0xec, 0xf0, | ||
4368 | 0xcd, 0xbc, 0xe0, 0xba, 0x9c, 0x95, 0x90, 0xaa, | ||
4369 | 0xad, 0xa6, 0xa7, 0xcb, 0xd2, 0xb8, 0xc5, 0xe2, | ||
4370 | 0xd2, 0xc9, 0xd0, 0xd8, 0xd9, 0xe4, 0xe7, 0xd5, | ||
4371 | 0xd9, 0xe8, 0xdd, 0xe0, 0xe6, 0xe2, 0xe6, 0xdd, | ||
4372 | 0xe1, 0xdf, 0xe1, 0xe8, 0xd2, 0xf7, 0xe4, 0x67, | ||
4373 | 0x64, 0x8e, 0x93, 0x90, 0x91, 0x83, 0x84, 0x93, | ||
4374 | 0x9f, 0x8b, 0x69, 0x62, 0x7c, 0x86, 0x7a, 0x76, | ||
4375 | 0x4a, 0x67, 0x7b, 0x84, 0x85, 0x75, 0x69, 0x6f, | ||
4376 | 0x82, 0x82, 0x7b, 0x6d, 0x65, 0x69, 0x74, 0x7d, | ||
4377 | 0x74, 0x6e, 0x6f, 0x76, 0x73, 0x65, 0x5d, 0x5f, | ||
4378 | 0x60, 0x62, 0x63, 0x65, 0x6b, 0x7a, 0x8d, 0x9b, | ||
4379 | 0x90, 0x76, 0x66, 0x6f, 0x7b, 0x77, 0x6a, 0x63, | ||
4380 | 0x57, 0x58, 0x4d, 0x3e, 0x3f, 0x50, 0x5c, 0x5d, | ||
4381 | 0x42, 0x47, 0x46, 0x3d, 0x3e, 0x53, 0x73, 0x8a, | ||
4382 | 0x89, 0x64, 0x69, 0x60, 0x68, 0x7f, 0x61, 0x4c, | ||
4383 | 0x54, 0x61, 0x55, 0x2b, 0x4b, 0x57, 0x55, 0xcd, | ||
4384 | 0xff, 0xf3, 0xf6, 0xed, 0x84, 0x3b, 0x43, 0x1b, | ||
4385 | 0x24, 0x31, 0x2e, 0x2f, 0x2e, 0x2f, 0x28, 0x48, | ||
4386 | 0x62, 0x3e, 0x5f, 0x71, 0x5f, 0x5d, 0x4a, 0x32, | ||
4387 | 0x48, 0x51, 0x5e, 0x6e, 0x6e, 0x52, 0x44, 0x55, | ||
4388 | 0x58, 0x41, 0x2f, 0x52, 0x67, 0x30, 0x30, 0x8f, | ||
4389 | 0xe3, 0xe3, 0x5c, 0x12, 0x22, 0x2b, 0x3c, 0x2a, | ||
4390 | 0x15, 0x0c, 0x07, 0x39, 0xbe, 0xce, 0xba, 0xbc, | ||
4391 | 0xab, 0xab, 0x9d, 0xe8, 0xff, 0x71, 0x4b, 0x62, | ||
4392 | 0x4b, 0x38, 0x2e, 0x3a, 0x4a, 0x50, 0x52, 0x55, | ||
4393 | 0x43, 0x5b, 0x59, 0x6d, 0x60, 0x47, 0x1f, 0x11, | ||
4394 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4395 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4396 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
4397 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4398 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4399 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4400 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4401 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4402 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4403 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4404 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4405 | 0xf0, 0xec, 0xe9, 0xe9, 0xe9, 0xe6, 0xe3, 0xe2, | ||
4406 | 0xd8, 0xe7, 0xf4, 0xc2, 0x9b, 0xc0, 0xcb, 0xd1, | ||
4407 | 0xd6, 0xea, 0xda, 0xe7, 0xe7, 0xed, 0xea, 0xea, | ||
4408 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4409 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4410 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4411 | 0xeb, 0xec, 0xed, 0xeb, 0xe8, 0xe8, 0xec, 0xef, | ||
4412 | 0xd6, 0xa2, 0xe0, 0xcf, 0x8a, 0x7b, 0x80, 0xab, | ||
4413 | 0x9a, 0x94, 0x8e, 0xc6, 0xcc, 0xbb, 0xcb, 0xea, | ||
4414 | 0xd2, 0xd4, 0xe2, 0xe7, 0xde, 0xdf, 0xe0, 0xd3, | ||
4415 | 0xd3, 0xdc, 0xdd, 0xe5, 0xe7, 0xdc, 0xdd, 0xe5, | ||
4416 | 0xdf, 0xe1, 0xe2, 0xe6, 0xfb, 0xce, 0x66, 0x5c, | ||
4417 | 0x5f, 0x50, 0x46, 0x52, 0x47, 0x44, 0x50, 0x30, | ||
4418 | 0x2b, 0x4c, 0x65, 0x74, 0x7f, 0x79, 0x76, 0x83, | ||
4419 | 0x64, 0x72, 0x88, 0x87, 0x81, 0x96, 0x91, 0x62, | ||
4420 | 0x6c, 0x7e, 0x85, 0x7a, 0x73, 0x74, 0x6c, 0x5c, | ||
4421 | 0x61, 0x5f, 0x64, 0x6f, 0x71, 0x6a, 0x68, 0x6b, | ||
4422 | 0x74, 0x79, 0x7b, 0x73, 0x69, 0x68, 0x74, 0x80, | ||
4423 | 0x7b, 0x77, 0x79, 0x80, 0x7b, 0x6e, 0x69, 0x6d, | ||
4424 | 0x5c, 0x61, 0x5f, 0x56, 0x54, 0x59, 0x58, 0x51, | ||
4425 | 0x41, 0x43, 0x42, 0x3d, 0x3c, 0x48, 0x61, 0x76, | ||
4426 | 0x8c, 0x7d, 0x8d, 0x77, 0x5d, 0x5e, 0x4b, 0x46, | ||
4427 | 0x4a, 0x57, 0x48, 0x28, 0x48, 0x5a, 0x5f, 0xb4, | ||
4428 | 0x8e, 0x4a, 0x13, 0x42, 0x56, 0x27, 0x28, 0x3f, | ||
4429 | 0x41, 0x39, 0x51, 0x58, 0x3e, 0x48, 0x63, 0x85, | ||
4430 | 0x90, 0x7d, 0x86, 0x86, 0x80, 0x69, 0x47, 0x51, | ||
4431 | 0x65, 0x8d, 0x8d, 0x84, 0x8f, 0x79, 0x51, 0x4d, | ||
4432 | 0x43, 0x37, 0x52, 0x66, 0x46, 0x2f, 0x35, 0x34, | ||
4433 | 0x9a, 0xdc, 0xbd, 0x3e, 0x12, 0x3f, 0x3d, 0x17, | ||
4434 | 0x1b, 0x16, 0x11, 0x3b, 0xb3, 0xb4, 0x92, 0x8a, | ||
4435 | 0xa1, 0xbc, 0xaa, 0xca, 0xe3, 0x6d, 0x48, 0x44, | ||
4436 | 0x39, 0x47, 0x4e, 0x41, 0x2e, 0x29, 0x37, 0x47, | ||
4437 | 0x48, 0x51, 0x3d, 0x42, 0x3d, 0x37, 0x14, 0x04, | ||
4438 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4439 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4440 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
4441 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4442 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4443 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4444 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4445 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4446 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4447 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4448 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4449 | 0xf1, 0xeb, 0xea, 0xec, 0xe8, 0xdf, 0xde, 0xe4, | ||
4450 | 0xc9, 0xce, 0xf9, 0xe3, 0xad, 0xc1, 0xbe, 0xd0, | ||
4451 | 0xc6, 0xdf, 0xdb, 0xe6, 0xec, 0xf4, 0xf0, 0xee, | ||
4452 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4453 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4454 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4455 | 0xeb, 0xec, 0xed, 0xea, 0xe8, 0xe8, 0xeb, 0xee, | ||
4456 | 0xe9, 0xa1, 0xc7, 0xd5, 0xb3, 0xa5, 0x8e, 0xbd, | ||
4457 | 0xa6, 0x9c, 0x89, 0xc3, 0xcb, 0xbe, 0xd0, 0xde, | ||
4458 | 0xde, 0xe5, 0xda, 0xce, 0xda, 0xe6, 0xdd, 0xd1, | ||
4459 | 0xec, 0xe8, 0xe6, 0xe3, 0xe4, 0xe1, 0xde, 0xed, | ||
4460 | 0xe9, 0xf9, 0xfd, 0xff, 0x9c, 0x1e, 0x43, 0x82, | ||
4461 | 0xa0, 0xbf, 0xc9, 0xd3, 0xe0, 0xfc, 0xee, 0x92, | ||
4462 | 0x45, 0x5c, 0x6d, 0x7e, 0x90, 0x8b, 0x7c, 0x7d, | ||
4463 | 0x63, 0x6a, 0x7e, 0x7f, 0x6c, 0x6a, 0x6a, 0x5b, | ||
4464 | 0x6d, 0x6c, 0x70, 0x74, 0x70, 0x67, 0x65, 0x6a, | ||
4465 | 0x64, 0x67, 0x6d, 0x6f, 0x68, 0x5e, 0x5c, 0x62, | ||
4466 | 0x6a, 0x71, 0x74, 0x6a, 0x5d, 0x5d, 0x6d, 0x7d, | ||
4467 | 0x7a, 0x7d, 0x83, 0x84, 0x78, 0x6b, 0x6a, 0x73, | ||
4468 | 0x78, 0x79, 0x74, 0x69, 0x63, 0x63, 0x60, 0x5a, | ||
4469 | 0x52, 0x58, 0x50, 0x3e, 0x3b, 0x4e, 0x63, 0x6b, | ||
4470 | 0x5b, 0x43, 0x48, 0x5b, 0x95, 0xce, 0xa8, 0x64, | ||
4471 | 0x59, 0x69, 0x5e, 0x54, 0x68, 0x5e, 0x34, 0x2e, | ||
4472 | 0x39, 0x55, 0x47, 0x2c, 0x32, 0x5c, 0x67, 0x2d, | ||
4473 | 0x54, 0x2e, 0x5e, 0x95, 0x95, 0x73, 0x5e, 0x71, | ||
4474 | 0x54, 0x5e, 0x87, 0x8e, 0x74, 0x53, 0x4a, 0x77, | ||
4475 | 0x98, 0xa5, 0x97, 0x77, 0x66, 0x62, 0x5e, 0x5a, | ||
4476 | 0x37, 0x55, 0x5a, 0x41, 0x37, 0x45, 0x48, 0x39, | ||
4477 | 0x64, 0xae, 0xcc, 0x8d, 0x32, 0x1c, 0x35, 0x2d, | ||
4478 | 0x25, 0x1c, 0x0f, 0x31, 0xae, 0xc4, 0xb8, 0xbd, | ||
4479 | 0xc1, 0xb9, 0x98, 0xbe, 0xe7, 0x7c, 0x5b, 0x67, | ||
4480 | 0x64, 0x74, 0x76, 0x5e, 0x46, 0x41, 0x43, 0x43, | ||
4481 | 0x60, 0x6d, 0x60, 0x60, 0x54, 0x4a, 0x1c, 0x08, | ||
4482 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4483 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4484 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
4485 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4486 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4487 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4488 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4489 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4490 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4491 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4492 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4493 | 0xee, 0xeb, 0xeb, 0xed, 0xea, 0xe2, 0xdd, 0xdd, | ||
4494 | 0xcf, 0xc5, 0xe3, 0xdf, 0xbe, 0xc3, 0xad, 0xe5, | ||
4495 | 0xd6, 0xd2, 0xd8, 0xe9, 0xea, 0xee, 0xef, 0xe5, | ||
4496 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4497 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4498 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4499 | 0xeb, 0xec, 0xec, 0xea, 0xe7, 0xe7, 0xea, 0xed, | ||
4500 | 0xea, 0xbc, 0xcc, 0xe1, 0xbc, 0x98, 0x84, 0xad, | ||
4501 | 0xa0, 0x9e, 0x9a, 0xc8, 0xdf, 0xcc, 0xe0, 0xd0, | ||
4502 | 0xea, 0xea, 0xca, 0xb9, 0xc3, 0xb9, 0xb6, 0xd7, | ||
4503 | 0xe1, 0xe7, 0xee, 0xde, 0xe0, 0xef, 0xef, 0xff, | ||
4504 | 0xd7, 0x90, 0x45, 0x67, 0xc7, 0xf4, 0xff, 0xe3, | ||
4505 | 0xa5, 0x99, 0x8b, 0x7d, 0x67, 0x5b, 0x58, 0x4c, | ||
4506 | 0x55, 0x6b, 0x76, 0x7a, 0x81, 0x7f, 0x7f, 0x8e, | ||
4507 | 0x4d, 0x6b, 0x72, 0x74, 0x7e, 0x6f, 0x69, 0x87, | ||
4508 | 0xa2, 0x7c, 0x63, 0x6b, 0x74, 0x6e, 0x6a, 0x70, | ||
4509 | 0x73, 0x6b, 0x65, 0x68, 0x6c, 0x69, 0x5f, 0x56, | ||
4510 | 0x56, 0x60, 0x6a, 0x6c, 0x69, 0x6b, 0x75, 0x7e, | ||
4511 | 0x76, 0x6f, 0x6a, 0x6b, 0x6f, 0x72, 0x76, 0x79, | ||
4512 | 0x80, 0x80, 0x7b, 0x73, 0x6c, 0x67, 0x62, 0x5d, | ||
4513 | 0x4e, 0x4f, 0x4c, 0x3f, 0x30, 0x38, 0x60, 0x89, | ||
4514 | 0xb6, 0xe5, 0xfa, 0xc7, 0x9a, 0xa1, 0x8d, 0x59, | ||
4515 | 0x33, 0x60, 0x69, 0x5b, 0x51, 0x4e, 0x53, 0x4e, | ||
4516 | 0x6b, 0x4f, 0x41, 0x4a, 0x50, 0x5c, 0x67, 0x5a, | ||
4517 | 0x55, 0x61, 0x69, 0x2b, 0x28, 0x32, 0x2b, 0x3f, | ||
4518 | 0x51, 0x2d, 0x5b, 0x7d, 0x6c, 0x6c, 0x78, 0x88, | ||
4519 | 0x88, 0x71, 0x94, 0x9e, 0x67, 0x60, 0x79, 0x62, | ||
4520 | 0x61, 0x51, 0x41, 0x41, 0x4c, 0x4c, 0x40, 0x37, | ||
4521 | 0x25, 0x85, 0xe5, 0xec, 0x81, 0x29, 0x2d, 0x32, | ||
4522 | 0x24, 0x25, 0x1d, 0x3b, 0xb3, 0xc6, 0xb5, 0xb4, | ||
4523 | 0xb0, 0x99, 0x8c, 0xd2, 0xff, 0x94, 0x4c, 0x4c, | ||
4524 | 0x4b, 0x51, 0x55, 0x5b, 0x67, 0x74, 0x75, 0x6f, | ||
4525 | 0x54, 0x50, 0x44, 0x50, 0x57, 0x56, 0x21, 0x0f, | ||
4526 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4527 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4528 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
4529 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4530 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4531 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4532 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4533 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4534 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4535 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4536 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4537 | 0xea, 0xec, 0xec, 0xec, 0xee, 0xec, 0xe1, 0xd4, | ||
4538 | 0xd4, 0xcd, 0xd1, 0xc5, 0xb4, 0xc8, 0xa0, 0xd1, | ||
4539 | 0xd7, 0xc3, 0xc8, 0xd6, 0xe5, 0xee, 0xee, 0xe4, | ||
4540 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4541 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4542 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4543 | 0xec, 0xed, 0xec, 0xea, 0xe6, 0xe6, 0xe8, 0xeb, | ||
4544 | 0xf8, 0xc5, 0xc0, 0xec, 0xc2, 0x84, 0x8c, 0x8b, | ||
4545 | 0x9b, 0x86, 0x9f, 0xc8, 0xdc, 0xaa, 0xdc, 0xf1, | ||
4546 | 0xdb, 0xe9, 0xd0, 0xac, 0xaf, 0xc4, 0xd0, 0xd7, | ||
4547 | 0xc9, 0xca, 0xd7, 0xda, 0xe1, 0xc9, 0x80, 0x54, | ||
4548 | 0x94, 0xd5, 0xff, 0xeb, 0xb7, 0xcb, 0xf5, 0xeb, | ||
4549 | 0x98, 0x8f, 0xa3, 0xa7, 0xaf, 0xbf, 0x97, 0x62, | ||
4550 | 0x6b, 0x83, 0x8e, 0x8c, 0x89, 0x7b, 0x74, 0x80, | ||
4551 | 0x5a, 0x84, 0x7c, 0x6c, 0x8b, 0x97, 0x83, 0x7f, | ||
4552 | 0x80, 0x77, 0x6c, 0x68, 0x6b, 0x6d, 0x6a, 0x66, | ||
4553 | 0x66, 0x6a, 0x6e, 0x6d, 0x6b, 0x6b, 0x6c, 0x6c, | ||
4554 | 0x68, 0x6e, 0x78, 0x7f, 0x81, 0x7c, 0x72, 0x6b, | ||
4555 | 0x66, 0x60, 0x5b, 0x5f, 0x6f, 0x7f, 0x85, 0x84, | ||
4556 | 0x70, 0x74, 0x7b, 0x7f, 0x79, 0x6a, 0x5b, 0x52, | ||
4557 | 0x4c, 0x4f, 0x40, 0x37, 0x66, 0xbb, 0xf3, 0xfc, | ||
4558 | 0xf5, 0xe4, 0xae, 0x67, 0x44, 0x59, 0x65, 0x44, | ||
4559 | 0x50, 0x62, 0x58, 0x4d, 0x54, 0x5e, 0x54, 0x2e, | ||
4560 | 0x72, 0x7d, 0x6a, 0x58, 0x64, 0x56, 0x42, 0x5b, | ||
4561 | 0x42, 0x6e, 0x95, 0x3c, 0x3e, 0x55, 0x47, 0x40, | ||
4562 | 0x6d, 0x45, 0x64, 0x72, 0x56, 0x5b, 0x6f, 0x82, | ||
4563 | 0x5a, 0x41, 0x71, 0x8f, 0x69, 0x6f, 0x7e, 0x4d, | ||
4564 | 0x5b, 0x70, 0x69, 0x59, 0x57, 0x4a, 0x43, 0x54, | ||
4565 | 0x49, 0x2c, 0x8e, 0xfa, 0xeb, 0x75, 0x17, 0x2b, | ||
4566 | 0x36, 0x39, 0x2c, 0x3c, 0xab, 0xc0, 0xb1, 0xaf, | ||
4567 | 0xcd, 0xbe, 0xa9, 0xc6, 0xfa, 0x9d, 0x5c, 0x59, | ||
4568 | 0x3c, 0x3a, 0x3e, 0x44, 0x44, 0x3e, 0x3e, 0x43, | ||
4569 | 0x50, 0x4c, 0x57, 0x73, 0x7d, 0x70, 0x25, 0x10, | ||
4570 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4571 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4572 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
4573 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4574 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4575 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4576 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4577 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4578 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4579 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4580 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4581 | 0xea, 0xec, 0xec, 0xea, 0xef, 0xf2, 0xe6, 0xd6, | ||
4582 | 0xbf, 0xc4, 0xd3, 0xd8, 0xbc, 0xd4, 0xb3, 0xd5, | ||
4583 | 0xd8, 0xc9, 0xc5, 0xc4, 0xe9, 0xf5, 0xed, 0xe9, | ||
4584 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4585 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4586 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4587 | 0xec, 0xed, 0xec, 0xe9, 0xe5, 0xe5, 0xe7, 0xea, | ||
4588 | 0xe8, 0xd2, 0xbd, 0xe8, 0xdb, 0x7c, 0xa0, 0xb2, | ||
4589 | 0x86, 0x78, 0x8e, 0x99, 0xc2, 0xcb, 0xe9, 0xcd, | ||
4590 | 0xac, 0x9a, 0xb8, 0xea, 0xf1, 0xe7, 0xea, 0xed, | ||
4591 | 0xeb, 0xe9, 0xe9, 0xe8, 0xea, 0xe6, 0xe1, 0xef, | ||
4592 | 0xbe, 0xaf, 0xba, 0xde, 0xd8, 0xf3, 0xfa, 0xe3, | ||
4593 | 0xac, 0xb6, 0xc4, 0xc2, 0xca, 0xb9, 0x7d, 0x5e, | ||
4594 | 0x5f, 0x75, 0x7e, 0x80, 0x83, 0x7a, 0x75, 0x80, | ||
4595 | 0x50, 0x66, 0x6d, 0x65, 0x64, 0x63, 0x57, 0x4c, | ||
4596 | 0x67, 0x6a, 0x70, 0x77, 0x79, 0x77, 0x75, 0x74, | ||
4597 | 0x75, 0x7e, 0x80, 0x74, 0x67, 0x62, 0x64, 0x65, | ||
4598 | 0x85, 0x7e, 0x76, 0x75, 0x76, 0x76, 0x6f, 0x69, | ||
4599 | 0x75, 0x7c, 0x7f, 0x7d, 0x7f, 0x86, 0x8b, 0x8b, | ||
4600 | 0x7c, 0x7c, 0x81, 0x86, 0x81, 0x72, 0x66, 0x63, | ||
4601 | 0x62, 0x63, 0x4d, 0x3c, 0x62, 0x9a, 0x95, 0x67, | ||
4602 | 0x31, 0x1f, 0x15, 0x34, 0x4f, 0x62, 0x6f, 0x55, | ||
4603 | 0x54, 0x64, 0x63, 0x4f, 0x5c, 0x7d, 0x86, 0x86, | ||
4604 | 0x7d, 0x4f, 0x43, 0x52, 0x6b, 0x76, 0x71, 0x87, | ||
4605 | 0x9c, 0x84, 0xad, 0x51, 0x3f, 0x4d, 0x56, 0x55, | ||
4606 | 0x43, 0x5e, 0x87, 0x78, 0x51, 0x37, 0x34, 0x5d, | ||
4607 | 0x8a, 0x82, 0x76, 0x65, 0x6a, 0x8c, 0x84, 0x4f, | ||
4608 | 0x66, 0x7a, 0x63, 0x50, 0x6c, 0x73, 0x64, 0x6a, | ||
4609 | 0x5d, 0x48, 0x58, 0x9a, 0xcb, 0xae, 0x5a, 0x1b, | ||
4610 | 0x3d, 0x3f, 0x2a, 0x2f, 0x9f, 0xc2, 0xc4, 0xcb, | ||
4611 | 0xa2, 0xa1, 0xa9, 0xc6, 0xf1, 0x90, 0x47, 0x4c, | ||
4612 | 0x36, 0x31, 0x34, 0x3c, 0x39, 0x30, 0x34, 0x41, | ||
4613 | 0x7e, 0x5e, 0x4f, 0x5b, 0x71, 0x75, 0x22, 0x03, | ||
4614 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4615 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4616 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
4617 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4618 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4619 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4620 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4621 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4622 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4623 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4624 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4625 | 0xee, 0xec, 0xea, 0xea, 0xed, 0xee, 0xea, 0xe5, | ||
4626 | 0xcc, 0xc3, 0xc3, 0xd1, 0xa5, 0xb6, 0xa1, 0xc2, | ||
4627 | 0xe7, 0xcf, 0xcd, 0xca, 0xed, 0xef, 0xe4, 0xe8, | ||
4628 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4629 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4630 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4631 | 0xec, 0xed, 0xec, 0xe9, 0xe5, 0xe4, 0xe6, 0xe9, | ||
4632 | 0xf0, 0xe2, 0xae, 0xb9, 0xe6, 0x88, 0xa0, 0xb3, | ||
4633 | 0x90, 0x75, 0x9b, 0xc9, 0xbe, 0xaa, 0xa6, 0xbb, | ||
4634 | 0xc1, 0xba, 0xd3, 0xeb, 0xdd, 0xd1, 0xdc, 0xe3, | ||
4635 | 0xe2, 0xe7, 0xe2, 0xe4, 0xe6, 0xe1, 0xec, 0xfc, | ||
4636 | 0xff, 0xc2, 0xaf, 0x73, 0x25, 0xbc, 0xff, 0xe0, | ||
4637 | 0x9b, 0xb5, 0xae, 0xbc, 0xc8, 0x94, 0x63, 0x5b, | ||
4638 | 0x78, 0x94, 0x9d, 0x8e, 0x7b, 0x6c, 0x73, 0x8f, | ||
4639 | 0x56, 0x6f, 0x83, 0x8d, 0x8a, 0x74, 0x6d, 0x7f, | ||
4640 | 0x84, 0x6d, 0x5f, 0x6a, 0x79, 0x79, 0x6c, 0x61, | ||
4641 | 0x6c, 0x67, 0x61, 0x64, 0x75, 0x84, 0x7e, 0x6f, | ||
4642 | 0x7f, 0x77, 0x6c, 0x67, 0x69, 0x6f, 0x75, 0x79, | ||
4643 | 0x8b, 0x98, 0x9a, 0x8c, 0x81, 0x84, 0x8a, 0x8c, | ||
4644 | 0x90, 0x88, 0x85, 0x88, 0x82, 0x75, 0x6f, 0x72, | ||
4645 | 0x7d, 0x65, 0x54, 0x4d, 0x38, 0x22, 0x2e, 0x4d, | ||
4646 | 0x49, 0x59, 0x64, 0x7d, 0x74, 0x62, 0x6c, 0x54, | ||
4647 | 0x4e, 0x57, 0x60, 0x4d, 0x61, 0x6b, 0x3b, 0x32, | ||
4648 | 0x4f, 0x3c, 0x7f, 0x97, 0x7a, 0x8b, 0x96, 0x8a, | ||
4649 | 0x5b, 0x8a, 0xef, 0x7a, 0x4f, 0x54, 0x4f, 0x39, | ||
4650 | 0x39, 0x53, 0x78, 0x71, 0x66, 0x5c, 0x3c, 0x38, | ||
4651 | 0x6f, 0x7c, 0x75, 0x5f, 0x65, 0x7b, 0x66, 0x33, | ||
4652 | 0x6b, 0x52, 0x5c, 0x70, 0x65, 0x5b, 0x61, 0x62, | ||
4653 | 0x53, 0x65, 0x39, 0x55, 0xa5, 0xdd, 0xcf, 0x56, | ||
4654 | 0x3c, 0x47, 0x37, 0x37, 0x9c, 0xb3, 0xa7, 0xa3, | ||
4655 | 0xac, 0xa3, 0xa5, 0xbc, 0xf6, 0xad, 0x5f, 0x5b, | ||
4656 | 0x5a, 0x54, 0x4b, 0x44, 0x3d, 0x37, 0x36, 0x38, | ||
4657 | 0x3b, 0x5d, 0x7b, 0x67, 0x4a, 0x4a, 0x12, 0x12, | ||
4658 | 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, | ||
4659 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4660 | 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, | ||
4661 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4662 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4663 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4664 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4665 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4666 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4667 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4668 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4669 | 0xf2, 0xec, 0xe9, 0xeb, 0xea, 0xe7, 0xec, 0xf4, | ||
4670 | 0xdc, 0xc7, 0xac, 0xbe, 0xaa, 0xca, 0xb3, 0xc6, | ||
4671 | 0xde, 0xb0, 0xc1, 0xd2, 0xec, 0xe7, 0xeb, 0xf5, | ||
4672 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4673 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4674 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4675 | 0xec, 0xed, 0xec, 0xe9, 0xe5, 0xe3, 0xe6, 0xe8, | ||
4676 | 0xeb, 0xe7, 0xcc, 0xad, 0xc7, 0x7b, 0xac, 0xbb, | ||
4677 | 0x8f, 0x73, 0x80, 0xb0, 0xac, 0xe1, 0xc9, 0xcd, | ||
4678 | 0xd5, 0xe5, 0xe7, 0xe1, 0xe6, 0xe8, 0xe3, 0xe0, | ||
4679 | 0xe1, 0xf2, 0xe8, 0xe7, 0xe9, 0xe4, 0xec, 0xe7, | ||
4680 | 0xf7, 0xb3, 0x23, 0x41, 0x66, 0xcb, 0xfe, 0xe4, | ||
4681 | 0xa7, 0xb6, 0xae, 0xcd, 0xb2, 0x66, 0x65, 0x63, | ||
4682 | 0x71, 0x78, 0x74, 0x78, 0x88, 0x86, 0x7a, 0x7a, | ||
4683 | 0x4d, 0x86, 0x81, 0x75, 0x9a, 0x94, 0x6e, 0x72, | ||
4684 | 0x7c, 0x86, 0x82, 0x6e, 0x68, 0x73, 0x78, 0x71, | ||
4685 | 0x74, 0x7e, 0x7e, 0x70, 0x65, 0x65, 0x68, 0x66, | ||
4686 | 0x68, 0x6f, 0x77, 0x7b, 0x7a, 0x79, 0x7a, 0x7b, | ||
4687 | 0x83, 0x8b, 0x87, 0x77, 0x71, 0x7d, 0x8a, 0x8e, | ||
4688 | 0x85, 0x80, 0x82, 0x89, 0x82, 0x6e, 0x61, 0x61, | ||
4689 | 0x5f, 0x66, 0x67, 0x5a, 0x44, 0x37, 0x3a, 0x43, | ||
4690 | 0x51, 0x6e, 0x69, 0x68, 0x60, 0x69, 0x76, 0x45, | ||
4691 | 0x33, 0x4a, 0x66, 0x46, 0x4e, 0x5a, 0x39, 0x5e, | ||
4692 | 0x6f, 0x4f, 0x75, 0x8a, 0x85, 0x83, 0x6c, 0x6c, | ||
4693 | 0x7b, 0x9e, 0xda, 0x51, 0x45, 0x49, 0x44, 0x55, | ||
4694 | 0x42, 0x40, 0x68, 0x5c, 0x3e, 0x57, 0x5a, 0x41, | ||
4695 | 0x30, 0x3d, 0x6a, 0x7a, 0x65, 0x6b, 0x6e, 0x4b, | ||
4696 | 0x53, 0x6c, 0x6a, 0x5b, 0x5f, 0x63, 0x5e, 0x61, | ||
4697 | 0x68, 0x6d, 0x59, 0x53, 0x74, 0xb4, 0xcd, 0x9d, | ||
4698 | 0x65, 0x6a, 0x4b, 0x3d, 0x9a, 0xb4, 0xb0, 0xb0, | ||
4699 | 0xa1, 0xb7, 0xba, 0xb3, 0xff, 0xe2, 0x69, 0x11, | ||
4700 | 0x2e, 0x3b, 0x3d, 0x33, 0x2e, 0x3a, 0x49, 0x4f, | ||
4701 | 0x52, 0x70, 0x82, 0x5f, 0x4e, 0x63, 0x1e, 0x01, | ||
4702 | 0xf4, 0xf4, 0xf4, 0xf4, 0xf5, 0xf5, 0xf5, 0xf5, | ||
4703 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf2, 0xf2, 0xf2, 0xf2, | ||
4704 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4705 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4706 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4707 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4708 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4709 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4710 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4711 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4712 | 0xec, 0xec, 0xec, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4713 | 0xeb, 0xef, 0xf0, 0xe6, 0xe7, 0xf0, 0xf0, 0xf2, | ||
4714 | 0xe7, 0xe4, 0xc0, 0xbc, 0xa5, 0xb4, 0xb7, 0x9d, | ||
4715 | 0xcf, 0xb3, 0xad, 0xc2, 0xe6, 0xe8, 0xf1, 0xef, | ||
4716 | 0xec, 0xec, 0xec, 0xec, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4717 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4718 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4719 | 0xea, 0xe8, 0xeb, 0xf1, 0xed, 0xe2, 0xde, 0xe1, | ||
4720 | 0xe5, 0xdb, 0xd3, 0xd5, 0xc1, 0x84, 0xad, 0xc9, | ||
4721 | 0x97, 0xa1, 0x9c, 0x97, 0x7d, 0xae, 0xbc, 0xcc, | ||
4722 | 0xef, 0xea, 0xe5, 0xe4, 0xe6, 0xe8, 0xe7, 0xe5, | ||
4723 | 0xe7, 0xe8, 0xe6, 0xdd, 0xea, 0xe3, 0xff, 0xea, | ||
4724 | 0xf6, 0xb8, 0x7e, 0x96, 0xcc, 0xf9, 0xff, 0xd8, | ||
4725 | 0xa2, 0xb6, 0xc0, 0xbe, 0x71, 0x67, 0x5b, 0x75, | ||
4726 | 0x94, 0x9a, 0x90, 0x83, 0x69, 0x62, 0x73, 0x61, | ||
4727 | 0x42, 0x74, 0x79, 0x87, 0x79, 0x8c, 0x7b, 0x8a, | ||
4728 | 0x86, 0x76, 0x62, 0x57, 0x5d, 0x69, 0x6f, 0x6f, | ||
4729 | 0x6c, 0x69, 0x61, 0x61, 0x74, 0x89, 0x86, 0x75, | ||
4730 | 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, | ||
4731 | 0x9c, 0x93, 0x85, 0x7a, 0x77, 0x7c, 0x85, 0x8c, | ||
4732 | 0x79, 0x76, 0x7c, 0x88, 0x86, 0x77, 0x6d, 0x6f, | ||
4733 | 0x52, 0x62, 0x67, 0x50, 0x34, 0x38, 0x62, 0x8c, | ||
4734 | 0x95, 0x8b, 0x5d, 0x51, 0x63, 0x71, 0x7b, 0x6e, | ||
4735 | 0x40, 0x4b, 0x46, 0x44, 0x53, 0x5b, 0x5c, 0x66, | ||
4736 | 0x5f, 0x61, 0x7a, 0x7f, 0x7b, 0x75, 0x6f, 0x88, | ||
4737 | 0x8d, 0x93, 0xbf, 0x70, 0x49, 0x53, 0x50, 0x53, | ||
4738 | 0x61, 0x37, 0x4f, 0x6a, 0x57, 0x3a, 0x33, 0x54, | ||
4739 | 0x58, 0x43, 0x3e, 0x5e, 0x56, 0x3d, 0x20, 0x63, | ||
4740 | 0x78, 0x65, 0x5e, 0x5c, 0x57, 0x61, 0x6b, 0x64, | ||
4741 | 0x65, 0x5b, 0x5e, 0x4c, 0x4d, 0x7c, 0xb4, 0xe8, | ||
4742 | 0x89, 0x4b, 0x4f, 0x42, 0xa8, 0xcb, 0xb8, 0xcd, | ||
4743 | 0xbf, 0xbd, 0xa9, 0xb5, 0xf1, 0xf1, 0x85, 0x13, | ||
4744 | 0x24, 0x3b, 0x33, 0x32, 0x2e, 0x3d, 0x38, 0x45, | ||
4745 | 0x32, 0x3e, 0x52, 0x47, 0x57, 0x5d, 0x26, 0x0f, | ||
4746 | 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf5, 0xf5, | ||
4747 | 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, | ||
4748 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4749 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4750 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4751 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4752 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4753 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4754 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4755 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4756 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4757 | 0xf3, 0xf1, 0xea, 0xe9, 0xe2, 0xec, 0xfb, 0xe3, | ||
4758 | 0xf8, 0xdc, 0xbb, 0xb6, 0x8e, 0x91, 0x9e, 0x92, | ||
4759 | 0xd5, 0xc6, 0xa7, 0xb2, 0xe7, 0xe7, 0xea, 0xea, | ||
4760 | 0xec, 0xec, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4761 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4762 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4763 | 0xea, 0xe9, 0xea, 0xee, 0xed, 0xe6, 0xe1, 0xdf, | ||
4764 | 0xed, 0xe0, 0xd2, 0xd4, 0xc5, 0x84, 0xa3, 0xcf, | ||
4765 | 0x84, 0x7b, 0x8b, 0xd0, 0xa9, 0xb0, 0xe8, 0xe9, | ||
4766 | 0xe4, 0xe6, 0xe7, 0xe4, 0xe1, 0xe0, 0xe4, 0xe8, | ||
4767 | 0xe1, 0xe6, 0xdf, 0xe8, 0xfd, 0xc4, 0xd3, 0xf3, | ||
4768 | 0xff, 0xb5, 0xa9, 0xd6, 0xd3, 0xf9, 0xf8, 0xe1, | ||
4769 | 0xa4, 0xaf, 0xc5, 0x9e, 0x64, 0x5a, 0x65, 0x70, | ||
4770 | 0x86, 0x77, 0x73, 0x8b, 0x83, 0x70, 0x7d, 0x78, | ||
4771 | 0x4c, 0xac, 0x78, 0x4a, 0x69, 0x80, 0x59, 0x87, | ||
4772 | 0x79, 0x6a, 0x59, 0x55, 0x5f, 0x6c, 0x6f, 0x6d, | ||
4773 | 0x6e, 0x65, 0x60, 0x6d, 0x87, 0x96, 0x8a, 0x74, | ||
4774 | 0x6f, 0x7a, 0x83, 0x80, 0x74, 0x6c, 0x6d, 0x72, | ||
4775 | 0x87, 0x7f, 0x75, 0x6e, 0x6e, 0x71, 0x74, 0x75, | ||
4776 | 0x73, 0x78, 0x88, 0x95, 0x8f, 0x78, 0x67, 0x63, | ||
4777 | 0x68, 0x5c, 0x50, 0x50, 0x56, 0x55, 0x49, 0x3c, | ||
4778 | 0x46, 0x5b, 0x60, 0x6c, 0x71, 0x75, 0x82, 0x71, | ||
4779 | 0x41, 0x6a, 0x5f, 0x34, 0x44, 0x76, 0x80, 0x6d, | ||
4780 | 0x5e, 0x3d, 0x73, 0x94, 0x72, 0x69, 0x80, 0x97, | ||
4781 | 0x72, 0x75, 0x9b, 0x51, 0x33, 0x44, 0x45, 0x44, | ||
4782 | 0x55, 0x37, 0x48, 0x50, 0x4b, 0x57, 0x61, 0x77, | ||
4783 | 0x5a, 0x39, 0x38, 0x72, 0x82, 0x6a, 0x36, 0x60, | ||
4784 | 0x86, 0x75, 0x6b, 0x63, 0x58, 0x5f, 0x6c, 0x6b, | ||
4785 | 0x60, 0x70, 0x62, 0x72, 0x70, 0x65, 0xa4, 0xdf, | ||
4786 | 0xb8, 0x6a, 0x39, 0x3a, 0xa2, 0xb4, 0xa3, 0x9b, | ||
4787 | 0xb3, 0xb8, 0xad, 0xba, 0xe9, 0xe6, 0x8e, 0x37, | ||
4788 | 0x3d, 0x33, 0x39, 0x62, 0x71, 0x8a, 0x7d, 0x68, | ||
4789 | 0x7d, 0x7d, 0x72, 0x66, 0x95, 0x91, 0x2e, 0x06, | ||
4790 | 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, | ||
4791 | 0xf3, 0xf3, 0xf3, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, | ||
4792 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4793 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4794 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4795 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4796 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4797 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4798 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4799 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4800 | 0xeb, 0xeb, 0xeb, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4801 | 0xea, 0xf0, 0xe8, 0xf1, 0xe1, 0xd8, 0xf1, 0xdd, | ||
4802 | 0xf0, 0xe5, 0xcf, 0xb9, 0xa0, 0xba, 0xb8, 0x8b, | ||
4803 | 0xd0, 0xce, 0xa5, 0xa9, 0xd3, 0xc9, 0xde, 0xed, | ||
4804 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4805 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4806 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4807 | 0xeb, 0xeb, 0xea, 0xe9, 0xec, 0xec, 0xe5, 0xdc, | ||
4808 | 0xe1, 0xf2, 0xd9, 0xb1, 0xa9, 0x8f, 0xa2, 0xc1, | ||
4809 | 0x64, 0x8d, 0x9d, 0xcb, 0xb3, 0xaf, 0xe1, 0xce, | ||
4810 | 0xdd, 0xe0, 0xe4, 0xe4, 0xe1, 0xdf, 0xe1, 0xe3, | ||
4811 | 0xdd, 0xec, 0xdd, 0xff, 0xd3, 0x5d, 0xc5, 0xff, | ||
4812 | 0xff, 0xb4, 0x3a, 0x2d, 0x12, 0xa3, 0xff, 0xe0, | ||
4813 | 0xa9, 0xc7, 0xa9, 0x70, 0x5f, 0x5f, 0x7b, 0x91, | ||
4814 | 0x84, 0x7b, 0x6e, 0x75, 0x74, 0x79, 0x87, 0x71, | ||
4815 | 0x92, 0x6e, 0x48, 0x74, 0x8f, 0x7e, 0x60, 0x86, | ||
4816 | 0x76, 0x6c, 0x5f, 0x55, 0x51, 0x55, 0x5e, 0x66, | ||
4817 | 0x66, 0x5a, 0x59, 0x6a, 0x7a, 0x77, 0x65, 0x55, | ||
4818 | 0x67, 0x75, 0x84, 0x87, 0x7e, 0x74, 0x6f, 0x70, | ||
4819 | 0x70, 0x6b, 0x68, 0x6c, 0x77, 0x7f, 0x81, 0x80, | ||
4820 | 0x7b, 0x7a, 0x79, 0x74, 0x64, 0x52, 0x4c, 0x4f, | ||
4821 | 0x6e, 0x6a, 0x61, 0x54, 0x47, 0x3d, 0x3a, 0x3a, | ||
4822 | 0x4b, 0x5d, 0x6f, 0x7a, 0x64, 0x60, 0x72, 0x59, | ||
4823 | 0x43, 0x54, 0x4f, 0x45, 0x4f, 0x55, 0x50, 0x51, | ||
4824 | 0x74, 0x57, 0x6b, 0x82, 0x84, 0x7d, 0x7b, 0x96, | ||
4825 | 0x85, 0x5f, 0x81, 0x6f, 0x64, 0x4a, 0x35, 0x39, | ||
4826 | 0x41, 0x45, 0x68, 0x69, 0x64, 0x72, 0x5c, 0x43, | ||
4827 | 0x57, 0x52, 0x51, 0x61, 0x5d, 0x69, 0x59, 0x85, | ||
4828 | 0x63, 0x66, 0x73, 0x79, 0x70, 0x68, 0x63, 0x59, | ||
4829 | 0x57, 0x5e, 0x61, 0x65, 0x66, 0x51, 0x60, 0xa4, | ||
4830 | 0xd5, 0xa7, 0x34, 0x1d, 0xa1, 0xcf, 0xc6, 0xb6, | ||
4831 | 0xbc, 0xbf, 0xae, 0xb4, 0xe1, 0xee, 0xbc, 0x87, | ||
4832 | 0x9a, 0xa1, 0x9b, 0x93, 0x74, 0x7d, 0x6e, 0x55, | ||
4833 | 0x67, 0x71, 0x68, 0x43, 0x4f, 0x4b, 0x14, 0x17, | ||
4834 | 0xf4, 0xf4, 0xf4, 0xf4, 0xf3, 0xf3, 0xf2, 0xf2, | ||
4835 | 0xf2, 0xf2, 0xf3, 0xf3, 0xf4, 0xf4, 0xf4, 0xf5, | ||
4836 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4837 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4838 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4839 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4840 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4841 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4842 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4843 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4844 | 0xed, 0xed, 0xec, 0xec, 0xec, 0xeb, 0xeb, 0xeb, | ||
4845 | 0xe2, 0xea, 0xe1, 0xed, 0xe7, 0xd0, 0xd9, 0xda, | ||
4846 | 0xe3, 0xdd, 0xcb, 0xae, 0xa2, 0xc0, 0xbc, 0x8b, | ||
4847 | 0xc0, 0xc7, 0xaa, 0xb8, 0xd4, 0xc2, 0xe8, 0xf8, | ||
4848 | 0xe9, 0xe9, 0xea, 0xea, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4849 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4850 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4851 | 0xec, 0xed, 0xe9, 0xe6, 0xeb, 0xf0, 0xe8, 0xdb, | ||
4852 | 0xe5, 0xe5, 0xd8, 0xd5, 0xd4, 0x9c, 0x90, 0xd2, | ||
4853 | 0x5b, 0x3f, 0x8a, 0xef, 0xcc, 0xa3, 0xe1, 0xec, | ||
4854 | 0xeb, 0xe4, 0xdc, 0xd9, 0xdc, 0xe1, 0xe4, 0xe4, | ||
4855 | 0xe1, 0xe3, 0xff, 0xce, 0x50, 0x4d, 0xe8, 0xf8, | ||
4856 | 0xfb, 0xcf, 0x30, 0x5c, 0x7e, 0xe6, 0xf9, 0xda, | ||
4857 | 0xa6, 0xc8, 0x85, 0x71, 0x6b, 0x70, 0x76, 0x78, | ||
4858 | 0x69, 0x7f, 0x8a, 0x91, 0x7e, 0x64, 0x49, 0x0f, | ||
4859 | 0x2f, 0x76, 0x8f, 0x86, 0x85, 0x85, 0x76, 0x7a, | ||
4860 | 0x7c, 0x71, 0x63, 0x59, 0x53, 0x53, 0x5f, 0x6c, | ||
4861 | 0x75, 0x65, 0x5e, 0x64, 0x64, 0x5b, 0x5d, 0x68, | ||
4862 | 0x79, 0x73, 0x6c, 0x69, 0x6b, 0x6c, 0x6b, 0x68, | ||
4863 | 0x6b, 0x66, 0x65, 0x6e, 0x7f, 0x8c, 0x91, 0x90, | ||
4864 | 0x85, 0x7f, 0x74, 0x64, 0x57, 0x56, 0x63, 0x72, | ||
4865 | 0x6c, 0x6c, 0x67, 0x5a, 0x49, 0x3f, 0x3e, 0x40, | ||
4866 | 0x46, 0x4c, 0x63, 0x77, 0x64, 0x6d, 0x89, 0x67, | ||
4867 | 0x54, 0x5f, 0x55, 0x4b, 0x5a, 0x67, 0x6d, 0x77, | ||
4868 | 0x74, 0x72, 0x7a, 0x77, 0x87, 0x90, 0x82, 0x8e, | ||
4869 | 0x85, 0x6e, 0x75, 0x49, 0x54, 0x6a, 0x5e, 0x36, | ||
4870 | 0x42, 0x45, 0x5f, 0x55, 0x50, 0x65, 0x52, 0x34, | ||
4871 | 0x3f, 0x55, 0x4f, 0x3c, 0x41, 0x84, 0x7a, 0x75, | ||
4872 | 0x7b, 0x69, 0x5b, 0x5f, 0x6c, 0x74, 0x6c, 0x5e, | ||
4873 | 0x60, 0x5f, 0x65, 0x5b, 0x65, 0x6a, 0x5c, 0x7a, | ||
4874 | 0xbb, 0xf2, 0x94, 0x31, 0x80, 0xb3, 0xa4, 0xb6, | ||
4875 | 0xae, 0xa7, 0xb4, 0xda, 0xd9, 0x95, 0x5e, 0x63, | ||
4876 | 0x1b, 0x2f, 0x28, 0x33, 0x3b, 0x47, 0x2e, 0x26, | ||
4877 | 0x40, 0x4d, 0x6f, 0x62, 0x53, 0x48, 0x1b, 0x0f, | ||
4878 | 0xf5, 0xf4, 0xf4, 0xf3, 0xf2, 0xf2, 0xf1, 0xf1, | ||
4879 | 0xf0, 0xf0, 0xf1, 0xf2, 0xf3, 0xf3, 0xf4, 0xf4, | ||
4880 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4881 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4882 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4883 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4884 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4885 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4886 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4887 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4888 | 0xf0, 0xef, 0xef, 0xee, 0xed, 0xed, 0xec, 0xec, | ||
4889 | 0xed, 0xe5, 0xdd, 0xde, 0xe3, 0xdf, 0xd4, 0xd0, | ||
4890 | 0xd7, 0xf0, 0xec, 0xaf, 0x8a, 0xb6, 0xc7, 0x7c, | ||
4891 | 0xb2, 0xc5, 0xa1, 0xa1, 0xc5, 0xc3, 0xec, 0xfb, | ||
4892 | 0xe8, 0xe8, 0xe9, 0xe9, 0xea, 0xeb, 0xeb, 0xec, | ||
4893 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4894 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4895 | 0xed, 0xed, 0xe9, 0xe5, 0xea, 0xf1, 0xea, 0xde, | ||
4896 | 0xe1, 0xe0, 0xd2, 0xc8, 0xd0, 0xb6, 0xa8, 0xf9, | ||
4897 | 0x8d, 0x5c, 0x8b, 0xbb, 0x92, 0x77, 0xd9, 0xe5, | ||
4898 | 0xe8, 0xe5, 0xe2, 0xe2, 0xe5, 0xe5, 0xe2, 0xdf, | ||
4899 | 0xe6, 0xf0, 0xcf, 0x8d, 0x6f, 0x7c, 0xe2, 0xf5, | ||
4900 | 0xfe, 0xd9, 0x7b, 0xad, 0xb2, 0xfc, 0xf0, 0xf2, | ||
4901 | 0xcb, 0x9c, 0x69, 0x66, 0x64, 0x86, 0x95, 0x88, | ||
4902 | 0x84, 0x79, 0x74, 0x83, 0x71, 0x5d, 0x6e, 0x6d, | ||
4903 | 0x70, 0x6e, 0x6d, 0x7d, 0x9d, 0x8f, 0x7a, 0x7a, | ||
4904 | 0x6e, 0x68, 0x69, 0x72, 0x74, 0x6b, 0x61, 0x60, | ||
4905 | 0x5a, 0x59, 0x67, 0x7e, 0x7f, 0x70, 0x70, 0x7d, | ||
4906 | 0x70, 0x6b, 0x67, 0x6a, 0x72, 0x76, 0x73, 0x6f, | ||
4907 | 0x75, 0x6e, 0x68, 0x6a, 0x73, 0x7d, 0x83, 0x85, | ||
4908 | 0x81, 0x80, 0x7a, 0x6d, 0x63, 0x62, 0x67, 0x6c, | ||
4909 | 0x70, 0x69, 0x5d, 0x51, 0x48, 0x44, 0x45, 0x47, | ||
4910 | 0x43, 0x53, 0x74, 0x8a, 0x6d, 0x65, 0x70, 0x44, | ||
4911 | 0x5a, 0x5e, 0x50, 0x45, 0x4e, 0x52, 0x53, 0x5f, | ||
4912 | 0x3f, 0x4f, 0x94, 0x98, 0x68, 0x6e, 0x85, 0x8b, | ||
4913 | 0x84, 0x59, 0x58, 0x43, 0x45, 0x3e, 0x46, 0x43, | ||
4914 | 0x5d, 0x5d, 0x7d, 0x7c, 0x6f, 0x71, 0x56, 0x3e, | ||
4915 | 0x56, 0x70, 0x68, 0x3e, 0x29, 0x6a, 0x63, 0x52, | ||
4916 | 0x6d, 0x79, 0x7f, 0x79, 0x6d, 0x63, 0x63, 0x69, | ||
4917 | 0x68, 0x71, 0x60, 0x66, 0x6d, 0x69, 0x6d, 0x53, | ||
4918 | 0x86, 0xc8, 0xb7, 0x5b, 0x75, 0xc1, 0xb2, 0xd0, | ||
4919 | 0xaa, 0xc6, 0xa8, 0x79, 0x92, 0xbc, 0xa0, 0x63, | ||
4920 | 0x6a, 0xb6, 0xa7, 0x63, 0x4e, 0x81, 0x6e, 0x3e, | ||
4921 | 0x49, 0x42, 0x5a, 0x50, 0x45, 0x42, 0x1b, 0x0d, | ||
4922 | 0xf5, 0xf4, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 0xef, | ||
4923 | 0xed, 0xee, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, | ||
4924 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4925 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4926 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4927 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4928 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4929 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4930 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4931 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4932 | 0xf0, 0xef, 0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, | ||
4933 | 0xf4, 0xe8, 0xeb, 0xdd, 0xce, 0xda, 0xdb, 0xcb, | ||
4934 | 0xda, 0xd2, 0xd6, 0xc1, 0x91, 0x95, 0xc3, 0x92, | ||
4935 | 0x98, 0xd2, 0xac, 0x89, 0xb0, 0xb3, 0xce, 0xe8, | ||
4936 | 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xeb, 0xec, | ||
4937 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4938 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4939 | 0xee, 0xec, 0xe9, 0xe7, 0xeb, 0xee, 0xea, 0xe3, | ||
4940 | 0xe7, 0xe1, 0xd9, 0xcb, 0xc8, 0xb6, 0x96, 0xe4, | ||
4941 | 0x9d, 0x87, 0xba, 0xff, 0xee, 0x8d, 0xce, 0xd5, | ||
4942 | 0xe1, 0xe5, 0xea, 0xea, 0xe6, 0xe4, 0xe4, 0xe5, | ||
4943 | 0xfb, 0xe8, 0x63, 0x4e, 0x81, 0x79, 0xe4, 0xfc, | ||
4944 | 0xf9, 0xd5, 0x86, 0x9c, 0x87, 0xca, 0xf1, 0xff, | ||
4945 | 0xcb, 0x68, 0x6b, 0x5a, 0x77, 0x87, 0x7a, 0x72, | ||
4946 | 0x8c, 0x8b, 0x85, 0x87, 0x73, 0x69, 0x80, 0x7d, | ||
4947 | 0x69, 0x74, 0x83, 0x76, 0x82, 0x78, 0x78, 0x6c, | ||
4948 | 0x67, 0x5f, 0x5f, 0x67, 0x67, 0x63, 0x6c, 0x7c, | ||
4949 | 0x7b, 0x6d, 0x68, 0x6f, 0x6d, 0x63, 0x68, 0x78, | ||
4950 | 0x61, 0x62, 0x63, 0x62, 0x60, 0x60, 0x62, 0x64, | ||
4951 | 0x79, 0x76, 0x71, 0x6d, 0x6d, 0x72, 0x7a, 0x7f, | ||
4952 | 0x8a, 0x8b, 0x85, 0x79, 0x71, 0x6d, 0x65, 0x5c, | ||
4953 | 0x67, 0x68, 0x61, 0x4e, 0x3a, 0x36, 0x44, 0x53, | ||
4954 | 0x2c, 0x4f, 0x74, 0x86, 0x69, 0x5a, 0x66, 0x4c, | ||
4955 | 0x42, 0x49, 0x47, 0x4d, 0x5c, 0x5c, 0x5b, 0x68, | ||
4956 | 0x6e, 0x4e, 0x6a, 0x8e, 0x9d, 0x9c, 0x77, 0x5a, | ||
4957 | 0x4e, 0x66, 0x79, 0x47, 0x39, 0x4a, 0x6b, 0x59, | ||
4958 | 0x60, 0x56, 0x6f, 0x67, 0x50, 0x4e, 0x42, 0x41, | ||
4959 | 0x3c, 0x48, 0x57, 0x51, 0x39, 0x6c, 0x77, 0x88, | ||
4960 | 0x7b, 0x75, 0x68, 0x64, 0x6e, 0x6f, 0x67, 0x64, | ||
4961 | 0x62, 0x61, 0x64, 0x6d, 0x6c, 0x66, 0x60, 0x4f, | ||
4962 | 0x5c, 0x82, 0xd1, 0xc2, 0x99, 0xc2, 0xa0, 0xa3, | ||
4963 | 0xbc, 0xbd, 0xbe, 0xd9, 0xfc, 0xe7, 0xa5, 0x77, | ||
4964 | 0x8a, 0x82, 0x6a, 0x53, 0x2e, 0x3c, 0x39, 0x2c, | ||
4965 | 0x32, 0x3d, 0x56, 0x4b, 0x49, 0x3a, 0x0b, 0x0f, | ||
4966 | 0xf5, 0xf5, 0xf4, 0xf2, 0xf1, 0xf0, 0xef, 0xee, | ||
4967 | 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, | ||
4968 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
4969 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
4970 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
4971 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
4972 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
4973 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4974 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
4975 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4976 | 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe7, 0xe7, 0xe6, | ||
4977 | 0xeb, 0xec, 0xf1, 0xe8, 0xc8, 0xbe, 0xcb, 0xc5, | ||
4978 | 0xd5, 0xda, 0xcb, 0xb5, 0x94, 0x89, 0xc8, 0xac, | ||
4979 | 0x7f, 0xca, 0xbf, 0x9d, 0xbb, 0xb1, 0xbb, 0xe0, | ||
4980 | 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xeb, 0xec, 0xec, | ||
4981 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
4982 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
4983 | 0xee, 0xeb, 0xe9, 0xeb, 0xeb, 0xe9, 0xe8, 0xea, | ||
4984 | 0xd4, 0xeb, 0xe5, 0xae, 0xa6, 0xd0, 0xb3, 0xdd, | ||
4985 | 0x91, 0x59, 0xa8, 0xf1, 0xdc, 0x88, 0xda, 0xd8, | ||
4986 | 0xe6, 0xe5, 0xe1, 0xdc, 0xdb, 0xe2, 0xee, 0xf7, | ||
4987 | 0xd9, 0x66, 0x52, 0x73, 0x6b, 0x6b, 0xd9, 0xf7, | ||
4988 | 0xf6, 0xdb, 0x91, 0xc8, 0xf0, 0xe7, 0xe9, 0xff, | ||
4989 | 0xb2, 0x5a, 0x6b, 0x65, 0x90, 0x8c, 0x75, 0x80, | ||
4990 | 0x6c, 0x7c, 0x79, 0x74, 0x67, 0x6b, 0x77, 0x59, | ||
4991 | 0x64, 0x8c, 0x8b, 0x70, 0x95, 0x5e, 0x40, 0x59, | ||
4992 | 0x7d, 0x6e, 0x69, 0x72, 0x74, 0x6c, 0x6b, 0x73, | ||
4993 | 0x66, 0x64, 0x6a, 0x71, 0x6e, 0x67, 0x6d, 0x7a, | ||
4994 | 0x8d, 0x81, 0x6f, 0x60, 0x5a, 0x5c, 0x65, 0x6b, | ||
4995 | 0x7b, 0x7f, 0x80, 0x79, 0x6f, 0x6b, 0x71, 0x78, | ||
4996 | 0x88, 0x88, 0x82, 0x7d, 0x83, 0x8a, 0x83, 0x75, | ||
4997 | 0x5c, 0x5e, 0x5e, 0x56, 0x4c, 0x46, 0x48, 0x4d, | ||
4998 | 0x44, 0x64, 0x6f, 0x72, 0x61, 0x55, 0x60, 0x54, | ||
4999 | 0x48, 0x5e, 0x50, 0x34, 0x41, 0x5e, 0x66, 0x62, | ||
5000 | 0x51, 0x50, 0x5a, 0x5d, 0x66, 0x5b, 0x3e, 0x4d, | ||
5001 | 0x4b, 0x47, 0x5c, 0x56, 0x4f, 0x48, 0x84, 0xa3, | ||
5002 | 0x32, 0x42, 0x76, 0x79, 0x60, 0x59, 0x49, 0x43, | ||
5003 | 0x48, 0x2d, 0x36, 0x5a, 0x66, 0x93, 0x7a, 0x67, | ||
5004 | 0x6d, 0x6d, 0x62, 0x5f, 0x6a, 0x6b, 0x64, 0x68, | ||
5005 | 0x63, 0x5a, 0x6a, 0x64, 0x68, 0x6d, 0x56, 0x65, | ||
5006 | 0x45, 0x77, 0xc6, 0xe1, 0xb2, 0xd8, 0xe6, 0xff, | ||
5007 | 0xff, 0xfc, 0xd0, 0x9b, 0x6f, 0x44, 0x32, 0x3f, | ||
5008 | 0x2f, 0x36, 0x3e, 0x43, 0x1d, 0x21, 0x30, 0x43, | ||
5009 | 0x3a, 0x38, 0x4b, 0x46, 0x4b, 0x41, 0x13, 0x12, | ||
5010 | 0xf5, 0xf5, 0xf4, 0xf2, 0xf1, 0xef, 0xee, 0xee, | ||
5011 | 0xe8, 0xe9, 0xea, 0xeb, 0xed, 0xee, 0xef, 0xf0, | ||
5012 | 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, | ||
5013 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
5014 | 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, | ||
5015 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
5016 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, | ||
5017 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
5018 | 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
5019 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5020 | 0xe9, 0xe9, 0xe8, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, | ||
5021 | 0xe5, 0xec, 0xe2, 0xef, 0xd9, 0xab, 0xb0, 0xb7, | ||
5022 | 0xcd, 0xf1, 0xd7, 0xc2, 0xa6, 0x6e, 0xa1, 0xae, | ||
5023 | 0x7f, 0xa9, 0xa6, 0x96, 0xb7, 0xb3, 0xc7, 0xf7, | ||
5024 | 0xe5, 0xe5, 0xe6, 0xe8, 0xe9, 0xeb, 0xec, 0xec, | ||
5025 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5026 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5027 | 0xef, 0xe9, 0xe9, 0xed, 0xeb, 0xe6, 0xe7, 0xee, | ||
5028 | 0xdd, 0xdd, 0xdf, 0xbb, 0xa7, 0xb5, 0x88, 0xbb, | ||
5029 | 0x72, 0x4a, 0xb5, 0xeb, 0xf7, 0xa6, 0xc4, 0xd8, | ||
5030 | 0xd9, 0xd9, 0xdb, 0xe2, 0xea, 0xee, 0xee, 0xeb, | ||
5031 | 0x6a, 0x59, 0x84, 0x94, 0x7e, 0x93, 0xfc, 0xf7, | ||
5032 | 0xe7, 0xd7, 0xcf, 0xc3, 0xcc, 0xf3, 0xff, 0xfc, | ||
5033 | 0xae, 0x63, 0x60, 0x7b, 0x7d, 0x7c, 0x81, 0x86, | ||
5034 | 0x93, 0x82, 0x75, 0x83, 0x78, 0x65, 0x68, 0x55, | ||
5035 | 0x77, 0x33, 0x39, 0x58, 0x97, 0xb6, 0xf8, 0xff, | ||
5036 | 0xff, 0xbd, 0x79, 0x67, 0x71, 0x6f, 0x63, 0x5a, | ||
5037 | 0x53, 0x61, 0x72, 0x75, 0x66, 0x57, 0x5d, 0x6b, | ||
5038 | 0x70, 0x6a, 0x69, 0x72, 0x7f, 0x83, 0x79, 0x6d, | ||
5039 | 0x83, 0x8b, 0x8e, 0x81, 0x6b, 0x5b, 0x59, 0x5e, | ||
5040 | 0x5d, 0x5e, 0x5c, 0x5d, 0x69, 0x72, 0x64, 0x4d, | ||
5041 | 0x60, 0x62, 0x5e, 0x51, 0x44, 0x48, 0x5b, 0x6e, | ||
5042 | 0x6d, 0x81, 0x72, 0x6d, 0x6b, 0x5d, 0x54, 0x41, | ||
5043 | 0x43, 0x3b, 0x37, 0x49, 0x59, 0x4e, 0x51, 0x6f, | ||
5044 | 0x5e, 0x4a, 0x58, 0x43, 0x2f, 0x52, 0x64, 0x5a, | ||
5045 | 0x47, 0x40, 0x51, 0x51, 0x4d, 0x38, 0x5b, 0x61, | ||
5046 | 0x53, 0x60, 0x81, 0x67, 0x42, 0x47, 0x4a, 0x4d, | ||
5047 | 0x5b, 0x3b, 0x33, 0x41, 0x49, 0x88, 0x7d, 0x68, | ||
5048 | 0x70, 0x77, 0x6f, 0x6a, 0x70, 0x69, 0x5f, 0x64, | ||
5049 | 0x64, 0x6e, 0x4c, 0x3e, 0x44, 0x34, 0x2e, 0x31, | ||
5050 | 0x5b, 0x99, 0x9f, 0xca, 0xd0, 0xc1, 0x64, 0x2f, | ||
5051 | 0x1c, 0x13, 0x0b, 0x22, 0x47, 0x4c, 0x45, 0x50, | ||
5052 | 0x4a, 0x49, 0x2f, 0x34, 0x38, 0x45, 0x3e, 0x4e, | ||
5053 | 0x4c, 0x37, 0x54, 0x4d, 0x35, 0x31, 0x19, 0x12, | ||
5054 | 0xfb, 0xf6, 0xf7, 0xe5, 0xf0, 0xea, 0xec, 0xf3, | ||
5055 | 0xef, 0xe9, 0xf4, 0xf7, 0xec, 0xe5, 0xe7, 0xf2, | ||
5056 | 0xe8, 0xe8, 0xe9, 0xea, 0xea, 0xeb, 0xec, 0xec, | ||
5057 | 0xf1, 0xf1, 0xf0, 0xef, 0xef, 0xee, 0xed, 0xed, | ||
5058 | 0xef, 0xf0, 0xf1, 0xf1, 0xf0, 0xed, 0xeb, 0xe9, | ||
5059 | 0xed, 0xec, 0xec, 0xec, 0xec, 0xeb, 0xeb, 0xeb, | ||
5060 | 0xf1, 0xf0, 0xef, 0xee, 0xed, 0xec, 0xec, 0xeb, | ||
5061 | 0xea, 0xea, 0xeb, 0xeb, 0xeb, 0xeb, 0xec, 0xec, | ||
5062 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5063 | 0xf4, 0xed, 0xe8, 0xe9, 0xeb, 0xe9, 0xe7, 0xe8, | ||
5064 | 0xde, 0xde, 0xea, 0xea, 0xd6, 0xde, 0xd2, 0xe0, | ||
5065 | 0xdf, 0xdf, 0xe3, 0xe8, 0xe0, 0xbe, 0xac, 0xc0, | ||
5066 | 0xcc, 0xc4, 0xfc, 0xde, 0xb9, 0x95, 0x92, 0x87, | ||
5067 | 0x95, 0xab, 0xae, 0x8b, 0xc4, 0xbc, 0xc8, 0xd8, | ||
5068 | 0xe1, 0xee, 0xef, 0xed, 0xf4, 0xed, 0xe6, 0xef, | ||
5069 | 0xe4, 0xdb, 0xe3, 0xef, 0xec, 0xe7, 0xea, 0xeb, | ||
5070 | 0xf4, 0xeb, 0xef, 0xf1, 0xe7, 0xea, 0xf0, 0xe9, | ||
5071 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5072 | 0xe7, 0xc9, 0xea, 0xeb, 0xdd, 0xaf, 0x7b, 0xf4, | ||
5073 | 0xaa, 0x2c, 0xa8, 0xfb, 0xee, 0xb2, 0xc9, 0xef, | ||
5074 | 0xf5, 0xd3, 0xdd, 0xe8, 0xdf, 0xf0, 0xd6, 0x7b, | ||
5075 | 0x79, 0x92, 0x98, 0x77, 0x78, 0xc2, 0xf3, 0xde, | ||
5076 | 0xd0, 0xec, 0xf6, 0xf8, 0xff, 0xe0, 0x91, 0x50, | ||
5077 | 0x58, 0x73, 0x78, 0x90, 0x8d, 0x78, 0x81, 0x74, | ||
5078 | 0x7f, 0x75, 0x7d, 0x55, 0x37, 0x25, 0x1c, 0x5f, | ||
5079 | 0xab, 0xff, 0xfd, 0xff, 0xd8, 0xa0, 0xe9, 0xa3, | ||
5080 | 0x5e, 0x5d, 0x5d, 0x63, 0x6d, 0x6f, 0x62, 0x52, | ||
5081 | 0x69, 0x64, 0x6f, 0x86, 0x8d, 0x7d, 0x6c, 0x68, | ||
5082 | 0x61, 0x5d, 0x65, 0x7b, 0x88, 0x82, 0x76, 0x6f, | ||
5083 | 0x68, 0x63, 0x66, 0x70, 0x73, 0x6f, 0x70, 0x77, | ||
5084 | 0x68, 0x54, 0x49, 0x55, 0x67, 0x6c, 0x67, 0x61, | ||
5085 | 0x5b, 0x5f, 0x5a, 0x4f, 0x46, 0x41, 0x51, 0x6c, | ||
5086 | 0x48, 0x4b, 0x74, 0x72, 0x66, 0x69, 0x4e, 0x45, | ||
5087 | 0x3b, 0x30, 0x4b, 0x6f, 0x72, 0x6c, 0x60, 0x49, | ||
5088 | 0x56, 0x61, 0x5c, 0x58, 0x38, 0x34, 0x65, 0x6b, | ||
5089 | 0x5f, 0x39, 0x35, 0x3a, 0x32, 0x4c, 0x64, 0x53, | ||
5090 | 0x32, 0x26, 0x66, 0x7b, 0x31, 0x55, 0x44, 0x2f, | ||
5091 | 0x43, 0x64, 0x7a, 0x79, 0x7b, 0x94, 0x7e, 0x6b, | ||
5092 | 0x71, 0x78, 0x76, 0x6b, 0x62, 0x5e, 0x57, 0x4e, | ||
5093 | 0x3f, 0x37, 0x46, 0x7e, 0xc6, 0xf6, 0xfd, 0xf3, | ||
5094 | 0xe5, 0x9d, 0x67, 0xab, 0xdb, 0xc5, 0x82, 0x00, | ||
5095 | 0x21, 0x3b, 0x35, 0x39, 0x37, 0x32, 0x42, 0x36, | ||
5096 | 0x38, 0x34, 0x3b, 0x42, 0x37, 0x28, 0x32, 0x4c, | ||
5097 | 0x54, 0x53, 0x4e, 0x5f, 0x4e, 0x40, 0x1f, 0x14, | ||
5098 | 0xfb, 0xea, 0xed, 0xee, 0xf3, 0xe3, 0xeb, 0xe3, | ||
5099 | 0xef, 0xf2, 0xe4, 0xdf, 0xe8, 0xec, 0xed, 0xef, | ||
5100 | 0xe7, 0xe8, 0xe8, 0xe9, 0xea, 0xea, 0xeb, 0xeb, | ||
5101 | 0xe8, 0xe8, 0xe8, 0xe7, 0xe6, 0xe5, 0xe5, 0xe5, | ||
5102 | 0xeb, 0xec, 0xee, 0xef, 0xf0, 0xef, 0xed, 0xec, | ||
5103 | 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xec, 0xec, | ||
5104 | 0xf0, 0xf0, 0xef, 0xee, 0xed, 0xec, 0xec, 0xeb, | ||
5105 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5106 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5107 | 0xf2, 0xe5, 0xe9, 0xef, 0xe8, 0xe9, 0xe7, 0xd7, | ||
5108 | 0xe9, 0xeb, 0xdf, 0xe3, 0xc7, 0xd6, 0xed, 0xe1, | ||
5109 | 0xe6, 0xb8, 0xe7, 0xe6, 0xc6, 0xcb, 0xae, 0x9c, | ||
5110 | 0x95, 0xce, 0xdb, 0xde, 0xd7, 0x8e, 0x7f, 0x94, | ||
5111 | 0x8e, 0x9e, 0xc4, 0x93, 0xb7, 0xb7, 0xb3, 0xc3, | ||
5112 | 0xf0, 0xee, 0xed, 0xeb, 0xe7, 0xe7, 0xeb, 0xeb, | ||
5113 | 0xed, 0xe1, 0xe4, 0xee, 0xea, 0xe8, 0xeb, 0xea, | ||
5114 | 0xed, 0xe6, 0xeb, 0xee, 0xe7, 0xeb, 0xf1, 0xeb, | ||
5115 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5116 | 0xeb, 0xd3, 0xea, 0xe9, 0xd7, 0xb3, 0x4c, 0x7c, | ||
5117 | 0xab, 0x53, 0xad, 0xf8, 0xff, 0xb0, 0xbf, 0xea, | ||
5118 | 0xe8, 0xff, 0xdc, 0xd7, 0xff, 0xdc, 0x71, 0x54, | ||
5119 | 0x69, 0x89, 0x9e, 0x86, 0x7d, 0xbf, 0xff, 0xff, | ||
5120 | 0xf7, 0xea, 0xa6, 0x60, 0x5d, 0x72, 0x64, 0x49, | ||
5121 | 0x46, 0x5c, 0x75, 0x77, 0x7b, 0x84, 0x7b, 0x6f, | ||
5122 | 0x5f, 0x40, 0x31, 0x7c, 0xd2, 0xf3, 0xff, 0xf2, | ||
5123 | 0xff, 0xfa, 0xd1, 0x7a, 0x64, 0x45, 0x21, 0x00, | ||
5124 | 0x14, 0x35, 0x5e, 0x73, 0x75, 0x6f, 0x6d, 0x6e, | ||
5125 | 0x80, 0x81, 0x88, 0x8c, 0x7e, 0x6c, 0x6c, 0x79, | ||
5126 | 0x7f, 0x6a, 0x62, 0x74, 0x88, 0x86, 0x74, 0x65, | ||
5127 | 0x5b, 0x5b, 0x65, 0x74, 0x76, 0x6b, 0x64, 0x65, | ||
5128 | 0x6b, 0x62, 0x5f, 0x68, 0x6c, 0x64, 0x58, 0x52, | ||
5129 | 0x60, 0x62, 0x54, 0x4a, 0x4b, 0x40, 0x36, 0x3e, | ||
5130 | 0x47, 0x34, 0x38, 0x5a, 0x77, 0x5c, 0x3c, 0x56, | ||
5131 | 0x3e, 0x30, 0x2b, 0x2a, 0x37, 0x5d, 0x69, 0x4d, | ||
5132 | 0x63, 0x60, 0x53, 0x31, 0x46, 0x61, 0x43, 0x3e, | ||
5133 | 0x3e, 0x3e, 0x5b, 0x5f, 0x39, 0x31, 0x3d, 0x31, | ||
5134 | 0x48, 0x29, 0x6b, 0x94, 0x53, 0x60, 0x4e, 0x4d, | ||
5135 | 0x36, 0x50, 0x43, 0x43, 0x5a, 0x76, 0x7a, 0x71, | ||
5136 | 0x75, 0x5c, 0x40, 0x38, 0x4c, 0x75, 0xa4, 0xc5, | ||
5137 | 0xee, 0xee, 0xed, 0xd2, 0x8a, 0x39, 0x19, 0x22, | ||
5138 | 0x22, 0x24, 0x19, 0x4d, 0x93, 0xd5, 0xdf, 0x74, | ||
5139 | 0x1a, 0x2a, 0x32, 0x32, 0x3d, 0x3d, 0x2e, 0x2d, | ||
5140 | 0x3e, 0x36, 0x39, 0x40, 0x39, 0x2d, 0x35, 0x49, | ||
5141 | 0x38, 0x34, 0x2e, 0x43, 0x3c, 0x36, 0x1a, 0x11, | ||
5142 | 0xf9, 0xf2, 0xee, 0xe2, 0xe0, 0xec, 0xff, 0xcb, | ||
5143 | 0xf0, 0xf3, 0xe7, 0xf3, 0xf0, 0xe0, 0xea, 0xe7, | ||
5144 | 0xe6, 0xe7, 0xe7, 0xe8, 0xe9, 0xe9, 0xea, 0xea, | ||
5145 | 0xe9, 0xe9, 0xe8, 0xe8, 0xe7, 0xe6, 0xe6, 0xe5, | ||
5146 | 0xe7, 0xe8, 0xeb, 0xee, 0xef, 0xef, 0xee, 0xee, | ||
5147 | 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, | ||
5148 | 0xef, 0xee, 0xee, 0xed, 0xed, 0xec, 0xec, 0xec, | ||
5149 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5150 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5151 | 0xf0, 0xdc, 0xe5, 0xee, 0xda, 0xd7, 0xe4, 0xe1, | ||
5152 | 0xf6, 0xe8, 0xd3, 0xd2, 0xb5, 0xd7, 0xf7, 0xdd, | ||
5153 | 0xd9, 0xab, 0xce, 0xe7, 0xba, 0xbc, 0xde, 0xd8, | ||
5154 | 0xaf, 0xdd, 0xc6, 0xd8, 0xe8, 0xbd, 0x95, 0xa2, | ||
5155 | 0xb5, 0x8a, 0x90, 0x81, 0xaa, 0xa7, 0xce, 0xed, | ||
5156 | 0xf4, 0xe7, 0xe9, 0xeb, 0xe1, 0xe7, 0xef, 0xe5, | ||
5157 | 0xec, 0xdf, 0xe0, 0xe8, 0xe9, 0xeb, 0xed, 0xe8, | ||
5158 | 0xea, 0xe6, 0xea, 0xec, 0xe7, 0xe9, 0xed, 0xe8, | ||
5159 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5160 | 0xef, 0xdf, 0xe3, 0xe4, 0xd7, 0xe3, 0x90, 0xbd, | ||
5161 | 0x72, 0x37, 0x88, 0xe1, 0xff, 0xae, 0xc1, 0xdd, | ||
5162 | 0xf0, 0xe9, 0xe7, 0xeb, 0xc6, 0x76, 0x5b, 0x85, | ||
5163 | 0x80, 0x85, 0x82, 0x6a, 0x67, 0x93, 0x9f, 0x76, | ||
5164 | 0x6a, 0x62, 0x4b, 0x36, 0x22, 0x0b, 0x16, 0x3c, | ||
5165 | 0x68, 0x68, 0x89, 0x73, 0x4c, 0x40, 0x46, 0x80, | ||
5166 | 0xde, 0xfd, 0xf1, 0xf1, 0xfb, 0xfc, 0xdf, 0x8e, | ||
5167 | 0x24, 0x00, 0x0d, 0x0e, 0x5c, 0x5d, 0x35, 0x6c, | ||
5168 | 0x5d, 0x5e, 0x60, 0x62, 0x65, 0x6e, 0x80, 0x90, | ||
5169 | 0xa3, 0x95, 0x88, 0x83, 0x7c, 0x73, 0x71, 0x75, | ||
5170 | 0x6c, 0x62, 0x62, 0x70, 0x7b, 0x7c, 0x7c, 0x7f, | ||
5171 | 0x7f, 0x78, 0x76, 0x7a, 0x77, 0x6d, 0x69, 0x6d, | ||
5172 | 0x7a, 0x71, 0x6b, 0x6a, 0x65, 0x5b, 0x57, 0x5a, | ||
5173 | 0x5a, 0x53, 0x4b, 0x4b, 0x44, 0x2b, 0x24, 0x39, | ||
5174 | 0x48, 0x5e, 0x68, 0x67, 0x56, 0x52, 0x5b, 0x4b, | ||
5175 | 0x43, 0x2b, 0x21, 0x29, 0x38, 0x56, 0x74, 0x7d, | ||
5176 | 0x81, 0x5f, 0x42, 0x27, 0x3c, 0x50, 0x42, 0x5c, | ||
5177 | 0x4a, 0x34, 0x3e, 0x51, 0x52, 0x58, 0x4e, 0x2a, | ||
5178 | 0x4a, 0x2f, 0x74, 0x91, 0x4f, 0x52, 0x4e, 0x5e, | ||
5179 | 0x3f, 0x40, 0x34, 0x51, 0x84, 0xa3, 0x9d, 0x60, | ||
5180 | 0x6d, 0xb2, 0xec, 0xf8, 0xf5, 0xe5, 0xab, 0x67, | ||
5181 | 0x2d, 0x19, 0x15, 0x28, 0x33, 0x29, 0x22, 0x26, | ||
5182 | 0x24, 0x2d, 0x25, 0x3c, 0x5b, 0x9b, 0xdf, 0xc5, | ||
5183 | 0x43, 0x23, 0x33, 0x38, 0x38, 0x38, 0x26, 0x3a, | ||
5184 | 0x3d, 0x35, 0x37, 0x40, 0x3a, 0x28, 0x20, 0x25, | ||
5185 | 0x29, 0x29, 0x2b, 0x4b, 0x4c, 0x44, 0x1c, 0x09, | ||
5186 | 0xe8, 0xe1, 0xdf, 0xe2, 0xe6, 0xee, 0xe7, 0x73, | ||
5187 | 0x96, 0xe5, 0xeb, 0xe3, 0xe2, 0xdf, 0xf0, 0xe5, | ||
5188 | 0xe5, 0xe5, 0xe6, 0xe6, 0xe7, 0xe8, 0xe8, 0xe9, | ||
5189 | 0xeb, 0xeb, 0xea, 0xe9, 0xe9, 0xe8, 0xe7, 0xe7, | ||
5190 | 0xe7, 0xe8, 0xeb, 0xed, 0xed, 0xed, 0xec, 0xeb, | ||
5191 | 0xed, 0xed, 0xee, 0xee, 0xef, 0xef, 0xf0, 0xf0, | ||
5192 | 0xed, 0xed, 0xed, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
5193 | 0xec, 0xec, 0xec, 0xeb, 0xeb, 0xea, 0xea, 0xea, | ||
5194 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5195 | 0xe8, 0xe5, 0xe0, 0xc7, 0xab, 0xb6, 0xd9, 0xec, | ||
5196 | 0xf5, 0xe7, 0xec, 0xda, 0xb4, 0xd6, 0xe5, 0xe8, | ||
5197 | 0xd6, 0xdc, 0xc6, 0xb8, 0xb5, 0xd4, 0xfd, 0xed, | ||
5198 | 0x82, 0x88, 0xad, 0xcb, 0xaf, 0xba, 0x8c, 0x77, | ||
5199 | 0xb3, 0x94, 0x83, 0x97, 0xb2, 0x95, 0xe5, 0xe8, | ||
5200 | 0xea, 0xe3, 0xe6, 0xea, 0xe7, 0xea, 0xea, 0xe2, | ||
5201 | 0xe1, 0xd8, 0xdc, 0xe6, 0xe9, 0xee, 0xee, 0xe4, | ||
5202 | 0xed, 0xec, 0xed, 0xed, 0xea, 0xe9, 0xe8, 0xe5, | ||
5203 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5204 | 0xe2, 0xdf, 0xdd, 0xec, 0xdb, 0xdb, 0x79, 0xab, | ||
5205 | 0x9f, 0x4a, 0x96, 0xe0, 0xe7, 0xae, 0xda, 0xe8, | ||
5206 | 0xdd, 0xd2, 0xff, 0xef, 0x7b, 0x50, 0x79, 0x85, | ||
5207 | 0xa9, 0x74, 0x74, 0x9c, 0x9a, 0x78, 0x5a, 0x45, | ||
5208 | 0x23, 0x22, 0x23, 0x44, 0x7a, 0x91, 0x89, 0x87, | ||
5209 | 0x66, 0x46, 0x5b, 0x96, 0xe1, 0xff, 0xfd, 0xfc, | ||
5210 | 0xff, 0xeb, 0xac, 0x4c, 0x18, 0x0c, 0x06, 0x17, | ||
5211 | 0x3b, 0x43, 0x45, 0x50, 0x90, 0x7e, 0x6a, 0x78, | ||
5212 | 0x78, 0x66, 0x5b, 0x64, 0x78, 0x8d, 0xa2, 0xb1, | ||
5213 | 0xa3, 0x88, 0x6a, 0x5a, 0x5c, 0x65, 0x6f, 0x76, | ||
5214 | 0x60, 0x60, 0x67, 0x6f, 0x6f, 0x6a, 0x70, 0x7b, | ||
5215 | 0x80, 0x75, 0x6f, 0x6f, 0x6b, 0x64, 0x65, 0x6c, | ||
5216 | 0x7c, 0x71, 0x69, 0x68, 0x66, 0x60, 0x61, 0x66, | ||
5217 | 0x6d, 0x54, 0x43, 0x42, 0x59, 0x82, 0x87, 0x65, | ||
5218 | 0x86, 0xa7, 0x8d, 0x63, 0x37, 0x28, 0x4c, 0x52, | ||
5219 | 0x32, 0x3b, 0x56, 0x6b, 0x60, 0x4b, 0x4b, 0x57, | ||
5220 | 0x51, 0x40, 0x3a, 0x66, 0x78, 0x70, 0x69, 0x39, | ||
5221 | 0x3a, 0x32, 0x3d, 0x44, 0x3b, 0x3c, 0x3f, 0x31, | ||
5222 | 0x4e, 0x4e, 0x95, 0x88, 0x3f, 0x49, 0x55, 0x64, | ||
5223 | 0x3a, 0x31, 0x43, 0x44, 0x5c, 0x8a, 0xa5, 0x73, | ||
5224 | 0x9d, 0x8e, 0x6c, 0x41, 0x21, 0x19, 0x22, 0x2c, | ||
5225 | 0x23, 0x2c, 0x2f, 0x29, 0x27, 0x2e, 0x32, 0x31, | ||
5226 | 0x17, 0x32, 0x2d, 0x20, 0x29, 0x74, 0xda, 0xec, | ||
5227 | 0xca, 0x50, 0x21, 0x34, 0x45, 0x4c, 0x38, 0x28, | ||
5228 | 0x49, 0x38, 0x2b, 0x2e, 0x32, 0x33, 0x38, 0x41, | ||
5229 | 0x48, 0x3e, 0x34, 0x4e, 0x4f, 0x4c, 0x27, 0x15, | ||
5230 | 0xed, 0xed, 0xe2, 0xd8, 0xdd, 0xe9, 0xe2, 0x6c, | ||
5231 | 0x9c, 0xff, 0xf4, 0xd8, 0xe6, 0xdf, 0xe1, 0xe1, | ||
5232 | 0xe3, 0xe4, 0xe4, 0xe5, 0xe6, 0xe6, 0xe7, 0xe7, | ||
5233 | 0xe7, 0xe7, 0xe6, 0xe5, 0xe5, 0xe4, 0xe3, 0xe3, | ||
5234 | 0xe9, 0xea, 0xeb, 0xec, 0xeb, 0xe9, 0xe7, 0xe5, | ||
5235 | 0xeb, 0xec, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf0, | ||
5236 | 0xeb, 0xeb, 0xeb, 0xec, 0xec, 0xec, 0xec, 0xec, | ||
5237 | 0xed, 0xed, 0xec, 0xeb, 0xeb, 0xea, 0xe9, 0xe9, | ||
5238 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5239 | 0xea, 0xed, 0xf0, 0xf1, 0xd9, 0xaa, 0xa0, 0xc0, | ||
5240 | 0xf8, 0xea, 0xe7, 0xdf, 0xc7, 0xd1, 0xc1, 0xc3, | ||
5241 | 0xea, 0xd3, 0xab, 0x9f, 0xdb, 0xf9, 0xdd, 0xe9, | ||
5242 | 0xc1, 0x72, 0x8b, 0xcb, 0xb5, 0xda, 0xaa, 0x55, | ||
5243 | 0x72, 0x96, 0xad, 0xa1, 0xa0, 0x97, 0xf5, 0xe2, | ||
5244 | 0xe7, 0xeb, 0xe6, 0xe3, 0xe8, 0xe4, 0xde, 0xe2, | ||
5245 | 0xe2, 0xde, 0xe5, 0xeb, 0xeb, 0xed, 0xea, 0xdd, | ||
5246 | 0xe9, 0xec, 0xed, 0xee, 0xef, 0xed, 0xe9, 0xe9, | ||
5247 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5248 | 0xf1, 0xea, 0xcf, 0xdf, 0xe7, 0xeb, 0x7f, 0xa5, | ||
5249 | 0xbe, 0x5d, 0xb4, 0xe8, 0xd1, 0xa0, 0xd7, 0xed, | ||
5250 | 0xf1, 0xff, 0xd1, 0x7e, 0x69, 0x84, 0x84, 0x6a, | ||
5251 | 0x70, 0x81, 0x93, 0x6c, 0x1d, 0x07, 0x31, 0x53, | ||
5252 | 0x73, 0x93, 0x9a, 0x7b, 0x4e, 0x39, 0x62, 0xa7, | ||
5253 | 0xf5, 0xff, 0xf2, 0xf8, 0xff, 0xf6, 0x9e, 0x26, | ||
5254 | 0x03, 0x23, 0x26, 0x21, 0x32, 0x36, 0x45, 0x74, | ||
5255 | 0x73, 0x79, 0x6a, 0x70, 0x87, 0x6b, 0x7b, 0x60, | ||
5256 | 0x79, 0x6c, 0x6b, 0x77, 0x7e, 0x7c, 0x81, 0x8c, | ||
5257 | 0x72, 0x79, 0x7a, 0x72, 0x6a, 0x6c, 0x76, 0x7f, | ||
5258 | 0x5c, 0x58, 0x5d, 0x6e, 0x79, 0x78, 0x74, 0x76, | ||
5259 | 0x77, 0x73, 0x76, 0x7f, 0x7e, 0x74, 0x70, 0x73, | ||
5260 | 0x72, 0x69, 0x67, 0x6f, 0x73, 0x6b, 0x61, 0x5d, | ||
5261 | 0x54, 0x4a, 0x54, 0x4c, 0x4a, 0x9a, 0xe4, 0xdb, | ||
5262 | 0xbb, 0xae, 0x91, 0x83, 0x65, 0x60, 0x67, 0x2c, | ||
5263 | 0x3e, 0x66, 0x80, 0x7a, 0x6d, 0x65, 0x5c, 0x54, | ||
5264 | 0x7d, 0x82, 0x62, 0x46, 0x38, 0x4e, 0x67, 0x38, | ||
5265 | 0x25, 0x40, 0x62, 0x65, 0x46, 0x35, 0x3c, 0x42, | ||
5266 | 0x4b, 0x52, 0x98, 0x76, 0x36, 0x35, 0x37, 0x36, | ||
5267 | 0x43, 0x35, 0x43, 0x20, 0x4c, 0x7b, 0x8e, 0x7e, | ||
5268 | 0x3e, 0x2a, 0x23, 0x2c, 0x2e, 0x23, 0x22, 0x2d, | ||
5269 | 0x24, 0x27, 0x21, 0x1c, 0x26, 0x35, 0x32, 0x22, | ||
5270 | 0x23, 0x2a, 0x2a, 0x2a, 0x25, 0x45, 0x91, 0xc0, | ||
5271 | 0xd8, 0x97, 0x4d, 0x45, 0x54, 0x5c, 0x6d, 0x66, | ||
5272 | 0x4a, 0x38, 0x26, 0x22, 0x26, 0x28, 0x2b, 0x2e, | ||
5273 | 0x3b, 0x3a, 0x3d, 0x5e, 0x5d, 0x4e, 0x1b, 0x00, | ||
5274 | 0xe7, 0xdf, 0xdf, 0xec, 0xf5, 0xce, 0x9d, 0x45, | ||
5275 | 0x64, 0xc0, 0xf4, 0xfa, 0xe9, 0xdd, 0xe7, 0xde, | ||
5276 | 0xe2, 0xe2, 0xe3, 0xe3, 0xe4, 0xe5, 0xe5, 0xe6, | ||
5277 | 0xe9, 0xe8, 0xe8, 0xe7, 0xe6, 0xe6, 0xe5, 0xe5, | ||
5278 | 0xe9, 0xea, 0xeb, 0xeb, 0xe9, 0xe7, 0xe4, 0xe2, | ||
5279 | 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xee, 0xef, 0xef, | ||
5280 | 0xe9, 0xea, 0xea, 0xeb, 0xeb, 0xec, 0xec, 0xec, | ||
5281 | 0xee, 0xee, 0xed, 0xec, 0xea, 0xe9, 0xe8, 0xe8, | ||
5282 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5283 | 0xee, 0xe9, 0xe5, 0xf5, 0xf4, 0xbf, 0xa0, 0xbb, | ||
5284 | 0xcf, 0xda, 0xd1, 0xe7, 0xdc, 0xd4, 0xcf, 0xc6, | ||
5285 | 0xcd, 0xdf, 0xb3, 0x9a, 0xc4, 0xda, 0xcd, 0xc6, | ||
5286 | 0xc9, 0x81, 0x74, 0xb7, 0xb4, 0xba, 0xb9, 0x76, | ||
5287 | 0x69, 0x7d, 0xb0, 0x84, 0x88, 0xa5, 0xec, 0xf7, | ||
5288 | 0xee, 0xf5, 0xe7, 0xda, 0xdd, 0xd8, 0xd6, 0xe6, | ||
5289 | 0xea, 0xeb, 0xf1, 0xef, 0xe6, 0xe7, 0xe6, 0xda, | ||
5290 | 0xe0, 0xe7, 0xe9, 0xeb, 0xf2, 0xef, 0xea, 0xed, | ||
5291 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5292 | 0xe5, 0xee, 0xd9, 0xdb, 0xeb, 0xfb, 0x96, 0x9a, | ||
5293 | 0xbe, 0x6e, 0xc8, 0xf5, 0xda, 0x9a, 0xc8, 0xef, | ||
5294 | 0xfd, 0xd7, 0x7c, 0x4e, 0x75, 0x91, 0x88, 0x8e, | ||
5295 | 0x7c, 0x7f, 0x87, 0x7e, 0x7a, 0x95, 0x99, 0x73, | ||
5296 | 0x4d, 0x52, 0x77, 0xc7, 0xff, 0xff, 0xf2, 0xff, | ||
5297 | 0xf5, 0xe9, 0x83, 0x24, 0x00, 0x12, 0x55, 0x58, | ||
5298 | 0x79, 0xaa, 0x76, 0x65, 0x54, 0x3c, 0x74, 0x83, | ||
5299 | 0x5f, 0x5a, 0x80, 0x97, 0x95, 0x87, 0xbb, 0xc3, | ||
5300 | 0xa7, 0x85, 0x6e, 0x73, 0x77, 0x69, 0x5d, 0x5c, | ||
5301 | 0x43, 0x52, 0x5e, 0x62, 0x64, 0x68, 0x65, 0x5d, | ||
5302 | 0x53, 0x59, 0x69, 0x7a, 0x7e, 0x7a, 0x80, 0x8c, | ||
5303 | 0x8b, 0x82, 0x7c, 0x7c, 0x77, 0x6c, 0x69, 0x6e, | ||
5304 | 0x77, 0x6a, 0x64, 0x69, 0x6b, 0x65, 0x5c, 0x59, | ||
5305 | 0x5f, 0x47, 0x49, 0x4c, 0x69, 0xbf, 0xd1, 0x7f, | ||
5306 | 0xa4, 0xd3, 0x8e, 0x43, 0x3d, 0x23, 0x26, 0x63, | ||
5307 | 0x43, 0x52, 0x55, 0x56, 0x61, 0x61, 0x5c, 0x60, | ||
5308 | 0x50, 0x6a, 0x79, 0x51, 0x41, 0x42, 0x30, 0x45, | ||
5309 | 0x30, 0x3a, 0x49, 0x4f, 0x49, 0x3e, 0x34, 0x2d, | ||
5310 | 0x37, 0x3c, 0x8d, 0x7c, 0x5d, 0x58, 0x54, 0x4d, | ||
5311 | 0x59, 0x56, 0x56, 0x4c, 0xa7, 0x9e, 0x87, 0x80, | ||
5312 | 0x56, 0x3d, 0x2a, 0x31, 0x42, 0x44, 0x33, 0x23, | ||
5313 | 0x25, 0x29, 0x31, 0x38, 0x39, 0x39, 0x3d, 0x44, | ||
5314 | 0x59, 0x43, 0x48, 0x63, 0x58, 0x3b, 0x4e, 0x7c, | ||
5315 | 0xb9, 0xce, 0x7a, 0x3f, 0x4b, 0x4f, 0x4b, 0x35, | ||
5316 | 0x36, 0x31, 0x2f, 0x34, 0x3b, 0x3d, 0x39, 0x34, | ||
5317 | 0x3b, 0x39, 0x37, 0x53, 0x50, 0x46, 0x1d, 0x09, | ||
5318 | 0xe9, 0xe5, 0xe4, 0xd2, 0xa7, 0x49, 0x32, 0x4e, | ||
5319 | 0x5e, 0x33, 0x69, 0xdf, 0xff, 0xe7, 0xdb, 0xd6, | ||
5320 | 0xe1, 0xe1, 0xe2, 0xe2, 0xe3, 0xe4, 0xe4, 0xe5, | ||
5321 | 0xe9, 0xe9, 0xe9, 0xe8, 0xe7, 0xe6, 0xe6, 0xe6, | ||
5322 | 0xe5, 0xe6, 0xe8, 0xe9, 0xe9, 0xe7, 0xe5, 0xe4, | ||
5323 | 0xe5, 0xe6, 0xe7, 0xe9, 0xea, 0xec, 0xed, 0xee, | ||
5324 | 0xe8, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xec, 0xed, | ||
5325 | 0xef, 0xef, 0xed, 0xec, 0xea, 0xe9, 0xe7, 0xe7, | ||
5326 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5327 | 0xe3, 0xf9, 0xf2, 0xdf, 0xe0, 0xd5, 0xb3, 0x99, | ||
5328 | 0xb9, 0xdc, 0xee, 0xf9, 0xcd, 0xc3, 0xd3, 0xd3, | ||
5329 | 0xcd, 0xd9, 0xb5, 0xd1, 0xe1, 0xc9, 0xed, 0xff, | ||
5330 | 0xad, 0x83, 0x66, 0x89, 0xc6, 0xd3, 0xc2, 0x79, | ||
5331 | 0x85, 0x7e, 0xae, 0x83, 0x94, 0xa7, 0xcc, 0xe3, | ||
5332 | 0xe6, 0xeb, 0xe8, 0xdd, 0xd4, 0xd3, 0xde, 0xec, | ||
5333 | 0xe6, 0xe9, 0xed, 0xe3, 0xd6, 0xdc, 0xe6, 0xe2, | ||
5334 | 0xdf, 0xe9, 0xe7, 0xe7, 0xee, 0xe7, 0xde, 0xe1, | ||
5335 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5336 | 0xe3, 0xec, 0xea, 0xd5, 0xd0, 0xe9, 0xaa, 0x98, | ||
5337 | 0xb3, 0x62, 0x9f, 0xdd, 0xe0, 0xa2, 0xdd, 0xff, | ||
5338 | 0xb3, 0x79, 0x6d, 0x8d, 0x90, 0x7f, 0x7e, 0x85, | ||
5339 | 0x9d, 0x6f, 0x71, 0x86, 0x6f, 0x65, 0x9c, 0xdb, | ||
5340 | 0xf6, 0xff, 0xff, 0xfe, 0xf7, 0xc3, 0x68, 0x26, | ||
5341 | 0x02, 0x0c, 0x17, 0x2f, 0x47, 0x4d, 0x41, 0x29, | ||
5342 | 0x4d, 0x48, 0x28, 0x5a, 0x51, 0x39, 0x87, 0x88, | ||
5343 | 0xa2, 0xb6, 0xde, 0xc7, 0xa1, 0x96, 0xc4, 0xb8, | ||
5344 | 0x97, 0x70, 0x5b, 0x6e, 0x82, 0x7b, 0x6e, 0x6b, | ||
5345 | 0x6a, 0x67, 0x5d, 0x57, 0x64, 0x77, 0x79, 0x6d, | ||
5346 | 0x66, 0x72, 0x81, 0x81, 0x6f, 0x63, 0x72, 0x8a, | ||
5347 | 0xa2, 0x92, 0x84, 0x7c, 0x74, 0x6c, 0x6f, 0x79, | ||
5348 | 0x75, 0x6b, 0x63, 0x61, 0x5d, 0x57, 0x58, 0x5f, | ||
5349 | 0x5a, 0x55, 0x42, 0x38, 0x7a, 0xea, 0xee, 0x91, | ||
5350 | 0x95, 0x33, 0x48, 0x65, 0x32, 0x3b, 0x64, 0x59, | ||
5351 | 0x58, 0x5c, 0x60, 0x75, 0x82, 0x67, 0x4e, 0x58, | ||
5352 | 0x88, 0x56, 0x3a, 0x2d, 0x38, 0x30, 0x24, 0x57, | ||
5353 | 0x5e, 0x59, 0x4e, 0x45, 0x42, 0x3d, 0x39, 0x39, | ||
5354 | 0x40, 0x56, 0xa2, 0x6a, 0x3f, 0x38, 0x3b, 0x30, | ||
5355 | 0x4b, 0x59, 0x6b, 0x96, 0xc7, 0x6a, 0x87, 0x92, | ||
5356 | 0x7a, 0x49, 0x2c, 0x3b, 0x49, 0x41, 0x42, 0x52, | ||
5357 | 0x3b, 0x4a, 0x5f, 0x6b, 0x69, 0x60, 0x55, 0x4e, | ||
5358 | 0x62, 0x6a, 0x6e, 0x63, 0x5f, 0x5a, 0x46, 0x3a, | ||
5359 | 0x82, 0xd2, 0xce, 0x7c, 0x47, 0x41, 0x47, 0x47, | ||
5360 | 0x47, 0x3f, 0x32, 0x27, 0x26, 0x2b, 0x2f, 0x30, | ||
5361 | 0x30, 0x39, 0x45, 0x65, 0x5e, 0x4b, 0x1c, 0x06, | ||
5362 | 0xea, 0xe4, 0x97, 0x22, 0x0f, 0x10, 0x1c, 0x34, | ||
5363 | 0x2e, 0x24, 0x0e, 0x1a, 0x76, 0xd0, 0xe4, 0xde, | ||
5364 | 0xe0, 0xe0, 0xe1, 0xe2, 0xe2, 0xe3, 0xe4, 0xe4, | ||
5365 | 0xe1, 0xe1, 0xe0, 0xdf, 0xdf, 0xde, 0xdd, 0xdd, | ||
5366 | 0xe1, 0xe3, 0xe5, 0xe8, 0xe9, 0xe9, 0xe8, 0xe7, | ||
5367 | 0xe3, 0xe4, 0xe5, 0xe7, 0xe9, 0xeb, 0xec, 0xed, | ||
5368 | 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xec, 0xed, | ||
5369 | 0xf0, 0xef, 0xee, 0xec, 0xea, 0xe8, 0xe7, 0xe6, | ||
5370 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5371 | 0xec, 0xe9, 0xe7, 0xe8, 0xe9, 0xe7, 0xe3, 0xdf, | ||
5372 | 0x9d, 0xa4, 0xcb, 0xd3, 0xb6, 0xd6, 0xd9, 0xcc, | ||
5373 | 0xdf, 0xc0, 0xad, 0xce, 0xf1, 0xe8, 0xe4, 0xf6, | ||
5374 | 0xdf, 0xcb, 0xb7, 0x7e, 0xb9, 0xe4, 0xc7, 0x8a, | ||
5375 | 0x77, 0x97, 0xb5, 0x82, 0x92, 0xa5, 0xdf, 0xe8, | ||
5376 | 0xd4, 0xd7, 0xe6, 0xe7, 0xd5, 0xd7, 0xea, 0xf1, | ||
5377 | 0xd8, 0xdc, 0xdf, 0xd3, 0xc6, 0xd4, 0xe9, 0xed, | ||
5378 | 0xe7, 0xf0, 0xea, 0xe5, 0xe8, 0xdc, 0xcd, 0xd0, | ||
5379 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5380 | 0xf4, 0xeb, 0xf7, 0xde, 0xcc, 0xe4, 0xbc, 0x99, | ||
5381 | 0xcc, 0x6a, 0x8a, 0xdc, 0xec, 0xa6, 0xde, 0xe1, | ||
5382 | 0x86, 0x88, 0x83, 0x7b, 0x7b, 0x80, 0x72, 0x5b, | ||
5383 | 0x4d, 0x6c, 0x8d, 0x96, 0xa8, 0xdf, 0xf0, 0xc6, | ||
5384 | 0xda, 0x8e, 0x31, 0x13, 0x30, 0x3b, 0x27, 0x19, | ||
5385 | 0x48, 0x5f, 0x84, 0x71, 0x66, 0x6b, 0x46, 0x35, | ||
5386 | 0x44, 0x36, 0x4d, 0x61, 0x40, 0x6a, 0xc5, 0xbb, | ||
5387 | 0xc8, 0xba, 0xb1, 0xbe, 0xb0, 0x85, 0xb8, 0xac, | ||
5388 | 0x9e, 0x7f, 0x6b, 0x6a, 0x61, 0x51, 0x5a, 0x72, | ||
5389 | 0x6a, 0x81, 0x90, 0x8c, 0x87, 0x87, 0x80, 0x73, | ||
5390 | 0x71, 0x6f, 0x70, 0x71, 0x6b, 0x67, 0x73, 0x85, | ||
5391 | 0x6f, 0x69, 0x68, 0x6d, 0x6d, 0x68, 0x68, 0x6f, | ||
5392 | 0x5f, 0x61, 0x67, 0x69, 0x60, 0x53, 0x54, 0x5d, | ||
5393 | 0x60, 0x59, 0x53, 0x54, 0x47, 0x27, 0x16, 0x1e, | ||
5394 | 0x35, 0x45, 0x46, 0x31, 0x4a, 0x4e, 0x28, 0x40, | ||
5395 | 0x59, 0x75, 0x74, 0x68, 0x6f, 0x6e, 0x67, 0x6f, | ||
5396 | 0x68, 0x45, 0x2f, 0x4c, 0x42, 0x29, 0x3e, 0x3b, | ||
5397 | 0x56, 0x49, 0x35, 0x33, 0x44, 0x4e, 0x4a, 0x48, | ||
5398 | 0x2e, 0x6a, 0xba, 0x53, 0x17, 0x29, 0x4c, 0x47, | ||
5399 | 0x3d, 0x32, 0x57, 0xc8, 0xcc, 0x3b, 0x8b, 0x75, | ||
5400 | 0x65, 0x68, 0x67, 0x60, 0x5e, 0x64, 0x68, 0x68, | ||
5401 | 0x42, 0x5f, 0x69, 0x56, 0x4b, 0x55, 0x58, 0x4d, | ||
5402 | 0x61, 0x64, 0x64, 0x59, 0x60, 0x65, 0x4c, 0x3c, | ||
5403 | 0x6a, 0x96, 0xd4, 0x96, 0x35, 0x31, 0x3c, 0x37, | ||
5404 | 0x4a, 0x45, 0x39, 0x2c, 0x27, 0x2d, 0x33, 0x36, | ||
5405 | 0x39, 0x41, 0x4b, 0x66, 0x59, 0x45, 0x1a, 0x09, | ||
5406 | 0xf3, 0xf7, 0xd2, 0xa4, 0xbe, 0xad, 0x8a, 0x84, | ||
5407 | 0x5f, 0x56, 0x9b, 0xa0, 0xd3, 0xe2, 0xec, 0xd5, | ||
5408 | 0xde, 0xde, 0xdf, 0xe0, 0xe0, 0xe1, 0xe2, 0xe2, | ||
5409 | 0xdf, 0xe0, 0xe1, 0xe2, 0xe4, 0xe5, 0xe6, 0xe7, | ||
5410 | 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, | ||
5411 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5412 | 0xf0, 0xd4, 0xf4, 0xe9, 0xe1, 0xe5, 0xf2, 0xe7, | ||
5413 | 0xea, 0xec, 0xee, 0xef, 0xee, 0xeb, 0xe7, 0xe5, | ||
5414 | 0xef, 0xe8, 0xe3, 0xe6, 0xe9, 0xe4, 0xe1, 0xe3, | ||
5415 | 0xe1, 0xda, 0xe0, 0xe8, 0xd1, 0xb2, 0xe4, 0xf1, | ||
5416 | 0xda, 0xcb, 0xd9, 0xc6, 0xcf, 0xd1, 0xd9, 0xc6, | ||
5417 | 0xec, 0xc1, 0xb8, 0xd2, 0xea, 0xec, 0xd1, 0xd5, | ||
5418 | 0xd3, 0xd9, 0xda, 0x9f, 0x91, 0xba, 0xd8, 0x9d, | ||
5419 | 0x83, 0x62, 0x88, 0x87, 0x6d, 0x8c, 0xe3, 0xe7, | ||
5420 | 0xe1, 0xf1, 0xd4, 0xcc, 0xd5, 0xd7, 0xea, 0xf5, | ||
5421 | 0xcb, 0xd9, 0xee, 0xf4, 0xd3, 0xcd, 0xe8, 0xd8, | ||
5422 | 0xdb, 0xea, 0xea, 0xe9, 0xe2, 0xc7, 0xc4, 0xe4, | ||
5423 | 0xeb, 0xef, 0xeb, 0xe0, 0xdf, 0xe8, 0xe9, 0xe3, | ||
5424 | 0xe9, 0xef, 0xe7, 0xee, 0xe4, 0xc8, 0xc8, 0xa9, | ||
5425 | 0xad, 0x4f, 0x5e, 0xb6, 0xe5, 0xac, 0xbb, 0x7b, | ||
5426 | 0x77, 0x66, 0x67, 0x60, 0x4e, 0x70, 0xc3, 0xfe, | ||
5427 | 0xf8, 0xff, 0xcd, 0x92, 0x85, 0x6f, 0x4b, 0x41, | ||
5428 | 0x1a, 0x24, 0x21, 0x1f, 0x3f, 0x6b, 0x74, 0x64, | ||
5429 | 0x4a, 0x4f, 0x40, 0x34, 0x36, 0x33, 0x49, 0x78, | ||
5430 | 0x54, 0x2b, 0x38, 0x7b, 0x54, 0x49, 0xac, 0xb2, | ||
5431 | 0xb4, 0xb3, 0xaf, 0xb6, 0xa0, 0x7e, 0xbf, 0xb3, | ||
5432 | 0x8d, 0x71, 0x5d, 0x64, 0x72, 0x73, 0x6b, 0x66, | ||
5433 | 0x73, 0x7c, 0x81, 0x7f, 0x82, 0x87, 0x81, 0x75, | ||
5434 | 0x62, 0x6f, 0x76, 0x72, 0x70, 0x75, 0x78, 0x76, | ||
5435 | 0x64, 0x6d, 0x7a, 0x83, 0x82, 0x78, 0x6b, 0x61, | ||
5436 | 0x58, 0x5a, 0x5f, 0x65, 0x67, 0x62, 0x57, 0x4d, | ||
5437 | 0x54, 0x51, 0x54, 0x5f, 0x4a, 0x42, 0x6d, 0x86, | ||
5438 | 0x7d, 0x66, 0x57, 0x44, 0x2c, 0x37, 0x53, 0x59, | ||
5439 | 0x4f, 0x5b, 0x68, 0x6b, 0x63, 0x5a, 0x57, 0x59, | ||
5440 | 0x71, 0x43, 0x3f, 0x40, 0x4e, 0x52, 0x34, 0x3d, | ||
5441 | 0x3c, 0x44, 0x3f, 0x2e, 0x2d, 0x48, 0x6b, 0x7f, | ||
5442 | 0x59, 0x76, 0x95, 0x65, 0x58, 0x5e, 0x32, 0x3f, | ||
5443 | 0x48, 0x31, 0x50, 0xe2, 0x87, 0x41, 0x87, 0x76, | ||
5444 | 0x5b, 0x50, 0x5a, 0x4c, 0x42, 0x55, 0x5b, 0x5d, | ||
5445 | 0x5d, 0x58, 0x63, 0x4e, 0x49, 0x57, 0x47, 0x4a, | ||
5446 | 0x4f, 0x6c, 0x6b, 0x52, 0x4e, 0x57, 0x5b, 0x5e, | ||
5447 | 0x42, 0x4c, 0x9b, 0xca, 0x89, 0x47, 0x46, 0x50, | ||
5448 | 0x2e, 0x40, 0x37, 0x38, 0x37, 0x36, 0x42, 0x34, | ||
5449 | 0x2a, 0x3c, 0x29, 0x3e, 0x4f, 0x46, 0x1d, 0x11, | ||
5450 | 0xe7, 0xeb, 0xdb, 0xbf, 0xdb, 0xd7, 0xda, 0xfa, | ||
5451 | 0xe2, 0xf2, 0xe7, 0xc8, 0xec, 0xe3, 0xe3, 0xd3, | ||
5452 | 0xde, 0xde, 0xdf, 0xdf, 0xe0, 0xe1, 0xe1, 0xe2, | ||
5453 | 0xdf, 0xe0, 0xe1, 0xe3, 0xe4, 0xe6, 0xe7, 0xe7, | ||
5454 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
5455 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5456 | 0xee, 0xdd, 0xe8, 0xef, 0xe1, 0xe8, 0xec, 0xec, | ||
5457 | 0xea, 0xeb, 0xed, 0xee, 0xed, 0xeb, 0xe8, 0xe5, | ||
5458 | 0xe8, 0xef, 0xea, 0xe6, 0xed, 0xec, 0xe5, 0xe7, | ||
5459 | 0xc8, 0xdf, 0xdd, 0xe3, 0xcf, 0x95, 0xc3, 0xea, | ||
5460 | 0xd8, 0xdb, 0xce, 0xba, 0xe5, 0xe0, 0xce, 0xc9, | ||
5461 | 0xf0, 0xa3, 0xdf, 0xf6, 0xed, 0xd9, 0xc2, 0xbe, | ||
5462 | 0xc5, 0xf7, 0xd7, 0xd1, 0xa9, 0x6a, 0xaf, 0x86, | ||
5463 | 0x79, 0x82, 0x9f, 0x95, 0x9c, 0xb5, 0xe7, 0xea, | ||
5464 | 0xcb, 0xcb, 0xd6, 0xde, 0xc8, 0xd7, 0xfa, 0xdf, | ||
5465 | 0xd8, 0xf2, 0xdc, 0xe2, 0xd6, 0xcd, 0xee, 0xd2, | ||
5466 | 0xc8, 0xe0, 0xe3, 0xeb, 0xdc, 0xd3, 0xf0, 0xf2, | ||
5467 | 0xf2, 0xeb, 0xe8, 0xee, 0xf0, 0xeb, 0xe7, 0xe8, | ||
5468 | 0xe4, 0xea, 0xe2, 0xea, 0xf1, 0xe5, 0xc4, 0xb7, | ||
5469 | 0xae, 0x4f, 0x7f, 0xc1, 0xd5, 0x87, 0x4b, 0x3a, | ||
5470 | 0x64, 0x75, 0xb4, 0xef, 0xfa, 0xf9, 0xf9, 0xec, | ||
5471 | 0xaa, 0x86, 0x43, 0x26, 0x3e, 0x43, 0x38, 0x43, | ||
5472 | 0x64, 0x4e, 0x4d, 0x76, 0x89, 0x5f, 0x38, 0x3f, | ||
5473 | 0x61, 0x3b, 0x30, 0x49, 0x56, 0x4c, 0x41, 0x40, | ||
5474 | 0x44, 0x56, 0x64, 0x76, 0x4e, 0x5d, 0xc3, 0xce, | ||
5475 | 0xb1, 0xb6, 0xc5, 0xd4, 0xb6, 0x89, 0xc1, 0xb4, | ||
5476 | 0x84, 0x6f, 0x65, 0x72, 0x7f, 0x7a, 0x6a, 0x5f, | ||
5477 | 0x6b, 0x6e, 0x6b, 0x68, 0x6e, 0x76, 0x70, 0x61, | ||
5478 | 0x5e, 0x78, 0x8b, 0x84, 0x74, 0x70, 0x76, 0x7c, | ||
5479 | 0x81, 0x7f, 0x7b, 0x75, 0x6d, 0x66, 0x5f, 0x5b, | ||
5480 | 0x71, 0x72, 0x74, 0x76, 0x76, 0x6e, 0x61, 0x57, | ||
5481 | 0x5f, 0x43, 0x4f, 0x66, 0x37, 0x15, 0x2b, 0x29, | ||
5482 | 0x0e, 0x3d, 0x58, 0x53, 0x42, 0x27, 0x23, 0x3d, | ||
5483 | 0x6a, 0x66, 0x6b, 0x72, 0x6a, 0x5b, 0x5d, 0x6b, | ||
5484 | 0x73, 0x3c, 0x34, 0x3b, 0x40, 0x38, 0x2c, 0x4f, | ||
5485 | 0x36, 0x36, 0x46, 0x59, 0x54, 0x3d, 0x38, 0x45, | ||
5486 | 0x11, 0x54, 0x8c, 0x66, 0x43, 0x3d, 0x30, 0x4f, | ||
5487 | 0x67, 0x33, 0x9d, 0xf7, 0x6f, 0x2b, 0x66, 0x83, | ||
5488 | 0x67, 0x52, 0x62, 0x64, 0x59, 0x55, 0x48, 0x48, | ||
5489 | 0x59, 0x45, 0x49, 0x56, 0x5c, 0x56, 0x4b, 0x55, | ||
5490 | 0x5c, 0x51, 0x5e, 0x5f, 0x4d, 0x5a, 0x6c, 0x5c, | ||
5491 | 0x55, 0x49, 0x6f, 0xbc, 0xc1, 0x69, 0x28, 0x2d, | ||
5492 | 0x47, 0x31, 0x28, 0x27, 0x41, 0x48, 0x37, 0x4f, | ||
5493 | 0x60, 0x59, 0x49, 0x58, 0x50, 0x49, 0x24, 0x07, | ||
5494 | 0xe1, 0xe1, 0xda, 0xba, 0xc3, 0xb0, 0xa2, 0xb4, | ||
5495 | 0xaf, 0xda, 0xb8, 0xc2, 0xeb, 0xe0, 0xe9, 0xe1, | ||
5496 | 0xdd, 0xdd, 0xde, 0xdf, 0xdf, 0xe0, 0xe1, 0xe1, | ||
5497 | 0xe0, 0xe1, 0xe2, 0xe3, 0xe5, 0xe6, 0xe7, 0xe8, | ||
5498 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
5499 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5500 | 0xe9, 0xeb, 0xdb, 0xf0, 0xe2, 0xea, 0xe8, 0xef, | ||
5501 | 0xea, 0xeb, 0xec, 0xec, 0xec, 0xea, 0xe8, 0xe7, | ||
5502 | 0xdd, 0xed, 0xed, 0xe7, 0xec, 0xee, 0xe8, 0xe7, | ||
5503 | 0xdb, 0xe1, 0xdf, 0xea, 0xd6, 0xaf, 0xe3, 0xec, | ||
5504 | 0xd9, 0xd4, 0xd9, 0xcd, 0xd1, 0xd5, 0xe6, 0xe2, | ||
5505 | 0xc6, 0xcb, 0xf3, 0xc9, 0xe9, 0xd8, 0xc8, 0xe4, | ||
5506 | 0xe9, 0xc2, 0xd7, 0xd0, 0xc3, 0xae, 0xae, 0xa2, | ||
5507 | 0x8e, 0x7e, 0x73, 0x61, 0x83, 0xa6, 0xd8, 0xe9, | ||
5508 | 0xd9, 0xcd, 0xd6, 0xe4, 0xd5, 0xde, 0xf2, 0xd5, | ||
5509 | 0xd7, 0xe3, 0xc9, 0xdb, 0xd7, 0xbb, 0xdd, 0xec, | ||
5510 | 0xde, 0xd9, 0xe9, 0xf2, 0xd7, 0xd7, 0xec, 0xda, | ||
5511 | 0xe6, 0xe3, 0xe7, 0xef, 0xee, 0xe3, 0xe0, 0xe5, | ||
5512 | 0xe7, 0xda, 0xe2, 0xf0, 0xe3, 0xf4, 0xbc, 0x96, | ||
5513 | 0xd4, 0x61, 0x6e, 0xdf, 0xbc, 0x67, 0xaa, 0xff, | ||
5514 | 0xff, 0xef, 0xff, 0xf9, 0x9f, 0x3c, 0x1a, 0x1e, | ||
5515 | 0x1f, 0x29, 0x36, 0x4f, 0x5f, 0x51, 0x54, 0x78, | ||
5516 | 0x57, 0x69, 0x62, 0x45, 0x46, 0x67, 0x66, 0x40, | ||
5517 | 0x68, 0x3c, 0x3b, 0x4d, 0x3a, 0x2f, 0x49, 0x5f, | ||
5518 | 0x57, 0x61, 0x64, 0x56, 0x22, 0x50, 0xcb, 0xd4, | ||
5519 | 0xcd, 0xce, 0xc5, 0xac, 0x96, 0x95, 0xd6, 0xb8, | ||
5520 | 0x8f, 0x78, 0x68, 0x70, 0x7c, 0x7b, 0x74, 0x70, | ||
5521 | 0x72, 0x6e, 0x67, 0x69, 0x7b, 0x8e, 0x8b, 0x7c, | ||
5522 | 0x80, 0x85, 0x82, 0x7b, 0x7b, 0x84, 0x88, 0x84, | ||
5523 | 0x6f, 0x72, 0x76, 0x77, 0x75, 0x6f, 0x68, 0x63, | ||
5524 | 0x69, 0x69, 0x6a, 0x6b, 0x6b, 0x63, 0x57, 0x4d, | ||
5525 | 0x4e, 0x4b, 0x50, 0x54, 0x52, 0x93, 0xf4, 0xff, | ||
5526 | 0xfc, 0xee, 0xb5, 0x73, 0x4a, 0x30, 0x2f, 0x49, | ||
5527 | 0x4e, 0x6f, 0x7b, 0x68, 0x60, 0x6a, 0x60, 0x44, | ||
5528 | 0x42, 0x3c, 0x46, 0x42, 0x4a, 0x5c, 0x5b, 0x65, | ||
5529 | 0x4d, 0x4c, 0x4f, 0x57, 0x62, 0x60, 0x4c, 0x36, | ||
5530 | 0x31, 0x7e, 0xa3, 0x6b, 0x2f, 0x29, 0x4e, 0x80, | ||
5531 | 0x5a, 0x1e, 0xcf, 0xd5, 0x4d, 0x3e, 0x65, 0x8d, | ||
5532 | 0x76, 0x4d, 0x53, 0x5f, 0x5c, 0x57, 0x50, 0x5c, | ||
5533 | 0x4f, 0x5e, 0x60, 0x5e, 0x53, 0x49, 0x50, 0x4e, | ||
5534 | 0x48, 0x50, 0x40, 0x3d, 0x53, 0x4d, 0x42, 0x55, | ||
5535 | 0x2d, 0x30, 0x3f, 0x8f, 0xdd, 0xb7, 0x7a, 0x88, | ||
5536 | 0x82, 0x92, 0x8d, 0x6a, 0x6b, 0x61, 0x35, 0x36, | ||
5537 | 0x2f, 0x32, 0x30, 0x3c, 0x2d, 0x2d, 0x17, 0x0e, | ||
5538 | 0xdd, 0xe0, 0xe0, 0xb4, 0xb9, 0xb3, 0xa5, 0xb2, | ||
5539 | 0xb9, 0xce, 0xb4, 0xe2, 0xe9, 0xdb, 0xe6, 0xde, | ||
5540 | 0xdc, 0xdd, 0xdd, 0xde, 0xdf, 0xdf, 0xe0, 0xe0, | ||
5541 | 0xe1, 0xe1, 0xe2, 0xe4, 0xe5, 0xe7, 0xe8, 0xe9, | ||
5542 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5543 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5544 | 0xe2, 0xf3, 0xda, 0xe3, 0xe6, 0xea, 0xec, 0xed, | ||
5545 | 0xe9, 0xea, 0xea, 0xea, 0xea, 0xe9, 0xe9, 0xe8, | ||
5546 | 0xda, 0xdd, 0xe7, 0xeb, 0xe7, 0xe7, 0xe9, 0xe5, | ||
5547 | 0xd1, 0xc2, 0xd9, 0xf6, 0xe5, 0xbc, 0xd5, 0xd4, | ||
5548 | 0xef, 0xe7, 0xcd, 0xbd, 0xc1, 0xc6, 0xd9, 0xe1, | ||
5549 | 0xbf, 0xdb, 0xfa, 0xdc, 0xd5, 0xbb, 0xd2, 0xdc, | ||
5550 | 0xa9, 0xcd, 0xff, 0xff, 0xf0, 0xc0, 0xa5, 0x9f, | ||
5551 | 0xae, 0x7c, 0x7e, 0x91, 0xb2, 0xc2, 0xe4, 0xe2, | ||
5552 | 0xcc, 0xe4, 0xcb, 0xc2, 0xea, 0xf0, 0xd1, 0xc4, | ||
5553 | 0xfc, 0xe9, 0xe4, 0xee, 0xe0, 0xbd, 0xbf, 0xe7, | ||
5554 | 0xe2, 0xb7, 0xde, 0xeb, 0xde, 0xeb, 0xe0, 0xdf, | ||
5555 | 0xd9, 0xe4, 0xeb, 0xe8, 0xe1, 0xdf, 0xe3, 0xe5, | ||
5556 | 0xf0, 0xee, 0xec, 0xf3, 0xe0, 0xff, 0xbf, 0x86, | ||
5557 | 0xdd, 0x60, 0x4d, 0xd7, 0xff, 0xcd, 0xa5, 0xdc, | ||
5558 | 0x8a, 0x3b, 0x2b, 0x51, 0x40, 0x1b, 0x32, 0x63, | ||
5559 | 0x62, 0x57, 0x50, 0x5c, 0x66, 0x5a, 0x4e, 0x51, | ||
5560 | 0x6f, 0x67, 0x87, 0x9b, 0x88, 0x89, 0x95, 0x84, | ||
5561 | 0x43, 0x27, 0x2a, 0x43, 0x46, 0x3f, 0x41, 0x42, | ||
5562 | 0x31, 0x37, 0x34, 0x3f, 0x3f, 0x5d, 0xa8, 0xbf, | ||
5563 | 0xaa, 0x7a, 0x74, 0x97, 0xa9, 0x90, 0xb8, 0xb8, | ||
5564 | 0x91, 0x7a, 0x69, 0x6e, 0x77, 0x78, 0x77, 0x79, | ||
5565 | 0x73, 0x67, 0x57, 0x54, 0x67, 0x7a, 0x74, 0x61, | ||
5566 | 0x61, 0x6f, 0x71, 0x61, 0x51, 0x51, 0x59, 0x5f, | ||
5567 | 0x62, 0x69, 0x71, 0x77, 0x74, 0x6a, 0x5e, 0x55, | ||
5568 | 0x5a, 0x5a, 0x5b, 0x5e, 0x60, 0x5b, 0x52, 0x4a, | ||
5569 | 0x58, 0x4d, 0x50, 0x98, 0xe9, 0xfd, 0xd1, 0x8a, | ||
5570 | 0x47, 0x2a, 0x20, 0x24, 0x27, 0x3b, 0x47, 0x3a, | ||
5571 | 0x53, 0x5a, 0x68, 0x74, 0x6e, 0x59, 0x46, 0x3f, | ||
5572 | 0x73, 0x82, 0x81, 0x66, 0x62, 0x71, 0x67, 0x51, | ||
5573 | 0x58, 0x6a, 0x68, 0x47, 0x2d, 0x33, 0x46, 0x50, | ||
5574 | 0x2e, 0x53, 0x55, 0x47, 0x4a, 0x5a, 0x5f, 0x48, | ||
5575 | 0x36, 0x3c, 0xef, 0x96, 0x25, 0x48, 0x68, 0x81, | ||
5576 | 0x6b, 0x43, 0x4b, 0x5e, 0x62, 0x60, 0x55, 0x5a, | ||
5577 | 0x45, 0x62, 0x5b, 0x58, 0x51, 0x50, 0x65, 0x59, | ||
5578 | 0x52, 0x4c, 0x51, 0x55, 0x51, 0x5a, 0x64, 0x60, | ||
5579 | 0x8f, 0x7f, 0x57, 0x65, 0xb7, 0xd9, 0xa2, 0x68, | ||
5580 | 0x58, 0x5f, 0x45, 0x41, 0x38, 0x1f, 0x2f, 0x44, | ||
5581 | 0x65, 0x6d, 0x65, 0x78, 0x88, 0x75, 0x20, 0x02, | ||
5582 | 0xe2, 0xe7, 0xed, 0xba, 0xaa, 0x88, 0x6a, 0x85, | ||
5583 | 0xb8, 0xb8, 0xb0, 0xe2, 0xdc, 0xe2, 0xdd, 0xd0, | ||
5584 | 0xdc, 0xdc, 0xdd, 0xdd, 0xde, 0xdf, 0xdf, 0xe0, | ||
5585 | 0xe1, 0xe2, 0xe3, 0xe5, 0xe6, 0xe8, 0xe9, 0xe9, | ||
5586 | 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, | ||
5587 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5588 | 0xde, 0xf2, 0xdf, 0xd0, 0xe9, 0xe7, 0xf2, 0xe7, | ||
5589 | 0xe9, 0xe8, 0xe8, 0xe8, 0xe8, 0xe9, 0xe9, 0xea, | ||
5590 | 0xe4, 0xcf, 0xdf, 0xf3, 0xe5, 0xe1, 0xeb, 0xe7, | ||
5591 | 0xc5, 0xc1, 0xe1, 0xef, 0xdf, 0xa3, 0xaa, 0xdf, | ||
5592 | 0xe1, 0xd6, 0xd1, 0xdc, 0xca, 0xd2, 0xf2, 0xea, | ||
5593 | 0xb4, 0xe5, 0xff, 0xd7, 0x9f, 0xb9, 0xdc, 0xb4, | ||
5594 | 0xd7, 0xef, 0xeb, 0xca, 0xef, 0xd6, 0xa6, 0xa4, | ||
5595 | 0x5c, 0x49, 0x63, 0x70, 0x81, 0x94, 0xce, 0xe4, | ||
5596 | 0xe5, 0xe3, 0xba, 0xbc, 0xf1, 0xdd, 0xb8, 0xde, | ||
5597 | 0xe8, 0xd4, 0xdc, 0xe9, 0xe8, 0xe0, 0xd6, 0xd9, | ||
5598 | 0xf0, 0xcb, 0xe1, 0xe2, 0xdb, 0xe2, 0xd1, 0xdd, | ||
5599 | 0xe6, 0xe6, 0xe5, 0xe5, 0xe5, 0xe6, 0xea, 0xed, | ||
5600 | 0xde, 0xed, 0xd4, 0xe3, 0xca, 0xaa, 0x67, 0x75, | ||
5601 | 0xc6, 0x6e, 0x56, 0xde, 0xe5, 0x82, 0x33, 0x1d, | ||
5602 | 0x18, 0x00, 0x21, 0x64, 0x76, 0x6b, 0x68, 0x68, | ||
5603 | 0x67, 0x64, 0x5e, 0x57, 0x60, 0x7c, 0x8e, 0x8a, | ||
5604 | 0x68, 0x81, 0x7f, 0x5d, 0x4e, 0x5b, 0x4c, 0x21, | ||
5605 | 0x22, 0x40, 0x54, 0x5d, 0x61, 0x51, 0x41, 0x43, | ||
5606 | 0x48, 0x5b, 0x36, 0x2a, 0x3e, 0x2d, 0x26, 0x42, | ||
5607 | 0x4f, 0x2b, 0x2c, 0x54, 0x79, 0x4f, 0x4d, 0x51, | ||
5608 | 0x77, 0x69, 0x65, 0x70, 0x77, 0x71, 0x68, 0x66, | ||
5609 | 0x6b, 0x61, 0x55, 0x58, 0x70, 0x89, 0x87, 0x77, | ||
5610 | 0x5c, 0x77, 0x8e, 0x8f, 0x85, 0x7f, 0x7c, 0x78, | ||
5611 | 0x76, 0x78, 0x79, 0x79, 0x77, 0x72, 0x6d, 0x6a, | ||
5612 | 0x6a, 0x68, 0x67, 0x69, 0x6a, 0x66, 0x5e, 0x57, | ||
5613 | 0x3c, 0x4e, 0x43, 0x3e, 0x3f, 0x46, 0x5e, 0x67, | ||
5614 | 0x92, 0x84, 0x7b, 0x5f, 0x34, 0x2c, 0x40, 0x46, | ||
5615 | 0x6f, 0x5b, 0x5c, 0x70, 0x6d, 0x51, 0x48, 0x57, | ||
5616 | 0x6d, 0x64, 0x52, 0x50, 0x55, 0x59, 0x5d, 0x57, | ||
5617 | 0x37, 0x27, 0x27, 0x38, 0x42, 0x3a, 0x36, 0x3b, | ||
5618 | 0x67, 0x5b, 0x62, 0x81, 0x71, 0x41, 0x37, 0x40, | ||
5619 | 0x21, 0x82, 0xf8, 0x77, 0x25, 0x45, 0x78, 0x9f, | ||
5620 | 0x72, 0x4c, 0x4b, 0x4f, 0x51, 0x59, 0x52, 0x54, | ||
5621 | 0x62, 0x4f, 0x31, 0x47, 0x57, 0x4b, 0x50, 0x43, | ||
5622 | 0x4c, 0x5b, 0x6a, 0x64, 0x5f, 0x75, 0x89, 0x84, | ||
5623 | 0x85, 0x72, 0x56, 0x45, 0x75, 0xd3, 0xd7, 0x81, | ||
5624 | 0x10, 0x12, 0x24, 0x56, 0x66, 0x6a, 0x88, 0x89, | ||
5625 | 0x75, 0x78, 0x76, 0x88, 0x99, 0x87, 0x28, 0x09, | ||
5626 | 0xeb, 0xe0, 0xea, 0xca, 0xb7, 0x5a, 0x00, 0x18, | ||
5627 | 0x58, 0x9c, 0xd1, 0xee, 0xd9, 0xdb, 0xcf, 0xd9, | ||
5628 | 0xdb, 0xdb, 0xdc, 0xdd, 0xdd, 0xde, 0xdf, 0xdf, | ||
5629 | 0xe2, 0xe3, 0xe4, 0xe5, 0xe7, 0xe8, 0xe9, 0xea, | ||
5630 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5631 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5632 | 0xdf, 0xe7, 0xdf, 0xc8, 0xe6, 0xe5, 0xf0, 0xe5, | ||
5633 | 0xe8, 0xe7, 0xe6, 0xe6, 0xe6, 0xe8, 0xea, 0xeb, | ||
5634 | 0xf1, 0xd2, 0xdb, 0xf3, 0xea, 0xe3, 0xec, 0xec, | ||
5635 | 0xc3, 0xcb, 0xe7, 0xd6, 0xb8, 0x9f, 0xc0, 0xe7, | ||
5636 | 0xf2, 0xcf, 0xd5, 0xef, 0xb7, 0xc9, 0xff, 0xe8, | ||
5637 | 0xd0, 0xeb, 0xe9, 0xc4, 0xb5, 0xca, 0xd0, 0xf3, | ||
5638 | 0xe6, 0xd3, 0xeb, 0xe5, 0xe6, 0xd8, 0xca, 0xb1, | ||
5639 | 0x8a, 0x82, 0x76, 0x5c, 0x81, 0xb1, 0xe2, 0xe6, | ||
5640 | 0xfa, 0xd8, 0xcd, 0xdb, 0xe0, 0xc1, 0xb1, 0xda, | ||
5641 | 0xdd, 0xd7, 0xd3, 0xe9, 0xe4, 0xcf, 0xd1, 0xc4, | ||
5642 | 0xe1, 0xe3, 0xd8, 0xd7, 0xd9, 0xde, 0xed, 0xf0, | ||
5643 | 0xf1, 0xd8, 0xcf, 0xe1, 0xec, 0xe6, 0xe4, 0xed, | ||
5644 | 0xeb, 0xed, 0xca, 0xa6, 0x61, 0x41, 0x36, 0x5a, | ||
5645 | 0x5e, 0x4b, 0x57, 0xde, 0x9f, 0x50, 0x8b, 0x77, | ||
5646 | 0x6e, 0x76, 0x7b, 0x65, 0x51, 0x66, 0x6f, 0x4f, | ||
5647 | 0x3a, 0x56, 0x70, 0x61, 0x46, 0x55, 0x6d, 0x66, | ||
5648 | 0x76, 0x8b, 0x8c, 0xa5, 0xc5, 0x92, 0x4b, 0x45, | ||
5649 | 0x2b, 0x42, 0x39, 0x2e, 0x40, 0x40, 0x2e, 0x2c, | ||
5650 | 0x24, 0x2e, 0x3b, 0x31, 0x28, 0x44, 0x58, 0x45, | ||
5651 | 0x45, 0x5a, 0x55, 0x4a, 0x7f, 0x76, 0x71, 0x7f, | ||
5652 | 0x6d, 0x60, 0x5a, 0x62, 0x67, 0x63, 0x61, 0x64, | ||
5653 | 0x72, 0x6c, 0x61, 0x5e, 0x6c, 0x7a, 0x74, 0x62, | ||
5654 | 0x6a, 0x7b, 0x8b, 0x92, 0x96, 0x97, 0x8d, 0x7f, | ||
5655 | 0x7b, 0x7c, 0x7e, 0x7e, 0x7b, 0x77, 0x71, 0x6e, | ||
5656 | 0x72, 0x6e, 0x6a, 0x68, 0x65, 0x60, 0x56, 0x4f, | ||
5657 | 0x4d, 0x55, 0x51, 0x53, 0x60, 0x86, 0xa0, 0x81, | ||
5658 | 0x64, 0x52, 0x33, 0x3a, 0x69, 0x7c, 0x6e, 0x68, | ||
5659 | 0x67, 0x5b, 0x59, 0x65, 0x66, 0x57, 0x4e, 0x50, | ||
5660 | 0x5d, 0x62, 0x51, 0x52, 0x5a, 0x5f, 0x64, 0x4f, | ||
5661 | 0x59, 0x47, 0x32, 0x26, 0x27, 0x32, 0x45, 0x55, | ||
5662 | 0x42, 0x56, 0x5e, 0x3d, 0x2f, 0x4d, 0x51, 0x36, | ||
5663 | 0x30, 0xa4, 0xa8, 0x50, 0x34, 0x35, 0x6a, 0x9b, | ||
5664 | 0x77, 0x4f, 0x47, 0x42, 0x40, 0x50, 0x58, 0x64, | ||
5665 | 0x52, 0x46, 0x38, 0x4a, 0x63, 0x6b, 0x6c, 0x5f, | ||
5666 | 0x7d, 0xa2, 0x95, 0x70, 0x6d, 0x6c, 0x64, 0x6c, | ||
5667 | 0x47, 0x37, 0x3a, 0x31, 0x3d, 0x9d, 0xe7, 0xd1, | ||
5668 | 0x98, 0x7a, 0x89, 0x80, 0x6a, 0x75, 0x6e, 0x5f, | ||
5669 | 0x6b, 0x5f, 0x67, 0x67, 0x54, 0x51, 0x18, 0x0a, | ||
5670 | 0xe4, 0xd1, 0xdd, 0xdb, 0xf1, 0x95, 0x28, 0x4a, | ||
5671 | 0xdb, 0xf6, 0xe9, 0xd9, 0xda, 0xe8, 0xdf, 0xe1, | ||
5672 | 0xda, 0xdb, 0xdb, 0xdc, 0xdd, 0xdd, 0xde, 0xde, | ||
5673 | 0xe3, 0xe3, 0xe4, 0xe6, 0xe7, 0xe9, 0xea, 0xeb, | ||
5674 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5675 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5676 | 0xe5, 0xd9, 0xd4, 0xcf, 0xde, 0xe5, 0xe3, 0xe9, | ||
5677 | 0xe8, 0xe7, 0xe5, 0xe4, 0xe5, 0xe7, 0xea, 0xed, | ||
5678 | 0xf4, 0xe0, 0xd5, 0xe2, 0xee, 0xe8, 0xe5, 0xed, | ||
5679 | 0xcb, 0xdd, 0xeb, 0xe2, 0xc4, 0xbb, 0xf0, 0xdf, | ||
5680 | 0xfb, 0xd5, 0xa5, 0xc1, 0xbc, 0xd4, 0xf2, 0xe0, | ||
5681 | 0xc1, 0xe9, 0xdc, 0xa0, 0xb7, 0xd7, 0xd9, 0xe1, | ||
5682 | 0xc9, 0xc2, 0xb2, 0xdd, 0xbb, 0x8f, 0xde, 0x8f, | ||
5683 | 0x85, 0xb5, 0xdd, 0xa7, 0x7d, 0x89, 0xc6, 0xd1, | ||
5684 | 0xab, 0xae, 0xcc, 0xd2, 0xcf, 0xd6, 0xcf, 0xd3, | ||
5685 | 0xe8, 0xea, 0xde, 0xe5, 0xe4, 0xcf, 0xce, 0xd4, | ||
5686 | 0xdd, 0xdf, 0xca, 0xd6, 0xe3, 0xe5, 0xf7, 0xec, | ||
5687 | 0xe4, 0xd0, 0xce, 0xe2, 0xe9, 0xde, 0xdd, 0xea, | ||
5688 | 0xe7, 0x98, 0x6e, 0x4e, 0x5a, 0xb2, 0xb7, 0x81, | ||
5689 | 0x6b, 0x57, 0x43, 0x62, 0x73, 0x87, 0x94, 0x88, | ||
5690 | 0x62, 0x65, 0x75, 0x84, 0x9d, 0xba, 0x98, 0x46, | ||
5691 | 0x78, 0x61, 0x60, 0x5f, 0x56, 0x6b, 0x7f, 0x71, | ||
5692 | 0x76, 0x7b, 0x89, 0xaf, 0xb9, 0x7a, 0x40, 0x43, | ||
5693 | 0x32, 0x46, 0x4d, 0x3f, 0x30, 0x2c, 0x38, 0x49, | ||
5694 | 0x40, 0x41, 0x70, 0x61, 0x31, 0x5d, 0x75, 0x33, | ||
5695 | 0x44, 0x4f, 0x3f, 0x44, 0x8c, 0x5d, 0x42, 0x87, | ||
5696 | 0x79, 0x69, 0x5e, 0x60, 0x64, 0x64, 0x6b, 0x75, | ||
5697 | 0x6c, 0x70, 0x70, 0x6f, 0x79, 0x84, 0x80, 0x72, | ||
5698 | 0x6b, 0x81, 0x8d, 0x7e, 0x67, 0x5f, 0x63, 0x67, | ||
5699 | 0x7b, 0x78, 0x73, 0x6c, 0x65, 0x5e, 0x58, 0x55, | ||
5700 | 0x6b, 0x66, 0x60, 0x5d, 0x5a, 0x55, 0x4c, 0x45, | ||
5701 | 0x5c, 0x49, 0x42, 0x5f, 0x71, 0x75, 0x80, 0x72, | ||
5702 | 0x56, 0x67, 0x63, 0x5b, 0x5c, 0x50, 0x47, 0x54, | ||
5703 | 0x6d, 0x4b, 0x4b, 0x70, 0x74, 0x52, 0x47, 0x5c, | ||
5704 | 0x44, 0x65, 0x5e, 0x5c, 0x5c, 0x60, 0x68, 0x48, | ||
5705 | 0x4d, 0x4c, 0x42, 0x3e, 0x51, 0x64, 0x55, 0x34, | ||
5706 | 0x34, 0x3f, 0x79, 0x71, 0x43, 0x3c, 0x48, 0x6f, | ||
5707 | 0x80, 0xd8, 0x78, 0x50, 0x56, 0x43, 0x69, 0x96, | ||
5708 | 0x6d, 0x48, 0x51, 0x5d, 0x55, 0x4e, 0x4d, 0x60, | ||
5709 | 0x36, 0x41, 0x4c, 0x43, 0x46, 0x53, 0x46, 0x37, | ||
5710 | 0x37, 0x33, 0x41, 0x3b, 0x25, 0x34, 0x47, 0x36, | ||
5711 | 0x65, 0x50, 0x45, 0x45, 0x4d, 0x71, 0xab, 0xd2, | ||
5712 | 0xc0, 0x76, 0x61, 0x5e, 0x54, 0x53, 0x54, 0x68, | ||
5713 | 0x73, 0x5b, 0x64, 0x6f, 0x6e, 0x70, 0x22, 0x02, | ||
5714 | 0xd9, 0xd1, 0xda, 0xcd, 0xe5, 0x8c, 0x1d, 0x46, | ||
5715 | 0xd0, 0xe5, 0xdc, 0xd6, 0xd6, 0xd4, 0xd9, 0xda, | ||
5716 | 0xda, 0xda, 0xdb, 0xdc, 0xdc, 0xdd, 0xde, 0xde, | ||
5717 | 0xe3, 0xe4, 0xe5, 0xe6, 0xe8, 0xe9, 0xea, 0xeb, | ||
5718 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
5719 | 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, | ||
5720 | 0xeb, 0xcf, 0xc8, 0xda, 0xd7, 0xe7, 0xd7, 0xee, | ||
5721 | 0xe8, 0xe6, 0xe4, 0xe3, 0xe4, 0xe7, 0xeb, 0xed, | ||
5722 | 0xee, 0xea, 0xcf, 0xce, 0xed, 0xea, 0xdb, 0xea, | ||
5723 | 0xd0, 0xe5, 0xcb, 0xd8, 0xcd, 0x9d, 0xd8, 0xdd, | ||
5724 | 0xf5, 0xd7, 0xc3, 0xf7, 0xe3, 0xe4, 0xe4, 0xaf, | ||
5725 | 0xc1, 0xfe, 0xd5, 0x97, 0xdd, 0xe3, 0xf1, 0xe9, | ||
5726 | 0xed, 0xe4, 0xdc, 0xbf, 0xc5, 0xca, 0xe6, 0xe8, | ||
5727 | 0x75, 0x78, 0xa9, 0x87, 0x50, 0x73, 0xd5, 0xd8, | ||
5728 | 0xdc, 0xc7, 0xc5, 0xc5, 0xca, 0xba, 0xac, 0xd8, | ||
5729 | 0xe4, 0xea, 0xde, 0xbe, 0xd8, 0xf1, 0xd6, 0xdc, | ||
5730 | 0xe9, 0xc9, 0xc0, 0xdb, 0xf1, 0xf1, 0xe5, 0xd5, | ||
5731 | 0xd4, 0xda, 0xe5, 0xec, 0xe7, 0xde, 0xe3, 0xf0, | ||
5732 | 0xec, 0x7f, 0x8e, 0x94, 0x7f, 0x72, 0x52, 0x55, | ||
5733 | 0x66, 0x66, 0x42, 0x5e, 0x7d, 0x85, 0x9e, 0x8b, | ||
5734 | 0xbe, 0xac, 0xbd, 0xd6, 0xcc, 0xb1, 0x8b, 0x5f, | ||
5735 | 0x5e, 0x47, 0x57, 0x66, 0x4e, 0x59, 0x8c, 0xa8, | ||
5736 | 0x5a, 0x51, 0x79, 0x8c, 0x60, 0x4c, 0x57, 0x4d, | ||
5737 | 0x64, 0x3e, 0x33, 0x3e, 0x42, 0x52, 0x5f, 0x56, | ||
5738 | 0x52, 0x65, 0x5d, 0x2f, 0x29, 0x46, 0x3f, 0x2c, | ||
5739 | 0x31, 0x3e, 0x22, 0x27, 0x8f, 0x6a, 0x45, 0x95, | ||
5740 | 0x7b, 0x72, 0x71, 0x7a, 0x7d, 0x76, 0x75, 0x7a, | ||
5741 | 0x81, 0x8a, 0x8d, 0x8a, 0x8c, 0x90, 0x89, 0x7c, | ||
5742 | 0x6a, 0x7a, 0x85, 0x82, 0x7c, 0x7b, 0x75, 0x6e, | ||
5743 | 0x87, 0x7b, 0x69, 0x5d, 0x5c, 0x68, 0x78, 0x84, | ||
5744 | 0x6c, 0x67, 0x63, 0x62, 0x62, 0x5f, 0x59, 0x54, | ||
5745 | 0x53, 0x61, 0x49, 0x45, 0x55, 0x51, 0x50, 0x4e, | ||
5746 | 0x5a, 0x57, 0x64, 0x63, 0x4e, 0x51, 0x64, 0x66, | ||
5747 | 0x7a, 0x6b, 0x5f, 0x5f, 0x66, 0x6b, 0x6c, 0x6d, | ||
5748 | 0x5e, 0x6a, 0x5e, 0x6e, 0x65, 0x50, 0x6a, 0x70, | ||
5749 | 0x48, 0x41, 0x3f, 0x42, 0x3c, 0x2d, 0x27, 0x2c, | ||
5750 | 0x18, 0x44, 0x85, 0x4c, 0x22, 0x48, 0x30, 0x12, | ||
5751 | 0x6f, 0xc8, 0x4b, 0x3b, 0x41, 0x35, 0x65, 0x9a, | ||
5752 | 0x8a, 0x58, 0x5c, 0x69, 0x55, 0x3c, 0x3b, 0x5e, | ||
5753 | 0x4e, 0x3e, 0x52, 0x5a, 0x5f, 0x58, 0x33, 0x2f, | ||
5754 | 0x38, 0x3c, 0x3b, 0x43, 0x57, 0x5e, 0x61, 0x6e, | ||
5755 | 0x64, 0x7d, 0x81, 0x83, 0x7f, 0x5f, 0x7b, 0xd7, | ||
5756 | 0xeb, 0xa0, 0x42, 0x35, 0x4f, 0x5f, 0x71, 0x67, | ||
5757 | 0x80, 0x79, 0x7c, 0x80, 0x8f, 0x86, 0x23, 0x10, | ||
5758 | 0xd9, 0xd9, 0xd3, 0xd9, 0xe0, 0x96, 0x1a, 0x69, | ||
5759 | 0xe0, 0xda, 0xd4, 0xd1, 0xd2, 0xd4, 0xd5, 0xd4, | ||
5760 | 0xd5, 0xd6, 0xd7, 0xd7, 0xd9, 0xda, 0xda, 0xdb, | ||
5761 | 0xdc, 0xdd, 0xde, 0xe0, 0xe2, 0xe4, 0xe5, 0xe6, | ||
5762 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
5763 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5764 | 0xe7, 0xef, 0xcd, 0xd0, 0xe4, 0xd1, 0xca, 0xd5, | ||
5765 | 0xed, 0xe2, 0xdb, 0xce, 0xdf, 0xf2, 0xdf, 0xde, | ||
5766 | 0xdc, 0xf2, 0xc8, 0xcb, 0xdb, 0xed, 0xd1, 0xd2, | ||
5767 | 0xd7, 0xde, 0xb9, 0xe5, 0xc5, 0xb9, 0xef, 0xec, | ||
5768 | 0xe3, 0xc8, 0xbf, 0xf9, 0xdb, 0xcf, 0xf6, 0x90, | ||
5769 | 0xc8, 0xfb, 0x95, 0xc3, 0xf1, 0xe7, 0xf4, 0xde, | ||
5770 | 0xe2, 0xf1, 0xe9, 0xcf, 0xd1, 0xc3, 0xbd, 0xf1, | ||
5771 | 0x9f, 0x83, 0xa0, 0xad, 0x98, 0x9c, 0xac, 0xbe, | ||
5772 | 0xed, 0xe7, 0xda, 0xcd, 0xe2, 0xe0, 0xcb, 0xef, | ||
5773 | 0xeb, 0xf3, 0xef, 0xe1, 0xd2, 0xc5, 0xcd, 0xe2, | ||
5774 | 0xe6, 0xaa, 0xbc, 0xec, 0xe5, 0xd8, 0xdd, 0xd9, | ||
5775 | 0xcb, 0xe9, 0xff, 0xd3, 0xef, 0xe6, 0xd3, 0xdb, | ||
5776 | 0xd7, 0xe6, 0x9b, 0x56, 0x55, 0x56, 0x61, 0x79, | ||
5777 | 0x81, 0x6a, 0x42, 0x45, 0x71, 0x82, 0x86, 0x9f, | ||
5778 | 0xbd, 0xbd, 0xb4, 0xc8, 0xaf, 0x6d, 0x53, 0x40, | ||
5779 | 0x68, 0x5e, 0x5e, 0x60, 0x58, 0x60, 0x86, 0xaa, | ||
5780 | 0x74, 0x5c, 0x79, 0x60, 0x63, 0x79, 0x47, 0x46, | ||
5781 | 0x47, 0x46, 0x45, 0x45, 0x46, 0x44, 0x3e, 0x38, | ||
5782 | 0x28, 0x28, 0x29, 0x2c, 0x32, 0x38, 0x3d, 0x3f, | ||
5783 | 0x29, 0x1a, 0x3d, 0x6a, 0x96, 0x83, 0x9d, 0xc1, | ||
5784 | 0x86, 0x73, 0x70, 0x81, 0x85, 0x78, 0x76, 0x82, | ||
5785 | 0x90, 0x96, 0x93, 0x8e, 0x96, 0x9b, 0x80, 0x5a, | ||
5786 | 0x6d, 0x6e, 0x68, 0x58, 0x4c, 0x52, 0x6b, 0x81, | ||
5787 | 0x6b, 0x67, 0x63, 0x64, 0x68, 0x69, 0x66, 0x61, | ||
5788 | 0x4b, 0x4a, 0x4a, 0x51, 0x58, 0x5a, 0x55, 0x4e, | ||
5789 | 0x59, 0x5f, 0x59, 0x47, 0x42, 0x51, 0x62, 0x6a, | ||
5790 | 0x54, 0x5b, 0x5d, 0x58, 0x56, 0x5d, 0x67, 0x6b, | ||
5791 | 0x6c, 0x5e, 0x47, 0x5c, 0x69, 0x5e, 0x60, 0x54, | ||
5792 | 0x56, 0x60, 0x66, 0x66, 0x6a, 0x6d, 0x63, 0x53, | ||
5793 | 0x41, 0x41, 0x3f, 0x3d, 0x38, 0x32, 0x2b, 0x26, | ||
5794 | 0x1b, 0x58, 0xa3, 0x64, 0x1f, 0x45, 0x47, 0x21, | ||
5795 | 0xae, 0xa1, 0x2a, 0x53, 0x47, 0x3c, 0x4e, 0x95, | ||
5796 | 0x7d, 0x58, 0x38, 0x33, 0x35, 0x34, 0x41, 0x56, | ||
5797 | 0x51, 0x39, 0x35, 0x47, 0x5a, 0x6a, 0x70, 0x69, | ||
5798 | 0x85, 0x8d, 0x70, 0x5a, 0x74, 0x8c, 0x8d, 0x93, | ||
5799 | 0x80, 0x9e, 0x66, 0x4e, 0x82, 0x68, 0x53, 0xa6, | ||
5800 | 0xe2, 0xee, 0x92, 0x29, 0x2f, 0x59, 0x67, 0x76, | ||
5801 | 0x6d, 0x49, 0x70, 0x7d, 0x77, 0x65, 0x22, 0x0f, | ||
5802 | 0xd3, 0xd4, 0xd2, 0xd4, 0xe7, 0xa3, 0x2d, 0x8f, | ||
5803 | 0xe3, 0xdd, 0xd6, 0xd3, 0xd4, 0xd6, 0xd7, 0xd6, | ||
5804 | 0xd6, 0xd7, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdb, | ||
5805 | 0xdd, 0xdd, 0xdf, 0xe0, 0xe2, 0xe3, 0xe5, 0xe5, | ||
5806 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
5807 | 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, | ||
5808 | 0xe4, 0xe7, 0xde, 0xdc, 0xed, 0xe8, 0xcc, 0xc7, | ||
5809 | 0xdc, 0xe1, 0xe7, 0xda, 0xd9, 0xef, 0xf3, 0xeb, | ||
5810 | 0xec, 0xf4, 0xdf, 0xc4, 0xd9, 0xd6, 0xc0, 0xc0, | ||
5811 | 0xe4, 0xdf, 0xc8, 0xf0, 0xc0, 0xcc, 0xf0, 0xde, | ||
5812 | 0xdc, 0xcd, 0xc7, 0xea, 0xd3, 0xd9, 0xd5, 0xa4, | ||
5813 | 0xe1, 0x9c, 0xab, 0xee, 0xf2, 0xde, 0xeb, 0xd7, | ||
5814 | 0xd7, 0xcd, 0xe9, 0xe1, 0xbd, 0xb9, 0xb6, 0xab, | ||
5815 | 0x95, 0x93, 0x68, 0x63, 0x74, 0x9c, 0xe6, 0xf6, | ||
5816 | 0xc1, 0xc5, 0xc4, 0xbd, 0xd4, 0xd4, 0xc3, 0xeb, | ||
5817 | 0xf3, 0xe8, 0xe9, 0xf3, 0xe7, 0xc8, 0xc6, 0xe0, | ||
5818 | 0xbb, 0xac, 0xee, 0xda, 0xc4, 0xdf, 0xa2, 0x72, | ||
5819 | 0x25, 0x90, 0xff, 0xff, 0xec, 0xdd, 0xdd, 0xda, | ||
5820 | 0xad, 0x4e, 0x4c, 0x88, 0x7d, 0x73, 0x8e, 0x86, | ||
5821 | 0x61, 0x5d, 0x50, 0x60, 0x83, 0x84, 0x7b, 0x8b, | ||
5822 | 0xbd, 0xaa, 0x98, 0xa2, 0x99, 0x9d, 0xa7, 0x72, | ||
5823 | 0x6c, 0x8c, 0x80, 0x6b, 0x67, 0x51, 0x60, 0xa7, | ||
5824 | 0x78, 0x4c, 0x5b, 0x60, 0x50, 0x57, 0x48, 0x2b, | ||
5825 | 0x41, 0x42, 0x43, 0x42, 0x41, 0x3f, 0x40, 0x41, | ||
5826 | 0x41, 0x46, 0x44, 0x35, 0x26, 0x2e, 0x4c, 0x69, | ||
5827 | 0x65, 0x49, 0x34, 0x4c, 0x96, 0x62, 0x3a, 0x4e, | ||
5828 | 0x6f, 0x67, 0x61, 0x61, 0x66, 0x6b, 0x6e, 0x70, | ||
5829 | 0x6b, 0x52, 0x53, 0x72, 0x7d, 0x69, 0x62, 0x70, | ||
5830 | 0x5c, 0x5c, 0x63, 0x71, 0x81, 0x85, 0x7f, 0x76, | ||
5831 | 0x7e, 0x75, 0x6a, 0x64, 0x65, 0x67, 0x66, 0x64, | ||
5832 | 0x5d, 0x5b, 0x5c, 0x62, 0x69, 0x6a, 0x65, 0x5e, | ||
5833 | 0x5f, 0x5d, 0x53, 0x4c, 0x58, 0x6e, 0x75, 0x6f, | ||
5834 | 0x6b, 0x66, 0x67, 0x6e, 0x70, 0x67, 0x5b, 0x53, | ||
5835 | 0x5a, 0x61, 0x5d, 0x63, 0x44, 0x28, 0x58, 0x8c, | ||
5836 | 0x6f, 0x6b, 0x5e, 0x52, 0x55, 0x5f, 0x5e, 0x53, | ||
5837 | 0x3a, 0x3a, 0x3d, 0x42, 0x44, 0x3e, 0x31, 0x27, | ||
5838 | 0x19, 0x5f, 0x91, 0x54, 0x2c, 0x3a, 0x28, 0x29, | ||
5839 | 0xd9, 0x82, 0x27, 0x54, 0x59, 0x35, 0x40, 0x87, | ||
5840 | 0x99, 0x4c, 0x58, 0x72, 0x4b, 0x55, 0x6b, 0x3b, | ||
5841 | 0x6b, 0x71, 0x6c, 0x59, 0x58, 0x75, 0x8d, 0x8c, | ||
5842 | 0x78, 0x92, 0x93, 0x92, 0x9e, 0x8c, 0x6a, 0x61, | ||
5843 | 0x7c, 0x7a, 0x74, 0x68, 0x47, 0x27, 0x3b, 0x72, | ||
5844 | 0xc3, 0xe0, 0xbe, 0x85, 0x72, 0x64, 0x6b, 0x95, | ||
5845 | 0x8d, 0x6f, 0x8b, 0x66, 0x6b, 0x80, 0x19, 0x00, | ||
5846 | 0xd8, 0xd9, 0xd7, 0xcc, 0xe4, 0x9b, 0x25, 0x9d, | ||
5847 | 0xe6, 0xe0, 0xd9, 0xd6, 0xd8, 0xda, 0xda, 0xda, | ||
5848 | 0xd8, 0xd8, 0xd9, 0xd9, 0xda, 0xdb, 0xdb, 0xdb, | ||
5849 | 0xde, 0xde, 0xdf, 0xe0, 0xe2, 0xe3, 0xe4, 0xe4, | ||
5850 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
5851 | 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, | ||
5852 | 0xe6, 0xe4, 0xe9, 0xce, 0xc5, 0xd4, 0xd0, 0xdb, | ||
5853 | 0xd1, 0xe1, 0xe8, 0xdc, 0xcc, 0xdc, 0xef, 0xdc, | ||
5854 | 0xe4, 0xe1, 0xed, 0xc1, 0xdf, 0xd6, 0xc9, 0xd5, | ||
5855 | 0xef, 0xd2, 0xcf, 0xe9, 0x90, 0xb1, 0xd1, 0xd3, | ||
5856 | 0xc8, 0xda, 0xda, 0xca, 0xc9, 0xea, 0xbd, 0xa7, | ||
5857 | 0xa8, 0x88, 0xce, 0xe9, 0xf6, 0xe3, 0xea, 0xe0, | ||
5858 | 0xdb, 0xe8, 0xe5, 0xdd, 0xe3, 0xbe, 0x9e, 0xcc, | ||
5859 | 0xd1, 0x94, 0x7e, 0x6b, 0x5b, 0x96, 0xdc, 0xe7, | ||
5860 | 0xea, 0xf4, 0xf6, 0xe7, 0xec, 0xda, 0xc0, 0xe6, | ||
5861 | 0xd7, 0xdf, 0xe6, 0xe7, 0xe9, 0xe8, 0xd6, 0xbd, | ||
5862 | 0xcf, 0xcd, 0xd4, 0xef, 0xe9, 0xd0, 0x9e, 0x3a, | ||
5863 | 0x34, 0x1b, 0x7c, 0xed, 0xc6, 0xd0, 0xd7, 0x7e, | ||
5864 | 0x57, 0x4a, 0x6a, 0x88, 0x68, 0x40, 0x51, 0x79, | ||
5865 | 0x5e, 0x54, 0x42, 0x42, 0x52, 0x58, 0x65, 0x82, | ||
5866 | 0xcd, 0xba, 0xa8, 0xa7, 0xa1, 0xc2, 0xc1, 0x55, | ||
5867 | 0x48, 0x62, 0x51, 0x3c, 0x41, 0x36, 0x4f, 0x9b, | ||
5868 | 0x83, 0x63, 0x6e, 0x93, 0x6d, 0x39, 0x43, 0x46, | ||
5869 | 0x46, 0x46, 0x40, 0x35, 0x2c, 0x30, 0x3e, 0x4c, | ||
5870 | 0x54, 0x57, 0x4f, 0x3b, 0x29, 0x30, 0x50, 0x6e, | ||
5871 | 0x36, 0x47, 0x46, 0x51, 0x9d, 0x7e, 0x5e, 0x6e, | ||
5872 | 0x65, 0x71, 0x71, 0x68, 0x68, 0x6e, 0x63, 0x4e, | ||
5873 | 0x48, 0x57, 0x5f, 0x57, 0x4c, 0x4c, 0x54, 0x5b, | ||
5874 | 0x52, 0x58, 0x6b, 0x8b, 0xa6, 0xaa, 0x96, 0x80, | ||
5875 | 0x83, 0x82, 0x83, 0x87, 0x89, 0x84, 0x79, 0x70, | ||
5876 | 0x6f, 0x6b, 0x68, 0x69, 0x6b, 0x68, 0x5f, 0x56, | ||
5877 | 0x46, 0x48, 0x45, 0x45, 0x54, 0x6a, 0x6f, 0x67, | ||
5878 | 0x70, 0x59, 0x51, 0x5e, 0x66, 0x5c, 0x56, 0x5b, | ||
5879 | 0x50, 0x73, 0x74, 0x73, 0x74, 0x78, 0x7b, 0x5c, | ||
5880 | 0x4d, 0x56, 0x5a, 0x5a, 0x5e, 0x60, 0x54, 0x42, | ||
5881 | 0x51, 0x4b, 0x41, 0x35, 0x2d, 0x2c, 0x30, 0x35, | ||
5882 | 0x1f, 0x5d, 0x7b, 0x52, 0x5a, 0x6c, 0x68, 0xa4, | ||
5883 | 0xcc, 0x6b, 0x5f, 0x53, 0x3b, 0x0d, 0x2e, 0x72, | ||
5884 | 0x9d, 0x64, 0x53, 0x60, 0x65, 0x7b, 0x8a, 0x77, | ||
5885 | 0x71, 0x63, 0x67, 0x7a, 0x75, 0x56, 0x4d, 0x5e, | ||
5886 | 0x6a, 0x78, 0x76, 0x7c, 0x8d, 0x83, 0x7a, 0x8d, | ||
5887 | 0x76, 0x6c, 0x7f, 0x95, 0x9a, 0x9c, 0x7c, 0x40, | ||
5888 | 0x5b, 0xa3, 0xca, 0xb4, 0x82, 0x51, 0x5a, 0x93, | ||
5889 | 0x99, 0x62, 0x83, 0x60, 0x86, 0xb3, 0x38, 0x13, | ||
5890 | 0xe3, 0xe4, 0xe4, 0xce, 0xe6, 0x8e, 0x19, 0xa1, | ||
5891 | 0xea, 0xe4, 0xdd, 0xda, 0xdb, 0xdd, 0xde, 0xdd, | ||
5892 | 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdc, 0xdc, 0xdc, | ||
5893 | 0xdf, 0xdf, 0xe0, 0xe1, 0xe1, 0xe2, 0xe3, 0xe3, | ||
5894 | 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, | ||
5895 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
5896 | 0xe6, 0xe7, 0xf5, 0xe2, 0xc6, 0xcd, 0xd9, 0xe3, | ||
5897 | 0xd8, 0xed, 0xe7, 0xe2, 0xda, 0xd9, 0xe8, 0xd8, | ||
5898 | 0xeb, 0xe4, 0xfa, 0xd1, 0xdc, 0xdd, 0xc9, 0xe2, | ||
5899 | 0xf5, 0xb1, 0xbf, 0xea, 0xa4, 0xd7, 0xc6, 0xb4, | ||
5900 | 0xb6, 0xe4, 0xe9, 0xab, 0xcb, 0xf5, 0xc4, 0x8e, | ||
5901 | 0x7e, 0xc9, 0xd5, 0xbd, 0xc4, 0xb5, 0xd4, 0xd8, | ||
5902 | 0xcd, 0xae, 0xb4, 0xbb, 0xb3, 0xa9, 0xa1, 0xad, | ||
5903 | 0xc4, 0x73, 0x7c, 0x6e, 0x4f, 0x94, 0xd4, 0xd8, | ||
5904 | 0xbb, 0xd1, 0xe2, 0xde, 0xe8, 0xd9, 0xc4, 0xef, | ||
5905 | 0xdc, 0xe4, 0xe2, 0xd2, 0xd7, 0xf4, 0xee, 0xc2, | ||
5906 | 0xc3, 0xd7, 0xc4, 0xee, 0xd3, 0xa6, 0xd8, 0xc1, | ||
5907 | 0x59, 0x58, 0x58, 0xc5, 0xdd, 0xe2, 0xd4, 0xc5, | ||
5908 | 0x5e, 0x64, 0x4d, 0x46, 0x73, 0x68, 0x39, 0x52, | ||
5909 | 0x69, 0x60, 0x55, 0x50, 0x4e, 0x4f, 0x64, 0x83, | ||
5910 | 0x97, 0xa1, 0x99, 0xa2, 0xb2, 0xc7, 0xac, 0x41, | ||
5911 | 0x38, 0x3a, 0x50, 0x6a, 0x6d, 0x69, 0x73, 0x80, | ||
5912 | 0x62, 0x54, 0x41, 0x5b, 0x6a, 0x4c, 0x43, 0x52, | ||
5913 | 0x35, 0x47, 0x59, 0x5a, 0x4c, 0x3e, 0x39, 0x3c, | ||
5914 | 0x44, 0x3a, 0x2e, 0x29, 0x2b, 0x2f, 0x2f, 0x2e, | ||
5915 | 0x34, 0x4a, 0x72, 0x87, 0xa0, 0x64, 0x45, 0x49, | ||
5916 | 0x6b, 0x74, 0x6f, 0x60, 0x5f, 0x69, 0x63, 0x51, | ||
5917 | 0x50, 0x4b, 0x58, 0x76, 0x87, 0x7e, 0x6f, 0x69, | ||
5918 | 0x6a, 0x71, 0x7a, 0x7e, 0x79, 0x6e, 0x62, 0x5b, | ||
5919 | 0x76, 0x6e, 0x66, 0x66, 0x6e, 0x77, 0x7e, 0x80, | ||
5920 | 0x75, 0x6f, 0x68, 0x63, 0x5f, 0x56, 0x49, 0x3e, | ||
5921 | 0x2f, 0x40, 0x4a, 0x46, 0x48, 0x55, 0x61, 0x63, | ||
5922 | 0x83, 0x65, 0x58, 0x64, 0x64, 0x52, 0x50, 0x60, | ||
5923 | 0x7b, 0x51, 0x24, 0x41, 0x64, 0x66, 0x68, 0x58, | ||
5924 | 0x59, 0x59, 0x4a, 0x34, 0x2f, 0x43, 0x5c, 0x68, | ||
5925 | 0x5a, 0x64, 0x6d, 0x6c, 0x68, 0x6c, 0x7a, 0x88, | ||
5926 | 0x96, 0x9e, 0xa0, 0x6f, 0x5b, 0x5c, 0x61, 0xa4, | ||
5927 | 0x9f, 0x4e, 0x8c, 0x7b, 0xa5, 0xaa, 0x9f, 0x75, | ||
5928 | 0x7b, 0x7d, 0x6a, 0x71, 0x95, 0x97, 0x84, 0x8b, | ||
5929 | 0x6d, 0x93, 0x91, 0x6f, 0x6b, 0x7b, 0x7c, 0x74, | ||
5930 | 0x6d, 0x78, 0x74, 0x75, 0x7c, 0x6b, 0x65, 0x82, | ||
5931 | 0xa9, 0x99, 0x8a, 0xa1, 0xc5, 0xb8, 0x8b, 0x74, | ||
5932 | 0xd7, 0xdd, 0xda, 0xd5, 0xd2, 0xca, 0xcb, 0xd9, | ||
5933 | 0xc1, 0x77, 0xae, 0xb3, 0xcb, 0xa7, 0x00, 0x00, | ||
5934 | 0xe3, 0xe8, 0xee, 0xdb, 0xf2, 0x8b, 0x25, 0xb5, | ||
5935 | 0xec, 0xe6, 0xdf, 0xdc, 0xde, 0xe0, 0xe0, 0xe0, | ||
5936 | 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdc, 0xdc, 0xdc, | ||
5937 | 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe2, 0xe2, 0xe2, | ||
5938 | 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, | ||
5939 | 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, | ||
5940 | 0xe9, 0xe3, 0xe7, 0xf0, 0xdc, 0xd0, 0xde, 0xd4, | ||
5941 | 0xcd, 0xeb, 0xe1, 0xe3, 0xe7, 0xd4, 0xd9, 0xe5, | ||
5942 | 0xec, 0xe7, 0xf2, 0xe2, 0xd0, 0xe0, 0xc2, 0xe5, | ||
5943 | 0xdd, 0xaa, 0xc4, 0xcf, 0xa0, 0xec, 0xd4, 0xc2, | ||
5944 | 0xbb, 0xdd, 0xde, 0xa6, 0xe0, 0xe8, 0xd2, 0x77, | ||
5945 | 0x89, 0xe4, 0xee, 0xff, 0xe2, 0xcd, 0xe4, 0xdb, | ||
5946 | 0xeb, 0xf3, 0xf7, 0xed, 0xfd, 0xff, 0xcd, 0xa6, | ||
5947 | 0xab, 0x8e, 0x66, 0x65, 0x74, 0xaa, 0xde, 0xb6, | ||
5948 | 0xcf, 0xe3, 0xf2, 0xe8, 0xea, 0xd3, 0xb7, 0xde, | ||
5949 | 0xde, 0xdd, 0xf1, 0xf3, 0xd7, 0xca, 0xca, 0xbf, | ||
5950 | 0xde, 0xd7, 0xdb, 0xd4, 0xd5, 0xda, 0xb2, 0x7e, | ||
5951 | 0xad, 0xea, 0xd0, 0xea, 0xdc, 0xcc, 0xaa, 0xa1, | ||
5952 | 0x61, 0x3e, 0x5f, 0x71, 0x5f, 0x49, 0x4b, 0x86, | ||
5953 | 0x5b, 0x52, 0x54, 0x57, 0x53, 0x5b, 0x7d, 0x9c, | ||
5954 | 0x9d, 0xbf, 0xa9, 0xaf, 0xc9, 0xb2, 0x7f, 0x45, | ||
5955 | 0x3a, 0x37, 0x47, 0x5c, 0x5b, 0x50, 0x4f, 0x53, | ||
5956 | 0x45, 0x67, 0x72, 0x59, 0x54, 0x4e, 0x3c, 0x49, | ||
5957 | 0x2c, 0x37, 0x3f, 0x3c, 0x34, 0x36, 0x45, 0x54, | ||
5958 | 0x44, 0x36, 0x2a, 0x2e, 0x38, 0x38, 0x28, 0x16, | ||
5959 | 0x40, 0x21, 0x1a, 0x36, 0x6c, 0x3e, 0x34, 0x5b, | ||
5960 | 0x65, 0x66, 0x64, 0x64, 0x6a, 0x72, 0x72, 0x6d, | ||
5961 | 0x67, 0x5a, 0x66, 0x7f, 0x74, 0x51, 0x54, 0x75, | ||
5962 | 0x84, 0x88, 0x86, 0x76, 0x61, 0x55, 0x56, 0x5d, | ||
5963 | 0x6f, 0x63, 0x57, 0x54, 0x5e, 0x6e, 0x7c, 0x83, | ||
5964 | 0x74, 0x6f, 0x68, 0x65, 0x63, 0x5b, 0x4f, 0x45, | ||
5965 | 0x45, 0x55, 0x5c, 0x55, 0x53, 0x5d, 0x66, 0x67, | ||
5966 | 0x6e, 0x43, 0x33, 0x57, 0x77, 0x6d, 0x52, 0x45, | ||
5967 | 0x68, 0x53, 0x4e, 0x7d, 0x82, 0x59, 0x5d, 0x6e, | ||
5968 | 0x4a, 0x67, 0x7d, 0x7a, 0x72, 0x79, 0x8a, 0x95, | ||
5969 | 0x8f, 0x8a, 0x7e, 0x6f, 0x60, 0x55, 0x50, 0x4e, | ||
5970 | 0x72, 0x5b, 0x80, 0x74, 0x52, 0x60, 0x78, 0xa0, | ||
5971 | 0x81, 0x62, 0xb9, 0x86, 0x83, 0x84, 0x94, 0x80, | ||
5972 | 0x54, 0x61, 0x6f, 0x74, 0x70, 0x67, 0x59, 0x4c, | ||
5973 | 0x77, 0x82, 0x8c, 0x9e, 0x9b, 0x6d, 0x5f, 0x89, | ||
5974 | 0x96, 0x8a, 0x66, 0x59, 0x69, 0x5c, 0x3f, 0x3c, | ||
5975 | 0x75, 0x6d, 0x81, 0xab, 0xa5, 0x71, 0x81, 0xd1, | ||
5976 | 0xba, 0xe8, 0xd0, 0x6e, 0x4c, 0x88, 0x99, 0x63, | ||
5977 | 0xb3, 0x7c, 0x9e, 0xa4, 0xba, 0x8a, 0x0a, 0x36, | ||
5978 | 0xdf, 0xe5, 0xec, 0xe1, 0xf1, 0x7b, 0x2e, 0xbd, | ||
5979 | 0xed, 0xe7, 0xe0, 0xdd, 0xdf, 0xe1, 0xe1, 0xe1, | ||
5980 | 0xe0, 0xe0, 0xdf, 0xdf, 0xde, 0xdd, 0xdd, 0xdd, | ||
5981 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
5982 | 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, | ||
5983 | 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, | ||
5984 | 0xed, 0xe5, 0xdb, 0xe8, 0xd8, 0xc9, 0xdd, 0xd7, | ||
5985 | 0xc2, 0xe6, 0xe5, 0xe2, 0xe4, 0xc7, 0xc4, 0xe7, | ||
5986 | 0xe8, 0xe3, 0xe2, 0xe4, 0xc6, 0xd7, 0xbd, 0xdb, | ||
5987 | 0xc6, 0xcc, 0xea, 0xab, 0x86, 0xd0, 0xcd, 0xd1, | ||
5988 | 0xd3, 0xd2, 0xbf, 0xb9, 0xf2, 0xd2, 0xcb, 0x81, | ||
5989 | 0xb0, 0xd2, 0xcc, 0xd8, 0xbf, 0xd9, 0xe3, 0xf0, | ||
5990 | 0xe9, 0xda, 0xf7, 0xf2, 0xdb, 0xf4, 0xf0, 0xc4, | ||
5991 | 0x82, 0x6e, 0x6e, 0x6d, 0x63, 0x91, 0xd1, 0xd4, | ||
5992 | 0xd2, 0xe2, 0xec, 0xe4, 0xed, 0xda, 0xbd, 0xe0, | ||
5993 | 0xcc, 0xd4, 0xec, 0xd6, 0x93, 0x7c, 0x8d, 0x8e, | ||
5994 | 0x6a, 0xa7, 0xc7, 0xa6, 0x75, 0x74, 0x99, 0xb1, | ||
5995 | 0x3f, 0x37, 0x51, 0xa1, 0xbe, 0xcd, 0xb9, 0x87, | ||
5996 | 0x5c, 0x20, 0x4f, 0x69, 0x50, 0x43, 0x42, 0x72, | ||
5997 | 0x77, 0x63, 0x60, 0x5d, 0x4b, 0x4d, 0x6a, 0x7e, | ||
5998 | 0x86, 0xb8, 0xaa, 0xbd, 0xde, 0xa8, 0x69, 0x50, | ||
5999 | 0x56, 0x68, 0x52, 0x40, 0x49, 0x38, 0x3d, 0x77, | ||
6000 | 0x9d, 0x76, 0x74, 0x76, 0x6a, 0x52, 0x31, 0x2d, | ||
6001 | 0x3a, 0x41, 0x45, 0x40, 0x34, 0x2c, 0x2c, 0x30, | ||
6002 | 0x46, 0x43, 0x3d, 0x38, 0x34, 0x31, 0x30, 0x30, | ||
6003 | 0x2e, 0x51, 0x40, 0x3f, 0x9e, 0x82, 0x54, 0x67, | ||
6004 | 0x65, 0x5f, 0x61, 0x6d, 0x74, 0x73, 0x71, 0x73, | ||
6005 | 0x77, 0x75, 0x71, 0x6a, 0x66, 0x68, 0x6f, 0x75, | ||
6006 | 0x69, 0x69, 0x67, 0x64, 0x60, 0x5f, 0x60, 0x63, | ||
6007 | 0x63, 0x5d, 0x57, 0x58, 0x60, 0x68, 0x6c, 0x6d, | ||
6008 | 0x75, 0x71, 0x6f, 0x71, 0x73, 0x71, 0x68, 0x60, | ||
6009 | 0x60, 0x5f, 0x57, 0x50, 0x59, 0x67, 0x68, 0x5d, | ||
6010 | 0x61, 0x5e, 0x62, 0x63, 0x4e, 0x34, 0x36, 0x4a, | ||
6011 | 0x77, 0x65, 0x55, 0x76, 0x7f, 0x65, 0x68, 0x6a, | ||
6012 | 0x4b, 0x70, 0x90, 0x91, 0x86, 0x85, 0x8d, 0x93, | ||
6013 | 0x91, 0x7e, 0x6c, 0x6b, 0x77, 0x81, 0x7e, 0x76, | ||
6014 | 0x50, 0x3e, 0x7e, 0x86, 0x60, 0x6b, 0x75, 0x7d, | ||
6015 | 0x88, 0x53, 0x61, 0x66, 0x89, 0x91, 0x89, 0x75, | ||
6016 | 0x5e, 0x7e, 0x83, 0x78, 0x7d, 0x79, 0x73, 0x7c, | ||
6017 | 0x7e, 0x85, 0x56, 0x3a, 0x6b, 0x90, 0x84, 0x7b, | ||
6018 | 0x5a, 0xa7, 0xbb, 0x7d, 0x36, 0x0f, 0x1d, 0x4a, | ||
6019 | 0xa6, 0x8c, 0x8b, 0x91, 0x87, 0x8c, 0x8e, 0x79, | ||
6020 | 0x8e, 0x35, 0x5b, 0xd2, 0xc3, 0x55, 0x3c, 0x6f, | ||
6021 | 0x89, 0x94, 0x8f, 0x86, 0xa1, 0x75, 0x1a, 0x25, | ||
6022 | 0xe3, 0xe5, 0xe7, 0xe0, 0xe6, 0x65, 0x35, 0xbf, | ||
6023 | 0xed, 0xe7, 0xe0, 0xdd, 0xdf, 0xe1, 0xe1, 0xe0, | ||
6024 | 0xe2, 0xe1, 0xe1, 0xe0, 0xdf, 0xde, 0xdd, 0xdd, | ||
6025 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
6026 | 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
6027 | 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, | ||
6028 | 0xea, 0xea, 0xec, 0xef, 0xe5, 0xdc, 0xdc, 0xd7, | ||
6029 | 0xc8, 0xe4, 0xf0, 0xe8, 0xe5, 0xd4, 0xc9, 0xe7, | ||
6030 | 0xf8, 0xe9, 0xe3, 0xe0, 0xcd, 0xc2, 0xba, 0xc4, | ||
6031 | 0xb9, 0xd3, 0xf2, 0xac, 0xbd, 0xd9, 0xb4, 0xb3, | ||
6032 | 0xe5, 0xd7, 0xa7, 0xca, 0xe8, 0xcb, 0xb5, 0xa1, | ||
6033 | 0xf3, 0xfa, 0xf8, 0xe0, 0xe2, 0xf7, 0xe5, 0xf0, | ||
6034 | 0xe4, 0xe2, 0xcc, 0xad, 0xb1, 0xb1, 0xac, 0xd0, | ||
6035 | 0xd3, 0x73, 0x6c, 0x6e, 0x6f, 0xab, 0xd3, 0xe3, | ||
6036 | 0xdf, 0xe6, 0xe9, 0xe2, 0xf2, 0xe5, 0xc6, 0xe6, | ||
6037 | 0xdc, 0xc3, 0xaf, 0x7d, 0x3f, 0x4b, 0x72, 0x6e, | ||
6038 | 0x6b, 0xb3, 0xd1, 0xca, 0x7b, 0x35, 0x62, 0x93, | ||
6039 | 0x3a, 0x22, 0x28, 0x63, 0xb7, 0x7f, 0x37, 0x4b, | ||
6040 | 0x39, 0x2d, 0x4c, 0x3a, 0x3e, 0x4e, 0x38, 0x6a, | ||
6041 | 0x56, 0x49, 0x5d, 0x75, 0x72, 0x7b, 0x93, 0x9a, | ||
6042 | 0x8e, 0xae, 0x9d, 0xaa, 0xb8, 0x85, 0x4f, 0x2c, | ||
6043 | 0x50, 0x68, 0x5b, 0x53, 0x60, 0x48, 0x41, 0x71, | ||
6044 | 0x88, 0x5c, 0x47, 0x6e, 0x63, 0x28, 0x2c, 0x4a, | ||
6045 | 0x41, 0x3e, 0x3b, 0x3a, 0x3f, 0x49, 0x56, 0x5f, | ||
6046 | 0x37, 0x3f, 0x41, 0x35, 0x23, 0x1f, 0x2b, 0x3b, | ||
6047 | 0x31, 0x74, 0x63, 0x40, 0x92, 0x82, 0x5a, 0x69, | ||
6048 | 0x6d, 0x5e, 0x51, 0x52, 0x58, 0x5d, 0x67, 0x71, | ||
6049 | 0x5e, 0x6c, 0x7d, 0x82, 0x76, 0x6b, 0x6d, 0x77, | ||
6050 | 0x76, 0x73, 0x70, 0x70, 0x72, 0x6f, 0x67, 0x60, | ||
6051 | 0x72, 0x6b, 0x64, 0x65, 0x6e, 0x79, 0x81, 0x83, | ||
6052 | 0x76, 0x72, 0x6f, 0x70, 0x72, 0x6e, 0x65, 0x5c, | ||
6053 | 0x5b, 0x57, 0x4a, 0x40, 0x48, 0x59, 0x5e, 0x56, | ||
6054 | 0x59, 0x47, 0x42, 0x5c, 0x85, 0xa2, 0xaa, 0xa8, | ||
6055 | 0x9f, 0x58, 0x32, 0x74, 0x99, 0x70, 0x5b, 0x58, | ||
6056 | 0x70, 0x88, 0x99, 0x94, 0x89, 0x81, 0x7a, 0x71, | ||
6057 | 0x72, 0x6f, 0x6e, 0x71, 0x74, 0x6d, 0x5d, 0x4e, | ||
6058 | 0x61, 0x66, 0x8f, 0x80, 0x6f, 0x7b, 0x73, 0x81, | ||
6059 | 0x61, 0x85, 0x73, 0x84, 0x77, 0x69, 0x53, 0x4e, | ||
6060 | 0x62, 0x76, 0x70, 0x63, 0x72, 0x89, 0x97, 0xa2, | ||
6061 | 0x42, 0x2d, 0x09, 0x2b, 0x7b, 0x7c, 0x51, 0x51, | ||
6062 | 0x3d, 0x7d, 0x99, 0xa5, 0xd7, 0xed, 0xb9, 0x7d, | ||
6063 | 0xa2, 0x8b, 0x52, 0x34, 0x64, 0xa3, 0xa5, 0x84, | ||
6064 | 0xd9, 0xb0, 0xbd, 0xf1, 0xff, 0xff, 0x88, 0x00, | ||
6065 | 0x44, 0x80, 0x77, 0xb9, 0xf5, 0x97, 0x32, 0x0a, | ||
6066 | 0xe9, 0xe9, 0xe6, 0xe4, 0xe5, 0x61, 0x47, 0xcf, | ||
6067 | 0xed, 0xe7, 0xe0, 0xdd, 0xde, 0xe0, 0xe1, 0xe0, | ||
6068 | 0xe3, 0xe2, 0xe1, 0xe1, 0xdf, 0xde, 0xde, 0xdd, | ||
6069 | 0xe2, 0xe2, 0xe1, 0xe1, 0xe1, 0xe1, 0xe0, 0xe0, | ||
6070 | 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
6071 | 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, | ||
6072 | 0xec, 0xe2, 0xe6, 0xde, 0xe9, 0xf3, 0xd4, 0xc3, | ||
6073 | 0xbd, 0xcd, 0xe4, 0xdd, 0xdf, 0xe5, 0xd6, 0xe1, | ||
6074 | 0xee, 0xda, 0xde, 0xd8, 0xe0, 0xc5, 0xd6, 0xd3, | ||
6075 | 0x90, 0xae, 0xd6, 0xa1, 0xd3, 0xc1, 0x9b, 0xbb, | ||
6076 | 0xe8, 0xe6, 0xa0, 0xce, 0xd2, 0xd3, 0xa4, 0xba, | ||
6077 | 0xf8, 0xda, 0xef, 0xe0, 0xde, 0xcd, 0xd8, 0xd7, | ||
6078 | 0xc6, 0xb4, 0xd7, 0xe9, 0xe2, 0xef, 0xd9, 0xa8, | ||
6079 | 0xc1, 0xb2, 0x8d, 0x86, 0x8a, 0x9c, 0xcc, 0xe0, | ||
6080 | 0xe5, 0xe5, 0xe1, 0xd8, 0xec, 0xe0, 0xbf, 0xdb, | ||
6081 | 0xe6, 0x97, 0x7b, 0x7d, 0x61, 0x57, 0x60, 0x53, | ||
6082 | 0x5a, 0x3d, 0x68, 0x74, 0x8d, 0x93, 0x57, 0x67, | ||
6083 | 0x62, 0x50, 0x85, 0xa5, 0xe3, 0xa6, 0x6d, 0x81, | ||
6084 | 0x62, 0x4d, 0x6a, 0x43, 0x31, 0x46, 0x3b, 0x6f, | ||
6085 | 0x79, 0x55, 0x4f, 0x56, 0x4f, 0x63, 0x8a, 0x96, | ||
6086 | 0xad, 0xae, 0x91, 0x97, 0xa6, 0xa6, 0xa3, 0x7d, | ||
6087 | 0x72, 0x5b, 0x51, 0x56, 0x54, 0x4f, 0x51, 0x56, | ||
6088 | 0x4e, 0x72, 0x52, 0x88, 0xa9, 0x61, 0x42, 0x2d, | ||
6089 | 0x33, 0x34, 0x37, 0x3c, 0x3f, 0x3c, 0x35, 0x2e, | ||
6090 | 0x45, 0x51, 0x57, 0x4e, 0x3d, 0x36, 0x40, 0x4e, | ||
6091 | 0x52, 0x53, 0x50, 0x61, 0xa1, 0x76, 0x5e, 0x80, | ||
6092 | 0x63, 0x5b, 0x54, 0x56, 0x5e, 0x69, 0x71, 0x76, | ||
6093 | 0x79, 0x75, 0x71, 0x75, 0x7f, 0x86, 0x84, 0x7e, | ||
6094 | 0x6d, 0x6d, 0x6f, 0x6f, 0x6e, 0x6a, 0x66, 0x62, | ||
6095 | 0x48, 0x4e, 0x5a, 0x6b, 0x79, 0x7d, 0x78, 0x70, | ||
6096 | 0x77, 0x70, 0x69, 0x64, 0x60, 0x57, 0x49, 0x3e, | ||
6097 | 0x4f, 0x55, 0x50, 0x3f, 0x3a, 0x49, 0x5b, 0x63, | ||
6098 | 0x96, 0xa2, 0xa8, 0x9c, 0x8a, 0x80, 0x7e, 0x7f, | ||
6099 | 0x7f, 0x6b, 0x53, 0x6f, 0x80, 0x6d, 0x60, 0x49, | ||
6100 | 0x64, 0x6f, 0x76, 0x79, 0x82, 0x8d, 0x8b, 0x81, | ||
6101 | 0x71, 0x7e, 0x88, 0x84, 0x75, 0x6c, 0x70, 0x79, | ||
6102 | 0x7e, 0x93, 0x8e, 0x58, 0x5f, 0x72, 0x64, 0x8f, | ||
6103 | 0xbe, 0xfa, 0x86, 0x72, 0x75, 0xbb, 0xc8, 0xbd, | ||
6104 | 0xba, 0x63, 0x56, 0x41, 0x11, 0x6b, 0xd4, 0xb5, | ||
6105 | 0x58, 0x7d, 0x71, 0x65, 0x7a, 0x60, 0x35, 0x3b, | ||
6106 | 0x1d, 0x59, 0x5f, 0x4d, 0x77, 0x96, 0x60, 0x15, | ||
6107 | 0x25, 0x50, 0x37, 0x33, 0x4b, 0x12, 0x1f, 0xb1, | ||
6108 | 0xd4, 0xac, 0xd0, 0xff, 0xf1, 0xce, 0xb5, 0x8f, | ||
6109 | 0xe6, 0xda, 0x72, 0xc0, 0xf6, 0x61, 0x14, 0x05, | ||
6110 | 0xe4, 0xe2, 0xd6, 0xe3, 0xdd, 0x44, 0x4c, 0xd6, | ||
6111 | 0xea, 0xe6, 0xe0, 0xdf, 0xe0, 0xe0, 0xdf, 0xdd, | ||
6112 | 0xdc, 0xdd, 0xdd, 0xde, 0xdf, 0xdf, 0xe0, 0xe0, | ||
6113 | 0xe1, 0xe1, 0xe0, 0xe0, 0xe0, 0xe0, 0xdf, 0xdf, | ||
6114 | 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, | ||
6115 | 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
6116 | 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
6117 | 0xb1, 0x9e, 0xd6, 0xd1, 0xe7, 0xf2, 0xd6, 0xcc, | ||
6118 | 0xe9, 0xe9, 0xf2, 0xd3, 0xd6, 0xd3, 0xd8, 0xcb, | ||
6119 | 0x95, 0xe2, 0xd8, 0xa1, 0xac, 0x8d, 0xa4, 0xd9, | ||
6120 | 0xd6, 0xe7, 0xa0, 0xad, 0xe7, 0xd0, 0xa8, 0xea, | ||
6121 | 0xf2, 0xe1, 0xdd, 0xe1, 0xdb, 0xd4, 0xd5, 0xd7, | ||
6122 | 0xcb, 0xe9, 0xf6, 0xec, 0xce, 0xc6, 0xd3, 0xc5, | ||
6123 | 0x98, 0xa0, 0x96, 0x53, 0x6b, 0xaa, 0xea, 0xf1, | ||
6124 | 0xdc, 0xdd, 0xe2, 0xf2, 0xe4, 0xd9, 0xb0, 0xcd, | ||
6125 | 0xc6, 0xb4, 0xb6, 0x8e, 0x77, 0x90, 0x7d, 0x57, | ||
6126 | 0x7a, 0x94, 0x75, 0x90, 0x51, 0x83, 0xab, 0xab, | ||
6127 | 0xac, 0xaa, 0xbe, 0xb8, 0xca, 0x85, 0x59, 0x7c, | ||
6128 | 0x58, 0x5f, 0x60, 0x59, 0x4f, 0x4b, 0x49, 0x48, | ||
6129 | 0x6a, 0x48, 0x71, 0x43, 0x69, 0x7e, 0x7e, 0x98, | ||
6130 | 0xa9, 0xa7, 0xa7, 0xac, 0xb6, 0x8a, 0x4a, 0x4c, | ||
6131 | 0x44, 0x5e, 0x40, 0x59, 0x75, 0x5a, 0x4f, 0x36, | ||
6132 | 0x46, 0x6b, 0x59, 0x69, 0x4e, 0x12, 0x3c, 0x6c, | ||
6133 | 0x65, 0x47, 0x3b, 0x48, 0x48, 0x36, 0x35, 0x45, | ||
6134 | 0x37, 0x41, 0x48, 0x45, 0x3d, 0x3d, 0x49, 0x56, | ||
6135 | 0x7a, 0x69, 0x5a, 0x69, 0xa2, 0x6b, 0x4d, 0x6c, | ||
6136 | 0x65, 0x6a, 0x71, 0x74, 0x72, 0x6f, 0x6f, 0x70, | ||
6137 | 0x61, 0x52, 0x4f, 0x5c, 0x5d, 0x52, 0x57, 0x69, | ||
6138 | 0x70, 0x6a, 0x67, 0x6f, 0x7d, 0x86, 0x87, 0x83, | ||
6139 | 0x6c, 0x7b, 0x8f, 0x98, 0x93, 0x87, 0x7c, 0x76, | ||
6140 | 0x76, 0x74, 0x71, 0x70, 0x6d, 0x68, 0x61, 0x5b, | ||
6141 | 0x5b, 0x6d, 0x71, 0x68, 0x74, 0x92, 0x9a, 0x8d, | ||
6142 | 0x9e, 0x9e, 0x90, 0x8f, 0x9e, 0x94, 0x82, 0x83, | ||
6143 | 0x8b, 0x70, 0x60, 0x5e, 0x57, 0x68, 0x8a, 0x82, | ||
6144 | 0x5e, 0x75, 0x8e, 0x8f, 0x8e, 0x83, 0x76, 0x88, | ||
6145 | 0x8d, 0x80, 0x7a, 0x73, 0x64, 0x9f, 0x87, 0x78, | ||
6146 | 0x64, 0x75, 0x85, 0x80, 0x7e, 0xa7, 0xbc, 0x96, | ||
6147 | 0xc4, 0xd5, 0xa5, 0x57, 0x63, 0xaf, 0xb4, 0x74, | ||
6148 | 0x7a, 0x97, 0x7c, 0x5a, 0x90, 0x85, 0x2d, 0x34, | ||
6149 | 0x0e, 0x33, 0x63, 0x34, 0x3d, 0x49, 0x57, 0x11, | ||
6150 | 0x46, 0x7d, 0xa0, 0x8e, 0x37, 0x18, 0x4a, 0x41, | ||
6151 | 0x2f, 0x20, 0x27, 0x31, 0x61, 0x5c, 0x54, 0xd6, | ||
6152 | 0xd1, 0x64, 0x81, 0x9a, 0xa6, 0xd5, 0x8f, 0x24, | ||
6153 | 0x0f, 0x1b, 0x3f, 0x2a, 0x2e, 0x45, 0x18, 0x02, | ||
6154 | 0xe2, 0xe0, 0xd5, 0xe2, 0xd7, 0x41, 0x51, 0xd6, | ||
6155 | 0xe8, 0xe3, 0xde, 0xdd, 0xde, 0xdf, 0xdd, 0xdb, | ||
6156 | 0xdb, 0xdb, 0xdc, 0xdd, 0xdd, 0xde, 0xdf, 0xdf, | ||
6157 | 0xe0, 0xe0, 0xe0, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
6158 | 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, | ||
6159 | 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
6160 | 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, | ||
6161 | 0xe1, 0x9b, 0x8a, 0xcf, 0xe0, 0xf0, 0xdb, 0xb8, | ||
6162 | 0xd1, 0xe7, 0xe2, 0xd9, 0xe2, 0x9e, 0xad, 0xaf, | ||
6163 | 0x9f, 0xad, 0xdb, 0xb0, 0xa8, 0x99, 0xbe, 0xd8, | ||
6164 | 0xb8, 0xe6, 0xb9, 0xc9, 0xe0, 0xb5, 0xc9, 0xec, | ||
6165 | 0xea, 0xdc, 0xe3, 0xdb, 0xc5, 0xd8, 0xe4, 0xc2, | ||
6166 | 0xdf, 0xe7, 0xde, 0xd8, 0xdf, 0xe3, 0xde, 0xd7, | ||
6167 | 0x8d, 0xa4, 0xad, 0x41, 0x3c, 0x9e, 0xdb, 0xcb, | ||
6168 | 0xe2, 0xea, 0xe3, 0xdc, 0xcf, 0xdf, 0xc8, 0xe4, | ||
6169 | 0x94, 0x4c, 0x65, 0x78, 0x7f, 0x64, 0x2a, 0x5b, | ||
6170 | 0x58, 0x7a, 0x47, 0x5d, 0x81, 0x72, 0x8b, 0xe5, | ||
6171 | 0xb4, 0xb8, 0xb2, 0x67, 0x66, 0x69, 0x58, 0x3f, | ||
6172 | 0x5c, 0x4b, 0x4c, 0x65, 0x71, 0x64, 0x54, 0x51, | ||
6173 | 0x96, 0x3c, 0x5e, 0x62, 0x6e, 0x85, 0x75, 0x6e, | ||
6174 | 0x97, 0xa6, 0xb6, 0xc0, 0xad, 0x87, 0x5e, 0x32, | ||
6175 | 0x4b, 0x5b, 0x5c, 0x68, 0x4a, 0x48, 0x84, 0x86, | ||
6176 | 0x4e, 0xa0, 0x8d, 0x66, 0x4d, 0x40, 0x4e, 0x2c, | ||
6177 | 0x42, 0x41, 0x3f, 0x41, 0x49, 0x50, 0x47, 0x39, | ||
6178 | 0x29, 0x2f, 0x34, 0x37, 0x38, 0x3c, 0x46, 0x4e, | ||
6179 | 0x73, 0x6e, 0x5c, 0x5e, 0x9a, 0x72, 0x4f, 0x5c, | ||
6180 | 0x66, 0x63, 0x5e, 0x58, 0x54, 0x55, 0x59, 0x5c, | ||
6181 | 0x69, 0x75, 0x77, 0x6a, 0x64, 0x6d, 0x75, 0x74, | ||
6182 | 0x7a, 0x6b, 0x61, 0x6d, 0x83, 0x8b, 0x7b, 0x66, | ||
6183 | 0x80, 0x7c, 0x7d, 0x83, 0x86, 0x7c, 0x65, 0x52, | ||
6184 | 0x3c, 0x4d, 0x62, 0x6d, 0x6e, 0x6a, 0x6a, 0x6c, | ||
6185 | 0x76, 0x5b, 0x47, 0x51, 0x70, 0x88, 0x8d, 0x88, | ||
6186 | 0x82, 0x8c, 0x82, 0x6c, 0x70, 0x85, 0x84, 0x70, | ||
6187 | 0x69, 0x5f, 0x7b, 0x71, 0x78, 0x79, 0x85, 0x6f, | ||
6188 | 0x56, 0x5c, 0x85, 0x88, 0x6a, 0x73, 0x82, 0x77, | ||
6189 | 0x68, 0x77, 0x77, 0xa6, 0xeb, 0xf9, 0xc5, 0xc5, | ||
6190 | 0xc9, 0xc3, 0xa8, 0xcd, 0x98, 0x55, 0x98, 0xa7, | ||
6191 | 0xa3, 0x7d, 0x7d, 0xad, 0xbf, 0x9d, 0x80, 0x82, | ||
6192 | 0xae, 0xeb, 0xb4, 0xcd, 0xb1, 0x66, 0x8b, 0x57, | ||
6193 | 0x4e, 0x3f, 0x34, 0x36, 0x25, 0x2b, 0x2e, 0x2f, | ||
6194 | 0x37, 0x33, 0x17, 0x3c, 0x69, 0x62, 0x4c, 0x1b, | ||
6195 | 0x38, 0x4f, 0x29, 0x13, 0x60, 0x62, 0x0a, 0x00, | ||
6196 | 0x54, 0x80, 0x28, 0x92, 0xff, 0xd3, 0xa7, 0x9f, | ||
6197 | 0x61, 0x41, 0x55, 0x67, 0x92, 0x9c, 0x3e, 0x02, | ||
6198 | 0xdf, 0xdc, 0xd3, 0xe0, 0xcc, 0x3c, 0x59, 0xd6, | ||
6199 | 0xe4, 0xdf, 0xda, 0xd9, 0xdb, 0xdc, 0xda, 0xd8, | ||
6200 | 0xd9, 0xd9, 0xda, 0xda, 0xdb, 0xdc, 0xdc, 0xdd, | ||
6201 | 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xdf, 0xdf, | ||
6202 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
6203 | 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, | ||
6204 | 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, | ||
6205 | 0xf4, 0xd7, 0x99, 0xc8, 0xdb, 0xe9, 0xf1, 0xc8, | ||
6206 | 0xc7, 0xe1, 0xd6, 0xdc, 0xe5, 0x8e, 0xd3, 0xd5, | ||
6207 | 0xa7, 0xdb, 0xdf, 0x98, 0xb3, 0xb8, 0xd2, 0xcb, | ||
6208 | 0xb6, 0xdc, 0xb9, 0xe9, 0xde, 0xaa, 0xe3, 0xd6, | ||
6209 | 0xda, 0xeb, 0xdc, 0xc4, 0xcd, 0xdb, 0xd1, 0xc4, | ||
6210 | 0xd0, 0xda, 0xe6, 0xeb, 0xec, 0xd7, 0xca, 0xe5, | ||
6211 | 0x7e, 0x85, 0xa5, 0x4a, 0x5e, 0xd0, 0xb5, 0x5b, | ||
6212 | 0xaf, 0xd7, 0xe6, 0xde, 0xcf, 0xe4, 0xca, 0xda, | ||
6213 | 0xab, 0xa8, 0x7a, 0x7f, 0x87, 0x5e, 0x50, 0x57, | ||
6214 | 0x91, 0x9c, 0x74, 0x21, 0x1f, 0x7d, 0xf1, 0xef, | ||
6215 | 0x8c, 0xbc, 0xff, 0xd3, 0xb4, 0x9e, 0x86, 0x60, | ||
6216 | 0x47, 0x6d, 0x72, 0x4d, 0x42, 0x60, 0x6d, 0x5c, | ||
6217 | 0x70, 0x5d, 0x6f, 0x48, 0x27, 0x76, 0x7b, 0x69, | ||
6218 | 0x39, 0x45, 0x5d, 0xa2, 0xb3, 0xb0, 0xb7, 0x71, | ||
6219 | 0x66, 0x5d, 0x57, 0x68, 0x5e, 0x5c, 0x71, 0x55, | ||
6220 | 0x2e, 0x4c, 0x47, 0x5f, 0x5c, 0x33, 0x34, 0x2e, | ||
6221 | 0x3e, 0x63, 0x76, 0x5d, 0x3f, 0x3a, 0x44, 0x4a, | ||
6222 | 0x66, 0x5b, 0x4e, 0x49, 0x4c, 0x54, 0x5a, 0x5d, | ||
6223 | 0x64, 0x69, 0x58, 0x53, 0x98, 0x81, 0x5c, 0x58, | ||
6224 | 0x5d, 0x6a, 0x77, 0x78, 0x70, 0x6b, 0x70, 0x77, | ||
6225 | 0x72, 0x87, 0x89, 0x71, 0x64, 0x6e, 0x74, 0x6d, | ||
6226 | 0x6f, 0x6e, 0x6c, 0x69, 0x66, 0x64, 0x64, 0x64, | ||
6227 | 0x6c, 0x71, 0x76, 0x76, 0x70, 0x68, 0x61, 0x5d, | ||
6228 | 0x60, 0x69, 0x6e, 0x62, 0x50, 0x4a, 0x54, 0x63, | ||
6229 | 0x36, 0x3d, 0x4c, 0x62, 0x77, 0x87, 0x95, 0x9e, | ||
6230 | 0x6e, 0x7b, 0x75, 0x75, 0x7d, 0x6e, 0x6f, 0x94, | ||
6231 | 0x8a, 0x3d, 0x52, 0x5a, 0x68, 0x52, 0x5b, 0x86, | ||
6232 | 0x44, 0x67, 0x80, 0xa3, 0xc8, 0xbd, 0xb5, 0xd5, | ||
6233 | 0xc1, 0xa9, 0xea, 0xc0, 0x78, 0x6a, 0x8b, 0xd0, | ||
6234 | 0xca, 0xbf, 0xb9, 0xd2, 0xce, 0xbf, 0xaf, 0x6e, | ||
6235 | 0x42, 0x2b, 0x2d, 0x51, 0x65, 0x57, 0x46, 0x45, | ||
6236 | 0x40, 0x23, 0x6b, 0xb9, 0x73, 0x1e, 0x3d, 0x71, | ||
6237 | 0x1c, 0x34, 0x1f, 0x36, 0x1e, 0x2e, 0x14, 0x2c, | ||
6238 | 0x30, 0x64, 0x49, 0x4a, 0x69, 0x54, 0x36, 0x1a, | ||
6239 | 0x36, 0x3f, 0x16, 0x1e, 0x56, 0x72, 0x8a, 0x9d, | ||
6240 | 0x7e, 0xd7, 0xfe, 0xda, 0xe4, 0xdf, 0x6a, 0x01, | ||
6241 | 0x55, 0x31, 0x3d, 0x3e, 0x54, 0x5c, 0x1f, 0x09, | ||
6242 | 0xda, 0xd8, 0xd2, 0xdd, 0xbd, 0x35, 0x64, 0xd6, | ||
6243 | 0xde, 0xda, 0xd5, 0xd4, 0xd6, 0xd8, 0xd7, 0xd5, | ||
6244 | 0xd6, 0xd6, 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xda, | ||
6245 | 0xdb, 0xdc, 0xdc, 0xdd, 0xdd, 0xde, 0xde, 0xde, | ||
6246 | 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, | ||
6247 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
6248 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
6249 | 0xe9, 0xdf, 0x9e, 0x97, 0xdf, 0xe4, 0xf2, 0xe1, | ||
6250 | 0xa3, 0xb1, 0xcd, 0xe1, 0xdf, 0x96, 0xe3, 0xc7, | ||
6251 | 0xaf, 0xbf, 0x98, 0xaa, 0xbb, 0xb6, 0xe5, 0xbb, | ||
6252 | 0xc1, 0xc9, 0xa2, 0xe5, 0xbb, 0xb1, 0xf6, 0xe5, | ||
6253 | 0xda, 0xec, 0xcf, 0xc0, 0xde, 0xda, 0xc2, 0xd1, | ||
6254 | 0xdf, 0xd8, 0xd8, 0xd5, 0xe0, 0xe9, 0xd8, 0xd2, | ||
6255 | 0x7c, 0x60, 0x8b, 0x55, 0x54, 0x8b, 0x60, 0x56, | ||
6256 | 0x90, 0xb1, 0xc5, 0xd6, 0xdf, 0xf2, 0xb8, 0xaa, | ||
6257 | 0x90, 0xa0, 0x72, 0x6a, 0x60, 0x3d, 0x45, 0x3c, | ||
6258 | 0x87, 0xac, 0x8d, 0x74, 0x8a, 0x8f, 0x9b, 0xc8, | ||
6259 | 0x5e, 0x61, 0xb0, 0xd1, 0xc2, 0x69, 0x48, 0x65, | ||
6260 | 0x46, 0x56, 0x5a, 0x4f, 0x4c, 0x4d, 0x38, 0x19, | ||
6261 | 0x88, 0x6e, 0x60, 0x6f, 0x55, 0x5d, 0x31, 0x52, | ||
6262 | 0x82, 0x70, 0x4a, 0x90, 0xb7, 0xa8, 0xaa, 0x5a, | ||
6263 | 0x38, 0x51, 0x50, 0x5b, 0x6e, 0x5b, 0x44, 0x41, | ||
6264 | 0x3b, 0x56, 0x61, 0x73, 0x5a, 0x2c, 0x3a, 0x4e, | ||
6265 | 0x39, 0x38, 0x39, 0x3f, 0x4c, 0x58, 0x5d, 0x5b, | ||
6266 | 0x54, 0x3f, 0x29, 0x27, 0x38, 0x4f, 0x5c, 0x5f, | ||
6267 | 0x59, 0x5f, 0x52, 0x55, 0xa2, 0x8e, 0x69, 0x65, | ||
6268 | 0x65, 0x6c, 0x72, 0x73, 0x6f, 0x6d, 0x70, 0x74, | ||
6269 | 0x6d, 0x71, 0x76, 0x79, 0x78, 0x79, 0x80, 0x88, | ||
6270 | 0x89, 0x76, 0x60, 0x58, 0x5e, 0x67, 0x69, 0x67, | ||
6271 | 0x68, 0x6e, 0x70, 0x68, 0x5a, 0x50, 0x50, 0x54, | ||
6272 | 0x4a, 0x56, 0x60, 0x5e, 0x52, 0x4b, 0x4e, 0x55, | ||
6273 | 0x4c, 0x56, 0x51, 0x46, 0x56, 0x78, 0x81, 0x73, | ||
6274 | 0x98, 0x8c, 0x8a, 0x7a, 0x6e, 0x90, 0xaa, 0x93, | ||
6275 | 0x80, 0x6e, 0x90, 0x8a, 0x7b, 0x9b, 0x98, 0xd0, | ||
6276 | 0xb3, 0x87, 0x85, 0xb7, 0xb2, 0x88, 0x8d, 0xa1, | ||
6277 | 0x79, 0x67, 0x56, 0x32, 0x85, 0xb2, 0x9e, 0x6b, | ||
6278 | 0x39, 0x51, 0xb1, 0x59, 0x18, 0x4b, 0x2b, 0x36, | ||
6279 | 0x1d, 0x3b, 0x3f, 0x35, 0x66, 0xbf, 0xe2, 0xcc, | ||
6280 | 0x6a, 0x43, 0xb1, 0xb9, 0xdd, 0xfd, 0x4a, 0x00, | ||
6281 | 0xcc, 0xb9, 0x6b, 0x43, 0x2d, 0x37, 0x18, 0x16, | ||
6282 | 0x36, 0xe7, 0xe9, 0x6f, 0x51, 0x90, 0x96, 0x33, | ||
6283 | 0x29, 0x25, 0x16, 0x34, 0x28, 0x3e, 0xc7, 0xff, | ||
6284 | 0x9d, 0x22, 0x65, 0x64, 0x15, 0x20, 0x21, 0x32, | ||
6285 | 0x32, 0x2a, 0x3a, 0x1a, 0x19, 0x33, 0x18, 0x16, | ||
6286 | 0xd5, 0xd3, 0xd0, 0xda, 0xae, 0x2e, 0x70, 0xd6, | ||
6287 | 0xd8, 0xd4, 0xd0, 0xcf, 0xd2, 0xd3, 0xd3, 0xd1, | ||
6288 | 0xd2, 0xd3, 0xd3, 0xd4, 0xd5, 0xd5, 0xd6, 0xd6, | ||
6289 | 0xd9, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xdd, 0xde, | ||
6290 | 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, | ||
6291 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
6292 | 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, | ||
6293 | 0xeb, 0xe2, 0xc0, 0x7d, 0x9b, 0xca, 0xde, 0xcc, | ||
6294 | 0xcc, 0xb3, 0xcb, 0xd4, 0xd2, 0x95, 0xb9, 0xb7, | ||
6295 | 0xdf, 0xce, 0x6b, 0x96, 0xb4, 0xc6, 0xe2, 0xd0, | ||
6296 | 0x9a, 0xba, 0xa9, 0xdd, 0x9f, 0xd1, 0xf3, 0xea, | ||
6297 | 0xe2, 0xd7, 0xcd, 0xcf, 0xd7, 0xdc, 0xd8, 0xd0, | ||
6298 | 0xe5, 0xe0, 0xd8, 0xba, 0xb2, 0xd2, 0xbe, 0x73, | ||
6299 | 0x73, 0x65, 0x5e, 0x1d, 0x4e, 0xb2, 0x74, 0x4e, | ||
6300 | 0x80, 0xaf, 0xd7, 0xec, 0xda, 0xcb, 0x8a, 0x88, | ||
6301 | 0x84, 0x64, 0x9c, 0x6a, 0x3b, 0x4c, 0x3a, 0x72, | ||
6302 | 0xb1, 0x5c, 0x37, 0x9c, 0x9c, 0x7c, 0x50, 0x8b, | ||
6303 | 0x93, 0x54, 0x68, 0xab, 0xe2, 0x80, 0x35, 0x54, | ||
6304 | 0x76, 0x78, 0x67, 0x4b, 0x45, 0x4e, 0x48, 0x35, | ||
6305 | 0x6f, 0x69, 0x5d, 0x63, 0x29, 0x28, 0x31, 0x81, | ||
6306 | 0xba, 0xb9, 0x61, 0x6f, 0xa4, 0xac, 0xbc, 0x89, | ||
6307 | 0x7e, 0x84, 0x77, 0x68, 0x71, 0x65, 0x4b, 0x55, | ||
6308 | 0x4b, 0x46, 0x38, 0x43, 0x5c, 0x6f, 0x70, 0x51, | ||
6309 | 0x53, 0x4d, 0x47, 0x49, 0x50, 0x54, 0x4f, 0x47, | ||
6310 | 0x50, 0x3e, 0x2e, 0x33, 0x48, 0x59, 0x5b, 0x56, | ||
6311 | 0x5f, 0x60, 0x57, 0x62, 0xab, 0x8a, 0x66, 0x6b, | ||
6312 | 0x66, 0x65, 0x69, 0x74, 0x7f, 0x81, 0x79, 0x6f, | ||
6313 | 0x69, 0x5c, 0x5e, 0x71, 0x7c, 0x77, 0x77, 0x80, | ||
6314 | 0x8d, 0x7d, 0x6a, 0x62, 0x66, 0x6f, 0x74, 0x75, | ||
6315 | 0x7c, 0x73, 0x6b, 0x6c, 0x72, 0x73, 0x6c, 0x64, | ||
6316 | 0x76, 0x73, 0x6c, 0x63, 0x58, 0x4c, 0x43, 0x3e, | ||
6317 | 0x4d, 0x5c, 0x58, 0x46, 0x4f, 0x75, 0x91, 0x93, | ||
6318 | 0x8e, 0x85, 0x82, 0xc0, 0xf6, 0xaf, 0x5a, 0x64, | ||
6319 | 0x8f, 0x8e, 0x8b, 0x96, 0x90, 0xe3, 0xaa, 0xb7, | ||
6320 | 0x8c, 0x9f, 0x9e, 0xa1, 0x97, 0x98, 0xa6, 0x86, | ||
6321 | 0x4f, 0x81, 0x73, 0xa7, 0xd4, 0x63, 0x89, 0xcd, | ||
6322 | 0x93, 0x3c, 0x72, 0x67, 0x61, 0x71, 0x26, 0x33, | ||
6323 | 0x39, 0x40, 0x31, 0x17, 0x19, 0x32, 0x34, 0x20, | ||
6324 | 0x45, 0x9c, 0xea, 0xff, 0xff, 0xc1, 0x75, 0x9d, | ||
6325 | 0xd6, 0xff, 0xb0, 0x50, 0xce, 0xff, 0xfa, 0xf0, | ||
6326 | 0xdf, 0xab, 0x62, 0x44, 0x21, 0x16, 0x35, 0x1f, | ||
6327 | 0x1b, 0x44, 0x34, 0x3e, 0x31, 0x1f, 0x5c, 0x76, | ||
6328 | 0x41, 0x4e, 0x0d, 0x33, 0x4d, 0x2b, 0x40, 0x1a, | ||
6329 | 0x20, 0x21, 0x30, 0x13, 0x2a, 0x57, 0x21, 0x00, | ||
6330 | 0xd0, 0xce, 0xce, 0xd7, 0x9f, 0x27, 0x7b, 0xd7, | ||
6331 | 0xd3, 0xcf, 0xcb, 0xcb, 0xcd, 0xd0, 0xcf, 0xce, | ||
6332 | 0xcf, 0xd0, 0xd0, 0xd1, 0xd2, 0xd2, 0xd3, 0xd3, | ||
6333 | 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdc, 0xdd, 0xdd, | ||
6334 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
6335 | 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, | ||
6336 | 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, | ||
6337 | 0xdc, 0xdf, 0xea, 0xa7, 0x50, 0xa3, 0xe1, 0xd9, | ||
6338 | 0xca, 0xaf, 0xc1, 0xe3, 0xf1, 0x9a, 0x65, 0x96, | ||
6339 | 0xff, 0xeb, 0x8b, 0x86, 0xc3, 0xea, 0xca, 0xd5, | ||
6340 | 0x97, 0xcf, 0xb9, 0xb8, 0x9a, 0xef, 0xdf, 0xcc, | ||
6341 | 0xd7, 0xd4, 0xc9, 0xc7, 0xd8, 0xe6, 0xe1, 0xd4, | ||
6342 | 0xca, 0xd6, 0xe7, 0xe7, 0xc6, 0xc9, 0xcf, 0x8f, | ||
6343 | 0x65, 0x75, 0x6d, 0x48, 0x4f, 0x7d, 0x7a, 0xac, | ||
6344 | 0xaf, 0xd2, 0xe7, 0xec, 0xdb, 0xe5, 0xcf, 0xee, | ||
6345 | 0xda, 0x78, 0x8e, 0x95, 0x91, 0x8c, 0x49, 0x47, | ||
6346 | 0x3a, 0x78, 0x7a, 0x9d, 0x84, 0x86, 0x32, 0x52, | ||
6347 | 0x7b, 0x4e, 0x3d, 0x4e, 0xa6, 0x8e, 0x53, 0x55, | ||
6348 | 0x32, 0x60, 0x6e, 0x4c, 0x39, 0x46, 0x3e, 0x1f, | ||
6349 | 0x30, 0x5b, 0x68, 0x41, 0x2b, 0x8b, 0x9c, 0x4b, | ||
6350 | 0x7c, 0xc2, 0xa1, 0x8e, 0x9e, 0x90, 0x76, 0x40, | ||
6351 | 0x4f, 0x32, 0x45, 0x43, 0x3b, 0x4f, 0x4e, 0x49, | ||
6352 | 0x35, 0x30, 0x36, 0x39, 0x30, 0x35, 0x47, 0x4c, | ||
6353 | 0x5b, 0x61, 0x5d, 0x58, 0x60, 0x68, 0x52, 0x30, | ||
6354 | 0x22, 0x22, 0x2d, 0x48, 0x67, 0x77, 0x72, 0x67, | ||
6355 | 0x5e, 0x65, 0x61, 0x69, 0xa7, 0x7e, 0x5a, 0x66, | ||
6356 | 0x5a, 0x6c, 0x82, 0x8e, 0x8e, 0x8a, 0x88, 0x89, | ||
6357 | 0x83, 0x7a, 0x75, 0x7c, 0x85, 0x85, 0x7d, 0x74, | ||
6358 | 0x67, 0x6e, 0x72, 0x6c, 0x61, 0x5d, 0x63, 0x6c, | ||
6359 | 0x6c, 0x6d, 0x70, 0x76, 0x7c, 0x81, 0x82, 0x81, | ||
6360 | 0x77, 0x6b, 0x5b, 0x52, 0x50, 0x53, 0x56, 0x57, | ||
6361 | 0x46, 0x4b, 0x4d, 0x49, 0x4a, 0x63, 0x95, 0xbf, | ||
6362 | 0x8e, 0xac, 0x85, 0x70, 0x9a, 0x8c, 0x70, 0x95, | ||
6363 | 0xff, 0xdb, 0x92, 0x81, 0x78, 0xaa, 0x4f, 0x35, | ||
6364 | 0xa2, 0xd3, 0xcc, 0xe0, 0xe4, 0xb4, 0xb2, 0xbe, | ||
6365 | 0xb5, 0xbd, 0xb8, 0xb9, 0xc3, 0x78, 0x4a, 0x66, | ||
6366 | 0x2d, 0x2d, 0x46, 0x6d, 0x40, 0x07, 0x17, 0x1a, | ||
6367 | 0x27, 0x2e, 0x2a, 0x1c, 0x1f, 0x31, 0x37, 0x2e, | ||
6368 | 0x3c, 0x3b, 0x0b, 0x4b, 0x84, 0x29, 0x23, 0x97, | ||
6369 | 0xe4, 0xa4, 0xf7, 0xfc, 0xc6, 0xb9, 0xff, 0xc0, | ||
6370 | 0x4a, 0x3b, 0x24, 0x23, 0x1c, 0x47, 0x7e, 0x50, | ||
6371 | 0x33, 0x56, 0x2b, 0x2b, 0x47, 0x16, 0x1b, 0x75, | ||
6372 | 0xff, 0xc2, 0x3a, 0x1d, 0x4e, 0x3c, 0x20, 0x2d, | ||
6373 | 0x34, 0x23, 0x25, 0x03, 0x11, 0x39, 0x14, 0x00, | ||
6374 | 0xcc, 0xcb, 0xcc, 0xd5, 0x94, 0x22, 0x84, 0xd7, | ||
6375 | 0xcf, 0xcb, 0xc7, 0xc7, 0xca, 0xcc, 0xcc, 0xcb, | ||
6376 | 0xcd, 0xcd, 0xce, 0xcf, 0xcf, 0xd0, 0xd1, 0xd1, | ||
6377 | 0xd4, 0xd5, 0xd6, 0xd8, 0xd9, 0xdb, 0xdc, 0xdd, | ||
6378 | 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, | ||
6379 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
6380 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
6381 | 0xec, 0xda, 0xde, 0xdc, 0x6c, 0x67, 0xbc, 0xdd, | ||
6382 | 0xe4, 0xc8, 0xb9, 0xe7, 0xf7, 0xb5, 0x79, 0xd3, | ||
6383 | 0xec, 0xa0, 0xa8, 0xba, 0xde, 0xdb, 0xcc, 0xa9, | ||
6384 | 0xb1, 0xe6, 0xba, 0x88, 0xad, 0xe6, 0xd5, 0xd6, | ||
6385 | 0xce, 0xc8, 0xb8, 0xc1, 0xdf, 0xe4, 0xd9, 0xde, | ||
6386 | 0xde, 0xd9, 0xc8, 0xe5, 0xdc, 0xcb, 0xd4, 0x95, | ||
6387 | 0x6e, 0x82, 0x62, 0x65, 0x70, 0x89, 0x7a, 0x72, | ||
6388 | 0xbb, 0xd5, 0xde, 0xe7, 0xed, 0xfb, 0xb2, 0x95, | ||
6389 | 0x63, 0x3e, 0x4f, 0xa6, 0xa3, 0x50, 0x49, 0x6e, | ||
6390 | 0x7f, 0x84, 0xcb, 0xe0, 0xaf, 0xff, 0xdf, 0x69, | ||
6391 | 0x4c, 0x65, 0x82, 0x68, 0x87, 0x80, 0x5c, 0x47, | ||
6392 | 0x67, 0x4c, 0x40, 0x4e, 0x56, 0x4b, 0x43, 0x45, | ||
6393 | 0x55, 0x75, 0x8d, 0x59, 0x3d, 0x70, 0xb0, 0x88, | ||
6394 | 0x7f, 0x92, 0x84, 0x66, 0x4b, 0x3a, 0x39, 0x36, | ||
6395 | 0x3b, 0x36, 0x66, 0x56, 0x2c, 0x2f, 0x2b, 0x38, | ||
6396 | 0x3a, 0x3c, 0x4e, 0x49, 0x3c, 0x49, 0x4c, 0x3e, | ||
6397 | 0x30, 0x4d, 0x64, 0x5b, 0x44, 0x36, 0x37, 0x3d, | ||
6398 | 0x39, 0x3b, 0x43, 0x53, 0x63, 0x67, 0x5d, 0x51, | ||
6399 | 0x3e, 0x5d, 0x64, 0x60, 0x97, 0x7a, 0x5f, 0x66, | ||
6400 | 0x64, 0x71, 0x79, 0x71, 0x62, 0x5e, 0x6d, 0x7e, | ||
6401 | 0x71, 0x73, 0x72, 0x73, 0x7a, 0x80, 0x7a, 0x6e, | ||
6402 | 0x65, 0x5f, 0x5b, 0x5d, 0x63, 0x61, 0x56, 0x4c, | ||
6403 | 0x59, 0x64, 0x6f, 0x6f, 0x66, 0x60, 0x63, 0x69, | ||
6404 | 0x4d, 0x51, 0x55, 0x55, 0x51, 0x4e, 0x4e, 0x50, | ||
6405 | 0x47, 0x41, 0x48, 0x60, 0x77, 0x76, 0x5f, 0x49, | ||
6406 | 0x4a, 0x38, 0x91, 0xc1, 0x7b, 0x7c, 0xac, 0x8e, | ||
6407 | 0x0f, 0x34, 0x2f, 0x17, 0x60, 0xa9, 0x8f, 0x4d, | ||
6408 | 0x19, 0x54, 0x5d, 0x5c, 0x5f, 0xa1, 0xe4, 0xa6, | ||
6409 | 0x3a, 0x27, 0x4c, 0x8d, 0xc5, 0xb2, 0x35, 0x1b, | ||
6410 | 0x21, 0x62, 0x4e, 0x3a, 0x18, 0x2b, 0x74, 0x3c, | ||
6411 | 0x59, 0x68, 0x57, 0x2b, 0x1d, 0x32, 0x36, 0x22, | ||
6412 | 0x10, 0x65, 0x71, 0x33, 0x2b, 0x4c, 0x63, 0x7b, | ||
6413 | 0x3f, 0xe4, 0xfa, 0x90, 0x71, 0x4d, 0x3b, 0x64, | ||
6414 | 0xff, 0xe9, 0x90, 0x4d, 0x20, 0x2e, 0x80, 0x9e, | ||
6415 | 0x51, 0x2f, 0x17, 0x13, 0x24, 0x28, 0x5b, 0xd9, | ||
6416 | 0x9a, 0x86, 0x99, 0x30, 0x4d, 0xff, 0xff, 0xff, | ||
6417 | 0xa2, 0x4d, 0x2f, 0x23, 0x2e, 0x34, 0x17, 0x30, | ||
6418 | 0xcb, 0xc9, 0xcc, 0xd4, 0x8d, 0x1f, 0x88, 0xd7, | ||
6419 | 0xcc, 0xc8, 0xc5, 0xc5, 0xc8, 0xcb, 0xcb, 0xc9, | ||
6420 | 0xcc, 0xcc, 0xcd, 0xcd, 0xce, 0xcf, 0xcf, 0xd0, | ||
6421 | 0xd3, 0xd4, 0xd5, 0xd7, 0xd9, 0xdb, 0xdc, 0xdd, | ||
6422 | 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, | ||
6423 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
6424 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
6425 | 0xd5, 0xe6, 0xdc, 0xea, 0xaf, 0x51, 0xb3, 0xeb, | ||
6426 | 0xdc, 0xc9, 0xaf, 0xe5, 0xe0, 0xc0, 0x9a, 0xe9, | ||
6427 | 0xe5, 0xc3, 0xca, 0xa7, 0xe1, 0xc4, 0xd8, 0x93, | ||
6428 | 0x82, 0xd0, 0xc7, 0x9b, 0xea, 0xd7, 0xcd, 0xec, | ||
6429 | 0xdb, 0xa0, 0xa8, 0xd6, 0xd7, 0xd4, 0xe1, 0xdf, | ||
6430 | 0xd4, 0xe9, 0xc2, 0xd8, 0xec, 0xe6, 0xd8, 0x6e, | ||
6431 | 0x7c, 0x86, 0x52, 0x67, 0x68, 0x82, 0x9f, 0x99, | ||
6432 | 0xae, 0xe2, 0xeb, 0xcd, 0xbc, 0xe8, 0xd8, 0xe0, | ||
6433 | 0xad, 0x92, 0x6c, 0x4d, 0x5e, 0x67, 0x56, 0x68, | ||
6434 | 0x5e, 0x7c, 0xa8, 0x73, 0x72, 0xcb, 0xfd, 0xfd, | ||
6435 | 0xab, 0xb1, 0xc0, 0x74, 0x4a, 0x3b, 0x43, 0x43, | ||
6436 | 0x58, 0x61, 0x67, 0x62, 0x59, 0x53, 0x4f, 0x4b, | ||
6437 | 0x42, 0x4b, 0x64, 0x59, 0x60, 0x3a, 0x74, 0x9a, | ||
6438 | 0x44, 0x1d, 0x48, 0x79, 0x60, 0x39, 0x35, 0x4f, | ||
6439 | 0x71, 0x61, 0x63, 0x4e, 0x63, 0x68, 0x33, 0x3e, | ||
6440 | 0x30, 0x24, 0x45, 0x5a, 0x52, 0x4f, 0x45, 0x3c, | ||
6441 | 0x48, 0x31, 0x30, 0x48, 0x4f, 0x3d, 0x34, 0x3f, | ||
6442 | 0x4b, 0x45, 0x3e, 0x3e, 0x42, 0x44, 0x42, 0x3e, | ||
6443 | 0x16, 0x4d, 0x5e, 0x51, 0x8a, 0x80, 0x6d, 0x6f, | ||
6444 | 0x6f, 0x68, 0x62, 0x62, 0x68, 0x6d, 0x6d, 0x6a, | ||
6445 | 0x6f, 0x71, 0x73, 0x74, 0x72, 0x6f, 0x6a, 0x66, | ||
6446 | 0x6c, 0x6f, 0x6f, 0x68, 0x5d, 0x57, 0x5b, 0x60, | ||
6447 | 0x62, 0x63, 0x68, 0x71, 0x7a, 0x7b, 0x73, 0x6b, | ||
6448 | 0x71, 0x76, 0x76, 0x69, 0x5a, 0x58, 0x67, 0x77, | ||
6449 | 0x64, 0x59, 0x3d, 0x31, 0x58, 0x9a, 0xbd, 0xba, | ||
6450 | 0xc0, 0xca, 0xd7, 0xaa, 0x62, 0x55, 0x45, 0x08, | ||
6451 | 0x26, 0x14, 0x1a, 0x2f, 0xe5, 0xff, 0xf6, 0x8e, | ||
6452 | 0x64, 0x5b, 0x19, 0x22, 0x30, 0x1b, 0x2e, 0x22, | ||
6453 | 0x1a, 0x2d, 0x76, 0xeb, 0x7c, 0x70, 0xa6, 0x1f, | ||
6454 | 0x25, 0x32, 0x29, 0x27, 0x7b, 0xfe, 0xfa, 0x79, | ||
6455 | 0x36, 0x38, 0x3c, 0x3b, 0x34, 0x2c, 0x2b, 0x2f, | ||
6456 | 0x40, 0x30, 0x2a, 0x46, 0x28, 0x10, 0x2e, 0x0e, | ||
6457 | 0x5d, 0x97, 0xa8, 0xe1, 0xaf, 0x48, 0x31, 0xd2, | ||
6458 | 0xff, 0xf2, 0x70, 0x1c, 0x2a, 0x3e, 0x3d, 0x1c, | ||
6459 | 0x3d, 0x00, 0x30, 0x2b, 0x29, 0xa6, 0xf5, 0xf8, | ||
6460 | 0xf3, 0xff, 0xf8, 0xff, 0xd0, 0x7b, 0xc2, 0xff, | ||
6461 | 0xf7, 0x4a, 0x0a, 0x42, 0x82, 0x62, 0x04, 0x00, | ||
6462 | 0xc3, 0xcc, 0xba, 0xd6, 0x77, 0x23, 0x96, 0xd3, | ||
6463 | 0xc3, 0xc4, 0xc5, 0xc4, 0xc2, 0xc1, 0xc1, 0xc2, | ||
6464 | 0xce, 0xca, 0xc9, 0xcb, 0xcb, 0xc9, 0xca, 0xcd, | ||
6465 | 0xd2, 0xd3, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xdd, | ||
6466 | 0xda, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xde, 0xdf, | ||
6467 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
6468 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
6469 | 0xe2, 0xd3, 0xe6, 0xec, 0xd7, 0x79, 0x83, 0xd1, | ||
6470 | 0xce, 0xcd, 0xb3, 0xd9, 0xe3, 0x9a, 0x86, 0xa3, | ||
6471 | 0x96, 0xde, 0xce, 0xbe, 0xc5, 0xb8, 0xbe, 0xbd, | ||
6472 | 0xa9, 0xc7, 0xc9, 0xa2, 0xe7, 0xd2, 0xdd, 0xd4, | ||
6473 | 0xc7, 0xbf, 0xc5, 0xd6, 0xd8, 0xcd, 0xcd, 0xd7, | ||
6474 | 0xdc, 0xe0, 0xe4, 0xd5, 0xe3, 0xdb, 0xd1, 0x66, | ||
6475 | 0x50, 0x61, 0x49, 0x54, 0x55, 0x6d, 0x5d, 0x6e, | ||
6476 | 0xb3, 0xa0, 0xb7, 0xcd, 0x97, 0x4c, 0x42, 0x60, | ||
6477 | 0xca, 0xd0, 0xb1, 0xa0, 0x9d, 0x85, 0x61, 0x3c, | ||
6478 | 0x29, 0x27, 0x29, 0x30, 0x30, 0x2d, 0x2f, 0x37, | ||
6479 | 0x86, 0xc0, 0xa1, 0x62, 0x68, 0x69, 0x52, 0x58, | ||
6480 | 0x56, 0x4f, 0x51, 0x55, 0x48, 0x32, 0x2f, 0x3b, | ||
6481 | 0x5e, 0x5b, 0x8e, 0x56, 0x2e, 0x4b, 0x58, 0xac, | ||
6482 | 0x4c, 0x2d, 0x4e, 0x77, 0x5c, 0x3f, 0x49, 0x53, | ||
6483 | 0x65, 0x49, 0x46, 0x37, 0x52, 0x4c, 0x17, 0x42, | ||
6484 | 0x3e, 0x21, 0x42, 0x57, 0x61, 0x57, 0x2f, 0x42, | ||
6485 | 0x6c, 0x47, 0x38, 0x4b, 0x51, 0x3a, 0x34, 0x47, | ||
6486 | 0x46, 0x5c, 0x65, 0x58, 0x37, 0x11, 0x19, 0x45, | ||
6487 | 0x58, 0x75, 0x69, 0x6a, 0x96, 0x99, 0x73, 0x68, | ||
6488 | 0x68, 0x60, 0x5a, 0x60, 0x6d, 0x75, 0x73, 0x6c, | ||
6489 | 0x78, 0x71, 0x6b, 0x6b, 0x72, 0x78, 0x7b, 0x7a, | ||
6490 | 0x61, 0x67, 0x6b, 0x6a, 0x66, 0x64, 0x68, 0x6e, | ||
6491 | 0x62, 0x6b, 0x71, 0x69, 0x59, 0x4e, 0x50, 0x57, | ||
6492 | 0x6d, 0x66, 0x5d, 0x5a, 0x5c, 0x5d, 0x5a, 0x57, | ||
6493 | 0x45, 0x44, 0x34, 0x70, 0x72, 0x63, 0x31, 0x0c, | ||
6494 | 0x75, 0xeb, 0xff, 0x98, 0x71, 0x73, 0x4b, 0x3c, | ||
6495 | 0x4f, 0x5f, 0x53, 0x31, 0x33, 0x64, 0x92, 0xa1, | ||
6496 | 0xcc, 0xd4, 0xf9, 0x73, 0x4b, 0x3d, 0x20, 0x32, | ||
6497 | 0x75, 0xb3, 0x3e, 0x3e, 0x36, 0x20, 0x28, 0x35, | ||
6498 | 0x44, 0x27, 0x65, 0xaa, 0x73, 0xa7, 0xff, 0xc5, | ||
6499 | 0xae, 0x75, 0x28, 0x32, 0x37, 0x43, 0x75, 0x56, | ||
6500 | 0x3f, 0x42, 0x2b, 0x22, 0x36, 0x3b, 0x42, 0x60, | ||
6501 | 0xff, 0x86, 0x75, 0xdb, 0xc6, 0x4b, 0x6f, 0xff, | ||
6502 | 0xfe, 0x86, 0x1c, 0x0a, 0x24, 0x36, 0x35, 0x2c, | ||
6503 | 0x39, 0x1a, 0x22, 0x2d, 0x2b, 0x5c, 0x8a, 0x79, | ||
6504 | 0xa9, 0x9e, 0xd4, 0xdb, 0x95, 0xa1, 0xeb, 0xf9, | ||
6505 | 0xe6, 0xbd, 0x8b, 0x6c, 0x5e, 0x4b, 0x2a, 0x0e, | ||
6506 | 0xc3, 0xca, 0xbb, 0xd1, 0x72, 0x27, 0x99, 0xd2, | ||
6507 | 0xcc, 0xc7, 0xc2, 0xc1, 0xc6, 0xcc, 0xcf, 0xd0, | ||
6508 | 0xcb, 0xca, 0xca, 0xcd, 0xcf, 0xce, 0xce, 0xce, | ||
6509 | 0xd2, 0xd3, 0xd4, 0xd6, 0xd8, 0xda, 0xdb, 0xdc, | ||
6510 | 0xda, 0xda, 0xdb, 0xdb, 0xdc, 0xdd, 0xde, 0xde, | ||
6511 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
6512 | 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
6513 | 0xe3, 0xe4, 0xde, 0xde, 0xe2, 0xad, 0x7c, 0xc2, | ||
6514 | 0xe4, 0xd4, 0xbb, 0xce, 0xc6, 0xa9, 0xac, 0x9a, | ||
6515 | 0xaf, 0xd8, 0xa8, 0xbe, 0xe2, 0xb8, 0xb5, 0xbd, | ||
6516 | 0xbc, 0xf0, 0xbe, 0xa1, 0xd2, 0xc0, 0xd5, 0xc9, | ||
6517 | 0xaf, 0xc3, 0xd7, 0xdc, 0xd8, 0xd6, 0xd7, 0xd9, | ||
6518 | 0xc0, 0xd4, 0xd1, 0xcd, 0xec, 0xcf, 0xbf, 0x90, | ||
6519 | 0x73, 0x7b, 0x70, 0x71, 0x52, 0x63, 0x6a, 0x7b, | ||
6520 | 0xb4, 0xf2, 0xf7, 0xa2, 0x54, 0x49, 0x63, 0x77, | ||
6521 | 0x76, 0x88, 0x89, 0x52, 0x1e, 0x1b, 0x25, 0x2e, | ||
6522 | 0x4b, 0x43, 0x39, 0x36, 0x3f, 0x45, 0x3a, 0x2a, | ||
6523 | 0x24, 0x40, 0x33, 0x3e, 0x7a, 0x84, 0x6d, 0x7c, | ||
6524 | 0x5b, 0x4f, 0x4d, 0x54, 0x4f, 0x3d, 0x38, 0x41, | ||
6525 | 0x1b, 0x4a, 0x88, 0x7a, 0x45, 0x35, 0x5b, 0xa4, | ||
6526 | 0x79, 0x55, 0x43, 0x5d, 0x6e, 0x58, 0x4a, 0x5b, | ||
6527 | 0x3f, 0x4f, 0x5e, 0x33, 0x40, 0x62, 0x32, 0x1e, | ||
6528 | 0x23, 0x2f, 0x3a, 0x59, 0x77, 0x77, 0x54, 0x23, | ||
6529 | 0x39, 0x41, 0x33, 0x32, 0x4f, 0x56, 0x41, 0x35, | ||
6530 | 0x29, 0x20, 0x24, 0x42, 0x69, 0x81, 0x93, 0xa3, | ||
6531 | 0x8b, 0x85, 0x75, 0x73, 0x7d, 0x79, 0x6f, 0x71, | ||
6532 | 0x71, 0x70, 0x6f, 0x6c, 0x67, 0x61, 0x5c, 0x59, | ||
6533 | 0x6c, 0x68, 0x66, 0x68, 0x6c, 0x6c, 0x67, 0x62, | ||
6534 | 0x66, 0x73, 0x82, 0x86, 0x7d, 0x6e, 0x62, 0x5c, | ||
6535 | 0x75, 0x7a, 0x7b, 0x6f, 0x60, 0x5b, 0x64, 0x6f, | ||
6536 | 0x6a, 0x64, 0x5c, 0x55, 0x51, 0x4d, 0x4b, 0x49, | ||
6537 | 0x4b, 0x46, 0x40, 0x3b, 0x20, 0x1b, 0xbc, 0xef, | ||
6538 | 0xb3, 0x75, 0x5a, 0xa3, 0xc0, 0x6f, 0x3c, 0x4b, | ||
6539 | 0x6b, 0x46, 0x54, 0x98, 0xb4, 0x87, 0x55, 0x49, | ||
6540 | 0x1e, 0x40, 0x4e, 0x19, 0x31, 0x22, 0x1b, 0x87, | ||
6541 | 0xfe, 0xb6, 0x0e, 0x4e, 0x3e, 0x05, 0x39, 0x44, | ||
6542 | 0x3f, 0x59, 0xdc, 0xdb, 0x6a, 0x42, 0x3f, 0x4e, | ||
6543 | 0x8d, 0x3b, 0x0e, 0x3c, 0x71, 0x4a, 0x1e, 0x46, | ||
6544 | 0x3a, 0x19, 0x1b, 0x29, 0x3d, 0x77, 0x7b, 0x2f, | ||
6545 | 0x57, 0x20, 0x19, 0x4e, 0x5e, 0x34, 0x21, 0x36, | ||
6546 | 0x0f, 0x20, 0x16, 0x46, 0x9a, 0x84, 0x4d, 0x61, | ||
6547 | 0x00, 0x4f, 0xa2, 0x93, 0x3f, 0x1d, 0x39, 0x51, | ||
6548 | 0x16, 0x4d, 0x77, 0x3a, 0x0b, 0x7a, 0xd7, 0xaa, | ||
6549 | 0x83, 0x6a, 0x4e, 0x44, 0x44, 0x36, 0x17, 0x00, | ||
6550 | 0xc1, 0xc8, 0xbc, 0xc8, 0x69, 0x2c, 0x9f, 0xd0, | ||
6551 | 0xce, 0xc8, 0xc2, 0xc3, 0xc9, 0xcf, 0xcf, 0xcd, | ||
6552 | 0xca, 0xcc, 0xcd, 0xcf, 0xd2, 0xd3, 0xd2, 0xd0, | ||
6553 | 0xd2, 0xd3, 0xd4, 0xd5, 0xd7, 0xd9, 0xda, 0xda, | ||
6554 | 0xd9, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xdd, 0xde, | ||
6555 | 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, | ||
6556 | 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, | ||
6557 | 0xd4, 0xde, 0xd6, 0xd8, 0xdf, 0xcf, 0x64, 0x6a, | ||
6558 | 0xe3, 0xbb, 0xb8, 0xe5, 0xcb, 0xa3, 0xab, 0x8d, | ||
6559 | 0xcd, 0xcb, 0x82, 0xc4, 0xf7, 0xb4, 0xb5, 0xb9, | ||
6560 | 0xb5, 0xfc, 0x91, 0xa8, 0xd5, 0xcb, 0xdd, 0xc4, | ||
6561 | 0xa2, 0xca, 0xe6, 0xe2, 0xd9, 0xde, 0xe0, 0xda, | ||
6562 | 0xc6, 0xc7, 0xcf, 0xc9, 0xc9, 0xc4, 0xd4, 0xb1, | ||
6563 | 0x79, 0x67, 0x60, 0x6c, 0x5b, 0x75, 0x84, 0x85, | ||
6564 | 0x73, 0x96, 0x73, 0x36, 0x35, 0x41, 0x38, 0x35, | ||
6565 | 0x2f, 0x4c, 0x94, 0x6d, 0x34, 0x49, 0x48, 0x45, | ||
6566 | 0x23, 0x4a, 0x5b, 0x3e, 0x22, 0x26, 0x37, 0x3d, | ||
6567 | 0x4b, 0x4e, 0x51, 0x82, 0xb7, 0x96, 0x65, 0x71, | ||
6568 | 0x40, 0x3d, 0x42, 0x47, 0x3a, 0x29, 0x2f, 0x43, | ||
6569 | 0x48, 0x5e, 0x62, 0x62, 0x3d, 0x25, 0x67, 0xa5, | ||
6570 | 0x4a, 0x4e, 0x40, 0x4c, 0x65, 0x4b, 0x40, 0x70, | ||
6571 | 0x73, 0x58, 0x5a, 0x3e, 0x32, 0x4a, 0x40, 0x37, | ||
6572 | 0x18, 0x3a, 0x45, 0x79, 0x76, 0x49, 0x56, 0x4c, | ||
6573 | 0x51, 0x75, 0x5e, 0x29, 0x27, 0x40, 0x40, 0x37, | ||
6574 | 0x67, 0x90, 0x83, 0x72, 0x90, 0x93, 0x7b, 0x81, | ||
6575 | 0x5d, 0x6a, 0x76, 0x81, 0x7d, 0x66, 0x65, 0x81, | ||
6576 | 0x6e, 0x6e, 0x6a, 0x5e, 0x55, 0x57, 0x65, 0x73, | ||
6577 | 0x76, 0x6f, 0x68, 0x6b, 0x77, 0x86, 0x92, 0x97, | ||
6578 | 0x8e, 0x8b, 0x81, 0x75, 0x6c, 0x6e, 0x7a, 0x85, | ||
6579 | 0x76, 0x78, 0x74, 0x67, 0x58, 0x57, 0x66, 0x75, | ||
6580 | 0x77, 0x74, 0x6d, 0x62, 0x56, 0x4f, 0x4e, 0x4f, | ||
6581 | 0x46, 0x3c, 0x42, 0x45, 0x4c, 0x39, 0x5a, 0x23, | ||
6582 | 0x14, 0x3d, 0x62, 0xa9, 0x82, 0x33, 0x55, 0x58, | ||
6583 | 0xab, 0x45, 0x12, 0x3d, 0x58, 0x39, 0x2f, 0x4e, | ||
6584 | 0x73, 0x46, 0x1f, 0x3c, 0x43, 0x22, 0x0b, 0x47, | ||
6585 | 0x22, 0x2f, 0x41, 0x38, 0x1b, 0x22, 0x18, 0x5d, | ||
6586 | 0x46, 0x1a, 0x6a, 0xdc, 0xff, 0x9e, 0x20, 0x2f, | ||
6587 | 0x65, 0x6c, 0xba, 0x91, 0x55, 0x74, 0x74, 0x77, | ||
6588 | 0x3d, 0x6d, 0x68, 0x3a, 0x43, 0x72, 0x72, 0x4e, | ||
6589 | 0x1c, 0x37, 0x3e, 0x2c, 0x2c, 0x3f, 0x3f, 0x29, | ||
6590 | 0x2d, 0x65, 0x40, 0x13, 0x40, 0x57, 0x3c, 0x3d, | ||
6591 | 0xe5, 0xeb, 0xf5, 0xef, 0xa9, 0x46, 0x45, 0x99, | ||
6592 | 0x62, 0x1d, 0x1b, 0x31, 0x1e, 0x32, 0x63, 0x6b, | ||
6593 | 0x38, 0x2e, 0x28, 0x31, 0x3d, 0x37, 0x1d, 0x04, | ||
6594 | 0xbf, 0xc4, 0xbd, 0xbd, 0x5c, 0x34, 0xa6, 0xcd, | ||
6595 | 0xc5, 0xc5, 0xc6, 0xc6, 0xc6, 0xc4, 0xc3, 0xc1, | ||
6596 | 0xc9, 0xcf, 0xd2, 0xcf, 0xce, 0xd2, 0xd4, 0xd2, | ||
6597 | 0xd3, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd8, | ||
6598 | 0xd8, 0xd9, 0xd9, 0xda, 0xdb, 0xdc, 0xdc, 0xdd, | ||
6599 | 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, | ||
6600 | 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, | ||
6601 | 0xe5, 0xdc, 0xde, 0xe0, 0xde, 0xf1, 0xaa, 0x62, | ||
6602 | 0xba, 0xb9, 0xc4, 0xe7, 0xc7, 0x97, 0x9e, 0x8f, | ||
6603 | 0xdc, 0xbb, 0x7f, 0xd2, 0xe7, 0xad, 0xcb, 0xb1, | ||
6604 | 0xc6, 0xff, 0x78, 0xc7, 0xe1, 0xc7, 0xc2, 0xa1, | ||
6605 | 0xbb, 0xd1, 0xe1, 0xe0, 0xdd, 0xdf, 0xdf, 0xda, | ||
6606 | 0xd9, 0xc5, 0xd2, 0xd8, 0xc4, 0xc4, 0xd3, 0xb7, | ||
6607 | 0x87, 0x68, 0x53, 0x55, 0x56, 0x6f, 0x88, 0x93, | ||
6608 | 0x74, 0x8e, 0x6a, 0x49, 0x5c, 0x55, 0x49, 0x6c, | ||
6609 | 0x52, 0x4f, 0x99, 0x5e, 0x16, 0x41, 0x41, 0x3c, | ||
6610 | 0x2b, 0x51, 0x5d, 0x42, 0x3a, 0x53, 0x5e, 0x51, | ||
6611 | 0x76, 0x71, 0x6b, 0x80, 0x86, 0x4f, 0x24, 0x36, | ||
6612 | 0x41, 0x4a, 0x58, 0x57, 0x3e, 0x2c, 0x40, 0x63, | ||
6613 | 0x64, 0x69, 0x73, 0x68, 0x3d, 0x25, 0x53, 0x98, | ||
6614 | 0x5b, 0x6b, 0x71, 0x77, 0x72, 0x4c, 0x3c, 0x59, | ||
6615 | 0x50, 0x3a, 0x6b, 0x95, 0x7d, 0x60, 0x46, 0x2b, | ||
6616 | 0x4f, 0x44, 0x3f, 0x70, 0x80, 0x69, 0x7c, 0x8b, | ||
6617 | 0x65, 0x27, 0x1b, 0x4e, 0x70, 0x6e, 0x66, 0x61, | ||
6618 | 0x75, 0x8c, 0x8b, 0x7f, 0x7e, 0x79, 0x8e, 0xbc, | ||
6619 | 0xc6, 0xae, 0x81, 0x77, 0x92, 0x8c, 0x77, 0x7f, | ||
6620 | 0x61, 0x61, 0x5f, 0x58, 0x55, 0x5e, 0x71, 0x82, | ||
6621 | 0x7e, 0x7a, 0x77, 0x76, 0x74, 0x6c, 0x60, 0x56, | ||
6622 | 0x62, 0x65, 0x66, 0x63, 0x5e, 0x5f, 0x67, 0x6e, | ||
6623 | 0x6d, 0x6f, 0x69, 0x58, 0x44, 0x3c, 0x44, 0x4f, | ||
6624 | 0x70, 0x6f, 0x6a, 0x5f, 0x53, 0x4d, 0x4d, 0x50, | ||
6625 | 0x66, 0x51, 0x3f, 0x37, 0x2e, 0x58, 0x54, 0x96, | ||
6626 | 0xc3, 0xc5, 0x4c, 0x18, 0x26, 0x80, 0xbf, 0x1b, | ||
6627 | 0x2c, 0x23, 0x23, 0x2d, 0x31, 0x2f, 0x36, 0x44, | ||
6628 | 0x2e, 0x1c, 0x20, 0xc0, 0xff, 0xf2, 0x9d, 0x6b, | ||
6629 | 0x4f, 0x55, 0x13, 0x1e, 0x11, 0x0a, 0x39, 0x0f, | ||
6630 | 0x83, 0xea, 0xfc, 0xf1, 0xb3, 0x4e, 0x3b, 0x3f, | ||
6631 | 0x02, 0xb9, 0xe7, 0x6d, 0x62, 0x80, 0x45, 0x37, | ||
6632 | 0x5f, 0x74, 0x59, 0x6f, 0xec, 0xff, 0xe0, 0x80, | ||
6633 | 0x34, 0x2d, 0x1f, 0x19, 0x2a, 0x42, 0x43, 0x33, | ||
6634 | 0x44, 0x43, 0x3f, 0x32, 0x27, 0x31, 0x3b, 0x37, | ||
6635 | 0x85, 0x9b, 0x61, 0x22, 0x35, 0x45, 0x2d, 0x25, | ||
6636 | 0x38, 0x28, 0x4c, 0x73, 0x6d, 0x6d, 0x6b, 0x4f, | ||
6637 | 0x2c, 0x25, 0x21, 0x28, 0x32, 0x30, 0x21, 0x11, | ||
6638 | 0xbd, 0xc1, 0xbf, 0xb1, 0x4f, 0x3c, 0xae, 0xca, | ||
6639 | 0xbf, 0xc3, 0xc5, 0xc2, 0xbd, 0xbd, 0xc5, 0xcc, | ||
6640 | 0xbd, 0xce, 0xd6, 0xcf, 0xc8, 0xcc, 0xd2, 0xd3, | ||
6641 | 0xd3, 0xd3, 0xd4, 0xd4, 0xd5, 0xd5, 0xd6, 0xd6, | ||
6642 | 0xd7, 0xd8, 0xd8, 0xd9, 0xda, 0xdb, 0xdb, 0xdc, | ||
6643 | 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, | ||
6644 | 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, | ||
6645 | 0xdd, 0xd1, 0xda, 0xd8, 0xd6, 0xe2, 0xd8, 0x66, | ||
6646 | 0x92, 0xd7, 0xe7, 0xe8, 0xcc, 0x9b, 0xa5, 0xb9, | ||
6647 | 0xd9, 0xaf, 0x9e, 0xdc, 0xbf, 0xa9, 0xe3, 0xac, | ||
6648 | 0xc5, 0xef, 0x78, 0xde, 0xd5, 0xb4, 0xb4, 0xb4, | ||
6649 | 0xe7, 0xd7, 0xd0, 0xd9, 0xdf, 0xdb, 0xd6, 0xd7, | ||
6650 | 0xd9, 0xca, 0xbf, 0xc9, 0xd3, 0xd0, 0xbe, 0xc5, | ||
6651 | 0x70, 0x89, 0x99, 0x8c, 0x7a, 0x6e, 0x95, 0xcf, | ||
6652 | 0xcb, 0xcf, 0x75, 0x23, 0x3c, 0x54, 0x3f, 0x3a, | ||
6653 | 0x49, 0x4c, 0xa1, 0x6f, 0x25, 0x47, 0x48, 0x4a, | ||
6654 | 0x30, 0x56, 0x62, 0x49, 0x42, 0x5b, 0x67, 0x5b, | ||
6655 | 0x7a, 0x76, 0x65, 0x5f, 0x64, 0x5d, 0x5c, 0x6f, | ||
6656 | 0x41, 0x3a, 0x3b, 0x3e, 0x34, 0x29, 0x35, 0x4d, | ||
6657 | 0x2d, 0x43, 0x8d, 0x69, 0x2f, 0x31, 0x53, 0xc1, | ||
6658 | 0x65, 0x4d, 0x5a, 0x76, 0x78, 0x74, 0x6c, 0x55, | ||
6659 | 0x62, 0x56, 0x5d, 0x61, 0x4e, 0x65, 0x8a, 0x75, | ||
6660 | 0x70, 0x75, 0x85, 0x64, 0x4d, 0x5a, 0x64, 0x81, | ||
6661 | 0x76, 0x4a, 0x62, 0x91, 0x9d, 0xb6, 0xb7, 0x80, | ||
6662 | 0x81, 0x66, 0x91, 0xc3, 0xa2, 0x84, 0xab, 0xdb, | ||
6663 | 0x81, 0x92, 0xab, 0xbd, 0xc1, 0xb2, 0x8a, 0x5e, | ||
6664 | 0x5f, 0x64, 0x6a, 0x6c, 0x6a, 0x66, 0x62, 0x5f, | ||
6665 | 0x79, 0x6d, 0x5e, 0x57, 0x59, 0x60, 0x66, 0x68, | ||
6666 | 0x67, 0x67, 0x63, 0x5c, 0x58, 0x5c, 0x68, 0x73, | ||
6667 | 0x3a, 0x46, 0x52, 0x53, 0x4f, 0x50, 0x5b, 0x67, | ||
6668 | 0x72, 0x70, 0x6b, 0x65, 0x60, 0x5e, 0x5f, 0x61, | ||
6669 | 0x55, 0x50, 0x46, 0x48, 0x4c, 0x61, 0x1b, 0x24, | ||
6670 | 0x2d, 0xb8, 0xcb, 0x97, 0x23, 0x1e, 0x9a, 0x6c, | ||
6671 | 0x53, 0x9c, 0xde, 0xe3, 0xbf, 0x90, 0x5e, 0x36, | ||
6672 | 0x8d, 0xfb, 0xe9, 0xff, 0xe7, 0xad, 0x8f, 0xbf, | ||
6673 | 0x49, 0x39, 0x7e, 0x64, 0x70, 0x73, 0x39, 0x82, | ||
6674 | 0xff, 0xd0, 0x4f, 0x1a, 0x28, 0x45, 0x58, 0x1b, | ||
6675 | 0x16, 0x55, 0x45, 0x2d, 0x22, 0x24, 0x6a, 0xa6, | ||
6676 | 0x35, 0x28, 0x43, 0x60, 0x6e, 0x8d, 0x81, 0x3d, | ||
6677 | 0x1f, 0x17, 0x23, 0x3c, 0x3b, 0x23, 0x19, 0x24, | ||
6678 | 0x43, 0x74, 0x95, 0x7a, 0x4a, 0x3c, 0x3d, 0x34, | ||
6679 | 0x00, 0x55, 0x69, 0x3f, 0x39, 0x3d, 0x43, 0x63, | ||
6680 | 0x89, 0x8f, 0x7a, 0x36, 0x09, 0x2d, 0x5a, 0x56, | ||
6681 | 0x44, 0x37, 0x26, 0x1b, 0x18, 0x16, 0x11, 0x0c, | ||
6682 | 0xbb, 0xbd, 0xc0, 0xa5, 0x43, 0x44, 0xb5, 0xc7, | ||
6683 | 0xc2, 0xc0, 0xbd, 0xba, 0xbb, 0xc3, 0xcf, 0xd9, | ||
6684 | 0x9b, 0xbf, 0xda, 0xd5, 0xc7, 0xc8, 0xcf, 0xd2, | ||
6685 | 0xd3, 0xd3, 0xd3, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, | ||
6686 | 0xd6, 0xd7, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdb, | ||
6687 | 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, | ||
6688 | 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, | ||
6689 | 0xd7, 0xdf, 0xe2, 0xdd, 0xe4, 0xd8, 0xe5, 0x87, | ||
6690 | 0x58, 0x93, 0xba, 0xf1, 0xd3, 0x61, 0x67, 0xbe, | ||
6691 | 0xd0, 0xac, 0xbd, 0xd4, 0xa6, 0xb1, 0xe0, 0xb3, | ||
6692 | 0xb3, 0xc5, 0x90, 0xdd, 0xaf, 0xa8, 0xc1, 0xe8, | ||
6693 | 0xfc, 0xda, 0xc7, 0xd2, 0xde, 0xd7, 0xd0, 0xd3, | ||
6694 | 0xd2, 0xdb, 0xdc, 0xd1, 0xc6, 0xde, 0xab, 0x77, | ||
6695 | 0x73, 0x65, 0x54, 0x44, 0x55, 0x3a, 0x3b, 0x51, | ||
6696 | 0xa4, 0xb1, 0x7a, 0x37, 0x35, 0x44, 0x4b, 0x5b, | ||
6697 | 0x58, 0x3e, 0x5f, 0x42, 0x21, 0x3d, 0x3c, 0x3c, | ||
6698 | 0x30, 0x59, 0x6b, 0x51, 0x37, 0x3e, 0x51, 0x58, | ||
6699 | 0x59, 0x60, 0x5d, 0x5c, 0x6c, 0x7f, 0x7e, 0x71, | ||
6700 | 0x6f, 0x4f, 0x3b, 0x43, 0x50, 0x4e, 0x4a, 0x4d, | ||
6701 | 0x4b, 0x4e, 0x92, 0x5f, 0x39, 0x4e, 0x3c, 0x7b, | ||
6702 | 0x81, 0x62, 0x69, 0x6e, 0x51, 0x54, 0x60, 0x47, | ||
6703 | 0x6e, 0x76, 0x70, 0x78, 0x68, 0x5f, 0x7a, 0x6c, | ||
6704 | 0x89, 0x59, 0x63, 0x68, 0x8d, 0xaf, 0x8f, 0x95, | ||
6705 | 0xca, 0xbb, 0xb6, 0x89, 0x5a, 0x8c, 0xce, 0xc4, | ||
6706 | 0xf4, 0xd9, 0xa7, 0xa3, 0xcc, 0xc4, 0x96, 0x84, | ||
6707 | 0x3a, 0x64, 0xb1, 0xbf, 0x8c, 0x86, 0x94, 0x79, | ||
6708 | 0x6a, 0x6c, 0x6e, 0x6e, 0x6b, 0x66, 0x61, 0x5e, | ||
6709 | 0x69, 0x67, 0x66, 0x6a, 0x6d, 0x6c, 0x64, 0x5d, | ||
6710 | 0x5a, 0x62, 0x69, 0x68, 0x5f, 0x56, 0x51, 0x51, | ||
6711 | 0x5c, 0x67, 0x70, 0x6b, 0x5e, 0x55, 0x58, 0x5f, | ||
6712 | 0x5c, 0x55, 0x4e, 0x4e, 0x53, 0x57, 0x55, 0x52, | ||
6713 | 0x54, 0x46, 0x3b, 0x38, 0x3d, 0x12, 0x35, 0x2a, | ||
6714 | 0x70, 0x76, 0x4f, 0x59, 0x45, 0x31, 0x54, 0x2a, | ||
6715 | 0x2e, 0x32, 0x40, 0x4b, 0x45, 0x39, 0x42, 0x56, | ||
6716 | 0x29, 0x79, 0x5e, 0x4d, 0x36, 0x1b, 0x1b, 0x2c, | ||
6717 | 0x6a, 0x12, 0x2e, 0x89, 0x5c, 0x22, 0xad, 0xe4, | ||
6718 | 0x6d, 0x26, 0x43, 0x51, 0x3b, 0x33, 0x27, 0x47, | ||
6719 | 0x26, 0x00, 0x6e, 0xff, 0x96, 0x27, 0x57, 0x2c, | ||
6720 | 0x57, 0x3c, 0x2f, 0x32, 0x30, 0x33, 0x3f, 0x45, | ||
6721 | 0x0e, 0x2f, 0x62, 0x84, 0x7f, 0x73, 0x87, 0xab, | ||
6722 | 0x2b, 0x60, 0x5f, 0x4c, 0x41, 0x17, 0x37, 0xb3, | ||
6723 | 0xe4, 0x9a, 0x64, 0x7a, 0x8e, 0x65, 0x4f, 0x70, | ||
6724 | 0x59, 0x28, 0x1d, 0x45, 0x58, 0x4b, 0x51, 0x6b, | ||
6725 | 0x68, 0x5a, 0x44, 0x2e, 0x1f, 0x18, 0x17, 0x17, | ||
6726 | 0xb9, 0xbb, 0xc1, 0x9d, 0x39, 0x49, 0xbb, 0xc5, | ||
6727 | 0xc7, 0xbd, 0xb6, 0xbb, 0xc6, 0xca, 0xc2, 0xb7, | ||
6728 | 0x6d, 0xa8, 0xdb, 0xe0, 0xcf, 0xca, 0xce, 0xd0, | ||
6729 | 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, | ||
6730 | 0xd6, 0xd6, 0xd7, 0xd8, 0xd9, 0xd9, 0xda, 0xda, | ||
6731 | 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, | ||
6732 | 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, | ||
6733 | 0xd5, 0xdd, 0xd2, 0xd4, 0xd6, 0xd8, 0xe8, 0xc8, | ||
6734 | 0x7e, 0x90, 0xb6, 0xf9, 0xce, 0x6b, 0x93, 0xf3, | ||
6735 | 0xce, 0xb2, 0xc6, 0xbb, 0xaf, 0xc2, 0xc0, 0xc6, | ||
6736 | 0xbb, 0xab, 0xb7, 0xd2, 0x94, 0xb6, 0xc2, 0xda, | ||
6737 | 0xe9, 0xda, 0xcf, 0xd1, 0xd8, 0xd9, 0xd2, 0xcd, | ||
6738 | 0xd7, 0xcd, 0xc7, 0xac, 0x95, 0xe8, 0xde, 0xa8, | ||
6739 | 0x84, 0x62, 0x4e, 0x2f, 0x34, 0x26, 0x51, 0x78, | ||
6740 | 0xb0, 0x86, 0x70, 0x7f, 0x78, 0x49, 0x2f, 0x3c, | ||
6741 | 0x2e, 0x1d, 0x2f, 0x4f, 0x67, 0x67, 0x4c, 0x39, | ||
6742 | 0x5f, 0x59, 0x51, 0x53, 0x5f, 0x69, 0x61, 0x52, | ||
6743 | 0x59, 0x69, 0x77, 0x73, 0x6a, 0x6d, 0x6a, 0x5b, | ||
6744 | 0x6b, 0x52, 0x41, 0x42, 0x42, 0x3b, 0x3e, 0x4a, | ||
6745 | 0x43, 0x4a, 0x6f, 0x6c, 0x88, 0xa8, 0x6e, 0x45, | ||
6746 | 0x6e, 0x79, 0x84, 0x7b, 0x65, 0x64, 0x73, 0x7b, | ||
6747 | 0x81, 0xa9, 0x91, 0x90, 0x8b, 0x74, 0x85, 0x7c, | ||
6748 | 0xad, 0x99, 0xab, 0xc9, 0xc8, 0xb1, 0xb0, 0xd4, | ||
6749 | 0xe2, 0xb6, 0xb4, 0xd7, 0xba, 0x57, 0x28, 0x44, | ||
6750 | 0x78, 0xc7, 0xa7, 0x6b, 0x96, 0xc1, 0xca, 0xed, | ||
6751 | 0xff, 0xff, 0xfa, 0xea, 0xd2, 0xb1, 0x8b, 0x6f, | ||
6752 | 0x6c, 0x70, 0x6f, 0x67, 0x5f, 0x61, 0x70, 0x7e, | ||
6753 | 0x93, 0x89, 0x7d, 0x77, 0x79, 0x7d, 0x7e, 0x7e, | ||
6754 | 0x7e, 0x7b, 0x74, 0x68, 0x5f, 0x60, 0x6b, 0x74, | ||
6755 | 0x74, 0x7a, 0x7c, 0x71, 0x60, 0x58, 0x5e, 0x67, | ||
6756 | 0x64, 0x55, 0x49, 0x4c, 0x5b, 0x63, 0x5c, 0x51, | ||
6757 | 0x48, 0x3f, 0x4c, 0x95, 0xa9, 0x40, 0x4d, 0x46, | ||
6758 | 0x4e, 0x4a, 0x25, 0x23, 0x41, 0x4f, 0x5d, 0x65, | ||
6759 | 0x56, 0x2f, 0x1c, 0x27, 0x26, 0x1c, 0x37, 0x65, | ||
6760 | 0x2f, 0x3d, 0x49, 0x4e, 0x53, 0x38, 0x37, 0x1d, | ||
6761 | 0x49, 0xce, 0xc5, 0x3a, 0x78, 0x72, 0x36, 0x61, | ||
6762 | 0x3b, 0x18, 0x31, 0x25, 0x21, 0x3f, 0x32, 0x38, | ||
6763 | 0x1f, 0x19, 0x13, 0x31, 0x3b, 0x15, 0x06, 0x14, | ||
6764 | 0x48, 0x4d, 0x32, 0x33, 0x4f, 0x2c, 0x01, 0x14, | ||
6765 | 0x2f, 0x23, 0x1c, 0x27, 0x37, 0x3d, 0x37, 0x2f, | ||
6766 | 0x7d, 0x4e, 0x4e, 0xb0, 0xca, 0x51, 0x54, 0xff, | ||
6767 | 0xd6, 0xc8, 0xa7, 0x60, 0x19, 0x1a, 0x44, 0x59, | ||
6768 | 0x33, 0x1a, 0x18, 0x46, 0x78, 0x7c, 0x6b, 0x68, | ||
6769 | 0x60, 0x5c, 0x52, 0x43, 0x32, 0x26, 0x20, 0x1f, | ||
6770 | 0xb9, 0xb9, 0xc2, 0x98, 0x34, 0x4c, 0xbe, 0xc3, | ||
6771 | 0xc7, 0xba, 0xb5, 0xc3, 0xd4, 0xcb, 0xa6, 0x82, | ||
6772 | 0x4a, 0x95, 0xdc, 0xe9, 0xd7, 0xcd, 0xce, 0xcf, | ||
6773 | 0xd4, 0xd3, 0xd3, 0xd3, 0xd3, 0xd2, 0xd2, 0xd2, | ||
6774 | 0xd5, 0xd6, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xda, | ||
6775 | 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, | ||
6776 | 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, | ||
6777 | 0xd6, 0xd7, 0xd3, 0xe5, 0xcd, 0xd8, 0xd0, 0xcc, | ||
6778 | 0x89, 0xa5, 0xa2, 0x80, 0x48, 0x6a, 0xd8, 0xf3, | ||
6779 | 0xd0, 0xb8, 0xc1, 0xa5, 0xc3, 0xd1, 0x9f, 0xd7, | ||
6780 | 0xaa, 0x82, 0xbb, 0xc3, 0x9b, 0xe7, 0xd9, 0xc8, | ||
6781 | 0xcc, 0xd9, 0xdc, 0xd3, 0xd3, 0xdc, 0xd8, 0xc9, | ||
6782 | 0xd6, 0xc9, 0xc4, 0xd1, 0xca, 0xe0, 0xb1, 0xb2, | ||
6783 | 0x96, 0x5d, 0x55, 0x4d, 0x5e, 0x57, 0x7b, 0x81, | ||
6784 | 0x50, 0x51, 0x85, 0xac, 0x73, 0x27, 0x33, 0x70, | ||
6785 | 0x5e, 0x55, 0x42, 0x52, 0x59, 0x3f, 0x40, 0x54, | ||
6786 | 0x41, 0x40, 0x46, 0x51, 0x57, 0x57, 0x5d, 0x67, | ||
6787 | 0x59, 0x66, 0x72, 0x5c, 0x36, 0x37, 0x5f, 0x7d, | ||
6788 | 0x63, 0x67, 0x6a, 0x5c, 0x39, 0x25, 0x3f, 0x69, | ||
6789 | 0xa3, 0xad, 0x8d, 0x75, 0x84, 0x96, 0x76, 0x28, | ||
6790 | 0x69, 0x7e, 0x71, 0x6a, 0x82, 0x76, 0x52, 0x4f, | ||
6791 | 0x71, 0xdd, 0xab, 0x65, 0x79, 0xb7, 0xe5, 0xbe, | ||
6792 | 0xab, 0xd1, 0xcd, 0xd1, 0xb5, 0x96, 0xb6, 0xb9, | ||
6793 | 0xb3, 0xc4, 0xb4, 0xbd, 0xc6, 0x78, 0x48, 0x81, | ||
6794 | 0x82, 0xa4, 0xdc, 0xed, 0xd1, 0xaf, 0x74, 0x29, | ||
6795 | 0x0b, 0x29, 0x0f, 0x32, 0x9a, 0x8f, 0x52, 0x6c, | ||
6796 | 0x64, 0x73, 0x7c, 0x72, 0x60, 0x5d, 0x6e, 0x82, | ||
6797 | 0x82, 0x7a, 0x71, 0x6c, 0x6b, 0x68, 0x62, 0x5c, | ||
6798 | 0x5c, 0x69, 0x78, 0x7e, 0x7a, 0x71, 0x6a, 0x68, | ||
6799 | 0x7b, 0x7d, 0x77, 0x66, 0x54, 0x4e, 0x59, 0x66, | ||
6800 | 0x69, 0x55, 0x44, 0x49, 0x5d, 0x66, 0x5b, 0x4b, | ||
6801 | 0x4b, 0x60, 0x2f, 0x70, 0xd8, 0xff, 0xac, 0x51, | ||
6802 | 0x15, 0x2f, 0x2e, 0x1a, 0x2a, 0x26, 0x1f, 0x5b, | ||
6803 | 0x23, 0x31, 0x51, 0x6a, 0x59, 0x2e, 0x19, 0x1f, | ||
6804 | 0x2b, 0x38, 0x46, 0x56, 0xa1, 0x5b, 0x28, 0x2a, | ||
6805 | 0x40, 0x39, 0x23, 0x15, 0x41, 0x39, 0x63, 0x3e, | ||
6806 | 0x41, 0x57, 0x4d, 0x69, 0x50, 0x11, 0x25, 0x38, | ||
6807 | 0x36, 0x7c, 0x96, 0x40, 0x2c, 0x44, 0x39, 0x71, | ||
6808 | 0x9a, 0x6e, 0x68, 0x7b, 0x79, 0x6c, 0x4b, 0x1a, | ||
6809 | 0x26, 0x1a, 0x16, 0x20, 0x27, 0x25, 0x25, 0x2b, | ||
6810 | 0x34, 0x43, 0x6b, 0xa1, 0xc9, 0xcd, 0x9f, 0x64, | ||
6811 | 0x50, 0x47, 0x68, 0x73, 0x56, 0x61, 0x71, 0x51, | ||
6812 | 0x29, 0x53, 0x82, 0x95, 0x76, 0x38, 0x21, 0x3b, | ||
6813 | 0x2d, 0x35, 0x3b, 0x37, 0x2a, 0x1a, 0x0f, 0x0a, | ||
6814 | 0xc0, 0xba, 0xca, 0x8d, 0x25, 0x6c, 0xbd, 0xc6, | ||
6815 | 0xc3, 0xbc, 0xcc, 0xd1, 0xc1, 0xab, 0x29, 0x16, | ||
6816 | 0x1d, 0x0e, 0x3e, 0xb2, 0xc8, 0xce, 0xd8, 0xd1, | ||
6817 | 0xcd, 0xce, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd2, | ||
6818 | 0xd2, 0xd3, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd7, | ||
6819 | 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, | ||
6820 | 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, | ||
6821 | 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, | ||
6822 | 0x99, 0x77, 0xb4, 0x5f, 0x34, 0x55, 0x92, 0x6e, | ||
6823 | 0x82, 0x9e, 0xc2, 0xd7, 0xd2, 0xc1, 0xb7, 0xb8, | ||
6824 | 0xae, 0x9c, 0xc8, 0xae, 0xd7, 0xde, 0xd7, 0xcf, | ||
6825 | 0xce, 0xd1, 0xd6, 0xda, 0xda, 0xd8, 0xd4, 0xd1, | ||
6826 | 0xdd, 0xbe, 0xc0, 0xcd, 0xa4, 0xb1, 0xd9, 0x9e, | ||
6827 | 0x73, 0x7b, 0x4b, 0x35, 0x43, 0x58, 0x77, 0x76, | ||
6828 | 0x43, 0x2e, 0x80, 0x6e, 0x3e, 0x5d, 0x5c, 0x67, | ||
6829 | 0x5b, 0x68, 0x61, 0x60, 0x67, 0x50, 0x46, 0x67, | ||
6830 | 0x51, 0x69, 0x66, 0x55, 0x53, 0x45, 0x30, 0x31, | ||
6831 | 0x2c, 0x1a, 0x4e, 0x58, 0x61, 0x7a, 0x50, 0x38, | ||
6832 | 0x50, 0x6b, 0x5c, 0x35, 0x42, 0x7d, 0xad, 0xc1, | ||
6833 | 0x97, 0x9b, 0xa3, 0x6e, 0x71, 0xc1, 0xc2, 0x92, | ||
6834 | 0x34, 0x66, 0x62, 0xa4, 0xc8, 0xbf, 0xe0, 0xb6, | ||
6835 | 0xad, 0xd4, 0x84, 0x73, 0xd3, 0xd0, 0x8b, 0x7d, | ||
6836 | 0xc7, 0x66, 0x56, 0xa5, 0xdd, 0xe1, 0xc3, 0x9b, | ||
6837 | 0xaf, 0x5c, 0x3d, 0x93, 0xaf, 0xc0, 0xff, 0xde, | ||
6838 | 0x96, 0x80, 0x37, 0x25, 0x27, 0x17, 0x29, 0x2e, | ||
6839 | 0x36, 0x2c, 0x24, 0x34, 0x2b, 0x25, 0x45, 0x50, | ||
6840 | 0x70, 0x73, 0x77, 0x78, 0x73, 0x6a, 0x60, 0x5a, | ||
6841 | 0x6a, 0x6e, 0x6e, 0x67, 0x5d, 0x59, 0x5c, 0x61, | ||
6842 | 0x5c, 0x64, 0x74, 0x84, 0x8c, 0x83, 0x6f, 0x5f, | ||
6843 | 0x81, 0x8a, 0x88, 0x74, 0x63, 0x5c, 0x56, 0x4d, | ||
6844 | 0x5d, 0x57, 0x53, 0x55, 0x5a, 0x58, 0x4d, 0x43, | ||
6845 | 0x47, 0x40, 0x3e, 0x44, 0x29, 0x2a, 0x65, 0x80, | ||
6846 | 0x31, 0x26, 0x1b, 0x1e, 0x29, 0x30, 0x2d, 0x26, | ||
6847 | 0x42, 0x3a, 0x2e, 0x25, 0x22, 0x25, 0x2b, 0x2e, | ||
6848 | 0x22, 0x4f, 0x8b, 0x72, 0x30, 0x43, 0x55, 0x1a, | ||
6849 | 0x3b, 0x27, 0x16, 0x23, 0x3a, 0x35, 0x22, 0x20, | ||
6850 | 0x15, 0x44, 0x4d, 0x3c, 0x31, 0x17, 0x0f, 0x2e, | ||
6851 | 0x3a, 0x5a, 0x62, 0x3e, 0x21, 0x26, 0x35, 0x38, | ||
6852 | 0x54, 0x42, 0x4f, 0x72, 0x70, 0x50, 0x51, 0x73, | ||
6853 | 0x77, 0x99, 0x65, 0x39, 0x5e, 0x58, 0x2e, 0x36, | ||
6854 | 0x69, 0x5f, 0x4c, 0x36, 0x2a, 0x32, 0x4a, 0x5e, | ||
6855 | 0x3d, 0x38, 0x3e, 0x4a, 0x4d, 0x4d, 0x5e, 0x74, | ||
6856 | 0x54, 0x34, 0x21, 0x25, 0x21, 0x1a, 0x30, 0x54, | ||
6857 | 0x5f, 0x56, 0x61, 0x40, 0x3b, 0x49, 0x1e, 0x0c, | ||
6858 | 0xbd, 0xbc, 0xcd, 0x92, 0x2e, 0x74, 0xbf, 0xc4, | ||
6859 | 0xc6, 0xc7, 0xca, 0xc4, 0xc2, 0xc7, 0x91, 0xcb, | ||
6860 | 0xda, 0xc1, 0x9b, 0xb8, 0xca, 0xdc, 0xd7, 0xc8, | ||
6861 | 0xcd, 0xcd, 0xce, 0xcf, 0xcf, 0xd0, 0xd1, 0xd1, | ||
6862 | 0xd2, 0xd2, 0xd3, 0xd4, 0xd4, 0xd5, 0xd6, 0xd6, | ||
6863 | 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, | ||
6864 | 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, | ||
6865 | 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, | ||
6866 | 0xa4, 0x62, 0xc0, 0x7b, 0x51, 0x9a, 0x8a, 0x64, | ||
6867 | 0xca, 0xbb, 0xc8, 0xe7, 0xdd, 0xb2, 0xa5, 0xba, | ||
6868 | 0xb7, 0x76, 0xa7, 0xc1, 0xe1, 0xd6, 0xd8, 0xda, | ||
6869 | 0xed, 0xda, 0xc7, 0xc5, 0xd1, 0xdd, 0xdc, 0xd7, | ||
6870 | 0xca, 0xbc, 0xc4, 0xb3, 0xaa, 0xd1, 0xbf, 0x67, | ||
6871 | 0x58, 0x88, 0x93, 0x64, 0x42, 0x40, 0x4c, 0x61, | ||
6872 | 0x94, 0x2d, 0x2c, 0x52, 0x4a, 0x4e, 0x5a, 0x5b, | ||
6873 | 0x42, 0x70, 0x75, 0x5e, 0x5d, 0x52, 0x35, 0x28, | ||
6874 | 0x64, 0x5c, 0x5c, 0x50, 0x4e, 0x4d, 0x64, 0xb2, | ||
6875 | 0x9f, 0x57, 0x4e, 0x42, 0x44, 0x61, 0x5c, 0x67, | ||
6876 | 0x64, 0x60, 0x75, 0x9d, 0xa9, 0x96, 0x9e, 0xc2, | ||
6877 | 0x70, 0x39, 0x63, 0x9e, 0xb1, 0xb8, 0xc2, 0xec, | ||
6878 | 0xfd, 0xbb, 0xdf, 0xf1, 0xc4, 0xdb, 0xd9, 0x83, | ||
6879 | 0x94, 0xad, 0xd5, 0xd6, 0xb3, 0x91, 0x7e, 0x85, | ||
6880 | 0xb1, 0xaf, 0xd7, 0xe1, 0x9e, 0x76, 0xad, 0xf3, | ||
6881 | 0x50, 0x23, 0x34, 0x31, 0x46, 0x77, 0x6e, 0x6e, | ||
6882 | 0x38, 0x3d, 0x1d, 0x17, 0x32, 0x3f, 0x39, 0x27, | ||
6883 | 0x18, 0x2f, 0x51, 0x5e, 0x64, 0x92, 0xa9, 0x7c, | ||
6884 | 0x60, 0x76, 0x83, 0x73, 0x54, 0x47, 0x58, 0x70, | ||
6885 | 0x88, 0x75, 0x5d, 0x4e, 0x4d, 0x52, 0x56, 0x58, | ||
6886 | 0x6c, 0x69, 0x66, 0x69, 0x6e, 0x6e, 0x68, 0x62, | ||
6887 | 0x7d, 0x84, 0x7e, 0x6a, 0x5e, 0x5f, 0x62, 0x5f, | ||
6888 | 0x4e, 0x50, 0x56, 0x60, 0x67, 0x62, 0x53, 0x46, | ||
6889 | 0x36, 0x3f, 0x2d, 0x2b, 0x2c, 0x2e, 0x44, 0x47, | ||
6890 | 0x50, 0x57, 0x54, 0x3d, 0x1e, 0x11, 0x1d, 0x2e, | ||
6891 | 0x75, 0x59, 0x37, 0x27, 0x2d, 0x3a, 0x42, 0x43, | ||
6892 | 0x35, 0x40, 0x49, 0x4b, 0x51, 0x5b, 0x4a, 0x28, | ||
6893 | 0x24, 0x3a, 0x21, 0x34, 0x85, 0x91, 0x88, 0xba, | ||
6894 | 0x4f, 0x47, 0x8d, 0xc8, 0x8d, 0x38, 0x2e, 0x48, | ||
6895 | 0x32, 0x31, 0x27, 0x1a, 0x1d, 0x31, 0x41, 0x45, | ||
6896 | 0x48, 0x3e, 0x2b, 0x18, 0x19, 0x38, 0x6c, 0x95, | ||
6897 | 0x34, 0x3a, 0x27, 0x1e, 0x34, 0x3e, 0x34, 0x34, | ||
6898 | 0x4a, 0x38, 0x29, 0x2b, 0x37, 0x36, 0x22, 0x0d, | ||
6899 | 0x98, 0x66, 0x38, 0x2a, 0x2b, 0x34, 0x52, 0x75, | ||
6900 | 0x66, 0x61, 0x57, 0x45, 0x29, 0x1b, 0x2f, 0x4f, | ||
6901 | 0x2d, 0x2b, 0x41, 0x2b, 0x2e, 0x40, 0x15, 0x02, | ||
6902 | 0xbc, 0xbb, 0xc6, 0x87, 0x2b, 0x77, 0xc0, 0xc4, | ||
6903 | 0xc5, 0xc5, 0xba, 0xbb, 0xca, 0xbf, 0x87, 0xb3, | ||
6904 | 0xce, 0xbf, 0xa6, 0xcb, 0xd3, 0xcb, 0xc3, 0xcd, | ||
6905 | 0xcb, 0xcc, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd0, | ||
6906 | 0xd0, 0xd1, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd5, | ||
6907 | 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, | ||
6908 | 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, | ||
6909 | 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, | ||
6910 | 0xdc, 0x79, 0xc1, 0x76, 0x39, 0x9f, 0x63, 0x77, | ||
6911 | 0xd4, 0xbf, 0xc5, 0xe3, 0xe4, 0xc4, 0xb2, 0xbb, | ||
6912 | 0xa2, 0x6e, 0xb1, 0xe0, 0xe2, 0xcb, 0xd3, 0xd1, | ||
6913 | 0xd7, 0xd4, 0xd2, 0xd4, 0xd5, 0xd3, 0xcc, 0xc6, | ||
6914 | 0xc4, 0xab, 0xb7, 0xaf, 0xb5, 0xc3, 0xa0, 0x8e, | ||
6915 | 0xa1, 0x6a, 0x51, 0x47, 0x58, 0x52, 0x2b, 0x3b, | ||
6916 | 0x5b, 0x68, 0x39, 0x43, 0x6e, 0x50, 0x47, 0x72, | ||
6917 | 0x6f, 0x72, 0x67, 0x64, 0x69, 0x57, 0x41, 0x42, | ||
6918 | 0x48, 0x1a, 0x28, 0x2a, 0x1c, 0x12, 0x50, 0xfa, | ||
6919 | 0xcd, 0x77, 0x6f, 0x8d, 0xa0, 0xae, 0xaf, 0xc7, | ||
6920 | 0xe9, 0xce, 0xc0, 0xc0, 0xb1, 0x97, 0x88, 0x87, | ||
6921 | 0xa2, 0xa5, 0xa9, 0x64, 0x46, 0x7e, 0x85, 0x69, | ||
6922 | 0x41, 0x65, 0xae, 0xc4, 0xc7, 0xe6, 0xc1, 0x68, | ||
6923 | 0xbf, 0x9b, 0x6b, 0x15, 0x31, 0x90, 0x94, 0x9b, | ||
6924 | 0x87, 0x73, 0x84, 0x95, 0x69, 0x2f, 0x24, 0x32, | ||
6925 | 0x3b, 0x47, 0x6e, 0x49, 0x86, 0xcf, 0x5d, 0x12, | ||
6926 | 0x47, 0x26, 0x1d, 0x30, 0x42, 0x30, 0x20, 0x44, | ||
6927 | 0x40, 0x59, 0x44, 0x1e, 0x37, 0x52, 0x4e, 0x63, | ||
6928 | 0x75, 0x79, 0x77, 0x6a, 0x5b, 0x5d, 0x6f, 0x82, | ||
6929 | 0x93, 0x80, 0x68, 0x5a, 0x5c, 0x67, 0x71, 0x76, | ||
6930 | 0x81, 0x78, 0x6e, 0x6b, 0x6e, 0x70, 0x6f, 0x6c, | ||
6931 | 0x61, 0x66, 0x5f, 0x4c, 0x44, 0x4e, 0x58, 0x5b, | ||
6932 | 0x63, 0x65, 0x69, 0x6e, 0x6f, 0x68, 0x59, 0x4e, | ||
6933 | 0x4c, 0x57, 0x33, 0x28, 0x34, 0x26, 0x22, 0x22, | ||
6934 | 0x3b, 0x38, 0x35, 0x33, 0x30, 0x28, 0x1d, 0x14, | ||
6935 | 0x3e, 0x41, 0x46, 0x49, 0x4a, 0x4b, 0x4e, 0x50, | ||
6936 | 0x80, 0x76, 0x40, 0x21, 0x32, 0x31, 0x46, 0x87, | ||
6937 | 0xed, 0xff, 0xff, 0xe6, 0x6d, 0x47, 0x94, 0xe0, | ||
6938 | 0xd2, 0x86, 0x93, 0xd6, 0xbf, 0x73, 0x51, 0x51, | ||
6939 | 0x37, 0x29, 0x20, 0x23, 0x24, 0x1f, 0x1f, 0x24, | ||
6940 | 0x4a, 0x55, 0x51, 0x36, 0x1b, 0x19, 0x2b, 0x3c, | ||
6941 | 0x34, 0x1a, 0x1d, 0x2b, 0x28, 0x30, 0x3b, 0x35, | ||
6942 | 0x33, 0x30, 0x23, 0x13, 0x13, 0x39, 0x7b, 0xae, | ||
6943 | 0x98, 0xcd, 0xdb, 0xbc, 0xbf, 0xd2, 0x9f, 0x45, | ||
6944 | 0x24, 0x2f, 0x2e, 0x22, 0x20, 0x2d, 0x3a, 0x3e, | ||
6945 | 0x30, 0x34, 0x52, 0x44, 0x48, 0x54, 0x22, 0x0a, | ||
6946 | 0xc7, 0xc6, 0xc5, 0x80, 0x2f, 0x82, 0xcc, 0xd0, | ||
6947 | 0xba, 0xc2, 0xc4, 0xc6, 0xcd, 0xc2, 0xa0, 0xa7, | ||
6948 | 0xcb, 0xaf, 0xa1, 0xd5, 0xd5, 0xc8, 0xc5, 0xcd, | ||
6949 | 0xca, 0xca, 0xcb, 0xcb, 0xcc, 0xcd, 0xce, 0xce, | ||
6950 | 0xcf, 0xcf, 0xd0, 0xd0, 0xd1, 0xd2, 0xd3, 0xd3, | ||
6951 | 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, | ||
6952 | 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, | ||
6953 | 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, | ||
6954 | 0xd1, 0x9c, 0xbc, 0x9b, 0x6b, 0xad, 0x69, 0xc7, | ||
6955 | 0xbc, 0xc4, 0xc8, 0xcb, 0xd6, 0xdb, 0xc5, 0xa5, | ||
6956 | 0x57, 0x81, 0xd1, 0xe6, 0xd7, 0xd3, 0xdc, 0xd3, | ||
6957 | 0xe7, 0xd8, 0xca, 0xca, 0xd4, 0xd8, 0xcf, 0xc4, | ||
6958 | 0xbe, 0xb7, 0xb6, 0xb0, 0xb5, 0xa5, 0x86, 0x93, | ||
6959 | 0x7f, 0x6c, 0x5d, 0x50, 0x60, 0x5f, 0x38, 0x2e, | ||
6960 | 0x65, 0x96, 0x55, 0x25, 0x61, 0x61, 0x46, 0x7d, | ||
6961 | 0x53, 0x57, 0x5b, 0x56, 0x3b, 0x1e, 0x2a, 0x51, | ||
6962 | 0x4e, 0x4f, 0x80, 0x8a, 0xa4, 0xb6, 0xa7, 0xe5, | ||
6963 | 0xec, 0x80, 0x56, 0x6f, 0x74, 0x66, 0x6c, 0x87, | ||
6964 | 0x8a, 0x97, 0xa9, 0x9d, 0x81, 0x84, 0x93, 0x8e, | ||
6965 | 0x5e, 0x7c, 0x8d, 0x39, 0x0e, 0x42, 0x3e, 0x0f, | ||
6966 | 0xab, 0xaf, 0x5a, 0x72, 0x97, 0x7e, 0x9d, 0x9a, | ||
6967 | 0x9d, 0x73, 0xa5, 0xb7, 0xda, 0xdd, 0x84, 0x8c, | ||
6968 | 0x7b, 0x50, 0x32, 0x29, 0x1f, 0x30, 0x76, 0xbe, | ||
6969 | 0x71, 0x6c, 0x6e, 0x5e, 0x7e, 0x97, 0x60, 0x41, | ||
6970 | 0x27, 0x3f, 0x64, 0x50, 0x39, 0x32, 0x38, 0x7a, | ||
6971 | 0x81, 0x76, 0x3e, 0x1b, 0x4e, 0x65, 0x51, 0x77, | ||
6972 | 0x76, 0x68, 0x59, 0x57, 0x62, 0x70, 0x77, 0x78, | ||
6973 | 0x78, 0x79, 0x76, 0x6f, 0x67, 0x67, 0x70, 0x79, | ||
6974 | 0x7b, 0x7a, 0x7a, 0x7f, 0x83, 0x7f, 0x75, 0x6c, | ||
6975 | 0x76, 0x7e, 0x7a, 0x6a, 0x62, 0x6b, 0x74, 0x75, | ||
6976 | 0x5e, 0x5b, 0x58, 0x56, 0x55, 0x53, 0x50, 0x4e, | ||
6977 | 0x3b, 0x3f, 0x26, 0x2a, 0x35, 0x2f, 0x3f, 0x4d, | ||
6978 | 0x4d, 0x38, 0x22, 0x1d, 0x27, 0x2d, 0x25, 0x1a, | ||
6979 | 0x1d, 0x21, 0x31, 0x51, 0x71, 0x7d, 0x71, 0x61, | ||
6980 | 0x6f, 0x60, 0x2c, 0x1f, 0x3e, 0x3c, 0x4a, 0x8d, | ||
6981 | 0xff, 0x87, 0x87, 0xbc, 0xae, 0xb3, 0x86, 0x00, | ||
6982 | 0x2e, 0x35, 0x22, 0x18, 0x1f, 0x0f, 0x11, 0x3d, | ||
6983 | 0x2b, 0x25, 0x2d, 0x3a, 0x2e, 0x1a, 0x26, 0x44, | ||
6984 | 0x26, 0x32, 0x4e, 0x5c, 0x40, 0x15, 0x0f, 0x26, | ||
6985 | 0x3a, 0x1c, 0x1d, 0x2f, 0x28, 0x20, 0x2b, 0x33, | ||
6986 | 0x5b, 0x42, 0x24, 0x13, 0x18, 0x29, 0x39, 0x41, | ||
6987 | 0x31, 0x9c, 0xbd, 0x6f, 0x45, 0x6e, 0x79, 0x4f, | ||
6988 | 0x39, 0x39, 0x30, 0x33, 0x5d, 0x8a, 0x82, 0x5c, | ||
6989 | 0x4c, 0x52, 0x72, 0x61, 0x5e, 0x61, 0x24, 0x06, | ||
6990 | 0xbc, 0xc1, 0xbc, 0x76, 0x2f, 0x87, 0xc8, 0xc7, | ||
6991 | 0xc4, 0xb9, 0xb8, 0xc3, 0xd2, 0xd1, 0xaa, 0x55, | ||
6992 | 0x36, 0x85, 0xb4, 0xd2, 0xbf, 0xc0, 0xc5, 0xc9, | ||
6993 | 0xc8, 0xc8, 0xc9, 0xca, 0xcb, 0xcb, 0xcc, 0xcc, | ||
6994 | 0xcd, 0xcd, 0xce, 0xcf, 0xd0, 0xd0, 0xd1, 0xd1, | ||
6995 | 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, | ||
6996 | 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, | ||
6997 | 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, | ||
6998 | 0xd8, 0xc9, 0x79, 0x6e, 0x66, 0x64, 0x41, 0xba, | ||
6999 | 0xd8, 0xdc, 0xd0, 0xbe, 0xc3, 0xd2, 0xc4, 0xa4, | ||
7000 | 0x50, 0xb6, 0xdf, 0xd3, 0xc8, 0xd2, 0xcf, 0xcb, | ||
7001 | 0xcc, 0xd4, 0xda, 0xd7, 0xcd, 0xc7, 0xc8, 0xcc, | ||
7002 | 0xd6, 0xbf, 0x93, 0x8f, 0x82, 0x59, 0x64, 0x89, | ||
7003 | 0x6b, 0x6f, 0x4b, 0x3f, 0x49, 0x46, 0x3d, 0x26, | ||
7004 | 0x47, 0x46, 0x67, 0x45, 0x3e, 0x56, 0x3d, 0x53, | ||
7005 | 0x5f, 0x65, 0x62, 0x56, 0x61, 0x8c, 0xac, 0xae, | ||
7006 | 0x9d, 0x95, 0xad, 0xaf, 0xb0, 0x9d, 0x89, 0xc1, | ||
7007 | 0xff, 0xbc, 0xa4, 0xcc, 0xc6, 0x9c, 0x8f, 0x8a, | ||
7008 | 0xaa, 0xa8, 0xd2, 0xf2, 0xdd, 0xca, 0xc4, 0xb1, | ||
7009 | 0xb9, 0xb1, 0xcb, 0xac, 0x8d, 0xa2, 0xa6, 0xa6, | ||
7010 | 0xa7, 0xff, 0xe4, 0x7f, 0x2e, 0x45, 0xb5, 0xaa, | ||
7011 | 0x90, 0x66, 0xa9, 0x6b, 0x30, 0x89, 0x8e, 0x5f, | ||
7012 | 0x29, 0x18, 0x20, 0x4e, 0x74, 0x70, 0x60, 0x60, | ||
7013 | 0x2a, 0x13, 0x1e, 0x1f, 0x50, 0x91, 0x6d, 0x33, | ||
7014 | 0x3d, 0x27, 0x25, 0x1e, 0x39, 0x47, 0x24, 0x2e, | ||
7015 | 0x36, 0x50, 0x77, 0x72, 0x58, 0x6b, 0x85, 0x81, | ||
7016 | 0x6f, 0x70, 0x6f, 0x6a, 0x65, 0x67, 0x70, 0x78, | ||
7017 | 0x76, 0x7b, 0x7e, 0x78, 0x6c, 0x63, 0x61, 0x63, | ||
7018 | 0x69, 0x6c, 0x73, 0x7e, 0x84, 0x81, 0x74, 0x69, | ||
7019 | 0x6e, 0x79, 0x7a, 0x6c, 0x63, 0x65, 0x65, 0x61, | ||
7020 | 0x47, 0x49, 0x4b, 0x4d, 0x50, 0x55, 0x5b, 0x60, | ||
7021 | 0x4a, 0x48, 0x3b, 0x3b, 0x39, 0x48, 0x63, 0x53, | ||
7022 | 0x24, 0x26, 0x23, 0x1d, 0x24, 0x48, 0x80, 0xac, | ||
7023 | 0x68, 0x3e, 0x19, 0x20, 0x42, 0x4f, 0x35, 0x12, | ||
7024 | 0x28, 0x26, 0x23, 0x2a, 0x35, 0x2d, 0x29, 0x38, | ||
7025 | 0x66, 0x35, 0x17, 0x2b, 0x4d, 0x51, 0x34, 0x16, | ||
7026 | 0x0d, 0x3c, 0x36, 0x13, 0x17, 0x24, 0x31, 0x4d, | ||
7027 | 0x58, 0x49, 0x47, 0x4d, 0x3d, 0x23, 0x26, 0x3d, | ||
7028 | 0x37, 0x33, 0x34, 0x30, 0x20, 0x19, 0x32, 0x56, | ||
7029 | 0x28, 0x21, 0x1a, 0x25, 0x30, 0x21, 0x22, 0x42, | ||
7030 | 0x28, 0x29, 0x2d, 0x37, 0x3d, 0x37, 0x26, 0x16, | ||
7031 | 0x44, 0x30, 0x28, 0x43, 0x68, 0x69, 0x3c, 0x0c, | ||
7032 | 0x3b, 0x36, 0x23, 0x19, 0x35, 0x54, 0x43, 0x17, | ||
7033 | 0x37, 0x3d, 0x5d, 0x4e, 0x4d, 0x50, 0x15, 0x00, | ||
7034 | 0xb4, 0xbe, 0xb8, 0x72, 0x36, 0x8f, 0xc6, 0xc0, | ||
7035 | 0xc0, 0xc4, 0xc9, 0xbe, 0xb1, 0xba, 0xd3, 0x80, | ||
7036 | 0x63, 0xcb, 0xd3, 0xc5, 0xc5, 0xce, 0xc0, 0xc3, | ||
7037 | 0xc6, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xca, 0xcb, | ||
7038 | 0xcb, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xcf, 0xd0, | ||
7039 | 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, | ||
7040 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, | ||
7041 | 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, | ||
7042 | 0xde, 0xe0, 0x44, 0x3c, 0x75, 0x6d, 0x8c, 0xdc, | ||
7043 | 0xf0, 0xdc, 0xc8, 0xc1, 0xc2, 0xc5, 0xcc, 0xd4, | ||
7044 | 0x7e, 0xda, 0xd1, 0xca, 0xcf, 0xdc, 0xd2, 0xda, | ||
7045 | 0xd2, 0xda, 0xe4, 0xea, 0xea, 0xe3, 0xda, 0xd3, | ||
7046 | 0xd0, 0x95, 0x49, 0x4c, 0x5d, 0x67, 0x86, 0x7d, | ||
7047 | 0x5d, 0x7e, 0x83, 0xa5, 0xb7, 0xae, 0xce, 0xe1, | ||
7048 | 0x6a, 0x7b, 0x9d, 0x53, 0x58, 0xb1, 0xb6, 0xd5, | ||
7049 | 0xc8, 0xbd, 0xc2, 0xcb, 0xcd, 0xd9, 0xd9, 0xc3, | ||
7050 | 0xc8, 0xcd, 0xc2, 0xc9, 0xc5, 0x9b, 0x8a, 0x9c, | ||
7051 | 0x86, 0x6d, 0x62, 0x85, 0x80, 0x69, 0x6d, 0x54, | ||
7052 | 0xa6, 0xab, 0xc0, 0xa5, 0x6e, 0x86, 0xc2, 0xc8, | ||
7053 | 0x77, 0x67, 0x79, 0x61, 0x58, 0x87, 0x9d, 0xa4, | ||
7054 | 0x75, 0x6b, 0x82, 0xac, 0xb3, 0x72, 0x43, 0x68, | ||
7055 | 0x58, 0x19, 0x3d, 0x3b, 0x21, 0x33, 0x2b, 0x31, | ||
7056 | 0x47, 0x42, 0x36, 0x35, 0x36, 0x20, 0x16, 0x2a, | ||
7057 | 0x33, 0x5d, 0xec, 0xff, 0xe9, 0xd7, 0x6a, 0x42, | ||
7058 | 0x21, 0x26, 0x41, 0x62, 0x79, 0x5f, 0x30, 0x30, | ||
7059 | 0x45, 0x3b, 0x2a, 0x4f, 0x74, 0x7e, 0x84, 0x64, | ||
7060 | 0x81, 0x87, 0x89, 0x81, 0x73, 0x6a, 0x6c, 0x71, | ||
7061 | 0x7d, 0x75, 0x6d, 0x6b, 0x6e, 0x6f, 0x6a, 0x64, | ||
7062 | 0x70, 0x6e, 0x6d, 0x73, 0x7b, 0x7e, 0x7b, 0x76, | ||
7063 | 0x6e, 0x7a, 0x7d, 0x6f, 0x64, 0x62, 0x5f, 0x58, | ||
7064 | 0x4d, 0x55, 0x5e, 0x62, 0x60, 0x5e, 0x5e, 0x60, | ||
7065 | 0x4c, 0x4d, 0x40, 0x38, 0x38, 0x58, 0x6a, 0x36, | ||
7066 | 0x32, 0x33, 0x35, 0x39, 0x43, 0x56, 0x6c, 0x7c, | ||
7067 | 0x4a, 0x4d, 0x4a, 0x3a, 0x26, 0x1c, 0x1f, 0x28, | ||
7068 | 0x27, 0x22, 0x2a, 0x28, 0x13, 0x13, 0x1d, 0x16, | ||
7069 | 0x3b, 0x3d, 0x1b, 0x1e, 0x4b, 0x3c, 0x1a, 0x2e, | ||
7070 | 0x3d, 0x25, 0x26, 0x23, 0x0d, 0x18, 0x28, 0x17, | ||
7071 | 0x20, 0x1f, 0x34, 0x5e, 0x78, 0x6d, 0x4c, 0x34, | ||
7072 | 0x17, 0x33, 0x3a, 0x2b, 0x39, 0x67, 0x83, 0x80, | ||
7073 | 0x2a, 0x31, 0x28, 0x24, 0x2b, 0x20, 0x20, 0x3b, | ||
7074 | 0x61, 0x6c, 0x6f, 0x5d, 0x42, 0x36, 0x40, 0x51, | ||
7075 | 0x2b, 0x36, 0x43, 0x42, 0x30, 0x20, 0x23, 0x2f, | ||
7076 | 0x33, 0x3a, 0x32, 0x1c, 0x0e, 0x12, 0x17, 0x17, | ||
7077 | 0x1d, 0x22, 0x43, 0x38, 0x3f, 0x4f, 0x1f, 0x08, | ||
7078 | 0xc1, 0xc8, 0xb3, 0x65, 0x30, 0x94, 0xd1, 0xce, | ||
7079 | 0xb5, 0xbd, 0xbe, 0xc3, 0xcb, 0xc1, 0xd3, 0x6e, | ||
7080 | 0x74, 0xd1, 0xcc, 0xbe, 0xbf, 0xbe, 0xb8, 0xd7, | ||
7081 | 0xc5, 0xc5, 0xc6, 0xc7, 0xc7, 0xc8, 0xc9, 0xc9, | ||
7082 | 0xca, 0xca, 0xcb, 0xcc, 0xcc, 0xcd, 0xce, 0xce, | ||
7083 | 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, | ||
7084 | 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, | ||
7085 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, | ||
7086 | 0xcb, 0xe6, 0x6e, 0x45, 0x7c, 0x7a, 0xb3, 0x9e, | ||
7087 | 0xd2, 0xd5, 0xd4, 0xce, 0xc6, 0xc3, 0xc6, 0xcb, | ||
7088 | 0x9a, 0xef, 0xe1, 0xee, 0xe5, 0xf4, 0xee, 0xeb, | ||
7089 | 0xee, 0xc2, 0x9a, 0x9f, 0xc6, 0xe2, 0xdb, 0xc5, | ||
7090 | 0x69, 0x2d, 0x53, 0xa7, 0x98, 0x7c, 0xb2, 0xea, | ||
7091 | 0xdc, 0xd7, 0xb6, 0xa4, 0xad, 0xb1, 0xab, 0xa3, | ||
7092 | 0x8b, 0xbd, 0x9b, 0x43, 0x71, 0xa7, 0x68, 0x4f, | ||
7093 | 0x7d, 0x92, 0xd4, 0xf4, 0xc3, 0x92, 0x91, 0x9a, | ||
7094 | 0x94, 0xb5, 0x5f, 0x48, 0x89, 0xc4, 0xcf, 0x76, | ||
7095 | 0xa6, 0xcb, 0xd8, 0xea, 0xd0, 0xb0, 0xa1, 0x59, | ||
7096 | 0xa5, 0x86, 0x8e, 0x9b, 0xa3, 0xc6, 0xa7, 0x3b, | ||
7097 | 0x4f, 0x1b, 0x30, 0x42, 0x38, 0x32, 0x28, 0x38, | ||
7098 | 0x46, 0x39, 0x33, 0x35, 0x3e, 0x2a, 0x0b, 0x16, | ||
7099 | 0x22, 0x4f, 0x44, 0x11, 0x19, 0x32, 0x30, 0x3e, | ||
7100 | 0x21, 0x29, 0x21, 0x26, 0x37, 0x2a, 0x20, 0x35, | ||
7101 | 0x3c, 0x24, 0x7f, 0xe9, 0xff, 0x95, 0x11, 0x1d, | ||
7102 | 0x53, 0x6e, 0x4e, 0x2f, 0x3f, 0x54, 0x47, 0x1f, | ||
7103 | 0xb2, 0xb8, 0x49, 0x4a, 0x81, 0x6a, 0x7c, 0x90, | ||
7104 | 0x87, 0x81, 0x79, 0x76, 0x76, 0x72, 0x6a, 0x63, | ||
7105 | 0x70, 0x68, 0x5f, 0x5e, 0x65, 0x6b, 0x6c, 0x6a, | ||
7106 | 0x78, 0x71, 0x69, 0x68, 0x6e, 0x74, 0x75, 0x73, | ||
7107 | 0x71, 0x7a, 0x78, 0x68, 0x5d, 0x5f, 0x61, 0x5d, | ||
7108 | 0x58, 0x5e, 0x63, 0x5e, 0x54, 0x4b, 0x49, 0x4b, | ||
7109 | 0x5b, 0x54, 0x38, 0x30, 0x31, 0x36, 0x42, 0x2d, | ||
7110 | 0x4a, 0x3c, 0x34, 0x41, 0x58, 0x63, 0x58, 0x49, | ||
7111 | 0x0b, 0x3e, 0x6b, 0x67, 0x44, 0x3d, 0x66, 0x96, | ||
7112 | 0x3f, 0x27, 0x26, 0x30, 0x2f, 0x37, 0x3b, 0x2d, | ||
7113 | 0x34, 0x2a, 0x24, 0x2d, 0x32, 0x29, 0x25, 0x2c, | ||
7114 | 0x34, 0x24, 0x35, 0x3a, 0x19, 0x1b, 0x40, 0x4e, | ||
7115 | 0x17, 0x25, 0x3c, 0x59, 0x71, 0x69, 0x38, 0x05, | ||
7116 | 0x2b, 0x4c, 0x58, 0x4e, 0x5a, 0x72, 0x63, 0x38, | ||
7117 | 0x5d, 0x5f, 0x6c, 0x66, 0x53, 0x60, 0x76, 0x71, | ||
7118 | 0x67, 0x54, 0x42, 0x44, 0x53, 0x58, 0x4b, 0x3a, | ||
7119 | 0x1d, 0x3c, 0x3e, 0x1f, 0x15, 0x2a, 0x2b, 0x14, | ||
7120 | 0x2d, 0x2b, 0x28, 0x1f, 0x0c, 0x06, 0x21, 0x44, | ||
7121 | 0x29, 0x29, 0x42, 0x32, 0x3a, 0x51, 0x2a, 0x19, | ||
7122 | 0xba, 0xb6, 0x8f, 0x35, 0x04, 0x75, 0xc0, 0xc7, | ||
7123 | 0xb8, 0xc2, 0xb5, 0xb9, 0xcb, 0xb5, 0xd0, 0x80, | ||
7124 | 0x8a, 0xc6, 0xbe, 0xc1, 0xc7, 0xce, 0xc0, 0xc1, | ||
7125 | 0xc4, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc8, 0xc9, | ||
7126 | 0xc9, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xcd, 0xce, | ||
7127 | 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, | ||
7128 | 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, | ||
7129 | 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, | ||
7130 | 0xd3, 0xf7, 0xb4, 0x57, 0x73, 0x9b, 0xff, 0xc5, | ||
7131 | 0xb1, 0xe5, 0xfb, 0xdb, 0xc0, 0xbc, 0xa3, 0x7a, | ||
7132 | 0x4c, 0xac, 0xaa, 0xa7, 0x65, 0x62, 0x52, 0x2c, | ||
7133 | 0x5d, 0x5f, 0x5a, 0x4d, 0x44, 0x50, 0x6e, 0x89, | ||
7134 | 0x9d, 0xaa, 0xe1, 0xba, 0x92, 0xd2, 0xc3, 0x59, | ||
7135 | 0x73, 0x41, 0x45, 0x7a, 0xc3, 0xd5, 0xae, 0xb4, | ||
7136 | 0x91, 0xba, 0xb3, 0xa8, 0xb5, 0xbb, 0xbd, 0xba, | ||
7137 | 0x9a, 0x88, 0x87, 0x7f, 0x72, 0x8a, 0x99, 0x7f, | ||
7138 | 0x7d, 0x9e, 0x65, 0x93, 0xa6, 0x77, 0xa1, 0x99, | ||
7139 | 0x79, 0xb0, 0xb0, 0xaa, 0x9a, 0xab, 0xce, 0x91, | ||
7140 | 0x8c, 0x59, 0x67, 0x69, 0x26, 0x27, 0x7e, 0xb4, | ||
7141 | 0x72, 0x39, 0x39, 0x33, 0x2b, 0x38, 0x31, 0x35, | ||
7142 | 0x16, 0x1d, 0x2e, 0x45, 0x17, 0x6e, 0xf3, 0x82, | ||
7143 | 0x62, 0x50, 0x38, 0x2b, 0x18, 0x1f, 0x38, 0x23, | ||
7144 | 0x2d, 0x32, 0x20, 0x1e, 0x35, 0x2e, 0x24, 0x3b, | ||
7145 | 0x3d, 0x59, 0x26, 0x52, 0x93, 0x61, 0x36, 0x23, | ||
7146 | 0x26, 0x51, 0x40, 0x3d, 0x44, 0x37, 0x2e, 0x0c, | ||
7147 | 0x73, 0xae, 0x49, 0x32, 0x55, 0x62, 0xa4, 0x9a, | ||
7148 | 0x87, 0x81, 0x7c, 0x7b, 0x7e, 0x81, 0x80, 0x7e, | ||
7149 | 0x7e, 0x81, 0x80, 0x79, 0x70, 0x6b, 0x6f, 0x75, | ||
7150 | 0x6a, 0x63, 0x5b, 0x5a, 0x5d, 0x5e, 0x5b, 0x57, | ||
7151 | 0x73, 0x79, 0x71, 0x5e, 0x55, 0x5d, 0x66, 0x68, | ||
7152 | 0x64, 0x66, 0x63, 0x59, 0x4f, 0x4c, 0x54, 0x5e, | ||
7153 | 0x62, 0x53, 0x35, 0x4a, 0x58, 0x43, 0x62, 0x9a, | ||
7154 | 0xae, 0x99, 0x73, 0x47, 0x2b, 0x2e, 0x4a, 0x65, | ||
7155 | 0x5c, 0x4f, 0x38, 0x1e, 0x0f, 0x14, 0x28, 0x39, | ||
7156 | 0x51, 0x51, 0x52, 0x44, 0x21, 0x11, 0x32, 0x5e, | ||
7157 | 0x6a, 0x46, 0x26, 0x20, 0x23, 0x21, 0x1f, 0x24, | ||
7158 | 0x30, 0x34, 0x1b, 0x1b, 0x44, 0x46, 0x24, 0x1a, | ||
7159 | 0x26, 0x36, 0x35, 0x26, 0x28, 0x3a, 0x39, 0x26, | ||
7160 | 0x36, 0x2a, 0x1f, 0x25, 0x39, 0x46, 0x40, 0x31, | ||
7161 | 0x16, 0x0f, 0x3c, 0x45, 0x24, 0x54, 0x8a, 0x69, | ||
7162 | 0x2d, 0x31, 0x33, 0x32, 0x33, 0x3e, 0x52, 0x63, | ||
7163 | 0x4d, 0x34, 0x1a, 0x0f, 0x17, 0x2a, 0x3f, 0x4d, | ||
7164 | 0x4b, 0x2c, 0x19, 0x1e, 0x1c, 0x15, 0x2c, 0x51, | ||
7165 | 0x39, 0x32, 0x41, 0x27, 0x28, 0x3b, 0x15, 0x06, | ||
7166 | 0xe4, 0xc7, 0x76, 0x25, 0x2f, 0x85, 0xc4, 0xcb, | ||
7167 | 0xc7, 0xbe, 0xc9, 0xc2, 0xad, 0xb6, 0xa8, 0x6d, | ||
7168 | 0x8d, 0xcb, 0xce, 0xc8, 0xd0, 0xc2, 0xbd, 0xc1, | ||
7169 | 0xbd, 0xc8, 0xc8, 0xc8, 0xcd, 0xc4, 0xc0, 0xd0, | ||
7170 | 0xbf, 0xc9, 0xbf, 0xc2, 0xd6, 0xcb, 0xba, 0xc8, | ||
7171 | 0xce, 0xc8, 0xd1, 0xc3, 0xc8, 0xd2, 0xc5, 0xd9, | ||
7172 | 0xd4, 0xd2, 0xd9, 0xd4, 0xc7, 0xd2, 0xda, 0xc9, | ||
7173 | 0xc6, 0xd7, 0xd1, 0xdd, 0xd6, 0xce, 0xe6, 0xdf, | ||
7174 | 0xe9, 0xdd, 0xc0, 0x8b, 0x58, 0x56, 0x83, 0xa9, | ||
7175 | 0x1c, 0x0d, 0x17, 0x3a, 0x4c, 0x53, 0x74, 0xa2, | ||
7176 | 0x9b, 0x9d, 0x83, 0x9a, 0xd5, 0xc8, 0xb4, 0xe1, | ||
7177 | 0xcc, 0xcb, 0xbf, 0xb7, 0xc4, 0xc3, 0x8c, 0x47, | ||
7178 | 0x92, 0xaa, 0xb2, 0x98, 0x6e, 0x4d, 0x36, 0x27, | ||
7179 | 0xa8, 0x9a, 0xbb, 0xb0, 0x58, 0x4a, 0xa1, 0xe2, | ||
7180 | 0xe9, 0xb4, 0x7b, 0x7d, 0x78, 0x9a, 0xbc, 0x65, | ||
7181 | 0x90, 0xb3, 0xaf, 0x9c, 0x9a, 0x8e, 0x95, 0xbf, | ||
7182 | 0xa4, 0xa9, 0x8a, 0x71, 0x81, 0x79, 0x40, 0x0e, | ||
7183 | 0x28, 0x13, 0x36, 0x76, 0x67, 0x19, 0x06, 0x32, | ||
7184 | 0x18, 0x8a, 0xa2, 0x3c, 0x08, 0x3a, 0x4c, 0x1c, | ||
7185 | 0x40, 0x18, 0x4e, 0xbd, 0xaf, 0x30, 0x00, 0x35, | ||
7186 | 0x2f, 0x4c, 0x2a, 0x31, 0x32, 0x4e, 0xcd, 0xff, | ||
7187 | 0xb0, 0x2d, 0x36, 0x42, 0x2f, 0x36, 0x34, 0x66, | ||
7188 | 0x79, 0x26, 0x1a, 0x37, 0x2a, 0x27, 0x2c, 0x10, | ||
7189 | 0x39, 0x37, 0x2a, 0x26, 0x45, 0x67, 0x5b, 0x34, | ||
7190 | 0x36, 0x29, 0x3c, 0x46, 0x32, 0x38, 0x41, 0x28, | ||
7191 | 0x2a, 0x37, 0x42, 0x39, 0x65, 0xa0, 0x91, 0x77, | ||
7192 | 0x78, 0x7a, 0x7a, 0x75, 0x71, 0x73, 0x7c, 0x84, | ||
7193 | 0x87, 0x80, 0x77, 0x75, 0x78, 0x7b, 0x7a, 0x78, | ||
7194 | 0x8b, 0x8b, 0x89, 0x86, 0x80, 0x78, 0x71, 0x6c, | ||
7195 | 0x77, 0x75, 0x71, 0x69, 0x61, 0x5c, 0x5b, 0x5d, | ||
7196 | 0x70, 0x68, 0x5f, 0x5c, 0x5e, 0x61, 0x60, 0x5e, | ||
7197 | 0x42, 0x46, 0x44, 0x37, 0x4f, 0x96, 0xa2, 0x65, | ||
7198 | 0x18, 0x43, 0x60, 0x47, 0x14, 0x06, 0x34, 0x6a, | ||
7199 | 0x59, 0x52, 0x35, 0x17, 0x1f, 0x3f, 0x42, 0x2b, | ||
7200 | 0x55, 0x3d, 0x2c, 0x2b, 0x28, 0x21, 0x24, 0x31, | ||
7201 | 0x31, 0x2e, 0x32, 0x3e, 0x47, 0x3f, 0x24, 0x0d, | ||
7202 | 0x16, 0x29, 0x2c, 0x32, 0x3a, 0x24, 0x11, 0x21, | ||
7203 | 0x5a, 0x38, 0x37, 0x37, 0x14, 0x0d, 0x2b, 0x3b, | ||
7204 | 0x20, 0x22, 0x15, 0x1e, 0x3b, 0x30, 0x17, 0x1c, | ||
7205 | 0x1c, 0x27, 0x24, 0x32, 0x4d, 0x4a, 0x4a, 0x69, | ||
7206 | 0x83, 0x7d, 0x4e, 0x3f, 0x54, 0x34, 0x1c, 0x46, | ||
7207 | 0x47, 0x3e, 0x37, 0x34, 0x2c, 0x25, 0x2c, 0x3a, | ||
7208 | 0x2b, 0x1d, 0x16, 0x19, 0x1b, 0x29, 0x57, 0x88, | ||
7209 | 0x5d, 0x4a, 0x61, 0x64, 0x6d, 0x64, 0x1f, 0x00, | ||
7210 | 0xc9, 0xbf, 0x7a, 0x26, 0x30, 0x8a, 0xbe, 0xb2, | ||
7211 | 0x9f, 0xa0, 0xb8, 0xc0, 0xb7, 0xc8, 0xbd, 0x83, | ||
7212 | 0x90, 0xc8, 0xc4, 0xb7, 0xbc, 0xb6, 0xbe, 0xca, | ||
7213 | 0xc4, 0xb6, 0xc5, 0xcc, 0xb8, 0xbb, 0xcd, 0xc9, | ||
7214 | 0xc6, 0xc3, 0xd6, 0xd7, 0xb6, 0xb3, 0xc9, 0xcd, | ||
7215 | 0xde, 0xe8, 0xd5, 0xcd, 0xde, 0xdb, 0xce, 0xca, | ||
7216 | 0xde, 0xd9, 0xe2, 0xe5, 0xda, 0xe1, 0xec, 0xe6, | ||
7217 | 0xcd, 0xf4, 0xde, 0xa4, 0xa4, 0xaf, 0x9b, 0x96, | ||
7218 | 0x90, 0x43, 0x56, 0x68, 0x3c, 0x6d, 0xaf, 0x81, | ||
7219 | 0xbb, 0xc2, 0xe1, 0xf2, 0xbf, 0x77, 0x72, 0x9f, | ||
7220 | 0x6c, 0xac, 0x87, 0x5e, 0x79, 0x4e, 0x18, 0x43, | ||
7221 | 0x6e, 0x5f, 0x61, 0x71, 0x75, 0x78, 0x9b, 0xc9, | ||
7222 | 0xff, 0xbc, 0x87, 0xad, 0xde, 0xc8, 0x7e, 0x46, | ||
7223 | 0x6a, 0x76, 0x82, 0x9d, 0xc3, 0xc5, 0x9e, 0x7d, | ||
7224 | 0x78, 0xbb, 0xd7, 0xd4, 0x92, 0x67, 0x7b, 0x56, | ||
7225 | 0x27, 0x7b, 0xb5, 0xc0, 0xb4, 0x89, 0x76, 0x94, | ||
7226 | 0x95, 0x5b, 0xb2, 0xdd, 0x6b, 0x5b, 0x92, 0x67, | ||
7227 | 0x7b, 0x54, 0x35, 0x30, 0x2b, 0x23, 0x31, 0x4d, | ||
7228 | 0x3a, 0x64, 0x61, 0x2a, 0x16, 0x38, 0x46, 0x30, | ||
7229 | 0x8a, 0xd0, 0xd3, 0x6e, 0x15, 0x14, 0x35, 0x41, | ||
7230 | 0x4e, 0x39, 0x32, 0x7f, 0xc8, 0xd5, 0xce, 0xae, | ||
7231 | 0x3d, 0x1e, 0x55, 0x51, 0x43, 0x60, 0x3e, 0x23, | ||
7232 | 0x2f, 0x25, 0x3e, 0x51, 0x37, 0x2b, 0x4c, 0x6c, | ||
7233 | 0x69, 0x5c, 0x66, 0x81, 0x7f, 0x58, 0x39, 0x34, | ||
7234 | 0x17, 0x54, 0x6a, 0x57, 0x6c, 0xb0, 0xe9, 0xff, | ||
7235 | 0x63, 0x3a, 0x40, 0x31, 0x2f, 0x73, 0x99, 0x8c, | ||
7236 | 0x77, 0x6f, 0x69, 0x6e, 0x77, 0x79, 0x71, 0x68, | ||
7237 | 0x64, 0x65, 0x69, 0x72, 0x7b, 0x7d, 0x78, 0x72, | ||
7238 | 0x7c, 0x7d, 0x7d, 0x7c, 0x78, 0x73, 0x6d, 0x69, | ||
7239 | 0x80, 0x79, 0x6c, 0x5f, 0x58, 0x58, 0x5f, 0x64, | ||
7240 | 0x5d, 0x56, 0x4e, 0x4c, 0x50, 0x53, 0x53, 0x51, | ||
7241 | 0x56, 0x40, 0x35, 0x3e, 0x55, 0x66, 0x51, 0x27, | ||
7242 | 0x16, 0x2a, 0x3d, 0x3d, 0x2e, 0x22, 0x25, 0x2e, | ||
7243 | 0x2e, 0x31, 0x3a, 0x41, 0x3e, 0x33, 0x2e, 0x31, | ||
7244 | 0x1d, 0x56, 0x7a, 0x5d, 0x28, 0x14, 0x24, 0x38, | ||
7245 | 0x2a, 0x3e, 0x51, 0x51, 0x40, 0x2d, 0x26, 0x26, | ||
7246 | 0x2f, 0x43, 0x2b, 0x0c, 0x1d, 0x3a, 0x48, 0x56, | ||
7247 | 0x55, 0x66, 0x3b, 0x1d, 0x3b, 0x35, 0x17, 0x22, | ||
7248 | 0x20, 0x32, 0x26, 0x1c, 0x33, 0x42, 0x4b, 0x62, | ||
7249 | 0x33, 0x20, 0x12, 0x34, 0x5d, 0x43, 0x17, 0x17, | ||
7250 | 0x18, 0x30, 0x1d, 0x0c, 0x3b, 0x6b, 0x62, 0x47, | ||
7251 | 0x4b, 0x41, 0x31, 0x1d, 0x0c, 0x0c, 0x20, 0x37, | ||
7252 | 0x3a, 0x29, 0x1e, 0x1d, 0x19, 0x21, 0x46, 0x70, | ||
7253 | 0x5a, 0x46, 0x59, 0x58, 0x62, 0x5f, 0x23, 0x0c, | ||
7254 | 0xb3, 0xbe, 0x83, 0x2b, 0x37, 0x9a, 0xc5, 0xa6, | ||
7255 | 0xbb, 0xbc, 0xd3, 0xd5, 0xc1, 0xc3, 0xa9, 0x66, | ||
7256 | 0xa2, 0xcb, 0xc0, 0xb8, 0xc5, 0xc3, 0xc3, 0xbf, | ||
7257 | 0xc8, 0xc0, 0xb7, 0xbf, 0xd3, 0xde, 0xde, 0xdf, | ||
7258 | 0xe3, 0xe5, 0xd9, 0xcf, 0xd8, 0xde, 0xda, 0xd8, | ||
7259 | 0xa7, 0xd2, 0xcc, 0xd3, 0xd6, 0xc8, 0xd4, 0xd0, | ||
7260 | 0x94, 0x8d, 0x7e, 0x75, 0x6e, 0x5d, 0x5b, 0x71, | ||
7261 | 0x73, 0x70, 0x74, 0x6a, 0x81, 0x7d, 0x56, 0x78, | ||
7262 | 0x99, 0x7e, 0xb3, 0xc5, 0x83, 0x91, 0xc0, 0xa0, | ||
7263 | 0xbc, 0xd2, 0xc1, 0x7b, 0x3f, 0x49, 0x8b, 0xc2, | ||
7264 | 0xa0, 0xa0, 0xaa, 0x8d, 0x6d, 0x9f, 0xd7, 0xca, | ||
7265 | 0xfc, 0x9f, 0x58, 0x67, 0x96, 0x9c, 0x7b, 0x5f, | ||
7266 | 0x1e, 0x7d, 0xc0, 0xb1, 0x96, 0x9c, 0x9d, 0x8a, | ||
7267 | 0x95, 0xc6, 0xaf, 0x9d, 0xd3, 0xd8, 0x9c, 0x81, | ||
7268 | 0xa8, 0xbd, 0x86, 0x87, 0xb0, 0xc5, 0xda, 0xc1, | ||
7269 | 0x96, 0xb3, 0xb6, 0xba, 0xcc, 0xb5, 0x90, 0x91, | ||
7270 | 0x5a, 0x3a, 0x1f, 0x29, 0x4f, 0x65, 0x5b, 0x49, | ||
7271 | 0x39, 0x43, 0x45, 0x46, 0x59, 0x6b, 0x59, 0x35, | ||
7272 | 0x52, 0x46, 0x44, 0x4f, 0x55, 0x44, 0x27, 0x12, | ||
7273 | 0x0a, 0x36, 0x35, 0x10, 0x23, 0x66, 0x71, 0x45, | ||
7274 | 0x5a, 0x53, 0x57, 0x3b, 0x2f, 0x3e, 0x3d, 0x4d, | ||
7275 | 0x41, 0x1d, 0x4a, 0x5f, 0x4f, 0x46, 0x32, 0x3e, | ||
7276 | 0x27, 0x24, 0x22, 0x3b, 0x57, 0x41, 0x1f, 0x1e, | ||
7277 | 0x2a, 0x1a, 0x1a, 0x27, 0x20, 0x10, 0x1b, 0x38, | ||
7278 | 0x27, 0x31, 0x20, 0x44, 0x93, 0x87, 0x4d, 0x4d, | ||
7279 | 0x34, 0x2b, 0x22, 0x23, 0x57, 0x7f, 0x73, 0x7f, | ||
7280 | 0x78, 0x7d, 0x82, 0x83, 0x7f, 0x79, 0x73, 0x71, | ||
7281 | 0x78, 0x70, 0x67, 0x64, 0x68, 0x6c, 0x6d, 0x6c, | ||
7282 | 0x67, 0x6a, 0x6e, 0x71, 0x72, 0x71, 0x6e, 0x6c, | ||
7283 | 0x7e, 0x79, 0x72, 0x6b, 0x65, 0x5f, 0x5b, 0x59, | ||
7284 | 0x63, 0x5d, 0x57, 0x56, 0x59, 0x5c, 0x5a, 0x57, | ||
7285 | 0x52, 0x40, 0x31, 0x3e, 0x53, 0x4b, 0x3b, 0x3c, | ||
7286 | 0x53, 0x54, 0x55, 0x54, 0x4d, 0x40, 0x31, 0x27, | ||
7287 | 0x4f, 0x4c, 0x5c, 0x6d, 0x56, 0x2d, 0x2b, 0x47, | ||
7288 | 0x5e, 0x39, 0x1d, 0x26, 0x3c, 0x3d, 0x25, 0x0e, | ||
7289 | 0x39, 0x4a, 0x5a, 0x58, 0x45, 0x34, 0x2e, 0x30, | ||
7290 | 0x3b, 0x23, 0x10, 0x2b, 0x4e, 0x3f, 0x36, 0x57, | ||
7291 | 0x5c, 0x42, 0x30, 0x2b, 0x29, 0x2d, 0x2f, 0x25, | ||
7292 | 0x0a, 0x3d, 0x41, 0x26, 0x2b, 0x36, 0x36, 0x3d, | ||
7293 | 0x36, 0x2b, 0x31, 0x51, 0x4a, 0x18, 0x38, 0xa5, | ||
7294 | 0xa2, 0xb2, 0xd0, 0xc4, 0x89, 0x77, 0x9d, 0xbe, | ||
7295 | 0x21, 0x1e, 0x1c, 0x23, 0x3b, 0x5c, 0x76, 0x82, | ||
7296 | 0x58, 0x45, 0x37, 0x33, 0x2c, 0x2b, 0x43, 0x65, | ||
7297 | 0x85, 0x6a, 0x6f, 0x5f, 0x5c, 0x56, 0x21, 0x11, | ||
7298 | 0x9e, 0xb1, 0x7a, 0x21, 0x33, 0xa1, 0xd2, 0xb0, | ||
7299 | 0xa8, 0xad, 0xca, 0xd3, 0xc4, 0xc8, 0xaf, 0x6c, | ||
7300 | 0x95, 0xc4, 0xc4, 0xbd, 0xbf, 0xbe, 0xc9, 0xcb, | ||
7301 | 0xd0, 0xd7, 0xc5, 0xb9, 0xbb, 0xa0, 0x79, 0x6e, | ||
7302 | 0x5b, 0x31, 0x5a, 0x95, 0x86, 0x6f, 0x64, 0x42, | ||
7303 | 0x1d, 0x31, 0x2e, 0x23, 0x19, 0x3b, 0x7a, 0x88, | ||
7304 | 0x89, 0x79, 0xad, 0xcb, 0x94, 0x85, 0xaf, 0xbc, | ||
7305 | 0xc1, 0x98, 0xb6, 0xe2, 0xd1, 0x97, 0x84, 0xb7, | ||
7306 | 0xcb, 0xa9, 0x6a, 0x71, 0xc6, 0xe5, 0xc8, 0xbd, | ||
7307 | 0x82, 0x65, 0x6d, 0xaf, 0xee, 0xec, 0xb5, 0x83, | ||
7308 | 0x7b, 0x38, 0x44, 0x6f, 0x86, 0xc4, 0xc7, 0x63, | ||
7309 | 0x73, 0xa2, 0xb5, 0x94, 0x79, 0x8f, 0xbb, 0xd6, | ||
7310 | 0xff, 0xac, 0x6f, 0x84, 0x9e, 0x9c, 0xb0, 0xdb, | ||
7311 | 0xd5, 0xbc, 0x77, 0x60, 0x97, 0xae, 0x84, 0x62, | ||
7312 | 0x73, 0xae, 0x74, 0x58, 0x6e, 0x66, 0x79, 0x87, | ||
7313 | 0x61, 0x89, 0x82, 0x5e, 0x4d, 0x49, 0x70, 0xb8, | ||
7314 | 0xc0, 0x5e, 0x41, 0x81, 0x89, 0x43, 0x39, 0x76, | ||
7315 | 0x3a, 0x4e, 0x56, 0x51, 0x58, 0x62, 0x4d, 0x28, | ||
7316 | 0x6c, 0x41, 0x23, 0x29, 0x34, 0x31, 0x32, 0x3c, | ||
7317 | 0x2c, 0x46, 0x5a, 0x52, 0x38, 0x27, 0x28, 0x2f, | ||
7318 | 0x34, 0x47, 0x78, 0x52, 0x59, 0x8b, 0x62, 0x52, | ||
7319 | 0x4a, 0x41, 0x30, 0x25, 0x69, 0xc8, 0xb5, 0x64, | ||
7320 | 0xb0, 0xa3, 0x5a, 0x28, 0x33, 0x23, 0x16, 0x3d, | ||
7321 | 0x4e, 0x5b, 0x53, 0x38, 0x32, 0x41, 0x40, 0x2d, | ||
7322 | 0x4a, 0x5f, 0x32, 0x0f, 0x26, 0x22, 0x28, 0x66, | ||
7323 | 0x8a, 0x79, 0x8d, 0x6e, 0x40, 0x4f, 0x5b, 0x52, | ||
7324 | 0x78, 0x80, 0x87, 0x83, 0x77, 0x6f, 0x6f, 0x73, | ||
7325 | 0x6f, 0x6e, 0x6e, 0x72, 0x76, 0x74, 0x6c, 0x64, | ||
7326 | 0x88, 0x89, 0x8a, 0x8a, 0x87, 0x81, 0x7c, 0x79, | ||
7327 | 0x75, 0x70, 0x6b, 0x6a, 0x6f, 0x73, 0x73, 0x72, | ||
7328 | 0x6b, 0x65, 0x5f, 0x5d, 0x5e, 0x5d, 0x59, 0x54, | ||
7329 | 0x43, 0x40, 0x2b, 0x2d, 0x45, 0x3f, 0x2e, 0x38, | ||
7330 | 0x47, 0x49, 0x45, 0x38, 0x29, 0x27, 0x34, 0x41, | ||
7331 | 0x4d, 0x3f, 0x38, 0x38, 0x30, 0x2a, 0x3e, 0x5d, | ||
7332 | 0x6c, 0x1c, 0x03, 0x3c, 0x52, 0x29, 0x1e, 0x42, | ||
7333 | 0x27, 0x23, 0x26, 0x36, 0x49, 0x4e, 0x42, 0x33, | ||
7334 | 0x0b, 0x28, 0x18, 0x0c, 0x43, 0x7c, 0x7b, 0x67, | ||
7335 | 0x5d, 0x2d, 0x47, 0x6d, 0x42, 0x1b, 0x2b, 0x3a, | ||
7336 | 0x59, 0x8f, 0x89, 0x59, 0x51, 0x53, 0x3a, 0x25, | ||
7337 | 0x6d, 0x63, 0x3c, 0x29, 0x40, 0x57, 0x77, 0xa9, | ||
7338 | 0xc5, 0xc2, 0xf2, 0xe6, 0x74, 0x49, 0x92, 0xd2, | ||
7339 | 0xb1, 0x71, 0x2e, 0x2d, 0x6c, 0x97, 0x73, 0x33, | ||
7340 | 0x40, 0x2c, 0x1f, 0x20, 0x1d, 0x17, 0x25, 0x3e, | ||
7341 | 0x53, 0x3b, 0x43, 0x35, 0x39, 0x41, 0x1e, 0x1d, | ||
7342 | 0xb7, 0xbf, 0x85, 0x33, 0x44, 0xa8, 0xd8, 0xc0, | ||
7343 | 0xb5, 0xb5, 0xcb, 0xcd, 0xb9, 0xbc, 0xa3, 0x61, | ||
7344 | 0xbb, 0xdb, 0xd3, 0xc7, 0xc1, 0xbe, 0xc4, 0xba, | ||
7345 | 0x9e, 0x54, 0x43, 0x61, 0x4e, 0x27, 0x2d, 0x47, | ||
7346 | 0x42, 0x9a, 0x9c, 0x73, 0x8f, 0xa8, 0x93, 0x88, | ||
7347 | 0xa8, 0xbd, 0xa4, 0x84, 0x9a, 0x91, 0x86, 0xce, | ||
7348 | 0xb3, 0xb9, 0xa4, 0x87, 0x94, 0xb6, 0xa9, 0x7a, | ||
7349 | 0x9c, 0xc7, 0xd1, 0xca, 0xbb, 0xb2, 0xa4, 0x74, | ||
7350 | 0x5d, 0x98, 0x9b, 0x9d, 0xc2, 0xae, 0x91, 0xb6, | ||
7351 | 0x95, 0x71, 0x95, 0xdf, 0xc5, 0x6f, 0x82, 0xe7, | ||
7352 | 0x98, 0x95, 0x5f, 0x70, 0xca, 0xc1, 0x8c, 0xa3, | ||
7353 | 0x67, 0x75, 0x67, 0x3d, 0x2c, 0x45, 0x60, 0x67, | ||
7354 | 0x18, 0x33, 0x2c, 0x1a, 0x48, 0xa4, 0xca, 0xb3, | ||
7355 | 0xc6, 0x95, 0x8c, 0x8d, 0x6a, 0x55, 0x55, 0x47, | ||
7356 | 0x53, 0xa3, 0x72, 0x3a, 0x27, 0x17, 0x4e, 0x87, | ||
7357 | 0xb5, 0xa2, 0x69, 0x4a, 0x5e, 0x5a, 0x44, 0x4b, | ||
7358 | 0x3d, 0x2c, 0x3a, 0x68, 0x62, 0x1b, 0x0d, 0x4a, | ||
7359 | 0x46, 0x43, 0x42, 0x40, 0x38, 0x36, 0x46, 0x5a, | ||
7360 | 0x1c, 0x2f, 0x45, 0x52, 0x54, 0x4f, 0x46, 0x3e, | ||
7361 | 0x3e, 0x6a, 0x79, 0x62, 0x62, 0x79, 0x6a, 0x3e, | ||
7362 | 0x5b, 0x3a, 0x4c, 0x34, 0x3f, 0x5d, 0x30, 0x32, | ||
7363 | 0x93, 0x5c, 0x45, 0x81, 0x9d, 0x6b, 0x52, 0x5f, | ||
7364 | 0x9a, 0xff, 0xff, 0xee, 0x9c, 0x2f, 0x00, 0x19, | ||
7365 | 0xac, 0x98, 0x6b, 0x44, 0x49, 0x64, 0x60, 0x44, | ||
7366 | 0x63, 0x73, 0x53, 0x29, 0x27, 0x2a, 0x2a, 0x3a, | ||
7367 | 0x44, 0x5b, 0x2a, 0x23, 0xa7, 0xdb, 0x90, 0x86, | ||
7368 | 0x95, 0x8a, 0x7f, 0x7d, 0x82, 0x84, 0x7f, 0x79, | ||
7369 | 0x7c, 0x79, 0x76, 0x75, 0x71, 0x67, 0x58, 0x4d, | ||
7370 | 0x65, 0x68, 0x6d, 0x72, 0x75, 0x75, 0x74, 0x73, | ||
7371 | 0x9c, 0x86, 0x6a, 0x5b, 0x5e, 0x6c, 0x7a, 0x81, | ||
7372 | 0x7a, 0x75, 0x6e, 0x6b, 0x6a, 0x66, 0x5e, 0x57, | ||
7373 | 0x43, 0x41, 0x31, 0x3a, 0x55, 0x4a, 0x2e, 0x2d, | ||
7374 | 0x19, 0x1a, 0x1b, 0x1b, 0x1f, 0x2a, 0x3b, 0x48, | ||
7375 | 0x39, 0x36, 0x29, 0x24, 0x43, 0x78, 0x97, 0x9b, | ||
7376 | 0x42, 0x24, 0x40, 0x83, 0x7f, 0x3f, 0x37, 0x6b, | ||
7377 | 0x9e, 0x8e, 0x7a, 0x70, 0x68, 0x58, 0x3e, 0x28, | ||
7378 | 0x3b, 0x31, 0x2d, 0x45, 0x53, 0x36, 0x39, 0x70, | ||
7379 | 0x3f, 0x52, 0x5b, 0x74, 0x7b, 0x38, 0x0e, 0x38, | ||
7380 | 0x67, 0x81, 0x5d, 0x26, 0x2f, 0x44, 0x32, 0x1a, | ||
7381 | 0x5c, 0x2e, 0x11, 0x3a, 0x65, 0x4c, 0x3c, 0x63, | ||
7382 | 0x88, 0x87, 0xa4, 0xa3, 0x86, 0x96, 0x87, 0x35, | ||
7383 | 0x4d, 0xb3, 0xff, 0xef, 0xae, 0x89, 0x8a, 0x91, | ||
7384 | 0x31, 0x1e, 0x17, 0x22, 0x27, 0x22, 0x28, 0x38, | ||
7385 | 0x56, 0x3e, 0x45, 0x2f, 0x2a, 0x2f, 0x11, 0x15, | ||
7386 | 0x36, 0x3b, 0x24, 0x0f, 0x3d, 0x9c, 0xd4, 0xd5, | ||
7387 | 0xcb, 0xc1, 0xc7, 0xbb, 0xa1, 0xa5, 0x93, 0x56, | ||
7388 | 0x43, 0x6b, 0x73, 0x68, 0x52, 0x42, 0x44, 0x35, | ||
7389 | 0x70, 0x8b, 0xa7, 0xaa, 0xa0, 0xa7, 0xba, 0xc4, | ||
7390 | 0x9d, 0x94, 0x96, 0xa2, 0xb0, 0xbe, 0xbc, 0xa9, | ||
7391 | 0x81, 0x8e, 0xc2, 0xb2, 0xb4, 0xed, 0xb0, 0x31, | ||
7392 | 0x66, 0x80, 0x9e, 0xc0, 0xc5, 0x89, 0x55, 0x58, | ||
7393 | 0x9f, 0xb4, 0x86, 0x77, 0x6e, 0x4d, 0x6d, 0x99, | ||
7394 | 0x9e, 0x86, 0x8e, 0xb3, 0xce, 0xd2, 0xab, 0x72, | ||
7395 | 0x8f, 0x74, 0x68, 0x81, 0x9f, 0x94, 0x5e, 0x2a, | ||
7396 | 0x07, 0x12, 0x29, 0x7b, 0xcc, 0xab, 0x5f, 0x53, | ||
7397 | 0xa7, 0xb0, 0xc4, 0xc7, 0xa4, 0x83, 0x9a, 0xcc, | ||
7398 | 0xe5, 0xc3, 0xcb, 0xfa, 0xfc, 0xc2, 0x94, 0x90, | ||
7399 | 0x67, 0x5d, 0x99, 0xab, 0x54, 0x35, 0x72, 0x9b, | ||
7400 | 0x52, 0x76, 0x4b, 0x43, 0x4e, 0x3b, 0x32, 0x0a, | ||
7401 | 0x53, 0x71, 0x64, 0x46, 0x3b, 0x2d, 0x36, 0x63, | ||
7402 | 0x3c, 0x6a, 0x43, 0x18, 0x54, 0x85, 0x6a, 0x4d, | ||
7403 | 0x27, 0x1c, 0x2a, 0x47, 0x42, 0x2f, 0x45, 0x75, | ||
7404 | 0xcc, 0xd7, 0xbc, 0x74, 0x37, 0x24, 0x23, 0x1f, | ||
7405 | 0x2b, 0x69, 0x7c, 0x50, 0x3f, 0x66, 0x83, 0x7b, | ||
7406 | 0x4e, 0x2f, 0x43, 0x4f, 0x37, 0x21, 0x44, 0xa4, | ||
7407 | 0x2c, 0x6b, 0x61, 0x64, 0x7e, 0x90, 0xb3, 0xb4, | ||
7408 | 0xdf, 0xea, 0xcd, 0xa6, 0xa5, 0xaa, 0xa8, 0xae, | ||
7409 | 0xc1, 0x73, 0x2c, 0x1e, 0x28, 0x2b, 0x33, 0x42, | ||
7410 | 0x35, 0x49, 0x51, 0x43, 0x3b, 0x3c, 0x2f, 0x19, | ||
7411 | 0x25, 0x26, 0x25, 0x11, 0x3b, 0x8d, 0x9e, 0x93, | ||
7412 | 0x7f, 0x79, 0x71, 0x6c, 0x6c, 0x6e, 0x71, 0x72, | ||
7413 | 0x87, 0x83, 0x7f, 0x81, 0x86, 0x88, 0x85, 0x81, | ||
7414 | 0x74, 0x78, 0x7e, 0x85, 0x89, 0x8b, 0x8b, 0x8a, | ||
7415 | 0x98, 0x82, 0x68, 0x5d, 0x63, 0x6e, 0x74, 0x74, | ||
7416 | 0x63, 0x5f, 0x5a, 0x59, 0x58, 0x53, 0x49, 0x41, | ||
7417 | 0x37, 0x34, 0x30, 0x32, 0x31, 0x21, 0x21, 0x36, | ||
7418 | 0x24, 0x1a, 0x16, 0x24, 0x37, 0x3a, 0x27, 0x12, | ||
7419 | 0x15, 0x22, 0x22, 0x22, 0x45, 0x74, 0x77, 0x5a, | ||
7420 | 0x41, 0x33, 0x35, 0x51, 0x6d, 0x6c, 0x54, 0x3e, | ||
7421 | 0x49, 0x54, 0x5c, 0x54, 0x45, 0x3d, 0x43, 0x4e, | ||
7422 | 0x67, 0xa2, 0x9f, 0x64, 0x3f, 0x31, 0x27, 0x2a, | ||
7423 | 0x52, 0x63, 0x5e, 0x56, 0x6c, 0x81, 0x76, 0x61, | ||
7424 | 0x4c, 0x61, 0x4c, 0x3a, 0x5c, 0x75, 0x64, 0x54, | ||
7425 | 0x44, 0x57, 0x73, 0x8c, 0x73, 0x2f, 0x36, 0x8a, | ||
7426 | 0xb4, 0x69, 0x30, 0x2a, 0x47, 0x69, 0x57, 0x1d, | ||
7427 | 0x16, 0x84, 0xd9, 0xc7, 0x86, 0x58, 0x37, 0x1a, | ||
7428 | 0x3b, 0x28, 0x26, 0x3a, 0x46, 0x42, 0x41, 0x4a, | ||
7429 | 0x7e, 0x69, 0x6c, 0x4b, 0x35, 0x2b, 0x06, 0x08, | ||
7430 | 0x67, 0x57, 0x41, 0x36, 0x3c, 0x47, 0x46, 0x3e, | ||
7431 | 0x45, 0x3a, 0x43, 0x43, 0x3f, 0x60, 0x6b, 0x3f, | ||
7432 | 0x80, 0xb7, 0xcf, 0xc0, 0x9a, 0x90, 0xb0, 0xba, | ||
7433 | 0xc9, 0xa3, 0x85, 0xa6, 0xd6, 0xc2, 0xa0, 0xab, | ||
7434 | 0xd2, 0xbc, 0x93, 0x90, 0xb5, 0xbd, 0xb3, 0xbd, | ||
7435 | 0xad, 0xc0, 0x9c, 0x82, 0x9c, 0x8a, 0x7c, 0xb9, | ||
7436 | 0xd4, 0xba, 0xc8, 0xa6, 0x60, 0x81, 0xa5, 0x68, | ||
7437 | 0x6e, 0x8b, 0x75, 0x73, 0xb5, 0xde, 0xcd, 0xb1, | ||
7438 | 0x99, 0x9b, 0x90, 0x75, 0x62, 0x78, 0xb3, 0xe6, | ||
7439 | 0x8e, 0xbe, 0xc1, 0x91, 0x83, 0xa3, 0xa3, 0x7f, | ||
7440 | 0x6b, 0x7f, 0xe4, 0xe9, 0x6e, 0x69, 0xcf, 0xec, | ||
7441 | 0x8b, 0x93, 0xb2, 0xce, 0xc6, 0xaa, 0xae, 0xc9, | ||
7442 | 0xa1, 0xa0, 0x7c, 0x46, 0x3c, 0x63, 0x83, 0x85, | ||
7443 | 0x21, 0x15, 0x22, 0x42, 0x5f, 0x7f, 0x99, 0xa1, | ||
7444 | 0x60, 0x5d, 0x35, 0x37, 0x44, 0x77, 0xc4, 0xb1, | ||
7445 | 0x6c, 0x63, 0x38, 0x28, 0x44, 0x43, 0x2d, 0x34, | ||
7446 | 0x68, 0x63, 0xba, 0xff, 0xdc, 0xa8, 0x6e, 0x17, | ||
7447 | 0x52, 0x32, 0x28, 0x39, 0x39, 0x2a, 0x3c, 0x64, | ||
7448 | 0x85, 0xa0, 0xa9, 0x8a, 0x61, 0x4b, 0x41, 0x3c, | ||
7449 | 0xa5, 0x6e, 0x28, 0x0e, 0x33, 0x69, 0x7a, 0x6c, | ||
7450 | 0x93, 0x65, 0x28, 0x29, 0x34, 0x4c, 0xa2, 0xe3, | ||
7451 | 0xa2, 0x9e, 0x3d, 0x29, 0x36, 0x23, 0x4b, 0x66, | ||
7452 | 0x39, 0x28, 0x37, 0x6c, 0xb0, 0xd8, 0xa0, 0x37, | ||
7453 | 0x9d, 0x75, 0x5b, 0x5e, 0x54, 0x32, 0x18, 0x16, | ||
7454 | 0x0d, 0x33, 0x38, 0x1b, 0x22, 0x4e, 0x57, 0x39, | ||
7455 | 0x2b, 0x57, 0x67, 0x3b, 0x32, 0x4b, 0x5c, 0x83, | ||
7456 | 0x72, 0x79, 0x7f, 0x7a, 0x70, 0x6d, 0x75, 0x7e, | ||
7457 | 0x78, 0x7b, 0x80, 0x86, 0x85, 0x7a, 0x67, 0x59, | ||
7458 | 0x6d, 0x6d, 0x6b, 0x67, 0x60, 0x57, 0x4f, 0x4b, | ||
7459 | 0x60, 0x58, 0x55, 0x61, 0x74, 0x7d, 0x78, 0x6f, | ||
7460 | 0x61, 0x5f, 0x5e, 0x60, 0x63, 0x60, 0x58, 0x50, | ||
7461 | 0x59, 0x55, 0x4d, 0x39, 0x2a, 0x39, 0x4e, 0x50, | ||
7462 | 0x21, 0x1e, 0x20, 0x2a, 0x33, 0x32, 0x23, 0x16, | ||
7463 | 0x3b, 0x49, 0x57, 0x5e, 0x5f, 0x56, 0x40, 0x2b, | ||
7464 | 0x2b, 0x3e, 0x43, 0x35, 0x2e, 0x37, 0x3a, 0x32, | ||
7465 | 0x2f, 0x3a, 0x43, 0x40, 0x37, 0x37, 0x44, 0x53, | ||
7466 | 0x5b, 0x49, 0x2d, 0x2f, 0x3c, 0x25, 0x15, 0x2c, | ||
7467 | 0x33, 0x2b, 0x33, 0x1d, 0x13, 0x59, 0x7b, 0x3e, | ||
7468 | 0x27, 0x43, 0x48, 0x4f, 0x6c, 0x6e, 0x5e, 0x61, | ||
7469 | 0x28, 0x86, 0x82, 0x25, 0x07, 0x24, 0x27, 0x12, | ||
7470 | 0x3e, 0x2f, 0x35, 0x68, 0x88, 0x59, 0x25, 0x27, | ||
7471 | 0x37, 0x75, 0x87, 0x4d, 0x1f, 0x2b, 0x40, 0x3d, | ||
7472 | 0x28, 0x15, 0x14, 0x2c, 0x3b, 0x34, 0x2b, 0x2d, | ||
7473 | 0x36, 0x2d, 0x44, 0x35, 0x2c, 0x2e, 0x11, 0x19, | ||
7474 | 0xe9, 0xd4, 0xce, 0xdb, 0xd5, 0xb0, 0x8d, 0x81, | ||
7475 | 0xba, 0xa9, 0xaa, 0xa4, 0xa1, 0xc9, 0xdc, 0xb7, | ||
7476 | 0xca, 0xbf, 0x97, 0x7f, 0x7d, 0x94, 0xb0, 0xa1, | ||
7477 | 0x82, 0x8a, 0x91, 0x8b, 0x92, 0xb7, 0xc1, 0xa4, | ||
7478 | 0xa6, 0xa0, 0xb9, 0xbb, 0x88, 0x70, 0x8d, 0xa6, | ||
7479 | 0xb5, 0x9b, 0x75, 0x80, 0x7f, 0x6f, 0x7c, 0x73, | ||
7480 | 0x7c, 0x8a, 0x9f, 0xbb, 0xbe, 0x98, 0x83, 0x97, | ||
7481 | 0xb4, 0xb2, 0xd1, 0xc0, 0x9b, 0x85, 0x77, 0x94, | ||
7482 | 0xa8, 0xf0, 0xc4, 0x97, 0xb6, 0x80, 0x47, 0x85, | ||
7483 | 0xa9, 0x8c, 0x99, 0xaa, 0x69, 0x23, 0x68, 0xf3, | ||
7484 | 0xf8, 0xa3, 0x6a, 0x4c, 0x48, 0x83, 0x91, 0x48, | ||
7485 | 0x64, 0x58, 0x34, 0x12, 0x16, 0x2b, 0x1f, 0x00, | ||
7486 | 0x24, 0x12, 0x0e, 0x25, 0x38, 0x2f, 0x18, 0x07, | ||
7487 | 0x4e, 0x7f, 0x6e, 0x55, 0x76, 0x7a, 0x58, 0x53, | ||
7488 | 0x44, 0x32, 0x21, 0x37, 0x38, 0x6c, 0xb4, 0x7f, | ||
7489 | 0x2e, 0x49, 0x48, 0x4c, 0x64, 0x59, 0x44, 0x51, | ||
7490 | 0x35, 0x54, 0x20, 0x1b, 0x61, 0x41, 0x19, 0x63, | ||
7491 | 0x3b, 0x21, 0x1d, 0x3a, 0x52, 0x53, 0x54, 0x5e, | ||
7492 | 0x2c, 0x31, 0x38, 0x38, 0x2f, 0x2b, 0x38, 0x4a, | ||
7493 | 0x2c, 0x52, 0x53, 0x29, 0x1e, 0x40, 0x4e, 0x3d, | ||
7494 | 0x07, 0x48, 0x3b, 0x50, 0x6e, 0x80, 0x89, 0x34, | ||
7495 | 0x6e, 0xfe, 0xd6, 0x6b, 0x27, 0x33, 0xb6, 0xff, | ||
7496 | 0xff, 0xe7, 0xc9, 0x78, 0x20, 0x34, 0x66, 0x55, | ||
7497 | 0x20, 0x37, 0x3a, 0x26, 0x22, 0x33, 0x36, 0x28, | ||
7498 | 0x27, 0x2e, 0x31, 0x2f, 0x26, 0x23, 0x59, 0xa9, | ||
7499 | 0x97, 0x59, 0x5b, 0x49, 0x2d, 0x60, 0x86, 0x75, | ||
7500 | 0x73, 0x71, 0x73, 0x79, 0x7f, 0x7f, 0x77, 0x6f, | ||
7501 | 0x92, 0x8e, 0x8b, 0x8a, 0x87, 0x7f, 0x71, 0x67, | ||
7502 | 0x68, 0x6a, 0x6e, 0x72, 0x73, 0x71, 0x6f, 0x6d, | ||
7503 | 0x6e, 0x61, 0x57, 0x5a, 0x65, 0x68, 0x5d, 0x50, | ||
7504 | 0x60, 0x60, 0x62, 0x68, 0x6e, 0x6e, 0x68, 0x61, | ||
7505 | 0x53, 0x4b, 0x3e, 0x30, 0x4f, 0x98, 0x9c, 0x57, | ||
7506 | 0x18, 0x30, 0x47, 0x4c, 0x49, 0x59, 0x80, 0xa3, | ||
7507 | 0x3b, 0x40, 0x58, 0x6d, 0x58, 0x2a, 0x19, 0x27, | ||
7508 | 0x2a, 0x3d, 0x5a, 0x66, 0x4c, 0x25, 0x16, 0x20, | ||
7509 | 0x31, 0x25, 0x1e, 0x27, 0x3b, 0x49, 0x49, 0x43, | ||
7510 | 0x48, 0x34, 0x1a, 0x42, 0x9b, 0xa9, 0x5a, 0x14, | ||
7511 | 0x3e, 0x70, 0x72, 0x55, 0x54, 0x4e, 0x38, 0x33, | ||
7512 | 0x1f, 0x2f, 0x27, 0x1f, 0x23, 0x17, 0x1b, 0x40, | ||
7513 | 0x32, 0x42, 0x33, 0x22, 0x24, 0x1b, 0x17, 0x2d, | ||
7514 | 0x15, 0x42, 0x2d, 0x13, 0x33, 0x37, 0x20, 0x2a, | ||
7515 | 0x2a, 0x4b, 0x4e, 0x35, 0x42, 0x69, 0x5d, 0x2b, | ||
7516 | 0x2d, 0x19, 0x18, 0x2f, 0x3e, 0x33, 0x25, 0x22, | ||
7517 | 0x1c, 0x1b, 0x3c, 0x36, 0x32, 0x37, 0x1d, 0x27, | ||
7518 | 0x60, 0x8c, 0xb9, 0xc2, 0xae, 0x9e, 0xa9, 0xbc, | ||
7519 | 0x86, 0x9a, 0xaf, 0xb4, 0xac, 0xa6, 0xaa, 0xb1, | ||
7520 | 0xbe, 0xbf, 0xae, 0x95, 0xad, 0xb0, 0x90, 0xa5, | ||
7521 | 0xad, 0x92, 0x90, 0xa8, 0x9a, 0xbf, 0xbe, 0x92, | ||
7522 | 0x9b, 0x97, 0x85, 0x8d, 0x76, 0x96, 0x97, 0x95, | ||
7523 | 0x89, 0x9c, 0xaa, 0xa4, 0xb1, 0xa3, 0x7f, 0x99, | ||
7524 | 0xb0, 0x93, 0x95, 0x97, 0x91, 0x84, 0x68, 0x96, | ||
7525 | 0xa0, 0x83, 0x92, 0xad, 0xb0, 0x80, 0x47, 0x4f, | ||
7526 | 0x55, 0x93, 0xd4, 0xe3, 0xc4, 0xa7, 0xab, 0xbd, | ||
7527 | 0xaf, 0xba, 0x77, 0x1c, 0x38, 0xa1, 0xa5, 0x52, | ||
7528 | 0x6d, 0x4b, 0x60, 0x6f, 0x46, 0x39, 0x3a, 0x16, | ||
7529 | 0x2a, 0x3f, 0x40, 0x32, 0x3e, 0x60, 0x68, 0x55, | ||
7530 | 0x5f, 0x6d, 0x54, 0x47, 0x5c, 0x50, 0x37, 0x44, | ||
7531 | 0x56, 0x79, 0x8c, 0x6c, 0x39, 0x2a, 0x4f, 0x7b, | ||
7532 | 0x4b, 0x56, 0x63, 0x69, 0x60, 0x4a, 0x31, 0x20, | ||
7533 | 0x33, 0x28, 0x5b, 0x2e, 0x13, 0x46, 0x48, 0x5f, | ||
7534 | 0x43, 0x48, 0x24, 0x16, 0x42, 0x5c, 0x5d, 0x71, | ||
7535 | 0x9b, 0x78, 0x51, 0x32, 0x24, 0x30, 0x3f, 0x3e, | ||
7536 | 0x2f, 0x37, 0x3c, 0x37, 0x39, 0x52, 0x6c, 0x73, | ||
7537 | 0x49, 0x42, 0x22, 0x26, 0x50, 0x4f, 0x3d, 0x4e, | ||
7538 | 0x48, 0x52, 0x44, 0x1f, 0x0b, 0x17, 0x26, 0x29, | ||
7539 | 0x3a, 0x83, 0x98, 0x2c, 0x12, 0xbf, 0xf3, 0x51, | ||
7540 | 0xb7, 0xef, 0xff, 0xd4, 0x69, 0x23, 0x29, 0x4b, | ||
7541 | 0x60, 0x32, 0x14, 0x1c, 0x23, 0x1f, 0x2f, 0x4c, | ||
7542 | 0x45, 0x42, 0x5a, 0x45, 0x22, 0x26, 0x29, 0x2e, | ||
7543 | 0x3f, 0x22, 0x34, 0x3b, 0x1d, 0x3b, 0x72, 0x6b, | ||
7544 | 0x79, 0x73, 0x6e, 0x6f, 0x76, 0x7c, 0x7d, 0x7c, | ||
7545 | 0x8b, 0x88, 0x83, 0x7f, 0x7b, 0x78, 0x78, 0x77, | ||
7546 | 0x70, 0x72, 0x74, 0x73, 0x6f, 0x67, 0x5f, 0x5a, | ||
7547 | 0x67, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, | ||
7548 | 0x64, 0x5f, 0x5b, 0x5d, 0x65, 0x6b, 0x6d, 0x6c, | ||
7549 | 0x59, 0x31, 0x39, 0x81, 0x73, 0x31, 0x33, 0x37, | ||
7550 | 0x20, 0x19, 0x31, 0x41, 0x36, 0x45, 0x5d, 0x56, | ||
7551 | 0x36, 0x1e, 0x1b, 0x2f, 0x32, 0x1d, 0x15, 0x20, | ||
7552 | 0x2c, 0x56, 0x55, 0x28, 0x21, 0x45, 0x46, 0x21, | ||
7553 | 0x79, 0x8b, 0x73, 0x64, 0x78, 0x6a, 0x59, 0x74, | ||
7554 | 0x25, 0x55, 0x6d, 0x59, 0x4b, 0x52, 0x46, 0x28, | ||
7555 | 0x49, 0x51, 0x45, 0x7a, 0xcd, 0x9e, 0x2e, 0x0c, | ||
7556 | 0x2a, 0x21, 0x2c, 0x27, 0x0e, 0x1c, 0x3f, 0x48, | ||
7557 | 0x6c, 0x6d, 0x85, 0x75, 0x41, 0x3f, 0x46, 0x23, | ||
7558 | 0xac, 0x80, 0x52, 0x46, 0x55, 0x5f, 0x54, 0x42, | ||
7559 | 0x45, 0x1e, 0x42, 0x4f, 0x2a, 0x54, 0x69, 0x10, | ||
7560 | 0x32, 0x18, 0x15, 0x31, 0x3f, 0x31, 0x28, 0x2f, | ||
7561 | 0x23, 0x16, 0x20, 0x3d, 0x3f, 0x20, 0x0a, 0x0a, | ||
7562 | 0x67, 0x6f, 0x84, 0xa5, 0xc3, 0xce, 0xc4, 0xb6, | ||
7563 | 0xc0, 0xcf, 0xd4, 0xbe, 0x97, 0x7f, 0x82, 0x8f, | ||
7564 | 0x95, 0x98, 0x8a, 0x9f, 0xa4, 0x82, 0x62, 0x39, | ||
7565 | 0x5f, 0xae, 0xb0, 0xb9, 0xb7, 0x9c, 0x77, 0x8b, | ||
7566 | 0xca, 0xd3, 0x98, 0x8b, 0xa0, 0xb9, 0x94, 0x97, | ||
7567 | 0xae, 0x8f, 0x85, 0xb8, 0xa4, 0x78, 0x9a, 0xa0, | ||
7568 | 0x8b, 0x60, 0xa9, 0xb1, 0xac, 0xbf, 0xab, 0xb9, | ||
7569 | 0x70, 0x60, 0x88, 0x8e, 0x7b, 0x7b, 0x91, 0xd2, | ||
7570 | 0xca, 0xb0, 0x86, 0x5e, 0x4a, 0x51, 0x6a, 0x80, | ||
7571 | 0x72, 0x85, 0x6e, 0x3e, 0x44, 0x7a, 0x8b, 0x70, | ||
7572 | 0x6c, 0x56, 0x4b, 0x34, 0x5f, 0xea, 0xeb, 0x45, | ||
7573 | 0x12, 0x33, 0x4a, 0x42, 0x3a, 0x4b, 0x6b, 0x81, | ||
7574 | 0x22, 0x4e, 0x4f, 0x55, 0x6d, 0x51, 0x69, 0xdb, | ||
7575 | 0x77, 0x77, 0x52, 0x1a, 0x10, 0x32, 0x46, 0x3c, | ||
7576 | 0x43, 0x39, 0x2a, 0x1d, 0x18, 0x1b, 0x23, 0x28, | ||
7577 | 0x28, 0x51, 0x26, 0x26, 0x61, 0x46, 0x14, 0x1d, | ||
7578 | 0x28, 0x2b, 0x54, 0x5a, 0x25, 0x19, 0x3d, 0x4c, | ||
7579 | 0x23, 0x5e, 0xd8, 0xfb, 0x7d, 0x0f, 0x26, 0x65, | ||
7580 | 0x85, 0x55, 0x29, 0x0c, 0x1a, 0x56, 0x59, 0x14, | ||
7581 | 0x24, 0x64, 0x64, 0x29, 0x26, 0x5e, 0x7e, 0x7a, | ||
7582 | 0x2b, 0x3b, 0x3b, 0x2b, 0x29, 0x39, 0x41, 0x39, | ||
7583 | 0x31, 0x2c, 0x34, 0x22, 0x1f, 0x62, 0x6d, 0x17, | ||
7584 | 0x92, 0x6c, 0x35, 0x13, 0x1d, 0x37, 0x38, 0x26, | ||
7585 | 0x4b, 0x30, 0x34, 0x60, 0x81, 0x7b, 0x6d, 0x6b, | ||
7586 | 0xa1, 0x69, 0x2a, 0x11, 0x34, 0x3b, 0x21, 0x3d, | ||
7587 | 0x58, 0x74, 0x72, 0x6c, 0x5d, 0x50, 0x66, 0x7b, | ||
7588 | 0x6b, 0x6b, 0x70, 0x78, 0x7e, 0x7e, 0x77, 0x6f, | ||
7589 | 0x68, 0x63, 0x5c, 0x57, 0x58, 0x5f, 0x67, 0x6d, | ||
7590 | 0x65, 0x68, 0x6d, 0x71, 0x71, 0x6e, 0x6b, 0x68, | ||
7591 | 0x69, 0x69, 0x69, 0x68, 0x68, 0x68, 0x67, 0x67, | ||
7592 | 0x63, 0x5d, 0x57, 0x57, 0x5b, 0x5f, 0x5e, 0x5c, | ||
7593 | 0x3f, 0x3a, 0x4c, 0x4a, 0x2a, 0x1a, 0x2f, 0x52, | ||
7594 | 0x63, 0x4c, 0x4b, 0x42, 0x26, 0x2c, 0x3f, 0x36, | ||
7595 | 0x4f, 0x41, 0x2d, 0x23, 0x2a, 0x34, 0x2f, 0x23, | ||
7596 | 0x56, 0x53, 0x46, 0x43, 0x63, 0x92, 0xa7, 0xa2, | ||
7597 | 0x9a, 0x65, 0x3c, 0x2b, 0x1e, 0x21, 0x39, 0x4e, | ||
7598 | 0x9d, 0x7f, 0x54, 0x2f, 0x1a, 0x1d, 0x32, 0x48, | ||
7599 | 0x43, 0x4b, 0x46, 0x5b, 0x96, 0xaf, 0x86, 0x57, | ||
7600 | 0x18, 0x13, 0x2a, 0x34, 0x23, 0x27, 0x34, 0x29, | ||
7601 | 0x4c, 0x45, 0x38, 0x22, 0x19, 0x2c, 0x35, 0x25, | ||
7602 | 0x30, 0x69, 0x74, 0x45, 0x39, 0x62, 0x6d, 0x4f, | ||
7603 | 0x17, 0x09, 0x17, 0x2b, 0x35, 0x52, 0x5c, 0x3e, | ||
7604 | 0x27, 0x36, 0x50, 0x60, 0x54, 0x37, 0x26, 0x26, | ||
7605 | 0x3f, 0x27, 0x18, 0x1f, 0x29, 0x23, 0x16, 0x0e, | ||
7606 | 0x95, 0x9b, 0xa5, 0xb0, 0xb3, 0xac, 0x9d, 0x91, | ||
7607 | 0x8a, 0x97, 0x9b, 0x8b, 0x74, 0x73, 0x8e, 0xab, | ||
7608 | 0xa4, 0xbb, 0x91, 0x6a, 0x66, 0x7c, 0xa2, 0xa4, | ||
7609 | 0xc5, 0xb5, 0x8d, 0x85, 0x52, 0x60, 0x93, 0x9e, | ||
7610 | 0xa2, 0x93, 0x89, 0xb3, 0xc9, 0xca, 0xac, 0xab, | ||
7611 | 0xc3, 0xa6, 0x9d, 0x96, 0x91, 0xa2, 0xb5, 0xc0, | ||
7612 | 0xa5, 0x89, 0xa9, 0xaf, 0xd4, 0x8a, 0x52, 0x6c, | ||
7613 | 0x7d, 0x56, 0xaa, 0xb4, 0x69, 0x53, 0x45, 0x46, | ||
7614 | 0x5b, 0x2e, 0x01, 0x01, 0x29, 0x51, 0x5f, 0x5b, | ||
7615 | 0x92, 0x9d, 0x86, 0x43, 0x0a, 0x16, 0x61, 0xa6, | ||
7616 | 0x7d, 0x38, 0x56, 0xa3, 0xb0, 0xab, 0x95, 0x59, | ||
7617 | 0xc1, 0x90, 0x60, 0x52, 0x52, 0x4a, 0x3d, 0x36, | ||
7618 | 0x2f, 0x55, 0x33, 0x40, 0xb9, 0xce, 0x4f, 0x00, | ||
7619 | 0x26, 0x4b, 0x48, 0x1a, 0x16, 0x41, 0x50, 0x38, | ||
7620 | 0x40, 0x38, 0x2d, 0x25, 0x25, 0x2d, 0x38, 0x3f, | ||
7621 | 0x3a, 0x6b, 0x54, 0x64, 0x4f, 0x36, 0x4f, 0x02, | ||
7622 | 0x29, 0x1f, 0x22, 0x40, 0x9d, 0xfe, 0xb5, 0x00, | ||
7623 | 0x46, 0xae, 0xff, 0xff, 0x81, 0x74, 0x83, 0x3c, | ||
7624 | 0x00, 0x2a, 0xa8, 0xfd, 0xbd, 0x54, 0x31, 0x36, | ||
7625 | 0x39, 0x39, 0x3d, 0x2d, 0x14, 0x1b, 0x30, 0x30, | ||
7626 | 0x48, 0x58, 0x5e, 0x5b, 0x66, 0x78, 0x74, 0x60, | ||
7627 | 0x41, 0x25, 0x23, 0x38, 0x3a, 0x32, 0x38, 0x43, | ||
7628 | 0x30, 0x16, 0x10, 0x1c, 0x13, 0x01, 0x15, 0x3f, | ||
7629 | 0x49, 0x20, 0x0f, 0x33, 0x60, 0x67, 0x50, 0x3c, | ||
7630 | 0x3d, 0x5c, 0x94, 0x8d, 0x5c, 0x3a, 0x28, 0x39, | ||
7631 | 0x3d, 0x31, 0x19, 0x2f, 0x40, 0x54, 0x7f, 0x71, | ||
7632 | 0x78, 0x74, 0x72, 0x75, 0x7d, 0x82, 0x81, 0x7f, | ||
7633 | 0x79, 0x7b, 0x7f, 0x82, 0x83, 0x81, 0x7e, 0x7c, | ||
7634 | 0x72, 0x74, 0x78, 0x7b, 0x7b, 0x7a, 0x78, 0x76, | ||
7635 | 0x77, 0x76, 0x74, 0x72, 0x70, 0x6e, 0x6c, 0x6b, | ||
7636 | 0x71, 0x6a, 0x62, 0x5f, 0x61, 0x62, 0x60, 0x5d, | ||
7637 | 0x50, 0x37, 0x38, 0x31, 0x4a, 0x5a, 0x2f, 0x2a, | ||
7638 | 0x16, 0x3c, 0x7a, 0x7f, 0x43, 0x2a, 0x3e, 0x45, | ||
7639 | 0x49, 0x70, 0x85, 0x79, 0x73, 0x7a, 0x6a, 0x4b, | ||
7640 | 0x7c, 0x5d, 0x4f, 0x67, 0x80, 0x79, 0x60, 0x4e, | ||
7641 | 0x4a, 0x21, 0x43, 0x73, 0x69, 0x65, 0x62, 0x3c, | ||
7642 | 0x31, 0x2c, 0x25, 0x1c, 0x18, 0x25, 0x43, 0x5f, | ||
7643 | 0x28, 0x28, 0x35, 0x42, 0x53, 0x73, 0x72, 0x4a, | ||
7644 | 0x6c, 0x3f, 0x3a, 0x5f, 0x82, 0x94, 0x75, 0x35, | ||
7645 | 0x1d, 0x6e, 0x52, 0x1d, 0x32, 0x1b, 0x04, 0x40, | ||
7646 | 0x16, 0x2e, 0x41, 0x43, 0x43, 0x44, 0x38, 0x27, | ||
7647 | 0x2d, 0x1a, 0x0f, 0x36, 0x5f, 0x50, 0x4c, 0x7a, | ||
7648 | 0x4c, 0x39, 0x2d, 0x47, 0x7e, 0xa0, 0x88, 0x5c, | ||
7649 | 0x33, 0x2c, 0x22, 0x23, 0x35, 0x40, 0x2f, 0x13, | ||
7650 | 0x75, 0x9c, 0xb8, 0x9e, 0x62, 0x3b, 0x45, 0x61, | ||
7651 | 0x88, 0x82, 0x79, 0x72, 0x76, 0x8a, 0xa6, 0xba, | ||
7652 | 0x97, 0x55, 0x61, 0x9a, 0xba, 0xaf, 0xa5, 0xd1, | ||
7653 | 0xb5, 0xad, 0x89, 0xb4, 0xbc, 0xb9, 0xbc, 0xb6, | ||
7654 | 0xa5, 0xaf, 0xc5, 0xc9, 0xbb, 0xd6, 0xcf, 0x9a, | ||
7655 | 0x7c, 0x9b, 0x8e, 0x6b, 0xa2, 0xb2, 0x62, 0x53, | ||
7656 | 0x94, 0x89, 0x98, 0xa4, 0xa0, 0x4d, 0xa3, 0xc1, | ||
7657 | 0xaf, 0x94, 0xb1, 0x83, 0x6f, 0xb1, 0xb6, 0xad, | ||
7658 | 0x61, 0x46, 0x36, 0x4d, 0x7a, 0x92, 0x83, 0x69, | ||
7659 | 0x50, 0x34, 0x23, 0x43, 0x7e, 0x8d, 0x4e, 0x02, | ||
7660 | 0x21, 0x53, 0x8d, 0xb3, 0xb6, 0x9f, 0x9a, 0xb0, | ||
7661 | 0x30, 0x20, 0x28, 0x43, 0x43, 0x29, 0x25, 0x38, | ||
7662 | 0x34, 0x38, 0x64, 0xb2, 0xcf, 0x94, 0x4e, 0x3b, | ||
7663 | 0x4b, 0x60, 0x5e, 0x42, 0x33, 0x38, 0x31, 0x1c, | ||
7664 | 0x10, 0x1b, 0x2b, 0x39, 0x3d, 0x37, 0x2d, 0x25, | ||
7665 | 0x39, 0x38, 0x48, 0x78, 0x96, 0xe0, 0xe4, 0x36, | ||
7666 | 0x0b, 0x21, 0x1f, 0x49, 0xba, 0xff, 0xf9, 0xed, | ||
7667 | 0x8d, 0x5c, 0x7f, 0x75, 0x13, 0x1b, 0x4d, 0x20, | ||
7668 | 0x74, 0xd8, 0xed, 0x8b, 0x24, 0x07, 0x33, 0x71, | ||
7669 | 0x86, 0x3c, 0x31, 0x4d, 0x2e, 0x08, 0x1c, 0x40, | ||
7670 | 0x27, 0x2f, 0x2b, 0x23, 0x2d, 0x40, 0x3b, 0x26, | ||
7671 | 0x20, 0x38, 0x34, 0x19, 0x07, 0x06, 0x31, 0x71, | ||
7672 | 0x70, 0x4e, 0x2e, 0x27, 0x30, 0x3a, 0x40, 0x45, | ||
7673 | 0x4d, 0x57, 0x5d, 0x52, 0x3d, 0x38, 0x53, 0x73, | ||
7674 | 0x46, 0x5b, 0xae, 0xbc, 0x71, 0x32, 0x1d, 0x2d, | ||
7675 | 0x46, 0x35, 0x1f, 0x38, 0x3c, 0x50, 0x86, 0x6f, | ||
7676 | 0x79, 0x73, 0x6d, 0x6e, 0x76, 0x7e, 0x82, 0x83, | ||
7677 | 0x7b, 0x80, 0x86, 0x87, 0x81, 0x74, 0x66, 0x5c, | ||
7678 | 0x63, 0x65, 0x68, 0x6c, 0x6f, 0x71, 0x73, 0x73, | ||
7679 | 0x6d, 0x6b, 0x69, 0x65, 0x62, 0x5e, 0x5b, 0x5a, | ||
7680 | 0x6a, 0x63, 0x5b, 0x58, 0x59, 0x5a, 0x58, 0x55, | ||
7681 | 0x4d, 0x38, 0x37, 0x50, 0x79, 0x66, 0x22, 0x18, | ||
7682 | 0x25, 0x18, 0x32, 0x53, 0x5c, 0x6e, 0x72, 0x56, | ||
7683 | 0x67, 0x83, 0x85, 0x57, 0x27, 0x1b, 0x26, 0x30, | ||
7684 | 0x67, 0x44, 0x27, 0x2a, 0x36, 0x35, 0x2e, 0x2a, | ||
7685 | 0x3b, 0x20, 0x1c, 0x22, 0x29, 0x4a, 0x56, 0x34, | ||
7686 | 0x1b, 0x4a, 0x60, 0x53, 0x62, 0xa2, 0xda, 0xec, | ||
7687 | 0xd5, 0xae, 0x86, 0x6b, 0x51, 0x42, 0x55, 0x75, | ||
7688 | 0x5e, 0x48, 0x51, 0x61, 0x63, 0x75, 0x80, 0x6d, | ||
7689 | 0x49, 0x59, 0x37, 0x1d, 0x3a, 0x41, 0x2a, 0x28, | ||
7690 | 0x1f, 0x20, 0x2f, 0x46, 0x4b, 0x3d, 0x32, 0x32, | ||
7691 | 0x22, 0x41, 0x31, 0x11, 0x24, 0x41, 0x3e, 0x33, | ||
7692 | 0x2f, 0x45, 0x45, 0x2e, 0x2b, 0x47, 0x5b, 0x59, | ||
7693 | 0x29, 0x38, 0x37, 0x28, 0x2b, 0x33, 0x1e, 0x00, | ||
7694 | 0xb5, 0xad, 0xa8, 0xad, 0xb5, 0xb3, 0xa6, 0x98, | ||
7695 | 0x95, 0x94, 0x9c, 0xaa, 0xad, 0x91, 0x5e, 0x33, | ||
7696 | 0x55, 0x53, 0x7e, 0x84, 0x8a, 0xb2, 0xa4, 0x79, | ||
7697 | 0x53, 0xd5, 0xe3, 0xb8, 0x8f, 0xa4, 0xd1, 0xff, | ||
7698 | 0xcb, 0xbb, 0xb9, 0xaf, 0x9f, 0x92, 0x90, 0x86, | ||
7699 | 0x89, 0xda, 0xc6, 0xbb, 0xd9, 0xd2, 0xcb, 0xc2, | ||
7700 | 0x6b, 0x86, 0x8c, 0x7b, 0x78, 0x3a, 0x7b, 0x54, | ||
7701 | 0x33, 0x6c, 0xa8, 0xab, 0xc4, 0xab, 0x4d, 0x49, | ||
7702 | 0x24, 0x56, 0xa4, 0xe5, 0xf4, 0xc7, 0x78, 0x3c, | ||
7703 | 0x36, 0x2f, 0x20, 0x37, 0x8f, 0xdc, 0xc3, 0x78, | ||
7704 | 0x6d, 0xb0, 0x68, 0x06, 0x19, 0x22, 0x17, 0x44, | ||
7705 | 0x1b, 0x21, 0x4c, 0x86, 0x8d, 0x5c, 0x2f, 0x22, | ||
7706 | 0x44, 0xa0, 0xe4, 0x9d, 0x48, 0x97, 0xff, 0xff, | ||
7707 | 0xa2, 0x5b, 0x26, 0x2e, 0x45, 0x3f, 0x28, 0x1c, | ||
7708 | 0x1f, 0x21, 0x25, 0x2a, 0x30, 0x35, 0x3a, 0x3c, | ||
7709 | 0x3f, 0x4d, 0x5a, 0x25, 0x23, 0x47, 0x36, 0x45, | ||
7710 | 0x2b, 0x43, 0x33, 0x1e, 0x29, 0x47, 0x98, 0xff, | ||
7711 | 0xa5, 0x19, 0x0d, 0x3c, 0x25, 0x45, 0x7d, 0x5e, | ||
7712 | 0x38, 0x52, 0x60, 0xb6, 0xff, 0xc4, 0x5c, 0x73, | ||
7713 | 0xc5, 0x67, 0x2e, 0x3c, 0x48, 0x38, 0x29, 0x25, | ||
7714 | 0x34, 0x39, 0x2e, 0x1c, 0x22, 0x3d, 0x49, 0x42, | ||
7715 | 0x31, 0x5b, 0x55, 0x21, 0x04, 0x12, 0x41, 0x77, | ||
7716 | 0x69, 0x66, 0x3a, 0x0e, 0x31, 0x78, 0x72, 0x33, | ||
7717 | 0x22, 0x2d, 0x33, 0x2f, 0x2c, 0x33, 0x3d, 0x42, | ||
7718 | 0x51, 0xb0, 0xbb, 0x4f, 0x2b, 0x53, 0x55, 0x56, | ||
7719 | 0x71, 0x69, 0x34, 0x31, 0x4c, 0x58, 0x71, 0x78, | ||
7720 | 0x74, 0x75, 0x79, 0x82, 0x8b, 0x8d, 0x87, 0x81, | ||
7721 | 0x81, 0x7d, 0x77, 0x6e, 0x65, 0x5c, 0x56, 0x52, | ||
7722 | 0x62, 0x63, 0x66, 0x6b, 0x71, 0x77, 0x7c, 0x7f, | ||
7723 | 0x70, 0x6e, 0x6b, 0x68, 0x64, 0x61, 0x5e, 0x5d, | ||
7724 | 0x69, 0x62, 0x5a, 0x58, 0x5b, 0x5d, 0x5c, 0x59, | ||
7725 | 0x47, 0x46, 0x31, 0x4a, 0x5b, 0x34, 0x21, 0x29, | ||
7726 | 0x22, 0x14, 0x2b, 0x48, 0x4d, 0x5a, 0x5c, 0x3e, | ||
7727 | 0x4d, 0x45, 0x40, 0x3a, 0x27, 0x1b, 0x32, 0x56, | ||
7728 | 0x2e, 0x31, 0x29, 0x1d, 0x22, 0x36, 0x43, 0x42, | ||
7729 | 0x48, 0x6f, 0x5b, 0x38, 0x56, 0x77, 0x64, 0x47, | ||
7730 | 0xbd, 0xcc, 0xb8, 0x87, 0x75, 0x84, 0x7e, 0x62, | ||
7731 | 0xa6, 0xb8, 0x9d, 0x81, 0x74, 0x41, 0x2f, 0x66, | ||
7732 | 0x3a, 0x13, 0x11, 0x2e, 0x46, 0x59, 0x48, 0x17, | ||
7733 | 0x17, 0x20, 0x8a, 0xad, 0x5d, 0x6c, 0x96, 0x58, | ||
7734 | 0x00, 0x45, 0x63, 0x39, 0x26, 0x51, 0x77, 0x76, | ||
7735 | 0x40, 0x24, 0x28, 0x33, 0x1d, 0x0f, 0x19, 0x1e, | ||
7736 | 0x18, 0x2c, 0x31, 0x27, 0x2f, 0x44, 0x42, 0x2b, | ||
7737 | 0x56, 0x6d, 0x70, 0x56, 0x42, 0x3a, 0x21, 0x00, | ||
7738 | 0x50, 0x79, 0x9b, 0x90, 0x6a, 0x5e, 0x7f, 0xa7, | ||
7739 | 0xcb, 0xb1, 0x93, 0x89, 0x92, 0x9e, 0x9e, 0x99, | ||
7740 | 0x66, 0x89, 0x70, 0x68, 0x7c, 0x76, 0x5f, 0x39, | ||
7741 | 0x23, 0x23, 0x3e, 0x5f, 0x5b, 0x85, 0x71, 0x33, | ||
7742 | 0x10, 0x6a, 0xce, 0xb4, 0x77, 0x71, 0xb4, 0xcb, | ||
7743 | 0xbf, 0x87, 0x97, 0xbf, 0x83, 0x45, 0x74, 0xb5, | ||
7744 | 0xbe, 0x95, 0x52, 0x17, 0x4a, 0x42, 0x3d, 0x32, | ||
7745 | 0x98, 0x76, 0x58, 0x36, 0x2b, 0x35, 0x38, 0x43, | ||
7746 | 0x63, 0x5c, 0x4d, 0x40, 0x4b, 0x78, 0xbb, 0xed, | ||
7747 | 0xc4, 0xfa, 0xf2, 0x90, 0x36, 0x24, 0x31, 0x32, | ||
7748 | 0x13, 0x5b, 0x78, 0xb3, 0xed, 0x86, 0x20, 0x54, | ||
7749 | 0x41, 0x22, 0x1b, 0x40, 0x64, 0x59, 0x26, 0x00, | ||
7750 | 0x26, 0x62, 0xb6, 0x95, 0x14, 0x0d, 0x91, 0xf9, | ||
7751 | 0x64, 0x27, 0x12, 0x39, 0x49, 0x29, 0x1a, 0x2e, | ||
7752 | 0x5a, 0x43, 0x23, 0x0e, 0x12, 0x2e, 0x55, 0x6f, | ||
7753 | 0x98, 0x3a, 0x68, 0x66, 0x41, 0x3e, 0x16, 0x27, | ||
7754 | 0x16, 0x21, 0x3e, 0x38, 0x1c, 0x2e, 0x3b, 0x16, | ||
7755 | 0x3b, 0x21, 0x19, 0x00, 0x1b, 0xaf, 0xeb, 0x82, | ||
7756 | 0x73, 0xa5, 0x6f, 0x54, 0xc6, 0xff, 0xb7, 0x76, | ||
7757 | 0x31, 0x2b, 0x3e, 0x7b, 0x82, 0x26, 0x00, 0x35, | ||
7758 | 0x26, 0x38, 0x37, 0x22, 0x20, 0x3f, 0x5e, 0x6a, | ||
7759 | 0x47, 0x47, 0x42, 0x2e, 0x1a, 0x24, 0x3c, 0x46, | ||
7760 | 0x1e, 0x1d, 0x25, 0x2d, 0x28, 0x29, 0x4c, 0x78, | ||
7761 | 0x5d, 0x53, 0x3b, 0x25, 0x2c, 0x44, 0x4a, 0x3d, | ||
7762 | 0x58, 0x5d, 0x6e, 0x59, 0x40, 0x37, 0x3e, 0x6b, | ||
7763 | 0x55, 0x2e, 0x28, 0x2c, 0x32, 0x5c, 0x7e, 0x7c, | ||
7764 | 0x73, 0x71, 0x72, 0x79, 0x82, 0x87, 0x86, 0x83, | ||
7765 | 0x8e, 0x8d, 0x8a, 0x85, 0x80, 0x7a, 0x75, 0x72, | ||
7766 | 0x8a, 0x87, 0x82, 0x7d, 0x7a, 0x79, 0x7a, 0x7b, | ||
7767 | 0x7f, 0x7e, 0x7c, 0x7a, 0x78, 0x75, 0x74, 0x73, | ||
7768 | 0x73, 0x6c, 0x65, 0x62, 0x65, 0x67, 0x65, 0x62, | ||
7769 | 0x53, 0x56, 0x2b, 0x2d, 0x39, 0x32, 0x40, 0x31, | ||
7770 | 0x20, 0x48, 0x8b, 0x97, 0x62, 0x50, 0x69, 0x73, | ||
7771 | 0x52, 0x35, 0x30, 0x4a, 0x4f, 0x32, 0x1f, 0x24, | ||
7772 | 0x1d, 0x34, 0x42, 0x3d, 0x3b, 0x44, 0x46, 0x3e, | ||
7773 | 0x1b, 0x72, 0x82, 0x6e, 0x87, 0x7b, 0x3d, 0x1f, | ||
7774 | 0x34, 0x2c, 0x36, 0x5d, 0x7e, 0x73, 0x40, 0x12, | ||
7775 | 0x53, 0x8e, 0x6c, 0x31, 0x3b, 0x3c, 0x45, 0x81, | ||
7776 | 0x3a, 0x26, 0x22, 0x1a, 0x13, 0x4c, 0xa6, 0xd3, | ||
7777 | 0xa4, 0x7b, 0x4e, 0x22, 0x11, 0x36, 0x57, 0x4c, | ||
7778 | 0x2d, 0x40, 0x39, 0x17, 0x12, 0x34, 0x52, 0x56, | ||
7779 | 0x48, 0x35, 0x4d, 0x63, 0x47, 0x33, 0x3c, 0x3f, | ||
7780 | 0x05, 0x16, 0x23, 0x26, 0x2a, 0x2f, 0x29, 0x1d, | ||
7781 | 0x3a, 0x55, 0x71, 0x7d, 0x78, 0x5d, 0x2d, 0x03, | ||
7782 | 0xd9, 0xae, 0x8b, 0x94, 0xb8, 0xc4, 0xa5, 0x7f, | ||
7783 | 0x6b, 0x8f, 0xba, 0xd0, 0xcc, 0xbf, 0xb7, 0xb7, | ||
7784 | 0xba, 0xdb, 0xca, 0xcd, 0xd1, 0xb1, 0xb3, 0xc8, | ||
7785 | 0xbe, 0x6d, 0x85, 0xb7, 0x7e, 0x44, 0x13, 0x2d, | ||
7786 | 0x39, 0x22, 0x3a, 0x33, 0x25, 0x1d, 0x68, 0x9a, | ||
7787 | 0x46, 0x1e, 0x56, 0x5f, 0x48, 0x69, 0x5e, 0x39, | ||
7788 | 0x64, 0x31, 0x45, 0x5c, 0x59, 0x4d, 0x44, 0x32, | ||
7789 | 0x34, 0x35, 0x3f, 0x40, 0x3f, 0x83, 0xa2, 0x45, | ||
7790 | 0x8a, 0x70, 0x45, 0x1f, 0x1c, 0x49, 0x94, 0xcd, | ||
7791 | 0xc6, 0x9e, 0x62, 0x30, 0x1b, 0x23, 0x35, 0x41, | ||
7792 | 0x80, 0x95, 0xa5, 0xb9, 0xb5, 0x77, 0x47, 0x54, | ||
7793 | 0x43, 0x40, 0x2f, 0x19, 0x14, 0x1d, 0x1e, 0x15, | ||
7794 | 0x9f, 0xe3, 0xcd, 0xa1, 0xdd, 0xff, 0xdc, 0x95, | ||
7795 | 0x25, 0x23, 0x38, 0x4f, 0x39, 0x08, 0x00, 0x17, | ||
7796 | 0x44, 0x39, 0x2a, 0x20, 0x21, 0x2d, 0x3e, 0x4a, | ||
7797 | 0x47, 0x18, 0x78, 0x82, 0x0c, 0x4d, 0xf2, 0xff, | ||
7798 | 0x98, 0xb6, 0xfb, 0xf8, 0x84, 0x23, 0x0f, 0x0f, | ||
7799 | 0x1e, 0x37, 0x42, 0x1c, 0x17, 0x78, 0xbe, 0xa4, | ||
7800 | 0x50, 0x4f, 0x3a, 0x10, 0x00, 0x18, 0x28, 0x17, | ||
7801 | 0x34, 0x1b, 0x10, 0x94, 0xff, 0xcd, 0x2a, 0x1b, | ||
7802 | 0x29, 0x4f, 0x60, 0x48, 0x34, 0x43, 0x64, 0x78, | ||
7803 | 0x61, 0x50, 0x5d, 0x53, 0x3c, 0x6a, 0x99, 0x80, | ||
7804 | 0x7f, 0x3a, 0x1f, 0x40, 0x47, 0x30, 0x4d, 0x8f, | ||
7805 | 0x5b, 0x75, 0x6e, 0x3b, 0x18, 0x28, 0x4b, 0x5e, | ||
7806 | 0x8b, 0x3b, 0x39, 0x58, 0x6a, 0x73, 0x4f, 0x28, | ||
7807 | 0x39, 0x2b, 0xa1, 0xa9, 0x4b, 0x5b, 0x81, 0x7a, | ||
7808 | 0x68, 0x61, 0x5c, 0x5e, 0x68, 0x72, 0x78, 0x7a, | ||
7809 | 0x81, 0x83, 0x85, 0x85, 0x82, 0x7d, 0x78, 0x74, | ||
7810 | 0x8d, 0x88, 0x7f, 0x75, 0x6e, 0x6b, 0x6b, 0x6b, | ||
7811 | 0x74, 0x74, 0x74, 0x74, 0x73, 0x73, 0x73, 0x73, | ||
7812 | 0x74, 0x6c, 0x63, 0x5e, 0x5e, 0x5d, 0x59, 0x55, | ||
7813 | 0x4e, 0x50, 0x43, 0x33, 0x31, 0x49, 0x56, 0x3f, | ||
7814 | 0x2f, 0x1d, 0x25, 0x29, 0x1a, 0x2c, 0x49, 0x45, | ||
7815 | 0x23, 0x26, 0x2d, 0x30, 0x29, 0x1d, 0x1c, 0x23, | ||
7816 | 0x3d, 0x23, 0x17, 0x26, 0x3a, 0x48, 0x5e, 0x76, | ||
7817 | 0x66, 0x72, 0x6f, 0x5b, 0x40, 0x26, 0x27, 0x3d, | ||
7818 | 0x48, 0x3d, 0x3e, 0x56, 0x69, 0x5e, 0x36, 0x13, | ||
7819 | 0x25, 0x5a, 0x58, 0x32, 0x28, 0x24, 0x2a, 0x47, | ||
7820 | 0x4e, 0x2b, 0x1f, 0x1d, 0x14, 0x24, 0x30, 0x1e, | ||
7821 | 0x4d, 0x79, 0x3b, 0x00, 0x17, 0x2e, 0x4b, 0x9e, | ||
7822 | 0x6f, 0x36, 0x07, 0x07, 0x18, 0x1b, 0x16, 0x15, | ||
7823 | 0x6d, 0xfa, 0xff, 0xa7, 0xaa, 0xf6, 0xe1, 0x8a, | ||
7824 | 0x27, 0x12, 0x21, 0x6d, 0xc1, 0xdc, 0xbb, 0x93, | ||
7825 | 0x35, 0x23, 0x25, 0x48, 0x61, 0x4d, 0x17, 0x00, | ||
7826 | 0x67, 0x87, 0x99, 0x7f, 0x4e, 0x3a, 0x55, 0x7a, | ||
7827 | 0x6b, 0x82, 0x87, 0x5e, 0x27, 0x1a, 0x46, 0x79, | ||
7828 | 0x5b, 0x18, 0x44, 0x6e, 0x6d, 0x98, 0xa7, 0x83, | ||
7829 | 0x34, 0x26, 0x6e, 0x6d, 0x26, 0x3b, 0x31, 0x3e, | ||
7830 | 0x6d, 0x50, 0x28, 0x1e, 0x61, 0x3b, 0x30, 0x58, | ||
7831 | 0x50, 0x43, 0x30, 0x40, 0x42, 0x37, 0x3e, 0x2f, | ||
7832 | 0x3c, 0x47, 0x29, 0x3b, 0x42, 0x3f, 0x53, 0x60, | ||
7833 | 0x60, 0x56, 0x28, 0x35, 0x3e, 0x31, 0x3f, 0x27, | ||
7834 | 0x3b, 0x37, 0x30, 0x28, 0x25, 0x28, 0x30, 0x37, | ||
7835 | 0x0f, 0x03, 0x3d, 0xb4, 0xf4, 0xcb, 0x85, 0x64, | ||
7836 | 0x91, 0x35, 0x16, 0x21, 0x15, 0x2a, 0x4c, 0x40, | ||
7837 | 0x3c, 0x3c, 0x31, 0x33, 0x58, 0x77, 0x56, 0x1b, | ||
7838 | 0x62, 0xb9, 0x64, 0x12, 0x5b, 0x57, 0x17, 0x3e, | ||
7839 | 0x19, 0x0e, 0x0a, 0x17, 0x2d, 0x3a, 0x3d, 0x3c, | ||
7840 | 0x2d, 0x49, 0x70, 0x8c, 0x8a, 0x6d, 0x44, 0x27, | ||
7841 | 0x03, 0xaa, 0xff, 0xff, 0xb7, 0xae, 0xed, 0xa8, | ||
7842 | 0x75, 0xa3, 0x73, 0x17, 0x0e, 0x2d, 0x34, 0x34, | ||
7843 | 0x69, 0x43, 0x1f, 0x19, 0x3a, 0x63, 0x5a, 0x2e, | ||
7844 | 0x30, 0x45, 0x85, 0x80, 0x70, 0xe1, 0xff, 0x8b, | ||
7845 | 0x5d, 0xe4, 0xdf, 0xb8, 0xdc, 0x8e, 0x16, 0x21, | ||
7846 | 0x3d, 0x71, 0x8e, 0x71, 0x47, 0x42, 0x58, 0x6b, | ||
7847 | 0x2c, 0x39, 0x5a, 0x33, 0x0b, 0x78, 0xdd, 0xb8, | ||
7848 | 0xac, 0xc1, 0xb3, 0x8d, 0x8b, 0x9a, 0x74, 0x31, | ||
7849 | 0x48, 0x30, 0x15, 0x24, 0x67, 0x92, 0x61, 0x0e, | ||
7850 | 0x24, 0x1f, 0x23, 0x1f, 0x2e, 0x30, 0x21, 0x3e, | ||
7851 | 0x57, 0x62, 0xe5, 0xd5, 0x6e, 0x61, 0x57, 0x66, | ||
7852 | 0x6e, 0x6f, 0x72, 0x7b, 0x85, 0x89, 0x87, 0x82, | ||
7853 | 0x92, 0x8b, 0x80, 0x77, 0x74, 0x77, 0x7d, 0x82, | ||
7854 | 0x75, 0x73, 0x71, 0x71, 0x74, 0x7b, 0x83, 0x88, | ||
7855 | 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7a, | ||
7856 | 0x84, 0x7b, 0x70, 0x68, 0x65, 0x62, 0x5c, 0x57, | ||
7857 | 0x56, 0x34, 0x3a, 0x2d, 0x37, 0x65, 0x5a, 0x3d, | ||
7858 | 0x2d, 0x21, 0x2f, 0x31, 0x18, 0x1b, 0x28, 0x1b, | ||
7859 | 0x56, 0xab, 0xe8, 0xca, 0x84, 0x56, 0x45, 0x3e, | ||
7860 | 0x57, 0x1d, 0x13, 0x4c, 0x6c, 0x57, 0x4f, 0x65, | ||
7861 | 0x1a, 0x0e, 0x59, 0x9b, 0x66, 0x28, 0x30, 0x45, | ||
7862 | 0x39, 0x60, 0x6c, 0x51, 0x45, 0x56, 0x55, 0x3e, | ||
7863 | 0x32, 0x2b, 0x39, 0x40, 0x2b, 0x2b, 0x59, 0x87, | ||
7864 | 0x91, 0x62, 0x3f, 0x21, 0x07, 0x19, 0x3a, 0x3c, | ||
7865 | 0x1b, 0x17, 0x1d, 0x15, 0x0f, 0x39, 0x62, 0x5d, | ||
7866 | 0x4e, 0x5b, 0x43, 0x14, 0x13, 0x3b, 0x44, 0x2a, | ||
7867 | 0x74, 0xe4, 0xe0, 0xb5, 0xd7, 0xc4, 0x8b, 0x98, | ||
7868 | 0x0f, 0x48, 0xaf, 0xff, 0xff, 0xff, 0xe9, 0xed, | ||
7869 | 0xca, 0x68, 0x15, 0x15, 0x38, 0x3b, 0x21, 0x0c, | ||
7870 | 0x4c, 0x32, 0x13, 0x31, 0x64, 0x51, 0x3e, 0x66, | ||
7871 | 0x5f, 0x27, 0x00, 0x24, 0x71, 0x95, 0x6f, 0x36, | ||
7872 | 0x1f, 0x31, 0x67, 0x9f, 0x93, 0x4a, 0x0f, 0x00, | ||
7873 | 0x00, 0x3c, 0x60, 0x61, 0x80, 0xb5, 0xb1, 0x82, | ||
7874 | 0x68, 0xc6, 0x4e, 0x28, 0x63, 0x40, 0x49, 0x68, | ||
7875 | 0x45, 0x64, 0x4e, 0x3b, 0x52, 0x49, 0x3f, 0x67, | ||
7876 | 0x7e, 0x5f, 0x3f, 0x3b, 0x52, 0x70, 0x80, 0x84, | ||
7877 | 0x3a, 0x40, 0x17, 0x0e, 0x2e, 0x11, 0x00, 0x2b, | ||
7878 | 0x38, 0x36, 0x31, 0x35, 0x46, 0x4e, 0x3b, 0x1f, | ||
7879 | 0x03, 0x54, 0x84, 0xca, 0xbd, 0x58, 0x39, 0x33, | ||
7880 | 0x17, 0x42, 0x6c, 0x6f, 0x53, 0x3d, 0x44, 0x56, | ||
7881 | 0x48, 0x65, 0x2e, 0x2c, 0x8e, 0x8c, 0x55, 0x73, | ||
7882 | 0x29, 0x3e, 0x3f, 0x44, 0x53, 0x42, 0x25, 0x24, | ||
7883 | 0x36, 0x1d, 0x39, 0x3c, 0x17, 0x41, 0x7e, 0x6f, | ||
7884 | 0x41, 0x73, 0x93, 0x6e, 0x28, 0x0f, 0x40, 0x7e, | ||
7885 | 0x78, 0x49, 0x92, 0xf7, 0xd8, 0x89, 0x62, 0x4a, | ||
7886 | 0x38, 0x69, 0x6a, 0x2c, 0x0b, 0x20, 0x25, 0x0b, | ||
7887 | 0x5a, 0x5e, 0x64, 0x68, 0x64, 0x55, 0x40, 0x31, | ||
7888 | 0x38, 0x2e, 0x73, 0xfc, 0xfb, 0xfc, 0xff, 0x9a, | ||
7889 | 0xa1, 0x94, 0x5a, 0x40, 0x83, 0xc2, 0x9b, 0x51, | ||
7890 | 0x30, 0x2b, 0x24, 0x1f, 0x1f, 0x24, 0x2b, 0x30, | ||
7891 | 0x4e, 0x0b, 0x0d, 0x33, 0x2d, 0x2c, 0x38, 0x2b, | ||
7892 | 0xb9, 0x84, 0x4b, 0x3a, 0x4a, 0x55, 0x44, 0x2b, | ||
7893 | 0x31, 0x1a, 0x1f, 0x4b, 0x67, 0x55, 0x33, 0x21, | ||
7894 | 0x75, 0x79, 0x5d, 0x3e, 0x37, 0x2b, 0x23, 0x2f, | ||
7895 | 0x35, 0x3a, 0x35, 0x0e, 0x31, 0x6e, 0x66, 0x6b, | ||
7896 | 0x5c, 0x64, 0x6f, 0x75, 0x76, 0x74, 0x72, 0x71, | ||
7897 | 0x8c, 0x8d, 0x84, 0x75, 0x72, 0x77, 0x74, 0x6a, | ||
7898 | 0x6a, 0x73, 0x7f, 0x8a, 0x8f, 0x8c, 0x85, 0x80, | ||
7899 | 0x76, 0x7b, 0x7e, 0x78, 0x6c, 0x66, 0x69, 0x6e, | ||
7900 | 0x72, 0x6d, 0x66, 0x60, 0x5e, 0x5f, 0x62, 0x65, | ||
7901 | 0x47, 0x3a, 0x39, 0x39, 0x2c, 0x27, 0x36, 0x43, | ||
7902 | 0x3b, 0x49, 0x35, 0x29, 0x75, 0xd9, 0xce, 0x7b, | ||
7903 | 0xae, 0x8f, 0x77, 0x6c, 0x54, 0x3a, 0x41, 0x5e, | ||
7904 | 0x55, 0x78, 0x9f, 0x93, 0x6a, 0x5c, 0x45, 0x14, | ||
7905 | 0x60, 0x7f, 0x80, 0x77, 0x72, 0x52, 0x46, 0x6b, | ||
7906 | 0x94, 0x76, 0x4f, 0x39, 0x37, 0x3e, 0x42, 0x41, | ||
7907 | 0x2e, 0x41, 0x53, 0x4c, 0x2b, 0x11, 0x1b, 0x35, | ||
7908 | 0x0f, 0x36, 0x41, 0x22, 0x11, 0x24, 0x2f, 0x24, | ||
7909 | 0x1c, 0x39, 0x30, 0x21, 0x2a, 0x1e, 0x19, 0x39, | ||
7910 | 0x68, 0x4a, 0x29, 0x24, 0x23, 0x1b, 0x49, 0x9e, | ||
7911 | 0xf1, 0xef, 0xd7, 0xd4, 0xd3, 0xd1, 0xe5, 0xe4, | ||
7912 | 0xaf, 0xb3, 0xd1, 0xf0, 0xe9, 0xd7, 0xf7, 0xff, | ||
7913 | 0xf0, 0xcb, 0xd9, 0xb1, 0x6b, 0x28, 0x00, 0x18, | ||
7914 | 0x6d, 0x96, 0xb8, 0xe5, 0xfc, 0xa8, 0x34, 0x0b, | ||
7915 | 0x37, 0x3f, 0x4b, 0x5a, 0x6a, 0x79, 0x85, 0x8d, | ||
7916 | 0x35, 0x42, 0x49, 0x5b, 0x93, 0xc7, 0xba, 0x89, | ||
7917 | 0x7a, 0x3c, 0x19, 0x3e, 0x6d, 0x68, 0x3b, 0x16, | ||
7918 | 0x33, 0x66, 0x54, 0x56, 0x5d, 0x40, 0x45, 0x53, | ||
7919 | 0xae, 0x71, 0x65, 0x67, 0x50, 0x58, 0x54, 0x1c, | ||
7920 | 0x2c, 0x2e, 0x37, 0x47, 0x53, 0x51, 0x40, 0x30, | ||
7921 | 0x31, 0x32, 0x2f, 0x1c, 0x15, 0x31, 0x42, 0x31, | ||
7922 | 0x20, 0x1f, 0x1c, 0x1a, 0x20, 0x2a, 0x2c, 0x29, | ||
7923 | 0x41, 0x36, 0x5a, 0xab, 0x69, 0x03, 0x37, 0x69, | ||
7924 | 0x2a, 0x3b, 0x4c, 0x50, 0x45, 0x39, 0x35, 0x36, | ||
7925 | 0x3e, 0x3e, 0x29, 0x2d, 0x4e, 0x3d, 0x0a, 0x00, | ||
7926 | 0x26, 0x3b, 0x38, 0x32, 0x39, 0x2c, 0x20, 0x2e, | ||
7927 | 0x18, 0x40, 0x5c, 0x30, 0x0c, 0x4c, 0x7d, 0x57, | ||
7928 | 0x2f, 0x33, 0x33, 0x33, 0x47, 0x80, 0xd1, 0xff, | ||
7929 | 0xe4, 0x78, 0x87, 0xd9, 0xb7, 0x78, 0xa5, 0xf4, | ||
7930 | 0xa3, 0x5e, 0x38, 0x4b, 0x4d, 0x2a, 0x21, 0x39, | ||
7931 | 0x33, 0x58, 0x7f, 0x84, 0x63, 0x37, 0x17, 0x0b, | ||
7932 | 0x13, 0x0a, 0x8b, 0xfc, 0xf8, 0xf7, 0xff, 0xff, | ||
7933 | 0xff, 0xbd, 0x6e, 0x55, 0x68, 0x65, 0x41, 0x24, | ||
7934 | 0x1a, 0x26, 0x37, 0x43, 0x42, 0x35, 0x23, 0x16, | ||
7935 | 0x21, 0x40, 0x3b, 0x31, 0x31, 0x0a, 0x00, 0x1f, | ||
7936 | 0x95, 0x6d, 0x3f, 0x2b, 0x30, 0x36, 0x2d, 0x1f, | ||
7937 | 0x1c, 0x26, 0x37, 0x3b, 0x26, 0x25, 0x61, 0xa9, | ||
7938 | 0x8e, 0x4b, 0x2c, 0x2b, 0x12, 0x06, 0x2a, 0x50, | ||
7939 | 0x7c, 0x55, 0x5f, 0x4d, 0x3f, 0x65, 0x6d, 0x62, | ||
7940 | 0x5d, 0x63, 0x6b, 0x70, 0x6f, 0x6b, 0x66, 0x63, | ||
7941 | 0x7e, 0x82, 0x7d, 0x71, 0x71, 0x7a, 0x7b, 0x73, | ||
7942 | 0x75, 0x75, 0x75, 0x73, 0x71, 0x6e, 0x6c, 0x6a, | ||
7943 | 0x80, 0x84, 0x86, 0x81, 0x77, 0x72, 0x74, 0x79, | ||
7944 | 0x83, 0x7d, 0x72, 0x67, 0x5e, 0x58, 0x56, 0x56, | ||
7945 | 0x47, 0x49, 0x46, 0x30, 0x1c, 0x2d, 0x46, 0x49, | ||
7946 | 0x80, 0x4d, 0x45, 0x75, 0x82, 0x54, 0x35, 0x3e, | ||
7947 | 0x2c, 0x24, 0x1c, 0x34, 0x77, 0xab, 0x94, 0x5c, | ||
7948 | 0x47, 0x44, 0x52, 0x72, 0x7a, 0x58, 0x42, 0x50, | ||
7949 | 0x6c, 0x6c, 0x48, 0x35, 0x4a, 0x4f, 0x58, 0x7f, | ||
7950 | 0x74, 0x5f, 0x46, 0x38, 0x33, 0x2c, 0x1e, 0x10, | ||
7951 | 0x4e, 0x42, 0x20, 0x05, 0x19, 0x39, 0x29, 0x00, | ||
7952 | 0x1f, 0x3a, 0x41, 0x31, 0x35, 0x50, 0x57, 0x48, | ||
7953 | 0x69, 0x28, 0x00, 0x52, 0xff, 0xff, 0x80, 0x00, | ||
7954 | 0x04, 0x0f, 0x82, 0xf0, 0xa6, 0x16, 0x2d, 0xb4, | ||
7955 | 0xba, 0xbf, 0xd0, 0xc9, 0xbc, 0xb3, 0xa1, 0xa3, | ||
7956 | 0x76, 0x78, 0xa6, 0xf1, 0xff, 0xf1, 0xc4, 0xb1, | ||
7957 | 0xd9, 0x97, 0x98, 0x99, 0x9c, 0x7e, 0x29, 0x1c, | ||
7958 | 0x76, 0x82, 0x56, 0x33, 0x4a, 0x4d, 0x36, 0x39, | ||
7959 | 0x43, 0x3b, 0x33, 0x32, 0x35, 0x34, 0x2c, 0x24, | ||
7960 | 0x49, 0x3b, 0x18, 0x02, 0x23, 0x55, 0x52, 0x2b, | ||
7961 | 0x0a, 0x2d, 0x3a, 0x2d, 0x38, 0x59, 0x5b, 0x40, | ||
7962 | 0x2d, 0x1c, 0x4c, 0x4b, 0x34, 0x4c, 0x53, 0x56, | ||
7963 | 0x62, 0x45, 0x56, 0x56, 0x2d, 0x37, 0x56, 0x43, | ||
7964 | 0x25, 0x1d, 0x1b, 0x28, 0x3d, 0x49, 0x45, 0x3c, | ||
7965 | 0x36, 0x0c, 0x32, 0x50, 0x27, 0x2d, 0x44, 0x20, | ||
7966 | 0x22, 0x1c, 0x21, 0x36, 0x48, 0x45, 0x32, 0x21, | ||
7967 | 0x32, 0x16, 0x19, 0xad, 0xfc, 0xa8, 0x64, 0x38, | ||
7968 | 0x78, 0x6d, 0x61, 0x5c, 0x5b, 0x54, 0x44, 0x37, | ||
7969 | 0x26, 0x17, 0x28, 0x35, 0x26, 0x2a, 0x30, 0x1a, | ||
7970 | 0x30, 0x42, 0x38, 0x2a, 0x2d, 0x25, 0x25, 0x3d, | ||
7971 | 0x58, 0x5e, 0x50, 0x27, 0x0c, 0x20, 0x40, 0x48, | ||
7972 | 0x12, 0x1b, 0x29, 0x33, 0x33, 0x27, 0x15, 0x07, | ||
7973 | 0x85, 0xa0, 0xd3, 0xbe, 0x53, 0x1c, 0x48, 0x7c, | ||
7974 | 0x89, 0x37, 0x06, 0x30, 0x71, 0x79, 0x51, 0x2d, | ||
7975 | 0x1b, 0x0e, 0x16, 0x46, 0x7b, 0x82, 0x50, 0x19, | ||
7976 | 0x31, 0x5c, 0xe1, 0xda, 0xa9, 0xa4, 0x9b, 0xf2, | ||
7977 | 0xea, 0x9c, 0x43, 0x13, 0x0f, 0x24, 0x38, 0x3f, | ||
7978 | 0x3b, 0x35, 0x2d, 0x25, 0x20, 0x21, 0x24, 0x26, | ||
7979 | 0x58, 0x73, 0x56, 0x36, 0x45, 0x3d, 0x26, 0x32, | ||
7980 | 0x2e, 0x2f, 0x34, 0x3c, 0x45, 0x4b, 0x4c, 0x4b, | ||
7981 | 0x75, 0x4b, 0x2b, 0x29, 0x29, 0x23, 0x2d, 0x42, | ||
7982 | 0x16, 0x1c, 0x40, 0x59, 0x4a, 0x3e, 0x3b, 0x2e, | ||
7983 | 0x3d, 0x35, 0x2b, 0x1b, 0x41, 0x79, 0x75, 0x6a, | ||
7984 | 0x65, 0x68, 0x6d, 0x71, 0x70, 0x6b, 0x63, 0x5d, | ||
7985 | 0x6a, 0x71, 0x71, 0x68, 0x6a, 0x76, 0x7b, 0x77, | ||
7986 | 0x92, 0x8b, 0x80, 0x77, 0x72, 0x74, 0x78, 0x7c, | ||
7987 | 0x73, 0x76, 0x77, 0x74, 0x6e, 0x6b, 0x6c, 0x70, | ||
7988 | 0x65, 0x64, 0x63, 0x62, 0x65, 0x69, 0x6d, 0x70, | ||
7989 | 0x71, 0x57, 0x4e, 0x3e, 0x19, 0x21, 0x67, 0xa3, | ||
7990 | 0x51, 0x40, 0x31, 0x38, 0x53, 0x6d, 0x76, 0x73, | ||
7991 | 0x24, 0x67, 0x87, 0x56, 0x17, 0x16, 0x45, 0x6d, | ||
7992 | 0x2a, 0x56, 0x5a, 0x5b, 0x5f, 0x2b, 0x20, 0x6b, | ||
7993 | 0x53, 0x4f, 0x2e, 0x35, 0x76, 0x99, 0x97, 0xa3, | ||
7994 | 0x7a, 0x7f, 0x8b, 0x97, 0x94, 0x75, 0x43, 0x1d, | ||
7995 | 0x4b, 0x5c, 0x4f, 0x27, 0x18, 0x2a, 0x2f, 0x1e, | ||
7996 | 0x50, 0x5c, 0x59, 0x49, 0x48, 0x55, 0x52, 0x41, | ||
7997 | 0x57, 0x4d, 0x41, 0x82, 0xf7, 0xff, 0xc7, 0x94, | ||
7998 | 0x8e, 0x9f, 0xd4, 0xe0, 0xc3, 0xde, 0xfb, 0xda, | ||
7999 | 0xd6, 0xaa, 0xbd, 0xac, 0xc5, 0xef, 0xcd, 0xdd, | ||
8000 | 0xa4, 0x9a, 0xa7, 0xc9, 0xce, 0xa6, 0x74, 0x59, | ||
8001 | 0x6f, 0x40, 0x5e, 0x80, 0x9f, 0x83, 0x0c, 0x00, | ||
8002 | 0x12, 0x46, 0x3a, 0x1c, 0x39, 0x4b, 0x33, 0x25, | ||
8003 | 0x48, 0x32, 0x23, 0x31, 0x4f, 0x5d, 0x4e, 0x38, | ||
8004 | 0x1c, 0x0d, 0x19, 0x3b, 0x44, 0x38, 0x46, 0x67, | ||
8005 | 0x43, 0x73, 0x7a, 0x5d, 0x73, 0xa7, 0x94, 0x4d, | ||
8006 | 0x3e, 0x27, 0x5a, 0x2c, 0x2b, 0x7a, 0x5c, 0x49, | ||
8007 | 0xb4, 0xa8, 0x75, 0x7b, 0xb7, 0x94, 0x29, 0x00, | ||
8008 | 0x2a, 0x41, 0x45, 0x21, 0x03, 0x2a, 0x97, 0xf9, | ||
8009 | 0x8c, 0x39, 0x3b, 0x53, 0x08, 0x00, 0x62, 0xfa, | ||
8010 | 0x52, 0x28, 0x10, 0x27, 0x49, 0x4d, 0x3e, 0x33, | ||
8011 | 0x3b, 0xaf, 0x73, 0x75, 0xbc, 0x5e, 0x07, 0x1f, | ||
8012 | 0x38, 0x32, 0x30, 0x39, 0x4c, 0x5d, 0x65, 0x66, | ||
8013 | 0x4a, 0x21, 0x1c, 0x3c, 0x58, 0x64, 0x44, 0x07, | ||
8014 | 0x41, 0x4c, 0x3d, 0x33, 0x3f, 0x3a, 0x32, 0x42, | ||
8015 | 0x11, 0x71, 0x82, 0x3b, 0x2a, 0x60, 0x88, 0x89, | ||
8016 | 0x77, 0x66, 0x45, 0x1f, 0x07, 0x0f, 0x2f, 0x4d, | ||
8017 | 0xce, 0xb1, 0x6d, 0x1d, 0x0b, 0x3e, 0x5d, 0x48, | ||
8018 | 0x28, 0x6b, 0x9d, 0x88, 0x53, 0x39, 0x40, 0x4d, | ||
8019 | 0x50, 0x38, 0x22, 0x25, 0x3c, 0x4c, 0x4a, 0x40, | ||
8020 | 0xe0, 0xff, 0xd8, 0x5c, 0x56, 0x89, 0x77, 0x90, | ||
8021 | 0xa0, 0xa5, 0x95, 0x63, 0x4c, 0x70, 0x70, 0x34, | ||
8022 | 0x00, 0x07, 0x20, 0x36, 0x40, 0x3c, 0x31, 0x28, | ||
8023 | 0x0d, 0x41, 0x7c, 0x58, 0x05, 0x0d, 0x43, 0x46, | ||
8024 | 0x28, 0x45, 0x66, 0x71, 0x64, 0x50, 0x46, 0x44, | ||
8025 | 0x40, 0x28, 0x24, 0x3a, 0x4b, 0x4d, 0x5b, 0x71, | ||
8026 | 0x90, 0x94, 0x71, 0x53, 0x68, 0x80, 0x7e, 0x7a, | ||
8027 | 0x5d, 0x6a, 0x5a, 0x49, 0x65, 0x78, 0x71, 0x7d, | ||
8028 | 0x6c, 0x6d, 0x71, 0x77, 0x7a, 0x77, 0x6e, 0x66, | ||
8029 | 0x79, 0x83, 0x84, 0x7b, 0x7a, 0x85, 0x8c, 0x8b, | ||
8030 | 0x83, 0x7d, 0x75, 0x6f, 0x6f, 0x74, 0x7c, 0x82, | ||
8031 | 0x6c, 0x6f, 0x74, 0x78, 0x7c, 0x80, 0x84, 0x88, | ||
8032 | 0x76, 0x72, 0x6c, 0x64, 0x5d, 0x56, 0x52, 0x50, | ||
8033 | 0x58, 0x4c, 0x41, 0x2c, 0x32, 0x75, 0x9f, 0x86, | ||
8034 | 0x33, 0x0f, 0x0c, 0x43, 0x7f, 0x91, 0x84, 0x77, | ||
8035 | 0xa2, 0x7e, 0x70, 0x82, 0x83, 0x5a, 0x2c, 0x18, | ||
8036 | 0xb3, 0xd7, 0x96, 0x79, 0xcb, 0xc5, 0x69, 0x52, | ||
8037 | 0xe2, 0xcc, 0x87, 0x67, 0x90, 0x9b, 0x70, 0x54, | ||
8038 | 0x4b, 0x50, 0x5f, 0x78, 0x8c, 0x8b, 0x76, 0x62, | ||
8039 | 0x39, 0x2a, 0x19, 0x19, 0x2d, 0x3c, 0x2f, 0x16, | ||
8040 | 0x31, 0x3f, 0x45, 0x39, 0x2b, 0x29, 0x2e, 0x32, | ||
8041 | 0x2e, 0x53, 0x5e, 0x6d, 0x8d, 0x81, 0x64, 0x6e, | ||
8042 | 0x4f, 0x51, 0x9b, 0xba, 0x91, 0xa7, 0xbc, 0x7c, | ||
8043 | 0x23, 0x2e, 0x94, 0x75, 0x5d, 0x79, 0x5e, 0xa5, | ||
8044 | 0x7a, 0x8d, 0x95, 0x77, 0x3b, 0x11, 0x16, 0x31, | ||
8045 | 0x2d, 0x43, 0xa1, 0xc8, 0xc9, 0x9c, 0x2b, 0x02, | ||
8046 | 0x63, 0x8b, 0x67, 0x2c, 0x37, 0x4a, 0x45, 0x49, | ||
8047 | 0x49, 0x48, 0x46, 0x43, 0x3f, 0x3c, 0x3a, 0x39, | ||
8048 | 0x85, 0x74, 0x7a, 0x8d, 0x7d, 0x51, 0x41, 0x50, | ||
8049 | 0x48, 0x44, 0x49, 0x51, 0x49, 0x3e, 0x4a, 0x61, | ||
8050 | 0x68, 0x5d, 0x4c, 0x00, 0x48, 0xb9, 0x58, 0x0c, | ||
8051 | 0x16, 0x3e, 0x32, 0x24, 0x3a, 0x31, 0x2d, 0x5c, | ||
8052 | 0x35, 0x28, 0x16, 0x12, 0x30, 0x76, 0xce, 0xff, | ||
8053 | 0xff, 0x90, 0x1f, 0x5f, 0xb7, 0x80, 0x3a, 0x53, | ||
8054 | 0x52, 0x31, 0x22, 0x2c, 0x25, 0x0e, 0x12, 0x2b, | ||
8055 | 0x45, 0xe5, 0xb7, 0x81, 0x85, 0x1e, 0x00, 0x43, | ||
8056 | 0x37, 0x39, 0x38, 0x2f, 0x26, 0x25, 0x2d, 0x36, | ||
8057 | 0x2e, 0x38, 0x29, 0x21, 0x31, 0x35, 0x38, 0x4e, | ||
8058 | 0x42, 0x48, 0x3a, 0x38, 0x4e, 0x48, 0x32, 0x34, | ||
8059 | 0x46, 0x39, 0x44, 0x74, 0x84, 0x4f, 0x26, 0x33, | ||
8060 | 0x39, 0x42, 0x4c, 0x4e, 0x47, 0x3f, 0x3a, 0x38, | ||
8061 | 0x45, 0x22, 0x11, 0x3a, 0x6d, 0x66, 0x3c, 0x25, | ||
8062 | 0x24, 0x69, 0xb6, 0xc2, 0x89, 0x5f, 0x81, 0xc1, | ||
8063 | 0x89, 0x5d, 0x2a, 0x14, 0x21, 0x39, 0x47, 0x49, | ||
8064 | 0xf0, 0xe4, 0x56, 0x53, 0xe4, 0xff, 0x8b, 0x00, | ||
8065 | 0x00, 0x0d, 0x2f, 0x23, 0x12, 0x42, 0x4f, 0x0c, | ||
8066 | 0x35, 0x35, 0x34, 0x34, 0x35, 0x36, 0x37, 0x37, | ||
8067 | 0x0f, 0x14, 0x34, 0x38, 0x28, 0x40, 0x3a, 0x00, | ||
8068 | 0x42, 0x5a, 0x6f, 0x6a, 0x53, 0x44, 0x4b, 0x58, | ||
8069 | 0x86, 0x64, 0x4d, 0x50, 0x4f, 0x45, 0x4c, 0x5f, | ||
8070 | 0x2b, 0x23, 0x28, 0x4e, 0x66, 0x49, 0x3f, 0x66, | ||
8071 | 0x37, 0x2f, 0x2d, 0x29, 0x2e, 0x5c, 0x79, 0x57, | ||
8072 | 0x69, 0x68, 0x6b, 0x75, 0x7f, 0x7f, 0x76, 0x6c, | ||
8073 | 0x72, 0x7e, 0x80, 0x73, 0x6b, 0x72, 0x7a, 0x7b, | ||
8074 | 0x72, 0x72, 0x71, 0x71, 0x73, 0x76, 0x79, 0x7b, | ||
8075 | 0x75, 0x71, 0x6b, 0x64, 0x5f, 0x58, 0x52, 0x4e, | ||
8076 | 0x5a, 0x5b, 0x5c, 0x5c, 0x5c, 0x5b, 0x5a, 0x59, | ||
8077 | 0x57, 0x3e, 0x4c, 0x4b, 0x1f, 0x1b, 0x3e, 0x48, | ||
8078 | 0x21, 0x00, 0x00, 0x23, 0x50, 0x56, 0x45, 0x3a, | ||
8079 | 0x69, 0x5b, 0x62, 0x76, 0x6b, 0x43, 0x2b, 0x2c, | ||
8080 | 0x00, 0x3d, 0x29, 0x3e, 0xbb, 0xd3, 0x88, 0x77, | ||
8081 | 0xd8, 0xc2, 0x6f, 0x39, 0x61, 0x8a, 0x81, 0x76, | ||
8082 | 0xa0, 0x7d, 0x51, 0x36, 0x33, 0x3e, 0x46, 0x49, | ||
8083 | 0xa6, 0xb6, 0x91, 0x45, 0x27, 0x3d, 0x3b, 0x18, | ||
8084 | 0x2c, 0x45, 0x61, 0x69, 0x5c, 0x59, 0x76, 0x98, | ||
8085 | 0x7c, 0x87, 0x6c, 0x59, 0x66, 0x53, 0x37, 0x42, | ||
8086 | 0x75, 0x1f, 0x1b, 0x22, 0x00, 0x22, 0x97, 0xc4, | ||
8087 | 0x75, 0x38, 0x61, 0x50, 0x73, 0xa3, 0x52, 0x56, | ||
8088 | 0x5c, 0x9a, 0xc3, 0x9f, 0x4f, 0x1c, 0x22, 0x3d, | ||
8089 | 0x00, 0x27, 0x87, 0x93, 0x7f, 0x60, 0x0f, 0x00, | ||
8090 | 0x46, 0x6f, 0x61, 0x40, 0x42, 0x37, 0x25, 0x34, | ||
8091 | 0x40, 0x36, 0x37, 0x50, 0x76, 0x90, 0x90, 0x86, | ||
8092 | 0x58, 0x53, 0x3c, 0x2e, 0x4c, 0x6f, 0x5b, 0x29, | ||
8093 | 0x18, 0x46, 0x5f, 0x4a, 0x37, 0x5a, 0xa2, 0xd9, | ||
8094 | 0x85, 0xfa, 0xff, 0x7a, 0x31, 0x63, 0x9a, 0xe0, | ||
8095 | 0x93, 0x49, 0x2c, 0x24, 0x13, 0x32, 0x4c, 0x29, | ||
8096 | 0x55, 0x4d, 0x55, 0x7f, 0xb9, 0xe1, 0xe8, 0xdf, | ||
8097 | 0xd1, 0xba, 0x5a, 0x2e, 0x56, 0x42, 0x19, 0x3a, | ||
8098 | 0x2b, 0x1a, 0x18, 0x19, 0x03, 0x0b, 0x6e, 0xe5, | ||
8099 | 0xf9, 0xbc, 0x50, 0x4d, 0x52, 0x30, 0x47, 0x50, | ||
8100 | 0x20, 0x2a, 0x33, 0x32, 0x2a, 0x26, 0x2c, 0x34, | ||
8101 | 0x0d, 0x38, 0x43, 0x3c, 0x3f, 0x37, 0x41, 0x6c, | ||
8102 | 0x34, 0x41, 0x37, 0x34, 0x44, 0x3b, 0x28, 0x2e, | ||
8103 | 0x3d, 0x34, 0x37, 0x50, 0x73, 0x84, 0x64, 0x30, | ||
8104 | 0x6a, 0x54, 0x40, 0x44, 0x56, 0x5c, 0x4c, 0x38, | ||
8105 | 0x3d, 0x60, 0x64, 0x5e, 0x62, 0x4a, 0x32, 0x3f, | ||
8106 | 0x51, 0x49, 0x30, 0x21, 0x39, 0x58, 0x48, 0x1e, | ||
8107 | 0x55, 0x26, 0x00, 0x0d, 0x44, 0x6f, 0x70, 0x5d, | ||
8108 | 0x60, 0x9a, 0x55, 0x5a, 0x60, 0x2e, 0x69, 0x97, | ||
8109 | 0x97, 0x5a, 0x55, 0x51, 0x23, 0x2f, 0x4d, 0x30, | ||
8110 | 0x1b, 0x3a, 0x67, 0x85, 0x83, 0x60, 0x30, 0x0e, | ||
8111 | 0x26, 0x4e, 0x40, 0x29, 0x39, 0x33, 0x23, 0x36, | ||
8112 | 0x46, 0x47, 0x3f, 0x2c, 0x1f, 0x2e, 0x54, 0x77, | ||
8113 | 0x4b, 0x39, 0x3b, 0x52, 0x56, 0x3c, 0x28, 0x28, | ||
8114 | 0x14, 0x05, 0x54, 0xc6, 0xc9, 0x74, 0x30, 0x18, | ||
8115 | 0x19, 0x17, 0x38, 0x84, 0x8c, 0x5d, 0x59, 0x63, | ||
8116 | 0x62, 0x5f, 0x61, 0x6d, 0x7b, 0x7e, 0x73, 0x67, | ||
8117 | 0x7a, 0x88, 0x8a, 0x79, 0x6d, 0x70, 0x78, 0x7a, | ||
8118 | 0x69, 0x6a, 0x6c, 0x6d, 0x6b, 0x67, 0x62, 0x5f, | ||
8119 | 0x71, 0x6d, 0x69, 0x6a, 0x6e, 0x6f, 0x6c, 0x68, | ||
8120 | 0x5a, 0x5c, 0x5e, 0x5e, 0x5d, 0x59, 0x55, 0x53, | ||
8121 | 0x58, 0x5b, 0x67, 0x45, 0x1d, 0x46, 0x64, 0x36, | ||
8122 | 0x35, 0x32, 0x2e, 0x2c, 0x34, 0x45, 0x58, 0x65, | ||
8123 | 0x5c, 0x7d, 0x7c, 0x49, 0x1b, 0x18, 0x27, 0x2c, | ||
8124 | 0x42, 0x81, 0xa2, 0xb8, 0xc0, 0x7e, 0x5d, 0x98, | ||
8125 | 0xd1, 0xe6, 0xaf, 0x68, 0x6b, 0x7e, 0x71, 0x67, | ||
8126 | 0x74, 0x62, 0x52, 0x55, 0x6a, 0x81, 0x8e, 0x90, | ||
8127 | 0xb1, 0xff, 0xe0, 0x45, 0x00, 0x26, 0x4d, 0x32, | ||
8128 | 0x2d, 0x32, 0x43, 0x51, 0x46, 0x37, 0x49, 0x6a, | ||
8129 | 0x6b, 0x7c, 0x67, 0x57, 0x69, 0x67, 0x65, 0x84, | ||
8130 | 0x87, 0x60, 0x4e, 0x42, 0x54, 0xb0, 0xe2, 0xb1, | ||
8131 | 0xdb, 0x9d, 0x9b, 0x81, 0x9d, 0xcd, 0xaa, 0xb6, | ||
8132 | 0x86, 0xa7, 0xae, 0x83, 0x4d, 0x2e, 0x1d, 0x10, | ||
8133 | 0x93, 0x8e, 0xa6, 0x7f, 0x6b, 0x66, 0x1d, 0x00, | ||
8134 | 0x55, 0x61, 0x49, 0x3b, 0x48, 0x41, 0x56, 0x99, | ||
8135 | 0x83, 0x66, 0x4b, 0x4b, 0x5b, 0x5b, 0x41, 0x24, | ||
8136 | 0x39, 0x34, 0x1e, 0x14, 0x38, 0x64, 0x59, 0x2b, | ||
8137 | 0x25, 0x3d, 0x2d, 0x19, 0x59, 0xb5, 0xa6, 0x4f, | ||
8138 | 0x96, 0x96, 0x83, 0x70, 0x44, 0x4b, 0x7e, 0x63, | ||
8139 | 0x62, 0x6c, 0x9d, 0x8f, 0x36, 0x1d, 0x3e, 0x3c, | ||
8140 | 0x03, 0x39, 0x6c, 0x6b, 0x47, 0x35, 0x4e, 0x72, | ||
8141 | 0x0d, 0x1b, 0x18, 0x23, 0x51, 0x6a, 0x4d, 0x28, | ||
8142 | 0x37, 0x49, 0x83, 0xb1, 0x84, 0x28, 0x10, 0x35, | ||
8143 | 0x3e, 0x19, 0x07, 0x49, 0x57, 0x4a, 0x61, 0x35, | ||
8144 | 0x39, 0x35, 0x33, 0x37, 0x38, 0x2d, 0x15, 0x00, | ||
8145 | 0x3b, 0x24, 0x40, 0x76, 0x90, 0x8d, 0x56, 0x04, | ||
8146 | 0x2e, 0x4b, 0x49, 0x37, 0x2e, 0x22, 0x2a, 0x4d, | ||
8147 | 0x37, 0x18, 0x30, 0x43, 0x1e, 0x24, 0x6a, 0x99, | ||
8148 | 0x28, 0x24, 0x27, 0x3b, 0x58, 0x6e, 0x74, 0x71, | ||
8149 | 0x54, 0x68, 0x37, 0x12, 0x3e, 0x50, 0x25, 0x09, | ||
8150 | 0x39, 0x4c, 0x3b, 0x15, 0x25, 0x5e, 0x69, 0x47, | ||
8151 | 0x1f, 0x2e, 0x39, 0x33, 0x26, 0x2a, 0x42, 0x5a, | ||
8152 | 0x32, 0x33, 0x2e, 0x4d, 0x4e, 0x21, 0x2d, 0x5e, | ||
8153 | 0x50, 0x14, 0x2c, 0x49, 0x29, 0x3b, 0x4e, 0x18, | ||
8154 | 0x16, 0x1f, 0x30, 0x44, 0x56, 0x64, 0x6d, 0x72, | ||
8155 | 0x6b, 0x44, 0x0f, 0x33, 0x94, 0x97, 0x4e, 0x2b, | ||
8156 | 0x54, 0x48, 0x32, 0x19, 0x0d, 0x15, 0x2e, 0x43, | ||
8157 | 0x00, 0x23, 0x59, 0x6c, 0x42, 0x09, 0x02, 0x1e, | ||
8158 | 0x25, 0x3c, 0x79, 0x8d, 0x4f, 0x20, 0x3e, 0x6f, | ||
8159 | 0x83, 0xe2, 0xd4, 0x9a, 0x7f, 0x77, 0x7f, 0x72, | ||
8160 | 0x6a, 0x64, 0x63, 0x6e, 0x7c, 0x7e, 0x70, 0x61, | ||
8161 | 0x70, 0x80, 0x83, 0x72, 0x63, 0x66, 0x70, 0x74, | ||
8162 | 0x81, 0x81, 0x82, 0x80, 0x7c, 0x76, 0x70, 0x6c, | ||
8163 | 0x7c, 0x77, 0x73, 0x76, 0x7d, 0x81, 0x7d, 0x77, | ||
8164 | 0x60, 0x62, 0x65, 0x66, 0x64, 0x5f, 0x59, 0x55, | ||
8165 | 0x43, 0x40, 0x65, 0x5c, 0x1f, 0x24, 0x4a, 0x3c, | ||
8166 | 0x1d, 0x06, 0x1a, 0x4b, 0x4a, 0x1d, 0x19, 0x3f, | ||
8167 | 0x41, 0x86, 0xad, 0x87, 0x4f, 0x44, 0x5c, 0x71, | ||
8168 | 0x76, 0x71, 0x78, 0x8c, 0x83, 0x4e, 0x28, 0x2c, | ||
8169 | 0x34, 0x86, 0x8b, 0x4d, 0x39, 0x3e, 0x37, 0x38, | ||
8170 | 0x65, 0x5f, 0x5e, 0x6d, 0x83, 0x90, 0x8f, 0x88, | ||
8171 | 0x96, 0xa1, 0x8e, 0x75, 0x96, 0xd6, 0xdf, 0xba, | ||
8172 | 0x8c, 0x61, 0x4b, 0x5d, 0x64, 0x4c, 0x36, 0x36, | ||
8173 | 0x1a, 0x2f, 0x2f, 0x46, 0x76, 0x69, 0x36, 0x26, | ||
8174 | 0x25, 0x43, 0x7d, 0xa6, 0x9f, 0x81, 0x69, 0x5a, | ||
8175 | 0x92, 0x58, 0x36, 0x3f, 0x71, 0x8d, 0x67, 0x41, | ||
8176 | 0x3d, 0x48, 0x43, 0x3e, 0x66, 0xab, 0xd3, 0xd3, | ||
8177 | 0xc4, 0xae, 0xad, 0x78, 0x6f, 0x78, 0x2b, 0x00, | ||
8178 | 0x7b, 0x75, 0x5b, 0x5a, 0x67, 0x55, 0x75, 0xd0, | ||
8179 | 0xb7, 0xcf, 0xd4, 0xa5, 0x5b, 0x2d, 0x31, 0x49, | ||
8180 | 0x49, 0x3a, 0x43, 0x5c, 0x55, 0x34, 0x2d, 0x42, | ||
8181 | 0x0f, 0x0e, 0x29, 0x69, 0xa3, 0xa2, 0x64, 0x26, | ||
8182 | 0x28, 0x42, 0xaf, 0xff, 0x9e, 0x2a, 0x5f, 0x1e, | ||
8183 | 0x3a, 0x58, 0x34, 0x06, 0x12, 0x2a, 0x68, 0xcc, | ||
8184 | 0xa7, 0x64, 0x1e, 0x11, 0x31, 0x46, 0x31, 0x10, | ||
8185 | 0x69, 0x19, 0x15, 0x36, 0x2f, 0x48, 0x66, 0x4d, | ||
8186 | 0x87, 0x4d, 0x3e, 0x65, 0x65, 0x2e, 0x13, 0x26, | ||
8187 | 0x2c, 0x57, 0x25, 0x19, 0x36, 0x45, 0x4e, 0x1f, | ||
8188 | 0x52, 0x43, 0x43, 0x61, 0x86, 0x8b, 0x67, 0x40, | ||
8189 | 0x21, 0x02, 0x41, 0x59, 0x1d, 0x4b, 0xa8, 0x9f, | ||
8190 | 0x35, 0x5f, 0x64, 0x41, 0x21, 0x13, 0x36, 0x76, | ||
8191 | 0x7f, 0x4b, 0x3d, 0x28, 0x0d, 0x4c, 0x88, 0x67, | ||
8192 | 0x4c, 0x68, 0x7d, 0x70, 0x4d, 0x37, 0x3f, 0x52, | ||
8193 | 0x2e, 0x1f, 0x05, 0x2e, 0x71, 0x6b, 0x77, 0xcd, | ||
8194 | 0x5f, 0x28, 0x1b, 0x45, 0x51, 0x2f, 0x27, 0x44, | ||
8195 | 0x46, 0x3b, 0x2b, 0x20, 0x1c, 0x1d, 0x1e, 0x1f, | ||
8196 | 0x21, 0x24, 0x73, 0x67, 0x51, 0x55, 0x31, 0x54, | ||
8197 | 0x32, 0x10, 0x23, 0x1e, 0x0e, 0x61, 0x87, 0x28, | ||
8198 | 0x4c, 0x3d, 0x28, 0x19, 0x19, 0x29, 0x3e, 0x4d, | ||
8199 | 0x69, 0x31, 0x63, 0xe2, 0xff, 0xff, 0xb1, 0x41, | ||
8200 | 0x19, 0x1c, 0x22, 0x2a, 0x32, 0x38, 0x3b, 0x3c, | ||
8201 | 0x72, 0x4a, 0x37, 0x4b, 0x5a, 0x48, 0x2c, 0x20, | ||
8202 | 0x37, 0x47, 0x5b, 0x7d, 0x91, 0x74, 0x5e, 0x70, | ||
8203 | 0x9b, 0x78, 0x65, 0x9a, 0xa6, 0x8b, 0x8f, 0x74, | ||
8204 | 0x79, 0x71, 0x6d, 0x76, 0x83, 0x82, 0x72, 0x61, | ||
8205 | 0x77, 0x89, 0x8e, 0x7d, 0x6f, 0x72, 0x7d, 0x83, | ||
8206 | 0x80, 0x7f, 0x7e, 0x7c, 0x79, 0x76, 0x74, 0x73, | ||
8207 | 0x71, 0x6b, 0x67, 0x6b, 0x74, 0x78, 0x73, 0x6d, | ||
8208 | 0x61, 0x65, 0x69, 0x6d, 0x6c, 0x69, 0x63, 0x60, | ||
8209 | 0x5d, 0x49, 0x51, 0x3a, 0x18, 0x4a, 0x76, 0x4e, | ||
8210 | 0x21, 0x49, 0x46, 0x28, 0x4e, 0xa0, 0xa7, 0x6d, | ||
8211 | 0x56, 0x42, 0x3e, 0x50, 0x58, 0x5b, 0x77, 0x9d, | ||
8212 | 0x61, 0x76, 0x8a, 0x72, 0x4c, 0x50, 0x51, 0x30, | ||
8213 | 0x00, 0x53, 0x74, 0x41, 0x3a, 0x66, 0x99, 0xc6, | ||
8214 | 0xa6, 0x84, 0x5b, 0x4c, 0x5e, 0x84, 0xa6, 0xb9, | ||
8215 | 0x67, 0x4b, 0x77, 0xdf, 0xff, 0xdd, 0xd4, 0xfb, | ||
8216 | 0xbc, 0x6e, 0x41, 0x65, 0x90, 0x82, 0x55, 0x39, | ||
8217 | 0x70, 0x8f, 0x7e, 0x55, 0x3c, 0x16, 0x08, 0x29, | ||
8218 | 0x3a, 0x56, 0x69, 0x65, 0x41, 0x0d, 0x10, 0x45, | ||
8219 | 0x95, 0x88, 0x5a, 0x3c, 0x25, 0x21, 0x44, 0x52, | ||
8220 | 0x81, 0x7d, 0x58, 0x2c, 0x33, 0x64, 0x7b, 0x6e, | ||
8221 | 0x2d, 0x3d, 0x69, 0x54, 0x5c, 0x71, 0x2c, 0x00, | ||
8222 | 0x47, 0x36, 0x3e, 0x5b, 0x58, 0x36, 0x29, 0x37, | ||
8223 | 0x88, 0xfb, 0x9b, 0x00, 0x00, 0x37, 0x39, 0x51, | ||
8224 | 0x00, 0x47, 0xb1, 0xf4, 0xf1, 0xd0, 0xc6, 0xd2, | ||
8225 | 0xdd, 0x5b, 0x00, 0x12, 0x2f, 0x1d, 0x16, 0x2e, | ||
8226 | 0x22, 0x1f, 0x46, 0x6d, 0x46, 0x04, 0x1c, 0x6f, | ||
8227 | 0x60, 0x5b, 0x31, 0x05, 0x25, 0x8c, 0xe2, 0xff, | ||
8228 | 0x87, 0x5f, 0x82, 0xdf, 0xe3, 0x79, 0x26, 0x1f, | ||
8229 | 0x5b, 0x30, 0x18, 0x24, 0x2b, 0x23, 0x2e, 0x4a, | ||
8230 | 0x71, 0x51, 0x27, 0x0e, 0x0f, 0x20, 0x31, 0x3b, | ||
8231 | 0x2e, 0x43, 0x48, 0x2e, 0x24, 0x49, 0x5f, 0x4d, | ||
8232 | 0x2d, 0x24, 0x49, 0x4e, 0x60, 0x73, 0x5c, 0x74, | ||
8233 | 0x37, 0x39, 0x8b, 0xd3, 0xbe, 0x99, 0x74, 0x3c, | ||
8234 | 0x62, 0x86, 0xac, 0x66, 0x43, 0x67, 0x5c, 0x66, | ||
8235 | 0x23, 0x2a, 0x2e, 0x2b, 0x28, 0x34, 0x4f, 0x65, | ||
8236 | 0x7e, 0x62, 0x57, 0x5b, 0x48, 0x2d, 0x3f, 0x6a, | ||
8237 | 0x0d, 0x03, 0x12, 0x37, 0x4b, 0x40, 0x34, 0x36, | ||
8238 | 0x00, 0x86, 0x9e, 0x5d, 0x53, 0x29, 0x23, 0x85, | ||
8239 | 0x46, 0x48, 0x69, 0x95, 0x92, 0x5e, 0x37, 0x32, | ||
8240 | 0x36, 0x1d, 0x14, 0x22, 0x29, 0x32, 0x61, 0x9b, | ||
8241 | 0xd1, 0xac, 0x59, 0x7d, 0xe0, 0xff, 0xc0, 0x23, | ||
8242 | 0x13, 0x4a, 0x13, 0x8d, 0xfb, 0xf2, 0xed, 0x4e, | ||
8243 | 0x00, 0x20, 0x9d, 0xff, 0xee, 0xa3, 0x5d, 0x1e, | ||
8244 | 0x15, 0x43, 0x76, 0x89, 0x7b, 0x6a, 0x67, 0x6e, | ||
8245 | 0x8c, 0x85, 0x40, 0x29, 0x68, 0x75, 0x4d, 0x4c, | ||
8246 | 0xaf, 0x44, 0x33, 0x72, 0x70, 0x4d, 0x4b, 0x4f, | ||
8247 | 0x5e, 0x30, 0x6c, 0x96, 0x70, 0x6f, 0x83, 0x82, | ||
8248 | 0x62, 0x64, 0x6b, 0x75, 0x7e, 0x7d, 0x74, 0x6a, | ||
8249 | 0x7c, 0x82, 0x87, 0x82, 0x78, 0x74, 0x78, 0x7e, | ||
8250 | 0x6d, 0x6d, 0x6d, 0x6c, 0x6d, 0x6d, 0x6e, 0x6e, | ||
8251 | 0x77, 0x7b, 0x7c, 0x76, 0x6d, 0x6b, 0x72, 0x7a, | ||
8252 | 0x76, 0x72, 0x6f, 0x70, 0x72, 0x6e, 0x65, 0x5c, | ||
8253 | 0x4e, 0x54, 0x3f, 0x25, 0x45, 0x83, 0x7b, 0x3c, | ||
8254 | 0x38, 0x4b, 0x9a, 0xab, 0x91, 0x75, 0x63, 0x96, | ||
8255 | 0x84, 0x6c, 0x69, 0x8e, 0x7a, 0x83, 0xcb, 0xbd, | ||
8256 | 0x7a, 0x5b, 0xd9, 0xfc, 0x43, 0x00, 0x4e, 0x52, | ||
8257 | 0x26, 0x30, 0x3f, 0x4d, 0x56, 0x57, 0x54, 0x50, | ||
8258 | 0x28, 0x19, 0x3a, 0x6d, 0x5a, 0x22, 0x36, 0x80, | ||
8259 | 0x97, 0x61, 0x90, 0xd6, 0x9b, 0x45, 0x5d, 0xa5, | ||
8260 | 0xb2, 0x91, 0x6c, 0x5e, 0x66, 0x6e, 0x68, 0x5e, | ||
8261 | 0x4e, 0x5b, 0x52, 0x37, 0x30, 0x3e, 0x3d, 0x2b, | ||
8262 | 0x53, 0x59, 0x2d, 0x04, 0x19, 0x40, 0x67, 0x92, | ||
8263 | 0xb0, 0x86, 0x6b, 0x4a, 0x33, 0x5e, 0x6a, 0x28, | ||
8264 | 0x2e, 0x42, 0x5a, 0x66, 0x66, 0x65, 0x6b, 0x72, | ||
8265 | 0x6d, 0x5b, 0x50, 0x5d, 0x6b, 0x5a, 0x25, 0x00, | ||
8266 | 0x49, 0x46, 0x2e, 0x1a, 0x34, 0x62, 0x64, 0x44, | ||
8267 | 0x15, 0x5c, 0x48, 0x14, 0x21, 0x32, 0x5e, 0xba, | ||
8268 | 0xf1, 0xf3, 0xe2, 0xac, 0x63, 0x38, 0x44, 0x63, | ||
8269 | 0x45, 0x10, 0x08, 0x35, 0x3b, 0x0a, 0x00, 0x10, | ||
8270 | 0x5d, 0x23, 0x25, 0x81, 0xca, 0xb1, 0x63, 0x2f, | ||
8271 | 0x21, 0x34, 0x31, 0x1e, 0x32, 0x68, 0x87, 0x83, | ||
8272 | 0x4c, 0x30, 0x37, 0x59, 0x4b, 0x15, 0x08, 0x26, | ||
8273 | 0x76, 0x3a, 0x2a, 0x4f, 0x4d, 0x28, 0x40, 0x85, | ||
8274 | 0x34, 0x53, 0x68, 0x57, 0x30, 0x21, 0x39, 0x5a, | ||
8275 | 0x6c, 0x57, 0x72, 0x6d, 0x41, 0x62, 0x77, 0x32, | ||
8276 | 0x62, 0x55, 0xae, 0x8f, 0x3b, 0x78, 0x9f, 0x72, | ||
8277 | 0x42, 0x75, 0xab, 0x8a, 0x43, 0x4b, 0x64, 0x46, | ||
8278 | 0x39, 0x7c, 0xaa, 0xa1, 0x67, 0x3d, 0x4b, 0x5f, | ||
8279 | 0x62, 0x5b, 0x49, 0x31, 0x22, 0x29, 0x43, 0x5b, | ||
8280 | 0x9e, 0x89, 0x74, 0x64, 0x53, 0x53, 0x72, 0x99, | ||
8281 | 0x7c, 0x94, 0x5d, 0x09, 0x2f, 0xa7, 0xba, 0x6c, | ||
8282 | 0xb2, 0xed, 0xbe, 0x3b, 0x18, 0x56, 0x69, 0x40, | ||
8283 | 0x6a, 0x86, 0xa6, 0xb7, 0xb3, 0x9d, 0x78, 0x59, | ||
8284 | 0x83, 0x4f, 0x22, 0x37, 0x89, 0xd3, 0xe2, 0xcd, | ||
8285 | 0xd1, 0xe0, 0xd6, 0xf9, 0xed, 0xb9, 0xc2, 0xb8, | ||
8286 | 0xfd, 0xf9, 0x7b, 0x6c, 0xb5, 0x9b, 0x7b, 0x7f, | ||
8287 | 0x92, 0x93, 0x68, 0x5b, 0x8b, 0x99, 0x85, 0x8d, | ||
8288 | 0x78, 0x76, 0x79, 0x7c, 0x70, 0x66, 0x74, 0x8d, | ||
8289 | 0x2e, 0x37, 0x3c, 0x5e, 0x8c, 0x84, 0x62, 0x5c, | ||
8290 | 0x80, 0x61, 0x54, 0x73, 0x5f, 0x29, 0x28, 0x2b, | ||
8291 | 0x27, 0x30, 0x39, 0x34, 0x44, 0x68, 0x6f, 0x5d, | ||
8292 | 0x6d, 0x6b, 0x6b, 0x71, 0x79, 0x7d, 0x79, 0x74, | ||
8293 | 0x75, 0x7a, 0x7e, 0x7a, 0x72, 0x6e, 0x71, 0x77, | ||
8294 | 0x6b, 0x71, 0x7a, 0x80, 0x7f, 0x77, 0x6d, 0x65, | ||
8295 | 0x69, 0x6b, 0x6c, 0x6c, 0x6c, 0x6f, 0x76, 0x7c, | ||
8296 | 0x6f, 0x6b, 0x68, 0x68, 0x6a, 0x66, 0x5c, 0x54, | ||
8297 | 0x64, 0x5f, 0x82, 0x90, 0x64, 0x48, 0x4d, 0x49, | ||
8298 | 0x2d, 0x3b, 0x62, 0x4b, 0x46, 0x50, 0x18, 0x00, | ||
8299 | 0x00, 0x29, 0x2f, 0x3e, 0x4a, 0x6a, 0x85, 0x43, | ||
8300 | 0x3c, 0x90, 0xfb, 0xeb, 0x70, 0x31, 0x2f, 0x19, | ||
8301 | 0x43, 0x42, 0x41, 0x44, 0x4b, 0x56, 0x61, 0x68, | ||
8302 | 0xa0, 0x93, 0x81, 0x6b, 0x53, 0x44, 0x49, 0x57, | ||
8303 | 0x74, 0x2e, 0x52, 0xa9, 0x91, 0x4a, 0x49, 0x6d, | ||
8304 | 0x75, 0x5a, 0x37, 0x22, 0x23, 0x31, 0x3f, 0x47, | ||
8305 | 0x35, 0x3f, 0x45, 0x48, 0x54, 0x69, 0x76, 0x76, | ||
8306 | 0x84, 0x68, 0x3f, 0x40, 0x5f, 0x66, 0x80, 0xbd, | ||
8307 | 0x5d, 0x3f, 0x43, 0x4b, 0x28, 0x0c, 0x1e, 0x39, | ||
8308 | 0x6c, 0x83, 0x6f, 0x7e, 0xba, 0x9e, 0x4c, 0x38, | ||
8309 | 0x84, 0x6b, 0x54, 0x53, 0x5b, 0x4c, 0x23, 0x00, | ||
8310 | 0x45, 0x48, 0x3e, 0x3b, 0x5a, 0x72, 0x4b, 0x09, | ||
8311 | 0x44, 0x3b, 0x33, 0x38, 0x3e, 0x45, 0x78, 0xc0, | ||
8312 | 0xd8, 0xbf, 0x92, 0x61, 0x40, 0x34, 0x30, 0x2e, | ||
8313 | 0x58, 0x24, 0x13, 0x33, 0x41, 0x35, 0x48, 0x75, | ||
8314 | 0xa4, 0x86, 0x75, 0x84, 0x95, 0x89, 0x66, 0x4b, | ||
8315 | 0x64, 0x76, 0x77, 0x63, 0x58, 0x57, 0x47, 0x2c, | ||
8316 | 0x7f, 0x7e, 0x72, 0x54, 0x2f, 0x21, 0x38, 0x58, | ||
8317 | 0xb3, 0x8f, 0xab, 0xe8, 0xc2, 0x55, 0x41, 0x81, | ||
8318 | 0x3b, 0x38, 0x48, 0x77, 0xaa, 0xbc, 0xa5, 0x86, | ||
8319 | 0x3e, 0x76, 0xb6, 0xb4, 0x81, 0x6b, 0x66, 0x4f, | ||
8320 | 0x52, 0x94, 0xc6, 0x65, 0x36, 0x88, 0xa6, 0x9d, | ||
8321 | 0x61, 0x41, 0x50, 0x61, 0x31, 0x0c, 0x28, 0x4e, | ||
8322 | 0x4a, 0x5b, 0x4f, 0x80, 0x6f, 0x2c, 0x42, 0x45, | ||
8323 | 0x5b, 0x51, 0x3d, 0x29, 0x21, 0x2d, 0x49, 0x5f, | ||
8324 | 0x64, 0x75, 0x73, 0x56, 0x3a, 0x30, 0x2b, 0x23, | ||
8325 | 0x51, 0x92, 0xb1, 0x8d, 0x6d, 0x78, 0x85, 0x7e, | ||
8326 | 0x5a, 0x60, 0x7e, 0x62, 0x51, 0xbe, 0xdf, 0x62, | ||
8327 | 0x58, 0x6b, 0x62, 0x40, 0x3e, 0x5b, 0x62, 0x4d, | ||
8328 | 0x65, 0x78, 0x7e, 0x81, 0xa7, 0xd4, 0xcb, 0xa1, | ||
8329 | 0xd0, 0xb3, 0x46, 0x38, 0x91, 0xe9, 0xe3, 0x67, | ||
8330 | 0xac, 0xde, 0xf1, 0xc2, 0x9b, 0x5b, 0x4f, 0xd3, | ||
8331 | 0xb1, 0x98, 0x3c, 0x12, 0x63, 0xb0, 0xb7, 0xb3, | ||
8332 | 0xea, 0xa3, 0x7b, 0xa3, 0xdb, 0xe9, 0xe0, 0xdd, | ||
8333 | 0x65, 0x2c, 0x22, 0x39, 0x34, 0x36, 0x5b, 0x7a, | ||
8334 | 0x25, 0x25, 0x43, 0x55, 0x54, 0x59, 0x61, 0x69, | ||
8335 | 0x4b, 0x53, 0x6c, 0xa3, 0xa5, 0x69, 0x65, 0x94, | ||
8336 | 0x71, 0x6b, 0x66, 0x69, 0x70, 0x76, 0x77, 0x75, | ||
8337 | 0x7f, 0x83, 0x85, 0x83, 0x7d, 0x7b, 0x7d, 0x81, | ||
8338 | 0x82, 0x86, 0x8b, 0x8b, 0x83, 0x75, 0x66, 0x5c, | ||
8339 | 0x76, 0x71, 0x6c, 0x6a, 0x6d, 0x70, 0x70, 0x6f, | ||
8340 | 0x69, 0x65, 0x61, 0x61, 0x62, 0x5e, 0x54, 0x4b, | ||
8341 | 0x44, 0x55, 0x5f, 0x48, 0x26, 0x2a, 0x46, 0x55, | ||
8342 | 0x1b, 0x2e, 0x4d, 0x21, 0x12, 0x3d, 0x4c, 0x6b, | ||
8343 | 0xa9, 0xd8, 0xbd, 0x98, 0x4d, 0x00, 0x0c, 0x2e, | ||
8344 | 0x64, 0x57, 0x2e, 0x30, 0x54, 0x40, 0x37, 0x70, | ||
8345 | 0x75, 0x68, 0x54, 0x42, 0x39, 0x39, 0x40, 0x45, | ||
8346 | 0x6a, 0x6a, 0x3a, 0x00, 0x07, 0x53, 0x7c, 0x6f, | ||
8347 | 0x69, 0x46, 0x46, 0x3c, 0x0e, 0x16, 0x5c, 0x8a, | ||
8348 | 0x52, 0x4d, 0x43, 0x3c, 0x44, 0x61, 0x8b, 0xaa, | ||
8349 | 0x26, 0x1c, 0x1a, 0x25, 0x32, 0x3e, 0x53, 0x67, | ||
8350 | 0x41, 0x5d, 0x98, 0xf1, 0xff, 0xa7, 0x33, 0x16, | ||
8351 | 0x58, 0x78, 0xb2, 0xe5, 0xc7, 0x5d, 0x2c, 0x51, | ||
8352 | 0xd5, 0xf3, 0xc2, 0xc3, 0xff, 0xcd, 0x41, 0x1d, | ||
8353 | 0x2d, 0x22, 0x20, 0x32, 0x49, 0x48, 0x2d, 0x10, | ||
8354 | 0x2c, 0x03, 0x00, 0x1c, 0x3d, 0x43, 0x4e, 0x66, | ||
8355 | 0x68, 0x44, 0x45, 0x68, 0x8c, 0xac, 0xa7, 0x7c, | ||
8356 | 0x9b, 0x88, 0x6f, 0x6e, 0x8f, 0xa2, 0x7e, 0x48, | ||
8357 | 0x67, 0x2d, 0x14, 0x3e, 0x6c, 0x72, 0x6c, 0x71, | ||
8358 | 0x39, 0x70, 0x8a, 0x59, 0x16, 0x10, 0x4d, 0x8c, | ||
8359 | 0x56, 0x57, 0x51, 0x48, 0x49, 0x55, 0x5d, 0x5c, | ||
8360 | 0x37, 0x58, 0x5d, 0x3d, 0x2c, 0x3c, 0x44, 0x38, | ||
8361 | 0x6d, 0x74, 0xa3, 0xc8, 0x91, 0x2b, 0x0f, 0x39, | ||
8362 | 0x59, 0x4d, 0x45, 0x4b, 0x56, 0x51, 0x38, 0x20, | ||
8363 | 0x5f, 0x8a, 0x57, 0x58, 0xc3, 0xbb, 0x6d, 0x7a, | ||
8364 | 0xa3, 0x9b, 0x63, 0x00, 0x25, 0x82, 0x5c, 0x2d, | ||
8365 | 0x33, 0x3c, 0x3d, 0x2c, 0x2c, 0x5a, 0x8e, 0xa1, | ||
8366 | 0xff, 0xcd, 0x70, 0x63, 0x4f, 0x27, 0x3a, 0x48, | ||
8367 | 0x2c, 0x2d, 0x2e, 0x2f, 0x32, 0x3a, 0x44, 0x4b, | ||
8368 | 0x60, 0x71, 0x5d, 0x2b, 0x1e, 0x45, 0x67, 0x6b, | ||
8369 | 0x7d, 0x5e, 0x6b, 0x97, 0x87, 0x49, 0x3e, 0x68, | ||
8370 | 0x85, 0x40, 0x5c, 0x76, 0x49, 0x6b, 0xad, 0x95, | ||
8371 | 0x69, 0x64, 0x49, 0x27, 0x26, 0x47, 0x61, 0x65, | ||
8372 | 0x53, 0x87, 0xa7, 0x8f, 0x66, 0x54, 0x51, 0x4e, | ||
8373 | 0x81, 0x4d, 0x00, 0x1b, 0x65, 0x7e, 0x75, 0x2a, | ||
8374 | 0x58, 0x52, 0x8d, 0x8c, 0x5c, 0x67, 0x9b, 0xd7, | ||
8375 | 0xff, 0xc8, 0x87, 0x6c, 0x78, 0xc1, 0xe7, 0xbe, | ||
8376 | 0x6d, 0xa1, 0xe2, 0xe6, 0x93, 0x50, 0x80, 0xe2, | ||
8377 | 0xdd, 0x59, 0x42, 0x8a, 0xa1, 0x99, 0x85, 0x56, | ||
8378 | 0x3f, 0x20, 0x58, 0x57, 0x3c, 0x47, 0x4b, 0x73, | ||
8379 | 0xd1, 0xfa, 0xf6, 0xc6, 0x8a, 0x79, 0x85, 0x6e, | ||
8380 | 0x80, 0x7c, 0x79, 0x7c, 0x83, 0x87, 0x85, 0x81, | ||
8381 | 0x79, 0x7a, 0x7b, 0x7a, 0x78, 0x77, 0x78, 0x79, | ||
8382 | 0x81, 0x7f, 0x7b, 0x79, 0x78, 0x7a, 0x7d, 0x7f, | ||
8383 | 0x84, 0x7a, 0x70, 0x6f, 0x74, 0x77, 0x73, 0x6d, | ||
8384 | 0x69, 0x65, 0x60, 0x60, 0x60, 0x5b, 0x51, 0x48, | ||
8385 | 0x41, 0x4c, 0x31, 0x31, 0x56, 0x42, 0x1d, 0x2d, | ||
8386 | 0x5f, 0x21, 0x1b, 0x1f, 0x40, 0x68, 0x73, 0xa4, | ||
8387 | 0xf4, 0xf8, 0xbe, 0xce, 0xda, 0x9c, 0xb0, 0xf4, | ||
8388 | 0xff, 0xa3, 0x22, 0x13, 0x4e, 0x44, 0x45, 0x93, | ||
8389 | 0x9b, 0x7d, 0x50, 0x2c, 0x23, 0x36, 0x56, 0x6e, | ||
8390 | 0x1c, 0x54, 0x6a, 0x53, 0x58, 0x79, 0x6b, 0x38, | ||
8391 | 0x31, 0x46, 0x4d, 0x1c, 0x00, 0x39, 0x6d, 0x52, | ||
8392 | 0x16, 0x29, 0x3b, 0x3f, 0x3e, 0x4d, 0x6e, 0x8b, | ||
8393 | 0x93, 0x7d, 0x71, 0x72, 0x6b, 0x5d, 0x60, 0x70, | ||
8394 | 0x42, 0x77, 0xa6, 0xda, 0xff, 0xd9, 0x6f, 0x2d, | ||
8395 | 0x48, 0x5c, 0x4e, 0x4c, 0x61, 0x51, 0x60, 0xac, | ||
8396 | 0xeb, 0xdf, 0xa1, 0x86, 0xa6, 0x95, 0x65, 0x61, | ||
8397 | 0x3e, 0x3f, 0x48, 0x5a, 0x64, 0x54, 0x2e, 0x0d, | ||
8398 | 0x5f, 0x4d, 0x4c, 0x57, 0x4d, 0x3f, 0x5f, 0x94, | ||
8399 | 0x75, 0x54, 0x6a, 0xa3, 0xb6, 0x9a, 0x54, 0x07, | ||
8400 | 0x09, 0x15, 0x0e, 0x03, 0x21, 0x57, 0x65, 0x4f, | ||
8401 | 0x51, 0x2d, 0x1f, 0x3b, 0x5a, 0x5b, 0x4c, 0x43, | ||
8402 | 0x3f, 0x74, 0xa1, 0x9d, 0x7d, 0x66, 0x5e, 0x5c, | ||
8403 | 0x7d, 0x68, 0x51, 0x43, 0x3d, 0x3e, 0x4c, 0x5c, | ||
8404 | 0x65, 0x80, 0x7b, 0x5c, 0x5f, 0x76, 0x5b, 0x21, | ||
8405 | 0x31, 0x4e, 0x60, 0x4b, 0x2b, 0x28, 0x4a, 0x6e, | ||
8406 | 0x90, 0x80, 0x64, 0x45, 0x31, 0x32, 0x42, 0x51, | ||
8407 | 0xaf, 0xcf, 0x94, 0x8f, 0xe9, 0xcf, 0x83, 0xa1, | ||
8408 | 0xa4, 0x76, 0xb6, 0xaf, 0x81, 0xb7, 0xb7, 0x73, | ||
8409 | 0x56, 0x88, 0x95, 0x6b, 0x41, 0x3f, 0x60, 0x85, | ||
8410 | 0x80, 0x41, 0x33, 0x43, 0x78, 0x95, 0x65, 0x4e, | ||
8411 | 0x71, 0x62, 0x4d, 0x3c, 0x35, 0x37, 0x3c, 0x3f, | ||
8412 | 0x53, 0x7f, 0x90, 0x75, 0x64, 0x6a, 0x61, 0x46, | ||
8413 | 0x71, 0x78, 0x79, 0x6c, 0x5a, 0x4d, 0x4a, 0x4c, | ||
8414 | 0x55, 0x28, 0x3d, 0x6a, 0x46, 0x0b, 0x15, 0x40, | ||
8415 | 0x6f, 0x63, 0x66, 0x78, 0x78, 0x68, 0x66, 0x73, | ||
8416 | 0x5c, 0x3f, 0x2b, 0x2e, 0x31, 0x34, 0x49, 0x67, | ||
8417 | 0x99, 0xc0, 0xb1, 0xa5, 0x70, 0x30, 0x30, 0x16, | ||
8418 | 0x13, 0x09, 0x09, 0x16, 0x14, 0x5e, 0xca, 0xc5, | ||
8419 | 0x40, 0x1d, 0x3e, 0x71, 0x6e, 0x6a, 0x66, 0x45, | ||
8420 | 0x3f, 0x30, 0x3d, 0x61, 0x68, 0x44, 0x22, 0x1a, | ||
8421 | 0x06, 0x00, 0x62, 0xb2, 0x78, 0x42, 0x5b, 0x74, | ||
8422 | 0x9f, 0x77, 0x4d, 0x32, 0x2c, 0x2e, 0x35, 0x4b, | ||
8423 | 0x1d, 0x16, 0x2b, 0x59, 0x6f, 0x74, 0x78, 0x73, | ||
8424 | 0x6b, 0x6a, 0x6e, 0x75, 0x7c, 0x7a, 0x70, 0x67, | ||
8425 | 0x79, 0x78, 0x77, 0x78, 0x7a, 0x7b, 0x7a, 0x79, | ||
8426 | 0x84, 0x7d, 0x74, 0x6d, 0x6e, 0x74, 0x7e, 0x84, | ||
8427 | 0x78, 0x70, 0x6a, 0x6d, 0x76, 0x7d, 0x7d, 0x79, | ||
8428 | 0x6f, 0x6a, 0x65, 0x64, 0x64, 0x5e, 0x53, 0x4a, | ||
8429 | 0x34, 0x3e, 0x2c, 0x3d, 0x74, 0x70, 0x5c, 0x7a, | ||
8430 | 0x73, 0x3f, 0x45, 0x47, 0x52, 0x53, 0x34, 0x4a, | ||
8431 | 0xb4, 0xd9, 0xa2, 0x9f, 0xc3, 0xb1, 0xaf, 0xb2, | ||
8432 | 0xb3, 0xb7, 0xae, 0x84, 0x50, 0x38, 0x2c, 0x1a, | ||
8433 | 0x1d, 0x26, 0x34, 0x44, 0x53, 0x5e, 0x64, 0x67, | ||
8434 | 0x34, 0x58, 0x72, 0x69, 0x5d, 0x67, 0x7c, 0x8a, | ||
8435 | 0x78, 0x5a, 0x62, 0x89, 0xbc, 0xf2, 0xd8, 0x7b, | ||
8436 | 0x54, 0x71, 0x8f, 0x90, 0x76, 0x59, 0x4c, 0x4c, | ||
8437 | 0x54, 0x61, 0x77, 0x87, 0x80, 0x64, 0x44, 0x31, | ||
8438 | 0x3e, 0xa6, 0xca, 0xbc, 0xea, 0xff, 0xa9, 0x36, | ||
8439 | 0x48, 0x63, 0x5a, 0x57, 0x62, 0x4a, 0x58, 0xa5, | ||
8440 | 0x76, 0x5e, 0x85, 0xb7, 0xbc, 0xbd, 0x9f, 0x55, | ||
8441 | 0x4c, 0x4a, 0x4b, 0x4f, 0x4f, 0x41, 0x28, 0x14, | ||
8442 | 0xdb, 0xff, 0xff, 0xd4, 0x9a, 0x8e, 0x93, 0x90, | ||
8443 | 0x21, 0x08, 0x21, 0x72, 0x90, 0x5f, 0x53, 0x86, | ||
8444 | 0x67, 0xa3, 0xa8, 0x5b, 0x1d, 0x28, 0x46, 0x4c, | ||
8445 | 0x70, 0x80, 0x91, 0x91, 0x7d, 0x69, 0x67, 0x70, | ||
8446 | 0x92, 0x98, 0xb2, 0xd5, 0xdb, 0xb1, 0x74, 0x4a, | ||
8447 | 0x4a, 0x3b, 0x3e, 0x55, 0x61, 0x62, 0x71, 0x8a, | ||
8448 | 0x56, 0x5b, 0x46, 0x2d, 0x3f, 0x60, 0x4e, 0x1c, | ||
8449 | 0x16, 0x3e, 0x45, 0x1d, 0x0c, 0x2b, 0x4b, 0x4f, | ||
8450 | 0x49, 0x48, 0x45, 0x47, 0x5c, 0x8d, 0xce, 0xfc, | ||
8451 | 0xcc, 0xcf, 0xdd, 0xb9, 0x5b, 0x2d, 0x55, 0x87, | ||
8452 | 0x84, 0x5b, 0x84, 0x6c, 0x2a, 0x33, 0x52, 0x7b, | ||
8453 | 0x69, 0x4c, 0x27, 0x24, 0x2d, 0x21, 0x48, 0x9f, | ||
8454 | 0x28, 0x3e, 0x91, 0x9c, 0xa8, 0xa9, 0x4f, 0x2d, | ||
8455 | 0x31, 0x45, 0x68, 0x8b, 0x9c, 0x91, 0x73, 0x5a, | ||
8456 | 0x97, 0x99, 0x81, 0x52, 0x2f, 0x2b, 0x33, 0x35, | ||
8457 | 0x21, 0x5e, 0x8b, 0x7c, 0x53, 0x37, 0x28, 0x1f, | ||
8458 | 0x41, 0x40, 0x24, 0x21, 0x39, 0x2e, 0x29, 0x50, | ||
8459 | 0x50, 0x36, 0x35, 0x50, 0x52, 0x3c, 0x3f, 0x5b, | ||
8460 | 0xa5, 0x6f, 0x4c, 0x53, 0x57, 0x4c, 0x59, 0x78, | ||
8461 | 0xaa, 0xa2, 0x30, 0x00, 0x06, 0x5f, 0xa7, 0x7a, | ||
8462 | 0x44, 0x74, 0x5a, 0x4d, 0x63, 0x89, 0xc0, 0xc0, | ||
8463 | 0x75, 0x70, 0x51, 0x4d, 0x58, 0x38, 0x38, 0x7a, | ||
8464 | 0x58, 0x5c, 0x61, 0x6a, 0x73, 0x74, 0x66, 0x55, | ||
8465 | 0x88, 0x4d, 0x47, 0x67, 0x5f, 0x40, 0x2b, 0x1c, | ||
8466 | 0x1d, 0x24, 0x34, 0xe0, 0xff, 0xa0, 0x8e, 0xc3, | ||
8467 | 0xff, 0xde, 0xae, 0x72, 0x70, 0x7f, 0x66, 0x6b, | ||
8468 | 0x6c, 0x6e, 0x73, 0x7c, 0x81, 0x7d, 0x71, 0x66, | ||
8469 | 0x81, 0x7d, 0x7b, 0x7d, 0x83, 0x85, 0x83, 0x7f, | ||
8470 | 0x85, 0x83, 0x7e, 0x78, 0x72, 0x6e, 0x6a, 0x69, | ||
8471 | 0x73, 0x6f, 0x6a, 0x6a, 0x6e, 0x71, 0x72, 0x72, | ||
8472 | 0x74, 0x6f, 0x69, 0x68, 0x66, 0x60, 0x55, 0x4b, | ||
8473 | 0x3e, 0x41, 0x4d, 0x47, 0x2e, 0x32, 0x5a, 0x7e, | ||
8474 | 0x5f, 0x73, 0x92, 0x61, 0x49, 0x68, 0x6a, 0x82, | ||
8475 | 0x5a, 0x6d, 0x5e, 0x87, 0x9a, 0x83, 0xb0, 0xdb, | ||
8476 | 0x6d, 0x61, 0xa5, 0xc2, 0x75, 0x4f, 0x53, 0x2e, | ||
8477 | 0x08, 0x23, 0x4c, 0x6f, 0x7e, 0x77, 0x64, 0x54, | ||
8478 | 0x2b, 0x47, 0x70, 0x80, 0x59, 0x24, 0x1c, 0x35, | ||
8479 | 0x47, 0x0d, 0x3f, 0xbc, 0xee, 0xd8, 0xb2, 0x8d, | ||
8480 | 0x3b, 0x5a, 0x7f, 0x8e, 0x7c, 0x53, 0x29, 0x11, | ||
8481 | 0x05, 0x47, 0x87, 0xa4, 0xb1, 0xab, 0x7d, 0x46, | ||
8482 | 0x54, 0xb5, 0xb2, 0x70, 0x8d, 0xc6, 0x93, 0x32, | ||
8483 | 0x33, 0x3e, 0x55, 0x6f, 0x60, 0x3d, 0x72, 0xe3, | ||
8484 | 0xd2, 0x68, 0x60, 0x80, 0x7c, 0xb5, 0xd1, 0x81, | ||
8485 | 0x4c, 0x46, 0x3e, 0x35, 0x2e, 0x28, 0x21, 0x1d, | ||
8486 | 0x7c, 0x8b, 0x6f, 0x2c, 0x0b, 0x27, 0x4e, 0x5c, | ||
8487 | 0x56, 0x60, 0x4b, 0x5d, 0x7f, 0x4d, 0x3b, 0x8e, | ||
8488 | 0x7a, 0xca, 0xe3, 0x9d, 0x65, 0x70, 0x82, 0x76, | ||
8489 | 0x69, 0x9f, 0xd6, 0xe2, 0xc4, 0x97, 0x6f, 0x59, | ||
8490 | 0x4d, 0x4f, 0x71, 0x9a, 0x8f, 0x68, 0x71, 0x9e, | ||
8491 | 0x6d, 0x50, 0x48, 0x56, 0x4e, 0x30, 0x2d, 0x44, | ||
8492 | 0x3d, 0x46, 0x44, 0x3f, 0x4d, 0x67, 0x70, 0x66, | ||
8493 | 0x62, 0x74, 0x7c, 0x73, 0x6b, 0x6b, 0x63, 0x56, | ||
8494 | 0x65, 0x7c, 0x80, 0x53, 0x13, 0x00, 0x14, 0x3d, | ||
8495 | 0x39, 0x04, 0x21, 0x3a, 0x0e, 0x30, 0x98, 0xc2, | ||
8496 | 0x45, 0x39, 0x62, 0x9c, 0xe7, 0xd1, 0x5d, 0x48, | ||
8497 | 0x56, 0x85, 0x7e, 0x7a, 0xb6, 0xc7, 0x84, 0x4b, | ||
8498 | 0x73, 0xaf, 0xda, 0xa3, 0x4d, 0x28, 0x33, 0x55, | ||
8499 | 0x8d, 0x7d, 0x6c, 0x68, 0x6e, 0x73, 0x6f, 0x68, | ||
8500 | 0x57, 0x60, 0x75, 0x84, 0x79, 0x61, 0x5d, 0x6a, | ||
8501 | 0x71, 0x2f, 0x12, 0x36, 0x4e, 0x33, 0x19, 0x1b, | ||
8502 | 0x7a, 0xa5, 0x99, 0x7c, 0x87, 0x7b, 0x47, 0x2a, | ||
8503 | 0x53, 0x3d, 0x26, 0x1d, 0x20, 0x30, 0x4b, 0x63, | ||
8504 | 0x27, 0x34, 0x42, 0x40, 0x30, 0x2d, 0x48, 0x6a, | ||
8505 | 0x20, 0x28, 0x30, 0x97, 0xe7, 0xf5, 0xff, 0xfb, | ||
8506 | 0xb6, 0x7e, 0x67, 0x42, 0x50, 0x6b, 0x3f, 0x34, | ||
8507 | 0x20, 0x44, 0x41, 0x3d, 0x4c, 0x39, 0x2f, 0x57, | ||
8508 | 0x3d, 0x6f, 0x79, 0x44, 0x1c, 0x25, 0x2f, 0x24, | ||
8509 | 0x4f, 0x52, 0x46, 0x4b, 0x63, 0x5f, 0x5a, 0x6e, | ||
8510 | 0x8f, 0xab, 0x84, 0x5d, 0x4b, 0x6f, 0xd1, 0xf2, | ||
8511 | 0xee, 0xd7, 0xde, 0x87, 0x57, 0x75, 0x70, 0x96, | ||
8512 | 0x70, 0x6e, 0x6e, 0x73, 0x78, 0x77, 0x6f, 0x67, | ||
8513 | 0x77, 0x71, 0x6e, 0x72, 0x7a, 0x7e, 0x7a, 0x75, | ||
8514 | 0x6a, 0x70, 0x79, 0x80, 0x82, 0x7e, 0x77, 0x72, | ||
8515 | 0x77, 0x77, 0x74, 0x6f, 0x69, 0x67, 0x6a, 0x6e, | ||
8516 | 0x73, 0x6e, 0x69, 0x66, 0x65, 0x5e, 0x52, 0x48, | ||
8517 | 0x57, 0x47, 0x78, 0xa9, 0x88, 0x5e, 0x66, 0x75, | ||
8518 | 0x80, 0x6f, 0x6d, 0x41, 0x4f, 0x8f, 0x9a, 0xab, | ||
8519 | 0x8d, 0x41, 0x23, 0x73, 0x6c, 0x23, 0x35, 0x4b, | ||
8520 | 0x72, 0x29, 0x54, 0x95, 0x5a, 0x1d, 0x1f, 0x19, | ||
8521 | 0x37, 0x2e, 0x22, 0x19, 0x18, 0x1e, 0x28, 0x2f, | ||
8522 | 0x2b, 0x29, 0x35, 0x45, 0x43, 0x3e, 0x5a, 0x83, | ||
8523 | 0x0b, 0x15, 0x79, 0xda, 0xc4, 0x81, 0x5e, 0x4c, | ||
8524 | 0x17, 0x2c, 0x4f, 0x6f, 0x79, 0x63, 0x39, 0x18, | ||
8525 | 0x44, 0x8e, 0xb1, 0x9d, 0xaa, 0xd5, 0xc4, 0x85, | ||
8526 | 0x34, 0x6b, 0x6b, 0x51, 0x66, 0x76, 0x5a, 0x3d, | ||
8527 | 0x38, 0x3a, 0x60, 0x70, 0x40, 0x21, 0x45, 0x76, | ||
8528 | 0x8f, 0x50, 0x4f, 0x65, 0x61, 0x7b, 0x80, 0x44, | ||
8529 | 0xa3, 0xaa, 0xac, 0x9c, 0x77, 0x47, 0x1b, 0x01, | ||
8530 | 0x83, 0x5f, 0x4a, 0x4e, 0x43, 0x2b, 0x31, 0x4f, | ||
8531 | 0x63, 0xc0, 0xac, 0x95, 0xd7, 0xb3, 0x47, 0x37, | ||
8532 | 0x85, 0xa4, 0x8b, 0x44, 0x32, 0x56, 0x4f, 0x1c, | ||
8533 | 0x70, 0x70, 0x69, 0x61, 0x61, 0x60, 0x4a, 0x2f, | ||
8534 | 0x63, 0x64, 0x8c, 0xac, 0x7b, 0x39, 0x5e, 0xbe, | ||
8535 | 0xb3, 0x87, 0x6e, 0x73, 0x65, 0x48, 0x4d, 0x6f, | ||
8536 | 0xc8, 0xd2, 0xcf, 0xad, 0x77, 0x4a, 0x36, 0x35, | ||
8537 | 0x64, 0x46, 0x3a, 0x4d, 0x5b, 0x5a, 0x64, 0x78, | ||
8538 | 0x48, 0x34, 0x35, 0x63, 0xa2, 0xba, 0x9b, 0x71, | ||
8539 | 0x60, 0x84, 0xce, 0xec, 0xa4, 0x43, 0x21, 0x2c, | ||
8540 | 0x25, 0x00, 0x5e, 0x92, 0x7b, 0x83, 0x63, 0x34, | ||
8541 | 0x47, 0x3e, 0x10, 0x0d, 0x3d, 0x42, 0x44, 0x77, | ||
8542 | 0x6b, 0x65, 0x2e, 0x3b, 0x50, 0x59, 0x83, 0x72, | ||
8543 | 0x6b, 0x64, 0x61, 0x66, 0x6d, 0x65, 0x4f, 0x3b, | ||
8544 | 0x5c, 0x52, 0x62, 0x81, 0x80, 0x6b, 0x7a, 0xa2, | ||
8545 | 0x81, 0x47, 0x22, 0x2a, 0x2d, 0x21, 0x31, 0x55, | ||
8546 | 0x71, 0x7e, 0x68, 0x3e, 0x3a, 0x5e, 0x82, 0x91, | ||
8547 | 0x46, 0x55, 0x4b, 0x30, 0x34, 0x56, 0x66, 0x5a, | ||
8548 | 0xbe, 0xc9, 0xa7, 0x59, 0x23, 0x21, 0x2c, 0x2a, | ||
8549 | 0xa9, 0xe3, 0xd0, 0xbb, 0xb1, 0xc5, 0xf8, 0xe2, | ||
8550 | 0x97, 0x35, 0xbb, 0xa8, 0x52, 0x6b, 0x44, 0x61, | ||
8551 | 0x46, 0x4f, 0x6c, 0x62, 0x3f, 0x53, 0x60, 0x34, | ||
8552 | 0x4c, 0x86, 0x8e, 0x59, 0x4b, 0x6f, 0x6c, 0x3e, | ||
8553 | 0x34, 0x5c, 0x3f, 0x1d, 0x39, 0x44, 0x4e, 0x83, | ||
8554 | 0x4f, 0x44, 0xa3, 0x91, 0x7a, 0xe0, 0xd7, 0x7e, | ||
8555 | 0x43, 0x3a, 0xb4, 0x95, 0x47, 0x69, 0x68, 0x7e, | ||
8556 | 0x88, 0x82, 0x7c, 0x7c, 0x81, 0x84, 0x82, 0x7e, | ||
8557 | 0x7e, 0x78, 0x74, 0x78, 0x82, 0x87, 0x82, 0x7c, | ||
8558 | 0x67, 0x6e, 0x79, 0x83, 0x86, 0x83, 0x7d, 0x78, | ||
8559 | 0x6f, 0x74, 0x78, 0x74, 0x6f, 0x6f, 0x78, 0x82, | ||
8560 | 0x71, 0x6b, 0x66, 0x63, 0x61, 0x5a, 0x4e, 0x45, | ||
8561 | 0x39, 0x3b, 0x43, 0x5a, 0x88, 0xac, 0x99, 0x69, | ||
8562 | 0x68, 0x55, 0x69, 0x47, 0x18, 0x09, 0x14, 0x5d, | ||
8563 | 0x66, 0x78, 0xaa, 0xda, 0x8b, 0x3e, 0x51, 0x39, | ||
8564 | 0x3a, 0x69, 0xc0, 0xd0, 0x7f, 0x42, 0x29, 0x07, | ||
8565 | 0x51, 0x62, 0x7a, 0x89, 0x86, 0x72, 0x56, 0x43, | ||
8566 | 0x27, 0x2c, 0x3a, 0x4e, 0x5a, 0x56, 0x49, 0x40, | ||
8567 | 0x5a, 0x67, 0x79, 0x5e, 0x35, 0x40, 0x3d, 0x05, | ||
8568 | 0x38, 0x3c, 0x4d, 0x6a, 0x7d, 0x70, 0x45, 0x1f, | ||
8569 | 0xd2, 0xff, 0xe0, 0x82, 0x7b, 0xcd, 0xe3, 0xaf, | ||
8570 | 0x7b, 0x6e, 0x57, 0x57, 0x56, 0x2d, 0x21, 0x4d, | ||
8571 | 0x34, 0x40, 0x64, 0x5b, 0x37, 0x4e, 0x59, 0x22, | ||
8572 | 0x18, 0x35, 0x5a, 0x72, 0x77, 0x74, 0x73, 0x75, | ||
8573 | 0x85, 0xad, 0xdd, 0xec, 0xc6, 0x78, 0x24, 0x00, | ||
8574 | 0xb5, 0x8c, 0x5e, 0x4d, 0x5f, 0x7b, 0x8c, 0x8f, | ||
8575 | 0x71, 0x8c, 0xbd, 0xf3, 0xee, 0x96, 0x4e, 0x4d, | ||
8576 | 0x6c, 0x80, 0x6e, 0x3f, 0x3e, 0x6a, 0x7a, 0x65, | ||
8577 | 0x4f, 0x39, 0x20, 0x36, 0x8e, 0xd6, 0xbd, 0x75, | ||
8578 | 0x5f, 0x81, 0x88, 0x57, 0x1c, 0x14, 0x40, 0x6e, | ||
8579 | 0x8d, 0x5b, 0x1d, 0x06, 0x29, 0x67, 0x91, 0x9e, | ||
8580 | 0x88, 0xdc, 0xb4, 0x56, 0x5a, 0x6c, 0x5b, 0x61, | ||
8581 | 0x8c, 0xc6, 0xa3, 0x2a, 0x0d, 0x6c, 0xaa, 0x98, | ||
8582 | 0x4b, 0x86, 0x8e, 0x99, 0xc7, 0xa1, 0x4a, 0x30, | ||
8583 | 0x5a, 0xbb, 0xcc, 0x9a, 0x76, 0x4e, 0x59, 0xa8, | ||
8584 | 0xab, 0xb7, 0xc6, 0xb0, 0x63, 0x27, 0x46, 0x8e, | ||
8585 | 0x6e, 0x8b, 0x92, 0x66, 0x27, 0x01, 0x00, 0x01, | ||
8586 | 0x8b, 0x84, 0x7b, 0x5a, 0x56, 0x9b, 0xad, 0x65, | ||
8587 | 0x3e, 0x66, 0x8c, 0x85, 0x78, 0x88, 0x7d, 0x49, | ||
8588 | 0x66, 0xff, 0xb5, 0x5e, 0x90, 0x93, 0x89, 0x60, | ||
8589 | 0x26, 0x2a, 0x45, 0x63, 0x5a, 0x34, 0x20, 0x27, | ||
8590 | 0x2a, 0x37, 0x1c, 0x1c, 0x36, 0x15, 0x18, 0x6f, | ||
8591 | 0x4f, 0x65, 0x5b, 0x49, 0x75, 0xb0, 0x91, 0x3e, | ||
8592 | 0x09, 0x89, 0xc9, 0x89, 0x50, 0x6a, 0x8c, 0x87, | ||
8593 | 0x8a, 0x84, 0x9e, 0xc4, 0xb3, 0x7d, 0x6c, 0x84, | ||
8594 | 0x99, 0x63, 0x68, 0x94, 0x6e, 0x1c, 0x36, 0x9d, | ||
8595 | 0x7c, 0x7c, 0x75, 0x67, 0x59, 0x55, 0x5f, 0x69, | ||
8596 | 0x75, 0x7f, 0x63, 0x4c, 0x4b, 0x2d, 0x1d, 0x3e, | ||
8597 | 0x4a, 0x58, 0x63, 0x62, 0x59, 0x5a, 0x69, 0x79, | ||
8598 | 0x70, 0x6c, 0x69, 0x59, 0x36, 0x14, 0x0d, 0x1d, | ||
8599 | 0x1d, 0x45, 0x4b, 0x4a, 0x6d, 0x83, 0x79, 0x74, | ||
8600 | 0x84, 0x7c, 0x74, 0x71, 0x74, 0x75, 0x71, 0x6c, | ||
8601 | 0x71, 0x74, 0x79, 0x7f, 0x83, 0x86, 0x87, 0x87, | ||
8602 | 0x7c, 0x7e, 0x81, 0x82, 0x80, 0x7c, 0x78, 0x75, | ||
8603 | 0x80, 0x7d, 0x79, 0x76, 0x75, 0x77, 0x7a, 0x7c, | ||
8604 | 0x73, 0x69, 0x5d, 0x59, 0x5d, 0x62, 0x63, 0x62, | ||
8605 | 0x4e, 0x42, 0x3a, 0x39, 0x71, 0xdc, 0xd7, 0x61, | ||
8606 | 0x15, 0x12, 0x3e, 0x8c, 0xa9, 0x80, 0x50, 0x41, | ||
8607 | 0x67, 0xa3, 0x90, 0x51, 0x49, 0x4e, 0x3e, 0x3b, | ||
8608 | 0x3b, 0x90, 0xb1, 0x64, 0x0a, 0x03, 0x3b, 0x6a, | ||
8609 | 0xb6, 0xa1, 0x98, 0x74, 0x4f, 0x70, 0x8c, 0x69, | ||
8610 | 0x29, 0x67, 0x52, 0x31, 0x5b, 0x68, 0x4a, 0x4d, | ||
8611 | 0x88, 0x73, 0x76, 0x51, 0x1d, 0x40, 0x56, 0x16, | ||
8612 | 0x8a, 0x5d, 0x62, 0x6f, 0x48, 0x31, 0x42, 0x48, | ||
8613 | 0x80, 0xbb, 0xa1, 0x63, 0x5a, 0x4f, 0x4a, 0x6e, | ||
8614 | 0x4c, 0x4c, 0x53, 0x40, 0x26, 0x39, 0x41, 0x19, | ||
8615 | 0x57, 0x65, 0x50, 0x2c, 0x3b, 0x6a, 0x68, 0x3e, | ||
8616 | 0x51, 0x69, 0x6a, 0x4e, 0x41, 0x4f, 0x55, 0x4a, | ||
8617 | 0x8e, 0xa0, 0x96, 0x7d, 0x9b, 0x6e, 0x09, 0x23, | ||
8618 | 0x8c, 0x6b, 0x48, 0x41, 0x59, 0x7a, 0x90, 0x98, | ||
8619 | 0x8c, 0x85, 0x7c, 0x80, 0x89, 0x8f, 0xac, 0xd8, | ||
8620 | 0xfa, 0xe2, 0xac, 0x78, 0x77, 0xaa, 0xdf, 0xf7, | ||
8621 | 0xbe, 0xd8, 0xc5, 0xa4, 0xcc, 0xff, 0xd5, 0x66, | ||
8622 | 0x34, 0x66, 0x85, 0x96, 0xcd, 0xff, 0xd6, 0x7d, | ||
8623 | 0x54, 0x6c, 0x8b, 0x84, 0x46, 0x1a, 0x48, 0x9a, | ||
8624 | 0x92, 0x8e, 0x46, 0x04, 0x21, 0x5d, 0x70, 0x6f, | ||
8625 | 0xfa, 0xff, 0xec, 0xca, 0xc5, 0xca, 0xa6, 0x6e, | ||
8626 | 0x63, 0x68, 0x49, 0x4d, 0x78, 0x5e, 0x2b, 0x31, | ||
8627 | 0x62, 0xa9, 0x82, 0x38, 0x65, 0xaa, 0xa1, 0x86, | ||
8628 | 0x59, 0x8e, 0x9e, 0x6c, 0x3f, 0x4a, 0x6a, 0x79, | ||
8629 | 0x37, 0x4c, 0x40, 0x40, 0xa1, 0xff, 0xe6, 0x6d, | ||
8630 | 0x79, 0x5c, 0xa1, 0xf7, 0xd9, 0x90, 0x71, 0x68, | ||
8631 | 0x3e, 0x4c, 0x5e, 0x73, 0x9a, 0xbc, 0x9c, 0x55, | ||
8632 | 0xa9, 0xbd, 0x44, 0x44, 0x90, 0x70, 0x40, 0x09, | ||
8633 | 0x0e, 0x20, 0x54, 0x7e, 0x64, 0x29, 0x21, 0x44, | ||
8634 | 0x56, 0x3a, 0x28, 0x53, 0x83, 0x61, 0x23, 0x14, | ||
8635 | 0x59, 0xa0, 0xc5, 0x9e, 0x70, 0x67, 0x63, 0x52, | ||
8636 | 0x46, 0x4e, 0x4a, 0x30, 0x12, 0x0c, 0x25, 0x41, | ||
8637 | 0x0f, 0x51, 0xb2, 0xf0, 0xe0, 0xa4, 0x7b, 0x76, | ||
8638 | 0x99, 0x40, 0x19, 0x67, 0xc8, 0xd1, 0x8f, 0x52, | ||
8639 | 0x21, 0x26, 0x32, 0x43, 0x54, 0x5e, 0x5f, 0x5c, | ||
8640 | 0x89, 0x3d, 0x09, 0x3d, 0x7b, 0x60, 0x5d, 0xa7, | ||
8641 | 0x4e, 0x40, 0x3c, 0x52, 0x6f, 0x76, 0x5e, 0x42, | ||
8642 | 0x82, 0x46, 0x35, 0x25, 0x34, 0x4a, 0x48, 0x75, | ||
8643 | 0x8f, 0x50, 0x35, 0x51, 0x5f, 0x5a, 0x6d, 0x91, | ||
8644 | 0x7d, 0x78, 0x75, 0x78, 0x81, 0x86, 0x85, 0x82, | ||
8645 | 0x6c, 0x6b, 0x6a, 0x6b, 0x70, 0x77, 0x7e, 0x83, | ||
8646 | 0x7b, 0x7c, 0x7f, 0x80, 0x7e, 0x7b, 0x76, 0x73, | ||
8647 | 0x6a, 0x69, 0x68, 0x69, 0x6c, 0x71, 0x77, 0x7b, | ||
8648 | 0x6e, 0x63, 0x57, 0x52, 0x54, 0x58, 0x58, 0x56, | ||
8649 | 0x4d, 0x4d, 0x68, 0x5f, 0x24, 0x15, 0x29, 0x24, | ||
8650 | 0x6b, 0x4e, 0x41, 0x4d, 0x50, 0x54, 0x7d, 0xb3, | ||
8651 | 0x18, 0x3b, 0x31, 0x17, 0x11, 0x00, 0x08, 0x3a, | ||
8652 | 0x2d, 0x2d, 0x2f, 0x30, 0x2e, 0x39, 0x5c, 0x80, | ||
8653 | 0x56, 0x50, 0x5f, 0x54, 0x41, 0x6c, 0x8c, 0x68, | ||
8654 | 0x26, 0x3f, 0x46, 0x7e, 0xd8, 0xd0, 0x8f, 0x81, | ||
8655 | 0x78, 0x75, 0x95, 0x9d, 0x8e, 0xad, 0xa9, 0x5c, | ||
8656 | 0x1b, 0x3c, 0x66, 0x52, 0x23, 0x39, 0x61, 0x56, | ||
8657 | 0x48, 0x38, 0x16, 0x20, 0x3f, 0x2e, 0x42, 0x9a, | ||
8658 | 0x42, 0x19, 0x3d, 0x65, 0x2a, 0x05, 0x6d, 0xf3, | ||
8659 | 0x7b, 0x71, 0x5c, 0x4b, 0x52, 0x62, 0x5c, 0x49, | ||
8660 | 0x3a, 0x31, 0x2e, 0x37, 0x41, 0x44, 0x44, 0x46, | ||
8661 | 0x97, 0xb0, 0xa3, 0x73, 0x81, 0x61, 0x07, 0x1b, | ||
8662 | 0x9c, 0xa5, 0xb9, 0xcf, 0xd8, 0xc6, 0xa0, 0x81, | ||
8663 | 0x76, 0x67, 0x63, 0x7f, 0xb1, 0xcd, 0xa8, 0x69, | ||
8664 | 0x6f, 0x69, 0x74, 0x89, 0x8a, 0x76, 0x6c, 0x73, | ||
8665 | 0x8c, 0xd7, 0xdf, 0xa5, 0xb1, 0xec, 0xc2, 0x51, | ||
8666 | 0x77, 0x6b, 0x80, 0xb5, 0xd3, 0xc0, 0xa0, 0x91, | ||
8667 | 0x91, 0x8e, 0xbb, 0xf1, 0xd0, 0x75, 0x56, 0x78, | ||
8668 | 0x6d, 0x45, 0x2f, 0x2a, 0x38, 0x6d, 0x94, 0x89, | ||
8669 | 0x5f, 0x39, 0x22, 0x27, 0x27, 0x26, 0x46, 0x74, | ||
8670 | 0x90, 0x51, 0x26, 0x69, 0xca, 0xbf, 0x7c, 0x6c, | ||
8671 | 0x64, 0x57, 0x2e, 0x39, 0x85, 0x9b, 0x69, 0x45, | ||
8672 | 0x52, 0x71, 0x6e, 0x41, 0x29, 0x39, 0x46, 0x3f, | ||
8673 | 0x48, 0x3c, 0x3f, 0x6a, 0xac, 0xcb, 0xa3, 0x68, | ||
8674 | 0x43, 0x62, 0xa5, 0xb5, 0x81, 0x69, 0x60, 0x3a, | ||
8675 | 0x4e, 0x4c, 0x40, 0x4c, 0x85, 0xb7, 0xb2, 0x94, | ||
8676 | 0xc1, 0xad, 0x64, 0x49, 0x1c, 0x00, 0x1e, 0x41, | ||
8677 | 0x4c, 0x16, 0x19, 0x62, 0x82, 0x57, 0x35, 0x3d, | ||
8678 | 0x66, 0x58, 0x71, 0x87, 0x6d, 0x5b, 0x66, 0x6c, | ||
8679 | 0x57, 0x57, 0x4e, 0x3e, 0x35, 0x30, 0x23, 0x12, | ||
8680 | 0x38, 0x1f, 0x13, 0x27, 0x3d, 0x3b, 0x2a, 0x1d, | ||
8681 | 0x3a, 0x87, 0xd4, 0xea, 0xe0, 0xd7, 0xd3, 0xcf, | ||
8682 | 0x6e, 0x47, 0x56, 0x82, 0x60, 0x13, 0x20, 0x73, | ||
8683 | 0x78, 0x68, 0x5c, 0x61, 0x68, 0x59, 0x32, 0x0f, | ||
8684 | 0x38, 0x54, 0x58, 0x65, 0x7f, 0x70, 0x64, 0x86, | ||
8685 | 0x60, 0x56, 0x43, 0x2d, 0x1f, 0x21, 0x2e, 0x3b, | ||
8686 | 0x6d, 0x7e, 0x6e, 0x6d, 0xe7, 0xd8, 0x3e, 0x59, | ||
8687 | 0x44, 0x16, 0x24, 0x59, 0x6d, 0x74, 0x74, 0x60, | ||
8688 | 0x7b, 0x76, 0x72, 0x74, 0x79, 0x7a, 0x76, 0x70, | ||
8689 | 0x64, 0x67, 0x6d, 0x74, 0x7b, 0x81, 0x85, 0x87, | ||
8690 | 0x8a, 0x8b, 0x8e, 0x8f, 0x8d, 0x8a, 0x85, 0x82, | ||
8691 | 0x88, 0x84, 0x7c, 0x73, 0x6d, 0x69, 0x68, 0x68, | ||
8692 | 0x71, 0x65, 0x58, 0x50, 0x51, 0x52, 0x51, 0x4f, | ||
8693 | 0x3f, 0x31, 0x61, 0x8c, 0x5e, 0x1f, 0x16, 0x21, | ||
8694 | 0x3d, 0x38, 0x45, 0x5d, 0x58, 0x33, 0x17, 0x12, | ||
8695 | 0x43, 0x81, 0xc8, 0xff, 0xf6, 0x84, 0x32, 0x44, | ||
8696 | 0x4e, 0x21, 0x2b, 0x7c, 0xb2, 0x95, 0x5d, 0x42, | ||
8697 | 0x57, 0x47, 0x4b, 0x44, 0x49, 0x9c, 0xe7, 0xdf, | ||
8698 | 0xb8, 0x90, 0x67, 0x7a, 0x91, 0x54, 0x11, 0x14, | ||
8699 | 0x45, 0x33, 0x36, 0x35, 0x38, 0x63, 0x76, 0x4f, | ||
8700 | 0x3a, 0x31, 0x39, 0x32, 0x2a, 0x4c, 0x52, 0x1c, | ||
8701 | 0x11, 0x48, 0x4c, 0x25, 0x10, 0x12, 0x3e, 0x83, | ||
8702 | 0x4b, 0x00, 0x00, 0x47, 0x8f, 0xb7, 0xc2, 0xb1, | ||
8703 | 0x4a, 0x35, 0x28, 0x2d, 0x34, 0x31, 0x2e, 0x31, | ||
8704 | 0x50, 0x34, 0x34, 0x58, 0x67, 0x4e, 0x39, 0x3b, | ||
8705 | 0xa9, 0xca, 0xb9, 0x69, 0x61, 0x54, 0x0c, 0x14, | ||
8706 | 0x5f, 0x64, 0x6d, 0x77, 0x7a, 0x71, 0x61, 0x54, | ||
8707 | 0x90, 0xbc, 0xe2, 0xc1, 0x89, 0x8b, 0x93, 0x72, | ||
8708 | 0x38, 0x48, 0x8e, 0xe2, 0xe5, 0x96, 0x54, 0x46, | ||
8709 | 0x00, 0x36, 0x51, 0x37, 0x43, 0x79, 0x7b, 0x4b, | ||
8710 | 0xa3, 0x6b, 0x59, 0x69, 0x41, 0x00, 0x00, 0x44, | ||
8711 | 0x8e, 0x8c, 0xb0, 0xd9, 0xba, 0x61, 0x2a, 0x2b, | ||
8712 | 0x40, 0x36, 0x79, 0x9f, 0x6b, 0x5b, 0x6b, 0x50, | ||
8713 | 0x50, 0x3c, 0x43, 0x63, 0x68, 0x58, 0x67, 0x8e, | ||
8714 | 0x48, 0x40, 0x57, 0x7b, 0x62, 0x1f, 0x2c, 0x7c, | ||
8715 | 0xb9, 0x8b, 0x6d, 0x84, 0x99, 0x7c, 0x5d, 0x61, | ||
8716 | 0x6a, 0x44, 0x34, 0x40, 0x3c, 0x23, 0x22, 0x39, | ||
8717 | 0x2d, 0x3a, 0x63, 0x85, 0x6e, 0x38, 0x30, 0x4e, | ||
8718 | 0x6d, 0x3a, 0x49, 0x64, 0x38, 0x19, 0x35, 0x4d, | ||
8719 | 0x2b, 0x63, 0x85, 0x97, 0xa5, 0x87, 0x56, 0x47, | ||
8720 | 0x77, 0x5a, 0x6c, 0x9e, 0xac, 0xcd, 0xea, 0xba, | ||
8721 | 0x39, 0x1e, 0x33, 0x62, 0x4e, 0x13, 0x20, 0x65, | ||
8722 | 0x79, 0x64, 0x9d, 0xcf, 0xb9, 0xbc, 0xc0, 0x90, | ||
8723 | 0x84, 0x74, 0x6d, 0x73, 0x74, 0x6a, 0x64, 0x67, | ||
8724 | 0x21, 0x2c, 0x22, 0x19, 0x3d, 0x67, 0x4a, 0x09, | ||
8725 | 0x8f, 0x74, 0x42, 0x2b, 0x55, 0x81, 0x58, 0x07, | ||
8726 | 0x3f, 0x20, 0x2c, 0x59, 0x56, 0x30, 0x44, 0x84, | ||
8727 | 0x5e, 0x43, 0x30, 0x42, 0x67, 0x75, 0x5d, 0x3d, | ||
8728 | 0x35, 0x77, 0x74, 0x43, 0x3d, 0x48, 0x56, 0x74, | ||
8729 | 0x56, 0x63, 0x69, 0x60, 0x56, 0x63, 0x8a, 0xad, | ||
8730 | 0x76, 0x55, 0x38, 0x1f, 0x4c, 0x7d, 0x6b, 0x6d, | ||
8731 | 0x57, 0x2b, 0x33, 0x65, 0x79, 0x74, 0x75, 0x77, | ||
8732 | 0x65, 0x63, 0x65, 0x6e, 0x79, 0x7e, 0x7c, 0x77, | ||
8733 | 0x78, 0x80, 0x89, 0x8d, 0x86, 0x76, 0x62, 0x55, | ||
8734 | 0x62, 0x64, 0x66, 0x67, 0x66, 0x62, 0x5d, 0x5b, | ||
8735 | 0x4e, 0x50, 0x55, 0x5d, 0x69, 0x76, 0x81, 0x88, | ||
8736 | 0x7a, 0x6e, 0x5f, 0x57, 0x56, 0x56, 0x54, 0x51, | ||
8737 | 0x36, 0x2f, 0x41, 0x47, 0x30, 0x3f, 0x84, 0xbc, | ||
8738 | 0xb9, 0xab, 0xb6, 0xe1, 0xff, 0xe2, 0x93, 0x50, | ||
8739 | 0x88, 0x98, 0xa7, 0xce, 0xe2, 0xa9, 0x83, 0xa8, | ||
8740 | 0x96, 0x67, 0x52, 0x73, 0x92, 0x84, 0x60, 0x4b, | ||
8741 | 0x3d, 0x4a, 0x72, 0x75, 0x58, 0x62, 0x5a, 0x1b, | ||
8742 | 0x36, 0x2d, 0x24, 0x26, 0x24, 0x1c, 0x35, 0x68, | ||
8743 | 0x29, 0x32, 0x44, 0x50, 0x5e, 0x8a, 0xba, 0xcb, | ||
8744 | 0x84, 0x32, 0x21, 0x4f, 0x6b, 0x7e, 0x85, 0x70, | ||
8745 | 0x5e, 0x96, 0x95, 0x4f, 0x26, 0x42, 0x7c, 0xa5, | ||
8746 | 0x93, 0xc0, 0xf0, 0xdd, 0xa6, 0x95, 0x78, 0x36, | ||
8747 | 0x46, 0x48, 0x4a, 0x50, 0x5c, 0x68, 0x6e, 0x6e, | ||
8748 | 0x69, 0x54, 0x4a, 0x54, 0x5c, 0x5c, 0x69, 0x7e, | ||
8749 | 0xbf, 0xe0, 0xcc, 0x68, 0x4f, 0x53, 0x1a, 0x15, | ||
8750 | 0x5d, 0x69, 0x7b, 0x8c, 0x9c, 0xab, 0xba, 0xc3, | ||
8751 | 0xb5, 0xbb, 0xc5, 0x8b, 0x3d, 0x54, 0x81, 0x67, | ||
8752 | 0x86, 0x65, 0x66, 0x8a, 0x8f, 0x74, 0x7a, 0x9e, | ||
8753 | 0xc2, 0xb9, 0xa4, 0x83, 0x5d, 0x47, 0x4b, 0x5a, | ||
8754 | 0x48, 0x2f, 0x18, 0x1a, 0x31, 0x41, 0x37, 0x24, | ||
8755 | 0x57, 0x53, 0x5e, 0x7f, 0x9d, 0x9d, 0x82, 0x68, | ||
8756 | 0x55, 0x4a, 0x8b, 0xac, 0x6e, 0x52, 0x57, 0x34, | ||
8757 | 0x22, 0x82, 0xd2, 0xc0, 0x74, 0x49, 0x60, 0x88, | ||
8758 | 0x3c, 0x32, 0x51, 0x65, 0x2f, 0x11, 0x71, 0xf4, | ||
8759 | 0xe1, 0xc7, 0x8f, 0x4c, 0x3b, 0x68, 0x86, 0x77, | ||
8760 | 0x4c, 0x25, 0x19, 0x38, 0x4b, 0x43, 0x47, 0x5c, | ||
8761 | 0x4a, 0x7c, 0x95, 0x81, 0x72, 0x77, 0x69, 0x4a, | ||
8762 | 0x74, 0x51, 0x56, 0x5d, 0x4d, 0x58, 0x5d, 0x37, | ||
8763 | 0x45, 0x5c, 0x46, 0x43, 0x72, 0x7b, 0x86, 0xbf, | ||
8764 | 0x73, 0x36, 0x5d, 0x81, 0x75, 0xab, 0xe5, 0xe1, | ||
8765 | 0x61, 0x6a, 0x97, 0xbd, 0x96, 0x51, 0x58, 0x95, | ||
8766 | 0x9a, 0xb5, 0xf2, 0xd0, 0x4b, 0x1d, 0x3c, 0x36, | ||
8767 | 0x18, 0x56, 0x98, 0x9f, 0x71, 0x58, 0x85, 0xc7, | ||
8768 | 0xb4, 0xa5, 0x7a, 0x4e, 0x50, 0x70, 0x78, 0x66, | ||
8769 | 0x00, 0x35, 0x56, 0x3f, 0x2f, 0x40, 0x44, 0x32, | ||
8770 | 0x4f, 0xd8, 0xff, 0xbb, 0x6f, 0x8a, 0xb6, 0xb6, | ||
8771 | 0xd2, 0x9d, 0x64, 0x4f, 0x5b, 0x60, 0x4b, 0x30, | ||
8772 | 0x33, 0x2e, 0x1f, 0x38, 0x5f, 0x4e, 0x46, 0x76, | ||
8773 | 0x56, 0x5c, 0x74, 0x9c, 0xbc, 0xb8, 0x93, 0x6e, | ||
8774 | 0x3e, 0x71, 0x5f, 0xa0, 0xff, 0xd5, 0x78, 0x52, | ||
8775 | 0x00, 0x0c, 0x10, 0x25, 0x5d, 0x80, 0x77, 0x6a, | ||
8776 | 0x86, 0x81, 0x7e, 0x7f, 0x7f, 0x79, 0x6d, 0x62, | ||
8777 | 0x5d, 0x67, 0x75, 0x7f, 0x7f, 0x75, 0x66, 0x5c, | ||
8778 | 0x6c, 0x6e, 0x70, 0x71, 0x6f, 0x6c, 0x67, 0x64, | ||
8779 | 0x5e, 0x5d, 0x5d, 0x5e, 0x62, 0x68, 0x6f, 0x73, | ||
8780 | 0x7b, 0x6f, 0x61, 0x58, 0x57, 0x58, 0x56, 0x53, | ||
8781 | 0x4f, 0x42, 0x4a, 0x70, 0xa5, 0xc6, 0xaa, 0x70, | ||
8782 | 0x5f, 0x64, 0x7a, 0xa7, 0xd6, 0xde, 0xb0, 0x7b, | ||
8783 | 0x99, 0xac, 0xab, 0xbd, 0xd2, 0x97, 0x3f, 0x23, | ||
8784 | 0x3e, 0x5a, 0x5c, 0x36, 0x19, 0x1f, 0x2a, 0x28, | ||
8785 | 0x36, 0x36, 0x4d, 0x44, 0x29, 0x44, 0x50, 0x20, | ||
8786 | 0x3f, 0x52, 0x54, 0x2b, 0x04, 0x0f, 0x27, 0x27, | ||
8787 | 0xca, 0xdb, 0xd4, 0xaa, 0x71, 0x43, 0x46, 0x6a, | ||
8788 | 0x4c, 0x14, 0x10, 0x22, 0x15, 0x22, 0x54, 0x6d, | ||
8789 | 0x29, 0x20, 0x5c, 0xc6, 0xfb, 0xeb, 0xca, 0xb7, | ||
8790 | 0xa1, 0x9d, 0xca, 0xdf, 0x9f, 0x5a, 0x43, 0x38, | ||
8791 | 0x24, 0x48, 0x53, 0x3e, 0x44, 0x66, 0x6d, 0x55, | ||
8792 | 0x4c, 0x54, 0x44, 0x23, 0x25, 0x62, 0xb2, 0xe4, | ||
8793 | 0xcd, 0xdc, 0xc9, 0x6a, 0x4d, 0x5b, 0x2b, 0x1a, | ||
8794 | 0x57, 0x70, 0x8f, 0xa0, 0xa3, 0xa2, 0xa5, 0xab, | ||
8795 | 0x3e, 0x07, 0x22, 0x5c, 0x86, 0xdc, 0xff, 0xb6, | ||
8796 | 0xd7, 0x9d, 0x61, 0x46, 0x4d, 0x74, 0xba, 0xf9, | ||
8797 | 0xdc, 0xa5, 0x79, 0x63, 0x39, 0x0a, 0x10, 0x3b, | ||
8798 | 0x8b, 0x68, 0x4c, 0x55, 0x70, 0x7b, 0x6d, 0x5b, | ||
8799 | 0x9d, 0x7b, 0x52, 0x47, 0x5f, 0x6c, 0x49, 0x19, | ||
8800 | 0x24, 0x08, 0x05, 0x11, 0x26, 0x58, 0x77, 0x64, | ||
8801 | 0x3e, 0x8d, 0xa2, 0x52, 0x08, 0x0e, 0x32, 0x40, | ||
8802 | 0x6b, 0x28, 0x20, 0x38, 0x26, 0x21, 0x46, 0x61, | ||
8803 | 0xae, 0x61, 0x38, 0x37, 0x38, 0x51, 0x66, 0x56, | ||
8804 | 0x48, 0x54, 0x47, 0x2b, 0x33, 0x54, 0x57, 0x3d, | ||
8805 | 0x40, 0x44, 0x4d, 0x4f, 0x3b, 0x22, 0x1d, 0x29, | ||
8806 | 0x58, 0x72, 0x74, 0x41, 0x3f, 0x96, 0x98, 0x27, | ||
8807 | 0x45, 0x4d, 0x2c, 0x51, 0xb8, 0xbb, 0x98, 0xc0, | ||
8808 | 0x9d, 0x23, 0x4e, 0x9d, 0xa7, 0x97, 0x64, 0x50, | ||
8809 | 0x82, 0x8f, 0xbb, 0xef, 0xf8, 0xce, 0x9d, 0x86, | ||
8810 | 0x6e, 0x58, 0x4e, 0x44, 0x45, 0x64, 0x67, 0x3c, | ||
8811 | 0x77, 0x6e, 0x5b, 0x4d, 0x56, 0x71, 0x84, 0x89, | ||
8812 | 0x99, 0x60, 0x49, 0x5e, 0x53, 0x2e, 0x3d, 0x75, | ||
8813 | 0x41, 0xa5, 0xe8, 0xb4, 0x47, 0x15, 0x36, 0x69, | ||
8814 | 0x85, 0x7d, 0x40, 0x00, 0x10, 0x5f, 0x71, 0x46, | ||
8815 | 0xe1, 0xb2, 0x79, 0x5c, 0x60, 0x6c, 0x6d, 0x67, | ||
8816 | 0x02, 0x42, 0x5b, 0x5a, 0x67, 0x59, 0x46, 0x58, | ||
8817 | 0x5a, 0x68, 0x7d, 0x8c, 0x88, 0x6c, 0x44, 0x26, | ||
8818 | 0x7e, 0x78, 0x8a, 0xba, 0x61, 0x16, 0x5d, 0x61, | ||
8819 | 0x7a, 0xec, 0xfd, 0xa5, 0x73, 0x76, 0x79, 0x78, | ||
8820 | 0x70, 0x6f, 0x72, 0x79, 0x7f, 0x7d, 0x73, 0x69, | ||
8821 | 0x77, 0x77, 0x77, 0x76, 0x74, 0x72, 0x70, 0x6f, | ||
8822 | 0x76, 0x78, 0x7a, 0x7c, 0x7a, 0x76, 0x72, 0x6f, | ||
8823 | 0x70, 0x6e, 0x6a, 0x68, 0x68, 0x6a, 0x6d, 0x70, | ||
8824 | 0x74, 0x69, 0x5b, 0x54, 0x54, 0x56, 0x55, 0x53, | ||
8825 | 0x3b, 0x3b, 0x54, 0x88, 0xb7, 0xb0, 0x69, 0x1e, | ||
8826 | 0x2c, 0x6f, 0xb1, 0xc5, 0xc1, 0xb8, 0xa5, 0x8f, | ||
8827 | 0x7a, 0x7b, 0x5d, 0x5a, 0x79, 0x67, 0x41, 0x44, | ||
8828 | 0x6c, 0xbf, 0xe3, 0xa4, 0x57, 0x40, 0x43, 0x3e, | ||
8829 | 0x59, 0x72, 0xab, 0xb7, 0x91, 0x83, 0x5e, 0x0b, | ||
8830 | 0x68, 0x5a, 0x46, 0x1a, 0x04, 0x38, 0x57, 0x2e, | ||
8831 | 0x25, 0x76, 0xc2, 0xe8, 0xcf, 0x66, 0x15, 0x19, | ||
8832 | 0xe1, 0xbd, 0x91, 0x4a, 0x0b, 0x12, 0x19, 0x00, | ||
8833 | 0x46, 0x14, 0x0b, 0x25, 0x3b, 0x60, 0x7b, 0x6e, | ||
8834 | 0x9b, 0x86, 0xae, 0xcb, 0x82, 0x32, 0x30, 0x4c, | ||
8835 | 0x3d, 0x6e, 0x78, 0x50, 0x45, 0x62, 0x61, 0x3e, | ||
8836 | 0x2d, 0x59, 0x67, 0x47, 0x3c, 0x6e, 0xb0, 0xd4, | ||
8837 | 0xc5, 0xb6, 0xa7, 0x65, 0x53, 0x62, 0x31, 0x17, | ||
8838 | 0x80, 0x84, 0x7e, 0x69, 0x53, 0x51, 0x66, 0x7c, | ||
8839 | 0x9d, 0x67, 0x95, 0xb9, 0x86, 0x9c, 0xd8, 0xc4, | ||
8840 | 0x68, 0x65, 0x4e, 0x33, 0x3c, 0x65, 0x88, 0x92, | ||
8841 | 0x39, 0x25, 0x1f, 0x34, 0x4e, 0x62, 0x7c, 0x95, | ||
8842 | 0x4d, 0x45, 0x55, 0x75, 0x83, 0x8f, 0xc1, 0xfd, | ||
8843 | 0x84, 0x86, 0x8b, 0x83, 0x61, 0x40, 0x44, 0x5e, | ||
8844 | 0x48, 0x5f, 0x41, 0x2a, 0x66, 0xb0, 0xc5, 0xc0, | ||
8845 | 0x91, 0x74, 0x37, 0x14, 0x3c, 0x69, 0x34, 0x00, | ||
8846 | 0x27, 0x1c, 0x47, 0x5c, 0x32, 0x36, 0x60, 0x61, | ||
8847 | 0x85, 0x17, 0x23, 0x82, 0x89, 0x60, 0x55, 0x4f, | ||
8848 | 0x60, 0x72, 0x64, 0x37, 0x25, 0x36, 0x38, 0x24, | ||
8849 | 0x61, 0x3a, 0x49, 0x76, 0x59, 0x16, 0x36, 0x98, | ||
8850 | 0x75, 0x35, 0x3d, 0x66, 0x59, 0x51, 0x6f, 0x7f, | ||
8851 | 0xd7, 0xcc, 0x81, 0x7f, 0xc6, 0x9a, 0x56, 0x83, | ||
8852 | 0xc2, 0x7c, 0x97, 0x6d, 0x1f, 0x00, 0x00, 0x31, | ||
8853 | 0x31, 0x63, 0x94, 0xaa, 0xb3, 0xb6, 0xa1, 0x82, | ||
8854 | 0x27, 0x81, 0xb0, 0xa4, 0x99, 0x86, 0x6c, 0x65, | ||
8855 | 0x2e, 0x25, 0x0d, 0x12, 0x5c, 0xb2, 0xbb, 0x8e, | ||
8856 | 0x6f, 0x37, 0x33, 0x67, 0x6b, 0x3c, 0x3b, 0x6d, | ||
8857 | 0x60, 0x3a, 0x21, 0x2c, 0x40, 0x43, 0x41, 0x45, | ||
8858 | 0x09, 0x00, 0x2c, 0xb6, 0xff, 0xe9, 0x98, 0x6b, | ||
8859 | 0x7b, 0x66, 0x49, 0x36, 0x34, 0x3e, 0x4b, 0x54, | ||
8860 | 0x44, 0xbc, 0xc5, 0x62, 0x39, 0x4e, 0x61, 0x6d, | ||
8861 | 0x39, 0x54, 0x6e, 0x6c, 0x58, 0x50, 0x61, 0x77, | ||
8862 | 0x21, 0x3f, 0x39, 0x43, 0x24, 0x09, 0x64, 0xb5, | ||
8863 | 0xff, 0xdb, 0x9a, 0x68, 0x58, 0x5d, 0x6b, 0x7b, | ||
8864 | 0x6d, 0x6d, 0x6f, 0x74, 0x77, 0x71, 0x63, 0x57, | ||
8865 | 0x76, 0x75, 0x75, 0x77, 0x7c, 0x84, 0x8c, 0x91, | ||
8866 | 0x75, 0x77, 0x79, 0x7a, 0x79, 0x75, 0x71, 0x6e, | ||
8867 | 0x68, 0x65, 0x61, 0x5e, 0x5d, 0x5f, 0x62, 0x64, | ||
8868 | 0x73, 0x69, 0x5c, 0x57, 0x59, 0x5d, 0x5e, 0x5c, | ||
8869 | 0x4b, 0x3c, 0x3c, 0x56, 0x6c, 0x61, 0x46, 0x38, | ||
8870 | 0x4a, 0x8b, 0xad, 0x89, 0x5b, 0x56, 0x65, 0x6a, | ||
8871 | 0x9d, 0x8f, 0x73, 0x70, 0x67, 0x30, 0x2e, 0x79, | ||
8872 | 0x9b, 0xb5, 0xba, 0x8e, 0x53, 0x34, 0x39, 0x46, | ||
8873 | 0x62, 0x61, 0x77, 0x74, 0x66, 0x92, 0xb0, 0x8b, | ||
8874 | 0x42, 0x23, 0x31, 0x3a, 0x32, 0x6a, 0xa8, 0xa0, | ||
8875 | 0xa0, 0x9c, 0x81, 0x92, 0xc1, 0xb1, 0xac, 0xe9, | ||
8876 | 0xe8, 0xd6, 0xd2, 0xc3, 0xb9, 0xdc, 0xe0, 0xa9, | ||
8877 | 0x26, 0x2f, 0x3e, 0x1f, 0x09, 0x58, 0xa5, 0x98, | ||
8878 | 0x5d, 0x4a, 0x5a, 0x65, 0x47, 0x36, 0x2f, 0x17, | ||
8879 | 0x46, 0x6a, 0x77, 0x5e, 0x4b, 0x4e, 0x4b, 0x3b, | ||
8880 | 0x2a, 0x4c, 0x69, 0x69, 0x5b, 0x5f, 0x77, 0x8c, | ||
8881 | 0xab, 0x7b, 0x72, 0x56, 0x56, 0x60, 0x28, 0x09, | ||
8882 | 0x8f, 0xab, 0xc8, 0xc9, 0xb2, 0x9c, 0x96, 0x9a, | ||
8883 | 0x99, 0x54, 0x8e, 0xc2, 0x78, 0x5b, 0x72, 0x4e, | ||
8884 | 0x00, 0x20, 0x39, 0x2d, 0x37, 0x53, 0x46, 0x1c, | ||
8885 | 0x45, 0x4d, 0x46, 0x3f, 0x57, 0x78, 0x72, 0x51, | ||
8886 | 0x12, 0x58, 0x74, 0x51, 0x50, 0x88, 0xa6, 0x95, | ||
8887 | 0x55, 0x1d, 0x19, 0x55, 0x6d, 0x41, 0x1d, 0x22, | ||
8888 | 0x2d, 0x96, 0x8e, 0x4a, 0x57, 0x60, 0x3e, 0x36, | ||
8889 | 0x2d, 0x57, 0x6e, 0x65, 0x6f, 0x9b, 0xbf, 0xc6, | ||
8890 | 0x91, 0x5f, 0x5a, 0x56, 0x40, 0x6b, 0x8e, 0x66, | ||
8891 | 0x4b, 0x1e, 0x39, 0x5c, 0x48, 0x4f, 0x58, 0x2d, | ||
8892 | 0x54, 0x41, 0x41, 0x4b, 0x39, 0x1d, 0x2d, 0x57, | ||
8893 | 0x6e, 0x59, 0x41, 0x32, 0x25, 0x21, 0x30, 0x44, | ||
8894 | 0x47, 0x40, 0x6d, 0x88, 0x67, 0x64, 0x84, 0x89, | ||
8895 | 0x96, 0xd7, 0xdc, 0xf9, 0xff, 0xaf, 0x3f, 0x68, | ||
8896 | 0xa5, 0x76, 0x78, 0x3f, 0x60, 0xa9, 0x71, 0x68, | ||
8897 | 0x72, 0x62, 0x45, 0x53, 0xaf, 0xff, 0xe7, 0x90, | ||
8898 | 0x57, 0xc7, 0xd7, 0x9c, 0x7d, 0x4a, 0x1a, 0x27, | ||
8899 | 0x00, 0x87, 0xf7, 0xc4, 0x5f, 0x3e, 0x48, 0x4b, | ||
8900 | 0x89, 0x58, 0x22, 0x0b, 0x11, 0x1e, 0x26, 0x2b, | ||
8901 | 0x2b, 0x10, 0x18, 0x43, 0x58, 0x58, 0x77, 0xab, | ||
8902 | 0x77, 0x52, 0x34, 0x25, 0x0b, 0x00, 0x2a, 0x6a, | ||
8903 | 0x49, 0x4b, 0x48, 0x3e, 0x35, 0x36, 0x42, 0x4f, | ||
8904 | 0x8f, 0xc1, 0xc3, 0xaa, 0x9f, 0x7c, 0x5a, 0x65, | ||
8905 | 0x24, 0x25, 0x2f, 0x45, 0x58, 0x57, 0x40, 0x2a, | ||
8906 | 0x59, 0x5e, 0x5d, 0x42, 0x35, 0x75, 0xd4, 0xfd, | ||
8907 | 0xf3, 0xba, 0x94, 0x7e, 0x68, 0x6e, 0x7a, 0x6d, | ||
8908 | 0x67, 0x69, 0x70, 0x7b, 0x84, 0x83, 0x78, 0x6e, | ||
8909 | 0x78, 0x79, 0x7a, 0x7b, 0x7a, 0x77, 0x74, 0x72, | ||
8910 | 0x6b, 0x6d, 0x6f, 0x70, 0x6f, 0x6b, 0x67, 0x64, | ||
8911 | 0x6e, 0x6b, 0x68, 0x67, 0x67, 0x6a, 0x6e, 0x71, | ||
8912 | 0x79, 0x6f, 0x64, 0x60, 0x64, 0x69, 0x6a, 0x69, | ||
8913 | 0x63, 0x51, 0x3f, 0x41, 0x45, 0x3b, 0x38, 0x47, | ||
8914 | 0x6b, 0x9b, 0xab, 0x85, 0x67, 0x6f, 0x74, 0x68, | ||
8915 | 0x67, 0x5d, 0x65, 0x85, 0x67, 0x0a, 0x25, 0xb3, | ||
8916 | 0x73, 0x71, 0x97, 0xd1, 0xd4, 0x9d, 0x70, 0x69, | ||
8917 | 0x6a, 0x63, 0x70, 0x65, 0x53, 0x80, 0xa2, 0x7f, | ||
8918 | 0x3d, 0x3c, 0x94, 0xcd, 0x93, 0x75, 0x9d, 0xae, | ||
8919 | 0xe3, 0xc6, 0x93, 0xac, 0xe5, 0xad, 0x59, 0x5f, | ||
8920 | 0x7d, 0x78, 0xa7, 0xb9, 0x78, 0x47, 0x54, 0x63, | ||
8921 | 0x77, 0x32, 0x2e, 0x3a, 0x19, 0x21, 0x4a, 0x4c, | ||
8922 | 0x46, 0x24, 0x2c, 0x3c, 0x2f, 0x3a, 0x5f, 0x6b, | ||
8923 | 0x32, 0x42, 0x56, 0x5b, 0x4b, 0x3a, 0x3b, 0x47, | ||
8924 | 0x28, 0x19, 0x1a, 0x2c, 0x30, 0x32, 0x55, 0x83, | ||
8925 | 0x94, 0x4f, 0x49, 0x48, 0x55, 0x5b, 0x1d, 0x00, | ||
8926 | 0x46, 0x6c, 0xa1, 0xc4, 0xc1, 0x9b, 0x67, 0x43, | ||
8927 | 0x2f, 0x65, 0xa2, 0xb6, 0xa0, 0x84, 0x7d, 0x84, | ||
8928 | 0x4f, 0x4c, 0x49, 0x49, 0x4a, 0x4a, 0x48, 0x45, | ||
8929 | 0x65, 0x92, 0x9c, 0x76, 0x64, 0x70, 0x66, 0x43, | ||
8930 | 0x80, 0x63, 0x1c, 0x1b, 0x80, 0xb5, 0x7c, 0x3d, | ||
8931 | 0x09, 0x2b, 0x38, 0x25, 0x1e, 0x31, 0x3b, 0x32, | ||
8932 | 0x37, 0x78, 0x9e, 0x83, 0x5f, 0x5a, 0x5c, 0x53, | ||
8933 | 0x63, 0x6e, 0x77, 0x76, 0x73, 0x7b, 0x91, 0xa5, | ||
8934 | 0x96, 0x6e, 0x52, 0x48, 0x30, 0x1f, 0x49, 0x8b, | ||
8935 | 0x24, 0x59, 0x3d, 0x11, 0x2b, 0x36, 0x2f, 0x4b, | ||
8936 | 0x23, 0x40, 0x5f, 0x88, 0xc6, 0xdb, 0x8a, 0x1d, | ||
8937 | 0x76, 0x2e, 0x1d, 0x14, 0x4e, 0x8e, 0x66, 0x5b, | ||
8938 | 0x6e, 0xa5, 0x7e, 0x58, 0x97, 0xb7, 0x99, 0x97, | ||
8939 | 0x9d, 0x9a, 0x64, 0x24, 0x39, 0x81, 0x88, 0x53, | ||
8940 | 0x45, 0x8e, 0xb0, 0xa4, 0x80, 0x45, 0x5c, 0xc5, | ||
8941 | 0xd1, 0x85, 0x96, 0xc8, 0xa8, 0x8b, 0x93, 0x8b, | ||
8942 | 0x71, 0xa7, 0x91, 0x2a, 0x00, 0x26, 0x4b, 0x3e, | ||
8943 | 0x8b, 0xc8, 0xf5, 0xeb, 0xc9, 0xac, 0x8b, 0x6b, | ||
8944 | 0xa3, 0xaa, 0x8f, 0x61, 0x5c, 0x72, 0x60, 0x32, | ||
8945 | 0x2f, 0x76, 0x6d, 0x43, 0x57, 0x6e, 0x73, 0x8e, | ||
8946 | 0xb8, 0xb5, 0x88, 0x77, 0x7a, 0x37, 0x0b, 0x3c, | ||
8947 | 0x59, 0x37, 0x2c, 0x45, 0x56, 0x4d, 0x48, 0x50, | ||
8948 | 0x74, 0x72, 0x5d, 0x70, 0x92, 0x68, 0x40, 0x63, | ||
8949 | 0x55, 0x33, 0x45, 0x77, 0x64, 0x1b, 0x0e, 0x3f, | ||
8950 | 0x47, 0x2d, 0x20, 0x2e, 0x2c, 0x1f, 0x59, 0xc3, | ||
8951 | 0xb8, 0x97, 0x7c, 0x7b, 0x80, 0x7d, 0x7d, 0x84, | ||
8952 | 0x86, 0x83, 0x7f, 0x7b, 0x79, 0x78, 0x78, 0x78, | ||
8953 | 0x85, 0x7e, 0x77, 0x75, 0x76, 0x74, 0x6c, 0x65, | ||
8954 | 0x6d, 0x6e, 0x70, 0x73, 0x76, 0x78, 0x7a, 0x7b, | ||
8955 | 0x77, 0x6e, 0x68, 0x6c, 0x77, 0x7d, 0x7a, 0x74, | ||
8956 | 0x79, 0x71, 0x67, 0x64, 0x65, 0x66, 0x63, 0x5f, | ||
8957 | 0x58, 0x2e, 0x3a, 0x7e, 0x95, 0x66, 0x43, 0x4a, | ||
8958 | 0x1b, 0x66, 0x84, 0x5c, 0x50, 0x82, 0xa9, 0xa4, | ||
8959 | 0x81, 0x55, 0x77, 0xa6, 0x79, 0x41, 0x49, 0x5f, | ||
8960 | 0xb6, 0xf0, 0xeb, 0xcb, 0xcf, 0xb5, 0x7a, 0x61, | ||
8961 | 0x5b, 0x44, 0x28, 0x23, 0x3b, 0x56, 0x5b, 0x51, | ||
8962 | 0x05, 0x15, 0x5d, 0xa7, 0x8c, 0x37, 0x2a, 0x5f, | ||
8963 | 0x19, 0x4f, 0x99, 0xc5, 0xb7, 0x88, 0x61, 0x53, | ||
8964 | 0xa5, 0x7d, 0x73, 0x81, 0x65, 0x2f, 0x32, 0x62, | ||
8965 | 0x30, 0x3a, 0x43, 0x43, 0x38, 0x27, 0x17, 0x0e, | ||
8966 | 0x10, 0x13, 0x37, 0x47, 0x2c, 0x28, 0x2f, 0x1e, | ||
8967 | 0x3f, 0x10, 0x32, 0x6b, 0x61, 0x59, 0x5e, 0x46, | ||
8968 | 0x45, 0x22, 0x0e, 0x16, 0x18, 0x15, 0x2c, 0x51, | ||
8969 | 0x49, 0x40, 0x40, 0x26, 0x33, 0x2e, 0x00, 0x01, | ||
8970 | 0x5d, 0x61, 0x60, 0x55, 0x4b, 0x52, 0x69, 0x7e, | ||
8971 | 0x99, 0x7d, 0x5a, 0x45, 0x45, 0x4f, 0x57, 0x5a, | ||
8972 | 0x45, 0x3b, 0x39, 0x49, 0x63, 0x72, 0x70, 0x66, | ||
8973 | 0x94, 0x96, 0x62, 0x0d, 0x00, 0x47, 0xaf, 0xe9, | ||
8974 | 0xff, 0xf6, 0xd1, 0xd1, 0xdb, 0xa7, 0x76, 0x84, | ||
8975 | 0x5c, 0x74, 0x5f, 0x22, 0x12, 0x3e, 0x5d, 0x57, | ||
8976 | 0x0a, 0x0d, 0x24, 0x3c, 0x37, 0x36, 0x6b, 0xb2, | ||
8977 | 0x5d, 0x5b, 0x5f, 0x6c, 0x76, 0x6d, 0x52, 0x3a, | ||
8978 | 0x54, 0x39, 0x2e, 0x41, 0x53, 0x4e, 0x42, 0x3e, | ||
8979 | 0x47, 0x6e, 0xa4, 0xa0, 0x54, 0x27, 0x51, 0x8e, | ||
8980 | 0xac, 0xb9, 0xba, 0xad, 0xa6, 0xa2, 0x8d, 0x72, | ||
8981 | 0x19, 0x42, 0xa2, 0xb7, 0xd4, 0xf7, 0xc2, 0xb0, | ||
8982 | 0x9a, 0xaf, 0x82, 0x57, 0x91, 0xdf, 0xe5, 0xc9, | ||
8983 | 0xbd, 0xa6, 0x7b, 0x5c, 0x62, 0x76, 0x6d, 0x51, | ||
8984 | 0x28, 0x82, 0xe2, 0xc1, 0x5c, 0x57, 0x7e, 0x6b, | ||
8985 | 0x93, 0x79, 0x83, 0x78, 0x4c, 0x63, 0x99, 0x9c, | ||
8986 | 0xa6, 0xa0, 0x7f, 0x58, 0x54, 0x62, 0x4c, 0x21, | ||
8987 | 0x39, 0x60, 0x75, 0x6a, 0x6f, 0x99, 0xc5, 0xd8, | ||
8988 | 0x7a, 0xbc, 0xdb, 0xaf, 0x7d, 0x7a, 0x89, 0x8d, | ||
8989 | 0x94, 0x4e, 0x5d, 0x67, 0x33, 0x57, 0x9e, 0x8d, | ||
8990 | 0x4d, 0x87, 0x9c, 0xa7, 0xb3, 0x7e, 0x4a, 0x5b, | ||
8991 | 0xcd, 0x82, 0x3f, 0x30, 0x31, 0x26, 0x21, 0x29, | ||
8992 | 0x01, 0x10, 0x4d, 0x61, 0x35, 0x32, 0x40, 0x23, | ||
8993 | 0x48, 0x2b, 0x11, 0x12, 0x28, 0x48, 0x6a, 0x83, | ||
8994 | 0x9a, 0x75, 0x7e, 0x44, 0x32, 0x79, 0x72, 0x4b, | ||
8995 | 0x1c, 0x42, 0x63, 0x6c, 0x6e, 0x75, 0x77, 0x71, | ||
8996 | 0x76, 0x74, 0x71, 0x6f, 0x6d, 0x6c, 0x6b, 0x6b, | ||
8997 | 0x6b, 0x67, 0x65, 0x6a, 0x73, 0x78, 0x76, 0x72, | ||
8998 | 0x6d, 0x6d, 0x6d, 0x6c, 0x6c, 0x6b, 0x6b, 0x6b, | ||
8999 | 0x67, 0x6a, 0x6c, 0x6a, 0x66, 0x61, 0x5e, 0x5e, | ||
9000 | 0x81, 0x79, 0x6f, 0x6b, 0x6d, 0x6d, 0x6a, 0x66, | ||
9001 | 0x57, 0x3a, 0x2f, 0x3f, 0x43, 0x34, 0x34, 0x47, | ||
9002 | 0x4a, 0x2e, 0x12, 0x24, 0x6c, 0xb5, 0xc3, 0xab, | ||
9003 | 0xe6, 0xd4, 0xed, 0xe8, 0x9a, 0x7b, 0xb3, 0xe7, | ||
9004 | 0xf8, 0xae, 0x72, 0xaa, 0xff, 0xec, 0xab, 0xad, | ||
9005 | 0xc6, 0xdc, 0xbd, 0x72, 0x53, 0x69, 0x68, 0x46, | ||
9006 | 0x6c, 0x38, 0x40, 0x8c, 0xa8, 0x6d, 0x34, 0x2b, | ||
9007 | 0x59, 0x6a, 0x5f, 0x41, 0x46, 0x68, 0x6d, 0x55, | ||
9008 | 0x3c, 0x61, 0x7d, 0x7a, 0x6d, 0x64, 0x56, 0x45, | ||
9009 | 0x09, 0x28, 0x49, 0x51, 0x44, 0x37, 0x3b, 0x45, | ||
9010 | 0x64, 0x4d, 0x4c, 0x41, 0x26, 0x3a, 0x66, 0x6f, | ||
9011 | 0xb5, 0x78, 0x5e, 0x67, 0x5d, 0x4e, 0x46, 0x3b, | ||
9012 | 0x44, 0x2f, 0x29, 0x33, 0x2c, 0x15, 0x11, 0x20, | ||
9013 | 0x17, 0x1c, 0x30, 0x2a, 0x44, 0x43, 0x09, 0x12, | ||
9014 | 0x5e, 0x56, 0x4d, 0x4d, 0x56, 0x60, 0x67, 0x69, | ||
9015 | 0x2b, 0x48, 0x5e, 0x52, 0x3a, 0x41, 0x71, 0xa1, | ||
9016 | 0x95, 0x83, 0x72, 0x6f, 0x74, 0x71, 0x5f, 0x4d, | ||
9017 | 0x10, 0x9c, 0xff, 0xf7, 0xa2, 0x8b, 0xc8, 0xff, | ||
9018 | 0xff, 0xbe, 0x65, 0x4e, 0x63, 0x40, 0x13, 0x1d, | ||
9019 | 0x98, 0xbc, 0xb4, 0x7a, 0x5a, 0x67, 0x63, 0x45, | ||
9020 | 0x53, 0x31, 0x3c, 0x84, 0xbd, 0xb4, 0x8f, 0x7b, | ||
9021 | 0x8e, 0xa3, 0xa7, 0x82, 0x4f, 0x40, 0x62, 0x8d, | ||
9022 | 0x6d, 0x65, 0x52, 0x47, 0x55, 0x68, 0x5e, 0x45, | ||
9023 | 0x51, 0x67, 0xc9, 0xd6, 0x51, 0x0d, 0x3b, 0x59, | ||
9024 | 0x44, 0x3a, 0x54, 0x9c, 0xdb, 0xe9, 0xd4, 0xc0, | ||
9025 | 0xb6, 0xbd, 0xde, 0xac, 0x92, 0x9b, 0x68, 0x5f, | ||
9026 | 0x65, 0x63, 0x61, 0x57, 0x6b, 0xa9, 0xaa, 0x64, | ||
9027 | 0x66, 0x71, 0x95, 0xc5, 0xd5, 0xb8, 0x8d, 0x75, | ||
9028 | 0x4d, 0x2a, 0x40, 0x59, 0x4b, 0x67, 0x94, 0x90, | ||
9029 | 0x4d, 0xa3, 0xb0, 0x3e, 0x06, 0x6d, 0xb5, 0x85, | ||
9030 | 0xc5, 0xb2, 0xaf, 0xb3, 0x8e, 0x49, 0x1f, 0x1d, | ||
9031 | 0x45, 0x63, 0x7f, 0x97, 0xbd, 0xdd, 0xd1, 0xaf, | ||
9032 | 0xeb, 0xfc, 0xd5, 0x69, 0x12, 0x16, 0x5d, 0x99, | ||
9033 | 0x91, 0x59, 0x23, 0x22, 0x30, 0x2e, 0x53, 0x9b, | ||
9034 | 0xd3, 0xef, 0xe1, 0xc7, 0xc3, 0xb0, 0xa6, 0xc0, | ||
9035 | 0xe3, 0x97, 0x54, 0x4a, 0x57, 0x5d, 0x67, 0x79, | ||
9036 | 0x14, 0x6f, 0xd4, 0xb5, 0x40, 0x24, 0x3b, 0x26, | ||
9037 | 0x5b, 0x53, 0x40, 0x56, 0xb7, 0xff, 0xce, 0x5d, | ||
9038 | 0x55, 0x55, 0x69, 0xa6, 0xfd, 0xfb, 0xba, 0xbb, | ||
9039 | 0xc2, 0xb8, 0x9f, 0x86, 0x84, 0x8d, 0x85, 0x72, | ||
9040 | 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7c, 0x7b, 0x7a, | ||
9041 | 0x73, 0x6d, 0x67, 0x67, 0x6b, 0x6b, 0x65, 0x5f, | ||
9042 | 0x66, 0x67, 0x68, 0x69, 0x6b, 0x6d, 0x6e, 0x6e, | ||
9043 | 0x68, 0x6e, 0x6f, 0x64, 0x53, 0x4a, 0x4e, 0x55, | ||
9044 | 0x69, 0x61, 0x57, 0x52, 0x53, 0x53, 0x50, 0x4b, | ||
9045 | 0x48, 0x41, 0x35, 0x2b, 0x2b, 0x32, 0x37, 0x36, | ||
9046 | 0x26, 0x22, 0x38, 0x69, 0x93, 0xa3, 0xa8, 0xad, | ||
9047 | 0xce, 0xa2, 0xa6, 0xb2, 0x8f, 0x7d, 0x83, 0x77, | ||
9048 | 0xc5, 0xc1, 0x94, 0x8b, 0xb9, 0xa4, 0x4e, 0x1e, | ||
9049 | 0x3f, 0x68, 0x81, 0x6f, 0x55, 0x4f, 0x54, 0x55, | ||
9050 | 0x36, 0x12, 0x1e, 0x5e, 0x7a, 0x59, 0x43, 0x4f, | ||
9051 | 0x47, 0x6c, 0x67, 0x48, 0x69, 0xab, 0x9e, 0x57, | ||
9052 | 0x7a, 0x6a, 0x92, 0xd6, 0xcf, 0x8a, 0x79, 0xa2, | ||
9053 | 0xe6, 0xa1, 0x4a, 0x18, 0x18, 0x2f, 0x41, 0x46, | ||
9054 | 0x4a, 0x2f, 0x2c, 0x2c, 0x2c, 0x69, 0xbc, 0xde, | ||
9055 | 0xcc, 0xc1, 0xaa, 0xa2, 0x9a, 0x6d, 0x45, 0x48, | ||
9056 | 0x83, 0x69, 0x52, 0x47, 0x3a, 0x2b, 0x2e, 0x3e, | ||
9057 | 0x4a, 0x46, 0x4d, 0x3d, 0x54, 0x56, 0x22, 0x31, | ||
9058 | 0x4d, 0x4a, 0x5a, 0x86, 0xb2, 0xb7, 0x92, 0x69, | ||
9059 | 0x55, 0x58, 0x62, 0x70, 0x7a, 0x79, 0x6b, 0x5f, | ||
9060 | 0x7b, 0x81, 0x82, 0x78, 0x67, 0x5d, 0x5f, 0x65, | ||
9061 | 0xa4, 0xac, 0xac, 0xa1, 0x96, 0x8f, 0x84, 0x77, | ||
9062 | 0x5d, 0x91, 0x8f, 0x79, 0x8e, 0x94, 0x7d, 0x76, | ||
9063 | 0x72, 0x78, 0x6d, 0x4f, 0x3a, 0x3d, 0x4b, 0x53, | ||
9064 | 0x77, 0x97, 0x95, 0x68, 0x51, 0x6b, 0x8b, 0x94, | ||
9065 | 0x68, 0x5a, 0x4f, 0x57, 0x65, 0x63, 0x4c, 0x34, | ||
9066 | 0x57, 0x7b, 0x7a, 0x47, 0x27, 0x30, 0x34, 0x24, | ||
9067 | 0x64, 0xd2, 0xeb, 0x72, 0x4c, 0xd7, 0xff, 0xae, | ||
9068 | 0x7e, 0x5a, 0x6a, 0xbc, 0xf4, 0xde, 0xad, 0x94, | ||
9069 | 0xe5, 0x76, 0x3b, 0x16, 0x38, 0x6e, 0x5f, 0x78, | ||
9070 | 0x84, 0x73, 0xb7, 0xe9, 0xc1, 0xa8, 0x90, 0x4a, | ||
9071 | 0x22, 0x4f, 0x8b, 0xb4, 0xbe, 0xad, 0x8d, 0x74, | ||
9072 | 0x99, 0x5e, 0x08, 0x00, 0x2e, 0x29, 0x2b, 0x69, | ||
9073 | 0xa8, 0xc4, 0xa9, 0x69, 0x7d, 0xd6, 0xd3, 0x78, | ||
9074 | 0x66, 0x1f, 0x28, 0x9e, 0xec, 0xd1, 0xa8, 0xa8, | ||
9075 | 0xc9, 0x90, 0x46, 0x30, 0x6f, 0xc6, 0xe2, 0xcd, | ||
9076 | 0xd1, 0x96, 0x5d, 0x63, 0x99, 0xb6, 0x8d, 0x51, | ||
9077 | 0x61, 0x6c, 0x34, 0x1a, 0x3e, 0x34, 0x46, 0xa9, | ||
9078 | 0xee, 0xd0, 0xb1, 0xab, 0xa6, 0x85, 0x71, 0x7c, | ||
9079 | 0x64, 0x45, 0x3a, 0x51, 0x68, 0x75, 0x93, 0xb8, | ||
9080 | 0xf3, 0xec, 0x9c, 0x5f, 0x6f, 0x5c, 0x1a, 0x00, | ||
9081 | 0x4f, 0x84, 0x91, 0x6f, 0x72, 0x9d, 0x9c, 0x70, | ||
9082 | 0x55, 0x47, 0x39, 0xaf, 0xf9, 0xf8, 0xff, 0xdd, | ||
9083 | 0x9d, 0x6c, 0x47, 0x4f, 0x67, 0x6c, 0x62, 0x5a, | ||
9084 | 0x79, 0x7b, 0x7d, 0x80, 0x80, 0x7f, 0x7d, 0x7c, | ||
9085 | 0x7b, 0x76, 0x72, 0x74, 0x79, 0x7b, 0x77, 0x72, | ||
9086 | 0x5c, 0x5f, 0x65, 0x6c, 0x74, 0x7c, 0x81, 0x84, | ||
9087 | 0x8a, 0x88, 0x80, 0x73, 0x66, 0x62, 0x67, 0x6e, | ||
9088 | 0x6c, 0x63, 0x58, 0x54, 0x54, 0x53, 0x4f, 0x4a, | ||
9089 | 0x3c, 0x3a, 0x32, 0x31, 0x3f, 0x4b, 0x3f, 0x29, | ||
9090 | 0xa4, 0xd9, 0xff, 0xff, 0xe0, 0xbe, 0xbb, 0xc8, | ||
9091 | 0xc7, 0xa4, 0xbc, 0xca, 0x7d, 0x37, 0x3a, 0x4d, | ||
9092 | 0x62, 0x7d, 0x43, 0x00, 0x17, 0x3c, 0x3a, 0x39, | ||
9093 | 0x33, 0x1f, 0x4c, 0x97, 0x89, 0x32, 0x18, 0x44, | ||
9094 | 0x48, 0x3a, 0x43, 0x5a, 0x4e, 0x2b, 0x2d, 0x4d, | ||
9095 | 0x51, 0x67, 0x56, 0x2b, 0x2c, 0x4a, 0x37, 0x00, | ||
9096 | 0x36, 0x3c, 0x38, 0x30, 0x48, 0x88, 0xcf, 0xf9, | ||
9097 | 0xf9, 0xc1, 0x81, 0x64, 0x69, 0x6e, 0x5d, 0x47, | ||
9098 | 0x65, 0x4e, 0x50, 0x4e, 0x44, 0x6e, 0xae, 0xc3, | ||
9099 | 0x7e, 0xae, 0xb0, 0xa3, 0x9c, 0x5a, 0x1d, 0x29, | ||
9100 | 0x6f, 0x5b, 0x43, 0x33, 0x2b, 0x2b, 0x37, 0x44, | ||
9101 | 0x46, 0x4e, 0x65, 0x5d, 0x6c, 0x59, 0x0c, 0x0a, | ||
9102 | 0x4b, 0x53, 0x64, 0x7a, 0x8c, 0x92, 0x8e, 0x87, | ||
9103 | 0x69, 0x53, 0x3f, 0x42, 0x59, 0x73, 0x80, 0x81, | ||
9104 | 0x79, 0x97, 0xa8, 0x8d, 0x5a, 0x3e, 0x50, 0x6e, | ||
9105 | 0x64, 0x4b, 0x47, 0x6d, 0x94, 0x92, 0x68, 0x40, | ||
9106 | 0x43, 0x7e, 0x8c, 0x8d, 0xb4, 0xbc, 0x96, 0x81, | ||
9107 | 0x31, 0x28, 0x37, 0x54, 0x54, 0x44, 0x57, 0x7f, | ||
9108 | 0x88, 0x6d, 0x33, 0x07, 0x21, 0x64, 0x83, 0x78, | ||
9109 | 0x36, 0x16, 0x05, 0x25, 0x5c, 0x73, 0x55, 0x2c, | ||
9110 | 0x32, 0x6e, 0x8e, 0x74, 0x55, 0x4a, 0x2e, 0x07, | ||
9111 | 0x7b, 0xb7, 0x92, 0x47, 0x5f, 0x93, 0x84, 0x5f, | ||
9112 | 0x90, 0x75, 0x73, 0x8a, 0x8c, 0x88, 0xb4, 0xf5, | ||
9113 | 0xee, 0x5c, 0x2c, 0x3e, 0x6b, 0x69, 0x2c, 0x41, | ||
9114 | 0x7a, 0x45, 0x8a, 0xd5, 0x93, 0x4e, 0x59, 0x66, | ||
9115 | 0x76, 0x9c, 0x8d, 0x41, 0x19, 0x31, 0x43, 0x36, | ||
9116 | 0x81, 0xd1, 0xc7, 0x82, 0x6e, 0x67, 0x62, 0x7b, | ||
9117 | 0x42, 0x6d, 0x96, 0x92, 0x5e, 0x38, 0x70, 0xd2, | ||
9118 | 0xb6, 0x9f, 0xba, 0xe9, 0xc8, 0x77, 0x75, 0xb5, | ||
9119 | 0xa7, 0xbd, 0xce, 0xdb, 0xec, 0xe5, 0xa7, 0x60, | ||
9120 | 0x00, 0x2e, 0x8c, 0xad, 0x89, 0x5e, 0x62, 0x80, | ||
9121 | 0x64, 0x68, 0x9b, 0x8f, 0x4b, 0x70, 0xb4, 0xa0, | ||
9122 | 0xb2, 0x63, 0x4e, 0x83, 0x9b, 0x80, 0x6c, 0x6e, | ||
9123 | 0x50, 0x4d, 0x5c, 0x71, 0x74, 0x78, 0xa6, 0xe0, | ||
9124 | 0xeb, 0xe9, 0xc1, 0xb3, 0xc1, 0x9a, 0x7d, 0xa3, | ||
9125 | 0x66, 0x78, 0x70, 0x45, 0x21, 0x27, 0x46, 0x5d, | ||
9126 | 0x20, 0x56, 0x46, 0x45, 0x1d, 0x16, 0x6f, 0x6c, | ||
9127 | 0x28, 0x28, 0x38, 0x53, 0x61, 0x61, 0x6a, 0x7b, | ||
9128 | 0x71, 0x75, 0x7b, 0x80, 0x82, 0x81, 0x7e, 0x7c, | ||
9129 | 0x77, 0x6f, 0x65, 0x60, 0x5e, 0x5a, 0x50, 0x48, | ||
9130 | 0x55, 0x58, 0x5e, 0x65, 0x6d, 0x74, 0x7a, 0x7d, | ||
9131 | 0x76, 0x72, 0x6e, 0x6f, 0x70, 0x6d, 0x63, 0x5a, | ||
9132 | 0x7a, 0x70, 0x65, 0x60, 0x5f, 0x5e, 0x59, 0x54, | ||
9133 | 0x41, 0x33, 0x26, 0x27, 0x30, 0x35, 0x31, 0x2b, | ||
9134 | 0x4c, 0x72, 0x7c, 0x6c, 0x84, 0xbb, 0xc5, 0xa6, | ||
9135 | 0x7a, 0x00, 0x00, 0x33, 0x69, 0x61, 0x52, 0x42, | ||
9136 | 0x5c, 0x50, 0x48, 0x7f, 0xbb, 0x9b, 0x76, 0x97, | ||
9137 | 0x58, 0x22, 0x2e, 0x7c, 0x8f, 0x54, 0x3c, 0x5d, | ||
9138 | 0x61, 0x47, 0x3c, 0x4a, 0x50, 0x43, 0x3a, 0x3e, | ||
9139 | 0x26, 0x3b, 0x4d, 0x4d, 0x41, 0x3a, 0x3c, 0x40, | ||
9140 | 0x28, 0x38, 0x32, 0x1b, 0x28, 0x64, 0x9e, 0xb7, | ||
9141 | 0x9a, 0xbd, 0xd9, 0xcc, 0x9e, 0x79, 0x75, 0x81, | ||
9142 | 0x90, 0x7a, 0x7b, 0x73, 0x5a, 0x70, 0x9d, 0xa6, | ||
9143 | 0x94, 0xb8, 0xa7, 0x95, 0xa1, 0x72, 0x2b, 0x20, | ||
9144 | 0x2a, 0x34, 0x3e, 0x42, 0x45, 0x48, 0x44, 0x3d, | ||
9145 | 0x1c, 0x4a, 0x98, 0xb8, 0xcb, 0x95, 0x16, 0x00, | ||
9146 | 0xb5, 0xd2, 0xe2, 0xc3, 0x89, 0x69, 0x76, 0x92, | ||
9147 | 0x5e, 0x5e, 0x55, 0x41, 0x33, 0x3c, 0x5a, 0x77, | ||
9148 | 0xc6, 0xdf, 0xeb, 0xcc, 0x97, 0x78, 0x84, 0x9e, | ||
9149 | 0x63, 0x62, 0x6d, 0x76, 0x6b, 0x6b, 0x9e, 0xde, | ||
9150 | 0xe4, 0xb8, 0x7d, 0x7c, 0x92, 0x5f, 0x1b, 0x14, | ||
9151 | 0x29, 0x27, 0x39, 0x4e, 0x3f, 0x1b, 0x14, 0x29, | ||
9152 | 0x22, 0x3b, 0x6a, 0x84, 0x63, 0x35, 0x42, 0x71, | ||
9153 | 0x4b, 0x43, 0x3d, 0x45, 0x5c, 0x79, 0x92, 0xa0, | ||
9154 | 0x5a, 0x62, 0x68, 0x70, 0x83, 0x8c, 0x72, 0x4c, | ||
9155 | 0x6a, 0x6d, 0x4b, 0x54, 0x71, 0x3f, 0x32, 0x8d, | ||
9156 | 0xa4, 0x80, 0x5c, 0x4e, 0x4f, 0x64, 0x95, 0xc5, | ||
9157 | 0x99, 0x54, 0x72, 0x90, 0x93, 0x69, 0x24, 0x43, | ||
9158 | 0x9c, 0x50, 0x50, 0x7d, 0x64, 0x48, 0x87, 0xde, | ||
9159 | 0xbd, 0xef, 0xd1, 0x58, 0x0c, 0x20, 0x39, 0x2c, | ||
9160 | 0x00, 0x1f, 0x6b, 0x82, 0x55, 0x5a, 0x7b, 0x6d, | ||
9161 | 0x64, 0x6d, 0x4d, 0x44, 0x80, 0xaf, 0xaf, 0xae, | ||
9162 | 0xaf, 0x7f, 0x69, 0x83, 0x92, 0x78, 0x57, 0x4b, | ||
9163 | 0x8a, 0xa5, 0x9e, 0x66, 0x39, 0x3d, 0x56, 0x64, | ||
9164 | 0xb1, 0xa3, 0xa1, 0xa4, 0x90, 0x73, 0x74, 0x8b, | ||
9165 | 0x52, 0x89, 0xb3, 0x9e, 0x82, 0x96, 0x9f, 0x7e, | ||
9166 | 0x61, 0x24, 0x2e, 0x6c, 0x7e, 0x77, 0x69, 0x4e, | ||
9167 | 0x80, 0x73, 0x74, 0x80, 0x81, 0x8a, 0xbd, 0xfa, | ||
9168 | 0xff, 0x9d, 0x87, 0xb3, 0xb9, 0xb8, 0xb5, 0x96, | ||
9169 | 0x78, 0x4e, 0x3e, 0x5f, 0x79, 0x66, 0x3f, 0x28, | ||
9170 | 0x30, 0x3e, 0x2f, 0x19, 0x34, 0x3c, 0x23, 0x3c, | ||
9171 | 0x51, 0x6e, 0x7d, 0x70, 0x61, 0x60, 0x62, 0x5f, | ||
9172 | 0x67, 0x6d, 0x77, 0x7f, 0x82, 0x81, 0x7e, 0x7a, | ||
9173 | 0x6b, 0x68, 0x67, 0x6d, 0x76, 0x7c, 0x7b, 0x78, | ||
9174 | 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x82, 0x83, 0x83, | ||
9175 | 0x78, 0x7b, 0x85, 0x94, 0x9d, 0x93, 0x79, 0x62, | ||
9176 | 0x72, 0x69, 0x5d, 0x57, 0x56, 0x54, 0x4f, 0x4a, | ||
9177 | 0x46, 0x3c, 0x37, 0x33, 0x26, 0x18, 0x1d, 0x2c, | ||
9178 | 0x26, 0x45, 0x3c, 0x1b, 0x36, 0x70, 0x62, 0x20, | ||
9179 | 0x82, 0x44, 0x5f, 0xa9, 0xa3, 0x7b, 0x6f, 0x6b, | ||
9180 | 0x52, 0x65, 0x4e, 0x3a, 0x42, 0x35, 0x3d, 0x76, | ||
9181 | 0x96, 0x78, 0x47, 0x25, 0x2d, 0x44, 0x3e, 0x24, | ||
9182 | 0x0d, 0x1c, 0x2f, 0x33, 0x26, 0x1e, 0x2b, 0x3f, | ||
9183 | 0x44, 0x50, 0x60, 0x60, 0x43, 0x26, 0x2c, 0x45, | ||
9184 | 0x2f, 0x2c, 0x40, 0x62, 0x6e, 0x70, 0x8e, 0xb9, | ||
9185 | 0xce, 0xce, 0xbd, 0x91, 0x63, 0x53, 0x69, 0x85, | ||
9186 | 0x54, 0x3f, 0x42, 0x43, 0x3b, 0x67, 0xa9, 0xbf, | ||
9187 | 0xa4, 0xac, 0xa2, 0xaf, 0xd7, 0xc8, 0x74, 0x2f, | ||
9188 | 0x29, 0x39, 0x42, 0x40, 0x49, 0x5b, 0x5f, 0x56, | ||
9189 | 0x4f, 0x79, 0xbe, 0xd5, 0xe1, 0xa8, 0x26, 0x00, | ||
9190 | 0x93, 0xa4, 0xac, 0x98, 0x71, 0x54, 0x51, 0x5a, | ||
9191 | 0x50, 0x39, 0x37, 0x64, 0xa5, 0xc2, 0xa9, 0x83, | ||
9192 | 0x95, 0x97, 0x9f, 0xb1, 0xc7, 0xd9, 0xe1, 0xe3, | ||
9193 | 0xc3, 0x85, 0x5c, 0x64, 0x65, 0x4a, 0x3d, 0x49, | ||
9194 | 0x03, 0x37, 0x60, 0x7f, 0x87, 0x6a, 0x7d, 0xcc, | ||
9195 | 0xd1, 0xcb, 0x98, 0x47, 0x1f, 0x34, 0x51, 0x56, | ||
9196 | 0x58, 0x31, 0x2d, 0x5b, 0x78, 0x5e, 0x37, 0x27, | ||
9197 | 0x42, 0x3d, 0x44, 0x60, 0x7f, 0x85, 0x6d, 0x52, | ||
9198 | 0x6b, 0x4a, 0x39, 0x4a, 0x64, 0x6e, 0x74, 0x7b, | ||
9199 | 0x90, 0xbb, 0x87, 0x11, 0x00, 0x3c, 0x71, 0x74, | ||
9200 | 0x8b, 0x7e, 0x67, 0x5f, 0x75, 0x8d, 0x81, 0x64, | ||
9201 | 0x69, 0x76, 0xa9, 0x82, 0x5d, 0x5a, 0x3b, 0x55, | ||
9202 | 0x8c, 0x68, 0x3b, 0x45, 0x76, 0x88, 0x9a, 0xc8, | ||
9203 | 0xac, 0xeb, 0xfd, 0xba, 0x6d, 0x58, 0x60, 0x64, | ||
9204 | 0x5f, 0x20, 0x34, 0x64, 0x4a, 0x31, 0x3f, 0x41, | ||
9205 | 0x3d, 0x77, 0x51, 0x20, 0x68, 0xaf, 0x8d, 0x55, | ||
9206 | 0x4a, 0x69, 0x7c, 0x83, 0xa0, 0xc7, 0xc8, 0xad, | ||
9207 | 0x3f, 0x8a, 0xca, 0xd1, 0xbf, 0xb7, 0xae, 0xa1, | ||
9208 | 0xaf, 0xa7, 0xaf, 0xb4, 0x8f, 0x5e, 0x63, 0x8b, | ||
9209 | 0x79, 0xa8, 0x84, 0x7a, 0xbb, 0x9c, 0x49, 0x4a, | ||
9210 | 0x50, 0x80, 0xd3, 0xeb, 0xcb, 0xcc, 0xad, 0x4f, | ||
9211 | 0x65, 0x3f, 0x31, 0x4d, 0x69, 0x6e, 0x74, 0x83, | ||
9212 | 0x34, 0x06, 0x05, 0x08, 0x00, 0x40, 0xa8, 0xd0, | ||
9213 | 0x51, 0x42, 0x44, 0x58, 0x59, 0x4a, 0x4b, 0x5c, | ||
9214 | 0x4c, 0x24, 0x42, 0x33, 0x3d, 0x83, 0x72, 0x46, | ||
9215 | 0x3e, 0x51, 0x61, 0x6a, 0x75, 0x77, 0x60, 0x41, | ||
9216 | 0x53, 0x5a, 0x66, 0x70, 0x75, 0x74, 0x6f, 0x6c, | ||
9217 | 0x7a, 0x75, 0x70, 0x71, 0x75, 0x77, 0x72, 0x6c, | ||
9218 | 0x68, 0x68, 0x67, 0x67, 0x66, 0x66, 0x66, 0x65, | ||
9219 | 0x6e, 0x76, 0x82, 0x8c, 0x8c, 0x82, 0x71, 0x65, | ||
9220 | 0x75, 0x6b, 0x5f, 0x59, 0x57, 0x55, 0x4f, 0x4a, | ||
9221 | 0x43, 0x43, 0x44, 0x40, 0x2f, 0x1f, 0x1e, 0x27, | ||
9222 | 0x02, 0x2b, 0x3d, 0x2d, 0x28, 0x39, 0x37, 0x21, | ||
9223 | 0x27, 0x2c, 0x66, 0x9f, 0xae, 0xac, 0x76, 0x19, | ||
9224 | 0x00, 0x72, 0x91, 0x60, 0x50, 0x48, 0x32, 0x30, | ||
9225 | 0x5b, 0x71, 0x5e, 0x33, 0x40, 0x7e, 0x96, 0x7d, | ||
9226 | 0x7f, 0xa3, 0xbd, 0xaa, 0x7f, 0x64, 0x67, 0x74, | ||
9227 | 0x6a, 0x65, 0x4b, 0x31, 0x44, 0x86, 0xc8, 0xe7, | ||
9228 | 0xc5, 0xea, 0xc7, 0x66, 0x4c, 0x88, 0xa6, 0x8b, | ||
9229 | 0x89, 0x6d, 0x50, 0x49, 0x55, 0x5c, 0x52, 0x44, | ||
9230 | 0x35, 0x1b, 0x1a, 0x15, 0x0b, 0x36, 0x79, 0x90, | ||
9231 | 0x6d, 0x73, 0x89, 0x99, 0xa1, 0xa2, 0x6e, 0x1b, | ||
9232 | 0x37, 0x42, 0x3a, 0x24, 0x26, 0x41, 0x4c, 0x43, | ||
9233 | 0x64, 0x6d, 0x83, 0x77, 0x7f, 0x61, 0x09, 0x00, | ||
9234 | 0x8c, 0x6b, 0x57, 0x75, 0xb6, 0xe9, 0xf3, 0xe8, | ||
9235 | 0x9e, 0xa2, 0xaf, 0xc2, 0xd0, 0xcd, 0xbb, 0xaa, | ||
9236 | 0x5a, 0x38, 0x28, 0x4d, 0x90, 0xb6, 0xa5, 0x84, | ||
9237 | 0x8b, 0x5f, 0x49, 0x4f, 0x3e, 0x21, 0x32, 0x63, | ||
9238 | 0x17, 0x53, 0x51, 0x2c, 0x3f, 0x70, 0xa8, 0xe3, | ||
9239 | 0xde, 0xff, 0xd1, 0x55, 0x32, 0x79, 0x9b, 0x79, | ||
9240 | 0x57, 0x54, 0x41, 0x3c, 0x62, 0x8c, 0x7a, 0x47, | ||
9241 | 0x36, 0x5f, 0x7a, 0x5f, 0x2a, 0x19, 0x41, 0x72, | ||
9242 | 0x6c, 0x66, 0x7b, 0x98, 0x89, 0x62, 0x68, 0x8f, | ||
9243 | 0x6f, 0x47, 0x70, 0x99, 0x72, 0x65, 0x7e, 0x76, | ||
9244 | 0x3f, 0x72, 0x80, 0x52, 0x29, 0x25, 0x1d, 0x06, | ||
9245 | 0x41, 0x82, 0xb7, 0x63, 0x47, 0x89, 0x82, 0x7c, | ||
9246 | 0x52, 0x72, 0x4a, 0x4a, 0xaf, 0xc6, 0x74, 0x41, | ||
9247 | 0xa3, 0xc8, 0xe0, 0xbf, 0x73, 0x43, 0x58, 0x86, | ||
9248 | 0x9a, 0xcf, 0xb2, 0x6b, 0x50, 0x31, 0x14, 0x22, | ||
9249 | 0x62, 0x5b, 0x44, 0x69, 0xa1, 0x69, 0x1a, 0x21, | ||
9250 | 0x72, 0x80, 0x66, 0x4c, 0x7c, 0xb5, 0x78, 0x00, | ||
9251 | 0x52, 0x5b, 0x58, 0x55, 0x6d, 0x8c, 0x88, 0x6b, | ||
9252 | 0xb5, 0xa2, 0xac, 0xc9, 0xba, 0x85, 0x72, 0x86, | ||
9253 | 0xfb, 0x8f, 0x7c, 0xb5, 0xc0, 0xa6, 0x6b, 0x19, | ||
9254 | 0x4e, 0xb7, 0xff, 0xcb, 0x87, 0xcc, 0xee, 0x91, | ||
9255 | 0x73, 0x3b, 0x25, 0x53, 0x7e, 0x67, 0x26, 0x00, | ||
9256 | 0x59, 0x79, 0x57, 0x3e, 0x72, 0x86, 0x5d, 0x48, | ||
9257 | 0x65, 0x4c, 0x3b, 0x48, 0x64, 0x70, 0x65, 0x55, | ||
9258 | 0x5b, 0x4a, 0x30, 0x3a, 0x6c, 0x7f, 0x62, 0x4a, | ||
9259 | 0x2b, 0x25, 0x38, 0x64, 0x85, 0x84, 0x75, 0x6c, | ||
9260 | 0x5d, 0x65, 0x72, 0x7d, 0x83, 0x82, 0x7d, 0x79, | ||
9261 | 0x7d, 0x77, 0x70, 0x70, 0x72, 0x72, 0x6b, 0x65, | ||
9262 | 0x67, 0x68, 0x6a, 0x6d, 0x70, 0x72, 0x74, 0x75, | ||
9263 | 0x6f, 0x75, 0x77, 0x70, 0x65, 0x60, 0x66, 0x6e, | ||
9264 | 0x73, 0x69, 0x5d, 0x56, 0x54, 0x52, 0x4c, 0x46, | ||
9265 | 0x41, 0x3b, 0x31, 0x2a, 0x2a, 0x2c, 0x2a, 0x25, | ||
9266 | 0x4d, 0x39, 0x22, 0x16, 0x10, 0x16, 0x2b, 0x42, | ||
9267 | 0x1f, 0x7f, 0xd4, 0xc2, 0xa0, 0xc9, 0xca, 0x77, | ||
9268 | 0x9b, 0x8a, 0x6d, 0x86, 0xaf, 0x81, 0x3f, 0x40, | ||
9269 | 0x4b, 0x69, 0x82, 0x7e, 0x6a, 0x61, 0x65, 0x6c, | ||
9270 | 0x3c, 0x30, 0x28, 0x38, 0x59, 0x61, 0x36, 0x00, | ||
9271 | 0x0f, 0x2a, 0x1e, 0x06, 0x3a, 0x9c, 0xba, 0x95, | ||
9272 | 0x8d, 0x9e, 0x9a, 0x74, 0x49, 0x2c, 0x13, 0x00, | ||
9273 | 0x23, 0x25, 0x29, 0x30, 0x33, 0x30, 0x26, 0x1f, | ||
9274 | 0x35, 0x20, 0x24, 0x20, 0x0e, 0x2d, 0x61, 0x6e, | ||
9275 | 0x8b, 0x8d, 0xa0, 0x7b, 0x36, 0x3c, 0x4f, 0x25, | ||
9276 | 0x49, 0x62, 0x67, 0x54, 0x4d, 0x53, 0x44, 0x25, | ||
9277 | 0x39, 0x3e, 0x50, 0x47, 0x5c, 0x54, 0x13, 0x18, | ||
9278 | 0xb1, 0x9c, 0x8e, 0x9e, 0xc0, 0xd5, 0xcf, 0xc0, | ||
9279 | 0xe2, 0xc5, 0x9e, 0x81, 0x75, 0x75, 0x77, 0x78, | ||
9280 | 0x71, 0x93, 0xac, 0x9d, 0x7c, 0x78, 0x9f, 0xcb, | ||
9281 | 0xb6, 0xc3, 0xad, 0x60, 0x0e, 0x07, 0x55, 0xa8, | ||
9282 | 0x63, 0x74, 0x90, 0xa8, 0xaa, 0x8d, 0x5f, 0x3c, | ||
9283 | 0x93, 0x82, 0x75, 0x79, 0x80, 0x73, 0x4e, 0x2d, | ||
9284 | 0x60, 0x53, 0x4d, 0x5b, 0x6f, 0x6e, 0x53, 0x37, | ||
9285 | 0x5e, 0x48, 0x50, 0x73, 0x7e, 0x76, 0x90, 0xbf, | ||
9286 | 0xb2, 0x99, 0x5f, 0x34, 0x55, 0xa7, 0xd3, 0xce, | ||
9287 | 0xc6, 0xda, 0xdf, 0xbc, 0x7d, 0x49, 0x38, 0x3d, | ||
9288 | 0x24, 0x29, 0x36, 0x52, 0x7b, 0xae, 0xdc, 0xf7, | ||
9289 | 0xd6, 0xa4, 0x67, 0x46, 0x42, 0x46, 0x3d, 0x30, | ||
9290 | 0x13, 0x33, 0x64, 0x94, 0xb1, 0xb4, 0xa6, 0x98, | ||
9291 | 0x17, 0x46, 0x88, 0xa4, 0x82, 0x60, 0x85, 0xc8, | ||
9292 | 0xff, 0xc2, 0x78, 0x5a, 0x67, 0x78, 0x6f, 0x5c, | ||
9293 | 0x8a, 0x4b, 0x77, 0xe6, 0xca, 0x3e, 0x2c, 0x91, | ||
9294 | 0xc3, 0x74, 0x1a, 0x00, 0x29, 0x5e, 0x6d, 0x5f, | ||
9295 | 0x19, 0x5d, 0xa0, 0xa6, 0x80, 0x6f, 0x93, 0xc2, | ||
9296 | 0xe5, 0xd9, 0xca, 0xc0, 0xb6, 0xa6, 0x90, 0x7e, | ||
9297 | 0x31, 0x5f, 0x7a, 0x7a, 0x8f, 0xb3, 0xa8, 0x7c, | ||
9298 | 0x4a, 0x6e, 0x99, 0xb5, 0xc8, 0xd6, 0xd9, 0xd3, | ||
9299 | 0x7e, 0x6f, 0x4f, 0x28, 0x18, 0x35, 0x76, 0xac, | ||
9300 | 0xc9, 0xc3, 0xc1, 0xc3, 0xbc, 0x9b, 0x67, 0x3d, | ||
9301 | 0x8d, 0x74, 0x57, 0x4b, 0x51, 0x5a, 0x5c, 0x59, | ||
9302 | 0x43, 0x2c, 0x39, 0x54, 0x53, 0x48, 0x31, 0x0e, | ||
9303 | 0x2e, 0x38, 0x48, 0x59, 0x65, 0x6a, 0x6b, 0x6a, | ||
9304 | 0x5e, 0x6c, 0x7b, 0x82, 0x7d, 0x76, 0x72, 0x72, | ||
9305 | 0x7a, 0x74, 0x70, 0x73, 0x7a, 0x7e, 0x79, 0x74, | ||
9306 | 0x6b, 0x6f, 0x76, 0x7a, 0x7c, 0x7a, 0x76, 0x73, | ||
9307 | 0x87, 0x82, 0x79, 0x70, 0x6a, 0x68, 0x68, 0x68, | ||
9308 | 0x69, 0x63, 0x5d, 0x5d, 0x60, 0x60, 0x5a, 0x54, | ||
9309 | 0x54, 0x49, 0x70, 0xba, 0xf1, 0xb7, 0x45, 0x2d, | ||
9310 | 0x2d, 0x31, 0x36, 0x39, 0x39, 0x36, 0x31, 0x2d, | ||
9311 | 0x4b, 0x8a, 0x98, 0x73, 0x83, 0xc3, 0xc5, 0x8c, | ||
9312 | 0x51, 0x1f, 0x1b, 0x49, 0x4d, 0x24, 0x2d, 0x62, | ||
9313 | 0x88, 0x64, 0x60, 0x7a, 0x6a, 0x2f, 0x16, 0x27, | ||
9314 | 0x5a, 0xa8, 0xeb, 0xde, 0x9a, 0x77, 0x9d, 0xd5, | ||
9315 | 0x3a, 0x34, 0x15, 0x07, 0x49, 0xae, 0xd1, 0xb5, | ||
9316 | 0x8f, 0xbb, 0xe0, 0xb7, 0x4c, 0x1d, 0x82, 0xff, | ||
9317 | 0xe8, 0x9b, 0x5c, 0x54, 0x53, 0x3f, 0x39, 0x46, | ||
9318 | 0x26, 0x13, 0x11, 0x23, 0x27, 0x1d, 0x21, 0x33, | ||
9319 | 0x45, 0x29, 0x1e, 0x2f, 0x3b, 0x32, 0x27, 0x28, | ||
9320 | 0x3b, 0x5b, 0x77, 0x72, 0x51, 0x34, 0x2f, 0x38, | ||
9321 | 0x35, 0x3c, 0x42, 0x40, 0x36, 0x2a, 0x22, 0x1f, | ||
9322 | 0xad, 0x8e, 0x70, 0x71, 0x8e, 0xad, 0xbc, 0xbc, | ||
9323 | 0x4b, 0x47, 0x60, 0xa4, 0xed, 0xff, 0xde, 0xad, | ||
9324 | 0xb7, 0xa0, 0x86, 0x7a, 0x7f, 0x88, 0x8a, 0x88, | ||
9325 | 0xbc, 0xe9, 0xff, 0xff, 0xf2, 0xb1, 0x7c, 0x62, | ||
9326 | 0x49, 0x65, 0x8f, 0xb2, 0xb8, 0x9d, 0x71, 0x4f, | ||
9327 | 0x41, 0x69, 0xa8, 0xdc, 0xe5, 0xb9, 0x6e, 0x36, | ||
9328 | 0x39, 0x68, 0xa8, 0xcf, 0xc8, 0x99, 0x5d, 0x36, | ||
9329 | 0x67, 0x5f, 0x39, 0x13, 0x24, 0x56, 0x5d, 0x3e, | ||
9330 | 0x70, 0x7d, 0xa0, 0xcf, 0xea, 0xe4, 0xcf, 0xc0, | ||
9331 | 0xc5, 0xc4, 0xb3, 0x8a, 0x5d, 0x44, 0x49, 0x58, | ||
9332 | 0x94, 0x87, 0x78, 0x77, 0x8b, 0xb3, 0xdf, 0xfb, | ||
9333 | 0xce, 0x97, 0x58, 0x3a, 0x3d, 0x3c, 0x26, 0x0d, | ||
9334 | 0x91, 0x9a, 0xb1, 0xd0, 0xe5, 0xe0, 0xc3, 0xa8, | ||
9335 | 0x55, 0x4b, 0x4e, 0x53, 0x3f, 0x27, 0x39, 0x62, | ||
9336 | 0x6c, 0x4e, 0x31, 0x30, 0x47, 0x58, 0x54, 0x47, | ||
9337 | 0x1c, 0x2a, 0x46, 0x54, 0x3a, 0x1e, 0x37, 0x69, | ||
9338 | 0x5f, 0x66, 0x64, 0x63, 0x78, 0x8f, 0x84, 0x65, | ||
9339 | 0xc0, 0xad, 0x95, 0x89, 0x8e, 0x9d, 0xac, 0xb5, | ||
9340 | 0xd1, 0xdb, 0xd5, 0xae, 0x79, 0x5c, 0x63, 0x78, | ||
9341 | 0x8a, 0x85, 0x85, 0x89, 0x85, 0x81, 0x8a, 0x9b, | ||
9342 | 0x65, 0x3d, 0x50, 0xaf, 0xf4, 0xdc, 0x9a, 0x70, | ||
9343 | 0xbc, 0x81, 0x38, 0x10, 0x19, 0x3b, 0x58, 0x66, | ||
9344 | 0x76, 0x53, 0x2b, 0x1d, 0x2c, 0x46, 0x56, 0x5b, | ||
9345 | 0x37, 0x71, 0xa2, 0x92, 0x5d, 0x4a, 0x74, 0xaa, | ||
9346 | 0x51, 0x34, 0x2d, 0x3c, 0x3b, 0x2c, 0x26, 0x27, | ||
9347 | 0x36, 0x3f, 0x4e, 0x5d, 0x67, 0x6b, 0x6a, 0x69, | ||
9348 | 0x67, 0x72, 0x7d, 0x7e, 0x75, 0x69, 0x63, 0x61, | ||
9349 | 0x82, 0x7c, 0x78, 0x7b, 0x81, 0x84, 0x80, 0x7a, | ||
9350 | 0x61, 0x68, 0x72, 0x7c, 0x82, 0x84, 0x83, 0x81, | ||
9351 | 0x79, 0x79, 0x79, 0x77, 0x73, 0x6d, 0x67, 0x63, | ||
9352 | 0x61, 0x5b, 0x55, 0x55, 0x58, 0x57, 0x51, 0x4b, | ||
9353 | 0x46, 0x52, 0x78, 0x96, 0xc0, 0xc5, 0x87, 0x67, | ||
9354 | 0x63, 0x55, 0x3f, 0x28, 0x18, 0x11, 0x10, 0x12, | ||
9355 | 0x23, 0x52, 0x88, 0xa3, 0xa6, 0x9f, 0x93, 0x88, | ||
9356 | 0x30, 0x4c, 0x55, 0x46, 0x41, 0x48, 0x38, 0x19, | ||
9357 | 0x48, 0x61, 0x7d, 0x78, 0x50, 0x3c, 0x6a, 0xad, | ||
9358 | 0xe3, 0xf5, 0xf9, 0xd7, 0x9a, 0x65, 0x51, 0x51, | ||
9359 | 0x48, 0x28, 0x0f, 0x31, 0x8d, 0xd9, 0xd4, 0xa6, | ||
9360 | 0x92, 0x90, 0x9e, 0xb6, 0xc2, 0xc4, 0xd1, 0xe5, | ||
9361 | 0xd1, 0xbb, 0xb1, 0xac, 0x87, 0x4f, 0x39, 0x47, | ||
9362 | 0x0c, 0x57, 0xbe, 0xda, 0x7e, 0x11, 0x10, 0x54, | ||
9363 | 0x1c, 0x28, 0x26, 0x23, 0x40, 0x5f, 0x49, 0x17, | ||
9364 | 0x2f, 0x4b, 0x6d, 0x7e, 0x75, 0x5c, 0x43, 0x35, | ||
9365 | 0x2d, 0x2e, 0x2e, 0x29, 0x21, 0x1a, 0x16, 0x15, | ||
9366 | 0xd7, 0xaa, 0x6f, 0x4a, 0x45, 0x52, 0x60, 0x66, | ||
9367 | 0x5f, 0x67, 0x69, 0x59, 0x41, 0x39, 0x45, 0x56, | ||
9368 | 0x83, 0x84, 0x7a, 0x62, 0x50, 0x5a, 0x7f, 0xa1, | ||
9369 | 0xfd, 0xc5, 0x7d, 0x4f, 0x45, 0x4a, 0x4b, 0x47, | ||
9370 | 0x8b, 0x94, 0xa1, 0xae, 0xb8, 0xc0, 0xc5, 0xc8, | ||
9371 | 0xee, 0xf2, 0xf0, 0xe1, 0xcb, 0xbb, 0xb7, 0xba, | ||
9372 | 0xd8, 0xde, 0xd0, 0xa1, 0x62, 0x3a, 0x37, 0x44, | ||
9373 | 0x62, 0x58, 0x3c, 0x34, 0x65, 0x9c, 0x8b, 0x51, | ||
9374 | 0x0a, 0x0c, 0x3b, 0x82, 0x9e, 0x92, 0xa2, 0xcc, | ||
9375 | 0xd5, 0xd2, 0xc9, 0xbc, 0xb3, 0xb6, 0xc3, 0xd0, | ||
9376 | 0x78, 0x70, 0x66, 0x60, 0x65, 0x72, 0x82, 0x8d, | ||
9377 | 0xb6, 0xa8, 0x95, 0x83, 0x73, 0x60, 0x4b, 0x3c, | ||
9378 | 0x33, 0x54, 0x86, 0xb4, 0xd1, 0xe0, 0xe7, 0xea, | ||
9379 | 0x81, 0x48, 0x1f, 0x26, 0x39, 0x3f, 0x4f, 0x66, | ||
9380 | 0x55, 0x4f, 0x49, 0x46, 0x45, 0x41, 0x3a, 0x33, | ||
9381 | 0x35, 0x21, 0x29, 0x48, 0x50, 0x5d, 0xab, 0xff, | ||
9382 | 0x8b, 0x70, 0x74, 0x88, 0x65, 0x20, 0x12, 0x37, | ||
9383 | 0x76, 0x74, 0x89, 0xbd, 0xef, 0xf4, 0xc7, 0x96, | ||
9384 | 0x70, 0x52, 0x39, 0x42, 0x5d, 0x61, 0x41, 0x1e, | ||
9385 | 0x41, 0x2f, 0x49, 0x7d, 0x76, 0x37, 0x15, 0x24, | ||
9386 | 0x24, 0x32, 0x82, 0xd9, 0xc2, 0x6e, 0x71, 0xbc, | ||
9387 | 0xff, 0xdc, 0xa1, 0x7f, 0x7e, 0x87, 0x87, 0x82, | ||
9388 | 0x3f, 0x28, 0x13, 0x15, 0x2c, 0x43, 0x4c, 0x4b, | ||
9389 | 0x0f, 0x1c, 0x2a, 0x30, 0x2f, 0x31, 0x3a, 0x43, | ||
9390 | 0x22, 0x30, 0x3e, 0x47, 0x3f, 0x26, 0x26, 0x40, | ||
9391 | 0x74, 0x78, 0x7d, 0x7e, 0x7a, 0x71, 0x66, 0x5f, | ||
9392 | 0x6c, 0x76, 0x80, 0x81, 0x78, 0x6e, 0x6a, 0x6a, | ||
9393 | 0x8c, 0x86, 0x81, 0x83, 0x89, 0x8b, 0x86, 0x80, | ||
9394 | 0x75, 0x7a, 0x81, 0x86, 0x85, 0x80, 0x78, 0x73, | ||
9395 | 0x72, 0x81, 0x96, 0xa4, 0xa2, 0x92, 0x7b, 0x6b, | ||
9396 | 0x6e, 0x68, 0x61, 0x61, 0x63, 0x62, 0x5c, 0x55, | ||
9397 | 0x44, 0x13, 0x28, 0x59, 0x7b, 0x7d, 0x5d, 0x57, | ||
9398 | 0x3f, 0x2e, 0x17, 0x06, 0x06, 0x16, 0x2d, 0x3d, | ||
9399 | 0x41, 0x33, 0x54, 0x8c, 0x88, 0x59, 0x60, 0x96, | ||
9400 | 0x9d, 0x5f, 0x30, 0x27, 0x15, 0x00, 0x11, 0x42, | ||
9401 | 0x57, 0x63, 0x5e, 0x4d, 0x5a, 0x8d, 0xbf, 0xd6, | ||
9402 | 0xae, 0x9b, 0x8e, 0x95, 0xa5, 0xa1, 0x82, 0x64, | ||
9403 | 0x2b, 0x45, 0x81, 0xc1, 0xd5, 0xbe, 0xa8, 0xa4, | ||
9404 | 0x7b, 0x8e, 0x91, 0x79, 0x66, 0x69, 0x74, 0x78, | ||
9405 | 0x71, 0x88, 0xa2, 0x94, 0x53, 0x11, 0x0a, 0x27, | ||
9406 | 0x9b, 0xa8, 0xaf, 0xad, 0xab, 0x9c, 0x6e, 0x3e, | ||
9407 | 0x3a, 0x37, 0x35, 0x31, 0x2a, 0x2f, 0x48, 0x62, | ||
9408 | 0x7c, 0x6a, 0x52, 0x43, 0x40, 0x3f, 0x3d, 0x39, | ||
9409 | 0x22, 0x24, 0x27, 0x28, 0x25, 0x1d, 0x12, 0x0a, | ||
9410 | 0xbc, 0x99, 0x65, 0x3a, 0x23, 0x1f, 0x25, 0x2a, | ||
9411 | 0x08, 0x36, 0x5b, 0x4a, 0x1e, 0x15, 0x45, 0x7b, | ||
9412 | 0xc8, 0xc6, 0xad, 0x75, 0x3c, 0x2b, 0x49, 0x6f, | ||
9413 | 0x35, 0x23, 0x17, 0x28, 0x48, 0x5b, 0x52, 0x41, | ||
9414 | 0x6e, 0x6c, 0x63, 0x51, 0x3f, 0x3a, 0x44, 0x50, | ||
9415 | 0x34, 0x5a, 0x81, 0x86, 0x6a, 0x47, 0x34, 0x31, | ||
9416 | 0x1b, 0x2a, 0x39, 0x3b, 0x37, 0x3d, 0x51, 0x65, | ||
9417 | 0x41, 0x22, 0x30, 0x6f, 0x8d, 0x64, 0x2d, 0x15, | ||
9418 | 0xa2, 0xa1, 0xab, 0xae, 0x92, 0x72, 0x7d, 0xa0, | ||
9419 | 0x98, 0x9b, 0x9c, 0x95, 0x84, 0x6d, 0x57, 0x4b, | ||
9420 | 0xc4, 0xd0, 0xdd, 0xe1, 0xd3, 0xb5, 0x93, 0x7c, | ||
9421 | 0xa7, 0xb0, 0xae, 0x94, 0x78, 0x7e, 0xa8, 0xd1, | ||
9422 | 0x9b, 0xa8, 0xa8, 0x90, 0x78, 0x82, 0xb4, 0xe4, | ||
9423 | 0x7c, 0x44, 0x1e, 0x2b, 0x43, 0x4c, 0x59, 0x6d, | ||
9424 | 0x16, 0x3a, 0x69, 0x86, 0x84, 0x6d, 0x52, 0x43, | ||
9425 | 0x40, 0x23, 0x29, 0x56, 0x6b, 0x5f, 0x69, 0x8a, | ||
9426 | 0x81, 0x6c, 0x56, 0x4d, 0x51, 0x6e, 0xa8, 0xdd, | ||
9427 | 0xe9, 0xdd, 0xce, 0xc0, 0xa6, 0x74, 0x31, 0x00, | ||
9428 | 0x4b, 0x21, 0x13, 0x52, 0xb1, 0xd7, 0xa7, 0x64, | ||
9429 | 0x47, 0x9d, 0xff, 0xff, 0xb8, 0x5c, 0x63, 0xa1, | ||
9430 | 0xd5, 0x56, 0x1a, 0x71, 0xd4, 0xcb, 0x7e, 0x48, | ||
9431 | 0x72, 0x7e, 0x81, 0x6c, 0x4b, 0x39, 0x3f, 0x4d, | ||
9432 | 0xe2, 0xb6, 0x7f, 0x63, 0x6b, 0x86, 0x9b, 0xa5, | ||
9433 | 0x90, 0xa0, 0x9e, 0x73, 0x36, 0x15, 0x21, 0x3a, | ||
9434 | 0x46, 0x44, 0x20, 0x01, 0x0d, 0x26, 0x40, 0x5c, | ||
9435 | 0x68, 0x6d, 0x74, 0x78, 0x77, 0x70, 0x68, 0x62, | ||
9436 | 0x6b, 0x76, 0x82, 0x87, 0x84, 0x82, 0x84, 0x88, | ||
9437 | 0x7c, 0x76, 0x71, 0x72, 0x77, 0x79, 0x73, 0x6d, | ||
9438 | 0x6a, 0x72, 0x7f, 0x89, 0x8e, 0x8b, 0x85, 0x80, | ||
9439 | 0x69, 0x69, 0x69, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, | ||
9440 | 0x73, 0x6c, 0x65, 0x64, 0x65, 0x64, 0x5d, 0x56, | ||
9441 | 0x4d, 0x2d, 0x6f, 0xa5, 0x83, 0x4e, 0x40, 0x62, | ||
9442 | 0x54, 0x4e, 0x48, 0x4b, 0x5a, 0x73, 0x8e, 0xa0, | ||
9443 | 0xa9, 0x48, 0x2a, 0x85, 0xd9, 0xd4, 0xb2, 0xac, | ||
9444 | 0x84, 0x3f, 0x32, 0x63, 0x61, 0x2b, 0x36, 0x79, | ||
9445 | 0x60, 0x6e, 0x5b, 0x3d, 0x5c, 0xa8, 0xc7, 0xb5, | ||
9446 | 0x90, 0x71, 0x5b, 0x69, 0x8b, 0x95, 0x78, 0x55, | ||
9447 | 0x80, 0x40, 0x39, 0x8c, 0xcb, 0xaf, 0x6c, 0x47, | ||
9448 | 0x4f, 0x6f, 0x79, 0x6a, 0x75, 0x9d, 0xab, 0x9b, | ||
9449 | 0x5a, 0x77, 0x8f, 0x82, 0x5e, 0x55, 0x7f, 0xb3, | ||
9450 | 0xa4, 0xac, 0x9b, 0x7a, 0x75, 0x8e, 0x9c, 0x93, | ||
9451 | 0x4d, 0x24, 0x15, 0x32, 0x49, 0x3f, 0x33, 0x35, | ||
9452 | 0x40, 0x3c, 0x38, 0x39, 0x3b, 0x39, 0x31, 0x29, | ||
9453 | 0x28, 0x2b, 0x32, 0x3a, 0x3c, 0x30, 0x1a, 0x09, | ||
9454 | 0x4a, 0x48, 0x42, 0x39, 0x33, 0x37, 0x42, 0x4c, | ||
9455 | 0x6d, 0x68, 0x62, 0x60, 0x63, 0x68, 0x6d, 0x70, | ||
9456 | 0x63, 0x39, 0x10, 0x10, 0x32, 0x50, 0x54, 0x49, | ||
9457 | 0x34, 0x35, 0x36, 0x34, 0x36, 0x40, 0x53, 0x61, | ||
9458 | 0x62, 0x82, 0xa5, 0xad, 0x97, 0x7a, 0x6a, 0x66, | ||
9459 | 0x88, 0x87, 0x77, 0x54, 0x32, 0x2e, 0x4b, 0x69, | ||
9460 | 0x4e, 0x4e, 0x57, 0x6a, 0x7a, 0x74, 0x59, 0x40, | ||
9461 | 0x0f, 0x12, 0x40, 0x80, 0x8a, 0x59, 0x36, 0x38, | ||
9462 | 0x15, 0x63, 0xb0, 0xcc, 0xce, 0xce, 0xc1, 0xac, | ||
9463 | 0x29, 0x45, 0x6d, 0x8d, 0xa1, 0xb2, 0xc3, 0xcf, | ||
9464 | 0x62, 0x7e, 0xab, 0xd3, 0xe8, 0xe8, 0xda, 0xcd, | ||
9465 | 0x5c, 0x6b, 0x7f, 0x90, 0xa1, 0xb8, 0xd5, 0xea, | ||
9466 | 0xaf, 0xa9, 0x99, 0x7f, 0x61, 0x48, 0x3b, 0x36, | ||
9467 | 0x18, 0x0b, 0x14, 0x30, 0x38, 0x30, 0x40, 0x5f, | ||
9468 | 0x51, 0x51, 0x4b, 0x3f, 0x36, 0x39, 0x48, 0x57, | ||
9469 | 0x2c, 0x35, 0x18, 0x00, 0x38, 0x93, 0x91, 0x4c, | ||
9470 | 0x37, 0x68, 0x59, 0x24, 0x54, 0xd7, 0xff, 0xe4, | ||
9471 | 0xd1, 0xb3, 0x94, 0x8a, 0x8a, 0x79, 0x4f, 0x2a, | ||
9472 | 0x4c, 0x3c, 0x30, 0x38, 0x50, 0x65, 0x6b, 0x68, | ||
9473 | 0x7e, 0xab, 0xb9, 0x8d, 0x60, 0x55, 0x55, 0x4f, | ||
9474 | 0x9f, 0x99, 0x8f, 0x80, 0x69, 0x51, 0x42, 0x3e, | ||
9475 | 0x1b, 0x29, 0x31, 0x28, 0x1a, 0x1e, 0x3a, 0x55, | ||
9476 | 0xd0, 0xb4, 0x93, 0x84, 0x86, 0x87, 0x7e, 0x72, | ||
9477 | 0x81, 0x81, 0x84, 0x89, 0x87, 0x78, 0x60, 0x4c, | ||
9478 | 0x78, 0x63, 0x89, 0xeb, 0xff, 0xc7, 0x6f, 0x53, | ||
9479 | 0x5a, 0x61, 0x6a, 0x71, 0x74, 0x70, 0x6a, 0x66, | ||
9480 | 0x6e, 0x77, 0x82, 0x85, 0x83, 0x84, 0x89, 0x8f, | ||
9481 | 0x82, 0x7b, 0x75, 0x76, 0x7a, 0x7b, 0x75, 0x6e, | ||
9482 | 0x69, 0x73, 0x81, 0x8e, 0x92, 0x8e, 0x85, 0x7f, | ||
9483 | 0x76, 0x71, 0x6a, 0x65, 0x67, 0x6e, 0x77, 0x7e, | ||
9484 | 0x55, 0x4e, 0x47, 0x44, 0x45, 0x43, 0x3b, 0x34, | ||
9485 | 0x3a, 0x41, 0x73, 0x6b, 0x43, 0x46, 0x49, 0x49, | ||
9486 | 0x79, 0x78, 0x76, 0x73, 0x6f, 0x6b, 0x68, 0x66, | ||
9487 | 0x6c, 0x7a, 0x98, 0xb0, 0xa2, 0x78, 0x5a, 0x55, | ||
9488 | 0x54, 0x59, 0x4b, 0x2f, 0x24, 0x2b, 0x29, 0x1b, | ||
9489 | 0x1d, 0x65, 0x84, 0x5a, 0x42, 0x6d, 0xa3, 0xb7, | ||
9490 | 0xaf, 0x99, 0x80, 0x74, 0x71, 0x69, 0x56, 0x44, | ||
9491 | 0x48, 0x30, 0x2f, 0x3c, 0x26, 0x0f, 0x3d, 0x8b, | ||
9492 | 0x58, 0x93, 0xb5, 0x9f, 0x84, 0x7b, 0x67, 0x47, | ||
9493 | 0x8c, 0x8f, 0x7f, 0x5b, 0x41, 0x4a, 0x6b, 0x86, | ||
9494 | 0x90, 0x4f, 0x43, 0x82, 0xa4, 0x89, 0x7b, 0x92, | ||
9495 | 0xc0, 0xad, 0x73, 0x2e, 0x18, 0x2e, 0x3a, 0x2f, | ||
9496 | 0x28, 0x33, 0x40, 0x42, 0x39, 0x2d, 0x24, 0x21, | ||
9497 | 0x3b, 0x2f, 0x26, 0x27, 0x2f, 0x30, 0x26, 0x1b, | ||
9498 | 0x2c, 0x3a, 0x47, 0x48, 0x41, 0x42, 0x52, 0x61, | ||
9499 | 0x37, 0x3a, 0x3d, 0x3f, 0x43, 0x4c, 0x5a, 0x65, | ||
9500 | 0x83, 0x70, 0x61, 0x6a, 0x84, 0x98, 0x97, 0x8e, | ||
9501 | 0x90, 0xb4, 0xd1, 0xbf, 0x85, 0x4f, 0x37, 0x37, | ||
9502 | 0xa1, 0xbf, 0xda, 0xd6, 0xba, 0xa5, 0xa8, 0xb5, | ||
9503 | 0x87, 0x8c, 0x8a, 0x78, 0x5b, 0x40, 0x31, 0x2d, | ||
9504 | 0x6f, 0x42, 0x12, 0x06, 0x1f, 0x3f, 0x4b, 0x49, | ||
9505 | 0x38, 0x6e, 0x91, 0x8f, 0x9c, 0xc2, 0xcf, 0xbd, | ||
9506 | 0x40, 0x7a, 0x9e, 0x9b, 0xab, 0xd4, 0xdf, 0xc9, | ||
9507 | 0x5f, 0x70, 0x76, 0x5e, 0x3b, 0x32, 0x4e, 0x70, | ||
9508 | 0x96, 0x96, 0x94, 0x91, 0x8c, 0x86, 0x80, 0x7d, | ||
9509 | 0x85, 0x63, 0x4a, 0x61, 0xa0, 0xdd, 0xfa, 0xfe, | ||
9510 | 0x56, 0x42, 0x40, 0x6a, 0xa3, 0xb9, 0x9c, 0x74, | ||
9511 | 0x33, 0x40, 0x5e, 0x6d, 0x4b, 0x1a, 0x17, 0x36, | ||
9512 | 0xa4, 0x7e, 0x48, 0x1d, 0x0f, 0x19, 0x2e, 0x3d, | ||
9513 | 0x84, 0x61, 0x31, 0x23, 0x48, 0x6a, 0x4f, 0x19, | ||
9514 | 0x00, 0x00, 0x2f, 0x87, 0xc4, 0xce, 0xcc, 0xd4, | ||
9515 | 0xe7, 0xa6, 0x6e, 0x76, 0xa6, 0xb3, 0x81, 0x46, | ||
9516 | 0xad, 0x80, 0x51, 0x4b, 0x77, 0xb8, 0xed, 0xff, | ||
9517 | 0xbd, 0xcf, 0xb7, 0x7f, 0x70, 0x7d, 0x5d, 0x1e, | ||
9518 | 0x1d, 0x53, 0x7c, 0x71, 0x4f, 0x3d, 0x39, 0x37, | ||
9519 | 0x5a, 0x36, 0x13, 0x11, 0x33, 0x5d, 0x78, 0x82, | ||
9520 | 0x45, 0x51, 0x6b, 0x8a, 0x98, 0x81, 0x4e, 0x23, | ||
9521 | 0x3e, 0x1c, 0x1c, 0x64, 0xc0, 0xd1, 0x83, 0x2a, | ||
9522 | 0x2a, 0x69, 0xbd, 0xe8, 0xf1, 0xec, 0xaa, 0x45, | ||
9523 | 0x5d, 0x63, 0x6d, 0x74, 0x76, 0x73, 0x6c, 0x68, | ||
9524 | 0x73, 0x79, 0x7e, 0x7b, 0x75, 0x73, 0x77, 0x7d, | ||
9525 | 0x85, 0x7e, 0x77, 0x77, 0x7b, 0x7a, 0x74, 0x6d, | ||
9526 | 0x71, 0x7b, 0x88, 0x91, 0x91, 0x87, 0x79, 0x70, | ||
9527 | 0x63, 0x6a, 0x73, 0x7a, 0x7b, 0x75, 0x6d, 0x67, | ||
9528 | 0x6a, 0x63, 0x5b, 0x58, 0x58, 0x55, 0x4d, 0x45, | ||
9529 | 0x3e, 0x36, 0x3a, 0x24, 0x38, 0x74, 0x6e, 0x4f, | ||
9530 | 0x52, 0x53, 0x52, 0x4d, 0x43, 0x33, 0x24, 0x1b, | ||
9531 | 0x5e, 0xb9, 0xf1, 0xbe, 0x61, 0x38, 0x4a, 0x65, | ||
9532 | 0x66, 0x4a, 0x37, 0x37, 0x34, 0x2e, 0x3d, 0x56, | ||
9533 | 0x2c, 0x4e, 0x5f, 0x51, 0x4c, 0x67, 0x8b, 0x9e, | ||
9534 | 0xa6, 0x9e, 0x8f, 0x7e, 0x70, 0x6a, 0x6c, 0x70, | ||
9535 | 0x55, 0x2c, 0x1c, 0x42, 0x71, 0x7e, 0x71, 0x66, | ||
9536 | 0x4a, 0x7b, 0x9c, 0x87, 0x5c, 0x48, 0x4c, 0x54, | ||
9537 | 0x62, 0x6f, 0x72, 0x6e, 0x81, 0xa8, 0xbf, 0xbf, | ||
9538 | 0x7e, 0x47, 0x3a, 0x6a, 0x88, 0x7e, 0x89, 0xae, | ||
9539 | 0xbc, 0xd6, 0xd4, 0x9b, 0x4b, 0x1d, 0x1f, 0x31, | ||
9540 | 0x2e, 0x25, 0x19, 0x14, 0x24, 0x50, 0x87, 0xaf, | ||
9541 | 0xdb, 0xb0, 0x76, 0x4c, 0x38, 0x2d, 0x1e, 0x11, | ||
9542 | 0x52, 0x5b, 0x5c, 0x4c, 0x3b, 0x41, 0x60, 0x7e, | ||
9543 | 0x87, 0xae, 0xd7, 0xdf, 0xc2, 0x9d, 0x87, 0x81, | ||
9544 | 0xe1, 0xe2, 0xd6, 0xb2, 0x7d, 0x4a, 0x2a, 0x1d, | ||
9545 | 0x50, 0x74, 0x94, 0x91, 0x73, 0x60, 0x6b, 0x7f, | ||
9546 | 0x90, 0x8f, 0x78, 0x43, 0x0c, 0x00, 0x1e, 0x44, | ||
9547 | 0x26, 0x21, 0x20, 0x2a, 0x39, 0x41, 0x3d, 0x36, | ||
9548 | 0x63, 0x4c, 0x2e, 0x1d, 0x21, 0x34, 0x49, 0x56, | ||
9549 | 0x90, 0xa4, 0xa0, 0x8a, 0x94, 0xb3, 0xab, 0x85, | ||
9550 | 0x92, 0x83, 0x6d, 0x64, 0x79, 0x9f, 0xba, 0xc2, | ||
9551 | 0xdc, 0xf5, 0xf2, 0xaf, 0x51, 0x1e, 0x31, 0x5a, | ||
9552 | 0x56, 0x51, 0x4a, 0x46, 0x46, 0x4a, 0x51, 0x56, | ||
9553 | 0x21, 0x4e, 0x94, 0xd2, 0xea, 0xd2, 0x9e, 0x76, | ||
9554 | 0x69, 0x49, 0x2e, 0x38, 0x66, 0x9a, 0xb9, 0xc3, | ||
9555 | 0xb2, 0xb7, 0xc5, 0xbd, 0x80, 0x34, 0x1b, 0x2c, | ||
9556 | 0x54, 0x49, 0x46, 0x58, 0x6c, 0x66, 0x43, 0x21, | ||
9557 | 0x69, 0x50, 0x79, 0xd5, 0xed, 0xae, 0x81, 0x89, | ||
9558 | 0xc2, 0x94, 0xb2, 0xfe, 0xdf, 0x6a, 0x4b, 0x88, | ||
9559 | 0xf5, 0xb4, 0x73, 0x6a, 0x90, 0xad, 0xa1, 0x86, | ||
9560 | 0xc1, 0x7b, 0x2c, 0x0d, 0x21, 0x3b, 0x3b, 0x2d, | ||
9561 | 0x17, 0x62, 0x96, 0x70, 0x1f, 0x00, 0x1b, 0x49, | ||
9562 | 0x1a, 0x1b, 0x33, 0x57, 0x60, 0x4b, 0x3e, 0x44, | ||
9563 | 0x44, 0x2c, 0x17, 0x1b, 0x33, 0x45, 0x43, 0x39, | ||
9564 | 0x1a, 0x11, 0x0e, 0x1d, 0x33, 0x3b, 0x2f, 0x20, | ||
9565 | 0x28, 0x33, 0x3f, 0x40, 0x35, 0x27, 0x1f, 0x1c, | ||
9566 | 0x11, 0x02, 0x67, 0xce, 0xaa, 0x69, 0x56, 0x45, | ||
9567 | 0x37, 0x41, 0x51, 0x61, 0x6c, 0x71, 0x72, 0x71, | ||
9568 | 0x71, 0x76, 0x79, 0x76, 0x71, 0x70, 0x77, 0x7e, | ||
9569 | 0x75, 0x6e, 0x67, 0x66, 0x69, 0x68, 0x61, 0x5a, | ||
9570 | 0x5c, 0x69, 0x7d, 0x8d, 0x94, 0x8f, 0x84, 0x7c, | ||
9571 | 0x72, 0x72, 0x72, 0x71, 0x70, 0x6f, 0x6f, 0x6e, | ||
9572 | 0x60, 0x59, 0x50, 0x4d, 0x4c, 0x49, 0x40, 0x39, | ||
9573 | 0x2b, 0x2b, 0x3e, 0x48, 0x65, 0x77, 0x63, 0x6d, | ||
9574 | 0x52, 0x51, 0x4f, 0x51, 0x56, 0x5e, 0x66, 0x6c, | ||
9575 | 0x59, 0x50, 0x3c, 0x3a, 0x60, 0x84, 0x72, 0x45, | ||
9576 | 0x27, 0x0f, 0x53, 0xd7, 0xff, 0xca, 0xc2, 0xfa, | ||
9577 | 0x9f, 0x6d, 0x44, 0x42, 0x4f, 0x57, 0x65, 0x77, | ||
9578 | 0xaa, 0x96, 0x7a, 0x62, 0x55, 0x4f, 0x4c, 0x4a, | ||
9579 | 0x4f, 0x85, 0xaf, 0xa7, 0x8f, 0x84, 0x81, 0x7b, | ||
9580 | 0x4f, 0x2b, 0x11, 0x19, 0x2a, 0x2c, 0x27, 0x27, | ||
9581 | 0x5d, 0x78, 0x82, 0x79, 0x87, 0xa8, 0xb1, 0xa1, | ||
9582 | 0x90, 0x5f, 0x2c, 0x30, 0x70, 0xb7, 0xce, 0xc3, | ||
9583 | 0xac, 0x82, 0x71, 0x85, 0x87, 0x65, 0x49, 0x48, | ||
9584 | 0x58, 0x41, 0x28, 0x25, 0x42, 0x6f, 0x99, 0xb1, | ||
9585 | 0xa2, 0x7d, 0x50, 0x38, 0x36, 0x35, 0x28, 0x19, | ||
9586 | 0x4b, 0x51, 0x4d, 0x3e, 0x39, 0x58, 0x98, 0xcc, | ||
9587 | 0xc2, 0x86, 0x48, 0x3b, 0x57, 0x67, 0x53, 0x35, | ||
9588 | 0x37, 0x2c, 0x39, 0x70, 0xb2, 0xcb, 0xac, 0x82, | ||
9589 | 0x5f, 0x7f, 0xa6, 0xbc, 0xc2, 0xca, 0xde, 0xf0, | ||
9590 | 0x90, 0xa2, 0xa8, 0x91, 0x74, 0x7b, 0xab, 0xdb, | ||
9591 | 0x70, 0x49, 0x1f, 0x17, 0x32, 0x56, 0x6b, 0x70, | ||
9592 | 0x4f, 0x51, 0x47, 0x2d, 0x17, 0x21, 0x49, 0x6f, | ||
9593 | 0x8c, 0x5e, 0x5c, 0x98, 0xc1, 0xaa, 0x80, 0x6e, | ||
9594 | 0x54, 0x48, 0x6c, 0xb9, 0xe0, 0xc3, 0x9a, 0x8c, | ||
9595 | 0x2f, 0x72, 0xa6, 0x89, 0x39, 0x0c, 0x29, 0x5c, | ||
9596 | 0x0f, 0x1d, 0x33, 0x4a, 0x5b, 0x63, 0x64, 0x63, | ||
9597 | 0x56, 0x7a, 0x88, 0x5e, 0x23, 0x20, 0x66, 0xb1, | ||
9598 | 0x9c, 0xcc, 0xf9, 0xf4, 0xc5, 0x9b, 0x94, 0xa0, | ||
9599 | 0x74, 0x7b, 0x9a, 0xbb, 0xb5, 0x9a, 0x9d, 0xb9, | ||
9600 | 0x96, 0x5e, 0x22, 0x13, 0x2c, 0x43, 0x3c, 0x29, | ||
9601 | 0x48, 0x57, 0x61, 0x5a, 0x53, 0x64, 0x8c, 0xaf, | ||
9602 | 0xba, 0xff, 0xf9, 0x84, 0x36, 0x4e, 0x6f, 0x67, | ||
9603 | 0x73, 0x96, 0xc3, 0xd8, 0xc8, 0x9b, 0x6b, 0x4c, | ||
9604 | 0x7a, 0x9a, 0xb9, 0xba, 0xa6, 0xa1, 0xb7, 0xd2, | ||
9605 | 0xc8, 0x71, 0x3e, 0x66, 0xa3, 0xbc, 0xce, 0xe6, | ||
9606 | 0xbe, 0x4e, 0x15, 0x47, 0x6a, 0x40, 0x19, 0x1f, | ||
9607 | 0x6a, 0x93, 0xbf, 0xc8, 0xa9, 0x7d, 0x5e, 0x51, | ||
9608 | 0xba, 0xbe, 0xcc, 0xe5, 0xf6, 0xec, 0xc9, 0xaa, | ||
9609 | 0xbe, 0x96, 0x68, 0x5b, 0x79, 0xae, 0xdd, 0xf6, | ||
9610 | 0xd5, 0x81, 0x6f, 0x64, 0x3c, 0x6e, 0xac, 0x8b, | ||
9611 | 0x4d, 0x55, 0x62, 0x6d, 0x74, 0x74, 0x71, 0x6f, | ||
9612 | 0x6a, 0x70, 0x77, 0x79, 0x79, 0x7e, 0x8a, 0x94, | ||
9613 | 0x8f, 0x87, 0x80, 0x7f, 0x82, 0x81, 0x79, 0x72, | ||
9614 | 0x65, 0x71, 0x82, 0x8f, 0x90, 0x87, 0x78, 0x6d, | ||
9615 | 0x6e, 0x72, 0x77, 0x7a, 0x78, 0x72, 0x69, 0x64, | ||
9616 | 0x69, 0x61, 0x58, 0x54, 0x54, 0x50, 0x47, 0x3f, | ||
9617 | 0x47, 0x2f, 0x1d, 0x1d, 0x4b, 0x5d, 0x4a, 0x67, | ||
9618 | 0x64, 0x59, 0x4c, 0x48, 0x53, 0x6c, 0x89, 0x9c, | ||
9619 | 0x67, 0x6d, 0x76, 0x7d, 0x7a, 0x63, 0x39, 0x16, | ||
9620 | 0x31, 0x4d, 0x77, 0x9e, 0xb8, 0xc1, 0xbc, 0xb4, | ||
9621 | 0xe7, 0xb6, 0x89, 0x61, 0x22, 0x00, 0x2d, 0x85, | ||
9622 | 0x76, 0x55, 0x33, 0x2a, 0x38, 0x44, 0x3e, 0x33, | ||
9623 | 0xc5, 0xcd, 0xa3, 0x59, 0x41, 0x60, 0x6a, 0x52, | ||
9624 | 0x4e, 0x58, 0x76, 0x88, 0x66, 0x3a, 0x4a, 0x7d, | ||
9625 | 0x58, 0x77, 0x7a, 0x5c, 0x54, 0x70, 0x7e, 0x72, | ||
9626 | 0x72, 0x3d, 0x24, 0x58, 0xad, 0xdd, 0xdb, 0xc9, | ||
9627 | 0xaf, 0xad, 0xab, 0xb7, 0xcd, 0xc0, 0x74, 0x23, | ||
9628 | 0x64, 0x45, 0x2b, 0x37, 0x61, 0x8a, 0x99, 0x97, | ||
9629 | 0xa7, 0x8f, 0x76, 0x6b, 0x67, 0x53, 0x2b, 0x09, | ||
9630 | 0x37, 0x38, 0x3e, 0x48, 0x57, 0x6a, 0x7a, 0x84, | ||
9631 | 0xf6, 0xac, 0x5c, 0x42, 0x57, 0x62, 0x46, 0x21, | ||
9632 | 0x25, 0x2e, 0x52, 0x78, 0x70, 0x4b, 0x47, 0x5f, | ||
9633 | 0x6b, 0x40, 0x25, 0x47, 0x94, 0xd0, 0xd9, 0xc9, | ||
9634 | 0x2f, 0x44, 0x68, 0x90, 0xb3, 0xcd, 0xdc, 0xe3, | ||
9635 | 0x45, 0x43, 0x42, 0x45, 0x4f, 0x5d, 0x6c, 0x75, | ||
9636 | 0x6d, 0x56, 0x42, 0x48, 0x69, 0x8e, 0xa6, 0xae, | ||
9637 | 0xeb, 0xbd, 0x94, 0x97, 0xaf, 0xa7, 0x70, 0x37, | ||
9638 | 0x33, 0x40, 0x49, 0x3e, 0x28, 0x1a, 0x1f, 0x2b, | ||
9639 | 0x28, 0x55, 0x8f, 0xb2, 0xb0, 0x95, 0x77, 0x65, | ||
9640 | 0x49, 0x57, 0x36, 0x22, 0x3d, 0x41, 0x41, 0x66, | ||
9641 | 0x62, 0x51, 0x43, 0x47, 0x55, 0x58, 0x49, 0x38, | ||
9642 | 0x60, 0x6c, 0x70, 0x69, 0x66, 0x64, 0x55, 0x42, | ||
9643 | 0x4f, 0x86, 0xc5, 0xdc, 0xc8, 0xab, 0x9e, 0xa0, | ||
9644 | 0x8b, 0x54, 0x48, 0x81, 0xb0, 0xa2, 0x7f, 0x6f, | ||
9645 | 0x4f, 0x4a, 0x31, 0x28, 0x65, 0xc7, 0xf8, 0xf2, | ||
9646 | 0xc5, 0xc2, 0x9b, 0x4b, 0x0b, 0x23, 0x8e, 0xf3, | ||
9647 | 0x60, 0x68, 0x91, 0xb8, 0xa1, 0x69, 0x5f, 0x7f, | ||
9648 | 0x7e, 0xa0, 0xc3, 0xcb, 0xbf, 0xba, 0xca, 0xde, | ||
9649 | 0x95, 0x5d, 0x44, 0x62, 0x7d, 0x7e, 0x8e, 0xaf, | ||
9650 | 0xd2, 0xa8, 0x7c, 0x71, 0x7e, 0x7f, 0x65, 0x48, | ||
9651 | 0x88, 0x7c, 0x9a, 0xcd, 0xc7, 0x87, 0x5b, 0x5c, | ||
9652 | 0x6a, 0x4e, 0x69, 0xc6, 0xff, 0xe7, 0x9d, 0x6d, | ||
9653 | 0x38, 0x60, 0x93, 0xaf, 0xa8, 0x8b, 0x6e, 0x5d, | ||
9654 | 0x86, 0x3e, 0x58, 0x47, 0x2e, 0x85, 0xbe, 0xbb, | ||
9655 | 0xa0, 0x82, 0x68, 0x6d, 0x86, 0x91, 0x80, 0x69, | ||
9656 | 0x75, 0x7b, 0x85, 0x8d, 0x92, 0x91, 0x8f, 0x8c, | ||
9657 | 0x79, 0x81, 0x89, 0x8a, 0x81, 0x71, 0x62, 0x59, | ||
9658 | 0x6d, 0x77, 0x83, 0x86, 0x81, 0x7c, 0x7b, 0x7c, | ||
9659 | 0x72, 0x6c, 0x62, 0x5b, 0x5b, 0x62, 0x6b, 0x72, | ||
9660 | 0x6e, 0x66, 0x5c, 0x57, 0x54, 0x4f, 0x45, 0x3d, | ||
9661 | 0x31, 0x8f, 0xd3, 0xe1, 0xeb, 0xe3, 0xa8, 0x68, | ||
9662 | 0x2f, 0x5d, 0x94, 0xb6, 0xc2, 0xcb, 0xd9, 0xe4, | ||
9663 | 0x5d, 0x55, 0x58, 0x4f, 0x22, 0x05, 0x3d, 0x94, | ||
9664 | 0xe4, 0xca, 0xb2, 0xb5, 0xc6, 0xc8, 0xb1, 0x97, | ||
9665 | 0xe3, 0x7b, 0x59, 0x9e, 0xb1, 0x5f, 0x20, 0x25, | ||
9666 | 0x4a, 0x6d, 0x76, 0x59, 0x44, 0x41, 0x2e, 0x0e, | ||
9667 | 0xaa, 0xe6, 0xf0, 0xa9, 0x68, 0x5c, 0x5c, 0x4d, | ||
9668 | 0x5b, 0x62, 0x6c, 0x73, 0x70, 0x62, 0x4d, 0x3e, | ||
9669 | 0x54, 0x59, 0x5e, 0x5e, 0x5c, 0x5b, 0x5d, 0x60, | ||
9670 | 0x7f, 0x59, 0x46, 0x80, 0xc8, 0xc4, 0xae, 0xc0, | ||
9671 | 0x8e, 0x92, 0xb4, 0xc0, 0xb2, 0xba, 0xa2, 0x58, | ||
9672 | 0x35, 0x5c, 0x5f, 0x40, 0x4c, 0x8d, 0xb5, 0xaf, | ||
9673 | 0x97, 0xa5, 0x92, 0x76, 0x65, 0x3c, 0x16, 0x16, | ||
9674 | 0x2e, 0x33, 0x3c, 0x49, 0x5b, 0x6d, 0x7d, 0x87, | ||
9675 | 0x48, 0x31, 0x24, 0x35, 0x54, 0x5b, 0x3f, 0x1e, | ||
9676 | 0x37, 0x2b, 0x31, 0x3d, 0x2d, 0x12, 0x1f, 0x46, | ||
9677 | 0x30, 0x3c, 0x4f, 0x60, 0x62, 0x4f, 0x31, 0x19, | ||
9678 | 0x1d, 0x27, 0x39, 0x4e, 0x61, 0x6f, 0x78, 0x7c, | ||
9679 | 0x69, 0x60, 0x52, 0x45, 0x3c, 0x3a, 0x3d, 0x3f, | ||
9680 | 0x29, 0x36, 0x58, 0x8b, 0xbb, 0xd0, 0xc7, 0xb7, | ||
9681 | 0xe5, 0xb9, 0x85, 0x69, 0x5e, 0x45, 0x15, 0x00, | ||
9682 | 0x1e, 0x58, 0x8f, 0x8c, 0x5f, 0x42, 0x54, 0x74, | ||
9683 | 0xda, 0xbb, 0x9b, 0x8f, 0x8c, 0x75, 0x44, 0x1a, | ||
9684 | 0x3d, 0x4d, 0x2f, 0x1d, 0x36, 0x32, 0x29, 0x47, | ||
9685 | 0x30, 0x3e, 0x3e, 0x1f, 0x00, 0x07, 0x40, 0x78, | ||
9686 | 0xac, 0xd1, 0xf8, 0xf5, 0xc6, 0x9e, 0xa6, 0xc7, | ||
9687 | 0xe8, 0xe2, 0xd8, 0xc9, 0xb1, 0x8d, 0x65, 0x4b, | ||
9688 | 0x07, 0x5b, 0xb3, 0xd1, 0xba, 0x9c, 0x8e, 0x8c, | ||
9689 | 0x10, 0x24, 0x51, 0x85, 0x9a, 0x85, 0x5c, 0x41, | ||
9690 | 0x5a, 0x55, 0x69, 0xa0, 0xd0, 0xc0, 0x72, 0x27, | ||
9691 | 0x06, 0x79, 0xca, 0xac, 0x6e, 0x65, 0x7f, 0x90, | ||
9692 | 0xc9, 0xbf, 0xa1, 0x74, 0x4f, 0x4e, 0x71, 0x94, | ||
9693 | 0x4e, 0x62, 0x5c, 0x49, 0x63, 0x9c, 0xad, 0x96, | ||
9694 | 0x6c, 0x89, 0x9b, 0x83, 0x59, 0x4e, 0x70, 0x9a, | ||
9695 | 0x93, 0x8e, 0xb5, 0xf5, 0xf9, 0xb2, 0x68, 0x49, | ||
9696 | 0x94, 0xab, 0x90, 0x54, 0x4e, 0x6e, 0x55, 0x12, | ||
9697 | 0x31, 0x68, 0xaa, 0xc9, 0xbb, 0x98, 0x7c, 0x71, | ||
9698 | 0x37, 0x24, 0x31, 0x20, 0x1c, 0x22, 0x18, 0x40, | ||
9699 | 0x74, 0x6c, 0x61, 0x59, 0x57, 0x55, 0x52, 0x4f, | ||
9700 | 0x69, 0x6e, 0x75, 0x7b, 0x7e, 0x7d, 0x7a, 0x77, | ||
9701 | 0x85, 0x73, 0x63, 0x64, 0x72, 0x7a, 0x74, 0x69, | ||
9702 | 0x75, 0x7b, 0x82, 0x80, 0x79, 0x73, 0x73, 0x76, | ||
9703 | 0x89, 0x83, 0x7a, 0x71, 0x6c, 0x6c, 0x6f, 0x71, | ||
9704 | 0x77, 0x6e, 0x65, 0x60, 0x5e, 0x59, 0x50, 0x47, | ||
9705 | 0x30, 0x57, 0xa4, 0xc6, 0xc0, 0xd5, 0xc4, 0x73, | ||
9706 | 0x4a, 0x49, 0x2e, 0x1b, 0x44, 0x8a, 0x96, 0x73, | ||
9707 | 0xa8, 0x64, 0x41, 0x6d, 0xa8, 0xbd, 0xbf, 0xc6, | ||
9708 | 0xb2, 0xa6, 0x9b, 0x9a, 0x9f, 0x9e, 0x93, 0x87, | ||
9709 | 0x48, 0x12, 0x00, 0x48, 0xb8, 0xf7, 0xeb, 0xc9, | ||
9710 | 0x75, 0x85, 0x73, 0x41, 0x2e, 0x47, 0x5d, 0x5b, | ||
9711 | 0xcf, 0xdb, 0xc2, 0x90, 0x81, 0x93, 0x88, 0x64, | ||
9712 | 0x43, 0x3a, 0x32, 0x31, 0x33, 0x30, 0x25, 0x1a, | ||
9713 | 0x3a, 0x6c, 0x98, 0x92, 0x6d, 0x61, 0x83, 0xae, | ||
9714 | 0xc2, 0xa4, 0x73, 0x6d, 0x8d, 0x88, 0x73, 0x79, | ||
9715 | 0x6d, 0x70, 0x99, 0xb8, 0xb7, 0xbc, 0xa9, 0x73, | ||
9716 | 0x3c, 0x4c, 0x51, 0x42, 0x36, 0x46, 0x6d, 0x8e, | ||
9717 | 0x99, 0xac, 0xa0, 0x8a, 0x76, 0x43, 0x0f, 0x05, | ||
9718 | 0x19, 0x25, 0x3a, 0x55, 0x72, 0x8c, 0x9f, 0xaa, | ||
9719 | 0xa7, 0x94, 0x78, 0x5f, 0x4e, 0x46, 0x43, 0x41, | ||
9720 | 0x24, 0x3b, 0x73, 0xa6, 0x9c, 0x67, 0x4c, 0x55, | ||
9721 | 0x12, 0x4d, 0x8b, 0x98, 0x73, 0x4a, 0x3b, 0x40, | ||
9722 | 0x4a, 0x4f, 0x55, 0x57, 0x52, 0x45, 0x37, 0x2e, | ||
9723 | 0x40, 0x3f, 0x40, 0x46, 0x52, 0x63, 0x74, 0x7e, | ||
9724 | 0x8b, 0x79, 0x66, 0x61, 0x66, 0x62, 0x51, 0x3f, | ||
9725 | 0x00, 0x05, 0x4f, 0x99, 0xcb, 0xd9, 0xcd, 0xbe, | ||
9726 | 0x62, 0x85, 0x9d, 0x89, 0x5e, 0x51, 0x74, 0x9f, | ||
9727 | 0x9b, 0xb3, 0xc1, 0xa8, 0x74, 0x49, 0x3e, 0x44, | ||
9728 | 0x60, 0xab, 0xb9, 0x87, 0x52, 0x28, 0x43, 0x97, | ||
9729 | 0x95, 0xa6, 0xb4, 0xad, 0x97, 0x85, 0x84, 0x8a, | ||
9730 | 0xc1, 0xa2, 0x9e, 0xb4, 0xab, 0x8c, 0x99, 0xc6, | ||
9731 | 0xcc, 0xd6, 0xc9, 0x93, 0x53, 0x3e, 0x5f, 0x89, | ||
9732 | 0x98, 0x7f, 0x4a, 0x2e, 0x5b, 0x99, 0x89, 0x4a, | ||
9733 | 0x72, 0x6d, 0x8b, 0xb2, 0x98, 0x4c, 0x24, 0x2d, | ||
9734 | 0x23, 0x50, 0x6f, 0x50, 0x10, 0x00, 0x0a, 0x35, | ||
9735 | 0x79, 0xa5, 0xa9, 0x73, 0x4d, 0x55, 0x5c, 0x4f, | ||
9736 | 0x44, 0x44, 0x3f, 0x33, 0x2f, 0x42, 0x69, 0x89, | ||
9737 | 0x7d, 0x53, 0x1b, 0x21, 0x8b, 0xff, 0xff, 0xd9, | ||
9738 | 0xb9, 0xbb, 0xb1, 0x92, 0x6e, 0x5c, 0x63, 0x72, | ||
9739 | 0xab, 0x6d, 0x3b, 0x3c, 0x58, 0x78, 0xa6, 0xd0, | ||
9740 | 0xda, 0xc4, 0xa6, 0x83, 0x5e, 0x4c, 0x5d, 0x7b, | ||
9741 | 0x87, 0xa5, 0xc9, 0xd9, 0xd4, 0xca, 0xc9, 0xcd, | ||
9742 | 0xf4, 0xbc, 0x6f, 0x29, 0x68, 0xdc, 0xad, 0x33, | ||
9743 | 0x41, 0x52, 0x66, 0x70, 0x6c, 0x63, 0x5d, 0x5c, | ||
9744 | 0x76, 0x78, 0x7c, 0x7f, 0x7f, 0x7d, 0x7a, 0x77, | ||
9745 | 0x98, 0x88, 0x78, 0x77, 0x81, 0x82, 0x75, 0x66, | ||
9746 | 0x78, 0x7e, 0x83, 0x81, 0x79, 0x73, 0x72, 0x75, | ||
9747 | 0x70, 0x70, 0x71, 0x72, 0x74, 0x76, 0x78, 0x79, | ||
9748 | 0x6e, 0x66, 0x5d, 0x59, 0x57, 0x53, 0x4a, 0x42, | ||
9749 | 0x3d, 0x39, 0x81, 0xb3, 0x77, 0x4b, 0x86, 0xcd, | ||
9750 | 0xac, 0x9a, 0x51, 0x0b, 0x22, 0x6c, 0x6a, 0x2b, | ||
9751 | 0x43, 0x0c, 0x00, 0x2a, 0x7e, 0xb8, 0xd7, 0xe8, | ||
9752 | 0xbe, 0xc2, 0xbf, 0xae, 0x95, 0x84, 0x81, 0x85, | ||
9753 | 0x95, 0x98, 0x6e, 0x42, 0x6d, 0xbf, 0xb8, 0x6f, | ||
9754 | 0x2b, 0x80, 0xcd, 0xdd, 0xcc, 0xb0, 0x7d, 0x49, | ||
9755 | 0x6b, 0x8b, 0x9e, 0x99, 0x94, 0x89, 0x60, 0x2e, | ||
9756 | 0x6b, 0x65, 0x51, 0x32, 0x22, 0x38, 0x6e, 0x9d, | ||
9757 | 0x90, 0x9b, 0x9c, 0x87, 0x6c, 0x69, 0x84, 0xa1, | ||
9758 | 0x9f, 0x94, 0x61, 0x3e, 0x51, 0x65, 0x6b, 0x7b, | ||
9759 | 0x8c, 0x71, 0x76, 0x86, 0x82, 0x84, 0x8a, 0x80, | ||
9760 | 0x2f, 0x2a, 0x39, 0x4a, 0x37, 0x26, 0x52, 0x99, | ||
9761 | 0xb7, 0xc7, 0xb9, 0xa4, 0x93, 0x5f, 0x24, 0x15, | ||
9762 | 0x55, 0x5f, 0x70, 0x81, 0x90, 0x99, 0x9d, 0x9e, | ||
9763 | 0x3b, 0x48, 0x50, 0x4d, 0x4d, 0x66, 0x96, 0xbe, | ||
9764 | 0xce, 0xc8, 0xd2, 0xd7, 0xae, 0x6d, 0x54, 0x62, | ||
9765 | 0x2c, 0x53, 0x74, 0x6a, 0x43, 0x30, 0x45, 0x64, | ||
9766 | 0xc1, 0xa6, 0x7a, 0x51, 0x38, 0x32, 0x3a, 0x42, | ||
9767 | 0x54, 0x4f, 0x47, 0x41, 0x42, 0x48, 0x50, 0x56, | ||
9768 | 0x87, 0x7e, 0x77, 0x78, 0x75, 0x5d, 0x34, 0x13, | ||
9769 | 0x5a, 0x78, 0x99, 0xa8, 0xa9, 0xb0, 0xc7, 0xdd, | ||
9770 | 0xa3, 0x9f, 0x99, 0x96, 0x98, 0x9d, 0xa3, 0xa8, | ||
9771 | 0x5b, 0x59, 0x5c, 0x6a, 0x76, 0x75, 0x64, 0x53, | ||
9772 | 0x7b, 0xa9, 0xbb, 0xcf, 0xed, 0xc5, 0x83, 0x77, | ||
9773 | 0xa9, 0xb4, 0xc4, 0xd2, 0xdc, 0xe3, 0xea, 0xee, | ||
9774 | 0xe7, 0x87, 0x48, 0x52, 0x51, 0x3b, 0x5c, 0xa2, | ||
9775 | 0x7e, 0xa3, 0xaf, 0x78, 0x26, 0x08, 0x36, 0x73, | ||
9776 | 0x91, 0xce, 0xe1, 0x9b, 0x4b, 0x47, 0x81, 0xb7, | ||
9777 | 0x75, 0x83, 0xa4, 0xb6, 0x99, 0x69, 0x5f, 0x75, | ||
9778 | 0x99, 0x9b, 0x95, 0x85, 0x7e, 0x97, 0xca, 0xf5, | ||
9779 | 0xe0, 0xbb, 0xb0, 0xc0, 0xaa, 0x6b, 0x45, 0x48, | ||
9780 | 0x2d, 0x2e, 0x31, 0x3a, 0x4f, 0x73, 0x9d, 0xb9, | ||
9781 | 0x69, 0x7d, 0xb2, 0xdd, 0xc4, 0x8b, 0x86, 0xac, | ||
9782 | 0x9e, 0x7e, 0x5b, 0x50, 0x57, 0x58, 0x47, 0x33, | ||
9783 | 0x6d, 0x59, 0x43, 0x39, 0x42, 0x67, 0xa5, 0xd9, | ||
9784 | 0xe1, 0xbf, 0xbd, 0xd2, 0xb9, 0x82, 0x80, 0xab, | ||
9785 | 0x96, 0x71, 0x4c, 0x48, 0x67, 0x8d, 0xa1, 0xa6, | ||
9786 | 0xdd, 0xf2, 0xff, 0xdb, 0xaf, 0xb5, 0xae, 0x8d, | ||
9787 | 0x76, 0x72, 0x6d, 0x6a, 0x6c, 0x72, 0x79, 0x7d, | ||
9788 | 0x74, 0x74, 0x74, 0x74, 0x73, 0x70, 0x6e, 0x6d, | ||
9789 | 0x81, 0x80, 0x7b, 0x73, 0x69, 0x61, 0x5c, 0x5b, | ||
9790 | 0x5d, 0x6a, 0x78, 0x7d, 0x79, 0x71, 0x6c, 0x6c, | ||
9791 | 0x73, 0x74, 0x74, 0x74, 0x71, 0x6c, 0x68, 0x64, | ||
9792 | 0x68, 0x60, 0x58, 0x54, 0x54, 0x50, 0x47, 0x40, | ||
9793 | 0x43, 0x3d, 0x27, 0x3a, 0x52, 0x1f, 0x04, 0x3b, | ||
9794 | 0x7a, 0x83, 0x75, 0x5c, 0x67, 0x8c, 0x93, 0x7d, | ||
9795 | 0xaf, 0xc7, 0xc8, 0x92, 0x47, 0x3b, 0x89, 0xe2, | ||
9796 | 0xc3, 0xd1, 0xd2, 0xb2, 0x81, 0x62, 0x62, 0x70, | ||
9797 | 0xa4, 0xdf, 0xd1, 0x6d, 0x35, 0x4d, 0x53, 0x2f, | ||
9798 | 0x6e, 0xa4, 0xc1, 0xaa, 0x98, 0xab, 0xc0, 0xc2, | ||
9799 | 0x0e, 0x4b, 0x81, 0x7d, 0x4f, 0x26, 0x15, 0x12, | ||
9800 | 0x5d, 0x67, 0x72, 0x77, 0x72, 0x6b, 0x66, 0x65, | ||
9801 | 0x96, 0x95, 0x8e, 0x80, 0x6f, 0x64, 0x63, 0x66, | ||
9802 | 0x7d, 0x75, 0x4a, 0x2a, 0x31, 0x39, 0x49, 0x6e, | ||
9803 | 0x96, 0x72, 0x63, 0x6a, 0x61, 0x53, 0x5c, 0x6e, | ||
9804 | 0x64, 0x4f, 0x51, 0x5e, 0x4b, 0x2e, 0x47, 0x7e, | ||
9805 | 0xa1, 0xad, 0x9d, 0x8c, 0x84, 0x56, 0x1d, 0x0c, | ||
9806 | 0xaf, 0xb3, 0xb9, 0xb8, 0xae, 0x9d, 0x8a, 0x7e, | ||
9807 | 0x4f, 0x78, 0xa1, 0xa3, 0x86, 0x6c, 0x6e, 0x7b, | ||
9808 | 0x76, 0x85, 0xb0, 0xd0, 0xb0, 0x65, 0x38, 0x37, | ||
9809 | 0x22, 0x2f, 0x42, 0x55, 0x70, 0x97, 0xc4, 0xe4, | ||
9810 | 0xb9, 0xa4, 0x82, 0x5c, 0x3d, 0x29, 0x20, 0x1d, | ||
9811 | 0x4b, 0x43, 0x39, 0x2f, 0x2b, 0x2d, 0x32, 0x36, | ||
9812 | 0x60, 0x4d, 0x39, 0x34, 0x3a, 0x38, 0x29, 0x19, | ||
9813 | 0x4a, 0x5d, 0x68, 0x5e, 0x52, 0x65, 0x98, 0xc7, | ||
9814 | 0xa2, 0xb4, 0xd1, 0xef, 0xf9, 0xe5, 0xbd, 0x9e, | ||
9815 | 0x77, 0x5b, 0x39, 0x29, 0x30, 0x41, 0x4d, 0x52, | ||
9816 | 0x5c, 0x94, 0x96, 0x6f, 0x49, 0x09, 0x00, 0x07, | ||
9817 | 0x36, 0x72, 0xaf, 0xb7, 0x92, 0x74, 0x79, 0x8e, | ||
9818 | 0x76, 0x48, 0x39, 0x44, 0x29, 0x15, 0x65, 0xdd, | ||
9819 | 0xb8, 0xd4, 0xf2, 0xf2, 0xca, 0x89, 0x48, 0x22, | ||
9820 | 0x51, 0x42, 0x46, 0x5b, 0x5b, 0x45, 0x41, 0x50, | ||
9821 | 0x48, 0x69, 0x72, 0x57, 0x4c, 0x6b, 0x91, 0xa2, | ||
9822 | 0x89, 0x6c, 0x63, 0x90, 0xd8, 0xfe, 0xea, 0xc6, | ||
9823 | 0xd3, 0xa0, 0x69, 0x3a, 0x0a, 0x0a, 0x6a, 0xdd, | ||
9824 | 0xd0, 0xa5, 0x6c, 0x46, 0x49, 0x6f, 0xa0, 0xc0, | ||
9825 | 0x92, 0xaa, 0xdd, 0xf8, 0xc7, 0x7e, 0x76, 0xa0, | ||
9826 | 0xbd, 0xa7, 0x88, 0x6f, 0x61, 0x55, 0x48, 0x3d, | ||
9827 | 0x3f, 0x5f, 0x6b, 0x4a, 0x1f, 0x1a, 0x3d, 0x60, | ||
9828 | 0xc9, 0xdc, 0xc0, 0x7f, 0x62, 0x62, 0x36, 0x00, | ||
9829 | 0xa7, 0x5b, 0x16, 0x1e, 0x61, 0x92, 0x87, 0x63, | ||
9830 | 0x1e, 0x82, 0x6f, 0x2b, 0x4a, 0x78, 0x5c, 0x27, | ||
9831 | 0x5f, 0x61, 0x64, 0x65, 0x67, 0x6d, 0x76, 0x7e, | ||
9832 | 0x7d, 0x7c, 0x7a, 0x77, 0x76, 0x76, 0x76, 0x76, | ||
9833 | 0x79, 0x71, 0x63, 0x57, 0x53, 0x5b, 0x69, 0x74, | ||
9834 | 0x55, 0x6a, 0x86, 0x98, 0x9c, 0x96, 0x90, 0x8d, | ||
9835 | 0x79, 0x7a, 0x7a, 0x7a, 0x77, 0x72, 0x6e, 0x6b, | ||
9836 | 0x70, 0x69, 0x61, 0x5e, 0x5e, 0x5b, 0x53, 0x4c, | ||
9837 | 0x1b, 0x3c, 0x24, 0x3f, 0x8f, 0x69, 0x33, 0x6d, | ||
9838 | 0x2f, 0x1d, 0x26, 0x47, 0x51, 0x42, 0x48, 0x63, | ||
9839 | 0xe0, 0x9e, 0x5e, 0x63, 0xa1, 0xc8, 0xa8, 0x70, | ||
9840 | 0x73, 0x86, 0x90, 0x7c, 0x58, 0x45, 0x4f, 0x61, | ||
9841 | 0x4d, 0x7e, 0x9a, 0x7d, 0x50, 0x40, 0x48, 0x50, | ||
9842 | 0x14, 0x75, 0xcb, 0xd6, 0xbf, 0xb1, 0xa1, 0x8c, | ||
9843 | 0x79, 0x82, 0x80, 0x60, 0x2e, 0x18, 0x3a, 0x69, | ||
9844 | 0x94, 0x80, 0x77, 0x8c, 0xa5, 0x99, 0x62, 0x2d, | ||
9845 | 0x3b, 0x68, 0x96, 0x9a, 0x7b, 0x5f, 0x60, 0x6d, | ||
9846 | 0x55, 0x47, 0x32, 0x39, 0x45, 0x37, 0x47, 0x84, | ||
9847 | 0x6f, 0x6b, 0x73, 0x87, 0x82, 0x5d, 0x49, 0x56, | ||
9848 | 0x77, 0x67, 0x5b, 0x5c, 0x5d, 0x5b, 0x60, 0x6b, | ||
9849 | 0x80, 0x94, 0x94, 0x95, 0x99, 0x6a, 0x24, 0x07, | ||
9850 | 0x88, 0x99, 0xb1, 0xc7, 0xd1, 0xce, 0xc3, 0xbb, | ||
9851 | 0xb4, 0xd2, 0xed, 0xeb, 0xd1, 0xbd, 0xc0, 0xcc, | ||
9852 | 0xce, 0xa3, 0x78, 0x56, 0x27, 0x03, 0x16, 0x44, | ||
9853 | 0x54, 0x4d, 0x4f, 0x62, 0x7d, 0x8b, 0x84, 0x77, | ||
9854 | 0xb1, 0x93, 0x64, 0x3a, 0x25, 0x26, 0x36, 0x44, | ||
9855 | 0x1e, 0x23, 0x2e, 0x42, 0x5d, 0x7c, 0x98, 0xa8, | ||
9856 | 0xdf, 0xae, 0x6f, 0x45, 0x3b, 0x42, 0x48, 0x4a, | ||
9857 | 0x09, 0x21, 0x39, 0x3f, 0x3e, 0x4f, 0x76, 0x98, | ||
9858 | 0xc9, 0xdd, 0xe9, 0xd6, 0xa8, 0x7d, 0x66, 0x61, | ||
9859 | 0x57, 0x67, 0x6d, 0x56, 0x34, 0x29, 0x40, 0x5c, | ||
9860 | 0xa2, 0x99, 0x6f, 0x78, 0xba, 0xbf, 0x91, 0x85, | ||
9861 | 0x7d, 0x9e, 0xc7, 0xda, 0xc2, 0x88, 0x46, 0x1b, | ||
9862 | 0x32, 0x23, 0x32, 0x52, 0x4e, 0x3b, 0x5a, 0x98, | ||
9863 | 0xff, 0xe0, 0x84, 0x2d, 0x00, 0x03, 0x2a, 0x4d, | ||
9864 | 0x8e, 0x63, 0x4c, 0x53, 0x45, 0x31, 0x4f, 0x8a, | ||
9865 | 0x8a, 0x9b, 0x7e, 0x3c, 0x28, 0x4f, 0x6a, 0x62, | ||
9866 | 0x30, 0x49, 0x67, 0x78, 0x7c, 0x80, 0x8a, 0x95, | ||
9867 | 0xa1, 0xcf, 0xe1, 0xc5, 0xb7, 0xc3, 0xb6, 0x94, | ||
9868 | 0x77, 0x5b, 0x3e, 0x3c, 0x58, 0x81, 0xa0, 0xae, | ||
9869 | 0xa3, 0x87, 0x4f, 0x30, 0x62, 0xb1, 0xbf, 0x99, | ||
9870 | 0xe3, 0xa4, 0x62, 0x4e, 0x5b, 0x54, 0x24, 0x00, | ||
9871 | 0x1a, 0x84, 0xeb, 0xff, 0xd7, 0x9b, 0x5d, 0x2f, | ||
9872 | 0x45, 0x36, 0x1f, 0x16, 0x31, 0x5a, 0x70, 0x6f, | ||
9873 | 0xea, 0xb7, 0x97, 0xbb, 0xfc, 0xff, 0xc1, 0x73, | ||
9874 | 0x27, 0xcf, 0xff, 0xb0, 0x6a, 0x77, 0x7c, 0x35, | ||
9875 | 0x16, 0x3a, 0x64, 0x78, 0x74, 0x6b, 0x6d, 0x75, | ||
9876 | 0x8a, 0x87, 0x84, 0x82, 0x82, 0x85, 0x89, 0x8b, | ||
9877 | 0x89, 0x76, 0x64, 0x63, 0x6e, 0x73, 0x6a, 0x5d, | ||
9878 | 0x65, 0x74, 0x83, 0x86, 0x7a, 0x67, 0x57, 0x4e, | ||
9879 | 0x6c, 0x6d, 0x6d, 0x6e, 0x70, 0x73, 0x75, 0x76, | ||
9880 | 0x6b, 0x64, 0x5c, 0x5a, 0x5b, 0x58, 0x51, 0x4a, | ||
9881 | 0x4b, 0x57, 0x41, 0x3d, 0x4c, 0x3d, 0x6b, 0xe3, | ||
9882 | 0x95, 0x4a, 0x2c, 0x52, 0x5f, 0x42, 0x49, 0x78, | ||
9883 | 0x44, 0x7d, 0x9c, 0x77, 0x3c, 0x1e, 0x1a, 0x19, | ||
9884 | 0x39, 0x48, 0x59, 0x61, 0x64, 0x6c, 0x7d, 0x8c, | ||
9885 | 0x6c, 0x53, 0x54, 0x73, 0x76, 0x4f, 0x2e, 0x28, | ||
9886 | 0x44, 0x9a, 0xdb, 0xd0, 0xb0, 0xb1, 0xc2, 0xc8, | ||
9887 | 0x97, 0x72, 0x59, 0x59, 0x50, 0x3c, 0x3b, 0x4d, | ||
9888 | 0x9d, 0xa2, 0xa3, 0x9d, 0x98, 0xa1, 0xb7, 0xcb, | ||
9889 | 0x85, 0x78, 0x6b, 0x69, 0x70, 0x77, 0x78, 0x75, | ||
9890 | 0x6e, 0x58, 0x44, 0x52, 0x59, 0x34, 0x33, 0x6b, | ||
9891 | 0x86, 0x95, 0x94, 0x90, 0x87, 0x60, 0x44, 0x4f, | ||
9892 | 0x52, 0x51, 0x48, 0x45, 0x5b, 0x78, 0x7a, 0x69, | ||
9893 | 0x74, 0x90, 0x9f, 0xb2, 0xbe, 0x89, 0x33, 0x08, | ||
9894 | 0x43, 0x5f, 0x8c, 0xba, 0xdb, 0xeb, 0xec, 0xea, | ||
9895 | 0xd8, 0xd8, 0xd0, 0xbd, 0xa9, 0xa0, 0xa7, 0xb1, | ||
9896 | 0x5d, 0x5e, 0x76, 0x8f, 0x7e, 0x55, 0x4f, 0x68, | ||
9897 | 0x52, 0x57, 0x68, 0x87, 0xa3, 0xa9, 0x96, 0x81, | ||
9898 | 0x0f, 0x38, 0x71, 0x98, 0x93, 0x63, 0x22, 0x00, | ||
9899 | 0x51, 0x52, 0x57, 0x62, 0x74, 0x8a, 0x9f, 0xac, | ||
9900 | 0x6f, 0x67, 0x62, 0x67, 0x6a, 0x5a, 0x38, 0x1b, | ||
9901 | 0x53, 0x4b, 0x3d, 0x33, 0x3c, 0x61, 0x96, 0xbd, | ||
9902 | 0xe3, 0xcb, 0x9a, 0x5b, 0x26, 0x11, 0x1d, 0x30, | ||
9903 | 0x49, 0x45, 0x53, 0x7c, 0xa9, 0xb6, 0x9c, 0x7b, | ||
9904 | 0x83, 0xd3, 0xfe, 0xff, 0xf7, 0xb9, 0x85, 0x92, | ||
9905 | 0xd9, 0xa6, 0x80, 0x96, 0xce, 0xe3, 0xbd, 0x8a, | ||
9906 | 0xa0, 0x8e, 0x85, 0x8b, 0x84, 0x64, 0x3d, 0x27, | ||
9907 | 0x0d, 0x1b, 0x2c, 0x3a, 0x4e, 0x73, 0xa5, 0xcb, | ||
9908 | 0xa6, 0x97, 0x8a, 0x83, 0x79, 0x6f, 0x6e, 0x74, | ||
9909 | 0x82, 0x8f, 0x99, 0x9b, 0x92, 0x76, 0x45, 0x19, | ||
9910 | 0x10, 0x0e, 0x1a, 0x40, 0x6f, 0x87, 0x81, 0x72, | ||
9911 | 0xb4, 0xb9, 0xaa, 0xa2, 0xc5, 0xe4, 0xba, 0x6f, | ||
9912 | 0x0a, 0x0c, 0x23, 0x57, 0x94, 0xbd, 0xc3, 0xba, | ||
9913 | 0xc0, 0xf1, 0xf8, 0xc1, 0x9c, 0xb0, 0xcf, 0xd5, | ||
9914 | 0xe2, 0x9a, 0x5c, 0x6b, 0xab, 0xc7, 0x9a, 0x5e, | ||
9915 | 0x73, 0xa2, 0xc0, 0xc1, 0xcb, 0xd6, 0xb7, 0x83, | ||
9916 | 0x96, 0x55, 0x31, 0x38, 0x28, 0x14, 0x4c, 0xa7, | ||
9917 | 0xbb, 0xbb, 0xcb, 0xec, 0xff, 0xde, 0x8f, 0x4d, | ||
9918 | 0x4a, 0x1a, 0x52, 0xbb, 0x76, 0x15, 0x2c, 0x29, | ||
9919 | 0x37, 0x4a, 0x60, 0x68, 0x65, 0x64, 0x6d, 0x77, | ||
9920 | 0x78, 0x75, 0x72, 0x71, 0x74, 0x7a, 0x81, 0x86, | ||
9921 | 0x7c, 0x72, 0x6d, 0x72, 0x78, 0x6e, 0x53, 0x3a, | ||
9922 | 0x53, 0x5f, 0x6d, 0x74, 0x75, 0x74, 0x77, 0x7b, | ||
9923 | 0x81, 0x7b, 0x72, 0x69, 0x64, 0x64, 0x67, 0x69, | ||
9924 | 0x62, 0x5b, 0x54, 0x52, 0x54, 0x52, 0x4b, 0x44, | ||
9925 | 0x76, 0x7c, 0x69, 0x51, 0x4e, 0x48, 0x30, 0x1f, | ||
9926 | 0x49, 0x21, 0x12, 0x25, 0x2f, 0x37, 0x6d, 0xb3, | ||
9927 | 0x9c, 0xd4, 0xe2, 0xa1, 0x57, 0x3a, 0x36, 0x30, | ||
9928 | 0x46, 0x43, 0x47, 0x5a, 0x75, 0x88, 0x8c, 0x89, | ||
9929 | 0x7e, 0x51, 0x3f, 0x5d, 0x73, 0x62, 0x49, 0x42, | ||
9930 | 0x5b, 0xaa, 0xdc, 0xbf, 0x96, 0x9f, 0xc4, 0xdb, | ||
9931 | 0xcd, 0xbc, 0xcf, 0xfb, 0xfc, 0xcc, 0xac, 0xb1, | ||
9932 | 0x46, 0x74, 0xa2, 0xa6, 0x8e, 0x88, 0xa8, 0xcd, | ||
9933 | 0xce, 0x82, 0x3a, 0x3c, 0x75, 0x99, 0x83, 0x5a, | ||
9934 | 0x4e, 0x44, 0x31, 0x3b, 0x53, 0x49, 0x49, 0x6e, | ||
9935 | 0x97, 0xb2, 0x9c, 0x75, 0x6a, 0x54, 0x42, 0x50, | ||
9936 | 0x45, 0x4c, 0x48, 0x40, 0x4a, 0x5f, 0x62, 0x55, | ||
9937 | 0x6e, 0x7d, 0x7c, 0x85, 0x93, 0x67, 0x1a, 0x00, | ||
9938 | 0x5a, 0x72, 0x96, 0xb7, 0xc9, 0xc9, 0xbe, 0xb3, | ||
9939 | 0xad, 0xb5, 0xbd, 0xba, 0xa3, 0x7b, 0x4f, 0x33, | ||
9940 | 0x3d, 0x53, 0x8a, 0xbc, 0xb2, 0x7e, 0x64, 0x6e, | ||
9941 | 0x2b, 0x31, 0x3d, 0x48, 0x4e, 0x4b, 0x41, 0x38, | ||
9942 | 0x2c, 0x23, 0x17, 0x11, 0x19, 0x2b, 0x41, 0x50, | ||
9943 | 0x61, 0x5b, 0x52, 0x4c, 0x4b, 0x50, 0x57, 0x5c, | ||
9944 | 0x61, 0x56, 0x4f, 0x56, 0x61, 0x5e, 0x49, 0x34, | ||
9945 | 0x21, 0x31, 0x4e, 0x71, 0x92, 0xaa, 0xb8, 0xbe, | ||
9946 | 0xac, 0x7a, 0x40, 0x26, 0x30, 0x41, 0x43, 0x3c, | ||
9947 | 0x3c, 0x55, 0x78, 0x97, 0xb2, 0xd0, 0xf3, 0xff, | ||
9948 | 0xcd, 0xea, 0xc9, 0x8d, 0x68, 0x3b, 0x2d, 0x58, | ||
9949 | 0x65, 0x50, 0x42, 0x55, 0x79, 0x8a, 0x7c, 0x66, | ||
9950 | 0x67, 0x8e, 0xa6, 0x92, 0x6e, 0x5f, 0x65, 0x6d, | ||
9951 | 0x4f, 0x41, 0x4b, 0x84, 0xca, 0xe2, 0xbe, 0x8f, | ||
9952 | 0x67, 0x6f, 0x65, 0x5d, 0x7e, 0xa7, 0x93, 0x5e, | ||
9953 | 0x50, 0x32, 0x3f, 0x7f, 0xa6, 0x97, 0x83, 0x85, | ||
9954 | 0xd4, 0x96, 0x50, 0x39, 0x59, 0x89, 0xa8, 0xb2, | ||
9955 | 0x6b, 0x52, 0x56, 0x78, 0x83, 0x83, 0xac, 0xe8, | ||
9956 | 0xb7, 0x9c, 0x87, 0x92, 0xb8, 0xd6, 0xdb, 0xd3, | ||
9957 | 0x99, 0x8a, 0x8b, 0x8f, 0x6f, 0x55, 0x80, 0xcb, | ||
9958 | 0xbe, 0xb6, 0xaa, 0x9e, 0x97, 0x98, 0x9e, 0xa2, | ||
9959 | 0xc3, 0xd3, 0xd5, 0xdc, 0xff, 0xff, 0xca, 0x63, | ||
9960 | 0x56, 0x80, 0x7b, 0x37, 0x0e, 0x39, 0x89, 0xbb, | ||
9961 | 0x74, 0x92, 0xb3, 0xba, 0x9f, 0x6e, 0x3f, 0x24, | ||
9962 | 0x24, 0x14, 0x1a, 0x60, 0x61, 0x41, 0x57, 0x40, | ||
9963 | 0x34, 0x37, 0x43, 0x5a, 0x73, 0x7f, 0x7c, 0x74, | ||
9964 | 0x7a, 0x78, 0x75, 0x74, 0x79, 0x82, 0x8b, 0x91, | ||
9965 | 0x7c, 0x7e, 0x80, 0x7e, 0x79, 0x74, 0x71, 0x71, | ||
9966 | 0x71, 0x75, 0x76, 0x74, 0x72, 0x77, 0x83, 0x8d, | ||
9967 | 0x89, 0x82, 0x79, 0x72, 0x72, 0x78, 0x82, 0x89, | ||
9968 | 0x6b, 0x64, 0x5d, 0x5c, 0x5d, 0x5c, 0x55, 0x4e, | ||
9969 | 0x4e, 0x4e, 0x44, 0x39, 0x29, 0x1c, 0x39, 0x70, | ||
9970 | 0x3f, 0x66, 0x7f, 0x68, 0x41, 0x4f, 0xa5, 0xfb, | ||
9971 | 0xfd, 0xd6, 0x8d, 0x59, 0x6f, 0x9c, 0x89, 0x4f, | ||
9972 | 0x56, 0x3f, 0x2f, 0x3a, 0x54, 0x5f, 0x4e, 0x38, | ||
9973 | 0x7a, 0x6f, 0x62, 0x57, 0x52, 0x56, 0x66, 0x77, | ||
9974 | 0x24, 0x75, 0xa6, 0x85, 0x55, 0x5b, 0x83, 0x9d, | ||
9975 | 0xa4, 0xaf, 0xd9, 0xfb, 0xdc, 0xa8, 0xb9, 0xf5, | ||
9976 | 0xa4, 0x82, 0x63, 0x65, 0x7d, 0x89, 0x78, 0x61, | ||
9977 | 0x5e, 0x49, 0x45, 0x6a, 0x9c, 0xa7, 0x7f, 0x50, | ||
9978 | 0x5b, 0x58, 0x33, 0x1c, 0x2f, 0x34, 0x2c, 0x36, | ||
9979 | 0x58, 0x8f, 0x8a, 0x68, 0x69, 0x5f, 0x48, 0x4c, | ||
9980 | 0x1e, 0x2b, 0x3a, 0x42, 0x4a, 0x58, 0x6b, 0x78, | ||
9981 | 0x93, 0x8b, 0x6a, 0x5c, 0x69, 0x4f, 0x1a, 0x05, | ||
9982 | 0xed, 0xed, 0xcb, 0x97, 0x8d, 0xad, 0xc0, 0xb8, | ||
9983 | 0xcc, 0xc1, 0xaf, 0x9c, 0x89, 0x73, 0x5f, 0x52, | ||
9984 | 0x9d, 0x8a, 0x6b, 0x4b, 0x35, 0x2b, 0x2b, 0x2d, | ||
9985 | 0x14, 0x3c, 0x4d, 0x32, 0x1c, 0x23, 0x2d, 0x2a, | ||
9986 | 0x2a, 0x10, 0x0e, 0x23, 0x26, 0x27, 0x59, 0x9d, | ||
9987 | 0x3f, 0x3f, 0x6c, 0x9e, 0x82, 0x3d, 0x3c, 0x72, | ||
9988 | 0x56, 0x5e, 0x54, 0x2d, 0x03, 0x00, 0x29, 0x54, | ||
9989 | 0x4c, 0x33, 0x38, 0x7e, 0xda, 0xff, 0xd6, 0x9b, | ||
9990 | 0x35, 0x2f, 0x4c, 0x80, 0x8c, 0x63, 0x3f, 0x38, | ||
9991 | 0x3c, 0x4e, 0x73, 0xa3, 0xc9, 0xd2, 0xc0, 0xab, | ||
9992 | 0x62, 0x55, 0x4a, 0x4e, 0x61, 0x75, 0x80, 0x83, | ||
9993 | 0x3f, 0x25, 0x1f, 0x4d, 0x94, 0xba, 0xa8, 0x85, | ||
9994 | 0x81, 0x7b, 0x68, 0x45, 0x20, 0x08, 0x04, 0x09, | ||
9995 | 0x22, 0x8d, 0xf6, 0xfd, 0xb3, 0x78, 0x84, 0xad, | ||
9996 | 0xc8, 0xc3, 0x98, 0x63, 0x62, 0x86, 0x89, 0x6a, | ||
9997 | 0x5b, 0x7f, 0x89, 0x6f, 0x65, 0x6d, 0x56, 0x2a, | ||
9998 | 0x47, 0x24, 0x13, 0x38, 0x77, 0x94, 0x77, 0x4d, | ||
9999 | 0x1a, 0x5c, 0xa5, 0xbd, 0xab, 0x9e, 0xb2, 0xcf, | ||
10000 | 0xb4, 0xcd, 0xc0, 0x9e, 0xb2, 0xe2, 0xce, 0x8d, | ||
10001 | 0xa3, 0xd2, 0xa0, 0x3e, 0x34, 0x5c, 0x6a, 0x6a, | ||
10002 | 0x79, 0x5d, 0x58, 0x66, 0x57, 0x3c, 0x57, 0x91, | ||
10003 | 0x97, 0x9f, 0xa3, 0xa0, 0x9d, 0xa9, 0xc4, 0xdb, | ||
10004 | 0x85, 0x72, 0x59, 0x4a, 0x51, 0x6f, 0x93, 0xac, | ||
10005 | 0x8b, 0x51, 0x29, 0x49, 0x8f, 0xa5, 0x6e, 0x2b, | ||
10006 | 0x12, 0x19, 0x63, 0x7f, 0x33, 0x12, 0x40, 0x5f, | ||
10007 | 0x67, 0x61, 0x60, 0x68, 0x74, 0x78, 0x71, 0x68, | ||
10008 | 0x61, 0x6b, 0x7a, 0x87, 0x8d, 0x8b, 0x85, 0x80, | ||
10009 | 0x83, 0x80, 0x7b, 0x75, 0x70, 0x6d, 0x6b, 0x6b, | ||
10010 | 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x83, 0x84, 0x85, | ||
10011 | 0x6d, 0x71, 0x76, 0x79, 0x78, 0x73, 0x6c, 0x67, | ||
10012 | 0x64, 0x65, 0x65, 0x63, 0x5e, 0x56, 0x4e, 0x4a, | ||
10013 | 0x56, 0x4b, 0x3c, 0x2f, 0x26, 0x24, 0x2b, 0x34, | ||
10014 | 0x4b, 0x83, 0xa6, 0x7d, 0x33, 0x24, 0x6c, 0xbf, | ||
10015 | 0xa5, 0x60, 0x24, 0x1f, 0x31, 0x3c, 0x45, 0x53, | ||
10016 | 0x2f, 0x29, 0x28, 0x33, 0x49, 0x5f, 0x6e, 0x73, | ||
10017 | 0x5c, 0x63, 0x5b, 0x67, 0xb0, 0xeb, 0xb9, 0x54, | ||
10018 | 0x52, 0x8f, 0x9d, 0x6f, 0x62, 0x78, 0x59, 0x12, | ||
10019 | 0x6f, 0xbd, 0xd5, 0xc8, 0xd6, 0xd2, 0xbd, 0xc3, | ||
10020 | 0xb1, 0x80, 0x44, 0x25, 0x2a, 0x3f, 0x4d, 0x51, | ||
10021 | 0x74, 0x66, 0x50, 0x3f, 0x3a, 0x45, 0x58, 0x66, | ||
10022 | 0x55, 0x56, 0x54, 0x4b, 0x3d, 0x31, 0x29, 0x25, | ||
10023 | 0x36, 0x37, 0x3a, 0x3d, 0x41, 0x44, 0x47, 0x49, | ||
10024 | 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, | ||
10025 | 0x67, 0x7d, 0x71, 0x77, 0x89, 0x81, 0x1f, 0x09, | ||
10026 | 0x9c, 0xa6, 0x95, 0x77, 0x82, 0xb4, 0xd5, 0xd4, | ||
10027 | 0xc9, 0xbf, 0x9f, 0x6d, 0x47, 0x50, 0x83, 0xb4, | ||
10028 | 0x88, 0x78, 0x5f, 0x48, 0x3a, 0x38, 0x3e, 0x43, | ||
10029 | 0x50, 0x5b, 0x4a, 0x1f, 0x0f, 0x25, 0x39, 0x38, | ||
10030 | 0x58, 0x5e, 0x79, 0x8d, 0x6b, 0x32, 0x24, 0x3d, | ||
10031 | 0x7c, 0x67, 0x45, 0x34, 0x42, 0x4c, 0x2c, 0x00, | ||
10032 | 0x1b, 0x3a, 0x62, 0x7c, 0x82, 0x7c, 0x78, 0x77, | ||
10033 | 0xb1, 0xb7, 0xb9, 0xad, 0x8f, 0x65, 0x3d, 0x25, | ||
10034 | 0x3f, 0x38, 0x51, 0x7d, 0x81, 0x56, 0x35, 0x33, | ||
10035 | 0x24, 0x61, 0xaa, 0xce, 0xc4, 0xaa, 0x9c, 0x9a, | ||
10036 | 0x57, 0x8a, 0xbe, 0xc7, 0xab, 0x93, 0x98, 0xa9, | ||
10037 | 0x88, 0x8c, 0x9a, 0xab, 0xaf, 0x95, 0x64, 0x3e, | ||
10038 | 0xa6, 0x84, 0x66, 0x6d, 0x93, 0xb8, 0xc3, 0xbf, | ||
10039 | 0xde, 0xdf, 0xe5, 0xe8, 0xd8, 0xa8, 0x65, 0x32, | ||
10040 | 0x3b, 0x52, 0x76, 0x8c, 0x7e, 0x59, 0x3d, 0x33, | ||
10041 | 0x2d, 0x2d, 0x37, 0x45, 0x46, 0x3a, 0x32, 0x33, | ||
10042 | 0x3f, 0x12, 0x00, 0x26, 0x83, 0xc7, 0xcc, 0xb5, | ||
10043 | 0x91, 0xb8, 0xe3, 0xee, 0xdd, 0xcb, 0xcd, 0xd7, | ||
10044 | 0xe4, 0xcc, 0xc1, 0xbc, 0x99, 0x72, 0x80, 0xaf, | ||
10045 | 0xd1, 0xcb, 0x9f, 0x96, 0xc9, 0xc8, 0x7b, 0x41, | ||
10046 | 0x6a, 0x75, 0x68, 0x45, 0x33, 0x44, 0x5d, 0x67, | ||
10047 | 0x3e, 0x35, 0x24, 0x13, 0x17, 0x3e, 0x7c, 0xab, | ||
10048 | 0xa7, 0xae, 0xb5, 0xb7, 0xae, 0x9c, 0x88, 0x7a, | ||
10049 | 0x93, 0x97, 0x99, 0x93, 0x89, 0x84, 0x86, 0x8b, | ||
10050 | 0x83, 0xaa, 0xa8, 0x7b, 0x59, 0x4f, 0x49, 0x46, | ||
10051 | 0x68, 0x62, 0x5f, 0x65, 0x70, 0x77, 0x74, 0x6f, | ||
10052 | 0x70, 0x73, 0x78, 0x7c, 0x7f, 0x80, 0x80, 0x80, | ||
10053 | 0x73, 0x78, 0x80, 0x84, 0x81, 0x77, 0x6b, 0x63, | ||
10054 | 0x66, 0x67, 0x68, 0x69, 0x6b, 0x6c, 0x6d, 0x6e, | ||
10055 | 0x8b, 0x8d, 0x8e, 0x8c, 0x86, 0x7c, 0x73, 0x6d, | ||
10056 | 0x65, 0x66, 0x66, 0x64, 0x5e, 0x57, 0x4f, 0x4a, | ||
10057 | 0x55, 0x43, 0x30, 0x2b, 0x31, 0x35, 0x31, 0x2b, | ||
10058 | 0x3a, 0x37, 0x2f, 0x22, 0x19, 0x1c, 0x2b, 0x39, | ||
10059 | 0x6b, 0x40, 0x25, 0x32, 0x4b, 0x62, 0x83, 0xa6, | ||
10060 | 0x92, 0x80, 0x64, 0x48, 0x3a, 0x40, 0x53, 0x64, | ||
10061 | 0x49, 0x54, 0x55, 0x4c, 0x51, 0x66, 0x6f, 0x6a, | ||
10062 | 0x26, 0x59, 0x97, 0xa7, 0x78, 0x46, 0x4c, 0x72, | ||
10063 | 0xb3, 0xd4, 0xc3, 0xbb, 0xed, 0xfa, 0xcd, 0xb1, | ||
10064 | 0xc9, 0x82, 0x38, 0x28, 0x4d, 0x6c, 0x64, 0x4c, | ||
10065 | 0x3c, 0x47, 0x5a, 0x6e, 0x72, 0x5f, 0x3c, 0x20, | ||
10066 | 0x34, 0x39, 0x3e, 0x41, 0x40, 0x3e, 0x3c, 0x3b, | ||
10067 | 0x24, 0x26, 0x2b, 0x31, 0x38, 0x3e, 0x42, 0x45, | ||
10068 | 0x50, 0x4f, 0x4d, 0x4a, 0x46, 0x43, 0x41, 0x40, | ||
10069 | 0x3c, 0x51, 0x4a, 0x55, 0x6e, 0x73, 0x1f, 0x0f, | ||
10070 | 0x85, 0x9b, 0x98, 0x7d, 0x76, 0x84, 0x7d, 0x62, | ||
10071 | 0x16, 0x21, 0x2b, 0x29, 0x21, 0x21, 0x2e, 0x3c, | ||
10072 | 0x5c, 0x50, 0x3d, 0x2e, 0x29, 0x2f, 0x3b, 0x44, | ||
10073 | 0x72, 0x70, 0x55, 0x36, 0x3d, 0x5f, 0x6a, 0x5b, | ||
10074 | 0x58, 0x3c, 0x31, 0x46, 0x59, 0x5d, 0x67, 0x7a, | ||
10075 | 0x67, 0x36, 0x39, 0x6f, 0x71, 0x43, 0x4e, 0x8c, | ||
10076 | 0x75, 0x6a, 0x56, 0x45, 0x4d, 0x7b, 0xc2, 0xf8, | ||
10077 | 0xd7, 0xbb, 0xa3, 0xa5, 0xaf, 0x99, 0x60, 0x2b, | ||
10078 | 0x4e, 0x38, 0x3a, 0x53, 0x56, 0x44, 0x4b, 0x68, | ||
10079 | 0xe3, 0xea, 0xe7, 0xce, 0xae, 0x9f, 0xaa, 0xba, | ||
10080 | 0x9a, 0x84, 0x69, 0x5f, 0x69, 0x7d, 0x8e, 0x97, | ||
10081 | 0x92, 0x94, 0x8f, 0x82, 0x78, 0x80, 0x99, 0xb0, | ||
10082 | 0xac, 0xb1, 0xa8, 0x8c, 0x75, 0x82, 0xb4, 0xe1, | ||
10083 | 0xaf, 0xb3, 0x9b, 0x5d, 0x23, 0x29, 0x73, 0xbb, | ||
10084 | 0xc9, 0xa5, 0x90, 0x83, 0x53, 0x20, 0x32, 0x6e, | ||
10085 | 0x66, 0x3a, 0x2e, 0x4e, 0x5d, 0x58, 0x79, 0xb0, | ||
10086 | 0xd1, 0xed, 0xff, 0xff, 0xec, 0xb4, 0x81, 0x63, | ||
10087 | 0x71, 0x72, 0x74, 0x7a, 0x87, 0x9e, 0xb8, 0xcb, | ||
10088 | 0xad, 0x96, 0x99, 0x9c, 0x67, 0x37, 0x76, 0xe6, | ||
10089 | 0xd8, 0xa5, 0x5c, 0x53, 0x7f, 0x77, 0x51, 0x50, | ||
10090 | 0x4f, 0x66, 0x9d, 0xd1, 0xc5, 0x86, 0x57, 0x4f, | ||
10091 | 0x87, 0x52, 0x2a, 0x45, 0x8c, 0xb9, 0xac, 0x89, | ||
10092 | 0x22, 0x1f, 0x1e, 0x24, 0x37, 0x52, 0x6e, 0x80, | ||
10093 | 0x73, 0x80, 0x8e, 0x92, 0x92, 0x9a, 0xaf, 0xc1, | ||
10094 | 0xb1, 0xd8, 0xda, 0xd6, 0xe7, 0xcc, 0x91, 0x79, | ||
10095 | 0x62, 0x63, 0x68, 0x72, 0x7c, 0x7f, 0x7a, 0x74, | ||
10096 | 0x8e, 0x8a, 0x85, 0x7f, 0x7c, 0x7c, 0x7e, 0x7f, | ||
10097 | 0x7d, 0x84, 0x8d, 0x94, 0x94, 0x8c, 0x82, 0x7b, | ||
10098 | 0x6f, 0x70, 0x71, 0x72, 0x74, 0x76, 0x77, 0x77, | ||
10099 | 0x81, 0x82, 0x81, 0x7f, 0x79, 0x72, 0x6a, 0x66, | ||
10100 | 0x66, 0x67, 0x67, 0x65, 0x60, 0x58, 0x50, 0x4b, | ||
10101 | 0x4a, 0x4e, 0x3a, 0x15, 0x0a, 0x1d, 0x28, 0x23, | ||
10102 | 0x20, 0x24, 0x2c, 0x38, 0x48, 0x56, 0x62, 0x68, | ||
10103 | 0x69, 0x40, 0x2f, 0x51, 0x7c, 0x92, 0x9f, 0xac, | ||
10104 | 0x96, 0x9a, 0x92, 0x75, 0x55, 0x49, 0x57, 0x6b, | ||
10105 | 0x69, 0x51, 0x40, 0x45, 0x50, 0x56, 0x62, 0x71, | ||
10106 | 0x86, 0x77, 0x46, 0x12, 0x12, 0x36, 0x3e, 0x28, | ||
10107 | 0x50, 0x9b, 0xab, 0x97, 0xa9, 0xba, 0xc6, 0xe6, | ||
10108 | 0xab, 0xa6, 0x9b, 0x88, 0x6f, 0x55, 0x41, 0x35, | ||
10109 | 0x51, 0x43, 0x3b, 0x45, 0x55, 0x54, 0x3c, 0x23, | ||
10110 | 0x2b, 0x31, 0x3e, 0x4b, 0x57, 0x5d, 0x5e, 0x5d, | ||
10111 | 0x6c, 0x6b, 0x69, 0x65, 0x62, 0x5f, 0x5c, 0x5b, | ||
10112 | 0x72, 0x70, 0x6e, 0x6a, 0x66, 0x63, 0x60, 0x5f, | ||
10113 | 0x4c, 0x59, 0x4d, 0x50, 0x5f, 0x67, 0x1d, 0x0f, | ||
10114 | 0xac, 0xcc, 0xd4, 0xb5, 0x96, 0x7b, 0x47, 0x0f, | ||
10115 | 0x4c, 0x57, 0x7c, 0xba, 0xe9, 0xdf, 0x9f, 0x62, | ||
10116 | 0x5b, 0x50, 0x3f, 0x32, 0x2f, 0x38, 0x45, 0x4f, | ||
10117 | 0x44, 0x4b, 0x48, 0x4b, 0x6c, 0x90, 0x87, 0x63, | ||
10118 | 0x54, 0x5f, 0x70, 0x76, 0x61, 0x3f, 0x28, 0x22, | ||
10119 | 0x37, 0x33, 0x2e, 0x35, 0x49, 0x50, 0x30, 0x07, | ||
10120 | 0x57, 0x23, 0x00, 0x00, 0x38, 0x75, 0x8f, 0x8e, | ||
10121 | 0x72, 0x91, 0xa5, 0x8f, 0x5c, 0x36, 0x33, 0x41, | ||
10122 | 0x47, 0x23, 0x0e, 0x11, 0x10, 0x18, 0x4b, 0x8a, | ||
10123 | 0xaa, 0x97, 0x90, 0xaa, 0xd1, 0xdd, 0xc2, 0xa1, | ||
10124 | 0x6b, 0x43, 0x20, 0x27, 0x4b, 0x5f, 0x4e, 0x33, | ||
10125 | 0x68, 0x7c, 0x96, 0xa5, 0xa8, 0xaa, 0xb1, 0xb9, | ||
10126 | 0x99, 0x84, 0x6e, 0x6a, 0x79, 0x8f, 0x9d, 0xa2, | ||
10127 | 0x22, 0x39, 0x54, 0x5e, 0x52, 0x39, 0x21, 0x14, | ||
10128 | 0x34, 0x24, 0x26, 0x37, 0x35, 0x25, 0x2c, 0x45, | ||
10129 | 0x29, 0x36, 0x66, 0x9d, 0xa4, 0x79, 0x53, 0x4a, | ||
10130 | 0x09, 0x47, 0x8f, 0xaf, 0x9f, 0x7f, 0x6f, 0x6e, | ||
10131 | 0x77, 0x31, 0x00, 0x15, 0x65, 0x93, 0x77, 0x44, | ||
10132 | 0x6f, 0x8d, 0x97, 0x70, 0x37, 0x17, 0x19, 0x25, | ||
10133 | 0x2f, 0x2e, 0x1d, 0x32, 0x66, 0x69, 0x5b, 0x6f, | ||
10134 | 0x48, 0x3c, 0x5f, 0x99, 0x8f, 0x44, 0x1a, 0x27, | ||
10135 | 0x33, 0x2b, 0x33, 0x53, 0x76, 0x77, 0x52, 0x2c, | ||
10136 | 0x2f, 0x42, 0x60, 0x7d, 0x8f, 0x93, 0x8e, 0x89, | ||
10137 | 0x89, 0x7a, 0x6c, 0x6a, 0x6a, 0x5e, 0x43, 0x2b, | ||
10138 | 0x4c, 0x3c, 0x2d, 0x32, 0x3e, 0x39, 0x2f, 0x2e, | ||
10139 | 0x39, 0x46, 0x5b, 0x71, 0x81, 0x87, 0x83, 0x7f, | ||
10140 | 0x7d, 0x7d, 0x7e, 0x80, 0x83, 0x85, 0x87, 0x89, | ||
10141 | 0x77, 0x76, 0x76, 0x76, 0x77, 0x7a, 0x7d, 0x7e, | ||
10142 | 0x72, 0x73, 0x74, 0x76, 0x77, 0x79, 0x7a, 0x7a, | ||
10143 | 0x67, 0x68, 0x6a, 0x6b, 0x6c, 0x6c, 0x6b, 0x6a, | ||
10144 | 0x68, 0x68, 0x69, 0x67, 0x61, 0x5a, 0x52, 0x4d, | ||
10145 | 0x32, 0x1e, 0x20, 0x35, 0x30, 0x17, 0x1d, 0x3c, | ||
10146 | 0x23, 0x2d, 0x38, 0x3d, 0x3b, 0x38, 0x39, 0x3b, | ||
10147 | 0x23, 0x21, 0x38, 0x5d, 0x67, 0x58, 0x56, 0x65, | ||
10148 | 0x60, 0x87, 0xaa, 0xa0, 0x6c, 0x36, 0x1c, 0x18, | ||
10149 | 0x66, 0x4e, 0x36, 0x34, 0x43, 0x49, 0x36, 0x1d, | ||
10150 | 0x69, 0x58, 0x3b, 0x4e, 0xb6, 0xff, 0xfa, 0x9e, | ||
10151 | 0x45, 0x62, 0x4c, 0x47, 0x8b, 0xb8, 0xaf, 0xac, | ||
10152 | 0xa2, 0xa3, 0x90, 0x61, 0x35, 0x30, 0x59, 0x84, | ||
10153 | 0x5a, 0x30, 0x04, 0x00, 0x0e, 0x26, 0x2b, 0x24, | ||
10154 | 0x31, 0x27, 0x1c, 0x1c, 0x27, 0x39, 0x47, 0x4e, | ||
10155 | 0x5e, 0x5e, 0x5d, 0x5c, 0x5b, 0x5a, 0x59, 0x59, | ||
10156 | 0x60, 0x60, 0x60, 0x60, 0x5f, 0x5f, 0x5f, 0x5f, | ||
10157 | 0x67, 0x6b, 0x59, 0x53, 0x54, 0x5d, 0x1b, 0x0e, | ||
10158 | 0xb2, 0xc9, 0xc7, 0xa6, 0x94, 0x93, 0x7c, 0x57, | ||
10159 | 0x59, 0x59, 0x69, 0x8e, 0xb3, 0xb6, 0x95, 0x72, | ||
10160 | 0x79, 0x6d, 0x5b, 0x4c, 0x48, 0x4f, 0x5c, 0x65, | ||
10161 | 0x5c, 0x61, 0x5a, 0x57, 0x72, 0x91, 0x84, 0x5d, | ||
10162 | 0x29, 0x70, 0xad, 0xa3, 0x6d, 0x49, 0x51, 0x68, | ||
10163 | 0x4d, 0x6a, 0x76, 0x69, 0x6a, 0x7b, 0x75, 0x5d, | ||
10164 | 0x36, 0x5e, 0x7e, 0x6e, 0x43, 0x31, 0x4d, 0x73, | ||
10165 | 0x76, 0x9a, 0xb0, 0x94, 0x59, 0x35, 0x3f, 0x5a, | ||
10166 | 0xb7, 0xa0, 0x92, 0x8b, 0x70, 0x5a, 0x7a, 0xb2, | ||
10167 | 0xb4, 0x95, 0x82, 0x99, 0xc2, 0xcb, 0xa5, 0x78, | ||
10168 | 0x3e, 0x50, 0x66, 0x70, 0x6c, 0x60, 0x55, 0x50, | ||
10169 | 0xe0, 0xc6, 0xa5, 0x91, 0x8d, 0x91, 0x91, 0x8f, | ||
10170 | 0x65, 0x5c, 0x54, 0x57, 0x5e, 0x5c, 0x4f, 0x42, | ||
10171 | 0x5d, 0x36, 0x1a, 0x32, 0x68, 0x83, 0x6c, 0x49, | ||
10172 | 0x07, 0x15, 0x21, 0x35, 0x58, 0x62, 0x2b, 0x00, | ||
10173 | 0x11, 0x36, 0x57, 0x6f, 0x9f, 0xdf, 0xff, 0xff, | ||
10174 | 0xe3, 0x94, 0x36, 0x07, 0x0c, 0x1c, 0x17, 0x07, | ||
10175 | 0x0f, 0x51, 0x92, 0x9a, 0x7b, 0x77, 0xa7, 0xde, | ||
10176 | 0xff, 0xe4, 0x89, 0x1e, 0x00, 0x28, 0x3b, 0x24, | ||
10177 | 0x03, 0x22, 0x27, 0x39, 0x6e, 0x74, 0x4b, 0x37, | ||
10178 | 0x47, 0x46, 0x3b, 0x31, 0x3f, 0x60, 0x76, 0x7a, | ||
10179 | 0x27, 0x24, 0x27, 0x32, 0x40, 0x45, 0x3f, 0x36, | ||
10180 | 0x8f, 0x89, 0x80, 0x77, 0x72, 0x71, 0x72, 0x74, | ||
10181 | 0x72, 0x84, 0x9a, 0xa5, 0x9c, 0x85, 0x6b, 0x5b, | ||
10182 | 0x30, 0x3e, 0x3f, 0x34, 0x30, 0x2d, 0x27, 0x23, | ||
10183 | 0x43, 0x4f, 0x62, 0x76, 0x87, 0x95, 0x9f, 0xa4, | ||
10184 | 0xa0, 0xa4, 0xa8, 0xa9, 0xa3, 0x98, 0x8c, 0x84, | ||
10185 | 0x77, 0x76, 0x76, 0x76, 0x77, 0x7a, 0x7d, 0x7e, | ||
10186 | 0x7b, 0x7b, 0x7c, 0x7e, 0x7f, 0x81, 0x82, 0x83, | ||
10187 | 0x75, 0x74, 0x74, 0x75, 0x76, 0x79, 0x7b, 0x7c, | ||
10188 | 0x69, 0x6a, 0x6a, 0x68, 0x63, 0x5b, 0x54, 0x4f, | ||
10189 | 0x66, 0x6b, 0x61, 0x49, 0x38, 0x35, 0x31, 0x29, | ||
10190 | 0x36, 0x27, 0x1d, 0x26, 0x35, 0x36, 0x22, 0x0c, | ||
10191 | 0x5b, 0x80, 0xb0, 0xb6, 0x77, 0x2a, 0x13, 0x28, | ||
10192 | 0x4f, 0x89, 0xc8, 0xd8, 0xb2, 0x7c, 0x59, 0x4e, | ||
10193 | 0x5a, 0x72, 0x65, 0x35, 0x25, 0x38, 0x30, 0x0d, | ||
10194 | 0x30, 0x26, 0x59, 0xb9, 0xda, 0xa6, 0x73, 0x6c, | ||
10195 | 0x71, 0x7e, 0x56, 0x43, 0x7c, 0x9a, 0x7e, 0x6c, | ||
10196 | 0xa9, 0x96, 0x87, 0x92, 0xb5, 0xdd, 0xf6, 0xff, | ||
10197 | 0xe9, 0xda, 0xcf, 0xd4, 0xe2, 0xe3, 0xd2, 0xbf, | ||
10198 | 0x7a, 0x83, 0x95, 0xa6, 0xaa, 0x97, 0x73, 0x58, | ||
10199 | 0x63, 0x62, 0x61, 0x5f, 0x5d, 0x5b, 0x5a, 0x59, | ||
10200 | 0x54, 0x54, 0x53, 0x52, 0x51, 0x51, 0x50, 0x50, | ||
10201 | 0x47, 0x48, 0x3c, 0x3a, 0x38, 0x4a, 0x18, 0x0d, | ||
10202 | 0x9a, 0x96, 0x70, 0x3a, 0x31, 0x55, 0x6f, 0x6b, | ||
10203 | 0x3d, 0x64, 0x85, 0x7a, 0x52, 0x3c, 0x4e, 0x6b, | ||
10204 | 0x63, 0x58, 0x47, 0x3b, 0x39, 0x42, 0x50, 0x5a, | ||
10205 | 0x20, 0x2b, 0x2b, 0x2e, 0x59, 0x9d, 0xc2, 0xc2, | ||
10206 | 0xe1, 0xc7, 0x87, 0x3f, 0x25, 0x3e, 0x5b, 0x63, | ||
10207 | 0x5c, 0x65, 0x71, 0x61, 0x2b, 0x0b, 0x3a, 0x86, | ||
10208 | 0xe1, 0xff, 0xff, 0xac, 0x2f, 0x00, 0x1e, 0x62, | ||
10209 | 0xac, 0xa6, 0xa2, 0xa7, 0xb1, 0xb5, 0xb0, 0xa9, | ||
10210 | 0xbb, 0xbc, 0xc7, 0xbd, 0x7d, 0x2f, 0x1b, 0x34, | ||
10211 | 0x84, 0x7f, 0x82, 0x94, 0xb2, 0xcd, 0xde, 0xe3, | ||
10212 | 0x54, 0x57, 0x69, 0x8d, 0xab, 0xa6, 0x7f, 0x5a, | ||
10213 | 0x39, 0x55, 0x85, 0xb0, 0xbb, 0x94, 0x50, 0x1b, | ||
10214 | 0x00, 0x26, 0x4f, 0x5a, 0x4d, 0x45, 0x53, 0x66, | ||
10215 | 0x75, 0x80, 0x86, 0x7b, 0x67, 0x5c, 0x62, 0x6d, | ||
10216 | 0x6f, 0x65, 0x48, 0x41, 0x7a, 0xb3, 0x90, 0x3f, | ||
10217 | 0x56, 0x88, 0xa3, 0x9b, 0xab, 0xd2, 0xcf, 0xa9, | ||
10218 | 0xe1, 0xa4, 0x6a, 0x6e, 0xaa, 0xe7, 0xff, 0xfc, | ||
10219 | 0xff, 0xf7, 0xe6, 0xd5, 0xce, 0xd8, 0xee, 0xff, | ||
10220 | 0xc9, 0xa9, 0x81, 0x6f, 0x77, 0x79, 0x5f, 0x3d, | ||
10221 | 0x6b, 0x94, 0x82, 0x4d, 0x38, 0x2e, 0x34, 0x55, | ||
10222 | 0x4e, 0x32, 0x1e, 0x26, 0x3a, 0x4d, 0x65, 0x7a, | ||
10223 | 0x3f, 0x2c, 0x20, 0x2e, 0x4f, 0x67, 0x69, 0x61, | ||
10224 | 0x69, 0x76, 0x88, 0x96, 0x99, 0x90, 0x82, 0x78, | ||
10225 | 0x68, 0x82, 0xa5, 0xb7, 0xaf, 0x91, 0x6f, 0x5a, | ||
10226 | 0x39, 0x45, 0x32, 0x26, 0x2d, 0x1b, 0x1c, 0x4b, | ||
10227 | 0x72, 0x73, 0x72, 0x6f, 0x70, 0x79, 0x88, 0x95, | ||
10228 | 0xa2, 0xa7, 0xae, 0xaf, 0xa8, 0x99, 0x88, 0x7d, | ||
10229 | 0x7d, 0x84, 0x8d, 0x94, 0x94, 0x8c, 0x82, 0x7b, | ||
10230 | 0x7f, 0x80, 0x81, 0x82, 0x84, 0x85, 0x87, 0x87, | ||
10231 | 0x8b, 0x87, 0x81, 0x7c, 0x79, 0x79, 0x7a, 0x7c, | ||
10232 | 0x6b, 0x6c, 0x6c, 0x6a, 0x65, 0x5d, 0x55, 0x50, | ||
10233 | 0x8c, 0xc7, 0xd8, 0x97, 0x49, 0x28, 0x24, 0x20, | ||
10234 | 0x5b, 0x63, 0x6a, 0x69, 0x64, 0x65, 0x70, 0x7a, | ||
10235 | 0xd2, 0xc2, 0xc6, 0xda, 0xcb, 0x8c, 0x4b, 0x2b, | ||
10236 | 0x0f, 0x37, 0x67, 0x7d, 0x77, 0x69, 0x65, 0x69, | ||
10237 | 0x53, 0x69, 0x56, 0x31, 0x4a, 0x8e, 0x99, 0x6d, | ||
10238 | 0x0f, 0x21, 0x61, 0xac, 0xb5, 0x78, 0x3a, 0x23, | ||
10239 | 0x2f, 0x61, 0x59, 0x44, 0x63, 0x73, 0x67, 0x6d, | ||
10240 | 0x33, 0x4d, 0x7c, 0xb3, 0xdb, 0xe3, 0xd1, 0xbd, | ||
10241 | 0xb5, 0xc0, 0xce, 0xd4, 0xce, 0xc0, 0xb2, 0xa8, | ||
10242 | 0xab, 0x9c, 0x8c, 0x86, 0x87, 0x81, 0x71, 0x61, | ||
10243 | 0x6c, 0x6a, 0x65, 0x60, 0x5a, 0x54, 0x50, 0x4e, | ||
10244 | 0x4f, 0x4d, 0x49, 0x43, 0x3d, 0x38, 0x34, 0x31, | ||
10245 | 0x32, 0x31, 0x2d, 0x2e, 0x27, 0x3d, 0x12, 0x07, | ||
10246 | 0x97, 0x92, 0x67, 0x2b, 0x1c, 0x3a, 0x4f, 0x48, | ||
10247 | 0x6b, 0xac, 0xe0, 0xc3, 0x6e, 0x34, 0x3e, 0x62, | ||
10248 | 0x47, 0x3f, 0x35, 0x30, 0x37, 0x49, 0x5d, 0x6b, | ||
10249 | 0xdb, 0xea, 0xde, 0xbb, 0xb3, 0xd2, 0xeb, 0xed, | ||
10250 | 0xff, 0xdf, 0x8c, 0x46, 0x43, 0x62, 0x5c, 0x37, | ||
10251 | 0x28, 0x48, 0x2f, 0x00, 0x20, 0x84, 0x95, 0x5a, | ||
10252 | 0x5d, 0x48, 0x47, 0x75, 0xb8, 0xda, 0xc6, 0xa5, | ||
10253 | 0x97, 0xb8, 0xcd, 0xb7, 0x8b, 0x79, 0x96, 0xbb, | ||
10254 | 0xd9, 0xda, 0xe1, 0xcc, 0x7f, 0x2c, 0x1d, 0x3d, | ||
10255 | 0x79, 0x87, 0xa3, 0xc0, 0xc7, 0xa6, 0x6a, 0x3a, | ||
10256 | 0x35, 0x26, 0x3a, 0x87, 0xd7, 0xd6, 0x7c, 0x20, | ||
10257 | 0x1f, 0x39, 0x56, 0x63, 0x5f, 0x5b, 0x61, 0x6a, | ||
10258 | 0x80, 0x69, 0x57, 0x5f, 0x72, 0x71, 0x54, 0x36, | ||
10259 | 0x43, 0x4c, 0x57, 0x61, 0x69, 0x73, 0x81, 0x8b, | ||
10260 | 0xff, 0xec, 0xda, 0xe1, 0xf8, 0xf2, 0xba, 0x7d, | ||
10261 | 0xf3, 0xed, 0xdb, 0xc6, 0xc3, 0xd2, 0xe0, 0xe4, | ||
10262 | 0xa8, 0xa8, 0xae, 0xbe, 0xca, 0xc4, 0xac, 0x96, | ||
10263 | 0x8d, 0x8a, 0x7d, 0x69, 0x61, 0x78, 0xa8, 0xd1, | ||
10264 | 0xa0, 0x88, 0x76, 0x6c, 0x51, 0x2e, 0x24, 0x31, | ||
10265 | 0x51, 0x86, 0x98, 0x80, 0x57, 0x32, 0x5d, 0xc1, | ||
10266 | 0xdc, 0x82, 0x43, 0x44, 0x39, 0x14, 0x1c, 0x4c, | ||
10267 | 0x2c, 0x45, 0x5d, 0x61, 0x58, 0x5a, 0x6f, 0x85, | ||
10268 | 0x53, 0x5e, 0x6f, 0x7c, 0x81, 0x7c, 0x73, 0x6b, | ||
10269 | 0x7e, 0x86, 0x97, 0xaa, 0xaf, 0x97, 0x6a, 0x46, | ||
10270 | 0x50, 0x39, 0x28, 0x2e, 0x32, 0x20, 0x21, 0x3e, | ||
10271 | 0x52, 0x58, 0x5c, 0x5a, 0x55, 0x56, 0x60, 0x6a, | ||
10272 | 0x59, 0x5f, 0x6a, 0x74, 0x7c, 0x7f, 0x7e, 0x7d, | ||
10273 | 0x73, 0x78, 0x80, 0x84, 0x81, 0x77, 0x6b, 0x63, | ||
10274 | 0x6f, 0x70, 0x71, 0x72, 0x74, 0x75, 0x76, 0x77, | ||
10275 | 0x88, 0x83, 0x7c, 0x76, 0x74, 0x76, 0x79, 0x7c, | ||
10276 | 0x6c, 0x6d, 0x6d, 0x6b, 0x66, 0x5e, 0x56, 0x52, | ||
10277 | 0x55, 0x75, 0xb5, 0xcf, 0x85, 0x1e, 0x17, 0x53, | ||
10278 | 0x71, 0x83, 0x8a, 0x72, 0x4f, 0x47, 0x65, 0x88, | ||
10279 | 0x91, 0x55, 0x39, 0x68, 0xa1, 0x9f, 0x6d, 0x43, | ||
10280 | 0x44, 0x48, 0x4a, 0x48, 0x45, 0x45, 0x4a, 0x4e, | ||
10281 | 0x3f, 0x49, 0x4c, 0x5a, 0x92, 0xd3, 0xde, 0xc3, | ||
10282 | 0x4c, 0x3d, 0x3b, 0x67, 0xa9, 0xae, 0x51, 0x00, | ||
10283 | 0x1f, 0x28, 0x0d, 0x26, 0x90, 0xbe, 0x87, 0x54, | ||
10284 | 0x5b, 0x6c, 0x84, 0x98, 0xa5, 0xad, 0xb4, 0xb9, | ||
10285 | 0x92, 0xa4, 0xae, 0x9e, 0x81, 0x79, 0x8d, 0xa7, | ||
10286 | 0x92, 0x7c, 0x63, 0x5c, 0x64, 0x6a, 0x65, 0x5b, | ||
10287 | 0x5c, 0x5d, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6a, | ||
10288 | 0x64, 0x61, 0x5d, 0x57, 0x50, 0x4b, 0x46, 0x44, | ||
10289 | 0x43, 0x41, 0x40, 0x40, 0x30, 0x42, 0x18, 0x09, | ||
10290 | 0xa4, 0xb8, 0xb2, 0x93, 0x87, 0x92, 0x88, 0x6c, | ||
10291 | 0xab, 0xcb, 0xda, 0xb1, 0x66, 0x30, 0x2d, 0x40, | ||
10292 | 0x5d, 0x58, 0x54, 0x58, 0x68, 0x81, 0x9b, 0xac, | ||
10293 | 0xa0, 0xcc, 0xe4, 0xd4, 0xc8, 0xda, 0xec, 0xed, | ||
10294 | 0xba, 0xf2, 0xfb, 0xb5, 0x73, 0x6f, 0x87, 0x91, | ||
10295 | 0x7e, 0x81, 0x7a, 0x6d, 0x74, 0x83, 0x7e, 0x6a, | ||
10296 | 0x9e, 0xc7, 0xf3, 0xfe, 0xea, 0xd3, 0xcc, 0xd1, | ||
10297 | 0xcc, 0xba, 0xaa, 0xaa, 0xb6, 0xbe, 0xb8, 0xaf, | ||
10298 | 0xec, 0xdc, 0xc9, 0xa5, 0x61, 0x33, 0x55, 0x99, | ||
10299 | 0xe5, 0xba, 0x9e, 0xb8, 0xe2, 0xd5, 0x83, 0x31, | ||
10300 | 0x4f, 0x3c, 0x30, 0x42, 0x6b, 0x8d, 0x97, 0x94, | ||
10301 | 0xb2, 0xc7, 0xc5, 0x92, 0x4a, 0x2a, 0x44, 0x6c, | ||
10302 | 0x3a, 0x40, 0x43, 0x3e, 0x38, 0x3d, 0x50, 0x61, | ||
10303 | 0x4c, 0x59, 0x65, 0x65, 0x5b, 0x53, 0x55, 0x5a, | ||
10304 | 0x66, 0x54, 0x71, 0xb7, 0xda, 0xc3, 0xac, 0xb0, | ||
10305 | 0xd1, 0xc0, 0xce, 0xef, 0xdf, 0xa3, 0x7f, 0x83, | ||
10306 | 0x91, 0x67, 0x43, 0x4c, 0x72, 0x83, 0x6a, 0x47, | ||
10307 | 0x29, 0x50, 0x7d, 0x8e, 0x83, 0x77, 0x7b, 0x86, | ||
10308 | 0xa7, 0xbe, 0xbf, 0x8d, 0x41, 0x15, 0x23, 0x44, | ||
10309 | 0x29, 0x1d, 0x1a, 0x3a, 0x47, 0x22, 0x3f, 0xa6, | ||
10310 | 0xdb, 0xaf, 0x75, 0x4f, 0x46, 0x4c, 0x4e, 0x4a, | ||
10311 | 0x75, 0x62, 0x53, 0x57, 0x6b, 0x78, 0x74, 0x69, | ||
10312 | 0x88, 0x80, 0x74, 0x6b, 0x68, 0x6c, 0x74, 0x7a, | ||
10313 | 0x6d, 0x7a, 0x89, 0x8d, 0x7f, 0x62, 0x42, 0x2e, | ||
10314 | 0x3c, 0x23, 0x2d, 0x2f, 0x28, 0x54, 0x60, 0x1f, | ||
10315 | 0x18, 0x32, 0x54, 0x6d, 0x78, 0x7d, 0x83, 0x89, | ||
10316 | 0x7c, 0x79, 0x74, 0x6f, 0x6c, 0x6b, 0x6b, 0x6c, | ||
10317 | 0x83, 0x80, 0x7b, 0x75, 0x70, 0x6d, 0x6b, 0x6b, | ||
10318 | 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x83, | ||
10319 | 0x80, 0x7d, 0x79, 0x78, 0x7b, 0x83, 0x8b, 0x91, | ||
10320 | 0x6d, 0x6e, 0x6e, 0x6c, 0x66, 0x5f, 0x57, 0x52, | ||
10321 | 0x46, 0x5b, 0x59, 0x3e, 0x37, 0x4c, 0x5a, 0x53, | ||
10322 | 0x4a, 0x31, 0x1a, 0x1d, 0x38, 0x55, 0x62, 0x63, | ||
10323 | 0x6c, 0x4d, 0x37, 0x34, 0x2a, 0x18, 0x1b, 0x30, | ||
10324 | 0x44, 0x3b, 0x31, 0x33, 0x3e, 0x4a, 0x51, 0x52, | ||
10325 | 0x63, 0x96, 0xd5, 0xf1, 0xe7, 0xdb, 0xef, 0xff, | ||
10326 | 0xff, 0x5f, 0x00, 0x16, 0x6f, 0x86, 0x7e, 0x84, | ||
10327 | 0x2d, 0x5a, 0x5d, 0x6a, 0xac, 0xc2, 0x98, 0x7d, | ||
10328 | 0x70, 0x54, 0x4c, 0x7a, 0xbe, 0xda, 0xba, 0x8c, | ||
10329 | 0x46, 0x69, 0x81, 0x6e, 0x42, 0x31, 0x4d, 0x72, | ||
10330 | 0x7b, 0x60, 0x45, 0x41, 0x52, 0x65, 0x6c, 0x69, | ||
10331 | 0x61, 0x61, 0x60, 0x60, 0x5f, 0x5f, 0x5e, 0x5e, | ||
10332 | 0x57, 0x56, 0x54, 0x52, 0x50, 0x4e, 0x4c, 0x4b, | ||
10333 | 0x4b, 0x49, 0x4d, 0x50, 0x3d, 0x4f, 0x27, 0x16, | ||
10334 | 0x0e, 0x26, 0x3a, 0x36, 0x22, 0x16, 0x21, 0x31, | ||
10335 | 0x71, 0x80, 0x94, 0x9a, 0x8a, 0x66, 0x3c, 0x20, | ||
10336 | 0x29, 0x22, 0x1b, 0x20, 0x3a, 0x66, 0x97, 0xb7, | ||
10337 | 0xd4, 0xc1, 0xb0, 0xb3, 0xc6, 0xd6, 0xd8, 0xd3, | ||
10338 | 0xba, 0xc9, 0xb5, 0x7b, 0x55, 0x5e, 0x73, 0x79, | ||
10339 | 0x48, 0x5b, 0x70, 0x76, 0x6e, 0x67, 0x69, 0x70, | ||
10340 | 0x94, 0xa1, 0xb2, 0xb6, 0xa4, 0x7f, 0x56, 0x3b, | ||
10341 | 0x5f, 0x7b, 0xa3, 0xc5, 0xd5, 0xd6, 0xd0, 0xcb, | ||
10342 | 0xda, 0xd9, 0xcd, 0xb2, 0x97, 0x91, 0xa3, 0xb7, | ||
10343 | 0x6d, 0x7a, 0x8a, 0x93, 0x8b, 0x73, 0x58, 0x45, | ||
10344 | 0x67, 0x89, 0xad, 0xb6, 0xa3, 0x8d, 0x86, 0x89, | ||
10345 | 0x83, 0x86, 0x88, 0x85, 0x7b, 0x6b, 0x5b, 0x50, | ||
10346 | 0x67, 0x7f, 0x90, 0x83, 0x65, 0x54, 0x5f, 0x72, | ||
10347 | 0x29, 0x21, 0x29, 0x38, 0x2e, 0x1a, 0x28, 0x4a, | ||
10348 | 0x15, 0x19, 0x30, 0x5d, 0x92, 0xb6, 0xc0, 0xbb, | ||
10349 | 0xbc, 0xb1, 0x90, 0x5a, 0x2a, 0x1d, 0x38, 0x57, | ||
10350 | 0x83, 0x5d, 0x72, 0xc1, 0xd7, 0x8f, 0x44, 0x2c, | ||
10351 | 0x31, 0x66, 0x9d, 0xaa, 0x96, 0x8e, 0xa7, 0xc7, | ||
10352 | 0xcf, 0xc2, 0xac, 0x8f, 0x70, 0x53, 0x3c, 0x30, | ||
10353 | 0x3b, 0x38, 0x34, 0x30, 0x2d, 0x2d, 0x2e, 0x2f, | ||
10354 | 0x0d, 0x13, 0x1e, 0x28, 0x2e, 0x2f, 0x2d, 0x2b, | ||
10355 | 0x67, 0x68, 0x6b, 0x6f, 0x72, 0x76, 0x79, 0x7a, | ||
10356 | 0x7d, 0x81, 0x87, 0x89, 0x87, 0x7f, 0x76, 0x70, | ||
10357 | 0x8b, 0x82, 0x74, 0x64, 0x57, 0x4e, 0x49, 0x48, | ||
10358 | 0x46, 0x31, 0x1b, 0x1c, 0x3b, 0x6f, 0xa1, 0xbf, | ||
10359 | 0x7f, 0x6e, 0x5d, 0x5b, 0x6b, 0x7f, 0x8d, 0x92, | ||
10360 | 0x8a, 0x79, 0x6b, 0x71, 0x84, 0x8d, 0x85, 0x77, | ||
10361 | 0x67, 0x6a, 0x6f, 0x75, 0x7b, 0x81, 0x86, 0x88, | ||
10362 | 0x85, 0x84, 0x82, 0x80, 0x7e, 0x7d, 0x7b, 0x7a, | ||
10363 | 0x6f, 0x6e, 0x6e, 0x6d, 0x6c, 0x6b, 0x6a, 0x6a, | ||
10364 | 0x69, 0x63, 0x5e, 0x5e, 0x5f, 0x59, 0x4c, 0x41, | ||
10365 | 0x4d, 0x83, 0xa3, 0x84, 0x52, 0x40, 0x4f, 0x60, | ||
10366 | 0x7d, 0x8e, 0x9a, 0x91, 0x7c, 0x6e, 0x74, 0x80, | ||
10367 | 0x77, 0x6d, 0x61, 0x5e, 0x6a, 0x83, 0x9f, 0xb1, | ||
10368 | 0x80, 0x78, 0x67, 0x52, 0x46, 0x4d, 0x65, 0x79, | ||
10369 | 0xa0, 0xa6, 0xae, 0xb2, 0xb4, 0xb5, 0xb8, 0xba, | ||
10370 | 0xd8, 0xbf, 0x8d, 0x56, 0x40, 0x69, 0xc0, 0xff, | ||
10371 | 0xb4, 0x94, 0x71, 0x65, 0x6f, 0x77, 0x71, 0x66, | ||
10372 | 0x4f, 0x4b, 0x54, 0x72, 0x96, 0xa5, 0x98, 0x84, | ||
10373 | 0x08, 0x26, 0x5e, 0x80, 0x64, 0x44, 0x6d, 0xb8, | ||
10374 | 0xa7, 0x96, 0x6e, 0x45, 0x42, 0x5e, 0x70, 0x6e, | ||
10375 | 0x66, 0x63, 0x61, 0x65, 0x6b, 0x6a, 0x61, 0x59, | ||
10376 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
10377 | 0x48, 0x4d, 0x55, 0x4d, 0x5d, 0x58, 0x1f, 0x07, | ||
10378 | 0x42, 0x56, 0x76, 0x93, 0x9c, 0x8b, 0x6a, 0x50, | ||
10379 | 0x71, 0x64, 0x50, 0x3d, 0x31, 0x30, 0x35, 0x39, | ||
10380 | 0x49, 0x76, 0xa0, 0x9d, 0x7b, 0x68, 0x7b, 0x99, | ||
10381 | 0x6d, 0x96, 0xc3, 0xd1, 0xc1, 0xb3, 0xb9, 0xc7, | ||
10382 | 0xc8, 0xd7, 0xc1, 0x81, 0x4d, 0x3f, 0x3a, 0x2e, | ||
10383 | 0x79, 0x5d, 0x3b, 0x2d, 0x3c, 0x5d, 0x7e, 0x91, | ||
10384 | 0x9f, 0xa4, 0xa8, 0xa9, 0xa2, 0x94, 0x86, 0x7c, | ||
10385 | 0x7f, 0x92, 0xaf, 0xc9, 0xd6, 0xd3, 0xc6, 0xbb, | ||
10386 | 0x5d, 0x81, 0xaa, 0xb6, 0x9f, 0x79, 0x5b, 0x4e, | ||
10387 | 0x31, 0x57, 0x8d, 0xb6, 0xbc, 0x9d, 0x6e, 0x4c, | ||
10388 | 0x5e, 0x68, 0x83, 0xad, 0xcf, 0xcd, 0xa9, 0x86, | ||
10389 | 0xab, 0xb5, 0xbf, 0xb9, 0x9b, 0x6a, 0x37, 0x16, | ||
10390 | 0x3c, 0x3c, 0x3e, 0x43, 0x49, 0x4f, 0x54, 0x56, | ||
10391 | 0x5a, 0x3e, 0x2c, 0x2a, 0x24, 0x28, 0x55, 0x8d, | ||
10392 | 0xd4, 0x8a, 0x37, 0x1e, 0x42, 0x75, 0x8f, 0x92, | ||
10393 | 0x1e, 0x53, 0x92, 0xb0, 0xa1, 0x7c, 0x5c, 0x4d, | ||
10394 | 0x59, 0x79, 0xa2, 0xbb, 0xb4, 0x84, 0x3a, 0x00, | ||
10395 | 0x19, 0x2d, 0x3f, 0x44, 0x4b, 0x6d, 0xa8, 0xd9, | ||
10396 | 0x90, 0x92, 0x97, 0x9d, 0xa4, 0xab, 0xaf, 0xb2, | ||
10397 | 0xb8, 0xad, 0x9b, 0x86, 0x72, 0x62, 0x59, 0x54, | ||
10398 | 0x5d, 0x63, 0x6d, 0x77, 0x7c, 0x7d, 0x7b, 0x79, | ||
10399 | 0x66, 0x6a, 0x70, 0x79, 0x82, 0x8a, 0x91, 0x94, | ||
10400 | 0x99, 0x91, 0x85, 0x79, 0x72, 0x70, 0x72, 0x74, | ||
10401 | 0x74, 0x6d, 0x60, 0x53, 0x48, 0x42, 0x3f, 0x3f, | ||
10402 | 0x2e, 0x42, 0x60, 0x7d, 0x91, 0x9b, 0x9f, 0x9f, | ||
10403 | 0x7e, 0x73, 0x69, 0x69, 0x72, 0x7a, 0x7c, 0x7a, | ||
10404 | 0x7d, 0x72, 0x6c, 0x76, 0x85, 0x87, 0x77, 0x64, | ||
10405 | 0x91, 0x8f, 0x8b, 0x85, 0x7f, 0x7a, 0x76, 0x74, | ||
10406 | 0x79, 0x79, 0x78, 0x78, 0x77, 0x77, 0x77, 0x76, | ||
10407 | 0x73, 0x72, 0x72, 0x72, 0x71, 0x70, 0x70, 0x70, | ||
10408 | 0x69, 0x63, 0x5d, 0x5c, 0x5d, 0x56, 0x49, 0x3d, | ||
10409 | 0x83, 0xa9, 0xe2, 0xff, 0xe0, 0x9d, 0x6f, 0x65, | ||
10410 | 0x6f, 0x77, 0x79, 0x70, 0x64, 0x68, 0x7e, 0x93, | ||
10411 | 0x7c, 0x65, 0x45, 0x2e, 0x2b, 0x3d, 0x59, 0x6d, | ||
10412 | 0x31, 0x36, 0x45, 0x60, 0x7b, 0x86, 0x7d, 0x71, | ||
10413 | 0xe1, 0xd5, 0xb4, 0x83, 0x5f, 0x64, 0x8f, 0xb9, | ||
10414 | 0x86, 0xb0, 0xce, 0xba, 0x85, 0x68, 0x7a, 0x9a, | ||
10415 | 0x69, 0x69, 0x67, 0x61, 0x5d, 0x5f, 0x68, 0x71, | ||
10416 | 0x50, 0x3d, 0x2e, 0x37, 0x53, 0x6b, 0x72, 0x6f, | ||
10417 | 0x5f, 0x3f, 0x37, 0x4e, 0x55, 0x46, 0x4b, 0x64, | ||
10418 | 0x66, 0x8c, 0x9e, 0x84, 0x61, 0x5c, 0x6b, 0x77, | ||
10419 | 0x65, 0x60, 0x5e, 0x61, 0x65, 0x63, 0x59, 0x50, | ||
10420 | 0x51, 0x4e, 0x4a, 0x46, 0x45, 0x46, 0x48, 0x4a, | ||
10421 | 0x49, 0x4d, 0x54, 0x4c, 0x5c, 0x57, 0x1f, 0x07, | ||
10422 | 0xa2, 0x8d, 0x7f, 0x8d, 0xab, 0xb8, 0xa9, 0x92, | ||
10423 | 0x51, 0x56, 0x5d, 0x60, 0x5c, 0x52, 0x45, 0x3d, | ||
10424 | 0xa0, 0xa3, 0xae, 0xbd, 0xc1, 0xab, 0x81, 0x5f, | ||
10425 | 0x62, 0x72, 0x8f, 0xaf, 0xc5, 0xc9, 0xbe, 0xb2, | ||
10426 | 0xb0, 0xae, 0x84, 0x3d, 0x13, 0x19, 0x26, 0x25, | ||
10427 | 0x2c, 0x1f, 0x1a, 0x31, 0x57, 0x70, 0x71, 0x66, | ||
10428 | 0x88, 0x8b, 0x8e, 0x8e, 0x8a, 0x82, 0x79, 0x73, | ||
10429 | 0x90, 0xaf, 0xcd, 0xcc, 0xb0, 0x98, 0x93, 0x9a, | ||
10430 | 0x58, 0x65, 0x6e, 0x6a, 0x61, 0x66, 0x7c, 0x91, | ||
10431 | 0xde, 0xe1, 0xe1, 0xd4, 0xb3, 0x85, 0x57, 0x3a, | ||
10432 | 0x34, 0x42, 0x66, 0x9f, 0xd4, 0xe8, 0xd7, 0xbe, | ||
10433 | 0x9a, 0x8d, 0x79, 0x69, 0x64, 0x69, 0x75, 0x7d, | ||
10434 | 0xae, 0x91, 0x73, 0x6c, 0x73, 0x6e, 0x53, 0x37, | ||
10435 | 0x35, 0x2f, 0x3d, 0x51, 0x4c, 0x3c, 0x4c, 0x6f, | ||
10436 | 0x8e, 0x82, 0x91, 0xcd, 0xff, 0xff, 0xb7, 0x6a, | ||
10437 | 0x00, 0x23, 0x69, 0x98, 0x9e, 0x89, 0x70, 0x61, | ||
10438 | 0x24, 0x5a, 0xa1, 0xd6, 0xef, 0xf4, 0xea, 0xde, | ||
10439 | 0xae, 0x96, 0x70, 0x4f, 0x41, 0x4c, 0x65, 0x79, | ||
10440 | 0x96, 0x95, 0x93, 0x91, 0x8e, 0x8c, 0x8a, 0x89, | ||
10441 | 0x95, 0x8e, 0x82, 0x77, 0x70, 0x70, 0x73, 0x75, | ||
10442 | 0x88, 0x8e, 0x97, 0x9f, 0xa4, 0xa4, 0xa1, 0x9f, | ||
10443 | 0x66, 0x67, 0x6a, 0x6e, 0x73, 0x77, 0x7a, 0x7b, | ||
10444 | 0x7b, 0x75, 0x6b, 0x62, 0x5e, 0x5f, 0x64, 0x67, | ||
10445 | 0x62, 0x5c, 0x52, 0x49, 0x42, 0x3f, 0x40, 0x41, | ||
10446 | 0x4d, 0x5d, 0x69, 0x64, 0x58, 0x5c, 0x74, 0x8d, | ||
10447 | 0xb2, 0x9d, 0x80, 0x6a, 0x62, 0x64, 0x69, 0x6b, | ||
10448 | 0x43, 0x44, 0x4f, 0x67, 0x7f, 0x87, 0x7b, 0x6b, | ||
10449 | 0x7f, 0x7e, 0x7c, 0x79, 0x76, 0x74, 0x72, 0x70, | ||
10450 | 0x76, 0x78, 0x7a, 0x7d, 0x80, 0x83, 0x85, 0x86, | ||
10451 | 0x88, 0x86, 0x82, 0x7e, 0x79, 0x74, 0x71, 0x6f, | ||
10452 | 0x5e, 0x5a, 0x58, 0x5c, 0x61, 0x5f, 0x55, 0x4c, | ||
10453 | 0x50, 0x4b, 0x59, 0x75, 0x7d, 0x6b, 0x5c, 0x5c, | ||
10454 | 0x73, 0x89, 0xa2, 0xad, 0xa9, 0x9f, 0x9c, 0x9c, | ||
10455 | 0x96, 0x84, 0x68, 0x4d, 0x3d, 0x3a, 0x40, 0x46, | ||
10456 | 0x3d, 0x53, 0x72, 0x89, 0x8e, 0x85, 0x78, 0x70, | ||
10457 | 0x8e, 0x8b, 0x81, 0x70, 0x64, 0x64, 0x71, 0x7d, | ||
10458 | 0x6d, 0x86, 0x9c, 0x96, 0x78, 0x5f, 0x59, 0x5e, | ||
10459 | 0x54, 0x6a, 0x7a, 0x6e, 0x4f, 0x3b, 0x3f, 0x4d, | ||
10460 | 0x6a, 0x5b, 0x4d, 0x50, 0x63, 0x75, 0x7e, 0x7e, | ||
10461 | 0x92, 0x72, 0x51, 0x3a, 0x1f, 0x0c, 0x20, 0x44, | ||
10462 | 0x3c, 0x69, 0x99, 0xab, 0xa4, 0x93, 0x7a, 0x65, | ||
10463 | 0x66, 0x61, 0x5d, 0x5e, 0x61, 0x5d, 0x52, 0x48, | ||
10464 | 0x4d, 0x4b, 0x47, 0x43, 0x42, 0x43, 0x45, 0x47, | ||
10465 | 0x4a, 0x4d, 0x52, 0x49, 0x59, 0x55, 0x1e, 0x08, | ||
10466 | 0x75, 0x7d, 0x90, 0xa9, 0xb5, 0xa2, 0x76, 0x51, | ||
10467 | 0x40, 0x3b, 0x34, 0x30, 0x32, 0x3a, 0x44, 0x4a, | ||
10468 | 0xab, 0xc2, 0xd5, 0xcd, 0xb4, 0xa8, 0xb6, 0xc9, | ||
10469 | 0x95, 0x6d, 0x3e, 0x27, 0x28, 0x29, 0x1b, 0x0a, | ||
10470 | 0x27, 0x31, 0x25, 0x0c, 0x18, 0x4b, 0x74, 0x7d, | ||
10471 | 0x95, 0x95, 0x97, 0x9e, 0xa6, 0xa9, 0xa8, 0xa5, | ||
10472 | 0x79, 0x7d, 0x82, 0x83, 0x7e, 0x72, 0x65, 0x5c, | ||
10473 | 0x53, 0x8d, 0xc1, 0xba, 0x8b, 0x73, 0x8f, 0xb9, | ||
10474 | 0xc5, 0xca, 0xc7, 0xb6, 0xa2, 0xa1, 0xb5, 0xcb, | ||
10475 | 0xb4, 0xb0, 0xa7, 0x98, 0x85, 0x70, 0x5d, 0x52, | ||
10476 | 0x68, 0x62, 0x4e, 0x2e, 0x1a, 0x2a, 0x5a, 0x84, | ||
10477 | 0x89, 0x73, 0x53, 0x3c, 0x3d, 0x56, 0x77, 0x8f, | ||
10478 | 0xb4, 0x7c, 0x37, 0x11, 0x15, 0x2a, 0x38, 0x3b, | ||
10479 | 0x54, 0x48, 0x4a, 0x56, 0x4c, 0x3d, 0x51, 0x78, | ||
10480 | 0xae, 0x8f, 0x75, 0x7d, 0x98, 0x9e, 0x80, 0x5e, | ||
10481 | 0x56, 0x5b, 0x5d, 0x55, 0x43, 0x30, 0x21, 0x1b, | ||
10482 | 0x38, 0x16, 0x21, 0x58, 0x64, 0x44, 0x49, 0x74, | ||
10483 | 0x9f, 0x8c, 0x79, 0x79, 0x86, 0x8c, 0x82, 0x76, | ||
10484 | 0x9c, 0x9b, 0x98, 0x95, 0x91, 0x8d, 0x8b, 0x89, | ||
10485 | 0x92, 0x89, 0x7a, 0x6e, 0x6a, 0x6e, 0x76, 0x7c, | ||
10486 | 0x86, 0x8c, 0x94, 0x9c, 0x9f, 0x9e, 0x9a, 0x97, | ||
10487 | 0x87, 0x83, 0x7e, 0x76, 0x6e, 0x67, 0x61, 0x5e, | ||
10488 | 0x63, 0x6a, 0x75, 0x7f, 0x84, 0x84, 0x81, 0x7e, | ||
10489 | 0x5d, 0x58, 0x51, 0x4a, 0x47, 0x47, 0x4a, 0x4c, | ||
10490 | 0x67, 0x71, 0x7f, 0x8b, 0x91, 0x91, 0x8d, 0x8a, | ||
10491 | 0x81, 0x91, 0xaa, 0xc2, 0xcd, 0xc9, 0xbb, 0xb0, | ||
10492 | 0xa0, 0x99, 0x93, 0x92, 0x8f, 0x83, 0x6c, 0x5a, | ||
10493 | 0x48, 0x4a, 0x4c, 0x4f, 0x52, 0x55, 0x57, 0x59, | ||
10494 | 0x5b, 0x5c, 0x60, 0x64, 0x68, 0x6c, 0x6f, 0x71, | ||
10495 | 0x77, 0x76, 0x74, 0x72, 0x70, 0x6e, 0x6d, 0x6c, | ||
10496 | 0x6c, 0x67, 0x63, 0x64, 0x66, 0x62, 0x56, 0x4b, | ||
10497 | 0x3e, 0x3c, 0x33, 0x34, 0x53, 0x7e, 0x8e, 0x84, | ||
10498 | 0xa2, 0x92, 0x77, 0x59, 0x44, 0x3e, 0x45, 0x4e, | ||
10499 | 0x6f, 0x73, 0x75, 0x71, 0x62, 0x4d, 0x36, 0x28, | ||
10500 | 0x1c, 0x46, 0x69, 0x5f, 0x3d, 0x36, 0x5e, 0x8c, | ||
10501 | 0x83, 0x4f, 0x19, 0x14, 0x3d, 0x6d, 0x82, 0x82, | ||
10502 | 0x70, 0x48, 0x24, 0x2a, 0x4f, 0x68, 0x5e, 0x48, | ||
10503 | 0x44, 0x58, 0x6c, 0x6c, 0x5a, 0x46, 0x3d, 0x3d, | ||
10504 | 0x40, 0x47, 0x55, 0x66, 0x72, 0x74, 0x6c, 0x64, | ||
10505 | 0x4e, 0x40, 0x2f, 0x22, 0x22, 0x3f, 0x78, 0xab, | ||
10506 | 0xad, 0xa0, 0x93, 0x94, 0x9f, 0xa0, 0x8c, 0x75, | ||
10507 | 0x6c, 0x67, 0x62, 0x63, 0x64, 0x5f, 0x54, 0x49, | ||
10508 | 0x4b, 0x49, 0x45, 0x41, 0x40, 0x41, 0x43, 0x45, | ||
10509 | 0x4b, 0x4d, 0x50, 0x46, 0x56, 0x53, 0x1e, 0x09, | ||
10510 | 0x66, 0x89, 0xb1, 0xbb, 0xa2, 0x78, 0x55, 0x44, | ||
10511 | 0x1d, 0x27, 0x35, 0x40, 0x45, 0x41, 0x39, 0x32, | ||
10512 | 0x83, 0x95, 0xa2, 0x9a, 0x8a, 0x8f, 0xae, 0xcd, | ||
10513 | 0xb1, 0xa4, 0x82, 0x4b, 0x1d, 0x15, 0x34, 0x56, | ||
10514 | 0x3c, 0x70, 0xa2, 0xba, 0xc8, 0xc5, 0x9c, 0x69, | ||
10515 | 0x63, 0xa2, 0xe7, 0xf4, 0xc1, 0x76, 0x3d, 0x24, | ||
10516 | 0x31, 0x28, 0x1d, 0x18, 0x1f, 0x31, 0x46, 0x54, | ||
10517 | 0x4b, 0x41, 0x4b, 0x7b, 0xbb, 0xe2, 0xe0, 0xce, | ||
10518 | 0xeb, 0xe4, 0xcd, 0xa5, 0x7e, 0x6e, 0x7a, 0x8c, | ||
10519 | 0x5d, 0x77, 0x9e, 0xbd, 0xc7, 0xb8, 0x9e, 0x8b, | ||
10520 | 0x35, 0x54, 0x75, 0x80, 0x76, 0x70, 0x7a, 0x89, | ||
10521 | 0x46, 0x66, 0x94, 0xb6, 0xb9, 0x9d, 0x73, 0x56, | ||
10522 | 0x48, 0x3f, 0x35, 0x36, 0x44, 0x59, 0x6b, 0x75, | ||
10523 | 0x5b, 0x58, 0x67, 0x79, 0x6b, 0x4b, 0x4b, 0x64, | ||
10524 | 0x7c, 0x82, 0x85, 0x7a, 0x61, 0x41, 0x26, 0x18, | ||
10525 | 0x08, 0x14, 0x2a, 0x44, 0x56, 0x5b, 0x53, 0x49, | ||
10526 | 0x8c, 0x42, 0x21, 0x42, 0x4b, 0x22, 0x0c, 0x1e, | ||
10527 | 0x0c, 0x08, 0x16, 0x3f, 0x72, 0x8c, 0x83, 0x70, | ||
10528 | 0x85, 0x87, 0x8a, 0x8e, 0x92, 0x96, 0x99, 0x9b, | ||
10529 | 0x94, 0x87, 0x76, 0x68, 0x65, 0x6e, 0x7b, 0x85, | ||
10530 | 0x88, 0x8d, 0x94, 0x9a, 0x9c, 0x99, 0x95, 0x91, | ||
10531 | 0xaf, 0xac, 0xa5, 0x9c, 0x93, 0x8a, 0x83, 0x80, | ||
10532 | 0x5d, 0x64, 0x6f, 0x79, 0x7e, 0x7e, 0x7a, 0x77, | ||
10533 | 0x55, 0x51, 0x4b, 0x45, 0x43, 0x45, 0x48, 0x4b, | ||
10534 | 0x4e, 0x66, 0x7c, 0x79, 0x63, 0x54, 0x59, 0x65, | ||
10535 | 0x84, 0x82, 0x7f, 0x7e, 0x81, 0x8c, 0x99, 0xa3, | ||
10536 | 0xc8, 0xc6, 0xc6, 0xcd, 0xd7, 0xde, 0xdf, 0xdd, | ||
10537 | 0xd6, 0xd2, 0xcb, 0xc2, 0xb8, 0xaf, 0xa8, 0xa4, | ||
10538 | 0xa1, 0x9e, 0x99, 0x92, 0x8b, 0x84, 0x7f, 0x7c, | ||
10539 | 0x7f, 0x81, 0x84, 0x88, 0x8c, 0x90, 0x93, 0x94, | ||
10540 | 0x99, 0x91, 0x88, 0x82, 0x7e, 0x73, 0x62, 0x54, | ||
10541 | 0x4b, 0x53, 0x52, 0x51, 0x65, 0x81, 0x85, 0x76, | ||
10542 | 0x72, 0x7c, 0x8c, 0x9b, 0xa0, 0x97, 0x85, 0x76, | ||
10543 | 0x59, 0x64, 0x73, 0x7e, 0x7c, 0x6e, 0x5d, 0x50, | ||
10544 | 0x67, 0x7f, 0x84, 0x5c, 0x24, 0x13, 0x39, 0x68, | ||
10545 | 0xa7, 0x6b, 0x29, 0x17, 0x38, 0x62, 0x76, 0x76, | ||
10546 | 0x6c, 0x47, 0x2e, 0x42, 0x70, 0x80, 0x60, 0x37, | ||
10547 | 0x12, 0x17, 0x28, 0x47, 0x65, 0x70, 0x65, 0x56, | ||
10548 | 0x30, 0x3f, 0x53, 0x63, 0x69, 0x69, 0x68, 0x67, | ||
10549 | 0x6d, 0x47, 0x1f, 0x20, 0x52, 0x8c, 0xa5, 0xa2, | ||
10550 | 0xad, 0xa0, 0x90, 0x83, 0x7a, 0x76, 0x7b, 0x82, | ||
10551 | 0x72, 0x6d, 0x69, 0x6a, 0x6d, 0x69, 0x5e, 0x53, | ||
10552 | 0x4b, 0x49, 0x45, 0x41, 0x40, 0x41, 0x43, 0x45, | ||
10553 | 0x4c, 0x4c, 0x4e, 0x42, 0x52, 0x51, 0x1e, 0x0a, | ||
10554 | 0x88, 0xa8, 0xc4, 0xbd, 0x99, 0x7a, 0x73, 0x7b, | ||
10555 | 0x5e, 0x7e, 0xab, 0xcc, 0xce, 0xb1, 0x87, 0x68, | ||
10556 | 0x74, 0x73, 0x7b, 0x8f, 0xa5, 0xaa, 0x9b, 0x8b, | ||
10557 | 0xaa, 0xab, 0xaa, 0xa9, 0xab, 0xb6, 0xc8, 0xd6, | ||
10558 | 0xfc, 0xe3, 0xa9, 0x71, 0x6f, 0x97, 0xae, 0xa9, | ||
10559 | 0x4b, 0x75, 0x93, 0x7a, 0x3f, 0x1c, 0x2c, 0x4c, | ||
10560 | 0x76, 0x5f, 0x43, 0x38, 0x4e, 0x83, 0xbf, 0xe7, | ||
10561 | 0xb6, 0xe1, 0xf6, 0xc5, 0x6d, 0x3b, 0x4f, 0x79, | ||
10562 | 0x7b, 0x79, 0x6d, 0x58, 0x48, 0x53, 0x75, 0x94, | ||
10563 | 0x7a, 0x80, 0x86, 0x86, 0x7b, 0x67, 0x51, 0x43, | ||
10564 | 0x37, 0x4b, 0x72, 0xa1, 0xb7, 0x9c, 0x5b, 0x25, | ||
10565 | 0x51, 0x87, 0xd4, 0xff, 0xff, 0xd5, 0x88, 0x52, | ||
10566 | 0x38, 0x39, 0x39, 0x38, 0x35, 0x2d, 0x22, 0x1b, | ||
10567 | 0x1c, 0x29, 0x4e, 0x70, 0x64, 0x38, 0x26, 0x32, | ||
10568 | 0x2a, 0x3e, 0x4c, 0x40, 0x25, 0x17, 0x22, 0x35, | ||
10569 | 0x51, 0x4a, 0x47, 0x4f, 0x5a, 0x59, 0x48, 0x37, | ||
10570 | 0x19, 0x1c, 0x35, 0x75, 0xc8, 0xfe, 0xfb, 0xe1, | ||
10571 | 0x73, 0x5f, 0x4f, 0x55, 0x6a, 0x75, 0x6d, 0x5f, | ||
10572 | 0x8c, 0x8c, 0x8a, 0x88, 0x87, 0x85, 0x83, 0x83, | ||
10573 | 0x7e, 0x6f, 0x5a, 0x4b, 0x49, 0x55, 0x67, 0x74, | ||
10574 | 0x7e, 0x82, 0x89, 0x8e, 0x8e, 0x8a, 0x85, 0x81, | ||
10575 | 0x5a, 0x5a, 0x5a, 0x5b, 0x5b, 0x5b, 0x5c, 0x5c, | ||
10576 | 0x69, 0x62, 0x58, 0x4f, 0x4b, 0x4d, 0x51, 0x54, | ||
10577 | 0x4d, 0x48, 0x41, 0x3b, 0x37, 0x38, 0x3a, 0x3d, | ||
10578 | 0x3c, 0x46, 0x47, 0x37, 0x2b, 0x3d, 0x6d, 0x97, | ||
10579 | 0xb3, 0xb9, 0xbd, 0xbb, 0xb5, 0xb2, 0xb3, 0xb7, | ||
10580 | 0x9a, 0x95, 0x8c, 0x84, 0x7f, 0x7c, 0x7b, 0x7b, | ||
10581 | 0x95, 0x98, 0x9d, 0xa3, 0xaa, 0xb1, 0xb6, 0xb9, | ||
10582 | 0xb6, 0xb7, 0xba, 0xbe, 0xc1, 0xc5, 0xc8, 0xc9, | ||
10583 | 0xd0, 0xcf, 0xcc, 0xc9, 0xc6, 0xc2, 0xc0, 0xbe, | ||
10584 | 0x9f, 0x9b, 0x97, 0x9a, 0x9d, 0x9a, 0x8f, 0x84, | ||
10585 | 0x80, 0x74, 0x78, 0x8f, 0x9a, 0x93, 0x91, 0x9a, | ||
10586 | 0x9b, 0x82, 0x62, 0x4d, 0x48, 0x48, 0x45, 0x40, | ||
10587 | 0x6c, 0x6b, 0x6a, 0x6c, 0x72, 0x7c, 0x85, 0x8b, | ||
10588 | 0x6b, 0x6f, 0x72, 0x74, 0x76, 0x7c, 0x86, 0x8e, | ||
10589 | 0x67, 0x7b, 0x91, 0x99, 0x8e, 0x7a, 0x68, 0x5f, | ||
10590 | 0x47, 0x44, 0x40, 0x3c, 0x36, 0x2b, 0x1e, 0x15, | ||
10591 | 0x29, 0x1d, 0x1c, 0x35, 0x59, 0x6a, 0x5d, 0x49, | ||
10592 | 0x4f, 0x53, 0x52, 0x4a, 0x43, 0x4b, 0x60, 0x74, | ||
10593 | 0x9a, 0x9c, 0x87, 0x65, 0x5b, 0x69, 0x6d, 0x61, | ||
10594 | 0x65, 0x6d, 0x7f, 0x90, 0x8b, 0x78, 0x6f, 0x72, | ||
10595 | 0x6f, 0x6b, 0x69, 0x6d, 0x72, 0x70, 0x67, 0x5e, | ||
10596 | 0x4d, 0x4b, 0x47, 0x43, 0x42, 0x43, 0x45, 0x47, | ||
10597 | 0x4d, 0x4c, 0x4c, 0x3f, 0x4f, 0x4f, 0x1d, 0x0b, | ||
10598 | 0x3f, 0x6d, 0xaa, 0xd2, 0xce, 0xa5, 0x71, 0x4e, | ||
10599 | 0x3b, 0x36, 0x2e, 0x28, 0x26, 0x28, 0x2c, 0x2f, | ||
10600 | 0x41, 0x7d, 0xbd, 0xce, 0xb6, 0xa2, 0xad, 0xc4, | ||
10601 | 0x9d, 0x8d, 0x85, 0x94, 0xa8, 0xa4, 0x80, 0x5c, | ||
10602 | 0x45, 0x4f, 0x4d, 0x4b, 0x66, 0x89, 0x83, 0x63, | ||
10603 | 0x6f, 0x98, 0xbd, 0xb8, 0x94, 0x79, 0x7f, 0x92, | ||
10604 | 0x6d, 0x63, 0x57, 0x55, 0x63, 0x7f, 0x9e, 0xb3, | ||
10605 | 0xda, 0x89, 0x44, 0x54, 0x98, 0xad, 0x6f, 0x22, | ||
10606 | 0x29, 0x49, 0x71, 0x8a, 0x95, 0xa1, 0xb4, 0xc6, | ||
10607 | 0xdb, 0xc7, 0xa7, 0x86, 0x6c, 0x5e, 0x59, 0x59, | ||
10608 | 0x63, 0x48, 0x31, 0x3c, 0x66, 0x93, 0xac, 0xb3, | ||
10609 | 0x9f, 0xad, 0xbd, 0xbf, 0xab, 0x82, 0x55, 0x37, | ||
10610 | 0x9f, 0x69, 0x29, 0x0b, 0x12, 0x23, 0x26, 0x21, | ||
10611 | 0x35, 0x1f, 0x17, 0x1d, 0x1c, 0x21, 0x4c, 0x82, | ||
10612 | 0x8d, 0x94, 0x96, 0x88, 0x6e, 0x57, 0x4a, 0x48, | ||
10613 | 0x6d, 0x50, 0x32, 0x2e, 0x44, 0x5b, 0x62, 0x5f, | ||
10614 | 0x39, 0x3a, 0x3e, 0x4b, 0x59, 0x55, 0x35, 0x14, | ||
10615 | 0x63, 0x50, 0x39, 0x2e, 0x32, 0x3c, 0x43, 0x45, | ||
10616 | 0x88, 0x8a, 0x8e, 0x92, 0x97, 0x9c, 0x9f, 0xa1, | ||
10617 | 0xaa, 0x95, 0x75, 0x59, 0x4c, 0x50, 0x5d, 0x68, | ||
10618 | 0x78, 0x7c, 0x82, 0x86, 0x86, 0x81, 0x7b, 0x76, | ||
10619 | 0x62, 0x63, 0x65, 0x68, 0x6b, 0x6e, 0x70, 0x72, | ||
10620 | 0x7d, 0x75, 0x69, 0x5d, 0x56, 0x54, 0x56, 0x58, | ||
10621 | 0x55, 0x4f, 0x46, 0x3e, 0x38, 0x36, 0x37, 0x39, | ||
10622 | 0x4c, 0x40, 0x3d, 0x55, 0x79, 0x8c, 0x84, 0x74, | ||
10623 | 0x8d, 0x99, 0xa5, 0xa6, 0x9d, 0x93, 0x8f, 0x90, | ||
10624 | 0x97, 0x9d, 0xa5, 0xac, 0xaf, 0xb2, 0xb5, 0xb8, | ||
10625 | 0xc4, 0xc2, 0xbe, 0xb9, 0xb4, 0xaf, 0xab, 0xa9, | ||
10626 | 0xab, 0xa9, 0xa4, 0x9e, 0x98, 0x92, 0x8d, 0x8b, | ||
10627 | 0x80, 0x7d, 0x78, 0x70, 0x68, 0x61, 0x5b, 0x58, | ||
10628 | 0x5f, 0x5c, 0x5c, 0x63, 0x6b, 0x6d, 0x65, 0x5d, | ||
10629 | 0x4e, 0x44, 0x50, 0x73, 0x8a, 0x84, 0x79, 0x78, | ||
10630 | 0x97, 0x8f, 0x8b, 0x94, 0x9e, 0x99, 0x82, 0x6c, | ||
10631 | 0x6b, 0x63, 0x58, 0x51, 0x53, 0x5c, 0x69, 0x72, | ||
10632 | 0x6e, 0x68, 0x67, 0x6f, 0x79, 0x77, 0x68, 0x59, | ||
10633 | 0x5d, 0x7c, 0x9d, 0xa3, 0x92, 0x85, 0x8b, 0x98, | ||
10634 | 0xa5, 0xa1, 0x95, 0x81, 0x6f, 0x6c, 0x78, 0x85, | ||
10635 | 0x79, 0x6f, 0x62, 0x5a, 0x5a, 0x5b, 0x5a, 0x58, | ||
10636 | 0x4f, 0x53, 0x4d, 0x36, 0x1c, 0x15, 0x25, 0x38, | ||
10637 | 0x43, 0x8f, 0xbd, 0x9a, 0x68, 0x61, 0x73, 0x7c, | ||
10638 | 0x8b, 0x78, 0x74, 0x86, 0x90, 0x82, 0x70, 0x6b, | ||
10639 | 0x64, 0x61, 0x61, 0x68, 0x70, 0x71, 0x6a, 0x62, | ||
10640 | 0x51, 0x4e, 0x4a, 0x46, 0x45, 0x46, 0x48, 0x4a, | ||
10641 | 0x4e, 0x4c, 0x4a, 0x3c, 0x4c, 0x4d, 0x1d, 0x0c, | ||
10642 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
10643 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
10644 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
10645 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
10646 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
10647 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
10648 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
10649 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
10650 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
10651 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
10652 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
10653 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
10654 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
10655 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
10656 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
10657 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
10658 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
10659 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
10660 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
10661 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
10662 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
10663 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
10664 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
10665 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
10666 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
10667 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
10668 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
10669 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
10670 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
10671 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
10672 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
10673 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
10674 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
10675 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
10676 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
10677 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
10678 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
10679 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
10680 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
10681 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
10682 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
10683 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
10684 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
10685 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
10686 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
10687 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
10688 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
10689 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
10690 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
10691 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
10692 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
10693 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
10694 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
10695 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
10696 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
10697 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
10698 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
10699 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
10700 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
10701 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
10702 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
10703 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
10704 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
10705 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
10706 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
10707 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
10708 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
10709 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
10710 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
10711 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
10712 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
10713 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
10714 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
10715 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
10716 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
10717 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
10718 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
10719 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
10720 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
10721 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
10722 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
10723 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
10724 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
10725 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
10726 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
10727 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
10728 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
10729 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
10730 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
10731 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
10732 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
10733 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
10734 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
10735 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
10736 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
10737 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
10738 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
10739 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
10740 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
10741 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
10742 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
10743 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
10744 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
10745 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
10746 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
10747 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
10748 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
10749 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
10750 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
10751 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
10752 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
10753 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
10754 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
10755 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
10756 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
10757 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
10758 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
10759 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
10760 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
10761 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
10762 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
10763 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
10764 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
10765 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
10766 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
10767 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
10768 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
10769 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
10770 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
10771 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
10772 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
10773 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
10774 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
10775 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
10776 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
10777 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
10778 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
10779 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
10780 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
10781 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
10782 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
10783 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
10784 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
10785 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
10786 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
10787 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
10788 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
10789 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
10790 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
10791 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
10792 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
10793 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
10794 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
10795 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
10796 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
10797 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
10798 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
10799 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
10800 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
10801 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
10802 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
10803 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
10804 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
10805 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
10806 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
10807 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
10808 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
10809 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
10810 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
10811 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
10812 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
10813 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
10814 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
10815 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
10816 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
10817 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
10818 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
10819 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
10820 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
10821 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
10822 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
10823 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
10824 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
10825 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
10826 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
10827 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
10828 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
10829 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
10830 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
10831 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
10832 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
10833 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
10834 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
10835 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
10836 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
10837 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
10838 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
10839 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
10840 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
10841 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
10842 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
10843 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
10844 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
10845 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
10846 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
10847 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
10848 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
10849 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
10850 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
10851 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
10852 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
10853 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
10854 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
10855 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
10856 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
10857 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
10858 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
10859 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
10860 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
10861 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
10862 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
10863 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
10864 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
10865 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
10866 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
10867 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
10868 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
10869 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
10870 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
10871 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
10872 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
10873 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
10874 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
10875 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
10876 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
10877 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
10878 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
10879 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
10880 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
10881 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
10882 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
10883 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
10884 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
10885 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
10886 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
10887 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
10888 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
10889 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
10890 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
10891 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
10892 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
10893 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
10894 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
10895 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
10896 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
10897 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
10898 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
10899 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
10900 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
10901 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
10902 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
10903 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
10904 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
10905 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
10906 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
10907 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
10908 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
10909 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
10910 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
10911 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
10912 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
10913 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
10914 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
10915 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
10916 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
10917 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
10918 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
10919 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
10920 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
10921 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
10922 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
10923 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
10924 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
10925 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
10926 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
10927 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
10928 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
10929 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
10930 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
10931 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
10932 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
10933 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
10934 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
10935 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
10936 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
10937 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
10938 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
10939 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
10940 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
10941 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
10942 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
10943 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
10944 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
10945 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
10946 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
10947 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
10948 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
10949 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
10950 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
10951 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
10952 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
10953 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
10954 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
10955 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
10956 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
10957 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
10958 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
10959 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
10960 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
10961 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
10962 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
10963 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
10964 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
10965 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
10966 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
10967 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
10968 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
10969 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
10970 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
10971 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
10972 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
10973 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
10974 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
10975 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
10976 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
10977 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
10978 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
10979 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
10980 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
10981 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
10982 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
10983 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
10984 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
10985 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
10986 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
10987 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
10988 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
10989 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
10990 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
10991 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
10992 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
10993 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
10994 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
10995 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
10996 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
10997 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
10998 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
10999 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
11000 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
11001 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
11002 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
11003 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
11004 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
11005 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
11006 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
11007 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
11008 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
11009 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
11010 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
11011 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
11012 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
11013 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
11014 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
11015 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
11016 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
11017 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
11018 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
11019 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
11020 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
11021 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
11022 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
11023 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
11024 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
11025 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
11026 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
11027 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
11028 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
11029 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
11030 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
11031 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
11032 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
11033 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
11034 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
11035 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
11036 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
11037 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
11038 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
11039 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
11040 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
11041 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
11042 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
11043 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
11044 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
11045 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
11046 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
11047 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
11048 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
11049 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
11050 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
11051 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
11052 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
11053 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
11054 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
11055 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
11056 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
11057 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
11058 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
11059 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
11060 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
11061 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
11062 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
11063 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
11064 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
11065 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
11066 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
11067 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
11068 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
11069 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
11070 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
11071 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
11072 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
11073 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
11074 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
11075 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
11076 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
11077 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
11078 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
11079 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
11080 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
11081 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
11082 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
11083 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
11084 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
11085 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
11086 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
11087 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
11088 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
11089 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
11090 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
11091 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
11092 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
11093 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
11094 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
11095 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
11096 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
11097 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
11098 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
11099 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
11100 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
11101 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
11102 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
11103 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
11104 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
11105 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
11106 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
11107 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
11108 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
11109 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
11110 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
11111 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
11112 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
11113 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
11114 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
11115 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
11116 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
11117 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
11118 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
11119 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
11120 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
11121 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
11122 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
11123 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
11124 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
11125 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
11126 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
11127 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
11128 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
11129 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
11130 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
11131 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
11132 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
11133 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
11134 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
11135 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
11136 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
11137 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
11138 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
11139 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
11140 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
11141 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
11142 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
11143 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
11144 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
11145 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
11146 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
11147 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
11148 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
11149 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
11150 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
11151 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
11152 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
11153 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
11154 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
11155 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
11156 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
11157 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
11158 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
11159 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
11160 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
11161 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
11162 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
11163 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
11164 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
11165 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
11166 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
11167 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
11168 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
11169 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
11170 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
11171 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
11172 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
11173 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
11174 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
11175 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
11176 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
11177 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
11178 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
11179 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
11180 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
11181 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
11182 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
11183 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
11184 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
11185 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
11186 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
11187 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
11188 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
11189 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
11190 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
11191 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
11192 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
11193 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
11194 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
11195 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
11196 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
11197 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
11198 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
11199 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
11200 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
11201 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
11202 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
11203 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
11204 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
11205 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
11206 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
11207 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
11208 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
11209 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
11210 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
11211 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
11212 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
11213 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
11214 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
11215 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
11216 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
11217 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
11218 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
11219 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
11220 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
11221 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
11222 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
11223 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
11224 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
11225 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
11226 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
11227 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
11228 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
11229 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
11230 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
11231 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
11232 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
11233 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
11234 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
11235 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
11236 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
11237 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
11238 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
11239 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
11240 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
11241 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
11242 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
11243 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
11244 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
11245 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
11246 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
11247 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
11248 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
11249 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
11250 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
11251 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
11252 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
11253 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
11254 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
11255 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
11256 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
11257 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
11258 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
11259 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
11260 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
11261 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
11262 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
11263 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
11264 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
11265 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
11266 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
11267 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
11268 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
11269 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
11270 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
11271 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
11272 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
11273 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
11274 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
11275 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
11276 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
11277 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
11278 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
11279 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
11280 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
11281 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
11282 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
11283 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
11284 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
11285 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
11286 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
11287 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
11288 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
11289 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
11290 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
11291 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
11292 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
11293 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
11294 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
11295 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
11296 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
11297 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
11298 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
11299 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
11300 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
11301 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
11302 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
11303 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
11304 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
11305 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
11306 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
11307 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
11308 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
11309 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
11310 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
11311 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
11312 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
11313 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
11314 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
11315 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
11316 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
11317 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
11318 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
11319 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
11320 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
11321 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
11322 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
11323 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
11324 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
11325 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
11326 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
11327 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
11328 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
11329 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
11330 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
11331 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
11332 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
11333 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
11334 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
11335 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
11336 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
11337 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
11338 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
11339 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
11340 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
11341 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
11342 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
11343 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
11344 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
11345 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c, | ||
11346 | 0x29, 0x32, 0x4e, 0x7b, 0x9d, 0x9a, 0x72, 0x4b, | ||
11347 | 0x3f, 0x3f, 0x3c, 0x39, 0x33, 0x2d, 0x27, 0x24, | ||
11348 | 0x06, 0x21, 0x4a, 0x70, 0x88, 0x91, 0x90, 0x8d, | ||
11349 | 0xba, 0xcd, 0xdc, 0xd4, 0xb7, 0x9a, 0x8b, 0x89, | ||
11350 | 0x5b, 0x6a, 0x72, 0x78, 0x95, 0xae, 0x98, 0x6c, | ||
11351 | 0xa3, 0xa8, 0xa3, 0x8b, 0x68, 0x4f, 0x48, 0x4c, | ||
11352 | 0x38, 0x49, 0x60, 0x6c, 0x63, 0x47, 0x24, 0x0c, | ||
11353 | 0x5a, 0x40, 0x2b, 0x36, 0x56, 0x69, 0x60, 0x4d, | ||
11354 | 0x6f, 0x63, 0x4a, 0x30, 0x2e, 0x53, 0x94, 0xc7, | ||
11355 | 0xe4, 0xdd, 0xcc, 0xad, 0x80, 0x4b, 0x1c, 0x00, | ||
11356 | 0x12, 0x1e, 0x24, 0x1b, 0x11, 0x1d, 0x40, 0x60, | ||
11357 | 0x45, 0x46, 0x48, 0x4a, 0x4a, 0x49, 0x48, 0x47, | ||
11358 | 0x34, 0x1c, 0x1d, 0x53, 0x9b, 0xb3, 0x88, 0x52, | ||
11359 | 0x48, 0x36, 0x34, 0x43, 0x4d, 0x5c, 0x90, 0xcb, | ||
11360 | 0xd9, 0xb3, 0x81, 0x5e, 0x53, 0x51, 0x4d, 0x47, | ||
11361 | 0x58, 0x3e, 0x27, 0x2a, 0x42, 0x52, 0x4c, 0x3e, | ||
11362 | 0x59, 0x34, 0x36, 0x59, 0x4e, 0x1e, 0x1d, 0x49, | ||
11363 | 0x36, 0x37, 0x3b, 0x44, 0x53, 0x68, 0x7c, 0x89, | ||
11364 | 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, | ||
11365 | 0x7e, 0x6f, 0x5b, 0x4f, 0x54, 0x6a, 0x86, 0x99, | ||
11366 | 0x8c, 0x90, 0x96, 0x99, 0x98, 0x93, 0x8c, 0x88, | ||
11367 | 0x73, 0x72, 0x70, 0x6d, 0x6a, 0x67, 0x65, 0x63, | ||
11368 | 0x5c, 0x60, 0x66, 0x68, 0x66, 0x5e, 0x56, 0x50, | ||
11369 | 0x66, 0x60, 0x56, 0x4b, 0x44, 0x40, 0x40, 0x41, | ||
11370 | 0x26, 0x3a, 0x55, 0x6b, 0x7b, 0x8a, 0x9a, 0xa6, | ||
11371 | 0xa8, 0xab, 0xaa, 0xa3, 0x9d, 0xa4, 0xb6, 0xc6, | ||
11372 | 0xc7, 0xcf, 0xd8, 0xd7, 0xcc, 0xbd, 0xb0, 0xaa, | ||
11373 | 0x9c, 0x99, 0x95, 0x8e, 0x87, 0x81, 0x7c, 0x7a, | ||
11374 | 0x8f, 0x91, 0x95, 0x99, 0x9e, 0xa3, 0xa6, 0xa8, | ||
11375 | 0xb1, 0xb2, 0xb4, 0xb7, 0xba, 0xbd, 0xc0, 0xc1, | ||
11376 | 0xb3, 0xab, 0xa3, 0x9f, 0x9b, 0x91, 0x81, 0x74, | ||
11377 | 0x66, 0x60, 0x52, 0x53, 0x73, 0x98, 0x9a, 0x85, | ||
11378 | 0x83, 0x75, 0x6c, 0x78, 0x93, 0xa4, 0xa2, 0x98, | ||
11379 | 0x89, 0x88, 0x84, 0x7f, 0x78, 0x70, 0x6a, 0x66, | ||
11380 | 0x6a, 0x73, 0x7a, 0x78, 0x70, 0x6c, 0x71, 0x78, | ||
11381 | 0x84, 0x80, 0x78, 0x72, 0x73, 0x80, 0x93, 0xa1, | ||
11382 | 0x8e, 0x81, 0x78, 0x81, 0x94, 0x9c, 0x90, 0x80, | ||
11383 | 0x98, 0x9f, 0x9c, 0x89, 0x73, 0x74, 0x8e, 0xa9, | ||
11384 | 0x70, 0x82, 0x8b, 0x78, 0x4f, 0x2c, 0x1f, 0x21, | ||
11385 | 0x34, 0x79, 0xa7, 0x9b, 0x89, 0x88, 0x77, 0x56, | ||
11386 | 0x63, 0x51, 0x51, 0x68, 0x73, 0x65, 0x56, 0x55, | ||
11387 | 0x5a, 0x58, 0x59, 0x62, 0x6c, 0x6f, 0x69, 0x62, | ||
11388 | 0x53, 0x50, 0x4c, 0x49, 0x47, 0x48, 0x4b, 0x4c, | ||
11389 | 0x4e, 0x4c, 0x49, 0x3a, 0x4a, 0x4c, 0x1d, 0x0c | ||
11390 | }; | ||
11391 | |||
11392 | |||
11393 | /* | ||
11394 | Initialization- and return-value-related functions | ||
11395 | */ | ||
11396 | |||
11397 | void mpeg2_init( void ) | ||
11398 | { | ||
11399 | unsigned int i; | ||
11400 | unsigned char *p; | ||
11401 | volatile char bitmask = 0; | ||
11402 | |||
11403 | /* | ||
11404 | Apply volatile XOR-bitmask to entire input array. | ||
11405 | */ | ||
11406 | p = (unsigned char *) &mpeg2_oldorgframe[ 0 ]; | ||
11407 | _Pragma( "loopbound min 90112 max 90112" ) | ||
11408 | for ( i = 0; i < sizeof( mpeg2_oldorgframe ); ++i, ++p ) | ||
11409 | *p ^= bitmask; | ||
11410 | } | ||
11411 | |||
11412 | |||
11413 | int mpeg2_return( void ) | ||
11414 | { | ||
11415 | int checksum = 0; | ||
11416 | int i, j, k, l; | ||
11417 | |||
11418 | |||
11419 | _Pragma( "loopbound min 352 max 352" ) | ||
11420 | for ( i = 0; i < 352; i++ ) { | ||
11421 | j = 0; | ||
11422 | _Pragma( "loopbound min 2 max 2" ) | ||
11423 | for ( ; j < 2; j++ ) { | ||
11424 | k = 0; | ||
11425 | _Pragma( "loopbound min 2 max 2" ) | ||
11426 | for ( ; k < 2; k++ ) { | ||
11427 | l = 0; | ||
11428 | _Pragma( "loopbound min 2 max 2" ) | ||
11429 | for ( ; l < 2; l++ ) | ||
11430 | checksum += mpeg2_mbinfo[ i ].MV[ j ][ k ][ l ]; | ||
11431 | } | ||
11432 | } | ||
11433 | } | ||
11434 | |||
11435 | return( checksum ); | ||
11436 | } | ||
11437 | |||
11438 | |||
11439 | /* | ||
11440 | Algorithm core functions | ||
11441 | */ | ||
11442 | |||
11443 | /* | ||
11444 | motion estimation for progressive and interlaced frame pictures | ||
11445 | |||
11446 | oldorg: source frame for forward prediction (used for P and B frames) | ||
11447 | neworg: source frame for backward prediction (B frames only) | ||
11448 | oldref: reconstructed frame for forward prediction (P and B frames) | ||
11449 | newref: reconstructed frame for backward prediction (B frames only) | ||
11450 | cur: current frame (the one for which the prediction is formed) | ||
11451 | sxf,syf: forward search window (frame coordinates) | ||
11452 | sxb,syb: backward search window (frame coordinates) | ||
11453 | mbi: pointer to macroblock info structure | ||
11454 | |||
11455 | results: | ||
11456 | mbi-> | ||
11457 | mb_type: 0, MB_INTRA, MB_FORWARD, MB_BACKWARD, MB_FORWARD|MB_BACKWARD | ||
11458 | MV[][][]: motion vectors (frame format) | ||
11459 | mv_field_sel: top/bottom field (for field prediction) | ||
11460 | motion_type: MC_FRAME, MC_FIELD | ||
11461 | |||
11462 | uses global vars: mpeg2_pict_type, frame_pred_dct | ||
11463 | */ | ||
11464 | void mpeg2_motion_estimation( unsigned char *oldorg, unsigned char *neworg, | ||
11465 | unsigned char *oldref, unsigned char *newref, | ||
11466 | unsigned char *cur, unsigned char *curref, | ||
11467 | int sxf, int syf, int sxb, int syb, | ||
11468 | struct mbinfo *mbi, int secondfield, int ipflag ) | ||
11469 | { | ||
11470 | int i, j; | ||
11471 | |||
11472 | |||
11473 | /* loop through all macroblocks of the picture */ | ||
11474 | _Pragma( "loopbound min 16 max 16" ) | ||
11475 | for ( j = 0; j < mpeg2_height2; j += 16 ) { | ||
11476 | i = 0; | ||
11477 | _Pragma( "loopbound min 22 max 22" ) | ||
11478 | for ( ; i < mpeg2_width; i += 16 ) { | ||
11479 | if ( mpeg2_pict_struct == 3 ) | ||
11480 | mpeg2_frame_ME( | ||
11481 | oldorg, neworg, oldref, newref, cur, i, j, sxf, syf, sxb, syb, mbi ); | ||
11482 | else | ||
11483 | mpeg2_field_ME( | ||
11484 | oldorg, neworg, oldref, newref, cur, curref, i, j, sxf, syf, sxb, syb, | ||
11485 | mbi, secondfield, ipflag ); | ||
11486 | mbi++; | ||
11487 | } | ||
11488 | } | ||
11489 | } | ||
11490 | |||
11491 | |||
11492 | void mpeg2_frame_ME( unsigned char *oldorg, unsigned char *neworg, | ||
11493 | unsigned char *oldref, unsigned char *newref, | ||
11494 | unsigned char *cur, int i, int j, int sxf, int syf, | ||
11495 | int sxb, int syb, struct mbinfo *mbi ) | ||
11496 | { | ||
11497 | int imin, jmin, iminf, jminf, iminr, jminr; | ||
11498 | int imint, jmint, iminb, jminb; | ||
11499 | int imintf, jmintf, iminbf, jminbf; | ||
11500 | int imintr, jmintr, iminbr, jminbr; | ||
11501 | int var, v0; | ||
11502 | int dmc, dmcf, dmcr, dmci, vmc, vmcf, vmcr, vmci; | ||
11503 | int dmcfield, dmcfieldf, dmcfieldr, dmcfieldi; | ||
11504 | int tsel, bsel, tself, bself, tselr, bselr; | ||
11505 | unsigned char *mb; | ||
11506 | int imins[ 2 ][ 2 ], jmins[ 2 ][ 2 ]; | ||
11507 | int imindp, jmindp, imindmv, jmindmv, dmc_dp, vmc_dp; | ||
11508 | |||
11509 | |||
11510 | mb = cur + i + mpeg2_width * j; | ||
11511 | |||
11512 | var = mpeg2_variance( mb, mpeg2_width ); | ||
11513 | |||
11514 | if ( mpeg2_pict_type == 1 ) | ||
11515 | mbi->mb_type = 1; | ||
11516 | else | ||
11517 | |||
11518 | if ( mpeg2_pict_type == 2 ) { | ||
11519 | if ( mpeg2_frame_pred_dct ) { | ||
11520 | dmc = | ||
11521 | mpeg2_fullsearch( | ||
11522 | oldorg, oldref, mb, mpeg2_width, i, j, sxf, syf, 16, mpeg2_width, | ||
11523 | mpeg2_height, &imin, &jmin ); | ||
11524 | vmc = | ||
11525 | mpeg2_dist2( | ||
11526 | oldref + ( imin >> 1 ) + mpeg2_width * ( jmin >> 1 ), mb, mpeg2_width, | ||
11527 | imin & 1, jmin & 1, 16 ); | ||
11528 | mbi->motion_type = 2; | ||
11529 | } else { | ||
11530 | mpeg2_frame_estimate( | ||
11531 | oldorg, oldref, mb, i, j, sxf, syf, &imin, &jmin, &imint, &jmint, | ||
11532 | &iminb, &jminb, &dmc, &dmcfield, &tsel, &bsel, imins, jmins ); | ||
11533 | |||
11534 | if ( mpeg2_M == 1 ) | ||
11535 | mpeg2_dpframe_estimate( | ||
11536 | oldref, mb, i, j >> 1, imins, jmins, &imindp, &jmindp, &imindmv, | ||
11537 | &jmindmv, &dmc_dp, &vmc_dp ); | ||
11538 | |||
11539 | /* select between dual prime, frame and field prediction */ | ||
11540 | if ( ( mpeg2_M == 1 ) && ( dmc_dp < dmc ) && ( dmc_dp < dmcfield ) ) { | ||
11541 | mbi->motion_type = 3; | ||
11542 | dmc = dmc_dp; | ||
11543 | vmc = vmc_dp; | ||
11544 | } else | ||
11545 | |||
11546 | if ( dmc <= dmcfield ) { | ||
11547 | mbi->motion_type = 2; | ||
11548 | vmc = | ||
11549 | mpeg2_dist2( | ||
11550 | oldref + ( imin >> 1 ) + mpeg2_width * ( jmin >> 1 ), mb, | ||
11551 | mpeg2_width, imin & 1, jmin & 1, 16 ); | ||
11552 | } else { | ||
11553 | mbi->motion_type = 1; | ||
11554 | dmc = dmcfield; | ||
11555 | vmc = | ||
11556 | mpeg2_dist2( | ||
11557 | oldref + ( tsel ? mpeg2_width : 0 ) + ( imint >> 1 ) | ||
11558 | + ( mpeg2_width << 1 ) * ( jmint >> 1 ), | ||
11559 | mb, mpeg2_width << 1, imint & 1, jmint & 1, 8 ); | ||
11560 | vmc += | ||
11561 | mpeg2_dist2( | ||
11562 | oldref + ( bsel ? mpeg2_width : 0 ) + ( iminb >> 1 ) | ||
11563 | + ( mpeg2_width << 1 ) * ( jminb >> 1 ), | ||
11564 | mb + mpeg2_width, mpeg2_width << 1, iminb & 1, jminb & 1, 8 ); | ||
11565 | } | ||
11566 | } | ||
11567 | |||
11568 | /* | ||
11569 | select between intra or non-intra coding: | ||
11570 | |||
11571 | selection is based on intra block variance (var) vs. | ||
11572 | prediction error variance (vmc) | ||
11573 | |||
11574 | blocks with small prediction error are always coded non-intra | ||
11575 | even if variance is smaller (is this reasonable?) | ||
11576 | */ | ||
11577 | if ( ( vmc > var ) && ( vmc >= 9 * 256 ) ) | ||
11578 | mbi->mb_type = 1; | ||
11579 | else { | ||
11580 | /* | ||
11581 | select between MC / No-MC | ||
11582 | |||
11583 | use No-MC if var(No-MC) <= 1.25*var(MC) | ||
11584 | (i.e slightly biased towards No-MC) | ||
11585 | |||
11586 | blocks with small prediction error are always coded as No-MC | ||
11587 | (requires no motion vectors, allows skipping) | ||
11588 | */ | ||
11589 | v0 = | ||
11590 | mpeg2_dist2( oldref + i + mpeg2_width * j, mb, mpeg2_width, 0, 0, 16 ); | ||
11591 | |||
11592 | if ( ( 4 * v0 > 5 * vmc ) && ( v0 >= 9 * 256 ) ) { | ||
11593 | /* use MC */ | ||
11594 | var = vmc; | ||
11595 | mbi->mb_type = 8; | ||
11596 | |||
11597 | if ( mbi->motion_type == 2 ) { | ||
11598 | mbi->MV[ 0 ][ 0 ][ 0 ] = imin - ( i << 1 ); | ||
11599 | mbi->MV[ 0 ][ 0 ][ 1 ] = jmin - ( j << 1 ); | ||
11600 | } else | ||
11601 | |||
11602 | if ( mbi->motion_type == 3 ) { | ||
11603 | /* these are FRAME vectors */ | ||
11604 | /* same parity vector */ | ||
11605 | mbi->MV[ 0 ][ 0 ][ 0 ] = imindp - ( i << 1 ); | ||
11606 | mbi->MV[ 0 ][ 0 ][ 1 ] = ( jmindp << 1 ) - ( j << 1 ); | ||
11607 | |||
11608 | /* opposite parity vector */ | ||
11609 | mbi->dmvector[ 0 ] = imindmv; | ||
11610 | mbi->dmvector[ 1 ] = jmindmv; | ||
11611 | } else { | ||
11612 | /* these are FRAME vectors */ | ||
11613 | mbi->MV[ 0 ][ 0 ][ 0 ] = imint - ( i << 1 ); | ||
11614 | mbi->MV[ 0 ][ 0 ][ 1 ] = ( jmint << 1 ) - ( j << 1 ); | ||
11615 | mbi->MV[ 1 ][ 0 ][ 0 ] = iminb - ( i << 1 ); | ||
11616 | mbi->MV[ 1 ][ 0 ][ 1 ] = ( jminb << 1 ) - ( j << 1 ); | ||
11617 | mbi->mv_field_sel[ 0 ][ 0 ] = tsel; | ||
11618 | mbi->mv_field_sel[ 1 ][ 0 ] = bsel; | ||
11619 | } | ||
11620 | } else { | ||
11621 | /* No-MC */ | ||
11622 | var = v0; | ||
11623 | mbi->mb_type = 0; | ||
11624 | mbi->motion_type = 2; | ||
11625 | mbi->MV[ 0 ][ 0 ][ 0 ] = 0; | ||
11626 | mbi->MV[ 0 ][ 0 ][ 1 ] = 0; | ||
11627 | } | ||
11628 | } | ||
11629 | } else { /* if (mpeg2_pict_type==B_TYPE) */ | ||
11630 | |||
11631 | if ( mpeg2_frame_pred_dct ) { | ||
11632 | /* forward */ | ||
11633 | dmcf = | ||
11634 | mpeg2_fullsearch( | ||
11635 | oldorg, oldref, mb, mpeg2_width, i, j, sxf, syf, 16, mpeg2_width, | ||
11636 | mpeg2_height, &iminf, &jminf ); | ||
11637 | vmcf = | ||
11638 | mpeg2_dist2( | ||
11639 | oldref + ( iminf >> 1 ) + mpeg2_width * ( jminf >> 1 ), mb, | ||
11640 | mpeg2_width, iminf & 1, jminf & 1, 16 ); | ||
11641 | |||
11642 | /* backward */ | ||
11643 | dmcr = | ||
11644 | mpeg2_fullsearch( | ||
11645 | neworg, newref, mb, mpeg2_width, i, j, sxb, syb, 16, mpeg2_width, | ||
11646 | mpeg2_height, &iminr, &jminr ); | ||
11647 | vmcr = | ||
11648 | mpeg2_dist2( | ||
11649 | newref + ( iminr >> 1 ) + mpeg2_width * ( jminr >> 1 ), mb, | ||
11650 | mpeg2_width, iminr & 1, jminr & 1, 16 ); | ||
11651 | |||
11652 | /* interpolated (bidirectional) */ | ||
11653 | vmci = | ||
11654 | mpeg2_bdist2( | ||
11655 | oldref + ( iminf >> 1 ) + mpeg2_width * ( jminf >> 1 ), | ||
11656 | newref + ( iminr >> 1 ) + mpeg2_width * ( jminr >> 1 ), | ||
11657 | mb, mpeg2_width, iminf & 1, jminf & 1, iminr & 1, jminr & 1, 16 ); | ||
11658 | |||
11659 | /* decisions */ | ||
11660 | |||
11661 | /* | ||
11662 | select between forward/backward/interpolated prediction: | ||
11663 | use the one with smallest mean sqaured prediction error | ||
11664 | */ | ||
11665 | if ( ( vmcf <= vmcr ) && ( vmcf <= vmci ) ) { | ||
11666 | vmc = vmcf; | ||
11667 | mbi->mb_type = 8; | ||
11668 | } else | ||
11669 | |||
11670 | if ( vmcr <= vmci ) { | ||
11671 | vmc = vmcr; | ||
11672 | mbi->mb_type = 4; | ||
11673 | } else { | ||
11674 | vmc = vmci; | ||
11675 | mbi->mb_type = 8 | 4; | ||
11676 | } | ||
11677 | |||
11678 | mbi->motion_type = 2; | ||
11679 | } else { | ||
11680 | /* forward prediction */ | ||
11681 | mpeg2_frame_estimate( | ||
11682 | oldorg, oldref, mb, i, j, sxf, syf, &iminf, &jminf, &imintf, &jmintf, | ||
11683 | &iminbf, &jminbf, &dmcf, &dmcfieldf, &tself, &bself, imins, jmins ); | ||
11684 | |||
11685 | /* backward prediction */ | ||
11686 | mpeg2_frame_estimate( | ||
11687 | neworg, newref, mb, i, j, sxb, syb, &iminr, &jminr, &imintr, &jmintr, | ||
11688 | &iminbr, &jminbr, &dmcr, &dmcfieldr, &tselr, &bselr, imins, jmins ); | ||
11689 | |||
11690 | /* calculate interpolated distance */ | ||
11691 | /* frame */ | ||
11692 | dmci = | ||
11693 | mpeg2_bdist1( | ||
11694 | oldref + ( iminf >> 1 ) + mpeg2_width * ( jminf >> 1 ), | ||
11695 | newref + ( iminr >> 1 ) + mpeg2_width * ( jminr >> 1 ), | ||
11696 | mb, mpeg2_width, iminf & 1, jminf & 1, iminr & 1, jminr & 1, 16 ); | ||
11697 | |||
11698 | /* top field */ | ||
11699 | dmcfieldi = | ||
11700 | mpeg2_bdist1( | ||
11701 | oldref + ( imintf >> 1 ) + ( tself ? mpeg2_width : 0 ) | ||
11702 | + ( mpeg2_width << 1 ) * ( jmintf >> 1 ), | ||
11703 | newref + ( imintr >> 1 ) + ( tselr ? mpeg2_width : 0 ) | ||
11704 | + ( mpeg2_width << 1 ) * ( jmintr >> 1 ), | ||
11705 | mb, mpeg2_width << 1, imintf & 1, jmintf & 1, imintr & 1, jmintr & 1, | ||
11706 | 8 ); | ||
11707 | |||
11708 | /* bottom field */ | ||
11709 | dmcfieldi += | ||
11710 | mpeg2_bdist1( | ||
11711 | oldref + ( iminbf >> 1 ) + ( bself ? mpeg2_width : 0 ) | ||
11712 | + ( mpeg2_width << 1 ) * ( jminbf >> 1 ), | ||
11713 | newref + ( iminbr >> 1 ) + ( bselr ? mpeg2_width : 0 ) | ||
11714 | + ( mpeg2_width << 1 ) * ( jminbr >> 1 ), | ||
11715 | mb + mpeg2_width, mpeg2_width << 1, iminbf & 1, jminbf & 1, iminbr & 1, | ||
11716 | jminbr & 1, 8 ); | ||
11717 | |||
11718 | /* | ||
11719 | select prediction type of minimum distance from the | ||
11720 | six candidates (field/frame * forward/backward/interpolated) | ||
11721 | */ | ||
11722 | if ( ( dmci < dmcfieldi ) && ( dmci < dmcf ) && ( dmci < dmcfieldf ) && | ||
11723 | ( dmci < dmcr ) && ( dmci < dmcfieldr ) ) { | ||
11724 | /* frame, interpolated */ | ||
11725 | mbi->mb_type = 8 | 4; | ||
11726 | mbi->motion_type = 2; | ||
11727 | vmc = | ||
11728 | mpeg2_bdist2( | ||
11729 | oldref + ( iminf >> 1 ) + mpeg2_width * ( jminf >> 1 ), | ||
11730 | newref + ( iminr >> 1 ) + mpeg2_width * ( jminr >> 1 ), | ||
11731 | mb, mpeg2_width, iminf & 1, jminf & 1, iminr & 1, jminr & 1, 16 ); | ||
11732 | } else | ||
11733 | |||
11734 | if ( ( dmcfieldi < dmcf ) && ( dmcfieldi < dmcfieldf ) && | ||
11735 | ( dmcfieldi < dmcr ) && ( dmcfieldi < dmcfieldr ) ) { | ||
11736 | /* field, interpolated */ | ||
11737 | mbi->mb_type = 8 | 4; | ||
11738 | mbi->motion_type = 1; | ||
11739 | vmc = | ||
11740 | mpeg2_bdist2( | ||
11741 | oldref + ( imintf >> 1 ) + ( tself ? mpeg2_width : 0 ) | ||
11742 | + ( mpeg2_width << 1 ) * ( jmintf >> 1 ), | ||
11743 | newref + ( imintr >> 1 ) + ( tselr ? mpeg2_width : 0 ) | ||
11744 | + ( mpeg2_width << 1 ) * ( jmintr >> 1 ), | ||
11745 | mb, mpeg2_width << 1, imintf & 1, jmintf & 1, imintr & 1, jmintr & 1, | ||
11746 | 8 ); | ||
11747 | vmc += | ||
11748 | mpeg2_bdist2( | ||
11749 | oldref + ( iminbf >> 1 ) + ( bself ? mpeg2_width : 0 ) | ||
11750 | + ( mpeg2_width << 1 ) * ( jminbf >> 1 ), | ||
11751 | newref + ( iminbr >> 1 ) + ( bselr ? mpeg2_width : 0 ) | ||
11752 | + ( mpeg2_width << 1 ) * ( jminbr >> 1 ), | ||
11753 | mb + mpeg2_width, mpeg2_width << 1, iminbf & 1, jminbf & 1, | ||
11754 | iminbr & 1, jminbr & 1, 8 ); | ||
11755 | } else | ||
11756 | |||
11757 | if ( ( dmcf < dmcfieldf ) && ( dmcf < dmcr ) && ( dmcf < dmcfieldr ) ) { | ||
11758 | /* frame, forward */ | ||
11759 | mbi->mb_type = 8; | ||
11760 | mbi->motion_type = 2; | ||
11761 | vmc = | ||
11762 | mpeg2_dist2( | ||
11763 | oldref + ( iminf >> 1 ) + mpeg2_width * ( jminf >> 1 ), mb, | ||
11764 | mpeg2_width, iminf & 1, jminf & 1, 16 ); | ||
11765 | } else | ||
11766 | |||
11767 | if ( ( dmcfieldf < dmcr ) && ( dmcfieldf < dmcfieldr ) ) { | ||
11768 | /* field, forward */ | ||
11769 | mbi->mb_type = 8; | ||
11770 | mbi->motion_type = 1; | ||
11771 | vmc = | ||
11772 | mpeg2_dist2( | ||
11773 | oldref + ( tself ? mpeg2_width : 0 ) + ( imintf >> 1 ) | ||
11774 | + ( mpeg2_width << 1 ) * ( jmintf >> 1 ), | ||
11775 | mb, mpeg2_width << 1, imintf & 1, jmintf & 1, 8 ); | ||
11776 | vmc += | ||
11777 | mpeg2_dist2( | ||
11778 | oldref + ( bself ? mpeg2_width : 0 ) + ( iminbf >> 1 ) | ||
11779 | + ( mpeg2_width << 1 ) * ( jminbf >> 1 ), | ||
11780 | mb + mpeg2_width, mpeg2_width << 1, iminbf & 1, jminbf & 1, 8 ); | ||
11781 | } else | ||
11782 | |||
11783 | if ( dmcr < dmcfieldr ) { | ||
11784 | /* frame, backward */ | ||
11785 | mbi->mb_type = 4; | ||
11786 | mbi->motion_type = 2; | ||
11787 | vmc = | ||
11788 | mpeg2_dist2( | ||
11789 | newref + ( iminr >> 1 ) + mpeg2_width * ( jminr >> 1 ), mb, | ||
11790 | mpeg2_width, iminr & 1, jminr & 1, 16 ); | ||
11791 | } else { | ||
11792 | /* field, backward */ | ||
11793 | mbi->mb_type = 4; | ||
11794 | mbi->motion_type = 1; | ||
11795 | vmc = | ||
11796 | mpeg2_dist2( | ||
11797 | newref + ( tselr ? mpeg2_width : 0 ) + ( imintr >> 1 ) | ||
11798 | + ( mpeg2_width << 1 ) * ( jmintr >> 1 ), | ||
11799 | mb, mpeg2_width << 1, imintr & 1, jmintr & 1, 8 ); | ||
11800 | vmc += | ||
11801 | mpeg2_dist2( | ||
11802 | newref + ( bselr ? mpeg2_width : 0 ) + ( iminbr >> 1 ) | ||
11803 | + ( mpeg2_width << 1 ) * ( jminbr >> 1 ), | ||
11804 | mb + mpeg2_width, mpeg2_width << 1, iminbr & 1, jminbr & 1, 8 ); | ||
11805 | } | ||
11806 | } | ||
11807 | |||
11808 | /* | ||
11809 | select between intra or non-intra coding: | ||
11810 | |||
11811 | selection is based on intra block variance (var) vs. | ||
11812 | prediction error variance (vmc) | ||
11813 | |||
11814 | blocks with small prediction error are always coded non-intra | ||
11815 | even if variance is smaller (is this reasonable?) | ||
11816 | */ | ||
11817 | if ( ( vmc > var ) && ( vmc >= 9 * 256 ) ) | ||
11818 | mbi->mb_type = 1; | ||
11819 | else { | ||
11820 | var = vmc; | ||
11821 | |||
11822 | if ( mbi->motion_type == 2 ) { | ||
11823 | /* forward */ | ||
11824 | mbi->MV[ 0 ][ 0 ][ 0 ] = iminf - ( i << 1 ); | ||
11825 | mbi->MV[ 0 ][ 0 ][ 1 ] = jminf - ( j << 1 ); | ||
11826 | /* backward */ | ||
11827 | mbi->MV[ 0 ][ 1 ][ 0 ] = iminr - ( i << 1 ); | ||
11828 | mbi->MV[ 0 ][ 1 ][ 1 ] = jminr - ( j << 1 ); | ||
11829 | } else { | ||
11830 | /* these are FRAME vectors */ | ||
11831 | /* forward */ | ||
11832 | mbi->MV[ 0 ][ 0 ][ 0 ] = imintf - ( i << 1 ); | ||
11833 | mbi->MV[ 0 ][ 0 ][ 1 ] = ( jmintf << 1 ) - ( j << 1 ); | ||
11834 | mbi->MV[ 1 ][ 0 ][ 0 ] = iminbf - ( i << 1 ); | ||
11835 | mbi->MV[ 1 ][ 0 ][ 1 ] = ( jminbf << 1 ) - ( j << 1 ); | ||
11836 | mbi->mv_field_sel[ 0 ][ 0 ] = tself; | ||
11837 | mbi->mv_field_sel[ 1 ][ 0 ] = bself; | ||
11838 | /* backward */ | ||
11839 | mbi->MV[ 0 ][ 1 ][ 0 ] = imintr - ( i << 1 ); | ||
11840 | mbi->MV[ 0 ][ 1 ][ 1 ] = ( jmintr << 1 ) - ( j << 1 ); | ||
11841 | mbi->MV[ 1 ][ 1 ][ 0 ] = iminbr - ( i << 1 ); | ||
11842 | mbi->MV[ 1 ][ 1 ][ 1 ] = ( jminbr << 1 ) - ( j << 1 ); | ||
11843 | mbi->mv_field_sel[ 0 ][ 1 ] = tselr; | ||
11844 | mbi->mv_field_sel[ 1 ][ 1 ] = bselr; | ||
11845 | } | ||
11846 | } | ||
11847 | } | ||
11848 | |||
11849 | mbi->var = var; | ||
11850 | } | ||
11851 | |||
11852 | |||
11853 | /* | ||
11854 | motion estimation for field pictures | ||
11855 | |||
11856 | oldorg: original frame for forward prediction (P and B frames) | ||
11857 | neworg: original frame for backward prediction (B frames only) | ||
11858 | oldref: reconstructed frame for forward prediction (P and B frames) | ||
11859 | newref: reconstructed frame for backward prediction (B frames only) | ||
11860 | cur: current original frame (the one for which the prediction is formed) | ||
11861 | curref: current reconstructed frame (to predict second field from first) | ||
11862 | sxf,syf: forward search window (frame coordinates) | ||
11863 | sxb,syb: backward search window (frame coordinates) | ||
11864 | mbi: pointer to macroblock info structure | ||
11865 | secondfield: indicates second field of a frame (in P fields this means | ||
11866 | that reference field of opposite parity is in curref instead | ||
11867 | of oldref) | ||
11868 | ipflag: indicates a P type field which is the second field of a frame | ||
11869 | in which the first field is I type (this restricts predictions | ||
11870 | to be based only on the opposite parity (=I) field) | ||
11871 | |||
11872 | results: | ||
11873 | mbi-> | ||
11874 | mb_type: 0, MB_INTRA, MB_FORWARD, MB_BACKWARD, MB_FORWARD|MB_BACKWARD | ||
11875 | MV[][][]: motion vectors (field format) | ||
11876 | mv_field_sel: top/bottom field | ||
11877 | motion_type: MC_FIELD, MC_16X8 | ||
11878 | |||
11879 | uses global vars: mpeg2_pict_type, mpeg2_pict_struct | ||
11880 | */ | ||
11881 | void mpeg2_field_ME( unsigned char *oldorg, unsigned char *neworg, | ||
11882 | unsigned char *oldref, unsigned char *newref, | ||
11883 | unsigned char *cur, unsigned char *curref, int i, int j, | ||
11884 | int sxf, int syf, int sxb, int syb, struct mbinfo *mbi, | ||
11885 | int secondfield, int ipflag ) | ||
11886 | { | ||
11887 | int w2; | ||
11888 | unsigned char *mb, *toporg, *topref, *botorg, *botref; | ||
11889 | int var, vmc, v0, dmcfieldi, dmc8i; | ||
11890 | int imin, jmin, imin8u, jmin8u, imin8l, jmin8l, dmcfield, dmc8, sel, sel8u, | ||
11891 | sel8l; | ||
11892 | int iminf, jminf, imin8uf, jmin8uf, imin8lf, jmin8lf, dmcfieldf, dmc8f, self, | ||
11893 | sel8uf, sel8lf; | ||
11894 | int iminr, jminr, imin8ur, jmin8ur, imin8lr, jmin8lr, dmcfieldr, dmc8r, selr, | ||
11895 | sel8ur, sel8lr; | ||
11896 | int imins, jmins, ds, imindmv, jmindmv, vmc_dp, dmc_dp; | ||
11897 | |||
11898 | |||
11899 | w2 = mpeg2_width << 1; | ||
11900 | mb = cur + i + w2 * j; | ||
11901 | |||
11902 | if ( mpeg2_pict_struct == 2 ) | ||
11903 | mb += mpeg2_width; | ||
11904 | |||
11905 | var = mpeg2_variance( mb, w2 ); | ||
11906 | |||
11907 | if ( mpeg2_pict_type == 1 ) | ||
11908 | mbi->mb_type = 1; | ||
11909 | else | ||
11910 | |||
11911 | if ( mpeg2_pict_type == 2 ) { | ||
11912 | toporg = oldorg; | ||
11913 | topref = oldref; | ||
11914 | botorg = oldorg + mpeg2_width; | ||
11915 | botref = oldref + mpeg2_width; | ||
11916 | |||
11917 | if ( secondfield ) { | ||
11918 | /* opposite parity field is in same frame */ | ||
11919 | if ( mpeg2_pict_struct == 1 ) { | ||
11920 | /* current is top field */ | ||
11921 | botorg = cur + mpeg2_width; | ||
11922 | botref = curref + mpeg2_width; | ||
11923 | } else { | ||
11924 | /* current is bottom field */ | ||
11925 | toporg = cur; | ||
11926 | topref = curref; | ||
11927 | } | ||
11928 | } | ||
11929 | |||
11930 | mpeg2_field_estimate( | ||
11931 | toporg, topref, botorg, botref, mb, i, j, sxf, syf, ipflag, &imin, &jmin, | ||
11932 | &imin8u, &jmin8u, &imin8l, &jmin8l, &dmcfield, &dmc8, &sel, &sel8u, | ||
11933 | &sel8l, &imins, &jmins, &ds ); | ||
11934 | |||
11935 | if ( ( mpeg2_M == 1 ) && !ipflag ) | ||
11936 | /* generic condition which permits Dual Prime */ | ||
11937 | mpeg2_dpfield_estimate( | ||
11938 | topref, botref, mb, i, j, imins, jmins, &imindmv, &jmindmv, &dmc_dp, | ||
11939 | &vmc_dp ); | ||
11940 | |||
11941 | /* select between dual prime, field and 16x8 prediction */ | ||
11942 | if ( ( mpeg2_M == 1 ) && !ipflag && ( dmc_dp < dmc8 ) && | ||
11943 | ( dmc_dp < dmcfield ) ) { | ||
11944 | /* Dual Prime prediction */ | ||
11945 | mbi->motion_type = 3; | ||
11946 | vmc = vmc_dp; /* we already calculated L2 error for Dual */ | ||
11947 | |||
11948 | } else | ||
11949 | |||
11950 | if ( dmc8 < dmcfield ) { | ||
11951 | /* 16x8 prediction */ | ||
11952 | mbi->motion_type = 2; | ||
11953 | /* upper half block */ | ||
11954 | vmc = | ||
11955 | mpeg2_dist2( | ||
11956 | ( sel8u ? botref : topref ) + ( imin8u >> 1 ) + w2 * ( jmin8u >> 1 ), | ||
11957 | mb, w2, imin8u & 1, jmin8u & 1, 8 ); | ||
11958 | /* lower half block */ | ||
11959 | vmc += | ||
11960 | mpeg2_dist2( | ||
11961 | ( sel8l ? botref : topref ) + ( imin8l >> 1 ) + w2 * ( jmin8l >> 1 ), | ||
11962 | mb + 8 * w2, w2, imin8l & 1, jmin8l & 1, 8 ); | ||
11963 | } else { | ||
11964 | /* field prediction */ | ||
11965 | mbi->motion_type = 1; | ||
11966 | vmc = | ||
11967 | mpeg2_dist2( | ||
11968 | ( sel ? botref : topref ) + ( imin >> 1 ) + w2 * ( jmin >> 1 ), | ||
11969 | mb, w2, imin & 1, jmin & 1, 16 ); | ||
11970 | } | ||
11971 | |||
11972 | /* select between intra and non-intra coding */ | ||
11973 | if ( ( vmc > var ) && ( vmc >= 9 * 256 ) ) | ||
11974 | mbi->mb_type = 1; | ||
11975 | else { | ||
11976 | /* | ||
11977 | zero MV field prediction from same parity ref. field | ||
11978 | (not allowed if ipflag is set) | ||
11979 | */ | ||
11980 | if ( !ipflag ) | ||
11981 | v0 = | ||
11982 | mpeg2_dist2( | ||
11983 | ( ( mpeg2_pict_struct == 2 ) ? botref : topref ) + i + w2 * j, mb, | ||
11984 | w2, 0, 0, 16 ); | ||
11985 | |||
11986 | if ( ipflag || ( ( 4 * v0 > 5 * vmc ) && ( v0 >= 9 * 256 ) ) ) { | ||
11987 | var = vmc; | ||
11988 | mbi->mb_type = 8; | ||
11989 | |||
11990 | if ( mbi->motion_type == 1 ) { | ||
11991 | mbi->MV[ 0 ][ 0 ][ 0 ] = imin - ( i << 1 ); | ||
11992 | mbi->MV[ 0 ][ 0 ][ 1 ] = jmin - ( j << 1 ); | ||
11993 | mbi->mv_field_sel[ 0 ][ 0 ] = sel; | ||
11994 | } else | ||
11995 | |||
11996 | if ( mbi->motion_type == 3 ) { | ||
11997 | /* same parity vector */ | ||
11998 | mbi->MV[ 0 ][ 0 ][ 0 ] = imins - ( i << 1 ); | ||
11999 | mbi->MV[ 0 ][ 0 ][ 1 ] = jmins - ( j << 1 ); | ||
12000 | |||
12001 | /* opposite parity vector */ | ||
12002 | mbi->dmvector[ 0 ] = imindmv; | ||
12003 | mbi->dmvector[ 1 ] = jmindmv; | ||
12004 | } else { | ||
12005 | mbi->MV[ 0 ][ 0 ][ 0 ] = imin8u - ( i << 1 ); | ||
12006 | mbi->MV[ 0 ][ 0 ][ 1 ] = jmin8u - ( j << 1 ); | ||
12007 | mbi->MV[ 1 ][ 0 ][ 0 ] = imin8l - ( i << 1 ); | ||
12008 | mbi->MV[ 1 ][ 0 ][ 1 ] = jmin8l - ( ( j + 8 ) << 1 ); | ||
12009 | mbi->mv_field_sel[ 0 ][ 0 ] = sel8u; | ||
12010 | mbi->mv_field_sel[ 1 ][ 0 ] = sel8l; | ||
12011 | } | ||
12012 | } else { | ||
12013 | /* No MC */ | ||
12014 | var = v0; | ||
12015 | mbi->mb_type = 0; | ||
12016 | mbi->motion_type = 1; | ||
12017 | mbi->MV[ 0 ][ 0 ][ 0 ] = 0; | ||
12018 | mbi->MV[ 0 ][ 0 ][ 1 ] = 0; | ||
12019 | mbi->mv_field_sel[ 0 ][ 0 ] = ( mpeg2_pict_struct == 2 ); | ||
12020 | } | ||
12021 | } | ||
12022 | } else { /* if (mpeg2_pict_type==B_TYPE) */ | ||
12023 | /* forward prediction */ | ||
12024 | mpeg2_field_estimate( | ||
12025 | oldorg, oldref, oldorg + mpeg2_width, oldref + mpeg2_width, mb, i, j, sxf, | ||
12026 | syf, 0, &iminf, &jminf, &imin8uf, &jmin8uf, &imin8lf, &jmin8lf, | ||
12027 | &dmcfieldf, &dmc8f, &self, &sel8uf, &sel8lf, &imins, &jmins, &ds ); | ||
12028 | |||
12029 | /* backward prediction */ | ||
12030 | mpeg2_field_estimate( | ||
12031 | neworg, newref, neworg + mpeg2_width, newref + mpeg2_width, mb, i, j, sxb, | ||
12032 | syb, 0, &iminr, &jminr, &imin8ur, &jmin8ur, &imin8lr, &jmin8lr, | ||
12033 | &dmcfieldr, &dmc8r, &selr, &sel8ur, &sel8lr, &imins, &jmins, &ds ); | ||
12034 | |||
12035 | /* calculate distances for bidirectional prediction */ | ||
12036 | /* field */ | ||
12037 | dmcfieldi = | ||
12038 | mpeg2_bdist1( | ||
12039 | oldref + ( self ? mpeg2_width : 0 ) + ( iminf >> 1 ) | ||
12040 | + w2 * ( jminf >> 1 ), | ||
12041 | newref + ( selr ? mpeg2_width : 0 ) + ( iminr >> 1 ) | ||
12042 | + w2 * ( jminr >> 1 ), | ||
12043 | mb, w2, iminf & 1, jminf & 1, iminr & 1, jminr & 1, 16 ); | ||
12044 | |||
12045 | /* 16x8 upper half block */ | ||
12046 | dmc8i = | ||
12047 | mpeg2_bdist1( | ||
12048 | oldref + ( sel8uf ? mpeg2_width : 0 ) + ( imin8uf >> 1 ) | ||
12049 | + w2 * ( jmin8uf >> 1 ), | ||
12050 | newref + ( sel8ur ? mpeg2_width : 0 ) + ( imin8ur >> 1 ) | ||
12051 | + w2 * ( jmin8ur >> 1 ), | ||
12052 | mb, w2, imin8uf & 1, jmin8uf & 1, imin8ur & 1, jmin8ur & 1, 8 ); | ||
12053 | |||
12054 | /* 16x8 lower half block */ | ||
12055 | dmc8i += | ||
12056 | mpeg2_bdist1( | ||
12057 | oldref + ( sel8lf ? mpeg2_width : 0 ) + ( imin8lf >> 1 ) | ||
12058 | + w2 * ( jmin8lf >> 1 ), | ||
12059 | newref + ( sel8lr ? mpeg2_width : 0 ) + ( imin8lr >> 1 ) | ||
12060 | + w2 * ( jmin8lr >> 1 ), | ||
12061 | mb + 8 * w2, w2, imin8lf & 1, jmin8lf & 1, imin8lr & 1, jmin8lr & 1, | ||
12062 | 8 ); | ||
12063 | |||
12064 | /* select prediction type of minimum distance */ | ||
12065 | if ( ( dmcfieldi < dmc8i ) && ( dmcfieldi < dmcfieldf ) && | ||
12066 | ( dmcfieldi < dmc8f ) && ( dmcfieldi < dmcfieldr ) && | ||
12067 | ( dmcfieldi < dmc8r ) ) { | ||
12068 | /* field, interpolated */ | ||
12069 | mbi->mb_type = 8 | 5; | ||
12070 | mbi->motion_type = 1; | ||
12071 | vmc = | ||
12072 | mpeg2_bdist2( | ||
12073 | oldref + ( self ? mpeg2_width : 0 ) + ( iminf >> 1 ) | ||
12074 | + w2 * ( jminf >> 1 ), | ||
12075 | newref + ( selr ? mpeg2_width : 0 ) + ( iminr >> 1 ) | ||
12076 | + w2 * ( jminr >> 1 ), | ||
12077 | mb, w2, iminf & 1, jminf & 1, iminr & 1, jminr & 1, 16 ); | ||
12078 | } else | ||
12079 | |||
12080 | if ( ( dmc8i < dmcfieldf ) && ( dmc8i < dmc8f ) && ( dmc8i < dmcfieldr ) && | ||
12081 | ( dmc8i < dmc8r ) ) { | ||
12082 | /* 16x8, interpolated */ | ||
12083 | mbi->mb_type = 8 | 4; | ||
12084 | mbi->motion_type = 2; | ||
12085 | |||
12086 | /* upper half block */ | ||
12087 | vmc = | ||
12088 | mpeg2_bdist2( | ||
12089 | oldref + ( sel8uf ? mpeg2_width : 0 ) + ( imin8uf >> 1 ) | ||
12090 | + w2 * ( jmin8uf >> 1 ), | ||
12091 | newref + ( sel8ur ? mpeg2_width : 0 ) + ( imin8ur >> 1 ) | ||
12092 | + w2 * ( jmin8ur >> 1 ), | ||
12093 | mb, w2, imin8uf & 1, jmin8uf & 1, imin8ur & 1, jmin8ur & 1, 8 ); | ||
12094 | |||
12095 | /* lower half block */ | ||
12096 | vmc += | ||
12097 | mpeg2_bdist2( | ||
12098 | oldref + ( sel8lf ? mpeg2_width : 0 ) + ( imin8lf >> 1 ) | ||
12099 | + w2 * ( jmin8lf >> 1 ), | ||
12100 | newref + ( sel8lr ? mpeg2_width : 0 ) + ( imin8lr >> 1 ) | ||
12101 | + w2 * ( jmin8lr >> 1 ), | ||
12102 | mb + 8 * w2, w2, imin8lf & 1, jmin8lf & 1, imin8lr & 1, jmin8lr & 1, | ||
12103 | 8 ); | ||
12104 | } else | ||
12105 | |||
12106 | if ( ( dmcfieldf < dmc8f ) && ( dmcfieldf < dmcfieldr ) && | ||
12107 | ( dmcfieldf < dmc8r ) ) { | ||
12108 | /* field, forward */ | ||
12109 | mbi->mb_type = 8; | ||
12110 | mbi->motion_type = 1; | ||
12111 | vmc = | ||
12112 | mpeg2_dist2( | ||
12113 | oldref + ( self ? mpeg2_width : 0 ) + ( iminf >> 1 ) | ||
12114 | + w2 * ( jminf >> 1 ), | ||
12115 | mb, w2, iminf & 1, jminf & 1, 16 ); | ||
12116 | } else | ||
12117 | |||
12118 | if ( ( dmc8f < dmcfieldr ) && ( dmc8f < dmc8r ) ) { | ||
12119 | /* 16x8, forward */ | ||
12120 | mbi->mb_type = 8; | ||
12121 | mbi->motion_type = 2; | ||
12122 | |||
12123 | /* upper half block */ | ||
12124 | vmc = | ||
12125 | mpeg2_dist2( | ||
12126 | oldref + ( sel8uf ? mpeg2_width : 0 ) + ( imin8uf >> 1 ) | ||
12127 | + w2 * ( jmin8uf >> 1 ), mb, w2, imin8uf & 1, jmin8uf & 1, 8 ); | ||
12128 | |||
12129 | /* lower half block */ | ||
12130 | vmc += | ||
12131 | mpeg2_dist2( | ||
12132 | oldref + ( sel8lf ? mpeg2_width : 0 ) + ( imin8lf >> 1 ) | ||
12133 | + w2 * ( jmin8lf >> 1 ), | ||
12134 | mb + 8 * w2, w2, imin8lf & 1, jmin8lf & 1, 8 ); | ||
12135 | } else | ||
12136 | |||
12137 | if ( dmcfieldr < dmc8r ) { | ||
12138 | /* field, backward */ | ||
12139 | mbi->mb_type = 4; | ||
12140 | mbi->motion_type = 1; | ||
12141 | vmc = | ||
12142 | mpeg2_dist2( | ||
12143 | newref + ( selr ? mpeg2_width : 0 ) + ( iminr >> 1 ) | ||
12144 | + w2 * ( jminr >> 1 ), | ||
12145 | mb, w2, iminr & 1, jminr & 1, 16 ); | ||
12146 | } else { | ||
12147 | /* 16x8, backward */ | ||
12148 | mbi->mb_type = 4; | ||
12149 | mbi->motion_type = 2; | ||
12150 | |||
12151 | /* upper half block */ | ||
12152 | vmc = | ||
12153 | mpeg2_dist2( | ||
12154 | newref + ( sel8ur ? mpeg2_width : 0 ) + ( imin8ur >> 1 ) | ||
12155 | + w2 * ( jmin8ur >> 1 ), | ||
12156 | mb, w2, imin8ur & 1, jmin8ur & 1, 8 ); | ||
12157 | |||
12158 | /* lower half block */ | ||
12159 | vmc += | ||
12160 | mpeg2_dist2( | ||
12161 | newref + ( sel8lr ? mpeg2_width : 0 ) + ( imin8lr >> 1 ) | ||
12162 | + w2 * ( jmin8lr >> 1 ), | ||
12163 | mb + 8 * w2, w2, imin8lr & 1, jmin8lr & 1, 8 ); | ||
12164 | } | ||
12165 | |||
12166 | /* select between intra and non-intra coding */ | ||
12167 | if ( ( vmc > var ) && ( vmc >= 9 * 256 ) ) | ||
12168 | mbi->mb_type = 1; | ||
12169 | else { | ||
12170 | var = vmc; | ||
12171 | |||
12172 | if ( mbi->motion_type == 1 ) { | ||
12173 | /* forward */ | ||
12174 | mbi->MV[ 0 ][ 0 ][ 0 ] = iminf - ( i << 1 ); | ||
12175 | mbi->MV[ 0 ][ 0 ][ 1 ] = jminf - ( j << 1 ); | ||
12176 | mbi->mv_field_sel[ 0 ][ 0 ] = self; | ||
12177 | /* backward */ | ||
12178 | mbi->MV[ 0 ][ 1 ][ 0 ] = iminr - ( i << 1 ); | ||
12179 | mbi->MV[ 0 ][ 1 ][ 1 ] = jminr - ( j << 1 ); | ||
12180 | mbi->mv_field_sel[ 0 ][ 1 ] = selr; | ||
12181 | } else { /* MC_16X8 */ | ||
12182 | /* forward */ | ||
12183 | mbi->MV[ 0 ][ 0 ][ 0 ] = imin8uf - ( i << 1 ); | ||
12184 | mbi->MV[ 0 ][ 0 ][ 1 ] = jmin8uf - ( j << 1 ); | ||
12185 | mbi->mv_field_sel[ 0 ][ 0 ] = sel8uf; | ||
12186 | mbi->MV[ 1 ][ 0 ][ 0 ] = imin8lf - ( i << 1 ); | ||
12187 | mbi->MV[ 1 ][ 0 ][ 1 ] = jmin8lf - ( ( j + 8 ) << 1 ); | ||
12188 | mbi->mv_field_sel[ 1 ][ 0 ] = sel8lf; | ||
12189 | /* backward */ | ||
12190 | mbi->MV[ 0 ][ 1 ][ 0 ] = imin8ur - ( i << 1 ); | ||
12191 | mbi->MV[ 0 ][ 1 ][ 1 ] = jmin8ur - ( j << 1 ); | ||
12192 | mbi->mv_field_sel[ 0 ][ 1 ] = sel8ur; | ||
12193 | mbi->MV[ 1 ][ 1 ][ 0 ] = imin8lr - ( i << 1 ); | ||
12194 | mbi->MV[ 1 ][ 1 ][ 1 ] = jmin8lr - ( ( j + 8 ) << 1 ); | ||
12195 | mbi->mv_field_sel[ 1 ][ 1 ] = sel8lr; | ||
12196 | } | ||
12197 | } | ||
12198 | } | ||
12199 | |||
12200 | mbi->var = var; | ||
12201 | } | ||
12202 | |||
12203 | |||
12204 | /* | ||
12205 | frame picture motion estimation | ||
12206 | |||
12207 | org: top left pel of source reference frame | ||
12208 | ref: top left pel of reconstructed reference frame | ||
12209 | mb: macroblock to be matched | ||
12210 | i,j: location of mb relative to ref (=center of search window) | ||
12211 | sx,sy: half widths of search window | ||
12212 | iminp,jminp,dframep: location and value of best frame prediction | ||
12213 | imintp,jmintp,tselp: location of best field pred. for top field of mb | ||
12214 | iminbp,jminbp,bselp: location of best field pred. for bottom field of mb | ||
12215 | dfieldp: value of field prediction | ||
12216 | */ | ||
12217 | void mpeg2_frame_estimate( unsigned char *org, unsigned char *ref, | ||
12218 | unsigned char *mb, int i, int j, int sx, int sy, | ||
12219 | int *iminp, int *jminp, int *imintp, int *jmintp, | ||
12220 | int *iminbp, int *jminbp, int *dframep, int *dfieldp, | ||
12221 | int *tselp, int *bselp, int imins[ 2 ][ 2 ], | ||
12222 | int jmins[ 2 ][ 2 ] ) | ||
12223 | { | ||
12224 | int dt, db, dmint, dminb; | ||
12225 | int imint, iminb, jmint, jminb; | ||
12226 | |||
12227 | |||
12228 | /* frame prediction */ | ||
12229 | *dframep = | ||
12230 | mpeg2_fullsearch( | ||
12231 | org, ref, mb, mpeg2_width, i, j, sx, sy, 16, mpeg2_width, mpeg2_height, | ||
12232 | iminp, jminp ); | ||
12233 | |||
12234 | /* predict top field from top field */ | ||
12235 | dt = | ||
12236 | mpeg2_fullsearch( | ||
12237 | org, ref, mb, mpeg2_width << 1, i, j>>1, sx, sy >> 1, 8, mpeg2_width, | ||
12238 | mpeg2_height >> 1, &imint, &jmint ); | ||
12239 | |||
12240 | /* predict top field from bottom field */ | ||
12241 | db = | ||
12242 | mpeg2_fullsearch( | ||
12243 | org + mpeg2_width, ref + mpeg2_width, mb, mpeg2_width << 1, i, j>>1, sx, | ||
12244 | sy >> 1, 8, mpeg2_width, mpeg2_height >> 1, &iminb, &jminb ); | ||
12245 | |||
12246 | imins[ 0 ][ 0 ] = imint; | ||
12247 | jmins[ 0 ][ 0 ] = jmint; | ||
12248 | imins[ 1 ][ 0 ] = iminb; | ||
12249 | jmins[ 1 ][ 0 ] = jminb; | ||
12250 | |||
12251 | /* select prediction for top field */ | ||
12252 | if ( dt <= db ) { | ||
12253 | dmint = dt; | ||
12254 | *imintp = imint; | ||
12255 | *jmintp = jmint; | ||
12256 | *tselp = 0; | ||
12257 | } else { | ||
12258 | dmint = db; | ||
12259 | *imintp = iminb; | ||
12260 | *jmintp = jminb; | ||
12261 | *tselp = 1; | ||
12262 | } | ||
12263 | |||
12264 | /* predict bottom field from top field */ | ||
12265 | dt = | ||
12266 | mpeg2_fullsearch( | ||
12267 | org, ref, mb + mpeg2_width, mpeg2_width << 1, i, j>>1, sx, sy >> 1, 8, | ||
12268 | mpeg2_width, mpeg2_height >> 1, &imint, &jmint ); | ||
12269 | |||
12270 | /* predict bottom field from bottom field */ | ||
12271 | db = | ||
12272 | mpeg2_fullsearch( | ||
12273 | org + mpeg2_width, ref + mpeg2_width, mb + mpeg2_width, mpeg2_width << 1, | ||
12274 | i, j>>1, sx, sy >> 1, 8, mpeg2_width, mpeg2_height >> 1, &iminb, &jminb ); | ||
12275 | |||
12276 | imins[ 0 ][ 1 ] = imint; | ||
12277 | jmins[ 0 ][ 1 ] = jmint; | ||
12278 | imins[ 1 ][ 1 ] = iminb; | ||
12279 | jmins[ 1 ][ 1 ] = jminb; | ||
12280 | |||
12281 | /* select prediction for bottom field */ | ||
12282 | if ( db <= dt ) { | ||
12283 | dminb = db; | ||
12284 | *iminbp = iminb; | ||
12285 | *jminbp = jminb; | ||
12286 | *bselp = 1; | ||
12287 | } else { | ||
12288 | dminb = dt; | ||
12289 | *iminbp = imint; | ||
12290 | *jminbp = jmint; | ||
12291 | *bselp = 0; | ||
12292 | } | ||
12293 | |||
12294 | *dfieldp = dmint + dminb; | ||
12295 | } | ||
12296 | |||
12297 | |||
12298 | /* | ||
12299 | field picture motion estimation subroutine | ||
12300 | |||
12301 | toporg: address of original top reference field | ||
12302 | topref: address of reconstructed top reference field | ||
12303 | botorg: address of original bottom reference field | ||
12304 | botref: address of reconstructed bottom reference field | ||
12305 | mb: macroblock to be matched | ||
12306 | i,j: location of mb (=center of search window) | ||
12307 | sx,sy: half width/height of search window | ||
12308 | |||
12309 | iminp,jminp,selp,dfieldp: location and distance of best field prediction | ||
12310 | imin8up,jmin8up,sel8up: location of best 16x8 pred. for upper half of mb | ||
12311 | imin8lp,jmin8lp,sel8lp: location of best 16x8 pred. for lower half of mb | ||
12312 | d8p: distance of best 16x8 prediction | ||
12313 | iminsp,jminsp,dsp: location and distance of best same parity field | ||
12314 | prediction (needed for dual prime, only valid if | ||
12315 | ipflag==0) | ||
12316 | */ | ||
12317 | void mpeg2_field_estimate( unsigned char *toporg, unsigned char *topref, | ||
12318 | unsigned char *botorg, unsigned char *botref, | ||
12319 | unsigned char *mb, int i, int j, int sx, int sy, | ||
12320 | int ipflag, int *iminp, int *jminp, int *imin8up, | ||
12321 | int *jmin8up, int *imin8lp, int *jmin8lp, | ||
12322 | int *dfieldp, int *d8p, int *selp, int *sel8up, | ||
12323 | int *sel8lp, int *iminsp, int *jminsp, int *dsp ) | ||
12324 | { | ||
12325 | int dt, db, imint, jmint, iminb, jminb, notop, nobot; | ||
12326 | |||
12327 | |||
12328 | /* if ipflag is set, predict from field of opposite parity only */ | ||
12329 | notop = ipflag && ( mpeg2_pict_struct == 1 ); | ||
12330 | nobot = ipflag && ( mpeg2_pict_struct == 2 ); | ||
12331 | |||
12332 | /* field prediction */ | ||
12333 | |||
12334 | /* predict current field from top field */ | ||
12335 | if ( notop ) | ||
12336 | dt = 65536; /* infinity */ | ||
12337 | else | ||
12338 | dt = | ||
12339 | mpeg2_fullsearch( | ||
12340 | toporg, topref, mb, mpeg2_width << 1, i, j, sx, sy>>1, 16, mpeg2_width, | ||
12341 | mpeg2_height >> 1, &imint, &jmint ); | ||
12342 | |||
12343 | /* predict current field from bottom field */ | ||
12344 | if ( nobot ) | ||
12345 | db = 65536; /* infinity */ | ||
12346 | else | ||
12347 | db = | ||
12348 | mpeg2_fullsearch( | ||
12349 | botorg, botref, mb, mpeg2_width << 1, i, j, sx, sy>>1, 16, mpeg2_width, | ||
12350 | mpeg2_height >> 1, &iminb, &jminb ); | ||
12351 | |||
12352 | /* same parity prediction (only valid if ipflag==0) */ | ||
12353 | if ( mpeg2_pict_struct == 1 ) { | ||
12354 | *iminsp = imint; | ||
12355 | *jminsp = jmint; | ||
12356 | *dsp = dt; | ||
12357 | } else { | ||
12358 | *iminsp = iminb; | ||
12359 | *jminsp = jminb; | ||
12360 | *dsp = db; | ||
12361 | } | ||
12362 | |||
12363 | /* select field prediction */ | ||
12364 | if ( dt <= db ) { | ||
12365 | *dfieldp = dt; | ||
12366 | *iminp = imint; | ||
12367 | *jminp = jmint; | ||
12368 | *selp = 0; | ||
12369 | } else { | ||
12370 | *dfieldp = db; | ||
12371 | *iminp = iminb; | ||
12372 | *jminp = jminb; | ||
12373 | *selp = 1; | ||
12374 | } | ||
12375 | |||
12376 | |||
12377 | /* 16x8 motion compensation */ | ||
12378 | |||
12379 | /* predict upper half field from top field */ | ||
12380 | if ( notop ) | ||
12381 | dt = 65536; | ||
12382 | else | ||
12383 | dt = | ||
12384 | mpeg2_fullsearch( | ||
12385 | toporg, topref, mb, mpeg2_width << 1, i, j, sx, sy>>1, 8, mpeg2_width, | ||
12386 | mpeg2_height >> 1, &imint, &jmint ); | ||
12387 | |||
12388 | /* predict upper half field from bottom field */ | ||
12389 | if ( nobot ) | ||
12390 | db = 65536; | ||
12391 | else | ||
12392 | db = | ||
12393 | mpeg2_fullsearch( | ||
12394 | botorg, botref, mb, mpeg2_width << 1, i, j, sx, sy>>1, 8, mpeg2_width, | ||
12395 | mpeg2_height >> 1, &iminb, &jminb ); | ||
12396 | |||
12397 | /* select prediction for upper half field */ | ||
12398 | if ( dt <= db ) { | ||
12399 | *d8p = dt; | ||
12400 | *imin8up = imint; | ||
12401 | *jmin8up = jmint; | ||
12402 | *sel8up = 0; | ||
12403 | } else { | ||
12404 | *d8p = db; | ||
12405 | *imin8up = iminb; | ||
12406 | *jmin8up = jminb; | ||
12407 | *sel8up = 1; | ||
12408 | } | ||
12409 | |||
12410 | /* predict lower half field from top field */ | ||
12411 | if ( notop ) | ||
12412 | dt = 65536; | ||
12413 | else | ||
12414 | dt = | ||
12415 | mpeg2_fullsearch( | ||
12416 | toporg, topref, mb + ( mpeg2_width << 4 ), mpeg2_width << 1, i, j + 8, | ||
12417 | sx, sy >> 1, 8, mpeg2_width, mpeg2_height >> 1, &imint, &jmint ); | ||
12418 | |||
12419 | /* predict lower half field from bottom field */ | ||
12420 | if ( nobot ) | ||
12421 | db = 65536; | ||
12422 | else | ||
12423 | db = | ||
12424 | mpeg2_fullsearch( | ||
12425 | botorg, botref, mb + ( mpeg2_width << 4 ), mpeg2_width << 1, i, j + 8, | ||
12426 | sx, sy >> 1, 8, mpeg2_width, mpeg2_height >> 1, &iminb, &jminb ); | ||
12427 | |||
12428 | /* select prediction for lower half field */ | ||
12429 | if ( dt <= db ) { | ||
12430 | *d8p += dt; | ||
12431 | *imin8lp = imint; | ||
12432 | *jmin8lp = jmint; | ||
12433 | *sel8lp = 0; | ||
12434 | } else { | ||
12435 | *d8p += db; | ||
12436 | *imin8lp = iminb; | ||
12437 | *jmin8lp = jminb; | ||
12438 | *sel8lp = 1; | ||
12439 | } | ||
12440 | } | ||
12441 | |||
12442 | |||
12443 | void mpeg2_dpframe_estimate( unsigned char *ref, unsigned char *mb, int i, | ||
12444 | int j, int iminf[ 2 ][ 2 ], int jminf[ 2 ][ 2 ], | ||
12445 | int *iminp, int *jminp, int *imindmvp, | ||
12446 | int *jmindmvp, int *dmcp, int *vmcp ) | ||
12447 | { | ||
12448 | int pref, ppred, delta_x, delta_y; | ||
12449 | int is, js, it, jt, ib, jb, it0, jt0, ib0, jb0; | ||
12450 | int imins, jmins, imint, jmint, iminb, jminb, imindmv, jmindmv; | ||
12451 | int vmc, local_dist; | ||
12452 | |||
12453 | |||
12454 | /* | ||
12455 | Calculate Dual Prime distortions for 9 delta candidates | ||
12456 | for each of the four minimum field vectors | ||
12457 | Note: only for P pictures! | ||
12458 | */ | ||
12459 | |||
12460 | /* initialize minimum dual prime distortion to large value */ | ||
12461 | vmc = 1 << 30; | ||
12462 | |||
12463 | _Pragma( "loopbound min 2 max 2" ) | ||
12464 | for ( pref = 0; pref < 2; pref++ ) { | ||
12465 | ppred = 0; | ||
12466 | _Pragma( "loopbound min 2 max 2" ) | ||
12467 | for ( ; ppred < 2; ppred++ ) { | ||
12468 | /* | ||
12469 | convert Cartesian absolute to relative motion vector | ||
12470 | values (wrt current macroblock address (i,j) | ||
12471 | */ | ||
12472 | is = iminf[ pref ][ ppred ] - ( i << 1 ); | ||
12473 | js = jminf[ pref ][ ppred ] - ( j << 1 ); | ||
12474 | |||
12475 | if ( pref != ppred ) { | ||
12476 | /* vertical field shift adjustment */ | ||
12477 | if ( ppred == 0 ) | ||
12478 | js++; | ||
12479 | else | ||
12480 | js--; | ||
12481 | |||
12482 | /* mvxs and mvys scaling*/ | ||
12483 | is <<= 1; | ||
12484 | js <<= 1; | ||
12485 | if ( mpeg2_topfirst == ppred ) { | ||
12486 | /* second field: scale by 1/3 */ | ||
12487 | is = ( is >= 0 ) ? ( is + 1 ) / 3 : -( ( -is + 1 ) / 3 ); | ||
12488 | js = ( js >= 0 ) ? ( js + 1 ) / 3 : -( ( -js + 1 ) / 3 ); | ||
12489 | } else | ||
12490 | continue; | ||
12491 | } | ||
12492 | |||
12493 | /* vector for prediction from field of opposite 'parity' */ | ||
12494 | if ( mpeg2_topfirst ) { | ||
12495 | /* vector for prediction of top field from bottom field */ | ||
12496 | it0 = ( ( is + ( is > 0 ) ) >> 1 ); | ||
12497 | jt0 = ( ( js + ( js > 0 ) ) >> 1 ) - 1; | ||
12498 | |||
12499 | /* vector for prediction of bottom field from top field */ | ||
12500 | ib0 = ( ( 3 * is + ( is > 0 ) ) >> 1 ); | ||
12501 | jb0 = ( ( 3 * js + ( js > 0 ) ) >> 1 ) + 1; | ||
12502 | } else { | ||
12503 | /* vector for prediction of top field from bottom field */ | ||
12504 | it0 = ( ( 3 * is + ( is > 0 ) ) >> 1 ); | ||
12505 | jt0 = ( ( 3 * js + ( js > 0 ) ) >> 1 ) - 1; | ||
12506 | |||
12507 | /* vector for prediction of bottom field from top field */ | ||
12508 | ib0 = ( ( is + ( is > 0 ) ) >> 1 ); | ||
12509 | jb0 = ( ( js + ( js > 0 ) ) >> 1 ) + 1; | ||
12510 | } | ||
12511 | |||
12512 | /* convert back to absolute half-pel field picture coordinates */ | ||
12513 | is += i << 1; | ||
12514 | js += j << 1; | ||
12515 | it0 += i << 1; | ||
12516 | jt0 += j << 1; | ||
12517 | ib0 += i << 1; | ||
12518 | jb0 += j << 1; | ||
12519 | |||
12520 | if ( ( is >= 0 ) && ( is <= ( mpeg2_width - 16 ) << 1 ) && | ||
12521 | ( js >= 0 ) && ( js <= ( mpeg2_height - 16 ) ) ) { | ||
12522 | _Pragma( "loopbound min 3 max 3" ) | ||
12523 | for ( delta_y = -1; delta_y <= 1; delta_y++ ) { | ||
12524 | delta_x = -1; | ||
12525 | _Pragma( "loopbound min 3 max 3" ) | ||
12526 | for ( ; delta_x <= 1; delta_x++ ) { | ||
12527 | /* opposite field coordinates */ | ||
12528 | it = it0 + delta_x; | ||
12529 | jt = jt0 + delta_y; | ||
12530 | ib = ib0 + delta_x; | ||
12531 | jb = jb0 + delta_y; | ||
12532 | |||
12533 | if ( ( it >= 0 ) && ( it <= ( mpeg2_width - 16 ) << 1 ) && | ||
12534 | ( jt >= 0 ) && ( jt <= ( mpeg2_height - 16 ) ) && | ||
12535 | ( ib >= 0 ) && ( ib <= ( mpeg2_width - 16 ) << 1 ) && | ||
12536 | ( jb >= 0 ) && ( jb <= ( mpeg2_height - 16 ) ) ) { | ||
12537 | /* compute prediction error */ | ||
12538 | local_dist = | ||
12539 | mpeg2_bdist2( | ||
12540 | ref + ( is >> 1 ) + ( mpeg2_width << 1 ) * ( js >> 1 ), | ||
12541 | ref + mpeg2_width + ( it >> 1 ) | ||
12542 | + ( mpeg2_width << 1 ) * ( jt >> 1 ), | ||
12543 | mb, /* current mb location */ | ||
12544 | mpeg2_width << 1, /* adjacent line distance */ | ||
12545 | is & 1, js & 1, it & 1, jt & 1, /* half-pel flags */ | ||
12546 | 8 ); /* block height */ | ||
12547 | local_dist += | ||
12548 | mpeg2_bdist2( | ||
12549 | ref + mpeg2_width + ( is >> 1 ) | ||
12550 | + ( mpeg2_width << 1 ) * ( js >> 1 ), | ||
12551 | ref + ( ib >> 1 ) + ( mpeg2_width << 1 ) * ( jb >> 1 ), | ||
12552 | mb + mpeg2_width, /* current mb location */ | ||
12553 | mpeg2_width << 1, /* adjacent line distance */ | ||
12554 | is & 1, js & 1, ib & 1, jb & 1, /* half-pel flags */ | ||
12555 | 8 ); /* block height */ | ||
12556 | |||
12557 | /* update delta with least distortion vector */ | ||
12558 | if ( local_dist < vmc ) { | ||
12559 | imins = is; | ||
12560 | jmins = js; | ||
12561 | imint = it; | ||
12562 | jmint = jt; | ||
12563 | iminb = ib; | ||
12564 | jminb = jb; | ||
12565 | imindmv = delta_x; | ||
12566 | jmindmv = delta_y; | ||
12567 | vmc = local_dist; | ||
12568 | } | ||
12569 | } | ||
12570 | } /* end delta x loop */ | ||
12571 | } /* end delta y loop */ | ||
12572 | } | ||
12573 | } | ||
12574 | } | ||
12575 | |||
12576 | /* Compute L1 error for decision purposes */ | ||
12577 | local_dist = | ||
12578 | mpeg2_bdist1( | ||
12579 | ref + ( imins >> 1 ) + ( mpeg2_width << 1 ) * ( jmins >> 1 ), | ||
12580 | ref + mpeg2_width + ( imint >> 1 ) | ||
12581 | + ( mpeg2_width << 1 ) * ( jmint >> 1 ), | ||
12582 | mb, mpeg2_width << 1, imins & 1, jmins & 1, imint & 1, jmint & 1, 8 ); | ||
12583 | local_dist += | ||
12584 | mpeg2_bdist1( | ||
12585 | ref + mpeg2_width + ( imins >> 1 ) | ||
12586 | + ( mpeg2_width << 1 ) * ( jmins >> 1 ), | ||
12587 | ref + ( iminb >> 1 ) + ( mpeg2_width << 1 ) * ( jminb >> 1 ), | ||
12588 | mb + mpeg2_width, mpeg2_width << 1, imins & 1, jmins & 1, iminb & 1, | ||
12589 | jminb & 1, 8 ); | ||
12590 | |||
12591 | *dmcp = local_dist; | ||
12592 | *iminp = imins; | ||
12593 | *jminp = jmins; | ||
12594 | *imindmvp = imindmv; | ||
12595 | *jmindmvp = jmindmv; | ||
12596 | *vmcp = vmc; | ||
12597 | } | ||
12598 | |||
12599 | |||
12600 | void mpeg2_dpfield_estimate( unsigned char *topref, unsigned char *botref, | ||
12601 | unsigned char *mb, int i, int j, int imins, | ||
12602 | int jmins, int *imindmvp, int *jmindmvp, int *dmcp, | ||
12603 | int *vmcp ) | ||
12604 | { | ||
12605 | unsigned char *sameref, *oppref; | ||
12606 | int io0, jo0, io, jo, delta_x, delta_y, mvxs, mvys, mvxo0, mvyo0; | ||
12607 | int imino, jmino, imindmv, jmindmv, vmc_dp, local_dist; | ||
12608 | |||
12609 | |||
12610 | /* Calculate Dual Prime distortions for 9 delta candidates */ | ||
12611 | /* Note: only for P pictures! */ | ||
12612 | |||
12613 | /* Assign opposite and same reference pointer */ | ||
12614 | if ( mpeg2_pict_struct == 1 ) { | ||
12615 | sameref = topref; | ||
12616 | oppref = botref; | ||
12617 | } else { | ||
12618 | sameref = botref; | ||
12619 | oppref = topref; | ||
12620 | } | ||
12621 | |||
12622 | /* | ||
12623 | convert Cartesian absolute to relative motion vector | ||
12624 | values (wrt current macroblock address (i,j) | ||
12625 | */ | ||
12626 | mvxs = imins - ( i << 1 ); | ||
12627 | mvys = jmins - ( j << 1 ); | ||
12628 | |||
12629 | /* vector for prediction from field of opposite 'parity' */ | ||
12630 | mvxo0 = ( mvxs + ( mvxs > 0 ) ) >> 1; /* mvxs // 2 */ | ||
12631 | mvyo0 = ( mvys + ( mvys > 0 ) ) >> 1; /* mvys // 2 */ | ||
12632 | |||
12633 | /* vertical field shift correction */ | ||
12634 | if ( mpeg2_pict_struct == 1 ) | ||
12635 | mvyo0--; | ||
12636 | else | ||
12637 | mvyo0++; | ||
12638 | |||
12639 | /* convert back to absolute coordinates */ | ||
12640 | io0 = mvxo0 + ( i << 1 ); | ||
12641 | jo0 = mvyo0 + ( j << 1 ); | ||
12642 | |||
12643 | /* initialize minimum dual prime distortion to large value */ | ||
12644 | vmc_dp = 1 << 30; | ||
12645 | |||
12646 | _Pragma( "loopbound min 3 max 3" ) | ||
12647 | for ( delta_y = -1; delta_y <= 1; delta_y++ ) { | ||
12648 | delta_x = -1; | ||
12649 | _Pragma( "loopbound min 3 max 3" ) | ||
12650 | for ( ; delta_x <= 1; delta_x++ ) { | ||
12651 | /* opposite field coordinates */ | ||
12652 | io = io0 + delta_x; | ||
12653 | jo = jo0 + delta_y; | ||
12654 | |||
12655 | if ( ( io >= 0 ) && ( io <= ( mpeg2_width - 16 ) << 1 ) && | ||
12656 | ( jo >= 0 ) && ( jo <= ( mpeg2_height2 - 16 ) << 1 ) ) { | ||
12657 | /* compute prediction error */ | ||
12658 | local_dist = | ||
12659 | mpeg2_bdist2( | ||
12660 | sameref + ( imins >> 1 ) + mpeg2_width2 * ( jmins >> 1 ), | ||
12661 | oppref + ( io >> 1 ) + mpeg2_width2 * ( jo >> 1 ), | ||
12662 | mb, /* current mb location */ | ||
12663 | mpeg2_width2, /* adjacent line distance */ | ||
12664 | imins & 1, jmins & 1, io & 1, jo & 1, /* half-pel flags */ | ||
12665 | 16 ); /* block height */ | ||
12666 | |||
12667 | /* update delta with least distortion vector */ | ||
12668 | if ( local_dist < vmc_dp ) { | ||
12669 | imino = io; | ||
12670 | jmino = jo; | ||
12671 | imindmv = delta_x; | ||
12672 | jmindmv = delta_y; | ||
12673 | vmc_dp = local_dist; | ||
12674 | } | ||
12675 | } | ||
12676 | } /* end delta x loop */ | ||
12677 | } /* end delta y loop */ | ||
12678 | |||
12679 | /* Compute L1 error for decision purposes */ | ||
12680 | *dmcp = | ||
12681 | mpeg2_bdist1( | ||
12682 | sameref + ( imins >> 1 ) + mpeg2_width2 * ( jmins >> 1 ), | ||
12683 | oppref + ( imino >> 1 ) + mpeg2_width2 * ( jmino >> 1 ), | ||
12684 | mb, /* current mb location */ | ||
12685 | mpeg2_width2, /* adjacent line distance */ | ||
12686 | imins & 1, jmins & 1, imino & 1, jmino & 1, /* half-pel flags */ | ||
12687 | 16 ); /* block height */ | ||
12688 | |||
12689 | *imindmvp = imindmv; | ||
12690 | *jmindmvp = jmindmv; | ||
12691 | *vmcp = vmc_dp; | ||
12692 | } | ||
12693 | |||
12694 | |||
12695 | /* | ||
12696 | full search block matching | ||
12697 | |||
12698 | blk: top left pel of (16*h) block | ||
12699 | h: height of block | ||
12700 | lx: distance (in bytes) of vertically adjacent pels in ref,blk | ||
12701 | org: top left pel of source reference picture | ||
12702 | ref: top left pel of reconstructed reference picture | ||
12703 | i0,j0: center of search window | ||
12704 | sx,sy: half widths of search window | ||
12705 | xmax,ymax: right/bottom limits of search area | ||
12706 | iminp,jminp: pointers to where the result is stored | ||
12707 | result is given as half pel offset from ref(0,0) | ||
12708 | i.e. NOT relative to (i0,j0) | ||
12709 | */ | ||
12710 | int mpeg2_fullsearch( unsigned char *org, unsigned char *ref, | ||
12711 | unsigned char *blk, int lx, int i0, int j0, int sx, | ||
12712 | int sy, int h, int xmax, int ymax, int *iminp, | ||
12713 | int *jminp ) | ||
12714 | { | ||
12715 | int i, j, imin, jmin, ilow, ihigh, jlow, jhigh; | ||
12716 | int d, dmin; | ||
12717 | int k, l, sxy; | ||
12718 | |||
12719 | |||
12720 | ilow = i0 - sx; | ||
12721 | ihigh = i0 + sx; | ||
12722 | |||
12723 | if ( ilow < 0 ) | ||
12724 | ilow = 0; | ||
12725 | |||
12726 | if ( ihigh > xmax - 16 ) | ||
12727 | ihigh = xmax - 16; | ||
12728 | |||
12729 | jlow = j0 - sy; | ||
12730 | jhigh = j0 + sy; | ||
12731 | |||
12732 | if ( jlow < 0 ) | ||
12733 | jlow = 0; | ||
12734 | |||
12735 | if ( jhigh > ymax - h ) | ||
12736 | jhigh = ymax - h; | ||
12737 | |||
12738 | /* full pel search, spiraling outwards */ | ||
12739 | |||
12740 | imin = i0; | ||
12741 | jmin = j0; | ||
12742 | dmin = mpeg2_dist1( org + imin + lx * jmin, blk, lx, 0, 0, h, 65536 ); | ||
12743 | |||
12744 | sxy = ( sx > sy ) ? sx : sy; | ||
12745 | |||
12746 | _Pragma( "loopbound min 3 max 7" ) | ||
12747 | for ( l = 1; l <= sxy; l++ ) { | ||
12748 | i = i0 - l; | ||
12749 | j = j0 - l; | ||
12750 | _Pragma( "loopbound min 8 max 56" ) | ||
12751 | for ( k = 0; k < 8 * l; k++ ) { | ||
12752 | if ( ( i >= ilow ) && ( i <= ihigh ) && ( j >= jlow ) && | ||
12753 | ( j <= jhigh ) ) { | ||
12754 | d = mpeg2_dist1( org + i + lx * j, blk, lx, 0, 0, h, dmin ); | ||
12755 | |||
12756 | if ( d < dmin ) { | ||
12757 | dmin = d; | ||
12758 | imin = i; | ||
12759 | jmin = j; | ||
12760 | } | ||
12761 | } | ||
12762 | |||
12763 | if ( k < 2 * l ) | ||
12764 | i++; | ||
12765 | else | ||
12766 | |||
12767 | if ( k < 4 * l ) | ||
12768 | j++; | ||
12769 | else | ||
12770 | |||
12771 | if ( k < 6 * l ) | ||
12772 | i--; | ||
12773 | else | ||
12774 | j--; | ||
12775 | } | ||
12776 | } | ||
12777 | |||
12778 | /* half pel */ | ||
12779 | dmin = 65536; | ||
12780 | imin <<= 1; | ||
12781 | jmin <<= 1; | ||
12782 | ilow = imin - ( imin > 0 ); | ||
12783 | ihigh = imin + ( imin < ( ( xmax - 16 ) << 1 ) ); | ||
12784 | jlow = jmin - ( jmin > 0 ); | ||
12785 | jhigh = jmin + ( jmin < ( ( ymax - h ) << 1 ) ); | ||
12786 | |||
12787 | _Pragma( "loopbound min 2 max 3" ) | ||
12788 | for ( j = jlow; j <= jhigh; j++ ) { | ||
12789 | i = ilow; | ||
12790 | _Pragma( "loopbound min 2 max 3" ) | ||
12791 | for ( ; i <= ihigh; i++ ) { | ||
12792 | d = | ||
12793 | mpeg2_dist1( | ||
12794 | ref + ( i >> 1 ) + lx * ( j >> 1 ), blk, lx, i & 1, j & 1, h, dmin ); | ||
12795 | |||
12796 | if ( d < dmin ) { | ||
12797 | dmin = d; | ||
12798 | imin = i; | ||
12799 | jmin = j; | ||
12800 | } | ||
12801 | } | ||
12802 | } | ||
12803 | |||
12804 | *iminp = imin; | ||
12805 | *jminp = jmin; | ||
12806 | |||
12807 | return( dmin ); | ||
12808 | } | ||
12809 | |||
12810 | |||
12811 | /* | ||
12812 | total absolute difference between two (16*h) blocks | ||
12813 | including optional half pel interpolation of blk1 (hx,hy) | ||
12814 | blk1,blk2: addresses of top left pels of both blocks | ||
12815 | lx: distance (in bytes) of vertically adjacent pels | ||
12816 | hx,hy: flags for horizontal and/or vertical interpolation | ||
12817 | h: height of block (usually 8 or 16) | ||
12818 | distlim: bail out if sum exceeds this value | ||
12819 | */ | ||
12820 | int mpeg2_dist1( unsigned char *blk1, unsigned char *blk2, int lx, int hx, | ||
12821 | int hy, int h, int distlim ) | ||
12822 | { | ||
12823 | unsigned char *p1, *p1a, *p2; | ||
12824 | int i, j; | ||
12825 | int s, v; | ||
12826 | |||
12827 | |||
12828 | s = 0; | ||
12829 | p1 = blk1; | ||
12830 | p2 = blk2; | ||
12831 | |||
12832 | if ( !hx && !hy ) { | ||
12833 | _Pragma( "loopbound min 1 max 16" ) | ||
12834 | for ( j = 0; j < h; j++ ) { | ||
12835 | if ( ( v = p1[ 0 ] - p2[ 0 ] ) < 0 ) | ||
12836 | v = -v; | ||
12837 | s += v; | ||
12838 | |||
12839 | if ( ( v = p1[ 1 ] - p2[ 1 ] ) < 0 ) | ||
12840 | v = -v; | ||
12841 | s += v; | ||
12842 | |||
12843 | if ( ( v = p1[ 2 ] - p2[ 2 ] ) < 0 ) | ||
12844 | v = -v; | ||
12845 | s += v; | ||
12846 | |||
12847 | if ( ( v = p1[ 3 ] - p2[ 3 ] ) < 0 ) | ||
12848 | v = -v; | ||
12849 | s += v; | ||
12850 | |||
12851 | if ( ( v = p1[ 4 ] - p2[ 4 ] ) < 0 ) | ||
12852 | v = -v; | ||
12853 | s += v; | ||
12854 | |||
12855 | if ( ( v = p1[ 5 ] - p2[ 5 ] ) < 0 ) | ||
12856 | v = -v; | ||
12857 | s += v; | ||
12858 | |||
12859 | if ( ( v = p1[ 6 ] - p2[ 6 ] ) < 0 ) | ||
12860 | v = -v; | ||
12861 | s += v; | ||
12862 | |||
12863 | if ( ( v = p1[ 7 ] - p2[ 7 ] ) < 0 ) | ||
12864 | v = -v; | ||
12865 | s += v; | ||
12866 | |||
12867 | if ( ( v = p1[ 8 ] - p2[ 8 ] ) < 0 ) | ||
12868 | v = -v; | ||
12869 | s += v; | ||
12870 | |||
12871 | if ( ( v = p1[ 9 ] - p2[ 9 ] ) < 0 ) | ||
12872 | v = -v; | ||
12873 | s += v; | ||
12874 | |||
12875 | if ( ( v = p1[ 10 ] - p2[ 10 ] ) < 0 ) | ||
12876 | v = -v; | ||
12877 | s += v; | ||
12878 | |||
12879 | if ( ( v = p1[ 11 ] - p2[ 11 ] ) < 0 ) | ||
12880 | v = -v; | ||
12881 | s += v; | ||
12882 | |||
12883 | if ( ( v = p1[ 12 ] - p2[ 12 ] ) < 0 ) | ||
12884 | v = -v; | ||
12885 | s += v; | ||
12886 | |||
12887 | if ( ( v = p1[ 13 ] - p2[ 13 ] ) < 0 ) | ||
12888 | v = -v; | ||
12889 | s += v; | ||
12890 | |||
12891 | if ( ( v = p1[ 14 ] - p2[ 14 ] ) < 0 ) | ||
12892 | v = -v; | ||
12893 | s += v; | ||
12894 | |||
12895 | if ( ( v = p1[ 15 ] - p2[ 15 ] ) < 0 ) | ||
12896 | v = -v; | ||
12897 | s += v; | ||
12898 | |||
12899 | if ( s >= distlim ) | ||
12900 | break; | ||
12901 | |||
12902 | p1 += lx; | ||
12903 | p2 += lx; | ||
12904 | } | ||
12905 | } else | ||
12906 | |||
12907 | if ( hx && !hy ) { | ||
12908 | _Pragma( "loopbound min 8 max 16" ) | ||
12909 | for ( j = 0; j < h; j++ ) { | ||
12910 | i = 0; | ||
12911 | _Pragma( "loopbound min 16 max 16" ) | ||
12912 | for ( ; i < 16; i++ ) { | ||
12913 | v = ( ( unsigned int )( p1[ i ] + p1[ i + 1 ] + 1 ) >> 1 ) - p2[ i ]; | ||
12914 | if ( v >= 0 ) | ||
12915 | s += v; | ||
12916 | else | ||
12917 | s -= v; | ||
12918 | } | ||
12919 | p1 += lx; | ||
12920 | p2 += lx; | ||
12921 | } | ||
12922 | } else | ||
12923 | |||
12924 | if ( !hx && hy ) { | ||
12925 | p1a = p1 + lx; | ||
12926 | _Pragma( "loopbound min 8 max 16" ) | ||
12927 | for ( j = 0; j < h; j++ ) { | ||
12928 | i = 0; | ||
12929 | _Pragma( "loopbound min 16 max 16" ) | ||
12930 | for ( ; i < 16; i++ ) { | ||
12931 | v = ( ( unsigned int )( p1[ i ] + p1a[ i ] + 1 ) >> 1 ) - p2[ i ]; | ||
12932 | if ( v >= 0 ) | ||
12933 | s += v; | ||
12934 | else | ||
12935 | s -= v; | ||
12936 | } | ||
12937 | p1 = p1a; | ||
12938 | p1a += lx; | ||
12939 | p2 += lx; | ||
12940 | } | ||
12941 | } else { /* if (hx && hy) */ | ||
12942 | p1a = p1 + lx; | ||
12943 | _Pragma( "loopbound min 8 max 16" ) | ||
12944 | for ( j = 0; j < h; j++ ) { | ||
12945 | i = 0; | ||
12946 | _Pragma( "loopbound min 16 max 16" ) | ||
12947 | for ( ; i < 16; i++ ) { | ||
12948 | v = | ||
12949 | ( ( unsigned int ) | ||
12950 | ( p1[ i ] + p1[ i + 1 ] + p1a[ i ] + p1a[ i + 1 ] + 2 ) >> 2 ) - | ||
12951 | p2[ i ]; | ||
12952 | if ( v >= 0 ) | ||
12953 | s += v; | ||
12954 | else | ||
12955 | s -= v; | ||
12956 | } | ||
12957 | p1 = p1a; | ||
12958 | p1a += lx; | ||
12959 | p2 += lx; | ||
12960 | } | ||
12961 | } | ||
12962 | |||
12963 | return( s ); | ||
12964 | } | ||
12965 | |||
12966 | |||
12967 | /* | ||
12968 | total squared difference between two (16*h) blocks | ||
12969 | including optional half pel interpolation of blk1 (hx,hy) | ||
12970 | blk1,blk2: addresses of top left pels of both blocks | ||
12971 | lx: distance (in bytes) of vertically adjacent pels | ||
12972 | hx,hy: flags for horizontal and/or vertical interpolation | ||
12973 | h: height of block (usually 8 or 16) | ||
12974 | */ | ||
12975 | int mpeg2_dist2( unsigned char *blk1, unsigned char *blk2, int lx, int hx, | ||
12976 | int hy, int h ) | ||
12977 | { | ||
12978 | unsigned char *p1, *p1a, *p2; | ||
12979 | int i, j; | ||
12980 | int s, v; | ||
12981 | |||
12982 | |||
12983 | s = 0; | ||
12984 | p1 = blk1; | ||
12985 | p2 = blk2; | ||
12986 | |||
12987 | if ( !hx && !hy ) { | ||
12988 | _Pragma( "loopbound min 8 max 16" ) | ||
12989 | for ( j = 0; j < h; j++ ) { | ||
12990 | i = 0; | ||
12991 | _Pragma( "loopbound min 16 max 16" ) | ||
12992 | for ( ; i < 16; i++ ) { | ||
12993 | v = p1[ i ] - p2[ i ]; | ||
12994 | s += v * v; | ||
12995 | } | ||
12996 | p1 += lx; | ||
12997 | p2 += lx; | ||
12998 | } | ||
12999 | } else | ||
13000 | |||
13001 | if ( hx && !hy ) { | ||
13002 | _Pragma( "loopbound min 8 max 16" ) | ||
13003 | for ( j = 0; j < h; j++ ) { | ||
13004 | i = 0; | ||
13005 | _Pragma( "loopbound min 16 max 16" ) | ||
13006 | for ( ; i < 16; i++ ) { | ||
13007 | v = ( ( unsigned int )( p1[ i ] + p1[ i + 1 ] + 1 ) >> 1 ) - p2[ i ]; | ||
13008 | s += v * v; | ||
13009 | } | ||
13010 | p1 += lx; | ||
13011 | p2 += lx; | ||
13012 | } | ||
13013 | } else | ||
13014 | |||
13015 | if ( !hx && hy ) { | ||
13016 | p1a = p1 + lx; | ||
13017 | _Pragma( "loopbound min 8 max 16" ) | ||
13018 | for ( j = 0; j < h; j++ ) { | ||
13019 | i = 0; | ||
13020 | _Pragma( "loopbound min 16 max 16" ) | ||
13021 | for ( ; i < 16; i++ ) { | ||
13022 | v = ( ( unsigned int )( p1[ i ] + p1a[ i ] + 1 ) >> 1 ) - p2[ i ]; | ||
13023 | s += v * v; | ||
13024 | } | ||
13025 | p1 = p1a; | ||
13026 | p1a += lx; | ||
13027 | p2 += lx; | ||
13028 | } | ||
13029 | } else { /* if (hx && hy) */ | ||
13030 | p1a = p1 + lx; | ||
13031 | _Pragma( "loopbound min 8 max 16" ) | ||
13032 | for ( j = 0; j < h; j++ ) { | ||
13033 | i = 0; | ||
13034 | _Pragma( "loopbound min 16 max 16" ) | ||
13035 | for ( ; i < 16; i++ ) { | ||
13036 | v = | ||
13037 | ( ( unsigned int ) | ||
13038 | ( p1[ i ] + p1[ i + 1 ] + p1a[ i ] + p1a[ i + 1 ] + 2 ) >> 2 ) - | ||
13039 | p2[ i ]; | ||
13040 | s += v * v; | ||
13041 | } | ||
13042 | p1 = p1a; | ||
13043 | p1a += lx; | ||
13044 | p2 += lx; | ||
13045 | } | ||
13046 | } | ||
13047 | |||
13048 | return( s ); | ||
13049 | } | ||
13050 | |||
13051 | |||
13052 | /* | ||
13053 | absolute difference error between a (16*h) block and a bidirectional | ||
13054 | prediction | ||
13055 | |||
13056 | p2: address of top left pel of block | ||
13057 | pf,hxf,hyf: address and half pel flags of forward ref. block | ||
13058 | pb,hxb,hyb: address and half pel flags of backward ref. block | ||
13059 | h: height of block | ||
13060 | lx: distance (in bytes) of vertically adjacent pels in p2,pf,pb | ||
13061 | */ | ||
13062 | int mpeg2_bdist1( unsigned char *pf, unsigned char *pb, unsigned char *p2, | ||
13063 | int lx, int hxf, int hyf, int hxb, int hyb, int h ) | ||
13064 | { | ||
13065 | unsigned char *pfa, *pfb, *pfc, *pba, *pbb, *pbc; | ||
13066 | int i, j; | ||
13067 | int s, v; | ||
13068 | |||
13069 | |||
13070 | pfa = pf + hxf; | ||
13071 | pfb = pf + lx * hyf; | ||
13072 | pfc = pfb + hxf; | ||
13073 | |||
13074 | pba = pb + hxb; | ||
13075 | pbb = pb + lx * hyb; | ||
13076 | pbc = pbb + hxb; | ||
13077 | |||
13078 | s = 0; | ||
13079 | |||
13080 | _Pragma( "loopbound min 8 max 16" ) | ||
13081 | for ( j = 0; j < h; j++ ) { | ||
13082 | i = 0; | ||
13083 | _Pragma( "loopbound min 16 max 16" ) | ||
13084 | for ( ; i < 16; i++ ) { | ||
13085 | v = | ||
13086 | ( ( ( ( unsigned int )( *pf++ + *pfa++ + *pfb++ + *pfc++ + 2 ) >> 2 ) + | ||
13087 | ( ( unsigned int )( *pb++ + *pba++ + *pbb++ + *pbc++ + 2 ) >> 2 ) + | ||
13088 | 1 ) >> 1 ) - | ||
13089 | *p2++; | ||
13090 | if ( v >= 0 ) | ||
13091 | s += v; | ||
13092 | else | ||
13093 | s -= v; | ||
13094 | } | ||
13095 | p2 += lx - 16; | ||
13096 | pf += lx - 16; | ||
13097 | pfa += lx - 16; | ||
13098 | pfb += lx - 16; | ||
13099 | pfc += lx - 16; | ||
13100 | pb += lx - 16; | ||
13101 | pba += lx - 16; | ||
13102 | pbb += lx - 16; | ||
13103 | pbc += lx - 16; | ||
13104 | } | ||
13105 | |||
13106 | return( s ); | ||
13107 | } | ||
13108 | |||
13109 | |||
13110 | /* | ||
13111 | squared error between a (16*h) block and a bidirectional | ||
13112 | prediction | ||
13113 | |||
13114 | p2: address of top left pel of block | ||
13115 | pf,hxf,hyf: address and half pel flags of forward ref. block | ||
13116 | pb,hxb,hyb: address and half pel flags of backward ref. block | ||
13117 | h: height of block | ||
13118 | lx: distance (in bytes) of vertically adjacent pels in p2,pf,pb | ||
13119 | */ | ||
13120 | int mpeg2_bdist2( unsigned char *pf, unsigned char *pb, unsigned char *p2, | ||
13121 | int lx, int hxf, int hyf, int hxb, int hyb, int h ) | ||
13122 | { | ||
13123 | unsigned char *pfa, *pfb, *pfc, *pba, *pbb, *pbc; | ||
13124 | int i, j; | ||
13125 | int s, v; | ||
13126 | |||
13127 | |||
13128 | pfa = pf + hxf; | ||
13129 | pfb = pf + lx * hyf; | ||
13130 | pfc = pfb + hxf; | ||
13131 | |||
13132 | pba = pb + hxb; | ||
13133 | pbb = pb + lx * hyb; | ||
13134 | pbc = pbb + hxb; | ||
13135 | |||
13136 | s = 0; | ||
13137 | |||
13138 | _Pragma( "loopbound min 8 max 16" ) | ||
13139 | for ( j = 0; j < h; j++ ) { | ||
13140 | i = 0; | ||
13141 | _Pragma( "loopbound min 16 max 16" ) | ||
13142 | for ( ; i < 16; i++ ) { | ||
13143 | v = | ||
13144 | ( ( ( ( unsigned int )( *pf++ + *pfa++ + *pfb++ + *pfc++ + 2 ) >> 2 ) + | ||
13145 | ( ( unsigned int )( *pb++ + *pba++ + *pbb++ + *pbc++ + 2 ) >> 2 ) + | ||
13146 | 1 ) >> 1 ) - | ||
13147 | *p2++; | ||
13148 | s += v * v; | ||
13149 | } | ||
13150 | p2 += lx - 16; | ||
13151 | pf += lx - 16; | ||
13152 | pfa += lx - 16; | ||
13153 | pfb += lx - 16; | ||
13154 | pfc += lx - 16; | ||
13155 | pb += lx - 16; | ||
13156 | pba += lx - 16; | ||
13157 | pbb += lx - 16; | ||
13158 | pbc += lx - 16; | ||
13159 | } | ||
13160 | |||
13161 | return( s ); | ||
13162 | } | ||
13163 | |||
13164 | |||
13165 | /* | ||
13166 | variance of a (16*16) block, multiplied by 256 | ||
13167 | p: address of top left pel of block | ||
13168 | lx: distance (in bytes) of vertically adjacent pels | ||
13169 | */ | ||
13170 | int mpeg2_variance( unsigned char *p, int lx ) | ||
13171 | { | ||
13172 | int i, j; | ||
13173 | unsigned int v, s, s2; | ||
13174 | |||
13175 | |||
13176 | s = s2 = 0; | ||
13177 | |||
13178 | _Pragma( "loopbound min 16 max 16" ) | ||
13179 | for ( j = 0; j < 16; j++ ) { | ||
13180 | i = 0; | ||
13181 | _Pragma( "loopbound min 16 max 16" ) | ||
13182 | for ( ; i < 16; i++ ) { | ||
13183 | v = *p++; | ||
13184 | s += v; | ||
13185 | s2 += v * v; | ||
13186 | } | ||
13187 | p += lx - 16; | ||
13188 | } | ||
13189 | |||
13190 | return( s2 - ( s * s ) / 256 ); | ||
13191 | } | ||
13192 | |||
13193 | |||
13194 | /* | ||
13195 | Main functions | ||
13196 | */ | ||
13197 | |||
13198 | void _Pragma ( "entrypoint" ) mpeg2_main( void ) | ||
13199 | { | ||
13200 | mpeg2_motion_estimation( | ||
13201 | mpeg2_oldorgframe, mpeg2_oldorgframe, mpeg2_oldorgframe, mpeg2_oldorgframe, | ||
13202 | mpeg2_oldorgframe, mpeg2_oldorgframe, 7, 7, 3, 3, mpeg2_mbinfo, 0, 0 ); | ||
13203 | } | ||
13204 | |||
13205 | |||
13206 | int main( int argc, char **argv ) | ||
13207 | { | ||
13208 | SET_UP | ||
13209 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
13210 | START_LOOP | ||
13211 | mpeg2_init(); | ||
13212 | mpeg2_main(); | ||
13213 | STOP_LOOP | ||
13214 | } | ||
13215 | WRITE_TO_FILE | ||
13216 | |||
13217 | return( mpeg2_return() - (-116) != 0 ); | ||
13218 | } | ||
diff --git a/baseline/source/ndes/ChangeLog.txt b/baseline/source/ndes/ChangeLog.txt new file mode 100644 index 0000000..ae9c168 --- /dev/null +++ b/baseline/source/ndes/ChangeLog.txt | |||
@@ -0,0 +1,20 @@ | |||
1 | File: ndes.c | ||
2 | Original provenience: | ||
3 | |||
4 | 2017-04-18: | ||
5 | - Annotated ndes_main as entry-point for timing analysis | ||
6 | |||
7 | 2015-10-21: | ||
8 | - Remove comment on line 1 | ||
9 | - Added generic TACLeBench header to line 1 | ||
10 | - Renamed functions to {name} to ndes_{name} | ||
11 | - Renamed globale variables to {name} to ndes_{name} | ||
12 | - Renamed structs to {name} to ndes_{name} | ||
13 | - Removed the profiling code | ||
14 | - Added forward decleration of functions | ||
15 | - Added ndes_main function | ||
16 | - Added ndes_init function | ||
17 | - Initialize ndes_ipc1 and ndes_ipc2 in ndes_init function | ||
18 | - int main variables to global variables for the ndes_init function | ||
19 | - Applied Code Style | ||
20 | |||
diff --git a/baseline/source/ndes/ndes.c b/baseline/source/ndes/ndes.c new file mode 100644 index 0000000..e56906f --- /dev/null +++ b/baseline/source/ndes/ndes.c | |||
@@ -0,0 +1,378 @@ | |||
1 | /* | ||
2 | This program is part of the TACLeBench benchmark suite. | ||
3 | Version V 1.x | ||
4 | |||
5 | Name: ndes | ||
6 | |||
7 | Author: unknown | ||
8 | |||
9 | Function: A lot of bit manipulation, shifts, array and matrix calculations. | ||
10 | |||
11 | Source: | ||
12 | |||
13 | Changes: no major functional changes | ||
14 | |||
15 | License: May be used, modified, and re-distributed freely. | ||
16 | |||
17 | */ | ||
18 | |||
19 | /* A read from this address will result in an known value of 1 */ | ||
20 | #include "../extra.h" | ||
21 | #define KNOWN_VALUE 1 | ||
22 | #define NDES_WORSTCASE 1 | ||
23 | /* | ||
24 | Declaration of global variables | ||
25 | */ | ||
26 | |||
27 | typedef struct NDES_IMMENSE { | ||
28 | unsigned long l, r; | ||
29 | } ndes_immense; | ||
30 | typedef struct NDES_GREAT { | ||
31 | unsigned long l, c, r; | ||
32 | } ndes_great; | ||
33 | |||
34 | unsigned long ndes_bit[33]; | ||
35 | ndes_immense ndes_inp, ndes_key, ndes_out; | ||
36 | int ndes_newkey, ndes_isw; | ||
37 | |||
38 | static ndes_immense ndes_icd; | ||
39 | static char ndes_ipc1[57]; | ||
40 | static char ndes_ipc2[49]; | ||
41 | |||
42 | |||
43 | #ifdef NDES_WORSTCASE | ||
44 | int ndes_value = 1; | ||
45 | #else | ||
46 | int ndes_value = 0; | ||
47 | #endif | ||
48 | |||
49 | /* Forward funtion prototypes */ | ||
50 | |||
51 | void ndes_des( ndes_immense inp, ndes_immense key, int *newkey, int isw, | ||
52 | ndes_immense *out ); | ||
53 | void ndes_cyfun( unsigned long ir, ndes_great k, unsigned long *iout ); | ||
54 | unsigned long ndes_getbit( ndes_immense source, int bitno, int nbits ); | ||
55 | void ndes_ks( /*immense key, */int n, ndes_great *kn ); | ||
56 | void ndes_init( void ); | ||
57 | int ndes_return( void ); | ||
58 | void ndes_main( void ); | ||
59 | //int main( void ); | ||
60 | |||
61 | /* | ||
62 | Initialization | ||
63 | */ | ||
64 | void ndes_init() | ||
65 | { | ||
66 | unsigned int i; | ||
67 | volatile char ndes_ipc1_tmp[57] = { | ||
68 | 0, 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, | ||
69 | 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, | ||
70 | 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, | ||
71 | 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4 | ||
72 | }; | ||
73 | volatile char ndes_ipc2_tmp[49] = { | ||
74 | 0, 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, | ||
75 | 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, | ||
76 | 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, | ||
77 | 53, 46, 42, 50, 36, 29, 32 | ||
78 | }; | ||
79 | for ( i = 0; i < 57; i++ ) | ||
80 | ndes_ipc1[i] = ndes_ipc1_tmp[i]; | ||
81 | for ( i = 0; i < 49; i++ ) | ||
82 | ndes_ipc2[i] = ndes_ipc2_tmp[i]; | ||
83 | |||
84 | ndes_inp.l = KNOWN_VALUE * 35; | ||
85 | ndes_inp.r = KNOWN_VALUE * 26; | ||
86 | ndes_key.l = KNOWN_VALUE * 2; | ||
87 | ndes_key.r = KNOWN_VALUE * 16; | ||
88 | |||
89 | ndes_newkey = ndes_value; | ||
90 | ndes_isw = ndes_value; | ||
91 | } | ||
92 | /* | ||
93 | Arithmetic functions | ||
94 | */ | ||
95 | void ndes_des( ndes_immense inp, ndes_immense key, int *newkey, int isw, | ||
96 | ndes_immense *out ) | ||
97 | { | ||
98 | volatile char ip[65] = { | ||
99 | 0, 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, | ||
100 | 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, | ||
101 | 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, | ||
102 | 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, | ||
103 | 31, 23, 15, 7 | ||
104 | }; | ||
105 | |||
106 | volatile char ipm[65] = { | ||
107 | 0, 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, | ||
108 | 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, | ||
109 | 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, | ||
110 | 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, | ||
111 | 49, 17, 57, 25 | ||
112 | }; | ||
113 | static ndes_great kns[17]; | ||
114 | |||
115 | #ifdef NDES_WORSTCASE | ||
116 | static int initflag = 1; | ||
117 | #else | ||
118 | static int initflag = 0; | ||
119 | #endif | ||
120 | |||
121 | int ii, i, j, k; | ||
122 | unsigned long ic, shifter; | ||
123 | ndes_immense itmp; | ||
124 | ndes_great pg; | ||
125 | |||
126 | if ( initflag ) { | ||
127 | initflag = 0; | ||
128 | ndes_bit[1] = shifter = 1L; | ||
129 | |||
130 | _Pragma( "loopbound min 31 max 31" ) | ||
131 | for ( j = 2; j <= 32; j++ ) | ||
132 | ndes_bit[j] = ( shifter <<= 1 ); | ||
133 | } | ||
134 | |||
135 | if ( *newkey ) { | ||
136 | *newkey = 0; | ||
137 | ndes_icd.r = ndes_icd.l = 0L; | ||
138 | |||
139 | _Pragma( "loopbound min 28 max 28" ) | ||
140 | for ( j = 28, k = 56; j >= 1; j--, k-- ) { | ||
141 | ndes_icd.r = ( ndes_icd.r << 1 ) | ndes_getbit( key, ndes_ipc1[j], 32 ); | ||
142 | ndes_icd.l = ndes_icd.l << 1; | ||
143 | ndes_icd.l = ( ndes_icd.l ) | ndes_getbit( key, ndes_ipc1[k], 32 ); | ||
144 | } | ||
145 | |||
146 | _Pragma( "loopbound min 16 max 16" ) | ||
147 | for ( i = 1; i <= 16; i++ ) { | ||
148 | pg = kns[i]; | ||
149 | ndes_ks( /* key,*/ i, &pg ); | ||
150 | kns[i] = pg; | ||
151 | } | ||
152 | } | ||
153 | |||
154 | itmp.r = itmp.l = 0L; | ||
155 | |||
156 | _Pragma( "loopbound min 32 max 32" ) | ||
157 | for ( j = 32, k = 64; j >= 1; j--, k-- ) { | ||
158 | itmp.r = itmp.r << 1; | ||
159 | itmp.r = ( itmp.r ) | ndes_getbit( inp, ip[j], 32 ); | ||
160 | itmp.l = itmp.l << 1; | ||
161 | itmp.l = ( itmp.l ) | ndes_getbit( inp, ip[k], 32 ); | ||
162 | } | ||
163 | _Pragma( "loopbound min 16 max 16" ) | ||
164 | for ( i = 1; i <= 16; i++ ) { | ||
165 | ii = ( isw == 1 ? 17 - i : i ); | ||
166 | ndes_cyfun( itmp.l, kns[ii], &ic ); | ||
167 | ic ^= itmp.r; | ||
168 | itmp.r = itmp.l; | ||
169 | itmp.l = ic; | ||
170 | } | ||
171 | |||
172 | ic = itmp.r; | ||
173 | itmp.r = itmp.l; | ||
174 | itmp.l = ic; | ||
175 | ( *out ).r = ( *out ).l = 0L; | ||
176 | |||
177 | _Pragma( "loopbound min 32 max 32" ) | ||
178 | for ( j = 32, k = 64; j >= 1; j--, k-- ) { | ||
179 | ( *out ).r = ( *out ).r << 1; | ||
180 | ( *out ).r = ( ( *out ).r ) | ndes_getbit( itmp, ipm[j], 32 ); | ||
181 | ( *out ).l = ( *out ).l << 1; | ||
182 | ( *out ).l = ( ( *out ).l ) | ndes_getbit( itmp, ipm[k], 32 ); | ||
183 | } | ||
184 | } | ||
185 | |||
186 | |||
187 | void ndes_cyfun( unsigned long ir, ndes_great k, unsigned long *iout ) | ||
188 | { | ||
189 | volatile long iet[49] = {0, 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, | ||
190 | 10, 11, 12, 13, 12, 13, 14, 15, 16, 17, 16, 17, 18, 19, | ||
191 | 20, 21, 20, 21, 22, 23, 24, 25, 24, 25, 26, 27, 28, 29, | ||
192 | 28, 29, 30, 31, 32, 1 | ||
193 | }; | ||
194 | volatile long ipp[33] = {0, 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, | ||
195 | 23, 26, 5, 18, 31, 10, 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, | ||
196 | 30, 6, 22, 11, 4, 25 | ||
197 | }; | ||
198 | volatile long is[16][4][9] = {{{ 0 , 14 , 15 , 10 , 7 , 2 , 12 , 4 , 13 }, | ||
199 | { 0 , 0 , 3 , 13 , 13 , 14 , 10 , 13 , 1 }, | ||
200 | { 0 , 4 , 0 , 13 , 10 , 4 , 9 , 1 , 7 }, | ||
201 | { 0 , 15 , 13 , 1 , 3 , 11 , 4 , 6 , 2 }}, | ||
202 | {{ 0 , 4 , 1 , 0 , 13 , 12 , 1 , 11 , 2 }, | ||
203 | { 0 , 15 , 13 , 7 , 8 , 11 , 15 , 0 , 15 }, | ||
204 | { 0 , 1 , 14 , 6 , 6 , 2 , 14 , 4 , 11 }, | ||
205 | { 0 , 12 , 8 , 10 , 15 , 8 , 3 , 11 , 1 }}, | ||
206 | {{ 0 , 13 , 8 , 9 , 14 , 4 , 10 , 2 , 8 }, | ||
207 | { 0 , 7 , 4 , 0 , 11 , 2 , 4 , 11 , 13 }, | ||
208 | { 0 , 14 , 7 , 4 , 9 , 1 , 15 , 11 , 4 }, | ||
209 | { 0 , 8 , 10 , 13 , 0 , 12 , 2 , 13 , 14 }}, | ||
210 | {{ 0 , 1 , 14 , 14 , 3 , 1 , 15 , 14 , 4 }, | ||
211 | { 0 , 4 , 7 , 9 , 5 , 12 , 2 , 7 , 8 }, | ||
212 | { 0 , 8 , 11 , 9 , 0 , 11 , 5 , 13 , 1 }, | ||
213 | { 0 , 2 , 1 , 0 , 6 , 7 , 12 , 8 , 7 }}, | ||
214 | {{ 0 , 2 , 6 , 6 , 0 , 7 , 9 , 15 , 6 }, | ||
215 | { 0 , 14 , 15 , 3 , 6 , 4 , 7 , 4 , 10 }, | ||
216 | { 0 , 13 , 10 , 8 , 12 , 10 , 2 , 12 , 9 }, | ||
217 | { 0 , 4 , 3 , 6 , 10 , 1 , 9 , 1 , 4 }}, | ||
218 | {{ 0 , 15 , 11 , 3 , 6 , 10 , 2 , 0 , 15 }, | ||
219 | { 0 , 2 , 2 , 4 , 15 , 7 , 12 , 9 , 3 }, | ||
220 | { 0 , 6 , 4 , 15 , 11 , 13 , 8 , 3 , 12 }, | ||
221 | { 0 , 9 , 15 , 9 , 1 , 14 , 5 , 4 , 10 }}, | ||
222 | {{ 0 , 11 , 3 , 15 , 9 , 11 , 6 , 8 , 11 }, | ||
223 | { 0 , 13 , 8 , 6 , 0 , 13 , 9 , 1 , 7 }, | ||
224 | { 0 , 2 , 13 , 3 , 7 , 7 , 12 , 7 , 14 }, | ||
225 | { 0 , 1 , 4 , 8 , 13 , 2 , 15 , 10 , 8 }}, | ||
226 | {{ 0 , 8 , 4 , 5 , 10 , 6 , 8 , 13 , 1 }, | ||
227 | { 0 , 1 , 14 , 10 , 3 , 1 , 5 , 10 , 4 }, | ||
228 | { 0 , 11 , 1 , 0 , 13 , 8 , 3 , 14 , 2 }, | ||
229 | { 0 , 7 , 2 , 7 , 8 , 13 , 10 , 7 , 13 }}, | ||
230 | {{ 0 , 3 , 9 , 1 , 1 , 8 , 0 , 3 , 10 }, | ||
231 | { 0 , 10 , 12 , 2 , 4 , 5 , 6 , 14 , 12 }, | ||
232 | { 0 , 15 , 5 , 11 , 15 , 15 , 7 , 10 , 0 }, | ||
233 | { 0 , 5 , 11 , 4 , 9 , 6 , 11 , 9 , 15 }}, | ||
234 | {{ 0 , 10 , 7 , 13 , 2 , 5 , 13 , 12 , 9 }, | ||
235 | { 0 , 6 , 0 , 8 , 7 , 0 , 1 , 3 , 5 }, | ||
236 | { 0 , 12 , 8 , 1 , 1 , 9 , 0 , 15 , 6 }, | ||
237 | { 0 , 11 , 6 , 15 , 4 , 15 , 14 , 5 , 12 }}, | ||
238 | {{ 0 , 6 , 2 , 12 , 8 , 3 , 3 , 9 , 3 }, | ||
239 | { 0 , 12 , 1 , 5 , 2 , 15 , 13 , 5 , 6 }, | ||
240 | { 0 , 9 , 12 , 2 , 3 , 12 , 4 , 6 , 10 }, | ||
241 | { 0 , 3 , 7 , 14 , 5 , 0 , 1 , 0 , 9 }}, | ||
242 | {{ 0 , 12 , 13 , 7 , 5 , 15 , 4 , 7 , 14 }, | ||
243 | { 0 , 11 , 10 , 14 , 12 , 10 , 14 , 12 , 11 }, | ||
244 | { 0 , 7 , 6 , 12 , 14 , 5 , 10 , 8 , 13 }, | ||
245 | { 0 , 14 , 12 , 3 , 11 , 9 , 7 , 15 , 0 }}, | ||
246 | {{ 0 , 5 , 12 , 11 , 11 , 13 , 14 , 5 , 5 }, | ||
247 | { 0 , 9 , 6 , 12 , 1 , 3 , 0 , 2 , 0 }, | ||
248 | { 0 , 3 , 9 , 5 , 5 , 6 , 1 , 0 , 15 }, | ||
249 | { 0 , 10 , 0 , 11 , 12 , 10 , 6 , 14 , 3 }}, | ||
250 | {{ 0 , 9 , 0 , 4 , 12 , 0 , 7 , 10 , 0 }, | ||
251 | { 0 , 5 , 9 , 11 , 10 , 9 , 11 , 15 , 14 }, | ||
252 | { 0 , 10 , 3 , 10 , 2 , 3 , 13 , 5 , 3 }, | ||
253 | { 0 , 0 , 5 , 5 , 7 , 4 , 0 , 2 , 5 }}, | ||
254 | {{ 0 , 0 , 5 , 2 , 4 , 14 , 5 , 6 , 12 }, | ||
255 | { 0 , 3 , 11 , 15 , 14 , 8 , 3 , 8 , 9 }, | ||
256 | { 0 , 5 , 2 , 14 , 8 , 0 , 11 , 9 , 5 }, | ||
257 | { 0 , 6 , 14 , 2 , 2 , 5 , 8 , 3 , 6 }}, | ||
258 | {{ 0 , 7 , 10 , 8 , 15 , 9 , 11 , 1 , 7 }, | ||
259 | { 0 , 8 , 5 , 1 , 9 , 6 , 8 , 6 , 2 }, | ||
260 | { 0 , 0 , 15 , 7 , 4 , 14 , 6 , 2 , 8 }, | ||
261 | { 0 , 13 , 9 , 12 , 14 , 3 , 13 , 12 , 11 }}}; | ||
262 | |||
263 | volatile char ibin[16] = {0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15}; | ||
264 | ndes_great ie; | ||
265 | unsigned long itmp, ietmp1, ietmp2; | ||
266 | char iec[9]; | ||
267 | int irow, icol, iss, l, m; | ||
268 | int volatile j, jj; | ||
269 | unsigned long *p; | ||
270 | |||
271 | p = ndes_bit; | ||
272 | ie.r = ie.c = ie.l = 0; | ||
273 | |||
274 | _Pragma( "loopbound min 16 max 16" ) | ||
275 | for ( j = 16, l = 32, m = 48; j >= 1; j--, l--, m-- ) { | ||
276 | ie.r = ( ie.r << 1 ) | ( p[iet[j]] & ir ? 1 : 0 ); | ||
277 | ie.c = ( ie.c << 1 ) | ( p[iet[l]] & ir ? 1 : 0 ); | ||
278 | ie.l = ( ie.l << 1 ) | ( p[iet[m]] & ir ? 1 : 0 ); | ||
279 | } | ||
280 | ie.r ^= k.r; | ||
281 | ie.c ^= k.c; | ||
282 | ie.l ^= k.l; | ||
283 | ietmp1 = ( ( unsigned long ) ie.c << 16 ) + ( unsigned long ) ie.r; | ||
284 | ietmp2 = ( ( unsigned long ) ie.l << 8 ) + ( ( unsigned long ) ie.c >> 8 ); | ||
285 | |||
286 | _Pragma( "loopbound min 4 max 4" ) | ||
287 | for ( j = 1, m = 5; j <= 4; j++, m++ ) { | ||
288 | iec[j] = ietmp1 & 0x3fL; | ||
289 | iec[m] = ietmp2 & 0x3fL; | ||
290 | ietmp1 >>= 6; | ||
291 | ietmp2 >>= 6; | ||
292 | } | ||
293 | |||
294 | itmp = 0L; | ||
295 | |||
296 | _Pragma( "loopbound min 8 max 8" ) | ||
297 | for ( jj = 8; jj >= 1; jj-- ) { | ||
298 | j = iec[jj]; | ||
299 | irow = ( ( j & 0x1 ) << 1 ) + ( ( j & 0x20 ) >> 5 ); | ||
300 | icol = ( ( j & 0x2 ) << 2 ) + ( j & 0x4 ) | ||
301 | + ( ( j & 0x8 ) >> 2 ) + ( ( j & 0x10 ) >> 4 ); | ||
302 | iss = is[icol][irow][jj]; | ||
303 | itmp = ( itmp << 4 ) | ibin[iss]; | ||
304 | } | ||
305 | |||
306 | *iout = 0L; | ||
307 | p = ndes_bit; | ||
308 | |||
309 | _Pragma( "loopbound min 32 max 32" ) | ||
310 | for ( j = 32; j >= 1; j-- ) | ||
311 | *iout = ( *iout << 1 ); | ||
312 | *iout |= ( p[ipp[j]] & itmp ? 1 : 0 ); | ||
313 | } | ||
314 | |||
315 | unsigned long ndes_getbit( ndes_immense source, int bitno, int nbits ) | ||
316 | { | ||
317 | if ( bitno <= nbits ) | ||
318 | return ndes_bit[bitno] & source.r ? 1L : 0L; | ||
319 | else | ||
320 | return ndes_bit[bitno - nbits] & source.l ? 1L : 0L; | ||
321 | } | ||
322 | |||
323 | void ndes_ks( /*ndes_immense key, */int n, ndes_great *kn ) | ||
324 | { | ||
325 | int i, j, k, l; | ||
326 | |||
327 | if ( n == 1 || n == 2 || n == 9 || n == 16 ) { | ||
328 | ndes_icd.r = ( ndes_icd.r | ( ( ndes_icd.r & 1L ) << 28 ) ) >> 1; | ||
329 | ndes_icd.l = ( ndes_icd.l | ( ( ndes_icd.l & 1L ) << 28 ) ) >> 1; | ||
330 | } else { | ||
331 | _Pragma( "loopbound min 2 max 2" ) | ||
332 | for ( i = 1; i <= 2; i++ ) { | ||
333 | ndes_icd.r = ( ndes_icd.r | ( ( ndes_icd.r & 1L ) << 28 ) ) >> 1; | ||
334 | ndes_icd.l = ( ndes_icd.l | ( ( ndes_icd.l & 1L ) << 28 ) ) >> 1; | ||
335 | } | ||
336 | } | ||
337 | |||
338 | ( *kn ).r = ( *kn ).c = ( *kn ).l = 0; | ||
339 | |||
340 | _Pragma( "loopbound min 16 max 16" ) | ||
341 | for ( j = 16, k = 32, l = 48; j >= 1; j--, k--, l-- ) { | ||
342 | ( *kn ).r = ( *kn ).r << 1; | ||
343 | ( *kn ).r = ( ( *kn ).r ) | ( unsigned short ) | ||
344 | ndes_getbit( ndes_icd, ndes_ipc2[j], 28 ); | ||
345 | ( *kn ).c = ( *kn ).c << 1; | ||
346 | ( *kn ).c = ( ( *kn ).c ) | ( unsigned short ) | ||
347 | ndes_getbit( ndes_icd, ndes_ipc2[k], 28 ); | ||
348 | ( *kn ).l = ( *kn ).l << 1; | ||
349 | ( *kn ).l = ( ( *kn ).l ) | ( unsigned short ) | ||
350 | ndes_getbit( ndes_icd, ndes_ipc2[l], 28 ); | ||
351 | } | ||
352 | } | ||
353 | |||
354 | int ndes_return() | ||
355 | { | ||
356 | return (ndes_icd.r+ndes_icd.l + (-8390656) ) != 0 ; | ||
357 | } | ||
358 | |||
359 | void _Pragma( "entrypoint" ) ndes_main() | ||
360 | { | ||
361 | ndes_des( ndes_inp, ndes_key, &ndes_newkey, ndes_isw, &ndes_out ); | ||
362 | } | ||
363 | |||
364 | /* main function */ | ||
365 | |||
366 | int main( int argc, char **argv ) | ||
367 | { | ||
368 | SET_UP | ||
369 | for(jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
370 | START_LOOP | ||
371 | ndes_init(); | ||
372 | ndes_main(); | ||
373 | STOP_LOOP | ||
374 | } | ||
375 | WRITE_TO_FILE | ||
376 | |||
377 | return ( ndes_return() ); | ||
378 | } | ||
diff --git a/baseline/source/petrinet/ChangeLog.txt b/baseline/source/petrinet/ChangeLog.txt new file mode 100644 index 0000000..3a02ec7 --- /dev/null +++ b/baseline/source/petrinet/ChangeLog.txt | |||
@@ -0,0 +1,63 @@ | |||
1 | File: petrinet.c | ||
2 | Original provenience: Mälardalen benchmark suite, | ||
3 | http://www.mrtc.mdh.se/projects/wcet/wcet_bench/nsichneu/nsichneu.c | ||
4 | |||
5 | 2016-02-02: | ||
6 | - Added generic TACLeBench header. | ||
7 | - Removed old file header (keep some information in TACLeBench | ||
8 | header). | ||
9 | - Renamed global variables: | ||
10 | - main_iters_dummy_i -> petrinet_main_iters_dummy_i | ||
11 | - main_min_dummy_i -> petrinet_main_min_dummy_i | ||
12 | - main_max_dummy_i -> petrinet_main_max_dummy_i | ||
13 | - P1_is_marked -> petrinet_P1_is_marked | ||
14 | - P1_marking_member_0 -> petrinet_P1_marking_member_0 | ||
15 | - P2_is_marked -> petrinet_P2_is_marked | ||
16 | - P2_marking_member_0 -> petrinet_P2_marking_member_0 | ||
17 | - P3_is_marked -> petrinet_P3_is_marked | ||
18 | - P3_marking_member_0 -> petrinet_P3_marking_member_0 | ||
19 | - Renamed main function to petrinet_main, set as entrypoint. | ||
20 | - Implemented new function main according to TACLeBench guidelines. | ||
21 | - Implemented function petrinet_return, calculates checksum over | ||
22 | petrinet_P3_marking_member_0. | ||
23 | - Applied code formatting according to the following rules | ||
24 | - Lines shall not be wider than 80 characters; whenever possible, appropriate | ||
25 | line breaks shall be inserted to keep lines below 80 characters | ||
26 | - Indentation is done using whitespaces only, no tabs. Code is indented by | ||
27 | two whitespaces | ||
28 | - Two empty lines are put between any two functions | ||
29 | - In non-empty lists or index expressions, opening '(' and '[' are followed by | ||
30 | one whitespace, closing ')' and ']' are preceded by one whitespace | ||
31 | - In comma- or colon-separated argument lists, one whitespace is put after | ||
32 | each comma/colon | ||
33 | - Names of functions and global variables all start with a benchmark-specific | ||
34 | prefix (here: bs_) followed by lowercase letter (e.g., bs_square) | ||
35 | - For pointer types, one whitespace is put before the '*' | ||
36 | - Operators within expressions shall be preceded and followed by one | ||
37 | whitespace | ||
38 | - Code of then- and else-parts of if-then-else statements shall be put in | ||
39 | separate lines, not in the same lines as the if-condition or the keyword | ||
40 | "else" | ||
41 | - Opening braces '{' denoting the beginning of code for some if-else or loop | ||
42 | body shall be put at the end of the same line where the keywords "if", | ||
43 | "else", "for", "while" etc. occur | ||
44 | - In non-empty lists or index expressions, opening '(' and '[' are followed by | ||
45 | one whitespace, closing ')' and ']' are preceded by one whitespace | ||
46 | - Operators within expressions shall be preceded and followed by one | ||
47 | whitespace | ||
48 | |||
49 | 2016-04-05: | ||
50 | - Return '0' on success | ||
51 | |||
52 | 2016-04-06: | ||
53 | - Fixed generation of return value | ||
54 | |||
55 | 2016-06-01: | ||
56 | - Changed all prefixes to lower-case | ||
57 | |||
58 | 2016-06-08: | ||
59 | - Prefix | ||
60 | - removed return from petrinet_main | ||
61 | |||
62 | 2016-06-13: | ||
63 | - introduced function petrinet_init | ||
diff --git a/baseline/source/petrinet/petrinet.c b/baseline/source/petrinet/petrinet.c new file mode 100644 index 0000000..7c9e1a0 --- /dev/null +++ b/baseline/source/petrinet/petrinet.c | |||
@@ -0,0 +1,990 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: Petrinet | ||
7 | |||
8 | Author: Friedhelm Stappert, C-LAB, Paderborn, Germany | ||
9 | |||
10 | Function: Simulate an extended Petri Net | ||
11 | Automatically generated code containing large amounts of | ||
12 | if-statements (more than 250) | ||
13 | |||
14 | Source: Mälardalen benchmark suite | ||
15 | |||
16 | Changes: no major functional changes | ||
17 | |||
18 | License: may be used, modified, and re-distributed freely | ||
19 | |||
20 | */ | ||
21 | |||
22 | /* Remove the following #define for actual WCET analyses! */ | ||
23 | /* | ||
24 | #define PROFILING | ||
25 | */ | ||
26 | |||
27 | |||
28 | #include "../extra.h" | ||
29 | |||
30 | #ifdef PROFILING | ||
31 | #include <stdio.h> | ||
32 | #endif | ||
33 | |||
34 | #ifdef PROFILING | ||
35 | /* Profiling variables. Remove for actual WCET analyses. */ | ||
36 | int petrinet_main_iters_dummy_i = 0, | ||
37 | petrinet_main_min_dummy_i = 100000, | ||
38 | petrinet_main_max_dummy_i = 0; | ||
39 | #endif | ||
40 | |||
41 | /* | ||
42 | Forward declaration of functions | ||
43 | */ | ||
44 | void petrinet_init( void ); | ||
45 | int petrinet_return( void ); | ||
46 | void petrinet_main( void ); | ||
47 | //int main( void ); | ||
48 | |||
49 | |||
50 | volatile int petrinet_P1_is_marked; | ||
51 | volatile long petrinet_P1_marking_member_0[ 3 ]; | ||
52 | volatile int petrinet_P2_is_marked; | ||
53 | volatile long petrinet_P2_marking_member_0[ 5 ]; | ||
54 | volatile int petrinet_P3_is_marked; | ||
55 | volatile long petrinet_P3_marking_member_0[ 6 ]; | ||
56 | |||
57 | const long petrinet_CHECKSUM = 0; | ||
58 | |||
59 | void _Pragma ( "entrypoint" ) petrinet_main( void ) | ||
60 | { | ||
61 | int dummy_i; | ||
62 | /* dummy_i = 17; Takes too much time */ | ||
63 | dummy_i = 2; | ||
64 | |||
65 | #ifdef PROFILING | ||
66 | main_iters_dummy_i = 0; | ||
67 | #endif | ||
68 | _Pragma( "loopbound min 2 max 2" ) | ||
69 | while ( dummy_i > 0 ) { | ||
70 | #ifdef PROFILING | ||
71 | main_iters_dummy_i++; | ||
72 | #endif | ||
73 | |||
74 | dummy_i--; | ||
75 | /* Permutation for Place P1 : 0, 1, 2 */ | ||
76 | /* Transition T1 */ | ||
77 | if ( ( petrinet_P1_is_marked >= 3 ) && | ||
78 | ( petrinet_P3_is_marked + 3 <= 6 ) && | ||
79 | ( petrinet_P1_marking_member_0[ 1 ] | ||
80 | == petrinet_P1_marking_member_0[ 2 ] ) ) { | ||
81 | |||
82 | long x; | ||
83 | long y; | ||
84 | long z; | ||
85 | |||
86 | x = petrinet_P1_marking_member_0[ 0 ]; | ||
87 | y = petrinet_P1_marking_member_0[ 1 ]; | ||
88 | |||
89 | /* Transition condition */ | ||
90 | if ( x < y ) { | ||
91 | |||
92 | /* demarking of input places */ | ||
93 | petrinet_P1_is_marked -= 3; | ||
94 | |||
95 | /* preaction */ | ||
96 | z = x - y; | ||
97 | |||
98 | /* marking of output places */ | ||
99 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = x; | ||
100 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = y; | ||
101 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = z; | ||
102 | petrinet_P3_is_marked += 3; | ||
103 | |||
104 | } /* end of if (Transition condition) */ | ||
105 | } | ||
106 | |||
107 | /* Permutation for Place petrinet_P1 : 0, 2, 1 */ | ||
108 | /* Transition T1 */ | ||
109 | if ( ( petrinet_P1_is_marked >= 3 ) && | ||
110 | ( petrinet_P3_is_marked + 3 <= 6 ) && | ||
111 | ( petrinet_P1_marking_member_0[ 2 ] | ||
112 | == petrinet_P1_marking_member_0[ 1 ] ) ) { | ||
113 | |||
114 | long x; | ||
115 | long y; | ||
116 | long z; | ||
117 | |||
118 | x = petrinet_P1_marking_member_0[ 0 ]; | ||
119 | y = petrinet_P1_marking_member_0[ 2 ]; | ||
120 | |||
121 | /* Transition condition */ | ||
122 | if ( ( x < y ) ) { | ||
123 | |||
124 | /* demarking of input places */ | ||
125 | petrinet_P1_is_marked -= 3; | ||
126 | |||
127 | /* preaction */ | ||
128 | z = x - y; | ||
129 | |||
130 | /* marking of output places */ | ||
131 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = x; | ||
132 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = y; | ||
133 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = z; | ||
134 | petrinet_P3_is_marked += 3; | ||
135 | |||
136 | } /* end of if (Transition condition) */ | ||
137 | } | ||
138 | |||
139 | /* Permutation for Place petrinet_P1 : 1, 0, 2 */ | ||
140 | /* Transition T1 */ | ||
141 | if ( ( petrinet_P1_is_marked >= 3 ) && | ||
142 | ( petrinet_P3_is_marked + 3 <= 6 ) && | ||
143 | ( petrinet_P1_marking_member_0[ 0 ] | ||
144 | == petrinet_P1_marking_member_0[ 2 ] ) ) { | ||
145 | |||
146 | long x; | ||
147 | long y; | ||
148 | long z; | ||
149 | |||
150 | x = petrinet_P1_marking_member_0[ 1 ]; | ||
151 | y = petrinet_P1_marking_member_0[ 0 ]; | ||
152 | |||
153 | /* Transition condition */ | ||
154 | if ( x < y ) { | ||
155 | |||
156 | /* demarking of input places */ | ||
157 | petrinet_P1_is_marked -= 3; | ||
158 | |||
159 | /* preaction */ | ||
160 | z = x - y; | ||
161 | |||
162 | /* marking of output places */ | ||
163 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = x; | ||
164 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = y; | ||
165 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = z; | ||
166 | petrinet_P3_is_marked += 3; | ||
167 | |||
168 | } /* end of if (Transition condition) */ | ||
169 | } | ||
170 | |||
171 | /* Permutation for Place petrinet_P1 : 1, 2, 0 */ | ||
172 | /* Transition T1 */ | ||
173 | if ( ( petrinet_P1_is_marked >= 3 ) && | ||
174 | ( petrinet_P3_is_marked + 3 <= 6 ) && | ||
175 | ( petrinet_P1_marking_member_0[ 2 ] | ||
176 | == petrinet_P1_marking_member_0[ 0 ] ) ) { | ||
177 | |||
178 | long x; | ||
179 | long y; | ||
180 | long z; | ||
181 | |||
182 | x = petrinet_P1_marking_member_0[ 1 ]; | ||
183 | y = petrinet_P1_marking_member_0[ 2 ]; | ||
184 | |||
185 | /* Transition condition */ | ||
186 | if ( ( x < y ) ) { | ||
187 | |||
188 | /* demarking of input places */ | ||
189 | petrinet_P1_is_marked -= 3; | ||
190 | |||
191 | /* preaction */ | ||
192 | z = x - y; | ||
193 | |||
194 | /* marking of output places */ | ||
195 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = x; | ||
196 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = y; | ||
197 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = z; | ||
198 | petrinet_P3_is_marked += 3; | ||
199 | |||
200 | } /* end of if (Transition condition) */ | ||
201 | } | ||
202 | |||
203 | /* Permutation for Place petrinet_P1 : 2, 0, 1 */ | ||
204 | /* Transition T1 */ | ||
205 | if ( ( petrinet_P1_is_marked >= 3 ) && | ||
206 | ( petrinet_P3_is_marked + 3 <= 6 ) && | ||
207 | ( petrinet_P1_marking_member_0[ 0 ] | ||
208 | == petrinet_P1_marking_member_0[ 1 ] ) ) { | ||
209 | long x; | ||
210 | long y; | ||
211 | long z; | ||
212 | |||
213 | x = petrinet_P1_marking_member_0[ 2 ]; | ||
214 | y = petrinet_P1_marking_member_0[ 0 ]; | ||
215 | |||
216 | /* Transition condition */ | ||
217 | if ( ( x < y ) ) { | ||
218 | |||
219 | /* demarking of input places */ | ||
220 | petrinet_P1_is_marked -= 3; | ||
221 | |||
222 | /* preaction */ | ||
223 | z = x - y; | ||
224 | |||
225 | /* marking of output places */ | ||
226 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = x; | ||
227 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = y; | ||
228 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = z; | ||
229 | petrinet_P3_is_marked += 3; | ||
230 | |||
231 | } /* end of if (Transition condition) */ | ||
232 | } | ||
233 | |||
234 | /* Permutation for Place petrinet_P1 : 2, 1, 0 */ | ||
235 | /* Transition T1 */ | ||
236 | if ( ( petrinet_P1_is_marked >= 3 ) && | ||
237 | ( petrinet_P3_is_marked + 3 <= 6 ) && | ||
238 | ( petrinet_P1_marking_member_0[ 1 ] | ||
239 | == petrinet_P1_marking_member_0[ 0 ] ) ) { | ||
240 | long x; | ||
241 | long y; | ||
242 | long z; | ||
243 | |||
244 | x = petrinet_P1_marking_member_0[ 2 ]; | ||
245 | y = petrinet_P1_marking_member_0[ 1 ]; | ||
246 | |||
247 | /* Transition condition */ | ||
248 | if ( ( x < y ) ) { | ||
249 | |||
250 | /* demarking of input places */ | ||
251 | petrinet_P1_is_marked -= 3; | ||
252 | |||
253 | /* preaction */ | ||
254 | z = x - y; | ||
255 | |||
256 | /* marking of output places */ | ||
257 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = x; | ||
258 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = y; | ||
259 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = z; | ||
260 | petrinet_P3_is_marked += 3; | ||
261 | |||
262 | } /* end of if (Transition condition) */ | ||
263 | } | ||
264 | |||
265 | /* Permutation for Place P2 : 0, 1, 2, 3 */ | ||
266 | /* Transition T2 */ | ||
267 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
268 | ( ( ( petrinet_P3_is_marked + 3 ) <= 6 ) ) && | ||
269 | ( ( ( petrinet_P2_marking_member_0[ 1 ] | ||
270 | == petrinet_P2_marking_member_0[ 2 ] ) ) && | ||
271 | ( ( petrinet_P2_marking_member_0[ 1 ] | ||
272 | == petrinet_P2_marking_member_0[ 3 ] ) ) ) ) { | ||
273 | long a; | ||
274 | long b; | ||
275 | long c; | ||
276 | |||
277 | a = petrinet_P2_marking_member_0[ 0 ]; | ||
278 | b = petrinet_P2_marking_member_0[ 1 ]; | ||
279 | |||
280 | /* Transition condition */ | ||
281 | if ( ( b > a ) ) { | ||
282 | |||
283 | /* demarking of input places */ | ||
284 | petrinet_P2_is_marked -= 4; | ||
285 | |||
286 | /* preaction */ | ||
287 | c = a + b; | ||
288 | |||
289 | /* marking of output places */ | ||
290 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
291 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
292 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
293 | petrinet_P3_is_marked += 3; | ||
294 | |||
295 | } /* end of if (Transition condition) */ | ||
296 | } | ||
297 | |||
298 | /* Permutation for Place petrinet_P2 : 0, 1, 3, 2 */ | ||
299 | /* Transition T2 */ | ||
300 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
301 | ( ( ( petrinet_P3_is_marked + 3 ) <= 6 ) ) && | ||
302 | ( ( petrinet_P2_marking_member_0[ 1 ] | ||
303 | == petrinet_P2_marking_member_0[ 3 ] ) && | ||
304 | ( petrinet_P2_marking_member_0[ 1 ] | ||
305 | == petrinet_P2_marking_member_0[ 2 ] ) ) ) { | ||
306 | long a; | ||
307 | long b; | ||
308 | long c; | ||
309 | |||
310 | a = petrinet_P2_marking_member_0[ 0 ]; | ||
311 | b = petrinet_P2_marking_member_0[ 1 ]; | ||
312 | |||
313 | /* Transition condition */ | ||
314 | if ( ( b > a ) ) { | ||
315 | |||
316 | /* demarking of input places */ | ||
317 | petrinet_P2_is_marked -= 4; | ||
318 | |||
319 | /* preaction */ | ||
320 | c = a + b; | ||
321 | |||
322 | /* marking of output places */ | ||
323 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
324 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
325 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
326 | petrinet_P3_is_marked += 3; | ||
327 | |||
328 | } /* end of if (Transition condition) */ | ||
329 | } | ||
330 | |||
331 | /* Permutation for Place petrinet_P2 : 0, 2, 1, 3 */ | ||
332 | /* Transition T2 */ | ||
333 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
334 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
335 | ( ( petrinet_P2_marking_member_0[ 2 ] | ||
336 | == petrinet_P2_marking_member_0[ 1 ] ) && | ||
337 | ( petrinet_P2_marking_member_0[ 2 ] | ||
338 | == petrinet_P2_marking_member_0[ 3 ] ) ) ) { | ||
339 | long a; | ||
340 | long b; | ||
341 | long c; | ||
342 | |||
343 | a = petrinet_P2_marking_member_0[ 0 ]; | ||
344 | b = petrinet_P2_marking_member_0[ 2 ]; | ||
345 | |||
346 | /* Transition condition */ | ||
347 | if ( ( b > a ) ) { | ||
348 | |||
349 | /* demarking of input places */ | ||
350 | petrinet_P2_is_marked -= 4; | ||
351 | |||
352 | /* preaction */ | ||
353 | c = a + b; | ||
354 | |||
355 | /* marking of output places */ | ||
356 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
357 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
358 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
359 | petrinet_P3_is_marked += 3; | ||
360 | |||
361 | } /* end of if (Transition condition) */ | ||
362 | } | ||
363 | |||
364 | /* Permutation for Place petrinet_P2 : 0, 2, 3, 1 */ | ||
365 | /* Transition T2 */ | ||
366 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
367 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
368 | ( ( petrinet_P2_marking_member_0[ 2 ] | ||
369 | == petrinet_P2_marking_member_0[ 3 ] ) && | ||
370 | ( petrinet_P2_marking_member_0[ 2 ] | ||
371 | == petrinet_P2_marking_member_0[ 1 ] ) ) ) { | ||
372 | long a; | ||
373 | long b; | ||
374 | long c; | ||
375 | |||
376 | a = petrinet_P2_marking_member_0[ 0 ]; | ||
377 | b = petrinet_P2_marking_member_0[ 2 ]; | ||
378 | |||
379 | /* Transition condition */ | ||
380 | if ( ( b > a ) ) { | ||
381 | |||
382 | /* demarking of input places */ | ||
383 | petrinet_P2_is_marked -= 4; | ||
384 | |||
385 | /* preaction */ | ||
386 | c = a + b; | ||
387 | |||
388 | /* marking of output places */ | ||
389 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
390 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
391 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
392 | petrinet_P3_is_marked += 3; | ||
393 | |||
394 | } /* end of if (Transition condition) */ | ||
395 | } | ||
396 | |||
397 | /* Permutation for Place petrinet_P2 : 0, 3, 1, 2 */ | ||
398 | /* Transition T2 */ | ||
399 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
400 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
401 | ( ( petrinet_P2_marking_member_0[ 3 ] | ||
402 | == petrinet_P2_marking_member_0[ 1 ] ) && | ||
403 | ( petrinet_P2_marking_member_0[ 3 ] | ||
404 | == petrinet_P2_marking_member_0[ 2 ] ) ) ) { | ||
405 | long a; | ||
406 | long b; | ||
407 | long c; | ||
408 | |||
409 | a = petrinet_P2_marking_member_0[ 0 ]; | ||
410 | b = petrinet_P2_marking_member_0[ 3 ]; | ||
411 | |||
412 | /* Transition condition */ | ||
413 | if ( ( b > a ) ) { | ||
414 | |||
415 | /* demarking of input places */ | ||
416 | petrinet_P2_is_marked -= 4; | ||
417 | |||
418 | /* preaction */ | ||
419 | c = a + b; | ||
420 | |||
421 | /* marking of output places */ | ||
422 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
423 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
424 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
425 | petrinet_P3_is_marked += 3; | ||
426 | |||
427 | } /* end of if (Transition condition) */ | ||
428 | } | ||
429 | |||
430 | /* Permutation for Place petrinet_P2 : 0, 3, 2, 1 */ | ||
431 | /* Transition T2 */ | ||
432 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
433 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
434 | ( ( petrinet_P2_marking_member_0[ 3 ] | ||
435 | == petrinet_P2_marking_member_0[ 2 ] ) && | ||
436 | ( petrinet_P2_marking_member_0[ 3 ] | ||
437 | == petrinet_P2_marking_member_0[ 1 ] ) ) ) { | ||
438 | long a; | ||
439 | long b; | ||
440 | long c; | ||
441 | |||
442 | a = petrinet_P2_marking_member_0[ 0 ]; | ||
443 | b = petrinet_P2_marking_member_0[ 3 ]; | ||
444 | |||
445 | /* Transition condition */ | ||
446 | if ( ( b > a ) ) { | ||
447 | |||
448 | /* demarking of input places */ | ||
449 | petrinet_P2_is_marked -= 4; | ||
450 | |||
451 | /* preaction */ | ||
452 | c = a + b; | ||
453 | |||
454 | /* marking of output places */ | ||
455 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
456 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
457 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
458 | petrinet_P3_is_marked += 3; | ||
459 | |||
460 | } /* end of if (Transition condition) */ | ||
461 | } | ||
462 | |||
463 | /* Permutation for Place petrinet_P2 : 1, 0, 2, 3 */ | ||
464 | /* Transition T2 */ | ||
465 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
466 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
467 | ( ( petrinet_P2_marking_member_0[ 0 ] | ||
468 | == petrinet_P2_marking_member_0[ 2 ] ) && | ||
469 | ( petrinet_P2_marking_member_0[ 0 ] | ||
470 | == petrinet_P2_marking_member_0[ 3 ] ) ) ) { | ||
471 | long a; | ||
472 | long b; | ||
473 | long c; | ||
474 | |||
475 | a = petrinet_P2_marking_member_0[ 1 ]; | ||
476 | b = petrinet_P2_marking_member_0[ 0 ]; | ||
477 | |||
478 | /* Transition condition */ | ||
479 | if ( ( b > a ) ) { | ||
480 | |||
481 | /* demarking of input places */ | ||
482 | petrinet_P2_is_marked -= 4; | ||
483 | |||
484 | /* preaction */ | ||
485 | c = a + b; | ||
486 | |||
487 | /* marking of output places */ | ||
488 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
489 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
490 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
491 | petrinet_P3_is_marked += 3; | ||
492 | |||
493 | } /* end of if (Transition condition) */ | ||
494 | } | ||
495 | |||
496 | /* Permutation for Place petrinet_P2 : 1, 0, 3, 2 */ | ||
497 | /* Transition T2 */ | ||
498 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
499 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
500 | ( ( petrinet_P2_marking_member_0[ 0 ] | ||
501 | == petrinet_P2_marking_member_0[ 3 ] ) && | ||
502 | ( petrinet_P2_marking_member_0[ 0 ] | ||
503 | == petrinet_P2_marking_member_0[ 2 ] ) ) ) { | ||
504 | long a; | ||
505 | long b; | ||
506 | long c; | ||
507 | |||
508 | a = petrinet_P2_marking_member_0[ 1 ]; | ||
509 | b = petrinet_P2_marking_member_0[ 0 ]; | ||
510 | |||
511 | /* Transition condition */ | ||
512 | if ( ( b > a ) ) { | ||
513 | |||
514 | /* demarking of input places */ | ||
515 | petrinet_P2_is_marked -= 4; | ||
516 | |||
517 | /* preaction */ | ||
518 | c = a + b; | ||
519 | |||
520 | /* marking of output places */ | ||
521 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
522 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
523 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
524 | petrinet_P3_is_marked += 3; | ||
525 | |||
526 | } /* end of if (Transition condition) */ | ||
527 | } | ||
528 | |||
529 | /* Permutation for Place petrinet_P2 : 1, 2, 0, 3 */ | ||
530 | /* Transition T2 */ | ||
531 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
532 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
533 | ( ( petrinet_P2_marking_member_0[ 2 ] | ||
534 | == petrinet_P2_marking_member_0[ 0 ] ) && | ||
535 | ( petrinet_P2_marking_member_0[ 2 ] | ||
536 | == petrinet_P2_marking_member_0[ 3 ] ) ) ) { | ||
537 | long a; | ||
538 | long b; | ||
539 | long c; | ||
540 | |||
541 | a = petrinet_P2_marking_member_0[ 1 ]; | ||
542 | b = petrinet_P2_marking_member_0[ 2 ]; | ||
543 | |||
544 | /* Transition condition */ | ||
545 | if ( ( b > a ) ) { | ||
546 | |||
547 | /* demarking of input places */ | ||
548 | petrinet_P2_is_marked -= 4; | ||
549 | |||
550 | /* preaction */ | ||
551 | c = a + b; | ||
552 | |||
553 | /* marking of output places */ | ||
554 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
555 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
556 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
557 | petrinet_P3_is_marked += 3; | ||
558 | |||
559 | } /* end of if (Transition condition) */ | ||
560 | } | ||
561 | |||
562 | /* Permutation for Place petrinet_P2 : 1, 2, 3, 0 */ | ||
563 | /* Transition T2 */ | ||
564 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
565 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
566 | ( ( petrinet_P2_marking_member_0[ 2 ] | ||
567 | == petrinet_P2_marking_member_0[ 3 ] ) && | ||
568 | ( petrinet_P2_marking_member_0[ 2 ] | ||
569 | == petrinet_P2_marking_member_0[ 0 ] ) ) ) { | ||
570 | long a; | ||
571 | long b; | ||
572 | long c; | ||
573 | |||
574 | a = petrinet_P2_marking_member_0[ 1 ]; | ||
575 | b = petrinet_P2_marking_member_0[ 2 ]; | ||
576 | |||
577 | /* Transition condition */ | ||
578 | if ( ( b > a ) ) { | ||
579 | /* demarking of input places */ | ||
580 | petrinet_P2_is_marked -= 4; | ||
581 | |||
582 | /* preaction */ | ||
583 | c = a + b; | ||
584 | |||
585 | /* marking of output places */ | ||
586 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
587 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
588 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
589 | petrinet_P3_is_marked += 3; | ||
590 | |||
591 | } /* end of if (Transition condition) */ | ||
592 | } | ||
593 | |||
594 | /* Permutation for Place petrinet_P2 : 1, 3, 0, 2 */ | ||
595 | /* Transition T2 */ | ||
596 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
597 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
598 | ( ( petrinet_P2_marking_member_0[ 3 ] | ||
599 | == petrinet_P2_marking_member_0[ 0 ] ) && | ||
600 | ( petrinet_P2_marking_member_0[ 3 ] | ||
601 | == petrinet_P2_marking_member_0[ 2 ] ) ) ) { | ||
602 | long a; | ||
603 | long b; | ||
604 | long c; | ||
605 | |||
606 | a = petrinet_P2_marking_member_0[ 1 ]; | ||
607 | b = petrinet_P2_marking_member_0[ 3 ]; | ||
608 | |||
609 | /* Transition condition */ | ||
610 | if ( ( b > a ) ) { | ||
611 | /* demarking of input places */ | ||
612 | petrinet_P2_is_marked -= 4; | ||
613 | |||
614 | /* preaction */ | ||
615 | c = a + b; | ||
616 | |||
617 | /* marking of output places */ | ||
618 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
619 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
620 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
621 | petrinet_P3_is_marked += 3; | ||
622 | |||
623 | } /* end of if (Transition condition) */ | ||
624 | } | ||
625 | |||
626 | |||
627 | /* Permutation for Place petrinet_P2 : 1, 3, 2, 0 */ | ||
628 | /* Transition T2 */ | ||
629 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
630 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
631 | ( ( petrinet_P2_marking_member_0[ 3 ] | ||
632 | == petrinet_P2_marking_member_0[ 2 ] ) && | ||
633 | ( petrinet_P2_marking_member_0[ 3 ] | ||
634 | == petrinet_P2_marking_member_0[ 0 ] ) ) ) { | ||
635 | long a; | ||
636 | long b; | ||
637 | long c; | ||
638 | |||
639 | a = petrinet_P2_marking_member_0[ 1 ]; | ||
640 | b = petrinet_P2_marking_member_0[ 3 ]; | ||
641 | |||
642 | /* Transition condition */ | ||
643 | if ( ( b > a ) ) { | ||
644 | |||
645 | /* demarking of input places */ | ||
646 | petrinet_P2_is_marked -= 4; | ||
647 | |||
648 | /* preaction */ | ||
649 | c = a + b; | ||
650 | |||
651 | /* marking of output places */ | ||
652 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
653 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
654 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
655 | petrinet_P3_is_marked += 3; | ||
656 | |||
657 | } /* end of if (Transition condition) */ | ||
658 | } | ||
659 | |||
660 | |||
661 | /* Permutation for Place petrinet_P2 : 2, 0, 1, 3 */ | ||
662 | /* Transition T2 */ | ||
663 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
664 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
665 | ( ( petrinet_P2_marking_member_0[ 0 ] | ||
666 | == petrinet_P2_marking_member_0[ 1 ] ) && | ||
667 | ( petrinet_P2_marking_member_0[ 0 ] | ||
668 | == petrinet_P2_marking_member_0[ 3 ] ) ) ) { | ||
669 | long a; | ||
670 | long b; | ||
671 | long c; | ||
672 | |||
673 | a = petrinet_P2_marking_member_0[ 2 ]; | ||
674 | b = petrinet_P2_marking_member_0[ 0 ]; | ||
675 | |||
676 | /* Transition condition */ | ||
677 | if ( ( b > a ) ) { | ||
678 | /* demarking of input places */ | ||
679 | petrinet_P2_is_marked -= 4; | ||
680 | |||
681 | /* preaction */ | ||
682 | c = a + b; | ||
683 | |||
684 | /* marking of output places */ | ||
685 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
686 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
687 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
688 | petrinet_P3_is_marked += 3; | ||
689 | |||
690 | } /* end of if (Transition condition) */ | ||
691 | } | ||
692 | |||
693 | /* Permutation for Place petrinet_P2 : 2, 0, 3, 1 */ | ||
694 | /* Transition T2 */ | ||
695 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
696 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
697 | ( ( petrinet_P2_marking_member_0[ 0 ] | ||
698 | == petrinet_P2_marking_member_0[ 3 ] ) && | ||
699 | ( petrinet_P2_marking_member_0[ 0 ] | ||
700 | == petrinet_P2_marking_member_0[ 1 ] ) ) ) { | ||
701 | long a; | ||
702 | long b; | ||
703 | long c; | ||
704 | |||
705 | a = petrinet_P2_marking_member_0[ 2 ]; | ||
706 | b = petrinet_P2_marking_member_0[ 0 ]; | ||
707 | |||
708 | /* Transition condition */ | ||
709 | if ( ( b > a ) ) { | ||
710 | /* demarking of input places */ | ||
711 | petrinet_P2_is_marked -= 4; | ||
712 | |||
713 | /* preaction */ | ||
714 | c = a + b; | ||
715 | |||
716 | /* marking of output places */ | ||
717 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
718 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
719 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
720 | petrinet_P3_is_marked += 3; | ||
721 | |||
722 | } /* end of if (Transition condition) */ | ||
723 | } | ||
724 | |||
725 | /* Permutation for Place petrinet_P2 : 2, 1, 0, 3 */ | ||
726 | /* Transition T2 */ | ||
727 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
728 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
729 | ( ( petrinet_P2_marking_member_0[ 1 ] | ||
730 | == petrinet_P2_marking_member_0[ 0 ] ) && | ||
731 | ( petrinet_P2_marking_member_0[ 1 ] | ||
732 | == petrinet_P2_marking_member_0[ 3 ] ) ) ) { | ||
733 | long a; | ||
734 | long b; | ||
735 | long c; | ||
736 | |||
737 | a = petrinet_P2_marking_member_0[ 2 ]; | ||
738 | b = petrinet_P2_marking_member_0[ 1 ]; | ||
739 | |||
740 | /* Transition condition */ | ||
741 | if ( ( b > a ) ) { | ||
742 | /* demarking of input places */ | ||
743 | petrinet_P2_is_marked -= 4; | ||
744 | |||
745 | /* preaction */ | ||
746 | c = a + b; | ||
747 | |||
748 | /* marking of output places */ | ||
749 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
750 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
751 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
752 | petrinet_P3_is_marked += 3; | ||
753 | |||
754 | } /* end of if (Transition condition) */ | ||
755 | } | ||
756 | |||
757 | /* Permutation for Place petrinet_P2 : 2, 1, 3, 0 */ | ||
758 | /* Transition T2 */ | ||
759 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
760 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
761 | ( ( petrinet_P2_marking_member_0[ 1 ] | ||
762 | == petrinet_P2_marking_member_0[ 3 ] ) && | ||
763 | ( petrinet_P2_marking_member_0[ 1 ] | ||
764 | == petrinet_P2_marking_member_0[ 0 ] ) ) ) { | ||
765 | long a; | ||
766 | long b; | ||
767 | long c; | ||
768 | |||
769 | a = petrinet_P2_marking_member_0[ 2 ]; | ||
770 | b = petrinet_P2_marking_member_0[ 1 ]; | ||
771 | |||
772 | /* Transition condition */ | ||
773 | if ( ( b > a ) ) { | ||
774 | /* demarking of input places */ | ||
775 | petrinet_P2_is_marked -= 4; | ||
776 | |||
777 | /* preaction */ | ||
778 | c = a + b; | ||
779 | |||
780 | /* marking of output places */ | ||
781 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
782 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
783 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
784 | petrinet_P3_is_marked += 3; | ||
785 | |||
786 | } /* end of if (Transition condition) */ | ||
787 | } | ||
788 | |||
789 | /* Permutation for Place petrinet_P2 : 2, 3, 0, 1 */ | ||
790 | /* Transition T2 */ | ||
791 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
792 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
793 | ( ( petrinet_P2_marking_member_0[ 3 ] | ||
794 | == petrinet_P2_marking_member_0[ 0 ] ) && | ||
795 | ( petrinet_P2_marking_member_0[ 3 ] | ||
796 | == petrinet_P2_marking_member_0[ 1 ] ) ) ) { | ||
797 | long a; | ||
798 | long b; | ||
799 | long c; | ||
800 | |||
801 | a = petrinet_P2_marking_member_0[ 2 ]; | ||
802 | b = petrinet_P2_marking_member_0[ 3 ]; | ||
803 | |||
804 | /* Transition condition */ | ||
805 | if ( ( b > a ) ) { | ||
806 | /* demarking of input places */ | ||
807 | petrinet_P2_is_marked -= 4; | ||
808 | |||
809 | /* preaction */ | ||
810 | c = a + b; | ||
811 | |||
812 | /* marking of output places */ | ||
813 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
814 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
815 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
816 | petrinet_P3_is_marked += 3; | ||
817 | |||
818 | } /* end of if (Transition condition) */ | ||
819 | } | ||
820 | |||
821 | /* Permutation for Place petrinet_P2 : 2, 3, 1, 0 */ | ||
822 | /* Transition T2 */ | ||
823 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
824 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
825 | ( ( petrinet_P2_marking_member_0[ 3 ] | ||
826 | == petrinet_P2_marking_member_0[ 1 ] ) && | ||
827 | ( petrinet_P2_marking_member_0[ 3 ] | ||
828 | == petrinet_P2_marking_member_0[ 0 ] ) ) ) { | ||
829 | long a; | ||
830 | long b; | ||
831 | long c; | ||
832 | |||
833 | a = petrinet_P2_marking_member_0[ 2 ]; | ||
834 | b = petrinet_P2_marking_member_0[ 3 ]; | ||
835 | |||
836 | /* Transition condition */ | ||
837 | if ( ( b > a ) ) { | ||
838 | /* demarking of input places */ | ||
839 | petrinet_P2_is_marked -= 4; | ||
840 | |||
841 | /* preaction */ | ||
842 | c = a + b; | ||
843 | |||
844 | /* marking of output places */ | ||
845 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
846 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
847 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
848 | petrinet_P3_is_marked += 3; | ||
849 | |||
850 | } /* end of if (Transition condition) */ | ||
851 | } | ||
852 | |||
853 | /* Permutation for Place petrinet_P2 : 3, 0, 1, 2 */ | ||
854 | /* Transition T2 */ | ||
855 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
856 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
857 | ( ( petrinet_P2_marking_member_0[ 0 ] | ||
858 | == petrinet_P2_marking_member_0[ 1 ] ) && | ||
859 | ( petrinet_P2_marking_member_0[ 0 ] | ||
860 | == petrinet_P2_marking_member_0[ 2 ] ) ) ) { | ||
861 | long a; | ||
862 | long b; | ||
863 | long c; | ||
864 | |||
865 | a = petrinet_P2_marking_member_0[ 3 ]; | ||
866 | b = petrinet_P2_marking_member_0[ 0 ]; | ||
867 | |||
868 | /* Transition condition */ | ||
869 | if ( ( b > a ) ) { | ||
870 | |||
871 | /* demarking of input places */ | ||
872 | petrinet_P2_is_marked -= 4; | ||
873 | |||
874 | /* preaction */ | ||
875 | c = a + b; | ||
876 | |||
877 | /* marking of output places */ | ||
878 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
879 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
880 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
881 | petrinet_P3_is_marked += 3; | ||
882 | |||
883 | } /* end of if (Transition condition) */ | ||
884 | } | ||
885 | |||
886 | |||
887 | /* Permutation for Place petrinet_P2 : 3, 0, 2, 1 */ | ||
888 | /* Transition T2 */ | ||
889 | if ( ( petrinet_P2_is_marked >= 4 ) && | ||
890 | ( ( petrinet_P3_is_marked + 3 ) <= 6 ) && | ||
891 | ( ( petrinet_P2_marking_member_0[ 0 ] | ||
892 | == petrinet_P2_marking_member_0[ 2 ] ) && | ||
893 | ( petrinet_P2_marking_member_0[ 0 ] | ||
894 | == petrinet_P2_marking_member_0[ 1 ] ) ) ) { | ||
895 | |||
896 | long a; | ||
897 | long b; | ||
898 | long c; | ||
899 | |||
900 | a = petrinet_P2_marking_member_0[ 3 ]; | ||
901 | b = petrinet_P2_marking_member_0[ 0 ]; | ||
902 | |||
903 | /* Transition condition */ | ||
904 | if ( ( b > a ) ) { | ||
905 | |||
906 | /* demarking of input places */ | ||
907 | petrinet_P2_is_marked -= 4; | ||
908 | |||
909 | /* preaction */ | ||
910 | c = a + b; | ||
911 | |||
912 | /* marking of output places */ | ||
913 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 0 ] = a; | ||
914 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 1 ] = b; | ||
915 | petrinet_P3_marking_member_0[ petrinet_P3_is_marked + 2 ] = c; | ||
916 | petrinet_P3_is_marked += 3; | ||
917 | |||
918 | } /* end of if (Transition condition) */ | ||
919 | } | ||
920 | } | ||
921 | #ifdef PROFILING | ||
922 | if ( main_iters_dummy_i < main_min_dummy_i ) | ||
923 | main_min_dummy_i = main_iters_dummy_i; | ||
924 | if ( main_iters_dummy_i > main_max_dummy_i ) | ||
925 | main_max_dummy_i = main_iters_dummy_i; | ||
926 | #endif | ||
927 | |||
928 | #ifdef PROFILING | ||
929 | printf( "main::dummy_i-loop: [%d, %d]\n", | ||
930 | main_min_dummy_i, main_max_dummy_i ); | ||
931 | #endif | ||
932 | |||
933 | //dummy_i = 77; | ||
934 | // TODO: not a good return value | ||
935 | //return dummy_i; | ||
936 | } | ||
937 | |||
938 | |||
939 | void petrinet_init( void ) | ||
940 | { | ||
941 | petrinet_P1_is_marked = 3; | ||
942 | petrinet_P2_is_marked = 5; | ||
943 | petrinet_P3_is_marked = 0; | ||
944 | |||
945 | /* | ||
946 | Maybe we should also initialise these arrays, as they may be read | ||
947 | in the petrinet_main() function before being written. | ||
948 | */ | ||
949 | /* | ||
950 | volatile long petrinet_P1_marking_member_0[ 3 ]; | ||
951 | volatile long petrinet_P2_marking_member_0[ 5 ]; | ||
952 | volatile long petrinet_P3_marking_member_0[ 6 ]; | ||
953 | */ | ||
954 | } | ||
955 | |||
956 | |||
957 | int petrinet_return( void ) | ||
958 | { | ||
959 | // TODO: use something from the Px_... arrays | ||
960 | int checksum = 0; | ||
961 | int i; | ||
962 | |||
963 | for ( i = 0; i < 3; ++i ) | ||
964 | checksum += petrinet_P1_marking_member_0[i]; | ||
965 | |||
966 | for ( i = 0; i < 5; ++i ) | ||
967 | checksum += petrinet_P2_marking_member_0[i]; | ||
968 | |||
969 | for ( i = 0; i < 6; ++i ) | ||
970 | checksum += petrinet_P3_marking_member_0[i]; | ||
971 | |||
972 | return ( ( checksum == petrinet_CHECKSUM ) ? 0 : -1 ); | ||
973 | } | ||
974 | |||
975 | |||
976 | int main( int argc, char **argv ) | ||
977 | { | ||
978 | SET_UP | ||
979 | |||
980 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
981 | |||
982 | START_LOOP | ||
983 | petrinet_main(); | ||
984 | STOP_LOOP | ||
985 | } | ||
986 | WRITE_TO_FILE | ||
987 | |||
988 | return ( petrinet_return() ); | ||
989 | } | ||
990 | |||
diff --git a/baseline/source/rijndael_dec/ChangeLog.txt b/baseline/source/rijndael_dec/ChangeLog.txt new file mode 100644 index 0000000..75e26a8 --- /dev/null +++ b/baseline/source/rijndael_dec/ChangeLog.txt | |||
@@ -0,0 +1,58 @@ | |||
1 | File: rijndael_decoder.c | ||
2 | Source: security section of MiBench | ||
3 | |||
4 | - Prefix library functions with rijndael_dec | ||
5 | - Move functionality from function main into functions | ||
6 | rijndael_enc_init, rijndael_enc_main, and rijndael_enc_return | ||
7 | (reusing code from rijndael_enc benchmark) | ||
8 | - Added general TACLeBench header to beginning of source code | ||
9 | - Applied code formatting with astyle as in the example | ||
10 | - Rename to rijndael_dec.c | ||
11 | - Make loop counter in rijndael_dec_init unsigned | ||
12 | - Remove dead code in rijndael_dec_decfile | ||
13 | |||
14 | File: aes.h | ||
15 | Source: security section of MiBench | ||
16 | |||
17 | 2016-04-20: | ||
18 | - Replace with file aes.h from rijndael_enc benchmark | ||
19 | - Declare prototype for rijndael_enc_decrypt instead of rijndael_enc_encrypt | ||
20 | |||
21 | File: aes.c | ||
22 | Source: security section of MiBench | ||
23 | |||
24 | 2016-04-20: | ||
25 | - Replace with file aes.h from rijndael_enc benchmark, using prefix | ||
26 | rijndael_dec | ||
27 | - Replace implementation for rijndael_enc_encrypt with implementation | ||
28 | for rijndael_enc_decrypt | ||
29 | - Applied code formatting with astyle as in the example | ||
30 | - Remove unused macros s, ff_poly, ff_hi, m1, m2, m3, FFmulX, | ||
31 | fwd_mcol, fwd_var, inv_var, si, so, fwd_rnd, inv_rnd, fwd_lrnd, | ||
32 | inv_lrnd, locals, l_copy, state_in, state_out, round | ||
33 | |||
34 | 2016-06-14: | ||
35 | - Added cast to make C++ compiler happy | ||
36 | |||
37 | File: aestab.h | ||
38 | Source: security section of MiBench | ||
39 | |||
40 | 2016-04-20: | ||
41 | - Replace with file aestab.h from rijndael_enc benchmark, using prefix | ||
42 | rijndael_dec | ||
43 | - Remove unused arrays rijndael_dec_s_box, rijndael_dec_inv_s_box, | ||
44 | rijndael_dec_ft_tab | ||
45 | |||
46 | Files: glibc_common.c, my_file.c, glibc_common.h, my_file.h | ||
47 | Source: security section of MiBench | ||
48 | |||
49 | 2016-04-20: | ||
50 | - Replace with files rijndael_enc_libc.c and rijndael_enc_libc.h from | ||
51 | rijndael_enc benchmark (renamed to rijndael_dec_libc.c and | ||
52 | rijndael_dec_libc.h, using prefix rijndael_dec) | ||
53 | |||
54 | File: input_small_enc.c | ||
55 | Source: security section of MiBench | ||
56 | |||
57 | 2016-02-26: | ||
58 | - Prefix input array with rijndael_dec | ||
diff --git a/baseline/source/rijndael_dec/aes.c b/baseline/source/rijndael_dec/aes.c new file mode 100644 index 0000000..f47adfd --- /dev/null +++ b/baseline/source/rijndael_dec/aes.c | |||
@@ -0,0 +1,406 @@ | |||
1 | /* | ||
2 | ----------------------------------------------------------------------- | ||
3 | Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK | ||
4 | |||
5 | TERMS | ||
6 | |||
7 | Redistribution and use in source and binary forms, with or without | ||
8 | modification, are permitted provided that the following conditions | ||
9 | are met: | ||
10 | 1. Redistributions of source code must retain the above copyright | ||
11 | notice, this list of conditions and the following disclaimer. | ||
12 | 2. Redistributions in binary form must reproduce the above copyright | ||
13 | notice, this list of conditions and the following disclaimer in the | ||
14 | documentation and/or other materials provided with the distribution. | ||
15 | |||
16 | This software is provided 'as is' with no guarantees of correctness or | ||
17 | fitness for purpose. | ||
18 | ----------------------------------------------------------------------- | ||
19 | |||
20 | FUNCTION | ||
21 | |||
22 | The AES algorithm Rijndael implemented for block and key sizes of 128, | ||
23 | bits (16 bytes) by Brian Gladman. | ||
24 | |||
25 | This is an implementation of the AES encryption algorithm (Rijndael) | ||
26 | designed by Joan Daemen and Vincent Rijmen. | ||
27 | */ | ||
28 | |||
29 | #include "aes.h" | ||
30 | |||
31 | #include "aestab.h" | ||
32 | |||
33 | #define four_tables(x,tab,vf,rf,c) ( tab[0][bval(vf(x,0,c),rf(0,c))] ^ \ | ||
34 | tab[1][bval(vf(x,1,c),rf(1,c))] ^ \ | ||
35 | tab[2][bval(vf(x,2,c),rf(2,c))] ^ \ | ||
36 | tab[3][bval(vf(x,3,c),rf(3,c))] ) | ||
37 | |||
38 | #define vf1(x,r,c) (x) | ||
39 | #define rf1(r,c) (r) | ||
40 | #define rf2(r,c) ((r-c)&3) | ||
41 | |||
42 | #define ls_box(x,c) four_tables(x,rijndael_dec_fl_tab,vf1,rf2,c) | ||
43 | |||
44 | #define inv_mcol(x) four_tables(x,rijndael_dec_im_tab,vf1,rf1,0) | ||
45 | |||
46 | /* | ||
47 | Subroutine to set the block size (if variable) in bytes, legal | ||
48 | values being 16, 24 and 32. | ||
49 | */ | ||
50 | |||
51 | #define nc (Ncol) | ||
52 | |||
53 | /* | ||
54 | Initialise the key schedule from the user supplied key. The key | ||
55 | length is now specified in bytes - 16, 24 or 32 as appropriate. | ||
56 | This corresponds to bit lengths of 128, 192 and 256 bits, and | ||
57 | to Nk values of 4, 6 and 8 respectively. | ||
58 | */ | ||
59 | |||
60 | #define mx(t,f) (*t++ = inv_mcol(*f),f++) | ||
61 | #define cp(t,f) *t++ = *f++ | ||
62 | |||
63 | #define cpy(d,s) do { cp(d,s); cp(d,s); cp(d,s); cp(d,s); } while (0) | ||
64 | #define mix(d,s) do { mx(d,s); mx(d,s); mx(d,s); mx(d,s); } while (0) | ||
65 | |||
66 | aes_ret rijndael_dec_set_key( byte in_key[], const word n_bytes, | ||
67 | const enum aes_key f, struct aes *cx ) | ||
68 | { | ||
69 | word *kf, *kt, rci; | ||
70 | |||
71 | if ( ( n_bytes & 7 ) || n_bytes < 16 || n_bytes > 32 || ( !( f & 1 ) && | ||
72 | !( f & 2 ) ) ) | ||
73 | return ( n_bytes ? cx->mode &= ~0x03, aes_bad : ( aes_ret )( cx->Nkey << 2 ) ); | ||
74 | |||
75 | cx->mode = ( cx->mode & ~0x03 ) | ( ( byte )f & 0x03 ); | ||
76 | cx->Nkey = n_bytes >> 2; | ||
77 | cx->Nrnd = Nr( cx->Nkey, ( word )nc ); | ||
78 | |||
79 | cx->e_key[0] = word_in( in_key ); | ||
80 | cx->e_key[1] = word_in( in_key + 4 ); | ||
81 | cx->e_key[2] = word_in( in_key + 8 ); | ||
82 | cx->e_key[3] = word_in( in_key + 12 ); | ||
83 | |||
84 | kf = cx->e_key; | ||
85 | kt = kf + nc * ( cx->Nrnd + 1 ) - cx->Nkey; | ||
86 | rci = 0; | ||
87 | |||
88 | switch ( cx->Nkey ) { | ||
89 | case 4: | ||
90 | _Pragma( "loopbound min 0 max 0" ) | ||
91 | do { | ||
92 | kf[4] = kf[0] ^ ls_box( kf[3], 3 ) ^ rijndael_dec_rcon_tab[rci++]; | ||
93 | kf[5] = kf[1] ^ kf[4]; | ||
94 | kf[6] = kf[2] ^ kf[5]; | ||
95 | kf[7] = kf[3] ^ kf[6]; | ||
96 | kf += 4; | ||
97 | } while ( kf < kt ); | ||
98 | break; | ||
99 | |||
100 | case 6: | ||
101 | cx->e_key[4] = word_in( in_key + 16 ); | ||
102 | cx->e_key[5] = word_in( in_key + 20 ); | ||
103 | _Pragma( "loopbound min 0 max 0" ) | ||
104 | do { | ||
105 | kf[ 6] = kf[0] ^ ls_box( kf[5], 3 ) ^ rijndael_dec_rcon_tab[rci++]; | ||
106 | kf[ 7] = kf[1] ^ kf[ 6]; | ||
107 | kf[ 8] = kf[2] ^ kf[ 7]; | ||
108 | kf[ 9] = kf[3] ^ kf[ 8]; | ||
109 | kf[10] = kf[4] ^ kf[ 9]; | ||
110 | kf[11] = kf[5] ^ kf[10]; | ||
111 | kf += 6; | ||
112 | } while ( kf < kt ); | ||
113 | break; | ||
114 | |||
115 | case 8: | ||
116 | cx->e_key[4] = word_in( in_key + 16 ); | ||
117 | cx->e_key[5] = word_in( in_key + 20 ); | ||
118 | cx->e_key[6] = word_in( in_key + 24 ); | ||
119 | cx->e_key[7] = word_in( in_key + 28 ); | ||
120 | _Pragma( "loopbound min 7 max 7" ) | ||
121 | do { | ||
122 | kf[ 8] = kf[0] ^ ls_box( kf[7], 3 ) ^ rijndael_dec_rcon_tab[rci++]; | ||
123 | kf[ 9] = kf[1] ^ kf[ 8]; | ||
124 | kf[10] = kf[2] ^ kf[ 9]; | ||
125 | kf[11] = kf[3] ^ kf[10]; | ||
126 | kf[12] = kf[4] ^ ls_box( kf[11], 0 ); | ||
127 | kf[13] = kf[5] ^ kf[12]; | ||
128 | kf[14] = kf[6] ^ kf[13]; | ||
129 | kf[15] = kf[7] ^ kf[14]; | ||
130 | kf += 8; | ||
131 | } while ( kf < kt ); | ||
132 | break; | ||
133 | } | ||
134 | |||
135 | if ( ( cx->mode & 3 ) != enc ) { | ||
136 | word i; | ||
137 | |||
138 | kt = cx->d_key + nc * cx->Nrnd; | ||
139 | kf = cx->e_key; | ||
140 | |||
141 | cpy( kt, kf ); | ||
142 | kt -= 2 * nc; | ||
143 | |||
144 | _Pragma( "loopbound min 0 max 0" ) | ||
145 | for ( i = 1; i < cx->Nrnd; ++i ) { | ||
146 | mix( kt, kf ); | ||
147 | kt -= 2 * nc; | ||
148 | } | ||
149 | |||
150 | cpy( kt, kf ); | ||
151 | } | ||
152 | |||
153 | return aes_good; | ||
154 | } | ||
155 | |||
156 | short rijndael_dec_decrypt( const unsigned char in_blk[], | ||
157 | unsigned char out_blk[], const struct aes *cx ) | ||
158 | { | ||
159 | const unsigned long *kp = cx->d_key; | ||
160 | if ( !( cx->mode & 2 ) ) | ||
161 | return 0; | ||
162 | unsigned long b0[4]; | ||
163 | b0[0] = *( unsigned long * )in_blk ^ kp[0]; | ||
164 | b0[1] = *( unsigned long * )( in_blk + 4 )^kp[1]; | ||
165 | b0[2] = *( unsigned long * )( in_blk + 8 )^kp[2]; | ||
166 | b0[3] = *( unsigned long * )( in_blk + 12 )^kp[3]; | ||
167 | kp += 4; | ||
168 | unsigned long b1[4]; | ||
169 | switch ( cx->Nrnd ) { | ||
170 | case 14: | ||
171 | b1[0] = kp[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^ | ||
172 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
173 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
174 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
175 | b1[1] = kp[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^ | ||
176 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
177 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
178 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
179 | b1[2] = kp[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^ | ||
180 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
181 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
182 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
183 | b1[3] = kp[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^ | ||
184 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
185 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
186 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
187 | b0[0] = ( kp + 4 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^ | ||
188 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
189 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
190 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
191 | b0[1] = ( kp + 4 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^ | ||
192 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
193 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
194 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
195 | b0[2] = ( kp + 4 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^ | ||
196 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
197 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
198 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
199 | b0[3] = ( kp + 4 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^ | ||
200 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
201 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
202 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
203 | kp += 8; | ||
204 | case 12: | ||
205 | b1[0] = kp[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^ | ||
206 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
207 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
208 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
209 | b1[1] = kp[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^ | ||
210 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
211 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
212 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
213 | b1[2] = kp[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^ | ||
214 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
215 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
216 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
217 | b1[3] = kp[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^ | ||
218 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
219 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
220 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
221 | b0[0] = ( kp + 4 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^ | ||
222 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
223 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
224 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
225 | b0[1] = ( kp + 4 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^ | ||
226 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
227 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
228 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
229 | b0[2] = ( kp + 4 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^ | ||
230 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
231 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
232 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
233 | b0[3] = ( kp + 4 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^ | ||
234 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
235 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
236 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
237 | kp += 8; | ||
238 | case 10: | ||
239 | b1[0] = kp[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^ | ||
240 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
241 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
242 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
243 | b1[1] = kp[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^ | ||
244 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
245 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
246 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
247 | b1[2] = kp[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^ | ||
248 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
249 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
250 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
251 | b1[3] = kp[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^ | ||
252 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
253 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
254 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
255 | b0[0] = ( kp + 4 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^ | ||
256 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
257 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
258 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
259 | b0[1] = ( kp + 4 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^ | ||
260 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
261 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
262 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
263 | b0[2] = ( kp + 4 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^ | ||
264 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
265 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
266 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
267 | b0[3] = ( kp + 4 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^ | ||
268 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
269 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
270 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
271 | b1[0] = ( kp + 8 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^ | ||
272 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
273 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
274 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
275 | b1[1] = ( kp + 8 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^ | ||
276 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
277 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
278 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
279 | b1[2] = ( kp + 8 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^ | ||
280 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
281 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
282 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
283 | b1[3] = ( kp + 8 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^ | ||
284 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
285 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
286 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
287 | b0[0] = ( kp + 12 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^ | ||
288 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
289 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
290 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
291 | b0[1] = ( kp + 12 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^ | ||
292 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
293 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
294 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
295 | b0[2] = ( kp + 12 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^ | ||
296 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
297 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
298 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
299 | b0[3] = ( kp + 12 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^ | ||
300 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
301 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
302 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
303 | b1[0] = ( kp + 16 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^ | ||
304 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
305 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
306 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
307 | b1[1] = ( kp + 16 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^ | ||
308 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
309 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
310 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
311 | b1[2] = ( kp + 16 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^ | ||
312 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
313 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
314 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
315 | b1[3] = ( kp + 16 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^ | ||
316 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
317 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
318 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
319 | b0[0] = ( kp + 20 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^ | ||
320 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
321 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
322 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
323 | b0[1] = ( kp + 20 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^ | ||
324 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
325 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
326 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
327 | b0[2] = ( kp + 20 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^ | ||
328 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
329 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
330 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
331 | b0[3] = ( kp + 20 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^ | ||
332 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
333 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
334 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
335 | b1[0] = ( kp + 24 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^ | ||
336 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
337 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
338 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
339 | b1[1] = ( kp + 24 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^ | ||
340 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
341 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
342 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
343 | b1[2] = ( kp + 24 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^ | ||
344 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
345 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
346 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
347 | b1[3] = ( kp + 24 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^ | ||
348 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
349 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
350 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
351 | b0[0] = ( kp + 28 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^ | ||
352 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
353 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
354 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
355 | b0[1] = ( kp + 28 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^ | ||
356 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
357 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
358 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
359 | b0[2] = ( kp + 28 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^ | ||
360 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
361 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
362 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
363 | b0[3] = ( kp + 28 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^ | ||
364 | rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
365 | rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
366 | rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
367 | b1[0] = ( kp + 32 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^ | ||
368 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
369 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
370 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
371 | b1[1] = ( kp + 32 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^ | ||
372 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
373 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
374 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
375 | b1[2] = ( kp + 32 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^ | ||
376 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
377 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
378 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
379 | b1[3] = ( kp + 32 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^ | ||
380 | rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
381 | rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
382 | rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
383 | b0[0] = ( kp + 36 )[0] ^ ( rijndael_dec_il_tab[0][( ( unsigned char )b1[0] )] ^ | ||
384 | rijndael_dec_il_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
385 | rijndael_dec_il_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
386 | rijndael_dec_il_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
387 | b0[1] = ( kp + 36 )[1] ^ ( rijndael_dec_il_tab[0][( ( unsigned char )b1[1] )] ^ | ||
388 | rijndael_dec_il_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
389 | rijndael_dec_il_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
390 | rijndael_dec_il_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
391 | b0[2] = ( kp + 36 )[2] ^ ( rijndael_dec_il_tab[0][( ( unsigned char )b1[2] )] ^ | ||
392 | rijndael_dec_il_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
393 | rijndael_dec_il_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
394 | rijndael_dec_il_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
395 | b0[3] = ( kp + 36 )[3] ^ ( rijndael_dec_il_tab[0][( ( unsigned char )b1[3] )] ^ | ||
396 | rijndael_dec_il_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
397 | rijndael_dec_il_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
398 | rijndael_dec_il_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
399 | } | ||
400 | *( unsigned long * )out_blk = ( b0[0] ); | ||
401 | *( unsigned long * )( out_blk + 4 ) = ( b0[1] ); | ||
402 | *( unsigned long * )( out_blk + 8 ) = ( b0[2] ); | ||
403 | *( unsigned long * )( out_blk + 12 ) = ( b0[3] ); | ||
404 | return aes_good; | ||
405 | } | ||
406 | |||
diff --git a/baseline/source/rijndael_dec/aes.h b/baseline/source/rijndael_dec/aes.h new file mode 100644 index 0000000..69bf3d3 --- /dev/null +++ b/baseline/source/rijndael_dec/aes.h | |||
@@ -0,0 +1,165 @@ | |||
1 | /* | ||
2 | ----------------------------------------------------------------------- | ||
3 | Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK | ||
4 | |||
5 | TERMS | ||
6 | |||
7 | Redistribution and use in source and binary forms, with or without | ||
8 | modification, are permitted provided that the following conditions | ||
9 | are met: | ||
10 | 1. Redistributions of source code must retain the above copyright | ||
11 | notice, this list of conditions and the following disclaimer. | ||
12 | 2. Redistributions in binary form must reproduce the above copyright | ||
13 | notice, this list of conditions and the following disclaimer in the | ||
14 | documentation and/or other materials provided with the distribution. | ||
15 | |||
16 | This software is provided 'as is' with no guarantees of correctness or | ||
17 | fitness for purpose. | ||
18 | ----------------------------------------------------------------------- | ||
19 | |||
20 | 1. FUNCTION | ||
21 | |||
22 | The AES algorithm Rijndael implemented for block and key sizes of | ||
23 | 128 bits (16 bytes) by Brian Gladman. | ||
24 | |||
25 | This is an implementation of the AES encryption algorithm (Rijndael) | ||
26 | designed by Joan Daemen and Vincent Rijmen. | ||
27 | |||
28 | 2. THE CIPHER INTERFACE | ||
29 | |||
30 | byte (an unsigned 8-bit type) | ||
31 | word (an unsigned 32-bit type) | ||
32 | aes_ret: (a signed 16 bit type for function return values) | ||
33 | aes_good (value != 0, a good return) | ||
34 | aes_bad (value == 0, an error return) | ||
35 | enum aes_key: (encryption direction) | ||
36 | enc (set key for encryption) | ||
37 | dec (set key for decryption) | ||
38 | both (set key for both) | ||
39 | class or struct aes (structure for context) | ||
40 | |||
41 | C subroutine calls: | ||
42 | |||
43 | aes_ret set_blk(const word block_length, aes *cx) (variable block size) | ||
44 | aes_ret set_key(const byte key[], const word key_length, | ||
45 | const enum aes_key direction, aes *cx) | ||
46 | aes_ret encrypt(const byte input_blk[], byte output_blk[], const aes *cx) | ||
47 | aes_ret decrypt(const byte input_blk[], byte output_blk[], const aes *cx) | ||
48 | |||
49 | IMPORTANT NOTE: If you are using this C interface and your compiler does | ||
50 | not set the memory used for objects to zero before use, you will need to | ||
51 | ensure that cx.mode is set to zero before using the C subroutine calls. | ||
52 | |||
53 | The block length inputs to set_block and set_key are in numbers of | ||
54 | BYTES, not bits. The calls to subroutines must be made in the above | ||
55 | order but multiple calls can be made without repeating earlier calls | ||
56 | if their parameters have not changed. If the cipher block length is | ||
57 | variable but set_blk has not been called before cipher operations a | ||
58 | value of 16 is assumed (that is, the AES block size). In contrast to | ||
59 | earlier versions the block and key length parameters are now checked | ||
60 | for correctness and the encryption and decryption routines check to | ||
61 | ensure that an appropriate key has been set before they are called. | ||
62 | |||
63 | */ | ||
64 | |||
65 | #ifndef _AES_H | ||
66 | #define _AES_H | ||
67 | |||
68 | /* The only supported block size for the benchmark is 16 */ | ||
69 | #define BLOCK_SIZE 16 | ||
70 | |||
71 | /* | ||
72 | The number of key schedule words for different block and key lengths | ||
73 | (allowing for the method of computation which requires the length to | ||
74 | be a multiple of the key length): | ||
75 | |||
76 | Key Schedule key length (bytes) | ||
77 | Length 16 20 24 28 32 | ||
78 | --------------------- | ||
79 | block 16 | 44 60 54 56 64 | ||
80 | length 20 | 60 60 66 70 80 | ||
81 | (bytes) 24 | 80 80 78 84 96 | ||
82 | 28 | 100 100 102 98 112 | ||
83 | 32 | 120 120 120 126 120 | ||
84 | |||
85 | Rcon Table key length (bytes) | ||
86 | Length 16 20 24 28 32 | ||
87 | --------------------- | ||
88 | block 16 | 10 9 8 7 7 | ||
89 | length 20 | 14 11 10 9 9 | ||
90 | (bytes) 24 | 19 15 12 11 11 | ||
91 | 28 | 24 19 16 13 13 | ||
92 | 32 | 29 23 19 17 14 | ||
93 | |||
94 | The following values assume that the key length will be variable and may | ||
95 | be of maximum length (32 bytes). | ||
96 | |||
97 | Nk = number_of_key_bytes / 4 | ||
98 | Nc = number_of_columns_in_state / 4 | ||
99 | Nr = number of encryption/decryption rounds | ||
100 | Rc = number of elements in rcon table | ||
101 | Ks = number of 32-bit words in key schedule | ||
102 | */ | ||
103 | |||
104 | #define Nr(Nk,Nc) ((Nk > Nc ? Nk : Nc) + 6) | ||
105 | #define Rc(Nk,Nc) ((Nb * (Nr(Nk,Nc) + 1) - 1) / Nk) | ||
106 | #define Ks(Nk,Nc) (Nk * (Rc(Nk,Nc) + 1)) | ||
107 | |||
108 | #define RC_LENGTH 5 * BLOCK_SIZE / 4 - (BLOCK_SIZE == 16 ? 10 : 11) | ||
109 | #define KS_LENGTH 4 * BLOCK_SIZE | ||
110 | |||
111 | /* End of configuration options, but see also aes.c */ | ||
112 | |||
113 | typedef unsigned char byte; /* must be an 8-bit storage unit */ | ||
114 | typedef unsigned long word; /* must be a 32-bit storage unit */ | ||
115 | typedef short aes_ret; /* function return value */ | ||
116 | |||
117 | #define aes_bad 0 | ||
118 | #define aes_good 1 | ||
119 | |||
120 | /* | ||
121 | upr(x,n): rotates bytes within words by n positions, moving bytes | ||
122 | to higher index positions with wrap around into low positions | ||
123 | ups(x,n): moves bytes by n positions to higher index positions in | ||
124 | words but without wrap around | ||
125 | bval(x,n): extracts a byte from a word | ||
126 | */ | ||
127 | |||
128 | #define upr(x,n) (((x) << 8 * (n)) | ((x) >> (32 - 8 * (n)))) | ||
129 | #define ups(x,n) ((x) << 8 * (n)) | ||
130 | #define bval(x,n) ((byte)((x) >> 8 * (n))) | ||
131 | #define byte_swap(x) (upr(x,1) & 0x00ff00ff | upr(x,3) & 0xff00ff00) | ||
132 | #define bytes2word(b0, b1, b2, b3) ((word)(b3) << 24 | (word)(b2) << 16 | \ | ||
133 | (word)(b1) << 8 | (b0)) | ||
134 | |||
135 | #define word_in(x) *(word*)(x) | ||
136 | #define word_out(x,v) *(word*)(x) = (v) | ||
137 | |||
138 | enum aes_const { Nrow = 4, /* the number of rows in the cipher state */ | ||
139 | Mcol = 8, /* maximum number of columns in the state */ | ||
140 | Ncol = BLOCK_SIZE / 4, | ||
141 | Shr0 = 0, /* the cyclic shift values for rows 0, 1, 2 & 3 */ | ||
142 | Shr1 = 1, | ||
143 | Shr2 = BLOCK_SIZE == 32 ? 3 : 2, | ||
144 | Shr3 = BLOCK_SIZE == 32 ? 4 : 3 | ||
145 | }; | ||
146 | |||
147 | enum aes_key { enc = 1, /* set if encryption is needed */ | ||
148 | dec = 2, /* set if decryption is needed */ | ||
149 | both = 3 /* set if both are needed */ | ||
150 | }; | ||
151 | |||
152 | struct aes { | ||
153 | word Nkey; /* the number of words in the key input block */ | ||
154 | word Nrnd; /* the number of cipher rounds */ | ||
155 | word e_key[KS_LENGTH]; /* the encryption key schedule */ | ||
156 | word d_key[KS_LENGTH]; /* the decryption key schedule */ | ||
157 | byte mode; /* encrypt, decrypt or both */ | ||
158 | }; | ||
159 | |||
160 | aes_ret rijndael_dec_set_key( byte key[], const word n_bytes, | ||
161 | const enum aes_key f, struct aes *cx ); | ||
162 | aes_ret rijndael_dec_decrypt( const byte in_blk[], byte out_blk[], | ||
163 | const struct aes *cx ); | ||
164 | |||
165 | #endif | ||
diff --git a/baseline/source/rijndael_dec/aestab.h b/baseline/source/rijndael_dec/aestab.h new file mode 100644 index 0000000..c42702b --- /dev/null +++ b/baseline/source/rijndael_dec/aestab.h | |||
@@ -0,0 +1,379 @@ | |||
1 | |||
2 | /* | ||
3 | ----------------------------------------------------------------------- | ||
4 | Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK | ||
5 | |||
6 | TERMS | ||
7 | |||
8 | Redistribution and use in source and binary forms, with or without | ||
9 | modification, are permitted provided that the following conditions | ||
10 | are met: | ||
11 | 1. Redistributions of source code must retain the above copyright | ||
12 | notice, this list of conditions and the following disclaimer. | ||
13 | 2. Redistributions in binary form must reproduce the above copyright | ||
14 | notice, this list of conditions and the following disclaimer in the | ||
15 | documentation and/or other materials provided with the distribution. | ||
16 | |||
17 | This software is provided 'as is' with no guarantees of correctness or | ||
18 | fitness for purpose. | ||
19 | ----------------------------------------------------------------------- | ||
20 | */ | ||
21 | |||
22 | /* | ||
23 | Used to ensure table is generated in the right format | ||
24 | depending on the internal byte order required. | ||
25 | */ | ||
26 | |||
27 | #define w0(p) 0x000000##p | ||
28 | |||
29 | /* | ||
30 | Number of elements required in this table for different | ||
31 | block and key lengths is: | ||
32 | |||
33 | Rcon Table key length (bytes) | ||
34 | Length 16 20 24 28 32 | ||
35 | --------------------- | ||
36 | block 16 | 10 9 8 7 7 | ||
37 | length 20 | 14 11 10 9 9 | ||
38 | (bytes) 24 | 19 15 12 11 11 | ||
39 | 28 | 24 19 16 13 13 | ||
40 | 32 | 29 23 19 17 14 | ||
41 | |||
42 | this table can be a table of bytes if the key schedule | ||
43 | code is adjusted accordingly | ||
44 | */ | ||
45 | |||
46 | const word rijndael_dec_rcon_tab[29] = { | ||
47 | w0( 01 ), w0( 02 ), w0( 04 ), w0( 08 ), | ||
48 | w0( 10 ), w0( 20 ), w0( 40 ), w0( 80 ), | ||
49 | w0( 1b ), w0( 36 ), w0( 6c ), w0( d8 ), | ||
50 | w0( ab ), w0( 4d ), w0( 9a ), w0( 2f ), | ||
51 | w0( 5e ), w0( bc ), w0( 63 ), w0( c6 ), | ||
52 | w0( 97 ), w0( 35 ), w0( 6a ), w0( d4 ), | ||
53 | w0( b3 ), w0( 7d ), w0( fa ), w0( ef ), | ||
54 | w0( c5 ) | ||
55 | }; | ||
56 | |||
57 | #undef w0 | ||
58 | |||
59 | /* | ||
60 | used to ensure table is generated in the right format | ||
61 | depending on the internal byte order required | ||
62 | */ | ||
63 | |||
64 | #define r0(p,q,r,s) 0x##p##q##r##s | ||
65 | #define r1(p,q,r,s) 0x##q##r##s##p | ||
66 | #define r2(p,q,r,s) 0x##r##s##p##q | ||
67 | #define r3(p,q,r,s) 0x##s##p##q##r | ||
68 | #define w0(p) 0x000000##p | ||
69 | #define w1(p) 0x0000##p##00 | ||
70 | #define w2(p) 0x00##p##0000 | ||
71 | #define w3(p) 0x##p##000000 | ||
72 | |||
73 | /* | ||
74 | used to ensure table is generated in the right format | ||
75 | depending on the internal byte order required | ||
76 | */ | ||
77 | |||
78 | /* data for forward tables (other than last round) */ | ||
79 | |||
80 | #define f_table \ | ||
81 | r(a5,63,63,c6), r(84,7c,7c,f8), r(99,77,77,ee), r(8d,7b,7b,f6), \ | ||
82 | r(0d,f2,f2,ff), r(bd,6b,6b,d6), r(b1,6f,6f,de), r(54,c5,c5,91), \ | ||
83 | r(50,30,30,60), r(03,01,01,02), r(a9,67,67,ce), r(7d,2b,2b,56), \ | ||
84 | r(19,fe,fe,e7), r(62,d7,d7,b5), r(e6,ab,ab,4d), r(9a,76,76,ec), \ | ||
85 | r(45,ca,ca,8f), r(9d,82,82,1f), r(40,c9,c9,89), r(87,7d,7d,fa), \ | ||
86 | r(15,fa,fa,ef), r(eb,59,59,b2), r(c9,47,47,8e), r(0b,f0,f0,fb), \ | ||
87 | r(ec,ad,ad,41), r(67,d4,d4,b3), r(fd,a2,a2,5f), r(ea,af,af,45), \ | ||
88 | r(bf,9c,9c,23), r(f7,a4,a4,53), r(96,72,72,e4), r(5b,c0,c0,9b), \ | ||
89 | r(c2,b7,b7,75), r(1c,fd,fd,e1), r(ae,93,93,3d), r(6a,26,26,4c), \ | ||
90 | r(5a,36,36,6c), r(41,3f,3f,7e), r(02,f7,f7,f5), r(4f,cc,cc,83), \ | ||
91 | r(5c,34,34,68), r(f4,a5,a5,51), r(34,e5,e5,d1), r(08,f1,f1,f9), \ | ||
92 | r(93,71,71,e2), r(73,d8,d8,ab), r(53,31,31,62), r(3f,15,15,2a), \ | ||
93 | r(0c,04,04,08), r(52,c7,c7,95), r(65,23,23,46), r(5e,c3,c3,9d), \ | ||
94 | r(28,18,18,30), r(a1,96,96,37), r(0f,05,05,0a), r(b5,9a,9a,2f), \ | ||
95 | r(09,07,07,0e), r(36,12,12,24), r(9b,80,80,1b), r(3d,e2,e2,df), \ | ||
96 | r(26,eb,eb,cd), r(69,27,27,4e), r(cd,b2,b2,7f), r(9f,75,75,ea), \ | ||
97 | r(1b,09,09,12), r(9e,83,83,1d), r(74,2c,2c,58), r(2e,1a,1a,34), \ | ||
98 | r(2d,1b,1b,36), r(b2,6e,6e,dc), r(ee,5a,5a,b4), r(fb,a0,a0,5b), \ | ||
99 | r(f6,52,52,a4), r(4d,3b,3b,76), r(61,d6,d6,b7), r(ce,b3,b3,7d), \ | ||
100 | r(7b,29,29,52), r(3e,e3,e3,dd), r(71,2f,2f,5e), r(97,84,84,13), \ | ||
101 | r(f5,53,53,a6), r(68,d1,d1,b9), r(00,00,00,00), r(2c,ed,ed,c1), \ | ||
102 | r(60,20,20,40), r(1f,fc,fc,e3), r(c8,b1,b1,79), r(ed,5b,5b,b6), \ | ||
103 | r(be,6a,6a,d4), r(46,cb,cb,8d), r(d9,be,be,67), r(4b,39,39,72), \ | ||
104 | r(de,4a,4a,94), r(d4,4c,4c,98), r(e8,58,58,b0), r(4a,cf,cf,85), \ | ||
105 | r(6b,d0,d0,bb), r(2a,ef,ef,c5), r(e5,aa,aa,4f), r(16,fb,fb,ed), \ | ||
106 | r(c5,43,43,86), r(d7,4d,4d,9a), r(55,33,33,66), r(94,85,85,11), \ | ||
107 | r(cf,45,45,8a), r(10,f9,f9,e9), r(06,02,02,04), r(81,7f,7f,fe), \ | ||
108 | r(f0,50,50,a0), r(44,3c,3c,78), r(ba,9f,9f,25), r(e3,a8,a8,4b), \ | ||
109 | r(f3,51,51,a2), r(fe,a3,a3,5d), r(c0,40,40,80), r(8a,8f,8f,05), \ | ||
110 | r(ad,92,92,3f), r(bc,9d,9d,21), r(48,38,38,70), r(04,f5,f5,f1), \ | ||
111 | r(df,bc,bc,63), r(c1,b6,b6,77), r(75,da,da,af), r(63,21,21,42), \ | ||
112 | r(30,10,10,20), r(1a,ff,ff,e5), r(0e,f3,f3,fd), r(6d,d2,d2,bf), \ | ||
113 | r(4c,cd,cd,81), r(14,0c,0c,18), r(35,13,13,26), r(2f,ec,ec,c3), \ | ||
114 | r(e1,5f,5f,be), r(a2,97,97,35), r(cc,44,44,88), r(39,17,17,2e), \ | ||
115 | r(57,c4,c4,93), r(f2,a7,a7,55), r(82,7e,7e,fc), r(47,3d,3d,7a), \ | ||
116 | r(ac,64,64,c8), r(e7,5d,5d,ba), r(2b,19,19,32), r(95,73,73,e6), \ | ||
117 | r(a0,60,60,c0), r(98,81,81,19), r(d1,4f,4f,9e), r(7f,dc,dc,a3), \ | ||
118 | r(66,22,22,44), r(7e,2a,2a,54), r(ab,90,90,3b), r(83,88,88,0b), \ | ||
119 | r(ca,46,46,8c), r(29,ee,ee,c7), r(d3,b8,b8,6b), r(3c,14,14,28), \ | ||
120 | r(79,de,de,a7), r(e2,5e,5e,bc), r(1d,0b,0b,16), r(76,db,db,ad), \ | ||
121 | r(3b,e0,e0,db), r(56,32,32,64), r(4e,3a,3a,74), r(1e,0a,0a,14), \ | ||
122 | r(db,49,49,92), r(0a,06,06,0c), r(6c,24,24,48), r(e4,5c,5c,b8), \ | ||
123 | r(5d,c2,c2,9f), r(6e,d3,d3,bd), r(ef,ac,ac,43), r(a6,62,62,c4), \ | ||
124 | r(a8,91,91,39), r(a4,95,95,31), r(37,e4,e4,d3), r(8b,79,79,f2), \ | ||
125 | r(32,e7,e7,d5), r(43,c8,c8,8b), r(59,37,37,6e), r(b7,6d,6d,da), \ | ||
126 | r(8c,8d,8d,01), r(64,d5,d5,b1), r(d2,4e,4e,9c), r(e0,a9,a9,49), \ | ||
127 | r(b4,6c,6c,d8), r(fa,56,56,ac), r(07,f4,f4,f3), r(25,ea,ea,cf), \ | ||
128 | r(af,65,65,ca), r(8e,7a,7a,f4), r(e9,ae,ae,47), r(18,08,08,10), \ | ||
129 | r(d5,ba,ba,6f), r(88,78,78,f0), r(6f,25,25,4a), r(72,2e,2e,5c), \ | ||
130 | r(24,1c,1c,38), r(f1,a6,a6,57), r(c7,b4,b4,73), r(51,c6,c6,97), \ | ||
131 | r(23,e8,e8,cb), r(7c,dd,dd,a1), r(9c,74,74,e8), r(21,1f,1f,3e), \ | ||
132 | r(dd,4b,4b,96), r(dc,bd,bd,61), r(86,8b,8b,0d), r(85,8a,8a,0f), \ | ||
133 | r(90,70,70,e0), r(42,3e,3e,7c), r(c4,b5,b5,71), r(aa,66,66,cc), \ | ||
134 | r(d8,48,48,90), r(05,03,03,06), r(01,f6,f6,f7), r(12,0e,0e,1c), \ | ||
135 | r(a3,61,61,c2), r(5f,35,35,6a), r(f9,57,57,ae), r(d0,b9,b9,69), \ | ||
136 | r(91,86,86,17), r(58,c1,c1,99), r(27,1d,1d,3a), r(b9,9e,9e,27), \ | ||
137 | r(38,e1,e1,d9), r(13,f8,f8,eb), r(b3,98,98,2b), r(33,11,11,22), \ | ||
138 | r(bb,69,69,d2), r(70,d9,d9,a9), r(89,8e,8e,07), r(a7,94,94,33), \ | ||
139 | r(b6,9b,9b,2d), r(22,1e,1e,3c), r(92,87,87,15), r(20,e9,e9,c9), \ | ||
140 | r(49,ce,ce,87), r(ff,55,55,aa), r(78,28,28,50), r(7a,df,df,a5), \ | ||
141 | r(8f,8c,8c,03), r(f8,a1,a1,59), r(80,89,89,09), r(17,0d,0d,1a), \ | ||
142 | r(da,bf,bf,65), r(31,e6,e6,d7), r(c6,42,42,84), r(b8,68,68,d0), \ | ||
143 | r(c3,41,41,82), r(b0,99,99,29), r(77,2d,2d,5a), r(11,0f,0f,1e), \ | ||
144 | r(cb,b0,b0,7b), r(fc,54,54,a8), r(d6,bb,bb,6d), r(3a,16,16,2c) | ||
145 | |||
146 | /* data for inverse tables (other than last round) */ | ||
147 | |||
148 | #define i_table \ | ||
149 | r(50,a7,f4,51), r(53,65,41,7e), r(c3,a4,17,1a), r(96,5e,27,3a), \ | ||
150 | r(cb,6b,ab,3b), r(f1,45,9d,1f), r(ab,58,fa,ac), r(93,03,e3,4b), \ | ||
151 | r(55,fa,30,20), r(f6,6d,76,ad), r(91,76,cc,88), r(25,4c,02,f5), \ | ||
152 | r(fc,d7,e5,4f), r(d7,cb,2a,c5), r(80,44,35,26), r(8f,a3,62,b5), \ | ||
153 | r(49,5a,b1,de), r(67,1b,ba,25), r(98,0e,ea,45), r(e1,c0,fe,5d), \ | ||
154 | r(02,75,2f,c3), r(12,f0,4c,81), r(a3,97,46,8d), r(c6,f9,d3,6b), \ | ||
155 | r(e7,5f,8f,03), r(95,9c,92,15), r(eb,7a,6d,bf), r(da,59,52,95), \ | ||
156 | r(2d,83,be,d4), r(d3,21,74,58), r(29,69,e0,49), r(44,c8,c9,8e), \ | ||
157 | r(6a,89,c2,75), r(78,79,8e,f4), r(6b,3e,58,99), r(dd,71,b9,27), \ | ||
158 | r(b6,4f,e1,be), r(17,ad,88,f0), r(66,ac,20,c9), r(b4,3a,ce,7d), \ | ||
159 | r(18,4a,df,63), r(82,31,1a,e5), r(60,33,51,97), r(45,7f,53,62), \ | ||
160 | r(e0,77,64,b1), r(84,ae,6b,bb), r(1c,a0,81,fe), r(94,2b,08,f9), \ | ||
161 | r(58,68,48,70), r(19,fd,45,8f), r(87,6c,de,94), r(b7,f8,7b,52), \ | ||
162 | r(23,d3,73,ab), r(e2,02,4b,72), r(57,8f,1f,e3), r(2a,ab,55,66), \ | ||
163 | r(07,28,eb,b2), r(03,c2,b5,2f), r(9a,7b,c5,86), r(a5,08,37,d3), \ | ||
164 | r(f2,87,28,30), r(b2,a5,bf,23), r(ba,6a,03,02), r(5c,82,16,ed), \ | ||
165 | r(2b,1c,cf,8a), r(92,b4,79,a7), r(f0,f2,07,f3), r(a1,e2,69,4e), \ | ||
166 | r(cd,f4,da,65), r(d5,be,05,06), r(1f,62,34,d1), r(8a,fe,a6,c4), \ | ||
167 | r(9d,53,2e,34), r(a0,55,f3,a2), r(32,e1,8a,05), r(75,eb,f6,a4), \ | ||
168 | r(39,ec,83,0b), r(aa,ef,60,40), r(06,9f,71,5e), r(51,10,6e,bd), \ | ||
169 | r(f9,8a,21,3e), r(3d,06,dd,96), r(ae,05,3e,dd), r(46,bd,e6,4d), \ | ||
170 | r(b5,8d,54,91), r(05,5d,c4,71), r(6f,d4,06,04), r(ff,15,50,60), \ | ||
171 | r(24,fb,98,19), r(97,e9,bd,d6), r(cc,43,40,89), r(77,9e,d9,67), \ | ||
172 | r(bd,42,e8,b0), r(88,8b,89,07), r(38,5b,19,e7), r(db,ee,c8,79), \ | ||
173 | r(47,0a,7c,a1), r(e9,0f,42,7c), r(c9,1e,84,f8), r(00,00,00,00), \ | ||
174 | r(83,86,80,09), r(48,ed,2b,32), r(ac,70,11,1e), r(4e,72,5a,6c), \ | ||
175 | r(fb,ff,0e,fd), r(56,38,85,0f), r(1e,d5,ae,3d), r(27,39,2d,36), \ | ||
176 | r(64,d9,0f,0a), r(21,a6,5c,68), r(d1,54,5b,9b), r(3a,2e,36,24), \ | ||
177 | r(b1,67,0a,0c), r(0f,e7,57,93), r(d2,96,ee,b4), r(9e,91,9b,1b), \ | ||
178 | r(4f,c5,c0,80), r(a2,20,dc,61), r(69,4b,77,5a), r(16,1a,12,1c), \ | ||
179 | r(0a,ba,93,e2), r(e5,2a,a0,c0), r(43,e0,22,3c), r(1d,17,1b,12), \ | ||
180 | r(0b,0d,09,0e), r(ad,c7,8b,f2), r(b9,a8,b6,2d), r(c8,a9,1e,14), \ | ||
181 | r(85,19,f1,57), r(4c,07,75,af), r(bb,dd,99,ee), r(fd,60,7f,a3), \ | ||
182 | r(9f,26,01,f7), r(bc,f5,72,5c), r(c5,3b,66,44), r(34,7e,fb,5b), \ | ||
183 | r(76,29,43,8b), r(dc,c6,23,cb), r(68,fc,ed,b6), r(63,f1,e4,b8), \ | ||
184 | r(ca,dc,31,d7), r(10,85,63,42), r(40,22,97,13), r(20,11,c6,84), \ | ||
185 | r(7d,24,4a,85), r(f8,3d,bb,d2), r(11,32,f9,ae), r(6d,a1,29,c7), \ | ||
186 | r(4b,2f,9e,1d), r(f3,30,b2,dc), r(ec,52,86,0d), r(d0,e3,c1,77), \ | ||
187 | r(6c,16,b3,2b), r(99,b9,70,a9), r(fa,48,94,11), r(22,64,e9,47), \ | ||
188 | r(c4,8c,fc,a8), r(1a,3f,f0,a0), r(d8,2c,7d,56), r(ef,90,33,22), \ | ||
189 | r(c7,4e,49,87), r(c1,d1,38,d9), r(fe,a2,ca,8c), r(36,0b,d4,98), \ | ||
190 | r(cf,81,f5,a6), r(28,de,7a,a5), r(26,8e,b7,da), r(a4,bf,ad,3f), \ | ||
191 | r(e4,9d,3a,2c), r(0d,92,78,50), r(9b,cc,5f,6a), r(62,46,7e,54), \ | ||
192 | r(c2,13,8d,f6), r(e8,b8,d8,90), r(5e,f7,39,2e), r(f5,af,c3,82), \ | ||
193 | r(be,80,5d,9f), r(7c,93,d0,69), r(a9,2d,d5,6f), r(b3,12,25,cf), \ | ||
194 | r(3b,99,ac,c8), r(a7,7d,18,10), r(6e,63,9c,e8), r(7b,bb,3b,db), \ | ||
195 | r(09,78,26,cd), r(f4,18,59,6e), r(01,b7,9a,ec), r(a8,9a,4f,83), \ | ||
196 | r(65,6e,95,e6), r(7e,e6,ff,aa), r(08,cf,bc,21), r(e6,e8,15,ef), \ | ||
197 | r(d9,9b,e7,ba), r(ce,36,6f,4a), r(d4,09,9f,ea), r(d6,7c,b0,29), \ | ||
198 | r(af,b2,a4,31), r(31,23,3f,2a), r(30,94,a5,c6), r(c0,66,a2,35), \ | ||
199 | r(37,bc,4e,74), r(a6,ca,82,fc), r(b0,d0,90,e0), r(15,d8,a7,33), \ | ||
200 | r(4a,98,04,f1), r(f7,da,ec,41), r(0e,50,cd,7f), r(2f,f6,91,17), \ | ||
201 | r(8d,d6,4d,76), r(4d,b0,ef,43), r(54,4d,aa,cc), r(df,04,96,e4), \ | ||
202 | r(e3,b5,d1,9e), r(1b,88,6a,4c), r(b8,1f,2c,c1), r(7f,51,65,46), \ | ||
203 | r(04,ea,5e,9d), r(5d,35,8c,01), r(73,74,87,fa), r(2e,41,0b,fb), \ | ||
204 | r(5a,1d,67,b3), r(52,d2,db,92), r(33,56,10,e9), r(13,47,d6,6d), \ | ||
205 | r(8c,61,d7,9a), r(7a,0c,a1,37), r(8e,14,f8,59), r(89,3c,13,eb), \ | ||
206 | r(ee,27,a9,ce), r(35,c9,61,b7), r(ed,e5,1c,e1), r(3c,b1,47,7a), \ | ||
207 | r(59,df,d2,9c), r(3f,73,f2,55), r(79,ce,14,18), r(bf,37,c7,73), \ | ||
208 | r(ea,cd,f7,53), r(5b,aa,fd,5f), r(14,6f,3d,df), r(86,db,44,78), \ | ||
209 | r(81,f3,af,ca), r(3e,c4,68,b9), r(2c,34,24,38), r(5f,40,a3,c2), \ | ||
210 | r(72,c3,1d,16), r(0c,25,e2,bc), r(8b,49,3c,28), r(41,95,0d,ff), \ | ||
211 | r(71,01,a8,39), r(de,b3,0c,08), r(9c,e4,b4,d8), r(90,c1,56,64), \ | ||
212 | r(61,84,cb,7b), r(70,b6,32,d5), r(74,5c,6c,48), r(42,57,b8,d0) | ||
213 | |||
214 | /* generate the required tables in the desired endian format */ | ||
215 | |||
216 | #undef r | ||
217 | #define r r0 | ||
218 | const word rijndael_dec_it_tab[4][256] = { | ||
219 | { i_table }, | ||
220 | #undef r | ||
221 | #define r r1 | ||
222 | { i_table }, | ||
223 | #undef r | ||
224 | #define r r2 | ||
225 | { i_table }, | ||
226 | #undef r | ||
227 | #define r r3 | ||
228 | { i_table } | ||
229 | }; | ||
230 | |||
231 | /* data for inverse tables (last round) */ | ||
232 | |||
233 | #define li_table \ | ||
234 | w(52), w(09), w(6a), w(d5), w(30), w(36), w(a5), w(38), \ | ||
235 | w(bf), w(40), w(a3), w(9e), w(81), w(f3), w(d7), w(fb), \ | ||
236 | w(7c), w(e3), w(39), w(82), w(9b), w(2f), w(ff), w(87), \ | ||
237 | w(34), w(8e), w(43), w(44), w(c4), w(de), w(e9), w(cb), \ | ||
238 | w(54), w(7b), w(94), w(32), w(a6), w(c2), w(23), w(3d), \ | ||
239 | w(ee), w(4c), w(95), w(0b), w(42), w(fa), w(c3), w(4e), \ | ||
240 | w(08), w(2e), w(a1), w(66), w(28), w(d9), w(24), w(b2), \ | ||
241 | w(76), w(5b), w(a2), w(49), w(6d), w(8b), w(d1), w(25), \ | ||
242 | w(72), w(f8), w(f6), w(64), w(86), w(68), w(98), w(16), \ | ||
243 | w(d4), w(a4), w(5c), w(cc), w(5d), w(65), w(b6), w(92), \ | ||
244 | w(6c), w(70), w(48), w(50), w(fd), w(ed), w(b9), w(da), \ | ||
245 | w(5e), w(15), w(46), w(57), w(a7), w(8d), w(9d), w(84), \ | ||
246 | w(90), w(d8), w(ab), w(00), w(8c), w(bc), w(d3), w(0a), \ | ||
247 | w(f7), w(e4), w(58), w(05), w(b8), w(b3), w(45), w(06), \ | ||
248 | w(d0), w(2c), w(1e), w(8f), w(ca), w(3f), w(0f), w(02), \ | ||
249 | w(c1), w(af), w(bd), w(03), w(01), w(13), w(8a), w(6b), \ | ||
250 | w(3a), w(91), w(11), w(41), w(4f), w(67), w(dc), w(ea), \ | ||
251 | w(97), w(f2), w(cf), w(ce), w(f0), w(b4), w(e6), w(73), \ | ||
252 | w(96), w(ac), w(74), w(22), w(e7), w(ad), w(35), w(85), \ | ||
253 | w(e2), w(f9), w(37), w(e8), w(1c), w(75), w(df), w(6e), \ | ||
254 | w(47), w(f1), w(1a), w(71), w(1d), w(29), w(c5), w(89), \ | ||
255 | w(6f), w(b7), w(62), w(0e), w(aa), w(18), w(be), w(1b), \ | ||
256 | w(fc), w(56), w(3e), w(4b), w(c6), w(d2), w(79), w(20), \ | ||
257 | w(9a), w(db), w(c0), w(fe), w(78), w(cd), w(5a), w(f4), \ | ||
258 | w(1f), w(dd), w(a8), w(33), w(88), w(07), w(c7), w(31), \ | ||
259 | w(b1), w(12), w(10), w(59), w(27), w(80), w(ec), w(5f), \ | ||
260 | w(60), w(51), w(7f), w(a9), w(19), w(b5), w(4a), w(0d), \ | ||
261 | w(2d), w(e5), w(7a), w(9f), w(93), w(c9), w(9c), w(ef), \ | ||
262 | w(a0), w(e0), w(3b), w(4d), w(ae), w(2a), w(f5), w(b0), \ | ||
263 | w(c8), w(eb), w(bb), w(3c), w(83), w(53), w(99), w(61), \ | ||
264 | w(17), w(2b), w(04), w(7e), w(ba), w(77), w(d6), w(26), \ | ||
265 | w(e1), w(69), w(14), w(63), w(55), w(21), w(0c), w(7d), | ||
266 | |||
267 | /* generate the required tables in the desired endian format */ | ||
268 | |||
269 | #undef r | ||
270 | #define r(p,q,r,s) w0(q) | ||
271 | const word rijndael_dec_fl_tab[4][256] = { | ||
272 | { f_table }, | ||
273 | #undef r | ||
274 | #define r(p,q,r,s) w1(q) | ||
275 | { f_table }, | ||
276 | #undef r | ||
277 | #define r(p,q,r,s) w2(q) | ||
278 | { f_table }, | ||
279 | #undef r | ||
280 | #define r(p,q,r,s) w3(q) | ||
281 | { f_table } | ||
282 | }; | ||
283 | |||
284 | #undef w | ||
285 | #define w w0 | ||
286 | const word rijndael_dec_il_tab[4][256] = { | ||
287 | { li_table }, | ||
288 | #undef w | ||
289 | #define w w1 | ||
290 | { li_table }, | ||
291 | #undef w | ||
292 | #define w w2 | ||
293 | { li_table }, | ||
294 | #undef w | ||
295 | #define w w3 | ||
296 | { li_table } | ||
297 | }; | ||
298 | |||
299 | #define m_table \ | ||
300 | r(00,00,00,00), r(0b,0d,09,0e), r(16,1a,12,1c), r(1d,17,1b,12), \ | ||
301 | r(2c,34,24,38), r(27,39,2d,36), r(3a,2e,36,24), r(31,23,3f,2a), \ | ||
302 | r(58,68,48,70), r(53,65,41,7e), r(4e,72,5a,6c), r(45,7f,53,62), \ | ||
303 | r(74,5c,6c,48), r(7f,51,65,46), r(62,46,7e,54), r(69,4b,77,5a), \ | ||
304 | r(b0,d0,90,e0), r(bb,dd,99,ee), r(a6,ca,82,fc), r(ad,c7,8b,f2), \ | ||
305 | r(9c,e4,b4,d8), r(97,e9,bd,d6), r(8a,fe,a6,c4), r(81,f3,af,ca), \ | ||
306 | r(e8,b8,d8,90), r(e3,b5,d1,9e), r(fe,a2,ca,8c), r(f5,af,c3,82), \ | ||
307 | r(c4,8c,fc,a8), r(cf,81,f5,a6), r(d2,96,ee,b4), r(d9,9b,e7,ba), \ | ||
308 | r(7b,bb,3b,db), r(70,b6,32,d5), r(6d,a1,29,c7), r(66,ac,20,c9), \ | ||
309 | r(57,8f,1f,e3), r(5c,82,16,ed), r(41,95,0d,ff), r(4a,98,04,f1), \ | ||
310 | r(23,d3,73,ab), r(28,de,7a,a5), r(35,c9,61,b7), r(3e,c4,68,b9), \ | ||
311 | r(0f,e7,57,93), r(04,ea,5e,9d), r(19,fd,45,8f), r(12,f0,4c,81), \ | ||
312 | r(cb,6b,ab,3b), r(c0,66,a2,35), r(dd,71,b9,27), r(d6,7c,b0,29), \ | ||
313 | r(e7,5f,8f,03), r(ec,52,86,0d), r(f1,45,9d,1f), r(fa,48,94,11), \ | ||
314 | r(93,03,e3,4b), r(98,0e,ea,45), r(85,19,f1,57), r(8e,14,f8,59), \ | ||
315 | r(bf,37,c7,73), r(b4,3a,ce,7d), r(a9,2d,d5,6f), r(a2,20,dc,61), \ | ||
316 | r(f6,6d,76,ad), r(fd,60,7f,a3), r(e0,77,64,b1), r(eb,7a,6d,bf), \ | ||
317 | r(da,59,52,95), r(d1,54,5b,9b), r(cc,43,40,89), r(c7,4e,49,87), \ | ||
318 | r(ae,05,3e,dd), r(a5,08,37,d3), r(b8,1f,2c,c1), r(b3,12,25,cf), \ | ||
319 | r(82,31,1a,e5), r(89,3c,13,eb), r(94,2b,08,f9), r(9f,26,01,f7), \ | ||
320 | r(46,bd,e6,4d), r(4d,b0,ef,43), r(50,a7,f4,51), r(5b,aa,fd,5f), \ | ||
321 | r(6a,89,c2,75), r(61,84,cb,7b), r(7c,93,d0,69), r(77,9e,d9,67), \ | ||
322 | r(1e,d5,ae,3d), r(15,d8,a7,33), r(08,cf,bc,21), r(03,c2,b5,2f), \ | ||
323 | r(32,e1,8a,05), r(39,ec,83,0b), r(24,fb,98,19), r(2f,f6,91,17), \ | ||
324 | r(8d,d6,4d,76), r(86,db,44,78), r(9b,cc,5f,6a), r(90,c1,56,64), \ | ||
325 | r(a1,e2,69,4e), r(aa,ef,60,40), r(b7,f8,7b,52), r(bc,f5,72,5c), \ | ||
326 | r(d5,be,05,06), r(de,b3,0c,08), r(c3,a4,17,1a), r(c8,a9,1e,14), \ | ||
327 | r(f9,8a,21,3e), r(f2,87,28,30), r(ef,90,33,22), r(e4,9d,3a,2c), \ | ||
328 | r(3d,06,dd,96), r(36,0b,d4,98), r(2b,1c,cf,8a), r(20,11,c6,84), \ | ||
329 | r(11,32,f9,ae), r(1a,3f,f0,a0), r(07,28,eb,b2), r(0c,25,e2,bc), \ | ||
330 | r(65,6e,95,e6), r(6e,63,9c,e8), r(73,74,87,fa), r(78,79,8e,f4), \ | ||
331 | r(49,5a,b1,de), r(42,57,b8,d0), r(5f,40,a3,c2), r(54,4d,aa,cc), \ | ||
332 | r(f7,da,ec,41), r(fc,d7,e5,4f), r(e1,c0,fe,5d), r(ea,cd,f7,53), \ | ||
333 | r(db,ee,c8,79), r(d0,e3,c1,77), r(cd,f4,da,65), r(c6,f9,d3,6b), \ | ||
334 | r(af,b2,a4,31), r(a4,bf,ad,3f), r(b9,a8,b6,2d), r(b2,a5,bf,23), \ | ||
335 | r(83,86,80,09), r(88,8b,89,07), r(95,9c,92,15), r(9e,91,9b,1b), \ | ||
336 | r(47,0a,7c,a1), r(4c,07,75,af), r(51,10,6e,bd), r(5a,1d,67,b3), \ | ||
337 | r(6b,3e,58,99), r(60,33,51,97), r(7d,24,4a,85), r(76,29,43,8b), \ | ||
338 | r(1f,62,34,d1), r(14,6f,3d,df), r(09,78,26,cd), r(02,75,2f,c3), \ | ||
339 | r(33,56,10,e9), r(38,5b,19,e7), r(25,4c,02,f5), r(2e,41,0b,fb), \ | ||
340 | r(8c,61,d7,9a), r(87,6c,de,94), r(9a,7b,c5,86), r(91,76,cc,88), \ | ||
341 | r(a0,55,f3,a2), r(ab,58,fa,ac), r(b6,4f,e1,be), r(bd,42,e8,b0), \ | ||
342 | r(d4,09,9f,ea), r(df,04,96,e4), r(c2,13,8d,f6), r(c9,1e,84,f8), \ | ||
343 | r(f8,3d,bb,d2), r(f3,30,b2,dc), r(ee,27,a9,ce), r(e5,2a,a0,c0), \ | ||
344 | r(3c,b1,47,7a), r(37,bc,4e,74), r(2a,ab,55,66), r(21,a6,5c,68), \ | ||
345 | r(10,85,63,42), r(1b,88,6a,4c), r(06,9f,71,5e), r(0d,92,78,50), \ | ||
346 | r(64,d9,0f,0a), r(6f,d4,06,04), r(72,c3,1d,16), r(79,ce,14,18), \ | ||
347 | r(48,ed,2b,32), r(43,e0,22,3c), r(5e,f7,39,2e), r(55,fa,30,20), \ | ||
348 | r(01,b7,9a,ec), r(0a,ba,93,e2), r(17,ad,88,f0), r(1c,a0,81,fe), \ | ||
349 | r(2d,83,be,d4), r(26,8e,b7,da), r(3b,99,ac,c8), r(30,94,a5,c6), \ | ||
350 | r(59,df,d2,9c), r(52,d2,db,92), r(4f,c5,c0,80), r(44,c8,c9,8e), \ | ||
351 | r(75,eb,f6,a4), r(7e,e6,ff,aa), r(63,f1,e4,b8), r(68,fc,ed,b6), \ | ||
352 | r(b1,67,0a,0c), r(ba,6a,03,02), r(a7,7d,18,10), r(ac,70,11,1e), \ | ||
353 | r(9d,53,2e,34), r(96,5e,27,3a), r(8b,49,3c,28), r(80,44,35,26), \ | ||
354 | r(e9,0f,42,7c), r(e2,02,4b,72), r(ff,15,50,60), r(f4,18,59,6e), \ | ||
355 | r(c5,3b,66,44), r(ce,36,6f,4a), r(d3,21,74,58), r(d8,2c,7d,56), \ | ||
356 | r(7a,0c,a1,37), r(71,01,a8,39), r(6c,16,b3,2b), r(67,1b,ba,25), \ | ||
357 | r(56,38,85,0f), r(5d,35,8c,01), r(40,22,97,13), r(4b,2f,9e,1d), \ | ||
358 | r(22,64,e9,47), r(29,69,e0,49), r(34,7e,fb,5b), r(3f,73,f2,55), \ | ||
359 | r(0e,50,cd,7f), r(05,5d,c4,71), r(18,4a,df,63), r(13,47,d6,6d), \ | ||
360 | r(ca,dc,31,d7), r(c1,d1,38,d9), r(dc,c6,23,cb), r(d7,cb,2a,c5), \ | ||
361 | r(e6,e8,15,ef), r(ed,e5,1c,e1), r(f0,f2,07,f3), r(fb,ff,0e,fd), \ | ||
362 | r(92,b4,79,a7), r(99,b9,70,a9), r(84,ae,6b,bb), r(8f,a3,62,b5), \ | ||
363 | r(be,80,5d,9f), r(b5,8d,54,91), r(a8,9a,4f,83), r(a3,97,46,8d) | ||
364 | |||
365 | #undef r | ||
366 | #define r r0 | ||
367 | |||
368 | const word rijndael_dec_im_tab[4][256] = { | ||
369 | { m_table }, | ||
370 | #undef r | ||
371 | #define r r1 | ||
372 | { m_table }, | ||
373 | #undef r | ||
374 | #define r r2 | ||
375 | { m_table }, | ||
376 | #undef r | ||
377 | #define r r3 | ||
378 | { m_table } | ||
379 | }; | ||
diff --git a/baseline/source/rijndael_dec/input_small_enc.c b/baseline/source/rijndael_dec/input_small_enc.c new file mode 100644 index 0000000..2a881a9 --- /dev/null +++ b/baseline/source/rijndael_dec/input_small_enc.c | |||
@@ -0,0 +1,2051 @@ | |||
1 | unsigned char rijndael_dec_data[] = { | ||
2 | 96, 83, 127, 28, 212, 92, 146, 102, 38, 17, 193, 142, 95, 217, 184, 105, | ||
3 | 79, 112, 144, 112, 44, 202, 141, 48, 181, 177, 82, 92, 208, 250, 216, 152, | ||
4 | 41, 208, 7, 232, 238, 116, 134, 238, 230, 190, 239, 195, 235, 80, 125, 51, | ||
5 | 251, 39, 7, 100, 213, 190, 189, 81, 241, 49, 215, 254, 253, 203, 13, 164, | ||
6 | 175, 244, 25, 111, 226, 225, 176, 96, 58, 165, 32, 243, 68, 205, 209, 242, | ||
7 | 186, 229, 167, 155, 238, 105, 120, 173, 246, 72, 29, 96, 71, 169, 83, 154, | ||
8 | 226, 129, 236, 52, 243, 159, 61, 71, 20, 119, 245, 196, 25, 203, 11, 10, | ||
9 | 37, 163, 139, 180, 250, 191, 138, 99, 78, 192, 73, 186, 22, 12, 119, 151, | ||
10 | 185, 155, 195, 54, 73, 207, 108, 170, 112, 237, 100, 165, 219, 223, 23, 179, | ||
11 | 124, 172, 52, 22, 143, 57, 132, 60, 176, 218, 11, 86, 89, 59, 254, 84, | ||
12 | 180, 76, 120, 174, 17, 214, 88, 48, 240, 12, 56, 93, 136, 156, 75, 176, | ||
13 | 30, 43, 4, 107, 30, 210, 26, 183, 235, 39, 35, 205, 139, 80, 249, 182, | ||
14 | 15, 91, 210, 234, 47, 67, 64, 234, 148, 108, 240, 242, 32, 11, 48, 199, | ||
15 | 117, 31, 149, 30, 97, 149, 241, 50, 177, 166, 127, 31, 135, 115, 240, 77, | ||
16 | 198, 88, 108, 246, 108, 148, 158, 89, 173, 233, 252, 95, 51, 42, 218, 54, | ||
17 | 28, 143, 203, 164, 74, 147, 55, 108, 225, 222, 87, 161, 243, 35, 179, 130, | ||
18 | 29, 70, 225, 178, 148, 152, 247, 167, 21, 245, 84, 139, 3, 228, 221, 25, | ||
19 | 53, 36, 121, 29, 204, 35, 1, 46, 26, 8, 237, 102, 231, 252, 176, 88, | ||
20 | 24, 110, 255, 163, 86, 64, 117, 68, 178, 73, 219, 201, 24, 155, 76, 255, | ||
21 | 253, 199, 165, 95, 246, 179, 15, 47, 203, 81, 92, 231, 246, 247, 111, 58, | ||
22 | 82, 222, 193, 24, 37, 164, 161, 8, 169, 172, 223, 111, 186, 72, 160, 116, | ||
23 | 242, 8, 192, 178, 224, 177, 228, 42, 102, 206, 237, 52, 143, 16, 150, 143, | ||
24 | 108, 3, 88, 81, 199, 49, 110, 220, 5, 89, 244, 227, 27, 226, 101, 9, | ||
25 | 238, 0, 206, 228, 254, 19, 189, 240, 159, 29, 46, 2, 206, 184, 205, 228, | ||
26 | 144, 241, 88, 78, 156, 23, 44, 200, 99, 146, 179, 96, 1, 143, 87, 57, | ||
27 | 39, 75, 174, 32, 190, 125, 152, 183, 46, 39, 136, 88, 240, 110, 104, 70, | ||
28 | 253, 29, 110, 113, 235, 123, 56, 60, 243, 238, 246, 113, 11, 18, 246, 108, | ||
29 | 95, 238, 177, 43, 3, 112, 121, 161, 196, 204, 211, 171, 197, 41, 249, 71, | ||
30 | 194, 153, 82, 28, 10, 28, 12, 241, 212, 90, 124, 236, 171, 54, 35, 226, | ||
31 | 152, 246, 241, 74, 139, 133, 241, 76, 183, 197, 232, 250, 54, 202, 11, 10, | ||
32 | 203, 30, 169, 138, 110, 252, 62, 172, 6, 241, 81, 181, 87, 177, 128, 221, | ||
33 | 111, 133, 94, 251, 184, 54, 92, 242, 28, 112, 138, 116, 32, 164, 158, 59, | ||
34 | 51, 30, 155, 126, 196, 117, 233, 117, 92, 74, 4, 72, 19, 237, 248, 142, | ||
35 | 184, 175, 126, 203, 4, 210, 70, 40, 105, 16, 36, 42, 118, 110, 4, 180, | ||
36 | 208, 52, 232, 230, 107, 154, 233, 61, 176, 170, 32, 59, 60, 47, 43, 70, | ||
37 | 71, 3, 58, 24, 166, 22, 165, 154, 255, 166, 12, 81, 63, 116, 146, 12, | ||
38 | 5, 6, 133, 240, 110, 253, 209, 15, 71, 179, 93, 203, 58, 138, 5, 90, | ||
39 | 111, 140, 19, 186, 191, 68, 230, 121, 95, 166, 219, 107, 233, 156, 18, 145, | ||
40 | 239, 150, 234, 191, 91, 233, 114, 5, 215, 85, 30, 66, 33, 152, 117, 128, | ||
41 | 236, 189, 201, 203, 10, 184, 198, 249, 61, 27, 144, 102, 246, 191, 54, 129, | ||
42 | 86, 8, 197, 98, 231, 234, 222, 164, 161, 40, 150, 253, 208, 82, 92, 225, | ||
43 | 85, 206, 59, 1, 170, 5, 255, 219, 89, 204, 122, 169, 78, 8, 5, 70, | ||
44 | 75, 128, 80, 176, 16, 214, 253, 176, 255, 191, 91, 89, 126, 155, 128, 195, | ||
45 | 56, 150, 101, 131, 255, 234, 241, 250, 61, 210, 85, 19, 21, 23, 122, 180, | ||
46 | 34, 100, 102, 166, 128, 21, 177, 11, 86, 110, 112, 179, 126, 36, 152, 196, | ||
47 | 62, 185, 186, 20, 91, 35, 85, 148, 168, 68, 145, 245, 170, 25, 190, 237, | ||
48 | 192, 125, 186, 182, 22, 188, 161, 122, 194, 21, 14, 102, 206, 60, 129, 156, | ||
49 | 173, 176, 37, 112, 129, 145, 177, 101, 206, 179, 35, 221, 107, 228, 181, 212, | ||
50 | 52, 253, 241, 145, 121, 128, 68, 118, 78, 66, 166, 78, 176, 62, 217, 243, | ||
51 | 193, 1, 254, 200, 35, 67, 226, 77, 55, 72, 6, 144, 22, 85, 252, 209, | ||
52 | 142, 65, 226, 158, 126, 168, 175, 179, 219, 116, 235, 227, 42, 49, 126, 126, | ||
53 | 215, 200, 126, 0, 39, 247, 161, 217, 26, 228, 232, 113, 53, 151, 34, 223, | ||
54 | 91, 242, 155, 156, 144, 229, 237, 127, 227, 49, 239, 71, 102, 115, 74, 135, | ||
55 | 103, 13, 3, 108, 101, 211, 36, 59, 146, 143, 230, 44, 212, 145, 229, 53, | ||
56 | 108, 175, 42, 131, 113, 123, 30, 28, 149, 153, 117, 233, 76, 33, 148, 110, | ||
57 | 19, 83, 125, 135, 44, 202, 2, 155, 4, 240, 167, 7, 13, 115, 243, 216, | ||
58 | 73, 248, 216, 82, 230, 153, 48, 234, 157, 2, 130, 99, 147, 2, 244, 19, | ||
59 | 125, 30, 39, 148, 49, 134, 140, 240, 128, 230, 171, 24, 53, 245, 54, 72, | ||
60 | 111, 230, 192, 165, 199, 47, 186, 238, 121, 95, 220, 76, 229, 253, 157, 47, | ||
61 | 34, 47, 39, 77, 199, 203, 163, 148, 172, 56, 204, 96, 69, 235, 215, 96, | ||
62 | 92, 139, 92, 49, 73, 228, 70, 221, 18, 84, 167, 179, 201, 239, 71, 64, | ||
63 | 29, 247, 84, 56, 148, 36, 169, 144, 192, 60, 153, 171, 89, 125, 48, 98, | ||
64 | 201, 56, 230, 154, 146, 46, 184, 202, 3, 39, 113, 90, 249, 163, 0, 188, | ||
65 | 233, 10, 216, 17, 159, 42, 134, 57, 70, 24, 33, 63, 8, 67, 85, 7, | ||
66 | 133, 180, 127, 12, 234, 121, 183, 38, 131, 154, 241, 236, 69, 67, 116, 54, | ||
67 | 40, 225, 6, 220, 22, 251, 1, 100, 110, 165, 114, 12, 170, 21, 190, 103, | ||
68 | 242, 171, 216, 66, 30, 3, 214, 137, 231, 172, 61, 8, 249, 198, 113, 181, | ||
69 | 171, 13, 159, 21, 147, 67, 249, 94, 189, 174, 15, 2, 62, 254, 29, 32, | ||
70 | 209, 169, 184, 119, 220, 98, 248, 163, 171, 22, 62, 125, 155, 100, 186, 97, | ||
71 | 163, 245, 70, 216, 246, 1, 11, 83, 41, 100, 64, 52, 99, 184, 151, 99, | ||
72 | 46, 100, 168, 158, 210, 150, 38, 231, 27, 255, 59, 141, 232, 127, 56, 39, | ||
73 | 194, 104, 178, 151, 15, 25, 219, 221, 81, 119, 178, 153, 94, 173, 64, 215, | ||
74 | 128, 132, 163, 159, 214, 254, 181, 194, 113, 144, 141, 103, 17, 108, 178, 59, | ||
75 | 62, 205, 117, 57, 183, 97, 18, 210, 87, 163, 231, 213, 233, 251, 94, 136, | ||
76 | 217, 168, 69, 48, 55, 68, 144, 203, 187, 51, 211, 151, 1, 194, 118, 181, | ||
77 | 154, 103, 186, 87, 43, 128, 215, 79, 101, 175, 60, 221, 158, 189, 94, 194, | ||
78 | 87, 73, 72, 162, 252, 26, 40, 142, 86, 228, 82, 255, 122, 192, 167, 78, | ||
79 | 177, 40, 249, 195, 100, 188, 31, 208, 124, 123, 31, 121, 244, 4, 82, 3, | ||
80 | 132, 15, 2, 29, 186, 76, 106, 109, 158, 114, 25, 212, 74, 64, 255, 43, | ||
81 | 40, 146, 159, 225, 39, 65, 85, 37, 60, 160, 123, 116, 127, 134, 45, 177, | ||
82 | 191, 49, 136, 211, 167, 218, 197, 15, 96, 45, 55, 11, 237, 103, 118, 207, | ||
83 | 0, 211, 25, 143, 19, 93, 114, 90, 105, 253, 88, 140, 207, 56, 150, 0, | ||
84 | 136, 159, 134, 63, 75, 142, 177, 0, 107, 105, 78, 148, 214, 248, 70, 72, | ||
85 | 125, 220, 156, 220, 222, 102, 202, 176, 12, 58, 24, 39, 254, 170, 130, 77, | ||
86 | 203, 193, 162, 56, 162, 57, 76, 153, 170, 112, 94, 0, 220, 58, 58, 40, | ||
87 | 173, 2, 193, 164, 168, 127, 225, 238, 10, 194, 112, 213, 181, 126, 222, 152, | ||
88 | 12, 57, 14, 146, 137, 154, 203, 179, 45, 133, 70, 204, 66, 249, 32, 136, | ||
89 | 145, 0, 221, 224, 10, 1, 202, 139, 145, 247, 72, 254, 32, 169, 121, 167, | ||
90 | 114, 198, 244, 251, 243, 8, 114, 188, 178, 173, 25, 243, 122, 220, 45, 98, | ||
91 | 7, 168, 66, 58, 225, 217, 152, 81, 89, 39, 167, 146, 181, 138, 253, 196, | ||
92 | 145, 4, 72, 9, 14, 137, 155, 32, 217, 64, 4, 173, 220, 66, 114, 21, | ||
93 | 137, 118, 87, 163, 217, 204, 74, 236, 45, 170, 60, 141, 216, 234, 182, 79, | ||
94 | 74, 73, 94, 63, 89, 134, 88, 64, 32, 241, 9, 114, 253, 164, 108, 31, | ||
95 | 27, 42, 172, 7, 102, 213, 153, 83, 1, 152, 136, 224, 248, 70, 112, 15, | ||
96 | 211, 194, 216, 16, 255, 62, 83, 147, 173, 192, 239, 55, 18, 223, 34, 152, | ||
97 | 25, 163, 229, 4, 55, 219, 235, 187, 51, 116, 12, 202, 198, 116, 188, 217, | ||
98 | 91, 30, 11, 9, 13, 222, 120, 16, 93, 99, 56, 129, 27, 133, 155, 120, | ||
99 | 124, 112, 101, 42, 222, 122, 124, 59, 84, 228, 202, 189, 13, 11, 10, 44, | ||
100 | 220, 97, 67, 53, 246, 47, 230, 131, 192, 1, 247, 137, 90, 77, 243, 131, | ||
101 | 2, 130, 93, 183, 117, 102, 69, 191, 27, 87, 103, 218, 157, 124, 17, 209, | ||
102 | 135, 92, 78, 211, 141, 25, 157, 53, 17, 249, 209, 206, 84, 19, 135, 253, | ||
103 | 57, 36, 38, 112, 184, 61, 76, 5, 203, 155, 7, 9, 179, 167, 38, 136, | ||
104 | 189, 40, 19, 183, 132, 81, 135, 167, 48, 74, 186, 249, 144, 193, 150, 73, | ||
105 | 10, 192, 191, 160, 74, 246, 12, 38, 107, 3, 66, 122, 184, 168, 218, 233, | ||
106 | 78, 216, 11, 57, 124, 104, 167, 0, 187, 2, 214, 136, 252, 60, 85, 128, | ||
107 | 128, 31, 70, 197, 211, 180, 216, 75, 212, 163, 168, 15, 174, 44, 194, 231, | ||
108 | 24, 181, 154, 161, 241, 95, 197, 227, 146, 195, 187, 69, 127, 154, 145, 176, | ||
109 | 180, 157, 13, 225, 107, 60, 29, 14, 223, 93, 214, 248, 107, 65, 168, 251, | ||
110 | 231, 46, 34, 203, 76, 20, 206, 125, 80, 25, 196, 60, 213, 51, 238, 73, | ||
111 | 17, 223, 151, 44, 60, 213, 164, 117, 188, 66, 195, 170, 190, 117, 110, 21, | ||
112 | 27, 78, 244, 124, 224, 142, 182, 10, 122, 135, 121, 143, 240, 124, 6, 8, | ||
113 | 22, 15, 3, 137, 12, 19, 11, 62, 212, 205, 3, 202, 189, 157, 141, 68, | ||
114 | 171, 142, 106, 69, 207, 8, 116, 194, 6, 200, 96, 220, 248, 132, 46, 171, | ||
115 | 57, 234, 31, 3, 112, 108, 15, 139, 243, 34, 181, 250, 10, 86, 71, 162, | ||
116 | 167, 85, 177, 57, 166, 80, 41, 253, 128, 28, 127, 220, 149, 27, 29, 41, | ||
117 | 201, 116, 211, 236, 34, 200, 100, 157, 130, 223, 4, 162, 108, 181, 40, 255, | ||
118 | 96, 18, 77, 36, 217, 17, 225, 142, 124, 17, 91, 227, 13, 224, 213, 37, | ||
119 | 115, 216, 93, 149, 103, 105, 152, 190, 207, 54, 74, 226, 78, 133, 200, 252, | ||
120 | 157, 152, 39, 0, 173, 168, 132, 142, 17, 66, 241, 137, 12, 106, 42, 81, | ||
121 | 239, 78, 31, 131, 49, 243, 122, 178, 212, 137, 160, 104, 15, 145, 15, 116, | ||
122 | 103, 141, 94, 40, 127, 180, 174, 96, 222, 182, 226, 168, 174, 113, 228, 156, | ||
123 | 10, 18, 231, 122, 150, 178, 17, 200, 254, 96, 42, 243, 225, 58, 235, 64, | ||
124 | 159, 73, 162, 72, 46, 160, 33, 191, 99, 73, 130, 32, 135, 84, 29, 100, | ||
125 | 232, 75, 110, 180, 226, 11, 143, 127, 79, 246, 48, 148, 229, 211, 204, 72, | ||
126 | 18, 89, 22, 251, 202, 8, 10, 2, 130, 230, 219, 71, 66, 142, 149, 47, | ||
127 | 12, 117, 202, 224, 248, 35, 75, 242, 87, 125, 230, 66, 38, 160, 62, 248, | ||
128 | 213, 32, 166, 83, 220, 230, 0, 1, 147, 51, 128, 110, 20, 16, 43, 142, | ||
129 | 90, 0, 2, 104, 111, 232, 38, 29, 181, 243, 130, 121, 105, 177, 168, 113, | ||
130 | 126, 191, 59, 205, 27, 180, 49, 128, 160, 225, 23, 173, 193, 155, 123, 12, | ||
131 | 173, 72, 139, 63, 23, 232, 138, 235, 39, 179, 158, 95, 103, 192, 13, 242, | ||
132 | 11, 127, 239, 91, 13, 119, 19, 185, 105, 87, 195, 168, 145, 15, 53, 146, | ||
133 | 35, 227, 101, 234, 198, 247, 19, 29, 134, 126, 211, 133, 78, 186, 127, 129, | ||
134 | 181, 115, 133, 62, 166, 133, 128, 225, 101, 98, 146, 175, 110, 113, 171, 117, | ||
135 | 4, 130, 190, 186, 216, 17, 201, 29, 62, 77, 74, 189, 50, 155, 188, 93, | ||
136 | 237, 26, 100, 225, 91, 120, 229, 163, 16, 210, 167, 138, 241, 147, 36, 56, | ||
137 | 12, 100, 33, 55, 232, 200, 118, 3, 222, 31, 72, 167, 91, 45, 133, 62, | ||
138 | 184, 64, 120, 116, 249, 12, 15, 243, 98, 145, 234, 253, 71, 194, 61, 4, | ||
139 | 102, 112, 35, 27, 75, 13, 1, 4, 128, 238, 170, 187, 80, 147, 216, 165, | ||
140 | 147, 248, 250, 241, 69, 106, 233, 227, 22, 153, 120, 138, 113, 83, 104, 154, | ||
141 | 50, 99, 153, 188, 69, 252, 171, 177, 49, 74, 134, 219, 247, 255, 191, 202, | ||
142 | 165, 239, 179, 147, 91, 215, 195, 157, 68, 21, 180, 112, 187, 51, 66, 80, | ||
143 | 205, 100, 35, 78, 59, 92, 175, 87, 224, 170, 237, 223, 224, 83, 182, 199, | ||
144 | 47, 95, 111, 42, 197, 22, 21, 143, 123, 173, 69, 247, 31, 205, 69, 136, | ||
145 | 137, 136, 241, 233, 67, 7, 225, 112, 102, 92, 180, 211, 254, 29, 129, 29, | ||
146 | 21, 188, 44, 95, 57, 122, 17, 196, 213, 33, 56, 23, 88, 236, 185, 35, | ||
147 | 17, 156, 165, 93, 108, 157, 198, 5, 124, 225, 150, 156, 146, 116, 88, 116, | ||
148 | 181, 207, 90, 85, 145, 228, 231, 91, 116, 79, 6, 119, 6, 207, 190, 102, | ||
149 | 72, 242, 2, 253, 79, 92, 88, 189, 28, 57, 28, 101, 199, 134, 124, 215, | ||
150 | 59, 37, 222, 54, 194, 151, 252, 185, 74, 101, 193, 43, 186, 184, 255, 158, | ||
151 | 129, 183, 83, 176, 249, 134, 58, 15, 49, 213, 127, 162, 179, 56, 53, 4, | ||
152 | 114, 112, 29, 84, 246, 109, 46, 153, 97, 30, 208, 98, 234, 155, 104, 158, | ||
153 | 93, 9, 53, 175, 49, 54, 160, 238, 150, 117, 145, 202, 210, 37, 15, 3, | ||
154 | 100, 20, 116, 153, 90, 23, 2, 146, 58, 182, 199, 197, 122, 89, 30, 152, | ||
155 | 241, 105, 97, 115, 131, 111, 4, 235, 217, 213, 144, 218, 217, 201, 141, 113, | ||
156 | 21, 237, 254, 184, 181, 135, 177, 86, 215, 248, 169, 55, 231, 229, 60, 133, | ||
157 | 12, 194, 206, 112, 206, 175, 216, 131, 181, 41, 154, 235, 76, 152, 58, 118, | ||
158 | 111, 32, 220, 219, 253, 198, 18, 227, 71, 129, 197, 227, 96, 155, 66, 0, | ||
159 | 51, 132, 150, 208, 177, 188, 149, 100, 236, 23, 49, 45, 236, 131, 225, 206, | ||
160 | 77, 77, 94, 12, 244, 159, 85, 247, 189, 109, 141, 217, 80, 115, 44, 171, | ||
161 | 138, 68, 128, 147, 244, 213, 43, 187, 135, 126, 156, 158, 199, 61, 180, 112, | ||
162 | 130, 230, 146, 100, 106, 56, 70, 71, 234, 3, 202, 1, 45, 20, 136, 149, | ||
163 | 112, 178, 25, 110, 160, 221, 57, 191, 78, 9, 250, 233, 4, 144, 28, 219, | ||
164 | 200, 203, 227, 218, 229, 108, 59, 221, 141, 0, 122, 121, 65, 156, 204, 19, | ||
165 | 152, 215, 64, 164, 15, 77, 26, 113, 82, 229, 23, 103, 204, 151, 118, 104, | ||
166 | 171, 115, 72, 191, 5, 159, 133, 83, 221, 228, 120, 127, 46, 233, 14, 27, | ||
167 | 216, 31, 63, 179, 224, 226, 121, 29, 62, 47, 199, 67, 60, 240, 85, 175, | ||
168 | 242, 113, 168, 160, 93, 147, 205, 103, 67, 110, 237, 143, 148, 65, 209, 31, | ||
169 | 100, 252, 166, 254, 170, 52, 203, 222, 75, 219, 77, 217, 202, 18, 117, 253, | ||
170 | 92, 29, 205, 115, 53, 255, 251, 150, 164, 72, 146, 6, 101, 161, 127, 50, | ||
171 | 73, 152, 194, 180, 11, 121, 11, 229, 147, 151, 143, 226, 196, 238, 131, 141, | ||
172 | 173, 153, 189, 114, 16, 82, 1, 70, 239, 22, 85, 108, 113, 21, 231, 43, | ||
173 | 6, 228, 54, 94, 200, 186, 190, 143, 117, 156, 22, 30, 9, 64, 25, 8, | ||
174 | 116, 27, 240, 24, 150, 146, 224, 73, 97, 95, 183, 151, 185, 178, 16, 82, | ||
175 | 243, 208, 160, 186, 246, 234, 223, 35, 6, 166, 7, 105, 224, 246, 14, 208, | ||
176 | 1, 70, 244, 221, 238, 235, 86, 81, 136, 40, 99, 104, 89, 22, 194, 40, | ||
177 | 36, 45, 126, 138, 174, 22, 206, 228, 146, 114, 162, 4, 211, 213, 163, 224, | ||
178 | 91, 3, 85, 140, 140, 202, 204, 23, 194, 108, 166, 123, 1, 36, 191, 161, | ||
179 | 38, 228, 65, 249, 235, 26, 156, 83, 68, 199, 239, 109, 1, 203, 198, 25, | ||
180 | 22, 128, 165, 15, 125, 139, 190, 100, 184, 159, 16, 194, 244, 228, 18, 215, | ||
181 | 103, 169, 32, 208, 12, 104, 94, 71, 209, 193, 160, 161, 73, 38, 35, 49, | ||
182 | 202, 29, 193, 120, 100, 98, 219, 44, 27, 224, 222, 226, 105, 153, 17, 252, | ||
183 | 120, 143, 190, 173, 176, 89, 205, 149, 11, 99, 31, 107, 102, 187, 100, 107, | ||
184 | 200, 1, 130, 89, 75, 71, 196, 150, 89, 231, 28, 213, 173, 229, 173, 104, | ||
185 | 156, 123, 227, 163, 65, 230, 167, 67, 242, 143, 224, 224, 161, 249, 205, 140, | ||
186 | 149, 156, 2, 138, 177, 193, 136, 225, 177, 34, 246, 27, 179, 108, 116, 169, | ||
187 | 0, 183, 169, 12, 239, 230, 127, 169, 170, 144, 151, 36, 111, 52, 132, 2, | ||
188 | 15, 237, 209, 133, 254, 241, 184, 232, 116, 11, 221, 210, 64, 96, 18, 30, | ||
189 | 245, 95, 142, 84, 218, 92, 151, 20, 155, 101, 201, 153, 82, 163, 43, 168, | ||
190 | 152, 90, 224, 18, 112, 161, 123, 115, 129, 136, 198, 50, 186, 239, 28, 80, | ||
191 | 91, 20, 73, 6, 150, 187, 56, 54, 200, 67, 26, 62, 0, 229, 42, 210, | ||
192 | 107, 245, 83, 172, 233, 195, 140, 31, 24, 205, 202, 128, 145, 242, 73, 113, | ||
193 | 92, 176, 3, 146, 170, 21, 106, 67, 53, 254, 192, 212, 194, 6, 52, 81, | ||
194 | 163, 236, 63, 95, 164, 91, 60, 20, 9, 201, 74, 143, 55, 110, 76, 61, | ||
195 | 115, 177, 84, 105, 191, 199, 248, 51, 89, 35, 91, 44, 199, 13, 254, 130, | ||
196 | 142, 136, 64, 111, 128, 229, 171, 208, 183, 242, 195, 251, 72, 168, 31, 76, | ||
197 | 89, 102, 122, 181, 57, 110, 17, 196, 31, 136, 185, 196, 118, 100, 188, 100, | ||
198 | 21, 239, 206, 77, 97, 238, 78, 215, 224, 113, 210, 122, 141, 190, 103, 135, | ||
199 | 12, 41, 206, 157, 154, 10, 167, 133, 183, 60, 230, 235, 109, 33, 95, 121, | ||
200 | 34, 206, 1, 149, 114, 4, 252, 42, 17, 93, 191, 144, 133, 226, 101, 215, | ||
201 | 124, 88, 163, 27, 29, 189, 35, 51, 182, 112, 242, 94, 56, 196, 99, 242, | ||
202 | 77, 95, 123, 219, 81, 71, 229, 138, 101, 8, 77, 79, 2, 166, 195, 239, | ||
203 | 148, 221, 188, 20, 170, 26, 215, 139, 42, 171, 153, 219, 107, 191, 90, 185, | ||
204 | 241, 37, 84, 41, 232, 27, 123, 36, 86, 113, 255, 25, 245, 187, 21, 110, | ||
205 | 13, 17, 43, 99, 91, 182, 243, 239, 194, 150, 187, 111, 30, 83, 28, 111, | ||
206 | 249, 159, 212, 187, 184, 177, 12, 234, 107, 211, 32, 118, 132, 10, 145, 19, | ||
207 | 150, 206, 230, 158, 80, 101, 41, 67, 38, 79, 57, 164, 80, 147, 64, 207, | ||
208 | 231, 229, 162, 5, 185, 40, 164, 17, 84, 156, 1, 52, 181, 67, 63, 182, | ||
209 | 25, 68, 55, 167, 230, 125, 225, 234, 125, 79, 102, 35, 54, 2, 12, 145, | ||
210 | 67, 6, 252, 218, 231, 14, 58, 221, 248, 171, 23, 93, 14, 51, 76, 155, | ||
211 | 97, 239, 11, 95, 245, 154, 209, 127, 208, 19, 209, 158, 67, 164, 1, 123, | ||
212 | 230, 90, 236, 148, 77, 210, 240, 27, 154, 16, 146, 19, 107, 106, 141, 94, | ||
213 | 144, 28, 24, 130, 111, 164, 46, 108, 89, 171, 52, 192, 121, 188, 166, 207, | ||
214 | 164, 98, 57, 189, 54, 190, 18, 4, 120, 181, 18, 216, 162, 19, 111, 254, | ||
215 | 71, 171, 194, 79, 73, 122, 9, 115, 63, 61, 88, 117, 234, 203, 250, 167, | ||
216 | 102, 98, 101, 177, 5, 13, 228, 205, 115, 107, 219, 215, 33, 150, 13, 242, | ||
217 | 180, 71, 27, 0, 250, 228, 50, 129, 215, 93, 174, 169, 167, 125, 14, 89, | ||
218 | 130, 195, 127, 158, 250, 249, 142, 213, 5, 1, 250, 31, 122, 171, 62, 142, | ||
219 | 38, 84, 165, 95, 237, 144, 145, 189, 193, 248, 121, 112, 22, 11, 26, 192, | ||
220 | 90, 76, 117, 89, 160, 228, 152, 24, 129, 235, 37, 24, 66, 68, 161, 126, | ||
221 | 147, 44, 172, 137, 134, 203, 162, 152, 255, 161, 135, 6, 31, 72, 69, 9, | ||
222 | 228, 3, 80, 28, 50, 240, 176, 66, 255, 231, 21, 233, 149, 55, 211, 15, | ||
223 | 182, 116, 165, 211, 190, 28, 69, 40, 3, 164, 172, 212, 150, 181, 213, 32, | ||
224 | 174, 216, 8, 243, 29, 152, 124, 7, 111, 140, 53, 157, 158, 233, 175, 60, | ||
225 | 191, 179, 131, 248, 252, 50, 171, 165, 5, 51, 69, 215, 168, 222, 57, 221, | ||
226 | 164, 56, 193, 114, 18, 89, 219, 222, 198, 163, 200, 233, 28, 51, 190, 25, | ||
227 | 206, 243, 63, 51, 44, 10, 57, 71, 252, 230, 161, 141, 79, 31, 30, 150, | ||
228 | 101, 168, 23, 70, 216, 216, 160, 241, 192, 106, 92, 194, 141, 81, 100, 222, | ||
229 | 165, 180, 27, 70, 201, 219, 31, 177, 189, 114, 30, 74, 6, 184, 114, 208, | ||
230 | 189, 246, 83, 107, 229, 153, 69, 66, 201, 253, 183, 5, 134, 156, 200, 132, | ||
231 | 187, 73, 175, 213, 178, 14, 66, 101, 13, 224, 49, 205, 244, 124, 231, 18, | ||
232 | 71, 94, 246, 29, 78, 201, 138, 60, 97, 54, 156, 123, 144, 143, 6, 191, | ||
233 | 113, 140, 251, 203, 125, 196, 135, 169, 197, 34, 215, 77, 138, 218, 63, 56, | ||
234 | 145, 74, 225, 15, 227, 112, 113, 160, 165, 122, 85, 179, 97, 146, 5, 221, | ||
235 | 133, 236, 170, 2, 236, 128, 19, 252, 238, 120, 0, 192, 55, 5, 138, 161, | ||
236 | 222, 148, 189, 130, 53, 250, 36, 153, 248, 210, 197, 167, 236, 128, 191, 37, | ||
237 | 251, 151, 163, 190, 155, 38, 27, 164, 166, 238, 185, 11, 214, 212, 122, 206, | ||
238 | 212, 255, 103, 255, 69, 146, 54, 182, 52, 54, 169, 121, 244, 205, 244, 168, | ||
239 | 96, 163, 220, 75, 194, 10, 133, 204, 105, 10, 228, 139, 62, 39, 254, 131, | ||
240 | 5, 243, 54, 14, 158, 107, 118, 143, 81, 55, 251, 151, 226, 29, 54, 218, | ||
241 | 99, 187, 76, 178, 61, 206, 20, 170, 229, 190, 77, 215, 47, 104, 244, 87, | ||
242 | 101, 82, 50, 41, 255, 56, 6, 226, 22, 153, 19, 72, 227, 63, 224, 79, | ||
243 | 3, 130, 220, 135, 116, 39, 25, 98, 107, 50, 214, 183, 120, 215, 26, 160, | ||
244 | 247, 26, 190, 119, 146, 181, 147, 36, 15, 75, 109, 71, 72, 44, 14, 9, | ||
245 | 61, 201, 200, 222, 53, 246, 57, 69, 63, 108, 133, 140, 150, 33, 233, 46, | ||
246 | 84, 102, 150, 204, 129, 195, 97, 4, 69, 176, 166, 182, 10, 237, 141, 33, | ||
247 | 70, 200, 98, 101, 157, 9, 70, 227, 108, 195, 241, 72, 105, 86, 67, 5, | ||
248 | 242, 199, 149, 33, 43, 105, 206, 122, 20, 13, 28, 158, 131, 47, 202, 70, | ||
249 | 9, 92, 32, 10, 251, 103, 49, 185, 35, 242, 168, 151, 234, 237, 212, 91, | ||
250 | 81, 113, 133, 247, 204, 23, 4, 9, 226, 14, 29, 117, 236, 101, 250, 46, | ||
251 | 161, 149, 131, 98, 141, 228, 72, 18, 164, 252, 56, 7, 160, 217, 183, 125, | ||
252 | 121, 154, 169, 152, 211, 114, 24, 190, 141, 135, 41, 173, 250, 50, 54, 197, | ||
253 | 65, 67, 117, 246, 235, 130, 142, 138, 62, 216, 51, 193, 247, 30, 164, 235, | ||
254 | 209, 157, 138, 4, 147, 6, 253, 187, 34, 124, 1, 143, 60, 95, 168, 72, | ||
255 | 167, 72, 72, 13, 142, 35, 185, 107, 29, 51, 189, 48, 141, 194, 33, 77, | ||
256 | 118, 17, 80, 88, 204, 147, 148, 143, 103, 246, 97, 180, 153, 160, 112, 81, | ||
257 | 196, 2, 222, 148, 126, 240, 27, 61, 128, 155, 184, 106, 89, 36, 136, 230, | ||
258 | 128, 84, 217, 130, 139, 104, 115, 225, 73, 77, 7, 49, 183, 4, 250, 124, | ||
259 | 196, 34, 183, 209, 17, 136, 92, 16, 94, 51, 78, 174, 185, 117, 243, 69, | ||
260 | 11, 214, 132, 72, 86, 212, 4, 193, 253, 125, 45, 148, 97, 87, 6, 101, | ||
261 | 195, 169, 86, 115, 218, 254, 40, 59, 255, 137, 135, 183, 253, 117, 170, 29, | ||
262 | 191, 138, 247, 117, 125, 234, 30, 40, 92, 8, 180, 240, 136, 142, 111, 239, | ||
263 | 66, 225, 196, 151, 93, 130, 126, 255, 195, 34, 252, 17, 101, 179, 120, 76, | ||
264 | 4, 227, 13, 12, 66, 205, 235, 177, 29, 187, 25, 114, 68, 119, 114, 158, | ||
265 | 213, 149, 210, 5, 104, 71, 181, 126, 211, 32, 99, 60, 51, 75, 85, 138, | ||
266 | 138, 68, 115, 81, 37, 17, 101, 36, 117, 236, 182, 77, 98, 113, 198, 195, | ||
267 | 73, 79, 215, 116, 248, 45, 244, 60, 205, 35, 95, 228, 38, 180, 250, 246, | ||
268 | 63, 211, 44, 197, 162, 24, 195, 61, 136, 142, 91, 141, 62, 34, 139, 60, | ||
269 | 142, 238, 67, 148, 54, 132, 41, 115, 241, 219, 192, 121, 9, 45, 75, 183, | ||
270 | 223, 213, 165, 161, 219, 181, 161, 27, 36, 158, 163, 12, 12, 141, 83, 105, | ||
271 | 157, 118, 168, 244, 204, 32, 52, 131, 88, 246, 230, 121, 21, 58, 91, 217, | ||
272 | 138, 27, 251, 174, 150, 51, 240, 201, 30, 66, 19, 148, 185, 122, 53, 15, | ||
273 | 176, 144, 148, 3, 238, 59, 211, 155, 77, 83, 81, 245, 186, 169, 217, 201, | ||
274 | 103, 109, 137, 119, 146, 100, 18, 200, 185, 212, 202, 17, 88, 146, 234, 49, | ||
275 | 190, 19, 139, 43, 1, 48, 21, 64, 235, 89, 191, 74, 89, 85, 16, 64, | ||
276 | 203, 99, 152, 255, 61, 159, 36, 5, 199, 49, 94, 229, 163, 192, 41, 165, | ||
277 | 20, 203, 176, 149, 18, 152, 61, 216, 188, 203, 180, 103, 202, 176, 177, 210, | ||
278 | 255, 26, 254, 70, 43, 214, 95, 208, 73, 148, 124, 19, 215, 68, 123, 10, | ||
279 | 179, 88, 167, 224, 23, 246, 150, 201, 51, 157, 139, 187, 103, 187, 198, 189, | ||
280 | 204, 126, 74, 124, 23, 150, 108, 116, 196, 130, 92, 0, 211, 151, 19, 58, | ||
281 | 249, 50, 186, 54, 102, 164, 122, 228, 71, 163, 163, 117, 78, 234, 197, 70, | ||
282 | 96, 79, 4, 88, 242, 219, 120, 28, 178, 165, 136, 178, 129, 125, 79, 140, | ||
283 | 65, 62, 78, 237, 104, 11, 45, 191, 163, 145, 174, 23, 34, 240, 43, 137, | ||
284 | 102, 189, 140, 137, 4, 222, 55, 6, 84, 194, 51, 164, 107, 234, 39, 216, | ||
285 | 15, 12, 44, 86, 170, 121, 46, 4, 220, 200, 42, 53, 11, 228, 110, 187, | ||
286 | 116, 182, 242, 42, 93, 109, 47, 109, 180, 155, 31, 99, 60, 107, 114, 82, | ||
287 | 196, 146, 45, 224, 90, 205, 34, 200, 42, 173, 113, 37, 26, 154, 74, 18, | ||
288 | 165, 45, 22, 141, 1, 244, 64, 159, 164, 162, 100, 6, 67, 145, 199, 205, | ||
289 | 254, 149, 56, 138, 15, 172, 205, 203, 191, 253, 126, 238, 167, 210, 103, 33, | ||
290 | 143, 85, 161, 150, 99, 12, 207, 238, 110, 157, 190, 52, 249, 121, 139, 188, | ||
291 | 0, 74, 92, 106, 101, 254, 190, 251, 213, 167, 78, 36, 224, 24, 6, 195, | ||
292 | 128, 24, 21, 35, 66, 223, 204, 84, 177, 109, 226, 215, 79, 19, 236, 73, | ||
293 | 74, 244, 146, 57, 228, 254, 223, 158, 42, 83, 29, 181, 14, 147, 60, 4, | ||
294 | 147, 107, 95, 220, 180, 130, 140, 28, 118, 179, 39, 179, 250, 184, 27, 209, | ||
295 | 199, 151, 154, 121, 105, 81, 215, 143, 46, 91, 217, 94, 230, 250, 165, 21, | ||
296 | 240, 234, 93, 0, 176, 20, 127, 181, 36, 127, 49, 36, 79, 233, 229, 57, | ||
297 | 241, 56, 119, 151, 222, 239, 203, 217, 74, 164, 88, 47, 25, 43, 58, 136, | ||
298 | 61, 233, 70, 133, 181, 122, 250, 169, 249, 38, 36, 40, 182, 201, 40, 64, | ||
299 | 218, 145, 63, 209, 126, 248, 65, 23, 142, 147, 3, 241, 200, 87, 132, 93, | ||
300 | 31, 22, 90, 86, 244, 47, 235, 53, 187, 96, 165, 221, 185, 118, 134, 129, | ||
301 | 94, 64, 188, 132, 216, 198, 131, 74, 193, 32, 41, 194, 69, 201, 64, 31, | ||
302 | 6, 235, 95, 181, 207, 187, 60, 250, 24, 233, 127, 4, 5, 190, 242, 168, | ||
303 | 239, 185, 172, 78, 136, 121, 180, 191, 84, 54, 252, 83, 202, 111, 32, 100, | ||
304 | 213, 7, 178, 225, 71, 68, 244, 36, 141, 242, 199, 185, 71, 55, 244, 166, | ||
305 | 113, 41, 66, 177, 55, 251, 179, 251, 194, 2, 54, 20, 100, 241, 82, 213, | ||
306 | 236, 45, 196, 119, 134, 167, 163, 134, 61, 218, 207, 200, 118, 143, 249, 165, | ||
307 | 105, 78, 208, 213, 206, 72, 76, 123, 47, 31, 9, 234, 18, 125, 95, 170, | ||
308 | 199, 123, 139, 158, 244, 171, 6, 202, 240, 214, 94, 46, 60, 109, 185, 175, | ||
309 | 204, 176, 229, 110, 139, 249, 234, 3, 202, 231, 25, 195, 150, 136, 186, 246, | ||
310 | 72, 242, 133, 249, 229, 58, 112, 28, 228, 121, 85, 115, 90, 95, 32, 141, | ||
311 | 135, 217, 12, 187, 50, 229, 66, 103, 204, 0, 93, 86, 245, 59, 173, 28, | ||
312 | 71, 131, 135, 118, 125, 113, 12, 13, 202, 242, 205, 255, 152, 243, 160, 243, | ||
313 | 148, 10, 28, 106, 56, 17, 93, 234, 204, 102, 53, 22, 48, 188, 15, 255, | ||
314 | 14, 3, 117, 190, 211, 116, 55, 77, 205, 171, 228, 120, 244, 1, 169, 51, | ||
315 | 241, 150, 206, 99, 20, 68, 119, 137, 180, 44, 113, 85, 242, 143, 148, 97, | ||
316 | 149, 75, 20, 228, 89, 226, 122, 102, 13, 195, 58, 111, 178, 82, 226, 144, | ||
317 | 82, 237, 27, 94, 244, 29, 102, 32, 162, 80, 228, 66, 203, 107, 211, 171, | ||
318 | 4, 56, 62, 184, 63, 137, 5, 179, 231, 185, 172, 102, 190, 42, 80, 164, | ||
319 | 123, 68, 20, 36, 135, 97, 102, 156, 133, 165, 202, 240, 84, 168, 30, 95, | ||
320 | 57, 3, 182, 224, 10, 84, 60, 88, 191, 0, 126, 190, 240, 202, 141, 89, | ||
321 | 238, 212, 101, 213, 129, 15, 245, 94, 24, 49, 72, 59, 237, 121, 241, 199, | ||
322 | 28, 106, 113, 237, 82, 144, 150, 112, 79, 90, 255, 166, 230, 71, 132, 24, | ||
323 | 6, 82, 143, 150, 194, 236, 253, 46, 158, 143, 5, 31, 243, 156, 4, 19, | ||
324 | 89, 81, 94, 94, 39, 9, 199, 6, 44, 35, 4, 143, 18, 62, 27, 165, | ||
325 | 177, 162, 53, 121, 146, 74, 181, 252, 27, 207, 17, 102, 196, 172, 75, 4, | ||
326 | 17, 215, 20, 96, 9, 42, 199, 99, 206, 94, 78, 121, 37, 11, 152, 125, | ||
327 | 249, 107, 153, 180, 85, 155, 220, 68, 223, 87, 204, 175, 117, 147, 217, 71, | ||
328 | 6, 190, 132, 99, 227, 5, 180, 168, 249, 126, 202, 102, 42, 26, 175, 198, | ||
329 | 185, 211, 206, 154, 60, 24, 183, 24, 203, 46, 21, 176, 194, 116, 116, 210, | ||
330 | 162, 214, 215, 79, 87, 159, 16, 55, 12, 248, 51, 17, 79, 183, 145, 23, | ||
331 | 209, 58, 225, 84, 21, 237, 102, 250, 93, 222, 87, 87, 203, 4, 138, 196, | ||
332 | 6, 28, 143, 45, 68, 77, 211, 180, 47, 198, 5, 170, 166, 221, 107, 202, | ||
333 | 67, 220, 178, 156, 39, 2, 87, 147, 234, 85, 199, 97, 10, 151, 240, 121, | ||
334 | 229, 132, 230, 249, 244, 57, 77, 29, 123, 149, 121, 81, 245, 37, 106, 157, | ||
335 | 39, 185, 31, 175, 102, 187, 37, 149, 27, 215, 151, 155, 94, 160, 180, 59, | ||
336 | 95, 200, 149, 42, 178, 85, 171, 41, 31, 20, 16, 199, 14, 202, 230, 42, | ||
337 | 59, 83, 239, 155, 65, 63, 237, 89, 133, 62, 23, 112, 236, 226, 34, 250, | ||
338 | 134, 14, 234, 2, 212, 41, 135, 189, 114, 60, 147, 49, 19, 193, 169, 157, | ||
339 | 41, 62, 36, 42, 2, 172, 237, 250, 86, 252, 199, 80, 194, 195, 182, 136, | ||
340 | 209, 90, 80, 9, 121, 164, 168, 99, 235, 131, 129, 59, 26, 41, 124, 194, | ||
341 | 110, 143, 183, 126, 91, 50, 168, 211, 43, 177, 95, 196, 94, 206, 214, 173, | ||
342 | 89, 152, 173, 39, 53, 190, 186, 193, 75, 23, 181, 65, 153, 57, 142, 215, | ||
343 | 155, 147, 241, 110, 230, 102, 176, 152, 227, 83, 87, 110, 243, 143, 254, 127, | ||
344 | 254, 117, 117, 173, 106, 80, 127, 231, 39, 220, 178, 44, 95, 30, 60, 222, | ||
345 | 212, 72, 169, 84, 194, 40, 164, 156, 145, 182, 127, 51, 64, 108, 144, 124, | ||
346 | 136, 238, 4, 113, 14, 68, 106, 158, 20, 231, 109, 99, 70, 214, 68, 29, | ||
347 | 240, 154, 95, 206, 188, 136, 180, 41, 220, 228, 198, 82, 51, 118, 65, 20, | ||
348 | 198, 187, 22, 8, 134, 252, 86, 227, 110, 105, 198, 242, 48, 8, 192, 165, | ||
349 | 80, 210, 1, 175, 188, 99, 252, 178, 7, 70, 27, 249, 175, 145, 131, 228, | ||
350 | 86, 229, 81, 93, 203, 194, 226, 110, 250, 134, 235, 195, 170, 107, 131, 185, | ||
351 | 81, 99, 168, 124, 215, 108, 40, 198, 193, 117, 88, 136, 134, 114, 145, 239, | ||
352 | 9, 0, 184, 106, 111, 63, 6, 92, 30, 3, 116, 7, 232, 182, 184, 60, | ||
353 | 32, 161, 183, 167, 163, 185, 114, 43, 77, 134, 29, 164, 135, 3, 155, 255, | ||
354 | 83, 254, 203, 1, 243, 167, 236, 162, 77, 140, 250, 224, 25, 246, 81, 147, | ||
355 | 207, 0, 127, 115, 127, 151, 191, 179, 128, 77, 142, 203, 171, 153, 47, 244, | ||
356 | 165, 235, 20, 64, 36, 99, 201, 190, 83, 244, 125, 112, 49, 26, 95, 125, | ||
357 | 254, 140, 85, 142, 112, 170, 225, 4, 126, 243, 224, 180, 137, 152, 102, 9, | ||
358 | 92, 67, 247, 20, 189, 58, 88, 74, 183, 201, 43, 1, 2, 123, 228, 211, | ||
359 | 79, 91, 20, 64, 111, 238, 60, 76, 207, 91, 90, 130, 169, 238, 254, 208, | ||
360 | 125, 140, 7, 94, 63, 18, 46, 124, 16, 253, 228, 238, 179, 99, 129, 40, | ||
361 | 89, 12, 40, 42, 94, 237, 111, 112, 22, 162, 64, 25, 89, 102, 56, 25, | ||
362 | 245, 128, 221, 86, 146, 138, 242, 67, 166, 114, 204, 38, 89, 77, 127, 64, | ||
363 | 36, 183, 161, 254, 185, 76, 91, 10, 28, 146, 154, 254, 118, 200, 206, 95, | ||
364 | 6, 182, 35, 178, 179, 114, 87, 60, 208, 88, 180, 161, 171, 39, 156, 131, | ||
365 | 2, 83, 124, 11, 223, 57, 190, 18, 79, 245, 198, 11, 55, 131, 197, 28, | ||
366 | 74, 32, 223, 144, 231, 227, 25, 237, 243, 145, 64, 183, 62, 163, 33, 93, | ||
367 | 155, 82, 228, 206, 69, 77, 101, 8, 240, 3, 135, 0, 181, 153, 174, 82, | ||
368 | 29, 129, 40, 83, 235, 83, 98, 105, 235, 210, 121, 239, 78, 240, 217, 144, | ||
369 | 230, 225, 3, 157, 14, 118, 64, 228, 29, 110, 230, 247, 153, 117, 3, 81, | ||
370 | 24, 23, 169, 2, 247, 238, 144, 137, 241, 140, 192, 185, 165, 13, 122, 48, | ||
371 | 180, 254, 54, 128, 134, 247, 87, 42, 219, 166, 7, 248, 91, 39, 226, 245, | ||
372 | 44, 152, 30, 71, 125, 129, 102, 72, 16, 66, 119, 15, 189, 250, 70, 112, | ||
373 | 168, 7, 5, 181, 15, 114, 73, 112, 16, 184, 65, 192, 54, 51, 31, 202, | ||
374 | 38, 11, 170, 149, 37, 107, 44, 241, 30, 35, 23, 176, 99, 82, 230, 60, | ||
375 | 206, 39, 249, 227, 114, 152, 133, 233, 60, 188, 79, 52, 241, 191, 208, 160, | ||
376 | 213, 159, 219, 188, 222, 47, 235, 187, 9, 186, 112, 78, 101, 229, 115, 152, | ||
377 | 216, 196, 88, 228, 189, 226, 214, 40, 163, 155, 193, 238, 224, 72, 64, 199, | ||
378 | 4, 182, 248, 143, 219, 170, 227, 55, 215, 135, 92, 117, 56, 225, 220, 129, | ||
379 | 74, 226, 55, 132, 73, 213, 81, 93, 107, 49, 29, 155, 62, 141, 48, 190, | ||
380 | 242, 221, 95, 61, 179, 165, 213, 49, 125, 245, 106, 35, 24, 57, 103, 140, | ||
381 | 79, 172, 38, 29, 170, 145, 151, 204, 114, 161, 117, 2, 199, 145, 210, 184, | ||
382 | 71, 80, 251, 182, 67, 220, 3, 2, 210, 28, 17, 104, 68, 150, 255, 174, | ||
383 | 34, 206, 245, 97, 173, 8, 92, 160, 144, 149, 54, 57, 114, 145, 215, 115, | ||
384 | 186, 145, 165, 186, 207, 107, 14, 255, 88, 145, 225, 110, 190, 78, 93, 147, | ||
385 | 225, 247, 122, 52, 135, 147, 89, 3, 10, 119, 43, 154, 29, 186, 68, 50, | ||
386 | 125, 152, 205, 242, 113, 106, 80, 68, 21, 45, 147, 212, 5, 1, 27, 39, | ||
387 | 51, 221, 25, 38, 102, 67, 194, 250, 121, 51, 66, 76, 155, 205, 199, 54, | ||
388 | 177, 202, 0, 249, 225, 231, 179, 69, 52, 22, 87, 77, 193, 35, 88, 3, | ||
389 | 238, 62, 12, 159, 221, 203, 230, 122, 92, 71, 26, 218, 41, 218, 75, 21, | ||
390 | 201, 166, 224, 173, 110, 185, 97, 161, 227, 9, 43, 108, 162, 62, 228, 201, | ||
391 | 32, 178, 191, 115, 35, 118, 59, 165, 223, 135, 132, 230, 110, 213, 96, 68, | ||
392 | 190, 237, 213, 146, 85, 179, 242, 155, 122, 217, 7, 105, 70, 123, 10, 5, | ||
393 | 122, 153, 202, 218, 195, 207, 73, 175, 161, 31, 200, 47, 237, 64, 34, 227, | ||
394 | 34, 66, 58, 29, 28, 166, 242, 128, 33, 79, 32, 125, 60, 207, 222, 195, | ||
395 | 180, 137, 78, 177, 132, 249, 147, 38, 64, 247, 181, 81, 96, 155, 167, 113, | ||
396 | 95, 197, 30, 83, 18, 128, 93, 131, 242, 197, 50, 146, 106, 143, 56, 216, | ||
397 | 80, 80, 159, 164, 154, 220, 248, 193, 58, 253, 63, 219, 91, 140, 170, 71, | ||
398 | 152, 8, 69, 37, 138, 179, 223, 54, 98, 229, 181, 107, 50, 174, 6, 20, | ||
399 | 69, 101, 50, 57, 102, 61, 123, 218, 226, 77, 25, 129, 188, 103, 22, 81, | ||
400 | 66, 232, 19, 88, 103, 184, 87, 252, 109, 31, 242, 40, 37, 238, 237, 20, | ||
401 | 232, 170, 115, 36, 83, 127, 65, 208, 85, 56, 192, 120, 116, 153, 200, 116, | ||
402 | 108, 243, 110, 8, 9, 162, 206, 172, 25, 0, 103, 79, 239, 8, 184, 142, | ||
403 | 87, 86, 95, 139, 223, 180, 6, 205, 39, 76, 25, 62, 32, 244, 171, 152, | ||
404 | 146, 48, 224, 20, 23, 219, 250, 115, 159, 131, 14, 91, 5, 27, 26, 60, | ||
405 | 239, 5, 41, 159, 226, 103, 177, 43, 224, 51, 123, 129, 148, 18, 241, 66, | ||
406 | 192, 199, 151, 94, 207, 238, 120, 34, 234, 75, 193, 65, 66, 243, 125, 21, | ||
407 | 57, 113, 143, 44, 49, 153, 168, 129, 102, 21, 17, 101, 182, 217, 216, 17, | ||
408 | 7, 70, 99, 194, 34, 47, 49, 241, 25, 242, 163, 251, 28, 172, 167, 4, | ||
409 | 96, 213, 236, 60, 223, 52, 150, 216, 168, 157, 5, 56, 126, 50, 228, 130, | ||
410 | 166, 54, 196, 85, 86, 162, 154, 82, 84, 34, 228, 235, 157, 230, 47, 77, | ||
411 | 151, 127, 226, 82, 145, 205, 201, 40, 49, 178, 228, 77, 132, 208, 93, 4, | ||
412 | 2, 73, 46, 69, 188, 60, 130, 217, 1, 97, 177, 240, 18, 26, 141, 97, | ||
413 | 5, 170, 82, 56, 218, 83, 3, 29, 228, 13, 179, 232, 154, 50, 152, 40, | ||
414 | 58, 0, 202, 195, 36, 91, 104, 37, 10, 89, 0, 250, 146, 45, 248, 68, | ||
415 | 37, 180, 129, 46, 138, 43, 98, 40, 122, 174, 147, 85, 94, 255, 76, 129, | ||
416 | 245, 135, 198, 206, 144, 189, 190, 207, 253, 191, 104, 163, 141, 116, 1, 192, | ||
417 | 200, 193, 205, 196, 151, 231, 254, 190, 17, 172, 254, 196, 243, 72, 234, 236, | ||
418 | 92, 108, 153, 184, 39, 201, 109, 233, 38, 178, 163, 46, 150, 153, 170, 238, | ||
419 | 84, 196, 155, 171, 31, 3, 186, 55, 87, 100, 179, 61, 163, 119, 82, 75, | ||
420 | 107, 173, 8, 145, 135, 226, 243, 8, 38, 102, 123, 120, 169, 215, 177, 132, | ||
421 | 111, 26, 242, 205, 150, 143, 197, 152, 137, 193, 174, 171, 234, 183, 221, 189, | ||
422 | 40, 212, 191, 137, 47, 153, 85, 76, 59, 255, 16, 51, 186, 105, 224, 14, | ||
423 | 73, 41, 84, 42, 12, 186, 198, 133, 82, 8, 161, 173, 130, 25, 26, 22, | ||
424 | 152, 132, 221, 182, 68, 126, 160, 248, 183, 112, 129, 83, 181, 55, 17, 145, | ||
425 | 18, 220, 143, 17, 49, 18, 15, 191, 104, 40, 67, 139, 127, 106, 56, 65, | ||
426 | 4, 120, 100, 5, 88, 44, 82, 240, 138, 64, 42, 158, 24, 130, 133, 237, | ||
427 | 235, 112, 115, 164, 249, 247, 233, 173, 116, 245, 23, 37, 216, 180, 118, 183, | ||
428 | 58, 246, 254, 103, 93, 55, 36, 213, 76, 134, 122, 116, 164, 15, 11, 115, | ||
429 | 168, 185, 226, 79, 250, 236, 172, 24, 226, 48, 150, 67, 128, 63, 211, 235, | ||
430 | 219, 120, 216, 18, 31, 82, 136, 105, 151, 118, 193, 43, 33, 155, 55, 8, | ||
431 | 17, 3, 211, 110, 115, 27, 122, 3, 195, 97, 1, 227, 22, 124, 213, 59, | ||
432 | 89, 13, 253, 221, 207, 229, 25, 72, 200, 144, 209, 147, 185, 68, 132, 104, | ||
433 | 7, 34, 237, 45, 2, 17, 209, 87, 170, 227, 60, 230, 53, 186, 59, 39, | ||
434 | 254, 57, 191, 201, 59, 202, 119, 144, 163, 255, 78, 199, 9, 59, 129, 64, | ||
435 | 232, 31, 20, 110, 63, 172, 85, 239, 97, 216, 252, 158, 76, 64, 55, 133, | ||
436 | 43, 101, 22, 4, 27, 134, 210, 9, 120, 44, 255, 105, 142, 83, 6, 238, | ||
437 | 61, 226, 118, 111, 217, 234, 153, 48, 9, 193, 133, 172, 20, 121, 210, 40, | ||
438 | 243, 49, 13, 184, 152, 126, 248, 100, 37, 187, 216, 15, 250, 86, 178, 24, | ||
439 | 30, 174, 216, 151, 139, 27, 166, 190, 200, 228, 25, 152, 212, 70, 7, 45, | ||
440 | 141, 54, 143, 106, 206, 49, 170, 195, 61, 24, 81, 20, 116, 147, 95, 49, | ||
441 | 245, 179, 223, 237, 184, 110, 49, 158, 190, 211, 132, 30, 22, 195, 234, 167, | ||
442 | 143, 4, 26, 9, 215, 48, 100, 53, 221, 177, 172, 132, 184, 229, 165, 207, | ||
443 | 213, 192, 26, 58, 211, 227, 65, 148, 198, 5, 248, 169, 32, 121, 24, 164, | ||
444 | 193, 137, 218, 218, 105, 42, 136, 146, 91, 72, 238, 231, 24, 17, 108, 194, | ||
445 | 206, 5, 180, 101, 199, 161, 172, 130, 78, 110, 255, 62, 158, 111, 204, 223, | ||
446 | 33, 183, 43, 10, 93, 253, 249, 193, 149, 89, 21, 51, 198, 186, 91, 142, | ||
447 | 121, 157, 35, 254, 21, 55, 2, 7, 119, 32, 175, 107, 199, 86, 174, 37, | ||
448 | 144, 192, 13, 234, 244, 152, 150, 77, 69, 91, 174, 141, 211, 71, 85, 190, | ||
449 | 231, 124, 80, 80, 137, 195, 5, 196, 21, 239, 110, 92, 99, 158, 247, 229, | ||
450 | 178, 99, 156, 222, 135, 119, 197, 242, 98, 58, 0, 134, 97, 197, 30, 113, | ||
451 | 164, 183, 9, 1, 97, 166, 94, 117, 183, 103, 45, 147, 215, 137, 8, 64, | ||
452 | 9, 149, 66, 130, 166, 94, 72, 48, 181, 156, 233, 167, 116, 59, 10, 117, | ||
453 | 203, 53, 110, 133, 3, 97, 84, 60, 179, 90, 47, 45, 78, 41, 89, 191, | ||
454 | 234, 81, 129, 69, 179, 76, 221, 176, 171, 58, 158, 151, 251, 79, 189, 124, | ||
455 | 159, 40, 189, 229, 126, 168, 24, 141, 209, 215, 105, 170, 166, 181, 113, 36, | ||
456 | 4, 172, 90, 123, 232, 154, 150, 224, 87, 249, 134, 136, 14, 28, 23, 67, | ||
457 | 78, 187, 209, 55, 157, 95, 36, 136, 83, 103, 54, 236, 62, 81, 66, 44, | ||
458 | 85, 120, 219, 178, 62, 126, 203, 193, 229, 146, 25, 187, 254, 141, 147, 185, | ||
459 | 158, 103, 216, 216, 38, 34, 245, 43, 169, 200, 129, 130, 7, 239, 207, 155, | ||
460 | 250, 89, 209, 238, 20, 74, 133, 100, 67, 149, 41, 187, 72, 9, 135, 165, | ||
461 | 140, 14, 90, 51, 241, 216, 7, 176, 238, 254, 84, 53, 231, 87, 12, 51, | ||
462 | 222, 54, 70, 163, 101, 130, 63, 37, 120, 180, 219, 161, 69, 213, 233, 130, | ||
463 | 199, 124, 2, 36, 224, 140, 95, 201, 23, 72, 219, 222, 181, 237, 134, 11, | ||
464 | 103, 94, 246, 251, 215, 218, 228, 90, 36, 54, 237, 49, 204, 13, 194, 221, | ||
465 | 18, 186, 35, 144, 179, 2, 98, 90, 110, 165, 66, 38, 152, 206, 0, 121, | ||
466 | 90, 25, 94, 145, 133, 58, 143, 138, 175, 80, 233, 110, 78, 84, 0, 207, | ||
467 | 87, 78, 27, 243, 160, 231, 241, 83, 173, 163, 191, 205, 184, 216, 232, 36, | ||
468 | 194, 52, 5, 72, 249, 42, 103, 254, 213, 41, 159, 209, 56, 222, 40, 224, | ||
469 | 177, 195, 214, 11, 84, 221, 245, 137, 131, 23, 220, 251, 167, 17, 34, 214, | ||
470 | 41, 102, 226, 223, 79, 53, 119, 84, 17, 219, 19, 80, 90, 132, 19, 176, | ||
471 | 73, 145, 38, 28, 198, 176, 141, 92, 242, 69, 174, 63, 244, 44, 152, 102, | ||
472 | 120, 151, 167, 115, 67, 110, 119, 159, 56, 63, 29, 70, 253, 118, 119, 220, | ||
473 | 181, 71, 193, 167, 77, 178, 236, 187, 193, 236, 147, 231, 209, 56, 168, 202, | ||
474 | 7, 198, 208, 17, 20, 31, 42, 70, 237, 148, 162, 161, 128, 135, 88, 37, | ||
475 | 219, 56, 83, 248, 116, 20, 44, 17, 231, 156, 187, 251, 237, 165, 123, 165, | ||
476 | 181, 166, 212, 99, 132, 26, 122, 240, 223, 130, 235, 248, 239, 11, 161, 32, | ||
477 | 109, 210, 97, 173, 12, 251, 94, 118, 7, 107, 206, 105, 158, 16, 4, 245, | ||
478 | 159, 67, 150, 226, 53, 42, 241, 249, 146, 107, 111, 75, 147, 136, 141, 97, | ||
479 | 49, 101, 233, 168, 197, 72, 95, 138, 162, 103, 154, 162, 192, 78, 41, 102, | ||
480 | 52, 207, 165, 48, 93, 41, 104, 136, 91, 169, 167, 51, 217, 197, 25, 238, | ||
481 | 3, 4, 35, 64, 146, 153, 32, 107, 66, 225, 249, 148, 225, 130, 197, 194, | ||
482 | 34, 100, 235, 200, 204, 39, 230, 37, 103, 219, 139, 8, 232, 63, 95, 154, | ||
483 | 76, 195, 226, 187, 206, 116, 21, 40, 98, 177, 244, 9, 114, 148, 22, 185, | ||
484 | 243, 93, 8, 84, 137, 114, 217, 240, 69, 185, 123, 1, 225, 160, 221, 183, | ||
485 | 81, 159, 31, 66, 221, 201, 197, 113, 137, 181, 249, 211, 211, 226, 62, 12, | ||
486 | 116, 111, 130, 197, 99, 85, 29, 191, 94, 14, 166, 137, 147, 14, 133, 58, | ||
487 | 230, 148, 144, 87, 48, 117, 252, 64, 114, 18, 185, 63, 164, 159, 26, 79, | ||
488 | 188, 242, 126, 223, 213, 245, 195, 144, 19, 68, 175, 73, 15, 90, 45, 245, | ||
489 | 111, 212, 15, 108, 108, 199, 180, 231, 92, 251, 69, 251, 100, 179, 160, 125, | ||
490 | 250, 42, 79, 118, 101, 195, 108, 15, 243, 124, 76, 248, 137, 80, 49, 16, | ||
491 | 233, 89, 247, 188, 102, 212, 82, 111, 184, 67, 70, 110, 79, 241, 15, 157, | ||
492 | 225, 66, 87, 81, 35, 200, 210, 21, 243, 196, 86, 48, 46, 152, 150, 236, | ||
493 | 76, 45, 178, 131, 90, 85, 147, 107, 25, 194, 182, 106, 191, 161, 71, 94, | ||
494 | 211, 172, 93, 128, 17, 188, 240, 127, 4, 18, 124, 199, 122, 163, 140, 228, | ||
495 | 91, 163, 59, 197, 191, 231, 162, 77, 248, 24, 168, 119, 182, 169, 140, 55, | ||
496 | 207, 105, 70, 81, 32, 79, 212, 1, 59, 11, 55, 145, 61, 90, 134, 202, | ||
497 | 49, 105, 117, 158, 91, 86, 139, 55, 90, 171, 167, 237, 141, 1, 184, 49, | ||
498 | 63, 7, 226, 53, 153, 200, 188, 224, 234, 104, 101, 118, 238, 93, 34, 252, | ||
499 | 120, 251, 177, 103, 213, 173, 184, 231, 225, 111, 186, 210, 40, 111, 65, 4, | ||
500 | 60, 124, 221, 67, 201, 210, 65, 90, 74, 36, 39, 88, 233, 64, 172, 179, | ||
501 | 18, 59, 182, 82, 152, 192, 154, 220, 209, 184, 218, 210, 172, 250, 155, 199, | ||
502 | 175, 246, 218, 45, 211, 204, 131, 204, 73, 107, 246, 52, 133, 102, 103, 135, | ||
503 | 5, 46, 175, 63, 204, 92, 108, 126, 126, 194, 208, 178, 166, 198, 191, 240, | ||
504 | 128, 5, 203, 189, 102, 148, 65, 29, 146, 2, 24, 21, 201, 147, 145, 248, | ||
505 | 85, 77, 63, 245, 176, 199, 198, 237, 34, 101, 159, 144, 166, 29, 102, 175, | ||
506 | 121, 78, 75, 196, 204, 80, 156, 236, 198, 232, 117, 112, 135, 61, 63, 63, | ||
507 | 82, 2, 65, 139, 70, 69, 78, 64, 48, 154, 15, 250, 79, 190, 251, 94, | ||
508 | 205, 252, 236, 241, 2, 171, 232, 118, 128, 71, 18, 55, 49, 13, 27, 36, | ||
509 | 149, 220, 149, 150, 55, 200, 192, 151, 47, 218, 134, 205, 93, 7, 206, 44, | ||
510 | 229, 208, 62, 208, 55, 55, 239, 63, 45, 154, 171, 70, 223, 144, 78, 251, | ||
511 | 5, 138, 224, 21, 184, 87, 55, 69, 224, 231, 37, 65, 87, 114, 78, 216, | ||
512 | 41, 49, 143, 233, 182, 214, 84, 20, 20, 156, 17, 12, 173, 172, 80, 151, | ||
513 | 37, 28, 191, 69, 146, 102, 65, 15, 152, 143, 198, 45, 204, 4, 140, 90, | ||
514 | 149, 45, 157, 190, 119, 196, 121, 199, 176, 122, 198, 141, 161, 31, 24, 149, | ||
515 | 96, 231, 70, 122, 160, 19, 100, 75, 112, 141, 18, 175, 109, 98, 19, 110, | ||
516 | 237, 1, 5, 171, 153, 19, 251, 61, 180, 249, 9, 187, 196, 248, 127, 13, | ||
517 | 21, 244, 224, 42, 97, 40, 236, 190, 18, 123, 133, 26, 235, 9, 150, 90, | ||
518 | 21, 189, 189, 101, 226, 190, 82, 18, 45, 3, 172, 187, 72, 74, 244, 211, | ||
519 | 76, 2, 70, 168, 41, 195, 165, 178, 139, 5, 155, 100, 199, 0, 227, 72, | ||
520 | 247, 186, 33, 169, 34, 104, 196, 3, 253, 202, 19, 140, 100, 122, 144, 125, | ||
521 | 201, 202, 194, 245, 180, 27, 10, 207, 180, 31, 25, 152, 243, 143, 51, 90, | ||
522 | 33, 74, 147, 127, 66, 47, 10, 65, 99, 71, 243, 241, 221, 219, 32, 213, | ||
523 | 98, 67, 119, 130, 254, 11, 149, 64, 73, 168, 73, 237, 110, 18, 243, 21, | ||
524 | 177, 53, 109, 2, 242, 89, 136, 34, 36, 135, 12, 12, 125, 251, 104, 137, | ||
525 | 128, 152, 41, 70, 163, 184, 237, 137, 249, 63, 56, 133, 39, 0, 243, 248, | ||
526 | 80, 184, 48, 238, 155, 193, 21, 137, 95, 144, 146, 209, 151, 197, 199, 122, | ||
527 | 60, 48, 250, 1, 79, 162, 58, 78, 225, 184, 199, 35, 186, 225, 19, 68, | ||
528 | 31, 199, 150, 85, 197, 76, 246, 150, 47, 63, 55, 196, 200, 10, 163, 170, | ||
529 | 246, 34, 196, 87, 0, 45, 18, 6, 168, 248, 130, 184, 5, 197, 97, 56, | ||
530 | 128, 254, 236, 32, 10, 182, 198, 139, 255, 43, 41, 159, 119, 253, 81, 248, | ||
531 | 251, 253, 184, 98, 229, 6, 8, 64, 48, 190, 105, 125, 168, 191, 43, 93, | ||
532 | 156, 39, 244, 220, 138, 197, 117, 27, 152, 145, 254, 233, 211, 33, 234, 5, | ||
533 | 72, 247, 49, 221, 35, 188, 210, 20, 231, 90, 255, 37, 30, 126, 209, 65, | ||
534 | 137, 123, 126, 191, 158, 227, 201, 129, 19, 164, 51, 232, 188, 185, 96, 67, | ||
535 | 24, 190, 56, 16, 229, 34, 219, 150, 137, 226, 59, 58, 3, 147, 232, 35, | ||
536 | 99, 207, 101, 173, 217, 18, 139, 1, 94, 123, 4, 232, 147, 243, 13, 193, | ||
537 | 193, 187, 232, 100, 187, 119, 105, 72, 86, 30, 165, 20, 192, 19, 157, 67, | ||
538 | 253, 204, 246, 133, 85, 252, 109, 169, 106, 203, 83, 72, 51, 217, 172, 7, | ||
539 | 212, 104, 170, 166, 21, 181, 11, 14, 145, 33, 175, 235, 169, 66, 203, 78, | ||
540 | 108, 209, 100, 131, 93, 192, 70, 157, 186, 224, 174, 173, 22, 167, 87, 244, | ||
541 | 227, 218, 96, 98, 186, 24, 205, 62, 66, 79, 198, 254, 160, 37, 127, 16, | ||
542 | 95, 171, 47, 34, 80, 43, 26, 111, 65, 207, 29, 139, 135, 69, 13, 110, | ||
543 | 133, 110, 65, 140, 61, 207, 117, 98, 106, 29, 166, 224, 78, 208, 252, 194, | ||
544 | 91, 4, 38, 0, 61, 133, 180, 168, 149, 211, 7, 80, 227, 135, 51, 11, | ||
545 | 249, 228, 26, 198, 244, 2, 47, 226, 93, 147, 222, 125, 200, 205, 166, 154, | ||
546 | 234, 80, 39, 70, 84, 98, 209, 1, 6, 219, 17, 11, 253, 126, 145, 231, | ||
547 | 131, 14, 163, 107, 200, 195, 167, 64, 6, 101, 209, 255, 116, 179, 69, 164, | ||
548 | 133, 23, 78, 98, 105, 182, 236, 34, 246, 58, 81, 183, 100, 30, 44, 187, | ||
549 | 164, 91, 239, 132, 51, 154, 9, 2, 215, 186, 191, 79, 237, 179, 141, 169, | ||
550 | 237, 206, 190, 201, 64, 223, 143, 60, 173, 108, 96, 216, 183, 70, 110, 5, | ||
551 | 59, 230, 206, 194, 40, 211, 109, 146, 1, 102, 194, 212, 90, 214, 43, 111, | ||
552 | 134, 122, 146, 9, 220, 198, 72, 196, 68, 19, 214, 220, 11, 173, 243, 15, | ||
553 | 254, 158, 193, 211, 191, 55, 163, 212, 18, 20, 42, 199, 191, 74, 238, 191, | ||
554 | 113, 173, 125, 203, 48, 1, 119, 32, 224, 8, 178, 179, 0, 67, 153, 62, | ||
555 | 227, 25, 254, 126, 23, 87, 67, 43, 45, 250, 42, 214, 118, 179, 111, 189, | ||
556 | 103, 133, 35, 196, 54, 23, 203, 218, 59, 177, 194, 55, 210, 153, 78, 207, | ||
557 | 145, 157, 229, 119, 218, 173, 20, 104, 251, 48, 204, 245, 166, 251, 123, 82, | ||
558 | 175, 239, 215, 158, 200, 1, 174, 40, 200, 32, 108, 184, 0, 137, 90, 81, | ||
559 | 159, 128, 165, 10, 233, 210, 52, 48, 74, 164, 246, 199, 240, 154, 12, 254, | ||
560 | 70, 37, 106, 44, 85, 123, 151, 119, 153, 170, 48, 144, 241, 114, 64, 115, | ||
561 | 120, 159, 13, 49, 211, 182, 99, 124, 25, 70, 73, 196, 179, 201, 219, 124, | ||
562 | 22, 137, 229, 160, 155, 10, 158, 234, 132, 203, 208, 76, 81, 98, 30, 142, | ||
563 | 154, 68, 158, 92, 107, 252, 4, 22, 218, 2, 167, 190, 152, 141, 251, 137, | ||
564 | 236, 87, 186, 235, 90, 0, 132, 68, 232, 66, 63, 0, 41, 235, 157, 45, | ||
565 | 68, 194, 45, 18, 249, 254, 60, 33, 10, 86, 183, 45, 5, 253, 253, 212, | ||
566 | 44, 94, 203, 41, 53, 146, 101, 148, 123, 198, 92, 14, 181, 87, 49, 229, | ||
567 | 177, 249, 216, 8, 12, 37, 108, 220, 236, 13, 72, 122, 48, 235, 219, 74, | ||
568 | 220, 187, 130, 66, 249, 41, 184, 140, 101, 1, 203, 110, 22, 62, 23, 118, | ||
569 | 199, 32, 191, 162, 140, 187, 157, 80, 144, 59, 112, 238, 32, 101, 238, 47, | ||
570 | 225, 69, 99, 178, 246, 49, 76, 81, 101, 187, 71, 59, 140, 229, 81, 253, | ||
571 | 42, 204, 158, 74, 184, 237, 197, 14, 91, 81, 34, 115, 123, 224, 167, 15, | ||
572 | 112, 84, 225, 104, 103, 208, 236, 183, 185, 142, 175, 147, 237, 188, 159, 125, | ||
573 | 142, 253, 121, 87, 239, 78, 57, 179, 13, 123, 74, 148, 197, 74, 227, 110, | ||
574 | 48, 248, 165, 248, 249, 43, 249, 0, 69, 7, 183, 68, 167, 181, 39, 54, | ||
575 | 144, 39, 212, 36, 40, 171, 48, 106, 76, 50, 201, 111, 254, 86, 240, 39, | ||
576 | 14, 59, 58, 110, 54, 155, 2, 6, 205, 190, 237, 126, 58, 204, 112, 159, | ||
577 | 145, 188, 208, 196, 197, 52, 54, 94, 84, 127, 46, 56, 93, 152, 190, 133, | ||
578 | 120, 166, 75, 52, 6, 112, 112, 71, 119, 143, 218, 19, 242, 174, 48, 246, | ||
579 | 29, 243, 137, 94, 127, 95, 76, 49, 20, 149, 159, 251, 59, 146, 102, 242, | ||
580 | 222, 157, 162, 124, 154, 25, 47, 246, 135, 38, 177, 165, 246, 224, 202, 4, | ||
581 | 177, 255, 203, 245, 58, 172, 164, 33, 155, 179, 56, 41, 202, 39, 145, 176, | ||
582 | 130, 171, 30, 77, 177, 64, 203, 70, 230, 242, 240, 118, 145, 30, 89, 184, | ||
583 | 11, 123, 157, 212, 156, 28, 5, 200, 96, 157, 102, 126, 212, 149, 137, 144, | ||
584 | 169, 39, 211, 159, 193, 254, 65, 201, 154, 165, 37, 129, 14, 242, 28, 37, | ||
585 | 17, 130, 202, 227, 241, 49, 191, 213, 179, 72, 243, 118, 52, 133, 149, 8, | ||
586 | 156, 231, 94, 215, 15, 21, 118, 194, 254, 107, 249, 40, 153, 69, 95, 141, | ||
587 | 97, 37, 224, 82, 146, 71, 35, 26, 88, 127, 137, 247, 242, 243, 135, 113, | ||
588 | 189, 155, 56, 98, 99, 90, 108, 186, 118, 178, 253, 50, 44, 30, 43, 223, | ||
589 | 171, 186, 44, 120, 215, 128, 45, 65, 178, 142, 159, 39, 70, 37, 168, 62, | ||
590 | 127, 219, 111, 40, 239, 134, 47, 114, 69, 45, 87, 15, 234, 100, 9, 90, | ||
591 | 220, 203, 241, 40, 150, 239, 164, 39, 164, 196, 117, 156, 132, 143, 87, 146, | ||
592 | 190, 130, 168, 244, 193, 101, 110, 158, 231, 57, 146, 235, 227, 8, 12, 208, | ||
593 | 209, 203, 35, 38, 242, 45, 43, 118, 252, 201, 244, 130, 42, 18, 133, 66, | ||
594 | 129, 209, 77, 208, 69, 236, 138, 254, 255, 245, 112, 236, 86, 171, 1, 111, | ||
595 | 107, 69, 213, 222, 232, 199, 49, 193, 174, 198, 100, 170, 183, 150, 10, 233, | ||
596 | 28, 210, 219, 123, 233, 126, 105, 75, 222, 231, 13, 137, 242, 177, 41, 137, | ||
597 | 60, 202, 92, 16, 131, 226, 193, 152, 79, 95, 235, 105, 227, 172, 7, 160, | ||
598 | 180, 146, 190, 243, 34, 19, 186, 215, 106, 95, 152, 49, 90, 68, 71, 90, | ||
599 | 222, 240, 72, 16, 153, 69, 114, 193, 215, 175, 165, 224, 198, 154, 70, 104, | ||
600 | 79, 97, 153, 54, 153, 179, 2, 207, 197, 243, 12, 159, 76, 168, 136, 217, | ||
601 | 116, 79, 104, 21, 215, 72, 199, 35, 153, 67, 50, 145, 11, 253, 62, 254, | ||
602 | 121, 1, 8, 147, 39, 20, 94, 155, 80, 41, 135, 135, 45, 85, 61, 140, | ||
603 | 26, 195, 80, 187, 252, 175, 253, 152, 170, 169, 118, 235, 158, 134, 82, 188, | ||
604 | 86, 52, 70, 32, 239, 212, 157, 115, 137, 28, 191, 156, 197, 136, 226, 171, | ||
605 | 17, 231, 181, 79, 246, 232, 178, 242, 233, 113, 210, 230, 35, 201, 213, 28, | ||
606 | 72, 27, 183, 26, 106, 240, 111, 111, 255, 122, 128, 234, 179, 201, 66, 165, | ||
607 | 245, 198, 201, 138, 20, 212, 139, 159, 200, 91, 150, 175, 209, 203, 255, 81, | ||
608 | 30, 27, 83, 216, 119, 36, 48, 112, 237, 229, 175, 204, 149, 192, 183, 184, | ||
609 | 165, 176, 231, 176, 223, 81, 214, 225, 145, 107, 248, 225, 213, 6, 99, 59, | ||
610 | 197, 183, 125, 208, 26, 19, 178, 146, 154, 242, 71, 189, 11, 246, 48, 8, | ||
611 | 7, 28, 105, 208, 20, 13, 236, 77, 244, 218, 101, 217, 125, 199, 153, 77, | ||
612 | 193, 214, 233, 91, 48, 201, 209, 6, 155, 87, 208, 221, 9, 73, 76, 191, | ||
613 | 23, 249, 237, 146, 189, 177, 55, 8, 68, 192, 111, 204, 19, 164, 189, 223, | ||
614 | 83, 220, 156, 79, 12, 82, 178, 149, 102, 94, 120, 229, 198, 77, 136, 244, | ||
615 | 84, 33, 90, 66, 193, 45, 252, 160, 151, 66, 240, 135, 232, 147, 235, 107, | ||
616 | 173, 30, 184, 103, 131, 168, 55, 195, 111, 16, 202, 227, 203, 16, 14, 226, | ||
617 | 104, 220, 126, 121, 163, 5, 26, 253, 35, 196, 13, 90, 196, 32, 157, 28, | ||
618 | 152, 70, 205, 236, 101, 142, 207, 126, 230, 67, 194, 143, 67, 77, 91, 97, | ||
619 | 71, 135, 244, 40, 104, 120, 39, 169, 91, 124, 162, 111, 121, 9, 118, 146, | ||
620 | 215, 112, 120, 157, 22, 198, 241, 196, 32, 176, 60, 244, 197, 37, 210, 215, | ||
621 | 125, 122, 143, 253, 175, 101, 92, 205, 43, 170, 70, 183, 173, 162, 130, 226, | ||
622 | 41, 122, 158, 130, 183, 223, 162, 212, 194, 38, 133, 252, 57, 245, 187, 168, | ||
623 | 165, 204, 119, 8, 249, 174, 10, 206, 251, 55, 212, 118, 212, 74, 226, 227, | ||
624 | 141, 138, 122, 204, 83, 14, 175, 248, 18, 159, 79, 79, 100, 56, 37, 229, | ||
625 | 209, 221, 238, 197, 164, 42, 159, 203, 67, 31, 8, 195, 72, 251, 142, 229, | ||
626 | 60, 24, 254, 97, 124, 219, 201, 255, 232, 60, 77, 19, 220, 239, 10, 158, | ||
627 | 62, 117, 245, 167, 63, 38, 216, 169, 209, 29, 245, 17, 4, 241, 218, 83, | ||
628 | 72, 48, 214, 228, 85, 103, 116, 248, 133, 200, 75, 81, 220, 207, 59, 226, | ||
629 | 102, 50, 238, 138, 44, 120, 162, 220, 105, 5, 120, 11, 153, 98, 144, 4, | ||
630 | 197, 217, 39, 235, 141, 148, 123, 51, 213, 255, 144, 17, 189, 144, 214, 246, | ||
631 | 45, 95, 229, 127, 107, 19, 164, 143, 48, 210, 29, 249, 66, 11, 171, 191, | ||
632 | 73, 99, 161, 114, 190, 80, 31, 215, 67, 16, 187, 246, 47, 110, 157, 33, | ||
633 | 208, 151, 122, 2, 228, 161, 51, 9, 215, 33, 246, 67, 44, 19, 41, 29, | ||
634 | 10, 42, 130, 244, 95, 45, 199, 156, 251, 151, 210, 121, 198, 52, 44, 87, | ||
635 | 214, 126, 214, 93, 242, 201, 31, 44, 250, 139, 78, 59, 95, 116, 45, 100, | ||
636 | 187, 97, 206, 143, 158, 54, 98, 113, 30, 101, 151, 56, 187, 116, 199, 157, | ||
637 | 108, 136, 90, 36, 85, 253, 171, 140, 253, 14, 229, 238, 65, 220, 56, 162, | ||
638 | 194, 138, 46, 251, 90, 92, 121, 202, 202, 98, 133, 78, 229, 87, 31, 158, | ||
639 | 12, 175, 122, 17, 65, 10, 163, 51, 163, 95, 143, 208, 9, 192, 58, 29, | ||
640 | 130, 4, 237, 194, 246, 82, 11, 20, 49, 26, 177, 34, 202, 180, 210, 111, | ||
641 | 234, 151, 37, 27, 225, 7, 205, 35, 242, 176, 98, 232, 60, 89, 99, 33, | ||
642 | 233, 106, 236, 96, 248, 71, 101, 133, 44, 190, 241, 76, 113, 146, 181, 106, | ||
643 | 191, 130, 100, 127, 206, 138, 118, 124, 159, 138, 215, 82, 22, 224, 17, 114, | ||
644 | 127, 109, 203, 60, 33, 67, 126, 145, 25, 199, 88, 97, 150, 40, 68, 185, | ||
645 | 144, 218, 230, 81, 203, 223, 45, 209, 250, 22, 234, 12, 153, 49, 19, 107, | ||
646 | 97, 79, 126, 100, 128, 16, 12, 83, 74, 94, 23, 159, 192, 193, 74, 153, | ||
647 | 246, 12, 157, 248, 106, 34, 35, 64, 99, 184, 137, 91, 26, 154, 127, 155, | ||
648 | 218, 36, 185, 64, 26, 41, 236, 232, 223, 159, 10, 29, 165, 12, 244, 214, | ||
649 | 231, 231, 212, 154, 169, 66, 39, 153, 129, 38, 40, 46, 140, 140, 172, 0, | ||
650 | 251, 41, 244, 153, 56, 180, 67, 22, 40, 33, 9, 111, 79, 11, 215, 49, | ||
651 | 66, 195, 45, 113, 22, 41, 109, 39, 124, 178, 49, 173, 25, 245, 157, 190, | ||
652 | 63, 116, 79, 213, 200, 171, 85, 121, 185, 198, 99, 92, 235, 127, 157, 18, | ||
653 | 45, 201, 187, 193, 140, 79, 33, 65, 24, 11, 175, 105, 233, 47, 242, 36, | ||
654 | 139, 254, 195, 48, 31, 146, 32, 0, 150, 237, 52, 165, 4, 174, 230, 81, | ||
655 | 72, 146, 101, 241, 206, 146, 151, 105, 106, 255, 165, 127, 196, 69, 250, 155, | ||
656 | 248, 177, 254, 232, 30, 109, 169, 33, 76, 112, 72, 214, 254, 113, 170, 234, | ||
657 | 191, 76, 20, 132, 209, 243, 152, 241, 107, 12, 107, 31, 16, 149, 129, 8, | ||
658 | 160, 7, 54, 31, 219, 58, 93, 76, 50, 143, 210, 73, 131, 59, 34, 38, | ||
659 | 88, 9, 217, 193, 206, 147, 54, 244, 11, 240, 180, 243, 123, 68, 124, 81, | ||
660 | 153, 132, 49, 38, 33, 220, 125, 164, 236, 162, 128, 202, 246, 183, 178, 35, | ||
661 | 242, 109, 76, 7, 215, 92, 149, 32, 117, 34, 174, 122, 34, 101, 5, 67, | ||
662 | 79, 24, 48, 75, 194, 8, 12, 98, 113, 36, 13, 79, 16, 94, 249, 110, | ||
663 | 147, 212, 105, 205, 39, 31, 127, 182, 213, 97, 28, 226, 105, 217, 245, 84, | ||
664 | 138, 119, 58, 136, 137, 79, 193, 116, 226, 72, 101, 0, 142, 171, 59, 40, | ||
665 | 203, 158, 100, 187, 137, 8, 9, 125, 233, 16, 241, 192, 135, 4, 72, 132, | ||
666 | 89, 126, 34, 0, 197, 80, 159, 101, 77, 18, 52, 179, 249, 169, 95, 125, | ||
667 | 120, 18, 56, 177, 106, 6, 100, 99, 197, 197, 111, 104, 120, 211, 163, 86, | ||
668 | 224, 106, 157, 48, 112, 84, 232, 171, 172, 220, 107, 136, 118, 170, 105, 16, | ||
669 | 133, 223, 77, 65, 61, 41, 184, 88, 67, 98, 175, 216, 139, 56, 140, 26, | ||
670 | 18, 179, 212, 180, 218, 235, 78, 180, 154, 144, 195, 188, 126, 205, 37, 58, | ||
671 | 203, 223, 248, 156, 87, 139, 176, 77, 244, 117, 77, 148, 85, 187, 142, 119, | ||
672 | 144, 113, 128, 217, 33, 5, 107, 247, 10, 178, 66, 206, 128, 187, 155, 161, | ||
673 | 150, 166, 9, 194, 18, 87, 82, 5, 42, 74, 250, 215, 83, 145, 8, 158, | ||
674 | 182, 156, 82, 161, 19, 87, 92, 77, 14, 7, 208, 23, 8, 13, 59, 57, | ||
675 | 167, 252, 236, 167, 68, 206, 208, 173, 237, 84, 141, 14, 118, 250, 194, 37, | ||
676 | 131, 146, 23, 17, 37, 228, 42, 134, 130, 193, 34, 83, 151, 107, 227, 133, | ||
677 | 189, 157, 96, 73, 176, 115, 205, 111, 159, 89, 182, 43, 180, 27, 36, 57, | ||
678 | 30, 151, 83, 181, 2, 2, 53, 17, 231, 175, 92, 52, 97, 124, 25, 172, | ||
679 | 17, 206, 83, 37, 79, 60, 174, 47, 181, 207, 115, 216, 0, 59, 178, 186, | ||
680 | 222, 154, 48, 10, 203, 237, 168, 102, 67, 97, 12, 80, 164, 196, 36, 102, | ||
681 | 249, 198, 223, 40, 139, 247, 238, 100, 167, 179, 209, 170, 131, 198, 166, 105, | ||
682 | 139, 118, 164, 153, 86, 75, 187, 187, 197, 160, 68, 198, 18, 67, 72, 85, | ||
683 | 158, 8, 198, 13, 38, 133, 227, 47, 6, 64, 250, 136, 178, 128, 108, 116, | ||
684 | 81, 186, 206, 233, 159, 179, 60, 114, 136, 222, 26, 198, 221, 9, 223, 32, | ||
685 | 123, 35, 23, 188, 146, 155, 213, 76, 159, 32, 252, 211, 185, 1, 157, 178, | ||
686 | 135, 227, 248, 103, 157, 213, 189, 148, 107, 135, 236, 254, 236, 112, 211, 216, | ||
687 | 133, 146, 65, 193, 156, 12, 68, 129, 130, 145, 203, 140, 174, 99, 164, 145, | ||
688 | 36, 252, 41, 175, 206, 147, 115, 196, 4, 174, 108, 17, 122, 230, 134, 147, | ||
689 | 226, 163, 123, 125, 195, 16, 122, 59, 157, 243, 224, 222, 35, 75, 158, 165, | ||
690 | 183, 96, 220, 251, 154, 155, 140, 144, 238, 87, 118, 32, 40, 120, 50, 237, | ||
691 | 231, 139, 167, 105, 32, 225, 232, 86, 220, 154, 75, 196, 71, 65, 93, 220, | ||
692 | 61, 119, 51, 177, 246, 221, 145, 96, 123, 19, 25, 236, 101, 58, 161, 73, | ||
693 | 84, 176, 133, 105, 196, 134, 172, 27, 162, 226, 224, 55, 16, 137, 168, 193, | ||
694 | 190, 36, 174, 21, 216, 214, 118, 104, 129, 255, 68, 151, 108, 167, 109, 82, | ||
695 | 66, 183, 246, 156, 70, 234, 152, 129, 21, 156, 244, 102, 179, 68, 253, 171, | ||
696 | 86, 189, 188, 191, 254, 81, 210, 173, 115, 204, 35, 164, 144, 108, 236, 225, | ||
697 | 100, 49, 60, 210, 38, 90, 187, 49, 180, 192, 94, 27, 241, 255, 99, 158, | ||
698 | 7, 237, 83, 24, 236, 15, 188, 123, 165, 197, 98, 230, 62, 46, 224, 117, | ||
699 | 139, 102, 180, 131, 227, 218, 54, 126, 52, 152, 148, 252, 217, 93, 32, 154, | ||
700 | 96, 161, 242, 40, 170, 26, 56, 74, 254, 10, 15, 19, 201, 213, 81, 46, | ||
701 | 158, 233, 148, 163, 223, 116, 67, 170, 168, 17, 52, 115, 222, 60, 24, 251, | ||
702 | 6, 74, 89, 86, 242, 245, 45, 128, 182, 3, 195, 154, 20, 179, 113, 153, | ||
703 | 44, 242, 180, 83, 26, 92, 220, 87, 99, 40, 234, 36, 47, 104, 5, 216, | ||
704 | 15, 75, 28, 250, 13, 84, 199, 155, 151, 61, 58, 214, 142, 173, 215, 72, | ||
705 | 185, 60, 233, 73, 102, 177, 181, 170, 7, 48, 166, 110, 32, 227, 24, 254, | ||
706 | 43, 157, 97, 119, 1, 125, 154, 244, 80, 196, 119, 70, 137, 163, 29, 157, | ||
707 | 21, 96, 40, 77, 149, 43, 89, 115, 78, 66, 67, 78, 130, 122, 141, 108, | ||
708 | 245, 94, 13, 91, 233, 28, 99, 104, 150, 29, 104, 122, 221, 186, 150, 126, | ||
709 | 164, 59, 147, 132, 74, 1, 84, 129, 134, 199, 184, 19, 164, 172, 218, 226, | ||
710 | 69, 96, 187, 3, 219, 55, 20, 36, 43, 220, 131, 166, 139, 173, 189, 7, | ||
711 | 95, 213, 220, 66, 112, 32, 44, 231, 163, 42, 23, 106, 253, 98, 142, 233, | ||
712 | 108, 164, 242, 111, 223, 130, 113, 101, 180, 103, 69, 79, 3, 212, 134, 113, | ||
713 | 14, 252, 41, 247, 87, 188, 147, 176, 171, 218, 249, 176, 197, 157, 118, 13, | ||
714 | 73, 246, 206, 106, 50, 120, 17, 148, 147, 164, 185, 70, 144, 158, 116, 214, | ||
715 | 92, 246, 184, 68, 85, 100, 240, 154, 2, 156, 164, 212, 110, 241, 153, 129, | ||
716 | 7, 222, 203, 157, 48, 94, 103, 89, 110, 197, 102, 10, 76, 234, 22, 12, | ||
717 | 104, 202, 167, 57, 56, 178, 52, 73, 40, 212, 95, 196, 212, 166, 85, 15, | ||
718 | 41, 81, 141, 124, 130, 100, 79, 100, 175, 126, 225, 151, 102, 116, 43, 17, | ||
719 | 190, 116, 116, 79, 51, 59, 243, 149, 11, 121, 3, 234, 103, 221, 234, 201, | ||
720 | 245, 5, 11, 20, 29, 181, 138, 67, 190, 119, 205, 66, 225, 155, 66, 14, | ||
721 | 205, 68, 114, 207, 7, 180, 117, 185, 176, 204, 9, 9, 126, 205, 58, 142, | ||
722 | 28, 136, 232, 53, 149, 237, 169, 44, 185, 78, 143, 99, 153, 143, 187, 157, | ||
723 | 87, 106, 201, 63, 2, 205, 96, 226, 4, 28, 208, 81, 197, 98, 126, 168, | ||
724 | 170, 63, 29, 15, 228, 23, 82, 12, 109, 204, 227, 231, 228, 87, 196, 63, | ||
725 | 117, 68, 31, 206, 19, 177, 225, 66, 233, 244, 58, 185, 208, 188, 153, 253, | ||
726 | 0, 60, 122, 11, 36, 193, 235, 90, 21, 89, 103, 232, 187, 68, 214, 232, | ||
727 | 180, 13, 143, 157, 99, 180, 232, 213, 90, 113, 194, 193, 194, 230, 242, 45, | ||
728 | 135, 51, 201, 80, 171, 128, 144, 150, 184, 193, 211, 22, 74, 186, 176, 237, | ||
729 | 133, 181, 83, 216, 250, 76, 28, 144, 255, 76, 29, 64, 27, 25, 54, 88, | ||
730 | 161, 132, 38, 34, 236, 32, 77, 106, 157, 6, 74, 120, 64, 211, 237, 173, | ||
731 | 164, 29, 22, 107, 236, 9, 67, 136, 70, 87, 153, 52, 245, 162, 52, 213, | ||
732 | 109, 66, 123, 116, 19, 54, 210, 216, 16, 72, 192, 249, 183, 108, 193, 60, | ||
733 | 242, 120, 186, 160, 200, 137, 184, 180, 97, 15, 95, 167, 169, 87, 146, 151, | ||
734 | 83, 244, 178, 11, 114, 231, 59, 246, 175, 29, 229, 95, 166, 199, 244, 74, | ||
735 | 6, 79, 7, 15, 150, 53, 55, 148, 10, 214, 117, 214, 214, 18, 111, 23, | ||
736 | 77, 192, 122, 193, 255, 196, 114, 120, 89, 233, 200, 20, 133, 140, 132, 162, | ||
737 | 136, 45, 10, 216, 110, 169, 138, 221, 15, 114, 80, 66, 207, 159, 89, 31, | ||
738 | 183, 6, 112, 209, 114, 85, 57, 171, 99, 14, 83, 218, 19, 240, 133, 147, | ||
739 | 208, 50, 112, 209, 213, 114, 113, 128, 67, 115, 171, 57, 184, 202, 111, 119, | ||
740 | 128, 8, 204, 133, 137, 179, 216, 142, 74, 57, 86, 75, 192, 237, 228, 108, | ||
741 | 69, 105, 193, 141, 250, 76, 204, 128, 155, 26, 66, 172, 237, 250, 179, 186, | ||
742 | 199, 211, 152, 65, 6, 152, 201, 105, 251, 78, 186, 157, 66, 69, 101, 190, | ||
743 | 17, 230, 96, 168, 156, 29, 7, 59, 250, 141, 145, 141, 234, 100, 149, 39, | ||
744 | 172, 205, 57, 39, 61, 6, 218, 254, 181, 184, 94, 155, 251, 236, 8, 17, | ||
745 | 252, 132, 153, 56, 164, 230, 249, 203, 60, 78, 227, 136, 118, 97, 69, 247, | ||
746 | 170, 83, 230, 125, 104, 85, 239, 19, 220, 15, 148, 251, 249, 196, 138, 38, | ||
747 | 81, 209, 15, 231, 239, 183, 73, 121, 87, 157, 191, 171, 0, 99, 100, 105, | ||
748 | 105, 223, 226, 113, 198, 179, 200, 75, 136, 55, 190, 194, 166, 94, 142, 224, | ||
749 | 39, 193, 163, 138, 3, 203, 220, 34, 118, 216, 34, 142, 111, 227, 241, 205, | ||
750 | 154, 220, 162, 107, 200, 100, 217, 194, 122, 207, 234, 161, 104, 119, 201, 84, | ||
751 | 46, 37, 159, 130, 76, 136, 147, 250, 29, 209, 151, 145, 92, 189, 105, 79, | ||
752 | 101, 117, 4, 209, 229, 171, 22, 168, 11, 210, 160, 120, 158, 218, 39, 129, | ||
753 | 95, 30, 254, 37, 160, 17, 226, 65, 38, 155, 129, 122, 222, 170, 133, 113, | ||
754 | 134, 168, 135, 212, 57, 200, 248, 226, 62, 62, 200, 159, 127, 42, 51, 90, | ||
755 | 49, 28, 134, 6, 226, 227, 159, 163, 142, 179, 173, 151, 168, 47, 106, 150, | ||
756 | 43, 205, 20, 245, 181, 82, 210, 73, 173, 93, 73, 132, 69, 71, 195, 129, | ||
757 | 214, 106, 151, 117, 135, 138, 224, 126, 167, 48, 83, 34, 36, 200, 13, 29, | ||
758 | 239, 80, 11, 224, 146, 30, 165, 79, 231, 209, 119, 168, 138, 217, 100, 202, | ||
759 | 154, 132, 206, 54, 71, 170, 74, 126, 11, 105, 96, 94, 176, 133, 105, 167, | ||
760 | 60, 81, 127, 80, 238, 86, 126, 54, 147, 16, 117, 54, 230, 12, 76, 196, | ||
761 | 8, 177, 11, 61, 177, 113, 30, 40, 18, 26, 18, 55, 37, 74, 94, 243, | ||
762 | 222, 250, 144, 1, 67, 236, 61, 94, 204, 49, 44, 63, 128, 123, 253, 163, | ||
763 | 36, 31, 168, 42, 144, 198, 132, 53, 212, 183, 1, 234, 164, 254, 55, 113, | ||
764 | 19, 28, 184, 210, 113, 4, 95, 146, 92, 164, 152, 120, 176, 218, 237, 134, | ||
765 | 193, 243, 109, 2, 35, 253, 94, 25, 192, 246, 118, 186, 220, 218, 81, 217, | ||
766 | 36, 126, 215, 24, 86, 127, 114, 69, 176, 237, 20, 52, 239, 1, 82, 149, | ||
767 | 90, 227, 216, 108, 176, 100, 41, 68, 64, 97, 13, 13, 10, 132, 104, 252, | ||
768 | 194, 30, 134, 21, 234, 121, 133, 137, 238, 55, 1, 233, 41, 41, 165, 24, | ||
769 | 135, 243, 206, 15, 65, 184, 175, 222, 34, 216, 2, 143, 84, 207, 136, 195, | ||
770 | 96, 7, 114, 230, 244, 158, 69, 30, 62, 183, 157, 58, 157, 248, 35, 163, | ||
771 | 89, 27, 18, 44, 149, 74, 255, 140, 216, 203, 58, 102, 75, 24, 123, 11, | ||
772 | 79, 224, 186, 187, 55, 178, 22, 170, 74, 65, 248, 185, 88, 174, 100, 179, | ||
773 | 42, 147, 165, 94, 149, 106, 1, 14, 49, 135, 110, 240, 201, 36, 145, 118, | ||
774 | 151, 62, 220, 245, 246, 188, 254, 207, 98, 231, 47, 67, 38, 225, 110, 86, | ||
775 | 50, 168, 160, 3, 188, 233, 152, 13, 199, 93, 171, 72, 152, 181, 223, 144, | ||
776 | 105, 206, 64, 198, 51, 125, 118, 168, 107, 110, 42, 87, 126, 137, 100, 52, | ||
777 | 139, 187, 84, 78, 109, 68, 157, 242, 105, 42, 192, 199, 227, 229, 167, 149, | ||
778 | 115, 222, 117, 64, 146, 168, 86, 69, 160, 37, 91, 184, 75, 172, 107, 178, | ||
779 | 205, 113, 109, 197, 143, 177, 69, 241, 131, 191, 103, 112, 145, 194, 234, 152, | ||
780 | 191, 196, 121, 189, 118, 85, 248, 218, 129, 113, 247, 58, 112, 168, 212, 15, | ||
781 | 226, 249, 121, 7, 193, 119, 219, 153, 152, 134, 87, 50, 53, 1, 122, 228, | ||
782 | 133, 70, 218, 235, 176, 226, 181, 228, 247, 171, 237, 208, 93, 219, 210, 204, | ||
783 | 99, 81, 35, 94, 213, 244, 214, 133, 87, 38, 157, 220, 76, 241, 250, 9, | ||
784 | 174, 94, 200, 220, 42, 33, 84, 33, 20, 6, 86, 165, 70, 17, 23, 147, | ||
785 | 58, 74, 222, 31, 41, 174, 132, 226, 158, 2, 97, 151, 118, 118, 199, 237, | ||
786 | 251, 181, 137, 122, 134, 180, 206, 25, 127, 6, 28, 88, 227, 99, 230, 21, | ||
787 | 51, 19, 201, 179, 147, 131, 49, 170, 49, 104, 15, 138, 137, 169, 120, 94, | ||
788 | 205, 80, 43, 230, 239, 124, 165, 225, 36, 228, 209, 108, 204, 135, 125, 157, | ||
789 | 94, 203, 116, 141, 29, 156, 97, 146, 225, 80, 43, 254, 51, 120, 58, 221, | ||
790 | 11, 176, 165, 179, 174, 53, 216, 195, 110, 24, 177, 125, 101, 171, 86, 108, | ||
791 | 182, 14, 91, 146, 246, 127, 249, 192, 221, 143, 211, 90, 9, 12, 130, 246, | ||
792 | 170, 107, 193, 134, 28, 49, 35, 254, 131, 137, 125, 207, 196, 72, 80, 90, | ||
793 | 30, 174, 143, 172, 226, 50, 12, 236, 58, 235, 205, 251, 234, 171, 14, 201, | ||
794 | 232, 131, 230, 212, 162, 143, 189, 179, 44, 100, 224, 49, 15, 155, 170, 228, | ||
795 | 158, 151, 239, 19, 0, 232, 204, 216, 76, 21, 149, 130, 142, 63, 146, 152, | ||
796 | 124, 136, 129, 14, 182, 212, 29, 8, 244, 12, 36, 28, 134, 52, 216, 106, | ||
797 | 229, 107, 150, 8, 223, 247, 117, 229, 251, 216, 158, 228, 97, 240, 148, 228, | ||
798 | 49, 138, 80, 34, 204, 52, 237, 43, 105, 142, 231, 20, 32, 70, 44, 180, | ||
799 | 212, 121, 229, 177, 50, 152, 238, 72, 51, 116, 111, 18, 27, 211, 40, 211, | ||
800 | 97, 226, 18, 155, 21, 216, 166, 165, 37, 234, 56, 121, 165, 159, 197, 87, | ||
801 | 203, 146, 69, 137, 25, 148, 143, 246, 247, 131, 100, 91, 45, 25, 127, 103, | ||
802 | 35, 219, 32, 31, 237, 93, 92, 167, 194, 64, 255, 188, 64, 139, 118, 135, | ||
803 | 212, 56, 216, 167, 102, 36, 220, 109, 21, 147, 92, 78, 8, 65, 213, 179, | ||
804 | 11, 40, 227, 83, 207, 175, 56, 75, 193, 105, 239, 145, 193, 107, 234, 101, | ||
805 | 50, 97, 123, 246, 137, 30, 180, 149, 18, 62, 162, 163, 16, 192, 79, 61, | ||
806 | 222, 25, 35, 181, 13, 10, 90, 25, 216, 76, 219, 117, 100, 244, 159, 172, | ||
807 | 223, 106, 19, 1, 176, 180, 154, 222, 182, 202, 241, 217, 150, 203, 244, 213, | ||
808 | 94, 178, 158, 130, 166, 105, 167, 118, 194, 153, 142, 60, 134, 216, 142, 216, | ||
809 | 254, 2, 7, 54, 26, 197, 25, 138, 74, 39, 101, 107, 168, 110, 24, 58, | ||
810 | 191, 136, 25, 40, 26, 79, 96, 4, 25, 32, 134, 180, 69, 19, 198, 208, | ||
811 | 254, 197, 133, 72, 242, 66, 107, 23, 157, 143, 117, 50, 224, 198, 246, 8, | ||
812 | 19, 49, 213, 159, 9, 201, 160, 158, 200, 59, 145, 119, 110, 58, 190, 132, | ||
813 | 168, 220, 64, 171, 103, 140, 202, 167, 130, 190, 195, 57, 194, 90, 11, 214, | ||
814 | 19, 53, 68, 88, 89, 14, 235, 20, 50, 249, 248, 100, 241, 10, 149, 35, | ||
815 | 93, 4, 84, 62, 75, 41, 223, 81, 56, 18, 14, 101, 224, 40, 118, 53, | ||
816 | 252, 72, 194, 185, 15, 235, 120, 170, 171, 237, 242, 201, 96, 157, 93, 248, | ||
817 | 227, 156, 239, 249, 190, 10, 177, 147, 77, 18, 157, 53, 114, 233, 168, 14, | ||
818 | 28, 80, 50, 89, 248, 127, 156, 98, 193, 111, 202, 38, 248, 60, 243, 240, | ||
819 | 198, 122, 227, 160, 117, 138, 247, 171, 235, 47, 23, 245, 177, 12, 24, 213, | ||
820 | 214, 117, 210, 86, 85, 55, 153, 25, 16, 53, 195, 81, 247, 217, 104, 109, | ||
821 | 170, 63, 79, 169, 38, 150, 42, 167, 206, 230, 51, 109, 62, 202, 205, 164, | ||
822 | 28, 240, 90, 82, 119, 57, 222, 95, 195, 106, 193, 197, 180, 73, 24, 108, | ||
823 | 143, 114, 54, 29, 100, 255, 124, 30, 143, 120, 147, 84, 110, 157, 53, 226, | ||
824 | 104, 117, 65, 60, 187, 173, 94, 59, 132, 121, 145, 188, 220, 105, 4, 48, | ||
825 | 89, 130, 82, 236, 212, 138, 179, 197, 182, 115, 6, 83, 196, 132, 184, 148, | ||
826 | 183, 101, 141, 92, 84, 153, 147, 133, 212, 8, 250, 226, 167, 209, 22, 95, | ||
827 | 44, 103, 243, 27, 111, 105, 128, 110, 88, 110, 190, 229, 81, 26, 219, 229, | ||
828 | 83, 247, 16, 17, 158, 228, 197, 32, 193, 223, 184, 178, 89, 21, 43, 254, | ||
829 | 124, 144, 200, 131, 138, 5, 107, 98, 139, 16, 184, 127, 244, 51, 141, 88, | ||
830 | 178, 132, 205, 239, 123, 14, 34, 2, 244, 238, 154, 230, 146, 87, 15, 20, | ||
831 | 164, 174, 159, 28, 211, 81, 230, 227, 158, 16, 168, 8, 18, 105, 177, 68, | ||
832 | 50, 127, 64, 73, 123, 233, 44, 34, 159, 133, 66, 100, 163, 184, 244, 171, | ||
833 | 240, 235, 230, 160, 137, 131, 200, 230, 189, 136, 137, 240, 110, 253, 0, 250, | ||
834 | 52, 126, 123, 209, 83, 189, 61, 243, 153, 60, 36, 157, 156, 141, 175, 212, | ||
835 | 219, 217, 33, 144, 133, 126, 7, 41, 228, 77, 247, 47, 162, 47, 3, 157, | ||
836 | 32, 219, 149, 138, 51, 181, 65, 242, 51, 76, 185, 51, 5, 188, 216, 33, | ||
837 | 31, 179, 247, 93, 55, 241, 103, 253, 14, 6, 32, 17, 137, 194, 126, 235, | ||
838 | 132, 115, 93, 167, 187, 190, 147, 190, 255, 120, 166, 38, 118, 241, 129, 163, | ||
839 | 37, 39, 155, 142, 37, 147, 134, 221, 136, 99, 114, 152, 250, 143, 53, 104, | ||
840 | 103, 7, 37, 178, 195, 124, 200, 196, 34, 8, 247, 255, 156, 141, 29, 202, | ||
841 | 239, 70, 189, 144, 0, 167, 182, 105, 57, 205, 218, 54, 151, 29, 7, 76, | ||
842 | 7, 84, 20, 246, 185, 216, 93, 21, 96, 25, 115, 176, 38, 180, 177, 224, | ||
843 | 112, 104, 92, 17, 152, 55, 211, 21, 210, 98, 249, 201, 21, 85, 84, 185, | ||
844 | 53, 59, 147, 198, 1, 251, 185, 235, 132, 73, 67, 194, 220, 120, 191, 206, | ||
845 | 73, 53, 158, 237, 102, 41, 23, 133, 14, 81, 47, 204, 9, 142, 124, 180, | ||
846 | 115, 236, 180, 190, 218, 68, 92, 113, 54, 250, 174, 99, 126, 1, 186, 88, | ||
847 | 231, 96, 51, 147, 236, 164, 135, 210, 75, 242, 196, 53, 104, 101, 233, 0, | ||
848 | 129, 173, 53, 118, 42, 188, 139, 187, 251, 143, 37, 222, 198, 168, 194, 103, | ||
849 | 107, 56, 240, 213, 98, 0, 65, 112, 187, 230, 203, 207, 104, 124, 78, 130, | ||
850 | 66, 156, 214, 95, 22, 46, 181, 254, 15, 201, 138, 160, 138, 171, 202, 3, | ||
851 | 169, 187, 110, 58, 43, 218, 62, 112, 49, 206, 186, 161, 31, 140, 183, 84, | ||
852 | 143, 250, 217, 123, 9, 210, 87, 1, 208, 77, 143, 33, 6, 237, 173, 108, | ||
853 | 187, 137, 131, 148, 145, 22, 123, 142, 146, 156, 223, 61, 124, 151, 57, 17, | ||
854 | 88, 139, 56, 8, 26, 205, 163, 193, 72, 201, 209, 220, 215, 97, 172, 73, | ||
855 | 99, 139, 111, 125, 94, 196, 78, 235, 224, 103, 38, 237, 9, 142, 131, 229, | ||
856 | 45, 247, 172, 219, 29, 102, 67, 124, 171, 113, 2, 85, 148, 56, 150, 227, | ||
857 | 45, 147, 200, 171, 42, 244, 128, 106, 2, 47, 245, 211, 163, 240, 41, 86, | ||
858 | 50, 70, 44, 91, 166, 247, 110, 234, 138, 152, 4, 100, 49, 248, 198, 51, | ||
859 | 124, 253, 126, 122, 30, 165, 0, 183, 248, 65, 30, 156, 161, 52, 164, 76, | ||
860 | 44, 198, 99, 20, 24, 97, 93, 232, 104, 51, 200, 0, 153, 67, 93, 172, | ||
861 | 94, 217, 127, 34, 29, 64, 149, 41, 78, 211, 63, 188, 61, 102, 2, 127, | ||
862 | 166, 194, 5, 59, 203, 5, 224, 68, 250, 58, 202, 236, 218, 235, 168, 0, | ||
863 | 205, 82, 53, 99, 51, 144, 0, 140, 45, 46, 213, 207, 17, 221, 47, 85, | ||
864 | 211, 87, 2, 35, 167, 236, 191, 70, 147, 201, 200, 69, 1, 228, 136, 243, | ||
865 | 122, 253, 34, 201, 92, 90, 194, 8, 119, 197, 197, 178, 157, 207, 170, 147, | ||
866 | 232, 5, 200, 241, 6, 27, 120, 242, 232, 163, 26, 234, 230, 50, 214, 194, | ||
867 | 125, 135, 62, 28, 118, 24, 155, 39, 166, 250, 204, 189, 169, 94, 110, 81, | ||
868 | 222, 81, 127, 71, 49, 176, 178, 37, 63, 219, 72, 0, 100, 255, 201, 70, | ||
869 | 177, 208, 81, 101, 177, 31, 130, 187, 196, 119, 161, 217, 207, 216, 59, 106, | ||
870 | 15, 56, 134, 229, 99, 68, 73, 215, 9, 25, 119, 82, 88, 19, 184, 42, | ||
871 | 38, 40, 176, 6, 34, 167, 249, 143, 6, 216, 128, 139, 75, 3, 229, 126, | ||
872 | 121, 187, 68, 219, 187, 99, 154, 175, 240, 86, 75, 40, 133, 146, 223, 105, | ||
873 | 220, 83, 126, 90, 206, 136, 102, 199, 36, 217, 56, 78, 226, 138, 59, 142, | ||
874 | 223, 68, 175, 191, 83, 224, 208, 195, 2, 102, 168, 194, 158, 231, 143, 162, | ||
875 | 83, 92, 93, 238, 12, 231, 142, 41, 106, 66, 178, 68, 83, 155, 24, 102, | ||
876 | 150, 112, 1, 27, 175, 239, 85, 175, 61, 75, 157, 245, 121, 62, 171, 217, | ||
877 | 55, 218, 86, 45, 10, 228, 203, 193, 216, 90, 142, 109, 232, 168, 17, 149, | ||
878 | 145, 169, 199, 134, 194, 110, 104, 66, 130, 215, 179, 205, 6, 183, 93, 47, | ||
879 | 131, 8, 104, 12, 169, 92, 69, 43, 193, 77, 223, 238, 36, 15, 59, 136, | ||
880 | 95, 87, 196, 169, 35, 118, 252, 19, 6, 247, 172, 219, 159, 109, 118, 154, | ||
881 | 10, 199, 227, 164, 36, 85, 27, 37, 52, 149, 85, 107, 134, 203, 39, 112, | ||
882 | 63, 235, 229, 225, 141, 127, 46, 188, 125, 48, 183, 137, 79, 157, 251, 128, | ||
883 | 214, 29, 60, 192, 43, 20, 22, 77, 62, 5, 229, 201, 61, 217, 181, 68, | ||
884 | 161, 232, 220, 189, 206, 170, 48, 199, 251, 10, 93, 153, 112, 35, 81, 174, | ||
885 | 17, 220, 54, 183, 4, 229, 14, 231, 33, 14, 63, 121, 125, 205, 101, 110, | ||
886 | 255, 145, 55, 130, 56, 4, 236, 171, 27, 10, 130, 188, 115, 125, 104, 178, | ||
887 | 41, 100, 48, 200, 231, 41, 156, 32, 125, 22, 167, 209, 221, 201, 63, 165, | ||
888 | 210, 15, 14, 83, 162, 45, 176, 131, 195, 34, 145, 120, 155, 67, 82, 254, | ||
889 | 231, 179, 149, 97, 4, 84, 30, 62, 140, 39, 235, 91, 145, 92, 89, 87, | ||
890 | 96, 144, 96, 223, 153, 0, 28, 117, 238, 168, 40, 11, 140, 197, 162, 172, | ||
891 | 72, 23, 120, 153, 147, 195, 6, 39, 36, 54, 174, 202, 182, 74, 232, 30, | ||
892 | 240, 10, 130, 188, 127, 2, 48, 68, 9, 191, 245, 176, 249, 169, 19, 21, | ||
893 | 154, 45, 249, 114, 137, 223, 190, 252, 87, 36, 85, 242, 96, 21, 234, 18, | ||
894 | 157, 108, 86, 179, 103, 87, 149, 121, 231, 19, 111, 157, 154, 171, 158, 128, | ||
895 | 68, 253, 157, 146, 9, 11, 82, 101, 218, 181, 37, 73, 31, 19, 122, 211, | ||
896 | 104, 102, 172, 244, 119, 94, 235, 143, 241, 113, 24, 211, 132, 227, 169, 254, | ||
897 | 60, 118, 45, 122, 177, 97, 161, 170, 233, 212, 139, 23, 179, 61, 117, 175, | ||
898 | 126, 18, 119, 242, 14, 67, 254, 147, 62, 61, 58, 54, 42, 75, 134, 163, | ||
899 | 134, 56, 20, 222, 1, 199, 168, 38, 142, 114, 14, 84, 106, 218, 24, 245, | ||
900 | 129, 59, 86, 217, 80, 79, 119, 218, 53, 136, 124, 63, 90, 179, 205, 112, | ||
901 | 192, 116, 186, 223, 65, 52, 109, 169, 196, 209, 73, 239, 124, 224, 15, 78, | ||
902 | 134, 164, 65, 189, 58, 22, 166, 57, 64, 104, 185, 101, 43, 231, 254, 145, | ||
903 | 156, 74, 38, 201, 121, 28, 25, 221, 129, 82, 26, 14, 36, 32, 158, 208, | ||
904 | 70, 2, 201, 70, 190, 208, 246, 54, 239, 158, 140, 212, 225, 209, 177, 86, | ||
905 | 31, 32, 45, 93, 207, 255, 12, 176, 154, 217, 193, 166, 61, 241, 53, 80, | ||
906 | 37, 214, 34, 65, 207, 114, 163, 132, 116, 133, 63, 217, 234, 5, 111, 188, | ||
907 | 79, 1, 110, 88, 156, 17, 242, 1, 138, 105, 144, 213, 123, 212, 7, 164, | ||
908 | 200, 175, 161, 145, 108, 104, 174, 202, 202, 35, 153, 88, 138, 105, 58, 143, | ||
909 | 57, 227, 90, 38, 189, 38, 66, 80, 222, 174, 7, 202, 57, 236, 239, 104, | ||
910 | 51, 26, 252, 140, 2, 74, 4, 163, 211, 199, 202, 185, 65, 203, 13, 210, | ||
911 | 69, 228, 115, 31, 100, 143, 189, 100, 228, 209, 107, 55, 72, 150, 255, 144, | ||
912 | 232, 155, 15, 42, 18, 149, 49, 207, 32, 148, 178, 112, 254, 67, 51, 14, | ||
913 | 217, 41, 203, 217, 205, 101, 223, 161, 148, 33, 92, 164, 250, 91, 80, 251, | ||
914 | 104, 157, 225, 172, 18, 245, 5, 54, 30, 8, 254, 109, 3, 202, 215, 179, | ||
915 | 161, 236, 147, 104, 254, 232, 217, 124, 178, 1, 206, 38, 168, 77, 8, 112, | ||
916 | 234, 154, 162, 94, 3, 90, 94, 114, 137, 115, 42, 98, 202, 0, 214, 202, | ||
917 | 65, 93, 52, 179, 123, 74, 86, 10, 171, 211, 171, 44, 226, 56, 13, 163, | ||
918 | 7, 146, 57, 253, 115, 93, 156, 132, 119, 146, 107, 98, 218, 19, 195, 5, | ||
919 | 195, 190, 231, 218, 143, 48, 65, 102, 92, 0, 244, 108, 148, 144, 214, 99, | ||
920 | 128, 208, 85, 124, 5, 75, 38, 131, 93, 38, 21, 170, 24, 105, 170, 135, | ||
921 | 152, 21, 38, 191, 251, 88, 178, 62, 84, 177, 239, 61, 156, 63, 47, 195, | ||
922 | 117, 159, 198, 182, 126, 216, 103, 165, 158, 51, 70, 34, 33, 241, 216, 11, | ||
923 | 50, 152, 157, 100, 30, 66, 147, 88, 38, 17, 251, 19, 182, 71, 65, 199, | ||
924 | 150, 215, 188, 188, 80, 83, 2, 83, 73, 183, 251, 85, 101, 25, 173, 50, | ||
925 | 243, 138, 194, 98, 209, 104, 219, 25, 45, 111, 172, 115, 238, 149, 4, 205, | ||
926 | 123, 112, 218, 192, 247, 102, 191, 30, 225, 230, 36, 188, 219, 220, 19, 213, | ||
927 | 127, 226, 227, 17, 90, 216, 88, 129, 249, 230, 91, 42, 111, 102, 45, 42, | ||
928 | 175, 161, 188, 195, 184, 238, 57, 69, 88, 168, 167, 23, 64, 47, 201, 51, | ||
929 | 79, 65, 117, 254, 146, 100, 8, 30, 209, 42, 138, 132, 209, 241, 66, 249, | ||
930 | 228, 192, 48, 21, 75, 202, 123, 99, 76, 87, 34, 99, 32, 224, 140, 94, | ||
931 | 90, 178, 47, 165, 23, 227, 92, 218, 45, 44, 104, 9, 23, 94, 254, 195, | ||
932 | 16, 12, 105, 135, 48, 225, 7, 139, 148, 199, 157, 139, 243, 71, 254, 15, | ||
933 | 64, 143, 140, 3, 221, 218, 117, 118, 34, 177, 156, 50, 220, 99, 219, 4, | ||
934 | 247, 244, 16, 100, 51, 73, 85, 181, 24, 127, 102, 173, 238, 205, 143, 68, | ||
935 | 63, 44, 197, 106, 165, 150, 11, 244, 198, 36, 101, 10, 79, 207, 183, 214, | ||
936 | 228, 226, 226, 235, 77, 11, 175, 80, 90, 197, 35, 99, 7, 121, 208, 236, | ||
937 | 141, 171, 176, 158, 219, 162, 166, 168, 147, 2, 131, 180, 57, 229, 106, 63, | ||
938 | 194, 250, 21, 63, 152, 16, 109, 20, 208, 227, 225, 10, 22, 2, 223, 128, | ||
939 | 89, 100, 47, 101, 165, 0, 147, 198, 47, 109, 94, 113, 183, 101, 113, 248, | ||
940 | 79, 21, 26, 141, 176, 52, 118, 71, 143, 174, 194, 248, 199, 194, 245, 105, | ||
941 | 112, 92, 180, 22, 184, 218, 78, 192, 41, 17, 171, 143, 203, 2, 81, 178, | ||
942 | 177, 138, 101, 113, 190, 77, 70, 73, 85, 228, 194, 2, 70, 191, 54, 43, | ||
943 | 188, 233, 27, 135, 140, 127, 10, 59, 38, 86, 226, 127, 166, 132, 69, 21, | ||
944 | 200, 107, 33, 89, 24, 152, 88, 90, 75, 144, 236, 44, 10, 121, 139, 169, | ||
945 | 113, 127, 104, 227, 164, 145, 69, 196, 233, 237, 127, 132, 204, 244, 178, 247, | ||
946 | 191, 207, 63, 135, 214, 135, 213, 151, 44, 43, 190, 32, 241, 221, 118, 81, | ||
947 | 145, 43, 29, 244, 239, 78, 245, 115, 229, 178, 255, 147, 16, 149, 255, 154, | ||
948 | 217, 226, 234, 99, 247, 146, 209, 42, 9, 74, 220, 199, 178, 165, 246, 188, | ||
949 | 22, 51, 136, 38, 63, 125, 45, 108, 190, 111, 72, 248, 57, 16, 107, 120, | ||
950 | 245, 158, 215, 136, 9, 25, 61, 162, 148, 109, 112, 193, 56, 81, 121, 143, | ||
951 | 208, 225, 20, 130, 245, 12, 81, 156, 189, 102, 23, 51, 135, 76, 205, 59, | ||
952 | 197, 152, 35, 80, 127, 168, 223, 48, 20, 104, 57, 69, 132, 53, 72, 220, | ||
953 | 161, 178, 219, 33, 37, 245, 58, 199, 17, 246, 39, 2, 84, 251, 20, 62, | ||
954 | 21, 56, 209, 143, 149, 24, 68, 59, 17, 240, 215, 95, 195, 188, 231, 97, | ||
955 | 41, 32, 98, 57, 107, 172, 90, 159, 132, 150, 226, 75, 151, 144, 12, 111, | ||
956 | 6, 253, 112, 213, 28, 179, 232, 233, 73, 139, 84, 232, 204, 0, 148, 77, | ||
957 | 48, 183, 37, 213, 67, 195, 211, 206, 12, 110, 212, 180, 201, 229, 77, 7, | ||
958 | 48, 221, 44, 102, 23, 168, 145, 200, 77, 103, 7, 173, 247, 84, 110, 123, | ||
959 | 23, 5, 145, 154, 124, 95, 103, 89, 78, 136, 74, 47, 136, 86, 135, 250, | ||
960 | 60, 228, 64, 78, 228, 172, 111, 204, 89, 144, 119, 8, 248, 81, 70, 113, | ||
961 | 89, 113, 50, 70, 124, 182, 58, 179, 77, 197, 160, 136, 41, 195, 19, 163, | ||
962 | 222, 23, 34, 70, 203, 156, 137, 209, 146, 213, 112, 210, 203, 138, 236, 36, | ||
963 | 24, 57, 106, 75, 115, 112, 43, 229, 239, 154, 133, 160, 211, 36, 241, 229, | ||
964 | 94, 110, 224, 182, 162, 85, 189, 20, 125, 9, 26, 137, 185, 177, 14, 138, | ||
965 | 5, 225, 132, 174, 244, 209, 187, 92, 140, 29, 158, 111, 150, 8, 32, 99, | ||
966 | 99, 142, 213, 19, 101, 164, 64, 190, 61, 219, 198, 118, 246, 217, 110, 173, | ||
967 | 248, 24, 100, 216, 190, 118, 198, 209, 64, 238, 205, 176, 46, 116, 131, 103, | ||
968 | 243, 148, 123, 69, 136, 144, 46, 112, 112, 162, 219, 21, 205, 136, 193, 152, | ||
969 | 96, 134, 16, 22, 146, 190, 194, 19, 119, 47, 44, 67, 131, 166, 109, 215, | ||
970 | 159, 90, 88, 212, 11, 71, 235, 55, 31, 4, 113, 172, 187, 169, 10, 144, | ||
971 | 169, 108, 79, 145, 7, 29, 24, 221, 230, 28, 113, 32, 190, 160, 67, 40, | ||
972 | 43, 107, 222, 221, 175, 180, 200, 217, 15, 128, 253, 206, 203, 106, 167, 163, | ||
973 | 89, 29, 28, 247, 240, 14, 121, 133, 218, 154, 167, 77, 98, 149, 151, 145, | ||
974 | 4, 78, 232, 135, 195, 121, 157, 216, 178, 211, 243, 201, 71, 220, 150, 119, | ||
975 | 74, 71, 110, 200, 234, 100, 105, 248, 47, 25, 35, 1, 241, 166, 6, 88, | ||
976 | 41, 246, 176, 181, 21, 75, 150, 20, 227, 19, 64, 226, 209, 194, 121, 174, | ||
977 | 240, 219, 133, 253, 161, 146, 230, 69, 122, 42, 165, 82, 78, 45, 185, 61, | ||
978 | 12, 14, 148, 13, 119, 155, 157, 28, 90, 226, 119, 9, 201, 199, 64, 93, | ||
979 | 120, 115, 138, 156, 235, 123, 52, 111, 149, 48, 73, 181, 204, 181, 10, 157, | ||
980 | 16, 55, 100, 243, 10, 29, 159, 139, 88, 16, 1, 31, 201, 242, 2, 237, | ||
981 | 186, 181, 217, 139, 102, 205, 119, 197, 201, 221, 108, 205, 171, 54, 109, 31, | ||
982 | 76, 199, 28, 160, 214, 14, 201, 25, 211, 189, 144, 44, 69, 70, 205, 79, | ||
983 | 150, 149, 108, 23, 8, 171, 60, 18, 127, 161, 41, 71, 239, 168, 89, 140, | ||
984 | 49, 149, 157, 109, 232, 141, 227, 239, 247, 114, 174, 129, 19, 252, 130, 74, | ||
985 | 202, 224, 73, 122, 246, 47, 147, 8, 37, 60, 253, 101, 11, 171, 160, 39, | ||
986 | 92, 180, 183, 40, 254, 233, 117, 200, 139, 37, 140, 28, 35, 8, 10, 40, | ||
987 | 167, 247, 248, 84, 215, 58, 170, 2, 7, 1, 69, 214, 10, 7, 233, 209, | ||
988 | 181, 212, 34, 68, 46, 141, 198, 137, 248, 45, 130, 97, 123, 104, 141, 17, | ||
989 | 126, 7, 199, 55, 194, 160, 69, 39, 13, 70, 41, 63, 205, 99, 1, 69, | ||
990 | 46, 92, 77, 56, 20, 247, 224, 226, 60, 153, 81, 180, 91, 159, 156, 27, | ||
991 | 119, 114, 126, 210, 26, 123, 165, 204, 237, 81, 75, 130, 45, 60, 0, 155, | ||
992 | 11, 125, 27, 202, 35, 230, 101, 164, 86, 117, 226, 23, 171, 253, 222, 223, | ||
993 | 38, 104, 224, 124, 92, 251, 110, 145, 247, 198, 158, 25, 172, 84, 49, 87, | ||
994 | 1, 168, 95, 124, 146, 5, 46, 179, 198, 235, 69, 200, 63, 212, 59, 110, | ||
995 | 52, 195, 54, 71, 169, 234, 189, 58, 180, 149, 194, 10, 118, 99, 66, 66, | ||
996 | 123, 192, 248, 51, 237, 129, 10, 143, 94, 55, 135, 247, 56, 163, 40, 139, | ||
997 | 150, 192, 142, 64, 169, 90, 42, 116, 228, 62, 67, 130, 212, 212, 23, 210, | ||
998 | 182, 95, 109, 224, 185, 255, 156, 102, 184, 171, 42, 98, 217, 218, 27, 80, | ||
999 | 171, 125, 49, 233, 16, 238, 42, 102, 61, 95, 180, 49, 192, 67, 112, 143, | ||
1000 | 106, 145, 185, 239, 180, 181, 120, 24, 127, 215, 233, 123, 235, 104, 228, 248, | ||
1001 | 223, 90, 211, 211, 76, 179, 198, 253, 220, 171, 247, 171, 11, 237, 17, 249, | ||
1002 | 81, 122, 111, 255, 213, 120, 167, 192, 149, 102, 7, 204, 86, 107, 156, 83, | ||
1003 | 174, 18, 237, 143, 85, 76, 245, 189, 86, 90, 118, 69, 100, 140, 121, 17, | ||
1004 | 255, 17, 209, 144, 90, 3, 191, 201, 134, 108, 0, 196, 133, 153, 39, 248, | ||
1005 | 138, 215, 73, 18, 21, 140, 172, 178, 154, 194, 170, 45, 112, 113, 213, 36, | ||
1006 | 155, 0, 30, 213, 186, 39, 6, 241, 92, 111, 139, 52, 84, 58, 218, 187, | ||
1007 | 60, 123, 113, 190, 185, 89, 242, 248, 221, 238, 173, 145, 214, 237, 133, 101, | ||
1008 | 6, 143, 188, 116, 13, 189, 205, 203, 147, 140, 215, 175, 38, 99, 77, 54, | ||
1009 | 98, 146, 54, 101, 40, 206, 175, 26, 195, 33, 63, 20, 210, 96, 227, 125, | ||
1010 | 108, 230, 179, 123, 81, 135, 183, 132, 216, 56, 223, 197, 141, 158, 114, 228, | ||
1011 | 67, 172, 95, 76, 69, 212, 188, 244, 12, 16, 158, 119, 106, 44, 39, 36, | ||
1012 | 38, 164, 173, 182, 172, 210, 176, 19, 125, 6, 36, 138, 77, 65, 219, 30, | ||
1013 | 45, 167, 21, 125, 49, 69, 173, 23, 242, 246, 25, 155, 194, 161, 140, 125, | ||
1014 | 97, 153, 68, 120, 114, 23, 243, 242, 192, 129, 68, 88, 43, 161, 33, 152, | ||
1015 | 130, 232, 179, 70, 156, 219, 198, 1, 135, 3, 178, 49, 92, 30, 125, 185, | ||
1016 | 39, 185, 69, 143, 30, 180, 113, 109, 233, 156, 101, 82, 239, 142, 58, 234, | ||
1017 | 151, 67, 2, 140, 198, 7, 180, 167, 33, 168, 131, 213, 157, 139, 43, 208, | ||
1018 | 27, 217, 245, 115, 0, 59, 155, 69, 236, 209, 101, 139, 211, 247, 2, 41, | ||
1019 | 113, 222, 7, 2, 109, 61, 232, 215, 145, 18, 202, 158, 187, 136, 54, 190, | ||
1020 | 169, 13, 59, 204, 117, 37, 160, 6, 121, 200, 9, 189, 31, 0, 251, 78, | ||
1021 | 223, 43, 122, 5, 42, 24, 74, 247, 241, 68, 42, 49, 28, 153, 3, 40, | ||
1022 | 166, 47, 55, 83, 186, 236, 69, 132, 91, 115, 132, 26, 214, 160, 51, 161, | ||
1023 | 232, 147, 172, 175, 144, 53, 58, 241, 1, 245, 53, 126, 211, 121, 98, 228, | ||
1024 | 65, 166, 9, 186, 93, 111, 249, 87, 109, 85, 218, 177, 160, 225, 99, 131, | ||
1025 | 167, 173, 36, 10, 121, 121, 98, 249, 99, 68, 128, 159, 217, 207, 65, 52, | ||
1026 | 247, 53, 58, 135, 11, 76, 238, 101, 162, 166, 100, 126, 136, 157, 43, 172, | ||
1027 | 186, 157, 138, 2, 132, 141, 165, 152, 92, 234, 3, 92, 81, 111, 83, 239, | ||
1028 | 234, 204, 152, 240, 74, 198, 42, 56, 131, 104, 96, 83, 207, 109, 30, 185, | ||
1029 | 45, 242, 2, 155, 47, 18, 111, 119, 57, 239, 7, 88, 45, 86, 239, 10, | ||
1030 | 178, 146, 58, 248, 96, 166, 234, 253, 202, 224, 111, 120, 216, 70, 205, 29, | ||
1031 | 154, 232, 216, 165, 222, 76, 153, 46, 5, 143, 71, 197, 175, 198, 127, 231, | ||
1032 | 119, 110, 47, 128, 61, 134, 41, 115, 101, 3, 35, 127, 201, 12, 152, 1, | ||
1033 | 163, 41, 91, 233, 10, 230, 150, 44, 140, 234, 164, 184, 214, 218, 114, 23, | ||
1034 | 221, 163, 57, 2, 5, 147, 66, 223, 90, 238, 136, 95, 138, 116, 27, 91, | ||
1035 | 223, 52, 243, 246, 183, 215, 166, 170, 169, 8, 140, 91, 173, 160, 160, 105, | ||
1036 | 69, 241, 31, 33, 33, 148, 215, 67, 130, 181, 1, 114, 104, 206, 192, 195, | ||
1037 | 247, 229, 99, 84, 29, 2, 132, 146, 191, 243, 37, 36, 46, 176, 164, 68, | ||
1038 | 84, 121, 159, 6, 160, 195, 170, 43, 128, 130, 165, 44, 157, 83, 173, 182, | ||
1039 | 93, 90, 202, 227, 133, 140, 39, 203, 202, 2, 49, 96, 178, 190, 147, 15, | ||
1040 | 99, 71, 216, 166, 97, 130, 87, 4, 149, 23, 107, 246, 216, 213, 222, 64, | ||
1041 | 41, 215, 37, 211, 21, 53, 90, 130, 165, 181, 188, 87, 70, 8, 53, 114, | ||
1042 | 227, 18, 192, 19, 200, 195, 83, 228, 1, 171, 202, 229, 92, 92, 227, 48, | ||
1043 | 251, 31, 198, 59, 162, 119, 9, 75, 115, 30, 127, 8, 89, 99, 249, 86, | ||
1044 | 152, 198, 53, 207, 82, 251, 68, 82, 247, 21, 214, 18, 246, 118, 81, 94, | ||
1045 | 240, 34, 174, 233, 205, 204, 71, 0, 254, 24, 178, 166, 248, 12, 70, 187, | ||
1046 | 163, 168, 95, 23, 108, 156, 210, 244, 198, 216, 54, 32, 83, 158, 121, 26, | ||
1047 | 116, 252, 122, 73, 188, 134, 154, 180, 229, 139, 102, 2, 8, 171, 201, 5, | ||
1048 | 187, 57, 35, 254, 35, 19, 161, 16, 88, 215, 158, 148, 249, 201, 65, 177, | ||
1049 | 144, 69, 138, 161, 220, 255, 190, 223, 43, 181, 11, 158, 103, 193, 14, 21, | ||
1050 | 49, 16, 40, 223, 155, 12, 164, 23, 31, 15, 20, 238, 131, 85, 181, 80, | ||
1051 | 149, 128, 196, 123, 155, 236, 9, 94, 252, 182, 54, 62, 215, 115, 115, 224, | ||
1052 | 242, 141, 137, 238, 115, 101, 107, 65, 202, 79, 79, 27, 239, 29, 154, 19, | ||
1053 | 18, 4, 185, 144, 191, 107, 92, 29, 38, 248, 142, 81, 109, 64, 161, 23, | ||
1054 | 73, 93, 31, 114, 51, 81, 98, 209, 69, 27, 43, 22, 4, 168, 88, 60, | ||
1055 | 149, 89, 100, 82, 122, 95, 21, 38, 97, 185, 87, 66, 82, 16, 242, 109, | ||
1056 | 100, 94, 164, 6, 73, 130, 76, 137, 218, 226, 166, 35, 21, 156, 72, 253, | ||
1057 | 148, 228, 142, 134, 41, 145, 15, 144, 215, 187, 120, 239, 195, 203, 44, 250, | ||
1058 | 46, 72, 181, 43, 255, 81, 247, 100, 195, 248, 208, 115, 141, 32, 190, 131, | ||
1059 | 77, 230, 220, 54, 197, 60, 22, 115, 177, 116, 250, 0, 60, 144, 128, 68, | ||
1060 | 245, 231, 199, 216, 17, 216, 227, 120, 221, 68, 233, 236, 202, 121, 189, 237, | ||
1061 | 149, 60, 244, 130, 250, 169, 70, 101, 147, 8, 49, 248, 61, 207, 202, 148, | ||
1062 | 228, 87, 234, 117, 238, 52, 92, 118, 148, 203, 206, 175, 75, 64, 215, 57, | ||
1063 | 70, 196, 52, 62, 29, 116, 241, 185, 96, 131, 201, 219, 16, 3, 188, 159, | ||
1064 | 129, 134, 11, 138, 13, 3, 72, 193, 183, 236, 91, 171, 161, 52, 166, 23, | ||
1065 | 254, 118, 238, 180, 55, 215, 165, 163, 154, 202, 27, 61, 150, 31, 12, 1, | ||
1066 | 249, 0, 12, 29, 132, 213, 168, 105, 53, 112, 54, 2, 236, 131, 230, 3, | ||
1067 | 211, 69, 243, 233, 173, 145, 105, 27, 18, 252, 224, 5, 46, 18, 233, 96, | ||
1068 | 237, 143, 52, 67, 158, 30, 242, 151, 98, 148, 208, 60, 143, 14, 245, 250, | ||
1069 | 185, 151, 111, 147, 145, 197, 165, 233, 18, 178, 240, 83, 228, 213, 237, 58, | ||
1070 | 20, 152, 249, 241, 250, 204, 15, 167, 97, 242, 6, 228, 117, 133, 2, 199, | ||
1071 | 220, 212, 239, 206, 104, 231, 145, 33, 17, 150, 223, 126, 173, 223, 148, 21, | ||
1072 | 228, 41, 63, 37, 19, 102, 73, 95, 196, 40, 151, 2, 19, 239, 182, 22, | ||
1073 | 178, 165, 242, 159, 208, 226, 72, 179, 201, 109, 157, 18, 230, 130, 221, 89, | ||
1074 | 173, 242, 170, 11, 146, 20, 135, 112, 2, 202, 30, 25, 106, 151, 52, 223, | ||
1075 | 1, 3, 18, 151, 74, 113, 49, 186, 112, 160, 121, 38, 233, 155, 188, 237, | ||
1076 | 251, 178, 8, 200, 120, 134, 152, 22, 232, 250, 219, 237, 157, 23, 134, 158, | ||
1077 | 122, 202, 120, 89, 248, 68, 46, 184, 180, 93, 84, 85, 177, 236, 62, 50, | ||
1078 | 103, 62, 81, 105, 33, 15, 97, 203, 192, 132, 219, 70, 203, 104, 162, 98, | ||
1079 | 179, 224, 44, 101, 221, 84, 176, 97, 77, 84, 45, 255, 227, 80, 107, 45, | ||
1080 | 70, 106, 68, 206, 134, 182, 205, 255, 235, 44, 131, 81, 126, 142, 30, 130, | ||
1081 | 87, 133, 227, 15, 200, 194, 5, 230, 230, 169, 65, 116, 104, 193, 196, 214, | ||
1082 | 18, 199, 56, 114, 5, 7, 189, 158, 32, 119, 53, 93, 169, 172, 141, 223, | ||
1083 | 71, 194, 204, 221, 237, 118, 16, 198, 169, 10, 38, 156, 152, 76, 185, 73, | ||
1084 | 15, 227, 118, 57, 149, 160, 14, 158, 18, 139, 117, 249, 142, 12, 175, 252, | ||
1085 | 9, 202, 65, 196, 23, 211, 174, 169, 85, 244, 154, 239, 28, 199, 196, 171, | ||
1086 | 241, 27, 140, 222, 54, 25, 229, 69, 102, 134, 125, 235, 246, 156, 41, 75, | ||
1087 | 212, 225, 169, 207, 88, 246, 136, 176, 27, 40, 205, 228, 239, 24, 217, 42, | ||
1088 | 212, 63, 187, 75, 60, 197, 97, 245, 3, 35, 243, 128, 36, 129, 145, 31, | ||
1089 | 27, 193, 20, 122, 116, 143, 130, 159, 80, 203, 253, 233, 66, 118, 92, 177, | ||
1090 | 83, 55, 141, 189, 115, 240, 125, 107, 8, 221, 237, 171, 24, 183, 220, 174, | ||
1091 | 149, 51, 81, 221, 187, 233, 21, 116, 37, 88, 123, 20, 208, 201, 141, 155, | ||
1092 | 136, 148, 64, 14, 102, 204, 248, 173, 249, 61, 75, 253, 199, 46, 192, 138, | ||
1093 | 79, 83, 161, 127, 235, 140, 173, 158, 127, 232, 77, 17, 45, 207, 154, 51, | ||
1094 | 79, 57, 184, 22, 220, 225, 61, 233, 188, 119, 221, 254, 87, 105, 151, 29, | ||
1095 | 156, 162, 18, 202, 244, 36, 105, 24, 240, 195, 198, 39, 31, 155, 135, 62, | ||
1096 | 220, 180, 53, 70, 121, 254, 234, 194, 79, 177, 181, 75, 23, 20, 217, 209, | ||
1097 | 107, 100, 175, 83, 25, 212, 62, 11, 108, 33, 144, 17, 150, 176, 225, 86, | ||
1098 | 54, 190, 8, 82, 150, 219, 80, 72, 75, 100, 197, 72, 95, 174, 189, 158, | ||
1099 | 109, 146, 103, 67, 101, 165, 191, 178, 148, 32, 173, 147, 195, 145, 27, 119, | ||
1100 | 126, 46, 186, 120, 226, 41, 209, 51, 171, 29, 4, 244, 184, 209, 92, 159, | ||
1101 | 221, 122, 163, 30, 246, 68, 8, 190, 146, 143, 159, 116, 211, 83, 247, 90, | ||
1102 | 241, 193, 10, 58, 250, 60, 69, 182, 204, 181, 207, 107, 37, 104, 150, 14, | ||
1103 | 69, 55, 20, 7, 158, 96, 202, 248, 68, 220, 209, 132, 133, 164, 58, 175, | ||
1104 | 103, 166, 1, 174, 0, 32, 182, 13, 199, 83, 48, 148, 52, 198, 19, 135, | ||
1105 | 58, 46, 109, 164, 49, 199, 26, 109, 132, 19, 46, 118, 59, 27, 202, 73, | ||
1106 | 4, 1, 22, 183, 163, 247, 45, 96, 206, 43, 239, 186, 131, 5, 61, 198, | ||
1107 | 46, 99, 31, 89, 194, 241, 207, 170, 80, 250, 72, 225, 89, 154, 151, 165, | ||
1108 | 171, 42, 59, 58, 68, 73, 178, 88, 153, 111, 247, 233, 19, 130, 51, 194, | ||
1109 | 18, 142, 129, 52, 252, 167, 183, 238, 99, 198, 85, 134, 20, 114, 94, 90, | ||
1110 | 7, 223, 147, 178, 135, 156, 216, 69, 14, 42, 181, 232, 203, 63, 239, 213, | ||
1111 | 42, 225, 189, 223, 15, 238, 219, 62, 218, 15, 210, 141, 184, 226, 11, 228, | ||
1112 | 9, 40, 37, 118, 26, 194, 213, 220, 99, 247, 7, 137, 187, 61, 64, 56, | ||
1113 | 86, 169, 143, 224, 135, 166, 4, 28, 55, 87, 216, 45, 56, 39, 37, 181, | ||
1114 | 234, 38, 4, 241, 184, 43, 134, 108, 245, 247, 230, 99, 162, 95, 214, 92, | ||
1115 | 191, 83, 38, 152, 241, 38, 33, 32, 38, 92, 222, 228, 138, 11, 143, 135, | ||
1116 | 83, 181, 140, 99, 9, 252, 123, 215, 212, 81, 108, 71, 2, 159, 246, 82, | ||
1117 | 118, 186, 48, 69, 212, 147, 218, 61, 183, 170, 130, 233, 227, 145, 101, 156, | ||
1118 | 20, 106, 128, 214, 238, 12, 163, 59, 152, 250, 112, 173, 42, 5, 1, 68, | ||
1119 | 35, 52, 13, 198, 121, 11, 117, 16, 126, 143, 54, 184, 205, 44, 238, 47, | ||
1120 | 218, 75, 112, 228, 183, 55, 22, 189, 35, 146, 27, 44, 229, 190, 241, 110, | ||
1121 | 42, 152, 12, 141, 131, 183, 84, 31, 40, 185, 108, 176, 173, 247, 217, 214, | ||
1122 | 155, 108, 176, 152, 201, 201, 185, 7, 227, 187, 87, 71, 45, 98, 224, 159, | ||
1123 | 125, 230, 132, 19, 233, 98, 174, 93, 80, 245, 32, 94, 253, 35, 150, 68, | ||
1124 | 176, 83, 50, 127, 196, 149, 176, 191, 136, 194, 84, 228, 106, 238, 47, 206, | ||
1125 | 110, 204, 9, 116, 136, 230, 249, 90, 215, 160, 51, 151, 61, 92, 187, 82, | ||
1126 | 129, 101, 75, 238, 22, 166, 132, 86, 183, 113, 149, 215, 39, 242, 214, 148, | ||
1127 | 71, 168, 236, 20, 105, 249, 219, 23, 101, 63, 92, 173, 40, 126, 253, 145, | ||
1128 | 161, 9, 72, 60, 215, 59, 155, 228, 255, 201, 193, 60, 129, 51, 29, 207, | ||
1129 | 237, 43, 145, 161, 41, 115, 98, 19, 138, 253, 66, 232, 233, 186, 79, 114, | ||
1130 | 1, 164, 184, 14, 61, 151, 198, 60, 247, 115, 5, 176, 132, 201, 245, 60, | ||
1131 | 21, 238, 60, 133, 186, 18, 154, 89, 170, 23, 102, 2, 111, 147, 25, 208, | ||
1132 | 152, 173, 13, 58, 125, 181, 115, 218, 196, 107, 173, 192, 60, 94, 140, 254, | ||
1133 | 83, 80, 214, 220, 245, 254, 250, 39, 202, 132, 142, 84, 16, 199, 20, 129, | ||
1134 | 159, 24, 18, 123, 143, 157, 176, 199, 173, 56, 169, 222, 252, 63, 27, 242, | ||
1135 | 137, 138, 253, 143, 4, 209, 124, 86, 243, 170, 152, 121, 231, 24, 238, 35, | ||
1136 | 113, 27, 205, 59, 153, 161, 234, 65, 153, 237, 97, 197, 98, 216, 129, 30, | ||
1137 | 174, 211, 193, 167, 102, 229, 240, 198, 85, 193, 253, 73, 118, 185, 63, 3, | ||
1138 | 227, 165, 139, 38, 109, 214, 108, 253, 48, 227, 253, 219, 1, 226, 89, 47, | ||
1139 | 145, 86, 8, 234, 146, 159, 230, 108, 212, 111, 112, 129, 121, 28, 164, 105, | ||
1140 | 138, 143, 106, 132, 254, 202, 177, 171, 123, 38, 162, 112, 97, 88, 221, 95, | ||
1141 | 5, 161, 222, 76, 234, 253, 239, 231, 13, 62, 243, 80, 164, 204, 67, 229, | ||
1142 | 43, 103, 152, 30, 131, 240, 218, 184, 149, 161, 234, 124, 238, 126, 33, 234, | ||
1143 | 133, 1, 201, 113, 176, 190, 231, 215, 99, 64, 219, 224, 29, 217, 23, 232, | ||
1144 | 185, 215, 56, 14, 128, 31, 227, 227, 80, 213, 239, 224, 36, 144, 26, 243, | ||
1145 | 36, 181, 129, 69, 104, 55, 42, 212, 27, 252, 74, 173, 196, 255, 96, 153, | ||
1146 | 53, 3, 99, 13, 167, 244, 183, 92, 231, 140, 210, 116, 98, 36, 187, 126, | ||
1147 | 84, 77, 144, 109, 126, 138, 53, 237, 100, 96, 209, 68, 204, 61, 104, 246, | ||
1148 | 64, 35, 98, 99, 82, 152, 68, 118, 51, 82, 101, 136, 76, 149, 234, 135, | ||
1149 | 110, 37, 167, 154, 17, 145, 150, 148, 89, 184, 123, 108, 255, 2, 49, 98, | ||
1150 | 101, 125, 88, 110, 2, 146, 130, 120, 212, 249, 21, 164, 164, 161, 47, 201, | ||
1151 | 70, 114, 46, 149, 0, 88, 142, 60, 228, 58, 181, 175, 207, 222, 199, 81, | ||
1152 | 135, 121, 200, 205, 143, 132, 31, 93, 179, 202, 132, 84, 3, 19, 40, 190, | ||
1153 | 99, 120, 38, 42, 165, 159, 18, 153, 99, 212, 120, 4, 237, 237, 8, 57, | ||
1154 | 69, 228, 186, 220, 183, 121, 139, 113, 179, 200, 21, 166, 75, 19, 149, 135, | ||
1155 | 138, 170, 149, 14, 166, 110, 94, 129, 233, 66, 187, 163, 213, 96, 172, 4, | ||
1156 | 145, 205, 41, 25, 97, 26, 66, 99, 104, 172, 227, 73, 193, 35, 142, 228, | ||
1157 | 202, 85, 209, 10, 77, 47, 21, 8, 14, 215, 104, 211, 62, 186, 19, 226, | ||
1158 | 180, 187, 81, 140, 101, 188, 252, 173, 1, 242, 9, 66, 177, 73, 5, 79, | ||
1159 | 230, 53, 67, 28, 207, 98, 199, 52, 27, 66, 153, 200, 135, 247, 246, 210, | ||
1160 | 128, 156, 173, 249, 92, 165, 93, 112, 247, 110, 0, 133, 56, 64, 199, 71, | ||
1161 | 135, 104, 242, 50, 218, 28, 242, 216, 223, 229, 92, 19, 39, 36, 161, 233, | ||
1162 | 104, 205, 56, 92, 20, 44, 81, 244, 215, 85, 116, 79, 44, 104, 236, 197, | ||
1163 | 72, 17, 157, 105, 213, 76, 90, 85, 9, 54, 76, 248, 27, 39, 175, 107, | ||
1164 | 79, 142, 31, 140, 48, 194, 73, 214, 79, 131, 65, 191, 175, 211, 154, 225, | ||
1165 | 182, 226, 90, 169, 178, 95, 71, 89, 3, 4, 83, 27, 152, 218, 67, 67, | ||
1166 | 225, 90, 159, 244, 215, 227, 41, 53, 214, 40, 178, 86, 46, 92, 27, 200, | ||
1167 | 104, 126, 203, 185, 150, 90, 220, 210, 140, 33, 238, 113, 54, 31, 121, 4, | ||
1168 | 49, 132, 62, 250, 9, 180, 120, 241, 248, 86, 67, 254, 57, 166, 141, 34, | ||
1169 | 165, 218, 73, 167, 166, 85, 50, 191, 136, 177, 212, 175, 133, 8, 30, 106, | ||
1170 | 201, 100, 208, 40, 119, 107, 182, 231, 27, 237, 58, 22, 225, 63, 21, 160, | ||
1171 | 176, 7, 223, 124, 229, 53, 246, 170, 155, 70, 75, 68, 204, 221, 146, 48, | ||
1172 | 109, 153, 25, 0, 157, 54, 208, 220, 240, 216, 113, 30, 230, 30, 46, 139, | ||
1173 | 116, 215, 222, 10, 247, 103, 24, 86, 125, 8, 77, 202, 39, 152, 10, 225, | ||
1174 | 131, 18, 117, 227, 249, 127, 160, 143, 86, 128, 207, 99, 207, 224, 42, 110, | ||
1175 | 232, 36, 86, 179, 249, 138, 84, 121, 50, 5, 149, 93, 7, 200, 115, 209, | ||
1176 | 110, 152, 124, 77, 52, 79, 221, 157, 195, 140, 54, 19, 60, 205, 158, 199, | ||
1177 | 127, 207, 7, 117, 11, 227, 197, 72, 199, 187, 184, 43, 95, 0, 61, 143, | ||
1178 | 176, 207, 65, 130, 87, 82, 140, 181, 182, 184, 223, 238, 244, 209, 170, 7, | ||
1179 | 11, 100, 83, 5, 98, 125, 26, 188, 40, 137, 242, 22, 249, 227, 184, 80, | ||
1180 | 44, 145, 32, 143, 254, 218, 115, 107, 76, 139, 212, 87, 253, 12, 11, 121, | ||
1181 | 216, 159, 121, 87, 182, 101, 205, 151, 5, 0, 126, 150, 6, 166, 115, 36, | ||
1182 | 14, 128, 159, 126, 200, 42, 189, 146, 192, 223, 186, 35, 71, 224, 63, 33, | ||
1183 | 211, 207, 93, 66, 201, 31, 66, 220, 66, 97, 107, 95, 157, 213, 92, 81, | ||
1184 | 217, 125, 242, 101, 243, 184, 255, 155, 2, 165, 9, 143, 103, 243, 133, 173, | ||
1185 | 202, 202, 40, 221, 73, 177, 248, 57, 243, 125, 130, 127, 102, 47, 3, 227, | ||
1186 | 27, 203, 33, 179, 249, 117, 28, 112, 157, 0, 210, 139, 43, 15, 192, 47, | ||
1187 | 202, 45, 132, 10, 26, 163, 47, 220, 65, 169, 225, 235, 120, 57, 25, 176, | ||
1188 | 206, 16, 38, 110, 84, 145, 28, 43, 63, 35, 144, 234, 249, 59, 22, 152, | ||
1189 | 16, 175, 248, 2, 6, 109, 55, 92, 124, 77, 237, 166, 207, 82, 238, 140, | ||
1190 | 22, 30, 214, 144, 177, 182, 229, 27, 180, 150, 186, 187, 231, 184, 242, 23, | ||
1191 | 178, 119, 36, 24, 165, 82, 15, 195, 55, 147, 107, 45, 198, 133, 194, 95, | ||
1192 | 20, 146, 8, 222, 235, 67, 80, 119, 234, 48, 223, 163, 51, 60, 217, 228, | ||
1193 | 171, 195, 231, 250, 46, 111, 138, 143, 1, 48, 174, 116, 197, 186, 40, 61, | ||
1194 | 177, 53, 65, 225, 171, 95, 186, 209, 199, 254, 152, 98, 179, 71, 140, 127, | ||
1195 | 193, 177, 171, 61, 227, 117, 130, 92, 148, 43, 199, 156, 176, 219, 52, 218, | ||
1196 | 133, 160, 123, 11, 221, 104, 254, 253, 144, 156, 245, 5, 156, 246, 226, 198, | ||
1197 | 222, 172, 246, 13, 35, 210, 51, 99, 203, 213, 159, 248, 139, 71, 77, 120, | ||
1198 | 75, 195, 89, 11, 122, 125, 43, 57, 30, 233, 45, 10, 87, 102, 171, 47, | ||
1199 | 21, 167, 175, 143, 207, 121, 98, 48, 220, 247, 72, 184, 97, 83, 152, 72, | ||
1200 | 51, 136, 17, 52, 249, 169, 8, 140, 219, 152, 5, 221, 132, 225, 17, 117, | ||
1201 | 28, 72, 220, 69, 199, 108, 140, 175, 206, 165, 41, 39, 77, 194, 249, 154, | ||
1202 | 121, 23, 85, 205, 128, 34, 118, 49, 220, 85, 5, 240, 181, 26, 210, 29, | ||
1203 | 177, 24, 132, 91, 57, 218, 74, 217, 135, 225, 148, 82, 95, 98, 54, 127, | ||
1204 | 58, 1, 85, 12, 122, 2, 58, 81, 16, 32, 168, 153, 186, 97, 214, 81, | ||
1205 | 176, 244, 134, 168, 111, 127, 21, 251, 227, 215, 141, 191, 141, 90, 21, 177, | ||
1206 | 142, 172, 29, 212, 128, 163, 54, 172, 20, 35, 174, 1, 225, 232, 74, 73, | ||
1207 | 226, 154, 236, 45, 211, 64, 28, 142, 90, 175, 147, 230, 243, 66, 160, 207, | ||
1208 | 186, 212, 201, 34, 58, 202, 236, 9, 218, 10, 226, 189, 74, 106, 75, 43, | ||
1209 | 93, 1, 5, 162, 36, 42, 54, 86, 83, 35, 242, 114, 165, 93, 76, 8, | ||
1210 | 94, 21, 110, 101, 241, 119, 219, 78, 115, 182, 5, 105, 116, 73, 50, 193, | ||
1211 | 102, 254, 43, 197, 64, 236, 6, 105, 84, 206, 79, 127, 195, 151, 106, 76, | ||
1212 | 122, 173, 234, 203, 34, 20, 204, 34, 195, 244, 209, 60, 32, 112, 157, 150, | ||
1213 | 185, 49, 35, 11, 41, 230, 21, 63, 137, 1, 127, 147, 193, 77, 136, 174, | ||
1214 | 109, 122, 243, 119, 160, 26, 5, 187, 191, 90, 83, 26, 214, 237, 162, 198, | ||
1215 | 184, 179, 204, 246, 113, 43, 145, 228, 4, 250, 28, 187, 22, 149, 121, 67, | ||
1216 | 94, 202, 229, 64, 35, 204, 174, 106, 180, 40, 224, 146, 117, 146, 217, 9, | ||
1217 | 29, 22, 202, 177, 96, 25, 165, 0, 97, 146, 120, 15, 29, 230, 203, 30, | ||
1218 | 181, 73, 37, 59, 38, 156, 8, 123, 215, 252, 229, 157, 240, 58, 91, 78, | ||
1219 | 3, 189, 39, 232, 28, 175, 195, 69, 94, 127, 176, 218, 32, 40, 236, 113, | ||
1220 | 175, 110, 241, 181, 238, 15, 46, 106, 58, 170, 48, 58, 254, 253, 190, 204, | ||
1221 | 172, 214, 31, 202, 150, 134, 97, 230, 224, 255, 121, 206, 110, 102, 224, 49, | ||
1222 | 94, 248, 23, 109, 243, 23, 208, 50, 120, 155, 166, 16, 193, 8, 111, 212, | ||
1223 | 88, 114, 163, 247, 255, 144, 18, 87, 92, 47, 60, 250, 35, 102, 101, 150, | ||
1224 | 228, 34, 28, 18, 59, 175, 136, 120, 186, 193, 15, 151, 143, 76, 54, 96, | ||
1225 | 157, 183, 62, 4, 245, 231, 132, 94, 131, 139, 192, 253, 72, 194, 242, 7, | ||
1226 | 202, 19, 20, 245, 122, 114, 177, 101, 133, 107, 109, 109, 112, 151, 71, 239, | ||
1227 | 115, 43, 157, 185, 57, 149, 27, 82, 191, 118, 114, 80, 96, 115, 166, 79, | ||
1228 | 166, 59, 23, 91, 223, 159, 217, 68, 63, 155, 173, 200, 73, 32, 199, 233, | ||
1229 | 241, 206, 133, 125, 89, 87, 71, 172, 91, 56, 219, 233, 115, 26, 63, 53, | ||
1230 | 98, 209, 57, 151, 243, 141, 54, 139, 107, 120, 252, 89, 249, 133, 67, 85, | ||
1231 | 144, 135, 86, 238, 9, 133, 115, 95, 92, 97, 212, 81, 117, 70, 225, 199, | ||
1232 | 123, 49, 84, 16, 84, 19, 134, 156, 33, 78, 195, 79, 191, 112, 44, 206, | ||
1233 | 81, 249, 191, 4, 106, 159, 152, 246, 185, 246, 125, 7, 186, 106, 239, 25, | ||
1234 | 144, 121, 78, 194, 199, 195, 218, 118, 189, 66, 2, 220, 105, 0, 77, 65, | ||
1235 | 137, 55, 169, 82, 156, 126, 146, 139, 71, 44, 247, 210, 45, 171, 110, 252, | ||
1236 | 221, 51, 80, 157, 164, 99, 10, 241, 175, 65, 32, 180, 254, 187, 89, 223, | ||
1237 | 231, 227, 216, 197, 99, 217, 65, 187, 235, 152, 63, 74, 176, 36, 170, 236, | ||
1238 | 134, 46, 98, 13, 108, 160, 126, 185, 245, 100, 96, 40, 240, 69, 171, 10, | ||
1239 | 2, 141, 57, 105, 56, 82, 168, 46, 126, 161, 5, 219, 126, 1, 1, 165, | ||
1240 | 92, 219, 81, 202, 86, 78, 174, 209, 195, 7, 142, 244, 119, 255, 115, 242, | ||
1241 | 220, 11, 168, 135, 5, 71, 145, 137, 108, 10, 17, 30, 178, 142, 202, 147, | ||
1242 | 24, 141, 161, 192, 79, 54, 62, 142, 239, 66, 209, 248, 101, 134, 83, 10, | ||
1243 | 119, 121, 22, 240, 25, 227, 60, 180, 18, 46, 164, 105, 89, 30, 196, 167, | ||
1244 | 206, 32, 32, 76, 54, 35, 10, 210, 170, 114, 127, 0, 216, 28, 71, 6, | ||
1245 | 216, 15, 56, 201, 194, 246, 115, 182, 231, 202, 62, 218, 93, 252, 151, 125, | ||
1246 | 48, 231, 133, 89, 67, 175, 88, 80, 25, 208, 80, 251, 226, 12, 4, 225, | ||
1247 | 125, 37, 78, 202, 227, 212, 179, 219, 234, 223, 207, 188, 126, 214, 22, 59, | ||
1248 | 134, 161, 108, 10, 115, 65, 40, 68, 211, 192, 129, 64, 163, 178, 183, 164, | ||
1249 | 98, 212, 20, 146, 25, 16, 154, 29, 176, 107, 3, 15, 62, 226, 67, 119, | ||
1250 | 189, 45, 123, 187, 83, 222, 206, 56, 135, 242, 121, 61, 220, 133, 171, 150, | ||
1251 | 139, 221, 69, 112, 13, 183, 180, 76, 97, 122, 168, 79, 203, 136, 62, 161, | ||
1252 | 138, 40, 253, 182, 3, 51, 229, 58, 195, 79, 191, 203, 248, 191, 180, 101, | ||
1253 | 40, 189, 22, 127, 67, 139, 219, 213, 78, 11, 67, 215, 82, 41, 107, 54, | ||
1254 | 143, 72, 223, 89, 246, 156, 91, 11, 157, 16, 225, 237, 213, 148, 187, 201, | ||
1255 | 233, 101, 70, 211, 201, 113, 164, 185, 140, 169, 130, 42, 1, 222, 92, 59, | ||
1256 | 66, 17, 108, 67, 197, 192, 251, 55, 203, 109, 189, 230, 131, 237, 215, 241, | ||
1257 | 65, 148, 253, 241, 39, 141, 155, 148, 156, 244, 12, 68, 71, 109, 235, 241, | ||
1258 | 4, 161, 177, 218, 114, 173, 113, 146, 11, 3, 219, 33, 141, 215, 62, 45, | ||
1259 | 215, 184, 196, 97, 162, 250, 218, 110, 1, 190, 8, 67, 241, 94, 82, 196, | ||
1260 | 64, 85, 118, 139, 240, 71, 67, 49, 241, 49, 129, 247, 44, 211, 46, 227, | ||
1261 | 115, 140, 123, 192, 63, 82, 9, 155, 83, 167, 250, 70, 61, 66, 186, 217, | ||
1262 | 46, 155, 128, 255, 232, 56, 224, 32, 254, 12, 204, 2, 85, 173, 20, 75, | ||
1263 | 214, 73, 229, 18, 247, 145, 83, 241, 20, 245, 155, 15, 92, 111, 180, 101, | ||
1264 | 179, 246, 5, 243, 112, 196, 44, 146, 16, 128, 155, 80, 106, 147, 110, 87, | ||
1265 | 96, 17, 243, 247, 21, 87, 149, 78, 248, 20, 153, 249, 196, 11, 177, 96, | ||
1266 | 227, 185, 136, 7, 244, 54, 177, 91, 192, 193, 111, 21, 159, 105, 143, 236, | ||
1267 | 167, 215, 244, 121, 207, 245, 202, 161, 215, 45, 233, 32, 123, 220, 57, 34, | ||
1268 | 171, 115, 37, 163, 75, 253, 140, 232, 51, 143, 204, 252, 146, 168, 85, 148, | ||
1269 | 201, 161, 181, 231, 125, 44, 172, 79, 210, 12, 147, 82, 38, 254, 157, 225, | ||
1270 | 167, 230, 182, 123, 63, 141, 146, 152, 136, 190, 80, 156, 163, 231, 33, 184, | ||
1271 | 58, 200, 134, 28, 70, 202, 88, 195, 39, 224, 159, 154, 206, 183, 11, 96, | ||
1272 | 102, 136, 26, 238, 179, 189, 226, 18, 30, 188, 148, 25, 3, 252, 154, 142, | ||
1273 | 147, 145, 126, 11, 55, 1, 3, 108, 144, 55, 251, 167, 54, 127, 180, 216, | ||
1274 | 77, 70, 138, 95, 166, 90, 48, 2, 211, 236, 235, 131, 107, 251, 91, 238, | ||
1275 | 255, 0, 113, 41, 243, 14, 241, 252, 163, 99, 74, 25, 172, 87, 125, 36, | ||
1276 | 203, 96, 189, 125, 222, 165, 138, 25, 76, 136, 67, 137, 161, 22, 232, 31, | ||
1277 | 5, 96, 146, 214, 146, 21, 181, 198, 199, 34, 190, 63, 191, 201, 104, 116, | ||
1278 | 123, 201, 64, 128, 84, 139, 86, 102, 244, 241, 162, 126, 4, 9, 132, 2, | ||
1279 | 53, 113, 21, 1, 95, 7, 212, 123, 252, 100, 87, 78, 71, 28, 131, 135, | ||
1280 | 183, 72, 196, 33, 66, 237, 12, 135, 58, 102, 69, 234, 214, 244, 57, 44, | ||
1281 | 181, 120, 156, 218, 99, 146, 97, 15, 77, 113, 179, 142, 113, 226, 38, 72, | ||
1282 | 128, 211, 160, 95, 52, 181, 30, 200, 64, 234, 8, 229, 150, 219, 225, 30, | ||
1283 | 162, 223, 52, 242, 29, 31, 226, 91, 102, 235, 127, 213, 105, 123, 11, 172, | ||
1284 | 190, 152, 59, 69, 1, 253, 126, 19, 145, 99, 33, 26, 198, 80, 74, 47, | ||
1285 | 59, 77, 158, 60, 231, 51, 65, 145, 210, 232, 71, 100, 73, 71, 176, 239, | ||
1286 | 42, 124, 176, 31, 254, 64, 223, 51, 195, 108, 165, 78, 202, 174, 212, 32, | ||
1287 | 157, 58, 145, 133, 84, 230, 17, 206, 107, 72, 89, 129, 240, 179, 56, 231, | ||
1288 | 218, 55, 236, 231, 122, 137, 50, 245, 171, 107, 223, 86, 17, 155, 68, 241, | ||
1289 | 220, 120, 38, 95, 74, 110, 214, 202, 223, 60, 35, 120, 33, 79, 32, 58, | ||
1290 | 77, 28, 121, 180, 99, 64, 201, 81, 156, 37, 28, 254, 219, 153, 74, 200, | ||
1291 | 178, 70, 252, 140, 137, 127, 195, 238, 103, 228, 44, 96, 216, 12, 198, 246, | ||
1292 | 206, 130, 67, 71, 129, 114, 145, 168, 64, 145, 128, 169, 169, 11, 28, 145, | ||
1293 | 64, 144, 92, 206, 171, 135, 128, 121, 84, 142, 75, 37, 199, 208, 97, 243, | ||
1294 | 114, 58, 152, 244, 201, 119, 76, 178, 3, 128, 185, 252, 146, 38, 165, 53, | ||
1295 | 186, 175, 102, 81, 233, 115, 190, 227, 19, 31, 134, 132, 114, 24, 2, 21, | ||
1296 | 249, 228, 128, 74, 119, 144, 74, 43, 168, 201, 131, 175, 254, 42, 103, 23, | ||
1297 | 94, 138, 61, 40, 129, 252, 51, 80, 150, 135, 133, 55, 54, 122, 187, 93, | ||
1298 | 42, 9, 154, 50, 93, 143, 241, 26, 80, 108, 7, 51, 144, 218, 129, 48, | ||
1299 | 168, 66, 150, 108, 86, 127, 156, 232, 5, 54, 7, 182, 73, 210, 46, 115, | ||
1300 | 84, 145, 113, 254, 195, 166, 106, 119, 116, 233, 154, 170, 185, 255, 99, 223, | ||
1301 | 133, 115, 122, 10, 210, 76, 123, 92, 28, 159, 138, 133, 70, 126, 240, 215, | ||
1302 | 36, 119, 180, 221, 156, 46, 89, 71, 1, 175, 247, 102, 107, 67, 136, 62, | ||
1303 | 142, 197, 212, 50, 159, 107, 254, 44, 30, 59, 234, 51, 55, 35, 103, 170, | ||
1304 | 231, 41, 111, 178, 14, 27, 77, 40, 43, 88, 199, 148, 211, 140, 17, 59, | ||
1305 | 84, 182, 195, 92, 230, 109, 218, 165, 117, 39, 234, 195, 94, 70, 151, 202, | ||
1306 | 167, 17, 179, 205, 213, 68, 102, 11, 120, 210, 150, 47, 150, 115, 186, 81, | ||
1307 | 137, 53, 132, 36, 224, 107, 115, 100, 143, 118, 212, 239, 176, 139, 243, 36, | ||
1308 | 235, 189, 48, 43, 25, 130, 143, 2, 165, 117, 173, 63, 189, 86, 180, 83, | ||
1309 | 22, 204, 226, 141, 78, 199, 226, 195, 94, 183, 88, 103, 180, 205, 96, 254, | ||
1310 | 235, 65, 144, 231, 11, 193, 111, 52, 129, 110, 125, 68, 42, 234, 138, 118, | ||
1311 | 112, 69, 178, 191, 213, 115, 230, 221, 222, 97, 60, 187, 154, 161, 24, 25, | ||
1312 | 147, 205, 69, 47, 45, 241, 84, 238, 249, 129, 6, 107, 126, 245, 187, 62, | ||
1313 | 247, 159, 178, 6, 100, 80, 244, 229, 53, 83, 186, 208, 116, 164, 83, 217, | ||
1314 | 76, 21, 191, 207, 44, 19, 21, 253, 153, 84, 92, 96, 41, 9, 10, 187, | ||
1315 | 82, 155, 222, 146, 71, 130, 217, 44, 75, 51, 56, 119, 4, 77, 141, 46, | ||
1316 | 0, 97, 157, 176, 42, 30, 102, 41, 39, 48, 191, 201, 226, 156, 80, 24, | ||
1317 | 28, 109, 150, 215, 254, 211, 17, 87, 114, 111, 250, 7, 60, 233, 55, 121, | ||
1318 | 139, 121, 167, 213, 0, 106, 85, 183, 122, 254, 65, 52, 95, 129, 197, 156, | ||
1319 | 125, 235, 47, 46, 191, 44, 139, 244, 217, 239, 216, 228, 14, 234, 216, 19, | ||
1320 | 13, 124, 221, 166, 60, 124, 187, 83, 242, 154, 57, 182, 125, 172, 123, 100, | ||
1321 | 165, 156, 196, 254, 19, 73, 234, 83, 209, 242, 17, 54, 12, 115, 163, 148, | ||
1322 | 32, 146, 41, 86, 171, 11, 77, 71, 162, 203, 42, 153, 71, 217, 254, 31, | ||
1323 | 214, 184, 58, 41, 245, 132, 249, 54, 172, 163, 225, 203, 205, 52, 64, 105, | ||
1324 | 110, 128, 162, 176, 118, 243, 173, 173, 69, 11, 98, 19, 183, 83, 247, 5, | ||
1325 | 137, 91, 192, 122, 15, 151, 125, 192, 220, 207, 6, 118, 84, 8, 86, 196, | ||
1326 | 88, 59, 246, 8, 250, 10, 27, 7, 233, 225, 220, 213, 222, 239, 138, 177, | ||
1327 | 173, 63, 58, 16, 68, 113, 218, 216, 24, 25, 147, 176, 232, 249, 135, 194, | ||
1328 | 5, 26, 37, 110, 251, 13, 178, 55, 28, 116, 84, 162, 145, 153, 117, 194, | ||
1329 | 41, 16, 179, 64, 121, 52, 127, 232, 232, 53, 135, 212, 72, 122, 32, 112, | ||
1330 | 152, 10, 241, 217, 107, 3, 99, 91, 115, 88, 107, 146, 120, 22, 156, 153, | ||
1331 | 68, 104, 212, 39, 76, 144, 54, 58, 61, 91, 212, 96, 139, 35, 184, 37, | ||
1332 | 17, 55, 223, 15, 75, 18, 55, 124, 232, 21, 10, 147, 24, 221, 23, 87, | ||
1333 | 186, 27, 152, 51, 247, 112, 63, 56, 89, 180, 195, 67, 89, 105, 236, 102, | ||
1334 | 235, 57, 17, 45, 151, 91, 186, 224, 171, 11, 149, 111, 102, 149, 50, 144, | ||
1335 | 250, 243, 179, 20, 251, 203, 229, 228, 190, 33, 209, 254, 237, 112, 60, 222, | ||
1336 | 179, 19, 224, 4, 78, 246, 239, 248, 80, 169, 180, 71, 190, 29, 178, 253, | ||
1337 | 130, 207, 77, 202, 16, 108, 142, 201, 238, 135, 247, 155, 237, 187, 243, 139, | ||
1338 | 247, 21, 141, 125, 213, 34, 106, 183, 4, 125, 40, 8, 104, 128, 73, 121, | ||
1339 | 163, 122, 190, 121, 152, 45, 174, 52, 181, 139, 254, 242, 146, 36, 163, 183, | ||
1340 | 147, 27, 234, 160, 222, 93, 232, 251, 153, 185, 158, 215, 9, 86, 49, 72, | ||
1341 | 87, 154, 88, 169, 82, 186, 198, 240, 104, 92, 129, 217, 12, 124, 113, 206, | ||
1342 | 117, 116, 149, 159, 149, 124, 219, 138, 96, 50, 177, 145, 244, 8, 232, 218, | ||
1343 | 158, 22, 70, 31, 52, 226, 90, 7, 187, 135, 66, 35, 193, 62, 122, 72, | ||
1344 | 201, 100, 66, 137, 236, 158, 187, 195, 107, 234, 27, 155, 187, 221, 131, 2, | ||
1345 | 167, 165, 18, 225, 67, 72, 190, 63, 136, 69, 32, 185, 181, 234, 159, 57, | ||
1346 | 4, 101, 127, 121, 3, 2, 235, 220, 44, 245, 160, 71, 64, 175, 55, 135, | ||
1347 | 83, 250, 217, 239, 121, 81, 181, 160, 151, 70, 56, 101, 74, 169, 142, 167, | ||
1348 | 10, 179, 233, 140, 156, 203, 110, 15, 95, 15, 8, 169, 164, 40, 43, 50, | ||
1349 | 148, 216, 167, 161, 36, 142, 145, 126, 236, 167, 154, 120, 110, 239, 138, 53, | ||
1350 | 152, 233, 115, 33, 203, 253, 249, 174, 176, 43, 0, 178, 120, 133, 211, 252, | ||
1351 | 95, 221, 221, 185, 36, 145, 53, 15, 125, 26, 232, 42, 249, 86, 8, 205, | ||
1352 | 183, 114, 81, 62, 187, 162, 4, 251, 26, 79, 159, 156, 42, 7, 83, 97, | ||
1353 | 14, 124, 38, 252, 215, 34, 141, 252, 226, 61, 237, 252, 114, 117, 187, 21, | ||
1354 | 53, 236, 151, 9, 147, 40, 68, 63, 10, 166, 84, 236, 0, 169, 196, 239, | ||
1355 | 107, 214, 32, 53, 142, 172, 22, 245, 22, 154, 150, 105, 223, 5, 178, 48, | ||
1356 | 151, 191, 251, 63, 50, 255, 54, 206, 221, 49, 249, 35, 133, 197, 248, 47, | ||
1357 | 155, 185, 108, 172, 179, 104, 121, 72, 25, 83, 78, 205, 136, 136, 250, 47, | ||
1358 | 68, 179, 166, 229, 237, 212, 214, 104, 191, 88, 159, 43, 30, 168, 89, 25, | ||
1359 | 137, 79, 142, 7, 237, 19, 230, 87, 255, 20, 182, 27, 217, 197, 80, 45, | ||
1360 | 119, 115, 241, 181, 96, 155, 160, 62, 57, 162, 103, 171, 196, 214, 243, 194, | ||
1361 | 41, 223, 187, 22, 4, 157, 139, 4, 98, 193, 171, 27, 217, 8, 27, 100, | ||
1362 | 222, 30, 235, 4, 127, 97, 243, 231, 102, 37, 47, 237, 58, 79, 189, 143, | ||
1363 | 193, 144, 0, 150, 183, 0, 100, 29, 130, 166, 233, 150, 241, 61, 175, 23, | ||
1364 | 56, 239, 24, 59, 143, 79, 27, 23, 124, 4, 9, 207, 73, 21, 181, 227, | ||
1365 | 80, 149, 79, 226, 85, 110, 255, 126, 11, 66, 167, 203, 91, 50, 255, 189, | ||
1366 | 91, 50, 79, 115, 160, 201, 112, 13, 25, 100, 68, 8, 218, 253, 185, 90, | ||
1367 | 85, 79, 74, 27, 123, 23, 229, 57, 97, 91, 127, 106, 189, 186, 213, 74, | ||
1368 | 233, 11, 137, 181, 51, 79, 108, 16, 145, 67, 82, 93, 245, 199, 182, 112, | ||
1369 | 114, 208, 100, 151, 117, 222, 34, 187, 232, 137, 114, 251, 117, 217, 153, 37, | ||
1370 | 215, 22, 113, 249, 198, 21, 184, 245, 107, 107, 27, 224, 2, 158, 165, 155, | ||
1371 | 155, 104, 108, 215, 105, 154, 76, 171, 175, 245, 245, 206, 227, 85, 231, 208, | ||
1372 | 127, 196, 191, 48, 150, 44, 38, 194, 191, 59, 10, 10, 175, 148, 162, 163, | ||
1373 | 122, 167, 207, 145, 105, 234, 57, 199, 40, 112, 205, 98, 242, 238, 38, 68, | ||
1374 | 192, 158, 91, 141, 80, 54, 12, 193, 215, 8, 201, 136, 185, 229, 109, 175, | ||
1375 | 25, 245, 209, 147, 197, 233, 17, 80, 189, 150, 49, 218, 246, 78, 30, 112, | ||
1376 | 64, 212, 109, 75, 232, 228, 171, 102, 239, 219, 152, 158, 217, 121, 43, 174, | ||
1377 | 99, 82, 7, 113, 222, 107, 164, 30, 205, 236, 152, 19, 157, 60, 82, 165, | ||
1378 | 34, 117, 23, 166, 185, 209, 212, 7, 250, 32, 167, 172, 234, 117, 139, 110, | ||
1379 | 191, 14, 44, 158, 95, 115, 126, 115, 234, 209, 174, 95, 163, 117, 243, 203, | ||
1380 | 182, 113, 182, 4, 33, 100, 143, 45, 225, 128, 69, 73, 183, 246, 91, 28, | ||
1381 | 57, 20, 1, 175, 125, 128, 38, 4, 54, 93, 255, 28, 106, 122, 42, 104, | ||
1382 | 35, 79, 242, 117, 75, 237, 149, 28, 178, 84, 224, 183, 116, 254, 120, 3, | ||
1383 | 70, 154, 8, 57, 132, 86, 14, 119, 4, 130, 3, 155, 233, 177, 27, 28, | ||
1384 | 233, 148, 205, 109, 29, 39, 33, 0, 160, 214, 129, 207, 180, 227, 131, 109, | ||
1385 | 29, 136, 60, 47, 234, 99, 52, 57, 228, 87, 114, 138, 185, 19, 148, 152, | ||
1386 | 114, 48, 12, 231, 182, 67, 228, 94, 253, 199, 34, 171, 238, 77, 59, 83, | ||
1387 | 128, 137, 52, 74, 35, 236, 38, 181, 165, 106, 161, 12, 100, 76, 100, 237, | ||
1388 | 69, 13, 211, 210, 117, 185, 178, 17, 231, 85, 134, 101, 66, 9, 71, 42, | ||
1389 | 88, 125, 183, 106, 217, 38, 175, 131, 139, 75, 163, 134, 149, 70, 120, 146, | ||
1390 | 156, 196, 151, 154, 242, 232, 163, 33, 206, 179, 123, 102, 249, 28, 11, 115, | ||
1391 | 88, 20, 192, 244, 74, 33, 165, 176, 215, 142, 87, 229, 188, 139, 225, 192, | ||
1392 | 111, 203, 55, 25, 241, 218, 22, 119, 121, 89, 69, 116, 214, 254, 94, 137, | ||
1393 | 253, 168, 156, 155, 34, 150, 56, 126, 229, 79, 49, 150, 109, 99, 194, 179, | ||
1394 | 40, 114, 63, 220, 161, 254, 73, 154, 211, 245, 21, 255, 63, 209, 45, 135, | ||
1395 | 86, 234, 184, 213, 95, 28, 28, 244, 42, 66, 200, 83, 190, 81, 247, 24, | ||
1396 | 153, 129, 180, 45, 159, 132, 4, 187, 171, 88, 178, 140, 143, 60, 212, 187, | ||
1397 | 102, 125, 212, 66, 85, 133, 248, 58, 240, 126, 196, 7, 68, 71, 137, 202, | ||
1398 | 116, 79, 137, 229, 156, 122, 69, 94, 146, 226, 198, 191, 116, 96, 33, 50, | ||
1399 | 189, 32, 4, 5, 92, 116, 29, 122, 137, 140, 42, 199, 138, 59, 38, 48, | ||
1400 | 178, 115, 216, 201, 225, 170, 183, 55, 248, 151, 58, 187, 184, 152, 106, 130, | ||
1401 | 176, 52, 36, 73, 99, 77, 12, 166, 238, 52, 231, 86, 144, 91, 2, 248, | ||
1402 | 246, 127, 5, 182, 201, 149, 205, 246, 73, 158, 98, 4, 20, 138, 51, 176, | ||
1403 | 71, 169, 209, 237, 230, 100, 244, 243, 107, 80, 113, 246, 233, 115, 26, 175, | ||
1404 | 72, 11, 38, 165, 68, 108, 163, 27, 38, 43, 246, 18, 153, 208, 118, 235, | ||
1405 | 201, 225, 235, 17, 65, 53, 173, 72, 230, 232, 105, 215, 41, 180, 191, 61, | ||
1406 | 31, 28, 214, 219, 29, 209, 90, 206, 232, 80, 22, 101, 237, 61, 105, 128, | ||
1407 | 249, 224, 23, 242, 8, 250, 190, 130, 207, 148, 102, 166, 241, 67, 58, 8, | ||
1408 | 61, 43, 58, 21, 148, 188, 40, 139, 116, 11, 79, 186, 85, 9, 240, 164, | ||
1409 | 117, 238, 157, 59, 244, 184, 250, 69, 143, 88, 147, 126, 237, 37, 6, 159, | ||
1410 | 130, 18, 72, 138, 251, 58, 136, 155, 92, 42, 173, 253, 171, 166, 57, 160, | ||
1411 | 162, 211, 173, 241, 66, 121, 37, 176, 180, 140, 117, 240, 132, 181, 16, 234, | ||
1412 | 173, 59, 98, 9, 123, 31, 18, 165, 45, 182, 89, 112, 130, 79, 53, 10, | ||
1413 | 120, 252, 52, 114, 58, 57, 146, 87, 222, 154, 231, 215, 219, 84, 246, 85, | ||
1414 | 57, 206, 180, 66, 125, 212, 226, 45, 212, 74, 132, 27, 185, 34, 150, 235, | ||
1415 | 119, 218, 77, 70, 235, 171, 112, 123, 174, 87, 160, 89, 86, 219, 3, 47, | ||
1416 | 39, 240, 116, 102, 70, 107, 31, 55, 102, 167, 4, 101, 119, 146, 176, 237, | ||
1417 | 168, 123, 84, 118, 218, 112, 118, 52, 18, 56, 120, 216, 66, 187, 31, 12, | ||
1418 | 205, 53, 119, 26, 225, 215, 195, 226, 2, 201, 75, 105, 65, 81, 45, 239, | ||
1419 | 114, 182, 155, 135, 95, 153, 240, 143, 109, 109, 219, 218, 224, 26, 175, 35, | ||
1420 | 86, 128, 209, 255, 71, 26, 86, 115, 22, 70, 167, 3, 105, 128, 160, 142, | ||
1421 | 163, 149, 168, 112, 8, 12, 14, 119, 65, 43, 183, 105, 197, 156, 207, 226, | ||
1422 | 231, 239, 48, 62, 4, 49, 169, 234, 123, 26, 164, 98, 119, 33, 170, 43, | ||
1423 | 39, 6, 128, 15, 217, 209, 229, 109, 240, 180, 150, 169, 252, 118, 242, 240, | ||
1424 | 108, 204, 24, 107, 199, 108, 184, 110, 208, 52, 175, 245, 241, 123, 90, 123, | ||
1425 | 150, 211, 56, 75, 247, 140, 187, 53, 172, 174, 90, 223, 117, 128, 254, 97, | ||
1426 | 235, 170, 193, 190, 34, 215, 109, 18, 109, 13, 118, 134, 45, 22, 100, 73, | ||
1427 | 141, 199, 203, 124, 169, 191, 102, 108, 250, 201, 188, 39, 236, 74, 154, 159, | ||
1428 | 170, 137, 69, 63, 82, 44, 177, 240, 178, 157, 53, 89, 6, 99, 5, 13, | ||
1429 | 134, 169, 195, 121, 229, 179, 212, 123, 198, 131, 96, 250, 187, 94, 106, 51, | ||
1430 | 219, 16, 147, 227, 108, 124, 240, 237, 172, 43, 83, 157, 124, 246, 118, 249, | ||
1431 | 175, 43, 235, 221, 18, 24, 166, 127, 255, 210, 199, 57, 134, 73, 141, 254, | ||
1432 | 219, 209, 19, 217, 36, 25, 104, 225, 133, 24, 3, 130, 62, 103, 148, 212, | ||
1433 | 243, 122, 52, 213, 102, 26, 144, 227, 189, 143, 151, 230, 98, 87, 214, 147, | ||
1434 | 110, 31, 43, 248, 142, 126, 199, 95, 170, 186, 67, 225, 208, 49, 50, 159, | ||
1435 | 108, 174, 152, 118, 43, 193, 187, 13, 63, 141, 94, 118, 113, 200, 75, 165, | ||
1436 | 117, 247, 53, 209, 151, 163, 241, 24, 23, 252, 149, 18, 16, 77, 69, 208, | ||
1437 | 219, 254, 159, 220, 62, 99, 26, 31, 231, 88, 150, 219, 168, 151, 178, 181, | ||
1438 | 234, 141, 124, 130, 37, 1, 21, 195, 96, 139, 179, 136, 145, 29, 159, 213, | ||
1439 | 248, 10, 174, 213, 22, 180, 250, 251, 30, 42, 228, 139, 178, 90, 19, 228, | ||
1440 | 100, 120, 205, 54, 6, 189, 213, 203, 193, 43, 218, 211, 27, 93, 76, 181, | ||
1441 | 127, 159, 43, 96, 233, 249, 118, 252, 127, 59, 67, 82, 65, 48, 100, 170, | ||
1442 | 227, 197, 141, 49, 153, 31, 189, 176, 102, 14, 101, 152, 242, 25, 251, 47, | ||
1443 | 242, 67, 114, 61, 184, 29, 60, 163, 186, 19, 17, 36, 42, 76, 31, 246, | ||
1444 | 195, 224, 206, 221, 89, 69, 218, 112, 148, 98, 60, 154, 28, 199, 206, 59, | ||
1445 | 157, 199, 18, 214, 53, 217, 211, 254, 128, 220, 189, 96, 134, 57, 73, 152, | ||
1446 | 41, 52, 0, 93, 23, 215, 124, 209, 63, 252, 134, 64, 224, 183, 197, 94, | ||
1447 | 46, 214, 214, 233, 202, 211, 155, 236, 31, 238, 220, 132, 54, 88, 122, 140, | ||
1448 | 146, 11, 88, 164, 238, 156, 72, 239, 225, 82, 157, 144, 27, 240, 5, 231, | ||
1449 | 89, 25, 63, 50, 227, 219, 3, 5, 218, 125, 13, 151, 59, 40, 162, 211, | ||
1450 | 79, 33, 157, 76, 245, 55, 229, 140, 88, 50, 221, 42, 52, 162, 106, 212, | ||
1451 | 125, 187, 254, 0, 126, 156, 98, 149, 35, 94, 247, 215, 131, 86, 116, 176, | ||
1452 | 3, 56, 30, 26, 138, 113, 71, 255, 77, 143, 52, 111, 20, 113, 47, 88, | ||
1453 | 104, 110, 225, 164, 226, 8, 74, 180, 182, 183, 206, 215, 84, 12, 46, 61, | ||
1454 | 177, 168, 102, 244, 93, 199, 243, 247, 214, 227, 131, 185, 103, 131, 49, 3, | ||
1455 | 49, 18, 74, 111, 249, 150, 2, 113, 165, 221, 7, 93, 110, 59, 242, 246, | ||
1456 | 243, 168, 45, 182, 45, 140, 19, 41, 72, 10, 164, 190, 17, 174, 216, 36, | ||
1457 | 216, 3, 1, 198, 230, 150, 19, 0, 114, 10, 75, 166, 138, 161, 0, 113, | ||
1458 | 132, 128, 116, 201, 147, 42, 63, 211, 56, 195, 45, 125, 69, 55, 177, 149, | ||
1459 | 228, 7, 78, 217, 133, 35, 108, 182, 210, 185, 124, 187, 167, 95, 246, 202, | ||
1460 | 121, 167, 61, 61, 239, 37, 153, 143, 109, 126, 42, 69, 174, 253, 132, 161, | ||
1461 | 118, 14, 10, 7, 141, 92, 188, 60, 81, 174, 93, 28, 58, 223, 217, 119, | ||
1462 | 84, 213, 230, 132, 248, 31, 47, 141, 88, 249, 28, 205, 19, 5, 183, 167, | ||
1463 | 88, 177, 66, 242, 50, 66, 255, 31, 218, 182, 209, 12, 246, 151, 87, 252, | ||
1464 | 211, 231, 32, 120, 95, 76, 180, 20, 124, 238, 190, 60, 165, 239, 207, 37, | ||
1465 | 221, 115, 145, 126, 61, 51, 141, 54, 64, 219, 247, 164, 74, 19, 7, 93, | ||
1466 | 27, 150, 115, 224, 228, 172, 232, 113, 6, 148, 40, 229, 228, 32, 17, 92, | ||
1467 | 215, 75, 64, 50, 235, 127, 109, 127, 152, 99, 73, 55, 210, 245, 55, 37, | ||
1468 | 236, 244, 136, 154, 177, 231, 119, 30, 187, 225, 83, 240, 237, 183, 80, 245, | ||
1469 | 10, 129, 181, 156, 137, 27, 79, 97, 145, 78, 100, 127, 79, 224, 218, 244, | ||
1470 | 49, 70, 225, 131, 138, 102, 32, 110, 123, 110, 49, 161, 246, 27, 99, 115, | ||
1471 | 171, 159, 45, 44, 15, 108, 51, 173, 24, 4, 170, 76, 255, 41, 27, 0, | ||
1472 | 27, 35, 61, 145, 246, 241, 138, 152, 47, 51, 2, 153, 171, 79, 81, 176, | ||
1473 | 123, 63, 192, 74, 27, 243, 22, 51, 86, 243, 48, 24, 129, 162, 69, 218, | ||
1474 | 102, 143, 135, 107, 52, 182, 189, 25, 142, 206, 227, 144, 140, 57, 124, 252, | ||
1475 | 97, 157, 61, 55, 43, 76, 52, 197, 146, 154, 83, 0, 150, 16, 85, 76, | ||
1476 | 230, 32, 23, 86, 31, 241, 251, 88, 183, 195, 242, 192, 181, 160, 229, 185, | ||
1477 | 229, 186, 72, 219, 249, 142, 111, 178, 42, 163, 117, 93, 31, 171, 161, 227, | ||
1478 | 194, 51, 36, 53, 116, 0, 233, 37, 150, 128, 144, 8, 168, 198, 68, 35, | ||
1479 | 57, 148, 64, 207, 148, 64, 213, 174, 223, 174, 129, 171, 81, 132, 1, 90, | ||
1480 | 208, 100, 105, 209, 10, 209, 228, 138, 169, 82, 197, 37, 172, 32, 222, 70, | ||
1481 | 180, 78, 59, 234, 106, 250, 76, 237, 59, 173, 178, 212, 151, 107, 131, 245, | ||
1482 | 14, 218, 71, 56, 187, 138, 74, 101, 15, 32, 18, 131, 21, 57, 6, 32, | ||
1483 | 115, 75, 244, 119, 168, 158, 154, 147, 72, 143, 232, 51, 49, 181, 115, 27, | ||
1484 | 96, 141, 93, 202, 36, 38, 23, 61, 150, 171, 239, 66, 13, 183, 126, 24, | ||
1485 | 99, 175, 110, 189, 88, 170, 252, 139, 127, 179, 106, 243, 140, 208, 243, 110, | ||
1486 | 145, 64, 161, 4, 191, 209, 211, 72, 135, 24, 121, 210, 109, 42, 134, 9, | ||
1487 | 160, 241, 186, 161, 203, 85, 212, 3, 23, 228, 75, 147, 133, 9, 100, 65, | ||
1488 | 195, 165, 252, 229, 177, 199, 170, 63, 194, 247, 76, 171, 66, 203, 193, 3, | ||
1489 | 74, 91, 86, 31, 85, 185, 52, 27, 175, 175, 84, 137, 51, 233, 26, 52, | ||
1490 | 16, 75, 185, 95, 35, 167, 251, 67, 83, 217, 9, 241, 43, 252, 76, 242, | ||
1491 | 101, 115, 133, 173, 154, 251, 33, 116, 118, 243, 152, 63, 173, 153, 63, 75, | ||
1492 | 90, 106, 203, 197, 141, 149, 127, 9, 133, 218, 223, 193, 62, 19, 48, 231, | ||
1493 | 45, 146, 21, 164, 1, 42, 43, 187, 75, 88, 20, 39, 233, 165, 20, 76, | ||
1494 | 26, 145, 226, 155, 106, 187, 26, 195, 23, 212, 49, 60, 145, 149, 37, 167, | ||
1495 | 73, 106, 203, 228, 185, 223, 108, 12, 187, 239, 88, 126, 27, 154, 235, 203, | ||
1496 | 207, 187, 1, 114, 12, 112, 238, 17, 185, 120, 227, 177, 242, 191, 10, 18, | ||
1497 | 241, 143, 21, 239, 31, 150, 102, 60, 15, 167, 209, 64, 117, 237, 45, 45, | ||
1498 | 217, 147, 32, 28, 98, 221, 12, 20, 2, 176, 213, 147, 95, 31, 176, 64, | ||
1499 | 237, 55, 53, 44, 105, 249, 43, 111, 73, 162, 180, 4, 62, 66, 118, 36, | ||
1500 | 215, 254, 183, 249, 170, 39, 21, 69, 147, 65, 105, 136, 232, 160, 174, 141, | ||
1501 | 84, 222, 189, 33, 250, 197, 226, 170, 246, 127, 87, 25, 10, 181, 46, 151, | ||
1502 | 216, 250, 227, 131, 115, 64, 217, 11, 190, 199, 122, 148, 242, 221, 46, 169, | ||
1503 | 45, 54, 9, 90, 251, 94, 61, 211, 30, 67, 199, 115, 204, 4, 199, 203, | ||
1504 | 109, 137, 60, 223, 206, 3, 144, 170, 215, 224, 72, 247, 128, 64, 147, 140, | ||
1505 | 223, 125, 20, 67, 248, 253, 206, 5, 44, 72, 160, 33, 20, 166, 80, 123, | ||
1506 | 194, 220, 16, 134, 206, 24, 66, 217, 177, 231, 223, 66, 251, 253, 235, 180, | ||
1507 | 36, 205, 107, 173, 198, 108, 83, 120, 82, 128, 120, 245, 67, 23, 248, 203, | ||
1508 | 28, 14, 75, 235, 117, 111, 34, 127, 39, 52, 169, 101, 28, 144, 123, 20, | ||
1509 | 197, 116, 96, 141, 201, 246, 61, 101, 132, 127, 98, 178, 186, 139, 226, 132, | ||
1510 | 55, 229, 116, 75, 43, 241, 119, 139, 104, 169, 215, 199, 226, 113, 178, 214, | ||
1511 | 153, 159, 139, 208, 106, 136, 77, 149, 72, 248, 49, 179, 98, 110, 192, 105, | ||
1512 | 128, 27, 245, 36, 215, 210, 187, 98, 45, 92, 51, 238, 57, 153, 113, 21, | ||
1513 | 86, 147, 122, 138, 3, 70, 66, 84, 135, 96, 199, 23, 123, 105, 226, 81, | ||
1514 | 171, 23, 228, 73, 234, 240, 50, 135, 108, 143, 140, 247, 26, 245, 43, 94, | ||
1515 | 183, 180, 240, 235, 159, 127, 57, 119, 6, 34, 58, 112, 170, 62, 37, 57, | ||
1516 | 171, 56, 223, 147, 98, 204, 183, 146, 154, 85, 172, 49, 76, 84, 231, 138, | ||
1517 | 117, 46, 81, 57, 240, 43, 102, 130, 234, 208, 237, 88, 164, 124, 128, 104, | ||
1518 | 167, 38, 88, 73, 7, 131, 234, 67, 4, 213, 8, 211, 84, 81, 197, 133, | ||
1519 | 123, 247, 254, 101, 230, 68, 245, 220, 193, 152, 208, 91, 63, 109, 228, 184, | ||
1520 | 117, 28, 114, 146, 98, 142, 195, 4, 139, 48, 186, 242, 211, 124, 175, 224, | ||
1521 | 69, 38, 35, 14, 253, 245, 242, 184, 138, 4, 206, 221, 15, 125, 189, 97, | ||
1522 | 127, 46, 212, 10, 55, 1, 69, 56, 31, 180, 245, 93, 175, 58, 220, 3, | ||
1523 | 164, 88, 22, 74, 157, 113, 246, 189, 65, 97, 235, 189, 126, 106, 50, 120, | ||
1524 | 180, 71, 120, 11, 200, 48, 19, 57, 236, 64, 234, 180, 243, 32, 228, 127, | ||
1525 | 228, 253, 42, 20, 238, 109, 161, 67, 73, 52, 35, 126, 197, 5, 117, 12, | ||
1526 | 86, 215, 168, 60, 159, 4, 74, 193, 92, 104, 190, 30, 185, 187, 153, 208, | ||
1527 | 87, 245, 62, 200, 16, 204, 189, 141, 188, 226, 187, 144, 101, 51, 86, 204, | ||
1528 | 26, 22, 246, 230, 176, 81, 195, 19, 126, 58, 91, 30, 204, 178, 248, 217, | ||
1529 | 81, 155, 68, 145, 42, 9, 22, 68, 22, 107, 25, 86, 153, 225, 224, 143, | ||
1530 | 128, 94, 164, 65, 168, 173, 178, 181, 97, 100, 159, 212, 164, 213, 75, 25, | ||
1531 | 35, 225, 133, 5, 243, 65, 39, 158, 155, 153, 3, 81, 53, 165, 153, 52, | ||
1532 | 237, 226, 122, 245, 248, 255, 60, 13, 2, 41, 202, 232, 184, 57, 152, 133, | ||
1533 | 105, 159, 33, 220, 49, 135, 76, 198, 212, 70, 168, 43, 233, 168, 180, 88, | ||
1534 | 139, 246, 219, 120, 12, 161, 238, 88, 228, 9, 77, 236, 129, 227, 73, 91, | ||
1535 | 104, 222, 104, 205, 28, 140, 205, 167, 178, 222, 150, 197, 139, 205, 66, 245, | ||
1536 | 48, 241, 80, 225, 218, 27, 159, 205, 64, 148, 107, 54, 46, 190, 61, 0, | ||
1537 | 161, 228, 124, 123, 18, 170, 35, 46, 53, 61, 171, 154, 121, 253, 187, 158, | ||
1538 | 102, 194, 132, 94, 49, 239, 86, 57, 205, 129, 185, 234, 50, 56, 219, 36, | ||
1539 | 56, 77, 247, 160, 75, 239, 154, 122, 34, 34, 143, 66, 53, 20, 212, 246, | ||
1540 | 3, 79, 229, 119, 50, 132, 221, 187, 208, 82, 149, 183, 151, 200, 181, 97, | ||
1541 | 12, 4, 136, 233, 171, 247, 128, 211, 234, 122, 152, 140, 221, 82, 83, 98, | ||
1542 | 185, 95, 122, 23, 120, 124, 112, 240, 39, 16, 49, 140, 225, 135, 88, 69, | ||
1543 | 96, 125, 246, 99, 224, 165, 148, 178, 35, 63, 192, 217, 39, 153, 63, 32, | ||
1544 | 109, 142, 224, 12, 132, 10, 55, 49, 140, 217, 141, 113, 10, 72, 92, 37, | ||
1545 | 121, 96, 72, 35, 184, 70, 156, 225, 140, 110, 150, 24, 95, 209, 172, 140, | ||
1546 | 187, 10, 154, 58, 113, 215, 254, 36, 101, 155, 5, 46, 249, 59, 238, 164, | ||
1547 | 25, 212, 35, 5, 87, 45, 183, 124, 174, 6, 182, 241, 206, 128, 118, 190, | ||
1548 | 239, 160, 140, 2, 149, 90, 185, 125, 192, 8, 75, 105, 184, 51, 2, 11, | ||
1549 | 198, 85, 249, 100, 88, 73, 229, 189, 80, 81, 244, 167, 62, 110, 52, 13, | ||
1550 | 254, 122, 144, 170, 206, 64, 239, 191, 0, 73, 235, 143, 120, 81, 33, 87, | ||
1551 | 83, 154, 156, 163, 31, 172, 104, 196, 78, 144, 100, 3, 54, 202, 67, 177, | ||
1552 | 217, 80, 207, 235, 48, 12, 127, 78, 116, 96, 238, 226, 97, 154, 97, 120, | ||
1553 | 19, 33, 89, 14, 160, 149, 243, 246, 196, 219, 74, 113, 225, 92, 32, 216, | ||
1554 | 10, 50, 176, 127, 113, 63, 157, 143, 190, 245, 94, 244, 103, 85, 143, 162, | ||
1555 | 61, 177, 203, 240, 204, 55, 183, 226, 251, 205, 53, 25, 19, 197, 160, 34, | ||
1556 | 42, 128, 169, 80, 11, 210, 133, 105, 128, 175, 107, 72, 222, 130, 95, 209, | ||
1557 | 93, 161, 16, 35, 244, 178, 236, 100, 20, 129, 190, 118, 246, 108, 68, 206, | ||
1558 | 105, 58, 91, 90, 149, 0, 168, 95, 115, 63, 54, 240, 7, 164, 186, 100, | ||
1559 | 76, 81, 225, 58, 178, 14, 46, 79, 31, 226, 180, 34, 164, 191, 84, 22, | ||
1560 | 244, 90, 105, 13, 83, 133, 230, 81, 45, 49, 157, 84, 22, 168, 167, 205, | ||
1561 | 219, 123, 209, 80, 87, 205, 180, 152, 162, 225, 229, 142, 72, 250, 240, 134, | ||
1562 | 185, 145, 112, 149, 25, 185, 198, 174, 213, 83, 145, 151, 228, 138, 96, 152, | ||
1563 | 242, 251, 227, 53, 229, 136, 37, 147, 184, 141, 104, 221, 51, 219, 21, 93, | ||
1564 | 42, 253, 183, 57, 203, 92, 7, 240, 82, 171, 103, 167, 115, 233, 175, 142, | ||
1565 | 8, 112, 10, 56, 44, 192, 231, 79, 18, 8, 68, 128, 106, 121, 225, 149, | ||
1566 | 30, 210, 173, 86, 240, 30, 138, 197, 89, 213, 63, 161, 106, 65, 141, 57, | ||
1567 | 96, 102, 191, 28, 56, 9, 201, 3, 248, 113, 118, 51, 121, 247, 83, 135, | ||
1568 | 51, 54, 14, 19, 49, 175, 59, 206, 112, 172, 155, 243, 75, 19, 154, 102, | ||
1569 | 188, 11, 76, 198, 136, 11, 44, 154, 139, 48, 34, 194, 116, 170, 198, 127, | ||
1570 | 132, 231, 200, 44, 61, 210, 93, 20, 159, 201, 183, 39, 78, 178, 225, 112, | ||
1571 | 50, 254, 198, 200, 207, 18, 196, 209, 222, 252, 67, 56, 186, 71, 24, 210, | ||
1572 | 30, 105, 32, 102, 99, 239, 195, 191, 131, 246, 65, 121, 91, 66, 112, 28, | ||
1573 | 170, 67, 28, 144, 187, 46, 117, 97, 187, 240, 250, 118, 249, 68, 151, 248, | ||
1574 | 219, 208, 103, 242, 166, 122, 220, 59, 50, 215, 90, 160, 15, 15, 96, 89, | ||
1575 | 167, 87, 22, 253, 137, 202, 126, 145, 162, 171, 97, 181, 102, 50, 107, 230, | ||
1576 | 31, 183, 133, 105, 23, 233, 228, 13, 247, 169, 79, 53, 76, 138, 29, 51, | ||
1577 | 53, 221, 126, 199, 47, 153, 184, 183, 198, 109, 192, 203, 178, 26, 115, 177, | ||
1578 | 118, 158, 181, 43, 48, 174, 195, 253, 43, 18, 172, 171, 101, 129, 255, 63, | ||
1579 | 41, 49, 160, 15, 86, 108, 235, 87, 115, 36, 93, 46, 164, 152, 49, 31, | ||
1580 | 137, 125, 174, 115, 196, 240, 117, 226, 183, 151, 73, 30, 75, 59, 61, 160, | ||
1581 | 96, 157, 215, 246, 160, 136, 82, 95, 181, 13, 207, 158, 106, 81, 18, 27, | ||
1582 | 182, 35, 249, 72, 148, 128, 15, 82, 68, 197, 0, 159, 149, 239, 34, 250, | ||
1583 | 171, 70, 200, 219, 214, 18, 134, 14, 71, 69, 219, 145, 208, 125, 65, 232, | ||
1584 | 201, 212, 148, 39, 208, 142, 54, 38, 32, 154, 124, 35, 76, 173, 240, 232, | ||
1585 | 23, 74, 183, 118, 137, 244, 180, 149, 195, 198, 105, 25, 246, 236, 155, 88, | ||
1586 | 230, 134, 32, 126, 183, 72, 127, 129, 139, 161, 224, 222, 127, 107, 201, 78, | ||
1587 | 227, 207, 10, 48, 9, 199, 240, 176, 49, 165, 95, 200, 101, 89, 40, 229, | ||
1588 | 28, 8, 41, 193, 173, 218, 63, 229, 216, 170, 82, 90, 162, 243, 0, 125, | ||
1589 | 248, 79, 186, 228, 44, 197, 178, 58, 196, 251, 85, 19, 254, 130, 110, 78, | ||
1590 | 91, 217, 146, 16, 90, 221, 6, 129, 173, 73, 56, 77, 72, 19, 8, 14, | ||
1591 | 129, 84, 19, 88, 146, 252, 137, 165, 222, 7, 199, 107, 135, 13, 253, 137, | ||
1592 | 180, 184, 240, 37, 238, 133, 135, 80, 170, 172, 60, 80, 94, 130, 246, 166, | ||
1593 | 63, 181, 30, 103, 97, 138, 193, 148, 96, 82, 61, 47, 188, 230, 118, 65, | ||
1594 | 74, 28, 123, 50, 73, 12, 187, 123, 129, 19, 95, 213, 61, 153, 85, 243, | ||
1595 | 44, 195, 249, 250, 121, 175, 42, 187, 154, 233, 91, 217, 49, 130, 129, 172, | ||
1596 | 250, 182, 203, 30, 93, 213, 217, 24, 28, 198, 4, 208, 61, 207, 108, 120, | ||
1597 | 22, 39, 136, 252, 123, 15, 188, 34, 35, 177, 35, 134, 178, 221, 217, 22, | ||
1598 | 51, 18, 22, 215, 47, 68, 120, 130, 0, 192, 242, 170, 170, 202, 220, 179, | ||
1599 | 185, 81, 204, 10, 115, 181, 231, 246, 172, 38, 43, 145, 56, 171, 219, 34, | ||
1600 | 17, 96, 165, 209, 53, 44, 68, 74, 236, 249, 192, 35, 204, 123, 56, 118, | ||
1601 | 174, 172, 151, 249, 36, 21, 133, 119, 237, 232, 61, 125, 6, 124, 200, 62, | ||
1602 | 68, 67, 40, 196, 202, 84, 213, 160, 237, 85, 249, 125, 41, 187, 126, 48, | ||
1603 | 152, 124, 104, 211, 127, 96, 167, 184, 23, 161, 68, 106, 119, 224, 226, 148, | ||
1604 | 234, 54, 155, 168, 186, 193, 167, 15, 242, 100, 82, 15, 205, 247, 34, 24, | ||
1605 | 134, 152, 115, 132, 114, 196, 0, 136, 242, 73, 91, 35, 90, 4, 161, 138, | ||
1606 | 163, 21, 16, 244, 60, 158, 199, 246, 233, 150, 10, 142, 248, 196, 224, 129, | ||
1607 | 8, 158, 81, 11, 92, 96, 197, 23, 45, 104, 235, 250, 9, 31, 47, 153, | ||
1608 | 116, 22, 170, 186, 150, 46, 214, 246, 75, 116, 4, 242, 147, 168, 177, 134, | ||
1609 | 143, 149, 36, 139, 224, 127, 143, 167, 208, 115, 158, 250, 132, 4, 124, 204, | ||
1610 | 99, 217, 239, 97, 5, 38, 50, 17, 176, 171, 96, 92, 88, 219, 195, 184, | ||
1611 | 160, 158, 175, 10, 175, 33, 245, 28, 55, 56, 207, 47, 46, 114, 108, 196, | ||
1612 | 101, 93, 39, 227, 183, 40, 40, 109, 121, 123, 90, 85, 162, 165, 227, 200, | ||
1613 | 238, 136, 223, 36, 77, 179, 45, 156, 51, 95, 33, 15, 219, 71, 37, 98, | ||
1614 | 141, 150, 179, 78, 217, 221, 130, 186, 155, 84, 146, 217, 210, 202, 91, 212, | ||
1615 | 50, 129, 188, 203, 28, 213, 10, 230, 40, 47, 215, 77, 161, 88, 71, 56, | ||
1616 | 82, 124, 130, 249, 70, 139, 142, 23, 78, 139, 252, 32, 223, 90, 214, 27, | ||
1617 | 94, 23, 12, 240, 77, 145, 71, 172, 75, 235, 141, 83, 145, 50, 101, 166, | ||
1618 | 87, 154, 179, 203, 27, 233, 169, 45, 28, 41, 211, 46, 144, 123, 62, 62, | ||
1619 | 205, 178, 180, 89, 32, 194, 238, 151, 217, 164, 214, 241, 164, 96, 215, 46, | ||
1620 | 141, 189, 86, 97, 143, 4, 227, 73, 20, 221, 238, 66, 3, 132, 135, 229, | ||
1621 | 22, 60, 152, 102, 211, 20, 250, 225, 36, 212, 131, 182, 212, 216, 84, 141, | ||
1622 | 133, 86, 163, 136, 107, 219, 8, 100, 189, 138, 217, 60, 131, 237, 64, 37, | ||
1623 | 241, 85, 140, 47, 54, 75, 58, 76, 66, 104, 245, 201, 199, 236, 188, 71, | ||
1624 | 30, 171, 233, 190, 81, 120, 166, 63, 237, 249, 233, 192, 5, 24, 231, 193, | ||
1625 | 39, 99, 101, 108, 92, 109, 156, 211, 111, 87, 157, 130, 16, 58, 113, 47, | ||
1626 | 101, 152, 60, 183, 37, 227, 52, 255, 213, 16, 112, 234, 223, 197, 101, 73, | ||
1627 | 120, 94, 60, 158, 82, 227, 131, 13, 4, 167, 78, 126, 120, 154, 26, 246, | ||
1628 | 35, 145, 40, 150, 7, 208, 243, 100, 68, 89, 200, 139, 138, 121, 37, 28, | ||
1629 | 35, 197, 227, 79, 19, 130, 171, 91, 116, 57, 153, 140, 217, 236, 7, 180, | ||
1630 | 221, 226, 163, 199, 158, 131, 200, 37, 48, 41, 157, 175, 139, 71, 53, 172, | ||
1631 | 113, 159, 133, 47, 139, 113, 157, 40, 88, 44, 115, 105, 104, 219, 211, 18, | ||
1632 | 164, 170, 127, 5, 178, 115, 181, 143, 30, 173, 6, 186, 183, 45, 56, 94, | ||
1633 | 252, 210, 171, 154, 10, 17, 34, 153, 4, 11, 176, 85, 144, 114, 36, 247, | ||
1634 | 34, 67, 187, 69, 164, 168, 120, 82, 186, 46, 15, 147, 105, 48, 76, 235, | ||
1635 | 15, 218, 86, 160, 19, 220, 119, 241, 103, 252, 196, 58, 74, 131, 214, 109, | ||
1636 | 17, 175, 75, 203, 167, 17, 60, 52, 251, 130, 55, 184, 165, 83, 225, 231, | ||
1637 | 184, 208, 196, 88, 70, 8, 3, 43, 78, 107, 158, 180, 130, 248, 194, 16, | ||
1638 | 46, 54, 100, 98, 121, 67, 185, 17, 181, 210, 5, 15, 178, 196, 80, 220, | ||
1639 | 28, 103, 220, 231, 167, 10, 122, 225, 194, 118, 157, 192, 195, 205, 130, 253, | ||
1640 | 94, 246, 177, 74, 149, 90, 120, 188, 230, 48, 77, 168, 50, 76, 130, 136, | ||
1641 | 200, 219, 209, 192, 20, 10, 193, 97, 205, 136, 98, 117, 128, 170, 198, 220, | ||
1642 | 218, 180, 178, 186, 150, 227, 196, 161, 4, 244, 124, 31, 85, 243, 34, 78, | ||
1643 | 187, 226, 164, 167, 122, 56, 114, 232, 140, 189, 160, 19, 184, 223, 165, 202, | ||
1644 | 86, 210, 102, 183, 50, 30, 109, 134, 23, 102, 171, 130, 93, 106, 2, 117, | ||
1645 | 80, 82, 197, 193, 247, 137, 255, 255, 127, 38, 13, 82, 103, 51, 179, 220, | ||
1646 | 133, 247, 104, 152, 160, 229, 160, 214, 152, 157, 87, 183, 82, 43, 36, 19, | ||
1647 | 80, 192, 122, 186, 201, 116, 190, 220, 131, 228, 153, 197, 212, 112, 233, 124, | ||
1648 | 114, 212, 106, 195, 129, 141, 204, 238, 98, 247, 90, 244, 23, 118, 2, 168, | ||
1649 | 71, 48, 223, 253, 187, 16, 204, 230, 46, 221, 30, 243, 27, 129, 155, 210, | ||
1650 | 159, 84, 56, 212, 197, 131, 174, 59, 85, 108, 80, 36, 31, 210, 71, 228, | ||
1651 | 254, 171, 67, 129, 154, 175, 245, 140, 11, 167, 43, 69, 231, 227, 91, 183, | ||
1652 | 133, 108, 4, 151, 128, 64, 243, 215, 74, 160, 186, 217, 38, 28, 186, 75, | ||
1653 | 178, 151, 214, 5, 49, 158, 242, 126, 91, 249, 88, 156, 110, 124, 205, 125, | ||
1654 | 227, 19, 235, 172, 103, 200, 190, 121, 169, 140, 118, 156, 21, 152, 34, 31, | ||
1655 | 235, 46, 191, 107, 37, 109, 135, 112, 195, 9, 245, 43, 96, 232, 74, 8, | ||
1656 | 193, 131, 70, 140, 180, 204, 219, 243, 72, 70, 16, 11, 227, 0, 27, 252, | ||
1657 | 142, 183, 199, 103, 114, 149, 221, 235, 69, 92, 245, 9, 227, 43, 173, 139, | ||
1658 | 119, 85, 104, 214, 84, 126, 244, 243, 122, 14, 164, 185, 104, 176, 55, 133, | ||
1659 | 44, 28, 208, 232, 50, 71, 32, 78, 200, 95, 153, 70, 82, 243, 91, 164, | ||
1660 | 64, 159, 173, 244, 103, 78, 29, 218, 209, 124, 118, 153, 42, 69, 240, 237, | ||
1661 | 228, 33, 155, 17, 61, 27, 233, 171, 6, 240, 48, 113, 243, 134, 207, 120, | ||
1662 | 216, 61, 188, 247, 231, 185, 163, 43, 140, 138, 235, 132, 219, 47, 38, 93, | ||
1663 | 205, 6, 247, 195, 200, 79, 87, 111, 210, 54, 222, 179, 108, 163, 253, 22, | ||
1664 | 22, 101, 180, 6, 61, 41, 91, 95, 237, 186, 166, 110, 225, 139, 205, 146, | ||
1665 | 41, 133, 153, 114, 63, 48, 110, 208, 168, 38, 233, 141, 23, 136, 236, 22, | ||
1666 | 220, 14, 62, 224, 46, 20, 193, 181, 107, 14, 234, 156, 234, 108, 30, 112, | ||
1667 | 235, 126, 237, 189, 252, 240, 240, 3, 175, 210, 85, 35, 230, 115, 219, 184, | ||
1668 | 173, 48, 84, 250, 52, 113, 44, 187, 173, 253, 153, 177, 32, 127, 98, 100, | ||
1669 | 180, 211, 71, 146, 82, 1, 69, 200, 165, 198, 121, 133, 232, 0, 237, 157, | ||
1670 | 169, 31, 134, 106, 243, 245, 16, 228, 53, 133, 143, 255, 123, 175, 19, 10, | ||
1671 | 98, 117, 180, 38, 50, 190, 63, 70, 106, 8, 221, 78, 66, 129, 190, 181, | ||
1672 | 165, 119, 242, 101, 19, 18, 181, 91, 223, 30, 93, 253, 74, 242, 112, 139, | ||
1673 | 30, 121, 25, 100, 144, 32, 212, 143, 3, 96, 134, 113, 193, 190, 51, 8, | ||
1674 | 60, 108, 88, 168, 142, 47, 217, 173, 44, 207, 174, 161, 237, 179, 147, 4, | ||
1675 | 30, 5, 177, 202, 43, 239, 15, 135, 44, 216, 10, 183, 63, 27, 159, 195, | ||
1676 | 56, 238, 95, 213, 45, 44, 252, 4, 101, 233, 38, 88, 66, 126, 149, 196, | ||
1677 | 87, 211, 55, 38, 17, 92, 26, 76, 156, 183, 136, 154, 166, 219, 125, 10, | ||
1678 | 88, 240, 97, 14, 86, 67, 4, 74, 236, 71, 72, 10, 49, 18, 158, 148, | ||
1679 | 128, 15, 241, 17, 9, 236, 243, 22, 116, 160, 65, 166, 34, 113, 76, 41, | ||
1680 | 100, 153, 184, 22, 62, 252, 220, 47, 180, 124, 103, 242, 104, 13, 244, 136, | ||
1681 | 33, 146, 33, 176, 31, 159, 235, 29, 221, 255, 182, 90, 183, 158, 186, 155, | ||
1682 | 85, 137, 173, 129, 71, 91, 147, 17, 30, 240, 214, 110, 79, 64, 21, 129, | ||
1683 | 97, 109, 253, 198, 203, 116, 235, 89, 166, 151, 116, 106, 194, 27, 51, 177, | ||
1684 | 23, 119, 199, 227, 50, 143, 129, 234, 188, 217, 9, 136, 48, 115, 5, 252, | ||
1685 | 241, 195, 116, 239, 68, 176, 55, 121, 2, 38, 229, 224, 94, 204, 200, 115, | ||
1686 | 84, 235, 131, 172, 242, 56, 208, 41, 21, 36, 113, 156, 137, 6, 225, 132, | ||
1687 | 4, 181, 193, 84, 10, 213, 155, 150, 72, 127, 23, 107, 255, 105, 250, 61, | ||
1688 | 234, 211, 225, 169, 93, 63, 138, 95, 201, 74, 208, 99, 119, 184, 219, 62, | ||
1689 | 86, 163, 142, 35, 24, 86, 92, 224, 53, 84, 57, 101, 113, 76, 26, 78, | ||
1690 | 174, 49, 28, 234, 153, 240, 27, 114, 87, 133, 130, 78, 66, 144, 205, 152, | ||
1691 | 171, 169, 136, 219, 142, 223, 145, 149, 196, 6, 167, 109, 52, 188, 0, 98, | ||
1692 | 242, 254, 184, 129, 250, 63, 244, 10, 97, 188, 7, 137, 183, 165, 68, 91, | ||
1693 | 26, 188, 230, 246, 227, 12, 217, 170, 224, 119, 135, 243, 149, 88, 67, 23, | ||
1694 | 117, 173, 130, 164, 233, 244, 251, 11, 123, 57, 80, 111, 249, 146, 231, 213, | ||
1695 | 158, 26, 236, 250, 213, 228, 117, 251, 101, 128, 8, 241, 251, 36, 40, 149, | ||
1696 | 148, 60, 146, 48, 104, 121, 163, 233, 2, 24, 10, 21, 93, 137, 124, 8, | ||
1697 | 115, 220, 255, 107, 153, 105, 6, 255, 32, 160, 96, 74, 84, 184, 31, 155, | ||
1698 | 118, 206, 58, 131, 111, 150, 137, 145, 22, 45, 138, 211, 118, 151, 248, 189, | ||
1699 | 64, 82, 222, 9, 137, 114, 59, 89, 77, 249, 245, 195, 146, 198, 43, 209, | ||
1700 | 186, 151, 121, 136, 170, 81, 53, 43, 126, 15, 62, 88, 171, 206, 232, 34, | ||
1701 | 99, 52, 6, 22, 126, 140, 32, 181, 122, 253, 230, 127, 211, 254, 61, 254, | ||
1702 | 108, 114, 38, 214, 164, 244, 87, 243, 187, 185, 57, 105, 24, 244, 59, 254, | ||
1703 | 92, 143, 235, 38, 70, 177, 126, 123, 61, 243, 45, 127, 76, 127, 39, 45, | ||
1704 | 254, 239, 67, 221, 24, 81, 24, 130, 247, 106, 239, 93, 18, 57, 242, 4, | ||
1705 | 223, 131, 86, 249, 241, 81, 149, 230, 154, 17, 14, 179, 194, 234, 17, 85, | ||
1706 | 188, 33, 162, 62, 73, 157, 253, 248, 111, 97, 205, 47, 74, 223, 192, 185, | ||
1707 | 212, 153, 240, 156, 104, 64, 46, 209, 146, 56, 27, 21, 184, 95, 107, 95, | ||
1708 | 101, 243, 133, 146, 194, 240, 51, 109, 158, 225, 18, 80, 66, 4, 79, 252, | ||
1709 | 174, 187, 55, 230, 54, 51, 42, 87, 34, 159, 155, 184, 118, 167, 150, 46, | ||
1710 | 32, 156, 244, 124, 222, 84, 247, 12, 231, 119, 237, 135, 225, 227, 97, 178, | ||
1711 | 37, 208, 112, 126, 32, 227, 60, 239, 194, 183, 169, 208, 221, 250, 180, 56, | ||
1712 | 137, 67, 153, 170, 242, 54, 55, 48, 219, 79, 106, 249, 250, 56, 130, 184, | ||
1713 | 43, 56, 114, 175, 122, 249, 107, 188, 63, 169, 25, 43, 68, 61, 246, 47, | ||
1714 | 191, 117, 150, 7, 163, 144, 42, 186, 5, 195, 11, 68, 215, 219, 87, 213, | ||
1715 | 42, 84, 99, 37, 29, 78, 34, 180, 131, 15, 171, 186, 225, 163, 204, 225, | ||
1716 | 72, 198, 227, 122, 245, 4, 133, 40, 134, 17, 61, 112, 55, 159, 37, 118, | ||
1717 | 112, 173, 210, 126, 9, 23, 209, 65, 14, 109, 16, 247, 254, 45, 170, 33, | ||
1718 | 143, 35, 107, 134, 51, 132, 135, 226, 40, 112, 156, 122, 5, 31, 37, 113, | ||
1719 | 24, 1, 153, 3, 180, 227, 249, 172, 93, 20, 79, 126, 42, 254, 100, 80, | ||
1720 | 86, 180, 123, 71, 213, 32, 178, 28, 63, 75, 177, 246, 25, 119, 33, 236, | ||
1721 | 194, 31, 94, 169, 97, 96, 42, 29, 165, 234, 199, 12, 76, 8, 242, 229, | ||
1722 | 160, 130, 169, 76, 120, 159, 25, 18, 36, 182, 222, 210, 105, 251, 2, 40, | ||
1723 | 111, 212, 249, 119, 48, 137, 50, 71, 146, 216, 47, 18, 60, 194, 18, 119, | ||
1724 | 197, 216, 84, 170, 143, 241, 61, 207, 206, 238, 51, 39, 145, 171, 81, 108, | ||
1725 | 64, 0, 229, 83, 190, 81, 149, 27, 77, 44, 34, 134, 178, 250, 9, 244, | ||
1726 | 128, 175, 124, 28, 41, 116, 254, 30, 162, 88, 207, 231, 222, 155, 224, 234, | ||
1727 | 201, 56, 119, 191, 190, 158, 195, 16, 153, 152, 99, 244, 60, 207, 205, 133, | ||
1728 | 34, 101, 0, 104, 144, 141, 121, 168, 44, 40, 234, 49, 35, 136, 39, 242, | ||
1729 | 14, 198, 188, 124, 161, 135, 113, 180, 68, 218, 10, 47, 223, 190, 0, 238, | ||
1730 | 109, 149, 149, 25, 14, 218, 109, 85, 106, 125, 45, 29, 63, 122, 74, 184, | ||
1731 | 39, 153, 72, 81, 69, 212, 62, 80, 161, 110, 103, 56, 254, 7, 198, 201, | ||
1732 | 47, 202, 145, 147, 115, 7, 252, 21, 157, 211, 102, 40, 117, 116, 41, 110, | ||
1733 | 189, 45, 41, 128, 46, 18, 40, 228, 43, 159, 202, 90, 114, 78, 193, 9, | ||
1734 | 237, 172, 59, 89, 50, 218, 47, 142, 139, 118, 146, 201, 8, 158, 116, 71, | ||
1735 | 133, 105, 177, 199, 24, 202, 219, 64, 136, 101, 162, 11, 225, 13, 60, 217, | ||
1736 | 13, 125, 9, 38, 224, 90, 78, 166, 145, 101, 167, 132, 24, 58, 73, 19, | ||
1737 | 2, 185, 83, 148, 110, 133, 191, 76, 71, 18, 168, 103, 0, 123, 195, 39, | ||
1738 | 41, 243, 215, 62, 38, 156, 101, 42, 144, 43, 125, 154, 46, 152, 74, 242, | ||
1739 | 251, 158, 180, 189, 228, 165, 64, 75, 220, 184, 160, 9, 23, 57, 138, 16, | ||
1740 | 88, 240, 5, 234, 106, 188, 171, 120, 55, 203, 43, 72, 33, 67, 129, 26, | ||
1741 | 242, 128, 89, 144, 226, 129, 58, 143, 110, 185, 216, 158, 238, 175, 34, 121, | ||
1742 | 59, 49, 76, 178, 81, 88, 181, 23, 219, 66, 1, 228, 34, 143, 250, 41, | ||
1743 | 77, 7, 245, 65, 3, 203, 53, 144, 140, 194, 71, 27, 10, 175, 218, 149, | ||
1744 | 242, 213, 150, 9, 199, 22, 202, 155, 5, 44, 23, 111, 102, 5, 150, 32, | ||
1745 | 62, 31, 220, 1, 129, 151, 109, 27, 215, 54, 235, 104, 157, 123, 8, 89, | ||
1746 | 94, 161, 197, 0, 163, 75, 124, 41, 240, 192, 109, 9, 202, 124, 25, 82, | ||
1747 | 95, 243, 170, 63, 91, 248, 4, 63, 47, 208, 243, 61, 85, 62, 107, 32, | ||
1748 | 87, 19, 208, 87, 120, 234, 108, 244, 44, 158, 238, 91, 185, 219, 105, 13, | ||
1749 | 254, 85, 208, 93, 148, 144, 160, 98, 237, 72, 27, 59, 119, 22, 99, 52, | ||
1750 | 193, 190, 57, 171, 46, 247, 180, 126, 30, 16, 200, 88, 35, 212, 215, 253, | ||
1751 | 218, 25, 96, 40, 44, 53, 29, 129, 153, 154, 197, 238, 84, 201, 244, 106, | ||
1752 | 184, 178, 127, 54, 198, 60, 160, 98, 4, 229, 110, 220, 225, 26, 254, 238, | ||
1753 | 123, 69, 248, 222, 43, 122, 207, 63, 166, 246, 171, 129, 231, 7, 89, 132, | ||
1754 | 245, 76, 55, 174, 184, 93, 139, 221, 250, 11, 86, 239, 248, 14, 98, 226, | ||
1755 | 66, 146, 45, 59, 106, 78, 6, 253, 6, 128, 53, 174, 7, 36, 100, 130, | ||
1756 | 22, 47, 157, 147, 27, 31, 15, 97, 122, 46, 137, 84, 126, 104, 48, 217, | ||
1757 | 236, 131, 51, 253, 147, 23, 35, 133, 43, 183, 124, 197, 150, 85, 170, 39, | ||
1758 | 96, 227, 44, 130, 51, 83, 224, 22, 177, 39, 65, 125, 98, 28, 162, 56, | ||
1759 | 25, 112, 81, 50, 28, 118, 184, 45, 236, 226, 87, 117, 111, 219, 157, 34, | ||
1760 | 224, 77, 68, 59, 91, 80, 177, 178, 188, 203, 247, 133, 130, 15, 61, 125, | ||
1761 | 252, 18, 201, 87, 157, 158, 47, 5, 151, 104, 231, 127, 161, 154, 172, 224, | ||
1762 | 74, 95, 195, 121, 175, 200, 18, 26, 240, 194, 222, 85, 189, 238, 106, 136, | ||
1763 | 195, 28, 170, 10, 115, 25, 236, 203, 127, 254, 103, 79, 175, 57, 159, 102, | ||
1764 | 193, 106, 136, 130, 195, 16, 19, 14, 240, 130, 74, 217, 154, 5, 217, 88, | ||
1765 | 21, 113, 205, 138, 241, 209, 39, 255, 182, 100, 41, 243, 199, 191, 7, 123, | ||
1766 | 185, 7, 186, 28, 32, 71, 236, 16, 220, 222, 5, 122, 74, 55, 95, 19, | ||
1767 | 230, 127, 201, 130, 180, 143, 142, 149, 229, 43, 81, 95, 32, 138, 165, 42, | ||
1768 | 136, 231, 106, 34, 90, 135, 60, 60, 105, 191, 50, 195, 62, 230, 189, 100, | ||
1769 | 41, 110, 61, 204, 139, 237, 185, 208, 136, 61, 249, 12, 20, 230, 48, 141, | ||
1770 | 65, 17, 204, 126, 215, 73, 77, 129, 49, 230, 39, 247, 222, 109, 50, 151, | ||
1771 | 255, 246, 141, 254, 233, 117, 156, 172, 113, 74, 72, 133, 218, 227, 4, 192, | ||
1772 | 27, 185, 21, 99, 61, 34, 52, 112, 74, 18, 149, 38, 195, 43, 154, 8, | ||
1773 | 16, 189, 142, 139, 167, 137, 2, 155, 165, 1, 255, 158, 107, 131, 141, 112, | ||
1774 | 87, 102, 97, 12, 228, 30, 143, 60, 14, 238, 183, 145, 88, 116, 187, 64, | ||
1775 | 138, 136, 138, 24, 16, 241, 126, 37, 103, 99, 203, 164, 198, 129, 140, 189, | ||
1776 | 18, 178, 241, 154, 7, 81, 8, 75, 196, 131, 121, 19, 52, 90, 125, 71, | ||
1777 | 179, 8, 102, 149, 117, 88, 2, 58, 115, 41, 254, 118, 205, 28, 244, 153, | ||
1778 | 79, 179, 136, 194, 59, 55, 233, 48, 87, 218, 151, 218, 172, 109, 72, 156, | ||
1779 | 112, 175, 129, 111, 124, 151, 112, 69, 175, 237, 175, 208, 35, 15, 70, 189, | ||
1780 | 245, 118, 229, 51, 121, 237, 106, 57, 190, 157, 42, 37, 107, 108, 240, 142, | ||
1781 | 180, 123, 58, 243, 99, 76, 153, 94, 235, 148, 3, 146, 198, 250, 3, 176, | ||
1782 | 73, 105, 64, 3, 129, 155, 69, 66, 114, 55, 53, 31, 200, 171, 9, 127, | ||
1783 | 227, 81, 238, 0, 29, 54, 79, 184, 213, 44, 21, 21, 106, 118, 193, 193, | ||
1784 | 132, 216, 89, 39, 107, 40, 29, 198, 229, 184, 123, 32, 225, 148, 78, 40, | ||
1785 | 236, 108, 100, 112, 139, 33, 176, 201, 41, 56, 180, 87, 100, 161, 247, 181, | ||
1786 | 48, 215, 32, 88, 3, 2, 69, 189, 162, 185, 155, 129, 131, 151, 170, 201, | ||
1787 | 203, 192, 141, 27, 38, 21, 174, 100, 48, 138, 216, 113, 123, 137, 161, 92, | ||
1788 | 153, 129, 184, 21, 205, 18, 190, 184, 189, 57, 130, 168, 67, 161, 16, 207, | ||
1789 | 223, 35, 254, 40, 169, 65, 104, 178, 164, 88, 198, 40, 58, 221, 211, 96, | ||
1790 | 91, 98, 147, 157, 193, 121, 211, 28, 185, 217, 84, 58, 236, 70, 181, 35, | ||
1791 | 58, 27, 111, 52, 213, 103, 93, 154, 18, 60, 201, 180, 29, 28, 85, 126, | ||
1792 | 170, 190, 231, 64, 27, 191, 83, 158, 125, 124, 43, 172, 198, 25, 151, 108, | ||
1793 | 116, 7, 164, 114, 92, 215, 197, 222, 31, 231, 41, 112, 42, 172, 207, 164, | ||
1794 | 87, 123, 138, 156, 78, 44, 131, 127, 155, 114, 138, 219, 52, 223, 150, 230, | ||
1795 | 94, 165, 103, 45, 139, 238, 161, 208, 117, 178, 225, 67, 90, 90, 110, 176, | ||
1796 | 20, 110, 4, 189, 194, 138, 12, 168, 150, 181, 139, 54, 241, 243, 87, 19, | ||
1797 | 136, 251, 68, 1, 239, 85, 161, 139, 67, 117, 239, 162, 214, 96, 205, 66, | ||
1798 | 79, 13, 47, 16, 72, 171, 33, 246, 93, 197, 65, 115, 108, 87, 83, 116, | ||
1799 | 49, 66, 34, 18, 101, 65, 24, 178, 147, 34, 61, 242, 51, 246, 191, 249, | ||
1800 | 164, 200, 210, 150, 146, 46, 157, 137, 147, 161, 25, 101, 217, 142, 125, 241, | ||
1801 | 73, 115, 83, 86, 208, 167, 233, 77, 109, 89, 197, 219, 108, 206, 54, 99, | ||
1802 | 113, 101, 77, 41, 251, 24, 203, 179, 28, 109, 62, 248, 113, 197, 82, 35, | ||
1803 | 89, 132, 11, 184, 194, 237, 142, 71, 81, 173, 36, 220, 103, 66, 254, 78, | ||
1804 | 252, 105, 211, 89, 149, 132, 218, 43, 45, 77, 64, 137, 248, 238, 145, 172, | ||
1805 | 64, 78, 123, 225, 161, 166, 202, 94, 210, 227, 36, 254, 153, 230, 23, 21, | ||
1806 | 82, 125, 167, 115, 10, 25, 141, 144, 226, 25, 151, 22, 157, 162, 2, 250, | ||
1807 | 16, 161, 48, 111, 121, 9, 191, 229, 41, 136, 83, 163, 165, 10, 195, 34, | ||
1808 | 56, 145, 166, 99, 184, 180, 180, 159, 95, 110, 17, 46, 227, 245, 97, 207, | ||
1809 | 27, 113, 121, 55, 196, 29, 248, 171, 108, 250, 236, 1, 31, 108, 15, 34, | ||
1810 | 233, 32, 250, 127, 67, 159, 151, 145, 5, 171, 219, 102, 159, 137, 231, 130, | ||
1811 | 229, 177, 209, 253, 150, 217, 76, 62, 111, 42, 25, 152, 169, 83, 245, 164, | ||
1812 | 127, 61, 128, 35, 234, 8, 69, 152, 103, 107, 18, 98, 101, 214, 205, 136, | ||
1813 | 68, 165, 54, 48, 189, 59, 29, 254, 128, 255, 249, 46, 23, 246, 29, 131, | ||
1814 | 185, 27, 160, 235, 16, 52, 232, 247, 100, 230, 137, 91, 111, 48, 202, 31, | ||
1815 | 126, 167, 162, 45, 159, 66, 215, 176, 32, 5, 255, 82, 108, 31, 184, 89, | ||
1816 | 6, 73, 8, 209, 86, 202, 122, 111, 132, 39, 140, 160, 74, 148, 254, 21, | ||
1817 | 33, 80, 180, 165, 241, 182, 74, 205, 243, 194, 17, 216, 113, 8, 239, 190, | ||
1818 | 34, 158, 31, 58, 223, 249, 51, 74, 174, 191, 157, 185, 12, 98, 190, 135, | ||
1819 | 91, 198, 25, 221, 76, 118, 88, 240, 184, 188, 70, 92, 36, 208, 124, 43, | ||
1820 | 228, 200, 86, 193, 178, 251, 115, 233, 240, 11, 134, 91, 230, 141, 195, 161, | ||
1821 | 255, 12, 103, 85, 187, 84, 129, 202, 48, 85, 155, 242, 226, 185, 109, 126, | ||
1822 | 2, 8, 174, 221, 203, 67, 182, 52, 114, 243, 219, 32, 89, 183, 125, 18, | ||
1823 | 209, 200, 99, 116, 123, 185, 17, 250, 250, 223, 129, 221, 147, 249, 142, 238, | ||
1824 | 25, 230, 85, 85, 141, 248, 144, 13, 241, 3, 10, 253, 74, 96, 82, 115, | ||
1825 | 210, 221, 17, 79, 213, 119, 27, 192, 55, 41, 161, 125, 167, 87, 45, 10, | ||
1826 | 246, 22, 76, 245, 83, 4, 160, 242, 62, 221, 89, 206, 80, 235, 33, 34, | ||
1827 | 81, 125, 28, 117, 233, 167, 89, 6, 132, 138, 130, 88, 227, 245, 44, 138, | ||
1828 | 180, 42, 215, 4, 177, 9, 167, 135, 173, 234, 185, 119, 100, 108, 4, 237, | ||
1829 | 145, 52, 227, 61, 231, 130, 77, 97, 204, 175, 136, 225, 27, 29, 36, 142, | ||
1830 | 151, 129, 170, 105, 233, 88, 57, 122, 219, 60, 16, 70, 253, 218, 123, 188, | ||
1831 | 49, 210, 121, 115, 150, 249, 213, 246, 76, 2, 197, 196, 24, 169, 143, 175, | ||
1832 | 230, 138, 32, 81, 191, 13, 166, 211, 252, 110, 84, 221, 244, 13, 45, 116, | ||
1833 | 242, 123, 18, 153, 163, 187, 46, 33, 28, 160, 219, 179, 85, 166, 2, 125, | ||
1834 | 92, 99, 147, 61, 4, 200, 245, 135, 172, 187, 4, 101, 102, 85, 79, 168, | ||
1835 | 53, 222, 129, 150, 252, 253, 252, 45, 39, 64, 33, 104, 69, 239, 180, 71, | ||
1836 | 234, 177, 245, 185, 59, 238, 88, 65, 58, 156, 84, 238, 150, 46, 236, 65, | ||
1837 | 229, 33, 221, 168, 102, 249, 163, 155, 36, 189, 54, 211, 154, 247, 69, 45, | ||
1838 | 47, 140, 119, 63, 143, 129, 163, 38, 120, 88, 216, 66, 117, 118, 176, 93, | ||
1839 | 153, 42, 129, 198, 45, 203, 26, 150, 43, 17, 53, 104, 196, 82, 234, 59, | ||
1840 | 129, 81, 14, 104, 229, 8, 204, 187, 8, 168, 112, 18, 211, 154, 195, 181, | ||
1841 | 87, 241, 234, 148, 68, 229, 231, 23, 134, 14, 97, 119, 22, 48, 123, 17, | ||
1842 | 115, 105, 180, 124, 135, 51, 177, 104, 187, 23, 210, 76, 161, 8, 36, 57, | ||
1843 | 218, 252, 142, 236, 154, 178, 119, 129, 189, 255, 208, 56, 25, 70, 68, 50, | ||
1844 | 57, 172, 77, 154, 163, 80, 33, 180, 118, 57, 105, 97, 5, 50, 158, 185, | ||
1845 | 226, 119, 237, 163, 47, 79, 233, 114, 160, 246, 93, 238, 197, 217, 240, 55, | ||
1846 | 121, 37, 138, 104, 245, 181, 30, 133, 129, 94, 97, 31, 188, 121, 119, 74, | ||
1847 | 227, 167, 196, 194, 108, 185, 63, 242, 0, 224, 8, 162, 49, 173, 57, 250, | ||
1848 | 12, 113, 238, 241, 0, 180, 180, 198, 57, 180, 248, 243, 214, 122, 103, 81, | ||
1849 | 205, 243, 232, 213, 39, 122, 142, 107, 4, 63, 123, 147, 22, 78, 174, 200, | ||
1850 | 33, 27, 16, 76, 139, 230, 32, 101, 246, 228, 246, 89, 15, 30, 11, 87, | ||
1851 | 174, 70, 195, 104, 14, 26, 209, 149, 19, 254, 121, 62, 186, 224, 56, 247, | ||
1852 | 10, 237, 102, 83, 215, 211, 22, 123, 161, 52, 251, 122, 142, 228, 191, 93, | ||
1853 | 151, 174, 176, 166, 64, 184, 254, 113, 140, 214, 109, 159, 126, 201, 95, 245, | ||
1854 | 167, 180, 165, 106, 61, 83, 143, 239, 68, 254, 0, 201, 237, 162, 231, 108, | ||
1855 | 152, 131, 248, 39, 149, 131, 80, 224, 41, 14, 157, 96, 16, 251, 139, 15, | ||
1856 | 153, 45, 29, 84, 116, 154, 221, 234, 127, 39, 10, 244, 3, 92, 154, 93, | ||
1857 | 125, 209, 252, 144, 73, 139, 47, 93, 98, 78, 7, 61, 173, 117, 46, 155, | ||
1858 | 73, 76, 127, 202, 5, 223, 113, 215, 86, 54, 82, 0, 105, 16, 52, 226, | ||
1859 | 140, 232, 53, 23, 76, 117, 212, 139, 183, 112, 95, 162, 174, 153, 104, 4, | ||
1860 | 241, 133, 159, 188, 4, 147, 92, 125, 133, 104, 26, 241, 130, 13, 239, 96, | ||
1861 | 235, 36, 195, 74, 193, 126, 54, 27, 55, 190, 97, 44, 26, 106, 31, 76, | ||
1862 | 244, 174, 179, 1, 97, 168, 114, 14, 65, 60, 199, 182, 133, 130, 65, 175, | ||
1863 | 95, 224, 125, 74, 157, 34, 99, 26, 135, 160, 188, 244, 114, 175, 211, 194, | ||
1864 | 74, 97, 182, 244, 93, 3, 219, 223, 154, 204, 10, 132, 233, 165, 23, 204, | ||
1865 | 187, 163, 179, 23, 72, 137, 22, 40, 123, 77, 216, 95, 44, 20, 55, 213, | ||
1866 | 165, 125, 17, 237, 77, 140, 2, 146, 193, 104, 9, 83, 40, 126, 177, 137, | ||
1867 | 53, 89, 59, 23, 49, 80, 240, 168, 70, 97, 250, 36, 161, 17, 228, 161, | ||
1868 | 136, 213, 43, 118, 106, 198, 251, 68, 223, 34, 79, 123, 118, 91, 222, 236, | ||
1869 | 73, 236, 175, 255, 248, 249, 96, 53, 245, 248, 238, 12, 106, 127, 183, 1, | ||
1870 | 31, 193, 14, 126, 7, 19, 252, 102, 191, 74, 208, 115, 140, 76, 133, 179, | ||
1871 | 82, 5, 83, 122, 154, 82, 37, 19, 171, 190, 177, 177, 233, 248, 175, 214, | ||
1872 | 93, 17, 121, 167, 249, 165, 149, 191, 145, 188, 218, 99, 154, 55, 109, 202, | ||
1873 | 12, 17, 56, 107, 124, 137, 156, 233, 85, 18, 237, 207, 9, 72, 10, 218, | ||
1874 | 98, 58, 70, 254, 207, 179, 61, 201, 250, 163, 135, 215, 130, 182, 47, 93, | ||
1875 | 123, 14, 251, 252, 34, 240, 172, 151, 111, 127, 19, 6, 165, 96, 254, 15, | ||
1876 | 32, 153, 247, 91, 200, 78, 169, 160, 28, 70, 146, 251, 174, 49, 54, 98, | ||
1877 | 93, 161, 19, 105, 195, 62, 196, 38, 84, 53, 122, 177, 158, 179, 113, 93, | ||
1878 | 91, 102, 90, 119, 52, 120, 247, 208, 228, 233, 97, 240, 187, 205, 14, 194, | ||
1879 | 35, 134, 229, 241, 16, 152, 130, 206, 63, 93, 110, 21, 52, 170, 67, 99, | ||
1880 | 214, 121, 230, 201, 133, 173, 143, 225, 81, 184, 139, 105, 226, 58, 237, 106, | ||
1881 | 16, 91, 163, 15, 4, 63, 94, 186, 80, 219, 85, 209, 183, 129, 122, 39, | ||
1882 | 8, 140, 180, 203, 167, 223, 148, 74, 147, 29, 237, 108, 105, 143, 229, 254, | ||
1883 | 104, 243, 111, 210, 11, 185, 158, 151, 90, 47, 43, 233, 91, 18, 119, 144, | ||
1884 | 184, 63, 64, 3, 244, 225, 30, 134, 198, 210, 41, 103, 2, 31, 221, 74, | ||
1885 | 26, 54, 18, 23, 242, 104, 39, 31, 167, 183, 209, 105, 192, 88, 219, 25, | ||
1886 | 134, 228, 8, 222, 149, 25, 195, 141, 61, 33, 114, 213, 93, 6, 58, 12, | ||
1887 | 191, 113, 216, 153, 39, 235, 173, 146, 34, 139, 210, 13, 59, 240, 88, 10, | ||
1888 | 71, 72, 27, 225, 32, 70, 92, 182, 120, 151, 82, 246, 248, 93, 119, 13, | ||
1889 | 199, 161, 48, 202, 84, 88, 226, 198, 249, 152, 165, 34, 183, 109, 9, 196, | ||
1890 | 232, 168, 236, 241, 85, 100, 181, 81, 235, 85, 247, 85, 173, 57, 141, 145, | ||
1891 | 116, 254, 146, 249, 161, 133, 245, 17, 117, 141, 208, 49, 245, 121, 181, 158, | ||
1892 | 144, 197, 200, 63, 202, 119, 158, 107, 112, 56, 178, 227, 29, 87, 48, 151, | ||
1893 | 228, 55, 194, 130, 52, 12, 35, 245, 171, 149, 90, 206, 151, 205, 184, 221, | ||
1894 | 45, 57, 126, 64, 203, 244, 167, 172, 134, 141, 5, 145, 101, 29, 33, 133, | ||
1895 | 90, 17, 64, 127, 152, 209, 78, 10, 131, 151, 157, 204, 231, 255, 164, 122, | ||
1896 | 16, 78, 220, 245, 161, 229, 90, 203, 12, 205, 95, 8, 47, 51, 92, 23, | ||
1897 | 118, 95, 211, 124, 116, 147, 74, 79, 10, 192, 217, 74, 80, 127, 17, 105, | ||
1898 | 56, 248, 144, 72, 197, 159, 230, 19, 147, 31, 50, 239, 236, 92, 237, 131, | ||
1899 | 159, 88, 99, 171, 76, 209, 41, 181, 194, 28, 3, 242, 137, 227, 20, 198, | ||
1900 | 120, 6, 12, 97, 45, 210, 143, 177, 60, 83, 61, 135, 132, 187, 54, 61, | ||
1901 | 82, 149, 193, 23, 45, 6, 95, 28, 167, 0, 67, 27, 17, 93, 241, 43, | ||
1902 | 221, 109, 102, 179, 204, 80, 198, 60, 229, 38, 47, 100, 235, 50, 166, 193, | ||
1903 | 79, 255, 71, 207, 116, 216, 201, 255, 134, 194, 201, 34, 169, 250, 28, 217, | ||
1904 | 198, 176, 10, 203, 193, 197, 125, 80, 116, 149, 108, 224, 10, 195, 68, 228, | ||
1905 | 218, 85, 146, 119, 67, 73, 118, 186, 171, 162, 86, 198, 176, 73, 41, 162, | ||
1906 | 237, 196, 130, 32, 231, 70, 197, 139, 140, 182, 151, 221, 55, 95, 183, 58, | ||
1907 | 43, 141, 160, 148, 193, 197, 162, 189, 62, 36, 226, 255, 214, 75, 166, 163, | ||
1908 | 78, 30, 253, 52, 8, 190, 55, 241, 60, 187, 226, 34, 177, 102, 155, 56, | ||
1909 | 165, 51, 183, 2, 181, 247, 125, 53, 36, 206, 73, 32, 19, 20, 204, 228, | ||
1910 | 105, 254, 34, 201, 161, 175, 232, 223, 216, 103, 247, 13, 68, 49, 206, 172, | ||
1911 | 122, 11, 17, 3, 55, 101, 94, 39, 18, 183, 214, 16, 149, 252, 137, 39, | ||
1912 | 205, 84, 114, 80, 101, 246, 222, 173, 145, 229, 199, 73, 91, 219, 123, 235, | ||
1913 | 45, 190, 39, 241, 146, 209, 124, 178, 151, 30, 19, 26, 112, 150, 192, 183, | ||
1914 | 237, 124, 253, 165, 28, 130, 132, 161, 157, 140, 159, 163, 87, 181, 211, 166, | ||
1915 | 233, 0, 180, 87, 125, 229, 173, 128, 90, 23, 38, 235, 143, 31, 117, 66, | ||
1916 | 203, 76, 150, 249, 19, 23, 45, 184, 56, 249, 220, 114, 205, 1, 215, 169, | ||
1917 | 205, 173, 58, 188, 128, 116, 122, 184, 48, 114, 95, 167, 3, 191, 136, 238, | ||
1918 | 124, 245, 166, 82, 191, 16, 212, 149, 183, 166, 14, 212, 255, 67, 106, 50, | ||
1919 | 159, 172, 211, 101, 207, 198, 242, 179, 40, 1, 73, 20, 64, 185, 29, 21, | ||
1920 | 216, 246, 154, 104, 156, 214, 231, 192, 137, 220, 150, 215, 4, 80, 110, 164, | ||
1921 | 185, 68, 114, 110, 234, 45, 143, 171, 196, 148, 151, 237, 16, 251, 68, 221, | ||
1922 | 100, 18, 212, 110, 59, 147, 113, 217, 152, 28, 83, 198, 211, 231, 35, 39, | ||
1923 | 198, 19, 163, 67, 40, 24, 124, 52, 138, 161, 254, 233, 90, 24, 214, 222, | ||
1924 | 121, 189, 95, 180, 77, 147, 21, 187, 111, 9, 184, 75, 209, 250, 81, 110, | ||
1925 | 34, 97, 198, 132, 182, 229, 192, 208, 67, 98, 124, 108, 141, 89, 37, 124, | ||
1926 | 11, 5, 128, 76, 13, 220, 167, 201, 182, 151, 45, 235, 37, 142, 35, 192, | ||
1927 | 28, 209, 254, 40, 15, 22, 183, 181, 138, 144, 72, 21, 48, 9, 133, 127, | ||
1928 | 74, 187, 19, 170, 88, 209, 119, 194, 230, 243, 237, 156, 184, 156, 46, 118, | ||
1929 | 58, 7, 139, 163, 157, 167, 65, 249, 102, 228, 201, 27, 255, 189, 54, 151, | ||
1930 | 168, 108, 129, 113, 106, 245, 244, 158, 176, 247, 193, 161, 94, 248, 190, 38, | ||
1931 | 208, 177, 246, 108, 158, 199, 56, 37, 141, 101, 102, 44, 109, 144, 23, 214, | ||
1932 | 235, 251, 210, 184, 103, 145, 248, 118, 162, 139, 84, 61, 146, 29, 70, 170, | ||
1933 | 80, 30, 145, 156, 202, 185, 222, 87, 247, 137, 153, 98, 166, 61, 173, 200, | ||
1934 | 164, 40, 2, 137, 226, 66, 162, 24, 172, 46, 203, 80, 176, 156, 93, 26, | ||
1935 | 48, 69, 130, 192, 129, 84, 70, 15, 25, 224, 175, 31, 161, 110, 61, 220, | ||
1936 | 214, 220, 152, 22, 41, 51, 57, 114, 182, 139, 129, 159, 194, 169, 133, 246, | ||
1937 | 37, 23, 79, 90, 88, 231, 6, 252, 101, 241, 250, 168, 71, 149, 252, 196, | ||
1938 | 126, 2, 29, 177, 70, 218, 120, 203, 72, 243, 46, 45, 149, 57, 108, 37, | ||
1939 | 198, 38, 177, 210, 32, 252, 227, 160, 77, 174, 211, 207, 212, 82, 139, 189, | ||
1940 | 79, 198, 116, 165, 185, 49, 188, 43, 116, 230, 182, 34, 224, 138, 216, 93, | ||
1941 | 93, 94, 175, 10, 217, 41, 209, 177, 36, 142, 205, 241, 34, 129, 8, 91, | ||
1942 | 78, 210, 231, 166, 188, 18, 77, 139, 201, 203, 3, 154, 131, 8, 193, 207, | ||
1943 | 255, 98, 166, 192, 215, 206, 236, 217, 9, 19, 78, 227, 105, 146, 56, 50, | ||
1944 | 60, 114, 20, 239, 186, 119, 113, 183, 79, 186, 126, 223, 131, 30, 217, 249, | ||
1945 | 82, 10, 188, 238, 161, 46, 174, 96, 6, 187, 251, 234, 62, 163, 213, 55, | ||
1946 | 71, 253, 25, 193, 26, 176, 111, 20, 167, 220, 240, 78, 243, 42, 104, 194, | ||
1947 | 0, 62, 53, 119, 199, 9, 202, 20, 164, 55, 155, 204, 107, 120, 180, 6, | ||
1948 | 20, 114, 122, 130, 143, 124, 89, 130, 66, 140, 43, 183, 203, 216, 78, 86, | ||
1949 | 178, 16, 226, 159, 192, 205, 105, 113, 138, 165, 108, 18, 214, 100, 154, 71, | ||
1950 | 150, 46, 70, 178, 181, 68, 68, 160, 253, 18, 19, 220, 253, 207, 87, 105, | ||
1951 | 32, 239, 229, 137, 155, 176, 139, 168, 248, 143, 86, 67, 224, 146, 17, 80, | ||
1952 | 147, 87, 30, 168, 125, 169, 91, 59, 55, 169, 142, 226, 71, 181, 114, 40, | ||
1953 | 231, 229, 155, 27, 31, 144, 166, 96, 9, 85, 90, 152, 25, 83, 113, 15, | ||
1954 | 65, 106, 162, 151, 74, 7, 27, 188, 221, 150, 108, 96, 102, 233, 174, 208, | ||
1955 | 9, 170, 159, 239, 67, 230, 187, 93, 141, 102, 218, 191, 48, 22, 53, 124, | ||
1956 | 84, 96, 110, 43, 28, 126, 26, 32, 104, 104, 65, 99, 112, 207, 167, 54, | ||
1957 | 175, 165, 152, 105, 234, 18, 138, 148, 101, 9, 87, 32, 155, 192, 7, 100, | ||
1958 | 101, 72, 133, 203, 170, 248, 222, 190, 243, 0, 75, 100, 38, 52, 98, 125, | ||
1959 | 66, 185, 104, 255, 8, 184, 116, 195, 32, 239, 213, 54, 28, 185, 96, 177, | ||
1960 | 233, 30, 210, 25, 155, 28, 128, 53, 88, 101, 146, 68, 52, 60, 55, 183, | ||
1961 | 171, 157, 207, 128, 53, 60, 22, 100, 53, 121, 124, 205, 163, 55, 82, 162, | ||
1962 | 96, 99, 71, 184, 243, 169, 137, 77, 191, 16, 55, 59, 220, 197, 20, 4, | ||
1963 | 61, 89, 4, 157, 96, 171, 145, 91, 145, 19, 36, 195, 42, 132, 152, 83, | ||
1964 | 255, 137, 64, 37, 72, 190, 82, 29, 181, 41, 175, 144, 46, 229, 236, 217, | ||
1965 | 105, 194, 7, 118, 19, 47, 151, 238, 222, 255, 183, 236, 181, 175, 135, 91, | ||
1966 | 55, 163, 4, 156, 190, 18, 153, 21, 178, 51, 102, 36, 62, 253, 228, 12, | ||
1967 | 102, 230, 138, 183, 182, 253, 54, 170, 251, 50, 107, 223, 180, 177, 74, 169, | ||
1968 | 231, 208, 76, 47, 146, 158, 251, 181, 9, 219, 240, 169, 72, 250, 241, 125, | ||
1969 | 86, 200, 125, 166, 137, 65, 115, 18, 68, 241, 124, 51, 128, 223, 113, 239, | ||
1970 | 201, 221, 152, 21, 114, 127, 79, 101, 44, 48, 241, 21, 221, 91, 240, 214, | ||
1971 | 166, 119, 140, 21, 143, 155, 172, 26, 207, 233, 0, 128, 118, 45, 22, 6, | ||
1972 | 222, 75, 90, 99, 173, 214, 121, 53, 71, 183, 253, 19, 95, 71, 66, 16, | ||
1973 | 41, 35, 195, 9, 93, 247, 42, 150, 49, 46, 229, 73, 220, 12, 230, 51, | ||
1974 | 109, 147, 108, 124, 102, 83, 78, 75, 67, 141, 55, 246, 155, 195, 190, 56, | ||
1975 | 116, 59, 185, 237, 104, 78, 66, 173, 165, 178, 32, 93, 14, 10, 46, 30, | ||
1976 | 229, 108, 50, 52, 188, 2, 244, 142, 201, 8, 245, 53, 210, 132, 15, 184, | ||
1977 | 82, 85, 156, 142, 35, 49, 39, 183, 58, 61, 96, 143, 60, 190, 41, 152, | ||
1978 | 9, 183, 127, 90, 157, 109, 196, 76, 36, 177, 244, 173, 63, 233, 1, 16, | ||
1979 | 110, 216, 203, 94, 245, 195, 71, 55, 161, 149, 230, 122, 159, 133, 143, 180, | ||
1980 | 129, 6, 111, 56, 211, 30, 13, 142, 216, 122, 87, 69, 91, 233, 254, 4, | ||
1981 | 232, 207, 157, 32, 113, 50, 227, 233, 158, 171, 38, 228, 191, 121, 56, 165, | ||
1982 | 222, 22, 180, 217, 111, 104, 112, 134, 12, 22, 244, 44, 234, 34, 253, 217, | ||
1983 | 212, 140, 93, 235, 36, 54, 4, 129, 32, 91, 197, 163, 24, 71, 133, 161, | ||
1984 | 111, 114, 29, 19, 45, 100, 10, 207, 139, 158, 219, 206, 160, 248, 94, 12, | ||
1985 | 241, 58, 118, 141, 115, 166, 177, 78, 173, 59, 85, 81, 97, 240, 154, 231, | ||
1986 | 79, 200, 199, 195, 205, 98, 245, 129, 246, 217, 97, 209, 249, 194, 28, 179, | ||
1987 | 49, 248, 14, 6, 128, 61, 178, 15, 190, 32, 251, 111, 225, 148, 0, 11, | ||
1988 | 227, 246, 146, 46, 41, 231, 24, 80, 43, 174, 228, 166, 171, 206, 72, 142, | ||
1989 | 253, 96, 242, 181, 31, 207, 95, 66, 88, 152, 165, 67, 7, 238, 23, 114, | ||
1990 | 50, 224, 212, 241, 202, 224, 247, 70, 215, 162, 8, 237, 121, 169, 254, 191, | ||
1991 | 30, 19, 72, 252, 3, 109, 5, 206, 105, 130, 69, 250, 250, 232, 135, 203, | ||
1992 | 253, 77, 102, 203, 40, 72, 128, 223, 60, 59, 83, 103, 162, 117, 47, 200, | ||
1993 | 65, 88, 43, 168, 168, 255, 46, 166, 86, 193, 231, 227, 92, 222, 186, 44, | ||
1994 | 20, 166, 136, 123, 193, 88, 155, 166, 185, 73, 85, 124, 253, 80, 43, 176, | ||
1995 | 173, 191, 2, 10, 50, 101, 143, 17, 129, 56, 191, 83, 103, 183, 143, 247, | ||
1996 | 253, 161, 1, 76, 161, 76, 127, 194, 108, 88, 138, 152, 147, 164, 65, 147, | ||
1997 | 61, 160, 192, 44, 56, 103, 144, 51, 153, 224, 38, 97, 173, 128, 34, 85, | ||
1998 | 89, 143, 17, 239, 200, 47, 160, 2, 151, 249, 219, 208, 116, 71, 205, 72, | ||
1999 | 210, 178, 205, 184, 207, 19, 37, 127, 183, 21, 229, 176, 91, 196, 203, 225, | ||
2000 | 67, 189, 94, 214, 180, 203, 140, 186, 39, 250, 66, 3, 128, 35, 206, 43, | ||
2001 | 67, 244, 207, 157, 165, 188, 201, 173, 43, 47, 210, 139, 254, 144, 218, 62, | ||
2002 | 55, 6, 187, 32, 128, 206, 56, 74, 66, 42, 159, 171, 108, 56, 220, 246, | ||
2003 | 127, 127, 32, 221, 190, 33, 91, 93, 88, 36, 51, 115, 93, 47, 203, 133, | ||
2004 | 155, 166, 13, 124, 118, 56, 182, 202, 55, 224, 226, 36, 233, 9, 200, 217, | ||
2005 | 249, 22, 252, 209, 179, 66, 32, 30, 129, 48, 186, 232, 66, 248, 197, 120, | ||
2006 | 168, 191, 124, 16, 232, 117, 44, 125, 188, 157, 71, 35, 245, 219, 17, 111, | ||
2007 | 41, 159, 96, 44, 233, 3, 105, 109, 199, 182, 42, 34, 87, 218, 48, 142, | ||
2008 | 196, 99, 37, 89, 44, 173, 184, 160, 104, 203, 224, 230, 58, 60, 213, 132, | ||
2009 | 9, 9, 253, 251, 72, 75, 235, 224, 20, 198, 208, 178, 42, 253, 126, 105, | ||
2010 | 227, 171, 89, 93, 42, 222, 185, 232, 8, 248, 83, 78, 132, 37, 38, 173, | ||
2011 | 67, 116, 185, 216, 47, 192, 196, 221, 172, 26, 5, 191, 41, 33, 114, 40, | ||
2012 | 139, 22, 147, 173, 234, 41, 252, 118, 244, 73, 73, 237, 42, 6, 123, 228, | ||
2013 | 213, 210, 202, 65, 195, 253, 112, 57, 202, 85, 247, 15, 160, 237, 138, 76, | ||
2014 | 70, 94, 230, 163, 112, 217, 134, 78, 213, 55, 68, 198, 29, 195, 16, 138, | ||
2015 | 162, 19, 34, 158, 144, 131, 64, 244, 80, 85, 63, 175, 47, 63, 233, 175, | ||
2016 | 168, 190, 39, 4, 47, 200, 9, 161, 248, 198, 182, 166, 56, 23, 5, 121, | ||
2017 | 188, 46, 90, 56, 216, 72, 203, 107, 212, 171, 110, 134, 255, 24, 243, 30, | ||
2018 | 188, 55, 111, 8, 238, 198, 201, 180, 150, 230, 191, 248, 10, 82, 178, 247, | ||
2019 | 114, 216, 83, 183, 24, 188, 131, 26, 246, 210, 42, 30, 111, 181, 215, 129, | ||
2020 | 41, 21, 207, 15, 83, 86, 252, 169, 220, 246, 117, 114, 254, 143, 193, 60, | ||
2021 | 123, 226, 202, 18, 77, 221, 135, 84, 180, 229, 79, 143, 241, 219, 217, 85, | ||
2022 | 158, 63, 5, 245, 134, 63, 102, 68, 145, 100, 35, 13, 127, 241, 76, 211, | ||
2023 | 204, 45, 125, 175, 128, 142, 244, 189, 203, 138, 63, 249, 2, 174, 167, 171, | ||
2024 | 32, 131, 12, 250, 248, 198, 245, 3, 98, 4, 111, 244, 226, 122, 136, 58, | ||
2025 | 189, 234, 244, 106, 117, 92, 97, 191, 247, 95, 114, 20, 151, 51, 67, 174, | ||
2026 | 236, 109, 252, 215, 107, 183, 174, 254, 59, 22, 158, 203, 152, 194, 135, 200, | ||
2027 | 61, 193, 249, 199, 24, 167, 119, 223, 205, 135, 112, 51, 118, 120, 253, 75, | ||
2028 | 61, 101, 172, 213, 36, 226, 135, 54, 229, 214, 151, 9, 2, 197, 84, 22, | ||
2029 | 207, 55, 182, 191, 53, 243, 63, 53, 13, 93, 121, 44, 174, 237, 192, 138, | ||
2030 | 116, 208, 200, 134, 94, 34, 122, 110, 157, 231, 169, 177, 180, 203, 167, 125, | ||
2031 | 73, 44, 57, 104, 204, 174, 36, 172, 47, 21, 36, 220, 92, 62, 191, 77, | ||
2032 | 113, 5, 32, 8, 115, 61, 235, 237, 27, 76, 69, 187, 117, 72, 26, 49, | ||
2033 | 217, 249, 130, 134, 139, 27, 229, 183, 146, 80, 3, 154, 25, 26, 52, 175, | ||
2034 | 157, 1, 91, 126, 165, 6, 168, 134, 60, 32, 227, 68, 161, 126, 207, 247, | ||
2035 | 160, 103, 105, 156, 129, 211, 220, 155, 222, 60, 184, 255, 149, 9, 116, 201, | ||
2036 | 151, 42, 126, 0, 36, 167, 178, 40, 160, 5, 115, 82, 176, 207, 38, 10, | ||
2037 | 213, 132, 57, 255, 138, 4, 204, 32, 33, 128, 174, 99, 94, 161, 237, 0, | ||
2038 | 230, 209, 198, 89, 167, 80, 193, 116, 195, 111, 204, 241, 169, 46, 117, 108, | ||
2039 | 244, 247, 12, 216, 106, 50, 242, 209, 61, 42, 214, 33, 25, 38, 138, 217, | ||
2040 | 225, 105, 76, 244, 126, 252, 253, 57, 238, 107, 166, 158, 250, 132, 105, 91, | ||
2041 | 184, 209, 217, 5, 202, 84, 254, 51, 233, 58, 2, 141, 130, 47, 97, 125, | ||
2042 | 244, 95, 177, 68, 9, 213, 115, 118, 215, 70, 9, 64, 113, 139, 19, 165, | ||
2043 | 231, 204, 191, 129, 15, 235, 143, 225, 241, 75, 168, 227, 126, 58, 201, 98, | ||
2044 | 16, 227, 27, 148, 166, 1, 34, 110, 84, 120, 11, 181, 150, 111, 167, 184, | ||
2045 | 49, 244, 231, 192, 44, 59, 41, 122, 58, 12, 185, 180, 54, 122, 106, 201, | ||
2046 | 2, 65, 118, 129, 149, 139, 31, 201, 205, 90, 96, 76, 23, 43, 218, 15, | ||
2047 | 233, 202, 103, 84, 18, 122, 25, 218, 38, 252, 222, 104, 172, 96, 30, 57, | ||
2048 | 205, 130, 106, 183, 189, 230, 67, 63, 162, 142, 46, 199, 45, 244, 3, 26, | ||
2049 | 208, 119, 15, 16, 29, 196, 178, 90, 41, 94, 193, 64, 51, 205, 136, 157 | ||
2050 | }; | ||
2051 | |||
diff --git a/baseline/source/rijndael_dec/rijndael_dec.c b/baseline/source/rijndael_dec/rijndael_dec.c new file mode 100644 index 0000000..4082eff --- /dev/null +++ b/baseline/source/rijndael_dec/rijndael_dec.c | |||
@@ -0,0 +1,195 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: rijndael_enc | ||
7 | |||
8 | Author: Dr Brian Gladman | ||
9 | |||
10 | Function: rijndael_dec is an implementation of the AES decryption | ||
11 | algorithm (Rijndael). | ||
12 | |||
13 | Source: security section of MiBench | ||
14 | |||
15 | Changes: Add computation of a checksum, refactoring | ||
16 | |||
17 | License: see below | ||
18 | |||
19 | */ | ||
20 | |||
21 | /* | ||
22 | ----------------------------------------------------------------------- | ||
23 | Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK | ||
24 | |||
25 | TERMS | ||
26 | |||
27 | Redistribution and use in source and binary forms, with or without | ||
28 | modification, are permitted provided that the following conditions | ||
29 | are met: | ||
30 | 1. Redistributions of source code must retain the above copyright | ||
31 | notice, this list of conditions and the following disclaimer. | ||
32 | 2. Redistributions in binary form must reproduce the above copyright | ||
33 | notice, this list of conditions and the following disclaimer in the | ||
34 | documentation and/or other materials provided with the distribution. | ||
35 | |||
36 | This software is provided 'as is' with no guarantees of correctness or | ||
37 | fitness for purpose. | ||
38 | ----------------------------------------------------------------------- | ||
39 | */ | ||
40 | |||
41 | #include "../extra.h" | ||
42 | #include "aes.h" | ||
43 | #include "rijndael_dec_libc.h" | ||
44 | |||
45 | /* | ||
46 | Global variable definitions | ||
47 | */ | ||
48 | unsigned char rijndael_dec_key[32]; | ||
49 | int rijndael_dec_key_len; | ||
50 | |||
51 | extern unsigned char rijndael_dec_data[]; | ||
52 | struct rijndael_dec_FILE rijndael_dec_fin; | ||
53 | |||
54 | int rijndael_dec_checksum = 0; | ||
55 | |||
56 | /* | ||
57 | Forward declaration of functions | ||
58 | */ | ||
59 | void rijndael_dec_init( void ); | ||
60 | int rijndael_dec_return( void ); | ||
61 | void rijndael_dec_fillrand( unsigned char *buf, int len ); | ||
62 | void rijndael_dec_decfile( struct rijndael_dec_FILE *fin, struct aes *ctx ); | ||
63 | void rijndael_dec_main( void ); | ||
64 | |||
65 | void rijndael_dec_init( void ) | ||
66 | { | ||
67 | /* create a pseudo-file for the input*/ | ||
68 | rijndael_dec_fin.data = rijndael_dec_data; | ||
69 | rijndael_dec_fin.size = 32768; | ||
70 | rijndael_dec_fin.cur_pos = 0; | ||
71 | |||
72 | unsigned i; | ||
73 | volatile int x = 0; | ||
74 | rijndael_dec_fin.size ^= x; | ||
75 | _Pragma( "loopbound min 32768 max 32768" ) | ||
76 | for ( i = 0; i < rijndael_dec_fin.size; i++ ) | ||
77 | rijndael_dec_fin.data[i] ^= x; | ||
78 | |||
79 | /* this is a pointer to the hexadecimal key digits */ | ||
80 | const volatile char *cp = | ||
81 | "1234567890abcdeffedcba09876543211234567890abcdeffedcba0987654321"; | ||
82 | char ch; | ||
83 | int by = 0; | ||
84 | |||
85 | i = 0; /* this is a count for the input digits processed */ | ||
86 | _Pragma( "loopbound min 64 max 64" ) | ||
87 | while ( i < 64 && *cp ) { /* the maximum key length is 32 bytes and */ | ||
88 | /* hence at most 64 hexadecimal digits */ | ||
89 | ch = rijndael_dec_toupper( *cp++ ); /* process a hexadecimal digit */ | ||
90 | if ( ch >= '0' && ch <= '9' ) | ||
91 | by = ( by << 4 ) + ch - '0'; | ||
92 | else | ||
93 | if ( ch >= 'A' && ch <= 'F' ) | ||
94 | by = ( by << 4 ) + ch - 'A' + 10; | ||
95 | else { /* error if not hexadecimal */ | ||
96 | rijndael_dec_checksum = -2; | ||
97 | return; | ||
98 | } | ||
99 | |||
100 | /* store a key byte for each pair of hexadecimal digits */ | ||
101 | if ( i++ & 1 ) | ||
102 | rijndael_dec_key[i / 2 - 1] = by & 0xff; | ||
103 | } | ||
104 | |||
105 | if ( *cp ) { | ||
106 | rijndael_dec_checksum = -3; | ||
107 | return; | ||
108 | } else | ||
109 | if ( i < 32 || ( i & 15 ) ) { | ||
110 | rijndael_dec_checksum = -4; | ||
111 | return; | ||
112 | } | ||
113 | |||
114 | rijndael_dec_key_len = i / 2; | ||
115 | } | ||
116 | |||
117 | int rijndael_dec_return( void ) | ||
118 | { | ||
119 | return ( ( rijndael_dec_checksum == ( int )262180 ) ? 0 : -1 ); | ||
120 | } | ||
121 | |||
122 | void rijndael_dec_decfile( struct rijndael_dec_FILE *fin, struct aes *ctx ) | ||
123 | { | ||
124 | unsigned char inbuf1[16], inbuf2[16], outbuf[16], *bp1, *bp2, *tp; | ||
125 | int i; | ||
126 | |||
127 | |||
128 | rijndael_dec_fread( inbuf1, 1, 16, fin ); | ||
129 | |||
130 | i = rijndael_dec_fread( inbuf2, 1, 16, | ||
131 | fin ); /* read 1st encrypted file block */ | ||
132 | |||
133 | if ( i && i != 16 ) { | ||
134 | rijndael_dec_checksum = -10; | ||
135 | return; | ||
136 | } | ||
137 | |||
138 | rijndael_dec_decrypt( inbuf2, outbuf, | ||
139 | ctx ); /* decrypt it */ | ||
140 | |||
141 | rijndael_dec_checksum += outbuf[15]; | ||
142 | |||
143 | _Pragma( "loopbound min 16 max 16" ) | ||
144 | for ( i = 0; i < 16; ++i ) /* xor with previous input */ | ||
145 | outbuf[i] ^= inbuf1[i]; | ||
146 | |||
147 | bp1 = inbuf1; /* set up pointers to two input buffers */ | ||
148 | bp2 = inbuf2; | ||
149 | |||
150 | /* TODO: this is necessarily an input-dependent loop bound */ | ||
151 | _Pragma( "loopbound min 19491 max 91491" ) | ||
152 | while ( 1 ) { | ||
153 | i = rijndael_dec_fread( bp1, 1, 16, fin ); /* read next encrypted block */ | ||
154 | /* to first input buffer */ | ||
155 | if ( i != 16 ) /* no more bytes in input - the decrypted */ | ||
156 | break; /* partial final buffer needs to be output */ | ||
157 | |||
158 | /* if a block has been read the previous block must have been */ | ||
159 | /* full lnegth so we can now write it out */ | ||
160 | |||
161 | rijndael_dec_decrypt( bp1, outbuf, ctx ); /* decrypt the new input block and */ | ||
162 | |||
163 | rijndael_dec_checksum += outbuf[15]; | ||
164 | |||
165 | _Pragma( "loopbound min 16 max 16" ) | ||
166 | for ( i = 0; i < 16; ++i ) /* xor it with previous input block */ | ||
167 | outbuf[i] ^= bp2[i]; | ||
168 | |||
169 | /* swap buffer pointers */ | ||
170 | tp = bp1, bp1 = bp2, bp2 = tp; | ||
171 | } | ||
172 | } | ||
173 | |||
174 | void _Pragma( "entrypoint" ) rijndael_dec_main( void ) | ||
175 | { | ||
176 | struct aes ctx[1]; | ||
177 | |||
178 | /* decryption in Cipher Block Chaining mode */ | ||
179 | rijndael_dec_set_key( rijndael_dec_key, rijndael_dec_key_len, dec, ctx ); | ||
180 | rijndael_dec_decfile( &rijndael_dec_fin, ctx ); | ||
181 | } | ||
182 | |||
183 | int main(int argc, char** argv) | ||
184 | { | ||
185 | SET_UP | ||
186 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
187 | START_LOOP | ||
188 | rijndael_dec_init(); | ||
189 | rijndael_dec_main(); | ||
190 | STOP_LOOP | ||
191 | } | ||
192 | WRITE_TO_FILE | ||
193 | return ( rijndael_dec_return() ); | ||
194 | } | ||
195 | |||
diff --git a/baseline/source/rijndael_dec/rijndael_dec_libc.c b/baseline/source/rijndael_dec/rijndael_dec_libc.c new file mode 100644 index 0000000..00390df --- /dev/null +++ b/baseline/source/rijndael_dec/rijndael_dec_libc.c | |||
@@ -0,0 +1,66 @@ | |||
1 | #include "rijndael_dec_libc.h" | ||
2 | |||
3 | int rijndael_dec_toupper( int c ) | ||
4 | { | ||
5 | if ( ( c >= 'a' ) && ( c <= 'z' ) ) | ||
6 | return c - 'a' + 'A'; | ||
7 | return c; | ||
8 | } | ||
9 | |||
10 | unsigned long rijndael_dec_fread( void *ptr, unsigned long size, | ||
11 | unsigned long count, struct rijndael_dec_FILE *stream ) | ||
12 | { | ||
13 | unsigned i = stream->cur_pos, i2 = 0; | ||
14 | unsigned long number_of_chars_to_read = | ||
15 | stream->size - stream->cur_pos >= size * count ? | ||
16 | size * count : stream->size - stream->cur_pos; | ||
17 | _Pragma( "loopbound min 10 max 16" ) | ||
18 | while ( i < stream->cur_pos + number_of_chars_to_read ) | ||
19 | ( ( unsigned char * )ptr )[i2++] = stream->data[i++]; | ||
20 | stream->cur_pos += number_of_chars_to_read; | ||
21 | return number_of_chars_to_read; | ||
22 | } | ||
23 | |||
24 | unsigned long rijndael_dec_fwrite( const void *ptr, unsigned long size, | ||
25 | unsigned long count, struct rijndael_dec_FILE *stream ) | ||
26 | { | ||
27 | unsigned i = stream->cur_pos, i2 = 0; | ||
28 | unsigned long number_of_chars_to_write = | ||
29 | stream->size - stream->cur_pos >= size * count ? | ||
30 | size * count : stream->size - stream->cur_pos; | ||
31 | _Pragma( "loopbound min 0 max 0" ) | ||
32 | while ( i < stream->cur_pos + number_of_chars_to_write ) | ||
33 | stream->data[i++] = ( ( unsigned char * )ptr )[i2++]; | ||
34 | stream->cur_pos += number_of_chars_to_write; | ||
35 | return number_of_chars_to_write; | ||
36 | } | ||
37 | |||
38 | int rijndael_dec_fseek( struct rijndael_dec_FILE *stream, long int offset, | ||
39 | Origin origin ) | ||
40 | { | ||
41 | if ( origin == RIJNDAEL_DEC_SEEK_SET ) { | ||
42 | stream->cur_pos = offset; | ||
43 | return 0; | ||
44 | } else | ||
45 | if ( origin == RIJNDAEL_DEC_SEEK_CUR ) { | ||
46 | stream->cur_pos += offset; | ||
47 | return 0; | ||
48 | } else | ||
49 | if ( origin == RIJNDAEL_DEC_SEEK_END ) { | ||
50 | stream->cur_pos = stream->size + offset; | ||
51 | return 0; | ||
52 | } | ||
53 | return -1; | ||
54 | } | ||
55 | |||
56 | int rijndael_dec_fgetpos( struct rijndael_dec_FILE *stream, | ||
57 | unsigned *position ) | ||
58 | { | ||
59 | *position = stream->cur_pos; | ||
60 | return 0; | ||
61 | } | ||
62 | |||
63 | int rijndael_dec_feof( struct rijndael_dec_FILE *stream ) | ||
64 | { | ||
65 | return stream->cur_pos == stream->size ? 1 : 0; | ||
66 | } | ||
diff --git a/baseline/source/rijndael_dec/rijndael_dec_libc.h b/baseline/source/rijndael_dec/rijndael_dec_libc.h new file mode 100644 index 0000000..eb7b8d6 --- /dev/null +++ b/baseline/source/rijndael_dec/rijndael_dec_libc.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef RIJNDAEL_DEC_LIBC_H | ||
2 | #define RIJNDAEL_DEC_LIBC_H | ||
3 | |||
4 | int rijndael_dec_toupper ( int c ); | ||
5 | |||
6 | enum _Origin_ { RIJNDAEL_DEC_SEEK_SET, RIJNDAEL_DEC_SEEK_CUR, RIJNDAEL_DEC_SEEK_END }; | ||
7 | typedef enum _Origin_ Origin; | ||
8 | struct rijndael_dec_FILE { | ||
9 | unsigned char *data; | ||
10 | unsigned long size; | ||
11 | unsigned cur_pos; | ||
12 | }; | ||
13 | |||
14 | unsigned long rijndael_dec_fread ( void *ptr, unsigned long size, | ||
15 | unsigned long count, struct rijndael_dec_FILE *stream ); | ||
16 | unsigned long rijndael_dec_fwrite ( const void *ptr, unsigned long size, | ||
17 | unsigned long count, struct rijndael_dec_FILE *stream ); | ||
18 | int rijndael_dec_fseek ( struct rijndael_dec_FILE *stream, long int offset, | ||
19 | Origin origin ); | ||
20 | int rijndael_dec_fgetpos( struct rijndael_dec_FILE *stream, | ||
21 | unsigned *position ); | ||
22 | int rijndael_dec_feof ( struct rijndael_dec_FILE *stream ); | ||
23 | |||
24 | #endif // RIJNDAEL_DEC_LIBC_H | ||
diff --git a/baseline/source/rijndael_enc/ChangeLog.txt b/baseline/source/rijndael_enc/ChangeLog.txt new file mode 100644 index 0000000..6ea9ed4 --- /dev/null +++ b/baseline/source/rijndael_enc/ChangeLog.txt | |||
@@ -0,0 +1,98 @@ | |||
1 | File: rijndael_encoder.c | ||
2 | Source: security section of MiBench | ||
3 | |||
4 | 2016-02-26: | ||
5 | - Remove commented-out code | ||
6 | - Prefix functions with "rijndael_enc" | ||
7 | - Compute a checksum and return it from main | ||
8 | - Change return type of rijndael_enc_encfile to void | ||
9 | - Move functionality from function main into functions | ||
10 | rijndael_enc_init, rijndael_enc_main, and rijndael_enc_return | ||
11 | - Reordered functions in source code: initialization- and | ||
12 | return-value-related functions first, followed by algorithm core | ||
13 | functions, followed by main functions | ||
14 | - Added function prototypes | ||
15 | - Applied code formatting with astyle as in the example | ||
16 | - Added general TACLeBench header to beginning of source code | ||
17 | - Rename to rijndael_enc.c | ||
18 | |||
19 | 2016-03-15: | ||
20 | - Return 0 if checksum is as expected, -1 otherwise | ||
21 | - Add entrypoint pragma | ||
22 | - Make inputs volatile (or touch them with a volatile) to rule out | ||
23 | optimizations | ||
24 | |||
25 | 2016-04-20: | ||
26 | - Cast "expected" return value to int for comparison | ||
27 | - Make loop counter in rijndael_enc_init unsigned | ||
28 | |||
29 | Files: aes.c, aes.h, aestab.h | ||
30 | Source: security section of MiBench | ||
31 | |||
32 | 2016-02-26: | ||
33 | - Remove unused defines UNROLL, PARTIAL_UNROLL | ||
34 | - Remove defines FIXED_TABLES, FF_TABLES, ARRAYS, FOUR_TABLES, | ||
35 | FOUR_LR_TABLES, FOUR_IM_TABLES | ||
36 | - Remove (undefined) define ONE_TABLE, ONE_LR_TABLE , ONE_IM_TABLE | ||
37 | - Assume BLOCK_SIZE is always 16 | ||
38 | - Remove unused define "unused" | ||
39 | - Remove INTERNAL_BYTE_ORDER, EXTERNAL_BYTE_ORDER, AES_BIG_ENDIAN, | ||
40 | AES_LITTLE_ENDIAN (assume internal == external == little endian) | ||
41 | - Remove defines AES_DLL and AES_IN_CPP | ||
42 | - Remove "#if defined(__cplusplus)" | ||
43 | - Replace macros c_name and cf_dec with their definition | ||
44 | - Remove some stale comments | ||
45 | - Remove defines no_table and one_table | ||
46 | - Remove prototypes for unusedfunctions decrypt and set_blk | ||
47 | - Prefix all functions and global variables with "rijndael_enc" | ||
48 | - Break lines in overly long macros | ||
49 | - Protect macros | ||
50 | - Applied code formatting with astyle as in the example | ||
51 | |||
52 | 2016-04-20: | ||
53 | - Remove unused macros s, ff_poly, ff_hi, m1, m2, m3, FFmulX, | ||
54 | fwd_mcol, fwd_var, inv_var, si, so, fwd_rnd, inv_rnd, fwd_lrnd, | ||
55 | inv_lrnd, locals, l_copy, state_in, state_out, round, i_table, | ||
56 | li_table | ||
57 | - Remove unused arrays rijndael_enc_s_box, rijndael_enc_inv_s_box, | ||
58 | rijndael_enc_it_tab, rijndael_enc_il_tab | ||
59 | |||
60 | 2016-06-14: | ||
61 | - Added cast to make C++ compiler happy | ||
62 | |||
63 | Files: glibc_common.h, my_file.h | ||
64 | Source: security section of MiBench | ||
65 | |||
66 | 2016-02-26: | ||
67 | - Merge into file rijndael_enc_libc.h | ||
68 | |||
69 | File: rijndael_enc_libc.h | ||
70 | |||
71 | 2016-02-26: | ||
72 | - Replace size_x with unsigned long | ||
73 | - Remove defines LITTLE_ENDIAN and NULL | ||
74 | - Prefix all functions with "rijndael_enc" (instead of "my_") | ||
75 | - Prefix definitions that clash with the standard library with | ||
76 | "rijndael_enc" (instead of "my_") | ||
77 | - Applied code formatting with astyle as in the example | ||
78 | |||
79 | Files: glibc_common.c, my_file.c | ||
80 | Source: security section of MiBench | ||
81 | |||
82 | 2016-02-26: | ||
83 | - Merge into file rijndael_enc_libc.c | ||
84 | |||
85 | File: rijndael_enc_libc.c | ||
86 | |||
87 | 2016-02-26: | ||
88 | - Replace size_x with unsigned long | ||
89 | - Prefix all functions with "rijndael_enc" (instead of "my_") | ||
90 | - Prefix definitions that clash with the standard library with | ||
91 | "rijndael_enc" (instead of "my_") | ||
92 | - Applied code formatting with astyle as in the example | ||
93 | |||
94 | File: input_small.c | ||
95 | Source: security section of MiBench | ||
96 | |||
97 | 2016-02-26: | ||
98 | - Break long lines | ||
diff --git a/baseline/source/rijndael_enc/aes.c b/baseline/source/rijndael_enc/aes.c new file mode 100644 index 0000000..c1282a7 --- /dev/null +++ b/baseline/source/rijndael_enc/aes.c | |||
@@ -0,0 +1,406 @@ | |||
1 | /* | ||
2 | ----------------------------------------------------------------------- | ||
3 | Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK | ||
4 | |||
5 | TERMS | ||
6 | |||
7 | Redistribution and use in source and binary forms, with or without | ||
8 | modification, are permitted provided that the following conditions | ||
9 | are met: | ||
10 | 1. Redistributions of source code must retain the above copyright | ||
11 | notice, this list of conditions and the following disclaimer. | ||
12 | 2. Redistributions in binary form must reproduce the above copyright | ||
13 | notice, this list of conditions and the following disclaimer in the | ||
14 | documentation and/or other materials provided with the distribution. | ||
15 | |||
16 | This software is provided 'as is' with no guarantees of correctness or | ||
17 | fitness for purpose. | ||
18 | ----------------------------------------------------------------------- | ||
19 | |||
20 | FUNCTION | ||
21 | |||
22 | The AES algorithm Rijndael implemented for block and key sizes of 128, | ||
23 | bits (16 bytes) by Brian Gladman. | ||
24 | |||
25 | This is an implementation of the AES encryption algorithm (Rijndael) | ||
26 | designed by Joan Daemen and Vincent Rijmen. | ||
27 | */ | ||
28 | |||
29 | #include "aes.h" | ||
30 | |||
31 | #include "aestab.h" | ||
32 | |||
33 | #define four_tables(x,tab,vf,rf,c) ( tab[0][bval(vf(x,0,c),rf(0,c))] ^ \ | ||
34 | tab[1][bval(vf(x,1,c),rf(1,c))] ^ \ | ||
35 | tab[2][bval(vf(x,2,c),rf(2,c))] ^ \ | ||
36 | tab[3][bval(vf(x,3,c),rf(3,c))] ) | ||
37 | |||
38 | #define vf1(x,r,c) (x) | ||
39 | #define rf1(r,c) (r) | ||
40 | #define rf2(r,c) ((r-c)&3) | ||
41 | |||
42 | #define ls_box(x,c) four_tables(x,rijndael_enc_fl_tab,vf1,rf2,c) | ||
43 | |||
44 | #define inv_mcol(x) four_tables(x,rijndael_enc_im_tab,vf1,rf1,0) | ||
45 | |||
46 | /* | ||
47 | Subroutine to set the block size (if variable) in bytes, legal | ||
48 | values being 16, 24 and 32. | ||
49 | */ | ||
50 | |||
51 | #define nc (Ncol) | ||
52 | |||
53 | /* | ||
54 | Initialise the key schedule from the user supplied key. The key | ||
55 | length is now specified in bytes - 16, 24 or 32 as appropriate. | ||
56 | This corresponds to bit lengths of 128, 192 and 256 bits, and | ||
57 | to Nk values of 4, 6 and 8 respectively. | ||
58 | */ | ||
59 | |||
60 | #define mx(t,f) (*t++ = inv_mcol(*f),f++) | ||
61 | #define cp(t,f) *t++ = *f++ | ||
62 | |||
63 | #define cpy(d,s) do { cp(d,s); cp(d,s); cp(d,s); cp(d,s); } while (0) | ||
64 | #define mix(d,s) do { mx(d,s); mx(d,s); mx(d,s); mx(d,s); } while (0) | ||
65 | |||
66 | aes_ret rijndael_enc_set_key( byte in_key[], const word n_bytes, | ||
67 | const enum aes_key f, struct aes *cx ) | ||
68 | { | ||
69 | word *kf, *kt, rci; | ||
70 | |||
71 | if ( ( n_bytes & 7 ) || n_bytes < 16 || n_bytes > 32 || ( !( f & 1 ) && | ||
72 | !( f & 2 ) ) ) | ||
73 | return ( n_bytes ? cx->mode &= ~0x03, aes_bad : ( aes_ret )( cx->Nkey << 2 ) ); | ||
74 | |||
75 | cx->mode = ( cx->mode & ~0x03 ) | ( ( byte )f & 0x03 ); | ||
76 | cx->Nkey = n_bytes >> 2; | ||
77 | cx->Nrnd = Nr( cx->Nkey, ( word )nc ); | ||
78 | |||
79 | cx->e_key[0] = word_in( in_key ); | ||
80 | cx->e_key[1] = word_in( in_key + 4 ); | ||
81 | cx->e_key[2] = word_in( in_key + 8 ); | ||
82 | cx->e_key[3] = word_in( in_key + 12 ); | ||
83 | |||
84 | kf = cx->e_key; | ||
85 | kt = kf + nc * ( cx->Nrnd + 1 ) - cx->Nkey; | ||
86 | rci = 0; | ||
87 | |||
88 | switch ( cx->Nkey ) { | ||
89 | case 4: | ||
90 | _Pragma( "loopbound min 0 max 0" ) | ||
91 | do { | ||
92 | kf[4] = kf[0] ^ ls_box( kf[3], 3 ) ^ rijndael_enc_rcon_tab[rci++]; | ||
93 | kf[5] = kf[1] ^ kf[4]; | ||
94 | kf[6] = kf[2] ^ kf[5]; | ||
95 | kf[7] = kf[3] ^ kf[6]; | ||
96 | kf += 4; | ||
97 | } while ( kf < kt ); | ||
98 | break; | ||
99 | |||
100 | case 6: | ||
101 | cx->e_key[4] = word_in( in_key + 16 ); | ||
102 | cx->e_key[5] = word_in( in_key + 20 ); | ||
103 | _Pragma( "loopbound min 0 max 0" ) | ||
104 | do { | ||
105 | kf[ 6] = kf[0] ^ ls_box( kf[5], 3 ) ^ rijndael_enc_rcon_tab[rci++]; | ||
106 | kf[ 7] = kf[1] ^ kf[ 6]; | ||
107 | kf[ 8] = kf[2] ^ kf[ 7]; | ||
108 | kf[ 9] = kf[3] ^ kf[ 8]; | ||
109 | kf[10] = kf[4] ^ kf[ 9]; | ||
110 | kf[11] = kf[5] ^ kf[10]; | ||
111 | kf += 6; | ||
112 | } while ( kf < kt ); | ||
113 | break; | ||
114 | |||
115 | case 8: | ||
116 | cx->e_key[4] = word_in( in_key + 16 ); | ||
117 | cx->e_key[5] = word_in( in_key + 20 ); | ||
118 | cx->e_key[6] = word_in( in_key + 24 ); | ||
119 | cx->e_key[7] = word_in( in_key + 28 ); | ||
120 | _Pragma( "loopbound min 7 max 7" ) | ||
121 | do { | ||
122 | kf[ 8] = kf[0] ^ ls_box( kf[7], 3 ) ^ rijndael_enc_rcon_tab[rci++]; | ||
123 | kf[ 9] = kf[1] ^ kf[ 8]; | ||
124 | kf[10] = kf[2] ^ kf[ 9]; | ||
125 | kf[11] = kf[3] ^ kf[10]; | ||
126 | kf[12] = kf[4] ^ ls_box( kf[11], 0 ); | ||
127 | kf[13] = kf[5] ^ kf[12]; | ||
128 | kf[14] = kf[6] ^ kf[13]; | ||
129 | kf[15] = kf[7] ^ kf[14]; | ||
130 | kf += 8; | ||
131 | } while ( kf < kt ); | ||
132 | break; | ||
133 | } | ||
134 | |||
135 | if ( ( cx->mode & 3 ) != enc ) { | ||
136 | word i; | ||
137 | |||
138 | kt = cx->d_key + nc * cx->Nrnd; | ||
139 | kf = cx->e_key; | ||
140 | |||
141 | cpy( kt, kf ); | ||
142 | kt -= 2 * nc; | ||
143 | |||
144 | _Pragma( "loopbound min 0 max 0" ) | ||
145 | for ( i = 1; i < cx->Nrnd; ++i ) { | ||
146 | mix( kt, kf ); | ||
147 | kt -= 2 * nc; | ||
148 | } | ||
149 | |||
150 | cpy( kt, kf ); | ||
151 | } | ||
152 | |||
153 | return aes_good; | ||
154 | } | ||
155 | |||
156 | short rijndael_enc_encrypt( unsigned char in_blk[], unsigned char out_blk[], | ||
157 | const struct aes *cx ) | ||
158 | { | ||
159 | const unsigned long *kp = cx->e_key; | ||
160 | if ( !( cx->mode & 1 ) ) | ||
161 | return 0; | ||
162 | unsigned long b0[4]; | ||
163 | b0[0] = *( unsigned long * )in_blk ^ kp[0]; | ||
164 | b0[1] = *( unsigned long * )( in_blk + 4 )^kp[1]; | ||
165 | b0[2] = *( unsigned long * )( in_blk + 8 )^kp[2]; | ||
166 | b0[3] = *( unsigned long * )( in_blk + 12 )^kp[3]; | ||
167 | kp += 4; | ||
168 | unsigned long b1[4]; | ||
169 | switch ( cx->Nrnd ) { | ||
170 | case 14: | ||
171 | b1[0] = kp[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^ | ||
172 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
173 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
174 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
175 | b1[1] = kp[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^ | ||
176 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
177 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
178 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
179 | b1[2] = kp[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^ | ||
180 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
181 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
182 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
183 | b1[3] = kp[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^ | ||
184 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
185 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
186 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
187 | b0[0] = ( kp + 4 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^ | ||
188 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
189 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
190 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
191 | b0[1] = ( kp + 4 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^ | ||
192 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
193 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
194 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
195 | b0[2] = ( kp + 4 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^ | ||
196 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
197 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
198 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
199 | b0[3] = ( kp + 4 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^ | ||
200 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
201 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
202 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
203 | kp += 8; | ||
204 | case 12: | ||
205 | b1[0] = kp[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^ | ||
206 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
207 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
208 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
209 | b1[1] = kp[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^ | ||
210 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
211 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
212 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
213 | b1[2] = kp[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^ | ||
214 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
215 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
216 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
217 | b1[3] = kp[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^ | ||
218 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
219 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
220 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
221 | b0[0] = ( kp + 4 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^ | ||
222 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
223 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
224 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
225 | b0[1] = ( kp + 4 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^ | ||
226 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
227 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
228 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
229 | b0[2] = ( kp + 4 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^ | ||
230 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
231 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
232 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
233 | b0[3] = ( kp + 4 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^ | ||
234 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
235 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
236 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
237 | kp += 8; | ||
238 | case 10: | ||
239 | b1[0] = kp[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^ | ||
240 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
241 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
242 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
243 | b1[1] = kp[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^ | ||
244 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
245 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
246 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
247 | b1[2] = kp[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^ | ||
248 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
249 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
250 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
251 | b1[3] = kp[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^ | ||
252 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
253 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
254 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
255 | b0[0] = ( kp + 4 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^ | ||
256 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
257 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
258 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
259 | b0[1] = ( kp + 4 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^ | ||
260 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
261 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
262 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
263 | b0[2] = ( kp + 4 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^ | ||
264 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
265 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
266 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
267 | b0[3] = ( kp + 4 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^ | ||
268 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
269 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
270 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
271 | b1[0] = ( kp + 8 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^ | ||
272 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
273 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
274 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
275 | b1[1] = ( kp + 8 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^ | ||
276 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
277 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
278 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
279 | b1[2] = ( kp + 8 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^ | ||
280 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
281 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
282 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
283 | b1[3] = ( kp + 8 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^ | ||
284 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
285 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
286 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
287 | b0[0] = ( kp + 12 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^ | ||
288 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
289 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
290 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
291 | b0[1] = ( kp + 12 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^ | ||
292 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
293 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
294 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
295 | b0[2] = ( kp + 12 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^ | ||
296 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
297 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
298 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
299 | b0[3] = ( kp + 12 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^ | ||
300 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
301 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
302 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
303 | b1[0] = ( kp + 16 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^ | ||
304 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
305 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
306 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
307 | b1[1] = ( kp + 16 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^ | ||
308 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
309 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
310 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
311 | b1[2] = ( kp + 16 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^ | ||
312 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
313 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
314 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
315 | b1[3] = ( kp + 16 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^ | ||
316 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
317 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
318 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
319 | b0[0] = ( kp + 20 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^ | ||
320 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
321 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
322 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
323 | b0[1] = ( kp + 20 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^ | ||
324 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
325 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
326 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
327 | b0[2] = ( kp + 20 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^ | ||
328 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
329 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
330 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
331 | b0[3] = ( kp + 20 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^ | ||
332 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
333 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
334 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
335 | b1[0] = ( kp + 24 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^ | ||
336 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
337 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
338 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
339 | b1[1] = ( kp + 24 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^ | ||
340 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
341 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
342 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
343 | b1[2] = ( kp + 24 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^ | ||
344 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
345 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
346 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
347 | b1[3] = ( kp + 24 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^ | ||
348 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
349 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
350 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
351 | b0[0] = ( kp + 28 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^ | ||
352 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
353 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
354 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
355 | b0[1] = ( kp + 28 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^ | ||
356 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
357 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
358 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
359 | b0[2] = ( kp + 28 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^ | ||
360 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
361 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
362 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
363 | b0[3] = ( kp + 28 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^ | ||
364 | rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
365 | rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
366 | rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
367 | b1[0] = ( kp + 32 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^ | ||
368 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^ | ||
369 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^ | ||
370 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] ); | ||
371 | b1[1] = ( kp + 32 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^ | ||
372 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^ | ||
373 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^ | ||
374 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] ); | ||
375 | b1[2] = ( kp + 32 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^ | ||
376 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^ | ||
377 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^ | ||
378 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] ); | ||
379 | b1[3] = ( kp + 32 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^ | ||
380 | rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^ | ||
381 | rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^ | ||
382 | rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] ); | ||
383 | b0[0] = ( kp + 36 )[0] ^ ( rijndael_enc_fl_tab[0][( ( unsigned char )b1[0] )] ^ | ||
384 | rijndael_enc_fl_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^ | ||
385 | rijndael_enc_fl_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^ | ||
386 | rijndael_enc_fl_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] ); | ||
387 | b0[1] = ( kp + 36 )[1] ^ ( rijndael_enc_fl_tab[0][( ( unsigned char )b1[1] )] ^ | ||
388 | rijndael_enc_fl_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^ | ||
389 | rijndael_enc_fl_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^ | ||
390 | rijndael_enc_fl_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] ); | ||
391 | b0[2] = ( kp + 36 )[2] ^ ( rijndael_enc_fl_tab[0][( ( unsigned char )b1[2] )] ^ | ||
392 | rijndael_enc_fl_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^ | ||
393 | rijndael_enc_fl_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^ | ||
394 | rijndael_enc_fl_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] ); | ||
395 | b0[3] = ( kp + 36 )[3] ^ ( rijndael_enc_fl_tab[0][( ( unsigned char )b1[3] )] ^ | ||
396 | rijndael_enc_fl_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^ | ||
397 | rijndael_enc_fl_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^ | ||
398 | rijndael_enc_fl_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] ); | ||
399 | } | ||
400 | *( unsigned long * )out_blk = ( b0[0] ); | ||
401 | *( unsigned long * )( out_blk + 4 ) = ( b0[1] ); | ||
402 | *( unsigned long * )( out_blk + 8 ) = ( b0[2] ); | ||
403 | *( unsigned long * )( out_blk + 12 ) = ( b0[3] ); | ||
404 | return aes_good; | ||
405 | } | ||
406 | |||
diff --git a/baseline/source/rijndael_enc/aes.h b/baseline/source/rijndael_enc/aes.h new file mode 100644 index 0000000..908f95f --- /dev/null +++ b/baseline/source/rijndael_enc/aes.h | |||
@@ -0,0 +1,165 @@ | |||
1 | /* | ||
2 | ----------------------------------------------------------------------- | ||
3 | Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK | ||
4 | |||
5 | TERMS | ||
6 | |||
7 | Redistribution and use in source and binary forms, with or without | ||
8 | modification, are permitted provided that the following conditions | ||
9 | are met: | ||
10 | 1. Redistributions of source code must retain the above copyright | ||
11 | notice, this list of conditions and the following disclaimer. | ||
12 | 2. Redistributions in binary form must reproduce the above copyright | ||
13 | notice, this list of conditions and the following disclaimer in the | ||
14 | documentation and/or other materials provided with the distribution. | ||
15 | |||
16 | This software is provided 'as is' with no guarantees of correctness or | ||
17 | fitness for purpose. | ||
18 | ----------------------------------------------------------------------- | ||
19 | |||
20 | 1. FUNCTION | ||
21 | |||
22 | The AES algorithm Rijndael implemented for block and key sizes of | ||
23 | 128 bits (16 bytes) by Brian Gladman. | ||
24 | |||
25 | This is an implementation of the AES encryption algorithm (Rijndael) | ||
26 | designed by Joan Daemen and Vincent Rijmen. | ||
27 | |||
28 | 2. THE CIPHER INTERFACE | ||
29 | |||
30 | byte (an unsigned 8-bit type) | ||
31 | word (an unsigned 32-bit type) | ||
32 | aes_ret: (a signed 16 bit type for function return values) | ||
33 | aes_good (value != 0, a good return) | ||
34 | aes_bad (value == 0, an error return) | ||
35 | enum aes_key: (encryption direction) | ||
36 | enc (set key for encryption) | ||
37 | dec (set key for decryption) | ||
38 | both (set key for both) | ||
39 | class or struct aes (structure for context) | ||
40 | |||
41 | C subroutine calls: | ||
42 | |||
43 | aes_ret set_blk(const word block_length, aes *cx) (variable block size) | ||
44 | aes_ret set_key(const byte key[], const word key_length, | ||
45 | const enum aes_key direction, aes *cx) | ||
46 | aes_ret encrypt(const byte input_blk[], byte output_blk[], const aes *cx) | ||
47 | aes_ret decrypt(const byte input_blk[], byte output_blk[], const aes *cx) | ||
48 | |||
49 | IMPORTANT NOTE: If you are using this C interface and your compiler does | ||
50 | not set the memory used for objects to zero before use, you will need to | ||
51 | ensure that cx.mode is set to zero before using the C subroutine calls. | ||
52 | |||
53 | The block length inputs to set_block and set_key are in numbers of | ||
54 | BYTES, not bits. The calls to subroutines must be made in the above | ||
55 | order but multiple calls can be made without repeating earlier calls | ||
56 | if their parameters have not changed. If the cipher block length is | ||
57 | variable but set_blk has not been called before cipher operations a | ||
58 | value of 16 is assumed (that is, the AES block size). In contrast to | ||
59 | earlier versions the block and key length parameters are now checked | ||
60 | for correctness and the encryption and decryption routines check to | ||
61 | ensure that an appropriate key has been set before they are called. | ||
62 | |||
63 | */ | ||
64 | |||
65 | #ifndef _AES_H | ||
66 | #define _AES_H | ||
67 | |||
68 | /* The only supported block size for the benchmark is 16 */ | ||
69 | #define BLOCK_SIZE 16 | ||
70 | |||
71 | /* | ||
72 | The number of key schedule words for different block and key lengths | ||
73 | (allowing for the method of computation which requires the length to | ||
74 | be a multiple of the key length): | ||
75 | |||
76 | Key Schedule key length (bytes) | ||
77 | Length 16 20 24 28 32 | ||
78 | --------------------- | ||
79 | block 16 | 44 60 54 56 64 | ||
80 | length 20 | 60 60 66 70 80 | ||
81 | (bytes) 24 | 80 80 78 84 96 | ||
82 | 28 | 100 100 102 98 112 | ||
83 | 32 | 120 120 120 126 120 | ||
84 | |||
85 | Rcon Table key length (bytes) | ||
86 | Length 16 20 24 28 32 | ||
87 | --------------------- | ||
88 | block 16 | 10 9 8 7 7 | ||
89 | length 20 | 14 11 10 9 9 | ||
90 | (bytes) 24 | 19 15 12 11 11 | ||
91 | 28 | 24 19 16 13 13 | ||
92 | 32 | 29 23 19 17 14 | ||
93 | |||
94 | The following values assume that the key length will be variable and may | ||
95 | be of maximum length (32 bytes). | ||
96 | |||
97 | Nk = number_of_key_bytes / 4 | ||
98 | Nc = number_of_columns_in_state / 4 | ||
99 | Nr = number of encryption/decryption rounds | ||
100 | Rc = number of elements in rcon table | ||
101 | Ks = number of 32-bit words in key schedule | ||
102 | */ | ||
103 | |||
104 | #define Nr(Nk,Nc) ((Nk > Nc ? Nk : Nc) + 6) | ||
105 | #define Rc(Nk,Nc) ((Nb * (Nr(Nk,Nc) + 1) - 1) / Nk) | ||
106 | #define Ks(Nk,Nc) (Nk * (Rc(Nk,Nc) + 1)) | ||
107 | |||
108 | #define RC_LENGTH 5 * BLOCK_SIZE / 4 - (BLOCK_SIZE == 16 ? 10 : 11) | ||
109 | #define KS_LENGTH 4 * BLOCK_SIZE | ||
110 | |||
111 | /* End of configuration options, but see also aes.c */ | ||
112 | |||
113 | typedef unsigned char byte; /* must be an 8-bit storage unit */ | ||
114 | typedef unsigned long word; /* must be a 32-bit storage unit */ | ||
115 | typedef short aes_ret; /* function return value */ | ||
116 | |||
117 | #define aes_bad 0 | ||
118 | #define aes_good 1 | ||
119 | |||
120 | /* | ||
121 | upr(x,n): rotates bytes within words by n positions, moving bytes | ||
122 | to higher index positions with wrap around into low positions | ||
123 | ups(x,n): moves bytes by n positions to higher index positions in | ||
124 | words but without wrap around | ||
125 | bval(x,n): extracts a byte from a word | ||
126 | */ | ||
127 | |||
128 | #define upr(x,n) (((x) << 8 * (n)) | ((x) >> (32 - 8 * (n)))) | ||
129 | #define ups(x,n) ((x) << 8 * (n)) | ||
130 | #define bval(x,n) ((byte)((x) >> 8 * (n))) | ||
131 | #define byte_swap(x) (upr(x,1) & 0x00ff00ff | upr(x,3) & 0xff00ff00) | ||
132 | #define bytes2word(b0, b1, b2, b3) ((word)(b3) << 24 | (word)(b2) << 16 | \ | ||
133 | (word)(b1) << 8 | (b0)) | ||
134 | |||
135 | #define word_in(x) *(word*)(x) | ||
136 | #define word_out(x,v) *(word*)(x) = (v) | ||
137 | |||
138 | enum aes_const { Nrow = 4, /* the number of rows in the cipher state */ | ||
139 | Mcol = 8, /* maximum number of columns in the state */ | ||
140 | Ncol = BLOCK_SIZE / 4, | ||
141 | Shr0 = 0, /* the cyclic shift values for rows 0, 1, 2 & 3 */ | ||
142 | Shr1 = 1, | ||
143 | Shr2 = BLOCK_SIZE == 32 ? 3 : 2, | ||
144 | Shr3 = BLOCK_SIZE == 32 ? 4 : 3 | ||
145 | }; | ||
146 | |||
147 | enum aes_key { enc = 1, /* set if encryption is needed */ | ||
148 | dec = 2, /* set if decryption is needed */ | ||
149 | both = 3 /* set if both are needed */ | ||
150 | }; | ||
151 | |||
152 | struct aes { | ||
153 | word Nkey; /* the number of words in the key input block */ | ||
154 | word Nrnd; /* the number of cipher rounds */ | ||
155 | word e_key[KS_LENGTH]; /* the encryption key schedule */ | ||
156 | word d_key[KS_LENGTH]; /* the decryption key schedule */ | ||
157 | byte mode; /* encrypt, decrypt or both */ | ||
158 | }; | ||
159 | |||
160 | aes_ret rijndael_enc_set_key( byte key[], const word n_bytes, | ||
161 | const enum aes_key f, struct aes *cx ); | ||
162 | aes_ret rijndael_enc_encrypt( byte in_blk[], byte out_blk[], | ||
163 | const struct aes *cx ); | ||
164 | |||
165 | #endif | ||
diff --git a/baseline/source/rijndael_enc/aestab.h b/baseline/source/rijndael_enc/aestab.h new file mode 100644 index 0000000..9d347bc --- /dev/null +++ b/baseline/source/rijndael_enc/aestab.h | |||
@@ -0,0 +1,261 @@ | |||
1 | |||
2 | /* | ||
3 | ----------------------------------------------------------------------- | ||
4 | Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK | ||
5 | |||
6 | TERMS | ||
7 | |||
8 | Redistribution and use in source and binary forms, with or without | ||
9 | modification, are permitted provided that the following conditions | ||
10 | are met: | ||
11 | 1. Redistributions of source code must retain the above copyright | ||
12 | notice, this list of conditions and the following disclaimer. | ||
13 | 2. Redistributions in binary form must reproduce the above copyright | ||
14 | notice, this list of conditions and the following disclaimer in the | ||
15 | documentation and/or other materials provided with the distribution. | ||
16 | |||
17 | This software is provided 'as is' with no guarantees of correctness or | ||
18 | fitness for purpose. | ||
19 | ----------------------------------------------------------------------- | ||
20 | */ | ||
21 | |||
22 | /* | ||
23 | Used to ensure table is generated in the right format | ||
24 | depending on the internal byte order required. | ||
25 | */ | ||
26 | |||
27 | #define w0(p) 0x000000##p | ||
28 | |||
29 | /* | ||
30 | Number of elements required in this table for different | ||
31 | block and key lengths is: | ||
32 | |||
33 | Rcon Table key length (bytes) | ||
34 | Length 16 20 24 28 32 | ||
35 | --------------------- | ||
36 | block 16 | 10 9 8 7 7 | ||
37 | length 20 | 14 11 10 9 9 | ||
38 | (bytes) 24 | 19 15 12 11 11 | ||
39 | 28 | 24 19 16 13 13 | ||
40 | 32 | 29 23 19 17 14 | ||
41 | |||
42 | this table can be a table of bytes if the key schedule | ||
43 | code is adjusted accordingly | ||
44 | */ | ||
45 | |||
46 | const word rijndael_enc_rcon_tab[29] = { | ||
47 | w0( 01 ), w0( 02 ), w0( 04 ), w0( 08 ), | ||
48 | w0( 10 ), w0( 20 ), w0( 40 ), w0( 80 ), | ||
49 | w0( 1b ), w0( 36 ), w0( 6c ), w0( d8 ), | ||
50 | w0( ab ), w0( 4d ), w0( 9a ), w0( 2f ), | ||
51 | w0( 5e ), w0( bc ), w0( 63 ), w0( c6 ), | ||
52 | w0( 97 ), w0( 35 ), w0( 6a ), w0( d4 ), | ||
53 | w0( b3 ), w0( 7d ), w0( fa ), w0( ef ), | ||
54 | w0( c5 ) | ||
55 | }; | ||
56 | |||
57 | #undef w0 | ||
58 | |||
59 | /* | ||
60 | used to ensure table is generated in the right format | ||
61 | depending on the internal byte order required | ||
62 | */ | ||
63 | |||
64 | #define r0(p,q,r,s) 0x##p##q##r##s | ||
65 | #define r1(p,q,r,s) 0x##q##r##s##p | ||
66 | #define r2(p,q,r,s) 0x##r##s##p##q | ||
67 | #define r3(p,q,r,s) 0x##s##p##q##r | ||
68 | #define w0(p) 0x000000##p | ||
69 | #define w1(p) 0x0000##p##00 | ||
70 | #define w2(p) 0x00##p##0000 | ||
71 | #define w3(p) 0x##p##000000 | ||
72 | |||
73 | /* | ||
74 | used to ensure table is generated in the right format | ||
75 | depending on the internal byte order required | ||
76 | */ | ||
77 | |||
78 | /* data for forward tables (other than last round) */ | ||
79 | |||
80 | #define f_table \ | ||
81 | r(a5,63,63,c6), r(84,7c,7c,f8), r(99,77,77,ee), r(8d,7b,7b,f6), \ | ||
82 | r(0d,f2,f2,ff), r(bd,6b,6b,d6), r(b1,6f,6f,de), r(54,c5,c5,91), \ | ||
83 | r(50,30,30,60), r(03,01,01,02), r(a9,67,67,ce), r(7d,2b,2b,56), \ | ||
84 | r(19,fe,fe,e7), r(62,d7,d7,b5), r(e6,ab,ab,4d), r(9a,76,76,ec), \ | ||
85 | r(45,ca,ca,8f), r(9d,82,82,1f), r(40,c9,c9,89), r(87,7d,7d,fa), \ | ||
86 | r(15,fa,fa,ef), r(eb,59,59,b2), r(c9,47,47,8e), r(0b,f0,f0,fb), \ | ||
87 | r(ec,ad,ad,41), r(67,d4,d4,b3), r(fd,a2,a2,5f), r(ea,af,af,45), \ | ||
88 | r(bf,9c,9c,23), r(f7,a4,a4,53), r(96,72,72,e4), r(5b,c0,c0,9b), \ | ||
89 | r(c2,b7,b7,75), r(1c,fd,fd,e1), r(ae,93,93,3d), r(6a,26,26,4c), \ | ||
90 | r(5a,36,36,6c), r(41,3f,3f,7e), r(02,f7,f7,f5), r(4f,cc,cc,83), \ | ||
91 | r(5c,34,34,68), r(f4,a5,a5,51), r(34,e5,e5,d1), r(08,f1,f1,f9), \ | ||
92 | r(93,71,71,e2), r(73,d8,d8,ab), r(53,31,31,62), r(3f,15,15,2a), \ | ||
93 | r(0c,04,04,08), r(52,c7,c7,95), r(65,23,23,46), r(5e,c3,c3,9d), \ | ||
94 | r(28,18,18,30), r(a1,96,96,37), r(0f,05,05,0a), r(b5,9a,9a,2f), \ | ||
95 | r(09,07,07,0e), r(36,12,12,24), r(9b,80,80,1b), r(3d,e2,e2,df), \ | ||
96 | r(26,eb,eb,cd), r(69,27,27,4e), r(cd,b2,b2,7f), r(9f,75,75,ea), \ | ||
97 | r(1b,09,09,12), r(9e,83,83,1d), r(74,2c,2c,58), r(2e,1a,1a,34), \ | ||
98 | r(2d,1b,1b,36), r(b2,6e,6e,dc), r(ee,5a,5a,b4), r(fb,a0,a0,5b), \ | ||
99 | r(f6,52,52,a4), r(4d,3b,3b,76), r(61,d6,d6,b7), r(ce,b3,b3,7d), \ | ||
100 | r(7b,29,29,52), r(3e,e3,e3,dd), r(71,2f,2f,5e), r(97,84,84,13), \ | ||
101 | r(f5,53,53,a6), r(68,d1,d1,b9), r(00,00,00,00), r(2c,ed,ed,c1), \ | ||
102 | r(60,20,20,40), r(1f,fc,fc,e3), r(c8,b1,b1,79), r(ed,5b,5b,b6), \ | ||
103 | r(be,6a,6a,d4), r(46,cb,cb,8d), r(d9,be,be,67), r(4b,39,39,72), \ | ||
104 | r(de,4a,4a,94), r(d4,4c,4c,98), r(e8,58,58,b0), r(4a,cf,cf,85), \ | ||
105 | r(6b,d0,d0,bb), r(2a,ef,ef,c5), r(e5,aa,aa,4f), r(16,fb,fb,ed), \ | ||
106 | r(c5,43,43,86), r(d7,4d,4d,9a), r(55,33,33,66), r(94,85,85,11), \ | ||
107 | r(cf,45,45,8a), r(10,f9,f9,e9), r(06,02,02,04), r(81,7f,7f,fe), \ | ||
108 | r(f0,50,50,a0), r(44,3c,3c,78), r(ba,9f,9f,25), r(e3,a8,a8,4b), \ | ||
109 | r(f3,51,51,a2), r(fe,a3,a3,5d), r(c0,40,40,80), r(8a,8f,8f,05), \ | ||
110 | r(ad,92,92,3f), r(bc,9d,9d,21), r(48,38,38,70), r(04,f5,f5,f1), \ | ||
111 | r(df,bc,bc,63), r(c1,b6,b6,77), r(75,da,da,af), r(63,21,21,42), \ | ||
112 | r(30,10,10,20), r(1a,ff,ff,e5), r(0e,f3,f3,fd), r(6d,d2,d2,bf), \ | ||
113 | r(4c,cd,cd,81), r(14,0c,0c,18), r(35,13,13,26), r(2f,ec,ec,c3), \ | ||
114 | r(e1,5f,5f,be), r(a2,97,97,35), r(cc,44,44,88), r(39,17,17,2e), \ | ||
115 | r(57,c4,c4,93), r(f2,a7,a7,55), r(82,7e,7e,fc), r(47,3d,3d,7a), \ | ||
116 | r(ac,64,64,c8), r(e7,5d,5d,ba), r(2b,19,19,32), r(95,73,73,e6), \ | ||
117 | r(a0,60,60,c0), r(98,81,81,19), r(d1,4f,4f,9e), r(7f,dc,dc,a3), \ | ||
118 | r(66,22,22,44), r(7e,2a,2a,54), r(ab,90,90,3b), r(83,88,88,0b), \ | ||
119 | r(ca,46,46,8c), r(29,ee,ee,c7), r(d3,b8,b8,6b), r(3c,14,14,28), \ | ||
120 | r(79,de,de,a7), r(e2,5e,5e,bc), r(1d,0b,0b,16), r(76,db,db,ad), \ | ||
121 | r(3b,e0,e0,db), r(56,32,32,64), r(4e,3a,3a,74), r(1e,0a,0a,14), \ | ||
122 | r(db,49,49,92), r(0a,06,06,0c), r(6c,24,24,48), r(e4,5c,5c,b8), \ | ||
123 | r(5d,c2,c2,9f), r(6e,d3,d3,bd), r(ef,ac,ac,43), r(a6,62,62,c4), \ | ||
124 | r(a8,91,91,39), r(a4,95,95,31), r(37,e4,e4,d3), r(8b,79,79,f2), \ | ||
125 | r(32,e7,e7,d5), r(43,c8,c8,8b), r(59,37,37,6e), r(b7,6d,6d,da), \ | ||
126 | r(8c,8d,8d,01), r(64,d5,d5,b1), r(d2,4e,4e,9c), r(e0,a9,a9,49), \ | ||
127 | r(b4,6c,6c,d8), r(fa,56,56,ac), r(07,f4,f4,f3), r(25,ea,ea,cf), \ | ||
128 | r(af,65,65,ca), r(8e,7a,7a,f4), r(e9,ae,ae,47), r(18,08,08,10), \ | ||
129 | r(d5,ba,ba,6f), r(88,78,78,f0), r(6f,25,25,4a), r(72,2e,2e,5c), \ | ||
130 | r(24,1c,1c,38), r(f1,a6,a6,57), r(c7,b4,b4,73), r(51,c6,c6,97), \ | ||
131 | r(23,e8,e8,cb), r(7c,dd,dd,a1), r(9c,74,74,e8), r(21,1f,1f,3e), \ | ||
132 | r(dd,4b,4b,96), r(dc,bd,bd,61), r(86,8b,8b,0d), r(85,8a,8a,0f), \ | ||
133 | r(90,70,70,e0), r(42,3e,3e,7c), r(c4,b5,b5,71), r(aa,66,66,cc), \ | ||
134 | r(d8,48,48,90), r(05,03,03,06), r(01,f6,f6,f7), r(12,0e,0e,1c), \ | ||
135 | r(a3,61,61,c2), r(5f,35,35,6a), r(f9,57,57,ae), r(d0,b9,b9,69), \ | ||
136 | r(91,86,86,17), r(58,c1,c1,99), r(27,1d,1d,3a), r(b9,9e,9e,27), \ | ||
137 | r(38,e1,e1,d9), r(13,f8,f8,eb), r(b3,98,98,2b), r(33,11,11,22), \ | ||
138 | r(bb,69,69,d2), r(70,d9,d9,a9), r(89,8e,8e,07), r(a7,94,94,33), \ | ||
139 | r(b6,9b,9b,2d), r(22,1e,1e,3c), r(92,87,87,15), r(20,e9,e9,c9), \ | ||
140 | r(49,ce,ce,87), r(ff,55,55,aa), r(78,28,28,50), r(7a,df,df,a5), \ | ||
141 | r(8f,8c,8c,03), r(f8,a1,a1,59), r(80,89,89,09), r(17,0d,0d,1a), \ | ||
142 | r(da,bf,bf,65), r(31,e6,e6,d7), r(c6,42,42,84), r(b8,68,68,d0), \ | ||
143 | r(c3,41,41,82), r(b0,99,99,29), r(77,2d,2d,5a), r(11,0f,0f,1e), \ | ||
144 | r(cb,b0,b0,7b), r(fc,54,54,a8), r(d6,bb,bb,6d), r(3a,16,16,2c) | ||
145 | |||
146 | /* generate the required tables in the desired endian format */ | ||
147 | |||
148 | #undef r | ||
149 | #define r r0 | ||
150 | |||
151 | const word rijndael_enc_ft_tab[4][256] = { | ||
152 | { f_table }, | ||
153 | #undef r | ||
154 | #define r r1 | ||
155 | { f_table }, | ||
156 | #undef r | ||
157 | #define r r2 | ||
158 | { f_table }, | ||
159 | #undef r | ||
160 | #define r r3 | ||
161 | { f_table } | ||
162 | }; | ||
163 | |||
164 | /* generate the required tables in the desired endian format */ | ||
165 | |||
166 | #undef r | ||
167 | #define r(p,q,r,s) w0(q) | ||
168 | const word rijndael_enc_fl_tab[4][256] = { | ||
169 | { f_table }, | ||
170 | #undef r | ||
171 | #define r(p,q,r,s) w1(q) | ||
172 | { f_table }, | ||
173 | #undef r | ||
174 | #define r(p,q,r,s) w2(q) | ||
175 | { f_table }, | ||
176 | #undef r | ||
177 | #define r(p,q,r,s) w3(q) | ||
178 | { f_table } | ||
179 | }; | ||
180 | |||
181 | #define m_table \ | ||
182 | r(00,00,00,00), r(0b,0d,09,0e), r(16,1a,12,1c), r(1d,17,1b,12), \ | ||
183 | r(2c,34,24,38), r(27,39,2d,36), r(3a,2e,36,24), r(31,23,3f,2a), \ | ||
184 | r(58,68,48,70), r(53,65,41,7e), r(4e,72,5a,6c), r(45,7f,53,62), \ | ||
185 | r(74,5c,6c,48), r(7f,51,65,46), r(62,46,7e,54), r(69,4b,77,5a), \ | ||
186 | r(b0,d0,90,e0), r(bb,dd,99,ee), r(a6,ca,82,fc), r(ad,c7,8b,f2), \ | ||
187 | r(9c,e4,b4,d8), r(97,e9,bd,d6), r(8a,fe,a6,c4), r(81,f3,af,ca), \ | ||
188 | r(e8,b8,d8,90), r(e3,b5,d1,9e), r(fe,a2,ca,8c), r(f5,af,c3,82), \ | ||
189 | r(c4,8c,fc,a8), r(cf,81,f5,a6), r(d2,96,ee,b4), r(d9,9b,e7,ba), \ | ||
190 | r(7b,bb,3b,db), r(70,b6,32,d5), r(6d,a1,29,c7), r(66,ac,20,c9), \ | ||
191 | r(57,8f,1f,e3), r(5c,82,16,ed), r(41,95,0d,ff), r(4a,98,04,f1), \ | ||
192 | r(23,d3,73,ab), r(28,de,7a,a5), r(35,c9,61,b7), r(3e,c4,68,b9), \ | ||
193 | r(0f,e7,57,93), r(04,ea,5e,9d), r(19,fd,45,8f), r(12,f0,4c,81), \ | ||
194 | r(cb,6b,ab,3b), r(c0,66,a2,35), r(dd,71,b9,27), r(d6,7c,b0,29), \ | ||
195 | r(e7,5f,8f,03), r(ec,52,86,0d), r(f1,45,9d,1f), r(fa,48,94,11), \ | ||
196 | r(93,03,e3,4b), r(98,0e,ea,45), r(85,19,f1,57), r(8e,14,f8,59), \ | ||
197 | r(bf,37,c7,73), r(b4,3a,ce,7d), r(a9,2d,d5,6f), r(a2,20,dc,61), \ | ||
198 | r(f6,6d,76,ad), r(fd,60,7f,a3), r(e0,77,64,b1), r(eb,7a,6d,bf), \ | ||
199 | r(da,59,52,95), r(d1,54,5b,9b), r(cc,43,40,89), r(c7,4e,49,87), \ | ||
200 | r(ae,05,3e,dd), r(a5,08,37,d3), r(b8,1f,2c,c1), r(b3,12,25,cf), \ | ||
201 | r(82,31,1a,e5), r(89,3c,13,eb), r(94,2b,08,f9), r(9f,26,01,f7), \ | ||
202 | r(46,bd,e6,4d), r(4d,b0,ef,43), r(50,a7,f4,51), r(5b,aa,fd,5f), \ | ||
203 | r(6a,89,c2,75), r(61,84,cb,7b), r(7c,93,d0,69), r(77,9e,d9,67), \ | ||
204 | r(1e,d5,ae,3d), r(15,d8,a7,33), r(08,cf,bc,21), r(03,c2,b5,2f), \ | ||
205 | r(32,e1,8a,05), r(39,ec,83,0b), r(24,fb,98,19), r(2f,f6,91,17), \ | ||
206 | r(8d,d6,4d,76), r(86,db,44,78), r(9b,cc,5f,6a), r(90,c1,56,64), \ | ||
207 | r(a1,e2,69,4e), r(aa,ef,60,40), r(b7,f8,7b,52), r(bc,f5,72,5c), \ | ||
208 | r(d5,be,05,06), r(de,b3,0c,08), r(c3,a4,17,1a), r(c8,a9,1e,14), \ | ||
209 | r(f9,8a,21,3e), r(f2,87,28,30), r(ef,90,33,22), r(e4,9d,3a,2c), \ | ||
210 | r(3d,06,dd,96), r(36,0b,d4,98), r(2b,1c,cf,8a), r(20,11,c6,84), \ | ||
211 | r(11,32,f9,ae), r(1a,3f,f0,a0), r(07,28,eb,b2), r(0c,25,e2,bc), \ | ||
212 | r(65,6e,95,e6), r(6e,63,9c,e8), r(73,74,87,fa), r(78,79,8e,f4), \ | ||
213 | r(49,5a,b1,de), r(42,57,b8,d0), r(5f,40,a3,c2), r(54,4d,aa,cc), \ | ||
214 | r(f7,da,ec,41), r(fc,d7,e5,4f), r(e1,c0,fe,5d), r(ea,cd,f7,53), \ | ||
215 | r(db,ee,c8,79), r(d0,e3,c1,77), r(cd,f4,da,65), r(c6,f9,d3,6b), \ | ||
216 | r(af,b2,a4,31), r(a4,bf,ad,3f), r(b9,a8,b6,2d), r(b2,a5,bf,23), \ | ||
217 | r(83,86,80,09), r(88,8b,89,07), r(95,9c,92,15), r(9e,91,9b,1b), \ | ||
218 | r(47,0a,7c,a1), r(4c,07,75,af), r(51,10,6e,bd), r(5a,1d,67,b3), \ | ||
219 | r(6b,3e,58,99), r(60,33,51,97), r(7d,24,4a,85), r(76,29,43,8b), \ | ||
220 | r(1f,62,34,d1), r(14,6f,3d,df), r(09,78,26,cd), r(02,75,2f,c3), \ | ||
221 | r(33,56,10,e9), r(38,5b,19,e7), r(25,4c,02,f5), r(2e,41,0b,fb), \ | ||
222 | r(8c,61,d7,9a), r(87,6c,de,94), r(9a,7b,c5,86), r(91,76,cc,88), \ | ||
223 | r(a0,55,f3,a2), r(ab,58,fa,ac), r(b6,4f,e1,be), r(bd,42,e8,b0), \ | ||
224 | r(d4,09,9f,ea), r(df,04,96,e4), r(c2,13,8d,f6), r(c9,1e,84,f8), \ | ||
225 | r(f8,3d,bb,d2), r(f3,30,b2,dc), r(ee,27,a9,ce), r(e5,2a,a0,c0), \ | ||
226 | r(3c,b1,47,7a), r(37,bc,4e,74), r(2a,ab,55,66), r(21,a6,5c,68), \ | ||
227 | r(10,85,63,42), r(1b,88,6a,4c), r(06,9f,71,5e), r(0d,92,78,50), \ | ||
228 | r(64,d9,0f,0a), r(6f,d4,06,04), r(72,c3,1d,16), r(79,ce,14,18), \ | ||
229 | r(48,ed,2b,32), r(43,e0,22,3c), r(5e,f7,39,2e), r(55,fa,30,20), \ | ||
230 | r(01,b7,9a,ec), r(0a,ba,93,e2), r(17,ad,88,f0), r(1c,a0,81,fe), \ | ||
231 | r(2d,83,be,d4), r(26,8e,b7,da), r(3b,99,ac,c8), r(30,94,a5,c6), \ | ||
232 | r(59,df,d2,9c), r(52,d2,db,92), r(4f,c5,c0,80), r(44,c8,c9,8e), \ | ||
233 | r(75,eb,f6,a4), r(7e,e6,ff,aa), r(63,f1,e4,b8), r(68,fc,ed,b6), \ | ||
234 | r(b1,67,0a,0c), r(ba,6a,03,02), r(a7,7d,18,10), r(ac,70,11,1e), \ | ||
235 | r(9d,53,2e,34), r(96,5e,27,3a), r(8b,49,3c,28), r(80,44,35,26), \ | ||
236 | r(e9,0f,42,7c), r(e2,02,4b,72), r(ff,15,50,60), r(f4,18,59,6e), \ | ||
237 | r(c5,3b,66,44), r(ce,36,6f,4a), r(d3,21,74,58), r(d8,2c,7d,56), \ | ||
238 | r(7a,0c,a1,37), r(71,01,a8,39), r(6c,16,b3,2b), r(67,1b,ba,25), \ | ||
239 | r(56,38,85,0f), r(5d,35,8c,01), r(40,22,97,13), r(4b,2f,9e,1d), \ | ||
240 | r(22,64,e9,47), r(29,69,e0,49), r(34,7e,fb,5b), r(3f,73,f2,55), \ | ||
241 | r(0e,50,cd,7f), r(05,5d,c4,71), r(18,4a,df,63), r(13,47,d6,6d), \ | ||
242 | r(ca,dc,31,d7), r(c1,d1,38,d9), r(dc,c6,23,cb), r(d7,cb,2a,c5), \ | ||
243 | r(e6,e8,15,ef), r(ed,e5,1c,e1), r(f0,f2,07,f3), r(fb,ff,0e,fd), \ | ||
244 | r(92,b4,79,a7), r(99,b9,70,a9), r(84,ae,6b,bb), r(8f,a3,62,b5), \ | ||
245 | r(be,80,5d,9f), r(b5,8d,54,91), r(a8,9a,4f,83), r(a3,97,46,8d) | ||
246 | |||
247 | #undef r | ||
248 | #define r r0 | ||
249 | |||
250 | const word rijndael_enc_im_tab[4][256] = { | ||
251 | { m_table }, | ||
252 | #undef r | ||
253 | #define r r1 | ||
254 | { m_table }, | ||
255 | #undef r | ||
256 | #define r r2 | ||
257 | { m_table }, | ||
258 | #undef r | ||
259 | #define r r3 | ||
260 | { m_table } | ||
261 | }; | ||
diff --git a/baseline/source/rijndael_enc/input_small.c b/baseline/source/rijndael_enc/input_small.c new file mode 100644 index 0000000..b3eee55 --- /dev/null +++ b/baseline/source/rijndael_enc/input_small.c | |||
@@ -0,0 +1,1963 @@ | |||
1 | unsigned char rijndael_enc_data[] = { | ||
2 | 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m', | ||
3 | 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s', | ||
4 | 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e', | ||
5 | 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s', | ||
6 | 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e', | ||
7 | 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y', | ||
8 | 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t', | ||
9 | 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e', | ||
10 | 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n', | ||
11 | 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s', | ||
12 | 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n', | ||
13 | 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s', | ||
14 | 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t', | ||
15 | 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b', | ||
16 | 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e', | ||
17 | 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r', | ||
18 | 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i', | ||
19 | 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d', | ||
20 | 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p', | ||
21 | 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y', | ||
22 | 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m', | ||
23 | 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d', | ||
24 | 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a', | ||
25 | 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o', | ||
26 | 'u','t','h','u','n','t','i','l','t','h','e','y','v','e','f','a', | ||
27 | 'd','e','d','B','u','t','t','r','u','s','t','m','e','i','n','2', | ||
28 | '0','y','e','a','r','s','y','o','u','l','l','l','o','o','k','b', | ||
29 | 'a','c','k','a','t','p','h','o','t','o','s','o','f','y','o','u', | ||
30 | 'r','s','e','l','f','a','n','d','r','e','c','a','l','l','i','n', | ||
31 | 'a','w','a','y','y','o','u','c','a','n','t','g','r','a','s','p', | ||
32 | 'n','o','w','h','o','w','m','u','c','h','p','o','s','s','i','b', | ||
33 | 'i','l','i','t','y','l','a','y','b','e','f','o','r','e','y','o', | ||
34 | 'u','a','n','d','h','o','w','f','a','b','u','l','o','u','s','y', | ||
35 | 'o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o', | ||
36 | 'u','a','r','e','n','o','t','a','s','f','a','t','a','s','y','o', | ||
37 | 'u','i','m','a','g','i','n','e','D','o','n','t','w','o','r','r', | ||
38 | 'y','a','b','o','u','t','t','h','e','f','u','t','u','r','e','O', | ||
39 | 'r','w','o','r','r','y','b','u','t','k','n','o','w','t','h','a', | ||
40 | 't','K','u','r','t','V','o','n','n','e','g','u','K','u','r','t', | ||
41 | 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c', | ||
42 | 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I', | ||
43 | 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e', | ||
44 | 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9', | ||
45 | '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f', | ||
46 | 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n', | ||
47 | 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u', | ||
48 | 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u', | ||
49 | 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r', | ||
50 | 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c', | ||
51 | 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v', | ||
52 | 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h', | ||
53 | 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y', | ||
54 | 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s', | ||
55 | 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n', | ||
56 | 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e', | ||
57 | 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i', | ||
58 | 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e', | ||
59 | 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r', | ||
60 | 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y', | ||
61 | 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y', | ||
62 | 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t', | ||
63 | 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e', | ||
64 | 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u', | ||
65 | 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B', | ||
66 | 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a', | ||
67 | 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a', | ||
68 | 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l', | ||
69 | 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y', | ||
70 | 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h', | ||
71 | 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t', | ||
72 | 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d', | ||
73 | 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e', | ||
74 | 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e', | ||
75 | 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a', | ||
76 | 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o', | ||
77 | 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r', | ||
78 | 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r', | ||
79 | 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n', | ||
80 | 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M', | ||
81 | 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l', | ||
82 | 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f', | ||
83 | '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I', | ||
84 | 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o', | ||
85 | 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f', | ||
86 | 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o', | ||
87 | 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e', | ||
88 | 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s', | ||
89 | 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o', | ||
90 | 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w', | ||
91 | 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m', | ||
92 | 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i', | ||
93 | 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a', | ||
94 | 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g', | ||
95 | 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d', | ||
96 | 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c', | ||
97 | 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e', | ||
98 | 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r', | ||
99 | 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d', | ||
100 | 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s', | ||
101 | 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b', | ||
102 | 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h', | ||
103 | 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d', | ||
104 | 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e', | ||
105 | 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k', | ||
106 | 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e', | ||
107 | 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a', | ||
108 | 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w', | ||
109 | 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i', | ||
110 | 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n', | ||
111 | 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r', | ||
112 | 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r', | ||
113 | 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m', | ||
114 | 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b', | ||
115 | 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o', | ||
116 | 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u', | ||
117 | 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e', | ||
118 | 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t', | ||
119 | 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t', | ||
120 | 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o', | ||
121 | 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n', | ||
122 | 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u', | ||
123 | 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e', | ||
124 | 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w', | ||
125 | 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t', | ||
126 | 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n', | ||
127 | 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r', | ||
128 | 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s', | ||
129 | 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f', | ||
130 | 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s', | ||
131 | 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h', | ||
132 | 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n', | ||
133 | 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l', | ||
134 | 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i', | ||
135 | 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w', | ||
136 | 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u', | ||
137 | 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n', | ||
138 | 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r', | ||
139 | 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d', | ||
140 | 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t', | ||
141 | 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e', | ||
142 | 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y', | ||
143 | 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c', | ||
144 | 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s', | ||
145 | 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w', | ||
146 | 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o', | ||
147 | 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l', | ||
148 | 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a', | ||
149 | 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u', | ||
150 | 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a', | ||
151 | 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i', | ||
152 | 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a', | ||
153 | 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w', | ||
154 | 'o','r','r','y','K','u','r','t','V','o','n','n','e','g','u','t', | ||
155 | 's','C','o','m','m','e','n','c','e','m','e','n','t','A','d','d', | ||
156 | 'r','e','s','s','a','t','M','I','T','L','a','d','i','e','s','a', | ||
157 | 'n','d','g','e','n','t','l','e','m','e','n','o','f','t','h','e', | ||
158 | 'c','l','a','s','s','o','f','9','7','W','e','a','r','s','u','n', | ||
159 | 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f', | ||
160 | 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p', | ||
161 | 'f','o','r','t','h','e','f','u','t','u','r','e','s','u','n','s', | ||
162 | 'c','r','e','e','n','w','o','u','l','d','b','e','i','t','T','h', | ||
163 | 'e','l','o','n','g','t','e','r','m','b','e','n','e','f','i','t', | ||
164 | 's','o','f','s','u','n','s','c','r','e','e','n','h','a','v','e', | ||
165 | 'b','e','e','n','p','r','o','v','e','d','b','y','s','c','i','e', | ||
166 | 'n','t','i','s','t','s','w','h','e','r','e','a','s','t','h','e', | ||
167 | 'r','e','s','t','o','f','m','y','a','d','v','i','c','e','h','a', | ||
168 | 's','n','o','b','a','s','i','s','m','o','r','e','r','e','l','i', | ||
169 | 'a','b','l','e','t','h','a','n','m','y','o','w','n','m','e','a', | ||
170 | 'n','d','e','r','i','n','g','e','x','p','e','r','i','e','n','c', | ||
171 | 'e','I','w','i','l','l','d','i','s','p','e','n','s','e','t','h', | ||
172 | 'i','s','a','d','v','i','c','e','n','o','w','E','n','j','o','y', | ||
173 | 't','h','e','p','o','w','e','r','a','n','d','b','e','a','u','t', | ||
174 | 'y','o','f','y','o','u','r','y','o','u','t','h','O','h','n','e', | ||
175 | 'v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n','o', | ||
176 | 't','u','n','d','e','r','s','t','a','n','d','t','h','e','p','o', | ||
177 | 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o', | ||
178 | 'u','r','y','o','u','t','h','u','n','t','i','l','t','h','e','y', | ||
179 | 'v','e','f','a','d','e','d','B','u','t','t','r','u','s','t','m', | ||
180 | 'e','i','n','2','0','y','e','a','r','s','y','o','u','l','l','l', | ||
181 | 'o','o','k','b','a','c','k','a','t','p','h','o','t','o','s','o', | ||
182 | 'f','y','o','u','r','s','e','l','f','a','n','d','r','e','c','a', | ||
183 | 'l','l','i','n','a','w','a','y','y','o','u','c','a','n','t','g', | ||
184 | 'r','a','s','p','n','o','w','h','o','w','m','u','c','h','p','o', | ||
185 | 's','s','i','b','i','l','i','t','y','l','a','y','b','e','f','o', | ||
186 | 'r','e','y','o','u','a','n','d','h','o','w','f','a','b','u','l', | ||
187 | 'o','u','s','y','o','u','r','e','a','l','l','y','l','o','o','k', | ||
188 | 'e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a','t', | ||
189 | 'a','s','y','o','u','i','m','a','g','i','n','e','D','o','n','t', | ||
190 | 'w','o','r','r','y','a','b','o','u','t','t','h','e','f','u','t', | ||
191 | 'u','r','e','O','r','w','o','r','r','y','b','u','t','k','n','o', | ||
192 | 'w','t','h','a','t','K','u','r','t','V','o','n','n','e','g','u', | ||
193 | 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m', | ||
194 | 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s', | ||
195 | 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e', | ||
196 | 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s', | ||
197 | 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e', | ||
198 | 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y', | ||
199 | 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t', | ||
200 | 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e', | ||
201 | 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n', | ||
202 | 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s', | ||
203 | 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n', | ||
204 | 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s', | ||
205 | 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t', | ||
206 | 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b', | ||
207 | 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e', | ||
208 | 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r', | ||
209 | 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i', | ||
210 | 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d', | ||
211 | 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p', | ||
212 | 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y', | ||
213 | 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m', | ||
214 | 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d', | ||
215 | 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a', | ||
216 | 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o', | ||
217 | 'u','t','h','u','n','t','i','l','t','h','e','y','v','e','f','a', | ||
218 | 'd','e','d','B','u','t','t','r','u','s','t','m','e','i','n','2', | ||
219 | '0','y','e','a','r','s','y','o','u','l','l','l','o','o','k','b', | ||
220 | 'a','c','k','a','t','p','h','o','t','o','s','o','f','y','o','u', | ||
221 | 'r','s','e','l','f','a','n','d','r','e','c','a','l','l','i','n', | ||
222 | 'a','w','a','y','y','o','u','c','a','n','t','g','r','a','s','p', | ||
223 | 'n','o','w','h','o','w','m','u','c','h','p','o','s','s','i','b', | ||
224 | 'i','l','i','t','y','l','a','y','b','e','f','o','r','e','y','o', | ||
225 | 'u','a','n','d','h','o','w','f','a','b','u','l','o','u','s','y', | ||
226 | 'o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o', | ||
227 | 'u','a','r','e','n','o','t','a','s','f','a','t','a','s','y','o', | ||
228 | 'u','i','m','a','g','i','n','e','D','o','n','t','w','o','r','r', | ||
229 | 'y','a','b','o','u','t','t','h','e','f','u','t','u','r','e','O', | ||
230 | 'r','w','o','r','r','y','b','u','t','k','n','o','w','t','h','a', | ||
231 | 't','K','u','r','t','V','o','n','n','e','g','u','t','s','C','o', | ||
232 | 'm','m','e','n','c','e','m','e','n','t','A','d','d','r','e','s', | ||
233 | 's','a','t','M','I','T','L','a','d','i','e','s','a','n','d','g', | ||
234 | 'e','n','t','l','e','m','e','n','o','f','t','h','e','c','l','a', | ||
235 | 's','s','o','f','9','7','W','e','a','r','s','u','n','s','c','r', | ||
236 | 'e','e','n','I','f','I','c','o','u','l','d','o','f','f','e','r', | ||
237 | 'y','o','u','o','n','l','y','o','n','e','t','i','p','f','o','r', | ||
238 | 't','h','e','f','u','t','u','r','e','s','u','n','s','c','r','e', | ||
239 | 'e','n','w','o','u','l','d','b','e','i','t','T','h','e','l','o', | ||
240 | 'n','g','t','e','r','m','b','e','n','e','f','i','t','s','o','f', | ||
241 | 's','u','n','s','c','r','e','e','n','h','a','v','e','b','e','e', | ||
242 | 'n','p','r','o','v','e','d','b','y','s','c','i','e','n','t','i', | ||
243 | 's','t','s','w','h','e','r','e','a','s','t','h','e','r','e','s', | ||
244 | 't','o','f','m','y','a','d','v','i','c','e','h','a','s','n','o', | ||
245 | 'b','a','s','i','s','m','o','r','e','r','e','l','i','a','b','l', | ||
246 | 'e','t','h','a','n','m','y','o','w','n','m','e','a','n','d','e', | ||
247 | 'r','i','n','g','e','x','p','e','r','i','e','n','c','e','I','w', | ||
248 | 'i','l','l','d','i','s','p','e','n','s','e','t','h','i','s','a', | ||
249 | 'd','v','i','c','e','n','o','w','E','n','j','o','y','t','h','e', | ||
250 | 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f', | ||
251 | 'y','o','u','r','y','o','u','t','h','O','h','n','e','v','e','r', | ||
252 | 'm','i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n', | ||
253 | 'd','e','r','s','t','a','n','d','t','h','e','p','o','w','e','r', | ||
254 | 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y', | ||
255 | 'o','u','t','h','u','n','t','i','l','t','h','e','y','v','e','f', | ||
256 | 'a','d','e','d','B','u','t','t','r','u','s','t','m','e','i','n', | ||
257 | '2','0','y','e','a','r','s','y','o','u','l','l','l','o','o','k', | ||
258 | 'b','a','c','k','a','t','p','h','o','t','o','s','o','f','y','o', | ||
259 | 'u','r','s','e','l','f','a','n','d','r','e','c','a','l','l','i', | ||
260 | 'n','a','w','a','y','y','o','u','c','a','n','t','g','r','a','s', | ||
261 | 'p','n','o','w','h','o','w','m','u','c','h','p','o','s','s','i', | ||
262 | 'b','i','l','i','t','y','l','a','y','b','e','f','o','r','e','y', | ||
263 | 'o','u','a','n','d','h','o','w','f','a','b','u','l','o','u','s', | ||
264 | 'y','o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y', | ||
265 | 'o','u','a','r','e','n','o','t','a','s','f','a','t','a','s','y', | ||
266 | 'o','u','i','m','a','g','i','n','e','D','o','n','t','w','o','r', | ||
267 | 'r','y','a','b','o','u','t','t','h','e','f','u','t','u','r','e', | ||
268 | 'O','r','w','o','r','r','y','b','u','t','k','n','o','w','t','h', | ||
269 | 'a','t','K','u','r','t','V','o','n','n','e','g','u','t','s','C', | ||
270 | 'o','m','m','e','n','c','e','m','e','n','t','A','d','d','r','e', | ||
271 | 's','s','a','t','M','I','T','L','a','d','i','e','s','a','n','d', | ||
272 | 'g','e','n','t','l','e','m','e','n','o','f','t','h','e','c','l', | ||
273 | 'a','s','s','o','f','9','7','W','e','a','r','s','u','n','s','c', | ||
274 | 'r','e','e','n','I','f','I','c','o','u','l','d','o','f','f','e', | ||
275 | 'r','y','o','u','o','n','l','y','o','n','e','t','i','p','f','o', | ||
276 | 'r','t','h','e','f','u','t','u','r','e','s','u','n','s','c','r', | ||
277 | 'e','e','n','w','o','u','l','d','b','e','i','t','T','h','e','l', | ||
278 | 'o','n','g','t','e','r','m','b','e','n','e','f','i','t','s','o', | ||
279 | 'f','s','u','n','s','c','r','e','e','n','h','a','v','e','b','e', | ||
280 | 'e','n','p','r','o','v','e','d','b','y','s','c','i','e','n','t', | ||
281 | 'i','s','t','s','w','h','e','r','e','a','s','t','h','e','r','e', | ||
282 | 's','t','o','f','m','y','a','d','v','i','c','e','h','a','s','n', | ||
283 | 'o','b','a','s','i','s','m','o','r','e','r','e','l','i','a','b', | ||
284 | 'l','e','t','h','a','n','m','y','o','w','n','m','e','a','n','d', | ||
285 | 'e','r','i','n','g','e','x','p','e','r','i','e','n','c','e','I', | ||
286 | 'w','i','l','l','d','i','s','p','e','n','s','e','t','h','i','s', | ||
287 | 'a','d','v','i','c','e','n','o','w','E','n','j','o','y','t','h', | ||
288 | 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o', | ||
289 | 'f','y','o','u','r','y','o','u','t','h','O','h','n','e','v','e', | ||
290 | 'r','m','i','n','d','Y','o','u','w','i','l','l','n','o','t','u', | ||
291 | 'n','d','e','r','s','t','a','n','d','t','h','e','p','o','w','e', | ||
292 | 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r', | ||
293 | 'y','o','u','t','h','u','n','t','i','l','t','h','e','y','v','e', | ||
294 | 'f','a','d','e','d','B','u','t','t','r','u','s','t','m','e','i', | ||
295 | 'n','2','0','y','e','a','r','s','y','o','u','l','l','l','o','o', | ||
296 | 'k','b','a','c','k','a','t','p','h','o','t','o','s','o','f','y', | ||
297 | 'o','u','r','s','e','l','f','a','n','d','r','e','c','a','l','l', | ||
298 | 'i','n','a','w','a','y','y','o','u','c','a','n','t','g','r','a', | ||
299 | 's','p','n','o','w','h','o','w','m','u','c','h','p','o','s','s', | ||
300 | 'i','b','i','l','i','t','y','l','a','y','b','e','f','o','r','e', | ||
301 | 'y','o','u','a','n','d','h','o','w','f','a','b','u','l','o','u', | ||
302 | 's','y','o','u','r','e','a','l','l','y','l','o','o','k','e','d', | ||
303 | 'Y','o','u','a','r','e','n','o','t','a','s','f','a','t','a','s', | ||
304 | 'y','o','u','i','m','a','g','i','n','e','D','o','n','t','w','o', | ||
305 | 'r','r','y','a','b','o','u','t','t','h','e','f','u','t','u','r', | ||
306 | 'e','O','r','w','o','r','r','y','b','u','t','k','n','o','w','t', | ||
307 | 'h','a','t','t','s','C','o','m','m','e','n','c','e','m','e','n', | ||
308 | 't','A','d','d','r','e','s','s','a','t','M','I','T','L','a','d', | ||
309 | 'i','e','s','a','n','d','g','e','n','t','l','e','m','e','n','o', | ||
310 | 'f','t','h','e','c','l','a','s','s','o','f','9','7','W','e','a', | ||
311 | 'r','s','u','n','s','c','r','e','e','n','I','f','I','c','o','u', | ||
312 | 'l','d','o','f','f','e','r','y','o','u','o','n','l','y','o','n', | ||
313 | 'e','t','i','p','f','o','r','t','h','e','f','u','t','u','r','e', | ||
314 | 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m', | ||
315 | 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s', | ||
316 | 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e', | ||
317 | 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s', | ||
318 | 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e', | ||
319 | 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y', | ||
320 | 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t', | ||
321 | 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e', | ||
322 | 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n', | ||
323 | 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s', | ||
324 | 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n', | ||
325 | 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s', | ||
326 | 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t', | ||
327 | 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b', | ||
328 | 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e', | ||
329 | 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r', | ||
330 | 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i', | ||
331 | 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d', | ||
332 | 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p', | ||
333 | 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y', | ||
334 | 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m', | ||
335 | 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d', | ||
336 | 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a', | ||
337 | 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o', | ||
338 | 'u','t','h','u','n','t','i','l','t','h','e','y','v','e','f','a', | ||
339 | 'd','e','d','B','u','t','t','r','u','s','t','m','e','i','n','2', | ||
340 | '0','y','e','a','r','s','y','o','u','l','l','l','o','o','k','b', | ||
341 | 'a','c','k','a','t','p','h','o','t','o','s','o','f','y','o','u', | ||
342 | 'r','s','e','l','f','a','n','d','r','e','c','a','l','l','i','n', | ||
343 | 'a','w','a','y','y','o','u','c','a','n','t','g','r','a','s','p', | ||
344 | 'n','o','w','h','o','w','m','u','c','h','p','o','s','s','i','b', | ||
345 | 'i','l','i','t','y','l','a','y','b','e','f','o','r','e','y','o', | ||
346 | 'u','a','n','d','h','o','w','f','a','b','u','l','o','u','s','y', | ||
347 | 'o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o', | ||
348 | 'u','a','r','e','n','o','t','a','s','f','a','t','a','s','y','o', | ||
349 | 'u','i','m','a','g','i','n','e','D','o','n','t','w','o','r','r', | ||
350 | 'y','a','b','o','u','t','t','h','e','f','u','t','u','r','e','O', | ||
351 | 'r','w','o','r','r','y','b','u','t','k','n','o','w','t','h','a', | ||
352 | 't','K','u','r','t','V','o','n','n','e','g','u','t','s','C','o', | ||
353 | 'm','m','e','n','c','e','m','e','n','t','A','d','d','r','e','s', | ||
354 | 's','a','t','M','I','T','L','a','d','i','e','s','a','n','d','g', | ||
355 | 'e','n','t','l','e','m','e','n','o','f','t','h','e','c','l','a', | ||
356 | 's','s','o','f','9','7','W','e','a','r','s','u','n','s','c','r', | ||
357 | 'e','e','n','I','f','I','c','o','u','l','d','o','f','f','e','r', | ||
358 | 'y','o','u','o','n','l','y','o','n','e','t','i','p','f','o','r', | ||
359 | 't','h','e','f','u','t','u','r','e','s','u','n','s','c','r','e', | ||
360 | 'e','n','w','o','u','l','d','b','e','i','t','T','h','e','l','o', | ||
361 | 'n','g','t','e','r','m','b','e','n','e','f','i','t','s','o','f', | ||
362 | 's','u','n','s','c','r','e','e','n','h','a','v','e','b','e','e', | ||
363 | 'n','p','r','o','v','e','d','b','y','s','c','i','e','n','t','i', | ||
364 | 's','t','s','w','h','e','r','e','a','s','t','h','e','r','e','s', | ||
365 | 't','o','f','m','y','a','d','v','i','c','e','h','a','s','n','o', | ||
366 | 'b','a','s','i','s','m','o','r','e','r','e','l','i','a','b','l', | ||
367 | 'e','t','h','a','n','m','y','o','w','n','m','e','a','n','d','e', | ||
368 | 'r','i','n','g','e','x','p','e','r','i','e','n','c','e','I','w', | ||
369 | 'i','l','l','d','i','s','p','e','n','s','e','t','h','i','s','a', | ||
370 | 'd','v','i','c','e','n','o','w','E','n','j','o','y','t','h','e', | ||
371 | 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f', | ||
372 | 'y','o','u','r','y','o','u','t','h','O','h','n','e','v','e','r', | ||
373 | 'm','i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n', | ||
374 | 'd','e','r','s','t','a','n','d','t','h','e','p','o','w','e','r', | ||
375 | 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y', | ||
376 | 'o','u','t','h','u','n','t','i','l','t','h','e','y','v','e','f', | ||
377 | 'a','d','e','d','B','u','t','t','r','u','s','t','m','e','i','n', | ||
378 | '2','0','y','e','a','r','s','y','o','u','l','l','l','o','o','k', | ||
379 | 'b','a','c','k','a','t','p','h','o','t','o','s','o','f','y','o', | ||
380 | 'u','r','s','e','l','f','a','n','d','r','e','c','a','l','l','i', | ||
381 | 'n','a','w','a','y','y','o','u','c','a','n','t','g','r','a','s', | ||
382 | 'p','n','o','w','h','o','w','m','u','c','h','p','o','s','s','i', | ||
383 | 'b','i','l','i','t','y','l','a','y','b','e','f','o','r','e','y', | ||
384 | 'o','u','a','n','d','h','o','w','f','a','b','u','l','o','u','s', | ||
385 | 'y','o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y', | ||
386 | 'o','u','a','r','e','n','o','t','a','s','f','a','t','a','s','y', | ||
387 | 'o','u','i','m','a','g','i','n','e','D','o','n','t','w','o','r', | ||
388 | 'r','y','a','b','o','u','t','t','h','e','f','u','t','u','r','e', | ||
389 | 'O','r','w','o','r','r','y','b','u','t','k','n','o','w','t','h', | ||
390 | 'a','t','K','u','r','t','V','o','n','n','e','g','u','t','s','C', | ||
391 | 'o','m','m','e','n','c','e','m','e','n','t','A','d','d','r','e', | ||
392 | 's','s','a','t','M','I','T','L','a','d','i','e','s','a','n','d', | ||
393 | 'g','e','n','t','l','e','m','e','n','o','f','t','h','e','c','l', | ||
394 | 'a','s','s','o','f','9','7','W','e','a','r','s','u','n','s','c', | ||
395 | 'r','e','e','n','I','f','I','c','o','u','l','d','o','f','f','e', | ||
396 | 'r','y','o','u','o','n','l','y','o','n','e','t','i','p','f','o', | ||
397 | 'r','t','h','e','f','u','t','u','r','e','s','u','n','s','c','r', | ||
398 | 'e','e','n','w','o','u','l','d','b','e','i','t','T','h','e','l', | ||
399 | 'o','n','g','t','e','r','m','b','e','n','e','f','i','t','s','o', | ||
400 | 'f','s','u','n','s','c','r','e','e','n','h','a','v','e','b','e', | ||
401 | 'e','n','p','r','o','v','e','d','b','y','s','c','i','e','n','t', | ||
402 | 'i','s','t','s','w','h','e','r','e','a','s','t','h','e','r','e', | ||
403 | 's','t','o','f','m','y','a','d','v','i','c','e','h','a','s','n', | ||
404 | 'o','b','a','s','i','s','m','o','r','e','r','e','l','i','a','b', | ||
405 | 'l','e','t','h','a','n','m','y','o','w','n','m','e','a','n','d', | ||
406 | 'e','r','i','n','g','e','x','p','e','r','i','e','n','c','e','I', | ||
407 | 'w','i','l','l','d','i','s','p','e','n','s','e','t','h','i','s', | ||
408 | 'a','d','v','i','c','e','n','o','w','E','n','j','o','y','t','h', | ||
409 | 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o', | ||
410 | 'f','y','o','u','r','y','o','u','t','h','O','h','n','e','v','e', | ||
411 | 'r','m','i','n','d','Y','o','u','w','i','l','l','n','o','t','u', | ||
412 | 'n','d','e','r','s','t','a','n','d','t','h','e','p','o','w','e', | ||
413 | 'r','a','K','u','r','t','V','o','n','n','e','g','u','t','s','C', | ||
414 | 'o','m','m','e','n','c','e','m','e','n','t','A','d','d','r','e', | ||
415 | 's','s','a','t','M','I','T','L','a','d','i','e','s','a','n','d', | ||
416 | 'g','e','n','t','l','e','m','e','n','o','f','t','h','e','c','l', | ||
417 | 'a','s','s','o','f','9','7','W','e','a','r','s','u','n','s','c', | ||
418 | 'r','e','e','n','I','f','I','c','o','u','l','d','o','f','f','e', | ||
419 | 'r','y','o','u','o','n','l','y','o','n','e','t','i','p','f','o', | ||
420 | 'r','t','h','e','f','u','t','u','r','e','s','u','n','s','c','r', | ||
421 | 'e','e','n','w','o','u','l','d','b','e','i','t','T','h','e','l', | ||
422 | 'o','n','g','t','e','r','m','b','e','n','e','f','i','t','s','o', | ||
423 | 'f','s','u','n','s','c','r','e','e','n','h','a','v','e','b','e', | ||
424 | 'e','n','p','r','o','v','e','d','b','y','s','c','i','e','n','t', | ||
425 | 'i','s','t','s','w','h','e','r','e','a','s','t','h','e','r','e', | ||
426 | 's','t','o','f','m','y','a','d','v','i','c','e','h','a','s','n', | ||
427 | 'o','b','a','s','i','s','m','o','r','e','r','e','l','i','a','b', | ||
428 | 'l','e','t','h','a','n','m','y','o','w','n','m','e','a','n','d', | ||
429 | 'e','r','i','n','g','e','x','p','e','r','i','e','n','c','e','I', | ||
430 | 'w','i','l','l','d','i','s','p','e','n','s','e','t','h','i','s', | ||
431 | 'a','d','v','i','c','e','n','o','w','E','n','j','o','y','t','h', | ||
432 | 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o', | ||
433 | 'f','y','o','u','r','y','o','u','t','h','O','h','n','e','v','e', | ||
434 | 'r','m','i','n','d','Y','o','u','w','i','l','l','n','o','t','u', | ||
435 | 'n','d','e','r','s','t','a','n','d','t','h','e','p','o','w','e', | ||
436 | 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r', | ||
437 | 'y','o','u','t','h','u','n','t','i','l','t','h','e','y','v','e', | ||
438 | 'f','a','d','e','d','B','u','t','t','r','u','s','t','m','e','i', | ||
439 | 'n','2','0','y','e','a','r','s','y','o','u','l','l','l','o','o', | ||
440 | 'k','b','a','c','k','a','t','p','h','o','t','o','s','o','f','y', | ||
441 | 'o','u','r','s','e','l','f','a','n','d','r','e','c','a','l','l', | ||
442 | 'i','n','a','w','a','y','y','o','u','c','a','n','t','g','r','a', | ||
443 | 's','p','n','o','w','h','o','w','m','u','c','h','p','o','s','s', | ||
444 | 'i','b','i','l','i','t','y','l','a','y','b','e','f','o','r','e', | ||
445 | 'y','o','u','a','n','d','h','o','w','f','a','b','u','l','o','u', | ||
446 | 's','y','o','u','r','e','a','l','l','y','l','o','o','k','e','d', | ||
447 | 'Y','o','u','a','r','e','n','o','t','a','s','f','a','t','a','s', | ||
448 | 'y','o','u','i','m','a','g','i','n','e','D','o','n','t','w','o', | ||
449 | 'r','r','y','a','b','o','u','t','t','h','e','f','u','t','u','r', | ||
450 | 'e','O','r','w','o','r','r','y','b','u','t','k','n','o','w','t', | ||
451 | 'h','a','t','K','u','r','t','V','o','n','n','e','g','u','K','u', | ||
452 | 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e', | ||
453 | 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t', | ||
454 | 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t', | ||
455 | 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o', | ||
456 | 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n', | ||
457 | 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u', | ||
458 | 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e', | ||
459 | 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w', | ||
460 | 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t', | ||
461 | 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n', | ||
462 | 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r', | ||
463 | 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s', | ||
464 | 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f', | ||
465 | 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s', | ||
466 | 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h', | ||
467 | 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n', | ||
468 | 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l', | ||
469 | 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i', | ||
470 | 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w', | ||
471 | 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u', | ||
472 | 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n', | ||
473 | 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r', | ||
474 | 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d', | ||
475 | 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t', | ||
476 | 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e', | ||
477 | 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y', | ||
478 | 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c', | ||
479 | 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s', | ||
480 | 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w', | ||
481 | 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o', | ||
482 | 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l', | ||
483 | 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a', | ||
484 | 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u', | ||
485 | 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a', | ||
486 | 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i', | ||
487 | 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a', | ||
488 | 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w', | ||
489 | 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','K', | ||
490 | 'u','r','t','V','o','n','n','e','g','u','t','s','C','o','m','m', | ||
491 | 'e','n','c','e','m','e','n','t','A','d','d','r','e','s','s','a', | ||
492 | 't','M','I','T','L','a','d','i','e','s','a','n','d','g','e','n', | ||
493 | 't','l','e','m','e','n','o','f','t','h','e','c','l','a','s','s', | ||
494 | 'o','f','9','7','W','e','a','r','s','u','n','s','c','r','e','e', | ||
495 | 'n','I','f','I','c','o','u','l','d','o','f','f','e','r','y','o', | ||
496 | 'u','o','n','l','y','o','n','e','t','i','p','f','o','r','t','h', | ||
497 | 'e','f','u','t','u','r','e','s','u','n','s','c','r','e','e','n', | ||
498 | 'w','o','u','l','d','b','e','i','t','T','h','e','l','o','n','g', | ||
499 | 't','e','r','m','b','e','n','e','f','i','t','s','o','f','s','u', | ||
500 | 'n','s','c','r','e','e','n','h','a','v','e','b','e','e','n','p', | ||
501 | 'r','o','v','e','d','b','y','s','c','i','e','n','t','i','s','t', | ||
502 | 's','w','h','e','r','e','a','s','t','h','e','r','e','s','t','o', | ||
503 | 'f','m','y','a','d','v','i','c','e','h','a','s','n','o','b','a', | ||
504 | 's','i','s','m','o','r','e','r','e','l','i','a','b','l','e','t', | ||
505 | 'h','a','n','m','y','o','w','n','m','e','a','n','d','e','r','i', | ||
506 | 'n','g','e','x','p','e','r','i','e','n','c','e','I','w','i','l', | ||
507 | 'l','d','i','s','p','e','n','s','e','t','h','i','s','a','d','v', | ||
508 | 'i','c','e','n','o','w','E','n','j','o','y','t','h','e','p','o', | ||
509 | 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o', | ||
510 | 'u','r','y','o','u','t','h','O','h','n','e','v','e','r','m','i', | ||
511 | 'n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d','e', | ||
512 | 'r','s','t','a','n','d','t','h','e','p','o','w','e','r','a','n', | ||
513 | 'd','b','e','a','u','t','y','o','f','y','o','u','r','y','o','u', | ||
514 | 't','h','u','n','t','i','l','t','h','e','y','v','e','f','a','d', | ||
515 | 'e','d','B','u','t','t','r','u','s','t','m','e','i','n','2','0', | ||
516 | 'y','e','a','r','s','y','o','u','l','l','l','o','o','k','b','a', | ||
517 | 'c','k','a','t','p','h','o','t','o','s','o','f','y','o','u','r', | ||
518 | 's','e','l','f','a','n','d','r','e','c','a','l','l','i','n','a', | ||
519 | 'w','a','y','y','o','u','c','a','n','t','g','r','a','s','p','n', | ||
520 | 'o','w','h','o','w','m','u','c','h','p','o','s','s','i','b','i', | ||
521 | 'l','i','t','y','l','a','y','b','e','f','o','r','e','y','o','u', | ||
522 | 'a','n','d','h','o','w','f','a','b','u','l','o','u','s','y','o', | ||
523 | 'u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u', | ||
524 | 'a','r','e','n','o','t','a','s','f','a','t','a','s','y','o','u', | ||
525 | 'i','m','a','g','i','n','e','D','o','n','t','w','o','r','r','y', | ||
526 | 'a','b','o','u','t','t','h','e','f','u','t','u','r','e','O','r', | ||
527 | 'w','o','r','r','y','b','u','t','k','n','o','w','t','h','a','t', | ||
528 | 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m', | ||
529 | 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s', | ||
530 | 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e', | ||
531 | 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s', | ||
532 | 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e', | ||
533 | 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y', | ||
534 | 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t', | ||
535 | 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e', | ||
536 | 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n', | ||
537 | 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s', | ||
538 | 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n', | ||
539 | 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s', | ||
540 | 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t', | ||
541 | 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b', | ||
542 | 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e', | ||
543 | 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r', | ||
544 | 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i', | ||
545 | 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d', | ||
546 | 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p', | ||
547 | 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y', | ||
548 | 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m', | ||
549 | 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d', | ||
550 | 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a', | ||
551 | 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o', | ||
552 | 'u','t','h','u','n','t','i','l','t','h','e','y','v','e','f','a', | ||
553 | 'd','e','d','B','u','t','t','r','u','s','t','m','e','i','n','2', | ||
554 | '0','y','e','a','r','s','y','o','u','l','l','l','o','o','k','b', | ||
555 | 'a','c','k','a','t','p','h','o','t','o','s','o','f','y','o','u', | ||
556 | 'r','s','e','l','f','a','n','d','r','e','c','a','l','l','i','n', | ||
557 | 'a','w','a','y','y','o','u','c','a','n','t','g','r','a','s','p', | ||
558 | 'n','o','w','h','o','w','m','u','c','h','p','o','s','s','i','b', | ||
559 | 'i','l','i','t','y','l','a','y','b','e','f','o','r','e','y','o', | ||
560 | 'u','a','n','d','h','o','w','f','a','b','u','l','o','u','s','y', | ||
561 | 'o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o', | ||
562 | 'u','a','r','e','n','o','t','a','s','f','a','t','a','s','y','o', | ||
563 | 'u','i','m','a','g','i','n','e','D','o','n','t','w','o','r','r', | ||
564 | 'y','a','b','o','u','t','t','h','e','f','u','t','u','r','e','O', | ||
565 | 'r','w','o','r','r','y','b','u','t','k','n','o','w','t','h','a', | ||
566 | 't','t','s','C','o','m','m','e','n','c','e','m','e','n','t','A', | ||
567 | 'd','d','r','e','s','s','a','t','M','I','T','L','a','d','i','e', | ||
568 | 's','a','n','d','g','e','n','t','l','e','m','e','n','o','f','t', | ||
569 | 'h','e','c','l','a','s','s','o','f','9','7','W','e','a','r','s', | ||
570 | 'u','n','s','c','r','e','e','n','I','f','I','c','o','u','l','d', | ||
571 | 'o','f','f','e','r','y','o','u','o','n','l','y','o','n','e','t', | ||
572 | 'i','p','f','o','r','t','h','e','f','u','t','u','r','e','K','u', | ||
573 | 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e', | ||
574 | 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t', | ||
575 | 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t', | ||
576 | 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o', | ||
577 | 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n', | ||
578 | 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u', | ||
579 | 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e', | ||
580 | 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w', | ||
581 | 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t', | ||
582 | 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n', | ||
583 | 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r', | ||
584 | 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s', | ||
585 | 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f', | ||
586 | 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s', | ||
587 | 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h', | ||
588 | 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n', | ||
589 | 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l', | ||
590 | 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i', | ||
591 | 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w', | ||
592 | 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u', | ||
593 | 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n', | ||
594 | 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r', | ||
595 | 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d', | ||
596 | 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t', | ||
597 | 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e', | ||
598 | 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y', | ||
599 | 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c', | ||
600 | 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s', | ||
601 | 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w', | ||
602 | 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o', | ||
603 | 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l', | ||
604 | 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a', | ||
605 | 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u', | ||
606 | 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a', | ||
607 | 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i', | ||
608 | 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a', | ||
609 | 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w', | ||
610 | 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','K', | ||
611 | 'u','r','t','V','o','n','n','e','g','u','t','s','C','o','m','m', | ||
612 | 'e','n','c','e','m','e','n','t','A','d','d','r','e','s','s','a', | ||
613 | 't','M','I','T','L','a','d','i','e','s','a','n','d','g','e','n', | ||
614 | 't','l','e','m','e','n','o','f','t','h','e','c','l','a','s','s', | ||
615 | 'o','f','9','7','W','e','a','r','s','u','n','s','c','r','e','e', | ||
616 | 'n','I','f','I','c','o','u','l','d','o','f','f','e','r','y','o', | ||
617 | 'u','o','n','l','y','o','n','e','t','i','p','f','o','r','t','h', | ||
618 | 'e','f','u','t','u','r','e','s','u','n','s','c','r','e','e','n', | ||
619 | 'w','o','u','l','d','b','e','i','t','T','h','e','l','o','n','g', | ||
620 | 't','e','r','m','b','e','n','e','f','i','t','s','o','f','s','u', | ||
621 | 'n','s','c','r','e','e','n','h','a','v','e','b','e','e','n','p', | ||
622 | 'r','o','v','e','d','b','y','s','c','i','e','n','t','i','s','t', | ||
623 | 's','w','h','e','r','e','a','s','t','h','e','r','e','s','t','o', | ||
624 | 'f','m','y','a','d','v','i','c','e','h','a','s','n','o','b','a', | ||
625 | 's','i','s','m','o','r','e','r','e','l','i','a','b','l','e','t', | ||
626 | 'h','a','n','m','y','o','w','n','m','e','a','n','d','e','r','i', | ||
627 | 'n','g','e','x','p','e','r','i','e','n','c','e','I','w','i','l', | ||
628 | 'l','d','i','s','p','e','n','s','e','t','h','i','s','a','d','v', | ||
629 | 'i','c','e','n','o','w','E','n','j','o','y','t','h','e','p','o', | ||
630 | 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o', | ||
631 | 'u','r','y','o','u','t','h','O','h','n','e','v','e','r','m','i', | ||
632 | 'n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d','e', | ||
633 | 'r','s','t','a','n','d','t','h','e','p','o','w','e','r','a','n', | ||
634 | 'd','b','e','a','u','t','y','o','f','y','o','u','r','y','o','u', | ||
635 | 't','h','u','n','t','i','l','t','h','e','y','v','e','f','a','d', | ||
636 | 'e','d','B','u','t','t','r','u','s','t','m','e','i','n','2','0', | ||
637 | 'y','e','a','r','s','y','o','u','l','l','l','o','o','k','b','a', | ||
638 | 'c','k','a','t','p','h','o','t','o','s','o','f','y','o','u','r', | ||
639 | 's','e','l','f','a','n','d','r','e','c','a','l','l','i','n','a', | ||
640 | 'w','a','y','y','o','u','c','a','n','t','g','r','a','s','p','n', | ||
641 | 'o','w','h','o','w','m','u','c','h','p','o','s','s','i','b','i', | ||
642 | 'l','i','t','y','l','a','y','b','e','f','o','r','e','y','o','u', | ||
643 | 'a','n','d','h','o','w','f','a','b','u','l','o','u','s','y','o', | ||
644 | 'u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u', | ||
645 | 'a','r','e','n','o','t','a','s','f','a','t','a','s','y','o','u', | ||
646 | 'i','m','a','g','i','n','e','D','o','n','t','w','o','r','r','y', | ||
647 | 'a','b','o','u','t','t','h','e','f','u','t','u','r','e','O','r', | ||
648 | 'w','o','r','r','y','b','u','t','k','n','o','w','t','h','a','t', | ||
649 | 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m', | ||
650 | 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s', | ||
651 | 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e', | ||
652 | 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s', | ||
653 | 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e', | ||
654 | 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y', | ||
655 | 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t', | ||
656 | 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e', | ||
657 | 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n', | ||
658 | 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s', | ||
659 | 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n', | ||
660 | 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s', | ||
661 | 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t', | ||
662 | 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b', | ||
663 | 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e', | ||
664 | 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r', | ||
665 | 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i', | ||
666 | 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d', | ||
667 | 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p', | ||
668 | 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y', | ||
669 | 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m', | ||
670 | 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d', | ||
671 | 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a', | ||
672 | 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m', | ||
673 | 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s', | ||
674 | 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e', | ||
675 | 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s', | ||
676 | 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e', | ||
677 | 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y', | ||
678 | 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t', | ||
679 | 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e', | ||
680 | 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n', | ||
681 | 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s', | ||
682 | 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n', | ||
683 | 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s', | ||
684 | 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t', | ||
685 | 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b', | ||
686 | 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e', | ||
687 | 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r', | ||
688 | 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i', | ||
689 | 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d', | ||
690 | 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p', | ||
691 | 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y', | ||
692 | 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m', | ||
693 | 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d', | ||
694 | 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a', | ||
695 | 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o', | ||
696 | 'u','t','h','u','n','t','i','l','t','h','e','y','v','e','f','a', | ||
697 | 'd','e','d','B','u','t','t','r','u','s','t','m','e','i','n','2', | ||
698 | '0','y','e','a','r','s','y','o','u','l','l','l','o','o','k','b', | ||
699 | 'a','c','k','a','t','p','h','o','t','o','s','o','f','y','o','u', | ||
700 | 'r','s','e','l','f','a','n','d','r','e','c','a','l','l','i','n', | ||
701 | 'a','w','a','y','y','o','u','c','a','n','t','g','r','a','s','p', | ||
702 | 'n','o','w','h','o','w','m','u','c','h','p','o','s','s','i','b', | ||
703 | 'i','l','i','t','y','l','a','y','b','e','f','o','r','e','y','o', | ||
704 | 'u','a','n','d','h','o','w','f','a','b','u','l','o','u','s','y', | ||
705 | 'o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o', | ||
706 | 'u','a','r','e','n','o','t','a','s','f','a','t','a','s','y','o', | ||
707 | 'u','i','m','a','g','i','n','e','D','o','n','t','w','o','r','r', | ||
708 | 'y','a','b','o','u','t','t','h','e','f','u','t','u','r','e','O', | ||
709 | 'r','w','o','r','r','y','b','u','t','k','n','o','w','t','h','a', | ||
710 | 't','K','u','r','t','V','o','n','n','e','g','u','K','u','r','t', | ||
711 | 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c', | ||
712 | 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I', | ||
713 | 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e', | ||
714 | 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9', | ||
715 | '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f', | ||
716 | 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n', | ||
717 | 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u', | ||
718 | 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u', | ||
719 | 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r', | ||
720 | 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c', | ||
721 | 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v', | ||
722 | 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h', | ||
723 | 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y', | ||
724 | 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s', | ||
725 | 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n', | ||
726 | 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e', | ||
727 | 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i', | ||
728 | 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e', | ||
729 | 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r', | ||
730 | 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y', | ||
731 | 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y', | ||
732 | 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t', | ||
733 | 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e', | ||
734 | 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u', | ||
735 | 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B', | ||
736 | 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a', | ||
737 | 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a', | ||
738 | 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l', | ||
739 | 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y', | ||
740 | 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h', | ||
741 | 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t', | ||
742 | 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d', | ||
743 | 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e', | ||
744 | 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e', | ||
745 | 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a', | ||
746 | 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o', | ||
747 | 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r', | ||
748 | 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r', | ||
749 | 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n', | ||
750 | 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M', | ||
751 | 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l', | ||
752 | 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f', | ||
753 | '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I', | ||
754 | 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o', | ||
755 | 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f', | ||
756 | 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o', | ||
757 | 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e', | ||
758 | 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s', | ||
759 | 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o', | ||
760 | 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w', | ||
761 | 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m', | ||
762 | 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i', | ||
763 | 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a', | ||
764 | 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g', | ||
765 | 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d', | ||
766 | 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c', | ||
767 | 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e', | ||
768 | 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r', | ||
769 | 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d', | ||
770 | 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s', | ||
771 | 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b', | ||
772 | 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h', | ||
773 | 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d', | ||
774 | 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e', | ||
775 | 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k', | ||
776 | 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e', | ||
777 | 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a', | ||
778 | 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w', | ||
779 | 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i', | ||
780 | 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n', | ||
781 | 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r', | ||
782 | 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r', | ||
783 | 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m', | ||
784 | 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b', | ||
785 | 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o', | ||
786 | 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u', | ||
787 | 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e', | ||
788 | 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t', | ||
789 | 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t', | ||
790 | 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o', | ||
791 | 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n', | ||
792 | 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u', | ||
793 | 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e', | ||
794 | 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w', | ||
795 | 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t', | ||
796 | 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n', | ||
797 | 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r', | ||
798 | 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s', | ||
799 | 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f', | ||
800 | 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s', | ||
801 | 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h', | ||
802 | 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n', | ||
803 | 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l', | ||
804 | 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i', | ||
805 | 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w', | ||
806 | 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u', | ||
807 | 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n', | ||
808 | 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r', | ||
809 | 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d', | ||
810 | 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t', | ||
811 | 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e', | ||
812 | 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y', | ||
813 | 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c', | ||
814 | 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s', | ||
815 | 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w', | ||
816 | 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o', | ||
817 | 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l', | ||
818 | 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a', | ||
819 | 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u', | ||
820 | 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a', | ||
821 | 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i', | ||
822 | 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a', | ||
823 | 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w', | ||
824 | 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','t', | ||
825 | 's','C','o','m','m','e','n','c','e','m','e','n','t','A','d','d', | ||
826 | 'r','e','s','s','a','t','M','I','T','L','a','d','i','e','s','a', | ||
827 | 'n','d','g','e','n','t','l','e','m','e','n','o','f','t','h','e', | ||
828 | 'c','l','a','s','s','o','f','9','7','W','e','a','r','s','u','n', | ||
829 | 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f', | ||
830 | 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p', | ||
831 | 'f','o','r','t','h','e','f','u','t','u','r','e','K','u','r','t', | ||
832 | 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c', | ||
833 | 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I', | ||
834 | 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e', | ||
835 | 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9', | ||
836 | '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f', | ||
837 | 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n', | ||
838 | 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u', | ||
839 | 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u', | ||
840 | 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r', | ||
841 | 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c', | ||
842 | 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v', | ||
843 | 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h', | ||
844 | 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y', | ||
845 | 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s', | ||
846 | 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n', | ||
847 | 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e', | ||
848 | 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i', | ||
849 | 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e', | ||
850 | 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r', | ||
851 | 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y', | ||
852 | 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y', | ||
853 | 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t', | ||
854 | 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e', | ||
855 | 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u', | ||
856 | 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B', | ||
857 | 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a', | ||
858 | 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a', | ||
859 | 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l', | ||
860 | 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y', | ||
861 | 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h', | ||
862 | 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t', | ||
863 | 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d', | ||
864 | 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e', | ||
865 | 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e', | ||
866 | 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a', | ||
867 | 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o', | ||
868 | 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r', | ||
869 | 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r', | ||
870 | 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n', | ||
871 | 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M', | ||
872 | 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l', | ||
873 | 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f', | ||
874 | '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I', | ||
875 | 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o', | ||
876 | 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f', | ||
877 | 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o', | ||
878 | 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e', | ||
879 | 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s', | ||
880 | 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o', | ||
881 | 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w', | ||
882 | 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m', | ||
883 | 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i', | ||
884 | 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a', | ||
885 | 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g', | ||
886 | 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d', | ||
887 | 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c', | ||
888 | 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e', | ||
889 | 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r', | ||
890 | 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d', | ||
891 | 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s', | ||
892 | 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b', | ||
893 | 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h', | ||
894 | 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d', | ||
895 | 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e', | ||
896 | 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k', | ||
897 | 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e', | ||
898 | 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a', | ||
899 | 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w', | ||
900 | 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i', | ||
901 | 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n', | ||
902 | 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r', | ||
903 | 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r', | ||
904 | 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m', | ||
905 | 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b', | ||
906 | 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o', | ||
907 | 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u', | ||
908 | 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e', | ||
909 | 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t', | ||
910 | 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t', | ||
911 | 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o', | ||
912 | 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n', | ||
913 | 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u', | ||
914 | 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e', | ||
915 | 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w', | ||
916 | 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t', | ||
917 | 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n', | ||
918 | 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r', | ||
919 | 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s', | ||
920 | 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f', | ||
921 | 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s', | ||
922 | 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h', | ||
923 | 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n', | ||
924 | 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l', | ||
925 | 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i', | ||
926 | 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w', | ||
927 | 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u', | ||
928 | 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n', | ||
929 | 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r', | ||
930 | 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d', | ||
931 | 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t', | ||
932 | 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e', | ||
933 | 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y', | ||
934 | 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c', | ||
935 | 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s', | ||
936 | 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w', | ||
937 | 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o', | ||
938 | 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l', | ||
939 | 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a', | ||
940 | 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u', | ||
941 | 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a', | ||
942 | 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i', | ||
943 | 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a', | ||
944 | 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w', | ||
945 | 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','s', | ||
946 | 'u','n','s','c','r','e','e','n','w','o','u','l','d','b','e','i', | ||
947 | 't','T','h','e','l','o','n','g','t','e','r','m','b','e','n','e', | ||
948 | 'f','i','t','s','o','f','s','u','n','s','c','r','e','e','n','h', | ||
949 | 'a','v','e','b','e','e','n','p','r','o','v','e','d','b','y','s', | ||
950 | 'c','i','e','n','t','i','s','t','s','w','h','e','r','e','a','s', | ||
951 | 't','h','e','r','e','s','t','o','f','m','y','a','d','v','i','c', | ||
952 | 'e','h','a','s','n','o','b','a','s','i','s','m','o','r','e','r', | ||
953 | 'e','l','i','a','b','l','e','t','h','a','n','m','y','o','w','n', | ||
954 | 'm','e','a','n','d','e','r','i','n','g','e','x','p','e','r','i', | ||
955 | 'e','n','c','e','I','w','i','l','l','d','i','s','p','e','n','s', | ||
956 | 'e','t','h','i','s','a','d','v','i','c','e','n','o','w','E','n', | ||
957 | 'j','o','y','t','h','e','p','o','w','e','r','a','n','d','b','e', | ||
958 | 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','O', | ||
959 | 'h','n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l', | ||
960 | 'l','n','o','t','u','n','d','e','r','s','t','a','n','d','t','h', | ||
961 | 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o', | ||
962 | 'f','y','o','u','r','y','o','u','t','h','u','n','t','i','l','t', | ||
963 | 'h','e','y','v','e','f','a','d','e','d','B','u','t','t','r','u', | ||
964 | 's','t','m','e','i','n','2','0','y','e','a','r','s','y','o','u', | ||
965 | 'l','l','l','o','o','k','b','a','c','k','a','t','p','h','o','t', | ||
966 | 'o','s','o','f','y','o','u','r','s','e','l','f','a','n','d','r', | ||
967 | 'e','c','a','l','l','i','n','a','w','a','y','y','o','u','c','a', | ||
968 | 'n','t','g','r','a','s','p','n','o','w','h','o','w','m','u','c', | ||
969 | 'h','p','o','s','s','i','b','i','l','i','t','y','l','a','y','b', | ||
970 | 'e','f','o','r','e','y','o','u','a','n','d','h','o','w','f','a', | ||
971 | 'b','u','l','o','u','s','y','o','u','r','e','a','l','l','y','l', | ||
972 | 'o','o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s', | ||
973 | 'f','a','t','a','s','y','o','u','i','m','a','g','i','n','e','D', | ||
974 | 'o','n','t','w','o','r','r','y','a','b','o','u','t','t','h','e', | ||
975 | 'f','u','t','u','r','e','O','r','w','o','r','r','y','b','u','t', | ||
976 | 'k','n','o','w','t','h','a','t','n','d','b','e','a','u','t','y', | ||
977 | 'o','f','y','o','u','r','y','o','u','t','h','u','n','t','i','l', | ||
978 | 't','h','e','y','v','e','f','a','d','e','d','B','u','t','t','r', | ||
979 | 'u','s','t','m','e','i','n','2','0','y','e','a','r','s','y','o', | ||
980 | 'u','l','l','l','o','o','k','b','a','c','k','a','t','p','h','o', | ||
981 | 't','o','s','o','f','y','o','u','r','s','e','l','f','a','n','d', | ||
982 | 'r','e','c','a','l','l','i','n','a','w','a','y','y','o','u','c', | ||
983 | 'a','n','t','g','r','a','s','p','n','o','w','h','o','w','m','u', | ||
984 | 'c','h','p','o','s','s','i','b','i','l','i','t','y','l','a','y', | ||
985 | 'b','e','f','o','r','e','y','o','u','a','n','d','h','o','w','f', | ||
986 | 'a','b','u','l','o','u','s','y','o','u','r','e','a','l','l','y', | ||
987 | 'l','o','o','k','e','d','Y','o','u','a','r','e','n','o','t','a', | ||
988 | 's','f','a','t','a','s','y','o','u','i','m','a','g','i','n','e', | ||
989 | 'D','o','n','t','w','o','r','r','y','a','b','o','u','t','t','h', | ||
990 | 'e','f','u','t','u','r','e','O','r','w','o','r','r','y','b','u', | ||
991 | 't','k','n','o','w','t','h','a','t','s','u','n','s','c','r','e', | ||
992 | 'e','n','w','o','u','l','d','b','e','i','t','T','h','e','l','o', | ||
993 | 'n','g','t','e','r','m','b','e','n','e','f','i','t','s','o','f', | ||
994 | 's','u','n','s','c','r','e','e','n','h','a','v','e','b','e','e', | ||
995 | 'n','p','r','o','v','e','d','b','y','s','c','i','e','n','t','i', | ||
996 | 's','t','s','w','h','e','r','e','a','s','t','h','e','r','e','s', | ||
997 | 't','o','f','m','y','a','d','v','i','c','e','h','a','s','n','o', | ||
998 | 'b','a','s','i','s','m','o','r','e','r','e','l','i','a','b','l', | ||
999 | 'e','t','h','a','n','m','y','o','w','n','m','e','a','n','d','e', | ||
1000 | 'r','i','n','g','e','x','p','e','r','i','e','n','c','e','I','w', | ||
1001 | 'i','l','l','d','i','s','p','e','n','s','e','t','h','i','s','a', | ||
1002 | 'd','v','i','c','e','n','o','w','E','n','j','o','y','t','h','e', | ||
1003 | 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f', | ||
1004 | 'y','o','u','r','y','o','u','t','h','O','h','n','e','v','e','r', | ||
1005 | 'm','i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n', | ||
1006 | 'd','e','r','s','t','a','n','d','t','h','e','p','o','w','e','r', | ||
1007 | 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y', | ||
1008 | 'o','u','t','h','u','n','t','i','l','t','h','e','y','v','e','f', | ||
1009 | 'a','d','e','d','B','u','t','t','r','u','s','t','m','e','i','n', | ||
1010 | '2','0','y','e','a','r','s','y','o','u','l','l','l','o','o','k', | ||
1011 | 'b','a','c','k','a','t','p','h','o','t','o','s','o','f','y','o', | ||
1012 | 'u','r','s','e','l','f','a','n','d','r','e','c','a','l','l','i', | ||
1013 | 'n','a','w','a','y','y','o','u','c','a','n','t','g','r','a','s', | ||
1014 | 'p','n','o','w','h','o','w','m','u','c','h','p','o','s','s','i', | ||
1015 | 'b','i','l','i','t','y','l','a','y','b','e','f','o','r','e','y', | ||
1016 | 'o','u','a','n','d','h','o','w','f','a','b','u','l','o','u','s', | ||
1017 | 'y','o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y', | ||
1018 | 'o','u','a','r','e','n','o','t','a','s','f','a','t','a','s','y', | ||
1019 | 'o','u','i','m','a','g','i','n','e','D','o','n','t','w','o','r', | ||
1020 | 'r','y','a','b','o','u','t','t','h','e','f','u','t','u','r','e', | ||
1021 | 'O','r','w','o','r','r','y','b','u','t','k','n','o','w','t','h', | ||
1022 | 'a','t','n','d','b','e','a','u','t','y','o','f','y','o','u','r', | ||
1023 | 'y','o','u','t','h','u','n','t','i','l','t','h','e','y','v','e', | ||
1024 | 'f','a','d','e','d','B','u','t','t','r','u','s','t','m','e','i', | ||
1025 | 'n','2','0','y','e','a','r','s','y','o','u','l','l','l','o','o', | ||
1026 | 'k','b','a','c','k','a','t','p','h','o','t','o','s','o','f','y', | ||
1027 | 'o','u','r','s','e','l','f','a','n','d','r','e','c','a','l','l', | ||
1028 | 'i','n','a','w','a','y','y','o','u','c','a','n','t','g','r','a', | ||
1029 | 's','p','n','o','w','h','o','w','m','u','c','h','p','o','s','s', | ||
1030 | 'i','b','i','l','i','t','y','l','a','y','b','e','f','o','r','e', | ||
1031 | 'y','o','u','a','n','d','h','o','w','f','a','b','u','l','o','u', | ||
1032 | 's','y','o','u','r','e','a','l','l','y','l','o','o','k','e','d', | ||
1033 | 'Y','o','u','a','r','e','n','o','t','a','s','f','a','t','a','s', | ||
1034 | 'y','o','u','i','m','a','g','i','n','e','D','o','n','t','w','o', | ||
1035 | 'r','r','y','a','b','o','u','t','t','h','e','f','u','t','u','r', | ||
1036 | 'e','O','r','w','o','r','r','y','b','u','t','k','n','o','w','t', | ||
1037 | 'h','a','t','s','u','n','s','c','r','e','e','n','w','o','u','l', | ||
1038 | 'd','b','e','i','t','T','h','e','l','o','n','g','t','e','r','m', | ||
1039 | 'b','e','n','e','f','i','t','s','o','f','s','u','n','s','c','r', | ||
1040 | 'e','e','n','h','a','v','e','b','e','e','n','p','r','o','v','e', | ||
1041 | 'd','b','y','s','c','i','e','n','t','i','s','t','s','w','h','e', | ||
1042 | 'r','e','a','s','t','h','e','r','e','s','t','o','f','m','y','a', | ||
1043 | 'd','v','i','c','e','h','a','s','n','o','b','a','s','i','s','m', | ||
1044 | 'o','r','e','r','e','l','i','a','b','l','e','t','h','a','n','m', | ||
1045 | 'y','o','w','n','m','e','a','n','d','e','r','i','n','g','e','x', | ||
1046 | 'p','e','r','i','e','n','c','e','I','w','i','l','l','d','i','s', | ||
1047 | 'p','e','n','s','e','t','h','i','s','a','d','v','i','c','e','n', | ||
1048 | 'o','w','E','n','j','o','y','t','h','e','p','o','w','e','r','a', | ||
1049 | 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o', | ||
1050 | 'u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y','o', | ||
1051 | 'u','w','i','l','l','n','o','t','u','n','d','e','r','s','t','a', | ||
1052 | 'n','d','t','h','e','p','o','w','e','r','a','n','d','b','e','a', | ||
1053 | 'u','t','y','o','f','y','o','u','r','y','o','u','t','h','u','n', | ||
1054 | 't','i','l','t','h','e','y','v','e','f','a','d','e','d','B','u', | ||
1055 | 't','t','r','u','s','t','m','e','i','n','2','0','y','e','a','r', | ||
1056 | 's','y','o','u','l','l','l','o','o','k','b','a','c','k','a','t', | ||
1057 | 'p','h','o','t','o','s','o','f','y','o','u','r','s','e','l','f', | ||
1058 | 'a','n','d','r','e','c','a','l','l','i','n','a','w','a','y','y', | ||
1059 | 'o','u','c','a','n','t','g','r','a','s','p','n','o','w','h','o', | ||
1060 | 'w','m','u','c','h','p','o','s','s','i','b','i','l','i','t','y', | ||
1061 | 'l','a','y','b','e','f','o','r','e','y','o','u','a','n','d','h', | ||
1062 | 'o','w','f','a','b','u','l','o','u','s','y','o','u','r','e','a', | ||
1063 | 'l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e','n', | ||
1064 | 'o','t','a','s','f','a','t','a','s','y','o','u','i','m','a','g', | ||
1065 | 'i','n','e','D','o','n','t','w','o','r','r','y','a','b','o','u', | ||
1066 | 't','t','h','e','f','u','t','u','r','e','O','r','w','o','r','r', | ||
1067 | 'y','b','u','t','k','n','o','w','t','h','a','t','b','u','t','k', | ||
1068 | 'n','o','w','t','h','a','t','t','s','C','o','m','m','e','n','c', | ||
1069 | 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I', | ||
1070 | 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e', | ||
1071 | 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9', | ||
1072 | '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f', | ||
1073 | 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n', | ||
1074 | 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u', | ||
1075 | 't','u','r','e','K','u','r','t','V','o','n','n','e','g','u','t', | ||
1076 | 's','C','o','m','m','e','n','c','e','m','e','n','t','A','d','d', | ||
1077 | 'r','e','s','s','a','t','M','I','T','L','a','d','i','e','s','a', | ||
1078 | 'n','d','g','e','n','t','l','e','m','e','n','o','f','t','h','e', | ||
1079 | 'c','l','a','s','s','o','f','9','7','W','e','a','r','s','u','n', | ||
1080 | 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f', | ||
1081 | 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p', | ||
1082 | 'f','o','r','t','h','e','f','u','t','u','r','e','s','u','n','s', | ||
1083 | 'c','r','e','e','n','w','o','u','l','d','b','e','i','t','T','h', | ||
1084 | 'e','l','o','n','g','t','e','r','m','b','e','n','e','f','i','t', | ||
1085 | 's','o','f','s','u','n','s','c','r','e','e','n','h','a','v','e', | ||
1086 | 'b','e','e','n','p','r','o','v','e','d','b','y','s','c','i','e', | ||
1087 | 'n','t','i','s','t','s','w','h','e','r','e','a','s','t','h','e', | ||
1088 | 'r','e','s','t','o','f','m','y','a','d','v','i','c','e','h','a', | ||
1089 | 's','n','o','b','a','s','i','s','m','o','r','e','r','e','l','i', | ||
1090 | 'a','b','l','e','t','h','a','n','m','y','o','w','n','m','e','a', | ||
1091 | 'n','d','e','r','i','n','g','e','x','p','e','r','i','e','n','c', | ||
1092 | 'e','I','w','i','l','l','d','i','s','p','e','n','s','e','t','h', | ||
1093 | 'i','s','a','d','v','i','c','e','n','o','w','E','n','j','o','y', | ||
1094 | 't','h','e','p','o','w','e','r','a','n','d','b','e','a','u','t', | ||
1095 | 'y','o','f','y','o','u','r','y','o','u','t','h','O','h','n','e', | ||
1096 | 'v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n','o', | ||
1097 | 't','u','n','d','e','r','s','t','a','n','d','t','h','e','p','o', | ||
1098 | 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o', | ||
1099 | 'u','r','y','o','u','t','h','u','n','t','i','l','t','h','e','y', | ||
1100 | 'v','e','f','a','d','e','d','B','u','t','t','r','u','s','t','m', | ||
1101 | 'e','i','n','2','0','y','e','a','r','s','y','o','u','l','l','l', | ||
1102 | 'o','o','k','b','a','c','k','a','t','p','h','o','t','o','s','o', | ||
1103 | 'f','y','o','u','r','s','e','l','f','a','n','d','r','e','c','a', | ||
1104 | 'l','l','i','n','a','w','a','y','y','o','u','c','a','n','t','g', | ||
1105 | 'r','a','s','p','n','o','w','h','o','w','m','u','c','h','p','o', | ||
1106 | 's','s','i','b','i','l','i','t','y','l','a','y','b','e','f','o', | ||
1107 | 'r','e','y','o','u','a','n','d','h','o','w','f','a','b','u','l', | ||
1108 | 'o','u','s','y','o','u','r','e','a','l','l','y','l','o','o','k', | ||
1109 | 'e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a','t', | ||
1110 | 'a','s','y','o','u','i','m','a','g','i','n','e','D','o','n','t', | ||
1111 | 'w','o','r','r','y','a','b','o','u','t','t','h','e','f','u','t', | ||
1112 | 'u','r','e','O','r','w','o','r','r','y','b','u','t','k','n','o', | ||
1113 | 'w','t','h','a','t','K','u','r','t','V','o','n','n','e','g','u', | ||
1114 | 't','s','C','o','m','m','e','n','c','e','m','e','n','t','A','d', | ||
1115 | 'd','r','e','s','s','a','t','M','I','T','L','a','d','i','e','s', | ||
1116 | 'a','n','d','g','e','n','t','l','e','m','e','n','o','f','t','h', | ||
1117 | 'e','c','l','a','s','s','o','f','9','7','W','e','a','r','s','u', | ||
1118 | 'n','s','c','r','e','e','n','I','f','I','c','o','u','l','d','o', | ||
1119 | 'f','f','e','r','y','o','u','o','n','l','y','o','n','e','t','i', | ||
1120 | 'p','f','o','r','t','h','e','f','u','t','u','r','e','s','u','n', | ||
1121 | 's','c','r','e','e','n','w','o','u','l','d','b','e','i','t','T', | ||
1122 | 'h','e','l','o','n','g','t','e','r','m','b','e','n','e','f','i', | ||
1123 | 't','s','o','f','s','u','n','s','c','r','e','e','n','h','a','v', | ||
1124 | 'e','b','e','e','n','p','r','o','v','e','d','b','y','s','c','i', | ||
1125 | 'e','n','t','i','s','t','s','w','h','e','r','e','a','s','t','h', | ||
1126 | 'e','r','e','s','t','o','f','m','y','a','d','v','i','c','e','h', | ||
1127 | 'a','s','n','o','b','a','s','i','s','m','o','r','e','r','e','l', | ||
1128 | 'i','a','b','l','e','t','h','a','n','m','y','o','w','n','m','e', | ||
1129 | 'a','n','d','e','r','i','n','g','e','x','p','e','r','i','e','n', | ||
1130 | 'c','e','I','w','i','l','l','d','i','s','p','e','n','s','e','t', | ||
1131 | 'h','i','s','a','d','v','i','c','e','n','o','w','E','n','j','o', | ||
1132 | 'y','t','h','e','p','o','w','e','r','a','n','d','b','e','a','u', | ||
1133 | 't','y','o','f','y','o','u','r','y','o','u','t','h','O','h','n', | ||
1134 | 'e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n', | ||
1135 | 'o','t','u','n','d','e','r','s','t','a','n','d','t','h','e','p', | ||
1136 | 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y', | ||
1137 | 'o','u','r','y','o','u','t','h','u','n','t','i','l','t','h','e', | ||
1138 | 'y','v','e','f','a','d','e','d','B','u','t','t','r','u','s','t', | ||
1139 | 'm','e','i','n','2','0','y','e','a','r','s','y','o','u','l','l', | ||
1140 | 'l','o','o','k','b','a','c','k','a','t','p','h','o','t','o','s', | ||
1141 | 'o','f','y','o','u','r','s','e','l','f','a','n','d','r','e','c', | ||
1142 | 'a','l','l','i','n','a','w','a','y','y','o','u','c','a','n','t', | ||
1143 | 'g','r','a','s','p','n','o','w','h','o','w','m','u','c','h','p', | ||
1144 | 'o','s','s','i','b','i','l','i','t','y','l','a','y','b','e','f', | ||
1145 | 'o','r','e','y','o','u','a','n','d','h','o','w','f','a','b','u', | ||
1146 | 'l','o','u','s','y','o','u','r','e','a','l','l','y','l','o','o', | ||
1147 | 'k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a', | ||
1148 | 't','a','s','y','o','u','i','m','a','g','i','n','e','D','o','n', | ||
1149 | 't','w','o','r','r','y','a','b','o','u','t','t','h','e','f','u', | ||
1150 | 't','u','r','e','O','r','w','o','r','r','y','b','u','t','k','n', | ||
1151 | 'o','w','t','h','a','t','K','u','r','t','V','o','n','n','e','g', | ||
1152 | 'u','t','s','C','o','m','m','e','n','c','e','m','e','n','t','A', | ||
1153 | 'd','d','r','e','s','s','a','t','M','I','T','L','a','d','i','e', | ||
1154 | 's','a','n','d','g','e','n','t','l','e','m','e','n','o','f','t', | ||
1155 | 'h','e','c','l','a','s','s','o','f','9','7','W','e','a','r','s', | ||
1156 | 'u','n','s','c','r','e','e','n','I','f','I','c','o','u','l','d', | ||
1157 | 'o','f','f','e','r','y','o','u','o','n','l','y','o','n','e','t', | ||
1158 | 'i','p','f','o','r','t','h','e','f','u','t','u','r','e','s','u', | ||
1159 | 'n','s','c','r','e','e','n','w','o','u','l','d','b','e','i','t', | ||
1160 | 'T','h','e','l','o','n','g','t','e','r','m','b','e','n','e','f', | ||
1161 | 'i','t','s','o','f','s','u','n','s','c','r','e','e','n','h','a', | ||
1162 | 'v','e','b','e','e','n','p','r','o','v','e','d','b','y','s','c', | ||
1163 | 'i','e','n','t','i','s','t','s','w','h','e','r','e','a','s','t', | ||
1164 | 'h','e','r','e','s','t','o','f','m','y','a','d','v','i','c','e', | ||
1165 | 'h','a','s','n','o','b','a','s','i','s','m','o','r','e','r','e', | ||
1166 | 'l','i','a','b','l','e','t','h','a','n','m','y','o','w','n','m', | ||
1167 | 'e','a','n','d','e','r','i','n','g','e','x','p','e','r','i','e', | ||
1168 | 'n','c','e','I','w','i','l','l','d','i','s','p','e','n','s','e', | ||
1169 | 't','h','i','s','a','d','v','i','c','e','n','o','w','E','n','j', | ||
1170 | 'o','y','t','h','e','p','o','w','e','r','a','n','d','b','e','a', | ||
1171 | 'u','t','y','o','f','y','o','u','r','y','o','u','t','h','O','h', | ||
1172 | 'n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l', | ||
1173 | 'n','o','t','u','n','d','e','r','s','t','a','n','d','t','h','e', | ||
1174 | 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f', | ||
1175 | 'y','o','u','r','y','o','u','t','h','u','n','t','i','l','t','h', | ||
1176 | 'e','y','v','e','f','a','d','e','d','B','u','t','t','r','u','s', | ||
1177 | 't','m','e','i','n','2','0','y','e','a','r','s','y','o','u','l', | ||
1178 | 'l','l','o','o','k','b','a','c','k','a','t','p','h','o','t','o', | ||
1179 | 's','o','f','y','o','u','r','s','e','l','f','a','n','d','r','e', | ||
1180 | 'c','a','l','l','i','n','a','w','a','y','y','o','u','c','a','n', | ||
1181 | 't','g','r','a','s','p','n','o','w','h','o','w','m','u','c','h', | ||
1182 | 'p','o','s','s','i','b','i','l','i','t','y','l','a','y','b','e', | ||
1183 | 'f','o','r','e','y','o','u','a','n','d','h','o','w','f','a','b', | ||
1184 | 'u','l','o','u','s','y','o','u','r','e','a','l','l','y','l','o', | ||
1185 | 'o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f', | ||
1186 | 'a','t','a','s','y','o','u','i','m','a','g','i','n','e','D','o', | ||
1187 | 'n','t','w','o','r','r','y','a','b','o','u','t','t','h','e','f', | ||
1188 | 'u','t','u','r','e','O','r','w','o','r','r','y','b','u','t','k', | ||
1189 | 'n','o','w','t','h','a','t','s','u','n','s','c','r','e','e','n', | ||
1190 | 'w','o','u','l','d','b','e','i','t','T','h','e','l','o','n','g', | ||
1191 | 't','e','r','m','b','e','n','e','f','i','t','s','o','f','s','u', | ||
1192 | 'n','s','c','r','e','e','n','h','a','v','e','b','e','e','n','p', | ||
1193 | 'r','o','v','e','d','b','y','s','c','i','e','n','t','i','s','t', | ||
1194 | 's','w','h','e','r','e','a','s','t','h','e','r','e','s','t','o', | ||
1195 | 'f','m','y','a','d','v','i','c','e','h','a','s','n','o','b','a', | ||
1196 | 's','i','s','m','o','r','e','r','e','l','i','a','b','l','e','t', | ||
1197 | 'h','a','n','m','y','o','w','n','m','e','a','n','d','e','r','i', | ||
1198 | 'n','g','e','x','p','e','r','i','e','n','c','e','I','w','i','l', | ||
1199 | 'l','d','i','s','p','e','n','s','e','t','h','i','s','a','d','v', | ||
1200 | 'i','c','e','n','o','w','E','n','j','o','y','t','h','e','p','o', | ||
1201 | 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o', | ||
1202 | 'u','r','y','o','u','t','h','O','h','n','e','v','e','r','m','i', | ||
1203 | 'n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d','e', | ||
1204 | 'r','s','t','a','n','d','t','h','e','p','o','w','e','r','a','n', | ||
1205 | 'd','b','e','a','u','t','y','o','f','y','o','u','r','y','o','u', | ||
1206 | 't','h','u','n','t','i','l','t','h','e','y','v','e','f','a','d', | ||
1207 | 'e','d','B','u','t','t','r','u','s','t','m','e','i','n','2','0', | ||
1208 | 'y','e','a','r','s','y','o','u','l','l','l','o','o','k','b','a', | ||
1209 | 'c','k','a','t','p','h','o','t','o','s','o','f','y','o','u','r', | ||
1210 | 's','e','l','f','a','n','d','r','e','c','a','l','l','i','n','a', | ||
1211 | 'w','a','y','y','o','u','c','a','n','t','g','r','a','s','p','n', | ||
1212 | 'o','w','h','o','w','m','u','c','h','p','o','s','s','i','b','i', | ||
1213 | 'l','i','t','y','l','a','y','b','e','f','o','r','e','y','o','u', | ||
1214 | 'a','n','d','h','o','w','f','a','b','u','l','o','u','s','y','o', | ||
1215 | 'u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u', | ||
1216 | 'a','r','e','n','o','t','a','s','f','a','t','a','s','y','o','u', | ||
1217 | 'i','m','a','g','i','n','e','D','o','n','t','w','o','r','r','y', | ||
1218 | 'a','b','o','u','t','t','h','e','f','u','t','u','r','e','O','r', | ||
1219 | 'w','o','r','r','y','b','u','t','k','n','o','w','t','h','a','t', | ||
1220 | '\n', 'l','a','s','s','o','f','9','7','W','e','a','r','s','u','n', | ||
1221 | 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f', | ||
1222 | 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p', | ||
1223 | 'f','o','r','t','h','e','f','u','t','u','r','e','K','u','r','t', | ||
1224 | 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c', | ||
1225 | 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I', | ||
1226 | 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e', | ||
1227 | 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9', | ||
1228 | '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f', | ||
1229 | 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n', | ||
1230 | 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u', | ||
1231 | 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u', | ||
1232 | 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r', | ||
1233 | 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c', | ||
1234 | 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v', | ||
1235 | 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h', | ||
1236 | 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y', | ||
1237 | 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s', | ||
1238 | 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n', | ||
1239 | 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e', | ||
1240 | 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i', | ||
1241 | 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e', | ||
1242 | 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r', | ||
1243 | 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y', | ||
1244 | 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y', | ||
1245 | 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t', | ||
1246 | 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e', | ||
1247 | 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u', | ||
1248 | 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B', | ||
1249 | 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a', | ||
1250 | 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a', | ||
1251 | 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l', | ||
1252 | 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y', | ||
1253 | 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h', | ||
1254 | 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t', | ||
1255 | 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d', | ||
1256 | 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e', | ||
1257 | 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e', | ||
1258 | 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a', | ||
1259 | 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o', | ||
1260 | 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r', | ||
1261 | 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r', | ||
1262 | 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n', | ||
1263 | 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M', | ||
1264 | 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l', | ||
1265 | 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f', | ||
1266 | '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I', | ||
1267 | 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o', | ||
1268 | 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f', | ||
1269 | 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o', | ||
1270 | 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e', | ||
1271 | 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s', | ||
1272 | 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o', | ||
1273 | 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w', | ||
1274 | 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m', | ||
1275 | 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i', | ||
1276 | 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a', | ||
1277 | 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g', | ||
1278 | 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d', | ||
1279 | 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c', | ||
1280 | 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e', | ||
1281 | 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r', | ||
1282 | 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d', | ||
1283 | 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s', | ||
1284 | 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b', | ||
1285 | 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h', | ||
1286 | 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d', | ||
1287 | 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e', | ||
1288 | 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k', | ||
1289 | 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e', | ||
1290 | 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a', | ||
1291 | 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w', | ||
1292 | 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i', | ||
1293 | 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n', | ||
1294 | 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r', | ||
1295 | 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r', | ||
1296 | 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m', | ||
1297 | 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b', | ||
1298 | 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o', | ||
1299 | 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u', | ||
1300 | 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e', | ||
1301 | 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t', | ||
1302 | 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t', | ||
1303 | 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o', | ||
1304 | 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n', | ||
1305 | 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u', | ||
1306 | 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e', | ||
1307 | 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w', | ||
1308 | 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t', | ||
1309 | 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n', | ||
1310 | 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r', | ||
1311 | 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s', | ||
1312 | 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f', | ||
1313 | 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s', | ||
1314 | 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h', | ||
1315 | 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n', | ||
1316 | 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l', | ||
1317 | 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i', | ||
1318 | 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w', | ||
1319 | 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u', | ||
1320 | 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n', | ||
1321 | 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r', | ||
1322 | 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d', | ||
1323 | 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t', | ||
1324 | 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e', | ||
1325 | 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y', | ||
1326 | 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c', | ||
1327 | 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s', | ||
1328 | 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w', | ||
1329 | 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o', | ||
1330 | 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l', | ||
1331 | 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a', | ||
1332 | 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u', | ||
1333 | 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a', | ||
1334 | 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i', | ||
1335 | 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a', | ||
1336 | 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w', | ||
1337 | 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','s', | ||
1338 | 'u','n','s','c','r','e','e','n','w','o','u','l','d','b','e','i', | ||
1339 | 't','T','h','e','l','o','n','g','t','e','r','m','b','e','n','e', | ||
1340 | 'f','i','t','s','o','f','s','u','n','s','c','r','e','e','n','h', | ||
1341 | 'a','v','e','b','e','e','n','p','r','o','v','e','d','b','y','s', | ||
1342 | 'c','i','e','n','t','i','s','t','s','w','h','e','r','e','a','s', | ||
1343 | 't','h','e','r','e','s','t','o','f','m','y','a','d','v','i','c', | ||
1344 | 'e','h','a','s','n','o','b','a','s','i','s','m','o','r','e','r', | ||
1345 | 'e','l','i','a','b','l','e','t','h','a','n','m','y','o','w','n', | ||
1346 | 'm','e','a','n','d','e','r','i','n','g','e','x','p','e','r','i', | ||
1347 | 'e','n','c','e','I','w','i','l','l','d','i','s','p','e','n','s', | ||
1348 | 'e','t','h','i','s','a','d','v','i','c','e','n','o','w','E','n', | ||
1349 | 'j','o','y','t','h','e','p','o','w','e','r','a','n','d','b','e', | ||
1350 | 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','O', | ||
1351 | 'h','n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l', | ||
1352 | 'l','n','o','t','u','n','d','e','r','s','t','a','n','d','t','h', | ||
1353 | 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o', | ||
1354 | 'f','y','o','u','r','y','o','u','t','h','u','n','t','i','l','t', | ||
1355 | 'h','e','y','v','e','f','a','d','e','d','B','u','t','t','r','u', | ||
1356 | 's','t','m','e','i','n','2','0','y','e','a','r','s','y','o','u', | ||
1357 | 'l','l','l','o','o','k','b','a','c','k','a','t','p','h','o','t', | ||
1358 | 'o','s','o','f','y','o','u','r','s','e','l','f','a','n','d','r', | ||
1359 | 'e','c','a','l','l','i','n','a','w','a','y','y','o','u','c','a', | ||
1360 | 'n','t','g','r','a','s','p','n','o','w','h','o','w','m','u','c', | ||
1361 | 'h','p','o','s','s','i','b','i','l','i','t','y','l','a','y','b', | ||
1362 | 'e','f','o','r','e','y','o','u','a','n','d','h','o','w','f','a', | ||
1363 | 'b','u','l','o','u','s','y','o','u','r','e','a','l','l','y','l', | ||
1364 | 'o','o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s', | ||
1365 | 'f','a','t','a','s','y','o','u','i','m','a','g','i','n','e','D', | ||
1366 | 'o','n','t','w','o','r','r','y','a','b','o','u','t','t','h','e', | ||
1367 | 'f','u','t','u','r','e','O','r','w','o','r','r','y','b','u','t', | ||
1368 | 'k','n','o','w','t','h','a','t','\n', 'l','a','s','s','o','f','9', | ||
1369 | '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f', | ||
1370 | 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n', | ||
1371 | 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u', | ||
1372 | 't','u','r','e','K','u','r','t','V','o','n','n','e','g','u','t', | ||
1373 | 's','C','o','m','m','e','n','c','e','m','e','n','t','A','d','d', | ||
1374 | 'r','e','s','s','a','t','M','I','T','L','a','d','i','e','s','a', | ||
1375 | 'n','d','g','e','n','t','l','e','m','e','n','o','f','t','h','e', | ||
1376 | 'c','l','a','s','s','o','f','9','7','W','e','a','r','s','u','n', | ||
1377 | 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f', | ||
1378 | 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p', | ||
1379 | 'f','o','r','t','h','e','f','u','t','u','r','e','s','u','n','s', | ||
1380 | 'c','r','e','e','n','w','o','u','l','d','b','e','i','t','T','h', | ||
1381 | 'e','l','o','n','g','t','e','r','m','b','e','n','e','f','i','t', | ||
1382 | 's','o','f','s','u','n','s','c','r','e','e','n','h','a','v','e', | ||
1383 | 'b','e','e','n','p','r','o','v','e','d','b','y','s','c','i','e', | ||
1384 | 'n','t','i','s','t','s','w','h','e','r','e','a','s','t','h','e', | ||
1385 | 'r','e','s','t','o','f','m','y','a','d','v','i','c','e','h','a', | ||
1386 | 's','n','o','b','a','s','i','s','m','o','r','e','r','e','l','i', | ||
1387 | 'a','b','l','e','t','h','a','n','m','y','o','w','n','m','e','a', | ||
1388 | 'n','d','e','r','i','n','g','e','x','p','e','r','i','e','n','c', | ||
1389 | 'e','I','w','i','l','l','d','i','s','p','e','n','s','e','t','h', | ||
1390 | 'i','s','a','d','v','i','c','e','n','o','w','E','n','j','o','y', | ||
1391 | 't','h','e','p','o','w','e','r','a','n','d','b','e','a','u','t', | ||
1392 | 'y','o','f','y','o','u','r','y','o','u','t','h','O','h','n','e', | ||
1393 | 'v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n','o', | ||
1394 | 't','u','n','d','e','r','s','t','a','n','d','t','h','e','p','o', | ||
1395 | 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o', | ||
1396 | 'u','r','y','o','u','t','h','u','n','t','i','l','t','h','e','y', | ||
1397 | 'v','e','f','a','d','e','d','B','u','t','t','r','u','s','t','m', | ||
1398 | 'e','i','n','2','0','y','e','a','r','s','y','o','u','l','l','l', | ||
1399 | 'o','o','k','b','a','c','k','a','t','p','h','o','t','o','s','o', | ||
1400 | 'f','y','o','u','r','s','e','l','f','a','n','d','r','e','c','a', | ||
1401 | 'l','l','i','n','a','w','a','y','y','o','u','c','a','n','t','g', | ||
1402 | 'r','a','s','p','n','o','w','h','o','w','m','u','c','h','p','o', | ||
1403 | 's','s','i','b','i','l','i','t','y','l','a','y','b','e','f','o', | ||
1404 | 'r','e','y','o','u','a','n','d','h','o','w','f','a','b','u','l', | ||
1405 | 'o','u','s','y','o','u','r','e','a','l','l','y','l','o','o','k', | ||
1406 | 'e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a','t', | ||
1407 | 'a','s','y','o','u','i','m','a','g','i','n','e','D','o','n','t', | ||
1408 | 'w','o','r','r','y','a','b','o','u','t','t','h','e','f','u','t', | ||
1409 | 'u','r','e','O','r','w','o','r','r','y','b','u','t','k','n','o', | ||
1410 | 'w','t','h','a','t','K','u','r','t','V','o','n','n','e','g','u', | ||
1411 | 't','s','C','o','m','m','e','n','c','e','m','e','n','t','A','d', | ||
1412 | 'd','r','e','s','s','a','t','M','I','T','L','a','d','i','e','s', | ||
1413 | 'a','n','d','g','e','n','t','l','e','m','e','n','o','f','t','h', | ||
1414 | 'e','c','l','a','s','s','o','f','9','7','W','e','a','r','s','u', | ||
1415 | 'n','s','c','r','e','e','n','I','f','I','c','o','u','l','d','o', | ||
1416 | 'f','f','e','r','y','o','u','o','n','l','y','o','n','e','t','i', | ||
1417 | 'p','f','o','r','t','h','e','f','u','t','u','r','e','s','u','n', | ||
1418 | 's','c','r','e','e','n','w','o','u','l','d','b','e','i','t','T', | ||
1419 | 'h','e','l','o','n','g','t','e','r','m','b','e','n','e','f','i', | ||
1420 | 't','s','o','f','s','u','n','s','c','r','e','e','n','h','a','v', | ||
1421 | 'e','b','e','e','n','p','r','o','v','e','d','b','y','s','c','i', | ||
1422 | 'e','n','t','i','s','t','s','w','h','e','r','e','a','s','t','h', | ||
1423 | 'e','r','e','s','t','o','f','m','y','a','d','v','i','c','e','h', | ||
1424 | 'a','s','n','o','b','a','s','i','s','m','o','r','e','r','e','l', | ||
1425 | 'i','a','b','l','e','t','h','a','n','m','y','o','w','n','m','e', | ||
1426 | 'a','n','d','e','r','i','n','g','e','x','p','e','r','i','e','n', | ||
1427 | 'c','e','I','w','i','l','l','d','i','s','p','e','n','s','e','t', | ||
1428 | 'h','i','s','a','d','v','i','c','e','n','o','w','E','n','j','o', | ||
1429 | 'y','t','h','e','p','o','w','e','r','a','n','d','b','e','a','u', | ||
1430 | 't','y','o','f','y','o','u','r','y','o','u','t','h','O','h','n', | ||
1431 | 'e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n', | ||
1432 | 'o','t','u','n','d','e','r','s','t','a','n','d','t','h','e','p', | ||
1433 | 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y', | ||
1434 | 'o','u','r','y','o','u','t','h','u','n','t','i','l','t','h','e', | ||
1435 | 'y','v','e','f','a','d','e','d','B','u','t','t','r','u','s','t', | ||
1436 | 'm','e','i','n','2','0','y','e','a','r','s','y','o','u','l','l', | ||
1437 | 'l','o','o','k','b','a','c','k','a','t','p','h','o','t','o','s', | ||
1438 | 'o','f','y','o','u','r','s','e','l','f','a','n','d','r','e','c', | ||
1439 | 'a','l','l','i','n','a','w','a','y','y','o','u','c','a','n','t', | ||
1440 | 'g','r','a','s','p','n','o','w','h','o','w','m','u','c','h','p', | ||
1441 | 'o','s','s','i','b','i','l','i','t','y','l','a','y','b','e','f', | ||
1442 | 'o','r','e','y','o','u','a','n','d','h','o','w','f','a','b','u', | ||
1443 | 'l','o','u','s','y','o','u','r','e','a','l','l','y','l','o','o', | ||
1444 | 'k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a', | ||
1445 | 't','a','s','y','o','u','i','m','a','g','i','n','e','D','o','n', | ||
1446 | 't','w','o','r','r','y','a','b','o','u','t','t','h','e','f','u', | ||
1447 | 't','u','r','e','O','r','w','o','r','r','y','b','u','t','k','n', | ||
1448 | 'o','w','t','h','a','t','K','u','r','t','V','o','n','n','e','g', | ||
1449 | 'u','t','s','C','o','m','m','e','n','c','e','m','e','n','t','A', | ||
1450 | 'd','d','r','e','s','s','a','t','M','I','T','L','a','d','i','e', | ||
1451 | 's','a','n','d','g','e','n','t','l','e','m','e','n','o','f','t', | ||
1452 | 'h','e','c','l','a','s','s','o','f','9','7','W','e','a','r','s', | ||
1453 | 'u','n','s','c','r','e','e','n','I','f','I','c','o','u','l','d', | ||
1454 | 'o','f','f','e','r','y','o','u','o','n','l','y','o','n','e','t', | ||
1455 | 'i','p','f','o','r','t','h','e','f','u','t','u','r','e','s','u', | ||
1456 | 'n','s','c','r','e','e','n','w','o','u','l','d','b','e','i','t', | ||
1457 | 'T','h','e','l','o','n','g','t','e','r','m','b','e','n','e','f', | ||
1458 | 'i','t','s','o','f','s','u','n','s','c','r','e','e','n','h','a', | ||
1459 | 'v','e','b','e','e','n','p','r','o','v','e','d','b','y','s','c', | ||
1460 | 'i','e','n','t','i','s','t','s','w','h','e','r','e','a','s','t', | ||
1461 | 'h','e','r','e','s','t','o','f','m','y','a','d','v','i','c','e', | ||
1462 | 'h','a','s','n','o','b','a','s','i','s','m','o','r','e','r','e', | ||
1463 | 'l','i','a','b','l','e','t','h','a','n','m','y','o','w','n','m', | ||
1464 | 'e','a','n','d','e','r','i','n','g','e','x','p','e','r','i','e', | ||
1465 | 'n','c','e','I','w','i','l','l','d','i','s','p','e','n','s','e', | ||
1466 | 't','h','i','s','a','d','v','i','c','e','n','o','w','E','n','j', | ||
1467 | 'o','y','t','h','e','p','o','w','e','r','a','n','d','b','e','a', | ||
1468 | 'u','t','y','o','f','y','o','u','r','y','o','u','t','h','O','h', | ||
1469 | 'n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l', | ||
1470 | 'n','o','t','u','n','d','e','r','s','t','a','n','d','t','h','e', | ||
1471 | 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f', | ||
1472 | 'y','o','u','r','y','o','u','t','h','u','n','t','i','l','t','h', | ||
1473 | 'e','y','v','e','f','a','d','e','d','B','u','t','t','r','u','s', | ||
1474 | 't','m','e','i','n','2','0','y','e','a','r','s','y','o','u','l', | ||
1475 | 'l','l','o','o','k','b','a','c','k','a','t','p','h','o','t','o', | ||
1476 | 's','o','f','y','o','u','r','s','e','l','f','a','n','d','r','e', | ||
1477 | 'c','a','l','l','i','n','a','w','a','y','y','o','u','c','a','n', | ||
1478 | 't','g','r','a','s','p','n','o','w','h','o','w','m','u','c','h', | ||
1479 | 'p','o','s','s','i','b','i','l','i','t','y','l','a','y','b','e', | ||
1480 | 'f','o','r','e','y','o','u','a','n','d','h','o','w','f','a','b', | ||
1481 | 'u','l','o','u','s','y','o','u','r','e','a','l','l','y','l','o', | ||
1482 | 'o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f', | ||
1483 | 'a','t','a','s','y','o','u','i','m','a','g','i','n','e','D','o', | ||
1484 | 'n','t','w','o','r','r','y','a','b','o','u','t','t','h','e','f', | ||
1485 | 'u','t','u','r','e','O','r','w','o','r','r','y','b','u','t','k', | ||
1486 | 'n','o','w','t','h','a','t','s','u','n','s','c','r','e','e','n', | ||
1487 | 'w','o','u','l','d','b','e','i','t','T','h','e','l','o','n','g', | ||
1488 | 't','e','r','m','b','e','n','e','f','i','t','s','o','f','s','u', | ||
1489 | 'n','s','c','r','e','e','n','h','a','v','e','b','e','e','n','p', | ||
1490 | 'r','o','v','e','d','b','y','s','c','i','e','n','t','i','s','t', | ||
1491 | 's','w','h','e','r','e','a','s','t','h','e','r','e','s','t','o', | ||
1492 | 'f','m','y','a','d','v','i','c','e','h','a','s','n','o','b','a', | ||
1493 | 's','i','s','m','o','r','e','r','e','l','i','a','b','l','e','t', | ||
1494 | 'h','a','n','m','y','o','w','n','m','e','a','n','d','e','r','i', | ||
1495 | 'n','g','e','x','p','e','r','i','e','n','c','e','I','w','i','l', | ||
1496 | 'l','d','i','s','p','e','n','s','e','t','h','i','s','a','d','v', | ||
1497 | 'i','c','e','n','o','w','E','n','j','o','y','t','h','e','p','o', | ||
1498 | 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o', | ||
1499 | 'u','r','y','o','u','t','h','O','h','n','e','v','e','r','m','i', | ||
1500 | 'n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d','e', | ||
1501 | 'r','s','t','a','n','d','t','h','e','p','o','w','e','r','a','n', | ||
1502 | 'd','b','e','a','u','t','y','o','f','y','o','u','r','y','o','u', | ||
1503 | 't','h','u','n','t','i','l','t','h','e','y','v','e','f','a','d', | ||
1504 | 'e','d','B','u','t','t','r','u','s','t','m','e','i','n','2','0', | ||
1505 | 'y','e','a','r','s','y','o','u','l','l','l','o','o','k','b','a', | ||
1506 | 'c','k','a','t','p','h','o','t','o','s','o','f','y','o','u','r', | ||
1507 | 's','e','l','f','a','n','d','r','e','c','a','l','l','i','n','a', | ||
1508 | 'w','a','y','y','o','u','c','a','n','t','g','r','a','s','p','n', | ||
1509 | 'o','w','h','o','w','m','u','c','h','p','o','s','s','i','b','i', | ||
1510 | 'l','i','t','y','l','a','y','b','e','f','o','r','e','y','o','u', | ||
1511 | 'a','n','d','h','o','w','f','a','b','u','l','o','u','s','y','o', | ||
1512 | 'u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u', | ||
1513 | 'a','r','e','n','o','t','a','s','f','a','t','a','s','y','o','u', | ||
1514 | 'i','m','a','g','i','n','e','D','o','n','t','w','o','r','r','y', | ||
1515 | 'a','b','o','u','t','t','h','e','f','u','t','u','r','e','O','r', | ||
1516 | 'w','o','r','r','y','b','u','t','k','n','o','w','t','h','a','t', | ||
1517 | '\n', 'l','a','s','s','o','f','9','7','W','e','a','r','s','u','n', | ||
1518 | 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f', | ||
1519 | 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p', | ||
1520 | 'f','o','r','t','h','e','f','u','t','u','r','e','K','u','r','t', | ||
1521 | 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c', | ||
1522 | 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I', | ||
1523 | 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e', | ||
1524 | 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9', | ||
1525 | '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f', | ||
1526 | 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n', | ||
1527 | 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u', | ||
1528 | 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u', | ||
1529 | 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r', | ||
1530 | 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c', | ||
1531 | 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v', | ||
1532 | 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h', | ||
1533 | 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y', | ||
1534 | 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s', | ||
1535 | 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n', | ||
1536 | 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e', | ||
1537 | 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i', | ||
1538 | 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e', | ||
1539 | 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r', | ||
1540 | 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y', | ||
1541 | 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y', | ||
1542 | 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t', | ||
1543 | 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e', | ||
1544 | 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u', | ||
1545 | 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B', | ||
1546 | 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a', | ||
1547 | 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a', | ||
1548 | 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l', | ||
1549 | 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y', | ||
1550 | 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h', | ||
1551 | 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t', | ||
1552 | 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d', | ||
1553 | 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e', | ||
1554 | 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e', | ||
1555 | 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a', | ||
1556 | 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o', | ||
1557 | 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r', | ||
1558 | 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r', | ||
1559 | 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n', | ||
1560 | 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M', | ||
1561 | 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l', | ||
1562 | 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f', | ||
1563 | '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I', | ||
1564 | 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o', | ||
1565 | 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f', | ||
1566 | 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o', | ||
1567 | 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e', | ||
1568 | 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s', | ||
1569 | 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o', | ||
1570 | 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w', | ||
1571 | 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m', | ||
1572 | 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i', | ||
1573 | 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a', | ||
1574 | 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g', | ||
1575 | 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d', | ||
1576 | 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c', | ||
1577 | 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e', | ||
1578 | 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r', | ||
1579 | 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d', | ||
1580 | 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s', | ||
1581 | 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b', | ||
1582 | 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h', | ||
1583 | 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d', | ||
1584 | 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e', | ||
1585 | 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k', | ||
1586 | 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e', | ||
1587 | 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a', | ||
1588 | 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w', | ||
1589 | 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i', | ||
1590 | 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n', | ||
1591 | 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r', | ||
1592 | 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r', | ||
1593 | 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m', | ||
1594 | 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b', | ||
1595 | 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o', | ||
1596 | 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u', | ||
1597 | 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e', | ||
1598 | 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t', | ||
1599 | 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t', | ||
1600 | 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o', | ||
1601 | 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n', | ||
1602 | 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u', | ||
1603 | 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e', | ||
1604 | 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w', | ||
1605 | 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t', | ||
1606 | 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n', | ||
1607 | 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r', | ||
1608 | 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s', | ||
1609 | 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f', | ||
1610 | 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s', | ||
1611 | 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h', | ||
1612 | 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n', | ||
1613 | 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l', | ||
1614 | 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i', | ||
1615 | 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w', | ||
1616 | 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u', | ||
1617 | 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n', | ||
1618 | 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r', | ||
1619 | 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d', | ||
1620 | 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t', | ||
1621 | 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e', | ||
1622 | 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y', | ||
1623 | 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c', | ||
1624 | 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s', | ||
1625 | 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w', | ||
1626 | 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o', | ||
1627 | 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l', | ||
1628 | 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a', | ||
1629 | 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u', | ||
1630 | 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a', | ||
1631 | 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i', | ||
1632 | 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a', | ||
1633 | 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w', | ||
1634 | 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','s', | ||
1635 | 'u','n','s','c','r','e','e','n','w','o','u','l','d','b','e','i', | ||
1636 | 't','T','h','e','l','o','n','g','t','e','r','m','b','e','n','e', | ||
1637 | 'f','i','t','s','o','f','s','u','n','s','c','r','e','e','n','h', | ||
1638 | 'a','v','e','b','e','e','n','p','r','o','v','e','d','b','y','s', | ||
1639 | 'c','i','e','n','t','i','s','t','s','w','h','e','r','e','a','s', | ||
1640 | 't','h','e','r','e','s','t','o','f','m','y','a','d','v','i','c', | ||
1641 | 'e','h','a','s','n','o','b','a','s','i','s','m','o','r','e','r', | ||
1642 | 'e','l','i','a','b','l','e','t','h','a','n','m','y','o','w','n', | ||
1643 | 'm','e','a','n','d','e','r','i','n','g','e','x','p','e','r','i', | ||
1644 | 'e','n','c','e','I','w','i','l','l','d','i','s','p','e','n','s', | ||
1645 | 'e','t','h','i','s','a','d','v','i','c','e','n','o','w','E','n', | ||
1646 | 'j','o','y','t','h','e','p','o','w','e','r','a','n','d','b','e', | ||
1647 | 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','O', | ||
1648 | 'h','n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l', | ||
1649 | 'l','n','o','t','u','n','d','e','r','s','t','a','n','d','t','h', | ||
1650 | 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o', | ||
1651 | 'f','y','o','u','r','y','o','u','t','h','u','n','t','i','l','t', | ||
1652 | 'h','e','y','v','e','f','a','d','e','d','B','u','t','t','r','u', | ||
1653 | 's','t','m','e','i','n','2','0','y','e','a','r','s','y','o','u', | ||
1654 | 'l','l','l','o','o','k','b','a','c','k','a','t','p','h','o','t', | ||
1655 | 'o','s','o','f','y','o','u','r','s','e','l','f','a','n','d','r', | ||
1656 | 'e','c','a','l','l','i','n','a','w','a','y','y','o','u','c','a', | ||
1657 | 'n','t','g','r','a','s','p','n','o','w','h','o','w','m','u','c', | ||
1658 | 'h','p','o','s','s','i','b','i','l','i','t','y','l','a','y','b', | ||
1659 | 'e','f','o','r','e','y','o','u','a','n','d','h','o','w','f','a', | ||
1660 | 'b','u','l','o','u','s','y','o','u','r','e','a','l','l','y','l', | ||
1661 | 'o','o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s', | ||
1662 | 'f','a','t','a','s','y','o','u','i','m','a','g','i','n','e','D', | ||
1663 | 'o','n','t','w','o','r','r','y','a','b','o','u','t','t','h','e', | ||
1664 | 'f','u','t','u','r','e','O','r','w','o','r','r','y','b','u','t', | ||
1665 | 'k','n','o','w','t','h','a','t','\n', 'l','a','s','s','o','f','9', | ||
1666 | '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f', | ||
1667 | 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n', | ||
1668 | 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u', | ||
1669 | 't','u','r','e','K','u','r','t','V','o','n','n','e','g','u','t', | ||
1670 | 's','C','o','m','m','e','n','c','e','m','e','n','t','A','d','d', | ||
1671 | 'r','e','s','s','a','t','M','I','T','L','a','d','i','e','s','a', | ||
1672 | 'n','d','g','e','n','t','l','e','m','e','n','o','f','t','h','e', | ||
1673 | 'c','l','a','s','s','o','f','9','7','W','e','a','r','s','u','n', | ||
1674 | 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f', | ||
1675 | 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p', | ||
1676 | 'f','o','r','t','h','e','f','u','t','u','r','e','s','u','n','s', | ||
1677 | 'c','r','e','e','n','w','o','u','l','d','b','e','i','t','T','h', | ||
1678 | 'e','l','o','n','g','t','e','r','m','b','e','n','e','f','i','t', | ||
1679 | 's','o','f','s','u','n','s','c','r','e','e','n','h','a','v','e', | ||
1680 | 'b','e','e','n','p','r','o','v','e','d','b','y','s','c','i','e', | ||
1681 | 'n','t','i','s','t','s','w','h','e','r','e','a','s','t','h','e', | ||
1682 | 'r','e','s','t','o','f','m','y','a','d','v','i','c','e','h','a', | ||
1683 | 's','n','o','b','a','s','i','s','m','o','r','e','r','e','l','i', | ||
1684 | 'a','b','l','e','t','h','a','n','m','y','o','w','n','m','e','a', | ||
1685 | 'n','d','e','r','i','n','g','e','x','p','e','r','i','e','n','c', | ||
1686 | 'e','I','w','i','l','l','d','i','s','p','e','n','s','e','t','h', | ||
1687 | 'i','s','a','d','v','i','c','e','n','o','w','E','n','j','o','y', | ||
1688 | 't','h','e','p','o','w','e','r','a','n','d','b','e','a','u','t', | ||
1689 | 'y','o','f','y','o','u','r','y','o','u','t','h','O','h','n','e', | ||
1690 | 'v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n','o', | ||
1691 | 't','u','n','d','e','r','s','t','a','n','d','t','h','e','p','o', | ||
1692 | 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o', | ||
1693 | 'u','r','y','o','u','t','h','u','n','t','i','l','t','h','e','y', | ||
1694 | 'v','e','f','a','d','e','d','B','u','t','t','r','u','s','t','m', | ||
1695 | 'e','i','n','2','0','y','e','a','r','s','y','o','u','l','l','l', | ||
1696 | 'o','o','k','b','a','c','k','a','t','p','h','o','t','o','s','o', | ||
1697 | 'f','y','o','u','r','s','e','l','f','a','n','d','r','e','c','a', | ||
1698 | 'l','l','i','n','a','w','a','y','y','o','u','c','a','n','t','g', | ||
1699 | 'r','a','s','p','n','o','w','h','o','w','m','u','c','h','p','o', | ||
1700 | 's','s','i','b','i','l','i','t','y','l','a','y','b','e','f','o', | ||
1701 | 'r','e','y','o','u','a','n','d','h','o','w','f','a','b','u','l', | ||
1702 | 'o','u','s','y','o','u','r','e','a','l','l','y','l','o','o','k', | ||
1703 | 'e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a','t', | ||
1704 | 'a','s','y','o','u','i','m','a','g','i','n','e','D','o','n','t', | ||
1705 | 'w','o','r','r','y','a','b','o','u','t','t','h','e','f','u','t', | ||
1706 | 'u','r','e','O','r','w','o','r','r','y','b','u','t','k','n','o', | ||
1707 | 'w','t','h','a','t','K','u','r','t','V','o','n','n','e','g','u', | ||
1708 | 't','s','C','o','m','m','e','n','c','e','m','e','n','t','A','d', | ||
1709 | 'd','r','e','s','s','a','t','M','I','T','L','a','d','i','e','s', | ||
1710 | 'a','n','d','g','e','n','t','l','e','m','e','n','o','f','t','h', | ||
1711 | 'e','c','l','a','s','s','o','f','9','7','W','e','a','r','s','u', | ||
1712 | 'n','s','c','r','e','e','n','I','f','I','c','o','u','l','d','o', | ||
1713 | 'f','f','e','r','y','o','u','o','n','l','y','o','n','e','t','i', | ||
1714 | 'p','f','o','r','t','h','e','f','u','t','u','r','e','s','u','n', | ||
1715 | 's','c','r','e','e','n','w','o','u','l','d','b','e','i','t','T', | ||
1716 | 'h','e','l','o','n','g','t','e','r','m','b','e','n','e','f','i', | ||
1717 | 't','s','o','f','s','u','n','s','c','r','e','e','n','h','a','v', | ||
1718 | 'e','b','e','e','n','p','r','o','v','e','d','b','y','s','c','i', | ||
1719 | 'e','n','t','i','s','t','s','w','h','e','r','e','a','s','t','h', | ||
1720 | 'e','r','e','s','t','o','f','m','y','a','d','v','i','c','e','h', | ||
1721 | 'a','s','n','o','b','a','s','i','s','m','o','r','e','r','e','l', | ||
1722 | 'i','a','b','l','e','t','h','a','n','m','y','o','w','n','m','e', | ||
1723 | 'a','n','d','e','r','i','n','g','e','x','p','e','r','i','e','n', | ||
1724 | 'c','e','I','w','i','l','l','d','i','s','p','e','n','s','e','t', | ||
1725 | 'h','i','s','a','d','v','i','c','e','n','o','w','E','n','j','o', | ||
1726 | 'y','t','h','e','p','o','w','e','r','a','n','d','b','e','a','u', | ||
1727 | 't','y','o','f','y','o','u','r','y','o','u','t','h','O','h','n', | ||
1728 | 'e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n', | ||
1729 | 'o','t','u','n','d','e','r','s','t','a','n','d','t','h','e','p', | ||
1730 | 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y', | ||
1731 | 'o','u','r','y','o','u','t','h','u','n','t','i','l','t','h','e', | ||
1732 | 'y','v','e','f','a','d','e','d','B','u','t','t','r','u','s','t', | ||
1733 | 'm','e','i','n','2','0','y','e','a','r','s','y','o','u','l','l', | ||
1734 | 'l','o','o','k','b','a','c','k','a','t','p','h','o','t','o','s', | ||
1735 | 'o','f','y','o','u','r','s','e','l','f','a','n','d','r','e','c', | ||
1736 | 'a','l','l','i','n','a','w','a','y','y','o','u','c','a','n','t', | ||
1737 | 'g','r','a','s','p','n','o','w','h','o','w','m','u','c','h','p', | ||
1738 | 'o','s','s','i','b','i','l','i','t','y','l','a','y','b','e','f', | ||
1739 | 'o','r','e','y','o','u','a','n','d','h','o','w','f','a','b','u', | ||
1740 | 'l','o','u','s','y','o','u','r','e','a','l','l','y','l','o','o', | ||
1741 | 'k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a', | ||
1742 | 't','a','s','y','o','u','i','m','a','g','i','n','e','D','o','n', | ||
1743 | 't','w','o','r','r','y','a','b','o','u','t','t','h','e','f','u', | ||
1744 | 't','u','r','e','O','r','w','o','r','r','y','b','u','t','k','n', | ||
1745 | 'o','w','t','h','a','t','K','u','r','t','V','o','n','n','e','g', | ||
1746 | 'u','t','s','C','o','m','m','e','n','c','e','m','e','n','t','A', | ||
1747 | 'd','d','r','e','s','s','a','t','M','I','T','L','a','d','i','e', | ||
1748 | 's','a','n','d','g','e','n','t','l','e','m','e','n','o','f','t', | ||
1749 | 'h','e','c','l','a','s','s','o','f','9','7','W','e','a','r','s', | ||
1750 | 'u','n','s','c','r','e','e','n','I','f','I','c','o','u','l','d', | ||
1751 | 'o','f','f','e','r','y','o','u','o','n','l','y','o','n','e','t', | ||
1752 | 'i','p','f','o','r','t','h','e','f','u','t','u','r','e','s','u', | ||
1753 | 'n','s','c','r','e','e','n','w','o','u','l','d','b','e','i','t', | ||
1754 | 'T','h','e','l','o','n','g','t','e','r','m','b','e','n','e','f', | ||
1755 | 'i','t','s','o','f','s','u','n','s','c','r','e','e','n','h','a', | ||
1756 | 'v','e','b','e','e','n','p','r','o','v','e','d','b','y','s','c', | ||
1757 | 'i','e','n','t','i','s','t','s','w','h','e','r','e','a','s','t', | ||
1758 | 'h','e','r','e','s','t','o','f','m','y','a','d','v','i','c','e', | ||
1759 | 'h','a','s','n','o','b','a','s','i','s','m','o','r','e','r','e', | ||
1760 | 'l','i','a','b','l','e','t','h','a','n','m','y','o','w','n','m', | ||
1761 | 'e','a','n','d','e','r','i','n','g','e','x','p','e','r','i','e', | ||
1762 | 'n','c','e','I','w','i','l','l','d','i','s','p','e','n','s','e', | ||
1763 | 't','h','i','s','a','d','v','i','c','e','n','o','w','E','n','j', | ||
1764 | 'o','y','t','h','e','p','o','w','e','r','a','n','d','b','e','a', | ||
1765 | 'u','t','y','o','f','y','o','u','r','y','o','u','t','h','O','h', | ||
1766 | 'n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l', | ||
1767 | 'n','o','t','u','n','d','e','r','s','t','a','n','d','t','h','e', | ||
1768 | 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f', | ||
1769 | 'y','o','u','r','y','o','u','t','h','u','n','t','i','l','t','h', | ||
1770 | 'e','y','v','e','f','a','d','e','d','B','u','t','t','r','u','s', | ||
1771 | 't','m','e','i','n','2','0','y','e','a','r','s','y','o','u','l', | ||
1772 | 'l','l','o','o','k','b','a','c','k','a','t','p','h','o','t','o', | ||
1773 | 's','o','f','y','o','u','r','s','e','l','f','a','n','d','r','e', | ||
1774 | 'c','a','l','l','i','n','a','w','a','y','y','o','u','c','a','n', | ||
1775 | 't','g','r','a','s','p','n','o','w','h','o','w','m','u','c','h', | ||
1776 | 'p','o','s','s','i','b','i','l','i','t','y','l','a','y','b','e', | ||
1777 | 'f','o','r','e','y','o','u','a','n','d','h','o','w','f','a','b', | ||
1778 | 'u','l','o','u','s','y','o','u','r','e','a','l','l','y','l','o', | ||
1779 | 'o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f', | ||
1780 | 'a','t','a','s','y','o','u','i','m','a','g','i','n','e','D','o', | ||
1781 | 'n','t','w','o','r','r','y','a','b','o','u','t','t','h','e','f', | ||
1782 | 'u','t','u','r','e','O','r','w','o','r','r','y','b','u','t','k', | ||
1783 | 'n','o','w','t','h','a','t','s','u','n','s','c','r','e','e','n', | ||
1784 | 'w','o','u','l','d','b','e','i','t','T','h','e','l','o','n','g', | ||
1785 | 't','e','r','m','b','e','n','e','f','i','t','s','o','f','s','u', | ||
1786 | 'n','s','c','r','e','e','n','h','a','v','e','b','e','e','n','p', | ||
1787 | 'r','o','v','e','d','b','y','s','c','i','e','n','t','i','s','t', | ||
1788 | 's','w','h','e','r','e','a','s','t','h','e','r','e','s','t','o', | ||
1789 | 'f','m','y','a','d','v','i','c','e','h','a','s','n','o','b','a', | ||
1790 | 's','i','s','m','o','r','e','r','e','l','i','a','b','l','e','t', | ||
1791 | 'h','a','n','m','y','o','w','n','m','e','a','n','d','e','r','i', | ||
1792 | 'n','g','e','x','p','e','r','i','e','n','c','e','I','w','i','l', | ||
1793 | 'l','d','i','s','p','e','n','s','e','t','h','i','s','a','d','v', | ||
1794 | 'i','c','e','n','o','w','E','n','j','o','y','t','h','e','p','o', | ||
1795 | 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o', | ||
1796 | 'u','r','y','o','u','t','h','O','h','n','e','v','e','r','m','i', | ||
1797 | 'n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d','e', | ||
1798 | 'r','s','t','a','n','d','t','h','e','p','o','w','e','r','a','n', | ||
1799 | 'd','b','e','a','u','t','y','o','f','y','o','u','r','y','o','u', | ||
1800 | 't','h','u','n','t','i','l','t','h','e','y','v','e','f','a','d', | ||
1801 | 'e','d','B','u','t','t','r','u','s','t','m','e','i','n','2','0', | ||
1802 | 'y','e','a','r','s','y','o','u','l','l','l','o','o','k','b','a', | ||
1803 | 'c','k','a','t','p','h','o','t','o','s','o','f','y','o','u','r', | ||
1804 | 's','e','l','f','a','n','d','r','e','c','a','l','l','i','n','a', | ||
1805 | 'w','a','y','y','o','u','c','a','n','t','g','r','a','s','p','n', | ||
1806 | 'o','w','h','o','w','m','u','c','h','p','o','s','s','i','b','i', | ||
1807 | 'l','i','t','y','l','a','y','b','e','f','o','r','e','y','o','u', | ||
1808 | 'a','n','d','h','o','w','f','a','b','u','l','o','u','s','y','o', | ||
1809 | 'u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u', | ||
1810 | 'a','r','e','n','o','t','a','s','f','a','t','a','s','y','o','u', | ||
1811 | 'i','m','a','g','i','n','e','D','o','n','t','w','o','r','r','y', | ||
1812 | 'a','b','o','u','t','t','h','e','f','u','t','u','r','e','O','r', | ||
1813 | 'w','o','r','r','y','b','u','t','k','n','o','w','t','h','a','t', | ||
1814 | '\n', 'l','a','s','s','o','f','9','7','W','e','a','r','s','u','n', | ||
1815 | 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f', | ||
1816 | 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p', | ||
1817 | 'f','o','r','t','h','e','f','u','t','u','r','e','K','u','r','t', | ||
1818 | 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c', | ||
1819 | 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I', | ||
1820 | 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e', | ||
1821 | 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9', | ||
1822 | '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f', | ||
1823 | 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n', | ||
1824 | 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u', | ||
1825 | 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u', | ||
1826 | 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r', | ||
1827 | 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c', | ||
1828 | 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v', | ||
1829 | 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h', | ||
1830 | 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y', | ||
1831 | 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s', | ||
1832 | 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n', | ||
1833 | 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e', | ||
1834 | 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i', | ||
1835 | 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e', | ||
1836 | 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r', | ||
1837 | 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y', | ||
1838 | 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y', | ||
1839 | 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t', | ||
1840 | 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e', | ||
1841 | 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u', | ||
1842 | 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B', | ||
1843 | 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a', | ||
1844 | 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a', | ||
1845 | 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l', | ||
1846 | 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y', | ||
1847 | 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h', | ||
1848 | 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t', | ||
1849 | 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d', | ||
1850 | 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e', | ||
1851 | 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e', | ||
1852 | 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a', | ||
1853 | 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o', | ||
1854 | 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r', | ||
1855 | 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r', | ||
1856 | 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n', | ||
1857 | 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M', | ||
1858 | 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l', | ||
1859 | 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f', | ||
1860 | '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I', | ||
1861 | 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o', | ||
1862 | 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f', | ||
1863 | 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o', | ||
1864 | 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e', | ||
1865 | 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s', | ||
1866 | 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o', | ||
1867 | 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w', | ||
1868 | 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m', | ||
1869 | 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i', | ||
1870 | 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a', | ||
1871 | 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g', | ||
1872 | 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d', | ||
1873 | 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c', | ||
1874 | 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e', | ||
1875 | 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r', | ||
1876 | 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d', | ||
1877 | 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s', | ||
1878 | 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b', | ||
1879 | 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h', | ||
1880 | 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d', | ||
1881 | 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e', | ||
1882 | 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k', | ||
1883 | 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e', | ||
1884 | 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a', | ||
1885 | 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w', | ||
1886 | 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i', | ||
1887 | 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n', | ||
1888 | 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r', | ||
1889 | 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r', | ||
1890 | 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m', | ||
1891 | 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b', | ||
1892 | 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o', | ||
1893 | 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u', | ||
1894 | 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e', | ||
1895 | 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t', | ||
1896 | 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t', | ||
1897 | 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o', | ||
1898 | 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n', | ||
1899 | 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u', | ||
1900 | 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e', | ||
1901 | 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w', | ||
1902 | 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t', | ||
1903 | 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n', | ||
1904 | 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r', | ||
1905 | 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s', | ||
1906 | 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f', | ||
1907 | 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s', | ||
1908 | 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h', | ||
1909 | 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n', | ||
1910 | 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l', | ||
1911 | 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i', | ||
1912 | 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w', | ||
1913 | 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u', | ||
1914 | 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n', | ||
1915 | 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r', | ||
1916 | 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d', | ||
1917 | 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t', | ||
1918 | 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e', | ||
1919 | 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y', | ||
1920 | 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c', | ||
1921 | 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s', | ||
1922 | 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w', | ||
1923 | 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o', | ||
1924 | 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l', | ||
1925 | 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a', | ||
1926 | 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u', | ||
1927 | 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a', | ||
1928 | 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i', | ||
1929 | 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a', | ||
1930 | 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w', | ||
1931 | 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','s', | ||
1932 | 'u','n','s','c','r','e','e','n','w','o','u','l','d','b','e','i', | ||
1933 | 't','T','h','e','l','o','n','g','t','e','r','m','b','e','n','e', | ||
1934 | 'f','i','t','s','o','f','s','u','n','s','c','r','e','e','n','h', | ||
1935 | 'a','v','e','b','e','e','n','p','r','o','v','e','d','b','y','s', | ||
1936 | 'c','i','e','n','t','i','s','t','s','w','h','e','r','e','a','s', | ||
1937 | 't','h','e','r','e','s','t','o','f','m','y','a','d','v','i','c', | ||
1938 | 'e','h','a','s','n','o','b','a','s','i','s','m','o','r','e','r', | ||
1939 | 'e','l','i','a','b','l','e','t','h','a','n','m','y','o','w','n', | ||
1940 | 'm','e','a','n','d','e','r','i','n','g','e','x','p','e','r','i', | ||
1941 | 'e','n','c','e','I','w','i','l','l','d','i','s','p','e','n','s', | ||
1942 | 'e','t','h','i','s','a','d','v','i','c','e','n','o','w','E','n', | ||
1943 | 'j','o','y','t','h','e','p','o','w','e','r','a','n','d','b','e', | ||
1944 | 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','O', | ||
1945 | 'h','n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l', | ||
1946 | 'l','n','o','t','u','n','d','e','r','s','t','a','n','d','t','h', | ||
1947 | 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o', | ||
1948 | 'f','y','o','u','r','y','o','u','t','h','u','n','t','i','l','t', | ||
1949 | 'h','e','y','v','e','f','a','d','e','d','B','u','t','t','r','u', | ||
1950 | 's','t','m','e','i','n','2','0','y','e','a','r','s','y','o','u', | ||
1951 | 'l','l','l','o','o','k','b','a','c','k','a','t','p','h','o','t', | ||
1952 | 'o','s','o','f','y','o','u','r','s','e','l','f','a','n','d','r', | ||
1953 | 'e','c','a','l','l','i','n','a','w','a','y','y','o','u','c','a', | ||
1954 | 'n','t','g','r','a','s','p','n','o','w','h','o','w','m','u','c', | ||
1955 | 'h','p','o','s','s','i','b','i','l','i','t','y','l','a','y','b', | ||
1956 | 'e','f','o','r','e','y','o','u','a','n','d','h','o','w','f','a', | ||
1957 | 'b','u','l','o','u','s','y','o','u','r','e','a','l','l','y','l', | ||
1958 | 'o','o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s', | ||
1959 | 'f','a','t','a','s','y','o','u','i','m','a','g','i','n','e','D', | ||
1960 | 'o','n','t','w','o','r','r','y','a','b','o','u','t','t','h','e', | ||
1961 | 'f','u','t','u','r','e','O','r','w','o','r','r','y','b','u','t', | ||
1962 | 'k','n','o','w','t','h','a','t','\n' | ||
1963 | }; | ||
diff --git a/baseline/source/rijndael_enc/rijndael_enc.c b/baseline/source/rijndael_enc/rijndael_enc.c new file mode 100644 index 0000000..f74d595 --- /dev/null +++ b/baseline/source/rijndael_enc/rijndael_enc.c | |||
@@ -0,0 +1,238 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: rijndael_enc | ||
7 | |||
8 | Author: Dr Brian Gladman | ||
9 | |||
10 | Function: rijndael_enc is an implementation of the AES encryption | ||
11 | algorithm (Rijndael). | ||
12 | |||
13 | Source: security section of MiBench | ||
14 | |||
15 | Changes: Add computation of a checksum, refactoring | ||
16 | |||
17 | License: see below | ||
18 | |||
19 | */ | ||
20 | |||
21 | /* | ||
22 | ----------------------------------------------------------------------- | ||
23 | Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK | ||
24 | |||
25 | TERMS | ||
26 | |||
27 | Redistribution and use in source and binary forms, with or without | ||
28 | modification, are permitted provided that the following conditions | ||
29 | are met: | ||
30 | 1. Redistributions of source code must retain the above copyright | ||
31 | notice, this list of conditions and the following disclaimer. | ||
32 | 2. Redistributions in binary form must reproduce the above copyright | ||
33 | notice, this list of conditions and the following disclaimer in the | ||
34 | documentation and/or other materials provided with the distribution. | ||
35 | |||
36 | This software is provided 'as is' with no guarantees of correctness or | ||
37 | fitness for purpose. | ||
38 | ----------------------------------------------------------------------- | ||
39 | */ | ||
40 | |||
41 | #include "../extra.h" | ||
42 | #include "aes.h" | ||
43 | #include "rijndael_enc_libc.h" | ||
44 | |||
45 | /* | ||
46 | Global variable definitions | ||
47 | */ | ||
48 | unsigned char rijndael_enc_key[32]; | ||
49 | int rijndael_enc_key_len; | ||
50 | |||
51 | extern unsigned char rijndael_enc_data[]; | ||
52 | struct rijndael_enc_FILE rijndael_enc_fin; | ||
53 | |||
54 | int rijndael_enc_checksum = 0; | ||
55 | |||
56 | /* | ||
57 | Forward declaration of functions | ||
58 | */ | ||
59 | void rijndael_enc_init( void ); | ||
60 | int rijndael_enc_return( void ); | ||
61 | void rijndael_enc_fillrand( unsigned char *buf, int len ); | ||
62 | void rijndael_enc_encfile( struct rijndael_enc_FILE *fin, struct aes *ctx ); | ||
63 | void rijndael_enc_main( void ); | ||
64 | |||
65 | void rijndael_enc_init( void ) | ||
66 | { | ||
67 | /* create a pseudo-file for the input*/ | ||
68 | rijndael_enc_fin.data = rijndael_enc_data; | ||
69 | rijndael_enc_fin.size = 31369; | ||
70 | rijndael_enc_fin.cur_pos = 0; | ||
71 | |||
72 | unsigned i; | ||
73 | volatile int x = 0; | ||
74 | rijndael_enc_fin.size ^= x; | ||
75 | _Pragma( "loopbound min 31369 max 31369" ) | ||
76 | for ( i = 0; i < rijndael_enc_fin.size; i++ ) | ||
77 | rijndael_enc_fin.data[i] ^= x; | ||
78 | |||
79 | /* this is a pointer to the hexadecimal key digits */ | ||
80 | const volatile char *cp = | ||
81 | "1234567890abcdeffedcba09876543211234567890abcdeffedcba0987654321"; | ||
82 | char ch; | ||
83 | int by = 0; | ||
84 | |||
85 | i = 0; /* this is a count for the input digits processed */ | ||
86 | _Pragma( "loopbound min 64 max 64" ) | ||
87 | while ( i < 64 && *cp ) { /* the maximum key length is 32 bytes and */ | ||
88 | /* hence at most 64 hexadecimal digits */ | ||
89 | ch = rijndael_enc_toupper( *cp++ ); /* process a hexadecimal digit */ | ||
90 | if ( ch >= '0' && ch <= '9' ) | ||
91 | by = ( by << 4 ) + ch - '0'; | ||
92 | else | ||
93 | if ( ch >= 'A' && ch <= 'F' ) | ||
94 | by = ( by << 4 ) + ch - 'A' + 10; | ||
95 | else { /* error if not hexadecimal */ | ||
96 | rijndael_enc_checksum = -2; | ||
97 | return; | ||
98 | } | ||
99 | |||
100 | /* store a key byte for each pair of hexadecimal digits */ | ||
101 | if ( i++ & 1 ) | ||
102 | rijndael_enc_key[i / 2 - 1] = by & 0xff; | ||
103 | } | ||
104 | |||
105 | if ( *cp ) { | ||
106 | rijndael_enc_checksum = -3; | ||
107 | return; | ||
108 | } else | ||
109 | if ( i < 32 || ( i & 15 ) ) { | ||
110 | rijndael_enc_checksum = -4; | ||
111 | return; | ||
112 | } | ||
113 | |||
114 | rijndael_enc_key_len = i / 2; | ||
115 | } | ||
116 | |||
117 | int rijndael_enc_return( void ) | ||
118 | { | ||
119 | return ( ( rijndael_enc_checksum == ( int )249509 ) ? 0 : -1 ); | ||
120 | } | ||
121 | |||
122 | /* A Pseudo Random Number Generator (PRNG) used for the */ | ||
123 | /* Initialisation Vector. The PRNG is George Marsaglia's */ | ||
124 | /* Multiply-With-Carry (MWC) PRNG that concatenates two */ | ||
125 | /* 16-bit MWC generators: */ | ||
126 | /* x(n)=36969 * x(n-1) + carry mod 2^16 */ | ||
127 | /* y(n)=18000 * y(n-1) + carry mod 2^16 */ | ||
128 | /* to produce a combined PRNG with a period of about 2^60. */ | ||
129 | |||
130 | #define RAND(a,b) (((a = 36969 * (a & 65535) + (a >> 16)) << 16) + (b = 18000 * (b & 65535) + (b >> 16)) ) | ||
131 | |||
132 | void rijndael_enc_fillrand( unsigned char *buf, int len ) | ||
133 | { | ||
134 | static unsigned long a[2], mt = 1, count = 4; | ||
135 | static char r[4]; | ||
136 | int i; | ||
137 | |||
138 | if ( mt ) { | ||
139 | mt = 0; | ||
140 | a[0] = 0xeaf3; | ||
141 | a[1] = 0x35fe; | ||
142 | } | ||
143 | |||
144 | _Pragma( "loopbound min 1 max 16" ) | ||
145 | for ( i = 0; i < len; ++i ) { | ||
146 | if ( count == 4 ) { | ||
147 | *( unsigned long * )r = RAND( a[0], a[1] ); | ||
148 | count = 0; | ||
149 | } | ||
150 | |||
151 | buf[i] = r[count++]; | ||
152 | } | ||
153 | } | ||
154 | |||
155 | void rijndael_enc_encfile( struct rijndael_enc_FILE *fin, struct aes *ctx ) | ||
156 | { | ||
157 | unsigned char inbuf[16], outbuf[16]; | ||
158 | long int flen; | ||
159 | unsigned long i = 0, l = 0; | ||
160 | |||
161 | rijndael_enc_fillrand( outbuf, | ||
162 | 16 ); /* set an IV for CBC mode */ | ||
163 | flen = fin->size; | ||
164 | |||
165 | rijndael_enc_fillrand( inbuf, | ||
166 | 1 ); /* make top 4 bits of a byte random */ | ||
167 | l = 15; /* and store the length of the last */ | ||
168 | /* block in the lower 4 bits */ | ||
169 | inbuf[0] = ( ( char )flen & 15 ) | ( inbuf[0] & ~15 ); | ||
170 | |||
171 | /* TODO: this is necessarily an input-dependent loop bound */ | ||
172 | _Pragma( "loopbound min 1961 max 1961" ) | ||
173 | while ( !rijndael_enc_feof( | ||
174 | fin ) ) { /* loop to encrypt the input file */ | ||
175 | /* input 1st 16 bytes to buf[1..16] */ | ||
176 | i = rijndael_enc_fread( inbuf + 16 - l, 1, l, fin ); /* on 1st round byte[0] */ | ||
177 | /* is the length code */ | ||
178 | if ( i < l ) break; /* if end of the input file reached */ | ||
179 | |||
180 | _Pragma( "loopbound min 16 max 16" ) | ||
181 | for ( i = 0; i < 16; ++i ) /* xor in previous cipher text */ | ||
182 | inbuf[i] ^= outbuf[i]; | ||
183 | |||
184 | rijndael_enc_encrypt( inbuf, outbuf, | ||
185 | ctx ); /* and do the encryption */ | ||
186 | |||
187 | rijndael_enc_checksum += outbuf[15]; | ||
188 | |||
189 | /* in all but first round read 16 */ | ||
190 | l = 16; /* bytes into the buffer */ | ||
191 | } | ||
192 | |||
193 | /* except for files of length less than two blocks we now have one */ | ||
194 | /* byte from the previous block and 'i' bytes from the current one */ | ||
195 | /* to encrypt and 15 - i empty buffer positions. For files of less */ | ||
196 | /* than two blocks (0 or 1) we have i + 1 bytes and 14 - i empty */ | ||
197 | /* buffer position to set to zero since the 'count' byte is extra */ | ||
198 | |||
199 | if ( l == 15 ) /* adjust for extra byte in the */ | ||
200 | ++i; /* in the first block */ | ||
201 | |||
202 | if ( i ) { /* if bytes remain to be output */ | ||
203 | _Pragma( "loopbound min 6 max 6" ) | ||
204 | while ( i < 16 ) /* clear empty buffer positions */ | ||
205 | inbuf[i++] = 0; | ||
206 | |||
207 | _Pragma( "loopbound min 16 max 16" ) | ||
208 | for ( i = 0; i < 16; ++i ) /* xor in previous cipher text */ | ||
209 | inbuf[i] ^= outbuf[i]; | ||
210 | |||
211 | rijndael_enc_encrypt( inbuf, outbuf, ctx ); /* encrypt and output it */ | ||
212 | |||
213 | rijndael_enc_checksum += outbuf[15]; | ||
214 | } | ||
215 | } | ||
216 | |||
217 | void _Pragma( "entrypoint" ) rijndael_enc_main( void ) | ||
218 | { | ||
219 | struct aes ctx[1]; | ||
220 | |||
221 | /* encryption in Cipher Block Chaining mode */ | ||
222 | rijndael_enc_set_key( rijndael_enc_key, rijndael_enc_key_len, enc, ctx ); | ||
223 | rijndael_enc_encfile( &rijndael_enc_fin, ctx ); | ||
224 | } | ||
225 | |||
226 | int main( int argc, char** argv ) | ||
227 | { | ||
228 | SET_UP | ||
229 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
230 | START_LOOP | ||
231 | rijndael_enc_init(); | ||
232 | rijndael_enc_main(); | ||
233 | STOP_LOOP | ||
234 | } | ||
235 | WRITE_TO_FILE | ||
236 | return ( rijndael_enc_return() ); | ||
237 | } | ||
238 | |||
diff --git a/baseline/source/rijndael_enc/rijndael_enc_libc.c b/baseline/source/rijndael_enc/rijndael_enc_libc.c new file mode 100644 index 0000000..921af68 --- /dev/null +++ b/baseline/source/rijndael_enc/rijndael_enc_libc.c | |||
@@ -0,0 +1,66 @@ | |||
1 | #include "rijndael_enc_libc.h" | ||
2 | |||
3 | int rijndael_enc_toupper( int c ) | ||
4 | { | ||
5 | if ( ( c >= 'a' ) && ( c <= 'z' ) ) | ||
6 | return c - 'a' + 'A'; | ||
7 | return c; | ||
8 | } | ||
9 | |||
10 | unsigned long rijndael_enc_fread( void *ptr, unsigned long size, | ||
11 | unsigned long count, struct rijndael_enc_FILE *stream ) | ||
12 | { | ||
13 | unsigned i = stream->cur_pos, i2 = 0; | ||
14 | unsigned long number_of_chars_to_read = | ||
15 | stream->size - stream->cur_pos >= size * count ? | ||
16 | size * count : stream->size - stream->cur_pos; | ||
17 | _Pragma( "loopbound min 10 max 16" ) | ||
18 | while ( i < stream->cur_pos + number_of_chars_to_read ) | ||
19 | ( ( unsigned char * )ptr )[i2++] = stream->data[i++]; | ||
20 | stream->cur_pos += number_of_chars_to_read; | ||
21 | return number_of_chars_to_read; | ||
22 | } | ||
23 | |||
24 | unsigned long rijndael_enc_fwrite( const void *ptr, unsigned long size, | ||
25 | unsigned long count, struct rijndael_enc_FILE *stream ) | ||
26 | { | ||
27 | unsigned i = stream->cur_pos, i2 = 0; | ||
28 | unsigned long number_of_chars_to_write = | ||
29 | stream->size - stream->cur_pos >= size * count ? | ||
30 | size * count : stream->size - stream->cur_pos; | ||
31 | _Pragma( "loopbound min 0 max 0" ) | ||
32 | while ( i < stream->cur_pos + number_of_chars_to_write ) | ||
33 | stream->data[i++] = ( ( unsigned char * )ptr )[i2++]; | ||
34 | stream->cur_pos += number_of_chars_to_write; | ||
35 | return number_of_chars_to_write; | ||
36 | } | ||
37 | |||
38 | int rijndael_enc_fseek( struct rijndael_enc_FILE *stream, long int offset, | ||
39 | Origin origin ) | ||
40 | { | ||
41 | if ( origin == RIJNDAEL_ENC_SEEK_SET ) { | ||
42 | stream->cur_pos = offset; | ||
43 | return 0; | ||
44 | } else | ||
45 | if ( origin == RIJNDAEL_ENC_SEEK_CUR ) { | ||
46 | stream->cur_pos += offset; | ||
47 | return 0; | ||
48 | } else | ||
49 | if ( origin == RIJNDAEL_ENC_SEEK_END ) { | ||
50 | stream->cur_pos = stream->size + offset; | ||
51 | return 0; | ||
52 | } | ||
53 | return -1; | ||
54 | } | ||
55 | |||
56 | int rijndael_enc_fgetpos( struct rijndael_enc_FILE *stream, | ||
57 | unsigned *position ) | ||
58 | { | ||
59 | *position = stream->cur_pos; | ||
60 | return 0; | ||
61 | } | ||
62 | |||
63 | int rijndael_enc_feof( struct rijndael_enc_FILE *stream ) | ||
64 | { | ||
65 | return stream->cur_pos == stream->size ? 1 : 0; | ||
66 | } | ||
diff --git a/baseline/source/rijndael_enc/rijndael_enc_libc.h b/baseline/source/rijndael_enc/rijndael_enc_libc.h new file mode 100644 index 0000000..6a01397 --- /dev/null +++ b/baseline/source/rijndael_enc/rijndael_enc_libc.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef RIJNDAEL_ENC_LIBC_H | ||
2 | #define RIJNDAEL_ENC_LIBC_H | ||
3 | |||
4 | int rijndael_enc_toupper ( int c ); | ||
5 | |||
6 | enum _Origin_ { RIJNDAEL_ENC_SEEK_SET, RIJNDAEL_ENC_SEEK_CUR, RIJNDAEL_ENC_SEEK_END }; | ||
7 | typedef enum _Origin_ Origin; | ||
8 | struct rijndael_enc_FILE { | ||
9 | unsigned char *data; | ||
10 | unsigned long size; | ||
11 | unsigned cur_pos; | ||
12 | }; | ||
13 | |||
14 | unsigned long rijndael_enc_fread ( void *ptr, unsigned long size, | ||
15 | unsigned long count, struct rijndael_enc_FILE *stream ); | ||
16 | unsigned long rijndael_enc_fwrite ( const void *ptr, unsigned long size, | ||
17 | unsigned long count, struct rijndael_enc_FILE *stream ); | ||
18 | int rijndael_enc_fseek ( struct rijndael_enc_FILE *stream, long int offset, | ||
19 | Origin origin ); | ||
20 | int rijndael_enc_fgetpos( struct rijndael_enc_FILE *stream, | ||
21 | unsigned *position ); | ||
22 | int rijndael_enc_feof ( struct rijndael_enc_FILE *stream ); | ||
23 | |||
24 | #endif // RIJNDAEL_ENC_LIBC_H | ||
diff --git a/baseline/source/statemate/ChangeLog.txt b/baseline/source/statemate/ChangeLog.txt new file mode 100644 index 0000000..bce75dc --- /dev/null +++ b/baseline/source/statemate/ChangeLog.txt | |||
@@ -0,0 +1,60 @@ | |||
1 | File: statemate.c | ||
2 | Original provenience: Mälardalen benchmark suite, | ||
3 | http://www.mrtc.mdh.se/projects/wcet/benchmarks.html | ||
4 | |||
5 | 2016-02-02: | ||
6 | - Removed original header comment, replaced by TACLeBench header. | ||
7 | - Removed macro '#define float int' and replaced each 'float' by 'int' (8 in | ||
8 | total) | ||
9 | - Removed unused macro | ||
10 | - #define entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_copy_IDX 1 | ||
11 | - Removed unused variables | ||
12 | - int FH_TUERMODUL_CTRL__N_copy; | ||
13 | - int BLOCK_ERKENNUNG_CTRL__I_EIN_MAX_copy; | ||
14 | - int BLOCK_ERKENNUNG_CTRL__N_copy; | ||
15 | - char FH_TUERMODUL_CTRL__FT; | ||
16 | - char FH_TUERMODUL__COM_OPEN; | ||
17 | - char FH_TUERMODUL__COM_CLOSE; | ||
18 | - char FH_DU__S_FH_TMBFAUFCAN_copy; | ||
19 | - char FH_DU__S_FH_TMBFZUCAN_copy; | ||
20 | - Moved around all the following so that they are in the given order just after | ||
21 | the header | ||
22 | - macro definitions | ||
23 | - forward declarations of fuctions | ||
24 | - declarations of global variables | ||
25 | - Reordered functions in source code: initialization-related functions first, | ||
26 | followed by algorithm core functions, followed by main functions | ||
27 | - Added a new main function that first calls init function then the old main | ||
28 | function sans init | ||
29 | - Annotated statemate_main() as the entry point of the analysis | ||
30 | - Removed seemingly unnecessary empty lines | ||
31 | - Changed remaining floating number literals, all being used for time related | ||
32 | comparisons, to integer literals by multiplying them by 1000 so that the | ||
33 | code is totally floating number free. E.g: | ||
34 | changed 'time - sc_FH_TUERMODUL_CTRL_2375_2 >= 0.5f' | ||
35 | to 'time - sc_FH_TUERMODUL_CTRL_2375_2 >= 500' | ||
36 | Info: All time related variables were already converted to 'unsigned long' | ||
37 | - Applied code formatting according to the following rules | ||
38 | - Lines shall not be wider than 80 characters; whenever possible, appropriate | ||
39 | line breaks shall be inserted to keep lines below 80 characters | ||
40 | - Indentation is done using whitespaces only, no tabs. Code is indented by | ||
41 | two whitespaces | ||
42 | - Two empty lines are put between any two functions | ||
43 | - In non-empty lists or index expressions, opening '(' and '[' are followed by | ||
44 | one whitespace, closing ')' and ']' are preceded by one whitespace | ||
45 | - In comma- or colon-separated argument lists, one whitespace is put after | ||
46 | each comma/colon | ||
47 | - Names of functions and global variables all start with a benchmark-specific | ||
48 | prefix (here: statemate_) followed by lowercase letter | ||
49 | - For pointer types, one whitespace is put before the '*' | ||
50 | - Operators within expressions shall be preceded and followed by one | ||
51 | whitespace | ||
52 | - Code of then- and else-parts of if-then-else statements shall be put in | ||
53 | separate lines, not in the same lines as the if-condition or the keyword | ||
54 | "else" | ||
55 | - Opening braces '{' denoting the beginning of code for some if-else or loop | ||
56 | body shall be put at the end of the same line where the keywords "if", | ||
57 | "else", "for", "while" etc. occur | ||
58 | |||
59 | 2016-10-10: | ||
60 | - added statemate_return() function | ||
diff --git a/baseline/source/statemate/statemate.c b/baseline/source/statemate/statemate.c new file mode 100644 index 0000000..379366a --- /dev/null +++ b/baseline/source/statemate/statemate.c | |||
@@ -0,0 +1,1286 @@ | |||
1 | /* | ||
2 | |||
3 | This program is part of the TACLeBench benchmark suite. | ||
4 | Version V 2.0 | ||
5 | |||
6 | Name: statemate | ||
7 | |||
8 | Author: Friedhelm Stappert, C-LAB, Paderborn, Germany | ||
9 | |||
10 | Function: This code was automatically generated by | ||
11 | the STAtechart Real-time-Code generator STARC | ||
12 | which was developed at C-LAB. | ||
13 | |||
14 | The original StateChart specifies an experimental | ||
15 | car window lift control. | ||
16 | |||
17 | Source: MRTC | ||
18 | http://www.mrtc.mdh.se/projects/wcet/wcet_bench/statemate/statemate.c | ||
19 | |||
20 | Changes: no major functional changes | ||
21 | |||
22 | License: may be used, modified, and re-distributed freely | ||
23 | |||
24 | */ | ||
25 | |||
26 | /* | ||
27 | Macro definitions | ||
28 | */ | ||
29 | |||
30 | #include "../extra.h" | ||
31 | |||
32 | #define SYS_bit_get(a,b) (a)[(b)] | ||
33 | #define SYS_bit_clr(a,b) (a)[(b)] = 0 | ||
34 | #define SYS_bit_set(a,b) (a)[(b)] = 1 | ||
35 | #define SYS_bit_cpy(a1,i1,a2,i2) (a1)[(i1)] = (a2)[(i2)] | ||
36 | |||
37 | #define active_KINDERSICHERUNG_CTRL_IDX 10 | ||
38 | #define active_KINDERSICHERUNG_CTRL_copy_IDX 11 | ||
39 | #define active_KINDERSICHERUNG_CTRL_old_IDX 12 | ||
40 | #define active_FH_TUERMODUL_CTRL_IDX 13 | ||
41 | #define active_FH_TUERMODUL_CTRL_copy_IDX 14 | ||
42 | #define active_FH_TUERMODUL_CTRL_old_IDX 15 | ||
43 | #define active_EINKLEMMSCHUTZ_CTRL_IDX 16 | ||
44 | #define active_EINKLEMMSCHUTZ_CTRL_copy_IDX 17 | ||
45 | #define active_EINKLEMMSCHUTZ_CTRL_old_IDX 18 | ||
46 | #define active_BLOCK_ERKENNUNG_CTRL_IDX 19 | ||
47 | #define active_BLOCK_ERKENNUNG_CTRL_copy_IDX 20 | ||
48 | #define active_BLOCK_ERKENNUNG_CTRL_old_IDX 21 | ||
49 | #define entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX 0 | ||
50 | |||
51 | #define entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX 4 | ||
52 | #define entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX 5 | ||
53 | #define exited_BEREIT_FH_TUERMODUL_CTRL_IDX 6 | ||
54 | #define exited_BEREIT_FH_TUERMODUL_CTRL_copy_IDX 7 | ||
55 | |||
56 | #define FH_TUERMODUL_CTRL__END_REVERS_IDX 22 | ||
57 | #define FH_TUERMODUL_CTRL__END_REVERS_copy_IDX 23 | ||
58 | #define FH_TUERMODUL__EINKLEMMUNG_IDX 24 | ||
59 | |||
60 | |||
61 | /* | ||
62 | Forward declaration of functions | ||
63 | */ | ||
64 | |||
65 | void statemate_init( void ); | ||
66 | void statemate_interface( void ); | ||
67 | void statemate_generic_KINDERSICHERUNG_CTRL( void ); | ||
68 | void statemate_generic_FH_TUERMODUL_CTRL( void ); | ||
69 | void statemate_generic_EINKLEMMSCHUTZ_CTRL( void ); | ||
70 | void statemate_generic_BLOCK_ERKENNUNG_CTRL( void ); | ||
71 | void statemate_FH_DU( void ); | ||
72 | void statemate_main( void ); | ||
73 | int statemate_return ( void ); | ||
74 | |||
75 | |||
76 | /* | ||
77 | Declaration of global variables | ||
78 | */ | ||
79 | |||
80 | static char statemate_bitlist[64]; | ||
81 | unsigned long | ||
82 | statemate_tm_entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRLch_BLOCK_ERKENNUNG_CTRL__N_copy; | ||
83 | unsigned long | ||
84 | statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRLexited_BEREIT_FH_TUERMODUL_CTRL; | ||
85 | unsigned long statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL; | ||
86 | unsigned long statemate_sc_FH_TUERMODUL_CTRL_2375_2; | ||
87 | unsigned long statemate_sc_FH_TUERMODUL_CTRL_2352_1; | ||
88 | unsigned long statemate_sc_FH_TUERMODUL_CTRL_2329_1; | ||
89 | int statemate_FH_TUERMODUL_CTRL__N; | ||
90 | int statemate_FH_TUERMODUL_CTRL__N_old; | ||
91 | unsigned long statemate_sc_FH_TUERMODUL_CTRL_1781_10; | ||
92 | unsigned long statemate_sc_FH_TUERMODUL_CTRL_1739_10; | ||
93 | int statemate_FH_TUERMODUL__POSITION; | ||
94 | int statemate_FH_TUERMODUL__I_EIN; | ||
95 | int statemate_FH_TUERMODUL__I_EIN_old; | ||
96 | int statemate_FH_DU__MFH; | ||
97 | int statemate_FH_DU__MFH_copy; | ||
98 | int statemate_FH_DU__POSITION; | ||
99 | int statemate_FH_DU__I_EIN; | ||
100 | int statemate_FH_DU__I_EIN_old; | ||
101 | int statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX; | ||
102 | int statemate_BLOCK_ERKENNUNG_CTRL__N; | ||
103 | int statemate_BLOCK_ERKENNUNG_CTRL__N_old; | ||
104 | char statemate_FH_TUERMODUL_CTRL__INREVERS2; | ||
105 | char statemate_FH_TUERMODUL_CTRL__INREVERS2_copy; | ||
106 | char statemate_FH_TUERMODUL_CTRL__INREVERS1; | ||
107 | char statemate_FH_TUERMODUL_CTRL__INREVERS1_copy; | ||
108 | char statemate_FH_TUERMODUL__SFHZ_ZENTRAL; | ||
109 | char statemate_FH_TUERMODUL__SFHZ_ZENTRAL_old; | ||
110 | char statemate_FH_TUERMODUL__SFHZ_MEC; | ||
111 | char statemate_FH_TUERMODUL__SFHZ_MEC_old; | ||
112 | char statemate_FH_TUERMODUL__SFHA_ZENTRAL; | ||
113 | char statemate_FH_TUERMODUL__SFHA_ZENTRAL_old; | ||
114 | char statemate_FH_TUERMODUL__SFHA_MEC; | ||
115 | char statemate_FH_TUERMODUL__SFHA_MEC_old; | ||
116 | char statemate_FH_TUERMODUL__KL_50; | ||
117 | char statemate_FH_TUERMODUL__BLOCK; | ||
118 | char statemate_FH_TUERMODUL__BLOCK_copy; | ||
119 | char statemate_FH_TUERMODUL__BLOCK_old; | ||
120 | char statemate_FH_TUERMODUL__FT; | ||
121 | char statemate_FH_TUERMODUL__SFHZ; | ||
122 | char statemate_FH_TUERMODUL__SFHZ_copy; | ||
123 | char statemate_FH_TUERMODUL__SFHZ_old; | ||
124 | char statemate_FH_TUERMODUL__SFHA; | ||
125 | char statemate_FH_TUERMODUL__SFHA_copy; | ||
126 | char statemate_FH_TUERMODUL__SFHA_old; | ||
127 | char statemate_FH_TUERMODUL__MFHZ; | ||
128 | char statemate_FH_TUERMODUL__MFHZ_copy; | ||
129 | char statemate_FH_TUERMODUL__MFHZ_old; | ||
130 | char statemate_FH_TUERMODUL__MFHA; | ||
131 | char statemate_FH_TUERMODUL__MFHA_copy; | ||
132 | char statemate_FH_TUERMODUL__MFHA_old; | ||
133 | char statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV; | ||
134 | char statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV_old; | ||
135 | char statemate_FH_DU__KL_50; | ||
136 | char statemate_FH_DU__S_FH_FTZU; | ||
137 | char statemate_FH_DU__S_FH_FTAUF; | ||
138 | char statemate_FH_DU__FT; | ||
139 | char statemate_FH_DU__EKS_LEISTE_AKTIV; | ||
140 | char statemate_FH_DU__EKS_LEISTE_AKTIV_old; | ||
141 | char statemate_FH_DU__S_FH_TMBFAUFCAN; | ||
142 | char statemate_FH_DU__S_FH_TMBFAUFCAN_old; | ||
143 | char statemate_FH_DU__S_FH_TMBFZUCAN; | ||
144 | char statemate_FH_DU__S_FH_TMBFZUCAN_old; | ||
145 | char statemate_FH_DU__S_FH_TMBFZUDISC; | ||
146 | char statemate_FH_DU__S_FH_TMBFZUDISC_old; | ||
147 | char statemate_FH_DU__S_FH_TMBFAUFDISC; | ||
148 | char statemate_FH_DU__S_FH_TMBFAUFDISC_old; | ||
149 | char statemate_FH_DU__S_FH_ZUDISC; | ||
150 | char statemate_FH_DU__S_FH_AUFDISC; | ||
151 | char statemate_FH_DU__DOOR_ID; | ||
152 | char statemate_FH_DU__BLOCK; | ||
153 | char statemate_FH_DU__BLOCK_copy; | ||
154 | char statemate_FH_DU__BLOCK_old; | ||
155 | char statemate_FH_DU__MFHZ; | ||
156 | char statemate_FH_DU__MFHZ_copy; | ||
157 | char statemate_FH_DU__MFHZ_old; | ||
158 | char statemate_FH_DU__MFHA; | ||
159 | char statemate_FH_DU__MFHA_copy; | ||
160 | char statemate_FH_DU__MFHA_old; | ||
161 | |||
162 | unsigned long statemate_time; | ||
163 | char statemate_stable; | ||
164 | char statemate_step; | ||
165 | |||
166 | char | ||
167 | statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state; /** 2 bits **/ | ||
168 | char | ||
169 | statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state; /** 1 bits **/ | ||
170 | char statemate_MEC_KINDERSICHERUNG_CTRL_next_state; /** 1 bits **/ | ||
171 | char | ||
172 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state; /** 2 bits **/ | ||
173 | char statemate_B_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/ | ||
174 | char statemate_A_FH_TUERMODUL_CTRL_next_state; /** 1 bits **/ | ||
175 | char | ||
176 | statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state; /** 1 bits **/ | ||
177 | char | ||
178 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/ | ||
179 | char | ||
180 | statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/ | ||
181 | char | ||
182 | statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/ | ||
183 | char statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/ | ||
184 | char | ||
185 | statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/ | ||
186 | char | ||
187 | statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state; /** 2 bits **/ | ||
188 | char | ||
189 | statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state; /** 2 bits **/ | ||
190 | char | ||
191 | statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state; /** 2 bits **/ | ||
192 | char | ||
193 | statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state; /** 2 bits **/ | ||
194 | |||
195 | |||
196 | /* | ||
197 | Initialization-related functions | ||
198 | */ | ||
199 | |||
200 | void statemate_init( void ) | ||
201 | { | ||
202 | statemate_tm_entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRLch_BLOCK_ERKENNUNG_CTRL__N_copy | ||
203 | = 0; | ||
204 | statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRLexited_BEREIT_FH_TUERMODUL_CTRL | ||
205 | = 0; | ||
206 | statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL = 0; | ||
207 | statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 0; | ||
208 | statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 0; | ||
209 | statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 0; | ||
210 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 0; | ||
211 | statemate_B_FH_TUERMODUL_CTRL_next_state = 0; | ||
212 | statemate_A_FH_TUERMODUL_CTRL_next_state = 0; | ||
213 | statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 0; | ||
214 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 0; | ||
215 | statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 0; | ||
216 | statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 0; | ||
217 | statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 0; | ||
218 | statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 0; | ||
219 | statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 0; | ||
220 | statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state = 0; | ||
221 | statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 0; | ||
222 | statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 0; | ||
223 | |||
224 | statemate_interface(); | ||
225 | } /** statemate_init **/ | ||
226 | |||
227 | |||
228 | void statemate_interface( void ) | ||
229 | { | ||
230 | if ( SYS_bit_get( statemate_bitlist, | ||
231 | entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX ) ) | ||
232 | statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL = statemate_time; | ||
233 | if ( SYS_bit_get( statemate_bitlist, | ||
234 | entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX ) || | ||
235 | SYS_bit_get( statemate_bitlist, exited_BEREIT_FH_TUERMODUL_CTRL_IDX ) ) | ||
236 | statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRLexited_BEREIT_FH_TUERMODUL_CTRL | ||
237 | = statemate_time; | ||
238 | if ( ( statemate_sc_FH_TUERMODUL_CTRL_2375_2 != 0 ) && | ||
239 | ( statemate_time - statemate_sc_FH_TUERMODUL_CTRL_2375_2 >= 500 ) ) { | ||
240 | statemate_FH_TUERMODUL__MFHA_copy = 0; | ||
241 | statemate_sc_FH_TUERMODUL_CTRL_2375_2 = 0; | ||
242 | } | ||
243 | if ( ( statemate_sc_FH_TUERMODUL_CTRL_2352_1 != 0 ) && | ||
244 | ( statemate_time - statemate_sc_FH_TUERMODUL_CTRL_2352_1 >= 500 ) ) { | ||
245 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
246 | statemate_sc_FH_TUERMODUL_CTRL_2352_1 = 0; | ||
247 | } | ||
248 | if ( ( statemate_sc_FH_TUERMODUL_CTRL_2329_1 != 0 ) && | ||
249 | ( statemate_time - statemate_sc_FH_TUERMODUL_CTRL_2329_1 >= 500 ) ) { | ||
250 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
251 | statemate_sc_FH_TUERMODUL_CTRL_2329_1 = 0; | ||
252 | } | ||
253 | if ( ( statemate_sc_FH_TUERMODUL_CTRL_1781_10 != 0 ) && | ||
254 | ( statemate_time - statemate_sc_FH_TUERMODUL_CTRL_1781_10 >= 500 ) ) | ||
255 | statemate_sc_FH_TUERMODUL_CTRL_1781_10 = 0; | ||
256 | |||
257 | if ( ( statemate_sc_FH_TUERMODUL_CTRL_1739_10 != 0 ) && | ||
258 | ( statemate_time - statemate_sc_FH_TUERMODUL_CTRL_1739_10 >= 500 ) ) | ||
259 | statemate_sc_FH_TUERMODUL_CTRL_1739_10 = 0; | ||
260 | |||
261 | if ( ( SYS_bit_get( statemate_bitlist, | ||
262 | entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX ) || | ||
263 | statemate_BLOCK_ERKENNUNG_CTRL__N != statemate_BLOCK_ERKENNUNG_CTRL__N_old ) ) | ||
264 | statemate_tm_entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRLch_BLOCK_ERKENNUNG_CTRL__N_copy | ||
265 | = statemate_time; | ||
266 | } /** statemate_interface **/ | ||
267 | |||
268 | |||
269 | /* | ||
270 | Algorithm core functions | ||
271 | */ | ||
272 | |||
273 | void statemate_generic_KINDERSICHERUNG_CTRL( void ) | ||
274 | { | ||
275 | if ( SYS_bit_get( statemate_bitlist, active_KINDERSICHERUNG_CTRL_IDX ) ) { | ||
276 | switch ( statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state ) { | ||
277 | case 1: { /** state ZENTRAL in chart KINDERSICHERUNG_CTRL **/ | ||
278 | if ( !( statemate_FH_TUERMODUL__SFHA_ZENTRAL || | ||
279 | statemate_FH_TUERMODUL__SFHZ_ZENTRAL ) ) { | ||
280 | statemate_stable = 0; | ||
281 | statemate_FH_TUERMODUL__SFHZ_copy = 0; | ||
282 | statemate_FH_TUERMODUL__SFHA_copy = 0; | ||
283 | |||
284 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 3; | ||
285 | statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 0; | ||
286 | break; | ||
287 | } | ||
288 | switch ( statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state ) { | ||
289 | case 1: { /** state IN_ZENTRAL in chart KINDERSICHERUNG_CTRL **/ | ||
290 | if ( ( statemate_FH_TUERMODUL__SFHA_ZENTRAL && | ||
291 | !( statemate_FH_TUERMODUL__SFHA_ZENTRAL_old ) ) ) { | ||
292 | statemate_stable = 0; | ||
293 | statemate_FH_TUERMODUL__SFHA_copy = 1; | ||
294 | |||
295 | statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 1; | ||
296 | break; | ||
297 | } | ||
298 | if ( ( statemate_FH_TUERMODUL__SFHZ_ZENTRAL && | ||
299 | !( statemate_FH_TUERMODUL__SFHZ_ZENTRAL_old ) ) ) { | ||
300 | statemate_stable = 0; | ||
301 | statemate_FH_TUERMODUL__SFHZ_copy = 1; | ||
302 | |||
303 | statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 1; | ||
304 | break; | ||
305 | } | ||
306 | if ( ( !( statemate_FH_TUERMODUL__SFHA_ZENTRAL ) && | ||
307 | statemate_FH_TUERMODUL__SFHA_ZENTRAL_old ) ) { | ||
308 | statemate_stable = 0; | ||
309 | statemate_FH_TUERMODUL__SFHA_copy = 0; | ||
310 | |||
311 | statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 1; | ||
312 | break; | ||
313 | } | ||
314 | if ( ( !( statemate_FH_TUERMODUL__SFHZ_ZENTRAL ) && | ||
315 | statemate_FH_TUERMODUL__SFHZ_ZENTRAL_old ) ) { | ||
316 | statemate_stable = 0; | ||
317 | statemate_FH_TUERMODUL__SFHZ_copy = 0; | ||
318 | |||
319 | statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 1; | ||
320 | break; | ||
321 | } | ||
322 | break; | ||
323 | } | ||
324 | default: { | ||
325 | statemate_stable = 0; | ||
326 | break; | ||
327 | } | ||
328 | } /** switch statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state **/ | ||
329 | break; | ||
330 | } | ||
331 | case 2: { /** state MEC in chart KINDERSICHERUNG_CTRL **/ | ||
332 | if ( !( statemate_FH_TUERMODUL__SFHA_MEC || | ||
333 | statemate_FH_TUERMODUL__SFHZ_MEC ) ) { | ||
334 | statemate_stable = 0; | ||
335 | statemate_FH_TUERMODUL__SFHZ_copy = 0; | ||
336 | statemate_FH_TUERMODUL__SFHA_copy = 0; | ||
337 | |||
338 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 3; | ||
339 | statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 0; | ||
340 | break; | ||
341 | } | ||
342 | switch ( statemate_MEC_KINDERSICHERUNG_CTRL_next_state ) { | ||
343 | case 1: { /** state INMEC in chart KINDERSICHERUNG_CTRL **/ | ||
344 | if ( ( statemate_FH_TUERMODUL__SFHA_MEC && | ||
345 | !( statemate_FH_TUERMODUL__SFHA_MEC_old ) ) ) { | ||
346 | statemate_stable = 0; | ||
347 | statemate_FH_TUERMODUL__SFHA_copy = 1; | ||
348 | |||
349 | statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 1; | ||
350 | break; | ||
351 | } | ||
352 | if ( ( statemate_FH_TUERMODUL__SFHZ_MEC && | ||
353 | !( statemate_FH_TUERMODUL__SFHZ_MEC_old ) ) ) { | ||
354 | statemate_stable = 0; | ||
355 | statemate_FH_TUERMODUL__SFHZ_copy = 1; | ||
356 | |||
357 | statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 1; | ||
358 | break; | ||
359 | } | ||
360 | if ( ( !( statemate_FH_TUERMODUL__SFHA_MEC ) && | ||
361 | statemate_FH_TUERMODUL__SFHA_MEC_old ) ) { | ||
362 | statemate_stable = 0; | ||
363 | statemate_FH_TUERMODUL__SFHA_copy = 0; | ||
364 | |||
365 | statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 1; | ||
366 | break; | ||
367 | } | ||
368 | if ( ( !( statemate_FH_TUERMODUL__SFHZ_MEC ) && | ||
369 | statemate_FH_TUERMODUL__SFHZ_MEC_old ) ) { | ||
370 | statemate_stable = 0; | ||
371 | statemate_FH_TUERMODUL__SFHZ_copy = 0; | ||
372 | |||
373 | statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 1; | ||
374 | break; | ||
375 | } | ||
376 | break; | ||
377 | } | ||
378 | default: { | ||
379 | statemate_stable = 0; | ||
380 | break; | ||
381 | } | ||
382 | } /** switch statemate_MEC_KINDERSICHERUNG_CTRL_next_state **/ | ||
383 | break; | ||
384 | } | ||
385 | case 3: { /** state WAITING in chart KINDERSICHERUNG_CTRL **/ | ||
386 | if ( ( !statemate_FH_TUERMODUL__KL_50 ) && ( statemate_FH_TUERMODUL__SFHZ_MEC && | ||
387 | statemate_FH_TUERMODUL__SFHA_MEC ) ) { | ||
388 | statemate_stable = 0; | ||
389 | statemate_FH_TUERMODUL__SFHZ_copy = 1; | ||
390 | statemate_FH_TUERMODUL__SFHA_copy = 1; | ||
391 | |||
392 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 2; | ||
393 | break; | ||
394 | } | ||
395 | if ( ( !statemate_FH_TUERMODUL__KL_50 ) && ( statemate_FH_TUERMODUL__SFHZ_MEC && | ||
396 | !statemate_FH_TUERMODUL__SFHA_MEC ) ) { | ||
397 | statemate_stable = 0; | ||
398 | statemate_FH_TUERMODUL__SFHZ_copy = 1; | ||
399 | |||
400 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 2; | ||
401 | break; | ||
402 | } | ||
403 | if ( ( !statemate_FH_TUERMODUL__KL_50 ) && | ||
404 | ( !statemate_FH_TUERMODUL__SFHZ_MEC && | ||
405 | statemate_FH_TUERMODUL__SFHA_MEC ) ) { | ||
406 | statemate_stable = 0; | ||
407 | statemate_FH_TUERMODUL__SFHA_copy = 1; | ||
408 | |||
409 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 2; | ||
410 | break; | ||
411 | } | ||
412 | if ( ( !statemate_FH_TUERMODUL__SFHZ_ZENTRAL && | ||
413 | statemate_FH_TUERMODUL__SFHA_ZENTRAL && | ||
414 | !statemate_FH_TUERMODUL__KL_50 ) ) { | ||
415 | statemate_stable = 0; | ||
416 | statemate_FH_TUERMODUL__SFHA_copy = 1; | ||
417 | |||
418 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 1; | ||
419 | break; | ||
420 | } | ||
421 | if ( ( statemate_FH_TUERMODUL__SFHZ_ZENTRAL && | ||
422 | statemate_FH_TUERMODUL__SFHA_ZENTRAL ) ) { | ||
423 | statemate_stable = 0; | ||
424 | statemate_FH_TUERMODUL__SFHA_copy = 1; | ||
425 | statemate_FH_TUERMODUL__SFHZ_copy = 1; | ||
426 | |||
427 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 1; | ||
428 | break; | ||
429 | } | ||
430 | if ( ( statemate_FH_TUERMODUL__SFHZ_ZENTRAL && | ||
431 | !statemate_FH_TUERMODUL__SFHA_ZENTRAL && | ||
432 | !statemate_FH_TUERMODUL__KL_50 ) ) { | ||
433 | statemate_stable = 0; | ||
434 | statemate_FH_TUERMODUL__SFHZ_copy = 1; | ||
435 | |||
436 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 1; | ||
437 | break; | ||
438 | } | ||
439 | break; | ||
440 | } | ||
441 | default: { | ||
442 | statemate_stable = 0; | ||
443 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 3; | ||
444 | break; | ||
445 | } | ||
446 | } /** switch statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state **/ | ||
447 | } | ||
448 | } | ||
449 | |||
450 | |||
451 | void statemate_generic_FH_TUERMODUL_CTRL( void ) | ||
452 | { | ||
453 | if ( !SYS_bit_get( statemate_bitlist, active_FH_TUERMODUL_CTRL_IDX ) && | ||
454 | SYS_bit_get( statemate_bitlist, active_FH_TUERMODUL_CTRL_old_IDX ) && | ||
455 | !SYS_bit_get( statemate_bitlist, active_FH_TUERMODUL_CTRL_copy_IDX ) ) { | ||
456 | SYS_bit_clr( statemate_bitlist, entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX ); | ||
457 | SYS_bit_clr( statemate_bitlist, exited_BEREIT_FH_TUERMODUL_CTRL_IDX ); | ||
458 | } | ||
459 | if ( SYS_bit_get( statemate_bitlist, active_FH_TUERMODUL_CTRL_IDX ) ) { | ||
460 | if ( !SYS_bit_get( statemate_bitlist, active_KINDERSICHERUNG_CTRL_IDX ) ) | ||
461 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 3; | ||
462 | SYS_bit_clr( statemate_bitlist, active_KINDERSICHERUNG_CTRL_copy_IDX ); | ||
463 | if ( !SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_IDX ) ) { | ||
464 | SYS_bit_clr( statemate_bitlist, | ||
465 | entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX ); | ||
466 | statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 1; | ||
467 | } | ||
468 | SYS_bit_clr( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX ); | ||
469 | SYS_bit_set( statemate_bitlist, active_KINDERSICHERUNG_CTRL_copy_IDX ); | ||
470 | SYS_bit_set( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX ); | ||
471 | switch ( statemate_B_FH_TUERMODUL_CTRL_next_state ) { | ||
472 | case 1: { /** state ZAEHLER_WHSP_ZU_HOCH in chart FH_TUERMODUL_CTRL **/ | ||
473 | if ( ( statemate_FH_TUERMODUL_CTRL__N == 59 && | ||
474 | !( statemate_FH_TUERMODUL_CTRL__N_old == 59 ) ) ) { | ||
475 | statemate_stable = 0; | ||
476 | |||
477 | statemate_B_FH_TUERMODUL_CTRL_next_state = 3; | ||
478 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3; | ||
479 | break; | ||
480 | } | ||
481 | break; | ||
482 | } | ||
483 | case 2: { /** state NICHT_INITIALISIERT in chart FH_TUERMODUL_CTRL **/ | ||
484 | if ( ( ( statemate_FH_TUERMODUL__BLOCK && | ||
485 | !( statemate_FH_TUERMODUL__BLOCK_old ) ) ) && | ||
486 | ( ( statemate_FH_TUERMODUL__MFHZ ) ) ) { | ||
487 | statemate_stable = 0; | ||
488 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
489 | statemate_sc_FH_TUERMODUL_CTRL_2329_1 = statemate_time; | ||
490 | |||
491 | statemate_B_FH_TUERMODUL_CTRL_next_state = 3; | ||
492 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3; | ||
493 | break; | ||
494 | } | ||
495 | switch ( statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state ) { | ||
496 | case 1: { /** state SCHLIESSEN in chart NICHT_INITIALISIERT **/ | ||
497 | if ( !( statemate_FH_TUERMODUL__SFHZ ) ) { | ||
498 | statemate_stable = 0; | ||
499 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
500 | |||
501 | statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 3; | ||
502 | break; | ||
503 | } | ||
504 | break; | ||
505 | } | ||
506 | case 2: { /** state OEFFNEN in chart NICHT_INITIALISIERT **/ | ||
507 | if ( !( statemate_FH_TUERMODUL__SFHA ) ) { | ||
508 | statemate_stable = 0; | ||
509 | statemate_FH_TUERMODUL__MFHA_copy = 0; | ||
510 | |||
511 | statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 3; | ||
512 | break; | ||
513 | } | ||
514 | break; | ||
515 | } | ||
516 | case 3: { /** state BEREIT in chart NICHT_INITIALISIERT **/ | ||
517 | if ( ( statemate_FH_TUERMODUL__SFHA ) ) { | ||
518 | statemate_stable = 0; | ||
519 | statemate_FH_TUERMODUL__MFHA_copy = 1; | ||
520 | |||
521 | statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 2; | ||
522 | break; | ||
523 | } | ||
524 | if ( ( statemate_FH_TUERMODUL__SFHZ ) ) { | ||
525 | statemate_stable = 0; | ||
526 | statemate_FH_TUERMODUL__MFHZ_copy = 1; | ||
527 | |||
528 | statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 1; | ||
529 | break; | ||
530 | } | ||
531 | break; | ||
532 | } | ||
533 | default: { | ||
534 | statemate_stable = 0; | ||
535 | statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 3; | ||
536 | break; | ||
537 | } | ||
538 | } /** switch statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state **/ | ||
539 | break; | ||
540 | } | ||
541 | case 3: { /** state INITIALISIERT in chart FH_TUERMODUL_CTRL **/ | ||
542 | if ( ( ( statemate_FH_TUERMODUL_CTRL__N > 60 && | ||
543 | !( statemate_FH_TUERMODUL_CTRL__N_old > 60 ) ) ) && | ||
544 | ( ( !( statemate_FH_TUERMODUL_CTRL__INREVERS1 || | ||
545 | statemate_FH_TUERMODUL_CTRL__INREVERS2 ) ) ) ) { | ||
546 | statemate_stable = 0; | ||
547 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
548 | statemate_FH_TUERMODUL__MFHA_copy = 0; | ||
549 | |||
550 | statemate_B_FH_TUERMODUL_CTRL_next_state = 1; | ||
551 | break; | ||
552 | } | ||
553 | if ( ( ( statemate_FH_TUERMODUL__BLOCK && | ||
554 | !( statemate_FH_TUERMODUL__BLOCK_old ) ) ) && | ||
555 | ( ( statemate_FH_TUERMODUL__MFHA ) ) ) { | ||
556 | statemate_stable = 0; | ||
557 | statemate_FH_TUERMODUL__MFHA_copy = 0; | ||
558 | statemate_sc_FH_TUERMODUL_CTRL_2375_2 = statemate_time; | ||
559 | |||
560 | statemate_B_FH_TUERMODUL_CTRL_next_state = 2; | ||
561 | statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 3; | ||
562 | break; | ||
563 | } | ||
564 | if ( ( ( statemate_FH_TUERMODUL__BLOCK && | ||
565 | !( statemate_FH_TUERMODUL__BLOCK_old ) ) ) && | ||
566 | ( ( statemate_FH_TUERMODUL__MFHZ ) ) ) { | ||
567 | statemate_stable = 0; | ||
568 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
569 | statemate_sc_FH_TUERMODUL_CTRL_2352_1 = statemate_time; | ||
570 | |||
571 | statemate_B_FH_TUERMODUL_CTRL_next_state = 2; | ||
572 | statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 3; | ||
573 | break; | ||
574 | } | ||
575 | switch ( statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state ) { | ||
576 | case 1: { /** state OEFFNEN in chart FH_TUERMODUL_CTRL **/ | ||
577 | if ( ( statemate_FH_TUERMODUL__POSITION >= 405 ) ) { | ||
578 | statemate_stable = 0; | ||
579 | statemate_FH_TUERMODUL__MFHA_copy = 0; | ||
580 | |||
581 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3; | ||
582 | break; | ||
583 | } | ||
584 | switch ( statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state ) { | ||
585 | case 1: { /** state TIPP_OEFFNEN in chart FH_TUERMODUL_CTRL **/ | ||
586 | if ( ( statemate_FH_TUERMODUL__SFHZ && | ||
587 | !( statemate_FH_TUERMODUL__SFHZ_old ) ) || | ||
588 | ( statemate_FH_TUERMODUL__SFHA && !( statemate_FH_TUERMODUL__SFHA_old ) ) ) { | ||
589 | statemate_stable = 0; | ||
590 | statemate_FH_TUERMODUL__MFHA_copy = 0; | ||
591 | |||
592 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3; | ||
593 | statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 0; | ||
594 | break; | ||
595 | } | ||
596 | break; | ||
597 | } | ||
598 | case 2: { /** state MAN_OEFFNEN in chart FH_TUERMODUL_CTRL **/ | ||
599 | if ( ( statemate_FH_TUERMODUL__SFHZ && | ||
600 | !( statemate_FH_TUERMODUL__SFHZ_old ) ) ) { | ||
601 | statemate_stable = 0; | ||
602 | |||
603 | statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 1; | ||
604 | break; | ||
605 | } | ||
606 | if ( ( !( statemate_FH_TUERMODUL__SFHA ) && | ||
607 | statemate_FH_TUERMODUL__SFHA_old ) ) { | ||
608 | statemate_stable = 0; | ||
609 | statemate_FH_TUERMODUL__MFHA_copy = 0; | ||
610 | |||
611 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3; | ||
612 | statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 0; | ||
613 | break; | ||
614 | } | ||
615 | break; | ||
616 | } | ||
617 | default: { | ||
618 | statemate_stable = 0; | ||
619 | statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 2; | ||
620 | break; | ||
621 | } | ||
622 | } /** switch statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state **/ | ||
623 | break; | ||
624 | } | ||
625 | case 2: { /** state SCHLIESSEN in chart FH_TUERMODUL_CTRL **/ | ||
626 | if ( ( statemate_FH_TUERMODUL__POSITION <= 0 ) ) { | ||
627 | statemate_stable = 0; | ||
628 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
629 | |||
630 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3; | ||
631 | break; | ||
632 | } | ||
633 | switch ( statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state ) { | ||
634 | case 1: { /** state TIPP_SCHLIESSEN in chart FH_TUERMODUL_CTRL **/ | ||
635 | if ( ( statemate_FH_TUERMODUL__SFHA && | ||
636 | !( statemate_FH_TUERMODUL__SFHA_old ) ) || | ||
637 | ( statemate_FH_TUERMODUL__SFHZ && !( statemate_FH_TUERMODUL__SFHZ_old ) ) ) { | ||
638 | statemate_stable = 0; | ||
639 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
640 | |||
641 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3; | ||
642 | break; | ||
643 | } | ||
644 | switch ( statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state ) { | ||
645 | case 1: { /** state REVERSIEREN2 in chart FH_TUERMODUL_CTRL **/ | ||
646 | SYS_bit_clr( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_copy_IDX ); | ||
647 | if ( SYS_bit_get( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_IDX ) ) { | ||
648 | statemate_stable = 0; | ||
649 | statemate_FH_TUERMODUL__MFHZ_copy = 1; | ||
650 | statemate_FH_TUERMODUL_CTRL__INREVERS2_copy = 0; | ||
651 | |||
652 | statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2; | ||
653 | statemate_FH_TUERMODUL__MFHA_copy = 0; | ||
654 | |||
655 | SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX ); | ||
656 | break; | ||
657 | } | ||
658 | break; | ||
659 | } | ||
660 | case 2: { /** state TIPP_SCHLIESSEN1 in chart FH_TUERMODUL_CTRL **/ | ||
661 | if ( SYS_bit_get( statemate_bitlist, FH_TUERMODUL__EINKLEMMUNG_IDX ) ) { | ||
662 | statemate_stable = 0; | ||
663 | statemate_FH_TUERMODUL_CTRL__INREVERS2_copy = 1; | ||
664 | |||
665 | SYS_bit_set( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_copy_IDX ); | ||
666 | statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 1; | ||
667 | SYS_bit_clr( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX ); | ||
668 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
669 | |||
670 | statemate_sc_FH_TUERMODUL_CTRL_1781_10 = statemate_time; | ||
671 | statemate_FH_TUERMODUL__MFHA_copy = 1; | ||
672 | break; | ||
673 | } | ||
674 | break; | ||
675 | } | ||
676 | default: { | ||
677 | statemate_stable = 0; | ||
678 | statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2; | ||
679 | SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX ); | ||
680 | break; | ||
681 | } | ||
682 | } /** switch statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state **/ | ||
683 | break; | ||
684 | } | ||
685 | case 2: { /** state MANUELL_SCHLIESSEN in chart FH_TUERMODUL_CTRL **/ | ||
686 | if ( ( !( statemate_FH_TUERMODUL__SFHZ ) && | ||
687 | statemate_FH_TUERMODUL__SFHZ_old ) ) { | ||
688 | statemate_stable = 0; | ||
689 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
690 | |||
691 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3; | ||
692 | break; | ||
693 | } | ||
694 | switch ( statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state ) { | ||
695 | case 1: { /** state REVERSIEREN1 in chart FH_TUERMODUL_CTRL **/ | ||
696 | SYS_bit_clr( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_copy_IDX ); | ||
697 | if ( SYS_bit_get( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_IDX ) ) { | ||
698 | statemate_stable = 0; | ||
699 | statemate_FH_TUERMODUL_CTRL__INREVERS1_copy = 0; | ||
700 | |||
701 | statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2; | ||
702 | statemate_FH_TUERMODUL__MFHA_copy = 0; | ||
703 | |||
704 | SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX ); | ||
705 | statemate_FH_TUERMODUL__MFHZ_copy = 1; | ||
706 | break; | ||
707 | } | ||
708 | break; | ||
709 | } | ||
710 | case 2: { /** state MAN_SCHLIESSEN in chart FH_TUERMODUL_CTRL **/ | ||
711 | if ( SYS_bit_get( statemate_bitlist, FH_TUERMODUL__EINKLEMMUNG_IDX ) ) { | ||
712 | statemate_stable = 0; | ||
713 | statemate_FH_TUERMODUL__MFHZ_copy = 0; | ||
714 | statemate_FH_TUERMODUL_CTRL__INREVERS1_copy = 1; | ||
715 | |||
716 | SYS_bit_set( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_copy_IDX ); | ||
717 | statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 1; | ||
718 | SYS_bit_clr( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX ); | ||
719 | |||
720 | statemate_sc_FH_TUERMODUL_CTRL_1739_10 = statemate_time; | ||
721 | statemate_FH_TUERMODUL__MFHA_copy = 1; | ||
722 | break; | ||
723 | } | ||
724 | if ( ( statemate_FH_TUERMODUL__SFHA && | ||
725 | !( statemate_FH_TUERMODUL__SFHA_old ) ) ) { | ||
726 | statemate_stable = 0; | ||
727 | |||
728 | statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 1; | ||
729 | statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 0; | ||
730 | break; | ||
731 | } | ||
732 | break; | ||
733 | } | ||
734 | default: { | ||
735 | statemate_stable = 0; | ||
736 | statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2; | ||
737 | SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX ); | ||
738 | statemate_FH_TUERMODUL__MFHZ_copy = 1; | ||
739 | break; | ||
740 | } | ||
741 | } /** switch statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state **/ | ||
742 | break; | ||
743 | } | ||
744 | default: { | ||
745 | statemate_stable = 0; | ||
746 | statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2; | ||
747 | statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2; | ||
748 | SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX ); | ||
749 | statemate_FH_TUERMODUL__MFHZ_copy = 1; | ||
750 | break; | ||
751 | } | ||
752 | } /** switch statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state **/ | ||
753 | break; | ||
754 | } | ||
755 | case 3: { /** state BEREIT in chart FH_TUERMODUL_CTRL **/ | ||
756 | if ( ( ( statemate_FH_TUERMODUL__SFHZ && | ||
757 | !( statemate_FH_TUERMODUL__SFHZ_old ) ) ) && | ||
758 | ( ( statemate_FH_TUERMODUL__POSITION > 0 ) ) ) { | ||
759 | statemate_stable = 0; | ||
760 | |||
761 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 2; | ||
762 | statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2; | ||
763 | statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2; | ||
764 | SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX ); | ||
765 | statemate_FH_TUERMODUL__MFHZ_copy = 1; | ||
766 | break; | ||
767 | } | ||
768 | if ( ( ( statemate_FH_TUERMODUL__SFHA && | ||
769 | !( statemate_FH_TUERMODUL__SFHA_old ) ) ) && | ||
770 | ( ( statemate_FH_TUERMODUL__POSITION < 405 ) ) ) { | ||
771 | statemate_stable = 0; | ||
772 | statemate_FH_TUERMODUL__MFHA_copy = 1; | ||
773 | |||
774 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 1; | ||
775 | statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 2; | ||
776 | break; | ||
777 | } | ||
778 | break; | ||
779 | } | ||
780 | default: { | ||
781 | statemate_stable = 0; | ||
782 | statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3; | ||
783 | break; | ||
784 | } | ||
785 | } /** switch statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state **/ | ||
786 | break; | ||
787 | } | ||
788 | default: { | ||
789 | statemate_stable = 0; | ||
790 | statemate_B_FH_TUERMODUL_CTRL_next_state = 2; | ||
791 | break; | ||
792 | } | ||
793 | } /** switch statemate_B_FH_TUERMODUL_CTRL_next_state **/ | ||
794 | switch ( statemate_A_FH_TUERMODUL_CTRL_next_state ) { | ||
795 | case 1: { /** state WIEDERHOLSPERRE in chart FH_TUERMODUL_CTRL **/ | ||
796 | SYS_bit_clr( statemate_bitlist, | ||
797 | entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX ); | ||
798 | if ( ( statemate_step == 1 && | ||
799 | statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRLexited_BEREIT_FH_TUERMODUL_CTRL | ||
800 | != 0 | ||
801 | && ( statemate_time - | ||
802 | statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRLexited_BEREIT_FH_TUERMODUL_CTRL | ||
803 | == | ||
804 | 1 ) ) && ( ( statemate_FH_TUERMODUL__MFHZ || | ||
805 | statemate_FH_TUERMODUL__MFHA ) ) ) { | ||
806 | statemate_stable = 0; | ||
807 | statemate_FH_TUERMODUL_CTRL__N = statemate_FH_TUERMODUL_CTRL__N + 1; | ||
808 | |||
809 | statemate_A_FH_TUERMODUL_CTRL_next_state = 1; | ||
810 | SYS_bit_set( statemate_bitlist, | ||
811 | entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX ); | ||
812 | statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 1; | ||
813 | break; | ||
814 | } | ||
815 | switch ( statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state ) { | ||
816 | case 1: { /** state WDHSP in chart FH_TUERMODUL_CTRL **/ | ||
817 | if ( ( statemate_step == 1 && | ||
818 | statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL != 0 && | ||
819 | ( statemate_time - statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL == | ||
820 | 3 ) ) && | ||
821 | ( ( ( !( statemate_FH_TUERMODUL__MFHZ || statemate_FH_TUERMODUL__MFHA ) ) && | ||
822 | statemate_FH_TUERMODUL_CTRL__N > 0 ) ) ) { | ||
823 | statemate_stable = 0; | ||
824 | statemate_FH_TUERMODUL_CTRL__N = statemate_FH_TUERMODUL_CTRL__N - 1; | ||
825 | |||
826 | statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 1; | ||
827 | break; | ||
828 | } | ||
829 | break; | ||
830 | } | ||
831 | default: { | ||
832 | statemate_stable = 0; | ||
833 | SYS_bit_set( statemate_bitlist, | ||
834 | entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX ); | ||
835 | statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 1; | ||
836 | break; | ||
837 | } | ||
838 | } /** switch statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state **/ | ||
839 | break; | ||
840 | } | ||
841 | default: { | ||
842 | statemate_stable = 0; | ||
843 | statemate_FH_TUERMODUL_CTRL__N = 0; | ||
844 | statemate_A_FH_TUERMODUL_CTRL_next_state = 1; | ||
845 | SYS_bit_set( statemate_bitlist, | ||
846 | entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX ); | ||
847 | statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 1; | ||
848 | break; | ||
849 | } | ||
850 | } /** switch statemate_A_FH_TUERMODUL_CTRL_next_state **/ | ||
851 | SYS_bit_cpy( statemate_bitlist, | ||
852 | entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX, | ||
853 | statemate_bitlist, entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX ); | ||
854 | SYS_bit_cpy( statemate_bitlist, exited_BEREIT_FH_TUERMODUL_CTRL_copy_IDX, | ||
855 | statemate_bitlist, | ||
856 | exited_BEREIT_FH_TUERMODUL_CTRL_IDX ); | ||
857 | } | ||
858 | } | ||
859 | |||
860 | |||
861 | void statemate_generic_EINKLEMMSCHUTZ_CTRL( void ) | ||
862 | { | ||
863 | if ( SYS_bit_get( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_IDX ) ) { | ||
864 | switch ( statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state ) { | ||
865 | case 1: { /** state NORMALBETRIEB in chart EINKLEMMSCHUTZ_CTRL **/ | ||
866 | if ( ( ( statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV && | ||
867 | !( statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV_old ) ) ) && | ||
868 | ( ( !( statemate_FH_TUERMODUL__SFHZ && | ||
869 | statemate_FH_TUERMODUL__SFHA ) ) ) ) { | ||
870 | statemate_stable = 0; | ||
871 | |||
872 | SYS_bit_set( statemate_bitlist, FH_TUERMODUL__EINKLEMMUNG_IDX ); | ||
873 | statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state = 2; | ||
874 | break; | ||
875 | } | ||
876 | break; | ||
877 | } | ||
878 | case 2: { /** state EINKLEMMUNG in chart EINKLEMMSCHUTZ_CTRL **/ | ||
879 | SYS_bit_clr( statemate_bitlist, FH_TUERMODUL__EINKLEMMUNG_IDX ); | ||
880 | if ( ( !( statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV ) && | ||
881 | statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV_old ) ) { | ||
882 | statemate_stable = 0; | ||
883 | |||
884 | statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state = 1; | ||
885 | break; | ||
886 | } | ||
887 | break; | ||
888 | } | ||
889 | default: { | ||
890 | statemate_stable = 0; | ||
891 | statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state = 1; | ||
892 | break; | ||
893 | } | ||
894 | } /** switch statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state **/ | ||
895 | } | ||
896 | } | ||
897 | |||
898 | |||
899 | void statemate_generic_BLOCK_ERKENNUNG_CTRL( void ) | ||
900 | { | ||
901 | if ( !SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_IDX ) && | ||
902 | SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_old_IDX ) && | ||
903 | !SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX ) ) | ||
904 | SYS_bit_clr( statemate_bitlist, | ||
905 | entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX ); | ||
906 | if ( SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_IDX ) ) { | ||
907 | switch ( statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state ) { | ||
908 | case 1: { /** state KEINE_BEWEGUNG in chart BLOCK_ERKENNUNG_CTRL **/ | ||
909 | if ( ( statemate_FH_TUERMODUL__I_EIN != statemate_FH_TUERMODUL__I_EIN_old ) && | ||
910 | ( ( statemate_FH_TUERMODUL__I_EIN > 0 ) ) ) { | ||
911 | statemate_stable = 0; | ||
912 | statemate_FH_TUERMODUL__BLOCK_copy = 0; | ||
913 | |||
914 | statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 2; | ||
915 | statemate_BLOCK_ERKENNUNG_CTRL__N = 0; | ||
916 | statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX = 2; | ||
917 | statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 3; | ||
918 | SYS_bit_set( statemate_bitlist, | ||
919 | entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX ); | ||
920 | break; | ||
921 | } | ||
922 | break; | ||
923 | } | ||
924 | case 2: { /** state BEWEGUNG in chart BLOCK_ERKENNUNG_CTRL **/ | ||
925 | if ( ( !( statemate_FH_TUERMODUL__MFHA ) && | ||
926 | statemate_FH_TUERMODUL__MFHA_old ) || | ||
927 | ( !( statemate_FH_TUERMODUL__MFHZ ) && statemate_FH_TUERMODUL__MFHZ_old ) ) { | ||
928 | statemate_stable = 0; | ||
929 | |||
930 | statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 1; | ||
931 | statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 0; | ||
932 | break; | ||
933 | } | ||
934 | switch ( statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state ) { | ||
935 | case 1: { /** state FENSTER_BLOCKIERT in chart BLOCK_ERKENNUNG_CTRL **/ | ||
936 | break; | ||
937 | } | ||
938 | case 2: { /** state FENSTER_BEWEGT_SICH in chart BLOCK_ERKENNUNG_CTRL **/ | ||
939 | if ( ( statemate_FH_TUERMODUL__I_EIN > | ||
940 | ( statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX - 2 ) ) ) { | ||
941 | statemate_stable = 0; | ||
942 | statemate_FH_TUERMODUL__BLOCK_copy = 1; | ||
943 | |||
944 | statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 1; | ||
945 | break; | ||
946 | } | ||
947 | break; | ||
948 | } | ||
949 | case 3: { /** state EINSCHALTSTROM_MESSEN in chart BLOCK_ERKENNUNG_CTRL **/ | ||
950 | SYS_bit_clr( statemate_bitlist, | ||
951 | entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX ); | ||
952 | if ( ( statemate_BLOCK_ERKENNUNG_CTRL__N == 11 && | ||
953 | !( statemate_BLOCK_ERKENNUNG_CTRL__N_old == 11 ) ) ) { | ||
954 | statemate_stable = 0; | ||
955 | |||
956 | statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 2; | ||
957 | break; | ||
958 | } | ||
959 | /** static reactions: **/ | ||
960 | if ( statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state == 3 ) { | ||
961 | if ( statemate_step == 1 && | ||
962 | statemate_tm_entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRLch_BLOCK_ERKENNUNG_CTRL__N_copy | ||
963 | != 0 && ( statemate_time - | ||
964 | statemate_tm_entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRLch_BLOCK_ERKENNUNG_CTRL__N_copy | ||
965 | == 2 ) ) { | ||
966 | statemate_BLOCK_ERKENNUNG_CTRL__N = statemate_BLOCK_ERKENNUNG_CTRL__N + 1; | ||
967 | if ( ( statemate_FH_TUERMODUL__I_EIN > | ||
968 | statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX ) ) | ||
969 | statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX = statemate_FH_TUERMODUL__I_EIN; | ||
970 | |||
971 | } | ||
972 | } | ||
973 | /** end static reactions **/ | ||
974 | break; | ||
975 | } | ||
976 | default: { | ||
977 | statemate_stable = 0; | ||
978 | statemate_BLOCK_ERKENNUNG_CTRL__N = 0; | ||
979 | statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX = 2; | ||
980 | statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 3; | ||
981 | SYS_bit_set( statemate_bitlist, | ||
982 | entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX ); | ||
983 | break; | ||
984 | } | ||
985 | } /** switch statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state **/ | ||
986 | break; | ||
987 | } | ||
988 | default: { | ||
989 | statemate_stable = 0; | ||
990 | statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 1; | ||
991 | break; | ||
992 | } | ||
993 | } /** switch statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state **/ | ||
994 | } | ||
995 | } | ||
996 | |||
997 | |||
998 | void statemate_FH_DU( void ) | ||
999 | { | ||
1000 | statemate_time = 1; /**SYS_get_clock()**/ | ||
1001 | statemate_stable = 0; | ||
1002 | statemate_step = 0; | ||
1003 | // patched for wcet: replacing while statement by for | ||
1004 | //while (!statemate_stable) | ||
1005 | int i; | ||
1006 | _Pragma( "loopbound min 100 max 100" ) | ||
1007 | for ( i = 0; i < 100; i++ ) { | ||
1008 | statemate_stable = 1; | ||
1009 | statemate_step++; | ||
1010 | { | ||
1011 | switch ( statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state ) { | ||
1012 | case 1: { /** state SCHLIESSEN in chart FH_STEUERUNG_DUMMY **/ | ||
1013 | if ( ( !( statemate_FH_DU__MFHZ ) && statemate_FH_DU__MFHZ_old ) ) { | ||
1014 | statemate_stable = 0; | ||
1015 | statemate_FH_DU__MFH = 0; | ||
1016 | |||
1017 | statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 2; | ||
1018 | break; | ||
1019 | } | ||
1020 | break; | ||
1021 | } | ||
1022 | case 2: { /** state BEREIT in chart FH_STEUERUNG_DUMMY **/ | ||
1023 | if ( ( statemate_FH_DU__MFHZ && !( statemate_FH_DU__MFHZ_old ) ) ) { | ||
1024 | statemate_stable = 0; | ||
1025 | statemate_FH_DU__MFH = -100; | ||
1026 | |||
1027 | statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 1; | ||
1028 | break; | ||
1029 | } | ||
1030 | if ( ( statemate_FH_DU__MFHA && !( statemate_FH_DU__MFHA_old ) ) ) { | ||
1031 | statemate_stable = 0; | ||
1032 | statemate_FH_DU__MFH = 100; | ||
1033 | |||
1034 | statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 3; | ||
1035 | break; | ||
1036 | } | ||
1037 | break; | ||
1038 | } | ||
1039 | case 3: { /** state OEFFNEN in chart FH_STEUERUNG_DUMMY **/ | ||
1040 | if ( ( !( statemate_FH_DU__MFHA ) && statemate_FH_DU__MFHA_old ) ) { | ||
1041 | statemate_stable = 0; | ||
1042 | statemate_FH_DU__MFH = 0; | ||
1043 | |||
1044 | statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 2; | ||
1045 | break; | ||
1046 | } | ||
1047 | break; | ||
1048 | } | ||
1049 | default: { | ||
1050 | statemate_stable = 0; | ||
1051 | statemate_FH_DU__MFH = 0; | ||
1052 | statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 2; | ||
1053 | break; | ||
1054 | } | ||
1055 | } /** switch statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state **/ | ||
1056 | } | ||
1057 | { | ||
1058 | { | ||
1059 | if ( !SYS_bit_get( statemate_bitlist, active_KINDERSICHERUNG_CTRL_IDX ) ) | ||
1060 | statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 3; | ||
1061 | SYS_bit_clr( statemate_bitlist, active_KINDERSICHERUNG_CTRL_copy_IDX ); | ||
1062 | if ( !SYS_bit_get( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_IDX ) ) | ||
1063 | statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state = 1; | ||
1064 | SYS_bit_clr( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX ); | ||
1065 | if ( !SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_IDX ) ) { | ||
1066 | SYS_bit_clr( statemate_bitlist, | ||
1067 | entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX ); | ||
1068 | statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 1; | ||
1069 | } | ||
1070 | SYS_bit_clr( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX ); | ||
1071 | if ( !SYS_bit_get( statemate_bitlist, active_FH_TUERMODUL_CTRL_IDX ) ) { | ||
1072 | SYS_bit_clr( statemate_bitlist, entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX ); | ||
1073 | SYS_bit_clr( statemate_bitlist, exited_BEREIT_FH_TUERMODUL_CTRL_IDX ); | ||
1074 | statemate_B_FH_TUERMODUL_CTRL_next_state = 2; | ||
1075 | statemate_FH_TUERMODUL_CTRL__N = 0; | ||
1076 | statemate_A_FH_TUERMODUL_CTRL_next_state = 1; | ||
1077 | SYS_bit_set( statemate_bitlist, | ||
1078 | entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX ); | ||
1079 | statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 1; | ||
1080 | } | ||
1081 | SYS_bit_clr( statemate_bitlist, active_FH_TUERMODUL_CTRL_copy_IDX ); | ||
1082 | SYS_bit_set( statemate_bitlist, active_KINDERSICHERUNG_CTRL_copy_IDX ); | ||
1083 | SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX ); | ||
1084 | SYS_bit_set( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX ); | ||
1085 | SYS_bit_set( statemate_bitlist, active_FH_TUERMODUL_CTRL_copy_IDX ); | ||
1086 | /** static reactions: **/ | ||
1087 | if ( statemate_FH_DU__S_FH_TMBFZUCAN != statemate_FH_DU__S_FH_TMBFZUCAN_old ) { | ||
1088 | if ( ( !statemate_FH_DU__DOOR_ID ) ) | ||
1089 | statemate_FH_DU__S_FH_FTZU = statemate_FH_DU__S_FH_TMBFZUCAN; | ||
1090 | |||
1091 | } | ||
1092 | if ( statemate_FH_DU__S_FH_TMBFZUDISC != | ||
1093 | statemate_FH_DU__S_FH_TMBFZUDISC_old ) { | ||
1094 | if ( statemate_FH_DU__DOOR_ID ) | ||
1095 | statemate_FH_DU__S_FH_TMBFZUCAN = statemate_FH_DU__S_FH_TMBFZUDISC; | ||
1096 | |||
1097 | } | ||
1098 | if ( statemate_FH_DU__S_FH_TMBFAUFCAN != | ||
1099 | statemate_FH_DU__S_FH_TMBFAUFCAN_old ) { | ||
1100 | if ( ( !statemate_FH_DU__DOOR_ID ) ) | ||
1101 | statemate_FH_DU__S_FH_FTAUF = statemate_FH_DU__S_FH_TMBFAUFCAN; | ||
1102 | |||
1103 | } | ||
1104 | if ( statemate_FH_DU__S_FH_TMBFAUFDISC != | ||
1105 | statemate_FH_DU__S_FH_TMBFAUFDISC_old ) { | ||
1106 | if ( statemate_FH_DU__DOOR_ID ) | ||
1107 | statemate_FH_DU__S_FH_TMBFAUFCAN = statemate_FH_DU__S_FH_TMBFAUFDISC; | ||
1108 | |||
1109 | } | ||
1110 | /** end static reactions **/ | ||
1111 | } | ||
1112 | } | ||
1113 | SYS_bit_cpy( statemate_bitlist, active_KINDERSICHERUNG_CTRL_IDX, | ||
1114 | statemate_bitlist, | ||
1115 | active_KINDERSICHERUNG_CTRL_old_IDX ); | ||
1116 | SYS_bit_cpy( statemate_bitlist, active_FH_TUERMODUL_CTRL_IDX, statemate_bitlist, | ||
1117 | active_FH_TUERMODUL_CTRL_old_IDX ); | ||
1118 | SYS_bit_cpy( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_IDX, | ||
1119 | statemate_bitlist, | ||
1120 | active_EINKLEMMSCHUTZ_CTRL_old_IDX ); | ||
1121 | SYS_bit_cpy( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_IDX, | ||
1122 | statemate_bitlist, | ||
1123 | active_BLOCK_ERKENNUNG_CTRL_old_IDX ); | ||
1124 | statemate_FH_TUERMODUL__SFHA_MEC = statemate_FH_DU__S_FH_AUFDISC; | ||
1125 | statemate_FH_TUERMODUL__SFHA_ZENTRAL = statemate_FH_DU__S_FH_FTAUF; | ||
1126 | statemate_FH_TUERMODUL__SFHZ_MEC = statemate_FH_DU__S_FH_ZUDISC; | ||
1127 | statemate_FH_TUERMODUL__SFHZ_ZENTRAL = statemate_FH_DU__S_FH_FTZU; | ||
1128 | |||
1129 | statemate_generic_KINDERSICHERUNG_CTRL(); | ||
1130 | |||
1131 | statemate_FH_DU__MFHA = statemate_FH_TUERMODUL__MFHA; | ||
1132 | statemate_FH_DU__MFHZ = statemate_FH_TUERMODUL__MFHZ; | ||
1133 | statemate_FH_DU__I_EIN = statemate_FH_TUERMODUL__I_EIN; | ||
1134 | statemate_FH_DU__EKS_LEISTE_AKTIV = statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV; | ||
1135 | statemate_FH_DU__POSITION = statemate_FH_TUERMODUL__POSITION; | ||
1136 | statemate_FH_DU__FT = statemate_FH_TUERMODUL__FT; | ||
1137 | statemate_FH_DU__S_FH_AUFDISC = statemate_FH_TUERMODUL__SFHA_MEC; | ||
1138 | statemate_FH_DU__S_FH_FTAUF = statemate_FH_TUERMODUL__SFHA_ZENTRAL; | ||
1139 | statemate_FH_DU__S_FH_ZUDISC = statemate_FH_TUERMODUL__SFHZ_MEC; | ||
1140 | statemate_FH_DU__S_FH_FTZU = statemate_FH_TUERMODUL__SFHZ_ZENTRAL; | ||
1141 | statemate_FH_DU__KL_50 = statemate_FH_TUERMODUL__KL_50; | ||
1142 | statemate_FH_DU__BLOCK = statemate_FH_TUERMODUL__BLOCK; | ||
1143 | |||
1144 | statemate_FH_TUERMODUL__SFHA_MEC = statemate_FH_DU__S_FH_AUFDISC; | ||
1145 | statemate_FH_TUERMODUL__SFHA_ZENTRAL = statemate_FH_DU__S_FH_FTAUF; | ||
1146 | statemate_FH_TUERMODUL__SFHZ_MEC = statemate_FH_DU__S_FH_ZUDISC; | ||
1147 | statemate_FH_TUERMODUL__SFHZ_ZENTRAL = statemate_FH_DU__S_FH_FTZU; | ||
1148 | |||
1149 | statemate_generic_FH_TUERMODUL_CTRL(); | ||
1150 | |||
1151 | statemate_FH_DU__MFHA = statemate_FH_TUERMODUL__MFHA; | ||
1152 | statemate_FH_DU__MFHZ = statemate_FH_TUERMODUL__MFHZ; | ||
1153 | statemate_FH_DU__I_EIN = statemate_FH_TUERMODUL__I_EIN; | ||
1154 | statemate_FH_DU__EKS_LEISTE_AKTIV = statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV; | ||
1155 | statemate_FH_DU__POSITION = statemate_FH_TUERMODUL__POSITION; | ||
1156 | statemate_FH_DU__FT = statemate_FH_TUERMODUL__FT; | ||
1157 | statemate_FH_DU__S_FH_AUFDISC = statemate_FH_TUERMODUL__SFHA_MEC; | ||
1158 | statemate_FH_DU__S_FH_FTAUF = statemate_FH_TUERMODUL__SFHA_ZENTRAL; | ||
1159 | statemate_FH_DU__S_FH_ZUDISC = statemate_FH_TUERMODUL__SFHZ_MEC; | ||
1160 | statemate_FH_DU__S_FH_FTZU = statemate_FH_TUERMODUL__SFHZ_ZENTRAL; | ||
1161 | statemate_FH_DU__KL_50 = statemate_FH_TUERMODUL__KL_50; | ||
1162 | statemate_FH_DU__BLOCK = statemate_FH_TUERMODUL__BLOCK; | ||
1163 | |||
1164 | statemate_FH_TUERMODUL__SFHA_MEC = statemate_FH_DU__S_FH_AUFDISC; | ||
1165 | statemate_FH_TUERMODUL__SFHA_ZENTRAL = statemate_FH_DU__S_FH_FTAUF; | ||
1166 | statemate_FH_TUERMODUL__SFHZ_MEC = statemate_FH_DU__S_FH_ZUDISC; | ||
1167 | statemate_FH_TUERMODUL__SFHZ_ZENTRAL = statemate_FH_DU__S_FH_FTZU; | ||
1168 | |||
1169 | statemate_generic_EINKLEMMSCHUTZ_CTRL(); | ||
1170 | |||
1171 | statemate_FH_DU__MFHA = statemate_FH_TUERMODUL__MFHA; | ||
1172 | statemate_FH_DU__MFHZ = statemate_FH_TUERMODUL__MFHZ; | ||
1173 | statemate_FH_DU__I_EIN = statemate_FH_TUERMODUL__I_EIN; | ||
1174 | statemate_FH_DU__EKS_LEISTE_AKTIV = statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV; | ||
1175 | statemate_FH_DU__POSITION = statemate_FH_TUERMODUL__POSITION; | ||
1176 | statemate_FH_DU__FT = statemate_FH_TUERMODUL__FT; | ||
1177 | statemate_FH_DU__S_FH_AUFDISC = statemate_FH_TUERMODUL__SFHA_MEC; | ||
1178 | statemate_FH_DU__S_FH_FTAUF = statemate_FH_TUERMODUL__SFHA_ZENTRAL; | ||
1179 | statemate_FH_DU__S_FH_ZUDISC = statemate_FH_TUERMODUL__SFHZ_MEC; | ||
1180 | statemate_FH_DU__S_FH_FTZU = statemate_FH_TUERMODUL__SFHZ_ZENTRAL; | ||
1181 | statemate_FH_DU__KL_50 = statemate_FH_TUERMODUL__KL_50; | ||
1182 | statemate_FH_DU__BLOCK = statemate_FH_TUERMODUL__BLOCK; | ||
1183 | |||
1184 | statemate_FH_TUERMODUL__SFHA_MEC = statemate_FH_DU__S_FH_AUFDISC; | ||
1185 | statemate_FH_TUERMODUL__SFHA_ZENTRAL = statemate_FH_DU__S_FH_FTAUF; | ||
1186 | statemate_FH_TUERMODUL__SFHZ_MEC = statemate_FH_DU__S_FH_ZUDISC; | ||
1187 | statemate_FH_TUERMODUL__SFHZ_ZENTRAL = statemate_FH_DU__S_FH_FTZU; | ||
1188 | |||
1189 | statemate_generic_BLOCK_ERKENNUNG_CTRL(); | ||
1190 | |||
1191 | statemate_FH_DU__MFHA = statemate_FH_TUERMODUL__MFHA; | ||
1192 | statemate_FH_DU__MFHZ = statemate_FH_TUERMODUL__MFHZ; | ||
1193 | statemate_FH_DU__I_EIN = statemate_FH_TUERMODUL__I_EIN; | ||
1194 | statemate_FH_DU__EKS_LEISTE_AKTIV = statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV; | ||
1195 | statemate_FH_DU__POSITION = statemate_FH_TUERMODUL__POSITION; | ||
1196 | statemate_FH_DU__FT = statemate_FH_TUERMODUL__FT; | ||
1197 | statemate_FH_DU__S_FH_AUFDISC = statemate_FH_TUERMODUL__SFHA_MEC; | ||
1198 | statemate_FH_DU__S_FH_FTAUF = statemate_FH_TUERMODUL__SFHA_ZENTRAL; | ||
1199 | statemate_FH_DU__S_FH_ZUDISC = statemate_FH_TUERMODUL__SFHZ_MEC; | ||
1200 | statemate_FH_DU__S_FH_FTZU = statemate_FH_TUERMODUL__SFHZ_ZENTRAL; | ||
1201 | statemate_FH_DU__KL_50 = statemate_FH_TUERMODUL__KL_50; | ||
1202 | statemate_FH_DU__BLOCK = statemate_FH_TUERMODUL__BLOCK; | ||
1203 | |||
1204 | SYS_bit_cpy( statemate_bitlist, active_KINDERSICHERUNG_CTRL_copy_IDX, | ||
1205 | statemate_bitlist, | ||
1206 | active_KINDERSICHERUNG_CTRL_IDX ); | ||
1207 | SYS_bit_cpy( statemate_bitlist, active_FH_TUERMODUL_CTRL_copy_IDX, | ||
1208 | statemate_bitlist, | ||
1209 | active_FH_TUERMODUL_CTRL_IDX ); | ||
1210 | SYS_bit_cpy( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX, | ||
1211 | statemate_bitlist, | ||
1212 | active_EINKLEMMSCHUTZ_CTRL_IDX ); | ||
1213 | SYS_bit_cpy( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX, | ||
1214 | statemate_bitlist, | ||
1215 | active_BLOCK_ERKENNUNG_CTRL_IDX ); | ||
1216 | statemate_FH_TUERMODUL_CTRL__N_old = statemate_FH_TUERMODUL_CTRL__N; | ||
1217 | statemate_FH_TUERMODUL__I_EIN_old = statemate_FH_TUERMODUL__I_EIN; | ||
1218 | statemate_FH_DU__MFH = statemate_FH_DU__MFH_copy; | ||
1219 | statemate_FH_DU__I_EIN_old = statemate_FH_DU__I_EIN; | ||
1220 | statemate_BLOCK_ERKENNUNG_CTRL__N_old = statemate_BLOCK_ERKENNUNG_CTRL__N; | ||
1221 | statemate_FH_TUERMODUL__SFHZ_ZENTRAL_old = statemate_FH_TUERMODUL__SFHZ_ZENTRAL; | ||
1222 | statemate_FH_TUERMODUL__SFHZ_MEC_old = statemate_FH_TUERMODUL__SFHZ_MEC; | ||
1223 | statemate_FH_TUERMODUL__SFHA_ZENTRAL_old = statemate_FH_TUERMODUL__SFHA_ZENTRAL; | ||
1224 | statemate_FH_TUERMODUL__SFHA_MEC_old = statemate_FH_TUERMODUL__SFHA_MEC; | ||
1225 | statemate_FH_TUERMODUL__BLOCK = statemate_FH_TUERMODUL__BLOCK_copy; | ||
1226 | statemate_FH_TUERMODUL__BLOCK_old = statemate_FH_TUERMODUL__BLOCK; | ||
1227 | statemate_FH_TUERMODUL__SFHZ = statemate_FH_TUERMODUL__SFHZ_copy; | ||
1228 | statemate_FH_TUERMODUL__SFHZ_old = statemate_FH_TUERMODUL__SFHZ; | ||
1229 | statemate_FH_TUERMODUL__SFHA = statemate_FH_TUERMODUL__SFHA_copy; | ||
1230 | statemate_FH_TUERMODUL__SFHA_old = statemate_FH_TUERMODUL__SFHA; | ||
1231 | statemate_FH_TUERMODUL__MFHZ = statemate_FH_TUERMODUL__MFHZ_copy; | ||
1232 | statemate_FH_TUERMODUL__MFHZ_old = statemate_FH_TUERMODUL__MFHZ; | ||
1233 | statemate_FH_TUERMODUL__MFHA = statemate_FH_TUERMODUL__MFHA_copy; | ||
1234 | statemate_FH_TUERMODUL__MFHA_old = statemate_FH_TUERMODUL__MFHA; | ||
1235 | statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV_old = | ||
1236 | statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV; | ||
1237 | statemate_FH_DU__EKS_LEISTE_AKTIV_old = statemate_FH_DU__EKS_LEISTE_AKTIV; | ||
1238 | statemate_FH_DU__S_FH_TMBFAUFCAN_old = statemate_FH_DU__S_FH_TMBFAUFCAN; | ||
1239 | statemate_FH_DU__S_FH_TMBFZUCAN_old = statemate_FH_DU__S_FH_TMBFZUCAN; | ||
1240 | statemate_FH_DU__S_FH_TMBFZUDISC_old = statemate_FH_DU__S_FH_TMBFZUDISC; | ||
1241 | statemate_FH_DU__S_FH_TMBFAUFDISC_old = statemate_FH_DU__S_FH_TMBFAUFDISC; | ||
1242 | statemate_FH_DU__BLOCK = statemate_FH_DU__BLOCK_copy; | ||
1243 | statemate_FH_DU__BLOCK_old = statemate_FH_DU__BLOCK; | ||
1244 | statemate_FH_DU__MFHZ = statemate_FH_DU__MFHZ_copy; | ||
1245 | statemate_FH_DU__MFHZ_old = statemate_FH_DU__MFHZ; | ||
1246 | statemate_FH_DU__MFHA = statemate_FH_DU__MFHA_copy; | ||
1247 | statemate_FH_DU__MFHA_old = statemate_FH_DU__MFHA; | ||
1248 | |||
1249 | } /** while(!statemate_stable) **/ | ||
1250 | |||
1251 | } /** statemate_FH_DU **/ | ||
1252 | |||
1253 | |||
1254 | /* | ||
1255 | Main functions | ||
1256 | */ | ||
1257 | |||
1258 | int statemate_return() | ||
1259 | { | ||
1260 | unsigned long int checksum = 0; | ||
1261 | int index; | ||
1262 | for ( index=63 ; index>=0 ; index-- ){ | ||
1263 | checksum += (unsigned long) (statemate_bitlist[index] << index); | ||
1264 | } | ||
1265 | return(checksum == 18446744073709551614ul); | ||
1266 | } | ||
1267 | |||
1268 | void _Pragma ( "entrypoint" ) statemate_main( void ) | ||
1269 | { | ||
1270 | statemate_FH_DU(); | ||
1271 | } | ||
1272 | |||
1273 | |||
1274 | int main ( int argc, char **argv ) | ||
1275 | { | ||
1276 | SET_UP | ||
1277 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
1278 | START_LOOP | ||
1279 | statemate_init(); | ||
1280 | statemate_main(); | ||
1281 | STOP_LOOP | ||
1282 | } | ||
1283 | WRITE_TO_FILE | ||
1284 | |||
1285 | return statemate_return(); | ||
1286 | } | ||
diff --git a/baseline/source/susan/ChangeLog.txt b/baseline/source/susan/ChangeLog.txt new file mode 100644 index 0000000..bb603df --- /dev/null +++ b/baseline/source/susan/ChangeLog.txt | |||
@@ -0,0 +1,11 @@ | |||
1 | 2017-07-04 | ||
2 | - Removed self-assignment to avoid clangs self-assign warning. | ||
3 | - Introduced susan_initm susan_main and susan_return. | ||
4 | - Fix possible division by zero to please tacle-lint. | ||
5 | - Removed unused variables. | ||
6 | - Added prefix 'susan_'. | ||
7 | - Removed exit_on_error function. | ||
8 | - Removed PowerPC specific typedef. | ||
9 | |||
10 | 2017-08-18: | ||
11 | - Give explicit name to former anonymous struct to silence g++ warnings. | ||
diff --git a/baseline/source/susan/LICENSE b/baseline/source/susan/LICENSE new file mode 100644 index 0000000..18d5124 --- /dev/null +++ b/baseline/source/susan/LICENSE | |||
@@ -0,0 +1,14 @@ | |||
1 | This code is issued for research purposes only and remains the | ||
2 | property of the UK Secretary of State for Defence. This code must | ||
3 | not be passed on without this header information being kept | ||
4 | intact. This code must not be sold. | ||
5 | |||
6 | A UK patent has been granted: "Method for digitally processing | ||
7 | images to determine the position of edges and/or corners therein for | ||
8 | guidance of unmanned vehicle", UK Patent 2272285. Proprietor: | ||
9 | Secretary of State for Defence, UK. 15 January 1997 | ||
10 | |||
11 | |||
12 | Source Code obtained from: | ||
13 | |||
14 | http://www.fmrib.ox.ac.uk/~steve/susan/index.html | ||
diff --git a/baseline/source/susan/input.c b/baseline/source/susan/input.c new file mode 100644 index 0000000..4e6ba40 --- /dev/null +++ b/baseline/source/susan/input.c | |||
@@ -0,0 +1,7292 @@ | |||
1 | char susan_input[7292] = { 80, | ||
2 | 53, | ||
3 | 10, | ||
4 | 35, | ||
5 | 32, | ||
6 | 67, | ||
7 | 82, | ||
8 | 69, | ||
9 | 65, | ||
10 | 84, | ||
11 | 79, | ||
12 | 82, | ||
13 | 58, | ||
14 | 32, | ||
15 | 88, | ||
16 | 86, | ||
17 | 32, | ||
18 | 86, | ||
19 | 101, | ||
20 | 114, | ||
21 | 115, | ||
22 | 105, | ||
23 | 111, | ||
24 | 110, | ||
25 | 32, | ||
26 | 51, | ||
27 | 46, | ||
28 | 49, | ||
29 | 48, | ||
30 | 97, | ||
31 | 32, | ||
32 | 32, | ||
33 | 82, | ||
34 | 101, | ||
35 | 118, | ||
36 | 58, | ||
37 | 32, | ||
38 | 49, | ||
39 | 50, | ||
40 | 47, | ||
41 | 50, | ||
42 | 57, | ||
43 | 47, | ||
44 | 57, | ||
45 | 52, | ||
46 | 32, | ||
47 | 40, | ||
48 | 80, | ||
49 | 78, | ||
50 | 71, | ||
51 | 32, | ||
52 | 112, | ||
53 | 97, | ||
54 | 116, | ||
55 | 99, | ||
56 | 104, | ||
57 | 32, | ||
58 | 49, | ||
59 | 46, | ||
60 | 50, | ||
61 | 41, | ||
62 | 10, | ||
63 | 55, | ||
64 | 54, | ||
65 | 32, | ||
66 | 57, | ||
67 | 53, | ||
68 | 10, | ||
69 | 50, | ||
70 | 53, | ||
71 | 53, | ||
72 | 10, | ||
73 | 35, | ||
74 | 36, | ||
75 | 36, | ||
76 | 36, | ||
77 | 36, | ||
78 | 38, | ||
79 | 38, | ||
80 | 36, | ||
81 | 37, | ||
82 | 37, | ||
83 | 37, | ||
84 | 38, | ||
85 | 38, | ||
86 | 36, | ||
87 | 34, | ||
88 | 38, | ||
89 | 40, | ||
90 | 41, | ||
91 | 42, | ||
92 | 40, | ||
93 | 38, | ||
94 | 36, | ||
95 | 36, | ||
96 | 35, | ||
97 | 36, | ||
98 | 35, | ||
99 | 32, | ||
100 | 35, | ||
101 | 38, | ||
102 | 42, | ||
103 | 42, | ||
104 | 38, | ||
105 | 36, | ||
106 | 36, | ||
107 | 36, | ||
108 | 37, | ||
109 | 36, | ||
110 | 35, | ||
111 | 33, | ||
112 | 33, | ||
113 | 33, | ||
114 | 32, | ||
115 | 31, | ||
116 | 33, | ||
117 | 36, | ||
118 | 39, | ||
119 | 40, | ||
120 | 36, | ||
121 | 36, | ||
122 | 34, | ||
123 | 34, | ||
124 | 36, | ||
125 | 38, | ||
126 | 39, | ||
127 | 37, | ||
128 | 36, | ||
129 | 36, | ||
130 | 35, | ||
131 | 36, | ||
132 | 39, | ||
133 | 39, | ||
134 | 37, | ||
135 | 37, | ||
136 | 39, | ||
137 | 37, | ||
138 | 38, | ||
139 | 39, | ||
140 | 40, | ||
141 | 38, | ||
142 | 37, | ||
143 | 37, | ||
144 | 33, | ||
145 | 33, | ||
146 | 32, | ||
147 | 33, | ||
148 | 34, | ||
149 | 35, | ||
150 | 35, | ||
151 | 36, | ||
152 | 36, | ||
153 | 36, | ||
154 | 37, | ||
155 | 38, | ||
156 | 37, | ||
157 | 38, | ||
158 | 38, | ||
159 | 39, | ||
160 | 41, | ||
161 | 41, | ||
162 | 40, | ||
163 | 40, | ||
164 | 43, | ||
165 | 42, | ||
166 | 41, | ||
167 | 40, | ||
168 | 39, | ||
169 | 38, | ||
170 | 35, | ||
171 | 33, | ||
172 | 35, | ||
173 | 35, | ||
174 | 37, | ||
175 | 39, | ||
176 | 38, | ||
177 | 37, | ||
178 | 36, | ||
179 | 38, | ||
180 | 36, | ||
181 | 36, | ||
182 | 34, | ||
183 | 34, | ||
184 | 38, | ||
185 | 39, | ||
186 | 39, | ||
187 | 37, | ||
188 | 36, | ||
189 | 36, | ||
190 | 34, | ||
191 | 33, | ||
192 | 34, | ||
193 | 33, | ||
194 | 35, | ||
195 | 33, | ||
196 | 36, | ||
197 | 35, | ||
198 | 35, | ||
199 | 36, | ||
200 | 36, | ||
201 | 37, | ||
202 | 33, | ||
203 | 32, | ||
204 | 36, | ||
205 | 38, | ||
206 | 38, | ||
207 | 38, | ||
208 | 39, | ||
209 | 39, | ||
210 | 38, | ||
211 | 39, | ||
212 | 37, | ||
213 | 35, | ||
214 | 36, | ||
215 | 34, | ||
216 | 35, | ||
217 | 36, | ||
218 | 37, | ||
219 | 39, | ||
220 | 38, | ||
221 | 37, | ||
222 | 34, | ||
223 | 31, | ||
224 | 34, | ||
225 | 35, | ||
226 | 35, | ||
227 | 35, | ||
228 | 35, | ||
229 | 36, | ||
230 | 38, | ||
231 | 39, | ||
232 | 39, | ||
233 | 37, | ||
234 | 38, | ||
235 | 38, | ||
236 | 40, | ||
237 | 39, | ||
238 | 40, | ||
239 | 41, | ||
240 | 43, | ||
241 | 44, | ||
242 | 42, | ||
243 | 40, | ||
244 | 39, | ||
245 | 38, | ||
246 | 42, | ||
247 | 42, | ||
248 | 39, | ||
249 | 39, | ||
250 | 36, | ||
251 | 33, | ||
252 | 33, | ||
253 | 34, | ||
254 | 36, | ||
255 | 36, | ||
256 | 35, | ||
257 | 33, | ||
258 | 33, | ||
259 | 35, | ||
260 | 37, | ||
261 | 36, | ||
262 | 34, | ||
263 | 34, | ||
264 | 31, | ||
265 | 30, | ||
266 | 32, | ||
267 | 36, | ||
268 | 42, | ||
269 | 43, | ||
270 | 43, | ||
271 | 40, | ||
272 | 36, | ||
273 | 36, | ||
274 | 36, | ||
275 | 35, | ||
276 | 34, | ||
277 | 35, | ||
278 | 33, | ||
279 | 33, | ||
280 | 30, | ||
281 | 32, | ||
282 | 34, | ||
283 | 35, | ||
284 | 35, | ||
285 | 35, | ||
286 | 36, | ||
287 | 35, | ||
288 | 37, | ||
289 | 34, | ||
290 | 34, | ||
291 | 35, | ||
292 | 36, | ||
293 | 37, | ||
294 | 37, | ||
295 | 35, | ||
296 | 36, | ||
297 | 37, | ||
298 | 39, | ||
299 | 39, | ||
300 | 38, | ||
301 | 35, | ||
302 | 35, | ||
303 | 35, | ||
304 | 35, | ||
305 | 35, | ||
306 | 36, | ||
307 | 38, | ||
308 | 37, | ||
309 | 38, | ||
310 | 38, | ||
311 | 36, | ||
312 | 35, | ||
313 | 35, | ||
314 | 36, | ||
315 | 35, | ||
316 | 35, | ||
317 | 35, | ||
318 | 35, | ||
319 | 34, | ||
320 | 34, | ||
321 | 36, | ||
322 | 36, | ||
323 | 38, | ||
324 | 40, | ||
325 | 38, | ||
326 | 37, | ||
327 | 36, | ||
328 | 34, | ||
329 | 34, | ||
330 | 35, | ||
331 | 35, | ||
332 | 36, | ||
333 | 37, | ||
334 | 37, | ||
335 | 38, | ||
336 | 38, | ||
337 | 39, | ||
338 | 39, | ||
339 | 36, | ||
340 | 35, | ||
341 | 36, | ||
342 | 35, | ||
343 | 37, | ||
344 | 36, | ||
345 | 38, | ||
346 | 39, | ||
347 | 37, | ||
348 | 38, | ||
349 | 34, | ||
350 | 33, | ||
351 | 32, | ||
352 | 33, | ||
353 | 32, | ||
354 | 28, | ||
355 | 34, | ||
356 | 40, | ||
357 | 45, | ||
358 | 44, | ||
359 | 40, | ||
360 | 38, | ||
361 | 34, | ||
362 | 30, | ||
363 | 30, | ||
364 | 33, | ||
365 | 40, | ||
366 | 45, | ||
367 | 43, | ||
368 | 41, | ||
369 | 37, | ||
370 | 37, | ||
371 | 37, | ||
372 | 36, | ||
373 | 33, | ||
374 | 31, | ||
375 | 32, | ||
376 | 31, | ||
377 | 35, | ||
378 | 35, | ||
379 | 35, | ||
380 | 35, | ||
381 | 35, | ||
382 | 38, | ||
383 | 39, | ||
384 | 39, | ||
385 | 40, | ||
386 | 39, | ||
387 | 37, | ||
388 | 37, | ||
389 | 37, | ||
390 | 35, | ||
391 | 35, | ||
392 | 37, | ||
393 | 37, | ||
394 | 36, | ||
395 | 37, | ||
396 | 37, | ||
397 | 37, | ||
398 | 38, | ||
399 | 37, | ||
400 | 38, | ||
401 | 37, | ||
402 | 37, | ||
403 | 35, | ||
404 | 35, | ||
405 | 34, | ||
406 | 35, | ||
407 | 35, | ||
408 | 35, | ||
409 | 36, | ||
410 | 39, | ||
411 | 45, | ||
412 | 43, | ||
413 | 38, | ||
414 | 39, | ||
415 | 38, | ||
416 | 36, | ||
417 | 36, | ||
418 | 36, | ||
419 | 35, | ||
420 | 37, | ||
421 | 39, | ||
422 | 38, | ||
423 | 37, | ||
424 | 37, | ||
425 | 37, | ||
426 | 39, | ||
427 | 38, | ||
428 | 37, | ||
429 | 37, | ||
430 | 35, | ||
431 | 34, | ||
432 | 34, | ||
433 | 37, | ||
434 | 39, | ||
435 | 36, | ||
436 | 37, | ||
437 | 38, | ||
438 | 39, | ||
439 | 40, | ||
440 | 41, | ||
441 | 39, | ||
442 | 36, | ||
443 | 38, | ||
444 | 39, | ||
445 | 39, | ||
446 | 39, | ||
447 | 36, | ||
448 | 33, | ||
449 | 32, | ||
450 | 30, | ||
451 | 30, | ||
452 | 31, | ||
453 | 35, | ||
454 | 35, | ||
455 | 35, | ||
456 | 35, | ||
457 | 35, | ||
458 | 39, | ||
459 | 40, | ||
460 | 38, | ||
461 | 37, | ||
462 | 40, | ||
463 | 39, | ||
464 | 38, | ||
465 | 39, | ||
466 | 39, | ||
467 | 39, | ||
468 | 38, | ||
469 | 39, | ||
470 | 39, | ||
471 | 40, | ||
472 | 40, | ||
473 | 39, | ||
474 | 41, | ||
475 | 39, | ||
476 | 41, | ||
477 | 39, | ||
478 | 38, | ||
479 | 39, | ||
480 | 38, | ||
481 | 38, | ||
482 | 36, | ||
483 | 35, | ||
484 | 36, | ||
485 | 35, | ||
486 | 37, | ||
487 | 38, | ||
488 | 38, | ||
489 | 38, | ||
490 | 40, | ||
491 | 38, | ||
492 | 39, | ||
493 | 39, | ||
494 | 36, | ||
495 | 36, | ||
496 | 33, | ||
497 | 34, | ||
498 | 36, | ||
499 | 35, | ||
500 | 37, | ||
501 | 38, | ||
502 | 39, | ||
503 | 39, | ||
504 | 38, | ||
505 | 36, | ||
506 | 32, | ||
507 | 32, | ||
508 | 35, | ||
509 | 38, | ||
510 | 38, | ||
511 | 39, | ||
512 | 38, | ||
513 | 35, | ||
514 | 35, | ||
515 | 34, | ||
516 | 37, | ||
517 | 39, | ||
518 | 38, | ||
519 | 36, | ||
520 | 35, | ||
521 | 35, | ||
522 | 33, | ||
523 | 31, | ||
524 | 30, | ||
525 | 32, | ||
526 | 36, | ||
527 | 37, | ||
528 | 38, | ||
529 | 35, | ||
530 | 35, | ||
531 | 35, | ||
532 | 35, | ||
533 | 35, | ||
534 | 39, | ||
535 | 41, | ||
536 | 42, | ||
537 | 38, | ||
538 | 33, | ||
539 | 31, | ||
540 | 33, | ||
541 | 37, | ||
542 | 36, | ||
543 | 37, | ||
544 | 38, | ||
545 | 37, | ||
546 | 37, | ||
547 | 38, | ||
548 | 39, | ||
549 | 38, | ||
550 | 38, | ||
551 | 38, | ||
552 | 38, | ||
553 | 37, | ||
554 | 38, | ||
555 | 38, | ||
556 | 39, | ||
557 | 41, | ||
558 | 41, | ||
559 | 37, | ||
560 | 39, | ||
561 | 40, | ||
562 | 42, | ||
563 | 44, | ||
564 | 43, | ||
565 | 39, | ||
566 | 42, | ||
567 | 48, | ||
568 | 45, | ||
569 | 41, | ||
570 | 39, | ||
571 | 38, | ||
572 | 38, | ||
573 | 38, | ||
574 | 38, | ||
575 | 36, | ||
576 | 37, | ||
577 | 38, | ||
578 | 39, | ||
579 | 39, | ||
580 | 39, | ||
581 | 43, | ||
582 | 41, | ||
583 | 38, | ||
584 | 37, | ||
585 | 37, | ||
586 | 38, | ||
587 | 36, | ||
588 | 34, | ||
589 | 34, | ||
590 | 34, | ||
591 | 38, | ||
592 | 41, | ||
593 | 41, | ||
594 | 38, | ||
595 | 35, | ||
596 | 35, | ||
597 | 34, | ||
598 | 35, | ||
599 | 32, | ||
600 | 30, | ||
601 | 31, | ||
602 | 33, | ||
603 | 34, | ||
604 | 35, | ||
605 | 35, | ||
606 | 35, | ||
607 | 35, | ||
608 | 35, | ||
609 | 35, | ||
610 | 39, | ||
611 | 36, | ||
612 | 35, | ||
613 | 38, | ||
614 | 41, | ||
615 | 38, | ||
616 | 32, | ||
617 | 34, | ||
618 | 38, | ||
619 | 34, | ||
620 | 38, | ||
621 | 40, | ||
622 | 39, | ||
623 | 39, | ||
624 | 36, | ||
625 | 36, | ||
626 | 39, | ||
627 | 38, | ||
628 | 39, | ||
629 | 37, | ||
630 | 38, | ||
631 | 38, | ||
632 | 36, | ||
633 | 36, | ||
634 | 35, | ||
635 | 37, | ||
636 | 38, | ||
637 | 39, | ||
638 | 38, | ||
639 | 36, | ||
640 | 38, | ||
641 | 37, | ||
642 | 35, | ||
643 | 31, | ||
644 | 35, | ||
645 | 37, | ||
646 | 40, | ||
647 | 39, | ||
648 | 35, | ||
649 | 35, | ||
650 | 36, | ||
651 | 34, | ||
652 | 36, | ||
653 | 36, | ||
654 | 38, | ||
655 | 37, | ||
656 | 38, | ||
657 | 37, | ||
658 | 37, | ||
659 | 36, | ||
660 | 37, | ||
661 | 38, | ||
662 | 37, | ||
663 | 36, | ||
664 | 35, | ||
665 | 34, | ||
666 | 34, | ||
667 | 34, | ||
668 | 37, | ||
669 | 36, | ||
670 | 37, | ||
671 | 36, | ||
672 | 34, | ||
673 | 36, | ||
674 | 36, | ||
675 | 34, | ||
676 | 31, | ||
677 | 30, | ||
678 | 33, | ||
679 | 32, | ||
680 | 33, | ||
681 | 35, | ||
682 | 35, | ||
683 | 35, | ||
684 | 35, | ||
685 | 34, | ||
686 | 27, | ||
687 | 33, | ||
688 | 39, | ||
689 | 42, | ||
690 | 41, | ||
691 | 42, | ||
692 | 44, | ||
693 | 45, | ||
694 | 42, | ||
695 | 39, | ||
696 | 41, | ||
697 | 41, | ||
698 | 42, | ||
699 | 43, | ||
700 | 42, | ||
701 | 41, | ||
702 | 40, | ||
703 | 38, | ||
704 | 37, | ||
705 | 35, | ||
706 | 37, | ||
707 | 36, | ||
708 | 36, | ||
709 | 36, | ||
710 | 37, | ||
711 | 36, | ||
712 | 36, | ||
713 | 37, | ||
714 | 37, | ||
715 | 39, | ||
716 | 43, | ||
717 | 43, | ||
718 | 43, | ||
719 | 42, | ||
720 | 39, | ||
721 | 39, | ||
722 | 39, | ||
723 | 39, | ||
724 | 40, | ||
725 | 39, | ||
726 | 38, | ||
727 | 35, | ||
728 | 34, | ||
729 | 36, | ||
730 | 37, | ||
731 | 36, | ||
732 | 37, | ||
733 | 38, | ||
734 | 38, | ||
735 | 37, | ||
736 | 36, | ||
737 | 35, | ||
738 | 35, | ||
739 | 33, | ||
740 | 35, | ||
741 | 38, | ||
742 | 38, | ||
743 | 39, | ||
744 | 41, | ||
745 | 39, | ||
746 | 38, | ||
747 | 37, | ||
748 | 38, | ||
749 | 38, | ||
750 | 36, | ||
751 | 37, | ||
752 | 36, | ||
753 | 37, | ||
754 | 37, | ||
755 | 36, | ||
756 | 36, | ||
757 | 35, | ||
758 | 35, | ||
759 | 35, | ||
760 | 35, | ||
761 | 36, | ||
762 | 42, | ||
763 | 40, | ||
764 | 41, | ||
765 | 43, | ||
766 | 42, | ||
767 | 39, | ||
768 | 37, | ||
769 | 37, | ||
770 | 37, | ||
771 | 37, | ||
772 | 39, | ||
773 | 39, | ||
774 | 38, | ||
775 | 37, | ||
776 | 35, | ||
777 | 37, | ||
778 | 36, | ||
779 | 35, | ||
780 | 36, | ||
781 | 36, | ||
782 | 39, | ||
783 | 39, | ||
784 | 36, | ||
785 | 36, | ||
786 | 34, | ||
787 | 37, | ||
788 | 40, | ||
789 | 40, | ||
790 | 40, | ||
791 | 39, | ||
792 | 41, | ||
793 | 40, | ||
794 | 39, | ||
795 | 39, | ||
796 | 39, | ||
797 | 40, | ||
798 | 38, | ||
799 | 36, | ||
800 | 34, | ||
801 | 35, | ||
802 | 37, | ||
803 | 34, | ||
804 | 36, | ||
805 | 35, | ||
806 | 35, | ||
807 | 34, | ||
808 | 33, | ||
809 | 36, | ||
810 | 36, | ||
811 | 38, | ||
812 | 39, | ||
813 | 38, | ||
814 | 37, | ||
815 | 34, | ||
816 | 34, | ||
817 | 33, | ||
818 | 34, | ||
819 | 35, | ||
820 | 36, | ||
821 | 36, | ||
822 | 35, | ||
823 | 36, | ||
824 | 35, | ||
825 | 38, | ||
826 | 39, | ||
827 | 39, | ||
828 | 40, | ||
829 | 38, | ||
830 | 37, | ||
831 | 36, | ||
832 | 36, | ||
833 | 35, | ||
834 | 35, | ||
835 | 35, | ||
836 | 35, | ||
837 | 36, | ||
838 | 36, | ||
839 | 42, | ||
840 | 45, | ||
841 | 44, | ||
842 | 43, | ||
843 | 40, | ||
844 | 38, | ||
845 | 37, | ||
846 | 36, | ||
847 | 37, | ||
848 | 37, | ||
849 | 38, | ||
850 | 38, | ||
851 | 38, | ||
852 | 38, | ||
853 | 36, | ||
854 | 35, | ||
855 | 35, | ||
856 | 34, | ||
857 | 34, | ||
858 | 36, | ||
859 | 38, | ||
860 | 36, | ||
861 | 35, | ||
862 | 38, | ||
863 | 37, | ||
864 | 37, | ||
865 | 38, | ||
866 | 38, | ||
867 | 37, | ||
868 | 38, | ||
869 | 36, | ||
870 | 33, | ||
871 | 35, | ||
872 | 37, | ||
873 | 37, | ||
874 | 38, | ||
875 | 38, | ||
876 | 41, | ||
877 | 41, | ||
878 | 41, | ||
879 | 38, | ||
880 | 35, | ||
881 | 33, | ||
882 | 30, | ||
883 | 29, | ||
884 | 32, | ||
885 | 37, | ||
886 | 39, | ||
887 | 39, | ||
888 | 38, | ||
889 | 39, | ||
890 | 38, | ||
891 | 35, | ||
892 | 34, | ||
893 | 35, | ||
894 | 35, | ||
895 | 35, | ||
896 | 35, | ||
897 | 34, | ||
898 | 35, | ||
899 | 36, | ||
900 | 36, | ||
901 | 37, | ||
902 | 38, | ||
903 | 38, | ||
904 | 38, | ||
905 | 36, | ||
906 | 35, | ||
907 | 33, | ||
908 | 34, | ||
909 | 35, | ||
910 | 35, | ||
911 | 35, | ||
912 | 35, | ||
913 | 36, | ||
914 | 36, | ||
915 | 32, | ||
916 | 33, | ||
917 | 36, | ||
918 | 38, | ||
919 | 40, | ||
920 | 42, | ||
921 | 42, | ||
922 | 39, | ||
923 | 40, | ||
924 | 41, | ||
925 | 43, | ||
926 | 42, | ||
927 | 36, | ||
928 | 33, | ||
929 | 32, | ||
930 | 33, | ||
931 | 32, | ||
932 | 35, | ||
933 | 37, | ||
934 | 41, | ||
935 | 41, | ||
936 | 39, | ||
937 | 40, | ||
938 | 37, | ||
939 | 36, | ||
940 | 38, | ||
941 | 39, | ||
942 | 41, | ||
943 | 40, | ||
944 | 40, | ||
945 | 41, | ||
946 | 39, | ||
947 | 37, | ||
948 | 37, | ||
949 | 36, | ||
950 | 37, | ||
951 | 37, | ||
952 | 36, | ||
953 | 35, | ||
954 | 37, | ||
955 | 37, | ||
956 | 39, | ||
957 | 41, | ||
958 | 41, | ||
959 | 43, | ||
960 | 41, | ||
961 | 40, | ||
962 | 40, | ||
963 | 37, | ||
964 | 37, | ||
965 | 38, | ||
966 | 38, | ||
967 | 38, | ||
968 | 38, | ||
969 | 38, | ||
970 | 36, | ||
971 | 38, | ||
972 | 37, | ||
973 | 36, | ||
974 | 39, | ||
975 | 41, | ||
976 | 41, | ||
977 | 42, | ||
978 | 41, | ||
979 | 39, | ||
980 | 38, | ||
981 | 38, | ||
982 | 36, | ||
983 | 37, | ||
984 | 37, | ||
985 | 35, | ||
986 | 35, | ||
987 | 35, | ||
988 | 36, | ||
989 | 36, | ||
990 | 33, | ||
991 | 35, | ||
992 | 37, | ||
993 | 34, | ||
994 | 35, | ||
995 | 35, | ||
996 | 35, | ||
997 | 39, | ||
998 | 38, | ||
999 | 39, | ||
1000 | 41, | ||
1001 | 43, | ||
1002 | 43, | ||
1003 | 43, | ||
1004 | 42, | ||
1005 | 39, | ||
1006 | 38, | ||
1007 | 39, | ||
1008 | 37, | ||
1009 | 37, | ||
1010 | 38, | ||
1011 | 37, | ||
1012 | 36, | ||
1013 | 38, | ||
1014 | 38, | ||
1015 | 40, | ||
1016 | 38, | ||
1017 | 39, | ||
1018 | 39, | ||
1019 | 36, | ||
1020 | 35, | ||
1021 | 34, | ||
1022 | 33, | ||
1023 | 34, | ||
1024 | 36, | ||
1025 | 37, | ||
1026 | 38, | ||
1027 | 37, | ||
1028 | 37, | ||
1029 | 37, | ||
1030 | 36, | ||
1031 | 34, | ||
1032 | 34, | ||
1033 | 33, | ||
1034 | 34, | ||
1035 | 35, | ||
1036 | 38, | ||
1037 | 41, | ||
1038 | 38, | ||
1039 | 36, | ||
1040 | 37, | ||
1041 | 37, | ||
1042 | 37, | ||
1043 | 37, | ||
1044 | 39, | ||
1045 | 41, | ||
1046 | 40, | ||
1047 | 41, | ||
1048 | 42, | ||
1049 | 41, | ||
1050 | 40, | ||
1051 | 41, | ||
1052 | 41, | ||
1053 | 39, | ||
1054 | 40, | ||
1055 | 40, | ||
1056 | 39, | ||
1057 | 37, | ||
1058 | 37, | ||
1059 | 36, | ||
1060 | 38, | ||
1061 | 35, | ||
1062 | 35, | ||
1063 | 35, | ||
1064 | 36, | ||
1065 | 37, | ||
1066 | 45, | ||
1067 | 42, | ||
1068 | 40, | ||
1069 | 44, | ||
1070 | 45, | ||
1071 | 42, | ||
1072 | 43, | ||
1073 | 42, | ||
1074 | 42, | ||
1075 | 45, | ||
1076 | 47, | ||
1077 | 49, | ||
1078 | 51, | ||
1079 | 50, | ||
1080 | 51, | ||
1081 | 50, | ||
1082 | 49, | ||
1083 | 45, | ||
1084 | 45, | ||
1085 | 45, | ||
1086 | 43, | ||
1087 | 42, | ||
1088 | 42, | ||
1089 | 43, | ||
1090 | 41, | ||
1091 | 39, | ||
1092 | 40, | ||
1093 | 40, | ||
1094 | 40, | ||
1095 | 39, | ||
1096 | 38, | ||
1097 | 40, | ||
1098 | 40, | ||
1099 | 39, | ||
1100 | 39, | ||
1101 | 39, | ||
1102 | 38, | ||
1103 | 35, | ||
1104 | 33, | ||
1105 | 37, | ||
1106 | 41, | ||
1107 | 42, | ||
1108 | 39, | ||
1109 | 37, | ||
1110 | 37, | ||
1111 | 37, | ||
1112 | 38, | ||
1113 | 38, | ||
1114 | 36, | ||
1115 | 37, | ||
1116 | 35, | ||
1117 | 33, | ||
1118 | 32, | ||
1119 | 33, | ||
1120 | 34, | ||
1121 | 35, | ||
1122 | 35, | ||
1123 | 38, | ||
1124 | 39, | ||
1125 | 37, | ||
1126 | 38, | ||
1127 | 36, | ||
1128 | 35, | ||
1129 | 37, | ||
1130 | 38, | ||
1131 | 39, | ||
1132 | 42, | ||
1133 | 41, | ||
1134 | 38, | ||
1135 | 36, | ||
1136 | 34, | ||
1137 | 35, | ||
1138 | 35, | ||
1139 | 35, | ||
1140 | 35, | ||
1141 | 36, | ||
1142 | 39, | ||
1143 | 38, | ||
1144 | 36, | ||
1145 | 37, | ||
1146 | 37, | ||
1147 | 37, | ||
1148 | 36, | ||
1149 | 40, | ||
1150 | 42, | ||
1151 | 43, | ||
1152 | 47, | ||
1153 | 49, | ||
1154 | 48, | ||
1155 | 47, | ||
1156 | 44, | ||
1157 | 43, | ||
1158 | 47, | ||
1159 | 52, | ||
1160 | 55, | ||
1161 | 52, | ||
1162 | 47, | ||
1163 | 44, | ||
1164 | 42, | ||
1165 | 42, | ||
1166 | 42, | ||
1167 | 40, | ||
1168 | 40, | ||
1169 | 39, | ||
1170 | 38, | ||
1171 | 37, | ||
1172 | 37, | ||
1173 | 39, | ||
1174 | 38, | ||
1175 | 38, | ||
1176 | 38, | ||
1177 | 36, | ||
1178 | 33, | ||
1179 | 31, | ||
1180 | 34, | ||
1181 | 35, | ||
1182 | 38, | ||
1183 | 39, | ||
1184 | 38, | ||
1185 | 37, | ||
1186 | 38, | ||
1187 | 38, | ||
1188 | 37, | ||
1189 | 38, | ||
1190 | 37, | ||
1191 | 42, | ||
1192 | 46, | ||
1193 | 45, | ||
1194 | 42, | ||
1195 | 39, | ||
1196 | 39, | ||
1197 | 38, | ||
1198 | 34, | ||
1199 | 36, | ||
1200 | 39, | ||
1201 | 39, | ||
1202 | 37, | ||
1203 | 35, | ||
1204 | 36, | ||
1205 | 34, | ||
1206 | 37, | ||
1207 | 37, | ||
1208 | 36, | ||
1209 | 36, | ||
1210 | 39, | ||
1211 | 41, | ||
1212 | 42, | ||
1213 | 35, | ||
1214 | 35, | ||
1215 | 35, | ||
1216 | 35, | ||
1217 | 36, | ||
1218 | 40, | ||
1219 | 40, | ||
1220 | 38, | ||
1221 | 39, | ||
1222 | 39, | ||
1223 | 36, | ||
1224 | 36, | ||
1225 | 38, | ||
1226 | 39, | ||
1227 | 42, | ||
1228 | 46, | ||
1229 | 49, | ||
1230 | 50, | ||
1231 | 52, | ||
1232 | 52, | ||
1233 | 51, | ||
1234 | 51, | ||
1235 | 52, | ||
1236 | 54, | ||
1237 | 51, | ||
1238 | 50, | ||
1239 | 51, | ||
1240 | 52, | ||
1241 | 51, | ||
1242 | 47, | ||
1243 | 47, | ||
1244 | 46, | ||
1245 | 47, | ||
1246 | 45, | ||
1247 | 43, | ||
1248 | 43, | ||
1249 | 43, | ||
1250 | 43, | ||
1251 | 43, | ||
1252 | 42, | ||
1253 | 41, | ||
1254 | 41, | ||
1255 | 40, | ||
1256 | 40, | ||
1257 | 42, | ||
1258 | 46, | ||
1259 | 44, | ||
1260 | 41, | ||
1261 | 37, | ||
1262 | 36, | ||
1263 | 37, | ||
1264 | 39, | ||
1265 | 39, | ||
1266 | 38, | ||
1267 | 38, | ||
1268 | 39, | ||
1269 | 38, | ||
1270 | 38, | ||
1271 | 39, | ||
1272 | 37, | ||
1273 | 35, | ||
1274 | 35, | ||
1275 | 38, | ||
1276 | 38, | ||
1277 | 38, | ||
1278 | 36, | ||
1279 | 35, | ||
1280 | 35, | ||
1281 | 37, | ||
1282 | 35, | ||
1283 | 36, | ||
1284 | 38, | ||
1285 | 36, | ||
1286 | 38, | ||
1287 | 38, | ||
1288 | 39, | ||
1289 | 35, | ||
1290 | 35, | ||
1291 | 35, | ||
1292 | 36, | ||
1293 | 36, | ||
1294 | 39, | ||
1295 | 39, | ||
1296 | 40, | ||
1297 | 40, | ||
1298 | 39, | ||
1299 | 37, | ||
1300 | 38, | ||
1301 | 41, | ||
1302 | 39, | ||
1303 | 43, | ||
1304 | 46, | ||
1305 | 47, | ||
1306 | 49, | ||
1307 | 49, | ||
1308 | 49, | ||
1309 | 48, | ||
1310 | 48, | ||
1311 | 51, | ||
1312 | 52, | ||
1313 | 52, | ||
1314 | 53, | ||
1315 | 53, | ||
1316 | 52, | ||
1317 | 51, | ||
1318 | 52, | ||
1319 | 50, | ||
1320 | 48, | ||
1321 | 49, | ||
1322 | 48, | ||
1323 | 46, | ||
1324 | 47, | ||
1325 | 47, | ||
1326 | 44, | ||
1327 | 42, | ||
1328 | 43, | ||
1329 | 44, | ||
1330 | 43, | ||
1331 | 45, | ||
1332 | 48, | ||
1333 | 46, | ||
1334 | 45, | ||
1335 | 44, | ||
1336 | 42, | ||
1337 | 43, | ||
1338 | 46, | ||
1339 | 45, | ||
1340 | 44, | ||
1341 | 42, | ||
1342 | 41, | ||
1343 | 38, | ||
1344 | 39, | ||
1345 | 38, | ||
1346 | 37, | ||
1347 | 36, | ||
1348 | 35, | ||
1349 | 37, | ||
1350 | 35, | ||
1351 | 37, | ||
1352 | 36, | ||
1353 | 33, | ||
1354 | 31, | ||
1355 | 32, | ||
1356 | 38, | ||
1357 | 43, | ||
1358 | 42, | ||
1359 | 41, | ||
1360 | 39, | ||
1361 | 37, | ||
1362 | 38, | ||
1363 | 37, | ||
1364 | 37, | ||
1365 | 35, | ||
1366 | 35, | ||
1367 | 36, | ||
1368 | 36, | ||
1369 | 36, | ||
1370 | 38, | ||
1371 | 38, | ||
1372 | 36, | ||
1373 | 37, | ||
1374 | 39, | ||
1375 | 38, | ||
1376 | 39, | ||
1377 | 38, | ||
1378 | 39, | ||
1379 | 42, | ||
1380 | 47, | ||
1381 | 49, | ||
1382 | 46, | ||
1383 | 46, | ||
1384 | 47, | ||
1385 | 47, | ||
1386 | 46, | ||
1387 | 47, | ||
1388 | 49, | ||
1389 | 48, | ||
1390 | 48, | ||
1391 | 49, | ||
1392 | 51, | ||
1393 | 50, | ||
1394 | 49, | ||
1395 | 50, | ||
1396 | 51, | ||
1397 | 48, | ||
1398 | 46, | ||
1399 | 46, | ||
1400 | 47, | ||
1401 | 48, | ||
1402 | 47, | ||
1403 | 45, | ||
1404 | 43, | ||
1405 | 42, | ||
1406 | 44, | ||
1407 | 45, | ||
1408 | 47, | ||
1409 | 49, | ||
1410 | 51, | ||
1411 | 51, | ||
1412 | 51, | ||
1413 | 49, | ||
1414 | 47, | ||
1415 | 48, | ||
1416 | 47, | ||
1417 | 49, | ||
1418 | 46, | ||
1419 | 44, | ||
1420 | 40, | ||
1421 | 39, | ||
1422 | 40, | ||
1423 | 40, | ||
1424 | 39, | ||
1425 | 38, | ||
1426 | 40, | ||
1427 | 38, | ||
1428 | 39, | ||
1429 | 40, | ||
1430 | 39, | ||
1431 | 37, | ||
1432 | 36, | ||
1433 | 35, | ||
1434 | 33, | ||
1435 | 35, | ||
1436 | 34, | ||
1437 | 32, | ||
1438 | 33, | ||
1439 | 34, | ||
1440 | 38, | ||
1441 | 35, | ||
1442 | 36, | ||
1443 | 36, | ||
1444 | 36, | ||
1445 | 36, | ||
1446 | 35, | ||
1447 | 36, | ||
1448 | 38, | ||
1449 | 36, | ||
1450 | 37, | ||
1451 | 37, | ||
1452 | 37, | ||
1453 | 38, | ||
1454 | 38, | ||
1455 | 39, | ||
1456 | 43, | ||
1457 | 46, | ||
1458 | 51, | ||
1459 | 52, | ||
1460 | 50, | ||
1461 | 50, | ||
1462 | 48, | ||
1463 | 50, | ||
1464 | 49, | ||
1465 | 49, | ||
1466 | 50, | ||
1467 | 48, | ||
1468 | 50, | ||
1469 | 50, | ||
1470 | 49, | ||
1471 | 49, | ||
1472 | 51, | ||
1473 | 54, | ||
1474 | 54, | ||
1475 | 51, | ||
1476 | 51, | ||
1477 | 49, | ||
1478 | 47, | ||
1479 | 48, | ||
1480 | 52, | ||
1481 | 53, | ||
1482 | 51, | ||
1483 | 49, | ||
1484 | 46, | ||
1485 | 46, | ||
1486 | 43, | ||
1487 | 46, | ||
1488 | 45, | ||
1489 | 47, | ||
1490 | 50, | ||
1491 | 49, | ||
1492 | 47, | ||
1493 | 47, | ||
1494 | 46, | ||
1495 | 45, | ||
1496 | 48, | ||
1497 | 48, | ||
1498 | 45, | ||
1499 | 43, | ||
1500 | 44, | ||
1501 | 43, | ||
1502 | 43, | ||
1503 | 42, | ||
1504 | 41, | ||
1505 | 39, | ||
1506 | 39, | ||
1507 | 39, | ||
1508 | 37, | ||
1509 | 37, | ||
1510 | 34, | ||
1511 | 34, | ||
1512 | 32, | ||
1513 | 33, | ||
1514 | 35, | ||
1515 | 36, | ||
1516 | 39, | ||
1517 | 35, | ||
1518 | 36, | ||
1519 | 36, | ||
1520 | 36, | ||
1521 | 36, | ||
1522 | 40, | ||
1523 | 39, | ||
1524 | 36, | ||
1525 | 36, | ||
1526 | 35, | ||
1527 | 34, | ||
1528 | 33, | ||
1529 | 32, | ||
1530 | 37, | ||
1531 | 43, | ||
1532 | 51, | ||
1533 | 56, | ||
1534 | 54, | ||
1535 | 55, | ||
1536 | 56, | ||
1537 | 55, | ||
1538 | 52, | ||
1539 | 50, | ||
1540 | 49, | ||
1541 | 46, | ||
1542 | 46, | ||
1543 | 45, | ||
1544 | 47, | ||
1545 | 49, | ||
1546 | 51, | ||
1547 | 54, | ||
1548 | 54, | ||
1549 | 51, | ||
1550 | 49, | ||
1551 | 50, | ||
1552 | 50, | ||
1553 | 48, | ||
1554 | 47, | ||
1555 | 45, | ||
1556 | 46, | ||
1557 | 47, | ||
1558 | 50, | ||
1559 | 50, | ||
1560 | 48, | ||
1561 | 43, | ||
1562 | 42, | ||
1563 | 42, | ||
1564 | 43, | ||
1565 | 45, | ||
1566 | 47, | ||
1567 | 47, | ||
1568 | 48, | ||
1569 | 50, | ||
1570 | 49, | ||
1571 | 47, | ||
1572 | 47, | ||
1573 | 48, | ||
1574 | 49, | ||
1575 | 47, | ||
1576 | 48, | ||
1577 | 48, | ||
1578 | 47, | ||
1579 | 47, | ||
1580 | 45, | ||
1581 | 44, | ||
1582 | 42, | ||
1583 | 39, | ||
1584 | 38, | ||
1585 | 38, | ||
1586 | 38, | ||
1587 | 42, | ||
1588 | 41, | ||
1589 | 41, | ||
1590 | 39, | ||
1591 | 36, | ||
1592 | 35, | ||
1593 | 35, | ||
1594 | 35, | ||
1595 | 36, | ||
1596 | 36, | ||
1597 | 36, | ||
1598 | 34, | ||
1599 | 37, | ||
1600 | 37, | ||
1601 | 35, | ||
1602 | 36, | ||
1603 | 36, | ||
1604 | 35, | ||
1605 | 36, | ||
1606 | 37, | ||
1607 | 38, | ||
1608 | 41, | ||
1609 | 50, | ||
1610 | 67, | ||
1611 | 82, | ||
1612 | 84, | ||
1613 | 80, | ||
1614 | 80, | ||
1615 | 76, | ||
1616 | 75, | ||
1617 | 74, | ||
1618 | 71, | ||
1619 | 64, | ||
1620 | 61, | ||
1621 | 58, | ||
1622 | 54, | ||
1623 | 53, | ||
1624 | 54, | ||
1625 | 56, | ||
1626 | 56, | ||
1627 | 53, | ||
1628 | 51, | ||
1629 | 51, | ||
1630 | 49, | ||
1631 | 47, | ||
1632 | 49, | ||
1633 | 49, | ||
1634 | 48, | ||
1635 | 48, | ||
1636 | 47, | ||
1637 | 47, | ||
1638 | 48, | ||
1639 | 48, | ||
1640 | 47, | ||
1641 | 45, | ||
1642 | 46, | ||
1643 | 47, | ||
1644 | 46, | ||
1645 | 46, | ||
1646 | 45, | ||
1647 | 41, | ||
1648 | 42, | ||
1649 | 44, | ||
1650 | 44, | ||
1651 | 45, | ||
1652 | 45, | ||
1653 | 48, | ||
1654 | 47, | ||
1655 | 44, | ||
1656 | 42, | ||
1657 | 37, | ||
1658 | 35, | ||
1659 | 34, | ||
1660 | 32, | ||
1661 | 33, | ||
1662 | 37, | ||
1663 | 40, | ||
1664 | 37, | ||
1665 | 37, | ||
1666 | 36, | ||
1667 | 36, | ||
1668 | 37, | ||
1669 | 35, | ||
1670 | 35, | ||
1671 | 36, | ||
1672 | 36, | ||
1673 | 36, | ||
1674 | 37, | ||
1675 | 35, | ||
1676 | 37, | ||
1677 | 37, | ||
1678 | 37, | ||
1679 | 35, | ||
1680 | 35, | ||
1681 | 35, | ||
1682 | 37, | ||
1683 | 40, | ||
1684 | 41, | ||
1685 | 46, | ||
1686 | 58, | ||
1687 | 85, | ||
1688 | 119, | ||
1689 | -119, | ||
1690 | -123, | ||
1691 | 123, | ||
1692 | 115, | ||
1693 | 109, | ||
1694 | 110, | ||
1695 | 109, | ||
1696 | 107, | ||
1697 | 102, | ||
1698 | 95, | ||
1699 | 93, | ||
1700 | 88, | ||
1701 | 86, | ||
1702 | 86, | ||
1703 | 86, | ||
1704 | 86, | ||
1705 | 83, | ||
1706 | 77, | ||
1707 | 68, | ||
1708 | 64, | ||
1709 | 59, | ||
1710 | 58, | ||
1711 | 61, | ||
1712 | 61, | ||
1713 | 61, | ||
1714 | 58, | ||
1715 | 56, | ||
1716 | 51, | ||
1717 | 49, | ||
1718 | 51, | ||
1719 | 51, | ||
1720 | 50, | ||
1721 | 50, | ||
1722 | 45, | ||
1723 | 37, | ||
1724 | 41, | ||
1725 | 47, | ||
1726 | 50, | ||
1727 | 50, | ||
1728 | 53, | ||
1729 | 52, | ||
1730 | 49, | ||
1731 | 48, | ||
1732 | 45, | ||
1733 | 43, | ||
1734 | 42, | ||
1735 | 39, | ||
1736 | 38, | ||
1737 | 36, | ||
1738 | 38, | ||
1739 | 39, | ||
1740 | 39, | ||
1741 | 39, | ||
1742 | 38, | ||
1743 | 37, | ||
1744 | 36, | ||
1745 | 35, | ||
1746 | 35, | ||
1747 | 35, | ||
1748 | 36, | ||
1749 | 36, | ||
1750 | 34, | ||
1751 | 36, | ||
1752 | 36, | ||
1753 | 38, | ||
1754 | 39, | ||
1755 | 38, | ||
1756 | 37, | ||
1757 | 39, | ||
1758 | 41, | ||
1759 | 43, | ||
1760 | 47, | ||
1761 | 56, | ||
1762 | 79, | ||
1763 | 121, | ||
1764 | -106, | ||
1765 | -110, | ||
1766 | -108, | ||
1767 | -99, | ||
1768 | -102, | ||
1769 | -100, | ||
1770 | -99, | ||
1771 | -101, | ||
1772 | -103, | ||
1773 | -102, | ||
1774 | -106, | ||
1775 | -108, | ||
1776 | -110, | ||
1777 | -111, | ||
1778 | -111, | ||
1779 | -115, | ||
1780 | -117, | ||
1781 | -120, | ||
1782 | -123, | ||
1783 | -123, | ||
1784 | -125, | ||
1785 | -128, | ||
1786 | 127, | ||
1787 | 124, | ||
1788 | 118, | ||
1789 | 114, | ||
1790 | 119, | ||
1791 | 113, | ||
1792 | 104, | ||
1793 | 99, | ||
1794 | 100, | ||
1795 | 100, | ||
1796 | 97, | ||
1797 | 89, | ||
1798 | 83, | ||
1799 | 79, | ||
1800 | 76, | ||
1801 | 73, | ||
1802 | 69, | ||
1803 | 60, | ||
1804 | 52, | ||
1805 | 48, | ||
1806 | 47, | ||
1807 | 45, | ||
1808 | 46, | ||
1809 | 40, | ||
1810 | 37, | ||
1811 | 38, | ||
1812 | 38, | ||
1813 | 42, | ||
1814 | 45, | ||
1815 | 43, | ||
1816 | 42, | ||
1817 | 42, | ||
1818 | 39, | ||
1819 | 38, | ||
1820 | 39, | ||
1821 | 35, | ||
1822 | 35, | ||
1823 | 36, | ||
1824 | 36, | ||
1825 | 36, | ||
1826 | 37, | ||
1827 | 37, | ||
1828 | 40, | ||
1829 | 42, | ||
1830 | 42, | ||
1831 | 40, | ||
1832 | 39, | ||
1833 | 38, | ||
1834 | 40, | ||
1835 | 43, | ||
1836 | 49, | ||
1837 | 60, | ||
1838 | 83, | ||
1839 | 126, | ||
1840 | -105, | ||
1841 | -98, | ||
1842 | -93, | ||
1843 | -97, | ||
1844 | -94, | ||
1845 | -93, | ||
1846 | -90, | ||
1847 | -88, | ||
1848 | -91, | ||
1849 | -94, | ||
1850 | -91, | ||
1851 | -90, | ||
1852 | -93, | ||
1853 | -94, | ||
1854 | -94, | ||
1855 | -96, | ||
1856 | -94, | ||
1857 | -94, | ||
1858 | -96, | ||
1859 | -95, | ||
1860 | -93, | ||
1861 | -96, | ||
1862 | -100, | ||
1863 | -104, | ||
1864 | -104, | ||
1865 | -105, | ||
1866 | -108, | ||
1867 | -110, | ||
1868 | -115, | ||
1869 | -119, | ||
1870 | -120, | ||
1871 | -122, | ||
1872 | -125, | ||
1873 | 127, | ||
1874 | 122, | ||
1875 | 118, | ||
1876 | 115, | ||
1877 | 118, | ||
1878 | 113, | ||
1879 | 97, | ||
1880 | 78, | ||
1881 | 59, | ||
1882 | 45, | ||
1883 | 48, | ||
1884 | 46, | ||
1885 | 40, | ||
1886 | 38, | ||
1887 | 38, | ||
1888 | 37, | ||
1889 | 38, | ||
1890 | 38, | ||
1891 | 35, | ||
1892 | 37, | ||
1893 | 37, | ||
1894 | 34, | ||
1895 | 32, | ||
1896 | 32, | ||
1897 | 35, | ||
1898 | 36, | ||
1899 | 36, | ||
1900 | 36, | ||
1901 | 36, | ||
1902 | 38, | ||
1903 | 39, | ||
1904 | 38, | ||
1905 | 37, | ||
1906 | 38, | ||
1907 | 35, | ||
1908 | 34, | ||
1909 | 36, | ||
1910 | 35, | ||
1911 | 37, | ||
1912 | 41, | ||
1913 | 51, | ||
1914 | 77, | ||
1915 | 120, | ||
1916 | -100, | ||
1917 | -91, | ||
1918 | -96, | ||
1919 | -95, | ||
1920 | -93, | ||
1921 | -92, | ||
1922 | -89, | ||
1923 | -90, | ||
1924 | -92, | ||
1925 | -92, | ||
1926 | -93, | ||
1927 | -93, | ||
1928 | -91, | ||
1929 | -90, | ||
1930 | -91, | ||
1931 | -94, | ||
1932 | -94, | ||
1933 | -94, | ||
1934 | -93, | ||
1935 | -92, | ||
1936 | -93, | ||
1937 | -95, | ||
1938 | -95, | ||
1939 | -93, | ||
1940 | -94, | ||
1941 | -94, | ||
1942 | -91, | ||
1943 | -92, | ||
1944 | -94, | ||
1945 | -93, | ||
1946 | -91, | ||
1947 | -92, | ||
1948 | -91, | ||
1949 | -92, | ||
1950 | -96, | ||
1951 | -97, | ||
1952 | -99, | ||
1953 | -105, | ||
1954 | -112, | ||
1955 | 126, | ||
1956 | 95, | ||
1957 | 63, | ||
1958 | 43, | ||
1959 | 47, | ||
1960 | 42, | ||
1961 | 38, | ||
1962 | 38, | ||
1963 | 36, | ||
1964 | 36, | ||
1965 | 36, | ||
1966 | 38, | ||
1967 | 37, | ||
1968 | 37, | ||
1969 | 37, | ||
1970 | 36, | ||
1971 | 37, | ||
1972 | 38, | ||
1973 | 35, | ||
1974 | 36, | ||
1975 | 36, | ||
1976 | 36, | ||
1977 | 36, | ||
1978 | 39, | ||
1979 | 39, | ||
1980 | 39, | ||
1981 | 41, | ||
1982 | 38, | ||
1983 | 33, | ||
1984 | 35, | ||
1985 | 37, | ||
1986 | 39, | ||
1987 | 45, | ||
1988 | 51, | ||
1989 | 58, | ||
1990 | 80, | ||
1991 | 121, | ||
1992 | -104, | ||
1993 | -94, | ||
1994 | -93, | ||
1995 | -92, | ||
1996 | -94, | ||
1997 | -94, | ||
1998 | -91, | ||
1999 | -89, | ||
2000 | -89, | ||
2001 | -88, | ||
2002 | -86, | ||
2003 | -86, | ||
2004 | -88, | ||
2005 | -87, | ||
2006 | -88, | ||
2007 | -90, | ||
2008 | -90, | ||
2009 | -91, | ||
2010 | -91, | ||
2011 | -89, | ||
2012 | -87, | ||
2013 | -90, | ||
2014 | -92, | ||
2015 | -92, | ||
2016 | -90, | ||
2017 | -91, | ||
2018 | -91, | ||
2019 | -89, | ||
2020 | -89, | ||
2021 | -90, | ||
2022 | -92, | ||
2023 | -93, | ||
2024 | -91, | ||
2025 | -90, | ||
2026 | -91, | ||
2027 | -90, | ||
2028 | -91, | ||
2029 | -91, | ||
2030 | -100, | ||
2031 | -128, | ||
2032 | 88, | ||
2033 | 54, | ||
2034 | 44, | ||
2035 | 47, | ||
2036 | 48, | ||
2037 | 46, | ||
2038 | 43, | ||
2039 | 41, | ||
2040 | 36, | ||
2041 | 37, | ||
2042 | 40, | ||
2043 | 38, | ||
2044 | 40, | ||
2045 | 38, | ||
2046 | 38, | ||
2047 | 37, | ||
2048 | 39, | ||
2049 | 35, | ||
2050 | 36, | ||
2051 | 36, | ||
2052 | 36, | ||
2053 | 36, | ||
2054 | 38, | ||
2055 | 41, | ||
2056 | 39, | ||
2057 | 37, | ||
2058 | 35, | ||
2059 | 32, | ||
2060 | 34, | ||
2061 | 36, | ||
2062 | 38, | ||
2063 | 42, | ||
2064 | 47, | ||
2065 | 57, | ||
2066 | 82, | ||
2067 | 118, | ||
2068 | -105, | ||
2069 | -88, | ||
2070 | -86, | ||
2071 | -84, | ||
2072 | -88, | ||
2073 | -91, | ||
2074 | -91, | ||
2075 | -91, | ||
2076 | -92, | ||
2077 | -91, | ||
2078 | -89, | ||
2079 | -90, | ||
2080 | -89, | ||
2081 | -87, | ||
2082 | -88, | ||
2083 | -88, | ||
2084 | -89, | ||
2085 | -89, | ||
2086 | -91, | ||
2087 | -91, | ||
2088 | -91, | ||
2089 | -92, | ||
2090 | -93, | ||
2091 | -92, | ||
2092 | -93, | ||
2093 | -97, | ||
2094 | -93, | ||
2095 | -93, | ||
2096 | -93, | ||
2097 | -92, | ||
2098 | -92, | ||
2099 | -94, | ||
2100 | -94, | ||
2101 | -92, | ||
2102 | -94, | ||
2103 | -94, | ||
2104 | -91, | ||
2105 | -91, | ||
2106 | -98, | ||
2107 | -122, | ||
2108 | 96, | ||
2109 | 63, | ||
2110 | 53, | ||
2111 | 49, | ||
2112 | 44, | ||
2113 | 42, | ||
2114 | 42, | ||
2115 | 41, | ||
2116 | 38, | ||
2117 | 36, | ||
2118 | 37, | ||
2119 | 36, | ||
2120 | 37, | ||
2121 | 38, | ||
2122 | 39, | ||
2123 | 38, | ||
2124 | 40, | ||
2125 | 35, | ||
2126 | 36, | ||
2127 | 36, | ||
2128 | 36, | ||
2129 | 36, | ||
2130 | 34, | ||
2131 | 36, | ||
2132 | 35, | ||
2133 | 37, | ||
2134 | 39, | ||
2135 | 40, | ||
2136 | 43, | ||
2137 | 41, | ||
2138 | 41, | ||
2139 | 44, | ||
2140 | 48, | ||
2141 | 56, | ||
2142 | 83, | ||
2143 | -127, | ||
2144 | -99, | ||
2145 | -89, | ||
2146 | -88, | ||
2147 | -87, | ||
2148 | -88, | ||
2149 | -89, | ||
2150 | -87, | ||
2151 | -89, | ||
2152 | -90, | ||
2153 | -90, | ||
2154 | -89, | ||
2155 | -91, | ||
2156 | -91, | ||
2157 | -89, | ||
2158 | -87, | ||
2159 | -88, | ||
2160 | -87, | ||
2161 | -89, | ||
2162 | -88, | ||
2163 | -89, | ||
2164 | -88, | ||
2165 | -90, | ||
2166 | -89, | ||
2167 | -87, | ||
2168 | -88, | ||
2169 | -92, | ||
2170 | -91, | ||
2171 | -88, | ||
2172 | -89, | ||
2173 | -88, | ||
2174 | -87, | ||
2175 | -89, | ||
2176 | -91, | ||
2177 | -93, | ||
2178 | -95, | ||
2179 | -97, | ||
2180 | -94, | ||
2181 | -93, | ||
2182 | -99, | ||
2183 | -125, | ||
2184 | 91, | ||
2185 | 59, | ||
2186 | 45, | ||
2187 | 45, | ||
2188 | 47, | ||
2189 | 43, | ||
2190 | 42, | ||
2191 | 39, | ||
2192 | 36, | ||
2193 | 36, | ||
2194 | 36, | ||
2195 | 40, | ||
2196 | 38, | ||
2197 | 39, | ||
2198 | 39, | ||
2199 | 37, | ||
2200 | 36, | ||
2201 | 36, | ||
2202 | 36, | ||
2203 | 36, | ||
2204 | 36, | ||
2205 | 36, | ||
2206 | 34, | ||
2207 | 37, | ||
2208 | 38, | ||
2209 | 39, | ||
2210 | 40, | ||
2211 | 43, | ||
2212 | 43, | ||
2213 | 43, | ||
2214 | 43, | ||
2215 | 40, | ||
2216 | 43, | ||
2217 | 56, | ||
2218 | 87, | ||
2219 | -127, | ||
2220 | -100, | ||
2221 | -94, | ||
2222 | -95, | ||
2223 | -91, | ||
2224 | -88, | ||
2225 | -90, | ||
2226 | -89, | ||
2227 | -90, | ||
2228 | -92, | ||
2229 | -88, | ||
2230 | -88, | ||
2231 | -90, | ||
2232 | -88, | ||
2233 | -90, | ||
2234 | -90, | ||
2235 | -89, | ||
2236 | -89, | ||
2237 | -91, | ||
2238 | -91, | ||
2239 | -92, | ||
2240 | -92, | ||
2241 | -91, | ||
2242 | -90, | ||
2243 | -89, | ||
2244 | -89, | ||
2245 | -92, | ||
2246 | -90, | ||
2247 | -90, | ||
2248 | -92, | ||
2249 | -91, | ||
2250 | -89, | ||
2251 | -90, | ||
2252 | -91, | ||
2253 | -91, | ||
2254 | -95, | ||
2255 | -94, | ||
2256 | -92, | ||
2257 | -93, | ||
2258 | -99, | ||
2259 | -124, | ||
2260 | 92, | ||
2261 | 61, | ||
2262 | 48, | ||
2263 | 47, | ||
2264 | 49, | ||
2265 | 45, | ||
2266 | 44, | ||
2267 | 41, | ||
2268 | 38, | ||
2269 | 37, | ||
2270 | 37, | ||
2271 | 38, | ||
2272 | 34, | ||
2273 | 35, | ||
2274 | 35, | ||
2275 | 35, | ||
2276 | 35, | ||
2277 | 36, | ||
2278 | 36, | ||
2279 | 36, | ||
2280 | 36, | ||
2281 | 36, | ||
2282 | 40, | ||
2283 | 39, | ||
2284 | 36, | ||
2285 | 34, | ||
2286 | 35, | ||
2287 | 35, | ||
2288 | 37, | ||
2289 | 37, | ||
2290 | 40, | ||
2291 | 49, | ||
2292 | 56, | ||
2293 | 62, | ||
2294 | 89, | ||
2295 | -124, | ||
2296 | -99, | ||
2297 | -93, | ||
2298 | -88, | ||
2299 | -88, | ||
2300 | -92, | ||
2301 | -90, | ||
2302 | -87, | ||
2303 | -88, | ||
2304 | -89, | ||
2305 | -87, | ||
2306 | -88, | ||
2307 | -89, | ||
2308 | -88, | ||
2309 | -87, | ||
2310 | -88, | ||
2311 | -89, | ||
2312 | -89, | ||
2313 | -87, | ||
2314 | -88, | ||
2315 | -88, | ||
2316 | -87, | ||
2317 | -89, | ||
2318 | -92, | ||
2319 | -91, | ||
2320 | -92, | ||
2321 | -92, | ||
2322 | -91, | ||
2323 | -91, | ||
2324 | -90, | ||
2325 | -89, | ||
2326 | -89, | ||
2327 | -89, | ||
2328 | -90, | ||
2329 | -92, | ||
2330 | -93, | ||
2331 | -91, | ||
2332 | -87, | ||
2333 | -86, | ||
2334 | -96, | ||
2335 | -127, | ||
2336 | 90, | ||
2337 | 60, | ||
2338 | 45, | ||
2339 | 44, | ||
2340 | 43, | ||
2341 | 36, | ||
2342 | 36, | ||
2343 | 37, | ||
2344 | 39, | ||
2345 | 38, | ||
2346 | 40, | ||
2347 | 40, | ||
2348 | 37, | ||
2349 | 36, | ||
2350 | 36, | ||
2351 | 33, | ||
2352 | 35, | ||
2353 | 36, | ||
2354 | 36, | ||
2355 | 36, | ||
2356 | 36, | ||
2357 | 36, | ||
2358 | 34, | ||
2359 | 34, | ||
2360 | 34, | ||
2361 | 33, | ||
2362 | 34, | ||
2363 | 34, | ||
2364 | 35, | ||
2365 | 37, | ||
2366 | 40, | ||
2367 | 42, | ||
2368 | 41, | ||
2369 | 50, | ||
2370 | 80, | ||
2371 | -127, | ||
2372 | -96, | ||
2373 | -92, | ||
2374 | -89, | ||
2375 | -85, | ||
2376 | -88, | ||
2377 | -91, | ||
2378 | -88, | ||
2379 | -88, | ||
2380 | -89, | ||
2381 | -87, | ||
2382 | -90, | ||
2383 | -90, | ||
2384 | -89, | ||
2385 | -89, | ||
2386 | -90, | ||
2387 | -91, | ||
2388 | -90, | ||
2389 | -89, | ||
2390 | -87, | ||
2391 | -86, | ||
2392 | -87, | ||
2393 | -89, | ||
2394 | -90, | ||
2395 | -91, | ||
2396 | -93, | ||
2397 | -93, | ||
2398 | -93, | ||
2399 | -91, | ||
2400 | -91, | ||
2401 | -90, | ||
2402 | -90, | ||
2403 | -91, | ||
2404 | -92, | ||
2405 | -91, | ||
2406 | -92, | ||
2407 | -89, | ||
2408 | -87, | ||
2409 | -88, | ||
2410 | -96, | ||
2411 | -123, | ||
2412 | 96, | ||
2413 | 65, | ||
2414 | 48, | ||
2415 | 47, | ||
2416 | 45, | ||
2417 | 38, | ||
2418 | 37, | ||
2419 | 37, | ||
2420 | 37, | ||
2421 | 37, | ||
2422 | 39, | ||
2423 | 39, | ||
2424 | 37, | ||
2425 | 38, | ||
2426 | 36, | ||
2427 | 35, | ||
2428 | 35, | ||
2429 | 36, | ||
2430 | 36, | ||
2431 | 36, | ||
2432 | 36, | ||
2433 | 36, | ||
2434 | 40, | ||
2435 | 41, | ||
2436 | 40, | ||
2437 | 41, | ||
2438 | 42, | ||
2439 | 42, | ||
2440 | 41, | ||
2441 | 39, | ||
2442 | 39, | ||
2443 | 45, | ||
2444 | 53, | ||
2445 | 66, | ||
2446 | 100, | ||
2447 | -111, | ||
2448 | -86, | ||
2449 | -86, | ||
2450 | -87, | ||
2451 | -80, | ||
2452 | -86, | ||
2453 | -92, | ||
2454 | -88, | ||
2455 | -86, | ||
2456 | -87, | ||
2457 | -84, | ||
2458 | -83, | ||
2459 | -86, | ||
2460 | -86, | ||
2461 | -85, | ||
2462 | -85, | ||
2463 | -86, | ||
2464 | -84, | ||
2465 | -84, | ||
2466 | -88, | ||
2467 | -90, | ||
2468 | -87, | ||
2469 | -88, | ||
2470 | -88, | ||
2471 | -88, | ||
2472 | -88, | ||
2473 | -90, | ||
2474 | -89, | ||
2475 | -89, | ||
2476 | -89, | ||
2477 | -89, | ||
2478 | -89, | ||
2479 | -88, | ||
2480 | -87, | ||
2481 | -88, | ||
2482 | -90, | ||
2483 | -87, | ||
2484 | -88, | ||
2485 | -90, | ||
2486 | -98, | ||
2487 | -127, | ||
2488 | 93, | ||
2489 | 69, | ||
2490 | 50, | ||
2491 | 50, | ||
2492 | 51, | ||
2493 | 43, | ||
2494 | 44, | ||
2495 | 43, | ||
2496 | 41, | ||
2497 | 37, | ||
2498 | 37, | ||
2499 | 40, | ||
2500 | 38, | ||
2501 | 38, | ||
2502 | 37, | ||
2503 | 36, | ||
2504 | 38, | ||
2505 | 36, | ||
2506 | 36, | ||
2507 | 36, | ||
2508 | 36, | ||
2509 | 36, | ||
2510 | 36, | ||
2511 | 38, | ||
2512 | 39, | ||
2513 | 40, | ||
2514 | 39, | ||
2515 | 40, | ||
2516 | 39, | ||
2517 | 42, | ||
2518 | 46, | ||
2519 | 49, | ||
2520 | 52, | ||
2521 | 62, | ||
2522 | 90, | ||
2523 | -123, | ||
2524 | -101, | ||
2525 | -100, | ||
2526 | -98, | ||
2527 | -94, | ||
2528 | -90, | ||
2529 | -88, | ||
2530 | -87, | ||
2531 | -89, | ||
2532 | -90, | ||
2533 | -89, | ||
2534 | -88, | ||
2535 | -88, | ||
2536 | -87, | ||
2537 | -86, | ||
2538 | -87, | ||
2539 | -86, | ||
2540 | -86, | ||
2541 | -87, | ||
2542 | -85, | ||
2543 | -85, | ||
2544 | -88, | ||
2545 | -89, | ||
2546 | -88, | ||
2547 | -89, | ||
2548 | -88, | ||
2549 | -89, | ||
2550 | -90, | ||
2551 | -89, | ||
2552 | -90, | ||
2553 | -90, | ||
2554 | -91, | ||
2555 | -90, | ||
2556 | -89, | ||
2557 | -91, | ||
2558 | -91, | ||
2559 | -91, | ||
2560 | -90, | ||
2561 | -92, | ||
2562 | -99, | ||
2563 | -126, | ||
2564 | 93, | ||
2565 | 61, | ||
2566 | 45, | ||
2567 | 49, | ||
2568 | 48, | ||
2569 | 43, | ||
2570 | 41, | ||
2571 | 38, | ||
2572 | 37, | ||
2573 | 36, | ||
2574 | 38, | ||
2575 | 38, | ||
2576 | 37, | ||
2577 | 36, | ||
2578 | 35, | ||
2579 | 35, | ||
2580 | 39, | ||
2581 | 36, | ||
2582 | 36, | ||
2583 | 36, | ||
2584 | 36, | ||
2585 | 37, | ||
2586 | 41, | ||
2587 | 42, | ||
2588 | 40, | ||
2589 | 41, | ||
2590 | 41, | ||
2591 | 38, | ||
2592 | 40, | ||
2593 | 42, | ||
2594 | 42, | ||
2595 | 45, | ||
2596 | 50, | ||
2597 | 61, | ||
2598 | 91, | ||
2599 | -121, | ||
2600 | -94, | ||
2601 | -93, | ||
2602 | -96, | ||
2603 | -94, | ||
2604 | -94, | ||
2605 | -93, | ||
2606 | -91, | ||
2607 | -91, | ||
2608 | -93, | ||
2609 | -90, | ||
2610 | -88, | ||
2611 | -92, | ||
2612 | -90, | ||
2613 | -87, | ||
2614 | -87, | ||
2615 | -89, | ||
2616 | -88, | ||
2617 | -87, | ||
2618 | -89, | ||
2619 | -89, | ||
2620 | -90, | ||
2621 | -93, | ||
2622 | -96, | ||
2623 | -94, | ||
2624 | -91, | ||
2625 | -89, | ||
2626 | -88, | ||
2627 | -88, | ||
2628 | -90, | ||
2629 | -90, | ||
2630 | -89, | ||
2631 | -91, | ||
2632 | -92, | ||
2633 | -93, | ||
2634 | -91, | ||
2635 | -91, | ||
2636 | -92, | ||
2637 | -91, | ||
2638 | -101, | ||
2639 | 122, | ||
2640 | 84, | ||
2641 | 60, | ||
2642 | 48, | ||
2643 | 52, | ||
2644 | 46, | ||
2645 | 34, | ||
2646 | 36, | ||
2647 | 36, | ||
2648 | 37, | ||
2649 | 34, | ||
2650 | 34, | ||
2651 | 37, | ||
2652 | 34, | ||
2653 | 32, | ||
2654 | 33, | ||
2655 | 34, | ||
2656 | 37, | ||
2657 | 36, | ||
2658 | 36, | ||
2659 | 36, | ||
2660 | 37, | ||
2661 | 37, | ||
2662 | 36, | ||
2663 | 39, | ||
2664 | 39, | ||
2665 | 41, | ||
2666 | 40, | ||
2667 | 41, | ||
2668 | 40, | ||
2669 | 39, | ||
2670 | 42, | ||
2671 | 44, | ||
2672 | 49, | ||
2673 | 62, | ||
2674 | 92, | ||
2675 | -124, | ||
2676 | -96, | ||
2677 | -84, | ||
2678 | -81, | ||
2679 | -86, | ||
2680 | -87, | ||
2681 | -89, | ||
2682 | -90, | ||
2683 | -91, | ||
2684 | -92, | ||
2685 | -90, | ||
2686 | -88, | ||
2687 | -89, | ||
2688 | -91, | ||
2689 | -90, | ||
2690 | -89, | ||
2691 | -89, | ||
2692 | -89, | ||
2693 | -90, | ||
2694 | -89, | ||
2695 | -86, | ||
2696 | -88, | ||
2697 | -89, | ||
2698 | -89, | ||
2699 | -90, | ||
2700 | -88, | ||
2701 | -90, | ||
2702 | -91, | ||
2703 | -91, | ||
2704 | -92, | ||
2705 | -92, | ||
2706 | -92, | ||
2707 | -91, | ||
2708 | -91, | ||
2709 | -93, | ||
2710 | -95, | ||
2711 | -94, | ||
2712 | -93, | ||
2713 | -93, | ||
2714 | -101, | ||
2715 | 125, | ||
2716 | 86, | ||
2717 | 61, | ||
2718 | 47, | ||
2719 | 47, | ||
2720 | 49, | ||
2721 | 45, | ||
2722 | 44, | ||
2723 | 44, | ||
2724 | 43, | ||
2725 | 44, | ||
2726 | 45, | ||
2727 | 44, | ||
2728 | 42, | ||
2729 | 41, | ||
2730 | 38, | ||
2731 | 35, | ||
2732 | 38, | ||
2733 | 37, | ||
2734 | 37, | ||
2735 | 37, | ||
2736 | 37, | ||
2737 | 37, | ||
2738 | 39, | ||
2739 | 40, | ||
2740 | 40, | ||
2741 | 42, | ||
2742 | 44, | ||
2743 | 42, | ||
2744 | 43, | ||
2745 | 47, | ||
2746 | 45, | ||
2747 | 44, | ||
2748 | 50, | ||
2749 | 66, | ||
2750 | 99, | ||
2751 | -111, | ||
2752 | -93, | ||
2753 | -97, | ||
2754 | -96, | ||
2755 | -92, | ||
2756 | -89, | ||
2757 | -89, | ||
2758 | -89, | ||
2759 | -87, | ||
2760 | -88, | ||
2761 | -86, | ||
2762 | -87, | ||
2763 | -90, | ||
2764 | -88, | ||
2765 | -88, | ||
2766 | -88, | ||
2767 | -87, | ||
2768 | -87, | ||
2769 | -88, | ||
2770 | -91, | ||
2771 | -93, | ||
2772 | -91, | ||
2773 | -92, | ||
2774 | -89, | ||
2775 | -86, | ||
2776 | -84, | ||
2777 | -83, | ||
2778 | -83, | ||
2779 | -87, | ||
2780 | -90, | ||
2781 | -91, | ||
2782 | -90, | ||
2783 | -91, | ||
2784 | -92, | ||
2785 | -93, | ||
2786 | -94, | ||
2787 | -97, | ||
2788 | -96, | ||
2789 | -97, | ||
2790 | -107, | ||
2791 | 119, | ||
2792 | 79, | ||
2793 | 53, | ||
2794 | 39, | ||
2795 | 39, | ||
2796 | 38, | ||
2797 | 37, | ||
2798 | 40, | ||
2799 | 38, | ||
2800 | 38, | ||
2801 | 37, | ||
2802 | 38, | ||
2803 | 40, | ||
2804 | 41, | ||
2805 | 39, | ||
2806 | 38, | ||
2807 | 36, | ||
2808 | 36, | ||
2809 | 37, | ||
2810 | 37, | ||
2811 | 37, | ||
2812 | 37, | ||
2813 | 37, | ||
2814 | 40, | ||
2815 | 39, | ||
2816 | 40, | ||
2817 | 40, | ||
2818 | 40, | ||
2819 | 40, | ||
2820 | 38, | ||
2821 | 39, | ||
2822 | 43, | ||
2823 | 44, | ||
2824 | 48, | ||
2825 | 59, | ||
2826 | 95, | ||
2827 | -121, | ||
2828 | -103, | ||
2829 | -96, | ||
2830 | -95, | ||
2831 | -97, | ||
2832 | -94, | ||
2833 | -92, | ||
2834 | -90, | ||
2835 | -90, | ||
2836 | -90, | ||
2837 | -88, | ||
2838 | -85, | ||
2839 | -88, | ||
2840 | -89, | ||
2841 | -88, | ||
2842 | -89, | ||
2843 | -91, | ||
2844 | -92, | ||
2845 | -92, | ||
2846 | -91, | ||
2847 | -90, | ||
2848 | -88, | ||
2849 | -88, | ||
2850 | -88, | ||
2851 | -90, | ||
2852 | -91, | ||
2853 | -92, | ||
2854 | -91, | ||
2855 | -89, | ||
2856 | -93, | ||
2857 | -93, | ||
2858 | -92, | ||
2859 | -92, | ||
2860 | -91, | ||
2861 | -93, | ||
2862 | -94, | ||
2863 | -94, | ||
2864 | -94, | ||
2865 | -93, | ||
2866 | -105, | ||
2867 | 118, | ||
2868 | 79, | ||
2869 | 52, | ||
2870 | 38, | ||
2871 | 36, | ||
2872 | 40, | ||
2873 | 41, | ||
2874 | 41, | ||
2875 | 42, | ||
2876 | 39, | ||
2877 | 38, | ||
2878 | 40, | ||
2879 | 40, | ||
2880 | 39, | ||
2881 | 39, | ||
2882 | 39, | ||
2883 | 37, | ||
2884 | 38, | ||
2885 | 37, | ||
2886 | 37, | ||
2887 | 37, | ||
2888 | 37, | ||
2889 | 37, | ||
2890 | 41, | ||
2891 | 42, | ||
2892 | 40, | ||
2893 | 41, | ||
2894 | 43, | ||
2895 | 43, | ||
2896 | 45, | ||
2897 | 43, | ||
2898 | 42, | ||
2899 | 43, | ||
2900 | 47, | ||
2901 | 62, | ||
2902 | 95, | ||
2903 | -120, | ||
2904 | -93, | ||
2905 | -92, | ||
2906 | -96, | ||
2907 | -92, | ||
2908 | -94, | ||
2909 | -92, | ||
2910 | -91, | ||
2911 | -88, | ||
2912 | -88, | ||
2913 | -89, | ||
2914 | -90, | ||
2915 | -91, | ||
2916 | -88, | ||
2917 | -88, | ||
2918 | -89, | ||
2919 | -88, | ||
2920 | -91, | ||
2921 | -93, | ||
2922 | -92, | ||
2923 | -91, | ||
2924 | -90, | ||
2925 | -89, | ||
2926 | -90, | ||
2927 | -89, | ||
2928 | -91, | ||
2929 | -90, | ||
2930 | -90, | ||
2931 | -94, | ||
2932 | -95, | ||
2933 | -95, | ||
2934 | -94, | ||
2935 | -91, | ||
2936 | -87, | ||
2937 | -83, | ||
2938 | -87, | ||
2939 | -88, | ||
2940 | -89, | ||
2941 | -94, | ||
2942 | -106, | ||
2943 | 117, | ||
2944 | 79, | ||
2945 | 60, | ||
2946 | 51, | ||
2947 | 45, | ||
2948 | 40, | ||
2949 | 37, | ||
2950 | 38, | ||
2951 | 38, | ||
2952 | 36, | ||
2953 | 34, | ||
2954 | 33, | ||
2955 | 34, | ||
2956 | 34, | ||
2957 | 33, | ||
2958 | 35, | ||
2959 | 37, | ||
2960 | 36, | ||
2961 | 37, | ||
2962 | 37, | ||
2963 | 37, | ||
2964 | 37, | ||
2965 | 37, | ||
2966 | 36, | ||
2967 | 40, | ||
2968 | 38, | ||
2969 | 39, | ||
2970 | 40, | ||
2971 | 41, | ||
2972 | 38, | ||
2973 | 40, | ||
2974 | 43, | ||
2975 | 48, | ||
2976 | 52, | ||
2977 | 62, | ||
2978 | 96, | ||
2979 | -120, | ||
2980 | -103, | ||
2981 | -99, | ||
2982 | -94, | ||
2983 | -95, | ||
2984 | -93, | ||
2985 | -92, | ||
2986 | -90, | ||
2987 | -89, | ||
2988 | -90, | ||
2989 | -91, | ||
2990 | -90, | ||
2991 | -92, | ||
2992 | -95, | ||
2993 | -95, | ||
2994 | -94, | ||
2995 | -94, | ||
2996 | -92, | ||
2997 | -92, | ||
2998 | -93, | ||
2999 | -93, | ||
3000 | -92, | ||
3001 | -91, | ||
3002 | -90, | ||
3003 | -92, | ||
3004 | -94, | ||
3005 | -93, | ||
3006 | -92, | ||
3007 | -89, | ||
3008 | -91, | ||
3009 | -89, | ||
3010 | -87, | ||
3011 | -88, | ||
3012 | -91, | ||
3013 | -97, | ||
3014 | -98, | ||
3015 | -95, | ||
3016 | -94, | ||
3017 | -94, | ||
3018 | -104, | ||
3019 | 123, | ||
3020 | 86, | ||
3021 | 61, | ||
3022 | 48, | ||
3023 | 46, | ||
3024 | 47, | ||
3025 | 40, | ||
3026 | 38, | ||
3027 | 37, | ||
3028 | 34, | ||
3029 | 36, | ||
3030 | 35, | ||
3031 | 39, | ||
3032 | 41, | ||
3033 | 40, | ||
3034 | 39, | ||
3035 | 37, | ||
3036 | 37, | ||
3037 | 37, | ||
3038 | 37, | ||
3039 | 37, | ||
3040 | 37, | ||
3041 | 37, | ||
3042 | 39, | ||
3043 | 39, | ||
3044 | 40, | ||
3045 | 39, | ||
3046 | 40, | ||
3047 | 42, | ||
3048 | 41, | ||
3049 | 40, | ||
3050 | 43, | ||
3051 | 42, | ||
3052 | 43, | ||
3053 | 52, | ||
3054 | 85, | ||
3055 | 125, | ||
3056 | -106, | ||
3057 | -92, | ||
3058 | -98, | ||
3059 | -96, | ||
3060 | -84, | ||
3061 | -82, | ||
3062 | -87, | ||
3063 | -86, | ||
3064 | -85, | ||
3065 | -86, | ||
3066 | -86, | ||
3067 | -90, | ||
3068 | -88, | ||
3069 | -88, | ||
3070 | -87, | ||
3071 | -87, | ||
3072 | -92, | ||
3073 | -93, | ||
3074 | -93, | ||
3075 | -93, | ||
3076 | -90, | ||
3077 | -91, | ||
3078 | -92, | ||
3079 | -89, | ||
3080 | -89, | ||
3081 | -89, | ||
3082 | -89, | ||
3083 | -91, | ||
3084 | -91, | ||
3085 | -93, | ||
3086 | -93, | ||
3087 | -94, | ||
3088 | -93, | ||
3089 | -92, | ||
3090 | -94, | ||
3091 | -94, | ||
3092 | -91, | ||
3093 | -92, | ||
3094 | -100, | ||
3095 | 123, | ||
3096 | 79, | ||
3097 | 57, | ||
3098 | 47, | ||
3099 | 45, | ||
3100 | 47, | ||
3101 | 40, | ||
3102 | 37, | ||
3103 | 36, | ||
3104 | 35, | ||
3105 | 38, | ||
3106 | 37, | ||
3107 | 39, | ||
3108 | 40, | ||
3109 | 38, | ||
3110 | 39, | ||
3111 | 36, | ||
3112 | 35, | ||
3113 | 37, | ||
3114 | 37, | ||
3115 | 37, | ||
3116 | 37, | ||
3117 | 37, | ||
3118 | 41, | ||
3119 | 38, | ||
3120 | 33, | ||
3121 | 31, | ||
3122 | 37, | ||
3123 | 44, | ||
3124 | 44, | ||
3125 | 44, | ||
3126 | 46, | ||
3127 | 48, | ||
3128 | 52, | ||
3129 | 64, | ||
3130 | 96, | ||
3131 | -117, | ||
3132 | -98, | ||
3133 | -103, | ||
3134 | -99, | ||
3135 | -97, | ||
3136 | -96, | ||
3137 | -97, | ||
3138 | -97, | ||
3139 | -94, | ||
3140 | -89, | ||
3141 | -85, | ||
3142 | -90, | ||
3143 | -91, | ||
3144 | -89, | ||
3145 | -89, | ||
3146 | -89, | ||
3147 | -88, | ||
3148 | -87, | ||
3149 | -86, | ||
3150 | -90, | ||
3151 | -92, | ||
3152 | -91, | ||
3153 | -93, | ||
3154 | -91, | ||
3155 | -92, | ||
3156 | -92, | ||
3157 | -91, | ||
3158 | -93, | ||
3159 | -92, | ||
3160 | -92, | ||
3161 | -92, | ||
3162 | -91, | ||
3163 | -94, | ||
3164 | -94, | ||
3165 | -94, | ||
3166 | -95, | ||
3167 | -93, | ||
3168 | -98, | ||
3169 | -102, | ||
3170 | -110, | ||
3171 | 117, | ||
3172 | 83, | ||
3173 | 55, | ||
3174 | 40, | ||
3175 | 46, | ||
3176 | 48, | ||
3177 | 44, | ||
3178 | 42, | ||
3179 | 39, | ||
3180 | 40, | ||
3181 | 37, | ||
3182 | 39, | ||
3183 | 40, | ||
3184 | 38, | ||
3185 | 38, | ||
3186 | 38, | ||
3187 | 39, | ||
3188 | 42, | ||
3189 | 37, | ||
3190 | 37, | ||
3191 | 37, | ||
3192 | 37, | ||
3193 | 38, | ||
3194 | 39, | ||
3195 | 40, | ||
3196 | 41, | ||
3197 | 41, | ||
3198 | 41, | ||
3199 | 41, | ||
3200 | 40, | ||
3201 | 42, | ||
3202 | 46, | ||
3203 | 47, | ||
3204 | 52, | ||
3205 | 65, | ||
3206 | 102, | ||
3207 | -114, | ||
3208 | -102, | ||
3209 | -97, | ||
3210 | -100, | ||
3211 | -95, | ||
3212 | -83, | ||
3213 | -88, | ||
3214 | -91, | ||
3215 | -89, | ||
3216 | -91, | ||
3217 | -91, | ||
3218 | -89, | ||
3219 | -89, | ||
3220 | -88, | ||
3221 | -90, | ||
3222 | -89, | ||
3223 | -88, | ||
3224 | -88, | ||
3225 | -88, | ||
3226 | -89, | ||
3227 | -92, | ||
3228 | -90, | ||
3229 | -90, | ||
3230 | -90, | ||
3231 | -90, | ||
3232 | -92, | ||
3233 | -94, | ||
3234 | -95, | ||
3235 | -94, | ||
3236 | -93, | ||
3237 | -92, | ||
3238 | -90, | ||
3239 | -90, | ||
3240 | -92, | ||
3241 | -92, | ||
3242 | -94, | ||
3243 | -92, | ||
3244 | -92, | ||
3245 | -96, | ||
3246 | -108, | ||
3247 | 116, | ||
3248 | 76, | ||
3249 | 57, | ||
3250 | 50, | ||
3251 | 47, | ||
3252 | 42, | ||
3253 | 38, | ||
3254 | 41, | ||
3255 | 42, | ||
3256 | 41, | ||
3257 | 37, | ||
3258 | 36, | ||
3259 | 37, | ||
3260 | 36, | ||
3261 | 36, | ||
3262 | 37, | ||
3263 | 35, | ||
3264 | 35, | ||
3265 | 37, | ||
3266 | 37, | ||
3267 | 37, | ||
3268 | 37, | ||
3269 | 38, | ||
3270 | 39, | ||
3271 | 40, | ||
3272 | 41, | ||
3273 | 39, | ||
3274 | 41, | ||
3275 | 40, | ||
3276 | 36, | ||
3277 | 34, | ||
3278 | 37, | ||
3279 | 39, | ||
3280 | 42, | ||
3281 | 61, | ||
3282 | 100, | ||
3283 | -113, | ||
3284 | -90, | ||
3285 | -97, | ||
3286 | -96, | ||
3287 | -90, | ||
3288 | -87, | ||
3289 | -88, | ||
3290 | -90, | ||
3291 | -91, | ||
3292 | -93, | ||
3293 | -89, | ||
3294 | -91, | ||
3295 | -91, | ||
3296 | -90, | ||
3297 | -90, | ||
3298 | -91, | ||
3299 | -91, | ||
3300 | -89, | ||
3301 | -87, | ||
3302 | -90, | ||
3303 | -91, | ||
3304 | -89, | ||
3305 | -90, | ||
3306 | -89, | ||
3307 | -90, | ||
3308 | -90, | ||
3309 | -92, | ||
3310 | -92, | ||
3311 | -92, | ||
3312 | -91, | ||
3313 | -91, | ||
3314 | -89, | ||
3315 | -90, | ||
3316 | -92, | ||
3317 | -90, | ||
3318 | -92, | ||
3319 | -93, | ||
3320 | -93, | ||
3321 | -96, | ||
3322 | -107, | ||
3323 | 119, | ||
3324 | 81, | ||
3325 | 48, | ||
3326 | 37, | ||
3327 | 40, | ||
3328 | 44, | ||
3329 | 45, | ||
3330 | 41, | ||
3331 | 40, | ||
3332 | 38, | ||
3333 | 36, | ||
3334 | 37, | ||
3335 | 38, | ||
3336 | 37, | ||
3337 | 37, | ||
3338 | 37, | ||
3339 | 36, | ||
3340 | 35, | ||
3341 | 37, | ||
3342 | 37, | ||
3343 | 37, | ||
3344 | 37, | ||
3345 | 39, | ||
3346 | 47, | ||
3347 | 50, | ||
3348 | 45, | ||
3349 | 40, | ||
3350 | 41, | ||
3351 | 40, | ||
3352 | 41, | ||
3353 | 42, | ||
3354 | 44, | ||
3355 | 48, | ||
3356 | 53, | ||
3357 | 64, | ||
3358 | 98, | ||
3359 | -116, | ||
3360 | -95, | ||
3361 | -96, | ||
3362 | -97, | ||
3363 | -87, | ||
3364 | -83, | ||
3365 | -87, | ||
3366 | -87, | ||
3367 | -88, | ||
3368 | -87, | ||
3369 | -86, | ||
3370 | -86, | ||
3371 | -87, | ||
3372 | -91, | ||
3373 | -95, | ||
3374 | -94, | ||
3375 | -92, | ||
3376 | -88, | ||
3377 | -89, | ||
3378 | -90, | ||
3379 | -90, | ||
3380 | -88, | ||
3381 | -87, | ||
3382 | -88, | ||
3383 | -90, | ||
3384 | -94, | ||
3385 | -92, | ||
3386 | -93, | ||
3387 | -91, | ||
3388 | -89, | ||
3389 | -89, | ||
3390 | -87, | ||
3391 | -86, | ||
3392 | -87, | ||
3393 | -90, | ||
3394 | -92, | ||
3395 | -92, | ||
3396 | -91, | ||
3397 | -92, | ||
3398 | -100, | ||
3399 | 125, | ||
3400 | 79, | ||
3401 | 52, | ||
3402 | 51, | ||
3403 | 54, | ||
3404 | 50, | ||
3405 | 47, | ||
3406 | 47, | ||
3407 | 47, | ||
3408 | 46, | ||
3409 | 45, | ||
3410 | 46, | ||
3411 | 44, | ||
3412 | 40, | ||
3413 | 36, | ||
3414 | 34, | ||
3415 | 34, | ||
3416 | 34, | ||
3417 | 37, | ||
3418 | 37, | ||
3419 | 37, | ||
3420 | 37, | ||
3421 | 38, | ||
3422 | 41, | ||
3423 | 42, | ||
3424 | 42, | ||
3425 | 39, | ||
3426 | 39, | ||
3427 | 37, | ||
3428 | 35, | ||
3429 | 39, | ||
3430 | 46, | ||
3431 | 52, | ||
3432 | 53, | ||
3433 | 68, | ||
3434 | 101, | ||
3435 | -119, | ||
3436 | -101, | ||
3437 | -101, | ||
3438 | -101, | ||
3439 | -93, | ||
3440 | -90, | ||
3441 | -89, | ||
3442 | -88, | ||
3443 | -88, | ||
3444 | -88, | ||
3445 | -85, | ||
3446 | -89, | ||
3447 | -90, | ||
3448 | -89, | ||
3449 | -91, | ||
3450 | -93, | ||
3451 | -92, | ||
3452 | -90, | ||
3453 | -90, | ||
3454 | -90, | ||
3455 | -91, | ||
3456 | -91, | ||
3457 | -90, | ||
3458 | -91, | ||
3459 | -93, | ||
3460 | -91, | ||
3461 | -92, | ||
3462 | -92, | ||
3463 | -89, | ||
3464 | -90, | ||
3465 | -91, | ||
3466 | -92, | ||
3467 | -95, | ||
3468 | -95, | ||
3469 | -94, | ||
3470 | -95, | ||
3471 | -95, | ||
3472 | -96, | ||
3473 | -97, | ||
3474 | -110, | ||
3475 | 116, | ||
3476 | 81, | ||
3477 | 54, | ||
3478 | 48, | ||
3479 | 52, | ||
3480 | 51, | ||
3481 | 49, | ||
3482 | 45, | ||
3483 | 47, | ||
3484 | 46, | ||
3485 | 43, | ||
3486 | 44, | ||
3487 | 43, | ||
3488 | 38, | ||
3489 | 35, | ||
3490 | 35, | ||
3491 | 34, | ||
3492 | 36, | ||
3493 | 37, | ||
3494 | 37, | ||
3495 | 37, | ||
3496 | 37, | ||
3497 | 39, | ||
3498 | 43, | ||
3499 | 43, | ||
3500 | 41, | ||
3501 | 40, | ||
3502 | 42, | ||
3503 | 41, | ||
3504 | 41, | ||
3505 | 40, | ||
3506 | 40, | ||
3507 | 44, | ||
3508 | 50, | ||
3509 | 68, | ||
3510 | 106, | ||
3511 | -112, | ||
3512 | -93, | ||
3513 | -93, | ||
3514 | -95, | ||
3515 | -92, | ||
3516 | -94, | ||
3517 | -93, | ||
3518 | -90, | ||
3519 | -89, | ||
3520 | -90, | ||
3521 | -88, | ||
3522 | -90, | ||
3523 | -89, | ||
3524 | -88, | ||
3525 | -89, | ||
3526 | -89, | ||
3527 | -89, | ||
3528 | -86, | ||
3529 | -88, | ||
3530 | -91, | ||
3531 | -92, | ||
3532 | -92, | ||
3533 | -91, | ||
3534 | -92, | ||
3535 | -91, | ||
3536 | -91, | ||
3537 | -92, | ||
3538 | -91, | ||
3539 | -92, | ||
3540 | -90, | ||
3541 | -90, | ||
3542 | -91, | ||
3543 | -88, | ||
3544 | -87, | ||
3545 | -90, | ||
3546 | -92, | ||
3547 | -91, | ||
3548 | -91, | ||
3549 | -92, | ||
3550 | -104, | ||
3551 | 121, | ||
3552 | 80, | ||
3553 | 54, | ||
3554 | 43, | ||
3555 | 45, | ||
3556 | 46, | ||
3557 | 41, | ||
3558 | 41, | ||
3559 | 40, | ||
3560 | 38, | ||
3561 | 38, | ||
3562 | 38, | ||
3563 | 37, | ||
3564 | 37, | ||
3565 | 37, | ||
3566 | 37, | ||
3567 | 39, | ||
3568 | 40, | ||
3569 | 37, | ||
3570 | 37, | ||
3571 | 37, | ||
3572 | 37, | ||
3573 | 37, | ||
3574 | 39, | ||
3575 | 39, | ||
3576 | 40, | ||
3577 | 38, | ||
3578 | 40, | ||
3579 | 41, | ||
3580 | 40, | ||
3581 | 41, | ||
3582 | 43, | ||
3583 | 46, | ||
3584 | 52, | ||
3585 | 69, | ||
3586 | 105, | ||
3587 | -112, | ||
3588 | -92, | ||
3589 | -95, | ||
3590 | -94, | ||
3591 | -90, | ||
3592 | -94, | ||
3593 | -94, | ||
3594 | -92, | ||
3595 | -91, | ||
3596 | -90, | ||
3597 | -91, | ||
3598 | -90, | ||
3599 | -90, | ||
3600 | -90, | ||
3601 | -90, | ||
3602 | -89, | ||
3603 | -88, | ||
3604 | -89, | ||
3605 | -90, | ||
3606 | -90, | ||
3607 | -93, | ||
3608 | -94, | ||
3609 | -93, | ||
3610 | -92, | ||
3611 | -91, | ||
3612 | -91, | ||
3613 | -92, | ||
3614 | -94, | ||
3615 | -91, | ||
3616 | -91, | ||
3617 | -89, | ||
3618 | -89, | ||
3619 | -93, | ||
3620 | -95, | ||
3621 | -96, | ||
3622 | -97, | ||
3623 | -96, | ||
3624 | -96, | ||
3625 | -96, | ||
3626 | -106, | ||
3627 | 121, | ||
3628 | 86, | ||
3629 | 54, | ||
3630 | 47, | ||
3631 | 53, | ||
3632 | 50, | ||
3633 | 48, | ||
3634 | 43, | ||
3635 | 40, | ||
3636 | 39, | ||
3637 | 37, | ||
3638 | 40, | ||
3639 | 40, | ||
3640 | 38, | ||
3641 | 38, | ||
3642 | 36, | ||
3643 | 37, | ||
3644 | 37, | ||
3645 | 37, | ||
3646 | 37, | ||
3647 | 37, | ||
3648 | 37, | ||
3649 | 37, | ||
3650 | 39, | ||
3651 | 38, | ||
3652 | 38, | ||
3653 | 38, | ||
3654 | 38, | ||
3655 | 37, | ||
3656 | 37, | ||
3657 | 39, | ||
3658 | 41, | ||
3659 | 42, | ||
3660 | 45, | ||
3661 | 62, | ||
3662 | 104, | ||
3663 | -112, | ||
3664 | -93, | ||
3665 | -87, | ||
3666 | -91, | ||
3667 | -92, | ||
3668 | -92, | ||
3669 | -91, | ||
3670 | -89, | ||
3671 | -91, | ||
3672 | -89, | ||
3673 | -90, | ||
3674 | -88, | ||
3675 | -86, | ||
3676 | -88, | ||
3677 | -90, | ||
3678 | -91, | ||
3679 | -91, | ||
3680 | -90, | ||
3681 | -91, | ||
3682 | -91, | ||
3683 | -91, | ||
3684 | -90, | ||
3685 | -89, | ||
3686 | -90, | ||
3687 | -89, | ||
3688 | -90, | ||
3689 | -93, | ||
3690 | -91, | ||
3691 | -92, | ||
3692 | -92, | ||
3693 | -91, | ||
3694 | -92, | ||
3695 | -91, | ||
3696 | -91, | ||
3697 | -94, | ||
3698 | -94, | ||
3699 | -92, | ||
3700 | -93, | ||
3701 | -92, | ||
3702 | -103, | ||
3703 | 124, | ||
3704 | 92, | ||
3705 | 65, | ||
3706 | 49, | ||
3707 | 47, | ||
3708 | 45, | ||
3709 | 39, | ||
3710 | 40, | ||
3711 | 40, | ||
3712 | 40, | ||
3713 | 37, | ||
3714 | 37, | ||
3715 | 37, | ||
3716 | 37, | ||
3717 | 41, | ||
3718 | 41, | ||
3719 | 38, | ||
3720 | 38, | ||
3721 | 37, | ||
3722 | 37, | ||
3723 | 37, | ||
3724 | 37, | ||
3725 | 38, | ||
3726 | 46, | ||
3727 | 42, | ||
3728 | 42, | ||
3729 | 40, | ||
3730 | 41, | ||
3731 | 41, | ||
3732 | 37, | ||
3733 | 39, | ||
3734 | 43, | ||
3735 | 49, | ||
3736 | 59, | ||
3737 | 78, | ||
3738 | 112, | ||
3739 | -105, | ||
3740 | -88, | ||
3741 | -94, | ||
3742 | -93, | ||
3743 | -96, | ||
3744 | -95, | ||
3745 | -92, | ||
3746 | -90, | ||
3747 | -88, | ||
3748 | -90, | ||
3749 | -91, | ||
3750 | -90, | ||
3751 | -88, | ||
3752 | -89, | ||
3753 | -90, | ||
3754 | -89, | ||
3755 | -90, | ||
3756 | -91, | ||
3757 | -90, | ||
3758 | -91, | ||
3759 | -93, | ||
3760 | -93, | ||
3761 | -92, | ||
3762 | -92, | ||
3763 | -91, | ||
3764 | -91, | ||
3765 | -90, | ||
3766 | -92, | ||
3767 | -92, | ||
3768 | -92, | ||
3769 | -93, | ||
3770 | -92, | ||
3771 | -92, | ||
3772 | -92, | ||
3773 | -94, | ||
3774 | -94, | ||
3775 | -94, | ||
3776 | -94, | ||
3777 | -93, | ||
3778 | -107, | ||
3779 | 116, | ||
3780 | 77, | ||
3781 | 48, | ||
3782 | 43, | ||
3783 | 47, | ||
3784 | 43, | ||
3785 | 41, | ||
3786 | 40, | ||
3787 | 39, | ||
3788 | 38, | ||
3789 | 38, | ||
3790 | 42, | ||
3791 | 40, | ||
3792 | 38, | ||
3793 | 37, | ||
3794 | 34, | ||
3795 | 34, | ||
3796 | 34, | ||
3797 | 36, | ||
3798 | 37, | ||
3799 | 37, | ||
3800 | 37, | ||
3801 | 37, | ||
3802 | 41, | ||
3803 | 41, | ||
3804 | 38, | ||
3805 | 38, | ||
3806 | 39, | ||
3807 | 40, | ||
3808 | 39, | ||
3809 | 39, | ||
3810 | 40, | ||
3811 | 40, | ||
3812 | 45, | ||
3813 | 63, | ||
3814 | 102, | ||
3815 | -117, | ||
3816 | -98, | ||
3817 | -92, | ||
3818 | -88, | ||
3819 | -87, | ||
3820 | -91, | ||
3821 | -90, | ||
3822 | -89, | ||
3823 | -90, | ||
3824 | -91, | ||
3825 | -93, | ||
3826 | -90, | ||
3827 | -83, | ||
3828 | -85, | ||
3829 | -87, | ||
3830 | -88, | ||
3831 | -90, | ||
3832 | -91, | ||
3833 | -93, | ||
3834 | -92, | ||
3835 | -93, | ||
3836 | -91, | ||
3837 | -89, | ||
3838 | -89, | ||
3839 | -89, | ||
3840 | -91, | ||
3841 | -94, | ||
3842 | -92, | ||
3843 | -91, | ||
3844 | -90, | ||
3845 | -92, | ||
3846 | -92, | ||
3847 | -92, | ||
3848 | -93, | ||
3849 | -91, | ||
3850 | -89, | ||
3851 | -90, | ||
3852 | -89, | ||
3853 | -87, | ||
3854 | -99, | ||
3855 | 126, | ||
3856 | 86, | ||
3857 | 54, | ||
3858 | 43, | ||
3859 | 45, | ||
3860 | 46, | ||
3861 | 42, | ||
3862 | 40, | ||
3863 | 38, | ||
3864 | 36, | ||
3865 | 34, | ||
3866 | 34, | ||
3867 | 36, | ||
3868 | 34, | ||
3869 | 35, | ||
3870 | 34, | ||
3871 | 35, | ||
3872 | 36, | ||
3873 | 36, | ||
3874 | 37, | ||
3875 | 37, | ||
3876 | 37, | ||
3877 | 38, | ||
3878 | 43, | ||
3879 | 40, | ||
3880 | 38, | ||
3881 | 38, | ||
3882 | 40, | ||
3883 | 41, | ||
3884 | 40, | ||
3885 | 41, | ||
3886 | 41, | ||
3887 | 42, | ||
3888 | 50, | ||
3889 | 74, | ||
3890 | 113, | ||
3891 | -113, | ||
3892 | -98, | ||
3893 | -95, | ||
3894 | -88, | ||
3895 | -88, | ||
3896 | -90, | ||
3897 | -91, | ||
3898 | -90, | ||
3899 | -90, | ||
3900 | -92, | ||
3901 | -91, | ||
3902 | -88, | ||
3903 | -86, | ||
3904 | -87, | ||
3905 | -86, | ||
3906 | -86, | ||
3907 | -89, | ||
3908 | -91, | ||
3909 | -92, | ||
3910 | -92, | ||
3911 | -91, | ||
3912 | -88, | ||
3913 | -90, | ||
3914 | -93, | ||
3915 | -95, | ||
3916 | -97, | ||
3917 | -97, | ||
3918 | -95, | ||
3919 | -94, | ||
3920 | -93, | ||
3921 | -92, | ||
3922 | -92, | ||
3923 | -92, | ||
3924 | -93, | ||
3925 | -94, | ||
3926 | -94, | ||
3927 | -96, | ||
3928 | -95, | ||
3929 | -96, | ||
3930 | -111, | ||
3931 | 111, | ||
3932 | 73, | ||
3933 | 42, | ||
3934 | 39, | ||
3935 | 50, | ||
3936 | 45, | ||
3937 | 41, | ||
3938 | 40, | ||
3939 | 38, | ||
3940 | 38, | ||
3941 | 39, | ||
3942 | 41, | ||
3943 | 38, | ||
3944 | 35, | ||
3945 | 35, | ||
3946 | 33, | ||
3947 | 30, | ||
3948 | 28, | ||
3949 | 36, | ||
3950 | 37, | ||
3951 | 37, | ||
3952 | 37, | ||
3953 | 37, | ||
3954 | 37, | ||
3955 | 40, | ||
3956 | 38, | ||
3957 | 40, | ||
3958 | 41, | ||
3959 | 41, | ||
3960 | 43, | ||
3961 | 42, | ||
3962 | 40, | ||
3963 | 42, | ||
3964 | 49, | ||
3965 | 74, | ||
3966 | 119, | ||
3967 | -100, | ||
3968 | -88, | ||
3969 | -94, | ||
3970 | -93, | ||
3971 | -90, | ||
3972 | -94, | ||
3973 | -94, | ||
3974 | -91, | ||
3975 | -89, | ||
3976 | -89, | ||
3977 | -90, | ||
3978 | -89, | ||
3979 | -88, | ||
3980 | -93, | ||
3981 | -94, | ||
3982 | -91, | ||
3983 | -89, | ||
3984 | -87, | ||
3985 | -90, | ||
3986 | -96, | ||
3987 | -98, | ||
3988 | -96, | ||
3989 | -94, | ||
3990 | -94, | ||
3991 | -92, | ||
3992 | -92, | ||
3993 | -92, | ||
3994 | -89, | ||
3995 | -88, | ||
3996 | -89, | ||
3997 | -91, | ||
3998 | -90, | ||
3999 | -89, | ||
4000 | -88, | ||
4001 | -86, | ||
4002 | -87, | ||
4003 | -90, | ||
4004 | -93, | ||
4005 | -95, | ||
4006 | -110, | ||
4007 | 113, | ||
4008 | 79, | ||
4009 | 59, | ||
4010 | 52, | ||
4011 | 43, | ||
4012 | 38, | ||
4013 | 38, | ||
4014 | 38, | ||
4015 | 41, | ||
4016 | 41, | ||
4017 | 39, | ||
4018 | 41, | ||
4019 | 42, | ||
4020 | 41, | ||
4021 | 40, | ||
4022 | 40, | ||
4023 | 40, | ||
4024 | 39, | ||
4025 | 37, | ||
4026 | 37, | ||
4027 | 37, | ||
4028 | 37, | ||
4029 | 37, | ||
4030 | 39, | ||
4031 | 38, | ||
4032 | 40, | ||
4033 | 40, | ||
4034 | 42, | ||
4035 | 40, | ||
4036 | 41, | ||
4037 | 43, | ||
4038 | 47, | ||
4039 | 50, | ||
4040 | 53, | ||
4041 | 74, | ||
4042 | 112, | ||
4043 | -114, | ||
4044 | -99, | ||
4045 | -95, | ||
4046 | -92, | ||
4047 | -94, | ||
4048 | -95, | ||
4049 | -95, | ||
4050 | -92, | ||
4051 | -90, | ||
4052 | -91, | ||
4053 | -88, | ||
4054 | -85, | ||
4055 | -89, | ||
4056 | -88, | ||
4057 | -87, | ||
4058 | -88, | ||
4059 | -89, | ||
4060 | -89, | ||
4061 | -91, | ||
4062 | -91, | ||
4063 | -90, | ||
4064 | -88, | ||
4065 | -91, | ||
4066 | -94, | ||
4067 | -93, | ||
4068 | -93, | ||
4069 | -93, | ||
4070 | -94, | ||
4071 | -93, | ||
4072 | -91, | ||
4073 | -90, | ||
4074 | -90, | ||
4075 | -92, | ||
4076 | -93, | ||
4077 | -94, | ||
4078 | -92, | ||
4079 | -94, | ||
4080 | -94, | ||
4081 | -95, | ||
4082 | -110, | ||
4083 | 113, | ||
4084 | 78, | ||
4085 | 52, | ||
4086 | 46, | ||
4087 | 49, | ||
4088 | 45, | ||
4089 | 43, | ||
4090 | 42, | ||
4091 | 43, | ||
4092 | 41, | ||
4093 | 39, | ||
4094 | 41, | ||
4095 | 40, | ||
4096 | 38, | ||
4097 | 38, | ||
4098 | 35, | ||
4099 | 37, | ||
4100 | 39, | ||
4101 | 37, | ||
4102 | 37, | ||
4103 | 37, | ||
4104 | 37, | ||
4105 | 37, | ||
4106 | 35, | ||
4107 | 38, | ||
4108 | 38, | ||
4109 | 41, | ||
4110 | 42, | ||
4111 | 39, | ||
4112 | 42, | ||
4113 | 43, | ||
4114 | 44, | ||
4115 | 46, | ||
4116 | 55, | ||
4117 | 80, | ||
4118 | 119, | ||
4119 | -108, | ||
4120 | -99, | ||
4121 | -95, | ||
4122 | -91, | ||
4123 | -90, | ||
4124 | -95, | ||
4125 | -95, | ||
4126 | -92, | ||
4127 | -90, | ||
4128 | -94, | ||
4129 | -94, | ||
4130 | -89, | ||
4131 | -88, | ||
4132 | -92, | ||
4133 | -91, | ||
4134 | -91, | ||
4135 | -93, | ||
4136 | -93, | ||
4137 | -93, | ||
4138 | -93, | ||
4139 | -91, | ||
4140 | -89, | ||
4141 | -90, | ||
4142 | -93, | ||
4143 | -91, | ||
4144 | -89, | ||
4145 | -88, | ||
4146 | -89, | ||
4147 | -88, | ||
4148 | -89, | ||
4149 | -92, | ||
4150 | -93, | ||
4151 | -93, | ||
4152 | -93, | ||
4153 | -92, | ||
4154 | -92, | ||
4155 | -95, | ||
4156 | -95, | ||
4157 | -97, | ||
4158 | -113, | ||
4159 | 108, | ||
4160 | 67, | ||
4161 | 48, | ||
4162 | 46, | ||
4163 | 41, | ||
4164 | 41, | ||
4165 | 42, | ||
4166 | 39, | ||
4167 | 39, | ||
4168 | 37, | ||
4169 | 36, | ||
4170 | 38, | ||
4171 | 38, | ||
4172 | 36, | ||
4173 | 37, | ||
4174 | 39, | ||
4175 | 38, | ||
4176 | 39, | ||
4177 | 37, | ||
4178 | 37, | ||
4179 | 37, | ||
4180 | 37, | ||
4181 | 36, | ||
4182 | 32, | ||
4183 | 34, | ||
4184 | 36, | ||
4185 | 38, | ||
4186 | 38, | ||
4187 | 38, | ||
4188 | 38, | ||
4189 | 41, | ||
4190 | 42, | ||
4191 | 44, | ||
4192 | 50, | ||
4193 | 67, | ||
4194 | 115, | ||
4195 | -98, | ||
4196 | -89, | ||
4197 | -94, | ||
4198 | -93, | ||
4199 | -87, | ||
4200 | -86, | ||
4201 | -91, | ||
4202 | -90, | ||
4203 | -92, | ||
4204 | -93, | ||
4205 | -92, | ||
4206 | -89, | ||
4207 | -91, | ||
4208 | -92, | ||
4209 | -90, | ||
4210 | -92, | ||
4211 | -92, | ||
4212 | -91, | ||
4213 | -90, | ||
4214 | -90, | ||
4215 | -89, | ||
4216 | -87, | ||
4217 | -90, | ||
4218 | -93, | ||
4219 | -92, | ||
4220 | -92, | ||
4221 | -95, | ||
4222 | -94, | ||
4223 | -94, | ||
4224 | -93, | ||
4225 | -91, | ||
4226 | -92, | ||
4227 | -94, | ||
4228 | -95, | ||
4229 | -96, | ||
4230 | -93, | ||
4231 | -93, | ||
4232 | -92, | ||
4233 | -95, | ||
4234 | -112, | ||
4235 | 107, | ||
4236 | 73, | ||
4237 | 56, | ||
4238 | 45, | ||
4239 | 45, | ||
4240 | 44, | ||
4241 | 41, | ||
4242 | 41, | ||
4243 | 39, | ||
4244 | 38, | ||
4245 | 37, | ||
4246 | 39, | ||
4247 | 39, | ||
4248 | 37, | ||
4249 | 38, | ||
4250 | 37, | ||
4251 | 39, | ||
4252 | 41, | ||
4253 | 37, | ||
4254 | 37, | ||
4255 | 37, | ||
4256 | 37, | ||
4257 | 37, | ||
4258 | 40, | ||
4259 | 39, | ||
4260 | 41, | ||
4261 | 42, | ||
4262 | 42, | ||
4263 | 39, | ||
4264 | 39, | ||
4265 | 43, | ||
4266 | 47, | ||
4267 | 49, | ||
4268 | 56, | ||
4269 | 76, | ||
4270 | 112, | ||
4271 | -112, | ||
4272 | -102, | ||
4273 | -90, | ||
4274 | -78, | ||
4275 | -88, | ||
4276 | -93, | ||
4277 | -92, | ||
4278 | -92, | ||
4279 | -90, | ||
4280 | -89, | ||
4281 | -91, | ||
4282 | -88, | ||
4283 | -86, | ||
4284 | -90, | ||
4285 | -88, | ||
4286 | -87, | ||
4287 | -89, | ||
4288 | -91, | ||
4289 | -90, | ||
4290 | -90, | ||
4291 | -89, | ||
4292 | -90, | ||
4293 | -90, | ||
4294 | -88, | ||
4295 | -90, | ||
4296 | -89, | ||
4297 | -89, | ||
4298 | -89, | ||
4299 | -87, | ||
4300 | -90, | ||
4301 | -91, | ||
4302 | -90, | ||
4303 | -90, | ||
4304 | -88, | ||
4305 | -90, | ||
4306 | -92, | ||
4307 | -93, | ||
4308 | -93, | ||
4309 | -97, | ||
4310 | -112, | ||
4311 | 108, | ||
4312 | 71, | ||
4313 | 52, | ||
4314 | 48, | ||
4315 | 51, | ||
4316 | 48, | ||
4317 | 45, | ||
4318 | 40, | ||
4319 | 40, | ||
4320 | 41, | ||
4321 | 42, | ||
4322 | 42, | ||
4323 | 41, | ||
4324 | 39, | ||
4325 | 41, | ||
4326 | 42, | ||
4327 | 39, | ||
4328 | 37, | ||
4329 | 37, | ||
4330 | 37, | ||
4331 | 37, | ||
4332 | 37, | ||
4333 | 37, | ||
4334 | 38, | ||
4335 | 39, | ||
4336 | 40, | ||
4337 | 40, | ||
4338 | 40, | ||
4339 | 40, | ||
4340 | 42, | ||
4341 | 45, | ||
4342 | 46, | ||
4343 | 45, | ||
4344 | 51, | ||
4345 | 72, | ||
4346 | 121, | ||
4347 | -98, | ||
4348 | -99, | ||
4349 | -100, | ||
4350 | -95, | ||
4351 | -93, | ||
4352 | -96, | ||
4353 | -95, | ||
4354 | -93, | ||
4355 | -90, | ||
4356 | -90, | ||
4357 | -87, | ||
4358 | -89, | ||
4359 | -89, | ||
4360 | -90, | ||
4361 | -89, | ||
4362 | -90, | ||
4363 | -90, | ||
4364 | -89, | ||
4365 | -92, | ||
4366 | -94, | ||
4367 | -90, | ||
4368 | -91, | ||
4369 | -91, | ||
4370 | -91, | ||
4371 | -90, | ||
4372 | -89, | ||
4373 | -90, | ||
4374 | -88, | ||
4375 | -90, | ||
4376 | -92, | ||
4377 | -91, | ||
4378 | -92, | ||
4379 | -93, | ||
4380 | -94, | ||
4381 | -96, | ||
4382 | -94, | ||
4383 | -94, | ||
4384 | -95, | ||
4385 | -97, | ||
4386 | -113, | ||
4387 | 106, | ||
4388 | 71, | ||
4389 | 52, | ||
4390 | 48, | ||
4391 | 46, | ||
4392 | 45, | ||
4393 | 45, | ||
4394 | 41, | ||
4395 | 37, | ||
4396 | 33, | ||
4397 | 33, | ||
4398 | 35, | ||
4399 | 35, | ||
4400 | 37, | ||
4401 | 38, | ||
4402 | 37, | ||
4403 | 36, | ||
4404 | 35, | ||
4405 | 37, | ||
4406 | 37, | ||
4407 | 37, | ||
4408 | 37, | ||
4409 | 37, | ||
4410 | 37, | ||
4411 | 37, | ||
4412 | 38, | ||
4413 | 39, | ||
4414 | 39, | ||
4415 | 39, | ||
4416 | 40, | ||
4417 | 42, | ||
4418 | 40, | ||
4419 | 42, | ||
4420 | 50, | ||
4421 | 73, | ||
4422 | 114, | ||
4423 | -107, | ||
4424 | -96, | ||
4425 | -100, | ||
4426 | -97, | ||
4427 | -100, | ||
4428 | -103, | ||
4429 | -101, | ||
4430 | -97, | ||
4431 | -92, | ||
4432 | -89, | ||
4433 | -89, | ||
4434 | -87, | ||
4435 | -85, | ||
4436 | -88, | ||
4437 | -89, | ||
4438 | -87, | ||
4439 | -87, | ||
4440 | -88, | ||
4441 | -88, | ||
4442 | -89, | ||
4443 | -91, | ||
4444 | -92, | ||
4445 | -89, | ||
4446 | -86, | ||
4447 | -86, | ||
4448 | -84, | ||
4449 | -86, | ||
4450 | -86, | ||
4451 | -90, | ||
4452 | -94, | ||
4453 | -94, | ||
4454 | -93, | ||
4455 | -93, | ||
4456 | -94, | ||
4457 | -94, | ||
4458 | -93, | ||
4459 | -92, | ||
4460 | -94, | ||
4461 | -99, | ||
4462 | -115, | ||
4463 | 106, | ||
4464 | 72, | ||
4465 | 60, | ||
4466 | 59, | ||
4467 | 57, | ||
4468 | 55, | ||
4469 | 48, | ||
4470 | 42, | ||
4471 | 39, | ||
4472 | 37, | ||
4473 | 37, | ||
4474 | 39, | ||
4475 | 37, | ||
4476 | 37, | ||
4477 | 38, | ||
4478 | 37, | ||
4479 | 35, | ||
4480 | 33, | ||
4481 | 37, | ||
4482 | 37, | ||
4483 | 37, | ||
4484 | 37, | ||
4485 | 38, | ||
4486 | 45, | ||
4487 | 43, | ||
4488 | 42, | ||
4489 | 39, | ||
4490 | 36, | ||
4491 | 35, | ||
4492 | 34, | ||
4493 | 38, | ||
4494 | 40, | ||
4495 | 42, | ||
4496 | 50, | ||
4497 | 76, | ||
4498 | 115, | ||
4499 | -110, | ||
4500 | -97, | ||
4501 | -89, | ||
4502 | -88, | ||
4503 | -92, | ||
4504 | -95, | ||
4505 | -94, | ||
4506 | -91, | ||
4507 | -90, | ||
4508 | -88, | ||
4509 | -86, | ||
4510 | -87, | ||
4511 | -88, | ||
4512 | -87, | ||
4513 | -86, | ||
4514 | -88, | ||
4515 | -88, | ||
4516 | -88, | ||
4517 | -91, | ||
4518 | -90, | ||
4519 | -89, | ||
4520 | -90, | ||
4521 | -89, | ||
4522 | -89, | ||
4523 | -91, | ||
4524 | -90, | ||
4525 | -91, | ||
4526 | -90, | ||
4527 | -91, | ||
4528 | -93, | ||
4529 | -93, | ||
4530 | -93, | ||
4531 | -95, | ||
4532 | -97, | ||
4533 | -96, | ||
4534 | -92, | ||
4535 | -94, | ||
4536 | -97, | ||
4537 | -100, | ||
4538 | -118, | ||
4539 | 106, | ||
4540 | 72, | ||
4541 | 54, | ||
4542 | 50, | ||
4543 | 48, | ||
4544 | 47, | ||
4545 | 46, | ||
4546 | 44, | ||
4547 | 40, | ||
4548 | 36, | ||
4549 | 38, | ||
4550 | 40, | ||
4551 | 42, | ||
4552 | 41, | ||
4553 | 40, | ||
4554 | 38, | ||
4555 | 36, | ||
4556 | 38, | ||
4557 | 37, | ||
4558 | 37, | ||
4559 | 37, | ||
4560 | 37, | ||
4561 | 37, | ||
4562 | 39, | ||
4563 | 41, | ||
4564 | 41, | ||
4565 | 41, | ||
4566 | 40, | ||
4567 | 41, | ||
4568 | 45, | ||
4569 | 47, | ||
4570 | 47, | ||
4571 | 46, | ||
4572 | 53, | ||
4573 | 77, | ||
4574 | 119, | ||
4575 | -102, | ||
4576 | -90, | ||
4577 | -94, | ||
4578 | -89, | ||
4579 | -88, | ||
4580 | -94, | ||
4581 | -90, | ||
4582 | -87, | ||
4583 | -86, | ||
4584 | -85, | ||
4585 | -87, | ||
4586 | -87, | ||
4587 | -85, | ||
4588 | -86, | ||
4589 | -86, | ||
4590 | -87, | ||
4591 | -88, | ||
4592 | -90, | ||
4593 | -90, | ||
4594 | -91, | ||
4595 | -91, | ||
4596 | -91, | ||
4597 | -93, | ||
4598 | -91, | ||
4599 | -91, | ||
4600 | -92, | ||
4601 | -93, | ||
4602 | -93, | ||
4603 | -92, | ||
4604 | -94, | ||
4605 | -93, | ||
4606 | -90, | ||
4607 | -91, | ||
4608 | -92, | ||
4609 | -92, | ||
4610 | -91, | ||
4611 | -94, | ||
4612 | -96, | ||
4613 | -95, | ||
4614 | -105, | ||
4615 | 114, | ||
4616 | 74, | ||
4617 | 57, | ||
4618 | 51, | ||
4619 | 50, | ||
4620 | 53, | ||
4621 | 47, | ||
4622 | 42, | ||
4623 | 39, | ||
4624 | 37, | ||
4625 | 41, | ||
4626 | 46, | ||
4627 | 46, | ||
4628 | 43, | ||
4629 | 40, | ||
4630 | 35, | ||
4631 | 31, | ||
4632 | 29, | ||
4633 | 37, | ||
4634 | 37, | ||
4635 | 37, | ||
4636 | 37, | ||
4637 | 38, | ||
4638 | 39, | ||
4639 | 37, | ||
4640 | 38, | ||
4641 | 39, | ||
4642 | 40, | ||
4643 | 41, | ||
4644 | 40, | ||
4645 | 43, | ||
4646 | 46, | ||
4647 | 48, | ||
4648 | 57, | ||
4649 | 89, | ||
4650 | -126, | ||
4651 | -102, | ||
4652 | -97, | ||
4653 | -96, | ||
4654 | -93, | ||
4655 | -96, | ||
4656 | -92, | ||
4657 | -89, | ||
4658 | -89, | ||
4659 | -91, | ||
4660 | -94, | ||
4661 | -90, | ||
4662 | -91, | ||
4663 | -90, | ||
4664 | -88, | ||
4665 | -88, | ||
4666 | -90, | ||
4667 | -90, | ||
4668 | -90, | ||
4669 | -92, | ||
4670 | -93, | ||
4671 | -93, | ||
4672 | -92, | ||
4673 | -90, | ||
4674 | -89, | ||
4675 | -90, | ||
4676 | -89, | ||
4677 | -91, | ||
4678 | -93, | ||
4679 | -91, | ||
4680 | -92, | ||
4681 | -93, | ||
4682 | -92, | ||
4683 | -94, | ||
4684 | -95, | ||
4685 | -92, | ||
4686 | -92, | ||
4687 | -95, | ||
4688 | -99, | ||
4689 | -100, | ||
4690 | -116, | ||
4691 | 103, | ||
4692 | 70, | ||
4693 | 54, | ||
4694 | 52, | ||
4695 | 54, | ||
4696 | 49, | ||
4697 | 46, | ||
4698 | 43, | ||
4699 | 40, | ||
4700 | 36, | ||
4701 | 35, | ||
4702 | 39, | ||
4703 | 41, | ||
4704 | 37, | ||
4705 | 38, | ||
4706 | 38, | ||
4707 | 38, | ||
4708 | 37, | ||
4709 | 37, | ||
4710 | 37, | ||
4711 | 37, | ||
4712 | 38, | ||
4713 | 38, | ||
4714 | 42, | ||
4715 | 43, | ||
4716 | 41, | ||
4717 | 41, | ||
4718 | 41, | ||
4719 | 45, | ||
4720 | 45, | ||
4721 | 44, | ||
4722 | 44, | ||
4723 | 46, | ||
4724 | 56, | ||
4725 | 86, | ||
4726 | 119, | ||
4727 | -113, | ||
4728 | -96, | ||
4729 | -91, | ||
4730 | -78, | ||
4731 | -83, | ||
4732 | -90, | ||
4733 | -90, | ||
4734 | -90, | ||
4735 | -89, | ||
4736 | -91, | ||
4737 | -92, | ||
4738 | -92, | ||
4739 | -90, | ||
4740 | -88, | ||
4741 | -89, | ||
4742 | -91, | ||
4743 | -91, | ||
4744 | -90, | ||
4745 | -89, | ||
4746 | -89, | ||
4747 | -88, | ||
4748 | -88, | ||
4749 | -90, | ||
4750 | -90, | ||
4751 | -92, | ||
4752 | -92, | ||
4753 | -92, | ||
4754 | -90, | ||
4755 | -90, | ||
4756 | -94, | ||
4757 | -93, | ||
4758 | -91, | ||
4759 | -91, | ||
4760 | -92, | ||
4761 | -94, | ||
4762 | -91, | ||
4763 | -90, | ||
4764 | -95, | ||
4765 | -100, | ||
4766 | -121, | ||
4767 | 91, | ||
4768 | 58, | ||
4769 | 49, | ||
4770 | 49, | ||
4771 | 47, | ||
4772 | 45, | ||
4773 | 44, | ||
4774 | 44, | ||
4775 | 43, | ||
4776 | 41, | ||
4777 | 40, | ||
4778 | 40, | ||
4779 | 37, | ||
4780 | 35, | ||
4781 | 35, | ||
4782 | 36, | ||
4783 | 35, | ||
4784 | 34, | ||
4785 | 37, | ||
4786 | 37, | ||
4787 | 38, | ||
4788 | 38, | ||
4789 | 38, | ||
4790 | 42, | ||
4791 | 38, | ||
4792 | 37, | ||
4793 | 38, | ||
4794 | 37, | ||
4795 | 37, | ||
4796 | 40, | ||
4797 | 45, | ||
4798 | 45, | ||
4799 | 44, | ||
4800 | 54, | ||
4801 | 84, | ||
4802 | 123, | ||
4803 | -106, | ||
4804 | -96, | ||
4805 | -95, | ||
4806 | -96, | ||
4807 | -99, | ||
4808 | -97, | ||
4809 | -96, | ||
4810 | -92, | ||
4811 | -91, | ||
4812 | -92, | ||
4813 | -91, | ||
4814 | -92, | ||
4815 | -95, | ||
4816 | -94, | ||
4817 | -93, | ||
4818 | -92, | ||
4819 | -91, | ||
4820 | -89, | ||
4821 | -91, | ||
4822 | -92, | ||
4823 | -91, | ||
4824 | -91, | ||
4825 | -92, | ||
4826 | -94, | ||
4827 | -92, | ||
4828 | -88, | ||
4829 | -89, | ||
4830 | -91, | ||
4831 | -91, | ||
4832 | -93, | ||
4833 | -94, | ||
4834 | -92, | ||
4835 | -93, | ||
4836 | -92, | ||
4837 | -93, | ||
4838 | -92, | ||
4839 | -94, | ||
4840 | -95, | ||
4841 | -97, | ||
4842 | -118, | ||
4843 | 95, | ||
4844 | 55, | ||
4845 | 33, | ||
4846 | 34, | ||
4847 | 37, | ||
4848 | 37, | ||
4849 | 34, | ||
4850 | 33, | ||
4851 | 33, | ||
4852 | 31, | ||
4853 | 34, | ||
4854 | 36, | ||
4855 | 36, | ||
4856 | 34, | ||
4857 | 35, | ||
4858 | 36, | ||
4859 | 37, | ||
4860 | 38, | ||
4861 | 37, | ||
4862 | 37, | ||
4863 | 38, | ||
4864 | 38, | ||
4865 | 38, | ||
4866 | 40, | ||
4867 | 40, | ||
4868 | 42, | ||
4869 | 43, | ||
4870 | 43, | ||
4871 | 41, | ||
4872 | 41, | ||
4873 | 40, | ||
4874 | 43, | ||
4875 | 43, | ||
4876 | 50, | ||
4877 | 77, | ||
4878 | 116, | ||
4879 | -110, | ||
4880 | -84, | ||
4881 | -81, | ||
4882 | -87, | ||
4883 | -91, | ||
4884 | -94, | ||
4885 | -91, | ||
4886 | -88, | ||
4887 | -88, | ||
4888 | -89, | ||
4889 | -88, | ||
4890 | -88, | ||
4891 | -88, | ||
4892 | -85, | ||
4893 | -88, | ||
4894 | -89, | ||
4895 | -88, | ||
4896 | -88, | ||
4897 | -89, | ||
4898 | -92, | ||
4899 | -91, | ||
4900 | -93, | ||
4901 | -92, | ||
4902 | -92, | ||
4903 | -94, | ||
4904 | -94, | ||
4905 | -93, | ||
4906 | -93, | ||
4907 | -94, | ||
4908 | -96, | ||
4909 | -95, | ||
4910 | -91, | ||
4911 | -89, | ||
4912 | -88, | ||
4913 | -91, | ||
4914 | -92, | ||
4915 | -94, | ||
4916 | -98, | ||
4917 | -100, | ||
4918 | -122, | ||
4919 | 91, | ||
4920 | 57, | ||
4921 | 43, | ||
4922 | 46, | ||
4923 | 41, | ||
4924 | 33, | ||
4925 | 36, | ||
4926 | 36, | ||
4927 | 38, | ||
4928 | 39, | ||
4929 | 39, | ||
4930 | 38, | ||
4931 | 33, | ||
4932 | 33, | ||
4933 | 34, | ||
4934 | 34, | ||
4935 | 34, | ||
4936 | 35, | ||
4937 | 37, | ||
4938 | 38, | ||
4939 | 38, | ||
4940 | 38, | ||
4941 | 39, | ||
4942 | 44, | ||
4943 | 43, | ||
4944 | 44, | ||
4945 | 45, | ||
4946 | 44, | ||
4947 | 40, | ||
4948 | 40, | ||
4949 | 42, | ||
4950 | 40, | ||
4951 | 46, | ||
4952 | 60, | ||
4953 | 93, | ||
4954 | -127, | ||
4955 | -103, | ||
4956 | -88, | ||
4957 | -87, | ||
4958 | -94, | ||
4959 | -93, | ||
4960 | -96, | ||
4961 | -97, | ||
4962 | -94, | ||
4963 | -89, | ||
4964 | -90, | ||
4965 | -89, | ||
4966 | -88, | ||
4967 | -90, | ||
4968 | -90, | ||
4969 | -91, | ||
4970 | -92, | ||
4971 | -90, | ||
4972 | -90, | ||
4973 | -91, | ||
4974 | -93, | ||
4975 | -94, | ||
4976 | -94, | ||
4977 | -94, | ||
4978 | -94, | ||
4979 | -93, | ||
4980 | -91, | ||
4981 | -94, | ||
4982 | -96, | ||
4983 | -95, | ||
4984 | -98, | ||
4985 | -97, | ||
4986 | -94, | ||
4987 | -94, | ||
4988 | -95, | ||
4989 | -99, | ||
4990 | -98, | ||
4991 | -95, | ||
4992 | -95, | ||
4993 | -101, | ||
4994 | -121, | ||
4995 | 95, | ||
4996 | 58, | ||
4997 | 42, | ||
4998 | 39, | ||
4999 | 44, | ||
5000 | 44, | ||
5001 | 39, | ||
5002 | 37, | ||
5003 | 41, | ||
5004 | 42, | ||
5005 | 41, | ||
5006 | 41, | ||
5007 | 37, | ||
5008 | 33, | ||
5009 | 33, | ||
5010 | 32, | ||
5011 | 33, | ||
5012 | 33, | ||
5013 | 37, | ||
5014 | 38, | ||
5015 | 38, | ||
5016 | 38, | ||
5017 | 38, | ||
5018 | 39, | ||
5019 | 41, | ||
5020 | 44, | ||
5021 | 44, | ||
5022 | 47, | ||
5023 | 46, | ||
5024 | 44, | ||
5025 | 41, | ||
5026 | 39, | ||
5027 | 40, | ||
5028 | 52, | ||
5029 | 85, | ||
5030 | 127, | ||
5031 | -102, | ||
5032 | -88, | ||
5033 | -82, | ||
5034 | -87, | ||
5035 | -92, | ||
5036 | -94, | ||
5037 | -91, | ||
5038 | -90, | ||
5039 | -91, | ||
5040 | -92, | ||
5041 | -91, | ||
5042 | -89, | ||
5043 | -91, | ||
5044 | -92, | ||
5045 | -91, | ||
5046 | -89, | ||
5047 | -87, | ||
5048 | -86, | ||
5049 | -89, | ||
5050 | -91, | ||
5051 | -92, | ||
5052 | -93, | ||
5053 | -93, | ||
5054 | -92, | ||
5055 | -95, | ||
5056 | -98, | ||
5057 | -95, | ||
5058 | -90, | ||
5059 | -87, | ||
5060 | -90, | ||
5061 | -92, | ||
5062 | -93, | ||
5063 | -94, | ||
5064 | -98, | ||
5065 | -99, | ||
5066 | -97, | ||
5067 | -97, | ||
5068 | -96, | ||
5069 | -98, | ||
5070 | -114, | ||
5071 | 106, | ||
5072 | 65, | ||
5073 | 40, | ||
5074 | 42, | ||
5075 | 41, | ||
5076 | 39, | ||
5077 | 41, | ||
5078 | 41, | ||
5079 | 43, | ||
5080 | 46, | ||
5081 | 45, | ||
5082 | 43, | ||
5083 | 40, | ||
5084 | 38, | ||
5085 | 39, | ||
5086 | 40, | ||
5087 | 40, | ||
5088 | 39, | ||
5089 | 37, | ||
5090 | 38, | ||
5091 | 38, | ||
5092 | 38, | ||
5093 | 38, | ||
5094 | 34, | ||
5095 | 37, | ||
5096 | 39, | ||
5097 | 42, | ||
5098 | 42, | ||
5099 | 41, | ||
5100 | 42, | ||
5101 | 41, | ||
5102 | 42, | ||
5103 | 44, | ||
5104 | 58, | ||
5105 | 88, | ||
5106 | 124, | ||
5107 | -109, | ||
5108 | -98, | ||
5109 | -95, | ||
5110 | -96, | ||
5111 | -97, | ||
5112 | -95, | ||
5113 | -95, | ||
5114 | -95, | ||
5115 | -96, | ||
5116 | -94, | ||
5117 | -91, | ||
5118 | -90, | ||
5119 | -92, | ||
5120 | -91, | ||
5121 | -90, | ||
5122 | -90, | ||
5123 | -89, | ||
5124 | -87, | ||
5125 | -89, | ||
5126 | -92, | ||
5127 | -94, | ||
5128 | -95, | ||
5129 | -96, | ||
5130 | -95, | ||
5131 | -94, | ||
5132 | -94, | ||
5133 | -97, | ||
5134 | -98, | ||
5135 | -97, | ||
5136 | -97, | ||
5137 | -96, | ||
5138 | -95, | ||
5139 | -96, | ||
5140 | -95, | ||
5141 | -98, | ||
5142 | -99, | ||
5143 | -98, | ||
5144 | -97, | ||
5145 | -100, | ||
5146 | -121, | ||
5147 | 90, | ||
5148 | 52, | ||
5149 | 37, | ||
5150 | 36, | ||
5151 | 39, | ||
5152 | 41, | ||
5153 | 39, | ||
5154 | 39, | ||
5155 | 40, | ||
5156 | 38, | ||
5157 | 35, | ||
5158 | 33, | ||
5159 | 34, | ||
5160 | 35, | ||
5161 | 34, | ||
5162 | 36, | ||
5163 | 36, | ||
5164 | 35, | ||
5165 | 37, | ||
5166 | 38, | ||
5167 | 38, | ||
5168 | 38, | ||
5169 | 38, | ||
5170 | 40, | ||
5171 | 39, | ||
5172 | 40, | ||
5173 | 39, | ||
5174 | 40, | ||
5175 | 44, | ||
5176 | 46, | ||
5177 | 49, | ||
5178 | 53, | ||
5179 | 53, | ||
5180 | 53, | ||
5181 | 73, | ||
5182 | 108, | ||
5183 | -114, | ||
5184 | -96, | ||
5185 | -96, | ||
5186 | -99, | ||
5187 | -100, | ||
5188 | -99, | ||
5189 | -96, | ||
5190 | -94, | ||
5191 | -95, | ||
5192 | -93, | ||
5193 | -89, | ||
5194 | -84, | ||
5195 | -88, | ||
5196 | -91, | ||
5197 | -91, | ||
5198 | -93, | ||
5199 | -97, | ||
5200 | -97, | ||
5201 | -98, | ||
5202 | -97, | ||
5203 | -93, | ||
5204 | -92, | ||
5205 | -92, | ||
5206 | -92, | ||
5207 | -95, | ||
5208 | -95, | ||
5209 | -94, | ||
5210 | -92, | ||
5211 | -91, | ||
5212 | -94, | ||
5213 | -96, | ||
5214 | -96, | ||
5215 | -94, | ||
5216 | -94, | ||
5217 | -94, | ||
5218 | -92, | ||
5219 | -93, | ||
5220 | -94, | ||
5221 | -96, | ||
5222 | -115, | ||
5223 | 103, | ||
5224 | 64, | ||
5225 | 36, | ||
5226 | 38, | ||
5227 | 45, | ||
5228 | 42, | ||
5229 | 44, | ||
5230 | 41, | ||
5231 | 41, | ||
5232 | 41, | ||
5233 | 37, | ||
5234 | 38, | ||
5235 | 42, | ||
5236 | 45, | ||
5237 | 46, | ||
5238 | 43, | ||
5239 | 39, | ||
5240 | 33, | ||
5241 | 37, | ||
5242 | 38, | ||
5243 | 38, | ||
5244 | 38, | ||
5245 | 38, | ||
5246 | 42, | ||
5247 | 42, | ||
5248 | 38, | ||
5249 | 36, | ||
5250 | 35, | ||
5251 | 34, | ||
5252 | 36, | ||
5253 | 40, | ||
5254 | 39, | ||
5255 | 39, | ||
5256 | 49, | ||
5257 | 82, | ||
5258 | -123, | ||
5259 | -95, | ||
5260 | -91, | ||
5261 | -87, | ||
5262 | -89, | ||
5263 | -93, | ||
5264 | -94, | ||
5265 | -95, | ||
5266 | -94, | ||
5267 | -95, | ||
5268 | -94, | ||
5269 | -91, | ||
5270 | -92, | ||
5271 | -93, | ||
5272 | -92, | ||
5273 | -92, | ||
5274 | -94, | ||
5275 | -95, | ||
5276 | -95, | ||
5277 | -96, | ||
5278 | -94, | ||
5279 | -94, | ||
5280 | -94, | ||
5281 | -93, | ||
5282 | -94, | ||
5283 | -92, | ||
5284 | -90, | ||
5285 | -92, | ||
5286 | -90, | ||
5287 | -91, | ||
5288 | -93, | ||
5289 | -92, | ||
5290 | -92, | ||
5291 | -91, | ||
5292 | -91, | ||
5293 | -93, | ||
5294 | -93, | ||
5295 | -93, | ||
5296 | -93, | ||
5297 | -98, | ||
5298 | -122, | ||
5299 | 90, | ||
5300 | 54, | ||
5301 | 40, | ||
5302 | 40, | ||
5303 | 41, | ||
5304 | 40, | ||
5305 | 38, | ||
5306 | 36, | ||
5307 | 36, | ||
5308 | 36, | ||
5309 | 39, | ||
5310 | 42, | ||
5311 | 43, | ||
5312 | 41, | ||
5313 | 38, | ||
5314 | 38, | ||
5315 | 36, | ||
5316 | 36, | ||
5317 | 37, | ||
5318 | 38, | ||
5319 | 38, | ||
5320 | 38, | ||
5321 | 38, | ||
5322 | 41, | ||
5323 | 40, | ||
5324 | 37, | ||
5325 | 36, | ||
5326 | 38, | ||
5327 | 42, | ||
5328 | 42, | ||
5329 | 41, | ||
5330 | 44, | ||
5331 | 41, | ||
5332 | 48, | ||
5333 | 73, | ||
5334 | 116, | ||
5335 | -103, | ||
5336 | -88, | ||
5337 | -87, | ||
5338 | -92, | ||
5339 | -96, | ||
5340 | -95, | ||
5341 | -93, | ||
5342 | -91, | ||
5343 | -87, | ||
5344 | -85, | ||
5345 | -88, | ||
5346 | -85, | ||
5347 | -89, | ||
5348 | -93, | ||
5349 | -91, | ||
5350 | -88, | ||
5351 | -87, | ||
5352 | -85, | ||
5353 | -87, | ||
5354 | -89, | ||
5355 | -91, | ||
5356 | -93, | ||
5357 | -92, | ||
5358 | -92, | ||
5359 | -92, | ||
5360 | -91, | ||
5361 | -94, | ||
5362 | -90, | ||
5363 | -91, | ||
5364 | -93, | ||
5365 | -93, | ||
5366 | -94, | ||
5367 | -92, | ||
5368 | -92, | ||
5369 | -95, | ||
5370 | -93, | ||
5371 | -92, | ||
5372 | -93, | ||
5373 | -96, | ||
5374 | -116, | ||
5375 | 104, | ||
5376 | 66, | ||
5377 | 40, | ||
5378 | 39, | ||
5379 | 37, | ||
5380 | 39, | ||
5381 | 42, | ||
5382 | 43, | ||
5383 | 43, | ||
5384 | 40, | ||
5385 | 38, | ||
5386 | 37, | ||
5387 | 36, | ||
5388 | 36, | ||
5389 | 34, | ||
5390 | 34, | ||
5391 | 35, | ||
5392 | 35, | ||
5393 | 37, | ||
5394 | 38, | ||
5395 | 38, | ||
5396 | 38, | ||
5397 | 38, | ||
5398 | 41, | ||
5399 | 41, | ||
5400 | 38, | ||
5401 | 37, | ||
5402 | 36, | ||
5403 | 35, | ||
5404 | 37, | ||
5405 | 42, | ||
5406 | 44, | ||
5407 | 46, | ||
5408 | 58, | ||
5409 | 91, | ||
5410 | -120, | ||
5411 | -98, | ||
5412 | -99, | ||
5413 | -94, | ||
5414 | -89, | ||
5415 | -93, | ||
5416 | -92, | ||
5417 | -92, | ||
5418 | -93, | ||
5419 | -93, | ||
5420 | -93, | ||
5421 | -91, | ||
5422 | -89, | ||
5423 | -88, | ||
5424 | -85, | ||
5425 | -86, | ||
5426 | -88, | ||
5427 | -89, | ||
5428 | -87, | ||
5429 | -89, | ||
5430 | -88, | ||
5431 | -90, | ||
5432 | -94, | ||
5433 | -93, | ||
5434 | -94, | ||
5435 | -94, | ||
5436 | -91, | ||
5437 | -90, | ||
5438 | -86, | ||
5439 | -90, | ||
5440 | -94, | ||
5441 | -94, | ||
5442 | -96, | ||
5443 | -95, | ||
5444 | -95, | ||
5445 | -94, | ||
5446 | -93, | ||
5447 | -92, | ||
5448 | -91, | ||
5449 | -97, | ||
5450 | -123, | ||
5451 | 91, | ||
5452 | 58, | ||
5453 | 48, | ||
5454 | 52, | ||
5455 | 48, | ||
5456 | 44, | ||
5457 | 43, | ||
5458 | 43, | ||
5459 | 41, | ||
5460 | 36, | ||
5461 | 38, | ||
5462 | 42, | ||
5463 | 43, | ||
5464 | 39, | ||
5465 | 37, | ||
5466 | 34, | ||
5467 | 31, | ||
5468 | 32, | ||
5469 | 37, | ||
5470 | 38, | ||
5471 | 38, | ||
5472 | 38, | ||
5473 | 38, | ||
5474 | 41, | ||
5475 | 40, | ||
5476 | 37, | ||
5477 | 41, | ||
5478 | 42, | ||
5479 | 41, | ||
5480 | 43, | ||
5481 | 41, | ||
5482 | 39, | ||
5483 | 45, | ||
5484 | 60, | ||
5485 | 92, | ||
5486 | -123, | ||
5487 | -102, | ||
5488 | -102, | ||
5489 | -99, | ||
5490 | -99, | ||
5491 | -97, | ||
5492 | -92, | ||
5493 | -93, | ||
5494 | -93, | ||
5495 | -94, | ||
5496 | -94, | ||
5497 | -96, | ||
5498 | -93, | ||
5499 | -89, | ||
5500 | -92, | ||
5501 | -91, | ||
5502 | -90, | ||
5503 | -89, | ||
5504 | -90, | ||
5505 | -88, | ||
5506 | -90, | ||
5507 | -90, | ||
5508 | -91, | ||
5509 | -92, | ||
5510 | -92, | ||
5511 | -92, | ||
5512 | -92, | ||
5513 | -94, | ||
5514 | -90, | ||
5515 | -90, | ||
5516 | -90, | ||
5517 | -91, | ||
5518 | -91, | ||
5519 | -91, | ||
5520 | -93, | ||
5521 | -94, | ||
5522 | -91, | ||
5523 | -92, | ||
5524 | -95, | ||
5525 | -103, | ||
5526 | -127, | ||
5527 | 92, | ||
5528 | 59, | ||
5529 | 49, | ||
5530 | 56, | ||
5531 | 53, | ||
5532 | 55, | ||
5533 | 51, | ||
5534 | 50, | ||
5535 | 48, | ||
5536 | 43, | ||
5537 | 39, | ||
5538 | 36, | ||
5539 | 35, | ||
5540 | 35, | ||
5541 | 34, | ||
5542 | 33, | ||
5543 | 34, | ||
5544 | 37, | ||
5545 | 37, | ||
5546 | 38, | ||
5547 | 38, | ||
5548 | 38, | ||
5549 | 38, | ||
5550 | 38, | ||
5551 | 39, | ||
5552 | 38, | ||
5553 | 40, | ||
5554 | 41, | ||
5555 | 40, | ||
5556 | 42, | ||
5557 | 45, | ||
5558 | 45, | ||
5559 | 47, | ||
5560 | 64, | ||
5561 | 100, | ||
5562 | -118, | ||
5563 | -104, | ||
5564 | -102, | ||
5565 | -93, | ||
5566 | -95, | ||
5567 | -92, | ||
5568 | -96, | ||
5569 | -97, | ||
5570 | -96, | ||
5571 | -96, | ||
5572 | -94, | ||
5573 | -92, | ||
5574 | -89, | ||
5575 | -90, | ||
5576 | -93, | ||
5577 | -93, | ||
5578 | -96, | ||
5579 | -97, | ||
5580 | -94, | ||
5581 | -96, | ||
5582 | -96, | ||
5583 | -97, | ||
5584 | -98, | ||
5585 | -97, | ||
5586 | -96, | ||
5587 | -94, | ||
5588 | -94, | ||
5589 | -95, | ||
5590 | -92, | ||
5591 | -95, | ||
5592 | -94, | ||
5593 | -94, | ||
5594 | -95, | ||
5595 | -94, | ||
5596 | -95, | ||
5597 | -96, | ||
5598 | -95, | ||
5599 | -94, | ||
5600 | -94, | ||
5601 | -97, | ||
5602 | -118, | ||
5603 | 102, | ||
5604 | 70, | ||
5605 | 53, | ||
5606 | 53, | ||
5607 | 55, | ||
5608 | 52, | ||
5609 | 54, | ||
5610 | 52, | ||
5611 | 47, | ||
5612 | 41, | ||
5613 | 38, | ||
5614 | 39, | ||
5615 | 40, | ||
5616 | 36, | ||
5617 | 37, | ||
5618 | 37, | ||
5619 | 35, | ||
5620 | 36, | ||
5621 | 37, | ||
5622 | 38, | ||
5623 | 38, | ||
5624 | 38, | ||
5625 | 38, | ||
5626 | 40, | ||
5627 | 39, | ||
5628 | 40, | ||
5629 | 41, | ||
5630 | 39, | ||
5631 | 33, | ||
5632 | 33, | ||
5633 | 36, | ||
5634 | 40, | ||
5635 | 51, | ||
5636 | 64, | ||
5637 | 84, | ||
5638 | 125, | ||
5639 | -102, | ||
5640 | -87, | ||
5641 | -81, | ||
5642 | -92, | ||
5643 | -98, | ||
5644 | -101, | ||
5645 | -98, | ||
5646 | -97, | ||
5647 | -95, | ||
5648 | -95, | ||
5649 | -95, | ||
5650 | -94, | ||
5651 | -94, | ||
5652 | -98, | ||
5653 | -97, | ||
5654 | -94, | ||
5655 | -93, | ||
5656 | -93, | ||
5657 | -93, | ||
5658 | -92, | ||
5659 | -91, | ||
5660 | -92, | ||
5661 | -93, | ||
5662 | -93, | ||
5663 | -93, | ||
5664 | -93, | ||
5665 | -95, | ||
5666 | -94, | ||
5667 | -94, | ||
5668 | -96, | ||
5669 | -94, | ||
5670 | -91, | ||
5671 | -91, | ||
5672 | -95, | ||
5673 | -94, | ||
5674 | -95, | ||
5675 | -98, | ||
5676 | -98, | ||
5677 | -102, | ||
5678 | -119, | ||
5679 | 101, | ||
5680 | 71, | ||
5681 | 55, | ||
5682 | 47, | ||
5683 | 47, | ||
5684 | 48, | ||
5685 | 51, | ||
5686 | 52, | ||
5687 | 45, | ||
5688 | 38, | ||
5689 | 34, | ||
5690 | 30, | ||
5691 | 34, | ||
5692 | 34, | ||
5693 | 32, | ||
5694 | 34, | ||
5695 | 34, | ||
5696 | 37, | ||
5697 | 37, | ||
5698 | 37, | ||
5699 | 38, | ||
5700 | 38, | ||
5701 | 38, | ||
5702 | 41, | ||
5703 | 42, | ||
5704 | 41, | ||
5705 | 39, | ||
5706 | 41, | ||
5707 | 39, | ||
5708 | 37, | ||
5709 | 37, | ||
5710 | 37, | ||
5711 | 44, | ||
5712 | 66, | ||
5713 | 105, | ||
5714 | -118, | ||
5715 | -105, | ||
5716 | -107, | ||
5717 | -106, | ||
5718 | -102, | ||
5719 | -101, | ||
5720 | -102, | ||
5721 | -100, | ||
5722 | -101, | ||
5723 | -101, | ||
5724 | -99, | ||
5725 | -98, | ||
5726 | -96, | ||
5727 | -96, | ||
5728 | -98, | ||
5729 | -94, | ||
5730 | -94, | ||
5731 | -95, | ||
5732 | -94, | ||
5733 | -96, | ||
5734 | -97, | ||
5735 | -97, | ||
5736 | -96, | ||
5737 | -96, | ||
5738 | -95, | ||
5739 | -96, | ||
5740 | -94, | ||
5741 | -96, | ||
5742 | -99, | ||
5743 | -95, | ||
5744 | -96, | ||
5745 | -98, | ||
5746 | -100, | ||
5747 | -98, | ||
5748 | -97, | ||
5749 | -97, | ||
5750 | -94, | ||
5751 | -93, | ||
5752 | -97, | ||
5753 | -107, | ||
5754 | 123, | ||
5755 | 83, | ||
5756 | 54, | ||
5757 | 41, | ||
5758 | 45, | ||
5759 | 48, | ||
5760 | 45, | ||
5761 | 46, | ||
5762 | 44, | ||
5763 | 43, | ||
5764 | 40, | ||
5765 | 36, | ||
5766 | 39, | ||
5767 | 36, | ||
5768 | 37, | ||
5769 | 38, | ||
5770 | 40, | ||
5771 | 41, | ||
5772 | 40, | ||
5773 | 37, | ||
5774 | 37, | ||
5775 | 38, | ||
5776 | 38, | ||
5777 | 38, | ||
5778 | 40, | ||
5779 | 40, | ||
5780 | 43, | ||
5781 | 43, | ||
5782 | 41, | ||
5783 | 40, | ||
5784 | 42, | ||
5785 | 42, | ||
5786 | 40, | ||
5787 | 44, | ||
5788 | 61, | ||
5789 | 90, | ||
5790 | 121, | ||
5791 | -122, | ||
5792 | -121, | ||
5793 | -117, | ||
5794 | -113, | ||
5795 | -111, | ||
5796 | -108, | ||
5797 | -104, | ||
5798 | -104, | ||
5799 | -105, | ||
5800 | -106, | ||
5801 | -106, | ||
5802 | -102, | ||
5803 | -103, | ||
5804 | -106, | ||
5805 | -106, | ||
5806 | -107, | ||
5807 | -106, | ||
5808 | -106, | ||
5809 | -104, | ||
5810 | -103, | ||
5811 | -101, | ||
5812 | -100, | ||
5813 | -99, | ||
5814 | -98, | ||
5815 | -99, | ||
5816 | -100, | ||
5817 | -101, | ||
5818 | -98, | ||
5819 | -95, | ||
5820 | -94, | ||
5821 | -94, | ||
5822 | -93, | ||
5823 | -95, | ||
5824 | -95, | ||
5825 | -97, | ||
5826 | -97, | ||
5827 | -98, | ||
5828 | -97, | ||
5829 | -97, | ||
5830 | -115, | ||
5831 | 98, | ||
5832 | 58, | ||
5833 | 40, | ||
5834 | 42, | ||
5835 | 46, | ||
5836 | 46, | ||
5837 | 47, | ||
5838 | 48, | ||
5839 | 45, | ||
5840 | 43, | ||
5841 | 42, | ||
5842 | 40, | ||
5843 | 39, | ||
5844 | 36, | ||
5845 | 34, | ||
5846 | 35, | ||
5847 | 36, | ||
5848 | 38, | ||
5849 | 37, | ||
5850 | 37, | ||
5851 | 37, | ||
5852 | 38, | ||
5853 | 38, | ||
5854 | 37, | ||
5855 | 41, | ||
5856 | 41, | ||
5857 | 42, | ||
5858 | 43, | ||
5859 | 40, | ||
5860 | 41, | ||
5861 | 40, | ||
5862 | 40, | ||
5863 | 42, | ||
5864 | 51, | ||
5865 | 68, | ||
5866 | 78, | ||
5867 | 81, | ||
5868 | 81, | ||
5869 | 81, | ||
5870 | 85, | ||
5871 | 85, | ||
5872 | 87, | ||
5873 | 88, | ||
5874 | 89, | ||
5875 | 93, | ||
5876 | 96, | ||
5877 | 97, | ||
5878 | 100, | ||
5879 | 98, | ||
5880 | 101, | ||
5881 | 105, | ||
5882 | 109, | ||
5883 | 110, | ||
5884 | 113, | ||
5885 | 116, | ||
5886 | 116, | ||
5887 | 117, | ||
5888 | 118, | ||
5889 | 119, | ||
5890 | 120, | ||
5891 | 121, | ||
5892 | 126, | ||
5893 | -126, | ||
5894 | -126, | ||
5895 | -123, | ||
5896 | -120, | ||
5897 | -118, | ||
5898 | -117, | ||
5899 | -115, | ||
5900 | -114, | ||
5901 | -113, | ||
5902 | -110, | ||
5903 | -106, | ||
5904 | -108, | ||
5905 | -115, | ||
5906 | 117, | ||
5907 | 81, | ||
5908 | 52, | ||
5909 | 40, | ||
5910 | 42, | ||
5911 | 47, | ||
5912 | 48, | ||
5913 | 48, | ||
5914 | 45, | ||
5915 | 42, | ||
5916 | 38, | ||
5917 | 34, | ||
5918 | 37, | ||
5919 | 34, | ||
5920 | 36, | ||
5921 | 37, | ||
5922 | 39, | ||
5923 | 39, | ||
5924 | 38, | ||
5925 | 37, | ||
5926 | 37, | ||
5927 | 37, | ||
5928 | 38, | ||
5929 | 38, | ||
5930 | 38, | ||
5931 | 37, | ||
5932 | 39, | ||
5933 | 41, | ||
5934 | 39, | ||
5935 | 42, | ||
5936 | 42, | ||
5937 | 40, | ||
5938 | 41, | ||
5939 | 43, | ||
5940 | 53, | ||
5941 | 69, | ||
5942 | 71, | ||
5943 | 66, | ||
5944 | 65, | ||
5945 | 61, | ||
5946 | 57, | ||
5947 | 57, | ||
5948 | 58, | ||
5949 | 60, | ||
5950 | 62, | ||
5951 | 65, | ||
5952 | 64, | ||
5953 | 68, | ||
5954 | 76, | ||
5955 | 71, | ||
5956 | 67, | ||
5957 | 68, | ||
5958 | 69, | ||
5959 | 75, | ||
5960 | 82, | ||
5961 | 87, | ||
5962 | 85, | ||
5963 | 85, | ||
5964 | 86, | ||
5965 | 87, | ||
5966 | 92, | ||
5967 | 94, | ||
5968 | 94, | ||
5969 | 96, | ||
5970 | 90, | ||
5971 | 91, | ||
5972 | 95, | ||
5973 | 101, | ||
5974 | 109, | ||
5975 | 109, | ||
5976 | 114, | ||
5977 | 115, | ||
5978 | 119, | ||
5979 | 123, | ||
5980 | 121, | ||
5981 | 117, | ||
5982 | 104, | ||
5983 | 77, | ||
5984 | 50, | ||
5985 | 37, | ||
5986 | 32, | ||
5987 | 30, | ||
5988 | 24, | ||
5989 | 27, | ||
5990 | 35, | ||
5991 | 39, | ||
5992 | 39, | ||
5993 | 36, | ||
5994 | 38, | ||
5995 | 36, | ||
5996 | 37, | ||
5997 | 36, | ||
5998 | 34, | ||
5999 | 33, | ||
6000 | 32, | ||
6001 | 37, | ||
6002 | 37, | ||
6003 | 37, | ||
6004 | 37, | ||
6005 | 38, | ||
6006 | 37, | ||
6007 | 41, | ||
6008 | 40, | ||
6009 | 41, | ||
6010 | 43, | ||
6011 | 41, | ||
6012 | 39, | ||
6013 | 38, | ||
6014 | 40, | ||
6015 | 43, | ||
6016 | 49, | ||
6017 | 53, | ||
6018 | 52, | ||
6019 | 50, | ||
6020 | 50, | ||
6021 | 51, | ||
6022 | 51, | ||
6023 | 52, | ||
6024 | 54, | ||
6025 | 49, | ||
6026 | 46, | ||
6027 | 50, | ||
6028 | 48, | ||
6029 | 47, | ||
6030 | 51, | ||
6031 | 51, | ||
6032 | 50, | ||
6033 | 48, | ||
6034 | 50, | ||
6035 | 50, | ||
6036 | 50, | ||
6037 | 50, | ||
6038 | 50, | ||
6039 | 51, | ||
6040 | 51, | ||
6041 | 52, | ||
6042 | 52, | ||
6043 | 56, | ||
6044 | 57, | ||
6045 | 58, | ||
6046 | 59, | ||
6047 | 57, | ||
6048 | 56, | ||
6049 | 56, | ||
6050 | 55, | ||
6051 | 52, | ||
6052 | 53, | ||
6053 | 56, | ||
6054 | 59, | ||
6055 | 60, | ||
6056 | 61, | ||
6057 | 62, | ||
6058 | 59, | ||
6059 | 54, | ||
6060 | 54, | ||
6061 | 51, | ||
6062 | 47, | ||
6063 | 50, | ||
6064 | 47, | ||
6065 | 45, | ||
6066 | 44, | ||
6067 | 43, | ||
6068 | 40, | ||
6069 | 37, | ||
6070 | 37, | ||
6071 | 37, | ||
6072 | 39, | ||
6073 | 43, | ||
6074 | 45, | ||
6075 | 43, | ||
6076 | 39, | ||
6077 | 36, | ||
6078 | 37, | ||
6079 | 37, | ||
6080 | 37, | ||
6081 | 39, | ||
6082 | 46, | ||
6083 | 41, | ||
6084 | 38, | ||
6085 | 40, | ||
6086 | 40, | ||
6087 | 39, | ||
6088 | 40, | ||
6089 | 40, | ||
6090 | 38, | ||
6091 | 43, | ||
6092 | 49, | ||
6093 | 54, | ||
6094 | 54, | ||
6095 | 52, | ||
6096 | 52, | ||
6097 | 49, | ||
6098 | 47, | ||
6099 | 47, | ||
6100 | 50, | ||
6101 | 48, | ||
6102 | 49, | ||
6103 | 52, | ||
6104 | 49, | ||
6105 | 50, | ||
6106 | 51, | ||
6107 | 48, | ||
6108 | 48, | ||
6109 | 49, | ||
6110 | 49, | ||
6111 | 49, | ||
6112 | 51, | ||
6113 | 50, | ||
6114 | 46, | ||
6115 | 46, | ||
6116 | 50, | ||
6117 | 49, | ||
6118 | 52, | ||
6119 | 52, | ||
6120 | 47, | ||
6121 | 48, | ||
6122 | 51, | ||
6123 | 52, | ||
6124 | 48, | ||
6125 | 50, | ||
6126 | 52, | ||
6127 | 47, | ||
6128 | 45, | ||
6129 | 46, | ||
6130 | 45, | ||
6131 | 48, | ||
6132 | 49, | ||
6133 | 50, | ||
6134 | 48, | ||
6135 | 44, | ||
6136 | 45, | ||
6137 | 48, | ||
6138 | 50, | ||
6139 | 47, | ||
6140 | 43, | ||
6141 | 44, | ||
6142 | 44, | ||
6143 | 44, | ||
6144 | 43, | ||
6145 | 43, | ||
6146 | 43, | ||
6147 | 41, | ||
6148 | 41, | ||
6149 | 41, | ||
6150 | 38, | ||
6151 | 36, | ||
6152 | 36, | ||
6153 | 36, | ||
6154 | 37, | ||
6155 | 37, | ||
6156 | 37, | ||
6157 | 37, | ||
6158 | 41, | ||
6159 | 41, | ||
6160 | 39, | ||
6161 | 38, | ||
6162 | 38, | ||
6163 | 36, | ||
6164 | 36, | ||
6165 | 37, | ||
6166 | 39, | ||
6167 | 44, | ||
6168 | 48, | ||
6169 | 50, | ||
6170 | 50, | ||
6171 | 50, | ||
6172 | 52, | ||
6173 | 52, | ||
6174 | 52, | ||
6175 | 52, | ||
6176 | 53, | ||
6177 | 50, | ||
6178 | 46, | ||
6179 | 46, | ||
6180 | 46, | ||
6181 | 42, | ||
6182 | 43, | ||
6183 | 46, | ||
6184 | 45, | ||
6185 | 44, | ||
6186 | 46, | ||
6187 | 46, | ||
6188 | 45, | ||
6189 | 43, | ||
6190 | 45, | ||
6191 | 46, | ||
6192 | 50, | ||
6193 | 51, | ||
6194 | 50, | ||
6195 | 51, | ||
6196 | 50, | ||
6197 | 49, | ||
6198 | 51, | ||
6199 | 51, | ||
6200 | 50, | ||
6201 | 51, | ||
6202 | 50, | ||
6203 | 49, | ||
6204 | 47, | ||
6205 | 49, | ||
6206 | 49, | ||
6207 | 50, | ||
6208 | 52, | ||
6209 | 50, | ||
6210 | 48, | ||
6211 | 45, | ||
6212 | 46, | ||
6213 | 47, | ||
6214 | 47, | ||
6215 | 48, | ||
6216 | 47, | ||
6217 | 45, | ||
6218 | 44, | ||
6219 | 45, | ||
6220 | 42, | ||
6221 | 38, | ||
6222 | 37, | ||
6223 | 35, | ||
6224 | 31, | ||
6225 | 29, | ||
6226 | 31, | ||
6227 | 33, | ||
6228 | 35, | ||
6229 | 36, | ||
6230 | 36, | ||
6231 | 37, | ||
6232 | 37, | ||
6233 | 37, | ||
6234 | 39, | ||
6235 | 39, | ||
6236 | 40, | ||
6237 | 41, | ||
6238 | 42, | ||
6239 | 39, | ||
6240 | 37, | ||
6241 | 37, | ||
6242 | 36, | ||
6243 | 40, | ||
6244 | 44, | ||
6245 | 48, | ||
6246 | 47, | ||
6247 | 45, | ||
6248 | 46, | ||
6249 | 49, | ||
6250 | 49, | ||
6251 | 49, | ||
6252 | 50, | ||
6253 | 47, | ||
6254 | 48, | ||
6255 | 49, | ||
6256 | 48, | ||
6257 | 45, | ||
6258 | 47, | ||
6259 | 47, | ||
6260 | 49, | ||
6261 | 51, | ||
6262 | 53, | ||
6263 | 51, | ||
6264 | 49, | ||
6265 | 48, | ||
6266 | 46, | ||
6267 | 44, | ||
6268 | 44, | ||
6269 | 43, | ||
6270 | 44, | ||
6271 | 46, | ||
6272 | 48, | ||
6273 | 49, | ||
6274 | 51, | ||
6275 | 51, | ||
6276 | 50, | ||
6277 | 49, | ||
6278 | 49, | ||
6279 | 48, | ||
6280 | 50, | ||
6281 | 54, | ||
6282 | 56, | ||
6283 | 49, | ||
6284 | 44, | ||
6285 | 43, | ||
6286 | 44, | ||
6287 | 44, | ||
6288 | 45, | ||
6289 | 45, | ||
6290 | 44, | ||
6291 | 45, | ||
6292 | 42, | ||
6293 | 40, | ||
6294 | 41, | ||
6295 | 42, | ||
6296 | 41, | ||
6297 | 38, | ||
6298 | 36, | ||
6299 | 37, | ||
6300 | 41, | ||
6301 | 46, | ||
6302 | 43, | ||
6303 | 40, | ||
6304 | 37, | ||
6305 | 36, | ||
6306 | 36, | ||
6307 | 37, | ||
6308 | 37, | ||
6309 | 37, | ||
6310 | 40, | ||
6311 | 41, | ||
6312 | 40, | ||
6313 | 39, | ||
6314 | 39, | ||
6315 | 36, | ||
6316 | 35, | ||
6317 | 37, | ||
6318 | 38, | ||
6319 | 41, | ||
6320 | 43, | ||
6321 | 45, | ||
6322 | 46, | ||
6323 | 46, | ||
6324 | 46, | ||
6325 | 47, | ||
6326 | 45, | ||
6327 | 41, | ||
6328 | 45, | ||
6329 | 46, | ||
6330 | 47, | ||
6331 | 48, | ||
6332 | 47, | ||
6333 | 45, | ||
6334 | 44, | ||
6335 | 45, | ||
6336 | 47, | ||
6337 | 46, | ||
6338 | 46, | ||
6339 | 46, | ||
6340 | 45, | ||
6341 | 46, | ||
6342 | 45, | ||
6343 | 43, | ||
6344 | 44, | ||
6345 | 44, | ||
6346 | 46, | ||
6347 | 51, | ||
6348 | 51, | ||
6349 | 47, | ||
6350 | 49, | ||
6351 | 46, | ||
6352 | 44, | ||
6353 | 43, | ||
6354 | 39, | ||
6355 | 39, | ||
6356 | 42, | ||
6357 | 46, | ||
6358 | 46, | ||
6359 | 46, | ||
6360 | 44, | ||
6361 | 43, | ||
6362 | 42, | ||
6363 | 42, | ||
6364 | 44, | ||
6365 | 44, | ||
6366 | 46, | ||
6367 | 46, | ||
6368 | 47, | ||
6369 | 45, | ||
6370 | 40, | ||
6371 | 37, | ||
6372 | 33, | ||
6373 | 35, | ||
6374 | 40, | ||
6375 | 45, | ||
6376 | 42, | ||
6377 | 42, | ||
6378 | 42, | ||
6379 | 38, | ||
6380 | 36, | ||
6381 | 36, | ||
6382 | 36, | ||
6383 | 36, | ||
6384 | 37, | ||
6385 | 38, | ||
6386 | 42, | ||
6387 | 42, | ||
6388 | 40, | ||
6389 | 39, | ||
6390 | 38, | ||
6391 | 38, | ||
6392 | 39, | ||
6393 | 40, | ||
6394 | 39, | ||
6395 | 38, | ||
6396 | 40, | ||
6397 | 40, | ||
6398 | 38, | ||
6399 | 37, | ||
6400 | 38, | ||
6401 | 40, | ||
6402 | 40, | ||
6403 | 38, | ||
6404 | 39, | ||
6405 | 39, | ||
6406 | 40, | ||
6407 | 39, | ||
6408 | 36, | ||
6409 | 34, | ||
6410 | 37, | ||
6411 | 40, | ||
6412 | 40, | ||
6413 | 41, | ||
6414 | 40, | ||
6415 | 38, | ||
6416 | 35, | ||
6417 | 36, | ||
6418 | 40, | ||
6419 | 39, | ||
6420 | 38, | ||
6421 | 36, | ||
6422 | 36, | ||
6423 | 37, | ||
6424 | 39, | ||
6425 | 40, | ||
6426 | 40, | ||
6427 | 40, | ||
6428 | 41, | ||
6429 | 42, | ||
6430 | 42, | ||
6431 | 42, | ||
6432 | 42, | ||
6433 | 40, | ||
6434 | 41, | ||
6435 | 41, | ||
6436 | 42, | ||
6437 | 45, | ||
6438 | 45, | ||
6439 | 42, | ||
6440 | 42, | ||
6441 | 40, | ||
6442 | 42, | ||
6443 | 46, | ||
6444 | 46, | ||
6445 | 44, | ||
6446 | 43, | ||
6447 | 41, | ||
6448 | 39, | ||
6449 | 37, | ||
6450 | 40, | ||
6451 | 41, | ||
6452 | 37, | ||
6453 | 35, | ||
6454 | 32, | ||
6455 | 30, | ||
6456 | 31, | ||
6457 | 36, | ||
6458 | 36, | ||
6459 | 36, | ||
6460 | 36, | ||
6461 | 37, | ||
6462 | 40, | ||
6463 | 40, | ||
6464 | 40, | ||
6465 | 39, | ||
6466 | 39, | ||
6467 | 38, | ||
6468 | 39, | ||
6469 | 41, | ||
6470 | 42, | ||
6471 | 40, | ||
6472 | 42, | ||
6473 | 42, | ||
6474 | 41, | ||
6475 | 38, | ||
6476 | 38, | ||
6477 | 42, | ||
6478 | 39, | ||
6479 | 37, | ||
6480 | 39, | ||
6481 | 37, | ||
6482 | 34, | ||
6483 | 35, | ||
6484 | 36, | ||
6485 | 39, | ||
6486 | 39, | ||
6487 | 41, | ||
6488 | 41, | ||
6489 | 39, | ||
6490 | 39, | ||
6491 | 36, | ||
6492 | 35, | ||
6493 | 35, | ||
6494 | 37, | ||
6495 | 41, | ||
6496 | 45, | ||
6497 | 48, | ||
6498 | 47, | ||
6499 | 48, | ||
6500 | 45, | ||
6501 | 42, | ||
6502 | 44, | ||
6503 | 41, | ||
6504 | 41, | ||
6505 | 42, | ||
6506 | 43, | ||
6507 | 42, | ||
6508 | 41, | ||
6509 | 40, | ||
6510 | 39, | ||
6511 | 37, | ||
6512 | 37, | ||
6513 | 37, | ||
6514 | 38, | ||
6515 | 38, | ||
6516 | 40, | ||
6517 | 41, | ||
6518 | 42, | ||
6519 | 40, | ||
6520 | 41, | ||
6521 | 40, | ||
6522 | 39, | ||
6523 | 40, | ||
6524 | 38, | ||
6525 | 37, | ||
6526 | 39, | ||
6527 | 41, | ||
6528 | 40, | ||
6529 | 37, | ||
6530 | 35, | ||
6531 | 32, | ||
6532 | 33, | ||
6533 | 36, | ||
6534 | 36, | ||
6535 | 36, | ||
6536 | 36, | ||
6537 | 36, | ||
6538 | 38, | ||
6539 | 39, | ||
6540 | 38, | ||
6541 | 37, | ||
6542 | 38, | ||
6543 | 37, | ||
6544 | 37, | ||
6545 | 40, | ||
6546 | 39, | ||
6547 | 43, | ||
6548 | 48, | ||
6549 | 48, | ||
6550 | 44, | ||
6551 | 39, | ||
6552 | 38, | ||
6553 | 40, | ||
6554 | 41, | ||
6555 | 41, | ||
6556 | 41, | ||
6557 | 42, | ||
6558 | 42, | ||
6559 | 39, | ||
6560 | 36, | ||
6561 | 35, | ||
6562 | 35, | ||
6563 | 34, | ||
6564 | 35, | ||
6565 | 36, | ||
6566 | 38, | ||
6567 | 38, | ||
6568 | 37, | ||
6569 | 39, | ||
6570 | 38, | ||
6571 | 36, | ||
6572 | 36, | ||
6573 | 37, | ||
6574 | 39, | ||
6575 | 40, | ||
6576 | 40, | ||
6577 | 38, | ||
6578 | 38, | ||
6579 | 37, | ||
6580 | 35, | ||
6581 | 36, | ||
6582 | 33, | ||
6583 | 34, | ||
6584 | 37, | ||
6585 | 36, | ||
6586 | 39, | ||
6587 | 39, | ||
6588 | 38, | ||
6589 | 37, | ||
6590 | 33, | ||
6591 | 30, | ||
6592 | 32, | ||
6593 | 33, | ||
6594 | 33, | ||
6595 | 35, | ||
6596 | 36, | ||
6597 | 36, | ||
6598 | 36, | ||
6599 | 37, | ||
6600 | 35, | ||
6601 | 37, | ||
6602 | 39, | ||
6603 | 40, | ||
6604 | 36, | ||
6605 | 35, | ||
6606 | 37, | ||
6607 | 36, | ||
6608 | 35, | ||
6609 | 36, | ||
6610 | 36, | ||
6611 | 36, | ||
6612 | 36, | ||
6613 | 35, | ||
6614 | 31, | ||
6615 | 34, | ||
6616 | 35, | ||
6617 | 37, | ||
6618 | 38, | ||
6619 | 37, | ||
6620 | 36, | ||
6621 | 39, | ||
6622 | 42, | ||
6623 | 41, | ||
6624 | 41, | ||
6625 | 40, | ||
6626 | 38, | ||
6627 | 36, | ||
6628 | 37, | ||
6629 | 38, | ||
6630 | 39, | ||
6631 | 40, | ||
6632 | 40, | ||
6633 | 37, | ||
6634 | 34, | ||
6635 | 34, | ||
6636 | 35, | ||
6637 | 37, | ||
6638 | 37, | ||
6639 | 39, | ||
6640 | 39, | ||
6641 | 38, | ||
6642 | 40, | ||
6643 | 39, | ||
6644 | 41, | ||
6645 | 43, | ||
6646 | 43, | ||
6647 | 43, | ||
6648 | 40, | ||
6649 | 39, | ||
6650 | 41, | ||
6651 | 41, | ||
6652 | 39, | ||
6653 | 35, | ||
6654 | 33, | ||
6655 | 34, | ||
6656 | 33, | ||
6657 | 36, | ||
6658 | 38, | ||
6659 | 40, | ||
6660 | 40, | ||
6661 | 39, | ||
6662 | 40, | ||
6663 | 37, | ||
6664 | 39, | ||
6665 | 37, | ||
6666 | 34, | ||
6667 | 33, | ||
6668 | 34, | ||
6669 | 35, | ||
6670 | 35, | ||
6671 | 35, | ||
6672 | 35, | ||
6673 | 33, | ||
6674 | 35, | ||
6675 | 34, | ||
6676 | 33, | ||
6677 | 34, | ||
6678 | 36, | ||
6679 | 37, | ||
6680 | 36, | ||
6681 | 35, | ||
6682 | 35, | ||
6683 | 34, | ||
6684 | 35, | ||
6685 | 36, | ||
6686 | 36, | ||
6687 | 36, | ||
6688 | 36, | ||
6689 | 36, | ||
6690 | 38, | ||
6691 | 39, | ||
6692 | 40, | ||
6693 | 40, | ||
6694 | 42, | ||
6695 | 41, | ||
6696 | 40, | ||
6697 | 43, | ||
6698 | 42, | ||
6699 | 39, | ||
6700 | 38, | ||
6701 | 35, | ||
6702 | 35, | ||
6703 | 34, | ||
6704 | 35, | ||
6705 | 37, | ||
6706 | 37, | ||
6707 | 37, | ||
6708 | 37, | ||
6709 | 38, | ||
6710 | 37, | ||
6711 | 35, | ||
6712 | 34, | ||
6713 | 36, | ||
6714 | 39, | ||
6715 | 40, | ||
6716 | 39, | ||
6717 | 40, | ||
6718 | 41, | ||
6719 | 40, | ||
6720 | 36, | ||
6721 | 37, | ||
6722 | 38, | ||
6723 | 34, | ||
6724 | 35, | ||
6725 | 36, | ||
6726 | 37, | ||
6727 | 39, | ||
6728 | 40, | ||
6729 | 37, | ||
6730 | 37, | ||
6731 | 37, | ||
6732 | 34, | ||
6733 | 34, | ||
6734 | 35, | ||
6735 | 35, | ||
6736 | 37, | ||
6737 | 37, | ||
6738 | 38, | ||
6739 | 39, | ||
6740 | 42, | ||
6741 | 44, | ||
6742 | 42, | ||
6743 | 40, | ||
6744 | 41, | ||
6745 | 40, | ||
6746 | 38, | ||
6747 | 35, | ||
6748 | 34, | ||
6749 | 34, | ||
6750 | 36, | ||
6751 | 36, | ||
6752 | 37, | ||
6753 | 39, | ||
6754 | 38, | ||
6755 | 40, | ||
6756 | 40, | ||
6757 | 38, | ||
6758 | 36, | ||
6759 | 33, | ||
6760 | 31, | ||
6761 | 36, | ||
6762 | 36, | ||
6763 | 36, | ||
6764 | 36, | ||
6765 | 36, | ||
6766 | 36, | ||
6767 | 36, | ||
6768 | 39, | ||
6769 | 41, | ||
6770 | 42, | ||
6771 | 41, | ||
6772 | 40, | ||
6773 | 38, | ||
6774 | 38, | ||
6775 | 37, | ||
6776 | 37, | ||
6777 | 41, | ||
6778 | 40, | ||
6779 | 39, | ||
6780 | 39, | ||
6781 | 37, | ||
6782 | 39, | ||
6783 | 38, | ||
6784 | 39, | ||
6785 | 37, | ||
6786 | 35, | ||
6787 | 35, | ||
6788 | 35, | ||
6789 | 36, | ||
6790 | 39, | ||
6791 | 38, | ||
6792 | 38, | ||
6793 | 38, | ||
6794 | 38, | ||
6795 | 39, | ||
6796 | 39, | ||
6797 | 39, | ||
6798 | 38, | ||
6799 | 38, | ||
6800 | 39, | ||
6801 | 40, | ||
6802 | 41, | ||
6803 | 41, | ||
6804 | 41, | ||
6805 | 38, | ||
6806 | 38, | ||
6807 | 37, | ||
6808 | 37, | ||
6809 | 36, | ||
6810 | 38, | ||
6811 | 40, | ||
6812 | 39, | ||
6813 | 37, | ||
6814 | 35, | ||
6815 | 37, | ||
6816 | 35, | ||
6817 | 33, | ||
6818 | 34, | ||
6819 | 35, | ||
6820 | 38, | ||
6821 | 36, | ||
6822 | 36, | ||
6823 | 38, | ||
6824 | 34, | ||
6825 | 33, | ||
6826 | 35, | ||
6827 | 36, | ||
6828 | 35, | ||
6829 | 37, | ||
6830 | 39, | ||
6831 | 38, | ||
6832 | 38, | ||
6833 | 38, | ||
6834 | 37, | ||
6835 | 34, | ||
6836 | 31, | ||
6837 | 36, | ||
6838 | 36, | ||
6839 | 36, | ||
6840 | 36, | ||
6841 | 36, | ||
6842 | 37, | ||
6843 | 41, | ||
6844 | 41, | ||
6845 | 39, | ||
6846 | 40, | ||
6847 | 39, | ||
6848 | 40, | ||
6849 | 41, | ||
6850 | 42, | ||
6851 | 40, | ||
6852 | 35, | ||
6853 | 35, | ||
6854 | 36, | ||
6855 | 34, | ||
6856 | 36, | ||
6857 | 38, | ||
6858 | 38, | ||
6859 | 39, | ||
6860 | 39, | ||
6861 | 39, | ||
6862 | 39, | ||
6863 | 38, | ||
6864 | 37, | ||
6865 | 38, | ||
6866 | 38, | ||
6867 | 36, | ||
6868 | 34, | ||
6869 | 35, | ||
6870 | 40, | ||
6871 | 44, | ||
6872 | 43, | ||
6873 | 46, | ||
6874 | 47, | ||
6875 | 40, | ||
6876 | 35, | ||
6877 | 36, | ||
6878 | 36, | ||
6879 | 37, | ||
6880 | 37, | ||
6881 | 35, | ||
6882 | 36, | ||
6883 | 37, | ||
6884 | 35, | ||
6885 | 36, | ||
6886 | 38, | ||
6887 | 38, | ||
6888 | 39, | ||
6889 | 39, | ||
6890 | 39, | ||
6891 | 40, | ||
6892 | 40, | ||
6893 | 38, | ||
6894 | 33, | ||
6895 | 32, | ||
6896 | 35, | ||
6897 | 36, | ||
6898 | 35, | ||
6899 | 32, | ||
6900 | 31, | ||
6901 | 32, | ||
6902 | 34, | ||
6903 | 34, | ||
6904 | 35, | ||
6905 | 38, | ||
6906 | 39, | ||
6907 | 38, | ||
6908 | 37, | ||
6909 | 35, | ||
6910 | 36, | ||
6911 | 36, | ||
6912 | 33, | ||
6913 | 36, | ||
6914 | 36, | ||
6915 | 36, | ||
6916 | 36, | ||
6917 | 36, | ||
6918 | 35, | ||
6919 | 31, | ||
6920 | 33, | ||
6921 | 36, | ||
6922 | 36, | ||
6923 | 37, | ||
6924 | 37, | ||
6925 | 37, | ||
6926 | 38, | ||
6927 | 38, | ||
6928 | 39, | ||
6929 | 41, | ||
6930 | 39, | ||
6931 | 36, | ||
6932 | 36, | ||
6933 | 36, | ||
6934 | 35, | ||
6935 | 37, | ||
6936 | 34, | ||
6937 | 34, | ||
6938 | 32, | ||
6939 | 32, | ||
6940 | 34, | ||
6941 | 35, | ||
6942 | 39, | ||
6943 | 38, | ||
6944 | 38, | ||
6945 | 39, | ||
6946 | 38, | ||
6947 | 38, | ||
6948 | 38, | ||
6949 | 38, | ||
6950 | 36, | ||
6951 | 33, | ||
6952 | 34, | ||
6953 | 33, | ||
6954 | 34, | ||
6955 | 34, | ||
6956 | 37, | ||
6957 | 40, | ||
6958 | 40, | ||
6959 | 40, | ||
6960 | 37, | ||
6961 | 35, | ||
6962 | 37, | ||
6963 | 38, | ||
6964 | 37, | ||
6965 | 35, | ||
6966 | 35, | ||
6967 | 36, | ||
6968 | 37, | ||
6969 | 38, | ||
6970 | 41, | ||
6971 | 43, | ||
6972 | 42, | ||
6973 | 37, | ||
6974 | 36, | ||
6975 | 40, | ||
6976 | 39, | ||
6977 | 41, | ||
6978 | 43, | ||
6979 | 41, | ||
6980 | 36, | ||
6981 | 32, | ||
6982 | 33, | ||
6983 | 36, | ||
6984 | 37, | ||
6985 | 40, | ||
6986 | 39, | ||
6987 | 36, | ||
6988 | 33, | ||
6989 | 36, | ||
6990 | 36, | ||
6991 | 36, | ||
6992 | 36, | ||
6993 | 37, | ||
6994 | 42, | ||
6995 | 42, | ||
6996 | 39, | ||
6997 | 35, | ||
6998 | 35, | ||
6999 | 35, | ||
7000 | 37, | ||
7001 | 37, | ||
7002 | 38, | ||
7003 | 39, | ||
7004 | 38, | ||
7005 | 40, | ||
7006 | 40, | ||
7007 | 39, | ||
7008 | 44, | ||
7009 | 44, | ||
7010 | 39, | ||
7011 | 40, | ||
7012 | 40, | ||
7013 | 42, | ||
7014 | 44, | ||
7015 | 42, | ||
7016 | 38, | ||
7017 | 38, | ||
7018 | 36, | ||
7019 | 35, | ||
7020 | 35, | ||
7021 | 35, | ||
7022 | 38, | ||
7023 | 38, | ||
7024 | 35, | ||
7025 | 33, | ||
7026 | 36, | ||
7027 | 35, | ||
7028 | 35, | ||
7029 | 37, | ||
7030 | 38, | ||
7031 | 39, | ||
7032 | 38, | ||
7033 | 38, | ||
7034 | 38, | ||
7035 | 37, | ||
7036 | 36, | ||
7037 | 33, | ||
7038 | 33, | ||
7039 | 33, | ||
7040 | 34, | ||
7041 | 37, | ||
7042 | 38, | ||
7043 | 39, | ||
7044 | 40, | ||
7045 | 36, | ||
7046 | 31, | ||
7047 | 33, | ||
7048 | 36, | ||
7049 | 34, | ||
7050 | 37, | ||
7051 | 35, | ||
7052 | 34, | ||
7053 | 36, | ||
7054 | 37, | ||
7055 | 38, | ||
7056 | 38, | ||
7057 | 37, | ||
7058 | 37, | ||
7059 | 35, | ||
7060 | 33, | ||
7061 | 35, | ||
7062 | 39, | ||
7063 | 36, | ||
7064 | 34, | ||
7065 | 36, | ||
7066 | 36, | ||
7067 | 36, | ||
7068 | 36, | ||
7069 | 36, | ||
7070 | 36, | ||
7071 | 35, | ||
7072 | 36, | ||
7073 | 36, | ||
7074 | 37, | ||
7075 | 35, | ||
7076 | 37, | ||
7077 | 38, | ||
7078 | 38, | ||
7079 | 40, | ||
7080 | 41, | ||
7081 | 42, | ||
7082 | 40, | ||
7083 | 41, | ||
7084 | 44, | ||
7085 | 42, | ||
7086 | 42, | ||
7087 | 40, | ||
7088 | 38, | ||
7089 | 39, | ||
7090 | 37, | ||
7091 | 36, | ||
7092 | 35, | ||
7093 | 35, | ||
7094 | 34, | ||
7095 | 33, | ||
7096 | 34, | ||
7097 | 35, | ||
7098 | 36, | ||
7099 | 36, | ||
7100 | 38, | ||
7101 | 37, | ||
7102 | 37, | ||
7103 | 36, | ||
7104 | 34, | ||
7105 | 36, | ||
7106 | 39, | ||
7107 | 40, | ||
7108 | 39, | ||
7109 | 38, | ||
7110 | 39, | ||
7111 | 37, | ||
7112 | 37, | ||
7113 | 36, | ||
7114 | 39, | ||
7115 | 40, | ||
7116 | 39, | ||
7117 | 39, | ||
7118 | 35, | ||
7119 | 37, | ||
7120 | 37, | ||
7121 | 36, | ||
7122 | 40, | ||
7123 | 41, | ||
7124 | 40, | ||
7125 | 37, | ||
7126 | 35, | ||
7127 | 36, | ||
7128 | 36, | ||
7129 | 37, | ||
7130 | 35, | ||
7131 | 35, | ||
7132 | 34, | ||
7133 | 32, | ||
7134 | 36, | ||
7135 | 34, | ||
7136 | 32, | ||
7137 | 31, | ||
7138 | 30, | ||
7139 | 31, | ||
7140 | 33, | ||
7141 | 36, | ||
7142 | 36, | ||
7143 | 36, | ||
7144 | 36, | ||
7145 | 37, | ||
7146 | 37, | ||
7147 | 37, | ||
7148 | 36, | ||
7149 | 35, | ||
7150 | 38, | ||
7151 | 39, | ||
7152 | 41, | ||
7153 | 40, | ||
7154 | 35, | ||
7155 | 36, | ||
7156 | 35, | ||
7157 | 35, | ||
7158 | 34, | ||
7159 | 34, | ||
7160 | 38, | ||
7161 | 38, | ||
7162 | 39, | ||
7163 | 40, | ||
7164 | 36, | ||
7165 | 35, | ||
7166 | 36, | ||
7167 | 35, | ||
7168 | 36, | ||
7169 | 36, | ||
7170 | 38, | ||
7171 | 36, | ||
7172 | 39, | ||
7173 | 41, | ||
7174 | 42, | ||
7175 | 41, | ||
7176 | 41, | ||
7177 | 40, | ||
7178 | 41, | ||
7179 | 41, | ||
7180 | 39, | ||
7181 | 38, | ||
7182 | 36, | ||
7183 | 37, | ||
7184 | 37, | ||
7185 | 35, | ||
7186 | 37, | ||
7187 | 40, | ||
7188 | 39, | ||
7189 | 37, | ||
7190 | 37, | ||
7191 | 37, | ||
7192 | 38, | ||
7193 | 39, | ||
7194 | 43, | ||
7195 | 44, | ||
7196 | 41, | ||
7197 | 39, | ||
7198 | 39, | ||
7199 | 42, | ||
7200 | 40, | ||
7201 | 36, | ||
7202 | 38, | ||
7203 | 34, | ||
7204 | 33, | ||
7205 | 36, | ||
7206 | 37, | ||
7207 | 41, | ||
7208 | 41, | ||
7209 | 41, | ||
7210 | 41, | ||
7211 | 41, | ||
7212 | 40, | ||
7213 | 40, | ||
7214 | 44, | ||
7215 | 41, | ||
7216 | 38, | ||
7217 | 36, | ||
7218 | 36, | ||
7219 | 36, | ||
7220 | 37, | ||
7221 | 37, | ||
7222 | 38, | ||
7223 | 39, | ||
7224 | 39, | ||
7225 | 38, | ||
7226 | 38, | ||
7227 | 37, | ||
7228 | 40, | ||
7229 | 40, | ||
7230 | 37, | ||
7231 | 38, | ||
7232 | 38, | ||
7233 | 37, | ||
7234 | 36, | ||
7235 | 36, | ||
7236 | 36, | ||
7237 | 35, | ||
7238 | 39, | ||
7239 | 39, | ||
7240 | 38, | ||
7241 | 41, | ||
7242 | 38, | ||
7243 | 37, | ||
7244 | 38, | ||
7245 | 39, | ||
7246 | 41, | ||
7247 | 40, | ||
7248 | 40, | ||
7249 | 41, | ||
7250 | 41, | ||
7251 | 41, | ||
7252 | 40, | ||
7253 | 37, | ||
7254 | 39, | ||
7255 | 40, | ||
7256 | 40, | ||
7257 | 39, | ||
7258 | 39, | ||
7259 | 36, | ||
7260 | 35, | ||
7261 | 35, | ||
7262 | 35, | ||
7263 | 35, | ||
7264 | 35, | ||
7265 | 34, | ||
7266 | 36, | ||
7267 | 35, | ||
7268 | 37, | ||
7269 | 40, | ||
7270 | 40, | ||
7271 | 40, | ||
7272 | 38, | ||
7273 | 36, | ||
7274 | 36, | ||
7275 | 35, | ||
7276 | 37, | ||
7277 | 36, | ||
7278 | 37, | ||
7279 | 38, | ||
7280 | 38, | ||
7281 | 38, | ||
7282 | 37, | ||
7283 | 37, | ||
7284 | 34, | ||
7285 | 31, | ||
7286 | 33, | ||
7287 | 32, | ||
7288 | 33, | ||
7289 | 33, | ||
7290 | 33, | ||
7291 | 35, | ||
7292 | 36}; | ||
diff --git a/baseline/source/susan/math_private.h b/baseline/source/susan/math_private.h new file mode 100644 index 0000000..58d4354 --- /dev/null +++ b/baseline/source/susan/math_private.h | |||
@@ -0,0 +1,178 @@ | |||
1 | /* | ||
2 | * ==================================================== | ||
3 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
4 | * | ||
5 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
6 | * Permission to use, copy, modify, and distribute this | ||
7 | * software is freely granted, provided that this notice | ||
8 | * is preserved. | ||
9 | * ==================================================== | ||
10 | */ | ||
11 | |||
12 | /* | ||
13 | * from: @(#)fdlibm.h 5.1 93/09/24 | ||
14 | */ | ||
15 | |||
16 | #ifndef _MATH_PRIVATE_H_ | ||
17 | #define _MATH_PRIVATE_H_ | ||
18 | |||
19 | #include "wcclibm.h" | ||
20 | |||
21 | //#include <endian.h> | ||
22 | //#include <sys/types.h> | ||
23 | |||
24 | /* A representation of a double as a union. */ | ||
25 | union ieee754_double | ||
26 | { | ||
27 | double d; | ||
28 | |||
29 | /* This is the IEEE 754 double-precision format. */ | ||
30 | struct { | ||
31 | /* Together these comprise the mantissa. */ | ||
32 | unsigned int mantissa1:32; | ||
33 | unsigned int mantissa0:20; | ||
34 | unsigned int exponent:11; | ||
35 | unsigned int negative:1; | ||
36 | } ieee; | ||
37 | |||
38 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | ||
39 | struct { | ||
40 | /* Together these comprise the mantissa. */ | ||
41 | unsigned int mantissa1:32; | ||
42 | unsigned int mantissa0:19; | ||
43 | unsigned int quiet_nan:1; | ||
44 | unsigned int exponent:11; | ||
45 | unsigned int negative:1; | ||
46 | } ieee_nan; | ||
47 | }; | ||
48 | |||
49 | /* The original fdlibm code used statements like: | ||
50 | n0 = ((*(int*)&one)>>29)^1; * index of high word * | ||
51 | ix0 = *(n0+(int*)&x); * high word of x * | ||
52 | ix1 = *((1-n0)+(int*)&x); * low word of x * | ||
53 | to dig two 32 bit words out of the 64 bit IEEE floating point | ||
54 | value. That is non-ANSI, and, moreover, the gcc instruction | ||
55 | scheduler gets it wrong. We instead use the following macros. | ||
56 | Unlike the original code, we determine the endianness at compile | ||
57 | time, not at run time; I don't see much benefit to selecting | ||
58 | endianness at run time. */ | ||
59 | |||
60 | /* A union which permits us to convert between a double and two 32 bit | ||
61 | ints. */ | ||
62 | |||
63 | /* #if __FLOAT_WORD_ORDER == BIG_ENDIAN */ | ||
64 | /* #warning USING Big Endian float word order */ | ||
65 | /* typedef union */ | ||
66 | /* { */ | ||
67 | /* double value; */ | ||
68 | /* struct */ | ||
69 | /* { */ | ||
70 | /* u_int16_t msw; */ | ||
71 | /* u_int16_t lsw; */ | ||
72 | /* } parts; */ | ||
73 | /* } ieeeDoubleShapeType; */ | ||
74 | |||
75 | /* #endif */ | ||
76 | |||
77 | /* #if __FLOAT_WORD_ORDER == LITTLE_ENDIAN */ | ||
78 | /* #warning USING Little Endian float word order */ | ||
79 | |||
80 | typedef union | ||
81 | { | ||
82 | double value; | ||
83 | struct | ||
84 | { | ||
85 | u_int16_t lsw; | ||
86 | u_int16_t msw; | ||
87 | } parts; | ||
88 | } ieeeDoubleShapeType; | ||
89 | |||
90 | /* #endif */ | ||
91 | |||
92 | /* Get two 32 bit ints from a double. */ | ||
93 | |||
94 | #define EXTRACT_WORDS(ix0,ix1,d) \ | ||
95 | { \ | ||
96 | ieeeDoubleShapeType ew_u; \ | ||
97 | ew_u.value = (d); \ | ||
98 | (ix0) = ew_u.parts.msw; \ | ||
99 | (ix1) = ew_u.parts.lsw; \ | ||
100 | } | ||
101 | |||
102 | /* Get the more significant 32 bit int from a double. */ | ||
103 | |||
104 | #define GET_HIGH_WORD(i,d) \ | ||
105 | { \ | ||
106 | ieeeDoubleShapeType gh_u; \ | ||
107 | gh_u.value = (d); \ | ||
108 | (i) = gh_u.parts.msw; \ | ||
109 | } | ||
110 | |||
111 | /* Get the less significant 32 bit int from a double. */ | ||
112 | |||
113 | #define GET_LOW_WORD(i,d) \ | ||
114 | { \ | ||
115 | ieeeDoubleShapeType gl_u; \ | ||
116 | gl_u.value = (d); \ | ||
117 | (i) = gl_u.parts.lsw; \ | ||
118 | } | ||
119 | |||
120 | /* Set a double from two 32 bit ints. */ | ||
121 | |||
122 | #define INSERT_WORDS(d,ix0,ix1) \ | ||
123 | { \ | ||
124 | ieeeDoubleShapeType iw_u; \ | ||
125 | iw_u.parts.msw = (ix0); \ | ||
126 | iw_u.parts.lsw = (ix1); \ | ||
127 | (d) = iw_u.value; \ | ||
128 | } | ||
129 | |||
130 | /* Set the more significant 32 bits of a double from an int. */ | ||
131 | |||
132 | #define SET_HIGH_WORD(d,v) \ | ||
133 | { \ | ||
134 | ieeeDoubleShapeType sh_u; \ | ||
135 | sh_u.value = (d); \ | ||
136 | sh_u.parts.msw = (v); \ | ||
137 | (d) = sh_u.value; \ | ||
138 | } | ||
139 | |||
140 | /* Set the less significant 32 bits of a double from an int. */ | ||
141 | |||
142 | #define SET_LOW_WORD(d,v) \ | ||
143 | { \ | ||
144 | ieeeDoubleShapeType sl_u; \ | ||
145 | sl_u.value = (d); \ | ||
146 | sl_u.parts.lsw = (v); \ | ||
147 | (d) = sl_u.value; \ | ||
148 | } | ||
149 | |||
150 | /* A union which permits us to convert between a float and a 32 bit | ||
151 | int. */ | ||
152 | |||
153 | typedef union | ||
154 | { | ||
155 | float value; | ||
156 | u_int32_t word; | ||
157 | } ieee_float_shape_type; | ||
158 | |||
159 | /* Get a 32 bit int from a float. */ | ||
160 | |||
161 | #define GET_FLOAT_WORD(i,d) \ | ||
162 | { \ | ||
163 | ieee_float_shape_type gf_u; \ | ||
164 | gf_u.value = (d); \ | ||
165 | (i) = gf_u.word; \ | ||
166 | } | ||
167 | |||
168 | /* Set a float from a 32 bit int. */ | ||
169 | |||
170 | #define SET_FLOAT_WORD(d,i) \ | ||
171 | { \ | ||
172 | ieee_float_shape_type sf_u; \ | ||
173 | sf_u.word = (i); \ | ||
174 | (d) = sf_u.value; \ | ||
175 | } | ||
176 | |||
177 | |||
178 | #endif /* _MATH_PRIVATE_H_ */ | ||
diff --git a/baseline/source/susan/susan.c b/baseline/source/susan/susan.c new file mode 100644 index 0000000..fb990b1 --- /dev/null +++ b/baseline/source/susan/susan.c | |||
@@ -0,0 +1,2014 @@ | |||
1 | /**********************************************************************\ | ||
2 | |||
3 | SUSAN Version 2l by Stephen Smith | ||
4 | Oxford Centre for Functional Magnetic Resonance Imaging of the Brain, | ||
5 | Department of Clinical Neurology, Oxford University, Oxford, UK | ||
6 | (Previously in Computer Vision and Image Processing Group - now | ||
7 | Computer Vision and Electro Optics Group - DERA Chertsey, UK) | ||
8 | Email: steve@fmrib.ox.ac.uk | ||
9 | WWW: http://www.fmrib.ox.ac.uk/~steve | ||
10 | |||
11 | (C) Crown Copyright (1995-1999), Defence Evaluation and Research Agency, | ||
12 | Farnborough, Hampshire, GU14 6TD, UK | ||
13 | DERA WWW site: | ||
14 | http://www.dera.gov.uk/ | ||
15 | DERA Computer Vision and Electro Optics Group WWW site: | ||
16 | http://www.dera.gov.uk/imageprocessing/dera/group_home.html | ||
17 | DERA Computer Vision and Electro Optics Group point of contact: | ||
18 | Dr. John Savage, jtsavage@dera.gov.uk, +44 1344 633203 | ||
19 | |||
20 | A UK patent has been granted: "Method for digitally processing | ||
21 | images to determine the position of edges and/or corners therein for | ||
22 | guidance of unmanned vehicle", UK Patent 2272285. Proprietor: | ||
23 | Secretary of State for Defence, UK. 15 January 1997 | ||
24 | |||
25 | This code is issued for research purposes only and remains the | ||
26 | property of the UK Secretary of State for Defence. This code must | ||
27 | not be passed on without this header information being kept | ||
28 | intact. This code must not be sold. | ||
29 | |||
30 | \**********************************************************************/ | ||
31 | |||
32 | /**********************************************************************\ | ||
33 | |||
34 | SUSAN Version 2l | ||
35 | SUSAN = Smallest Univalue Segment Assimilating Nucleus | ||
36 | |||
37 | Email: steve@fmrib.ox.ac.uk | ||
38 | WWW: http://www.fmrib.ox.ac.uk/~steve | ||
39 | |||
40 | Related paper: | ||
41 | @article{Smith97, | ||
42 | author = "Smith, S.M. and Brady, J.M.", | ||
43 | title = "{SUSAN} - A New Approach to Low Level Image Processing", | ||
44 | journal = "Int. Journal of Computer Vision", | ||
45 | pages = "45--78", | ||
46 | volume = "23", | ||
47 | number = "1", | ||
48 | month = "May", | ||
49 | year = 1997} | ||
50 | |||
51 | To be registered for automatic (bug) updates of SUSAN, send an email. | ||
52 | |||
53 | Compile with: | ||
54 | gcc -O4 -o susan susan2l.c -lm | ||
55 | |||
56 | See following section for different machine information. Please | ||
57 | report any bugs (and fixes). There are a few optional changes that | ||
58 | can be made in the "defines" section which follows shortly. | ||
59 | |||
60 | Usage: type "susan" to get usage. Only PGM format files can be input | ||
61 | and output. Utilities such as the netpbm package and XV can be used | ||
62 | to convert to and from other formats. Any size of image can be | ||
63 | processed. | ||
64 | |||
65 | This code is written using an emacs folding mode, making moving | ||
66 | around the different sections very easy. This is why there are | ||
67 | various marks within comments and why comments are indented. | ||
68 | |||
69 | |||
70 | SUSAN QUICK: | ||
71 | |||
72 | This version of the SUSAN corner finder does not do all the | ||
73 | false-corner suppression and thus is faster and produced some false | ||
74 | positives, particularly on strong edges. However, because there are | ||
75 | less stages involving thresholds etc., the corners that are | ||
76 | correctly reported are usually more stable than those reported with | ||
77 | the full algorithm. Thus I recommend at least TRYING this algorithm | ||
78 | for applications where stability is important, e.g., tracking. | ||
79 | |||
80 | THRESHOLDS: | ||
81 | |||
82 | There are two thresholds which can be set at run-time. These are the | ||
83 | brightness threshold (t) and the distance threshold (d). | ||
84 | |||
85 | SPATIAL CONTROL: d | ||
86 | |||
87 | In SUSAN smoothing d controls the size of the Gaussian mask; its | ||
88 | default is 4.0. Increasing d gives more smoothing. In edge finding, | ||
89 | a fixed flat mask is used, either 37 pixels arranged in a "circle" | ||
90 | (default), or a 3 by 3 mask which gives finer detail. In corner | ||
91 | finding, only the larger 37 pixel mask is used; d is not | ||
92 | variable. In smoothing, the flat 3 by 3 mask can be used instead of | ||
93 | a larger Gaussian mask; this gives low smoothing and fast operation. | ||
94 | |||
95 | BRIGHTNESS CONTROL: t | ||
96 | |||
97 | In all three algorithms, t can be varied (default=20); this is the | ||
98 | main threshold to be varied. It determines the maximum difference in | ||
99 | greylevels between two pixels which allows them to be considered | ||
100 | part of the same "region" in the image. Thus it can be reduced to | ||
101 | give more edges or corners, i.e. to be more sensitive, and vice | ||
102 | versa. In smoothing, reducing t gives less smoothing, and vice | ||
103 | versa. Set t=10 for the test image available from the SUSAN web | ||
104 | page. | ||
105 | |||
106 | ITERATIONS: | ||
107 | |||
108 | With SUSAN smoothing, more smoothing can also be obtained by | ||
109 | iterating the algorithm several times. This has a different effect | ||
110 | from varying d or t. | ||
111 | |||
112 | FIXED MASKS: | ||
113 | |||
114 | 37 pixel mask: ooo 3 by 3 mask: ooo | ||
115 | ooooo ooo | ||
116 | ooooooo ooo | ||
117 | ooooooo | ||
118 | ooooooo | ||
119 | ooooo | ||
120 | ooo | ||
121 | |||
122 | CORNER ATTRIBUTES dx, dy and I | ||
123 | (Only read this if you are interested in the C implementation or in | ||
124 | using corner attributes, e.g., for corner matching) | ||
125 | |||
126 | Corners reported in the corner list have attributes associated with | ||
127 | them as well as positions. This is useful, for example, when | ||
128 | attempting to match corners from one image to another, as these | ||
129 | attributes can often be fairly unchanged between images. The | ||
130 | attributes are dx, dy and I. I is the value of image brightness at | ||
131 | the position of the corner. In the case of susan_corners_quick, dx | ||
132 | and dy are the first order derivatives (differentials) of the image | ||
133 | brightness in the x and y directions respectively, at the position | ||
134 | of the corner. In the case of normal susan corner finding, dx and dy | ||
135 | are scaled versions of the position of the centre of gravity of the | ||
136 | USAN with respect to the centre pixel (nucleus). | ||
137 | |||
138 | BRIGHTNESS FUNCTION LUT IMPLEMENTATION: | ||
139 | (Only read this if you are interested in the C implementation) | ||
140 | |||
141 | The SUSAN brightness function is implemented as a LUT | ||
142 | (Look-Up-Table) for speed. The resulting pointer-based code is a | ||
143 | little hard to follow, so here is a brief explanation. In | ||
144 | setup_brightness_lut() the LUT is setup. This mallocs enough space | ||
145 | for *bp and then repositions the pointer to the centre of the | ||
146 | malloced space. The SUSAN function e^-(x^6) or e^-(x^2) is | ||
147 | calculated and converted to a uchar in the range 0-100, for all | ||
148 | possible image brightness differences (including negative | ||
149 | ones). Thus bp[23] is the output for a brightness difference of 23 | ||
150 | greylevels. In the SUSAN algorithms this LUT is used as follows: | ||
151 | |||
152 | p=in + (i-3)*x_size + j - 1; | ||
153 | p points to the first image pixel in the circular mask surrounding | ||
154 | point (x,y). | ||
155 | |||
156 | cp=bp + in[i*x_size+j]; | ||
157 | cp points to a position in the LUT corresponding to the brightness | ||
158 | of the centre pixel (x,y). | ||
159 | |||
160 | now for every pixel within the mask surrounding (x,y), | ||
161 | n+=*(cp-*p++); | ||
162 | the brightness difference function is found by moving the cp pointer | ||
163 | down by an amount equal to the value of the pixel pointed to by p, | ||
164 | thus subtracting the two brightness values and performing the | ||
165 | exponential function. This value is added to n, the running USAN | ||
166 | area. | ||
167 | |||
168 | in SUSAN smoothing, the variable height mask is implemented by | ||
169 | multiplying the above by the moving mask pointer, reset for each new | ||
170 | centre pixel. | ||
171 | tmp = *dpt++ * *(cp-brightness); | ||
172 | |||
173 | \**********************************************************************/ | ||
174 | |||
175 | /**********************************************************************\ | ||
176 | |||
177 | Success has been reported with the following: | ||
178 | |||
179 | MACHINE OS COMPILER | ||
180 | |||
181 | Sun 4.1.4 bundled C, gcc | ||
182 | |||
183 | Next | ||
184 | |||
185 | SGI IRIX SGI cc | ||
186 | |||
187 | DEC Unix V3.2+ | ||
188 | |||
189 | IBM RISC AIX gcc | ||
190 | |||
191 | PC Borland 5.0 | ||
192 | |||
193 | PC Linux gcc-2.6.3 | ||
194 | |||
195 | PC Win32 Visual C++ 4.0 (Console Application) | ||
196 | |||
197 | PC Win95 Visual C++ 5.0 (Console Application) | ||
198 | Thanks to Niu Yongsheng <niuysbit@163.net>: | ||
199 | Use the FOPENB option below | ||
200 | |||
201 | PC DOS djgpp gnu C | ||
202 | Thanks to Mark Pettovello <mpettove@umdsun2.umd.umich.edu>: | ||
203 | Use the FOPENB option below | ||
204 | |||
205 | HP HP-UX bundled cc | ||
206 | Thanks to Brian Dixon <briand@hpcvsgen.cv.hp.com>: | ||
207 | in ksh: | ||
208 | export CCOPTS="-Aa -D_HPUX_SOURCE | -lM" | ||
209 | cc -O3 -o susan susan2l.c | ||
210 | |||
211 | \**********************************************************************/ | ||
212 | |||
213 | /**********************************************************************\ | ||
214 | |||
215 | SUSAN Version 2l, 12/2/99 | ||
216 | Changed GNUDOS option to FOPENB. | ||
217 | (Thanks to Niu Yongsheng <niuysbit@163.net>.) | ||
218 | Took out redundant "sq=sq/2;". | ||
219 | |||
220 | SUSAN Version 2k, 19/8/98: | ||
221 | In corner finding: | ||
222 | Changed if(yy<sq) {...} else if(xx<sq) {...} to | ||
223 | if(yy<xx) {...} else {...} | ||
224 | (Thanks to adq@cim.mcgill.edu - Alain Domercq.) | ||
225 | |||
226 | SUSAN Version 2j, 22/10/97: | ||
227 | Fixed (mask_size>x_size) etc. tests in smoothing. | ||
228 | Added a couple of free() calls for cgx and cgy. | ||
229 | (Thanks to geoffb@ucs.ed.ac.uk - Geoff Browitt.) | ||
230 | |||
231 | SUSAN Version 2i, 21/7/97: | ||
232 | Added information about corner attributes. | ||
233 | |||
234 | SUSAN Version 2h, 16/12/96: | ||
235 | Added principle (initial enhancement) option. | ||
236 | |||
237 | SUSAN Version 2g, 2/7/96: | ||
238 | Minor superficial changes to code. | ||
239 | |||
240 | SUSAN Version 2f, 16/1/96: | ||
241 | Added GNUDOS option (now called FOPENB; see options below). | ||
242 | |||
243 | SUSAN Version 2e, 9/1/96: | ||
244 | Added -b option. | ||
245 | Fixed 1 pixel horizontal offset error for drawing edges. | ||
246 | |||
247 | SUSAN Version 2d, 27/11/95: | ||
248 | Fixed loading of certain PGM files in get_image (again!) | ||
249 | |||
250 | SUSAN Version 2c, 22/11/95: | ||
251 | Fixed loading of certain PGM files in get_image. | ||
252 | (Thanks to qu@San-Jose.ate.slb.com - Gongyuan Qu.) | ||
253 | |||
254 | SUSAN Version 2b, 9/11/95: | ||
255 | removed "z==" error in edges routines. | ||
256 | |||
257 | SUSAN Version 2a, 6/11/95: | ||
258 | Removed a few unnecessary variable declarations. | ||
259 | Added different machine information. | ||
260 | Changed "header" in get_image to char. | ||
261 | |||
262 | SUSAN Version 2, 1/11/95: first combined version able to take any | ||
263 | image sizes. | ||
264 | |||
265 | SUSAN "Versions 1", circa 1992: the various SUSAN algorithms were | ||
266 | developed during my doctorate within different programs and for | ||
267 | fixed image sizes. The algorithms themselves are virtually unaltered | ||
268 | between "versions 1" and the combined program, version 2. | ||
269 | |||
270 | \**********************************************************************/ | ||
271 | |||
272 | #include "../extra.h" | ||
273 | #include "wcclibm.h" | ||
274 | #include "wccfile.h" | ||
275 | #include "wccmalloc.h" | ||
276 | |||
277 | #define EXP_A 184 | ||
278 | #define EXP_C 16249 | ||
279 | |||
280 | float susan_expf(float y) | ||
281 | { | ||
282 | union | ||
283 | { | ||
284 | float d; | ||
285 | struct | ||
286 | { | ||
287 | #ifdef LITTLE_ENDIAN | ||
288 | short j, i; | ||
289 | #else | ||
290 | short i, j; | ||
291 | #endif | ||
292 | } n; | ||
293 | } eco; | ||
294 | eco.n.i = EXP_A*(y) + (EXP_C); | ||
295 | eco.n.j = 0; | ||
296 | return eco.d; | ||
297 | } | ||
298 | |||
299 | float susan_sqrtf(float val) | ||
300 | { | ||
301 | float x = val/10; | ||
302 | |||
303 | float dx; | ||
304 | |||
305 | float diff; | ||
306 | float min_tol = 0.00001f; | ||
307 | |||
308 | int i, flag; | ||
309 | |||
310 | |||
311 | flag = 0; | ||
312 | if (val == 0 ) x = 0; | ||
313 | else { | ||
314 | for (i=1;i<20;i++) | ||
315 | { | ||
316 | if (!flag) { | ||
317 | dx = (val - (x*x)) / (2.0f * x); | ||
318 | x = x + dx; | ||
319 | diff = val - (x*x); | ||
320 | if (fabs(diff) <= min_tol) flag = 1; | ||
321 | } | ||
322 | } | ||
323 | } | ||
324 | return (x); | ||
325 | } | ||
326 | |||
327 | /* ********** Optional settings */ | ||
328 | |||
329 | typedef int TOTAL_TYPE; | ||
330 | |||
331 | #define SEVEN_SUPP /* size for non-max corner suppression; SEVEN_SUPP or FIVE_SUPP */ | ||
332 | #define MAX_CORNERS 15000 /* max corners per frame */ | ||
333 | |||
334 | #define FTOI(a) ( (a) < 0 ? ((int)(a-0.5)) : ((int)(a+0.5)) ) | ||
335 | #define abs(a) ( (a) < 0 ? -a : a ) | ||
336 | typedef unsigned char uchar; | ||
337 | typedef struct {int x,y,info, dx, dy, I;} corner_rep; | ||
338 | typedef corner_rep CORNER_LIST[MAX_CORNERS]; | ||
339 | |||
340 | extern char susan_input[7292]; | ||
341 | struct wccFILE susan_file; | ||
342 | float susan_dt; | ||
343 | int susan_bt; | ||
344 | int susan_principle_conf; | ||
345 | int susan_thin_post_proc; | ||
346 | int susan_three_by_three; | ||
347 | int susan_drawing_mode; | ||
348 | int susan_susan_quick; | ||
349 | int susan_max_no_corners; | ||
350 | int susan_max_no_edges; | ||
351 | |||
352 | int susan_getint( struct wccFILE *fd ) | ||
353 | { | ||
354 | int c, i; | ||
355 | char dummy[10000]; | ||
356 | |||
357 | c = susan_wccfgetc(fd); | ||
358 | _Pragma( "loopbound min 1 max 4" ) | ||
359 | while (1) { /* find next integer */ | ||
360 | if (c=='#') /* if we're at a comment, read to end of line */ | ||
361 | susan_wccfgets(dummy,9000,fd); | ||
362 | if (c==EOFX) { | ||
363 | /* "Image is not binary PGM." */ | ||
364 | } | ||
365 | if (c>='0' && c<='9') | ||
366 | break; /* found what we were looking for */ | ||
367 | c = susan_wccfgetc(fd); | ||
368 | } | ||
369 | |||
370 | /* we're at the start of a number, continue until we hit a non-number */ | ||
371 | i = 0; | ||
372 | _Pragma( "loopbound min 2 max 3" ) | ||
373 | while (1) { | ||
374 | i = (i*10) + (c - '0'); | ||
375 | c = susan_wccfgetc(fd); | ||
376 | if (c==EOFX) return (i); | ||
377 | if (c<'0' || c>'9') break; | ||
378 | } | ||
379 | |||
380 | return (i); | ||
381 | } | ||
382 | |||
383 | |||
384 | void susan_get_image( struct wccFILE *fd, | ||
385 | unsigned char **in, int *x_size, int *y_size ) | ||
386 | { | ||
387 | char header [100]; | ||
388 | |||
389 | susan_wccfseek( fd, 0, WCCSEEK_SET ); | ||
390 | |||
391 | /* {{{ read header */ | ||
392 | |||
393 | header[0]=susan_wccfgetc( fd ); | ||
394 | header[1]=susan_wccfgetc( fd ); | ||
395 | if(!(header[0]=='P' && header[1]=='5')) { | ||
396 | /* "Image does not have binary PGM header." */ | ||
397 | } | ||
398 | |||
399 | *x_size = susan_getint(fd); | ||
400 | *y_size = susan_getint(fd); | ||
401 | // dummy read | ||
402 | susan_getint(fd); | ||
403 | |||
404 | /* }}} */ | ||
405 | |||
406 | *in = (uchar *) susan_wccmalloc(*x_size * *y_size); | ||
407 | |||
408 | if (susan_wccfread(*in,1,*x_size * *y_size,fd) == 0) { | ||
409 | /* "Image is wrong size.\n" */ | ||
410 | } | ||
411 | } | ||
412 | |||
413 | |||
414 | void susan_put_image( int x_size, int y_size ) | ||
415 | { | ||
416 | int i; | ||
417 | _Pragma( "loopbound min 7220 max 7220" ) | ||
418 | for ( i = 0; i < x_size*y_size; i++ ) { | ||
419 | ; | ||
420 | } | ||
421 | } | ||
422 | |||
423 | |||
424 | void susan_int_to_uchar( char *r, uchar *in, int size ) | ||
425 | { | ||
426 | int i, max_r=r[0], min_r=r[0]; | ||
427 | |||
428 | _Pragma( "loopbound min 0 max 0" ) | ||
429 | for (i=0; i<size; i++) { | ||
430 | if ( r[i] > max_r ) | ||
431 | max_r=r[i]; | ||
432 | if ( r[i] < min_r ) | ||
433 | min_r=r[i]; | ||
434 | } | ||
435 | |||
436 | if (max_r == min_r) { | ||
437 | /* Should not occur in TACLeBench. */ | ||
438 | _Pragma( "loopbound min 0 max 0" ) | ||
439 | for (i=0; i<size; i++) { | ||
440 | in[i] = (uchar)(0); | ||
441 | } | ||
442 | |||
443 | return; | ||
444 | } | ||
445 | max_r-=min_r; | ||
446 | |||
447 | _Pragma( "loopbound min 0 max 0" ) | ||
448 | for (i=0; i<size; i++) { | ||
449 | in[i] = (uchar)((int)((int)(r[i]-min_r)*255)/max_r); | ||
450 | } | ||
451 | } | ||
452 | |||
453 | |||
454 | void susan_setup_brightness_lut( uchar **bp, int thresh, int form ) | ||
455 | { | ||
456 | int k; | ||
457 | float temp; | ||
458 | |||
459 | *bp=(unsigned char *)susan_wccmalloc(516); | ||
460 | *bp=*bp+258; | ||
461 | |||
462 | _Pragma( "loopbound min 513 max 513" ) | ||
463 | for(k=-256;k<257;k++) { | ||
464 | temp=((float)k)/((float)thresh); | ||
465 | temp=temp*temp; | ||
466 | if (form==6) | ||
467 | temp=temp*temp*temp; | ||
468 | temp=100.0*susan_expf(-temp); | ||
469 | *(*bp+k)= (uchar)temp; | ||
470 | } | ||
471 | } | ||
472 | |||
473 | |||
474 | void susan_principle( uchar *in, char *r, uchar *bp, | ||
475 | int max_no, int x_size, int y_size ) | ||
476 | { | ||
477 | int i, j, n; | ||
478 | uchar *p,*cp; | ||
479 | |||
480 | susan_wccmemset(r,0,x_size * y_size * sizeof(int)); | ||
481 | |||
482 | _Pragma( "loopbound min 0 max 0" ) | ||
483 | for (i=3;i<y_size-3;i++) { | ||
484 | _Pragma( "loopbound min 0 max 0" ) | ||
485 | for (j=3;j<x_size-3;j++) { | ||
486 | n=100; | ||
487 | p=in + (i-3)*x_size + j - 1; | ||
488 | cp=bp + in[i*x_size+j]; | ||
489 | |||
490 | n+=*(cp-*p++); | ||
491 | n+=*(cp-*p++); | ||
492 | n+=*(cp-*p); | ||
493 | p+=x_size-3; | ||
494 | |||
495 | n+=*(cp-*p++); | ||
496 | n+=*(cp-*p++); | ||
497 | n+=*(cp-*p++); | ||
498 | n+=*(cp-*p++); | ||
499 | n+=*(cp-*p); | ||
500 | p+=x_size-5; | ||
501 | |||
502 | n+=*(cp-*p++); | ||
503 | n+=*(cp-*p++); | ||
504 | n+=*(cp-*p++); | ||
505 | n+=*(cp-*p++); | ||
506 | n+=*(cp-*p++); | ||
507 | n+=*(cp-*p++); | ||
508 | n+=*(cp-*p); | ||
509 | p+=x_size-6; | ||
510 | |||
511 | n+=*(cp-*p++); | ||
512 | n+=*(cp-*p++); | ||
513 | n+=*(cp-*p); | ||
514 | p+=2; | ||
515 | n+=*(cp-*p++); | ||
516 | n+=*(cp-*p++); | ||
517 | n+=*(cp-*p); | ||
518 | p+=x_size-6; | ||
519 | |||
520 | n+=*(cp-*p++); | ||
521 | n+=*(cp-*p++); | ||
522 | n+=*(cp-*p++); | ||
523 | n+=*(cp-*p++); | ||
524 | n+=*(cp-*p++); | ||
525 | n+=*(cp-*p++); | ||
526 | n+=*(cp-*p); | ||
527 | p+=x_size-5; | ||
528 | |||
529 | n+=*(cp-*p++); | ||
530 | n+=*(cp-*p++); | ||
531 | n+=*(cp-*p++); | ||
532 | n+=*(cp-*p++); | ||
533 | n+=*(cp-*p); | ||
534 | p+=x_size-3; | ||
535 | |||
536 | n+=*(cp-*p++); | ||
537 | n+=*(cp-*p++); | ||
538 | n+=*(cp-*p); | ||
539 | |||
540 | if (n<=max_no) | ||
541 | r[i*x_size+j] = max_no - n; | ||
542 | } | ||
543 | } | ||
544 | } | ||
545 | |||
546 | |||
547 | void susan_principle_small( uchar *in, char *r, uchar *bp, | ||
548 | int max_no, int x_size, int y_size ) | ||
549 | { | ||
550 | int i, j, n; | ||
551 | uchar *p,*cp; | ||
552 | |||
553 | susan_wccmemset(r,0,x_size * y_size * sizeof(int)); | ||
554 | |||
555 | _Pragma( "loopbound min 0 max 0" ) | ||
556 | for (i=1;i<y_size-1;i++) { | ||
557 | _Pragma( "loopbound min 0 max 0" ) | ||
558 | for (j=1;j<x_size-1;j++) { | ||
559 | n=100; | ||
560 | p=in + (i-1)*x_size + j - 1; | ||
561 | cp=bp + in[i*x_size+j]; | ||
562 | |||
563 | n+=*(cp-*p++); | ||
564 | n+=*(cp-*p++); | ||
565 | n+=*(cp-*p); | ||
566 | p+=x_size-2; | ||
567 | |||
568 | n+=*(cp-*p); | ||
569 | p+=2; | ||
570 | n+=*(cp-*p); | ||
571 | p+=x_size-2; | ||
572 | |||
573 | n+=*(cp-*p++); | ||
574 | n+=*(cp-*p++); | ||
575 | n+=*(cp-*p); | ||
576 | |||
577 | if (n<=max_no) | ||
578 | r[i*x_size+j] = max_no - n; | ||
579 | } | ||
580 | } | ||
581 | } | ||
582 | |||
583 | |||
584 | uchar susan_median( uchar *in, int i, int j, int x_size ) | ||
585 | { | ||
586 | int p[8],k,l,tmp; | ||
587 | |||
588 | p[0]=in[(i-1)*x_size+j-1]; | ||
589 | p[1]=in[(i-1)*x_size+j ]; | ||
590 | p[2]=in[(i-1)*x_size+j+1]; | ||
591 | p[3]=in[(i )*x_size+j-1]; | ||
592 | p[4]=in[(i )*x_size+j+1]; | ||
593 | p[5]=in[(i+1)*x_size+j-1]; | ||
594 | p[6]=in[(i+1)*x_size+j ]; | ||
595 | p[7]=in[(i+1)*x_size+j+1]; | ||
596 | |||
597 | _Pragma( "loopbound min 0 max 0" ) | ||
598 | for(k=0; k<7; k++) { | ||
599 | _Pragma( "loopbound min 0 max 0" ) | ||
600 | for(l=0; l<(7-k); l++) { | ||
601 | if (p[l]>p[l+1]) { | ||
602 | tmp=p[l]; | ||
603 | p[l]=p[l+1]; | ||
604 | p[l+1]=tmp; | ||
605 | } | ||
606 | } | ||
607 | } | ||
608 | |||
609 | return( (p[3]+p[4]) / 2 ); | ||
610 | } | ||
611 | |||
612 | |||
613 | /* this enlarges "in" so that borders can be dealt with easily */ | ||
614 | void susan_enlarge( uchar **in, uchar *tmp_image, | ||
615 | int *x_size, int *y_size, int border ) | ||
616 | { | ||
617 | int i, j; | ||
618 | |||
619 | _Pragma( "loopbound min 95 max 95" ) | ||
620 | for(i=0; i<*y_size; i++) { /* copy *in into tmp_image */ | ||
621 | susan_wccmemcpy( tmp_image+(i+border)*(*x_size+2*border)+border, | ||
622 | *in+i* *x_size, *x_size); | ||
623 | } | ||
624 | |||
625 | _Pragma( "loopbound min 7 max 7" ) | ||
626 | for(i=0; i<border; i++) { /* copy top and bottom rows; invert as many as necessary */ | ||
627 | susan_wccmemcpy( tmp_image+(border-1-i)*(*x_size+2*border)+border, | ||
628 | *in+i* *x_size,*x_size); | ||
629 | susan_wccmemcpy( tmp_image+(*y_size+border+i)*(*x_size+2*border)+border, | ||
630 | *in+(*y_size-i-1)* *x_size,*x_size); | ||
631 | } | ||
632 | |||
633 | _Pragma( "loopbound min 7 max 7" ) | ||
634 | for(i=0; i<border; i++) { /* copy left and right columns */ | ||
635 | _Pragma( "loopbound min 109 max 109" ) | ||
636 | for(j=0; j<*y_size+2*border; j++) { | ||
637 | tmp_image[j*(*x_size+2*border)+border-1-i]=tmp_image[j*(*x_size+2*border)+border+i]; | ||
638 | tmp_image[j*(*x_size+2*border)+ *x_size+border+i]=tmp_image[j*(*x_size+2*border)+ *x_size+border-1-i]; | ||
639 | } | ||
640 | } | ||
641 | |||
642 | *x_size+=2*border; /* alter image size */ | ||
643 | *y_size+=2*border; | ||
644 | *in=tmp_image; /* repoint in */ | ||
645 | } | ||
646 | |||
647 | |||
648 | void susan_smoothing( int three_by_three, uchar *in, float dt, | ||
649 | int x_size, int y_size, uchar *bp ) | ||
650 | { | ||
651 | float temp; | ||
652 | int n_max, increment, mask_size, | ||
653 | i,j,x,y,area,brightness,tmp,centre; | ||
654 | uchar *ip, *dp, *dpt, *cp, *out=in, | ||
655 | *tmp_image; | ||
656 | TOTAL_TYPE total; | ||
657 | |||
658 | /* {{{ setup larger image and border sizes */ | ||
659 | |||
660 | if (three_by_three==0) | ||
661 | mask_size = ((int)(1.5 * dt)) + 1; | ||
662 | else | ||
663 | mask_size = 1; | ||
664 | |||
665 | if ( dt>15 ) { | ||
666 | /* "Distance_thresh too big for integer arithmetic." */ | ||
667 | // Either reduce it to <=15 or recompile with variable "total" | ||
668 | // as a float: see top "defines" section. | ||
669 | } | ||
670 | |||
671 | if ( (2*mask_size+1>x_size) || (2*mask_size+1>y_size) ) { | ||
672 | /* "Mask size too big for image." */ | ||
673 | } | ||
674 | |||
675 | tmp_image = (uchar *)susan_wccmalloc( (x_size+mask_size*2) * (y_size+mask_size*2) ); | ||
676 | susan_enlarge(&in,tmp_image,&x_size,&y_size,mask_size); | ||
677 | |||
678 | if (three_by_three==0) { | ||
679 | /* large Gaussian masks */ | ||
680 | /* {{{ setup distance lut */ | ||
681 | |||
682 | n_max = (mask_size*2) + 1; | ||
683 | |||
684 | increment = x_size - n_max; | ||
685 | |||
686 | dp = (unsigned char *)susan_wccmalloc(n_max*n_max); | ||
687 | dpt = dp; | ||
688 | temp = -(dt*dt); | ||
689 | |||
690 | _Pragma( "loopbound min 15 max 15" ) | ||
691 | for(i=-mask_size; i<=mask_size; i++) { | ||
692 | _Pragma( "loopbound min 15 max 15" ) | ||
693 | for(j=-mask_size; j<=mask_size; j++) { | ||
694 | x = (int) (100.0 * susan_expf( ((float)((i*i)+(j*j))) / temp )); | ||
695 | *dpt++ = (unsigned char)x; | ||
696 | } | ||
697 | } | ||
698 | |||
699 | /* {{{ main section */ | ||
700 | |||
701 | _Pragma( "loopbound min 95 max 95" ) | ||
702 | for (i=mask_size;i<y_size-mask_size;i++) { | ||
703 | _Pragma( "loopbound min 76 max 76" ) | ||
704 | for (j=mask_size;j<x_size-mask_size;j++) { | ||
705 | area = 0; | ||
706 | total = 0; | ||
707 | dpt = dp; | ||
708 | ip = in + ((i-mask_size)*x_size) + j - mask_size; | ||
709 | centre = in[i*x_size+j]; | ||
710 | cp = bp + centre; | ||
711 | _Pragma( "loopbound min 15 max 15" ) | ||
712 | for(y=-mask_size; y<=mask_size; y++) { | ||
713 | _Pragma( "loopbound min 15 max 15" ) | ||
714 | for(x=-mask_size; x<=mask_size; x++) { | ||
715 | brightness = *ip++; | ||
716 | tmp = *dpt++ * *(cp-brightness); | ||
717 | area += tmp; | ||
718 | total += tmp * brightness; | ||
719 | } | ||
720 | ip += increment; | ||
721 | } | ||
722 | tmp = area-10000; | ||
723 | if (tmp==0) | ||
724 | *out++=susan_median(in,i,j,x_size); | ||
725 | else | ||
726 | *out++=((total-(centre*10000))/tmp); | ||
727 | } | ||
728 | } | ||
729 | } else { | ||
730 | /* 3x3 constant mask */ | ||
731 | |||
732 | /* {{{ main section */ | ||
733 | |||
734 | _Pragma( "loopbound min 15 max 15" ) | ||
735 | for (i=1;i<y_size-1;i++) { | ||
736 | _Pragma( "loopbound min 15 max 15" ) | ||
737 | for (j=1;j<x_size-1;j++) { | ||
738 | area = 0; | ||
739 | total = 0; | ||
740 | ip = in + ((i-1)*x_size) + j - 1; | ||
741 | centre = in[i*x_size+j]; | ||
742 | cp = bp + centre; | ||
743 | |||
744 | brightness=*ip++; tmp=*(cp-brightness); area += tmp; total += tmp * brightness; | ||
745 | brightness=*ip++; tmp=*(cp-brightness); area += tmp; total += tmp * brightness; | ||
746 | brightness=*ip; tmp=*(cp-brightness); area += tmp; total += tmp * brightness; | ||
747 | ip += x_size-2; | ||
748 | brightness=*ip++; tmp=*(cp-brightness); area += tmp; total += tmp * brightness; | ||
749 | brightness=*ip++; tmp=*(cp-brightness); area += tmp; total += tmp * brightness; | ||
750 | brightness=*ip; tmp=*(cp-brightness); area += tmp; total += tmp * brightness; | ||
751 | ip += x_size-2; | ||
752 | brightness=*ip++; tmp=*(cp-brightness); area += tmp; total += tmp * brightness; | ||
753 | brightness=*ip++; tmp=*(cp-brightness); area += tmp; total += tmp * brightness; | ||
754 | brightness=*ip; tmp=*(cp-brightness); area += tmp; total += tmp * brightness; | ||
755 | |||
756 | tmp = area-100; | ||
757 | if (tmp==0) | ||
758 | *out++=susan_median(in,i,j,x_size); | ||
759 | else | ||
760 | *out++=(total-(centre*100))/tmp; | ||
761 | } | ||
762 | } | ||
763 | } | ||
764 | } | ||
765 | |||
766 | |||
767 | void susan_edge_draw( uchar *in, uchar *mid, | ||
768 | int x_size, int y_size, int drawing_mode ) | ||
769 | { | ||
770 | int i; | ||
771 | uchar *inp, *midp; | ||
772 | |||
773 | if (drawing_mode==0) { | ||
774 | /* mark 3x3 white block around each edge point */ | ||
775 | midp=mid; | ||
776 | _Pragma( "loopbound min 7220 max 7220" ) | ||
777 | for (i=0; i<x_size*y_size; i++) { | ||
778 | if (*midp<8) { | ||
779 | inp = in + (midp - mid) - x_size - 1; | ||
780 | *inp++=255; *inp++=255; *inp=255; inp+=x_size-2; | ||
781 | *inp++=255; inp++; *inp=255; inp+=x_size-2; | ||
782 | *inp++=255; *inp++=255; *inp=255; | ||
783 | } | ||
784 | midp++; | ||
785 | } | ||
786 | } | ||
787 | |||
788 | /* now mark 1 black pixel at each edge point */ | ||
789 | midp=mid; | ||
790 | _Pragma( "loopbound min 7220 max 7220" ) | ||
791 | for (i=0; i<x_size*y_size; i++) { | ||
792 | if (*midp<8) | ||
793 | *(in + (midp - mid)) = 0; | ||
794 | midp++; | ||
795 | } | ||
796 | } | ||
797 | |||
798 | |||
799 | void susan_thin( char *r, uchar *mid, int x_size, int y_size ) | ||
800 | { | ||
801 | int l[9], centre, | ||
802 | b01, b12, b21, b10, | ||
803 | p1, p2, p3, p4, | ||
804 | b00, b02, b20, b22, | ||
805 | m, n, a, b, x, y, i, j; | ||
806 | uchar *mp; | ||
807 | |||
808 | _Pragma( "loopbound min 87 max 87" ) | ||
809 | for (i=4;i<y_size-4;i++) { | ||
810 | _Pragma( "loopbound min 68 max 68" ) | ||
811 | for (j=4;j<x_size-4;j++) { | ||
812 | if (mid[i*x_size+j]<8) { | ||
813 | centre = r[i*x_size+j]; | ||
814 | /* {{{ count number of neighbours */ | ||
815 | |||
816 | mp=mid + (i-1)*x_size + j-1; | ||
817 | |||
818 | n = (*mp<8) + | ||
819 | (*(mp+1)<8) + | ||
820 | (*(mp+2)<8) + | ||
821 | (*(mp+x_size)<8) + | ||
822 | (*(mp+x_size+2)<8) + | ||
823 | (*(mp+x_size+x_size)<8) + | ||
824 | (*(mp+x_size+x_size+1)<8) + | ||
825 | (*(mp+x_size+x_size+2)<8); | ||
826 | |||
827 | /* {{{ n==0 no neighbours - remove point */ | ||
828 | |||
829 | if (n==0) | ||
830 | mid[i*x_size+j]=100; | ||
831 | |||
832 | /* {{{ n==1 - extend line if I can */ | ||
833 | |||
834 | /* extension is only allowed a few times - the value of mid is used to control this */ | ||
835 | |||
836 | if ( (n==1) && (mid[i*x_size+j]<6) ) { | ||
837 | /* find maximum neighbour weighted in direction opposite the | ||
838 | neighbour already present. e.g. | ||
839 | have: O O O weight r by 0 2 3 | ||
840 | X X O 0 0 4 | ||
841 | O O O 0 2 3 */ | ||
842 | |||
843 | l[0]=r[(i-1)*x_size+j-1]; l[1]=r[(i-1)*x_size+j]; l[2]=r[(i-1)*x_size+j+1]; | ||
844 | l[3]=r[(i )*x_size+j-1]; l[4]=0; l[5]=r[(i )*x_size+j+1]; | ||
845 | l[6]=r[(i+1)*x_size+j-1]; l[7]=r[(i+1)*x_size+j]; l[8]=r[(i+1)*x_size+j+1]; | ||
846 | |||
847 | if (mid[(i-1)*x_size+j-1]<8) { l[0]=0; l[1]=0; l[3]=0; l[2]*=2; | ||
848 | l[6]*=2; l[5]*=3; l[7]*=3; l[8]*=4; } | ||
849 | else { if (mid[(i-1)*x_size+j]<8) { l[1]=0; l[0]=0; l[2]=0; l[3]*=2; | ||
850 | l[5]*=2; l[6]*=3; l[8]*=3; l[7]*=4; } | ||
851 | else { if (mid[(i-1)*x_size+j+1]<8) { l[2]=0; l[1]=0; l[5]=0; l[0]*=2; | ||
852 | l[8]*=2; l[3]*=3; l[7]*=3; l[6]*=4; } | ||
853 | else { if (mid[(i)*x_size+j-1]<8) { l[3]=0; l[0]=0; l[6]=0; l[1]*=2; | ||
854 | l[7]*=2; l[2]*=3; l[8]*=3; l[5]*=4; } | ||
855 | else { if (mid[(i)*x_size+j+1]<8) { l[5]=0; l[2]=0; l[8]=0; l[1]*=2; | ||
856 | l[7]*=2; l[0]*=3; l[6]*=3; l[3]*=4; } | ||
857 | else { if (mid[(i+1)*x_size+j-1]<8) { l[6]=0; l[3]=0; l[7]=0; l[0]*=2; | ||
858 | l[8]*=2; l[1]*=3; l[5]*=3; l[2]*=4; } | ||
859 | else { if (mid[(i+1)*x_size+j]<8) { l[7]=0; l[6]=0; l[8]=0; l[3]*=2; | ||
860 | l[5]*=2; l[0]*=3; l[2]*=3; l[1]*=4; } | ||
861 | else { if (mid[(i+1)*x_size+j+1]<8) { l[8]=0; l[5]=0; l[7]=0; l[6]*=2; | ||
862 | l[2]*=2; l[1]*=3; l[3]*=3; l[0]*=4; } }}}}}}} | ||
863 | |||
864 | m=0; /* find the highest point */ | ||
865 | _Pragma( "loopbound min 3 max 3" ) | ||
866 | for(y=0; y<3; y++) | ||
867 | _Pragma( "loopbound min 3 max 3" ) | ||
868 | for(x=0; x<3; x++) | ||
869 | if (l[y+y+y+x]>m) { m=l[y+y+y+x]; a=y; b=x; } | ||
870 | |||
871 | if (m>0) { | ||
872 | if (mid[i*x_size+j]<4) | ||
873 | mid[(i+a-1)*x_size+j+b-1] = 4; | ||
874 | else | ||
875 | mid[(i+a-1)*x_size+j+b-1] = mid[i*x_size+j]+1; | ||
876 | if ( (a+a+b) < 3 ) { /* need to jump back in image */ | ||
877 | i+=a-1; | ||
878 | j+=b-2; | ||
879 | if (i<4) i=4; | ||
880 | if (j<4) j=4; | ||
881 | } | ||
882 | } | ||
883 | } | ||
884 | |||
885 | /* {{{ n==2 */ | ||
886 | |||
887 | if (n==2) { | ||
888 | /* put in a bit here to straighten edges */ | ||
889 | b00 = mid[(i-1)*x_size+j-1]<8; /* corners of 3x3 */ | ||
890 | b02 = mid[(i-1)*x_size+j+1]<8; | ||
891 | b20 = mid[(i+1)*x_size+j-1]<8; | ||
892 | b22 = mid[(i+1)*x_size+j+1]<8; | ||
893 | if ( ((b00+b02+b20+b22)==2) && ((b00|b22)&(b02|b20))) { | ||
894 | /* case: move a point back into line. | ||
895 | e.g. X O X CAN become X X X | ||
896 | O X O O O O | ||
897 | O O O O O O */ | ||
898 | if (b00) { | ||
899 | if (b02) { x=0; y=-1; } | ||
900 | else { x=-1; y=0; } | ||
901 | } else { | ||
902 | if (b02) { x=1; y=0; } | ||
903 | else { x=0; y=1; } | ||
904 | } | ||
905 | if (((float)r[(i+y)*x_size+j+x]/(float)centre) > 0.7) { | ||
906 | if ( ( (x==0) && (mid[(i+(2*y))*x_size+j]>7) && (mid[(i+(2*y))*x_size+j-1]>7) && (mid[(i+(2*y))*x_size+j+1]>7) ) || | ||
907 | ( (y==0) && (mid[(i)*x_size+j+(2*x)]>7) && (mid[(i+1)*x_size+j+(2*x)]>7) && (mid[(i-1)*x_size+j+(2*x)]>7) ) ) { | ||
908 | mid[(i)*x_size+j]=100; | ||
909 | mid[(i+y)*x_size+j+x]=3; /* no jumping needed */ | ||
910 | } | ||
911 | } | ||
912 | } else { | ||
913 | b01 = mid[(i-1)*x_size+j ]<8; | ||
914 | b12 = mid[(i )*x_size+j+1]<8; | ||
915 | b21 = mid[(i+1)*x_size+j ]<8; | ||
916 | b10 = mid[(i )*x_size+j-1]<8; | ||
917 | /* {{{ right angle ends - not currently used */ | ||
918 | |||
919 | #ifdef IGNORETHIS | ||
920 | if ( (b00&b01)|(b00&b10)|(b02&b01)|(b02&b12)|(b20&b10)|(b20&b21)|(b22&b21)|(b22&b12) ) { | ||
921 | /* case; right angle ends. clean up. | ||
922 | e.g.; X X O CAN become X X O | ||
923 | O X O O O O | ||
924 | O O O O O O */ | ||
925 | if ( ((b01)&(mid[(i-2)*x_size+j-1]>7)&(mid[(i-2)*x_size+j]>7)&(mid[(i-2)*x_size+j+1]>7)& | ||
926 | ((b00&((2*r[(i-1)*x_size+j+1])>centre))|(b02&((2*r[(i-1)*x_size+j-1])>centre)))) | | ||
927 | ((b10)&(mid[(i-1)*x_size+j-2]>7)&(mid[(i)*x_size+j-2]>7)&(mid[(i+1)*x_size+j-2]>7)& | ||
928 | ((b00&((2*r[(i+1)*x_size+j-1])>centre))|(b20&((2*r[(i-1)*x_size+j-1])>centre)))) | | ||
929 | ((b12)&(mid[(i-1)*x_size+j+2]>7)&(mid[(i)*x_size+j+2]>7)&(mid[(i+1)*x_size+j+2]>7)& | ||
930 | ((b02&((2*r[(i+1)*x_size+j+1])>centre))|(b22&((2*r[(i-1)*x_size+j+1])>centre)))) | | ||
931 | ((b21)&(mid[(i+2)*x_size+j-1]>7)&(mid[(i+2)*x_size+j]>7)&(mid[(i+2)*x_size+j+1]>7)& | ||
932 | ((b20&((2*r[(i+1)*x_size+j+1])>centre))|(b22&((2*r[(i+1)*x_size+j-1])>centre)))) ) { | ||
933 | mid[(i)*x_size+j]=100; | ||
934 | if (b10&b20) j-=2; | ||
935 | if (b00|b01|b02) { i--; j-=2; } | ||
936 | } | ||
937 | } | ||
938 | #endif | ||
939 | |||
940 | if ( ((b01+b12+b21+b10)==2) && ((b10|b12)&(b01|b21)) && | ||
941 | ((b01&((mid[(i-2)*x_size+j-1]<8)|(mid[(i-2)*x_size+j+1]<8)))|(b10&((mid[(i-1)*x_size+j-2]<8)|(mid[(i+1)*x_size+j-2]<8)))| | ||
942 | (b12&((mid[(i-1)*x_size+j+2]<8)|(mid[(i+1)*x_size+j+2]<8)))|(b21&((mid[(i+2)*x_size+j-1]<8)|(mid[(i+2)*x_size+j+1]<8)))) ) { | ||
943 | /* case; clears odd right angles. | ||
944 | e.g.; O O O becomes O O O | ||
945 | X X O X O O | ||
946 | O X O O X O */ | ||
947 | mid[(i)*x_size+j]=100; | ||
948 | i--; /* jump back */ | ||
949 | j-=2; | ||
950 | if (i<4) i=4; | ||
951 | if (j<4) j=4; | ||
952 | } | ||
953 | } | ||
954 | } | ||
955 | |||
956 | /* {{{ n>2 the thinning is done here without breaking connectivity */ | ||
957 | |||
958 | if (n>2) { | ||
959 | b01 = mid[(i-1)*x_size+j ]<8; | ||
960 | b12 = mid[(i )*x_size+j+1]<8; | ||
961 | b21 = mid[(i+1)*x_size+j ]<8; | ||
962 | b10 = mid[(i )*x_size+j-1]<8; | ||
963 | if((b01+b12+b21+b10)>1) { | ||
964 | b00 = mid[(i-1)*x_size+j-1]<8; | ||
965 | b02 = mid[(i-1)*x_size+j+1]<8; | ||
966 | b20 = mid[(i+1)*x_size+j-1]<8; | ||
967 | b22 = mid[(i+1)*x_size+j+1]<8; | ||
968 | p1 = b00 | b01; | ||
969 | p2 = b02 | b12; | ||
970 | p3 = b22 | b21; | ||
971 | p4 = b20 | b10; | ||
972 | |||
973 | if( ((p1 + p2 + p3 + p4) - ((b01 & p2)+(b12 & p3)+(b21 & p4)+(b10 & p1))) < 2) { | ||
974 | mid[(i)*x_size+j]=100; | ||
975 | i--; | ||
976 | j-=2; | ||
977 | if (i<4) i=4; | ||
978 | if (j<4) j=4; | ||
979 | } | ||
980 | } | ||
981 | } | ||
982 | } | ||
983 | } | ||
984 | } | ||
985 | } | ||
986 | |||
987 | |||
988 | void susan_edges( uchar *in, char *r, uchar *mid, uchar *bp, | ||
989 | int max_no, int x_size, int y_size ) | ||
990 | { | ||
991 | float z; | ||
992 | int do_symmetry, i, j, m, n, a, b, x, y, w; | ||
993 | uchar c,*p,*cp; | ||
994 | |||
995 | susan_wccmemset(r,0,x_size * y_size); | ||
996 | |||
997 | _Pragma( "loopbound min 89 max 89" ) | ||
998 | for (i=3;i<y_size-3;i++) { | ||
999 | _Pragma( "loopbound min 70 max 70" ) | ||
1000 | for (j=3;j<x_size-3;j++) { | ||
1001 | n=100; | ||
1002 | p=in + (i-3)*x_size + j - 1; | ||
1003 | cp=bp + in[i*x_size+j]; | ||
1004 | |||
1005 | n+=*(cp-*p++); | ||
1006 | n+=*(cp-*p++); | ||
1007 | n+=*(cp-*p); | ||
1008 | p+=x_size-3; | ||
1009 | |||
1010 | n+=*(cp-*p++); | ||
1011 | n+=*(cp-*p++); | ||
1012 | n+=*(cp-*p++); | ||
1013 | n+=*(cp-*p++); | ||
1014 | n+=*(cp-*p); | ||
1015 | p+=x_size-5; | ||
1016 | |||
1017 | n+=*(cp-*p++); | ||
1018 | n+=*(cp-*p++); | ||
1019 | n+=*(cp-*p++); | ||
1020 | n+=*(cp-*p++); | ||
1021 | n+=*(cp-*p++); | ||
1022 | n+=*(cp-*p++); | ||
1023 | n+=*(cp-*p); | ||
1024 | p+=x_size-6; | ||
1025 | |||
1026 | n+=*(cp-*p++); | ||
1027 | n+=*(cp-*p++); | ||
1028 | n+=*(cp-*p); | ||
1029 | p+=2; | ||
1030 | n+=*(cp-*p++); | ||
1031 | n+=*(cp-*p++); | ||
1032 | n+=*(cp-*p); | ||
1033 | p+=x_size-6; | ||
1034 | |||
1035 | n+=*(cp-*p++); | ||
1036 | n+=*(cp-*p++); | ||
1037 | n+=*(cp-*p++); | ||
1038 | n+=*(cp-*p++); | ||
1039 | n+=*(cp-*p++); | ||
1040 | n+=*(cp-*p++); | ||
1041 | n+=*(cp-*p); | ||
1042 | p+=x_size-5; | ||
1043 | |||
1044 | n+=*(cp-*p++); | ||
1045 | n+=*(cp-*p++); | ||
1046 | n+=*(cp-*p++); | ||
1047 | n+=*(cp-*p++); | ||
1048 | n+=*(cp-*p); | ||
1049 | p+=x_size-3; | ||
1050 | |||
1051 | n+=*(cp-*p++); | ||
1052 | n+=*(cp-*p++); | ||
1053 | n+=*(cp-*p); | ||
1054 | |||
1055 | if (n<=max_no) | ||
1056 | r[i*x_size+j] = max_no - n; | ||
1057 | } | ||
1058 | } | ||
1059 | |||
1060 | _Pragma( "loopbound min 87 max 87" ) | ||
1061 | for (i=4;i<y_size-4;i++) { | ||
1062 | _Pragma( "loopbound min 68 max 68" ) | ||
1063 | for (j=4;j<x_size-4;j++) { | ||
1064 | if (r[i*x_size+j]>0) { | ||
1065 | m=r[i*x_size+j]; | ||
1066 | n=max_no - m; | ||
1067 | cp=bp + in[i*x_size+j]; | ||
1068 | |||
1069 | if (n>600) { | ||
1070 | p=in + (i-3)*x_size + j - 1; | ||
1071 | x=0;y=0; | ||
1072 | |||
1073 | c=*(cp-*p++);x-=c;y-=3*c; | ||
1074 | c=*(cp-*p++);y-=3*c; | ||
1075 | c=*(cp-*p);x+=c;y-=3*c; | ||
1076 | p+=x_size-3; | ||
1077 | |||
1078 | c=*(cp-*p++);x-=2*c;y-=2*c; | ||
1079 | c=*(cp-*p++);x-=c;y-=2*c; | ||
1080 | c=*(cp-*p++);y-=2*c; | ||
1081 | c=*(cp-*p++);x+=c;y-=2*c; | ||
1082 | c=*(cp-*p);x+=2*c;y-=2*c; | ||
1083 | p+=x_size-5; | ||
1084 | |||
1085 | c=*(cp-*p++);x-=3*c;y-=c; | ||
1086 | c=*(cp-*p++);x-=2*c;y-=c; | ||
1087 | c=*(cp-*p++);x-=c;y-=c; | ||
1088 | c=*(cp-*p++);y-=c; | ||
1089 | c=*(cp-*p++);x+=c;y-=c; | ||
1090 | c=*(cp-*p++);x+=2*c;y-=c; | ||
1091 | c=*(cp-*p);x+=3*c;y-=c; | ||
1092 | p+=x_size-6; | ||
1093 | |||
1094 | c=*(cp-*p++);x-=3*c; | ||
1095 | c=*(cp-*p++);x-=2*c; | ||
1096 | c=*(cp-*p);x-=c; | ||
1097 | p+=2; | ||
1098 | c=*(cp-*p++);x+=c; | ||
1099 | c=*(cp-*p++);x+=2*c; | ||
1100 | c=*(cp-*p);x+=3*c; | ||
1101 | p+=x_size-6; | ||
1102 | |||
1103 | c=*(cp-*p++);x-=3*c;y+=c; | ||
1104 | c=*(cp-*p++);x-=2*c;y+=c; | ||
1105 | c=*(cp-*p++);x-=c;y+=c; | ||
1106 | c=*(cp-*p++);y+=c; | ||
1107 | c=*(cp-*p++);x+=c;y+=c; | ||
1108 | c=*(cp-*p++);x+=2*c;y+=c; | ||
1109 | c=*(cp-*p);x+=3*c;y+=c; | ||
1110 | p+=x_size-5; | ||
1111 | |||
1112 | c=*(cp-*p++);x-=2*c;y+=2*c; | ||
1113 | c=*(cp-*p++);x-=c;y+=2*c; | ||
1114 | c=*(cp-*p++);y+=2*c; | ||
1115 | c=*(cp-*p++);x+=c;y+=2*c; | ||
1116 | c=*(cp-*p);x+=2*c;y+=2*c; | ||
1117 | p+=x_size-3; | ||
1118 | |||
1119 | c=*(cp-*p++);x-=c;y+=3*c; | ||
1120 | c=*(cp-*p++);y+=3*c; | ||
1121 | c=*(cp-*p);x+=c;y+=3*c; | ||
1122 | |||
1123 | z = susan_sqrtf((float)((x*x) + (y*y))); | ||
1124 | if (z > (0.9*(float)n)) { /* 0.5 */ | ||
1125 | do_symmetry=0; | ||
1126 | if (x==0) | ||
1127 | z=1000000.0; | ||
1128 | else | ||
1129 | z=((float)y) / ((float)x); | ||
1130 | if (z < 0) { z=-z; w=-1; } | ||
1131 | else w=1; | ||
1132 | if (z < 0.5) { /* vert_edge */ a=0; b=1; } | ||
1133 | else { if (z > 2.0) { /* hor_edge */ a=1; b=0; } | ||
1134 | else { /* diag_edge */ if (w>0) { a=1; b=1; } | ||
1135 | else { a=-1; b=1; }}} | ||
1136 | if ( (m > r[(i+a)*x_size+j+b]) && (m >= r[(i-a)*x_size+j-b]) && | ||
1137 | (m > r[(i+(2*a))*x_size+j+(2*b)]) && (m >= r[(i-(2*a))*x_size+j-(2*b)]) ) | ||
1138 | mid[i*x_size+j] = 1; | ||
1139 | } else { | ||
1140 | do_symmetry=1; | ||
1141 | } | ||
1142 | } else { | ||
1143 | do_symmetry=1; | ||
1144 | } | ||
1145 | |||
1146 | if (do_symmetry==1) { | ||
1147 | p=in + (i-3)*x_size + j - 1; | ||
1148 | x=0; y=0; w=0; | ||
1149 | |||
1150 | /* | \ | ||
1151 | y -x- w | ||
1152 | | \ */ | ||
1153 | |||
1154 | c=*(cp-*p++);x+=c;y+=9*c;w+=3*c; | ||
1155 | c=*(cp-*p++);y+=9*c; | ||
1156 | c=*(cp-*p);x+=c;y+=9*c;w-=3*c; | ||
1157 | p+=x_size-3; | ||
1158 | |||
1159 | c=*(cp-*p++);x+=4*c;y+=4*c;w+=4*c; | ||
1160 | c=*(cp-*p++);x+=c;y+=4*c;w+=2*c; | ||
1161 | c=*(cp-*p++);y+=4*c; | ||
1162 | c=*(cp-*p++);x+=c;y+=4*c;w-=2*c; | ||
1163 | c=*(cp-*p);x+=4*c;y+=4*c;w-=4*c; | ||
1164 | p+=x_size-5; | ||
1165 | |||
1166 | c=*(cp-*p++);x+=9*c;y+=c;w+=3*c; | ||
1167 | c=*(cp-*p++);x+=4*c;y+=c;w+=2*c; | ||
1168 | c=*(cp-*p++);x+=c;y+=c;w+=c; | ||
1169 | c=*(cp-*p++);y+=c; | ||
1170 | c=*(cp-*p++);x+=c;y+=c;w-=c; | ||
1171 | c=*(cp-*p++);x+=4*c;y+=c;w-=2*c; | ||
1172 | c=*(cp-*p);x+=9*c;y+=c;w-=3*c; | ||
1173 | p+=x_size-6; | ||
1174 | |||
1175 | c=*(cp-*p++);x+=9*c; | ||
1176 | c=*(cp-*p++);x+=4*c; | ||
1177 | c=*(cp-*p);x+=c; | ||
1178 | p+=2; | ||
1179 | c=*(cp-*p++);x+=c; | ||
1180 | c=*(cp-*p++);x+=4*c; | ||
1181 | c=*(cp-*p);x+=9*c; | ||
1182 | p+=x_size-6; | ||
1183 | |||
1184 | c=*(cp-*p++);x+=9*c;y+=c;w-=3*c; | ||
1185 | c=*(cp-*p++);x+=4*c;y+=c;w-=2*c; | ||
1186 | c=*(cp-*p++);x+=c;y+=c;w-=c; | ||
1187 | c=*(cp-*p++);y+=c; | ||
1188 | c=*(cp-*p++);x+=c;y+=c;w+=c; | ||
1189 | c=*(cp-*p++);x+=4*c;y+=c;w+=2*c; | ||
1190 | c=*(cp-*p);x+=9*c;y+=c;w+=3*c; | ||
1191 | p+=x_size-5; | ||
1192 | |||
1193 | c=*(cp-*p++);x+=4*c;y+=4*c;w-=4*c; | ||
1194 | c=*(cp-*p++);x+=c;y+=4*c;w-=2*c; | ||
1195 | c=*(cp-*p++);y+=4*c; | ||
1196 | c=*(cp-*p++);x+=c;y+=4*c;w+=2*c; | ||
1197 | c=*(cp-*p);x+=4*c;y+=4*c;w+=4*c; | ||
1198 | p+=x_size-3; | ||
1199 | |||
1200 | c=*(cp-*p++);x+=c;y+=9*c;w-=3*c; | ||
1201 | c=*(cp-*p++);y+=9*c; | ||
1202 | c=*(cp-*p);x+=c;y+=9*c;w+=3*c; | ||
1203 | |||
1204 | if (y==0) | ||
1205 | z = 1000000.0; | ||
1206 | else | ||
1207 | z = ((float)x) / ((float)y); | ||
1208 | if (z < 0.5) { /* vertical */ a=0; b=1; } | ||
1209 | else { if (z > 2.0) { /* horizontal */ a=1; b=0; } | ||
1210 | else { /* diagonal */ if (w>0) { a=-1; b=1; } | ||
1211 | else { a=1; b=1; }}} | ||
1212 | if ( (m > r[(i+a)*x_size+j+b]) && (m >= r[(i-a)*x_size+j-b]) && | ||
1213 | (m > r[(i+(2*a))*x_size+j+(2*b)]) && (m >= r[(i-(2*a))*x_size+j-(2*b)]) ) | ||
1214 | mid[i*x_size+j] = 2; | ||
1215 | } | ||
1216 | } | ||
1217 | } | ||
1218 | } | ||
1219 | } | ||
1220 | |||
1221 | |||
1222 | void susan_edges_small( uchar *in, char *r, uchar *mid, uchar *bp, | ||
1223 | int max_no, int x_size, int y_size ) | ||
1224 | { | ||
1225 | float z; | ||
1226 | int do_symmetry, i, j, m, n, a, b, x, y, w; | ||
1227 | uchar c,*p,*cp; | ||
1228 | |||
1229 | susan_wccmemset(r,0,x_size * y_size); | ||
1230 | |||
1231 | _Pragma( "loopbound min 0 max 0" ) | ||
1232 | for (i=1;i<y_size-1;i++) { | ||
1233 | _Pragma( "loopbound min 0 max 0" ) | ||
1234 | for (j=1;j<x_size-1;j++) { | ||
1235 | n=100; | ||
1236 | p=in + (i-1)*x_size + j - 1; | ||
1237 | cp=bp + in[i*x_size+j]; | ||
1238 | |||
1239 | n+=*(cp-*p++); | ||
1240 | n+=*(cp-*p++); | ||
1241 | n+=*(cp-*p); | ||
1242 | p+=x_size-2; | ||
1243 | |||
1244 | n+=*(cp-*p); | ||
1245 | p+=2; | ||
1246 | n+=*(cp-*p); | ||
1247 | p+=x_size-2; | ||
1248 | |||
1249 | n+=*(cp-*p++); | ||
1250 | n+=*(cp-*p++); | ||
1251 | n+=*(cp-*p); | ||
1252 | |||
1253 | if (n<=max_no) { | ||
1254 | r[i*x_size+j] = max_no - n; | ||
1255 | } | ||
1256 | } | ||
1257 | } | ||
1258 | |||
1259 | _Pragma( "loopbound min 0 max 0" ) | ||
1260 | for (i=2;i<y_size-2;i++) { | ||
1261 | _Pragma( "loopbound min 0 max 0" ) | ||
1262 | for (j=2;j<x_size-2;j++) { | ||
1263 | if (r[i*x_size+j]>0) { | ||
1264 | m=r[i*x_size+j]; | ||
1265 | n=max_no - m; | ||
1266 | cp=bp + in[i*x_size+j]; | ||
1267 | |||
1268 | if (n>250) { | ||
1269 | p=in + (i-1)*x_size + j - 1; | ||
1270 | x=0;y=0; | ||
1271 | |||
1272 | c=*(cp-*p++);x-=c;y-=c; | ||
1273 | c=*(cp-*p++);y-=c; | ||
1274 | c=*(cp-*p);x+=c;y-=c; | ||
1275 | p+=x_size-2; | ||
1276 | |||
1277 | c=*(cp-*p);x-=c; | ||
1278 | p+=2; | ||
1279 | c=*(cp-*p);x+=c; | ||
1280 | p+=x_size-2; | ||
1281 | |||
1282 | c=*(cp-*p++);x-=c;y+=c; | ||
1283 | c=*(cp-*p++);y+=c; | ||
1284 | c=*(cp-*p);x+=c;y+=c; | ||
1285 | |||
1286 | z = susan_sqrtf((float)((x*x) + (y*y))); | ||
1287 | if (z > (0.4*(float)n)) { /* 0.6 */ | ||
1288 | do_symmetry=0; | ||
1289 | if (x==0) | ||
1290 | z=1000000.0; | ||
1291 | else | ||
1292 | z=((float)y) / ((float)x); | ||
1293 | if (z < 0) { z=-z; w=-1; } | ||
1294 | else w=1; | ||
1295 | if (z < 0.5) { /* vert_edge */ a=0; b=1; } | ||
1296 | else { if (z > 2.0) { /* hor_edge */ a=1; b=0; } | ||
1297 | else { /* diag_edge */ if (w>0) { a=1; b=1; } | ||
1298 | else { a=-1; b=1; } | ||
1299 | } | ||
1300 | } | ||
1301 | if ( (m > r[(i+a)*x_size+j+b]) && (m >= r[(i-a)*x_size+j-b]) ) { | ||
1302 | mid[i*x_size+j] = 1; | ||
1303 | } | ||
1304 | } else { | ||
1305 | do_symmetry=1; | ||
1306 | } | ||
1307 | } else { | ||
1308 | do_symmetry=1; | ||
1309 | } | ||
1310 | |||
1311 | if (do_symmetry==1) { | ||
1312 | p=in + (i-1)*x_size + j - 1; | ||
1313 | x=0; y=0; w=0; | ||
1314 | |||
1315 | /* | \ | ||
1316 | y -x- w | ||
1317 | | \ */ | ||
1318 | |||
1319 | c=*(cp-*p++);x+=c;y+=c;w+=c; | ||
1320 | c=*(cp-*p++);y+=c; | ||
1321 | c=*(cp-*p);x+=c;y+=c;w-=c; | ||
1322 | p+=x_size-2; | ||
1323 | |||
1324 | c=*(cp-*p);x+=c; | ||
1325 | p+=2; | ||
1326 | c=*(cp-*p);x+=c; | ||
1327 | p+=x_size-2; | ||
1328 | |||
1329 | c=*(cp-*p++);x+=c;y+=c;w-=c; | ||
1330 | c=*(cp-*p++);y+=c; | ||
1331 | c=*(cp-*p);x+=c;y+=c;w+=c; | ||
1332 | |||
1333 | if (y==0) | ||
1334 | z = 1000000.0; | ||
1335 | else | ||
1336 | z = ((float)x) / ((float)y); | ||
1337 | if (z < 0.5) { /* vertical */ a=0; b=1; } | ||
1338 | else { if (z > 2.0) { /* horizontal */ a=1; b=0; } | ||
1339 | else { /* diagonal */ if (w>0) { a=-1; b=1; } | ||
1340 | else { a=1; b=1; } | ||
1341 | } | ||
1342 | } | ||
1343 | if ( (m > r[(i+a)*x_size+j+b]) && (m >= r[(i-a)*x_size+j-b]) ) { | ||
1344 | mid[i*x_size+j] = 2; | ||
1345 | } | ||
1346 | } | ||
1347 | } | ||
1348 | } | ||
1349 | } | ||
1350 | } | ||
1351 | |||
1352 | |||
1353 | void susan_corner_draw( uchar *in, CORNER_LIST corner_list, | ||
1354 | int x_size, int drawing_mode) | ||
1355 | { | ||
1356 | uchar *p; | ||
1357 | int n=0; | ||
1358 | |||
1359 | _Pragma( "loopbound min 0 max 0" ) | ||
1360 | while(corner_list[n].info != 7) { | ||
1361 | if (drawing_mode==0) { | ||
1362 | p = in + (corner_list[n].y-1)*x_size + corner_list[n].x - 1; | ||
1363 | *p++=255; *p++=255; *p=255; p+=x_size-2; | ||
1364 | *p++=255; *p++=0; *p=255; p+=x_size-2; | ||
1365 | *p++=255; *p++=255; *p=255; | ||
1366 | n++; | ||
1367 | } else { | ||
1368 | p = in + corner_list[n].y*x_size + corner_list[n].x; | ||
1369 | *p=0; | ||
1370 | n++; | ||
1371 | } | ||
1372 | } | ||
1373 | } | ||
1374 | |||
1375 | |||
1376 | void susan_corners( uchar *in, char *r, uchar *bp, | ||
1377 | int max_no, CORNER_LIST corner_list, int x_size, int y_size) | ||
1378 | { | ||
1379 | int n,x,y,sq,xx,yy, | ||
1380 | i,j; | ||
1381 | float divide; | ||
1382 | uchar c,*p,*cp; | ||
1383 | char *cgx,*cgy; | ||
1384 | |||
1385 | susan_wccmemset(r,0,x_size * y_size); | ||
1386 | |||
1387 | cgx=(char *)susan_wccmalloc(x_size*y_size); | ||
1388 | cgy=(char *)susan_wccmalloc(x_size*y_size); | ||
1389 | |||
1390 | _Pragma( "loopbound min 85 max 85" ) | ||
1391 | for (i=5;i<y_size-5;i++) { | ||
1392 | _Pragma( "loopbound min 66 max 66" ) | ||
1393 | for (j=5;j<x_size-5;j++) { | ||
1394 | n=100; | ||
1395 | p=in + (i-3)*x_size + j - 1; | ||
1396 | cp=bp + in[i*x_size+j]; | ||
1397 | |||
1398 | n+=*(cp-*p++); | ||
1399 | n+=*(cp-*p++); | ||
1400 | n+=*(cp-*p); | ||
1401 | p+=x_size-3; | ||
1402 | |||
1403 | n+=*(cp-*p++); | ||
1404 | n+=*(cp-*p++); | ||
1405 | n+=*(cp-*p++); | ||
1406 | n+=*(cp-*p++); | ||
1407 | n+=*(cp-*p); | ||
1408 | p+=x_size-5; | ||
1409 | |||
1410 | n+=*(cp-*p++); | ||
1411 | n+=*(cp-*p++); | ||
1412 | n+=*(cp-*p++); | ||
1413 | n+=*(cp-*p++); | ||
1414 | n+=*(cp-*p++); | ||
1415 | n+=*(cp-*p++); | ||
1416 | n+=*(cp-*p); | ||
1417 | p+=x_size-6; | ||
1418 | |||
1419 | n+=*(cp-*p++); | ||
1420 | n+=*(cp-*p++); | ||
1421 | n+=*(cp-*p); | ||
1422 | if (n<max_no){ /* do this test early and often ONLY to save wasted computation */ | ||
1423 | p+=2; | ||
1424 | n+=*(cp-*p++); | ||
1425 | if (n<max_no){ | ||
1426 | n+=*(cp-*p++); | ||
1427 | if (n<max_no){ | ||
1428 | n+=*(cp-*p); | ||
1429 | if (n<max_no){ | ||
1430 | p+=x_size-6; | ||
1431 | |||
1432 | n+=*(cp-*p++); | ||
1433 | if (n<max_no){ | ||
1434 | n+=*(cp-*p++); | ||
1435 | if (n<max_no){ | ||
1436 | n+=*(cp-*p++); | ||
1437 | if (n<max_no){ | ||
1438 | n+=*(cp-*p++); | ||
1439 | if (n<max_no){ | ||
1440 | n+=*(cp-*p++); | ||
1441 | if (n<max_no){ | ||
1442 | n+=*(cp-*p++); | ||
1443 | if (n<max_no){ | ||
1444 | n+=*(cp-*p); | ||
1445 | if (n<max_no){ | ||
1446 | p+=x_size-5; | ||
1447 | |||
1448 | n+=*(cp-*p++); | ||
1449 | if (n<max_no){ | ||
1450 | n+=*(cp-*p++); | ||
1451 | if (n<max_no){ | ||
1452 | n+=*(cp-*p++); | ||
1453 | if (n<max_no){ | ||
1454 | n+=*(cp-*p++); | ||
1455 | if (n<max_no){ | ||
1456 | n+=*(cp-*p); | ||
1457 | if (n<max_no){ | ||
1458 | p+=x_size-3; | ||
1459 | |||
1460 | n+=*(cp-*p++); | ||
1461 | if (n<max_no){ | ||
1462 | n+=*(cp-*p++); | ||
1463 | if (n<max_no){ | ||
1464 | n+=*(cp-*p); | ||
1465 | |||
1466 | if (n<max_no) { | ||
1467 | x=0;y=0; | ||
1468 | p=in + (i-3)*x_size + j - 1; | ||
1469 | |||
1470 | c=*(cp-*p++);x-=c;y-=3*c; | ||
1471 | c=*(cp-*p++);y-=3*c; | ||
1472 | c=*(cp-*p);x+=c;y-=3*c; | ||
1473 | p+=x_size-3; | ||
1474 | |||
1475 | c=*(cp-*p++);x-=2*c;y-=2*c; | ||
1476 | c=*(cp-*p++);x-=c;y-=2*c; | ||
1477 | c=*(cp-*p++);y-=2*c; | ||
1478 | c=*(cp-*p++);x+=c;y-=2*c; | ||
1479 | c=*(cp-*p);x+=2*c;y-=2*c; | ||
1480 | p+=x_size-5; | ||
1481 | |||
1482 | c=*(cp-*p++);x-=3*c;y-=c; | ||
1483 | c=*(cp-*p++);x-=2*c;y-=c; | ||
1484 | c=*(cp-*p++);x-=c;y-=c; | ||
1485 | c=*(cp-*p++);y-=c; | ||
1486 | c=*(cp-*p++);x+=c;y-=c; | ||
1487 | c=*(cp-*p++);x+=2*c;y-=c; | ||
1488 | c=*(cp-*p);x+=3*c;y-=c; | ||
1489 | p+=x_size-6; | ||
1490 | |||
1491 | c=*(cp-*p++);x-=3*c; | ||
1492 | c=*(cp-*p++);x-=2*c; | ||
1493 | c=*(cp-*p);x-=c; | ||
1494 | p+=2; | ||
1495 | c=*(cp-*p++);x+=c; | ||
1496 | c=*(cp-*p++);x+=2*c; | ||
1497 | c=*(cp-*p);x+=3*c; | ||
1498 | p+=x_size-6; | ||
1499 | |||
1500 | c=*(cp-*p++);x-=3*c;y+=c; | ||
1501 | c=*(cp-*p++);x-=2*c;y+=c; | ||
1502 | c=*(cp-*p++);x-=c;y+=c; | ||
1503 | c=*(cp-*p++);y+=c; | ||
1504 | c=*(cp-*p++);x+=c;y+=c; | ||
1505 | c=*(cp-*p++);x+=2*c;y+=c; | ||
1506 | c=*(cp-*p);x+=3*c;y+=c; | ||
1507 | p+=x_size-5; | ||
1508 | |||
1509 | c=*(cp-*p++);x-=2*c;y+=2*c; | ||
1510 | c=*(cp-*p++);x-=c;y+=2*c; | ||
1511 | c=*(cp-*p++);y+=2*c; | ||
1512 | c=*(cp-*p++);x+=c;y+=2*c; | ||
1513 | c=*(cp-*p);x+=2*c;y+=2*c; | ||
1514 | p+=x_size-3; | ||
1515 | |||
1516 | c=*(cp-*p++);x-=c;y+=3*c; | ||
1517 | c=*(cp-*p++);y+=3*c; | ||
1518 | c=*(cp-*p);x+=c;y+=3*c; | ||
1519 | |||
1520 | xx=x*x; | ||
1521 | yy=y*y; | ||
1522 | sq=xx+yy; | ||
1523 | if ( sq > ((n*n)/2) ) { | ||
1524 | if(yy<xx) { | ||
1525 | divide=(float)y/(float)abs(x); | ||
1526 | sq=abs(x)/x; | ||
1527 | sq=*(cp-in[(i+FTOI(divide))*x_size+j+sq]) + | ||
1528 | *(cp-in[(i+FTOI(2*divide))*x_size+j+2*sq]) + | ||
1529 | *(cp-in[(i+FTOI(3*divide))*x_size+j+3*sq]); | ||
1530 | } else { | ||
1531 | divide=(float)x/(float)abs(y); | ||
1532 | sq=abs(y)/y; | ||
1533 | sq=*(cp-in[(i+sq)*x_size+j+FTOI(divide)]) + | ||
1534 | *(cp-in[(i+2*sq)*x_size+j+FTOI(2*divide)]) + | ||
1535 | *(cp-in[(i+3*sq)*x_size+j+FTOI(3*divide)]); | ||
1536 | } | ||
1537 | |||
1538 | if(sq>290){ | ||
1539 | r[i*x_size+j] = max_no-n; | ||
1540 | cgx[i*x_size+j] = (51*x)/n; | ||
1541 | cgy[i*x_size+j] = (51*y)/n; | ||
1542 | } | ||
1543 | } | ||
1544 | } | ||
1545 | }}}}}}}}}}}}}}}}}} | ||
1546 | } | ||
1547 | } | ||
1548 | |||
1549 | /* to locate the local maxima */ | ||
1550 | n=0; | ||
1551 | _Pragma( "loopbound min 85 max 85" ) | ||
1552 | for (i=5;i<y_size-5;i++) { | ||
1553 | _Pragma( "loopbound min 66 max 66" ) | ||
1554 | for (j=5;j<x_size-5;j++) { | ||
1555 | x = r[i*x_size+j]; | ||
1556 | if (x>0) { | ||
1557 | /* 5x5 mask */ | ||
1558 | #ifdef FIVE_SUPP | ||
1559 | if ((x>r[(i-1)*x_size+j+2]) && | ||
1560 | (x>r[(i )*x_size+j+1]) && | ||
1561 | (x>r[(i )*x_size+j+2]) && | ||
1562 | (x>r[(i+1)*x_size+j-1]) && | ||
1563 | (x>r[(i+1)*x_size+j ]) && | ||
1564 | (x>r[(i+1)*x_size+j+1]) && | ||
1565 | (x>r[(i+1)*x_size+j+2]) && | ||
1566 | (x>r[(i+2)*x_size+j-2]) && | ||
1567 | (x>r[(i+2)*x_size+j-1]) && | ||
1568 | (x>r[(i+2)*x_size+j ]) && | ||
1569 | (x>r[(i+2)*x_size+j+1]) && | ||
1570 | (x>r[(i+2)*x_size+j+2]) && | ||
1571 | (x>=r[(i-2)*x_size+j-2]) && | ||
1572 | (x>=r[(i-2)*x_size+j-1]) && | ||
1573 | (x>=r[(i-2)*x_size+j ]) && | ||
1574 | (x>=r[(i-2)*x_size+j+1]) && | ||
1575 | (x>=r[(i-2)*x_size+j+2]) && | ||
1576 | (x>=r[(i-1)*x_size+j-2]) && | ||
1577 | (x>=r[(i-1)*x_size+j-1]) && | ||
1578 | (x>=r[(i-1)*x_size+j ]) && | ||
1579 | (x>=r[(i-1)*x_size+j+1]) && | ||
1580 | (x>=r[(i )*x_size+j-2]) && | ||
1581 | (x>=r[(i )*x_size+j-1]) && | ||
1582 | (x>=r[(i+1)*x_size+j-2]) ) | ||
1583 | #endif | ||
1584 | #ifdef SEVEN_SUPP | ||
1585 | if ((x>r[(i-3)*x_size+j-3]) && | ||
1586 | (x>r[(i-3)*x_size+j-2]) && | ||
1587 | (x>r[(i-3)*x_size+j-1]) && | ||
1588 | (x>r[(i-3)*x_size+j ]) && | ||
1589 | (x>r[(i-3)*x_size+j+1]) && | ||
1590 | (x>r[(i-3)*x_size+j+2]) && | ||
1591 | (x>r[(i-3)*x_size+j+3]) && | ||
1592 | |||
1593 | (x>r[(i-2)*x_size+j-3]) && | ||
1594 | (x>r[(i-2)*x_size+j-2]) && | ||
1595 | (x>r[(i-2)*x_size+j-1]) && | ||
1596 | (x>r[(i-2)*x_size+j ]) && | ||
1597 | (x>r[(i-2)*x_size+j+1]) && | ||
1598 | (x>r[(i-2)*x_size+j+2]) && | ||
1599 | (x>r[(i-2)*x_size+j+3]) && | ||
1600 | |||
1601 | (x>r[(i-1)*x_size+j-3]) && | ||
1602 | (x>r[(i-1)*x_size+j-2]) && | ||
1603 | (x>r[(i-1)*x_size+j-1]) && | ||
1604 | (x>r[(i-1)*x_size+j ]) && | ||
1605 | (x>r[(i-1)*x_size+j+1]) && | ||
1606 | (x>r[(i-1)*x_size+j+2]) && | ||
1607 | (x>r[(i-1)*x_size+j+3]) && | ||
1608 | |||
1609 | (x>r[(i)*x_size+j-3]) && | ||
1610 | (x>r[(i)*x_size+j-2]) && | ||
1611 | (x>r[(i)*x_size+j-1]) && | ||
1612 | (x>=r[(i)*x_size+j+1]) && | ||
1613 | (x>=r[(i)*x_size+j+2]) && | ||
1614 | (x>=r[(i)*x_size+j+3]) && | ||
1615 | |||
1616 | (x>=r[(i+1)*x_size+j-3]) && | ||
1617 | (x>=r[(i+1)*x_size+j-2]) && | ||
1618 | (x>=r[(i+1)*x_size+j-1]) && | ||
1619 | (x>=r[(i+1)*x_size+j ]) && | ||
1620 | (x>=r[(i+1)*x_size+j+1]) && | ||
1621 | (x>=r[(i+1)*x_size+j+2]) && | ||
1622 | (x>=r[(i+1)*x_size+j+3]) && | ||
1623 | |||
1624 | (x>=r[(i+2)*x_size+j-3]) && | ||
1625 | (x>=r[(i+2)*x_size+j-2]) && | ||
1626 | (x>=r[(i+2)*x_size+j-1]) && | ||
1627 | (x>=r[(i+2)*x_size+j ]) && | ||
1628 | (x>=r[(i+2)*x_size+j+1]) && | ||
1629 | (x>=r[(i+2)*x_size+j+2]) && | ||
1630 | (x>=r[(i+2)*x_size+j+3]) && | ||
1631 | |||
1632 | (x>=r[(i+3)*x_size+j-3]) && | ||
1633 | (x>=r[(i+3)*x_size+j-2]) && | ||
1634 | (x>=r[(i+3)*x_size+j-1]) && | ||
1635 | (x>=r[(i+3)*x_size+j ]) && | ||
1636 | (x>=r[(i+3)*x_size+j+1]) && | ||
1637 | (x>=r[(i+3)*x_size+j+2]) && | ||
1638 | (x>=r[(i+3)*x_size+j+3]) ) | ||
1639 | #endif | ||
1640 | { | ||
1641 | corner_list[n].info=0; | ||
1642 | corner_list[n].x=j; | ||
1643 | corner_list[n].y=i; | ||
1644 | corner_list[n].dx=cgx[i*x_size+j]; | ||
1645 | corner_list[n].dy=cgy[i*x_size+j]; | ||
1646 | corner_list[n].I=in[i*x_size+j]; | ||
1647 | n++; | ||
1648 | if(n==MAX_CORNERS){ | ||
1649 | /* "Too many corners." */ | ||
1650 | } | ||
1651 | } | ||
1652 | } | ||
1653 | } | ||
1654 | } | ||
1655 | corner_list[n].info=7; | ||
1656 | } | ||
1657 | |||
1658 | |||
1659 | void susan_corners_quick( uchar *in, char *r, uchar *bp, | ||
1660 | int max_no, CORNER_LIST corner_list, int x_size, int y_size ) | ||
1661 | { | ||
1662 | int n,x,y,i,j; | ||
1663 | uchar *p,*cp; | ||
1664 | |||
1665 | susan_wccmemset(r,0,x_size * y_size); | ||
1666 | |||
1667 | _Pragma( "loopbound min 0 max 0" ) | ||
1668 | for (i=7;i<y_size-7;i++) { | ||
1669 | _Pragma( "loopbound min 0 max 0" ) | ||
1670 | for (j=7;j<x_size-7;j++) { | ||
1671 | n=100; | ||
1672 | p=in + (i-3)*x_size + j - 1; | ||
1673 | cp=bp + in[i*x_size+j]; | ||
1674 | |||
1675 | n+=*(cp-*p++); | ||
1676 | n+=*(cp-*p++); | ||
1677 | n+=*(cp-*p); | ||
1678 | p+=x_size-3; | ||
1679 | |||
1680 | n+=*(cp-*p++); | ||
1681 | n+=*(cp-*p++); | ||
1682 | n+=*(cp-*p++); | ||
1683 | n+=*(cp-*p++); | ||
1684 | n+=*(cp-*p); | ||
1685 | p+=x_size-5; | ||
1686 | |||
1687 | n+=*(cp-*p++); | ||
1688 | n+=*(cp-*p++); | ||
1689 | n+=*(cp-*p++); | ||
1690 | n+=*(cp-*p++); | ||
1691 | n+=*(cp-*p++); | ||
1692 | n+=*(cp-*p++); | ||
1693 | n+=*(cp-*p); | ||
1694 | p+=x_size-6; | ||
1695 | |||
1696 | n+=*(cp-*p++); | ||
1697 | n+=*(cp-*p++); | ||
1698 | n+=*(cp-*p); | ||
1699 | if (n<max_no){ | ||
1700 | p+=2; | ||
1701 | n+=*(cp-*p++); | ||
1702 | if (n<max_no){ | ||
1703 | n+=*(cp-*p++); | ||
1704 | if (n<max_no){ | ||
1705 | n+=*(cp-*p); | ||
1706 | if (n<max_no){ | ||
1707 | p+=x_size-6; | ||
1708 | |||
1709 | n+=*(cp-*p++); | ||
1710 | if (n<max_no){ | ||
1711 | n+=*(cp-*p++); | ||
1712 | if (n<max_no){ | ||
1713 | n+=*(cp-*p++); | ||
1714 | if (n<max_no){ | ||
1715 | n+=*(cp-*p++); | ||
1716 | if (n<max_no){ | ||
1717 | n+=*(cp-*p++); | ||
1718 | if (n<max_no){ | ||
1719 | n+=*(cp-*p++); | ||
1720 | if (n<max_no){ | ||
1721 | n+=*(cp-*p); | ||
1722 | if (n<max_no){ | ||
1723 | p+=x_size-5; | ||
1724 | |||
1725 | n+=*(cp-*p++); | ||
1726 | if (n<max_no){ | ||
1727 | n+=*(cp-*p++); | ||
1728 | if (n<max_no){ | ||
1729 | n+=*(cp-*p++); | ||
1730 | if (n<max_no){ | ||
1731 | n+=*(cp-*p++); | ||
1732 | if (n<max_no){ | ||
1733 | n+=*(cp-*p); | ||
1734 | if (n<max_no){ | ||
1735 | p+=x_size-3; | ||
1736 | |||
1737 | n+=*(cp-*p++); | ||
1738 | if (n<max_no){ | ||
1739 | n+=*(cp-*p++); | ||
1740 | if (n<max_no){ | ||
1741 | n+=*(cp-*p); | ||
1742 | |||
1743 | if (n<max_no) { | ||
1744 | r[i*x_size+j] = max_no-n; | ||
1745 | } | ||
1746 | }}}}}}}}}}}}}}}}}} | ||
1747 | } | ||
1748 | } | ||
1749 | |||
1750 | /* to locate the local maxima */ | ||
1751 | n=0; | ||
1752 | _Pragma( "loopbound min 0 max 0" ) | ||
1753 | for (i=7;i<y_size-7;i++) { | ||
1754 | _Pragma( "loopbound min 0 max 0" ) | ||
1755 | for (j=7;j<x_size-7;j++) { | ||
1756 | x = r[i*x_size+j]; | ||
1757 | if (x>0) { | ||
1758 | /* 5x5 mask */ | ||
1759 | #ifdef FIVE_SUPP | ||
1760 | if ((x>r[(i-1)*x_size+j+2]) && | ||
1761 | (x>r[(i )*x_size+j+1]) && | ||
1762 | (x>r[(i )*x_size+j+2]) && | ||
1763 | (x>r[(i+1)*x_size+j-1]) && | ||
1764 | (x>r[(i+1)*x_size+j ]) && | ||
1765 | (x>r[(i+1)*x_size+j+1]) && | ||
1766 | (x>r[(i+1)*x_size+j+2]) && | ||
1767 | (x>r[(i+2)*x_size+j-2]) && | ||
1768 | (x>r[(i+2)*x_size+j-1]) && | ||
1769 | (x>r[(i+2)*x_size+j ]) && | ||
1770 | (x>r[(i+2)*x_size+j+1]) && | ||
1771 | (x>r[(i+2)*x_size+j+2]) && | ||
1772 | (x>=r[(i-2)*x_size+j-2]) && | ||
1773 | (x>=r[(i-2)*x_size+j-1]) && | ||
1774 | (x>=r[(i-2)*x_size+j ]) && | ||
1775 | (x>=r[(i-2)*x_size+j+1]) && | ||
1776 | (x>=r[(i-2)*x_size+j+2]) && | ||
1777 | (x>=r[(i-1)*x_size+j-2]) && | ||
1778 | (x>=r[(i-1)*x_size+j-1]) && | ||
1779 | (x>=r[(i-1)*x_size+j ]) && | ||
1780 | (x>=r[(i-1)*x_size+j+1]) && | ||
1781 | (x>=r[(i )*x_size+j-2]) && | ||
1782 | (x>=r[(i )*x_size+j-1]) && | ||
1783 | (x>=r[(i+1)*x_size+j-2]) ) | ||
1784 | #endif | ||
1785 | #ifdef SEVEN_SUPP | ||
1786 | if ((x>r[(i-3)*x_size+j-3]) && | ||
1787 | (x>r[(i-3)*x_size+j-2]) && | ||
1788 | (x>r[(i-3)*x_size+j-1]) && | ||
1789 | (x>r[(i-3)*x_size+j ]) && | ||
1790 | (x>r[(i-3)*x_size+j+1]) && | ||
1791 | (x>r[(i-3)*x_size+j+2]) && | ||
1792 | (x>r[(i-3)*x_size+j+3]) && | ||
1793 | |||
1794 | (x>r[(i-2)*x_size+j-3]) && | ||
1795 | (x>r[(i-2)*x_size+j-2]) && | ||
1796 | (x>r[(i-2)*x_size+j-1]) && | ||
1797 | (x>r[(i-2)*x_size+j ]) && | ||
1798 | (x>r[(i-2)*x_size+j+1]) && | ||
1799 | (x>r[(i-2)*x_size+j+2]) && | ||
1800 | (x>r[(i-2)*x_size+j+3]) && | ||
1801 | |||
1802 | (x>r[(i-1)*x_size+j-3]) && | ||
1803 | (x>r[(i-1)*x_size+j-2]) && | ||
1804 | (x>r[(i-1)*x_size+j-1]) && | ||
1805 | (x>r[(i-1)*x_size+j ]) && | ||
1806 | (x>r[(i-1)*x_size+j+1]) && | ||
1807 | (x>r[(i-1)*x_size+j+2]) && | ||
1808 | (x>r[(i-1)*x_size+j+3]) && | ||
1809 | |||
1810 | (x>r[(i)*x_size+j-3]) && | ||
1811 | (x>r[(i)*x_size+j-2]) && | ||
1812 | (x>r[(i)*x_size+j-1]) && | ||
1813 | (x>=r[(i)*x_size+j+1]) && | ||
1814 | (x>=r[(i)*x_size+j+2]) && | ||
1815 | (x>=r[(i)*x_size+j+3]) && | ||
1816 | |||
1817 | (x>=r[(i+1)*x_size+j-3]) && | ||
1818 | (x>=r[(i+1)*x_size+j-2]) && | ||
1819 | (x>=r[(i+1)*x_size+j-1]) && | ||
1820 | (x>=r[(i+1)*x_size+j ]) && | ||
1821 | (x>=r[(i+1)*x_size+j+1]) && | ||
1822 | (x>=r[(i+1)*x_size+j+2]) && | ||
1823 | (x>=r[(i+1)*x_size+j+3]) && | ||
1824 | |||
1825 | (x>=r[(i+2)*x_size+j-3]) && | ||
1826 | (x>=r[(i+2)*x_size+j-2]) && | ||
1827 | (x>=r[(i+2)*x_size+j-1]) && | ||
1828 | (x>=r[(i+2)*x_size+j ]) && | ||
1829 | (x>=r[(i+2)*x_size+j+1]) && | ||
1830 | (x>=r[(i+2)*x_size+j+2]) && | ||
1831 | (x>=r[(i+2)*x_size+j+3]) && | ||
1832 | |||
1833 | (x>=r[(i+3)*x_size+j-3]) && | ||
1834 | (x>=r[(i+3)*x_size+j-2]) && | ||
1835 | (x>=r[(i+3)*x_size+j-1]) && | ||
1836 | (x>=r[(i+3)*x_size+j ]) && | ||
1837 | (x>=r[(i+3)*x_size+j+1]) && | ||
1838 | (x>=r[(i+3)*x_size+j+2]) && | ||
1839 | (x>=r[(i+3)*x_size+j+3]) ) | ||
1840 | #endif | ||
1841 | { | ||
1842 | corner_list[n].info=0; | ||
1843 | corner_list[n].x=j; | ||
1844 | corner_list[n].y=i; | ||
1845 | x = in[(i-2)*x_size+j-2] + in[(i-2)*x_size+j-1] + in[(i-2)*x_size+j] + in[(i-2)*x_size+j+1] + in[(i-2)*x_size+j+2] + | ||
1846 | in[(i-1)*x_size+j-2] + in[(i-1)*x_size+j-1] + in[(i-1)*x_size+j] + in[(i-1)*x_size+j+1] + in[(i-1)*x_size+j+2] + | ||
1847 | in[(i )*x_size+j-2] + in[(i )*x_size+j-1] + in[(i )*x_size+j] + in[(i )*x_size+j+1] + in[(i )*x_size+j+2] + | ||
1848 | in[(i+1)*x_size+j-2] + in[(i+1)*x_size+j-1] + in[(i+1)*x_size+j] + in[(i+1)*x_size+j+1] + in[(i+1)*x_size+j+2] + | ||
1849 | in[(i+2)*x_size+j-2] + in[(i+2)*x_size+j-1] + in[(i+2)*x_size+j] + in[(i+2)*x_size+j+1] + in[(i+2)*x_size+j+2]; | ||
1850 | |||
1851 | corner_list[n].I=x/25; | ||
1852 | /*corner_list[n].I=in[i*x_size+j];*/ | ||
1853 | x = in[(i-2)*x_size+j+2] + in[(i-1)*x_size+j+2] + in[(i)*x_size+j+2] + in[(i+1)*x_size+j+2] + in[(i+2)*x_size+j+2] - | ||
1854 | (in[(i-2)*x_size+j-2] + in[(i-1)*x_size+j-2] + in[(i)*x_size+j-2] + in[(i+1)*x_size+j-2] + in[(i+2)*x_size+j-2]); | ||
1855 | x += x + in[(i-2)*x_size+j+1] + in[(i-1)*x_size+j+1] + in[(i)*x_size+j+1] + in[(i+1)*x_size+j+1] + in[(i+2)*x_size+j+1] - | ||
1856 | (in[(i-2)*x_size+j-1] + in[(i-1)*x_size+j-1] + in[(i)*x_size+j-1] + in[(i+1)*x_size+j-1] + in[(i+2)*x_size+j-1]); | ||
1857 | |||
1858 | y = in[(i+2)*x_size+j-2] + in[(i+2)*x_size+j-1] + in[(i+2)*x_size+j] + in[(i+2)*x_size+j+1] + in[(i+2)*x_size+j+2] - | ||
1859 | (in[(i-2)*x_size+j-2] + in[(i-2)*x_size+j-1] + in[(i-2)*x_size+j] + in[(i-2)*x_size+j+1] + in[(i-2)*x_size+j+2]); | ||
1860 | y += y + in[(i+1)*x_size+j-2] + in[(i+1)*x_size+j-1] + in[(i+1)*x_size+j] + in[(i+1)*x_size+j+1] + in[(i+1)*x_size+j+2] - | ||
1861 | (in[(i-1)*x_size+j-2] + in[(i-1)*x_size+j-1] + in[(i-1)*x_size+j] + in[(i-1)*x_size+j+1] + in[(i-1)*x_size+j+2]); | ||
1862 | corner_list[n].dx=x/15; | ||
1863 | corner_list[n].dy=y/15; | ||
1864 | n++; | ||
1865 | if(n==MAX_CORNERS){ | ||
1866 | /* "Too many corners." */ | ||
1867 | } | ||
1868 | } | ||
1869 | } | ||
1870 | } | ||
1871 | } | ||
1872 | corner_list[n].info=7; | ||
1873 | } | ||
1874 | |||
1875 | |||
1876 | void susan_call_susan( struct wccFILE *inputFile, int mode ) | ||
1877 | { | ||
1878 | uchar *in, *bp, *mid; | ||
1879 | int x_size, y_size; | ||
1880 | char *r; | ||
1881 | CORNER_LIST corner_list; | ||
1882 | |||
1883 | susan_get_image( inputFile, &in, &x_size, &y_size ); | ||
1884 | |||
1885 | if (susan_dt<0) susan_three_by_three=1; | ||
1886 | if ( (susan_principle_conf==1) && (mode==0) ) | ||
1887 | mode=1; | ||
1888 | |||
1889 | switch (mode) { | ||
1890 | case 0: | ||
1891 | /* {{{ smoothing */ | ||
1892 | |||
1893 | susan_setup_brightness_lut(&bp,susan_bt,2); | ||
1894 | susan_smoothing(susan_three_by_three,in,susan_dt,x_size,y_size,bp); | ||
1895 | |||
1896 | break; | ||
1897 | case 1: | ||
1898 | /* {{{ edges */ | ||
1899 | |||
1900 | r = (char *) susan_wccmalloc(x_size * y_size); | ||
1901 | susan_setup_brightness_lut(&bp,susan_bt,6); | ||
1902 | |||
1903 | if (susan_principle_conf) { | ||
1904 | if (susan_three_by_three) | ||
1905 | susan_principle_small(in,r,bp,susan_max_no_edges,x_size,y_size); | ||
1906 | else | ||
1907 | susan_principle(in,r,bp,susan_max_no_edges,x_size,y_size); | ||
1908 | susan_int_to_uchar(r,in,x_size*y_size); | ||
1909 | } else { | ||
1910 | mid = (uchar *)susan_wccmalloc(x_size*y_size); | ||
1911 | susan_wccmemset(mid,100,x_size * y_size); /* note not set to zero */ | ||
1912 | |||
1913 | if (susan_three_by_three) | ||
1914 | susan_edges_small(in,r,mid,bp,susan_max_no_edges,x_size,y_size); | ||
1915 | else | ||
1916 | susan_edges(in,r,mid,bp,susan_max_no_edges,x_size,y_size); | ||
1917 | if(susan_thin_post_proc) | ||
1918 | susan_thin(r,mid,x_size,y_size); | ||
1919 | susan_edge_draw(in,mid,x_size,y_size,susan_drawing_mode); | ||
1920 | } | ||
1921 | |||
1922 | break; | ||
1923 | case 2: | ||
1924 | /* {{{ corners */ | ||
1925 | |||
1926 | r = (char *) susan_wccmalloc(x_size * y_size); | ||
1927 | susan_setup_brightness_lut(&bp,susan_bt,6); | ||
1928 | |||
1929 | if (susan_principle_conf) { | ||
1930 | susan_principle(in,r,bp,susan_max_no_corners,x_size,y_size); | ||
1931 | susan_int_to_uchar(r,in,x_size*y_size); | ||
1932 | } else { | ||
1933 | if(susan_susan_quick) | ||
1934 | susan_corners_quick(in,r,bp,susan_max_no_corners,corner_list,x_size,y_size); | ||
1935 | else | ||
1936 | susan_corners(in,r,bp,susan_max_no_corners,corner_list,x_size,y_size); | ||
1937 | susan_corner_draw(in,corner_list,x_size,susan_drawing_mode); | ||
1938 | } | ||
1939 | |||
1940 | break; | ||
1941 | } | ||
1942 | |||
1943 | susan_put_image(x_size,y_size); | ||
1944 | } | ||
1945 | |||
1946 | void susan_init( void ) | ||
1947 | { | ||
1948 | volatile int a = 0; | ||
1949 | susan_file.data = susan_input; | ||
1950 | susan_file.size = 7292; | ||
1951 | susan_file.size += a; | ||
1952 | susan_file.cur_pos = 0; | ||
1953 | susan_file.cur_pos += a; | ||
1954 | |||
1955 | susan_dt = 4.0; | ||
1956 | susan_dt += a; | ||
1957 | susan_bt = 20; | ||
1958 | susan_bt += a; | ||
1959 | susan_principle_conf = 0; | ||
1960 | susan_principle_conf += a; | ||
1961 | susan_thin_post_proc = 1; | ||
1962 | susan_thin_post_proc += a; | ||
1963 | susan_three_by_three = 0; | ||
1964 | susan_three_by_three += a; | ||
1965 | susan_drawing_mode = 0; | ||
1966 | susan_drawing_mode += a; | ||
1967 | susan_susan_quick = 0; | ||
1968 | susan_susan_quick += a; | ||
1969 | susan_max_no_corners = 50; | ||
1970 | susan_max_no_corners += a; | ||
1971 | susan_max_no_edges = 50; | ||
1972 | susan_max_no_edges += a; | ||
1973 | |||
1974 | // mode=0; /* Smoothing mode */ | ||
1975 | // mode=1; /* Edges mode */ | ||
1976 | // mode=2; /* Corners mode */ | ||
1977 | |||
1978 | // principle=1; /* Output initial enhancement image only; corners or edges mode (default is edges mode) */ | ||
1979 | // thin_post_proc=0; /* No post-processing on the binary edge map (runs much faster); edges mode */ | ||
1980 | // drawing_mode=1; /* Mark corners/edges with single black points instead of black with white border; corners or edges mode */ | ||
1981 | // three_by_three=1; /* Use flat 3x3 mask, edges or smoothing mode */ | ||
1982 | // susan_quick=1; /* Use faster (and usually stabler) corner mode; edge-like corner suppression not carried out; corners mode */ | ||
1983 | // dt=10.0; /* Distance threshold, smoothing mode, (default=4) */ | ||
1984 | // bt=50; /* Brightness threshold, all modes, (default=20) */ | ||
1985 | } | ||
1986 | |||
1987 | void susan_main( void ) | ||
1988 | { | ||
1989 | susan_call_susan( &susan_file, 0 ); | ||
1990 | susan_wccfreeall(); | ||
1991 | susan_call_susan( &susan_file, 1 ); | ||
1992 | susan_wccfreeall(); | ||
1993 | susan_call_susan( &susan_file, 2 ); | ||
1994 | susan_wccfreeall(); | ||
1995 | } | ||
1996 | |||
1997 | int susan_return( void ) | ||
1998 | { | ||
1999 | return 0; | ||
2000 | } | ||
2001 | |||
2002 | int main( int argc, char **argv ) | ||
2003 | { | ||
2004 | SET_UP | ||
2005 | for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ | ||
2006 | START_LOOP | ||
2007 | susan_init(); | ||
2008 | susan_main(); | ||
2009 | STOP_LOOP | ||
2010 | } | ||
2011 | WRITE_TO_FILE | ||
2012 | |||
2013 | return susan_return(); | ||
2014 | } | ||
diff --git a/baseline/source/susan/wccfile.c b/baseline/source/susan/wccfile.c new file mode 100644 index 0000000..42db3db --- /dev/null +++ b/baseline/source/susan/wccfile.c | |||
@@ -0,0 +1,79 @@ | |||
1 | #include "wccfile.h" | ||
2 | #define EOFX -1 | ||
3 | |||
4 | size_x susan_wccfread(void* ptr, size_x size, size_x count, struct wccFILE* stream) | ||
5 | { | ||
6 | if ( susan_wccfeof( stream ) ) { | ||
7 | return EOFX; | ||
8 | } | ||
9 | |||
10 | unsigned i = stream->cur_pos, i2 = 0; | ||
11 | size_x number_of_chars_to_read = | ||
12 | stream->size - stream->cur_pos >= size * count ? | ||
13 | size * count : stream->size - stream->cur_pos; | ||
14 | _Pragma( "loopbound min 7220 max 7220" ) | ||
15 | while (i < stream->cur_pos + number_of_chars_to_read) { | ||
16 | ((unsigned char*)ptr)[i2++] = stream->data[i++]; | ||
17 | } | ||
18 | stream->cur_pos += number_of_chars_to_read; | ||
19 | return number_of_chars_to_read; | ||
20 | } | ||
21 | |||
22 | int susan_wccfgetc(struct wccFILE *stream) | ||
23 | { | ||
24 | if ( susan_wccfeof( stream ) ) { | ||
25 | return EOFX; | ||
26 | } else { | ||
27 | return stream->data[stream->cur_pos++]; | ||
28 | } | ||
29 | } | ||
30 | |||
31 | char *susan_wccfgets(char *str, int num, struct wccFILE *stream ) | ||
32 | { | ||
33 | if ( !stream || susan_wccfeof( stream ) || !str || num <= 0 ) { | ||
34 | return 0; | ||
35 | } | ||
36 | |||
37 | int pos = 0; | ||
38 | _Pragma( "loopbound min 58 max 58" ) | ||
39 | while ( pos < num - 1 && !susan_wccfeof( stream ) ) { | ||
40 | str[pos] = stream->data[stream->cur_pos]; | ||
41 | if ( str[pos] == '\n' ) { | ||
42 | break; | ||
43 | } | ||
44 | |||
45 | stream->cur_pos++; | ||
46 | pos++; | ||
47 | } | ||
48 | str[pos++] = '\0'; | ||
49 | |||
50 | return str; | ||
51 | } | ||
52 | |||
53 | int susan_wccfseek(struct wccFILE* stream, long int offset, enum _Origin_ origin) | ||
54 | { | ||
55 | if (origin == WCCSEEK_SET) { | ||
56 | stream->cur_pos = offset; | ||
57 | return 0; | ||
58 | } else if (origin == WCCSEEK_CUR) { | ||
59 | stream->cur_pos += offset; | ||
60 | return 0; | ||
61 | } else if (origin == WCCSEEK_END) { | ||
62 | stream->cur_pos = stream->size + offset; | ||
63 | return 0; | ||
64 | } | ||
65 | return -1; | ||
66 | } | ||
67 | |||
68 | |||
69 | int susan_wccfgetpos(struct wccFILE* stream, unsigned* position) | ||
70 | { | ||
71 | *position = stream->cur_pos; | ||
72 | return 0; | ||
73 | } | ||
74 | |||
75 | |||
76 | int susan_wccfeof(struct wccFILE* stream) | ||
77 | { | ||
78 | return stream->cur_pos == stream->size ? 1 : 0; | ||
79 | } | ||
diff --git a/baseline/source/susan/wccfile.h b/baseline/source/susan/wccfile.h new file mode 100644 index 0000000..9314361 --- /dev/null +++ b/baseline/source/susan/wccfile.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef WCC_FILE_H | ||
2 | #define WCC_FILE_H | ||
3 | |||
4 | enum _Origin_ { WCCSEEK_SET, WCCSEEK_CUR, WCCSEEK_END }; | ||
5 | typedef enum _Origin_ Origin; | ||
6 | typedef unsigned int size_x; | ||
7 | |||
8 | #define EOFX -1 | ||
9 | |||
10 | struct wccFILE { | ||
11 | char* data; | ||
12 | size_x size; | ||
13 | unsigned cur_pos; | ||
14 | }; | ||
15 | |||
16 | size_x susan_wccfread (void* ptr, size_x size, size_x count, struct wccFILE* stream); | ||
17 | int susan_wccfseek (struct wccFILE* stream, long int offset, Origin origin); | ||
18 | int susan_wccfgetpos (struct wccFILE* stream, unsigned* position); | ||
19 | int susan_wccfeof (struct wccFILE* stream); | ||
20 | int susan_wccfgetc (struct wccFILE *stream); | ||
21 | char *susan_wccfgets (char *str, int num, struct wccFILE *stream ); | ||
22 | |||
23 | #endif | ||
24 | |||
diff --git a/baseline/source/susan/wcclibm.c b/baseline/source/susan/wcclibm.c new file mode 100644 index 0000000..bca8907 --- /dev/null +++ b/baseline/source/susan/wcclibm.c | |||
@@ -0,0 +1,444 @@ | |||
1 | #include "math_private.h" | ||
2 | #include "wcclibm.h" | ||
3 | |||
4 | |||
5 | |||
6 | /* e_rem_pio2f.c -- float version of e_rem_pio2.c | ||
7 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
8 | */ | ||
9 | |||
10 | /* | ||
11 | * ==================================================== | ||
12 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
13 | * | ||
14 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
15 | * Permission to use, copy, modify, and distribute this | ||
16 | * software is freely granted, provided that this notice | ||
17 | * is preserved. | ||
18 | * ==================================================== | ||
19 | */ | ||
20 | |||
21 | #if defined(LIBM_SCCS) && !defined(lint) | ||
22 | static char rcsid[] = "$NetBSD: e_rem_pio2f.c,v 1.5 1995/05/10 20:46:03 jtc Exp $"; | ||
23 | #endif | ||
24 | |||
25 | /* __ieee754_rem_pio2f(x,y) | ||
26 | * | ||
27 | * return the remainder of x rem pi/2 in y[0]+y[1] | ||
28 | * use __kernel_rem_pio2f() | ||
29 | */ | ||
30 | |||
31 | /* This array is like the one in e_rem_pio2.c, but the numbers are | ||
32 | single precision and the last 8 bits are forced to 0. */ | ||
33 | static const int32_t susan_npio2_hw[] = { | ||
34 | 0x3fc90f00, 0x40490f00, 0x4096cb00, 0x40c90f00, 0x40fb5300, 0x4116cb00, | ||
35 | 0x412fed00, 0x41490f00, 0x41623100, 0x417b5300, 0x418a3a00, 0x4196cb00, | ||
36 | 0x41a35c00, 0x41afed00, 0x41bc7e00, 0x41c90f00, 0x41d5a000, 0x41e23100, | ||
37 | 0x41eec200, 0x41fb5300, 0x4203f200, 0x420a3a00, 0x42108300, 0x4216cb00, | ||
38 | 0x421d1400, 0x42235c00, 0x4229a500, 0x422fed00, 0x42363600, 0x423c7e00, | ||
39 | 0x4242c700, 0x42490f00 | ||
40 | }; | ||
41 | |||
42 | /* | ||
43 | * invpio2: 24 bits of 2/pi | ||
44 | * pio2_1: first 17 bit of pi/2 | ||
45 | * pio2_1t: pi/2 - pio2_1 | ||
46 | * pio2_2: second 17 bit of pi/2 | ||
47 | * pio2_2t: pi/2 - (pio2_1+pio2_2) | ||
48 | * pio2_3: third 17 bit of pi/2 | ||
49 | * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) | ||
50 | */ | ||
51 | |||
52 | static const float | ||
53 | /* zero = 0.0000000000e+00f, /\* 0x00000000 *\/ */ | ||
54 | /* half = 5.0000000000e-01f, /\* 0x3f000000 *\/ */ | ||
55 | /* two8 = 2.5600000000e+02f, /\* 0x43800000 *\/ */ | ||
56 | susan_invpio2 = 6.3661980629e-01f, /* 0x3f22f984 */ | ||
57 | susan_pio2_1 = 1.5707855225e+00f, /* 0x3fc90f80 */ | ||
58 | susan_pio2_1t = 1.0804334124e-05f, /* 0x37354443 */ | ||
59 | susan_pio2_2 = 1.0804273188e-05f, /* 0x37354400 */ | ||
60 | susan_pio2_2t = 6.0770999344e-11f, /* 0x2e85a308 */ | ||
61 | susan_pio2_3 = 6.0770943833e-11f, /* 0x2e85a300 */ | ||
62 | susan_pio2_3t = 6.1232342629e-17f; /* 0x248d3132 */ | ||
63 | |||
64 | int32_t susan___ieee754_rem_pio2f(float x, float *y) | ||
65 | { | ||
66 | float z,w,t,r,fn; | ||
67 | int32_t i,j,n,ix,hx; | ||
68 | |||
69 | GET_FLOAT_WORD(hx,x); | ||
70 | ix = hx&0x7fffffff; | ||
71 | if(ix<=0x3f490fd8) /* |x| ~<= pi/4 , no need for reduction */ | ||
72 | {y[0] = x; y[1] = 0; return 0;} | ||
73 | if(ix<0x4016cbe4) { /* |x| < 3pi/4, special case with n=+-1 */ | ||
74 | if(hx>0) { | ||
75 | z = x - susan_pio2_1; | ||
76 | if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */ | ||
77 | y[0] = z - susan_pio2_1t; | ||
78 | y[1] = (z-y[0])-susan_pio2_1t; | ||
79 | } else { /* near pi/2, use 24+24+24 bit pi */ | ||
80 | z -= susan_pio2_2; | ||
81 | y[0] = z - susan_pio2_2t; | ||
82 | y[1] = (z-y[0])-susan_pio2_2t; | ||
83 | } | ||
84 | return 1; | ||
85 | } else { /* negative x */ | ||
86 | z = x + susan_pio2_1; | ||
87 | if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */ | ||
88 | y[0] = z + susan_pio2_1t; | ||
89 | y[1] = (z-y[0])+susan_pio2_1t; | ||
90 | } else { /* near pi/2, use 24+24+24 bit pi */ | ||
91 | z += susan_pio2_2; | ||
92 | y[0] = z + susan_pio2_2t; | ||
93 | y[1] = (z-y[0])+susan_pio2_2t; | ||
94 | } | ||
95 | return -1; | ||
96 | } | ||
97 | } | ||
98 | if(ix<=0x43490f80) { /* |x| ~<= 2^7*(pi/2), medium size */ | ||
99 | t = fabsf(x); | ||
100 | n = (int32_t) (t*susan_invpio2+susan_half); | ||
101 | fn = (float)n; | ||
102 | r = t-fn*susan_pio2_1; | ||
103 | w = fn*susan_pio2_1t; /* 1st round good to 40 bit */ | ||
104 | if(n<32&&(int32_t)(ix&0xffffff00)!=susan_npio2_hw[n-1]) { | ||
105 | y[0] = r-w; /* quick check no cancellation */ | ||
106 | } else { | ||
107 | u_int32_t high; | ||
108 | j = ix>>23; | ||
109 | y[0] = r-w; | ||
110 | GET_FLOAT_WORD(high,y[0]); | ||
111 | i = j-((high>>23)&0xff); | ||
112 | if(i>8) { /* 2nd iteration needed, good to 57 */ | ||
113 | t = r; | ||
114 | w = fn*susan_pio2_2; | ||
115 | r = t-w; | ||
116 | w = fn*susan_pio2_2t-((t-r)-w); | ||
117 | y[0] = r-w; | ||
118 | GET_FLOAT_WORD(high,y[0]); | ||
119 | i = j-((high>>23)&0xff); | ||
120 | if(i>25) { /* 3rd iteration need, 74 bits acc */ | ||
121 | t = r; /* will cover all possible cases */ | ||
122 | w = fn*susan_pio2_3; | ||
123 | r = t-w; | ||
124 | w = fn*susan_pio2_3t-((t-r)-w); | ||
125 | y[0] = r-w; | ||
126 | } | ||
127 | } | ||
128 | } | ||
129 | y[1] = (r-y[0])-w; | ||
130 | if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;} | ||
131 | else return n; | ||
132 | } | ||
133 | /* | ||
134 | * all other (large) arguments | ||
135 | */ | ||
136 | if(ix>=0x7f800000) { /* x is inf or NaN */ | ||
137 | y[0]=y[1]=x-x; return 0; | ||
138 | } | ||
139 | |||
140 | y[0]=y[1]=x-x; return 0; /* dummy initialisation */ | ||
141 | return 0; /* doesn't happen for our input */ | ||
142 | } | ||
143 | |||
144 | /* k_cosf.c -- float version of k_cos.c | ||
145 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
146 | */ | ||
147 | |||
148 | /* | ||
149 | * ==================================================== | ||
150 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
151 | * | ||
152 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
153 | * Permission to use, copy, modify, and distribute this | ||
154 | * software is freely granted, provided that this notice | ||
155 | * is preserved. | ||
156 | * ==================================================== | ||
157 | */ | ||
158 | |||
159 | #if defined(LIBM_SCCS) && !defined(lint) | ||
160 | static char rcsid[] = "$NetBSD: k_cosf.c,v 1.4 1995/05/10 20:46:23 jtc Exp $"; | ||
161 | #endif | ||
162 | |||
163 | |||
164 | static const float | ||
165 | /* one = 1.0000000000e+00, /\* 0x3f800000 *\/ */ | ||
166 | susan_C1 = 4.1666667908e-02f, /* 0x3d2aaaab */ | ||
167 | susan_C2 = -1.3888889225e-03f, /* 0xbab60b61 */ | ||
168 | susan_C3 = 2.4801587642e-05f, /* 0x37d00d01 */ | ||
169 | susan_C4 = -2.7557314297e-07f, /* 0xb493f27c */ | ||
170 | susan_C5 = 2.0875723372e-09f, /* 0x310f74f6 */ | ||
171 | susan_C6 = -1.1359647598e-11f; /* 0xad47d74e */ | ||
172 | |||
173 | float susan___kernel_cosf(float x, float y) | ||
174 | { | ||
175 | float a,hz,z,r,qx; | ||
176 | int32_t ix; | ||
177 | GET_FLOAT_WORD(ix,x); | ||
178 | ix &= 0x7fffffff; /* ix = |x|'s high word*/ | ||
179 | if(ix<0x32000000) { /* if x < 2**27 */ | ||
180 | if(((int)x)==0) return susan_one; /* generate inexact */ | ||
181 | } | ||
182 | z = x*x; | ||
183 | r = z*(susan_C1+z*(susan_C2+z*(susan_C3+z*(susan_C4+z*(susan_C5+z*susan_C6))))); | ||
184 | if(ix < 0x3e99999a) /* if |x| < 0.3 */ | ||
185 | return susan_one - ((float)0.5f*z - (z*r - x*y)); | ||
186 | else { | ||
187 | if(ix > 0x3f480000) { /* x > 0.78125 */ | ||
188 | qx = (float)0.28125f; | ||
189 | } else { | ||
190 | SET_FLOAT_WORD(qx,ix-0x01000000); /* x/4 */ | ||
191 | } | ||
192 | hz = (float)0.5f*z-qx; | ||
193 | a = susan_one-qx; | ||
194 | return a - (hz - (z*r-x*y)); | ||
195 | } | ||
196 | } | ||
197 | |||
198 | /* k_sinf.c -- float version of k_sin.c | ||
199 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
200 | */ | ||
201 | |||
202 | /* | ||
203 | * ==================================================== | ||
204 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
205 | * | ||
206 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
207 | * Permission to use, copy, modify, and distribute this | ||
208 | * software is freely granted, provided that this notice | ||
209 | * is preserved. | ||
210 | * ==================================================== | ||
211 | */ | ||
212 | |||
213 | #if defined(LIBM_SCCS) && !defined(lint) | ||
214 | static char rcsid[] = "$NetBSD: k_sinf.c,v 1.4 1995/05/10 20:46:33 jtc Exp $"; | ||
215 | #endif | ||
216 | |||
217 | |||
218 | static const float | ||
219 | /* half = 5.0000000000e-01f,/\* 0x3f000000 *\/ */ | ||
220 | susan_S1 = -1.6666667163e-01f, /* 0xbe2aaaab */ | ||
221 | susan_S2 = 8.3333337680e-03f, /* 0x3c088889 */ | ||
222 | susan_S3 = -1.9841270114e-04f, /* 0xb9500d01 */ | ||
223 | susan_S4 = 2.7557314297e-06f, /* 0x3638ef1b */ | ||
224 | susan_S5 = -2.5050759689e-08f, /* 0xb2d72f34 */ | ||
225 | susan_S6 = 1.5896910177e-10f; /* 0x2f2ec9d3 */ | ||
226 | |||
227 | float susan___kernel_sinf(float x, float y, int iy) | ||
228 | { | ||
229 | float z,r,v; | ||
230 | int32_t ix; | ||
231 | GET_FLOAT_WORD(ix,x); | ||
232 | ix &= 0x7fffffff; /* high word of x */ | ||
233 | if(ix<0x32000000) /* |x| < 2**-27 */ | ||
234 | {if((int)x==0) return x;} /* generate inexact */ | ||
235 | z = x*x; | ||
236 | v = z*x; | ||
237 | r = susan_S2+z*(susan_S3+z*(susan_S4+z*(susan_S5+z*susan_S6))); | ||
238 | if(iy==0) return x+v*(susan_S1+z*r); | ||
239 | else return x-((z*(susan_half*y-v*r)-y)-v*susan_S1); | ||
240 | } | ||
241 | /* s_atanf.c -- float version of s_atan.c. | ||
242 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
243 | */ | ||
244 | |||
245 | /* | ||
246 | * ==================================================== | ||
247 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
248 | * | ||
249 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
250 | * Permission to use, copy, modify, and distribute this | ||
251 | * software is freely granted, provided that this notice | ||
252 | * is preserved. | ||
253 | * ==================================================== | ||
254 | */ | ||
255 | |||
256 | #if defined(LIBM_SCCS) && !defined(lint) | ||
257 | static char rcsid[] = "$NetBSD: s_atanf.c,v 1.4 1995/05/10 20:46:47 jtc Exp $"; | ||
258 | #endif | ||
259 | |||
260 | |||
261 | static const float susan_atanhi[] = { | ||
262 | 4.6364760399e-01f, /* atan(0.5)hi 0x3eed6338 */ | ||
263 | 7.8539812565e-01f, /* atan(1.0)hi 0x3f490fda */ | ||
264 | 9.8279368877e-01f, /* atan(1.5)hi 0x3f7b985e */ | ||
265 | 1.5707962513e+00f, /* atan(inf)hi 0x3fc90fda */ | ||
266 | }; | ||
267 | |||
268 | static const float susan_atanlo[] = { | ||
269 | 5.0121582440e-09f, /* atan(0.5)lo 0x31ac3769 */ | ||
270 | 3.7748947079e-08f, /* atan(1.0)lo 0x33222168 */ | ||
271 | 3.4473217170e-08f, /* atan(1.5)lo 0x33140fb4 */ | ||
272 | 7.5497894159e-08f, /* atan(inf)lo 0x33a22168 */ | ||
273 | }; | ||
274 | |||
275 | static const float susan_aT[] = { | ||
276 | 3.3333334327e-01f, /* 0x3eaaaaaa */ | ||
277 | -2.0000000298e-01f, /* 0xbe4ccccd */ | ||
278 | 1.4285714924e-01f, /* 0x3e124925 */ | ||
279 | -1.1111110449e-01f, /* 0xbde38e38 */ | ||
280 | 9.0908870101e-02f, /* 0x3dba2e6e */ | ||
281 | -7.6918758452e-02f, /* 0xbd9d8795 */ | ||
282 | 6.6610731184e-02f, /* 0x3d886b35 */ | ||
283 | -5.8335702866e-02f, /* 0xbd6ef16b */ | ||
284 | 4.9768779427e-02f, /* 0x3d4bda59 */ | ||
285 | -3.6531571299e-02f, /* 0xbd15a221 */ | ||
286 | 1.6285819933e-02f, /* 0x3c8569d7 */ | ||
287 | }; | ||
288 | |||
289 | float susan___atanf(float x) | ||
290 | { | ||
291 | float w,s1,s2,z; | ||
292 | int32_t ix,hx,id; | ||
293 | |||
294 | GET_FLOAT_WORD(hx,x); | ||
295 | ix = hx&0x7fffffff; | ||
296 | if(ix>=0x50800000) { /* if |x| >= 2^34 */ | ||
297 | if(ix>0x7f800000) | ||
298 | return x+x; /* NaN */ | ||
299 | if(hx>0) return susan_atanhi[3]+susan_atanlo[3]; | ||
300 | else return -susan_atanhi[3]-susan_atanlo[3]; | ||
301 | } if (ix < 0x3ee00000) { /* |x| < 0.4375 */ | ||
302 | if (ix < 0x31000000) { /* |x| < 2^-29 */ | ||
303 | if(susan_huge+x>susan_one) return x; /* raise inexact */ | ||
304 | } | ||
305 | id = -1; | ||
306 | } else { | ||
307 | x = fabsf(x); | ||
308 | if (ix < 0x3f980000) { /* |x| < 1.1875 */ | ||
309 | if (ix < 0x3f300000) { /* 7/16 <=|x|<11/16 */ | ||
310 | id = 0; x = ((float)2.0f*x-susan_one)/((float)2.0f+x); | ||
311 | } else { /* 11/16<=|x|< 19/16 */ | ||
312 | id = 1; x = (x-susan_one)/(x+susan_one); | ||
313 | } | ||
314 | } else { | ||
315 | if (ix < 0x401c0000) { /* |x| < 2.4375 */ | ||
316 | id = 2; x = (x-(float)1.5f)/(susan_one+(float)1.5f*x); | ||
317 | } else { /* 2.4375 <= |x| < 2^66 */ | ||
318 | id = 3; x = -(float)1.0f/x; | ||
319 | } | ||
320 | }} | ||
321 | /* end of argument reduction */ | ||
322 | z = x*x; | ||
323 | w = z*z; | ||
324 | /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ | ||
325 | s1 = z*(susan_aT[0]+w*(susan_aT[2]+w*(susan_aT[4]+w*(susan_aT[6]+w*(susan_aT[8]+w*susan_aT[10]))))); | ||
326 | s2 = w*(susan_aT[1]+w*(susan_aT[3]+w*(susan_aT[5]+w*(susan_aT[7]+w*susan_aT[9])))); | ||
327 | if (id<0) return x - x*(s1+s2); | ||
328 | else { | ||
329 | z = susan_atanhi[id] - ((x*(s1+s2) - susan_atanlo[id]) - x); | ||
330 | return (hx<0)? -z:z; | ||
331 | } | ||
332 | } | ||
333 | |||
334 | /* s_cosf.c -- float version of s_cos.c. | ||
335 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
336 | */ | ||
337 | |||
338 | /* | ||
339 | * ==================================================== | ||
340 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
341 | * | ||
342 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
343 | * Permission to use, copy, modify, and distribute this | ||
344 | * software is freely granted, provided that this notice | ||
345 | * is preserved. | ||
346 | * ==================================================== | ||
347 | */ | ||
348 | |||
349 | float susan___cosf(float x) | ||
350 | { | ||
351 | float y[2],z=0.0f; | ||
352 | int32_t n,ix; | ||
353 | |||
354 | GET_FLOAT_WORD(ix,x); | ||
355 | |||
356 | /* |x| ~< pi/4 */ | ||
357 | ix &= 0x7fffffff; | ||
358 | if(ix <= 0x3f490fd8) return susan___kernel_cosf(x,z); | ||
359 | |||
360 | /* cos(Inf or NaN) is NaN */ | ||
361 | else if (ix>=0x7f800000) return x-x; | ||
362 | |||
363 | /* argument reduction needed */ | ||
364 | else { | ||
365 | n = susan___ieee754_rem_pio2f(x,y); | ||
366 | switch(n&3) { | ||
367 | case 0: return susan___kernel_cosf(y[0],y[1]); | ||
368 | case 1: return -susan___kernel_sinf(y[0],y[1],1); | ||
369 | case 2: return -susan___kernel_cosf(y[0],y[1]); | ||
370 | default: | ||
371 | return susan___kernel_sinf(y[0],y[1],1); | ||
372 | } | ||
373 | } | ||
374 | } | ||
375 | |||
376 | /* s_sinf.c -- float version of s_sin.c. | ||
377 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
378 | */ | ||
379 | |||
380 | /* | ||
381 | * ==================================================== | ||
382 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
383 | * | ||
384 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
385 | * Permission to use, copy, modify, and distribute this | ||
386 | * software is freely granted, provided that this notice | ||
387 | * is preserved. | ||
388 | * ==================================================== | ||
389 | */ | ||
390 | |||
391 | float susan___sinf(float x) | ||
392 | { | ||
393 | float y[2],z=0.0; | ||
394 | int32_t n, ix; | ||
395 | |||
396 | GET_FLOAT_WORD(ix,x); | ||
397 | |||
398 | /* |x| ~< pi/4 */ | ||
399 | ix &= 0x7fffffff; | ||
400 | if(ix <= 0x3f490fd8) return susan___kernel_sinf(x,z,0); | ||
401 | |||
402 | /* sin(Inf or NaN) is NaN */ | ||
403 | else if (ix>=0x7f800000) return x-x; | ||
404 | |||
405 | /* argument reduction needed */ | ||
406 | else { | ||
407 | n = susan___ieee754_rem_pio2f(x,y); | ||
408 | switch(n&3) { | ||
409 | case 0: return susan___kernel_sinf(y[0],y[1],1); | ||
410 | case 1: return susan___kernel_cosf(y[0],y[1]); | ||
411 | case 2: return -susan___kernel_sinf(y[0],y[1],1); | ||
412 | default: | ||
413 | return -susan___kernel_cosf(y[0],y[1]); | ||
414 | } | ||
415 | } | ||
416 | } | ||
417 | |||
418 | /* s_fabsf.c -- float version of s_fabs.c. | ||
419 | * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. | ||
420 | */ | ||
421 | |||
422 | /* | ||
423 | * ==================================================== | ||
424 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
425 | * | ||
426 | * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
427 | * Permission to use, copy, modify, and distribute this | ||
428 | * software is freely granted, provided that this notice | ||
429 | * is preserved. | ||
430 | * ==================================================== | ||
431 | */ | ||
432 | |||
433 | /* | ||
434 | * fabsf(x) returns the absolute value of x. | ||
435 | */ | ||
436 | |||
437 | |||
438 | float susan___fabsf(float x) | ||
439 | { | ||
440 | u_int32_t ix; | ||
441 | GET_FLOAT_WORD(ix,x); | ||
442 | SET_FLOAT_WORD(x,ix&0x7fffffff); | ||
443 | return x; | ||
444 | } | ||
diff --git a/baseline/source/susan/wcclibm.h b/baseline/source/susan/wcclibm.h new file mode 100644 index 0000000..bcf4c65 --- /dev/null +++ b/baseline/source/susan/wcclibm.h | |||
@@ -0,0 +1,53 @@ | |||
1 | #ifndef _WCCLIBM | ||
2 | #define _WCCLIBM | ||
3 | |||
4 | #define int32_t int | ||
5 | #define uint32_t unsigned int | ||
6 | #define u_int16_t unsigned short | ||
7 | #define u_int32_t unsigned int | ||
8 | |||
9 | // Often used variables/consts | ||
10 | #ifdef __STDC__ | ||
11 | static const float | ||
12 | #else | ||
13 | static float | ||
14 | #endif | ||
15 | susan_one = 1.0f, | ||
16 | susan_half = 5.0000000000e-01f, /* 0x3f000000 */ | ||
17 | susan_zero = 0.0f, | ||
18 | susan_huge = 1.0e30, | ||
19 | susan_two8 = 2.5600000000e+02f, /* 0x43800000 */ | ||
20 | susan_twon8 = 3.9062500000e-03f; /* 0x3b800000 */ | ||
21 | |||
22 | // The following defines map the math functions to specialized calls | ||
23 | #define acos susan___ieee754_acosf | ||
24 | #define atan susan___atanf | ||
25 | #define cos susan___cosf | ||
26 | #define fabs susan___fabsf | ||
27 | #define fabsf susan___fabsf | ||
28 | #define isinf susan___isinff | ||
29 | #define pow susan___ieee754_powf | ||
30 | #define sqrt susan___ieee754_sqrtf | ||
31 | #define log10 susan___ieee754_log10f | ||
32 | #define log susan___ieee754_logf | ||
33 | #define sin susan___sinf | ||
34 | |||
35 | float susan___atanf(float x); | ||
36 | float susan___copysignf(float x, float y); | ||
37 | float susan___cosf(float x); | ||
38 | float susan___fabsf(float x); | ||
39 | float susan___floorf(float x); | ||
40 | float susan___ieee754_acosf(float x); | ||
41 | float susan___ieee754_powf(float x, float y); | ||
42 | int32_t susan___ieee754_rem_pio2f(float x, float *y); | ||
43 | float susan___ieee754_sqrtf(float x); | ||
44 | int susan___isinff (float x); | ||
45 | float susan___kernel_cosf(float x, float y); | ||
46 | float susan___kernel_sinf(float x, float y, int iy); | ||
47 | int susan___kernel_rem_pio2f(float *x, float *y, int e0, int nx, int prec, const int32_t *ipio2); | ||
48 | float susan___scalbnf (float x, int n); | ||
49 | float susan___ieee754_logf(float x); | ||
50 | float susan___ieee754_log10f(float x); | ||
51 | float susan___sinf(float x); | ||
52 | |||
53 | #endif // _WCCLIBM | ||
diff --git a/baseline/source/susan/wccmalloc.c b/baseline/source/susan/wccmalloc.c new file mode 100644 index 0000000..edf01cc --- /dev/null +++ b/baseline/source/susan/wccmalloc.c | |||
@@ -0,0 +1,51 @@ | |||
1 | #include "wccmalloc.h" | ||
2 | |||
3 | // This must be redefined for each new benchmark | ||
4 | #define HEAP_SIZE 30000 | ||
5 | |||
6 | char susan_simulated_heap[HEAP_SIZE]; | ||
7 | unsigned int susan_freeHeapPos; | ||
8 | |||
9 | void* susan_wccmalloc( unsigned int numberOfBytes ) | ||
10 | { | ||
11 | // Get a 4-byte adress for alignment purposes | ||
12 | unsigned int offset = ( (unsigned long)susan_simulated_heap + susan_freeHeapPos ) % 4; | ||
13 | if ( offset ) { | ||
14 | susan_freeHeapPos += 4 - offset; | ||
15 | } | ||
16 | void* currentPos = (void*)&susan_simulated_heap[susan_freeHeapPos]; | ||
17 | susan_freeHeapPos += numberOfBytes; | ||
18 | return currentPos; | ||
19 | } | ||
20 | void susan_wccfreeall( void ) | ||
21 | { | ||
22 | susan_freeHeapPos = 0; | ||
23 | } | ||
24 | |||
25 | void* susan_wccmemcpy(void* dstpp, const void* srcpp, unsigned int len) | ||
26 | { | ||
27 | unsigned long int dstp = (long int) dstpp; | ||
28 | unsigned long int srcp = (long int) srcpp; | ||
29 | |||
30 | _Pragma("loopbound min 76 max 76") | ||
31 | while (len > 0) { | ||
32 | char __x = ((char *) srcp)[0]; | ||
33 | srcp += 1; | ||
34 | len -= 1; | ||
35 | ((char *) dstp)[0] = __x; | ||
36 | dstp += 1; | ||
37 | } | ||
38 | |||
39 | return dstpp; | ||
40 | } | ||
41 | |||
42 | void susan_wccmemset( void *p, int value, unsigned int num ) | ||
43 | { | ||
44 | unsigned long i; | ||
45 | char *char_ptr = (char*)p; | ||
46 | |||
47 | _Pragma( "loopbound min 7220 max 28880" ) | ||
48 | for ( i = 0; i < num; ++i ) { | ||
49 | *char_ptr++ = (unsigned char)value; | ||
50 | } | ||
51 | } | ||
diff --git a/baseline/source/susan/wccmalloc.h b/baseline/source/susan/wccmalloc.h new file mode 100644 index 0000000..dbb2ada --- /dev/null +++ b/baseline/source/susan/wccmalloc.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef _WCCMALLOC_H | ||
2 | #define _WCCMALLOC_H | ||
3 | |||
4 | void* susan_wccmalloc( unsigned int numberOfBytes ); | ||
5 | //! Frees ALL allocated memory space | ||
6 | void susan_wccfreeall( void ); | ||
7 | void *susan_wccmemcpy( void* dstpp, const void* srcpp, unsigned int len ); | ||
8 | void susan_wccmemset( void *p, int value, unsigned int num ); | ||
9 | |||
10 | #endif | ||