-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMoon.cpp
More file actions
398 lines (379 loc) · 74.5 KB
/
Moon.cpp
File metadata and controls
398 lines (379 loc) · 74.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
#include <Arduino.h>
#include <avr/pgmspace.h>
#include "RTC.h"
#include "Config.h"
#include "Graphics.h"
#include "Moon.h"
int Time::DaysInMonth(int Month, int Year) // 1..12, 2001..2099
{
// (Days-28) encoded as 2bits/Month 0b0000DD..FFJJ00
int Increment = (0x03BBEECCUL >> (2*Month) & 0x03);
if ((Year % 4) || Increment) // (simple leap year test)
return 28 + Increment;
else
return 29; // Leap year AND Feb
}
long Time::DayOfCentury(int Date, // 1..31
int Month, // 1..12
int Year) // 2001..2099 (Leap year test is basic)
{
// years into the "century"
Year -= 2000;
// days in whole years
long Day = Date + 365L*Year;
// leap days (except in 2000)
Day += (Year - 1)/4L;
// days in this year
while (--Month > 0)
Day += DaysInMonth(Month, Year);
return Day;
}
unsigned long Time::MakeSeconds(int Date, int Month, int Year, int Hour, int Minute)
{
// mktime-like thing, seconds since 1/1/2000 00:00
unsigned long Minutes = DayOfCentury(Date, Month, Year)*24UL*60UL;
Minutes += Hour*60UL + Minute;
return Minutes*60UL;
}
extern long rcosx(long r, long x)
{
x = 90 - x;
if (x < 0)
{
x += 180;
r = -r;
}
if (x > 180)
{
x -= 180;
r = -r;
}
// Bhaskara I's sine approximation:
return r*4L*x*(180L-x)/(40500L - x*(180L-x));
}
void Moon::CalcAge(//unsigned long referenceNewMoonSeconds, int Day, int Month, int Year, int Hour, int Minute, // SAVE program space!
int& AgeDays, int& Angle, int& DaysUntilPlus1)
{
unsigned long referenceNewMoonSeconds = Config::_RefNewMoonSeconds;
// DaysUntilPlus1 is +ve if until Full, else until new
const unsigned long moonPeriodSeconds = 2551443UL; // ~29.530587981 days
const unsigned long dayLengthSeconds = 24UL*60UL*60UL;
unsigned long CalcMoonSeconds = Time::MakeSeconds(rtc.m_DayOfMonth, rtc.m_Month, rtc.m_Year + 2000, rtc.m_Hour24, rtc.m_Minute);
unsigned long diffSeconds = CalcMoonSeconds - referenceNewMoonSeconds;
if (CalcMoonSeconds < referenceNewMoonSeconds)
diffSeconds = moonPeriodSeconds - (referenceNewMoonSeconds - CalcMoonSeconds);
unsigned long AgeSeconds = diffSeconds % moonPeriodSeconds;
AgeDays = AgeSeconds/dayLengthSeconds;
Angle = AgeSeconds*180UL/moonPeriodSeconds;
// Calc days to next Full etc, this can be out by quite a lot since the Full may not be half-way between New's
if (Angle < 90)
{
DaysUntilPlus1 = (moonPeriodSeconds/2UL - AgeSeconds)/dayLengthSeconds;
if (((moonPeriodSeconds/2UL - AgeSeconds) % dayLengthSeconds) > dayLengthSeconds/2UL)
DaysUntilPlus1++; // round up
DaysUntilPlus1++;
}
else
{
DaysUntilPlus1 = (moonPeriodSeconds - AgeSeconds)/dayLengthSeconds;
if (((moonPeriodSeconds - AgeSeconds)/dayLengthSeconds) > dayLengthSeconds/2UL)
DaysUntilPlus1++; // round up
DaysUntilPlus1++;
DaysUntilPlus1 = -DaysUntilPlus1;
}
}
#define MOON_IMAGE_WIDTH 155
#define MOON_IMAGE_HEIGHT 152
// just so we can push all that data out of the way at the bottom of the file
const byte* GetMoonRows();
void Moon::CreatePalette(word* palette)
{
// just shades of grey
for (int pal = 0; pal < 16; pal++)
{
byte val = pal*16;
if (val == 0) val = 8;
palette[pal] = RGB(val,val,val);
}
}
void Moon::DrawPhase(int phaseAngle)
{
word palette[16];
CreatePalette(palette);
if (Config::_OutputFlags & Config::MaskNorthern) // Northern hemisphere
{
if (phaseAngle <= 90)
DrawGore(180 - phaseAngle*2, 180, palette, true);
else
DrawGore(0, 180 - (90 - phaseAngle)*2, palette, true);
}
else // Southern
{
if (phaseAngle <= 90)
DrawGore(0, phaseAngle*2, palette, true);
else
DrawGore((90 - phaseAngle)*2, 180, palette, true);
}
}
#define SITE_SIZE 4
void Moon::DrawLandingSite()
{
lcd.beginFill((LCD_WIDTH - MOON_IMAGE_WIDTH)/2 + 115, (LCD_HEIGHT - MOON_IMAGE_HEIGHT)/2 + 77, SITE_SIZE, SITE_SIZE);
lcd.fillColour(SITE_SIZE*SITE_SIZE, 0xF800);
}
#ifdef USE_MOON_GRAPHICS
void Moon::DrawGore(int startAngle, int endAngle, word* palette, bool wax)
{
// draws a "gore" of the moon image, a strip of pixels between the two meridian angles, 0 starting from the LEFT
// if wax, uses the given palette, otherwise black
// Note the original plan was to *shade* the moon image by darkening the palette based on the angle around the sphere.
// Unfortunately very dark, almost black, colours have a greenish tinge, so that was abandoned.
lcd.setWindow(0, 0, LCD_WIDTH, LCD_HEIGHT);
const byte* ptr = GetMoonRows();
int left = (LCD_WIDTH - MOON_IMAGE_WIDTH)/2;
int top = (LCD_HEIGHT - MOON_IMAGE_HEIGHT)/2;
byte startEdges[MOON_IMAGE_WIDTH];
byte endEdges[MOON_IMAGE_WIDTH];
// pre-build the trig calculations so they don't happen while we're drawing, a delay before we start is better than while painting a strip
for (int i = 0; i <= MOON_IMAGE_WIDTH/2; i++)
{
startEdges[i] = i + rcosx(i, startAngle);
endEdges[i] = i + rcosx(i, endAngle);
}
// the data is list of rows with # black pixels first then two-pixels per byte image detail
// we need to skip over data up to the point we start drawing, draw the pixels then skip the rest of the row
// to arrive at the start of the next
for (int row = 0; row < MOON_IMAGE_HEIGHT; row++)
{
int blackCols = pgm_read_byte(ptr++);
int colourCols = MOON_IMAGE_WIDTH - 2*blackCols;
int startEdge = startEdges[colourCols/2];
int endEdge = endEdges[colourCols/2];
lcd.setPosition(left + blackCols + colourCols - startEdge, top + row, startEdge - endEdge + 1, 1);
// skip whole leadng bytes
while ((colourCols - startEdge) > 2)
{
ptr++;
colourCols -= 2;
}
while (colourCols > 0)
{
byte pair = pgm_read_byte(ptr++);
for (int pix = 0; pix < 2; pix++)
{
if (colourCols-- > 0)
{
if (colourCols >= endEdge)
{
word colour = wax?palette[pair & 0x0F]:0x0000;
FastData(colour >> 8);
FastData(colour & 0xFF);
SERIALISE_FILLCOLOUR(1, colour);
}
else if (colourCols < endEdge)
{
// past the last pixel, skip the remaining bytes
while (colourCols > 0)
{
ptr++;
colourCols -= 2;
}
pix = 2;
}
}
pair >>= 4;
}
}
}
}
static const byte pMoonImageRows[] PROGMEM =
{
// number of black pixels at row start, colour pixels (two per byte, grey scale, 0xRL)...
0x40, 0x00, 0x00, 0x10, 0x87, 0x78, 0x67, 0x66, 0x66, 0x77, 0x88, 0x17, 0x00, 0x00, 0x00,
0x3C, 0x10, 0x11, 0x43, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44, 0x12, 0x11, 0x00,
0x39, 0x21, 0x22, 0x44, 0x55, 0x55, 0x55, 0x65, 0x66, 0x66, 0x55, 0x55, 0x65, 0x66, 0x66, 0x66, 0x66, 0x55, 0x44, 0x24, 0x11, 0x00,
0x34, 0x00, 0x31, 0x53, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x76, 0x67, 0x56, 0x65, 0x77, 0x77, 0x77, 0x77, 0x67, 0x55, 0x66, 0x56, 0x45, 0x34, 0x22, 0x00, 0x00,
0x32, 0x10, 0x42, 0x54, 0x55, 0x56, 0x55, 0x55, 0x65, 0x66, 0x66, 0x66, 0x78, 0x66, 0x86, 0x88, 0x88, 0x78, 0x77, 0x67, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44, 0x33, 0x11, 0x00,
0x30, 0x21, 0x43, 0x55, 0x66, 0x55, 0x56, 0x65, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x87, 0x88, 0x78, 0x77, 0x67, 0x66, 0x66, 0x55, 0x55, 0x55, 0x45, 0x44, 0x33, 0x12, 0x00,
0x2D, 0x10, 0x53, 0x65, 0x66, 0x76, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x97, 0x99, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x56, 0x55, 0x55, 0x45, 0x44, 0x24, 0x12, 0x00,
0x2B, 0x10, 0x43, 0x65, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x87, 0x88, 0x68, 0x86, 0x88, 0x88, 0x88, 0x99, 0x78, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x55, 0x55, 0x45, 0x44, 0x44, 0x13, 0x00,
0x29, 0x10, 0x43, 0x65, 0x66, 0x77, 0x77, 0x88, 0x78, 0x77, 0x77, 0x87, 0x88, 0x88, 0x88, 0x88, 0x47, 0x86, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x56, 0x55, 0x55, 0x65, 0x45, 0x13, 0x00,
0x27, 0x10, 0x53, 0x65, 0x66, 0x77, 0x87, 0x88, 0x99, 0x88, 0x88, 0x77, 0x77, 0x76, 0x58, 0x44, 0x44, 0x44, 0x74, 0x88, 0x88, 0x77, 0x57, 0x87, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0x67, 0x66, 0x55, 0x13, 0x00,
0x25, 0x10, 0x43, 0x65, 0x76, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x56, 0x55, 0x54, 0x45, 0x44, 0x44, 0x44, 0x44, 0x56, 0x55, 0x55, 0x54, 0x86, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x77, 0x87, 0x89, 0x88, 0x88, 0x78, 0x77, 0x66, 0x45, 0x13, 0x00,
0x24, 0x20, 0x44, 0x65, 0x77, 0x87, 0x78, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x46, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x87, 0x98, 0x99, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x87, 0x88, 0x88, 0x77, 0x67, 0x56, 0x24, 0x00,
0x22, 0x10, 0x43, 0x34, 0x76, 0x87, 0x78, 0x77, 0x77, 0x46, 0x44, 0x44, 0x64, 0x97, 0xAA, 0x56, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x98, 0x67, 0x76, 0x88, 0x78, 0x77, 0x67, 0x76, 0x99, 0x99, 0x89, 0x88, 0x77, 0x67, 0x56, 0x23, 0x00,
0x21, 0x20, 0x43, 0x33, 0x75, 0x88, 0x88, 0x77, 0x56, 0x44, 0x44, 0x44, 0x44, 0x64, 0xA9, 0x9A, 0x56, 0x77, 0x57, 0x44, 0x54, 0x96, 0xAA, 0x89, 0x67, 0x55, 0x55, 0x66, 0x66, 0x88, 0x66, 0x66, 0x77, 0x55, 0x65, 0x45, 0x76, 0x67, 0x98, 0x99, 0x88, 0x78, 0x67, 0x66, 0x35, 0x01,
0x20, 0x31, 0x33, 0x33, 0x53, 0x77, 0x77, 0x57, 0x44, 0x44, 0x44, 0x44, 0x65, 0x98, 0xAA, 0xBA, 0x9A, 0xAA, 0x78, 0x55, 0x75, 0xBA, 0xBB, 0xBB, 0xBB, 0xAA, 0x79, 0x66, 0x66, 0x66, 0x77, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x44, 0x64, 0x88, 0x98, 0x89, 0x78, 0x77, 0x66, 0x45, 0x01,
0x1E, 0x20, 0x33, 0x33, 0x33, 0x43, 0x55, 0x44, 0x44, 0x44, 0x44, 0x54, 0x86, 0xAA, 0xBA, 0xBB, 0xBB, 0xBB, 0xAB, 0xBA, 0xAB, 0xBA, 0xBB, 0xAA, 0xBB, 0xBB, 0xBB, 0xAB, 0x66, 0x76, 0x67, 0x77, 0x77, 0x67, 0x66, 0x66, 0x55, 0x55, 0x44, 0x44, 0x44, 0x94, 0x99, 0x89, 0x68, 0x54, 0x66, 0x35, 0x01,
0x1D, 0x30, 0x34, 0x33, 0x33, 0x33, 0x43, 0x44, 0x44, 0x44, 0x44, 0x75, 0x98, 0xAA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x99, 0xBA, 0xBB, 0x68, 0x65, 0xCA, 0xBC, 0xBB, 0x6A, 0x86, 0x89, 0x77, 0x77, 0x77, 0x87, 0x78, 0x67, 0x55, 0x55, 0x45, 0x44, 0x54, 0xA8, 0x9A, 0x88, 0x47, 0x53, 0x66, 0x35, 0x01,
0x1B, 0x10, 0x33, 0x33, 0x33, 0x33, 0x43, 0x44, 0x44, 0x44, 0x44, 0x64, 0xA9, 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x68, 0x55, 0x96, 0xBB, 0x47, 0x54, 0xCA, 0xCC, 0xCC, 0xAB, 0xBA, 0x8B, 0x77, 0x77, 0x77, 0x89, 0x88, 0x78, 0x56, 0x55, 0x55, 0x44, 0x64, 0x99, 0x8A, 0x88, 0x77, 0x56, 0x67, 0x56, 0x24, 0x00,
0x1A, 0x20, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x54, 0x66, 0x65, 0x76, 0xAA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x79, 0x55, 0x44, 0x44, 0x65, 0x66, 0x97, 0xBA, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x8A, 0x77, 0x77, 0x97, 0x88, 0x88, 0x67, 0x66, 0x55, 0x76, 0x56, 0x96, 0x99, 0x89, 0x88, 0x88, 0x78, 0x77, 0x66, 0x35, 0x00,
0x19, 0x20, 0x33, 0x33, 0x33, 0x43, 0x44, 0x44, 0x44, 0x97, 0x99, 0xA9, 0xBA, 0xBB, 0xAB, 0x99, 0x99, 0xBB, 0xAB, 0x57, 0x55, 0x55, 0x44, 0x44, 0x44, 0x54, 0x75, 0x98, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0x9A, 0x77, 0x77, 0x98, 0x99, 0x78, 0x66, 0x89, 0x97, 0xAA, 0x78, 0x99, 0x99, 0x99, 0x88, 0x78, 0x77, 0x77, 0x66, 0x25, 0x00,
0x18, 0x20, 0x33, 0x33, 0x33, 0x43, 0x44, 0x44, 0x44, 0x95, 0xAA, 0xAA, 0xBB, 0xBB, 0x9B, 0x56, 0x55, 0x65, 0x89, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x99, 0xCB, 0xCC, 0xCC, 0xCC, 0xAB, 0x78, 0x87, 0x88, 0x78, 0x77, 0xA8, 0xAB, 0xBB, 0x9B, 0x99, 0xAA, 0x99, 0x99, 0x88, 0x78, 0x78, 0x77, 0x66, 0x25, 0x00,
0x17, 0x20, 0x33, 0x33, 0x33, 0x43, 0x44, 0x44, 0x44, 0x74, 0xAA, 0xBA, 0xBB, 0xBB, 0xAB, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x85, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x8B, 0x78, 0x77, 0x97, 0xBA, 0xBB, 0xBB, 0xBB, 0x99, 0xA9, 0xAA, 0x9A, 0x99, 0x89, 0x79, 0x55, 0x76, 0x66, 0x35, 0x00,
0x16, 0x20, 0x44, 0x34, 0x33, 0x44, 0x44, 0x44, 0x44, 0x55, 0xA7, 0xBB, 0xBB, 0xBB, 0xBB, 0x58, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xC7, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xAB, 0x99, 0x89, 0xCA, 0xCC, 0xBB, 0xBB, 0x9A, 0x99, 0xAA, 0xAA, 0x9A, 0x99, 0xA9, 0x79, 0x55, 0x65, 0x66, 0x35, 0x00,
0x15, 0x20, 0x54, 0x34, 0x33, 0x44, 0x44, 0x44, 0x54, 0x55, 0x96, 0xBB, 0xBB, 0xBB, 0xBB, 0x6A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xCA, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0x99, 0xB9, 0xCC, 0xCC, 0xAB, 0x9A, 0x99, 0xB9, 0xAB, 0xAA, 0xAA, 0x99, 0xA9, 0x78, 0x36, 0x64, 0x66, 0x25, 0x00,
0x14, 0x20, 0x54, 0x34, 0x43, 0x44, 0x44, 0x44, 0x55, 0x55, 0x95, 0xBB, 0xBB, 0xBB, 0xBB, 0xAC, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0xAB, 0xA9, 0xCB, 0xCC, 0xCC, 0xCC, 0xAC, 0x99, 0xCB, 0xCC, 0xBC, 0xAA, 0x99, 0xBA, 0xBB, 0xBB, 0xAA, 0xAA, 0x99, 0x9A, 0x58, 0x44, 0x65, 0x66, 0x35, 0x00,
0x13, 0x20, 0x54, 0x34, 0x33, 0x44, 0x44, 0x44, 0x55, 0x55, 0x65, 0xBB, 0xBB, 0xBB, 0xCC, 0xBB, 0x6B, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x78, 0x65, 0x77, 0xA8, 0xCB, 0xCC, 0xCC, 0xCC, 0xBB, 0xBB, 0xCC, 0xCC, 0xAB, 0xAA, 0xBA, 0xBC, 0xBB, 0xBB, 0xAA, 0xAA, 0x99, 0x99, 0x66, 0x57, 0x65, 0x66, 0x35, 0x00,
0x12, 0x20, 0x34, 0x34, 0x33, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0xB8, 0xBB, 0xBB, 0xCC, 0x8B, 0x96, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xA7, 0x9A, 0x99, 0xA9, 0xBA, 0xBC, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xAA, 0xAA, 0xCB, 0xBC, 0xBB, 0xBB, 0xAA, 0xAA, 0x99, 0x89, 0x75, 0x67, 0x75, 0x66, 0x35, 0x00,
0x11, 0x20, 0x34, 0x33, 0x43, 0x44, 0x44, 0x54, 0x55, 0x55, 0x55, 0x96, 0xBB, 0xCB, 0xCC, 0x8B, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x86, 0xAA, 0xAA, 0xAA, 0xAA, 0x8A, 0xA9, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xAC, 0x88, 0xCA, 0xCC, 0xBB, 0xBB, 0xBB, 0xAB, 0xAA, 0x9A, 0x79, 0x85, 0x77, 0x77, 0x66, 0x35, 0x00,
0x10, 0x20, 0x34, 0x33, 0x33, 0x44, 0x44, 0x54, 0x55, 0x55, 0x76, 0x76, 0xBB, 0xCB, 0xCC, 0xAC, 0x56, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x87, 0x99, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA9, 0xBA, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xAC, 0x68, 0x65, 0xBA, 0xBB, 0xBB, 0xAA, 0xAB, 0xAA, 0xAA, 0x9A, 0x79, 0x88, 0x77, 0x77, 0x66, 0x25, 0x00,
0x10, 0x41, 0x33, 0x33, 0x43, 0x44, 0x44, 0x55, 0x55, 0x55, 0x87, 0x96, 0xBB, 0xCC, 0xCC, 0x8B, 0x66, 0x66, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x88, 0xAA, 0xBA, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x9C, 0x56, 0x76, 0xB9, 0xBA, 0xBC, 0x69, 0x77, 0xA7, 0xAA, 0x9A, 0x99, 0x89, 0x78, 0x77, 0x67, 0x45, 0x01,
0x0F, 0x31, 0x44, 0x33, 0x44, 0x44, 0x54, 0x55, 0x55, 0x55, 0x76, 0x67, 0xB8, 0x9B, 0xC9, 0x9B, 0x66, 0x66, 0x66, 0x66, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x85, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x69, 0x65, 0xB9, 0xCC, 0xCC, 0xAB, 0xBB, 0xCC, 0xCC, 0x9B, 0x66, 0xA9, 0xAB, 0xB9, 0xBB, 0x57, 0x65, 0xBA, 0xAA, 0xAA, 0x99, 0x89, 0x78, 0x78, 0x56, 0x35, 0x01,
0x0E, 0x30, 0x43, 0x33, 0x43, 0x44, 0x54, 0x55, 0x55, 0x55, 0x65, 0x78, 0x66, 0x78, 0x86, 0x9C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A, 0x56, 0x85, 0xCC, 0xCC, 0x7B, 0x65, 0x77, 0xCA, 0xCC, 0x9B, 0x66, 0xB9, 0x79, 0x89, 0x67, 0x55, 0xA7, 0xBB, 0xAA, 0xAA, 0x99, 0x89, 0x88, 0x68, 0x56, 0x35, 0x00,
0x0E, 0x31, 0x33, 0x33, 0x44, 0x44, 0x55, 0x55, 0x55, 0x65, 0x76, 0x79, 0x66, 0x66, 0x76, 0x7A, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x97, 0x98, 0xAA, 0xAA, 0x9A, 0x55, 0x65, 0xCC, 0x9C, 0x56, 0x55, 0x55, 0x85, 0xCA, 0xAC, 0x79, 0xA8, 0x56, 0x66, 0x55, 0x55, 0xA7, 0xBB, 0xAB, 0xAA, 0x99, 0x89, 0x88, 0x78, 0x66, 0x56, 0x02,
0x0C, 0x10, 0x32, 0x33, 0x43, 0x44, 0x54, 0x55, 0x65, 0x66, 0x77, 0x98, 0x89, 0x77, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0xAA, 0x9A, 0x76, 0x55, 0x55, 0xCB, 0x6C, 0x55, 0x55, 0x55, 0x55, 0x65, 0xA9, 0x89, 0x77, 0x55, 0xA8, 0x56, 0x55, 0x65, 0xA9, 0xBA, 0xAA, 0x9A, 0x99, 0x88, 0x88, 0x67, 0x66, 0x14, 0x00,
0x0C, 0x30, 0x33, 0x33, 0x44, 0x44, 0x55, 0x65, 0x87, 0x88, 0x99, 0x99, 0x99, 0x99, 0x89, 0x78, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0xAA, 0x8A, 0x75, 0x56, 0x55, 0xC8, 0x5C, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x56, 0x76, 0x55, 0xA7, 0x88, 0x55, 0x75, 0x66, 0xA6, 0xAB, 0xAA, 0x99, 0x89, 0x98, 0x67, 0x66, 0x45, 0x01,
0x0B, 0x20, 0x34, 0x33, 0x43, 0x44, 0x54, 0x55, 0x86, 0x88, 0x98, 0x99, 0x99, 0x99, 0x99, 0x99, 0x89, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xA9, 0x99, 0x99, 0x8A, 0x55, 0xB6, 0xCD, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x56, 0x95, 0xAA, 0x69, 0x55, 0x89, 0x65, 0xBB, 0xAB, 0xAA, 0x99, 0x89, 0x88, 0x67, 0x66, 0x35, 0x00,
0x0B, 0x31, 0x33, 0x33, 0x44, 0x44, 0x55, 0x55, 0x86, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x67, 0x85, 0xAA, 0xAA, 0x58, 0xC8, 0x9C, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x85, 0x56, 0xA6, 0x9A, 0x8A, 0x76, 0xBA, 0xBA, 0xBB, 0xBB, 0xAA, 0x9A, 0x99, 0x88, 0x67, 0x56, 0x55, 0x01,
0x0A, 0x20, 0x33, 0x33, 0x44, 0x44, 0x55, 0x55, 0x76, 0x88, 0x78, 0x98, 0x99, 0x99, 0x99, 0x99, 0x89, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x56, 0x65, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x87, 0x88, 0xAA, 0xAA, 0xAA, 0x97, 0x8B, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x68, 0x55, 0xA9, 0xAA, 0x8A, 0xB8, 0xCC, 0xBB, 0xBB, 0xAB, 0xAA, 0x99, 0x89, 0x78, 0x67, 0x56, 0x25, 0x00,
0x09, 0x20, 0x43, 0x34, 0x44, 0x44, 0x55, 0x55, 0x87, 0x78, 0x66, 0x66, 0x97, 0x99, 0x99, 0x89, 0x67, 0x66, 0x76, 0x77, 0x66, 0x66, 0x66, 0x66, 0x66, 0x55, 0x77, 0x55, 0x75, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x57, 0xA7, 0xAA, 0xAA, 0xAA, 0x8A, 0x67, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x88, 0x55, 0x75, 0xAA, 0xBA, 0xBB, 0xCC, 0xBC, 0xBB, 0xBB, 0xAB, 0xAA, 0x99, 0x89, 0x78, 0x67, 0x55, 0x25, 0x00,
0x09, 0x21, 0x54, 0x34, 0x44, 0x44, 0x55, 0x76, 0x78, 0x66, 0x66, 0x66, 0x97, 0x99, 0x99, 0x99, 0x78, 0x87, 0x99, 0x99, 0x67, 0x66, 0x66, 0x66, 0x66, 0x55, 0x87, 0x55, 0x85, 0x56, 0x55, 0x55, 0x55, 0x55, 0x65, 0x75, 0x68, 0x98, 0x98, 0xAA, 0xAA, 0x8A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x78, 0x55, 0x55, 0x97, 0xA9, 0xCC, 0xCC, 0xCC, 0xBB, 0xBB, 0xBB, 0xAA, 0x9A, 0x99, 0x78, 0x67, 0x66, 0x46, 0x01,
0x09, 0x32, 0x45, 0x43, 0x44, 0x54, 0x65, 0x87, 0x67, 0x66, 0x66, 0x76, 0x9A, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x68, 0x66, 0x66, 0x88, 0x56, 0x55, 0x97, 0x56, 0x85, 0x56, 0x55, 0x55, 0x55, 0x86, 0xA9, 0x79, 0x97, 0x7A, 0x65, 0x97, 0xAA, 0x9A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x68, 0x55, 0x55, 0x55, 0xA5, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xAA, 0x9A, 0x99, 0x88, 0x77, 0x66, 0x56, 0x03,
0x08, 0x31, 0x44, 0x54, 0x44, 0x54, 0x75, 0x77, 0x67, 0x66, 0x66, 0x66, 0xC9, 0x9A, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x68, 0x66, 0x66, 0x86, 0x68, 0x55, 0x65, 0x69, 0x55, 0x68, 0x55, 0x66, 0x55, 0xA7, 0xBB, 0xBB, 0x9A, 0xA9, 0x57, 0x55, 0x86, 0xAA, 0x58, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x88, 0x55, 0x55, 0x55, 0x65, 0xCA, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xAA, 0x9A, 0x99, 0x88, 0x67, 0x66, 0x46, 0x01,
0x07, 0x20, 0x44, 0x64, 0x67, 0x44, 0x75, 0x77, 0x66, 0x66, 0x66, 0x66, 0xA7, 0x9A, 0x99, 0x99, 0x99, 0x88, 0x99, 0x89, 0x66, 0x66, 0x66, 0x66, 0x87, 0x56, 0x55, 0x96, 0x57, 0x85, 0x56, 0x87, 0x88, 0x86, 0xBB, 0xBB, 0xBB, 0xBB, 0xAA, 0x57, 0x55, 0x75, 0xAA, 0xAA, 0x58, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x86, 0x56, 0x55, 0x55, 0x55, 0x85, 0xCB, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xAA, 0x9A, 0x89, 0x78, 0x77, 0x67, 0x25, 0x00,
0x07, 0x30, 0x44, 0x75, 0x57, 0x54, 0x76, 0x67, 0x66, 0x66, 0x66, 0x76, 0xC9, 0xAC, 0x99, 0x99, 0x89, 0x66, 0x77, 0x67, 0x66, 0x66, 0x66, 0x66, 0x86, 0x66, 0x77, 0x86, 0x68, 0x86, 0x66, 0x88, 0x88, 0x86, 0xBB, 0xBB, 0xBB, 0xBB, 0xAA, 0x59, 0x55, 0x65, 0xBA, 0xAB, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x87, 0x56, 0x55, 0x55, 0x55, 0x55, 0xC7, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xAA, 0x9A, 0x99, 0x88, 0x77, 0x67, 0x46, 0x01,
0x06, 0x20, 0x44, 0x65, 0x56, 0x54, 0x76, 0x66, 0x76, 0x88, 0x77, 0x87, 0xC9, 0xDD, 0x9A, 0x99, 0x99, 0x68, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x88, 0x99, 0x89, 0x88, 0x66, 0x68, 0x65, 0x88, 0x57, 0x96, 0xBB, 0xBB, 0xBB, 0xBB, 0x79, 0x55, 0x55, 0xB7, 0xBB, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x85, 0x57, 0x55, 0x55, 0x55, 0x55, 0x85, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xAA, 0x9A, 0x99, 0x78, 0x67, 0x66, 0x35, 0x00,
0x06, 0x31, 0x54, 0x66, 0x44, 0x65, 0x56, 0x55, 0x66, 0x87, 0x99, 0x99, 0x9A, 0x99, 0x99, 0x99, 0x98, 0x68, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x98, 0xAA, 0x89, 0x97, 0x66, 0x68, 0x55, 0x55, 0x55, 0x55, 0x96, 0xBA, 0xBB, 0xBB, 0xAB, 0x68, 0x86, 0xBA, 0xBB, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x85, 0x56, 0x55, 0x55, 0x55, 0x55, 0xC9, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xBB, 0xAB, 0x9A, 0x99, 0x88, 0x77, 0x66, 0x46, 0x01,
0x06, 0x42, 0x64, 0x56, 0x44, 0x55, 0x55, 0x65, 0x66, 0x76, 0x98, 0x99, 0x99, 0x99, 0x99, 0x99, 0x78, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x98, 0x99, 0x79, 0x97, 0x76, 0x69, 0x56, 0x55, 0x55, 0x55, 0x65, 0xA8, 0xBB, 0xBB, 0xBB, 0xAB, 0xBA, 0xBB, 0xBB, 0x59, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x86, 0x56, 0x55, 0x55, 0x55, 0x55, 0xC9, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xBB, 0xAB, 0xAA, 0x99, 0x88, 0x77, 0x66, 0x56, 0x03,
0x05, 0x30, 0x34, 0x56, 0x44, 0x54, 0x55, 0x65, 0x66, 0x66, 0x76, 0x98, 0x99, 0x99, 0x99, 0x99, 0x89, 0x67, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x86, 0x68, 0x66, 0x76, 0x6A, 0x96, 0x66, 0x66, 0x66, 0x55, 0x55, 0x65, 0x76, 0xA8, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x6A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x58, 0x55, 0x55, 0x55, 0x55, 0x65, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xAB, 0x9A, 0x79, 0x45, 0x65, 0x67, 0x46, 0x00,
0x05, 0x41, 0x33, 0x44, 0x44, 0x54, 0x55, 0x65, 0x66, 0x66, 0x76, 0x98, 0x99, 0x99, 0x99, 0x99, 0x99, 0x67, 0x76, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0xA6, 0x68, 0x66, 0x76, 0x69, 0x86, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x86, 0x98, 0xBA, 0xBB, 0xBB, 0xBB, 0x69, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0xC7, 0xCC, 0xCC, 0xAC, 0xCB, 0xCC, 0xBB, 0xBB, 0xAB, 0xAA, 0x49, 0x33, 0x53, 0x77, 0x56, 0x02,
0x04, 0x20, 0x34, 0x33, 0x44, 0x54, 0x55, 0x55, 0x66, 0x66, 0x66, 0x97, 0x88, 0x88, 0x99, 0x99, 0x99, 0x79, 0x67, 0x76, 0x77, 0x77, 0x66, 0x66, 0x66, 0x76, 0x9A, 0x67, 0x66, 0x97, 0x66, 0x68, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x97, 0xBB, 0xBB, 0xBB, 0x9B, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0xCA, 0xCC, 0xBC, 0x76, 0xB9, 0xBC, 0xBB, 0xBB, 0xAB, 0x6A, 0x33, 0x33, 0x43, 0x66, 0x35, 0x00,
0x04, 0x31, 0x34, 0x43, 0x44, 0x54, 0x55, 0x65, 0x66, 0x66, 0x66, 0x88, 0x77, 0x77, 0x89, 0x88, 0x99, 0x78, 0x88, 0x77, 0x77, 0x99, 0x68, 0x66, 0x66, 0x86, 0xAA, 0x69, 0x66, 0x77, 0x66, 0x68, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0xA9, 0xBB, 0xBB, 0xBB, 0xBB, 0x9B, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x85, 0xCC, 0xCC, 0xBC, 0x57, 0x95, 0xCC, 0xBB, 0xBB, 0xAB, 0x47, 0x33, 0x33, 0x33, 0x54, 0x45, 0x01,
0x03, 0x10, 0x54, 0x44, 0x44, 0x54, 0x55, 0x55, 0x66, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x99, 0x99, 0x77, 0x87, 0x89, 0x67, 0x98, 0x78, 0x66, 0x97, 0xAA, 0x79, 0x66, 0x76, 0x67, 0x87, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0xBA, 0xBB, 0xBB, 0x9B, 0xBA, 0xBB, 0x69, 0x55, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xC9, 0xCC, 0xCC, 0x9C, 0x65, 0xCB, 0xCC, 0xBB, 0xBB, 0x5A, 0x44, 0x33, 0x33, 0x33, 0x54, 0x25, 0x00,
0x03, 0x30, 0x54, 0x65, 0x46, 0x54, 0x55, 0x65, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x87, 0x99, 0xAA, 0x89, 0x77, 0x87, 0x78, 0x86, 0x99, 0x78, 0xA8, 0xAA, 0x89, 0x67, 0x87, 0x67, 0x88, 0x88, 0x66, 0x66, 0x66, 0x66, 0x66, 0x96, 0xBB, 0xBB, 0xBB, 0x6A, 0xA8, 0x88, 0x68, 0x66, 0x79, 0x65, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xCA, 0xCC, 0xBC, 0xAC, 0x86, 0xCC, 0xCC, 0xBB, 0xBB, 0x6A, 0x44, 0x33, 0x33, 0x33, 0x53, 0x35, 0x00,
0x03, 0x30, 0x55, 0x65, 0x45, 0x55, 0x55, 0x65, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x97, 0x99, 0xAA, 0x9A, 0x67, 0x76, 0x97, 0x99, 0xA9, 0x9A, 0xAA, 0xAA, 0xAA, 0x99, 0x99, 0x88, 0xAA, 0x8A, 0x66, 0x66, 0x66, 0x66, 0x87, 0xB9, 0xBB, 0xBB, 0xBB, 0x79, 0x96, 0x68, 0x67, 0x76, 0xAA, 0x87, 0x69, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0xAB, 0xCB, 0x8C, 0xA8, 0x66, 0x67, 0xC9, 0xCC, 0xBC, 0x9B, 0x46, 0x33, 0x33, 0x33, 0x42, 0x46, 0x00,
0x03, 0x42, 0x55, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x87, 0x99, 0x99, 0xAA, 0x8A, 0x77, 0x77, 0x76, 0x98, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x8A, 0x87, 0x66, 0x76, 0x98, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x98, 0xAA, 0x9B, 0x66, 0x97, 0x77, 0x99, 0x79, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xC9, 0x7C, 0x55, 0x55, 0x55, 0xB7, 0xCC, 0xBC, 0xBC, 0x47, 0x34, 0x33, 0x33, 0x32, 0x56, 0x02,
0x03, 0x42, 0x45, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x98, 0xA9, 0xA9, 0xAA, 0x8A, 0x76, 0x88, 0x88, 0x99, 0xAA, 0xAB, 0xAA, 0xBA, 0xBB, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A, 0xAA, 0x78, 0xA8, 0xAB, 0xB9, 0xBB, 0xBB, 0xBB, 0xBB, 0x9A, 0x77, 0x88, 0xBA, 0x67, 0x76, 0x77, 0x96, 0x9A, 0x9B, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xA9, 0x7A, 0x55, 0x55, 0x65, 0x98, 0xCB, 0xCC, 0xBC, 0x46, 0x34, 0x33, 0x33, 0x23, 0x55, 0x03,
0x02, 0x30, 0x55, 0x44, 0x44, 0x55, 0x55, 0x65, 0x66, 0x66, 0x77, 0x77, 0x77, 0x87, 0x99, 0xA9, 0xA9, 0xAA, 0xAA, 0x79, 0x76, 0x87, 0x99, 0xA9, 0xBA, 0xAB, 0xAA, 0xBB, 0xBB, 0xBA, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0x79, 0x78, 0x87, 0xBB, 0xBB, 0xBB, 0xBB, 0x78, 0x66, 0x66, 0x76, 0x79, 0x86, 0x8A, 0x98, 0xA8, 0xE8, 0xDE, 0x7A, 0x87, 0x8B, 0x86, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x97, 0x99, 0xCA, 0xCC, 0x9C, 0x44, 0x33, 0x33, 0x33, 0x42, 0x46, 0x01,
0x02, 0x41, 0x55, 0x43, 0x44, 0x55, 0x55, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x87, 0x99, 0xA9, 0xA9, 0xAA, 0xAA, 0x8A, 0x77, 0x99, 0x78, 0x97, 0xAA, 0xAB, 0xAA, 0xAA, 0xBB, 0xBB, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0x7A, 0x77, 0x87, 0xBA, 0xAB, 0xBA, 0xAB, 0x66, 0x66, 0x66, 0x66, 0x66, 0xB8, 0xBB, 0x89, 0x88, 0xD8, 0xFF, 0xEF, 0xEF, 0x7D, 0xC8, 0x59, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x87, 0x89, 0x98, 0xCB, 0x9B, 0x45, 0x34, 0x33, 0x33, 0x42, 0x56, 0x02,
0x02, 0x41, 0x55, 0x54, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x87, 0x99, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A, 0x78, 0x77, 0x66, 0x98, 0xBA, 0xBB, 0xAA, 0xAA, 0xBA, 0xBB, 0xBB, 0xAB, 0xAA, 0xAA, 0xAA, 0x79, 0x77, 0x77, 0x98, 0x78, 0x87, 0xAB, 0x77, 0x66, 0x66, 0x66, 0x66, 0xD9, 0xBC, 0x67, 0x96, 0xCB, 0xED, 0xFF, 0x8D, 0x57, 0xA7, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x86, 0x89, 0x88, 0xC9, 0x7B, 0x44, 0x34, 0x33, 0x33, 0x33, 0x56, 0x01,
0x01, 0x20, 0x54, 0x45, 0x76, 0x67, 0x55, 0x65, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x99, 0xAA, 0xAA, 0xBA, 0xAA, 0x9A, 0x67, 0x66, 0x86, 0xBA, 0xBB, 0xBB, 0xAA, 0xAA, 0xCB, 0xCC, 0xBC, 0xAA, 0xAA, 0xBA, 0x79, 0x77, 0x77, 0x77, 0x77, 0x77, 0xB8, 0x7A, 0x77, 0x67, 0x66, 0x66, 0x76, 0x98, 0x9A, 0x87, 0xCB, 0xCC, 0xEC, 0x9E, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x98, 0x8A, 0x88, 0xCA, 0x4A, 0x44, 0x33, 0x33, 0x43, 0x65, 0x36, 0x00,
0x01, 0x41, 0x55, 0x66, 0x77, 0x78, 0x55, 0x65, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x87, 0xA9, 0xAA, 0xBA, 0xAA, 0xAA, 0x68, 0x66, 0x86, 0xAA, 0xBB, 0xBB, 0xBB, 0xCB, 0xDC, 0xCC, 0xAB, 0xAA, 0xAA, 0xBB, 0x89, 0x77, 0x77, 0x77, 0x77, 0x77, 0xB8, 0x8B, 0x77, 0x77, 0x66, 0x66, 0x66, 0x97, 0xAA, 0xBB, 0xCC, 0xCC, 0xAB, 0x89, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x98, 0x89, 0x88, 0xCA, 0x7C, 0x44, 0x33, 0x33, 0x33, 0x65, 0x46, 0x01,
0x01, 0x31, 0x55, 0x76, 0x87, 0x88, 0x56, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x98, 0xAA, 0xBB, 0xAB, 0xAA, 0x68, 0x66, 0x86, 0xA9, 0xBA, 0xBB, 0xBB, 0xDC, 0xEE, 0xDE, 0xAB, 0xAA, 0xBA, 0xCB, 0xAA, 0x89, 0x77, 0x77, 0x77, 0x77, 0xB8, 0xAC, 0x77, 0x77, 0x67, 0x66, 0x66, 0xA7, 0x78, 0xA8, 0xCC, 0xDD, 0x58, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x86, 0x89, 0x88, 0xCB, 0xAB, 0x46, 0x34, 0x33, 0x33, 0x65, 0x46, 0x01,
0x01, 0x41, 0x55, 0x76, 0x87, 0x68, 0x55, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0xA8, 0xBA, 0xBB, 0xBB, 0xAA, 0x68, 0x66, 0x66, 0x97, 0xAA, 0xBB, 0xCB, 0xED, 0xEE, 0xEE, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0x9A, 0x77, 0x77, 0x77, 0x77, 0xB8, 0xAB, 0x88, 0x77, 0x77, 0x66, 0x66, 0x76, 0x76, 0xBB, 0xCC, 0xFE, 0x6B, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x77, 0x88, 0xBA, 0xBC, 0x6A, 0x34, 0x33, 0x33, 0x66, 0x45, 0x01,
0x00, 0x20, 0x54, 0x65, 0x77, 0x88, 0x57, 0x65, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x87, 0xA9, 0xBA, 0xBB, 0xBC, 0xBB, 0x8A, 0x66, 0x76, 0x87, 0xA8, 0xAA, 0xBA, 0xDB, 0xEE, 0xEE, 0xCD, 0xBB, 0xBB, 0xCC, 0xBB, 0x9B, 0x78, 0x77, 0x77, 0x87, 0x88, 0xAA, 0xB9, 0xBC, 0x79, 0x77, 0x66, 0x66, 0x66, 0xA6, 0xCC, 0xEC, 0xDF, 0x58, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x88, 0xCA, 0xAB, 0x49, 0x33, 0x43, 0x66, 0x56, 0x24, 0x00,
0x00, 0x30, 0x54, 0x66, 0x77, 0x88, 0x56, 0x65, 0x66, 0x66, 0x77, 0x77, 0x87, 0x88, 0x98, 0x99, 0xAA, 0xBA, 0xBB, 0xCC, 0xAB, 0x7A, 0x66, 0x86, 0x99, 0x99, 0xA9, 0xAA, 0xCB, 0xCC, 0xDD, 0xBC, 0xAA, 0xBA, 0xCB, 0xBC, 0xAB, 0x78, 0x87, 0x98, 0xA8, 0xBB, 0xBB, 0xCC, 0xCC, 0x8B, 0x77, 0x67, 0x66, 0x66, 0xA7, 0xCC, 0xED, 0xCE, 0x6A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x86, 0xB9, 0xAB, 0x7A, 0x34, 0x53, 0x77, 0x56, 0x35, 0x00,
0x00, 0x30, 0x54, 0x66, 0x77, 0x78, 0x55, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x87, 0x98, 0xAA, 0xAA, 0xBB, 0xBB, 0xBB, 0x89, 0x78, 0x77, 0x77, 0x98, 0xAA, 0xBA, 0xBB, 0xAA, 0xBB, 0xAA, 0xAA, 0xBB, 0xBB, 0xCB, 0xBB, 0x89, 0x98, 0xBB, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0x9A, 0x67, 0x66, 0xC8, 0xDC, 0xCD, 0xBC, 0x69, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x96, 0xBA, 0xBB, 0xAA, 0x89, 0x87, 0x77, 0x56, 0x35, 0x00,
0x00, 0x30, 0x54, 0x66, 0x87, 0x88, 0x56, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x88, 0x99, 0xAA, 0xAA, 0xBB, 0xBB, 0x9A, 0x88, 0x99, 0x99, 0xA9, 0xAA, 0xAA, 0xBB, 0xBB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBA, 0xBB, 0xAB, 0x88, 0x88, 0xA9, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0x8A, 0x78, 0xC9, 0xDC, 0xCC, 0xBC, 0x58, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x88, 0xA9, 0xBB, 0xAA, 0x99, 0x89, 0x77, 0x56, 0x35, 0x00,
0x00, 0x30, 0x55, 0x66, 0x87, 0x88, 0x68, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x87, 0x99, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A, 0x67, 0x87, 0x99, 0xA9, 0xAA, 0xAA, 0xBB, 0xBC, 0xAA, 0xAA, 0xAA, 0x89, 0x88, 0xA9, 0xBB, 0x9B, 0x88, 0x88, 0xB9, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xCB, 0xCC, 0xCC, 0xCC, 0x7B, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x56, 0x65, 0xA8, 0xAA, 0x99, 0x89, 0x78, 0x46, 0x34, 0x00,
0x00, 0x43, 0x55, 0x66, 0x87, 0x88, 0x89, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x97, 0x99, 0x88, 0x98, 0xAA, 0x8A, 0xA8, 0x89, 0x66, 0x98, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0xAA, 0xAA, 0xAA, 0x8A, 0x77, 0x88, 0xBA, 0x8B, 0x88, 0x88, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x76, 0x46, 0x44, 0xA5, 0xAA, 0x99, 0x89, 0x78, 0x36, 0x33, 0x03,
0x00, 0x46, 0x55, 0x76, 0x87, 0x88, 0x99, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x87, 0xAA, 0x79, 0x97, 0x79, 0x66, 0xA8, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBC, 0xBB, 0xAA, 0xAA, 0xAB, 0x89, 0x88, 0xB9, 0x8A, 0x88, 0x98, 0xCB, 0xCC, 0xCC, 0xCC, 0xCB, 0xBB, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xAB, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x65, 0x57, 0x46, 0xA6, 0xAA, 0x9A, 0x89, 0x78, 0x35, 0x43, 0x07,
0x00, 0x46, 0x55, 0x76, 0x87, 0x88, 0x77, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x87, 0xA9, 0x79, 0x87, 0x68, 0x66, 0xA8, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xBC, 0xAB, 0xBA, 0xAA, 0xAB, 0xAA, 0xBA, 0x9A, 0x88, 0x98, 0xCC, 0xCC, 0xCC, 0xAC, 0xB9, 0x9A, 0xCA, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7B, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x6A, 0x85, 0xAA, 0x9A, 0x89, 0x78, 0x35, 0x43, 0x06,
0x00, 0x45, 0x55, 0x76, 0x87, 0x88, 0x56, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0xA9, 0x8A, 0x77, 0x67, 0x76, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBA, 0xCB, 0xBB, 0xBA, 0x89, 0xAA, 0xBA, 0xBB, 0xBB, 0x8A, 0x98, 0x99, 0xB9, 0xCC, 0xAC, 0xA9, 0x8A, 0xCA, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x6A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x9A, 0x6A, 0x44, 0xA7, 0x9A, 0x89, 0x78, 0x36, 0x43, 0x05,
0x00, 0x44, 0x65, 0x76, 0x87, 0x88, 0x56, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x97, 0x89, 0x67, 0x66, 0x66, 0x98, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xBC, 0xBB, 0x78, 0x88, 0x88, 0x98, 0x99, 0x89, 0x98, 0x88, 0xB9, 0xAC, 0xCA, 0x9A, 0x89, 0xCB, 0xCC, 0xCC, 0xCC, 0xED, 0xDE, 0xCC, 0xCC, 0xCC, 0x69, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0x7A, 0x5A, 0x44, 0x94, 0x9A, 0x89, 0x78, 0x46, 0x44, 0x05,
0x00, 0x44, 0x65, 0x76, 0x87, 0x88, 0x56, 0x66, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x67, 0x66, 0x66, 0x87, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xCB, 0xBB, 0x79, 0x88, 0x88, 0x88, 0x88, 0x88, 0xA9, 0x99, 0xCA, 0x9C, 0xA9, 0x9A, 0x98, 0xCC, 0xCC, 0xCC, 0xCC, 0xED, 0xEE, 0xCE, 0xCC, 0xCC, 0x7B, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xB6, 0x58, 0x58, 0x44, 0x74, 0x9A, 0x89, 0x78, 0x56, 0x45, 0x04,
0x00, 0x44, 0x65, 0x76, 0x87, 0x88, 0x56, 0x66, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x76, 0x98, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0x88, 0xA9, 0xBB, 0x8A, 0x88, 0x88, 0x88, 0x88, 0x88, 0xC9, 0x9A, 0xCB, 0x9B, 0x99, 0x89, 0x98, 0xCC, 0xCC, 0xCC, 0xCC, 0xED, 0xEE, 0xDE, 0xCC, 0xCC, 0xAC, 0xA9, 0x67, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x87, 0x55, 0x55, 0x55, 0x55, 0xA6, 0x66, 0x58, 0x44, 0x54, 0x98, 0x88, 0x78, 0x55, 0x55, 0x04,
0x00, 0x44, 0x55, 0x66, 0x87, 0x68, 0x55, 0x66, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x76, 0xA8, 0xAA, 0xAA, 0xAA, 0xAA, 0x78, 0xA8, 0xBB, 0x8A, 0x88, 0x88, 0x88, 0x88, 0x98, 0xEA, 0xBD, 0xCD, 0x9A, 0x99, 0x89, 0x88, 0xCB, 0xCC, 0xCC, 0xCC, 0xED, 0xEE, 0xDE, 0xCC, 0xCC, 0xCB, 0xBB, 0x6A, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0xC7, 0x79, 0x55, 0x55, 0x55, 0x85, 0x65, 0x47, 0x44, 0x44, 0x55, 0x54, 0x78, 0x54, 0x55, 0x04,
0x00, 0x44, 0x55, 0x64, 0x87, 0x57, 0x55, 0x66, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x66, 0x87, 0xA9, 0xAA, 0xAA, 0x99, 0x78, 0xA8, 0xBB, 0x9A, 0x88, 0x88, 0x88, 0x88, 0xB9, 0xED, 0xEE, 0xBE, 0x99, 0x99, 0x99, 0x99, 0xCB, 0xCC, 0xCC, 0xCC, 0xED, 0xEE, 0xEE, 0xCC, 0xCC, 0xCB, 0xAA, 0x6A, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0xE9, 0xCE, 0x55, 0x55, 0x77, 0x66, 0x55, 0x45, 0x44, 0x44, 0x34, 0x53, 0x68, 0x54, 0x55, 0x04,
0x00, 0x44, 0x55, 0x53, 0x87, 0x68, 0x65, 0x66, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0xA9, 0x99, 0x77, 0x77, 0xA8, 0xBB, 0x9A, 0x88, 0x88, 0x88, 0x88, 0xC9, 0xEE, 0xEE, 0xCE, 0x99, 0x99, 0xB9, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xED, 0xEE, 0xDE, 0xCC, 0xCC, 0xBC, 0x77, 0x68, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0xFA, 0xBF, 0xA7, 0x58, 0xB7, 0x59, 0x44, 0x44, 0x44, 0x44, 0x34, 0x74, 0x68, 0x43, 0x55, 0x04,
0x00, 0x44, 0x55, 0x65, 0x67, 0x86, 0x87, 0x68, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0x77, 0xA7, 0x79, 0x77, 0x77, 0xA9, 0xBB, 0x9A, 0x88, 0x88, 0x88, 0x88, 0xCA, 0xED, 0xEE, 0xDE, 0x9B, 0x99, 0xDC, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xED, 0xEE, 0xCD, 0xCC, 0xCC, 0xBC, 0x9A, 0x79, 0x66, 0x66, 0x66, 0x55, 0x55, 0x65, 0xFB, 0xDF, 0xCC, 0xBC, 0xB8, 0x47, 0x44, 0x44, 0x44, 0x44, 0x34, 0x63, 0x68, 0x34, 0x55, 0x04,
0x00, 0x44, 0x55, 0x76, 0x36, 0x63, 0x99, 0x68, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x97, 0x79, 0x77, 0x77, 0xA9, 0xBB, 0xAB, 0x89, 0x88, 0x88, 0x88, 0x98, 0xBA, 0xED, 0xEE, 0xBD, 0xCB, 0xDD, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0xDE, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xAB, 0x87, 0x9A, 0x68, 0x66, 0x56, 0xA6, 0xFE, 0xEE, 0xCD, 0xCC, 0xBC, 0x45, 0x44, 0x44, 0x44, 0x44, 0x34, 0x43, 0x77, 0x46, 0x55, 0x04,
0x00, 0x45, 0x55, 0x66, 0x35, 0x53, 0x99, 0x79, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x87, 0x7A, 0x77, 0x88, 0xA9, 0xBB, 0xBB, 0x8A, 0x88, 0x98, 0x99, 0xA9, 0xCB, 0xED, 0xDE, 0xDD, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xBB, 0xBB, 0xCB, 0x6A, 0x66, 0x66, 0xFB, 0xEF, 0xDD, 0xDE, 0xCC, 0x8C, 0x45, 0x44, 0x44, 0x44, 0x44, 0x34, 0x43, 0x77, 0x66, 0x45, 0x05,
0x00, 0x45, 0x55, 0x66, 0x35, 0x53, 0x98, 0xAA, 0x69, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0x77, 0x79, 0x87, 0xAA, 0xAA, 0xBB, 0xBB, 0x9B, 0x8A, 0xD8, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xCC, 0xCC, 0xCC, 0xED, 0x6C, 0x66, 0x66, 0xED, 0xCD, 0xCC, 0xDD, 0xCC, 0x7B, 0x45, 0x44, 0x44, 0x44, 0x44, 0x34, 0x33, 0x76, 0x66, 0x45, 0x06,
0x00, 0x46, 0x55, 0x66, 0x35, 0x53, 0x98, 0xA9, 0x6A, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0x78, 0x76, 0x77, 0x77, 0x97, 0xAA, 0xAA, 0xBA, 0xBB, 0x8B, 0x9A, 0xD9, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xEC, 0xEE, 0xEE, 0xEE, 0x6A, 0x66, 0x66, 0xDB, 0xCC, 0xCC, 0xCC, 0xCC, 0xAC, 0x45, 0x44, 0x44, 0x44, 0x44, 0x34, 0x33, 0x75, 0x66, 0x45, 0x07,
0x00, 0x43, 0x55, 0x66, 0x36, 0x53, 0x99, 0xA9, 0x6A, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0xB7, 0x8B, 0x9A, 0x77, 0x77, 0x97, 0xAA, 0xAA, 0xBA, 0xBB, 0x9B, 0x9A, 0xDA, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCB, 0xEE, 0xEE, 0xEE, 0xAD, 0x67, 0x66, 0x66, 0xD9, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x58, 0x44, 0x44, 0x44, 0x44, 0x34, 0x33, 0x75, 0x66, 0x45, 0x03,
0x00, 0x30, 0x54, 0x66, 0x67, 0x75, 0x99, 0xA9, 0x7A, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0xD9, 0xBD, 0x7B, 0x76, 0x77, 0x97, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0x9A, 0xDA, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xCD, 0xCC, 0xCC, 0xDC, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xDC, 0xEE, 0xEE, 0xBE, 0x78, 0x77, 0x77, 0x66, 0xDB, 0xCC, 0xCC, 0xCC, 0xCC, 0x9A, 0x69, 0x45, 0x44, 0x44, 0x44, 0x34, 0x33, 0x75, 0x66, 0x35, 0x00,
0x00, 0x30, 0x54, 0x66, 0x77, 0x87, 0x99, 0xA9, 0x8A, 0x66, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0xD9, 0xDD, 0x7B, 0x66, 0x77, 0x97, 0x9A, 0xAA, 0xAA, 0xBB, 0xBB, 0x89, 0xD9, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xCD, 0xCC, 0xCC, 0xEC, 0xDE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xEC, 0xEE, 0xEE, 0x9C, 0x77, 0x77, 0x77, 0x77, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x58, 0x86, 0x55, 0x44, 0x44, 0x44, 0x34, 0x33, 0x74, 0x66, 0x35, 0x00,
0x00, 0x30, 0x54, 0x66, 0x77, 0x88, 0x98, 0xA9, 0xAA, 0x67, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0xDB, 0xBD, 0x67, 0x66, 0x77, 0x77, 0x77, 0xA9, 0xAA, 0xBA, 0x9A, 0x88, 0xB8, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xEC, 0xEE, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xED, 0xEE, 0xEE, 0xBC, 0x78, 0x77, 0x77, 0x87, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x69, 0x76, 0x55, 0x45, 0x44, 0x44, 0x34, 0x33, 0x75, 0x56, 0x35, 0x00,
0x00, 0x30, 0x54, 0x65, 0x77, 0x88, 0x98, 0x99, 0xAA, 0x68, 0x66, 0x76, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x56, 0x55, 0x55, 0x76, 0xDB, 0xAD, 0x66, 0x66, 0x66, 0x77, 0x77, 0xA7, 0xAA, 0xAA, 0x8A, 0x88, 0x88, 0xB9, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xCD, 0xCC, 0xCC, 0xCC, 0xEC, 0xEE, 0xCE, 0xCC, 0xCC, 0xBC, 0xCB, 0xDD, 0xEE, 0xEE, 0xBC, 0x78, 0x77, 0x77, 0x77, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0x8B, 0x66, 0x55, 0x55, 0x44, 0x44, 0x34, 0x64, 0x77, 0x56, 0x35, 0x00,
0x00, 0x20, 0x54, 0x65, 0x76, 0x87, 0x98, 0x99, 0xAA, 0x68, 0x66, 0x97, 0x68, 0x77, 0x66, 0x66, 0x66, 0x66, 0x66, 0x56, 0x55, 0x55, 0x65, 0x98, 0xAB, 0x66, 0x66, 0x66, 0x77, 0x77, 0x87, 0xAA, 0xAA, 0xAA, 0x88, 0x88, 0x88, 0xDB, 0xDD, 0xDD, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xEC, 0xEE, 0xCE, 0xCC, 0xCC, 0xBC, 0xBB, 0xCB, 0xED, 0xEE, 0xBC, 0x78, 0x77, 0x77, 0x77, 0xC9, 0xCC, 0xCC, 0xCC, 0xCC, 0x8A, 0x56, 0x55, 0x55, 0x44, 0x44, 0x34, 0x76, 0x67, 0x56, 0x24, 0x00,
0x01, 0x31, 0x55, 0x66, 0x77, 0x88, 0x99, 0xA9, 0x8A, 0x66, 0x96, 0x8A, 0x86, 0x79, 0x66, 0x66, 0x97, 0x57, 0x55, 0x55, 0x55, 0x55, 0x65, 0x66, 0x6A, 0x66, 0x66, 0x66, 0x76, 0x77, 0x87, 0xA9, 0xAA, 0xAA, 0x78, 0x88, 0x98, 0xDC, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xED, 0xCD, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xCB, 0xEE, 0xDE, 0x8B, 0xA8, 0x79, 0x77, 0x87, 0xCB, 0xBC, 0xCA, 0xCC, 0x6A, 0x66, 0x67, 0x55, 0x55, 0x44, 0x44, 0x84, 0x77, 0x66, 0x45, 0x01,
0x01, 0x31, 0x55, 0x66, 0x77, 0x88, 0x99, 0xA9, 0x8A, 0x66, 0x96, 0x8A, 0x76, 0x99, 0x87, 0x87, 0xBA, 0x7A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x67, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x97, 0xAA, 0xAA, 0x78, 0x87, 0xBA, 0xDB, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xDE, 0xCC, 0xCC, 0xBC, 0xBB, 0xDB, 0xBC, 0xCB, 0xEE, 0xEE, 0xBC, 0xBB, 0x8A, 0x77, 0x87, 0xCB, 0xAC, 0xBA, 0xCC, 0x7A, 0x98, 0x8A, 0x55, 0x55, 0x44, 0x44, 0x85, 0x77, 0x66, 0x45, 0x01,
0x01, 0x31, 0x54, 0x65, 0x77, 0x88, 0x98, 0xBA, 0x9A, 0x67, 0x96, 0x69, 0x66, 0xA7, 0xAA, 0xAA, 0xBB, 0x8B, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0x77, 0x77, 0xA9, 0xAA, 0x78, 0x87, 0xCC, 0xDC, 0xDD, 0xDD, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xDE, 0xCC, 0xCC, 0xBB, 0xBB, 0xEC, 0xDE, 0xDD, 0xEE, 0xEE, 0xEE, 0xDD, 0x8C, 0x87, 0x89, 0x98, 0x89, 0xCA, 0xCC, 0xAB, 0x9B, 0xA8, 0x56, 0x55, 0x44, 0x44, 0x84, 0x77, 0x56, 0x45, 0x01,
0x01, 0x20, 0x54, 0x65, 0x56, 0x87, 0x98, 0xCA, 0xAC, 0x9A, 0xAA, 0x7A, 0x66, 0x97, 0xBB, 0xBB, 0xBB, 0x6A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0x88, 0x77, 0xA8, 0xAA, 0x78, 0x77, 0xDC, 0xDD, 0xDC, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0xCE, 0xCC, 0xCC, 0xBB, 0xBB, 0xEC, 0xEE, 0xEE, 0xDE, 0xEE, 0xEE, 0xEE, 0x9D, 0xB8, 0xCE, 0x78, 0x77, 0xC8, 0xCC, 0xCC, 0x7B, 0xBA, 0x57, 0x55, 0x44, 0x44, 0x54, 0x77, 0x56, 0x35, 0x00,
0x02, 0x41, 0x55, 0x66, 0x55, 0x87, 0xB9, 0xDC, 0xAB, 0xAA, 0xAA, 0x79, 0x98, 0xBA, 0xBB, 0xBB, 0xAB, 0x68, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x98, 0x89, 0x87, 0x9A, 0x78, 0x77, 0x87, 0xCB, 0x9B, 0xDB, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xDE, 0xCC, 0xCC, 0xBC, 0xBB, 0xCB, 0xEE, 0xCE, 0xBC, 0xBB, 0xED, 0xEE, 0xEE, 0xBC, 0xEE, 0xAE, 0x77, 0x77, 0xBA, 0xCC, 0xBC, 0x68, 0x66, 0x55, 0x55, 0x44, 0x44, 0x75, 0x66, 0x45, 0x01,
0x02, 0x41, 0x55, 0x66, 0x56, 0x86, 0xA9, 0xBA, 0xAB, 0xAA, 0x9A, 0x98, 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0x9B, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0xA7, 0x9A, 0x66, 0x66, 0x98, 0x78, 0x76, 0x79, 0x77, 0x77, 0x77, 0x87, 0x88, 0xDB, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xCB, 0xEE, 0xBC, 0xBB, 0xBB, 0xED, 0xEE, 0xEE, 0xEE, 0xEE, 0xAE, 0x77, 0x77, 0x87, 0xCB, 0xCC, 0x6A, 0x76, 0x55, 0x55, 0x44, 0x44, 0x76, 0x66, 0x45, 0x01,
0x02, 0x30, 0x54, 0x65, 0x67, 0x76, 0x98, 0xA9, 0xAB, 0xAA, 0x8A, 0x96, 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x77, 0xD8, 0xAD, 0x66, 0x66, 0x77, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x87, 0xDB, 0xDD, 0xDD, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xBB, 0xBB, 0xCB, 0xDE, 0xBB, 0xBB, 0xBB, 0xEC, 0xEE, 0xEE, 0xEE, 0xDD, 0x8C, 0x66, 0x66, 0x76, 0xCB, 0xCC, 0x79, 0xAA, 0x67, 0x88, 0x47, 0x54, 0x77, 0x56, 0x35, 0x00,
0x03, 0x42, 0x55, 0x66, 0x77, 0x87, 0x98, 0xA9, 0xAA, 0xAA, 0x79, 0xAA, 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0x7B, 0x55, 0x55, 0x65, 0x55, 0x55, 0xA5, 0xCB, 0xDD, 0x6A, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0xB8, 0xDD, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xBB, 0xBB, 0xBB, 0xCB, 0xBC, 0xBB, 0xBB, 0xCB, 0xDE, 0xED, 0xEE, 0x7C, 0x67, 0x66, 0x66, 0x66, 0xB8, 0xCC, 0xAC, 0xBA, 0xAB, 0xAA, 0x9A, 0x45, 0x76, 0x66, 0x55, 0x02,
0x03, 0x42, 0x54, 0x66, 0x77, 0x86, 0x98, 0x99, 0xAA, 0xAA, 0x88, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0xBB, 0x8B, 0x55, 0x55, 0x77, 0x56, 0x55, 0xB5, 0xDD, 0xDD, 0x69, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0x77, 0xC9, 0xDD, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBC, 0xED, 0xEE, 0x6A, 0x66, 0x66, 0x66, 0x76, 0xCA, 0xCC, 0xBC, 0xBB, 0xBB, 0xAA, 0x79, 0x54, 0x77, 0x66, 0x45, 0x02,
0x03, 0x31, 0x54, 0x65, 0x77, 0x87, 0x98, 0x99, 0xAA, 0xAA, 0xA9, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0xBB, 0x7B, 0x55, 0x55, 0x77, 0x56, 0x56, 0xC6, 0xDD, 0xCC, 0x68, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x97, 0xDC, 0xDD, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xED, 0xEE, 0x67, 0x66, 0x66, 0x66, 0x76, 0xCB, 0xCC, 0xBB, 0xBB, 0xAB, 0xAA, 0x58, 0x75, 0x77, 0x66, 0x35, 0x00,
0x03, 0x30, 0x54, 0x65, 0x76, 0x87, 0x88, 0x99, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0x6A, 0x55, 0x55, 0x66, 0x96, 0x8B, 0xA6, 0xCC, 0x9A, 0x56, 0x65, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0xC9, 0xDD, 0xDD, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xED, 0xDE, 0x56, 0x66, 0x66, 0x66, 0x76, 0xCB, 0xAC, 0xB9, 0xBB, 0xAB, 0x88, 0x45, 0x86, 0x67, 0x56, 0x35, 0x00,
0x03, 0x20, 0x54, 0x65, 0x76, 0x87, 0x88, 0x99, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x79, 0x77, 0x57, 0x55, 0x55, 0x75, 0xC8, 0xCD, 0xCB, 0xCD, 0x56, 0x55, 0x55, 0x65, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x86, 0xDC, 0xDD, 0xDD, 0xDD, 0xCD, 0xCC, 0xCC, 0xDD, 0xCC, 0xBC, 0xBB, 0xCB, 0xBE, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xCB, 0xEE, 0xCE, 0x56, 0x55, 0x55, 0x66, 0x76, 0xCB, 0x7B, 0xB8, 0xBB, 0x9A, 0x56, 0x44, 0x87, 0x67, 0x56, 0x14, 0x00,
0x04, 0x31, 0x54, 0x65, 0x77, 0x87, 0x88, 0x99, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0x55, 0x55, 0x55, 0x55, 0x65, 0xCC, 0xCD, 0x8A, 0xCB, 0x59, 0x55, 0x65, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xDB, 0xDD, 0xDD, 0xDD, 0xDD, 0xCC, 0xBC, 0xCB, 0xCC, 0xBB, 0xBB, 0xBB, 0xCD, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xED, 0xEE, 0x7E, 0x55, 0x55, 0x55, 0x55, 0xC8, 0xBC, 0xA7, 0xBB, 0x69, 0x55, 0x55, 0x74, 0x77, 0x56, 0x45, 0x01,
0x04, 0x20, 0x54, 0x65, 0x77, 0x98, 0x89, 0x99, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x58, 0x55, 0x55, 0x55, 0x55, 0x75, 0xDD, 0xBC, 0x57, 0xAA, 0x56, 0x55, 0x98, 0x56, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x76, 0xDC, 0xDD, 0xDD, 0xDD, 0xDD, 0xCC, 0xBB, 0xBB, 0xBB, 0xCC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xEC, 0xEE, 0x8E, 0x77, 0x56, 0x55, 0x55, 0xC9, 0xBC, 0xB8, 0x9B, 0x55, 0x45, 0x75, 0x87, 0x67, 0x56, 0x25, 0x00,
0x05, 0x41, 0x55, 0x75, 0x98, 0xAA, 0x99, 0xAA, 0xA9, 0xAA, 0xAA, 0xAA, 0x9A, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD7, 0xBC, 0x8B, 0x75, 0x56, 0x55, 0x95, 0x8A, 0x55, 0x76, 0x67, 0x55, 0x55, 0x66, 0x66, 0x96, 0xDC, 0xDD, 0xDD, 0xDD, 0xCC, 0xBB, 0xBB, 0xBB, 0xDB, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDC, 0xEE, 0x9C, 0x87, 0x56, 0x55, 0x85, 0xBB, 0x8B, 0x98, 0x58, 0x44, 0x64, 0x88, 0x77, 0x66, 0x45, 0x01,
0x05, 0x30, 0x54, 0x65, 0x97, 0xAA, 0xBB, 0x9B, 0x99, 0xAA, 0xAA, 0xAA, 0x8A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xB6, 0xBB, 0x69, 0x55, 0x55, 0x55, 0x75, 0x9A, 0x55, 0x76, 0x78, 0x67, 0x55, 0x55, 0x66, 0x86, 0xDC, 0xDD, 0xDD, 0xDD, 0xBC, 0xBB, 0xBB, 0xBB, 0xDC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xED, 0x7D, 0x75, 0x68, 0x99, 0x67, 0xA9, 0x9A, 0x76, 0x79, 0x44, 0x74, 0x88, 0x77, 0x56, 0x35, 0x00,
0x06, 0x42, 0x54, 0x65, 0x98, 0xBA, 0xBB, 0x99, 0xA9, 0xAA, 0xAA, 0xAA, 0x59, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xA8, 0x8B, 0x55, 0x55, 0x55, 0x55, 0x85, 0x59, 0x55, 0x76, 0x88, 0x56, 0x55, 0x55, 0x65, 0xCA, 0xDD, 0xED, 0xDD, 0xBC, 0xBB, 0xBB, 0xBB, 0xCB, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDB, 0xCE, 0x69, 0xA6, 0xAA, 0x8A, 0x95, 0xAA, 0x68, 0x98, 0x47, 0x65, 0x88, 0x77, 0x66, 0x45, 0x02,
0x06, 0x31, 0x54, 0x65, 0x97, 0xBA, 0xBB, 0x99, 0x99, 0xAA, 0xAA, 0xAA, 0x7A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x76, 0x89, 0x56, 0x55, 0x55, 0x75, 0x65, 0x58, 0x55, 0x55, 0x77, 0x56, 0x55, 0x55, 0x65, 0x87, 0xDA, 0xDD, 0xDE, 0xBC, 0xBB, 0xCB, 0xBB, 0xCB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDB, 0xBC, 0x9A, 0xA9, 0xAA, 0x7A, 0x96, 0x9A, 0x77, 0x99, 0x67, 0x77, 0x88, 0x77, 0x56, 0x35, 0x01,
0x06, 0x20, 0x44, 0x55, 0x86, 0xA9, 0xBB, 0x9A, 0x99, 0xA9, 0xAA, 0x99, 0xAA, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x79, 0x55, 0x55, 0xA7, 0x57, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xB6, 0xDD, 0xED, 0xBC, 0xBB, 0xDB, 0xCC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xCB, 0xDE, 0xAB, 0xAA, 0xAA, 0xAA, 0x59, 0xA8, 0xAA, 0xA9, 0xAA, 0x89, 0x78, 0x77, 0x67, 0x56, 0x24, 0x00,
0x07, 0x30, 0x54, 0x76, 0x77, 0xA9, 0x9A, 0x98, 0x99, 0xA9, 0x8A, 0x97, 0x9A, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x96, 0x6A, 0x55, 0x75, 0x9A, 0x56, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0xDA, 0xDD, 0xBD, 0xBB, 0xDC, 0xED, 0xCD, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xCB, 0xCD, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDB, 0xDE, 0xAB, 0xAA, 0xAA, 0xAA, 0x9A, 0xB7, 0xBB, 0xBB, 0xAA, 0x9A, 0x78, 0x77, 0x77, 0x56, 0x35, 0x00,
0x07, 0x20, 0x55, 0x66, 0x66, 0x87, 0x88, 0x88, 0x99, 0xA9, 0x9A, 0x89, 0x99, 0x45, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x89, 0x55, 0x55, 0x96, 0x57, 0x67, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xB6, 0xDC, 0xDE, 0xCD, 0xCC, 0xDD, 0xEE, 0xBD, 0xBB, 0xBB, 0xCC, 0xBB, 0xBB, 0xDC, 0xCD, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xED, 0xBD, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0xBB, 0xAA, 0x9A, 0x89, 0x77, 0x67, 0x56, 0x25, 0x00,
0x08, 0x31, 0x55, 0x65, 0x76, 0x77, 0x88, 0x98, 0x99, 0xA9, 0xAA, 0x98, 0x8A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x85, 0x79, 0x55, 0x78, 0x55, 0x55, 0x96, 0x65, 0x59, 0x44, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0xDB, 0xEE, 0xDE, 0xDD, 0xDD, 0xEE, 0xBD, 0xBB, 0xBB, 0xDD, 0xCC, 0xBB, 0xDC, 0xCD, 0xBB, 0xBB, 0xBB, 0xBB, 0xCB, 0xED, 0xBC, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBA, 0xBB, 0xBB, 0xAA, 0x9A, 0x99, 0x88, 0x77, 0x66, 0x45, 0x01,
0x09, 0x42, 0x54, 0x65, 0x76, 0x87, 0x88, 0x98, 0x99, 0xA9, 0x9A, 0xA7, 0x8A, 0x98, 0x46, 0x44, 0x55, 0x55, 0xA7, 0x78, 0x87, 0x69, 0x55, 0x55, 0x89, 0x85, 0x47, 0x44, 0x44, 0x55, 0x65, 0x65, 0x68, 0xB5, 0xEE, 0xEE, 0xDD, 0xDD, 0xED, 0xCE, 0xBB, 0xBB, 0xCB, 0xDD, 0xDD, 0xCD, 0xCC, 0xBB, 0xBB, 0xBB, 0xBB, 0xCB, 0xDD, 0xBC, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0xAA, 0x9A, 0x99, 0x88, 0x77, 0x66, 0x56, 0x02,
0x09, 0x31, 0x54, 0x65, 0x66, 0x77, 0x88, 0x88, 0x99, 0x99, 0x9A, 0xA8, 0xAA, 0xAA, 0x59, 0x44, 0x55, 0x54, 0xA7, 0xAA, 0xAA, 0x7A, 0x55, 0x45, 0xA7, 0x65, 0x59, 0x54, 0x77, 0xA9, 0xCB, 0x97, 0xAD, 0xD9, 0xEE, 0xEE, 0xDD, 0xDE, 0xED, 0xDE, 0xBC, 0xBB, 0xBB, 0xDC, 0xDD, 0xBC, 0xBB, 0xBB, 0xBB, 0xCB, 0xBC, 0xBB, 0xBC, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBA, 0xBB, 0xAA, 0x9A, 0x99, 0x88, 0x67, 0x66, 0x46, 0x01,
0x09, 0x20, 0x44, 0x55, 0x66, 0x77, 0x87, 0x88, 0x99, 0x99, 0xA9, 0xAA, 0xAA, 0xAA, 0x6A, 0x54, 0x97, 0x96, 0xAA, 0xAA, 0x68, 0x66, 0xBA, 0x99, 0xBA, 0x59, 0x7A, 0xD7, 0xDE, 0x68, 0xC7, 0xEE, 0xEE, 0xFE, 0xEE, 0xEE, 0xEE, 0xDE, 0xED, 0xEE, 0xCE, 0xCC, 0xBC, 0xDB, 0xCD, 0xBC, 0xBB, 0xBB, 0xCB, 0xDC, 0xBD, 0xBB, 0xBB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBA, 0xAB, 0xAA, 0x99, 0x89, 0x78, 0x67, 0x66, 0x24, 0x00,
0x0A, 0x30, 0x44, 0x55, 0x66, 0x77, 0x87, 0x88, 0x99, 0x99, 0x99, 0xAA, 0xAA, 0xAA, 0x57, 0x65, 0x88, 0xAA, 0xAA, 0x6A, 0x54, 0xCA, 0xCD, 0xDC, 0xCD, 0xA7, 0xDD, 0xEE, 0x5B, 0x55, 0xF8, 0xFF, 0xFF, 0xFF, 0xEF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDE, 0xDD, 0xCD, 0xCC, 0xCC, 0xBB, 0xBB, 0xCB, 0xDC, 0xDD, 0xBC, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x99, 0xA9, 0xAA, 0xAA, 0x89, 0x78, 0x77, 0x66, 0x25, 0x00,
0x0A, 0x10, 0x44, 0x55, 0x66, 0x76, 0x87, 0x88, 0x98, 0x99, 0x99, 0xA9, 0xAA, 0xAA, 0x99, 0x56, 0x56, 0xA9, 0x9A, 0x58, 0x64, 0x98, 0xCB, 0xCC, 0xDC, 0xCC, 0xDE, 0xED, 0x6C, 0x55, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDE, 0xCD, 0xCB, 0xBC, 0xBB, 0xBB, 0xCC, 0xDD, 0xCD, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBA, 0xAB, 0x9A, 0x99, 0x99, 0xA9, 0xAA, 0x89, 0x78, 0x67, 0x66, 0x14, 0x00,
0x0B, 0x20, 0x44, 0x55, 0x66, 0x77, 0x77, 0x78, 0x98, 0x99, 0x99, 0xA9, 0x99, 0xAA, 0xAA, 0x7A, 0xA7, 0xAA, 0x56, 0x44, 0x55, 0x55, 0x55, 0xB5, 0xED, 0xDD, 0xDE, 0xDD, 0xCE, 0xED, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0xDD, 0xBC, 0xBB, 0xBB, 0xCB, 0xDD, 0xCC, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBA, 0xBC, 0xAB, 0x9A, 0x99, 0x98, 0xBB, 0x8A, 0x78, 0x77, 0x66, 0x25, 0x00,
0x0C, 0x31, 0x54, 0x55, 0x66, 0x77, 0x67, 0x75, 0x98, 0x99, 0x99, 0x89, 0x87, 0x98, 0xAA, 0x78, 0xAA, 0x6A, 0x44, 0x74, 0x8A, 0x55, 0x96, 0xDC, 0xED, 0xEE, 0xDD, 0xED, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xCD, 0xBC, 0xBB, 0xCB, 0xCC, 0xCC, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0xAB, 0x99, 0x88, 0xBA, 0x9A, 0x98, 0x78, 0x66, 0x35, 0x01,
0x0C, 0x10, 0x54, 0x55, 0x65, 0x76, 0x77, 0x76, 0x88, 0x99, 0x99, 0x99, 0x67, 0x86, 0xAA, 0x99, 0xAA, 0xAA, 0x45, 0xA5, 0x6C, 0x95, 0xCB, 0xCC, 0xED, 0xDE, 0xDE, 0xED, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDE, 0xCD, 0xCC, 0xBC, 0xCC, 0xDC, 0xBD, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBA, 0xBB, 0xAA, 0x99, 0x89, 0x98, 0xBB, 0x8A, 0x89, 0x67, 0x56, 0x14, 0x00,
0x0D, 0x20, 0x54, 0x55, 0x65, 0x66, 0x76, 0x88, 0x88, 0x99, 0x99, 0x79, 0x66, 0x87, 0x97, 0xAA, 0x8A, 0xBB, 0xBA, 0xCC, 0xBB, 0xCC, 0xCC, 0xCC, 0xED, 0xEE, 0xDE, 0xED, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xDD, 0xBD, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0x9A, 0x99, 0x99, 0x99, 0xAA, 0x9A, 0x89, 0x67, 0x55, 0x24, 0x00,
0x0E, 0x30, 0x54, 0x55, 0x66, 0x55, 0x77, 0x88, 0x88, 0x99, 0x99, 0x77, 0x66, 0x86, 0xAA, 0x89, 0x96, 0xCB, 0xCC, 0xBA, 0xCC, 0xCC, 0xCC, 0xCC, 0xED, 0xDE, 0xDE, 0xED, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0xDD, 0xCD, 0xCC, 0xDC, 0xDD, 0xBC, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAB, 0x99, 0xA9, 0xAA, 0x99, 0x99, 0x99, 0x68, 0x56, 0x34, 0x00,
0x0F, 0x31, 0x55, 0x55, 0x56, 0x54, 0x77, 0x88, 0x88, 0x99, 0x89, 0x89, 0x66, 0xA8, 0x9A, 0x67, 0xA8, 0xCB, 0xBC, 0xCA, 0xCC, 0xCC, 0xCC, 0xCC, 0xED, 0xDE, 0xDE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDE, 0xDD, 0xDD, 0xDC, 0xDD, 0xCD, 0xBB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0x99, 0xA9, 0xAA, 0x99, 0x89, 0x98, 0x78, 0x56, 0x35, 0x01,
0x0F, 0x20, 0x54, 0x55, 0x55, 0x65, 0x76, 0x87, 0x88, 0x98, 0x99, 0x99, 0x68, 0x97, 0xAA, 0x9A, 0xA9, 0xAA, 0xCB, 0xCC, 0xCC, 0xCC, 0xDD, 0xEE, 0xED, 0xEE, 0xED, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0xDD, 0xDD, 0xBC, 0xBB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBA, 0xAB, 0x99, 0x99, 0x99, 0x99, 0x88, 0x77, 0x67, 0x55, 0x24, 0x00,
0x10, 0x20, 0x54, 0x55, 0x65, 0x66, 0x77, 0x87, 0x88, 0x98, 0xAA, 0xAA, 0x88, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA9, 0xCB, 0xCC, 0xCC, 0xDD, 0xED, 0xEE, 0xEE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0xDD, 0xDD, 0xBC, 0xBB, 0xCC, 0xBC, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0xAB, 0x9A, 0x99, 0x88, 0x88, 0x88, 0x88, 0x77, 0x66, 0x55, 0x24, 0x00,
0x11, 0x20, 0x54, 0x55, 0x65, 0x77, 0x77, 0x87, 0x88, 0xA9, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBC, 0x7A, 0x77, 0xA8, 0xCC, 0xDC, 0xDD, 0xDC, 0xED, 0xEE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0xCD, 0xBC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xAA, 0x99, 0x99, 0x88, 0x88, 0x88, 0x88, 0x77, 0x66, 0x55, 0x24, 0x00,
0x12, 0x20, 0x54, 0x65, 0x76, 0x67, 0x77, 0x77, 0x87, 0xA9, 0xBA, 0xBB, 0xBB, 0xBB, 0xCC, 0xCC, 0xBC, 0xA9, 0x8B, 0x87, 0xCA, 0xDD, 0xDE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBB, 0xAB, 0x9A, 0x99, 0x99, 0x88, 0x88, 0x88, 0x88, 0x67, 0x66, 0x55, 0x24, 0x00,
0x13, 0x20, 0x55, 0x65, 0x66, 0x66, 0x46, 0x54, 0x87, 0x99, 0xA9, 0xBA, 0xBB, 0xBB, 0xCC, 0xCC, 0xCC, 0xCC, 0xAB, 0xCA, 0xDC, 0xDD, 0xEE, 0xEE, 0xEE, 0xCE, 0xCC, 0xCB, 0xED, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xCD, 0xDC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xAB, 0xAA, 0x99, 0x99, 0x99, 0x88, 0x88, 0x87, 0x88, 0x67, 0x55, 0x45, 0x24, 0x00,
0x14, 0x40, 0x55, 0x65, 0x65, 0x66, 0x34, 0x64, 0x88, 0x88, 0x99, 0xBA, 0xBB, 0xBB, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0xEE, 0xEE, 0xCE, 0xDB, 0xDD, 0xCC, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0xCD, 0xDC, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xAA, 0x99, 0x99, 0x99, 0x89, 0x88, 0x88, 0x88, 0x88, 0x67, 0x55, 0x45, 0x34, 0x00,
0x15, 0x31, 0x55, 0x55, 0x65, 0x66, 0x66, 0x77, 0x87, 0x88, 0x98, 0xBA, 0xBB, 0xBB, 0xBB, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xED, 0xEE, 0xDE, 0xCB, 0xEE, 0xDE, 0xDB, 0xEE, 0xEE, 0xEE, 0xDE, 0xED, 0xEE, 0xDD, 0xDD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xAB, 0xAA, 0x99, 0x99, 0x99, 0x89, 0x88, 0x88, 0x88, 0x78, 0x66, 0x55, 0x45, 0x34, 0x01,
0x15, 0x10, 0x53, 0x55, 0x55, 0x66, 0x76, 0x77, 0x75, 0x88, 0x88, 0xA9, 0xBB, 0xBB, 0xBB, 0xBB, 0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0xEE, 0xEE, 0xDE, 0xCB, 0xEE, 0xCE, 0xDB, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xAA, 0x99, 0x99, 0x99, 0x89, 0x88, 0x88, 0x88, 0x78, 0x67, 0x56, 0x45, 0x44, 0x13, 0x00,
0x16, 0x10, 0x43, 0x55, 0x55, 0x66, 0x76, 0x57, 0x86, 0x88, 0x88, 0xA9, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xCC, 0xCC, 0xCC, 0xDD, 0xEE, 0xEE, 0xCE, 0xCB, 0xCD, 0xCB, 0xEE, 0xEE, 0xEE, 0xDD, 0xDD, 0xDD, 0xDD, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xAB, 0xAA, 0x99, 0x89, 0x88, 0x88, 0x88, 0x88, 0x66, 0x56, 0x55, 0x44, 0x02, 0x00,
0x18, 0x20, 0x54, 0x65, 0x65, 0x66, 0x66, 0x77, 0x87, 0x88, 0x98, 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xCC, 0xCC, 0xDC, 0xED, 0xEE, 0xDE, 0xBC, 0xCB, 0xDC, 0xEE, 0xEE, 0xEE, 0xEE, 0xDE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xAB, 0x9A, 0x88, 0x88, 0x88, 0x88, 0x77, 0x56, 0x55, 0x45, 0x24, 0x00,
0x19, 0x20, 0x54, 0x65, 0x55, 0x66, 0x76, 0x77, 0x77, 0x88, 0xA8, 0xAA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xCC, 0xCC, 0xDC, 0xEE, 0xEE, 0xDD, 0xED, 0xEE, 0xEE, 0xEE, 0xEE, 0xDE, 0xCD, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xAB, 0xAA, 0x99, 0x99, 0x99, 0x78, 0x66, 0x56, 0x55, 0x55, 0x24, 0x00,
0x1A, 0x20, 0x54, 0x65, 0x56, 0x66, 0x76, 0x87, 0x88, 0x88, 0xA9, 0xAA, 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xCB, 0xDD, 0xDC, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0xDD, 0xDC, 0xDC, 0xCC, 0xCC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xAA, 0xAA, 0x9A, 0x99, 0x89, 0x78, 0x66, 0x56, 0x55, 0x55, 0x24, 0x00,
0x1B, 0x20, 0x44, 0x55, 0x55, 0x75, 0x87, 0x88, 0x88, 0x87, 0xA9, 0xAA, 0xAA, 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDC, 0xBC, 0xED, 0xEE, 0xEE, 0xDD, 0xEE, 0xDE, 0xDD, 0xDD, 0xDC, 0xDD, 0xDD, 0xCC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xAA, 0xAA, 0xAA, 0x99, 0x99, 0x89, 0x78, 0x66, 0x55, 0x55, 0x45, 0x24, 0x00,
0x1C, 0x10, 0x43, 0x55, 0x55, 0x76, 0x77, 0x88, 0x78, 0x87, 0x99, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0xBB, 0xBB, 0xDB, 0xCD, 0xDB, 0xDD, 0xDD, 0xDD, 0xDC, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xCD, 0xCC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xAB, 0xAA, 0xAA, 0x9A, 0x99, 0x99, 0x88, 0x78, 0x67, 0x56, 0x55, 0x45, 0x13, 0x00,
0x1E, 0x31, 0x54, 0x55, 0x66, 0x77, 0x87, 0x78, 0x77, 0x98, 0x99, 0x99, 0x99, 0xAA, 0xBA, 0xBB, 0xBB, 0xDC, 0xBC, 0xDB, 0xDD, 0xDD, 0xCD, 0xCB, 0xDD, 0xDD, 0xDD, 0xDD, 0xCC, 0xCC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xAA, 0xAA, 0xAA, 0x9A, 0x99, 0x99, 0x88, 0x88, 0x67, 0x66, 0x56, 0x55, 0x34, 0x01,
0x1F, 0x10, 0x43, 0x55, 0x66, 0x76, 0x77, 0x88, 0x77, 0x77, 0x87, 0x88, 0xA9, 0xAA, 0xAA, 0xAA, 0xCB, 0xBC, 0xBB, 0xDD, 0xCD, 0xDD, 0xBC, 0xDC, 0xDD, 0xDD, 0xDD, 0xCD, 0xBC, 0xBB, 0xBB, 0xBB, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0x99, 0x99, 0x89, 0x88, 0x78, 0x67, 0x55, 0x56, 0x45, 0x13, 0x00,
0x21, 0x31, 0x54, 0x55, 0x66, 0x76, 0x88, 0x78, 0x77, 0x77, 0x87, 0x99, 0xA9, 0xAA, 0xAA, 0xCB, 0xAB, 0xBB, 0xDC, 0xBC, 0xCC, 0xBD, 0xDC, 0xDD, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0x99, 0x99, 0x99, 0x89, 0x88, 0x78, 0x77, 0x56, 0x55, 0x55, 0x34, 0x01,
0x21, 0x00, 0x42, 0x55, 0x65, 0x66, 0x87, 0x88, 0x88, 0x78, 0x87, 0x99, 0x99, 0xA9, 0xAA, 0xAB, 0xAA, 0xAA, 0xCB, 0xBC, 0xBB, 0xBC, 0xCC, 0xCC, 0xBB, 0xBB, 0xBB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x99, 0x99, 0x99, 0x89, 0x88, 0x78, 0x77, 0x66, 0x55, 0x44, 0x45, 0x02, 0x00,
0x24, 0x21, 0x54, 0x55, 0x66, 0x86, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xAA, 0xBA, 0xBB, 0xBB, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A, 0x99, 0x99, 0x99, 0x89, 0x88, 0x78, 0x77, 0x67, 0x66, 0x56, 0x44, 0x24, 0x01,
0x25, 0x10, 0x53, 0x55, 0x65, 0x77, 0x88, 0x98, 0x88, 0x88, 0x88, 0x99, 0xAA, 0x99, 0x99, 0x99, 0xBA, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A, 0x99, 0x99, 0x99, 0x99, 0x99, 0x89, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x45, 0x13, 0x00,
0x27, 0x20, 0x54, 0x65, 0x76, 0x77, 0x88, 0x78, 0x77, 0x88, 0x98, 0x99, 0x99, 0x99, 0x99, 0xA9, 0xAA, 0xA9, 0xAB, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x89, 0x88, 0x88, 0x78, 0x77, 0x77, 0x66, 0x66, 0x55, 0x45, 0x12, 0x00,
0x29, 0x20, 0x54, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x98, 0xA9, 0x9A, 0xA9, 0xAB, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x88, 0x88, 0x88, 0x78, 0x77, 0x77, 0x67, 0x66, 0x56, 0x55, 0x44, 0x12, 0x00,
0x2A, 0x10, 0x42, 0x54, 0x66, 0x76, 0x77, 0x67, 0x77, 0x77, 0x77, 0x88, 0x88, 0x98, 0x99, 0x99, 0xAA, 0x89, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x77, 0x77, 0x67, 0x66, 0x66, 0x66, 0x55, 0x34, 0x01, 0x00,
0x2C, 0x00, 0x31, 0x55, 0x66, 0x66, 0x67, 0x66, 0x77, 0x77, 0x77, 0x87, 0x99, 0x99, 0x99, 0x99, 0x89, 0x88, 0x88, 0x99, 0x88, 0x88, 0x88, 0x78, 0x88, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x56, 0x35, 0x01, 0x00,
0x2F, 0x10, 0x32, 0x55, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x99, 0x78, 0x77, 0x98, 0x89, 0x88, 0x88, 0x88, 0x88, 0x78, 0x77, 0x67, 0x56, 0x55, 0x56, 0x34, 0x12, 0x00,
0x32, 0x10, 0x43, 0x54, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x87, 0x88, 0x88, 0x88, 0x78, 0x77, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x67, 0x66, 0x66, 0x55, 0x44, 0x12, 0x00,
0x34, 0x00, 0x31, 0x53, 0x55, 0x66, 0x66, 0x66, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x56, 0x55, 0x33, 0x01, 0x00,
0x38, 0x10, 0x22, 0x44, 0x54, 0x65, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x56, 0x55, 0x44, 0x24, 0x12, 0x00,
0x3C, 0x10, 0x11, 0x43, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x44, 0x13, 0x11, 0x00,
0x40, 0x00, 0x00, 0x10, 0x76, 0x66, 0x55, 0x55, 0x55, 0x65, 0x76, 0x16, 0x00, 0x00, 0x00,
}; // 9594 bytes, ~9k
const byte* GetMoonRows()
{
return pMoonImageRows;
}
#else
void Moon::DrawGore(int startAngle, int endAngle, word* , bool wax)
{
// draws a "gore" of the moon image, a strip of pixels between the two meridian angles, 0 starting from the LEFT
// if wax, uses the given palette, otherwise black
// SIMPLIFIED LESS DETAIL version of the one above, just trig, black and white
lcd.setWindow(0, 0, LCD_WIDTH, LCD_HEIGHT);
int left = (LCD_WIDTH - MOON_IMAGE_WIDTH)/2;
int top = (LCD_HEIGHT - MOON_IMAGE_HEIGHT)/2;
byte startEdges[MOON_IMAGE_WIDTH];
byte endEdges[MOON_IMAGE_WIDTH];
int imageDiameter = MOON_IMAGE_WIDTH;
// pre-build the trig calculations so they don't happen while we're drawing, a delay before we start is better than while painting a strip
for (int i = 0; i <= imageDiameter/2; i++)
{
startEdges[i] = i + rcosx(i, startAngle);
endEdges[i] = i + rcosx(i, endAngle);
}
for (int row = 0; row < imageDiameter; row++)
{
int dY = abs(row - imageDiameter/2);
int blackCols = imageDiameter/2 - sqrt(imageDiameter*imageDiameter/4 - dY*dY);
int colourCols = imageDiameter - 2*blackCols;
int startEdge = startEdges[colourCols/2];
int endEdge = endEdges[colourCols/2];
lcd.setPosition(left + blackCols + colourCols - startEdge, top + row, startEdge - endEdge + 1, 1);
byte colour = wax?0xFF:0x00;
lcd.fillByte(startEdge - endEdge + 1, colour);
}
}
#endif