summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/drivers/video/wmt/bootanimation
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/drivers/video/wmt/bootanimation')
-rwxr-xr-xANDROID_3.4.5/drivers/video/wmt/bootanimation/LzmaDec.c1007
-rwxr-xr-xANDROID_3.4.5/drivers/video/wmt/bootanimation/LzmaDec.h223
-rwxr-xr-xANDROID_3.4.5/drivers/video/wmt/bootanimation/Makefile19
-rwxr-xr-xANDROID_3.4.5/drivers/video/wmt/bootanimation/Types.h237
-rwxr-xr-xANDROID_3.4.5/drivers/video/wmt/bootanimation/anim_data.h911
-rwxr-xr-xANDROID_3.4.5/drivers/video/wmt/bootanimation/animation.c448
-rwxr-xr-xANDROID_3.4.5/drivers/video/wmt/bootanimation/animation.h15
-rwxr-xr-xANDROID_3.4.5/drivers/video/wmt/bootanimation/buffer.c85
-rwxr-xr-xANDROID_3.4.5/drivers/video/wmt/bootanimation/buffer.h34
9 files changed, 2979 insertions, 0 deletions
diff --git a/ANDROID_3.4.5/drivers/video/wmt/bootanimation/LzmaDec.c b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/LzmaDec.c
new file mode 100755
index 00000000..10f6cda6
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/LzmaDec.c
@@ -0,0 +1,1007 @@
+/* LzmaDec.c -- LZMA Decoder
+2008-11-06 : Igor Pavlov : Public domain */
+
+#include "LzmaDec.h"
+
+#include <linux/string.h>
+
+#define kNumTopBits 24
+#define kTopValue ((UInt32)1 << kNumTopBits)
+
+#define kNumBitModelTotalBits 11
+#define kBitModelTotal (1 << kNumBitModelTotalBits)
+#define kNumMoveBits 5
+
+#define RC_INIT_SIZE 5
+
+#define NORMALIZE if (range < kTopValue) { range <<= 8; code = (code << 8) | (*buf++); }
+
+#define IF_BIT_0(p) ttt = *(p); NORMALIZE; bound = (range >> kNumBitModelTotalBits) * ttt; if (code < bound)
+#define UPDATE_0(p) range = bound; *(p) = (CLzmaProb)(ttt + ((kBitModelTotal - ttt) >> kNumMoveBits));
+#define UPDATE_1(p) range -= bound; code -= bound; *(p) = (CLzmaProb)(ttt - (ttt >> kNumMoveBits));
+#define GET_BIT2(p, i, A0, A1) IF_BIT_0(p) \
+ { UPDATE_0(p); i = (i + i); A0; } else \
+ { UPDATE_1(p); i = (i + i) + 1; A1; }
+#define GET_BIT(p, i) GET_BIT2(p, i, ; , ;)
+
+#define TREE_GET_BIT(probs, i) { GET_BIT((probs + i), i); }
+#define TREE_DECODE(probs, limit, i) \
+ { i = 1; do { TREE_GET_BIT(probs, i); } while (i < limit); i -= limit; }
+
+/* #define _LZMA_SIZE_OPT */
+
+#ifdef _LZMA_SIZE_OPT
+#define TREE_6_DECODE(probs, i) TREE_DECODE(probs, (1 << 6), i)
+#else
+#define TREE_6_DECODE(probs, i) \
+ { i = 1; \
+ TREE_GET_BIT(probs, i); \
+ TREE_GET_BIT(probs, i); \
+ TREE_GET_BIT(probs, i); \
+ TREE_GET_BIT(probs, i); \
+ TREE_GET_BIT(probs, i); \
+ TREE_GET_BIT(probs, i); \
+ i -= 0x40; }
+#endif
+
+#define NORMALIZE_CHECK if (range < kTopValue) { if (buf >= bufLimit) return DUMMY_ERROR; range <<= 8; code = (code << 8) | (*buf++); }
+
+#define IF_BIT_0_CHECK(p) ttt = *(p); NORMALIZE_CHECK; bound = (range >> kNumBitModelTotalBits) * ttt; if (code < bound)
+#define UPDATE_0_CHECK range = bound;
+#define UPDATE_1_CHECK range -= bound; code -= bound;
+#define GET_BIT2_CHECK(p, i, A0, A1) IF_BIT_0_CHECK(p) \
+ { UPDATE_0_CHECK; i = (i + i); A0; } else \
+ { UPDATE_1_CHECK; i = (i + i) + 1; A1; }
+#define GET_BIT_CHECK(p, i) GET_BIT2_CHECK(p, i, ; , ;)
+#define TREE_DECODE_CHECK(probs, limit, i) \
+ { i = 1; do { GET_BIT_CHECK(probs + i, i) } while (i < limit); i -= limit; }
+
+
+#define kNumPosBitsMax 4
+#define kNumPosStatesMax (1 << kNumPosBitsMax)
+
+#define kLenNumLowBits 3
+#define kLenNumLowSymbols (1 << kLenNumLowBits)
+#define kLenNumMidBits 3
+#define kLenNumMidSymbols (1 << kLenNumMidBits)
+#define kLenNumHighBits 8
+#define kLenNumHighSymbols (1 << kLenNumHighBits)
+
+#define LenChoice 0
+#define LenChoice2 (LenChoice + 1)
+#define LenLow (LenChoice2 + 1)
+#define LenMid (LenLow + (kNumPosStatesMax << kLenNumLowBits))
+#define LenHigh (LenMid + (kNumPosStatesMax << kLenNumMidBits))
+#define kNumLenProbs (LenHigh + kLenNumHighSymbols)
+
+
+#define kNumStates 12
+#define kNumLitStates 7
+
+#define kStartPosModelIndex 4
+#define kEndPosModelIndex 14
+#define kNumFullDistances (1 << (kEndPosModelIndex >> 1))
+
+#define kNumPosSlotBits 6
+#define kNumLenToPosStates 4
+
+#define kNumAlignBits 4
+#define kAlignTableSize (1 << kNumAlignBits)
+
+#define kMatchMinLen 2
+#define kMatchSpecLenStart (kMatchMinLen + kLenNumLowSymbols + kLenNumMidSymbols + kLenNumHighSymbols)
+
+#define IsMatch 0
+#define IsRep (IsMatch + (kNumStates << kNumPosBitsMax))
+#define IsRepG0 (IsRep + kNumStates)
+#define IsRepG1 (IsRepG0 + kNumStates)
+#define IsRepG2 (IsRepG1 + kNumStates)
+#define IsRep0Long (IsRepG2 + kNumStates)
+#define PosSlot (IsRep0Long + (kNumStates << kNumPosBitsMax))
+#define SpecPos (PosSlot + (kNumLenToPosStates << kNumPosSlotBits))
+#define Align (SpecPos + kNumFullDistances - kEndPosModelIndex)
+#define LenCoder (Align + kAlignTableSize)
+#define RepLenCoder (LenCoder + kNumLenProbs)
+#define Literal (RepLenCoder + kNumLenProbs)
+
+#define LZMA_BASE_SIZE 1846
+#define LZMA_LIT_SIZE 768
+
+#define LzmaProps_GetNumProbs(p) ((UInt32)LZMA_BASE_SIZE + (LZMA_LIT_SIZE << ((p)->lc + (p)->lp)))
+
+#if Literal != LZMA_BASE_SIZE
+StopCompilingDueBUG
+#endif
+
+static const Byte kLiteralNextStates[kNumStates * 2] =
+{
+ 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5,
+ 7, 7, 7, 7, 7, 7, 7, 10, 10, 10, 10, 10
+};
+
+#define LZMA_DIC_MIN (1 << 12)
+
+/* First LZMA-symbol is always decoded.
+And it decodes new LZMA-symbols while (buf < bufLimit), but "buf" is without last normalization
+Out:
+ Result:
+ SZ_OK - OK
+ SZ_ERROR_DATA - Error
+ p->remainLen:
+ < kMatchSpecLenStart : normal remain
+ = kMatchSpecLenStart : finished
+ = kMatchSpecLenStart + 1 : Flush marker
+ = kMatchSpecLenStart + 2 : State Init Marker
+*/
+
+static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte *bufLimit)
+{
+ CLzmaProb *probs = p->probs;
+
+ unsigned state = p->state;
+ UInt32 rep0 = p->reps[0], rep1 = p->reps[1], rep2 = p->reps[2], rep3 = p->reps[3];
+ unsigned pbMask = ((unsigned)1 << (p->prop.pb)) - 1;
+ unsigned lpMask = ((unsigned)1 << (p->prop.lp)) - 1;
+ unsigned lc = p->prop.lc;
+
+ Byte *dic = p->dic;
+ SizeT dicBufSize = p->dicBufSize;
+ SizeT dicPos = p->dicPos;
+
+ UInt32 processedPos = p->processedPos;
+ UInt32 checkDicSize = p->checkDicSize;
+ unsigned len = 0;
+
+ const Byte *buf = p->buf;
+ UInt32 range = p->range;
+ UInt32 code = p->code;
+
+ do
+ {
+ CLzmaProb *prob;
+ UInt32 bound;
+ unsigned ttt;
+ unsigned posState = processedPos & pbMask;
+
+ prob = probs + IsMatch + (state << kNumPosBitsMax) + posState;
+ IF_BIT_0(prob)
+ {
+ unsigned symbol;
+ UPDATE_0(prob);
+ prob = probs + Literal;
+ if (checkDicSize != 0 || processedPos != 0)
+ prob += (LZMA_LIT_SIZE * (((processedPos & lpMask) << lc) +
+ (dic[(dicPos == 0 ? dicBufSize : dicPos) - 1] >> (8 - lc))));
+
+ if (state < kNumLitStates)
+ {
+ symbol = 1;
+ do { GET_BIT(prob + symbol, symbol) } while (symbol < 0x100);
+ }
+ else
+ {
+ unsigned matchByte = p->dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)];
+ unsigned offs = 0x100;
+ symbol = 1;
+ do
+ {
+ unsigned bit;
+ CLzmaProb *probLit;
+ matchByte <<= 1;
+ bit = (matchByte & offs);
+ probLit = prob + offs + bit + symbol;
+ GET_BIT2(probLit, symbol, offs &= ~bit, offs &= bit)
+ }
+ while (symbol < 0x100);
+ }
+ dic[dicPos++] = (Byte)symbol;
+ processedPos++;
+
+ state = kLiteralNextStates[state];
+ /* if (state < 4) state = 0; else if (state < 10) state -= 3; else state -= 6; */
+ continue;
+ }
+ else
+ {
+ UPDATE_1(prob);
+ prob = probs + IsRep + state;
+ IF_BIT_0(prob)
+ {
+ UPDATE_0(prob);
+ state += kNumStates;
+ prob = probs + LenCoder;
+ }
+ else
+ {
+ UPDATE_1(prob);
+ if (checkDicSize == 0 && processedPos == 0)
+ return SZ_ERROR_DATA;
+ prob = probs + IsRepG0 + state;
+ IF_BIT_0(prob)
+ {
+ UPDATE_0(prob);
+ prob = probs + IsRep0Long + (state << kNumPosBitsMax) + posState;
+ IF_BIT_0(prob)
+ {
+ UPDATE_0(prob);
+ dic[dicPos] = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)];
+ dicPos++;
+ processedPos++;
+ state = state < kNumLitStates ? 9 : 11;
+ continue;
+ }
+ UPDATE_1(prob);
+ }
+ else
+ {
+ UInt32 distance;
+ UPDATE_1(prob);
+ prob = probs + IsRepG1 + state;
+ IF_BIT_0(prob)
+ {
+ UPDATE_0(prob);
+ distance = rep1;
+ }
+ else
+ {
+ UPDATE_1(prob);
+ prob = probs + IsRepG2 + state;
+ IF_BIT_0(prob)
+ {
+ UPDATE_0(prob);
+ distance = rep2;
+ }
+ else
+ {
+ UPDATE_1(prob);
+ distance = rep3;
+ rep3 = rep2;
+ }
+ rep2 = rep1;
+ }
+ rep1 = rep0;
+ rep0 = distance;
+ }
+ state = state < kNumLitStates ? 8 : 11;
+ prob = probs + RepLenCoder;
+ }
+ {
+ unsigned limit, offset;
+ CLzmaProb *probLen = prob + LenChoice;
+ IF_BIT_0(probLen)
+ {
+ UPDATE_0(probLen);
+ probLen = prob + LenLow + (posState << kLenNumLowBits);
+ offset = 0;
+ limit = (1 << kLenNumLowBits);
+ }
+ else
+ {
+ UPDATE_1(probLen);
+ probLen = prob + LenChoice2;
+ IF_BIT_0(probLen)
+ {
+ UPDATE_0(probLen);
+ probLen = prob + LenMid + (posState << kLenNumMidBits);
+ offset = kLenNumLowSymbols;
+ limit = (1 << kLenNumMidBits);
+ }
+ else
+ {
+ UPDATE_1(probLen);
+ probLen = prob + LenHigh;
+ offset = kLenNumLowSymbols + kLenNumMidSymbols;
+ limit = (1 << kLenNumHighBits);
+ }
+ }
+ TREE_DECODE(probLen, limit, len);
+ len += offset;
+ }
+
+ if (state >= kNumStates)
+ {
+ UInt32 distance;
+ prob = probs + PosSlot +
+ ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << kNumPosSlotBits);
+ TREE_6_DECODE(prob, distance);
+ if (distance >= kStartPosModelIndex)
+ {
+ unsigned posSlot = (unsigned)distance;
+ int numDirectBits = (int)(((distance >> 1) - 1));
+ distance = (2 | (distance & 1));
+ if (posSlot < kEndPosModelIndex)
+ {
+ distance <<= numDirectBits;
+ prob = probs + SpecPos + distance - posSlot - 1;
+ {
+ UInt32 mask = 1;
+ unsigned i = 1;
+ do
+ {
+ GET_BIT2(prob + i, i, ; , distance |= mask);
+ mask <<= 1;
+ }
+ while (--numDirectBits != 0);
+ }
+ }
+ else
+ {
+ numDirectBits -= kNumAlignBits;
+ do
+ {
+ NORMALIZE
+ range >>= 1;
+
+ {
+ UInt32 t;
+ code -= range;
+ t = (0 - ((UInt32)code >> 31)); /* (UInt32)((Int32)code >> 31) */
+ distance = (distance << 1) + (t + 1);
+ code += range & t;
+ }
+ /*
+ distance <<= 1;
+ if (code >= range)
+ {
+ code -= range;
+ distance |= 1;
+ }
+ */
+ }
+ while (--numDirectBits != 0);
+ prob = probs + Align;
+ distance <<= kNumAlignBits;
+ {
+ unsigned i = 1;
+ GET_BIT2(prob + i, i, ; , distance |= 1);
+ GET_BIT2(prob + i, i, ; , distance |= 2);
+ GET_BIT2(prob + i, i, ; , distance |= 4);
+ GET_BIT2(prob + i, i, ; , distance |= 8);
+ }
+ if (distance == (UInt32)0xFFFFFFFF)
+ {
+ len += kMatchSpecLenStart;
+ state -= kNumStates;
+ break;
+ }
+ }
+ }
+ rep3 = rep2;
+ rep2 = rep1;
+ rep1 = rep0;
+ rep0 = distance + 1;
+ if (checkDicSize == 0)
+ {
+ if (distance >= processedPos)
+ return SZ_ERROR_DATA;
+ }
+ else if (distance >= checkDicSize)
+ return SZ_ERROR_DATA;
+ state = (state < kNumStates + kNumLitStates) ? kNumLitStates : kNumLitStates + 3;
+ /* state = kLiteralNextStates[state]; */
+ }
+
+ len += kMatchMinLen;
+
+ if (limit == dicPos)
+ return SZ_ERROR_DATA;
+ {
+ SizeT rem = limit - dicPos;
+ unsigned curLen = ((rem < len) ? (unsigned)rem : len);
+ SizeT pos = (dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0);
+
+ processedPos += curLen;
+
+ len -= curLen;
+ if (pos + curLen <= dicBufSize)
+ {
+ Byte *dest = dic + dicPos;
+ ptrdiff_t src = (ptrdiff_t)pos - (ptrdiff_t)dicPos;
+ const Byte *lim = dest + curLen;
+ dicPos += curLen;
+ do
+ *(dest) = (Byte)*(dest + src);
+ while (++dest != lim);
+ }
+ else
+ {
+ do
+ {
+ dic[dicPos++] = dic[pos];
+ if (++pos == dicBufSize)
+ pos = 0;
+ }
+ while (--curLen != 0);
+ }
+ }
+ }
+ }
+ while (dicPos < limit && buf < bufLimit);
+ NORMALIZE;
+ p->buf = buf;
+ p->range = range;
+ p->code = code;
+ p->remainLen = len;
+ p->dicPos = dicPos;
+ p->processedPos = processedPos;
+ p->reps[0] = rep0;
+ p->reps[1] = rep1;
+ p->reps[2] = rep2;
+ p->reps[3] = rep3;
+ p->state = state;
+
+ return SZ_OK;
+}
+
+static void MY_FAST_CALL LzmaDec_WriteRem(CLzmaDec *p, SizeT limit)
+{
+ if (p->remainLen != 0 && p->remainLen < kMatchSpecLenStart)
+ {
+ Byte *dic = p->dic;
+ SizeT dicPos = p->dicPos;
+ SizeT dicBufSize = p->dicBufSize;
+ unsigned len = p->remainLen;
+ UInt32 rep0 = p->reps[0];
+ if (limit - dicPos < len)
+ len = (unsigned)(limit - dicPos);
+
+ if (p->checkDicSize == 0 && p->prop.dicSize - p->processedPos <= len)
+ p->checkDicSize = p->prop.dicSize;
+
+ p->processedPos += len;
+ p->remainLen -= len;
+ while (len-- != 0)
+ {
+ dic[dicPos] = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)];
+ dicPos++;
+ }
+ p->dicPos = dicPos;
+ }
+}
+
+static int MY_FAST_CALL LzmaDec_DecodeReal2(CLzmaDec *p, SizeT limit, const Byte *bufLimit)
+{
+ do
+ {
+ SizeT limit2 = limit;
+ if (p->checkDicSize == 0)
+ {
+ UInt32 rem = p->prop.dicSize - p->processedPos;
+ if (limit - p->dicPos > rem)
+ limit2 = p->dicPos + rem;
+ }
+ RINOK(LzmaDec_DecodeReal(p, limit2, bufLimit));
+ if (p->processedPos >= p->prop.dicSize)
+ p->checkDicSize = p->prop.dicSize;
+ LzmaDec_WriteRem(p, limit);
+ }
+ while (p->dicPos < limit && p->buf < bufLimit && p->remainLen < kMatchSpecLenStart);
+
+ if (p->remainLen > kMatchSpecLenStart)
+ {
+ p->remainLen = kMatchSpecLenStart;
+ }
+ return 0;
+}
+
+typedef enum
+{
+ DUMMY_ERROR, /* unexpected end of input stream */
+ DUMMY_LIT,
+ DUMMY_MATCH,
+ DUMMY_REP
+} ELzmaDummy;
+
+static ELzmaDummy LzmaDec_TryDummy(const CLzmaDec *p, const Byte *buf, SizeT inSize)
+{
+ UInt32 range = p->range;
+ UInt32 code = p->code;
+ const Byte *bufLimit = buf + inSize;
+ CLzmaProb *probs = p->probs;
+ unsigned state = p->state;
+ ELzmaDummy res;
+
+ {
+ CLzmaProb *prob;
+ UInt32 bound;
+ unsigned ttt;
+ unsigned posState = (p->processedPos) & ((1 << p->prop.pb) - 1);
+
+ prob = probs + IsMatch + (state << kNumPosBitsMax) + posState;
+ IF_BIT_0_CHECK(prob)
+ {
+ UPDATE_0_CHECK
+
+ /* if (bufLimit - buf >= 7) return DUMMY_LIT; */
+
+ prob = probs + Literal;
+ if (p->checkDicSize != 0 || p->processedPos != 0)
+ prob += (LZMA_LIT_SIZE *
+ ((((p->processedPos) & ((1 << (p->prop.lp)) - 1)) << p->prop.lc) +
+ (p->dic[(p->dicPos == 0 ? p->dicBufSize : p->dicPos) - 1] >> (8 - p->prop.lc))));
+
+ if (state < kNumLitStates)
+ {
+ unsigned symbol = 1;
+ do { GET_BIT_CHECK(prob + symbol, symbol) } while (symbol < 0x100);
+ }
+ else
+ {
+ unsigned matchByte = p->dic[p->dicPos - p->reps[0] +
+ ((p->dicPos < p->reps[0]) ? p->dicBufSize : 0)];
+ unsigned offs = 0x100;
+ unsigned symbol = 1;
+ do
+ {
+ unsigned bit;
+ CLzmaProb *probLit;
+ matchByte <<= 1;
+ bit = (matchByte & offs);
+ probLit = prob + offs + bit + symbol;
+ GET_BIT2_CHECK(probLit, symbol, offs &= ~bit, offs &= bit)
+ }
+ while (symbol < 0x100);
+ }
+ res = DUMMY_LIT;
+ }
+ else
+ {
+ unsigned len;
+ UPDATE_1_CHECK;
+
+ prob = probs + IsRep + state;
+ IF_BIT_0_CHECK(prob)
+ {
+ UPDATE_0_CHECK;
+ state = 0;
+ prob = probs + LenCoder;
+ res = DUMMY_MATCH;
+ }
+ else
+ {
+ UPDATE_1_CHECK;
+ res = DUMMY_REP;
+ prob = probs + IsRepG0 + state;
+ IF_BIT_0_CHECK(prob)
+ {
+ UPDATE_0_CHECK;
+ prob = probs + IsRep0Long + (state << kNumPosBitsMax) + posState;
+ IF_BIT_0_CHECK(prob)
+ {
+ UPDATE_0_CHECK;
+ NORMALIZE_CHECK;
+ return DUMMY_REP;
+ }
+ else
+ {
+ UPDATE_1_CHECK;
+ }
+ }
+ else
+ {
+ UPDATE_1_CHECK;
+ prob = probs + IsRepG1 + state;
+ IF_BIT_0_CHECK(prob)
+ {
+ UPDATE_0_CHECK;
+ }
+ else
+ {
+ UPDATE_1_CHECK;
+ prob = probs + IsRepG2 + state;
+ IF_BIT_0_CHECK(prob)
+ {
+ UPDATE_0_CHECK;
+ }
+ else
+ {
+ UPDATE_1_CHECK;
+ }
+ }
+ }
+ state = kNumStates;
+ prob = probs + RepLenCoder;
+ }
+ {
+ unsigned limit, offset;
+ CLzmaProb *probLen = prob + LenChoice;
+ IF_BIT_0_CHECK(probLen)
+ {
+ UPDATE_0_CHECK;
+ probLen = prob + LenLow + (posState << kLenNumLowBits);
+ offset = 0;
+ limit = 1 << kLenNumLowBits;
+ }
+ else
+ {
+ UPDATE_1_CHECK;
+ probLen = prob + LenChoice2;
+ IF_BIT_0_CHECK(probLen)
+ {
+ UPDATE_0_CHECK;
+ probLen = prob + LenMid + (posState << kLenNumMidBits);
+ offset = kLenNumLowSymbols;
+ limit = 1 << kLenNumMidBits;
+ }
+ else
+ {
+ UPDATE_1_CHECK;
+ probLen = prob + LenHigh;
+ offset = kLenNumLowSymbols + kLenNumMidSymbols;
+ limit = 1 << kLenNumHighBits;
+ }
+ }
+ TREE_DECODE_CHECK(probLen, limit, len);
+ len += offset;
+ }
+
+ if (state < 4)
+ {
+ unsigned posSlot;
+ prob = probs + PosSlot +
+ ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) <<
+ kNumPosSlotBits);
+ TREE_DECODE_CHECK(prob, 1 << kNumPosSlotBits, posSlot);
+ if (posSlot >= kStartPosModelIndex)
+ {
+ int numDirectBits = ((posSlot >> 1) - 1);
+
+ /* if (bufLimit - buf >= 8) return DUMMY_MATCH; */
+
+ if (posSlot < kEndPosModelIndex)
+ {
+ prob = probs + SpecPos + ((2 | (posSlot & 1)) << numDirectBits) - posSlot - 1;
+ }
+ else
+ {
+ numDirectBits -= kNumAlignBits;
+ do
+ {
+ NORMALIZE_CHECK
+ range >>= 1;
+ code -= range & (((code - range) >> 31) - 1);
+ /* if (code >= range) code -= range; */
+ }
+ while (--numDirectBits != 0);
+ prob = probs + Align;
+ numDirectBits = kNumAlignBits;
+ }
+ {
+ unsigned i = 1;
+ do
+ {
+ GET_BIT_CHECK(prob + i, i);
+ }
+ while (--numDirectBits != 0);
+ }
+ }
+ }
+ }
+ }
+ NORMALIZE_CHECK;
+ return res;
+}
+
+
+static void LzmaDec_InitRc(CLzmaDec *p, const Byte *data)
+{
+ p->code = ((UInt32)data[1] << 24) | ((UInt32)data[2] << 16) | ((UInt32)data[3] << 8) | ((UInt32)data[4]);
+ p->range = 0xFFFFFFFF;
+ p->needFlush = 0;
+}
+
+void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
+{
+ p->needFlush = 1;
+ p->remainLen = 0;
+ p->tempBufSize = 0;
+
+ if (initDic)
+ {
+ p->processedPos = 0;
+ p->checkDicSize = 0;
+ p->needInitState = 1;
+ }
+ if (initState)
+ p->needInitState = 1;
+}
+
+void LzmaDec_Init(CLzmaDec *p)
+{
+ p->dicPos = 0;
+ LzmaDec_InitDicAndState(p, True, True);
+}
+
+static void LzmaDec_InitStateReal(CLzmaDec *p)
+{
+ UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (p->prop.lc + p->prop.lp));
+ UInt32 i;
+ CLzmaProb *probs = p->probs;
+ for (i = 0; i < numProbs; i++)
+ probs[i] = kBitModelTotal >> 1;
+ p->reps[0] = p->reps[1] = p->reps[2] = p->reps[3] = 1;
+ p->state = 0;
+ p->needInitState = 0;
+}
+
+SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *srcLen,
+ ELzmaFinishMode finishMode, ELzmaStatus *status)
+{
+ SizeT inSize = *srcLen;
+ (*srcLen) = 0;
+ LzmaDec_WriteRem(p, dicLimit);
+
+ *status = LZMA_STATUS_NOT_SPECIFIED;
+
+ while (p->remainLen != kMatchSpecLenStart)
+ {
+ int checkEndMarkNow;
+
+ if (p->needFlush != 0)
+ {
+ for (; inSize > 0 && p->tempBufSize < RC_INIT_SIZE; (*srcLen)++, inSize--)
+ p->tempBuf[p->tempBufSize++] = *src++;
+ if (p->tempBufSize < RC_INIT_SIZE)
+ {
+ *status = LZMA_STATUS_NEEDS_MORE_INPUT;
+ return SZ_OK;
+ }
+ if (p->tempBuf[0] != 0)
+ return SZ_ERROR_DATA;
+
+ LzmaDec_InitRc(p, p->tempBuf);
+ p->tempBufSize = 0;
+ }
+
+ checkEndMarkNow = 0;
+ if (p->dicPos >= dicLimit)
+ {
+ if (p->remainLen == 0 && p->code == 0)
+ {
+ *status = LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK;
+ return SZ_OK;
+ }
+ if (finishMode == LZMA_FINISH_ANY)
+ {
+ *status = LZMA_STATUS_NOT_FINISHED;
+ return SZ_OK;
+ }
+ if (p->remainLen != 0)
+ {
+ *status = LZMA_STATUS_NOT_FINISHED;
+ return SZ_ERROR_DATA;
+ }
+ checkEndMarkNow = 1;
+ }
+
+ if (p->needInitState)
+ LzmaDec_InitStateReal(p);
+
+ if (p->tempBufSize == 0)
+ {
+ SizeT processed;
+ const Byte *bufLimit;
+ if (inSize < LZMA_REQUIRED_INPUT_MAX || checkEndMarkNow)
+ {
+ int dummyRes = LzmaDec_TryDummy(p, src, inSize);
+ if (dummyRes == DUMMY_ERROR)
+ {
+ memcpy(p->tempBuf, src, inSize);
+ p->tempBufSize = (unsigned)inSize;
+ (*srcLen) += inSize;
+ *status = LZMA_STATUS_NEEDS_MORE_INPUT;
+ return SZ_OK;
+ }
+ if (checkEndMarkNow && dummyRes != DUMMY_MATCH)
+ {
+ *status = LZMA_STATUS_NOT_FINISHED;
+ return SZ_ERROR_DATA;
+ }
+ bufLimit = src;
+ }
+ else
+ bufLimit = src + inSize - LZMA_REQUIRED_INPUT_MAX;
+ p->buf = src;
+ if (LzmaDec_DecodeReal2(p, dicLimit, bufLimit) != 0)
+ return SZ_ERROR_DATA;
+ processed = (SizeT)(p->buf - src);
+ (*srcLen) += processed;
+ src += processed;
+ inSize -= processed;
+ }
+ else
+ {
+ unsigned rem = p->tempBufSize, lookAhead = 0;
+ while (rem < LZMA_REQUIRED_INPUT_MAX && lookAhead < inSize)
+ p->tempBuf[rem++] = src[lookAhead++];
+ p->tempBufSize = rem;
+ if (rem < LZMA_REQUIRED_INPUT_MAX || checkEndMarkNow)
+ {
+ int dummyRes = LzmaDec_TryDummy(p, p->tempBuf, rem);
+ if (dummyRes == DUMMY_ERROR)
+ {
+ (*srcLen) += lookAhead;
+ *status = LZMA_STATUS_NEEDS_MORE_INPUT;
+ return SZ_OK;
+ }
+ if (checkEndMarkNow && dummyRes != DUMMY_MATCH)
+ {
+ *status = LZMA_STATUS_NOT_FINISHED;
+ return SZ_ERROR_DATA;
+ }
+ }
+ p->buf = p->tempBuf;
+ if (LzmaDec_DecodeReal2(p, dicLimit, p->buf) != 0)
+ return SZ_ERROR_DATA;
+ lookAhead -= (rem - (unsigned)(p->buf - p->tempBuf));
+ (*srcLen) += lookAhead;
+ src += lookAhead;
+ inSize -= lookAhead;
+ p->tempBufSize = 0;
+ }
+ }
+ if (p->code == 0)
+ *status = LZMA_STATUS_FINISHED_WITH_MARK;
+ return (p->code == 0) ? SZ_OK : SZ_ERROR_DATA;
+}
+
+SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status)
+{
+ SizeT outSize = *destLen;
+ SizeT inSize = *srcLen;
+ *srcLen = *destLen = 0;
+ for (;;)
+ {
+ SizeT inSizeCur = inSize, outSizeCur, dicPos;
+ ELzmaFinishMode curFinishMode;
+ SRes res;
+ if (p->dicPos == p->dicBufSize)
+ p->dicPos = 0;
+ dicPos = p->dicPos;
+ if (outSize > p->dicBufSize - dicPos)
+ {
+ outSizeCur = p->dicBufSize;
+ curFinishMode = LZMA_FINISH_ANY;
+ }
+ else
+ {
+ outSizeCur = dicPos + outSize;
+ curFinishMode = finishMode;
+ }
+
+ res = LzmaDec_DecodeToDic(p, outSizeCur, src, &inSizeCur, curFinishMode, status);
+ src += inSizeCur;
+ inSize -= inSizeCur;
+ *srcLen += inSizeCur;
+ outSizeCur = p->dicPos - dicPos;
+ memcpy(dest, p->dic + dicPos, outSizeCur);
+ dest += outSizeCur;
+ outSize -= outSizeCur;
+ *destLen += outSizeCur;
+ if (res != 0)
+ return res;
+ if (outSizeCur == 0 || outSize == 0)
+ return SZ_OK;
+ }
+}
+
+void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc)
+{
+ alloc->Free(alloc, p->probs);
+ p->probs = 0;
+}
+
+static void LzmaDec_FreeDict(CLzmaDec *p, ISzAlloc *alloc)
+{
+ alloc->Free(alloc, p->dic);
+ p->dic = 0;
+}
+
+void LzmaDec_Free(CLzmaDec *p, ISzAlloc *alloc)
+{
+ LzmaDec_FreeProbs(p, alloc);
+ LzmaDec_FreeDict(p, alloc);
+}
+
+SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size)
+{
+ UInt32 dicSize;
+ Byte d;
+
+ if (size < LZMA_PROPS_SIZE)
+ return SZ_ERROR_UNSUPPORTED;
+ else
+ dicSize = data[1] | ((UInt32)data[2] << 8) | ((UInt32)data[3] << 16) | ((UInt32)data[4] << 24);
+
+ if (dicSize < LZMA_DIC_MIN)
+ dicSize = LZMA_DIC_MIN;
+ p->dicSize = dicSize;
+
+ d = data[0];
+ if (d >= (9 * 5 * 5))
+ return SZ_ERROR_UNSUPPORTED;
+
+ p->lc = d % 9;
+ d /= 9;
+ p->pb = d / 5;
+ p->lp = d % 5;
+
+ return SZ_OK;
+}
+
+static SRes LzmaDec_AllocateProbs2(CLzmaDec *p, const CLzmaProps *propNew, ISzAlloc *alloc)
+{
+ UInt32 numProbs = LzmaProps_GetNumProbs(propNew);
+ if (p->probs == 0 || numProbs != p->numProbs)
+ {
+ LzmaDec_FreeProbs(p, alloc);
+ p->probs = (CLzmaProb *)alloc->Alloc(alloc, numProbs * sizeof(CLzmaProb));
+ p->numProbs = numProbs;
+ if (p->probs == 0)
+ return SZ_ERROR_MEM;
+ }
+ return SZ_OK;
+}
+
+SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
+{
+ CLzmaProps propNew;
+ RINOK(LzmaProps_Decode(&propNew, props, propsSize));
+ RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
+ p->prop = propNew;
+ return SZ_OK;
+}
+
+SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
+{
+ CLzmaProps propNew;
+ SizeT dicBufSize;
+ RINOK(LzmaProps_Decode(&propNew, props, propsSize));
+ RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
+ dicBufSize = propNew.dicSize;
+ if (p->dic == 0 || dicBufSize != p->dicBufSize)
+ {
+ LzmaDec_FreeDict(p, alloc);
+ p->dic = (Byte *)alloc->Alloc(alloc, dicBufSize);
+ if (p->dic == 0)
+ {
+ LzmaDec_FreeProbs(p, alloc);
+ return SZ_ERROR_MEM;
+ }
+ }
+ p->dicBufSize = dicBufSize;
+ p->prop = propNew;
+ return SZ_OK;
+}
+
+SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
+ const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,
+ ELzmaStatus *status, ISzAlloc *alloc)
+{
+ CLzmaDec p;
+ SRes res;
+ SizeT inSize = *srcLen;
+ SizeT outSize = *destLen;
+ *srcLen = *destLen = 0;
+ if (inSize < RC_INIT_SIZE)
+ return SZ_ERROR_INPUT_EOF;
+
+ LzmaDec_Construct(&p);
+ res = LzmaDec_AllocateProbs(&p, propData, propSize, alloc);
+ if (res != 0)
+ return res;
+ p.dic = dest;
+ p.dicBufSize = outSize;
+
+ LzmaDec_Init(&p);
+
+ *srcLen = inSize;
+ res = LzmaDec_DecodeToDic(&p, outSize, src, srcLen, finishMode, status);
+
+ if (res == SZ_OK && *status == LZMA_STATUS_NEEDS_MORE_INPUT)
+ res = SZ_ERROR_INPUT_EOF;
+
+ (*destLen) = p.dicPos;
+ LzmaDec_FreeProbs(&p, alloc);
+ return res;
+}
diff --git a/ANDROID_3.4.5/drivers/video/wmt/bootanimation/LzmaDec.h b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/LzmaDec.h
new file mode 100755
index 00000000..98cdbe94
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/LzmaDec.h
@@ -0,0 +1,223 @@
+/* LzmaDec.h -- LZMA Decoder
+2008-10-04 : Igor Pavlov : Public domain */
+
+#ifndef __LZMADEC_H
+#define __LZMADEC_H
+
+#include "Types.h"
+
+/* #define _LZMA_PROB32 */
+/* _LZMA_PROB32 can increase the speed on some CPUs,
+ but memory usage for CLzmaDec::probs will be doubled in that case */
+
+#ifdef _LZMA_PROB32
+#define CLzmaProb UInt32
+#else
+#define CLzmaProb UInt16
+#endif
+
+
+/* ---------- LZMA Properties ---------- */
+
+#define LZMA_PROPS_SIZE 5
+
+typedef struct _CLzmaProps
+{
+ unsigned lc, lp, pb;
+ UInt32 dicSize;
+} CLzmaProps;
+
+/* LzmaProps_Decode - decodes properties
+Returns:
+ SZ_OK
+ SZ_ERROR_UNSUPPORTED - Unsupported properties
+*/
+
+SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size);
+
+
+/* ---------- LZMA Decoder state ---------- */
+
+/* LZMA_REQUIRED_INPUT_MAX = number of required input bytes for worst case.
+ Num bits = log2((2^11 / 31) ^ 22) + 26 < 134 + 26 = 160; */
+
+#define LZMA_REQUIRED_INPUT_MAX 20
+
+typedef struct
+{
+ CLzmaProps prop;
+ CLzmaProb *probs;
+ Byte *dic;
+ const Byte *buf;
+ UInt32 range, code;
+ SizeT dicPos;
+ SizeT dicBufSize;
+ UInt32 processedPos;
+ UInt32 checkDicSize;
+ unsigned state;
+ UInt32 reps[4];
+ unsigned remainLen;
+ int needFlush;
+ int needInitState;
+ UInt32 numProbs;
+ unsigned tempBufSize;
+ Byte tempBuf[LZMA_REQUIRED_INPUT_MAX];
+} CLzmaDec;
+
+#define LzmaDec_Construct(p) { (p)->dic = 0; (p)->probs = 0; }
+
+void LzmaDec_Init(CLzmaDec *p);
+
+/* There are two types of LZMA streams:
+ 0) Stream with end mark. That end mark adds about 6 bytes to compressed size.
+ 1) Stream without end mark. You must know exact uncompressed size to decompress such stream. */
+
+typedef enum
+{
+ LZMA_FINISH_ANY, /* finish at any point */
+ LZMA_FINISH_END /* block must be finished at the end */
+} ELzmaFinishMode;
+
+/* ELzmaFinishMode has meaning only if the decoding reaches output limit !!!
+
+ You must use LZMA_FINISH_END, when you know that current output buffer
+ covers last bytes of block. In other cases you must use LZMA_FINISH_ANY.
+
+ If LZMA decoder sees end marker before reaching output limit, it returns SZ_OK,
+ and output value of destLen will be less than output buffer size limit.
+ You can check status result also.
+
+ You can use multiple checks to test data integrity after full decompression:
+ 1) Check Result and "status" variable.
+ 2) Check that output(destLen) = uncompressedSize, if you know real uncompressedSize.
+ 3) Check that output(srcLen) = compressedSize, if you know real compressedSize.
+ You must use correct finish mode in that case. */
+
+typedef enum
+{
+ LZMA_STATUS_NOT_SPECIFIED, /* use main error code instead */
+ LZMA_STATUS_FINISHED_WITH_MARK, /* stream was finished with end mark. */
+ LZMA_STATUS_NOT_FINISHED, /* stream was not finished */
+ LZMA_STATUS_NEEDS_MORE_INPUT, /* you must provide more input bytes */
+ LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK /* there is probability that stream was finished without end mark */
+} ELzmaStatus;
+
+/* ELzmaStatus is used only as output value for function call */
+
+
+/* ---------- Interfaces ---------- */
+
+/* There are 3 levels of interfaces:
+ 1) Dictionary Interface
+ 2) Buffer Interface
+ 3) One Call Interface
+ You can select any of these interfaces, but don't mix functions from different
+ groups for same object. */
+
+
+/* There are two variants to allocate state for Dictionary Interface:
+ 1) LzmaDec_Allocate / LzmaDec_Free
+ 2) LzmaDec_AllocateProbs / LzmaDec_FreeProbs
+ You can use variant 2, if you set dictionary buffer manually.
+ For Buffer Interface you must always use variant 1.
+
+LzmaDec_Allocate* can return:
+ SZ_OK
+ SZ_ERROR_MEM - Memory allocation error
+ SZ_ERROR_UNSUPPORTED - Unsupported properties
+*/
+
+SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc);
+void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc);
+
+SRes LzmaDec_Allocate(CLzmaDec *state, const Byte *prop, unsigned propsSize, ISzAlloc *alloc);
+void LzmaDec_Free(CLzmaDec *state, ISzAlloc *alloc);
+
+/* ---------- Dictionary Interface ---------- */
+
+/* You can use it, if you want to eliminate the overhead for data copying from
+ dictionary to some other external buffer.
+ You must work with CLzmaDec variables directly in this interface.
+
+ STEPS:
+ LzmaDec_Constr()
+ LzmaDec_Allocate()
+ for (each new stream)
+ {
+ LzmaDec_Init()
+ while (it needs more decompression)
+ {
+ LzmaDec_DecodeToDic()
+ use data from CLzmaDec::dic and update CLzmaDec::dicPos
+ }
+ }
+ LzmaDec_Free()
+*/
+
+/* LzmaDec_DecodeToDic
+
+ The decoding to internal dictionary buffer (CLzmaDec::dic).
+ You must manually update CLzmaDec::dicPos, if it reaches CLzmaDec::dicBufSize !!!
+
+finishMode:
+ It has meaning only if the decoding reaches output limit (dicLimit).
+ LZMA_FINISH_ANY - Decode just dicLimit bytes.
+ LZMA_FINISH_END - Stream must be finished after dicLimit.
+
+Returns:
+ SZ_OK
+ status:
+ LZMA_STATUS_FINISHED_WITH_MARK
+ LZMA_STATUS_NOT_FINISHED
+ LZMA_STATUS_NEEDS_MORE_INPUT
+ LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK
+ SZ_ERROR_DATA - Data error
+*/
+
+SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit,
+ const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status);
+
+
+/* ---------- Buffer Interface ---------- */
+
+/* It's zlib-like interface.
+ See LzmaDec_DecodeToDic description for information about STEPS and return results,
+ but you must use LzmaDec_DecodeToBuf instead of LzmaDec_DecodeToDic and you don't need
+ to work with CLzmaDec variables manually.
+
+finishMode:
+ It has meaning only if the decoding reaches output limit (*destLen).
+ LZMA_FINISH_ANY - Decode just destLen bytes.
+ LZMA_FINISH_END - Stream must be finished after (*destLen).
+*/
+
+SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen,
+ const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status);
+
+
+/* ---------- One Call Interface ---------- */
+
+/* LzmaDecode
+
+finishMode:
+ It has meaning only if the decoding reaches output limit (*destLen).
+ LZMA_FINISH_ANY - Decode just destLen bytes.
+ LZMA_FINISH_END - Stream must be finished after (*destLen).
+
+Returns:
+ SZ_OK
+ status:
+ LZMA_STATUS_FINISHED_WITH_MARK
+ LZMA_STATUS_NOT_FINISHED
+ LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK
+ SZ_ERROR_DATA - Data error
+ SZ_ERROR_MEM - Memory allocation error
+ SZ_ERROR_UNSUPPORTED - Unsupported properties
+ SZ_ERROR_INPUT_EOF - It needs more bytes in input buffer (src).
+*/
+
+SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
+ const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,
+ ELzmaStatus *status, ISzAlloc *alloc);
+
+#endif
diff --git a/ANDROID_3.4.5/drivers/video/wmt/bootanimation/Makefile b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/Makefile
new file mode 100755
index 00000000..f0d021a8
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/Makefile
@@ -0,0 +1,19 @@
+#
+# This is a modified version of zlib, which does all memory
+# allocation ahead of time.
+#
+# This is only the decompression, see zlib_deflate for the
+# the compression
+#
+# Decompression needs to be serialized for each memory
+# allocation.
+#
+# (The upsides of the simplification is that you can't get in
+# any nasty situations wrt memory management, and that the
+# uncompression can be done without blocking on allocation).
+#
+lzma_dec-objs := LzmaDec.o
+
+obj-$(CONFIG_LOGO_WMT_ANIMATION) += lzma_dec.o buffer.o animation.o
+
+
diff --git a/ANDROID_3.4.5/drivers/video/wmt/bootanimation/Types.h b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/Types.h
new file mode 100755
index 00000000..60cfe05e
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/Types.h
@@ -0,0 +1,237 @@
+/* Types.h -- Basic types
+2010-03-11 : Igor Pavlov : Public domain */
+
+#ifndef __7Z_TYPES_H
+#define __7Z_TYPES_H
+
+#include <stddef.h>
+
+#ifdef _WIN32
+#include <windows.h>
+#endif
+
+#ifndef EXTERN_C_BEGIN
+#ifdef __cplusplus
+#define EXTERN_C_BEGIN extern "C" {
+#define EXTERN_C_END }
+#else
+#define EXTERN_C_BEGIN
+#define EXTERN_C_END
+#endif
+#endif
+
+EXTERN_C_BEGIN
+
+#define SZ_OK 0
+
+#define SZ_ERROR_DATA 1
+#define SZ_ERROR_MEM 2
+#define SZ_ERROR_CRC 3
+#define SZ_ERROR_UNSUPPORTED 4
+#define SZ_ERROR_PARAM 5
+#define SZ_ERROR_INPUT_EOF 6
+#define SZ_ERROR_OUTPUT_EOF 7
+#define SZ_ERROR_READ 8
+#define SZ_ERROR_WRITE 9
+#define SZ_ERROR_PROGRESS 10
+#define SZ_ERROR_FAIL 11
+#define SZ_ERROR_THREAD 12
+
+#define SZ_ERROR_ARCHIVE 16
+#define SZ_ERROR_NO_ARCHIVE 17
+
+typedef int SRes;
+
+#ifdef _WIN32
+typedef DWORD WRes;
+#else
+typedef int WRes;
+#endif
+
+#ifndef RINOK
+#define RINOK(x) { int __result__ = (x); if (__result__ != 0) return __result__; }
+#endif
+
+typedef unsigned char Byte;
+typedef short Int16;
+typedef unsigned short UInt16;
+
+#ifdef _LZMA_UINT32_IS_ULONG
+typedef long Int32;
+typedef unsigned long UInt32;
+#else
+typedef int Int32;
+typedef unsigned int UInt32;
+#endif
+
+#ifdef _SZ_NO_INT_64
+
+/* define _SZ_NO_INT_64, if your compiler doesn't support 64-bit integers.
+ NOTES: Some code will work incorrectly in that case! */
+
+typedef long Int64;
+typedef unsigned long UInt64;
+
+#else
+
+#if defined(_MSC_VER) || defined(__BORLANDC__)
+typedef __int64 Int64;
+typedef unsigned __int64 UInt64;
+#else
+typedef long long int Int64;
+typedef unsigned long long int UInt64;
+#endif
+
+#endif
+
+#ifdef _LZMA_NO_SYSTEM_SIZE_T
+typedef UInt32 SizeT;
+#else
+typedef size_t SizeT;
+#endif
+
+typedef int Bool;
+#define True 1
+#define False 0
+
+
+#ifdef _WIN32
+#define MY_STD_CALL __stdcall
+#else
+#define MY_STD_CALL
+#endif
+
+#ifdef _MSC_VER
+
+#if _MSC_VER >= 1300
+#define MY_NO_INLINE __declspec(noinline)
+#else
+#define MY_NO_INLINE
+#endif
+
+#define MY_CDECL __cdecl
+#define MY_FAST_CALL __fastcall
+
+#else
+
+#define MY_CDECL
+#define MY_FAST_CALL
+
+#endif
+
+
+/* The following interfaces use first parameter as pointer to structure */
+
+typedef struct
+{
+ Byte (*Read)(void *p); /* reads one byte, returns 0 in case of EOF or error */
+} IByteIn;
+
+typedef struct
+{
+ void (*Write)(void *p, Byte b);
+} IByteOut;
+
+typedef struct
+{
+ SRes (*Read)(void *p, void *buf, size_t *size);
+ /* if (input(*size) != 0 && output(*size) == 0) means end_of_stream.
+ (output(*size) < input(*size)) is allowed */
+} ISeqInStream;
+
+/* it can return SZ_ERROR_INPUT_EOF */
+SRes SeqInStream_Read(ISeqInStream *stream, void *buf, size_t size);
+SRes SeqInStream_Read2(ISeqInStream *stream, void *buf, size_t size, SRes errorType);
+SRes SeqInStream_ReadByte(ISeqInStream *stream, Byte *buf);
+
+typedef struct
+{
+ size_t (*Write)(void *p, const void *buf, size_t size);
+ /* Returns: result - the number of actually written bytes.
+ (result < size) means error */
+} ISeqOutStream;
+
+typedef enum
+{
+ SZ_SEEK_SET = 0,
+ SZ_SEEK_CUR = 1,
+ SZ_SEEK_END = 2
+} ESzSeek;
+
+typedef struct
+{
+ SRes (*Read)(void *p, void *buf, size_t *size); /* same as ISeqInStream::Read */
+ SRes (*Seek)(void *p, Int64 *pos, ESzSeek origin);
+} ISeekInStream;
+
+typedef struct
+{
+ SRes (*Look)(void *p, const void **buf, size_t *size);
+ /* if (input(*size) != 0 && output(*size) == 0) means end_of_stream.
+ (output(*size) > input(*size)) is not allowed
+ (output(*size) < input(*size)) is allowed */
+ SRes (*Skip)(void *p, size_t offset);
+ /* offset must be <= output(*size) of Look */
+
+ SRes (*Read)(void *p, void *buf, size_t *size);
+ /* reads directly (without buffer). It's same as ISeqInStream::Read */
+ SRes (*Seek)(void *p, Int64 *pos, ESzSeek origin);
+} ILookInStream;
+
+SRes LookInStream_LookRead(ILookInStream *stream, void *buf, size_t *size);
+SRes LookInStream_SeekTo(ILookInStream *stream, UInt64 offset);
+
+/* reads via ILookInStream::Read */
+SRes LookInStream_Read2(ILookInStream *stream, void *buf, size_t size, SRes errorType);
+SRes LookInStream_Read(ILookInStream *stream, void *buf, size_t size);
+
+#define LookToRead_BUF_SIZE (1 << 14)
+
+typedef struct
+{
+ ILookInStream s;
+ ISeekInStream *realStream;
+ size_t pos;
+ size_t size;
+ Byte buf[LookToRead_BUF_SIZE];
+} CLookToRead;
+
+void LookToRead_CreateVTable(CLookToRead *p, int lookahead);
+void LookToRead_Init(CLookToRead *p);
+
+typedef struct
+{
+ ISeqInStream s;
+ ILookInStream *realStream;
+} CSecToLook;
+
+void SecToLook_CreateVTable(CSecToLook *p);
+
+typedef struct
+{
+ ISeqInStream s;
+ ILookInStream *realStream;
+} CSecToRead;
+
+void SecToRead_CreateVTable(CSecToRead *p);
+
+typedef struct
+{
+ SRes (*Progress)(void *p, UInt64 inSize, UInt64 outSize);
+ /* Returns: result. (result != SZ_OK) means break.
+ Value (UInt64)(Int64)-1 for size means unknown value. */
+} ICompressProgress;
+
+typedef struct
+{
+ void *(*Alloc)(void *p, size_t size);
+ void (*Free)(void *p, void *address); /* address can be 0 */
+ int private;
+} ISzAlloc;
+
+#define IAlloc_Alloc(p, size) (p)->Alloc((p), size)
+#define IAlloc_Free(p, a) (p)->Free((p), a)
+
+EXTERN_C_END
+
+#endif
diff --git a/ANDROID_3.4.5/drivers/video/wmt/bootanimation/anim_data.h b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/anim_data.h
new file mode 100755
index 00000000..1932ee0d
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/anim_data.h
@@ -0,0 +1,911 @@
+static const unsigned char __initdata anim_data[] =
+{
+ 0x21,0x43,0x34,0x12,0x01,0x01,0x01,0x00,0xAA,0x38,0x00,0x00,0x05,0x01,0x00,0x00,
+ 0x20,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0xD8,0xFF,0x01,0x00,
+ 0x64,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x7E,0x38,0x00,0x00,0x5D,0x00,0x00,0x40,
+ 0x00,0x00,0xC4,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6F,0xFD,0xFF,0xFF,0xA3,
+ 0xB7,0xFE,0xD9,0xBF,0x11,0xE8,0x0D,0x8B,0xC0,0xF6,0x05,0x19,0xBF,0x01,0x86,0x8C,
+ 0xCB,0xE9,0x9E,0xEA,0x0E,0x25,0xB9,0x55,0xEB,0xCF,0x2E,0x7F,0x12,0xC1,0x7D,0xF3,
+ 0x20,0x9F,0xCE,0x4B,0xD3,0xA1,0xC5,0x29,0x2E,0x78,0x11,0x91,0x41,0x01,0x5D,0xC2,
+ 0x66,0xAC,0x26,0xA8,0x42,0xCD,0x15,0xCC,0x13,0xE0,0xEA,0x77,0xC5,0x42,0x67,0xF8,
+ 0xFF,0x3B,0x44,0xE6,0x50,0xF4,0xDB,0xB4,0x8A,0x44,0x71,0x36,0x27,0xCB,0xE8,0xA3,
+ 0x23,0x09,0x64,0x82,0x3C,0x54,0x6C,0x86,0x3A,0xE4,0x8C,0x3D,0x85,0x9C,0xEE,0x88,
+ 0x9A,0x23,0x2F,0xE7,0x15,0x39,0x0E,0x48,0x6B,0x5B,0xA3,0x69,0x8E,0xA9,0xF6,0x30,
+ 0xC2,0x2A,0x04,0x6C,0x1F,0x9B,0x02,0xC6,0x88,0xFC,0x40,0x8F,0x59,0xE7,0x6F,0x09,
+ 0x95,0x00,0x16,0xE1,0x6D,0xC4,0x52,0x5F,0x28,0x64,0x9E,0x6B,0xFA,0x9C,0x3C,0x35,
+ 0x33,0xC1,0x06,0xFB,0xB7,0x79,0x2B,0xAA,0xCE,0xD9,0xA1,0x3E,0x38,0xC7,0xF2,0x53,
+ 0xFB,0x23,0x82,0x76,0xDD,0x2B,0x3E,0x0C,0x8D,0xA6,0xAC,0xD6,0x27,0x4F,0x24,0xC1,
+ 0x6B,0x2D,0xF8,0xD1,0xE1,0xE2,0xC2,0x54,0x8D,0x7A,0xC7,0x4C,0x35,0x4B,0x09,0x7A,
+ 0x73,0xDE,0xB5,0xF1,0xB7,0x11,0xCE,0xAD,0x34,0x7F,0x23,0xC7,0x48,0xC5,0x41,0xB2,
+ 0x25,0xD6,0x68,0x29,0xD7,0xDA,0x92,0xAF,0x11,0x60,0x07,0xDB,0xCA,0xA1,0x59,0xD4,
+ 0xF1,0xC2,0x70,0x2A,0xC8,0xDF,0x2B,0xA4,0xD4,0x0B,0x5E,0xFA,0x30,0x27,0x1E,0xDB,
+ 0x68,0xB0,0xD6,0x25,0x11,0xEF,0xDC,0x48,0xD4,0x1C,0xF7,0xB8,0x7E,0xF0,0xBF,0x2C,
+ 0x4D,0x61,0xF0,0x94,0x20,0xA2,0x4C,0xF1,0x6F,0x52,0xEC,0x30,0xF0,0x92,0x7D,0xCB,
+ 0x4A,0x8E,0xA3,0x06,0x6F,0xBB,0x7A,0x6B,0xCB,0x5F,0xE7,0xE4,0x5D,0x3D,0x0B,0x5A,
+ 0xB5,0xC7,0x81,0x59,0x35,0x72,0x6C,0x21,0xED,0x5C,0xF4,0xBF,0xD7,0xEA,0x20,0xCC,
+ 0x3F,0x72,0x85,0x51,0xF9,0xE2,0x44,0xB6,0x73,0xD1,0xE0,0x07,0x90,0x41,0x94,0xC5,
+ 0x40,0xCD,0xBC,0x21,0xD4,0x9D,0x86,0xE5,0x1F,0xDE,0xDE,0x38,0xB3,0x30,0x23,0x15,
+ 0x6F,0x99,0x4F,0x12,0x12,0x5B,0x39,0x4F,0x98,0x34,0x2B,0x69,0x11,0xBF,0xF8,0x8E,
+ 0xDD,0x77,0x8E,0x63,0x9F,0xEE,0xD7,0x60,0xE9,0x2B,0x84,0x9B,0x4F,0xDE,0xD5,0x5D,
+ 0xF6,0x76,0x6D,0x3A,0x0C,0xD3,0x21,0xBA,0x98,0xD9,0x62,0xA4,0xA3,0x88,0xF4,0xB4,
+ 0x8C,0x2B,0x67,0xE6,0x49,0x0A,0x89,0x72,0x09,0x90,0xAD,0x14,0x31,0xA1,0x18,0x79,
+ 0xC9,0x6F,0xCF,0x41,0xDD,0x74,0x01,0x43,0x8B,0x38,0x71,0x0B,0xD4,0x23,0x8C,0x4B,
+ 0x83,0x17,0xBC,0x56,0xEB,0x1E,0x2C,0x7E,0x6F,0x86,0x9B,0x49,0xFF,0x38,0x01,0xC1,
+ 0xE7,0x2A,0x94,0xA4,0x7D,0x37,0xB8,0xBA,0xE1,0x8F,0xCA,0x0B,0x78,0xC5,0xD2,0x0A,
+ 0x36,0xA6,0xE6,0xC9,0x92,0x08,0xE5,0x4E,0xCD,0xF2,0xB7,0xB8,0xEF,0xEC,0x9F,0x37,
+ 0xDC,0x7B,0x24,0x0C,0x6B,0xB4,0xB4,0xAB,0x04,0x5A,0x2C,0x84,0x95,0xC6,0xCE,0x5D,
+ 0x02,0x2A,0x74,0x78,0xB0,0xDB,0x30,0xFA,0xDA,0x67,0x84,0xF3,0x57,0x8E,0x6D,0x67,
+ 0x7D,0xAE,0x28,0x03,0x31,0x05,0x0E,0xD4,0x5F,0x64,0x4D,0xC7,0xDE,0x89,0x8D,0xB8,
+ 0x07,0xC1,0x38,0xE9,0x01,0x53,0x3D,0xEE,0xFB,0x0A,0x0A,0x20,0x6F,0xF3,0x2B,0x83,
+ 0xD9,0xD4,0x31,0xB4,0x33,0xAD,0x5D,0x74,0xBC,0xF8,0x67,0x3A,0xCC,0x7A,0xA3,0x10,
+ 0x8F,0x45,0x31,0x34,0x58,0xC3,0x44,0xD8,0x03,0x18,0xF9,0xD2,0xFA,0xC5,0xDB,0x0B,
+ 0x0C,0xB9,0x15,0x09,0xEE,0xB0,0x07,0x80,0xF6,0x04,0xDF,0x0B,0x41,0x08,0xE0,0x3C,
+ 0x5E,0xF5,0x82,0xDC,0x20,0x40,0x22,0x96,0x1C,0x31,0xD6,0x4E,0x7C,0x13,0xD8,0x17,
+ 0xC5,0x1A,0xFB,0xB0,0x7B,0x9B,0xE8,0x45,0xA9,0x53,0x98,0x21,0xB3,0xE8,0xD2,0x3F,
+ 0xDE,0x4A,0xF2,0xF9,0x0F,0xBF,0xBE,0x62,0x56,0xB7,0x90,0xBA,0xA4,0x43,0x39,0x60,
+ 0x0A,0x4B,0xCE,0xD2,0x46,0xBC,0x90,0x04,0xE1,0xAD,0x12,0xCB,0xBE,0x17,0xC3,0x9A,
+ 0x9F,0xE4,0xAD,0x0B,0xE0,0x21,0x6B,0x42,0xD6,0x52,0xBB,0x51,0xFE,0xFB,0x50,0x09,
+ 0xA3,0x77,0xC7,0x06,0x49,0xDC,0xCC,0x5C,0xBB,0xA8,0x5A,0x87,0x11,0xFA,0x67,0x17,
+ 0x1A,0x41,0x12,0x71,0x88,0xE1,0x99,0xEC,0xEB,0xE5,0xBC,0x4E,0x8F,0x8F,0x51,0x8E,
+ 0xFC,0x0C,0xC4,0x5A,0xCB,0x09,0x9A,0xDA,0x24,0xCB,0x13,0xAC,0x82,0x77,0xC6,0x8F,
+ 0x4C,0x08,0xF4,0xEE,0x80,0x01,0xEF,0xEC,0xE1,0x47,0x22,0xEC,0xEE,0xF9,0x7D,0x56,
+ 0xAF,0x8E,0xF2,0xF2,0x85,0xA3,0x9C,0xB5,0x1E,0xD7,0xFF,0xB1,0xEA,0x12,0xB5,0xE2,
+ 0xDF,0x01,0x13,0x3A,0x8F,0xAA,0x67,0x7A,0x06,0xE0,0x7F,0xC2,0xF1,0xF5,0x35,0x3F,
+ 0x5E,0x68,0x72,0x1C,0x6B,0x49,0x8D,0xD6,0xC0,0xCA,0xCC,0xFF,0xC8,0xD9,0xE2,0x75,
+ 0x1C,0x50,0x1A,0xEC,0xB0,0xDB,0x7B,0x88,0xD1,0x81,0xE2,0xEA,0xA8,0x1C,0xB2,0x64,
+ 0xFC,0x3C,0x66,0x40,0xDC,0xB0,0x39,0x57,0x2E,0x80,0x65,0x34,0x0F,0xA0,0xBE,0xFF,
+ 0x6D,0x5D,0x1A,0xEE,0xF3,0x18,0x77,0x06,0x00,0x49,0x9D,0xDC,0x27,0xD8,0xB9,0x2E,
+ 0xA5,0xC8,0x52,0x9B,0xBE,0xA1,0x32,0x83,0xA2,0x35,0x1A,0x42,0xA4,0xA8,0x95,0x98,
+ 0x31,0xE7,0x14,0xFC,0xBA,0xD5,0x70,0x0C,0x33,0x33,0x21,0x30,0xB9,0xD2,0xDA,0x4C,
+ 0x21,0x05,0xA4,0x0F,0xD2,0x73,0x7D,0xC0,0xD3,0xD3,0xED,0x67,0x11,0x0B,0xD3,0xCF,
+ 0x9E,0xBE,0xDF,0x91,0x2C,0x3F,0x3D,0x50,0xBF,0x02,0xE2,0xC6,0xC5,0xE0,0xA3,0xB4,
+ 0x60,0x6A,0x6C,0xC0,0x57,0x7E,0x4B,0x84,0x0B,0x6B,0x4E,0xDE,0x70,0x04,0xED,0xE0,
+ 0x2B,0xEB,0x95,0xDB,0xDF,0xA6,0x65,0x0C,0xF0,0x90,0x39,0x06,0xE0,0x6D,0xB8,0xDB,
+ 0x21,0x42,0xA9,0x0F,0x35,0x8C,0x32,0xD3,0xCC,0x1E,0x49,0x3D,0xC9,0xBB,0x04,0x08,
+ 0x14,0x94,0x9F,0x2A,0x10,0xF9,0x60,0xAE,0x91,0xEF,0x88,0xDA,0x4B,0xA1,0x57,0xDA,
+ 0xD8,0xD4,0x81,0x67,0x8B,0x4D,0x19,0xCD,0x04,0x0D,0xFE,0x18,0xDD,0x40,0x09,0xCE,
+ 0x31,0x77,0xEB,0xDC,0xD0,0xB8,0xB1,0x8B,0x31,0x36,0x1A,0xF0,0xD7,0xF3,0xC3,0xD2,
+ 0x7B,0x37,0xDC,0x34,0xBA,0x31,0xAF,0xC6,0x87,0x4E,0x0B,0x2D,0x30,0x33,0xA9,0xEA,
+ 0xC2,0x68,0x8C,0xCF,0x41,0xD5,0x93,0x22,0x2A,0x94,0x46,0x6D,0xF7,0x2A,0x89,0x83,
+ 0x2A,0xD0,0x13,0xE8,0xAD,0xE9,0x82,0x61,0xA4,0xD8,0x94,0xFC,0xFF,0x9D,0x9B,0xD9,
+ 0x68,0x36,0x8E,0x05,0xA5,0x61,0x9B,0x7C,0x6F,0x01,0x7E,0x90,0xC9,0x57,0x2B,0x6C,
+ 0x9C,0xC0,0xD3,0xEC,0xB7,0x89,0x43,0x97,0xF5,0xA0,0x64,0x89,0xB1,0x1D,0xF9,0x5A,
+ 0x69,0x92,0x16,0x3E,0x5E,0x52,0x53,0x78,0x61,0x03,0xFB,0xA3,0x3F,0x97,0x46,0xFE,
+ 0x98,0xE2,0xB6,0x7B,0x2A,0x48,0x73,0x91,0x11,0xC5,0xF0,0xAF,0xF8,0xE3,0x2E,0xF6,
+ 0xD8,0x81,0xE7,0xA0,0x44,0x15,0x56,0x19,0x43,0xF0,0xAC,0x40,0x51,0xBD,0x9F,0xFD,
+ 0x14,0x58,0x63,0x68,0x3A,0x91,0x94,0xF0,0x0F,0x94,0xE8,0xA0,0x8E,0xFB,0xC4,0x46,
+ 0xF4,0x0F,0xD3,0x92,0xD9,0xCC,0x19,0x6C,0xE9,0x52,0x4A,0x56,0xD5,0x82,0xA7,0x00,
+ 0x0B,0xB2,0xC9,0x99,0xD8,0xA4,0xA7,0x5B,0xC6,0x99,0xC4,0x87,0xCE,0xE5,0x45,0xE6,
+ 0xC4,0xBA,0xE1,0x26,0x84,0x03,0x0C,0x34,0x97,0xD9,0xC2,0xE3,0x1C,0xE6,0xF4,0x78,
+ 0x9F,0x1A,0x29,0xEB,0x5B,0x88,0x85,0x4A,0xE9,0x06,0xEE,0x5A,0x61,0xCF,0x47,0xE5,
+ 0xA5,0x68,0x99,0xFD,0x58,0x13,0x49,0x96,0xA4,0xA1,0xEC,0xF1,0xB7,0x0C,0x96,0x92,
+ 0x5D,0xC9,0x46,0x38,0xA3,0x97,0x71,0x92,0x5F,0x5E,0x2D,0xB6,0x8C,0x96,0x0B,0xE6,
+ 0xF8,0x8D,0x46,0x61,0x78,0xAD,0xD4,0x62,0x2F,0xD2,0x3B,0x0F,0x46,0x65,0x1F,0x3B,
+ 0x0F,0x2B,0xD3,0x98,0x4D,0x90,0x34,0xD5,0x5E,0x11,0x88,0x93,0x46,0xE8,0x57,0x1A,
+ 0x47,0xA7,0xDB,0xA9,0xC5,0x5B,0x49,0xAB,0x1A,0x52,0xF4,0xDB,0xE0,0x4E,0x0C,0xA2,
+ 0x28,0x1C,0xCB,0x04,0xF1,0xCF,0x2B,0x41,0xBF,0x46,0xC5,0x92,0x4E,0x49,0x82,0x5B,
+ 0xD4,0x36,0x3F,0xFC,0x7D,0xCD,0x8A,0xCB,0xEC,0x75,0xE7,0x2E,0xA9,0x1A,0x5A,0xFD,
+ 0x4C,0x15,0x0E,0x82,0x2A,0x8C,0x15,0x14,0x5D,0x70,0x70,0xE6,0x05,0xAE,0x5C,0x67,
+ 0xF7,0xF0,0x09,0x23,0x0A,0x27,0xA0,0x1D,0x7F,0x7D,0x01,0x50,0x7E,0xEB,0x35,0x79,
+ 0x39,0xA9,0x83,0xCB,0x89,0xDC,0x76,0xB1,0x77,0x96,0x1E,0xF8,0x71,0xD5,0x58,0xD9,
+ 0x93,0x6E,0x99,0x6A,0xBB,0x89,0x39,0xDF,0x48,0x18,0xDB,0xE7,0xD3,0x78,0x55,0x94,
+ 0x35,0xAA,0x84,0x1C,0xBD,0xD5,0xF4,0xED,0x94,0x9C,0x23,0x6B,0x48,0xE6,0xB7,0x66,
+ 0xFE,0x14,0x38,0xCE,0xB1,0x05,0x3D,0xBF,0xC9,0x3F,0x97,0x60,0x3C,0xB0,0xD7,0xD7,
+ 0x2B,0xAA,0x1C,0x6C,0x03,0x99,0xD9,0x41,0x42,0x4A,0x5F,0xFF,0x6B,0x2C,0x22,0x31,
+ 0xAE,0x65,0xB8,0xB2,0x70,0x19,0x8A,0xA6,0x2C,0xDC,0xA3,0xF5,0x84,0x8C,0x3B,0x4D,
+ 0xF6,0xA3,0x65,0x60,0x8E,0x30,0x79,0x51,0x77,0xC0,0x1E,0xCC,0x5D,0xC4,0x31,0x07,
+ 0xEE,0x28,0xC3,0x1D,0x9C,0xC8,0xD4,0x70,0x51,0xA9,0xE6,0x64,0x78,0x7D,0x6A,0x3A,
+ 0xE3,0xDE,0xD3,0x08,0x3A,0x01,0x9A,0x01,0x4D,0x81,0x49,0x5B,0xF4,0xEE,0xCE,0x6A,
+ 0x4C,0x31,0xB9,0x42,0xCC,0x29,0x71,0x08,0x1F,0x15,0xF5,0xCC,0x34,0x24,0xD5,0x93,
+ 0x18,0x8F,0x04,0x0F,0x7D,0xEB,0xC7,0x09,0x90,0x1A,0xE9,0xC6,0x01,0xDB,0x1A,0x84,
+ 0x33,0x5D,0x4D,0x04,0x02,0xB9,0xC4,0x8D,0xCA,0xCF,0xC6,0xCE,0x7C,0x61,0x0D,0xFF,
+ 0x18,0x87,0xEE,0x58,0x81,0xCE,0x13,0x43,0x18,0xA6,0xF2,0x80,0xAB,0x14,0xAF,0x49,
+ 0x60,0x34,0x4A,0xE4,0x6B,0x31,0xCD,0x6E,0x17,0x0D,0x6D,0x52,0xC6,0x47,0x66,0x1B,
+ 0x44,0x59,0xD7,0x49,0x2E,0x94,0x65,0x88,0x09,0x38,0x52,0xC5,0x94,0x98,0x84,0x1F,
+ 0xDD,0xFF,0xE9,0x47,0x2C,0xB7,0xE7,0x94,0x6A,0x9D,0x56,0x9F,0xAE,0xBC,0x2E,0x3E,
+ 0x97,0x15,0xA1,0x29,0xA2,0xB4,0xD5,0x8A,0x60,0xFA,0xB0,0x08,0xBD,0xF7,0xD4,0xDC,
+ 0x92,0x40,0x5B,0x85,0x75,0x50,0x0F,0x42,0x45,0x3D,0xEF,0xE9,0x9B,0xF9,0x09,0x5C,
+ 0x63,0xD3,0xF5,0x93,0xFE,0xC5,0xA0,0x1E,0x39,0xCC,0x98,0x40,0xC1,0xEE,0x21,0x7E,
+ 0x20,0xFD,0xBD,0xF7,0xEE,0xC6,0x9D,0x3B,0xD1,0xD7,0x73,0xCB,0x07,0x97,0xF9,0x0E,
+ 0xBB,0xBA,0x79,0xD0,0x23,0xE7,0x36,0x0F,0xE0,0x9A,0x15,0x79,0x6A,0x6A,0x37,0xFB,
+ 0xC9,0x20,0x7D,0xFD,0x39,0x6F,0x79,0x2F,0xD0,0x24,0x94,0x41,0xE3,0xA3,0x68,0x0A,
+ 0xDD,0x15,0x22,0x9C,0xC9,0x87,0xD6,0x4F,0x08,0x4C,0xDA,0x3F,0x9B,0xBC,0x40,0x9A,
+ 0x08,0xAE,0xBB,0x07,0x41,0xEC,0x75,0x2B,0x90,0xA9,0x0D,0x9A,0xBF,0x98,0xCC,0xB3,
+ 0x15,0x4B,0x3A,0x6A,0x00,0x59,0xB4,0x85,0x17,0xB8,0xAE,0xA5,0xDB,0x79,0xB7,0x6D,
+ 0x92,0x30,0x7B,0xF4,0x37,0xA3,0x4E,0xDE,0x7D,0xF7,0xFC,0x7B,0x72,0x30,0xD0,0x11,
+ 0x1F,0x05,0xD8,0xF4,0xD8,0xAE,0x6E,0x52,0x5A,0xFF,0xF4,0xE3,0xCF,0x92,0xA0,0x90,
+ 0x76,0xCC,0xFB,0xFF,0x60,0xEF,0xAE,0xF6,0x86,0x50,0x36,0x5C,0x56,0x86,0x00,0x37,
+ 0x2F,0xB1,0xAD,0xA7,0x0C,0xFA,0xE1,0x74,0x93,0x5C,0x63,0xB2,0x52,0xE3,0xBA,0x1D,
+ 0x2C,0x83,0x5C,0x00,0x5A,0x7C,0xB2,0x12,0x4C,0x7D,0x81,0x45,0x30,0xD0,0x53,0xE1,
+ 0xD7,0x9F,0x02,0xC3,0x2A,0xB9,0x9A,0x9E,0x61,0xBD,0x6C,0x3B,0x0A,0xA7,0xB3,0xF9,
+ 0xFB,0x51,0xB7,0x33,0x26,0x77,0x4F,0x78,0x3E,0xA0,0xF9,0xA2,0x15,0xEA,0x3E,0xFF,
+ 0x48,0x5A,0x4B,0x05,0x3A,0xFF,0x28,0x24,0x18,0x7F,0xF9,0xF9,0x69,0x5C,0x01,0xC7,
+ 0x5F,0xB7,0x78,0xD2,0x3D,0x7F,0xF0,0x07,0xD0,0xCC,0x4C,0x42,0x9C,0x87,0xC9,0x12,
+ 0xDB,0x45,0x8B,0xC1,0x26,0x00,0xE4,0x47,0x01,0x81,0x5B,0x3F,0x38,0x2B,0x70,0x18,
+ 0x15,0x86,0xC5,0x9C,0x22,0x0B,0xE6,0x93,0x99,0x7B,0x32,0xB9,0x1A,0xA6,0x4B,0x6F,
+ 0xAA,0xEC,0x06,0xFA,0x8B,0xCD,0xEE,0x80,0xB2,0xE7,0xE0,0x5F,0x5F,0x09,0x33,0xBD,
+ 0x18,0x5B,0x90,0xEA,0xD1,0x4A,0x27,0xC3,0xD0,0x64,0x8A,0x03,0x8E,0x53,0x13,0xDD,
+ 0x96,0x61,0x4E,0xC0,0xCE,0x3A,0xA2,0x54,0xBB,0x56,0x6C,0x91,0xF9,0xF8,0xD5,0x35,
+ 0x86,0xE1,0xA0,0x8C,0xBA,0xDB,0x79,0xF4,0x22,0xC5,0x4A,0x1E,0x99,0x74,0x49,0x94,
+ 0xDE,0x64,0x1F,0x0F,0x6E,0x4A,0x5F,0x07,0xB9,0xBE,0xE0,0xCE,0x07,0xF9,0xA1,0x7A,
+ 0xA3,0x91,0x4B,0x0E,0x64,0xED,0x06,0xAE,0x98,0xC8,0xBA,0xB5,0x00,0x38,0xA7,0xE3,
+ 0x68,0xAD,0x2F,0x5A,0xAF,0xD8,0xDE,0x21,0xF1,0x0D,0x6A,0x00,0xEF,0x7F,0x9B,0x94,
+ 0x6A,0xE5,0xEC,0x2B,0xA3,0x4F,0x2D,0x7F,0xD4,0x26,0x87,0x98,0x66,0x76,0x2B,0x2C,
+ 0xFC,0x11,0x62,0x0D,0xEB,0x1C,0xE9,0xA7,0x97,0xAC,0x4D,0x24,0xB7,0x5A,0x87,0x1D,
+ 0x30,0xF8,0x38,0xE3,0x59,0x5A,0x61,0xA0,0x67,0x6A,0x15,0x56,0x25,0xA6,0xFC,0x0E,
+ 0x51,0x55,0xDB,0x5C,0xE0,0xFC,0x59,0x78,0x76,0x27,0x07,0x68,0xEF,0xF4,0xDA,0xBA,
+ 0x52,0x7E,0x5F,0xA9,0x2E,0x21,0x9C,0xBD,0x6B,0xBB,0x64,0x27,0x66,0x0B,0x63,0xC2,
+ 0x3C,0x77,0xA9,0x9B,0x2C,0x48,0x93,0xF5,0xC9,0x48,0x2C,0x70,0x05,0xA0,0x75,0x81,
+ 0x0E,0xBD,0x21,0x54,0x68,0xC4,0x93,0x78,0x77,0x1D,0xCD,0x90,0x92,0x99,0x53,0x94,
+ 0x82,0xFE,0x09,0x0C,0x77,0x2D,0x3F,0x30,0xFF,0xF1,0xC0,0x0D,0xEC,0xC4,0xBA,0xFD,
+ 0x94,0x50,0xB7,0x15,0x51,0x09,0xB5,0xD0,0x7C,0x1E,0xF8,0x1B,0xD1,0x89,0x45,0xD6,
+ 0x59,0x56,0xDA,0x69,0x39,0x1A,0x75,0x6C,0x79,0xDE,0xD0,0x42,0x45,0xC0,0xCC,0xDC,
+ 0x20,0x7E,0x69,0x6A,0xAC,0xCA,0x46,0x7C,0xB9,0xB6,0x4A,0xC8,0xD8,0x22,0x99,0x63,
+ 0xF1,0x76,0x06,0x39,0x8F,0xCA,0xC6,0xA5,0x9E,0x59,0x43,0xDE,0xDF,0xCA,0xE8,0x07,
+ 0xAC,0x83,0xC5,0xD1,0xB7,0xF4,0xF2,0x1E,0xAD,0xFB,0x6C,0x30,0x4C,0x26,0xE5,0xEB,
+ 0x6E,0x02,0x0A,0xE0,0xC9,0x22,0x93,0xED,0x64,0x98,0x09,0x2A,0x1E,0x01,0x95,0x2B,
+ 0x00,0xE3,0xDC,0x62,0x25,0x75,0xC7,0x6C,0xB7,0xC7,0x60,0xE1,0x63,0x2A,0x8D,0xB1,
+ 0xBE,0x6C,0xE7,0x80,0xC0,0x03,0x4F,0x45,0x8A,0xE3,0x13,0x4C,0xB9,0x10,0xD1,0x98,
+ 0x4B,0xCE,0x94,0x6D,0x03,0x50,0x53,0x16,0xEC,0xEA,0x35,0x6F,0x90,0xE0,0x00,0x83,
+ 0x55,0xC3,0xAF,0x72,0xFD,0x78,0xC3,0xA5,0xE2,0x77,0xB4,0x00,0xED,0x21,0x1D,0x8B,
+ 0xB3,0xD2,0x0E,0x95,0x88,0x54,0x05,0xD9,0x4E,0x9D,0x4D,0x9B,0xFB,0x77,0x9C,0x6B,
+ 0xCF,0x0A,0x0F,0x86,0x9C,0xFE,0x5B,0x4A,0xD3,0x94,0xF9,0x24,0xE1,0x26,0x4E,0x4E,
+ 0xC7,0x0A,0x59,0x2E,0xF8,0x03,0x2E,0xA2,0x4E,0x7C,0x43,0x54,0x8B,0xAA,0x4A,0x55,
+ 0xF2,0x35,0xFD,0xAC,0xC0,0xCB,0x4A,0x8C,0x52,0x80,0xB8,0x70,0x4F,0x70,0x0D,0xE2,
+ 0x48,0x42,0x50,0xA5,0x9A,0x86,0x5D,0x3F,0xD9,0x33,0xE5,0xCE,0x85,0x35,0x72,0xD3,
+ 0xF5,0x40,0x3D,0x2C,0x42,0x3E,0x02,0x0B,0x98,0x81,0x59,0x03,0x4E,0x48,0xA0,0xC7,
+ 0xA2,0xC0,0xA5,0x3B,0x3C,0xB5,0x88,0x36,0xDC,0xDA,0x48,0x51,0x1A,0x5E,0xF7,0xB6,
+ 0xD9,0x7E,0xA2,0xEB,0x94,0xD9,0xA6,0x32,0xC6,0x55,0x74,0x63,0xE2,0xCB,0xB0,0x90,
+ 0xEF,0xBA,0xA4,0x1C,0x85,0xB6,0x9C,0x2B,0x79,0x20,0xCD,0x71,0xD9,0x01,0x05,0x42,
+ 0x4F,0x6F,0x4E,0x7C,0x09,0x62,0x0C,0x69,0xC7,0x4B,0xC2,0x9D,0xE2,0x36,0x59,0xBE,
+ 0xC1,0xE0,0xA8,0x10,0xAD,0x49,0x9D,0xEB,0x1A,0xB0,0x58,0x74,0x66,0xCF,0x32,0x5F,
+ 0xD0,0x0A,0x24,0x27,0x73,0x1C,0x36,0x61,0x3A,0xEE,0x7C,0xD7,0x68,0xAB,0xBF,0xEF,
+ 0x6A,0x65,0xA6,0xCC,0x1C,0x83,0x50,0x11,0x69,0x6E,0x8A,0x2C,0xBC,0xE8,0xDC,0x5A,
+ 0x62,0x41,0x2B,0x93,0xA0,0x97,0x2E,0xFA,0xE2,0x1B,0x39,0x37,0x61,0x38,0xD9,0x3D,
+ 0x37,0x8D,0x30,0x3A,0xF6,0x19,0x3D,0x0A,0xCC,0xED,0xD6,0x92,0xA2,0x4A,0xF4,0xD7,
+ 0x94,0xEC,0x5F,0xC8,0x65,0x78,0x9F,0xC3,0x1F,0x84,0x7D,0xB1,0xDC,0x9B,0x32,0x79,
+ 0x66,0xF2,0x55,0x42,0xA7,0x73,0xFA,0x7A,0xBF,0xFA,0x8B,0x24,0xBE,0x15,0x7F,0xA5,
+ 0x1D,0x05,0x0C,0xA8,0x35,0xB2,0x37,0xAC,0x58,0x28,0x24,0x97,0xD2,0x49,0x32,0x3D,
+ 0x6E,0xA4,0xCB,0x0B,0x79,0xF7,0x1B,0x10,0x7D,0xA4,0xAD,0x3E,0xDB,0x99,0xE1,0x37,
+ 0x0C,0x71,0x90,0x95,0x4A,0x4A,0xE2,0xA6,0x31,0x68,0x94,0xC5,0x13,0xA7,0xF4,0xAE,
+ 0x4D,0xF9,0xEC,0x3C,0x80,0x30,0x0A,0x29,0x9E,0x79,0x0A,0x9C,0x42,0xFE,0x1E,0x2F,
+ 0x02,0x6D,0xBA,0xF0,0xA3,0x9B,0x89,0xE8,0x56,0xA2,0xB9,0xBE,0xFC,0xC6,0xFE,0x16,
+ 0xDF,0x82,0xCD,0x36,0x18,0xA1,0x23,0x44,0x31,0x64,0xBB,0x8C,0x6D,0x3D,0xCD,0xBF,
+ 0xC9,0xB3,0xA4,0x15,0xF4,0xA9,0x83,0xD1,0x8B,0x30,0xFB,0xBD,0x32,0xA0,0xC2,0x8E,
+ 0xD0,0x0A,0xFC,0xB2,0x99,0x61,0x4C,0x55,0xEF,0x40,0x95,0xD3,0x8F,0x4B,0x0A,0xC3,
+ 0x25,0x21,0xAA,0x4F,0xFD,0xF5,0x57,0x22,0x6E,0x5C,0xD2,0x01,0xA6,0x4D,0xDD,0x92,
+ 0x7A,0x9D,0xC7,0x38,0x14,0xDF,0x05,0xCF,0xBD,0x95,0x3F,0xC9,0x17,0x44,0x6B,0x6F,
+ 0x30,0x02,0xB2,0xCE,0xA2,0x21,0xB8,0x4C,0x07,0x18,0x3A,0x45,0xE9,0xC8,0xFE,0x0F,
+ 0xDB,0x29,0x25,0x1F,0x58,0x56,0x08,0x4F,0x1A,0xF6,0x74,0xEF,0x92,0xD1,0x29,0x24,
+ 0xC7,0xCD,0x5C,0x22,0x19,0xD3,0x50,0x77,0xC0,0xE8,0x2A,0x5E,0x94,0x3F,0xC8,0x61,
+ 0x4E,0x89,0x33,0xB0,0xA3,0xFA,0xB9,0x60,0xCB,0x83,0x81,0x5C,0x52,0x4E,0xC0,0xE5,
+ 0x92,0x80,0x9F,0x37,0x93,0xD4,0xDA,0x9B,0x5C,0x3A,0x69,0x5D,0x19,0x81,0x9F,0x9F,
+ 0xB7,0xD1,0x8D,0xCF,0xA2,0x9A,0xF7,0xCD,0xAB,0x66,0x6E,0x68,0x93,0x38,0x0A,0x1E,
+ 0x0B,0x3D,0xCC,0x0C,0xA9,0xDF,0xDE,0x38,0xF2,0x87,0x3E,0xCE,0x50,0x4A,0x36,0x02,
+ 0xD2,0x85,0xD8,0x2A,0x7E,0x1F,0x72,0xAD,0x5F,0x9E,0x28,0xC0,0xE0,0x74,0xC3,0x53,
+ 0x7A,0x94,0x49,0xD8,0x6C,0x38,0x06,0xCC,0x15,0x44,0xED,0x76,0x87,0x9D,0x1D,0x82,
+ 0x33,0x55,0xD3,0x3A,0x6F,0x25,0x28,0x2E,0x2D,0xE6,0xAE,0x1F,0xA5,0x4C,0x53,0x19,
+ 0xE4,0xFD,0x6B,0x62,0x88,0xAA,0xD0,0xC3,0x68,0x58,0x75,0x78,0xB9,0x9F,0x07,0x61,
+ 0xFE,0x90,0xE4,0x5F,0x5C,0x1E,0xE4,0x35,0xA6,0xED,0x4E,0xFD,0x1C,0x28,0xEE,0x2E,
+ 0x34,0x35,0xFE,0x0B,0x64,0xB4,0xB8,0x93,0xBF,0x44,0x92,0x67,0x0E,0x8E,0x85,0x67,
+ 0xD7,0x5F,0xF0,0x1A,0x65,0x7C,0x6E,0xB0,0x01,0xA8,0xCA,0x86,0x10,0x62,0xDB,0x02,
+ 0x2F,0x93,0x37,0x07,0xE1,0xBA,0xA9,0x09,0x80,0x6A,0x01,0xE5,0x76,0x8B,0x52,0x8F,
+ 0x00,0xC7,0x60,0xEF,0x04,0x4E,0xE6,0x40,0x9D,0xA8,0xDA,0x5B,0xD8,0xD7,0x98,0x39,
+ 0xE8,0xB9,0x26,0xCE,0xBE,0xCA,0x30,0xB9,0x11,0x8B,0xEF,0x82,0x37,0x70,0xDC,0xDF,
+ 0xC9,0x40,0x10,0xA1,0x28,0x69,0x82,0x64,0x39,0xAF,0x2D,0xD3,0x03,0x91,0x5A,0x86,
+ 0x55,0xFC,0xF0,0x55,0x2E,0xEC,0xD8,0x74,0x67,0xF7,0x9C,0x4C,0xB6,0x57,0xAF,0xEC,
+ 0x6A,0xE4,0x4B,0x73,0x89,0x3C,0xFE,0x63,0x99,0x3A,0xFF,0xC8,0x21,0x58,0x96,0x24,
+ 0xCA,0x11,0xCB,0x71,0x50,0xC9,0x7A,0xBB,0xBB,0x0F,0xFA,0x24,0x3C,0x34,0xBB,0x4E,
+ 0xAB,0x37,0x92,0xB9,0x63,0x88,0x5C,0x06,0xB0,0xF0,0x7B,0xD7,0x0C,0xFD,0xB6,0x0B,
+ 0x5F,0x78,0xE7,0x9D,0x06,0x7D,0x46,0x59,0x44,0xDD,0x31,0x91,0xC7,0x12,0x80,0xA4,
+ 0x33,0x23,0xFC,0xAE,0x62,0xE2,0xE8,0x85,0x3E,0x9C,0x4A,0xC9,0x61,0x9D,0x0D,0x65,
+ 0x61,0x72,0x45,0xF1,0xCF,0xA2,0x7F,0x9D,0xC3,0x04,0xB2,0xA5,0x68,0x3E,0xE1,0x56,
+ 0xE9,0x49,0x00,0xBF,0x19,0xCB,0x75,0xFB,0xCB,0x05,0x73,0x50,0x7E,0xB2,0x24,0x95,
+ 0x0E,0x9D,0x3D,0xA6,0xF3,0x09,0x5C,0x43,0xE8,0x6C,0xFD,0x68,0x8C,0x2F,0x64,0xCD,
+ 0xD3,0x4B,0x7E,0x66,0x70,0xB7,0xB2,0x76,0xF3,0xE2,0x63,0x92,0x0F,0x45,0xFE,0x9C,
+ 0xFB,0xD4,0x30,0xC7,0x93,0x77,0xEF,0x98,0xBE,0x66,0x56,0x51,0xB6,0xA3,0x7E,0xC7,
+ 0xBB,0x4D,0x7A,0xFD,0xCB,0x13,0x01,0x05,0x8C,0x96,0x06,0xF6,0x37,0x1E,0x78,0x70,
+ 0x13,0xCC,0x00,0xC3,0x7F,0xB8,0xA5,0xF3,0xB5,0xB3,0x4E,0xD9,0xAB,0x2E,0x1E,0xFE,
+ 0xA9,0x2D,0x4B,0xA5,0x9F,0xEB,0xD5,0x07,0x13,0x3D,0xAB,0xA4,0x1B,0xC2,0xD3,0xB3,
+ 0x57,0x41,0x96,0xBC,0x5D,0x4F,0xC3,0x5F,0x07,0x06,0x25,0x65,0x19,0xF6,0xD4,0x0D,
+ 0x40,0x66,0xA8,0x01,0x62,0x83,0xC7,0xCD,0xA8,0xCE,0xFE,0x03,0x6C,0x58,0x81,0x38,
+ 0x80,0xA9,0x0E,0x75,0x5A,0x23,0x41,0x8C,0x20,0x62,0xCA,0x69,0x1A,0x33,0x62,0x0E,
+ 0x0B,0x80,0x6E,0xD5,0x85,0x21,0xEB,0xBE,0xC0,0x3E,0x6A,0xC7,0x92,0x51,0xE6,0xDE,
+ 0x74,0x63,0xB7,0x01,0x22,0x59,0xB5,0x39,0x8B,0xF4,0xF1,0x0E,0x93,0xBB,0x7F,0xA8,
+ 0xAE,0xF2,0xD7,0x9B,0x5A,0xA4,0xFC,0x2D,0xE5,0x5F,0x0D,0x46,0x3F,0x1D,0x2B,0x5A,
+ 0xBC,0x3A,0x7D,0x00,0xAC,0x2B,0x38,0x75,0xF6,0x05,0x70,0xFE,0xD7,0xC6,0x2E,0x19,
+ 0xF9,0xDF,0xFA,0x77,0xB3,0x24,0xB8,0xB5,0xFF,0xD3,0x2C,0x06,0xD4,0xEA,0x25,0xDB,
+ 0x85,0xC9,0xC3,0x59,0x2C,0x90,0x42,0xB9,0x1F,0xB1,0xAB,0x64,0x55,0x25,0xAD,0xD3,
+ 0x82,0x5F,0x1B,0x53,0x2B,0xF1,0x51,0x7C,0xFE,0x64,0x02,0x0C,0x72,0x5F,0xD0,0x51,
+ 0x36,0x58,0xA3,0xED,0x44,0x59,0x3F,0xDD,0x75,0xEE,0x21,0xF0,0x97,0x3D,0x05,0x38,
+ 0x7D,0x29,0xF9,0x88,0x3A,0x42,0x76,0x0C,0x67,0x6F,0x61,0xAB,0x99,0xA2,0x87,0x58,
+ 0x74,0x2A,0x1F,0x42,0x25,0x02,0xED,0xD5,0x46,0x99,0x13,0xAE,0x91,0x86,0xAF,0x71,
+ 0x95,0xE6,0x93,0x12,0x51,0xF2,0xAA,0x44,0x79,0xE9,0x5B,0x58,0xEE,0xE0,0x9F,0x25,
+ 0x25,0xCC,0x39,0xA1,0xCF,0x11,0x98,0xBB,0x2E,0x82,0xBD,0xDE,0x05,0x53,0x50,0x1A,
+ 0xFC,0x1B,0x9C,0xE5,0x58,0xF4,0x8D,0xF7,0x6A,0xA3,0xDD,0x68,0xF2,0x42,0x3A,0xE2,
+ 0xF3,0xAB,0x7D,0x12,0x5F,0x0C,0x92,0x30,0xE8,0xB5,0xD7,0x22,0xEB,0x70,0x37,0x8B,
+ 0x5B,0xE4,0x6D,0x90,0x28,0x14,0x79,0xE4,0x32,0xDD,0x2F,0xE4,0x87,0x8F,0xE8,0xAD,
+ 0x3F,0x32,0x42,0x88,0x23,0xA5,0xB6,0x1A,0xD6,0xD4,0x7C,0x47,0xB4,0x19,0x91,0x5D,
+ 0x40,0xE6,0xAA,0x32,0x65,0x85,0xD6,0x95,0x77,0x57,0x65,0x82,0xCF,0x40,0xFF,0x02,
+ 0x50,0x30,0x81,0x5B,0xD1,0xDE,0x41,0x5D,0xB9,0x7B,0xC7,0xE1,0xFD,0xE0,0x41,0xFF,
+ 0x9B,0x66,0x42,0x4A,0x1B,0xAE,0xF6,0xA1,0x2A,0x4F,0x55,0x94,0x73,0x3C,0x05,0x24,
+ 0x4E,0xDE,0xBF,0xCC,0xCE,0x02,0xD1,0x16,0xFD,0x81,0x16,0x57,0xF4,0x94,0x2C,0x6C,
+ 0x85,0xAC,0x85,0x27,0xB1,0x1E,0x00,0x07,0x63,0xE0,0x0B,0x01,0xFC,0xCF,0x2D,0x40,
+ 0x44,0xB2,0x74,0x5B,0xAA,0xED,0x7A,0xB8,0x91,0x3B,0xBE,0x92,0x10,0x02,0xC9,0xDF,
+ 0xDB,0x1A,0x87,0x84,0x14,0x61,0x89,0x34,0xD1,0xB4,0x67,0xC2,0x3A,0xBC,0x36,0xE3,
+ 0x76,0x3B,0xD3,0x0F,0xDB,0x49,0x1C,0x3D,0x87,0xB2,0x8A,0xF9,0x4D,0x19,0x29,0x07,
+ 0x36,0x1C,0x1D,0x8C,0xD8,0x61,0xD3,0xE3,0x7D,0xA7,0xC6,0xC1,0x64,0x07,0xA2,0xDE,
+ 0x87,0x0C,0x77,0x82,0xD0,0x96,0x28,0x17,0x82,0x3D,0x88,0xBB,0x4D,0x47,0x08,0xEF,
+ 0x29,0x42,0xA7,0x54,0x9F,0x12,0xB8,0xDD,0x89,0x61,0x94,0xB1,0xF4,0xCE,0x5D,0x42,
+ 0x1F,0x23,0xC0,0x88,0xDB,0xDA,0xCC,0xA3,0x17,0x20,0x1B,0x8B,0x17,0xE7,0xE5,0x7F,
+ 0xC4,0x4D,0xBA,0xC8,0xE4,0x89,0x99,0x00,0x06,0x7E,0x45,0xF3,0x96,0x09,0xB8,0x3E,
+ 0xE4,0x74,0x58,0x91,0x7E,0xC7,0x92,0x18,0x28,0xC5,0xF2,0xA8,0x87,0x6E,0x11,0xFB,
+ 0x20,0x57,0xD7,0x33,0xBF,0x4B,0x47,0xE9,0xCD,0xF3,0xF2,0xE4,0x95,0xBE,0x5A,0x0B,
+ 0x70,0x70,0x51,0x71,0x4E,0x85,0x1E,0x46,0xE5,0xE4,0xE8,0xF2,0x60,0xC0,0x72,0xDA,
+ 0x1C,0x74,0xFE,0xC1,0xD8,0x37,0xB4,0x54,0xBE,0xA9,0x59,0x79,0xFD,0xFD,0x31,0xC6,
+ 0xB3,0x57,0x9D,0xAB,0xAE,0x0E,0x42,0x91,0x2C,0x44,0x41,0x61,0x07,0x0D,0x7B,0x4F,
+ 0x8A,0xD3,0x35,0x1F,0x7E,0x53,0x96,0xE5,0x2A,0x0E,0x02,0xEF,0x87,0xEB,0x83,0xD6,
+ 0xA7,0xA2,0xF8,0x16,0x26,0x96,0x60,0xA1,0x3F,0x60,0xD1,0x6C,0x4A,0x69,0x99,0xD8,
+ 0x91,0x40,0xCB,0x76,0x5C,0x59,0x62,0x4A,0xF1,0xF0,0x87,0xF5,0x0D,0x15,0x54,0xBD,
+ 0x54,0x1D,0xB5,0x7A,0x22,0xE2,0x5F,0x7A,0x35,0x7E,0x6C,0x77,0x56,0x93,0xEE,0x24,
+ 0x74,0xFF,0xDB,0x63,0x16,0x80,0x62,0x48,0xD5,0x51,0x45,0xAB,0xDA,0xFF,0x6F,0xAF,
+ 0x93,0xDA,0x47,0xD4,0xCA,0x17,0x47,0x28,0x29,0x40,0x83,0x05,0xD0,0x52,0xB5,0xF7,
+ 0x74,0x6F,0x0D,0xAB,0x36,0xD3,0x89,0x1F,0x52,0x97,0xFE,0x02,0x8E,0x2D,0x44,0x14,
+ 0x52,0x25,0x64,0xAB,0x22,0xE1,0x16,0x16,0x32,0x4A,0xBF,0x09,0x06,0x5C,0x55,0x85,
+ 0x02,0x44,0x16,0x02,0x68,0x46,0x74,0x2E,0x53,0x59,0x18,0xA3,0x4B,0x55,0x49,0xF5,
+ 0x3A,0x74,0x1F,0x4B,0x90,0x56,0xE4,0x72,0xB2,0x54,0x16,0x41,0x8F,0x52,0x9D,0x7D,
+ 0xC8,0x19,0xCC,0xE8,0xC7,0x9C,0x1A,0x30,0x67,0x93,0x3E,0x38,0x7E,0xC4,0x1F,0x73,
+ 0x0C,0x1D,0xF4,0x37,0x4C,0x57,0x52,0xDA,0x88,0xB3,0xBB,0x85,0x1F,0x1D,0x6D,0x0B,
+ 0x6E,0x6A,0xB8,0x7D,0xEB,0x6B,0x46,0x22,0x9A,0x2E,0x39,0x86,0x0B,0x50,0x95,0xCE,
+ 0xB1,0x8F,0xDE,0x34,0x7B,0x1D,0xD7,0x8E,0xD8,0xEB,0x78,0xBE,0x8B,0x3D,0x1A,0xDA,
+ 0x83,0xD4,0x8F,0xBD,0xCE,0xF9,0xD9,0x1D,0xE1,0x06,0x16,0xDA,0xA3,0xFD,0x91,0x5E,
+ 0x02,0xB5,0xFD,0x2A,0x26,0x5A,0x1E,0xA4,0x06,0x39,0xD4,0xF7,0x17,0x44,0xC9,0x93,
+ 0x54,0x59,0x0C,0x8C,0xF2,0xC9,0xFD,0xF3,0x29,0xE2,0x18,0x3D,0xA5,0x7A,0x7F,0x3F,
+ 0x27,0x16,0xAE,0x89,0x08,0x7D,0xAA,0xDE,0x2F,0x2D,0xA8,0x45,0xC6,0xAC,0xD0,0xCD,
+ 0x92,0x83,0x18,0x53,0x00,0xC7,0x41,0x7D,0xF2,0x80,0xF8,0x5D,0x83,0xE4,0xA1,0x61,
+ 0x64,0xC5,0x1F,0x8D,0xA8,0x3F,0xF9,0x4A,0x0B,0xB0,0x45,0xB9,0xD1,0xBA,0x79,0xCB,
+ 0xD9,0x67,0x86,0x2C,0x5A,0xB2,0xAE,0xAE,0xE6,0x0A,0x9F,0xA6,0x13,0x00,0x54,0x21,
+ 0xEF,0x0E,0x34,0x51,0xE7,0xF3,0x20,0x8C,0x65,0x42,0xE4,0xAC,0x3A,0xC4,0xD2,0x8B,
+ 0x54,0x04,0x3C,0xB4,0xDB,0x9F,0x0D,0x13,0x5E,0x66,0x0A,0x0D,0xAD,0x8E,0x97,0x36,
+ 0x8E,0x06,0x6F,0x1A,0x63,0x3F,0x84,0xAE,0xC1,0x84,0xF5,0x7D,0xC9,0xCB,0x49,0x79,
+ 0xF6,0x64,0x0A,0xC0,0x70,0x60,0x84,0x53,0x71,0x11,0xA8,0x3B,0xB2,0xA2,0xA0,0x05,
+ 0x5E,0x9D,0x30,0x64,0x5F,0xB7,0x21,0x7B,0xAE,0x78,0x88,0x5B,0xE9,0xE6,0xCA,0xBF,
+ 0x0B,0x5D,0xFF,0x81,0x5F,0xA6,0xDA,0x3D,0xC3,0xCD,0xB8,0xFF,0x7E,0x4A,0x57,0xAB,
+ 0x97,0x33,0xE8,0x3E,0x28,0x15,0xF5,0x7E,0x68,0x71,0xDA,0x02,0xEC,0x2A,0x8D,0xF9,
+ 0x20,0x78,0xF5,0x56,0x22,0x4B,0x0C,0x50,0xCE,0x5F,0x42,0xEA,0xB7,0x74,0x3D,0xC2,
+ 0x5B,0xE2,0x10,0x49,0x62,0x33,0x69,0xAA,0x7A,0x83,0x5D,0x81,0x48,0x43,0x7E,0x26,
+ 0xE2,0x34,0xF4,0x24,0x70,0xDC,0x77,0x11,0xFF,0x48,0xC9,0x5F,0x89,0x33,0x61,0xFD,
+ 0x18,0xB3,0x98,0x3B,0x17,0x8E,0xB1,0xB1,0xF7,0x14,0xBD,0x73,0x95,0x42,0x02,0x6A,
+ 0x27,0xDA,0x44,0x42,0xE2,0xE0,0x2C,0x6B,0x20,0xC5,0x82,0x09,0x22,0x99,0x4A,0xE1,
+ 0x85,0xAA,0xD0,0x36,0x11,0x81,0x18,0x70,0x29,0x22,0x27,0xD5,0x04,0x3E,0x7B,0xD3,
+ 0xFB,0x12,0x97,0xFA,0xBD,0xF5,0xF0,0xBA,0xBB,0x20,0x7B,0xC8,0x1E,0x30,0xA9,0x96,
+ 0xC6,0xD9,0x95,0x6B,0xD1,0x4C,0xA7,0x46,0x58,0x3C,0x29,0x2B,0x8F,0x77,0x39,0xB5,
+ 0x9D,0x48,0x73,0x35,0x16,0x82,0xEC,0xBC,0x17,0x2C,0xA5,0x6B,0xA8,0x86,0x28,0x94,
+ 0x81,0x5F,0x47,0xC9,0xE1,0x7B,0x5B,0x26,0x42,0xC2,0xF9,0xF7,0x43,0xA4,0x97,0x37,
+ 0x2C,0x36,0x82,0x23,0xAD,0x85,0x4B,0xE4,0xBC,0x2B,0xAA,0xCB,0xD4,0xD5,0xFF,0x78,
+ 0xCA,0xD9,0x19,0x76,0xEA,0x63,0x81,0x1B,0x24,0xC4,0xD8,0x06,0x61,0xEF,0x4F,0x8B,
+ 0x3D,0x7A,0x28,0x33,0x5D,0x83,0x8F,0xB1,0x8E,0x57,0x10,0xAB,0x84,0x2A,0x48,0xC8,
+ 0x8C,0x95,0xE2,0x4B,0x67,0x87,0xD8,0x17,0x5A,0x06,0xAB,0xF9,0xD4,0xC8,0xBB,0xAC,
+ 0xF2,0xBA,0xD2,0x71,0x23,0x3B,0xDA,0x82,0xE0,0x0F,0x40,0x6E,0x8D,0x84,0x7D,0x6C,
+ 0xA8,0xFE,0xFC,0x3B,0xE1,0xA4,0x66,0x2A,0x8F,0x46,0xDC,0x89,0x6B,0x3A,0x15,0xEB,
+ 0xB1,0x3F,0x09,0x8C,0x2F,0xE7,0x74,0x8C,0x13,0x4B,0x5B,0xA7,0xCC,0x72,0xF1,0x26,
+ 0xA9,0x32,0xF6,0x9C,0xC2,0xF6,0x57,0x6A,0xEB,0x42,0xAD,0x31,0xF2,0xD8,0x02,0x2D,
+ 0x13,0xA4,0x1C,0xE4,0x02,0x08,0x5D,0x89,0x12,0xCF,0x7E,0xF8,0xFA,0xB1,0xBB,0x79,
+ 0xA0,0x8A,0x24,0x7C,0xB9,0xCE,0x07,0x3D,0x6E,0x85,0x53,0xCC,0x66,0xC9,0xAE,0xC0,
+ 0x94,0x75,0xAB,0xFF,0xE3,0x2D,0x2C,0xC9,0xC9,0x37,0x17,0x17,0xDF,0x4D,0xED,0x56,
+ 0xE3,0x6E,0xF4,0xF9,0x24,0xDC,0x42,0x99,0xCD,0x6A,0x61,0x4F,0x54,0x9E,0xCC,0x98,
+ 0x91,0x73,0xD4,0x7F,0x22,0xB6,0xB0,0x40,0x09,0x18,0x10,0x60,0x9A,0x3C,0xFB,0x53,
+ 0x1A,0x0A,0x4A,0x78,0xA8,0x91,0x64,0x6F,0x2F,0x5F,0x44,0xD8,0x27,0x87,0xB7,0x51,
+ 0x43,0xE5,0x00,0xAC,0xC2,0x79,0x33,0xC9,0xC1,0xD1,0xD8,0x37,0x85,0xDC,0x80,0xFD,
+ 0xF0,0xB2,0x89,0x93,0xE0,0x71,0x5B,0x72,0x3C,0xD3,0xBB,0xE4,0xA5,0xCD,0x13,0x7C,
+ 0x90,0x5D,0x17,0x81,0x8D,0xD4,0x50,0x26,0x4D,0x16,0x19,0xB8,0x47,0x93,0x14,0x24,
+ 0xBB,0x13,0xA5,0x30,0xEA,0xCA,0xCA,0x24,0x5F,0x5F,0x12,0xB7,0x1B,0xD4,0x1C,0xCA,
+ 0x3F,0x2B,0x37,0x2F,0x05,0x80,0x4C,0xEA,0x5C,0x74,0x59,0xA7,0x44,0xFE,0x3C,0x32,
+ 0xE7,0xDF,0x3F,0xAC,0x48,0x72,0x43,0x7A,0x73,0xCB,0x3B,0x45,0x9C,0x08,0xA0,0xB2,
+ 0xD1,0x99,0xE6,0x7E,0xEE,0x86,0xF3,0x8F,0xB9,0x9C,0xA7,0xC6,0x69,0xBF,0xD6,0x1C,
+ 0x0F,0xDF,0x50,0x96,0x82,0x69,0x28,0x13,0x28,0xA0,0x8F,0xB1,0x9D,0x65,0x0C,0xC9,
+ 0xC5,0xE2,0xA8,0x6D,0x3C,0xA3,0xA5,0x07,0x8C,0xDF,0x66,0xAE,0xF2,0x06,0x64,0x66,
+ 0xC8,0x1C,0xB8,0x9B,0x09,0xC5,0xA2,0x95,0x3B,0x14,0x5B,0x58,0x42,0x17,0x23,0x5A,
+ 0x2E,0x1E,0x27,0x22,0xD7,0x72,0x92,0x15,0x2F,0x53,0xAA,0x73,0xCE,0x8C,0xB3,0xBD,
+ 0xA7,0x4A,0x6C,0x46,0x2F,0x22,0x6B,0x61,0xAF,0x2B,0xD8,0xAB,0x51,0x8A,0x9A,0x84,
+ 0x48,0x30,0xFF,0x84,0x09,0xEA,0x00,0x27,0xC6,0x24,0x7D,0xC2,0x4C,0x32,0x23,0xCF,
+ 0x59,0x01,0x67,0xA3,0x7A,0x80,0x09,0x69,0x7E,0xEC,0x42,0x51,0x09,0xD2,0xEC,0xAC,
+ 0x8D,0x67,0x7E,0x1D,0xC4,0x1E,0xFE,0x80,0x83,0x94,0xFC,0x25,0x8D,0x84,0x55,0x97,
+ 0xC8,0x4A,0xD5,0x10,0x73,0x10,0xAF,0x74,0x51,0x27,0xA4,0x4C,0x2E,0x42,0x4F,0x69,
+ 0xFC,0x02,0xEA,0x03,0x66,0xDC,0x19,0xC3,0x5D,0x12,0x70,0xED,0x69,0x57,0x91,0xCB,
+ 0xCB,0xE3,0xFC,0x09,0x31,0x68,0x1A,0x34,0xDE,0xEB,0x9D,0x20,0x9E,0x26,0xED,0x13,
+ 0x2E,0xB8,0x62,0xCF,0x8B,0x93,0xB9,0x2F,0xDF,0xC4,0x73,0x5E,0x1C,0x08,0xAC,0x32,
+ 0x5F,0xA1,0x56,0xE9,0xBE,0x0C,0x5D,0xD3,0x6F,0x96,0x24,0x40,0xBA,0x37,0xAE,0x10,
+ 0x89,0xE5,0x3F,0x51,0x2A,0xC9,0x34,0xB2,0xA9,0x23,0xAE,0xE1,0x5B,0xA4,0xF2,0xFD,
+ 0x9F,0xDA,0x22,0xFF,0x37,0x2F,0x4A,0x96,0x24,0x20,0xCE,0xA6,0xBD,0x42,0x79,0x5D,
+ 0xE5,0x55,0xFC,0xDB,0x9D,0x83,0xDD,0xB9,0xC7,0xC9,0xDE,0xEF,0x94,0x02,0xC6,0xDD,
+ 0xFC,0x71,0x22,0x73,0xD2,0x71,0xA7,0xFF,0x5C,0x0A,0x66,0xDE,0xD2,0x8E,0x35,0x3E,
+ 0xD6,0x8A,0x26,0x94,0x6D,0x44,0x41,0xF3,0x1D,0x7F,0x6E,0xFC,0x45,0x60,0x98,0xB5,
+ 0x4A,0x47,0x03,0xF1,0x65,0x9D,0x7C,0x36,0x36,0xF8,0xE9,0x2F,0x67,0x1A,0x73,0xE6,
+ 0x11,0x58,0x9D,0xC6,0x85,0x91,0x3A,0xC1,0x3F,0x95,0xE1,0x34,0xE7,0x84,0x1B,0x8A,
+ 0x47,0x05,0xCC,0x4E,0xAA,0xA3,0x89,0x6B,0x17,0xC0,0xB3,0xB2,0x99,0x2B,0xE4,0x71,
+ 0x50,0xA1,0x9A,0x99,0x32,0x00,0x63,0xBB,0x96,0x80,0x9E,0xE6,0x67,0x31,0x26,0x83,
+ 0x1D,0x7E,0x5A,0x07,0x2E,0x1C,0x79,0x8E,0x0B,0x6C,0x8A,0x86,0x8B,0x22,0x71,0x68,
+ 0xBD,0x54,0x36,0xD9,0x2E,0xF4,0xF3,0xAE,0xEF,0x9C,0x8A,0x63,0x63,0x65,0x74,0xB1,
+ 0x4D,0xDD,0xE1,0xFA,0x38,0x49,0x5A,0xF9,0x89,0x9C,0x85,0xF7,0xB8,0x19,0xA9,0x78,
+ 0xEF,0x68,0x9E,0xAE,0x49,0xC8,0x8A,0x18,0xC6,0xAF,0xE0,0x40,0xCA,0xC8,0x1E,0x24,
+ 0x55,0xBE,0x9C,0x80,0x18,0x7D,0x08,0xBA,0x51,0x79,0x68,0x5C,0x78,0x0C,0xC7,0x83,
+ 0x62,0x8B,0xCC,0x2D,0x01,0xA0,0xC5,0xE3,0x30,0xE5,0xDB,0x3F,0x53,0xD8,0x76,0xE6,
+ 0x1C,0x27,0x19,0xE0,0x52,0xEE,0x2D,0x4C,0x7D,0x30,0x88,0xEB,0x56,0x72,0xCA,0xD5,
+ 0xA8,0xD5,0xDF,0x54,0x00,0x7C,0x19,0x44,0x2A,0xB6,0xA4,0x10,0x48,0x3E,0xDB,0xF6,
+ 0xA0,0x90,0xFB,0x75,0xF5,0x36,0xF1,0x8B,0xC8,0xE5,0x89,0x25,0x8A,0x63,0xA0,0xF1,
+ 0xB2,0xD3,0xEB,0x9C,0xF6,0x55,0xC0,0xE6,0x42,0x7C,0x93,0x9A,0xC5,0xE4,0x91,0x93,
+ 0xBB,0x60,0xA2,0x92,0x1A,0x6E,0x97,0x5C,0xD8,0x64,0x96,0xE6,0x87,0xFA,0x19,0x93,
+ 0xA9,0x03,0x38,0x50,0x2F,0xBF,0x22,0x81,0x3C,0xA9,0x45,0xE9,0xF7,0x28,0x27,0x3A,
+ 0x4A,0xAD,0xE9,0x57,0xA6,0xD1,0xD2,0x66,0x05,0xFE,0xC8,0x92,0x40,0x24,0x06,0x29,
+ 0x3A,0xBC,0x97,0x8F,0x9D,0x74,0x61,0xE6,0xBB,0x8D,0x8F,0xE7,0xA2,0xDC,0x0C,0xFC,
+ 0xD1,0xD3,0x3B,0x89,0x60,0x0F,0xA6,0x83,0xDF,0xB1,0xEE,0xE7,0x9B,0xA4,0xF6,0x74,
+ 0x1C,0x8A,0x36,0x3D,0x70,0xEC,0xE3,0xF5,0x25,0xE7,0x1A,0xD9,0x65,0x20,0x9A,0x52,
+ 0x8A,0x01,0x00,0xE2,0x52,0x56,0x1D,0xDB,0x22,0xF0,0x5A,0xE7,0x63,0xE4,0x52,0xF2,
+ 0x0C,0xFA,0xA8,0x5C,0xA1,0xBC,0xF0,0xA7,0xDF,0x29,0x97,0x25,0x92,0xD8,0x38,0x37,
+ 0xAE,0xE0,0xA4,0xD9,0x03,0x74,0x69,0x88,0xF5,0x53,0xED,0x05,0xE2,0x6B,0x8A,0x89,
+ 0x75,0x25,0xCC,0x91,0x3C,0x09,0x37,0xCC,0xF6,0x6A,0x1C,0xDE,0x5C,0xCD,0x48,0x7E,
+ 0x23,0xD8,0xEC,0xEB,0x68,0x8C,0x40,0xF0,0x12,0xAD,0x79,0x53,0x68,0xB7,0xB4,0x31,
+ 0xF6,0x79,0xCE,0x90,0x9D,0x06,0xC5,0xD4,0x37,0x2A,0x4D,0xD9,0xF8,0x71,0xBA,0x8B,
+ 0x7B,0xEB,0xDE,0x3F,0xD5,0x63,0x1C,0x8C,0xFF,0xB6,0xA1,0xF6,0xCD,0xB1,0xEA,0x5E,
+ 0x65,0xCF,0xEE,0xDA,0x59,0x72,0x69,0x7A,0x67,0x99,0x80,0x31,0x7E,0x88,0xCA,0x1B,
+ 0x9E,0x6E,0x41,0xBE,0x52,0xFA,0xC3,0x46,0x6D,0x1C,0x2F,0xA1,0xF8,0xC3,0x0A,0xF8,
+ 0x5E,0x01,0x2E,0x75,0xFD,0xA5,0x34,0xA5,0xEF,0xD7,0xB6,0x5A,0x91,0xC0,0x48,0x9E,
+ 0xE1,0xA6,0x18,0xC4,0xAF,0x34,0xF7,0x5E,0xBD,0xC0,0x10,0x8D,0xC6,0x81,0x37,0x9F,
+ 0x5C,0xE9,0x26,0x86,0x31,0x25,0xB3,0x4C,0x1B,0x84,0xBB,0xB6,0xBC,0xF2,0x2E,0x64,
+ 0xD4,0x68,0x21,0xC1,0x1A,0x21,0x13,0xBC,0x07,0xD0,0x91,0xC3,0x8A,0x42,0x3F,0xFF,
+ 0x66,0xCE,0x55,0x2B,0x34,0x4F,0x17,0x7E,0xCF,0x00,0x5E,0x6E,0xD3,0xB0,0xDC,0x3F,
+ 0x6B,0x33,0xD9,0x3B,0x9C,0x5F,0x4E,0x3E,0xB2,0x5B,0x8C,0x72,0xC2,0xCE,0xFF,0xF0,
+ 0xC8,0xAC,0xB3,0x6D,0x49,0x8D,0x13,0x7C,0x71,0xA9,0x69,0x9C,0x23,0xA5,0x6C,0xC4,
+ 0xD9,0x36,0x67,0x31,0xE0,0x30,0x9A,0x0F,0x4E,0x57,0x0F,0x49,0x0B,0x34,0xEC,0x7C,
+ 0xDD,0xFE,0xCA,0x9A,0x6F,0x64,0xB7,0x8E,0xB7,0x8E,0xD8,0xE1,0x58,0xE5,0xBB,0x05,
+ 0x27,0x4F,0x4A,0x16,0xD7,0x7D,0x51,0x37,0x00,0x68,0xAB,0x6B,0x5C,0xF0,0x72,0xAD,
+ 0x4F,0x4F,0x8F,0x59,0x9A,0x47,0xC0,0xAF,0xB2,0x6D,0x5F,0x13,0x20,0x91,0xFB,0x77,
+ 0xC6,0x8B,0xB3,0xD2,0x69,0xAF,0x44,0xA5,0x5D,0x0C,0x46,0x62,0x00,0xEA,0x2D,0x8F,
+ 0x7B,0x87,0x9C,0xDC,0x45,0xFB,0xCC,0x03,0xD6,0xFF,0xC6,0x79,0x10,0x4D,0x77,0x41,
+ 0xBF,0xA8,0x79,0xE0,0xFC,0xB4,0xAF,0x8C,0x64,0xFE,0x13,0x92,0x04,0x55,0x99,0x56,
+ 0xFB,0x5D,0xEE,0x5A,0x35,0x77,0xB0,0x96,0xC0,0x61,0xA8,0xB2,0xCA,0x7D,0x6C,0x84,
+ 0x26,0x70,0x91,0xA9,0x6F,0xC5,0xBE,0x80,0xA8,0x43,0x21,0x74,0x59,0xF6,0xE5,0xAA,
+ 0xB4,0x4C,0xC3,0x4B,0xE3,0xEB,0xE1,0xA9,0xFF,0xE2,0x3B,0x5C,0x35,0xA5,0xCB,0xF6,
+ 0x24,0x6B,0x3F,0x0F,0xED,0x94,0x93,0xDE,0x08,0x55,0xAC,0x20,0x1A,0x28,0xEE,0xFE,
+ 0xD7,0x77,0x3F,0x62,0x88,0x1F,0x19,0x65,0x66,0x30,0x64,0xB0,0x90,0xDD,0x50,0x46,
+ 0x88,0xFA,0xE0,0x7F,0x10,0xC8,0x84,0xC3,0xA0,0xC0,0x15,0x5B,0x20,0xA7,0x93,0x1D,
+ 0xA2,0xA3,0xFF,0x05,0x9C,0xB2,0xE8,0x59,0x3B,0xFC,0x57,0xF8,0xD3,0xF9,0xDD,0xFD,
+ 0xD9,0xCA,0x65,0xC2,0xC7,0xDE,0xD8,0xB5,0x8C,0xE3,0x5B,0x20,0x22,0x4B,0xC9,0x3D,
+ 0xE5,0x38,0x0B,0xC5,0x6B,0x08,0x43,0x6B,0x49,0xFF,0xF0,0x08,0x09,0xE4,0x71,0x53,
+ 0x00,0xD4,0x13,0x39,0x18,0xED,0x40,0x64,0x22,0x05,0x2B,0x86,0x4E,0x3C,0xC0,0xD7,
+ 0x1C,0xC0,0x88,0x2E,0x98,0xEF,0xC3,0x9B,0xF3,0xB6,0x6D,0x69,0xDF,0x65,0x89,0x09,
+ 0xFA,0xA9,0x49,0xE9,0xF9,0x04,0x3F,0x79,0xCF,0x7B,0x4F,0x23,0xB7,0x53,0xD8,0xDE,
+ 0xDC,0xE7,0xAF,0xE3,0x8B,0x0C,0x68,0x3B,0x60,0xD8,0xC5,0xFA,0x6D,0x54,0x69,0x7B,
+ 0xDC,0x34,0x84,0x99,0x0B,0xB9,0x41,0xBB,0x30,0x76,0x78,0xD4,0x68,0x08,0x35,0x8A,
+ 0xA0,0x90,0xBF,0xC8,0xF0,0x74,0xA4,0xAD,0x8D,0xA5,0xB2,0xAA,0x29,0x2C,0xF4,0x20,
+ 0x12,0x06,0x09,0x9A,0xB7,0x82,0xB6,0xA2,0x5F,0x6D,0xAA,0x23,0x44,0xBB,0x19,0x7C,
+ 0x01,0x7D,0xCC,0xEE,0x9F,0x8F,0x4F,0x3D,0x81,0x05,0x38,0xFF,0xD5,0x1C,0xF2,0x0E,
+ 0xBC,0x0F,0x76,0x87,0x2B,0xD3,0xD0,0x5C,0x5D,0x38,0x7B,0x57,0x63,0xA1,0x81,0xB7,
+ 0xCF,0x45,0xE4,0xA8,0xE9,0x63,0x1F,0xDD,0xC7,0xCB,0xFD,0x31,0x85,0x88,0xD8,0x1C,
+ 0x94,0x10,0x47,0xD2,0x38,0x12,0xD8,0xEC,0xBB,0x92,0x29,0x93,0x2C,0xD0,0x08,0xB8,
+ 0x2B,0x3E,0x5C,0x8D,0x5B,0xF5,0x20,0x97,0xF5,0x31,0xA6,0x16,0x88,0xE4,0x62,0xE0,
+ 0xC7,0x13,0x2B,0x33,0xE5,0xD3,0xB5,0x1A,0xAF,0x56,0x02,0xE6,0xA4,0xDF,0x67,0xC5,
+ 0x44,0x65,0xBD,0x50,0xF0,0x16,0xE8,0x7E,0x6A,0x20,0x4E,0xC8,0x28,0xD6,0x76,0x01,
+ 0x83,0x84,0xDE,0xC1,0xA1,0xF5,0xE2,0x3F,0xA1,0x93,0x25,0x4F,0x6D,0x4D,0x87,0xE5,
+ 0xDB,0x7D,0x36,0x93,0xF1,0xC8,0x45,0x6A,0x2B,0x37,0x81,0x75,0x44,0x74,0xD2,0xD0,
+ 0xC0,0x29,0x2F,0xBD,0xB8,0xA3,0xB8,0x72,0x0E,0x90,0xDE,0xFF,0xF2,0x32,0x0A,0x9F,
+ 0xBD,0x55,0xA7,0xB5,0xFC,0xED,0x6A,0x8B,0x77,0xB2,0x84,0x54,0x21,0xF7,0xC7,0x55,
+ 0x61,0x68,0x44,0x2A,0x77,0x49,0xA2,0x50,0xE7,0xFB,0x88,0x5B,0x09,0xC6,0x3B,0x3F,
+ 0x5F,0x81,0x35,0x64,0x71,0x31,0xF6,0xAF,0xF2,0x8A,0x12,0xC6,0x3C,0xDA,0x78,0x6C,
+ 0xFC,0x36,0x23,0xAF,0x54,0xBD,0x66,0x5E,0x93,0xA9,0xA3,0xE9,0x68,0x95,0x39,0x42,
+ 0xE0,0xBD,0xC5,0x67,0xAE,0x98,0x2E,0x38,0x91,0x6E,0x34,0xFD,0x5D,0xBD,0xC1,0xCB,
+ 0xE0,0x92,0x1B,0xE1,0x5A,0x91,0x64,0x76,0xF1,0x3B,0x0B,0xD7,0x64,0x30,0x1D,0x07,
+ 0x7D,0x7B,0x6F,0xAE,0x72,0x1B,0x57,0xB0,0xD2,0x7E,0xC8,0xC7,0x78,0x0C,0xD7,0xB5,
+ 0xB5,0xCE,0x62,0x15,0xA1,0x1C,0x7C,0x18,0xB5,0xA9,0x07,0x7B,0xEC,0xEF,0x3F,0xF5,
+ 0xB0,0xDF,0x50,0xB4,0xA9,0x67,0xD3,0xCC,0xD8,0x9D,0x92,0xE0,0x64,0xE1,0xFD,0xF1,
+ 0x89,0x81,0xCD,0xE1,0x0A,0x89,0xAD,0x54,0xBD,0x74,0x54,0xE3,0x65,0x34,0x32,0x5D,
+ 0x6E,0xAC,0xB3,0x68,0x39,0xDA,0x6E,0xB2,0xD3,0xB8,0x5D,0xB6,0x7A,0xBA,0xE1,0x38,
+ 0x9A,0xBD,0xD0,0x06,0xF9,0xEA,0x7F,0xA3,0x18,0xB6,0xDD,0xDE,0xEC,0x1A,0x8E,0x70,
+ 0x85,0xA1,0xC5,0x35,0xE8,0x7E,0x06,0x7F,0xEE,0x62,0x65,0x92,0xAF,0xC2,0x44,0x2A,
+ 0xA4,0x41,0x3D,0xAD,0x1F,0x37,0x24,0xAC,0x4D,0x6A,0x6E,0x99,0x3D,0xAA,0x4B,0xE2,
+ 0x3A,0x7A,0x2C,0x28,0x53,0x18,0x84,0x32,0x30,0x02,0x0B,0x05,0xF9,0xEF,0xD5,0x25,
+ 0x6A,0xA5,0x1A,0x04,0x18,0xEB,0x1B,0xAF,0x12,0x15,0x01,0x8C,0x44,0x44,0xA5,0xB7,
+ 0x66,0xDE,0x59,0x41,0x1F,0x9A,0x2D,0x7D,0xEB,0xDF,0x17,0x81,0xC7,0x3A,0x20,0xA1,
+ 0x33,0xCB,0x57,0xC9,0x72,0xDD,0xB9,0x76,0x3A,0x90,0x05,0xDC,0x83,0xCF,0x04,0x39,
+ 0x1C,0x5E,0x13,0x58,0x70,0x32,0x66,0x0D,0x36,0xEE,0x75,0x42,0x4B,0xFF,0xE7,0x5D,
+ 0x1B,0x38,0x7D,0xD8,0x2A,0xFC,0x83,0xF4,0xD2,0x9B,0xF9,0x2C,0xE2,0x2E,0xF8,0x60,
+ 0x2C,0xAE,0xFC,0xF9,0x48,0x80,0xC0,0xC7,0x80,0xC6,0xCE,0xBA,0x12,0xDC,0xCD,0x14,
+ 0xD2,0xF6,0xB0,0x16,0x2F,0x4A,0xBB,0x30,0xDA,0x32,0xBF,0x01,0x6F,0x6E,0x8B,0x09,
+ 0x01,0xD2,0x28,0x9E,0xEA,0xF3,0xCA,0xB6,0xBC,0x5A,0x66,0x93,0xF0,0x62,0xA5,0x62,
+ 0x8F,0x20,0x63,0x06,0x42,0x06,0x1E,0xD0,0x97,0x6C,0x11,0xA0,0x36,0x0F,0xCB,0xC7,
+ 0xCA,0x15,0x88,0xE3,0x50,0x77,0xDC,0xAA,0x81,0x57,0xFD,0x70,0x88,0xF2,0x45,0x89,
+ 0x41,0x2F,0x6C,0x2F,0x92,0x03,0x31,0x29,0x93,0x17,0x51,0xFD,0x15,0x49,0xC4,0xEE,
+ 0xCA,0xC8,0x62,0xE1,0xCC,0x08,0x12,0x37,0x3E,0x84,0x11,0x66,0x01,0x7F,0xE5,0x21,
+ 0x92,0x79,0xF0,0x56,0xAA,0x2B,0xFA,0xAE,0x16,0xA0,0xAB,0xFC,0x97,0x8E,0x50,0xEE,
+ 0x49,0xDD,0x8E,0xC1,0x07,0x2B,0xEB,0x14,0x80,0xFF,0x0B,0x35,0x40,0xC9,0x5E,0x2F,
+ 0x98,0x0D,0xBA,0x72,0x3B,0x3B,0xB1,0x50,0x79,0x9F,0x88,0x2A,0x7D,0x35,0x7B,0xBF,
+ 0x9A,0x98,0xE1,0xFE,0xF0,0xFF,0x5D,0xE5,0xB0,0xB7,0x75,0x89,0xA4,0x05,0xDC,0xE2,
+ 0xD0,0xC3,0xCA,0xC1,0x08,0x80,0x0D,0x6F,0x0A,0xBB,0x72,0x8A,0x8D,0x01,0xEB,0x37,
+ 0x8E,0xA6,0x90,0x30,0x48,0xE6,0x52,0x54,0x8F,0xF4,0x5C,0x22,0xF8,0x58,0xEC,0xCC,
+ 0x45,0x40,0xDD,0x80,0x10,0xC5,0xB0,0x35,0xB4,0xFB,0x69,0xF9,0x36,0x29,0xFD,0x95,
+ 0xC4,0x5B,0xCB,0x13,0x8A,0x1D,0xD7,0xE9,0x76,0x08,0x69,0x73,0x63,0xF7,0xAE,0x1B,
+ 0x42,0x8C,0x0F,0xC1,0xA0,0x7A,0xEE,0x1D,0xC0,0xD6,0x32,0xC7,0x2E,0xDA,0xC4,0x6F,
+ 0x29,0x3B,0xB5,0xC8,0x47,0xDB,0x7D,0x7D,0xA9,0x36,0x4D,0x3B,0x89,0x09,0x05,0x60,
+ 0x1F,0x50,0xD7,0x52,0x99,0xEA,0x16,0x45,0x64,0xAE,0x49,0xF4,0xE4,0x76,0xB3,0xB5,
+ 0x50,0xFB,0x52,0x05,0x0F,0xA5,0x5B,0x7D,0x5A,0xC3,0x42,0x36,0xAD,0xCB,0x65,0xAE,
+ 0xBC,0x1E,0x46,0x8F,0xAB,0x14,0x3F,0x30,0x7A,0xA2,0x28,0x7C,0xA9,0x36,0xCE,0xAB,
+ 0x8F,0x62,0x6B,0xCC,0xD2,0x28,0x0C,0x78,0x9F,0x3C,0x01,0xCB,0x9B,0xBA,0x47,0xA7,
+ 0xF5,0x84,0x8C,0xE6,0xC0,0x00,0xFC,0x08,0x49,0x59,0x4B,0x17,0x33,0xB0,0xD3,0xBA,
+ 0xC3,0x0B,0xD8,0xCF,0x7B,0x70,0x7A,0xE3,0x6B,0xD8,0xCC,0xD5,0xFA,0xA6,0x99,0x3A,
+ 0x06,0xF5,0x86,0xE0,0xE6,0xA5,0x16,0x92,0x09,0x6E,0x6B,0xBA,0x59,0xD2,0x74,0x2A,
+ 0x5B,0x27,0x81,0x64,0x60,0x8D,0x9F,0x34,0xAC,0x23,0x4A,0x52,0xFF,0xEB,0x98,0x9A,
+ 0x88,0x06,0x6D,0xB7,0x23,0x05,0xE6,0xB6,0x4C,0x73,0x24,0x53,0x5E,0xB7,0xEF,0x87,
+ 0x00,0xB1,0xB6,0xE1,0x4E,0x41,0xB1,0x2C,0x1D,0xF2,0x68,0x54,0x55,0xA3,0xE8,0x52,
+ 0x9C,0x43,0x98,0x25,0x77,0x42,0xDD,0x8B,0x78,0x55,0x40,0x38,0x69,0xDB,0x2E,0xAE,
+ 0x3F,0xDC,0x5F,0xDE,0xEF,0x49,0x23,0xB3,0x05,0xE5,0x64,0x53,0x5A,0xA1,0xCD,0xD2,
+ 0xCC,0xDB,0x53,0x0A,0x98,0x99,0x01,0x06,0x48,0xFD,0x2F,0x97,0x44,0xED,0xEC,0x53,
+ 0xF5,0x16,0x44,0xAB,0xE2,0xC6,0x2E,0xF9,0x0B,0x84,0x40,0x0B,0xCC,0xAE,0x1A,0xA1,
+ 0x25,0xDC,0xC0,0xEA,0x1A,0x31,0x30,0x60,0x94,0x73,0x87,0xEA,0xE7,0x5F,0xCC,0x5F,
+ 0xF9,0x21,0xAB,0x65,0x0C,0xB5,0x02,0xF0,0x9B,0x9B,0xDA,0x06,0x40,0x91,0x7A,0xFD,
+ 0xED,0xBF,0xFB,0xD6,0x98,0xF7,0x97,0x6E,0x40,0xF9,0x83,0x33,0xF1,0xD4,0x50,0xAB,
+ 0x54,0x15,0x12,0x42,0x5C,0xDB,0x31,0x4E,0x6D,0x5C,0xA7,0x06,0x7C,0xD7,0xA6,0x40,
+ 0xF0,0xF4,0x14,0x8E,0xF3,0x0E,0x56,0x75,0x20,0x40,0x1C,0xA8,0xCF,0x75,0x46,0x83,
+ 0x8A,0xB4,0xF1,0xBA,0x5C,0x7D,0x7B,0x91,0x4F,0x1E,0xE8,0x88,0x84,0xC5,0x04,0x55,
+ 0x6B,0x82,0x35,0x03,0xD3,0x23,0x2F,0x9C,0x5C,0x55,0x13,0x83,0xD1,0x2C,0xB5,0x31,
+ 0x07,0x0D,0x6F,0x1E,0x11,0x24,0x3E,0x9F,0x45,0x34,0xB2,0xCB,0xAA,0x12,0xFD,0x06,
+ 0x2C,0x31,0x2A,0x8D,0x7E,0x02,0xE6,0xAF,0x3B,0x93,0x89,0x50,0x98,0xA3,0x01,0xD4,
+ 0x07,0x75,0x65,0x87,0x0B,0x5F,0xC6,0x83,0x47,0x5A,0x7A,0x87,0x0C,0xCC,0x37,0x10,
+ 0x27,0xF2,0x42,0xD8,0xBA,0x58,0x62,0xF8,0xBA,0x14,0x14,0xD3,0x41,0x20,0xB8,0x40,
+ 0xD3,0xB8,0x2E,0x1E,0x53,0x42,0xB4,0x40,0xD0,0x99,0xF4,0xAC,0xD8,0xF3,0x6C,0x85,
+ 0x27,0xE9,0x56,0xDA,0xF2,0x4E,0x9F,0xA4,0x3B,0xCE,0xA1,0x7A,0x2D,0x18,0x2D,0x1B,
+ 0x48,0x70,0xBE,0x17,0x10,0x47,0xB0,0x0F,0x89,0x8A,0x58,0xAB,0x75,0x5A,0xE8,0x4F,
+ 0xB3,0xAC,0x28,0x13,0x31,0x63,0x09,0x7D,0xE8,0xDB,0xF5,0x85,0xEE,0xC1,0x6F,0x08,
+ 0xD7,0x51,0x5C,0xD6,0xC6,0x4C,0x0A,0x40,0xEA,0x53,0x46,0x9B,0xE2,0x81,0xA9,0x9D,
+ 0x66,0x80,0x32,0x7A,0x83,0x5A,0x7C,0xCC,0xEE,0xAA,0x5F,0xA5,0x0C,0x35,0x3D,0x20,
+ 0xFC,0xD7,0x54,0xE9,0x58,0x19,0x81,0xFB,0xE0,0x47,0x30,0xA8,0x95,0xE1,0x74,0x37,
+ 0xFE,0x37,0xF0,0x63,0x7A,0x2E,0x74,0xF3,0x3A,0x77,0xE6,0xA1,0xCA,0x16,0x07,0xE8,
+ 0x94,0x9E,0xFE,0xA5,0x25,0x5D,0x08,0x02,0xEE,0x64,0x43,0x02,0x51,0xBB,0xD4,0xF2,
+ 0xD2,0xBF,0x80,0x65,0xA0,0xC5,0x55,0x23,0x1E,0xD5,0x2C,0x06,0x95,0x9A,0xFE,0xCD,
+ 0xDA,0x3B,0x9D,0x34,0xFB,0xF8,0xEF,0x78,0x7B,0xF4,0x46,0xEE,0xE5,0xC9,0xA8,0x90,
+ 0xA5,0x38,0xEC,0x21,0x46,0x95,0x8C,0xE7,0x54,0xE9,0x93,0xF4,0x44,0x38,0x04,0x6E,
+ 0x01,0x7D,0xB9,0xA1,0xBB,0x49,0x3B,0x11,0xDD,0x0D,0x54,0x90,0xCD,0x9C,0xBF,0xBE,
+ 0xC0,0x98,0x6A,0xC7,0x30,0x0B,0x30,0xD6,0x19,0x0C,0x02,0x1C,0x24,0xC4,0xAF,0x7C,
+ 0x10,0xF8,0x67,0x07,0x2E,0x84,0x7F,0x0A,0x25,0xE0,0x1C,0x5E,0x4F,0x51,0x9F,0x66,
+ 0x99,0x3C,0x93,0x55,0x3F,0x47,0x98,0x7A,0x99,0x2D,0x15,0x0C,0x22,0xD4,0x9A,0x82,
+ 0x4F,0x43,0x3B,0x49,0x6A,0x83,0x2A,0x36,0xEE,0xAD,0xDE,0xEE,0x75,0xEC,0xF5,0x7E,
+ 0xF4,0xA8,0xEB,0xD1,0x70,0x51,0x47,0xB6,0x4C,0xEA,0x66,0x88,0x82,0x02,0x19,0xF5,
+ 0x53,0xAF,0xC4,0x41,0xC1,0x89,0x72,0x42,0x2C,0xB2,0x32,0xCC,0x09,0x12,0x0B,0xA9,
+ 0x7F,0x8A,0x97,0x6C,0xB3,0x58,0xA5,0x2D,0xE4,0xE8,0x91,0xD6,0xFD,0xB7,0xC9,0x7E,
+ 0x32,0x3B,0x8A,0x9F,0x93,0xFA,0xBA,0x4A,0x26,0x2A,0x0E,0x83,0xDD,0x4E,0x55,0x12,
+ 0xA8,0xC7,0x73,0xCB,0xBC,0x78,0xD3,0xB5,0x7C,0x73,0x77,0x1F,0x6F,0x9E,0xB7,0xDA,
+ 0x7F,0xBA,0xD9,0x91,0xE9,0x52,0x63,0x1F,0x36,0xC5,0x5D,0x2C,0x18,0x7A,0x7E,0xF4,
+ 0x1A,0x16,0xBA,0x79,0xEF,0xE2,0x20,0x03,0xEA,0x20,0xED,0x65,0x73,0x90,0x11,0x2F,
+ 0xD7,0x92,0x90,0x7C,0xE4,0xA1,0xA8,0x6A,0x24,0x6D,0x66,0x6D,0xDC,0xB2,0x61,0xDC,
+ 0xCD,0xA5,0xB5,0xFF,0x2F,0x3A,0xF2,0xF0,0x22,0x02,0x2B,0x84,0xB1,0x49,0xA1,0xE7,
+ 0xC8,0x7C,0x85,0x28,0xB8,0xCD,0x00,0x17,0x22,0x3E,0x23,0x44,0x8E,0xCA,0xD3,0xDC,
+ 0x77,0x5A,0xA7,0x6D,0xDF,0x67,0xFB,0x41,0x33,0x92,0x11,0xB3,0x87,0x02,0xA4,0x89,
+ 0x09,0xF6,0xBF,0xE0,0x81,0x99,0x07,0xF9,0x3D,0x18,0x5A,0xE2,0x7C,0x5D,0xBD,0x16,
+ 0xE8,0xA4,0x92,0x2A,0xAC,0x3A,0xFE,0xB0,0x75,0x17,0xD5,0x48,0x9A,0xCA,0x81,0x9F,
+ 0x27,0x06,0x19,0x81,0xE3,0x6C,0xCA,0x12,0x0C,0x6D,0xC9,0x88,0xFF,0x10,0x55,0x77,
+ 0x1A,0x49,0xE7,0xEB,0xFB,0x6D,0xD8,0x6C,0x31,0x58,0x8D,0x13,0x7A,0xFE,0x3C,0x39,
+ 0x90,0x1D,0x59,0x51,0x62,0xBE,0xA2,0xEC,0xE9,0x05,0x65,0x95,0xF9,0xBC,0x2C,0x2B,
+ 0x8F,0xA6,0x98,0xA4,0x99,0x03,0xB9,0x7C,0xAC,0x50,0x69,0x3B,0x8D,0x3E,0x96,0x60,
+ 0x47,0xE9,0x2C,0x96,0xAB,0x35,0x68,0xBC,0xA0,0x1B,0xB1,0x1C,0x93,0x9A,0x8D,0xFE,
+ 0x9A,0x48,0x6B,0xC2,0x7C,0xA7,0xE9,0xC0,0x37,0x53,0xBA,0xCB,0xF2,0x3D,0x7C,0xC1,
+ 0xD6,0xAE,0xAD,0x66,0x69,0x96,0xB9,0x3B,0x7D,0x9F,0x72,0x11,0xC9,0xC0,0xA7,0x9C,
+ 0xCD,0xA1,0x06,0x71,0xB5,0x19,0x7D,0x76,0x3E,0xAD,0x87,0xDB,0x63,0xCD,0x00,0x86,
+ 0x6B,0x71,0x62,0x5E,0xB5,0x78,0xB6,0x1E,0x22,0xAA,0x2B,0x23,0x37,0xBF,0xCC,0xEC,
+ 0x90,0x08,0x9C,0xBE,0xBD,0x4B,0x8D,0xC3,0x58,0xF5,0xA6,0x6C,0x99,0xC0,0xCE,0x61,
+ 0x34,0xBE,0x6F,0xB1,0x47,0xA8,0x12,0x2A,0x67,0x6D,0x37,0x64,0x37,0xA2,0x0D,0xD7,
+ 0x40,0xF8,0x9B,0xC0,0xEA,0x94,0x45,0xD1,0xD6,0x88,0xFF,0xD9,0x0A,0x91,0xC3,0xE6,
+ 0xFF,0xD6,0xF6,0x4D,0x20,0xFD,0xFF,0x63,0x54,0xBC,0x3E,0x2C,0x09,0x04,0x4D,0xE3,
+ 0xC8,0xD7,0xCA,0x44,0x47,0x99,0x24,0x63,0xAB,0xFA,0x8D,0x3B,0xFF,0x3F,0xE2,0x91,
+ 0xC8,0xEA,0xF2,0xCC,0x25,0xF7,0xB2,0xEE,0xCB,0xD8,0x84,0x8A,0xA4,0xF9,0x16,0x6B,
+ 0xF7,0xC0,0xA7,0x0A,0xAD,0xD7,0x21,0x2C,0x99,0xB5,0x0D,0x3D,0xA3,0xEC,0x3C,0xB1,
+ 0xD9,0x27,0xC5,0x1E,0x09,0xB8,0xCB,0x3B,0x6E,0x6A,0xBF,0xCE,0xF3,0x8E,0x5C,0xBF,
+ 0xCC,0xBD,0xFB,0x8E,0x5B,0x0E,0xA3,0x23,0xED,0x91,0x40,0x03,0x47,0x75,0x7E,0xF3,
+ 0x54,0x8A,0x10,0xD7,0x91,0x2B,0x59,0x88,0x8B,0xF7,0x27,0xB2,0x07,0xFE,0x3C,0xB3,
+ 0x72,0xFA,0x56,0xE0,0x52,0x6B,0x4E,0x7E,0x5F,0xF8,0xCB,0x04,0x7D,0x16,0xA9,0x24,
+ 0x6F,0xDA,0x0B,0x20,0x39,0x4B,0x3E,0x63,0xF5,0xF7,0xDB,0xCA,0xF9,0xE9,0x1F,0xE7,
+ 0xB4,0xE1,0xAA,0xF6,0xD0,0x39,0x21,0x43,0x15,0x71,0x6D,0xB0,0x0D,0x74,0x8A,0xE4,
+ 0xCC,0xB2,0xCD,0x36,0x20,0x7C,0xF2,0x4E,0x22,0x0F,0xBF,0x79,0xD1,0x89,0x1A,0xC6,
+ 0x95,0x0E,0xA5,0xF4,0x37,0x51,0x9B,0xF2,0xCA,0xD6,0xDE,0x25,0xD8,0x24,0x57,0x1E,
+ 0xF4,0x2B,0xBE,0x68,0x7D,0xE4,0xB2,0xC7,0x61,0x0E,0x67,0xD4,0x8C,0x3B,0xD8,0x9D,
+ 0x24,0xAD,0x14,0x55,0xF8,0x4A,0x9B,0xB9,0x4A,0x7C,0x11,0xA5,0x6F,0x1B,0xB2,0x94,
+ 0x56,0x18,0xC7,0x1C,0xB2,0xF9,0xBA,0x36,0xDF,0xB6,0x3A,0x84,0xB0,0x7E,0xF0,0xAB,
+ 0x6D,0xFD,0x7C,0x60,0x62,0xEE,0x2A,0x0C,0x89,0xF8,0x5E,0xDE,0xA6,0xDF,0x86,0x75,
+ 0x18,0x03,0x84,0xDE,0x77,0x25,0x85,0x57,0xAE,0x11,0x88,0xE6,0xC3,0x18,0x0D,0xE2,
+ 0x9F,0x58,0x89,0x20,0xB5,0xAC,0x17,0xD6,0x67,0x36,0xE3,0x11,0x92,0xF8,0xA2,0xE2,
+ 0x78,0xDE,0x63,0x06,0x67,0x0D,0x24,0x4D,0x6F,0x84,0x10,0x79,0xBD,0x68,0x11,0x3D,
+ 0xA9,0xA7,0x20,0x5B,0x39,0xCE,0xEE,0xDF,0x80,0xDC,0xC8,0xB8,0xF1,0xFA,0x01,0xA2,
+ 0x62,0x01,0xB2,0x5D,0x1E,0xEF,0x07,0x00,0x0E,0xA3,0x3A,0x8F,0x69,0xDF,0x36,0xF8,
+ 0x1F,0x55,0x34,0x30,0x09,0x22,0x7E,0x7C,0x83,0xFC,0xDA,0x7A,0x36,0x1A,0xEF,0x70,
+ 0x33,0xC6,0xF5,0x00,0x0F,0x01,0x49,0x7E,0xA0,0xF9,0x26,0x9A,0xD9,0x6E,0x19,0xC6,
+ 0x16,0x3C,0xB0,0xC2,0x4C,0xBF,0xDA,0xAD,0xDC,0xE3,0x93,0x87,0x9D,0xE6,0x11,0x8A,
+ 0x86,0xCA,0x03,0x6A,0x83,0x4E,0x86,0x6F,0x00,0x76,0xE6,0x9D,0xCF,0xF3,0x24,0x5B,
+ 0x04,0xD8,0xCE,0xD5,0xF2,0x1A,0x49,0x66,0xB3,0xD0,0x9F,0x25,0x79,0x4B,0x2C,0xF5,
+ 0x36,0x85,0xAB,0x80,0x5F,0x27,0x36,0xBD,0x84,0xD0,0x19,0xA1,0xD2,0x92,0xB5,0x98,
+ 0x62,0x5F,0x9A,0x32,0xC8,0x2A,0xEC,0x6A,0x5D,0x72,0x75,0x73,0x56,0x99,0xE8,0x77,
+ 0x15,0x9C,0x7D,0xA0,0x7A,0x18,0x3D,0x55,0x1F,0x66,0xFC,0xA6,0x74,0x47,0xE6,0xA2,
+ 0x10,0xBD,0xC3,0xC3,0x8F,0x85,0xE1,0xFB,0xA8,0x0C,0x61,0x78,0xA3,0x53,0x4D,0xF7,
+ 0x75,0x3E,0xAB,0x8B,0x2D,0x3B,0x1B,0x2C,0x40,0xE6,0xB5,0xFC,0x3C,0x64,0x22,0xF6,
+ 0x3B,0xB8,0x65,0x93,0x5A,0xE9,0xD6,0x95,0xAD,0xCB,0xC6,0x8E,0xD5,0x27,0xBC,0xD3,
+ 0xEC,0x65,0x61,0xE8,0xF7,0x68,0x91,0x61,0x24,0xB2,0x22,0xF3,0x64,0xE4,0xF8,0x8C,
+ 0x24,0x0E,0xE4,0xC4,0x4A,0xAD,0xCC,0x6B,0x5D,0xA5,0x42,0x46,0x3E,0xDF,0x3D,0xEE,
+ 0x8D,0x2E,0x22,0xEC,0x41,0x52,0xAE,0xB1,0xFF,0xE4,0xF2,0xE7,0xF2,0xC4,0xCF,0x4D,
+ 0x3D,0x76,0x3A,0xF0,0xC5,0x89,0x7F,0xFF,0xCB,0xAC,0x7F,0xCD,0xB3,0x60,0x61,0x18,
+ 0xDF,0x0B,0x8B,0x45,0x05,0x89,0xB6,0x6A,0x4E,0x23,0x10,0xF4,0xD2,0x75,0xF0,0x25,
+ 0xB0,0x7F,0x4E,0xF2,0x68,0x44,0x7E,0x34,0x9C,0xE5,0x02,0xC4,0xA0,0xB2,0x65,0x65,
+ 0xA9,0xD5,0xD4,0xE9,0xAE,0xC4,0x84,0x07,0x4D,0x76,0x85,0x44,0xEF,0x75,0xD3,0xCF,
+ 0x8E,0x5A,0xF9,0x5B,0x71,0x9E,0x31,0xEC,0xBC,0xFE,0x7B,0xD8,0x7E,0x32,0xE0,0xB0,
+ 0x44,0x72,0x4A,0xFD,0x6D,0xFA,0xBE,0xAC,0x67,0x59,0x53,0x87,0xBF,0x43,0x71,0xCE,
+ 0x49,0x09,0xD9,0x0D,0x99,0xE4,0xE6,0xDC,0x55,0xFA,0xF4,0x43,0x9C,0x00,0x36,0x0D,
+ 0xF5,0xE4,0x28,0xD5,0x98,0x36,0x6A,0x20,0xB0,0x81,0x7C,0x39,0x6A,0x9F,0x09,0xBD,
+ 0x13,0xC0,0x3B,0x6A,0xD4,0xF8,0x79,0x3A,0x53,0x6F,0xBF,0xC9,0x1F,0xE5,0x3C,0x70,
+ 0x35,0xD1,0x31,0x61,0x5C,0xA8,0x99,0x62,0xA2,0x6B,0x83,0xB6,0x7B,0x01,0x93,0x88,
+ 0x65,0x4C,0x59,0x95,0xEB,0x68,0x45,0xCD,0xDC,0xEC,0x8F,0x6B,0x6A,0xF0,0x79,0xF4,
+ 0xC1,0xD8,0x68,0xE6,0x93,0x60,0xC0,0xA8,0xE8,0xE6,0xE0,0x12,0x51,0xDC,0x88,0xDF,
+ 0x1B,0xE8,0xE2,0xFB,0x19,0x91,0xD4,0xE1,0xB8,0x6F,0x27,0x17,0x84,0xB4,0x78,0x4E,
+ 0x9D,0x7A,0x0A,0x78,0x52,0x4A,0x4D,0x03,0x87,0xAF,0x94,0xF8,0xF8,0xA7,0x24,0x12,
+ 0xD7,0xF0,0xF2,0xA5,0x56,0xF0,0x24,0xC6,0x48,0x40,0x29,0x3A,0xE2,0x8F,0x0D,0x60,
+ 0x0A,0xA8,0x0D,0x23,0x74,0xC9,0x03,0x1B,0xD3,0x37,0x15,0x04,0x61,0xE8,0x2F,0x05,
+ 0x9F,0x29,0x22,0x6F,0x22,0xBB,0xB6,0x0C,0x11,0xB1,0xC0,0x43,0x68,0xC0,0x08,0x23,
+ 0xB2,0xCD,0x32,0xA2,0xBB,0xAE,0x6E,0x88,0xE5,0xDD,0x27,0xE5,0x78,0xEF,0x62,0x35,
+ 0x67,0x72,0x89,0xE3,0xB3,0xC3,0xF9,0xE8,0xA6,0x33,0x74,0x42,0x3D,0xB5,0x1F,0xAE,
+ 0x18,0xF5,0x1E,0xD4,0x9D,0x58,0x74,0xE9,0x0F,0x9A,0x62,0x25,0xFD,0x73,0x6F,0x9D,
+ 0x29,0x60,0x0A,0xB4,0xBA,0x06,0xFE,0x82,0x5A,0xA7,0x23,0x02,0x77,0x06,0x66,0x10,
+ 0x1C,0x36,0x10,0x37,0xAC,0x73,0x66,0x98,0x36,0x4A,0xCD,0x6F,0x15,0xA4,0x19,0xF7,
+ 0x4A,0xD7,0x03,0x38,0x9B,0xE4,0x61,0x1E,0x5D,0x79,0x87,0x2D,0xA2,0xA5,0xB1,0x2D,
+ 0xCE,0x91,0x2D,0xD0,0xAE,0x20,0xAB,0xA9,0x37,0x5F,0x22,0x0A,0x2C,0x34,0xEC,0xB3,
+ 0xE0,0xC7,0xD3,0xC4,0x68,0x49,0x42,0x1E,0x1C,0x2D,0xCD,0x54,0xEA,0x91,0xB0,0x6F,
+ 0x6D,0xC6,0x25,0x06,0x31,0x0C,0x76,0xA1,0x56,0x10,0x5E,0x77,0x57,0x80,0xEE,0x57,
+ 0x45,0x2A,0x00,0x22,0x6B,0x60,0xDD,0x8E,0xB8,0x06,0x8F,0x9F,0x03,0x64,0xC4,0x88,
+ 0x63,0xEF,0xCE,0x35,0x95,0xC1,0xA9,0x15,0xB1,0xC7,0x69,0xE2,0xD0,0x58,0xD5,0x57,
+ 0xE0,0x5E,0x87,0x51,0xFB,0x22,0xF4,0xFA,0x80,0xFF,0xA0,0x01,0x0C,0x3F,0x82,0xFB,
+ 0xC6,0x31,0x02,0xB0,0xBD,0xA3,0x78,0x59,0x32,0xC3,0x3E,0xC1,0x92,0xBD,0xE6,0x7C,
+ 0x1D,0xF9,0x5F,0x34,0x06,0x39,0xA0,0x11,0x91,0x19,0x16,0x39,0x10,0x90,0x56,0xE8,
+ 0xF2,0x99,0x03,0xDE,0x9F,0x7C,0x12,0x5C,0x11,0x66,0x25,0x23,0x44,0x81,0xB2,0x08,
+ 0xFB,0xC1,0x13,0x5B,0x76,0x64,0x91,0x93,0x2A,0x6A,0x2C,0x04,0xAD,0x5E,0x19,0xD4,
+ 0x33,0x4A,0x6D,0x2B,0x28,0x64,0xEE,0xA6,0xFD,0xFB,0x12,0xC8,0x99,0x75,0x42,0x09,
+ 0x35,0xC4,0xF7,0xDF,0x10,0x5D,0xBF,0xDB,0xBE,0xA6,0x72,0x14,0x82,0xF7,0xE4,0x92,
+ 0x18,0x10,0x5B,0x03,0xA3,0xDC,0x13,0x03,0x82,0x76,0x57,0x64,0x2D,0x20,0xAB,0xBB,
+ 0x3A,0x88,0xF5,0x53,0xC2,0x16,0x20,0xA3,0x31,0xEB,0xC2,0x4E,0xDC,0xA7,0xE4,0x38,
+ 0x4A,0x24,0xED,0x2F,0xCF,0x5E,0xF8,0x33,0xA2,0xA4,0x46,0x5A,0x5B,0x8A,0x6D,0xA7,
+ 0xB1,0xA6,0xD6,0x0E,0x02,0x11,0xB8,0xD6,0x7C,0x81,0xAE,0x72,0x22,0x60,0x35,0x09,
+ 0xAE,0x88,0xE5,0x4C,0x3D,0x08,0x70,0x7E,0x3C,0x8A,0x79,0xAD,0xFC,0xF3,0x73,0x2E,
+ 0x6B,0x10,0xA1,0x74,0xCC,0x4D,0x5D,0xAA,0x9C,0x73,0x67,0x7A,0xEA,0x8E,0x6F,0x9F,
+ 0x75,0x88,0xD8,0xB3,0x39,0xE2,0xF9,0x55,0x82,0xFA,0x30,0x7F,0x6F,0xA3,0x6F,0x94,
+ 0x0D,0x6E,0xBD,0xBF,0xA7,0x48,0x49,0x68,0x22,0x04,0x34,0x6C,0x5A,0xAD,0x4B,0x68,
+ 0x10,0x6B,0x5B,0xE1,0xD8,0x4A,0x45,0x4A,0x5F,0x1D,0xF6,0x49,0x2A,0xDA,0x87,0xC1,
+ 0x72,0x04,0x6F,0x34,0x2B,0x6E,0x22,0x97,0xBD,0xD4,0x52,0x76,0xF0,0x1D,0xEA,0x85,
+ 0x4B,0x39,0x55,0xE6,0x86,0xAA,0x40,0x42,0xC8,0xC7,0xAF,0x47,0x14,0xD1,0xC2,0x40,
+ 0xA2,0x1F,0xA7,0x58,0xEE,0xD9,0xFC,0x12,0xD8,0x47,0x99,0xEF,0xA1,0x5A,0xE0,0x23,
+ 0x1C,0xA4,0x3A,0x19,0x1A,0xCA,0x08,0xAA,0x04,0xF4,0x7D,0x16,0x8B,0xCA,0xD1,0x4A,
+ 0xF4,0x9D,0x8C,0x7A,0xBC,0x26,0x33,0x78,0xD4,0x5D,0x6F,0x7C,0xC9,0x69,0x7C,0x3E,
+ 0xB3,0xC6,0x18,0x05,0x3C,0xB7,0x3D,0x84,0xBB,0x0F,0xAB,0x0B,0xEA,0x85,0x6F,0xD7,
+ 0x4E,0x83,0x35,0x61,0x40,0x5A,0x14,0xD3,0x08,0x8B,0x36,0xE3,0xC4,0x81,0x84,0xA5,
+ 0x80,0x3E,0x92,0x6C,0x1E,0x64,0xB9,0xDD,0x3D,0xFF,0xFC,0xC6,0x82,0x14,0xA7,0x4C,
+ 0xB1,0x04,0xCA,0xCA,0x94,0xA0,0x5B,0x7A,0xBA,0x50,0xC1,0xA6,0x60,0x5B,0x67,0x71,
+ 0xBB,0xE1,0x5C,0xAA,0xB3,0x4D,0xA9,0x20,0x2F,0xE0,0x44,0x37,0x8D,0xFC,0xF4,0x5A,
+ 0xFE,0x14,0xDE,0xAD,0x6C,0x81,0x95,0x3A,0x3B,0x49,0xDC,0x40,0x28,0x8A,0x2D,0xC5,
+ 0x78,0x6A,0x03,0x51,0x3B,0xA8,0xA6,0x96,0x7D,0x34,0xE9,0x83,0x2B,0x65,0x85,0x98,
+ 0xBB,0x71,0x02,0xE0,0x95,0xC2,0x2E,0xCD,0x22,0xBB,0xE6,0xBD,0x58,0x97,0x57,0x81,
+ 0x57,0x38,0x24,0x49,0x84,0x20,0xC9,0x67,0xCC,0x27,0x4E,0xEF,0x15,0xE5,0xAD,0x49,
+ 0x12,0x23,0x4C,0x09,0x91,0x1C,0x85,0xB6,0x3D,0x30,0x68,0xCD,0xC3,0x08,0x49,0xD6,
+ 0x32,0x9F,0xD1,0xC3,0xC7,0x0E,0x41,0xEB,0xB7,0x83,0xAB,0x2A,0x2B,0xE3,0x96,0x87,
+ 0x01,0x5A,0xEA,0x67,0x03,0x4B,0x75,0x23,0x5A,0xD8,0x1F,0x07,0x29,0x38,0x0A,0xB4,
+ 0x27,0xD6,0xBA,0x8A,0xF3,0xE5,0xF1,0x73,0x62,0x24,0xA3,0xB2,0x99,0x96,0x8C,0xD3,
+ 0x10,0x06,0x1E,0x3A,0xED,0x51,0x83,0xD8,0xD4,0x71,0x48,0x64,0x4A,0x59,0x4A,0xBF,
+ 0xC3,0xB1,0x77,0x69,0xC2,0x85,0xFD,0xF4,0x78,0x44,0xA9,0x52,0xAF,0x70,0xF4,0x5B,
+ 0x0B,0x83,0x8F,0x4C,0x29,0x2C,0x08,0xE3,0x92,0xDE,0x38,0x05,0x25,0xEF,0x64,0x03,
+ 0x52,0xC1,0x40,0x50,0x94,0x75,0xF0,0xB1,0x3C,0xEE,0x3E,0x27,0x76,0x40,0x81,0x97,
+ 0x12,0xBC,0x9E,0x8E,0x55,0x1C,0x97,0xF2,0x3B,0xC7,0xDB,0xFB,0x12,0x38,0xA1,0xA8,
+ 0xE8,0xD0,0xAC,0x4F,0xBE,0x91,0x29,0x4B,0x06,0xC5,0x35,0xE7,0xA4,0x7B,0x1B,0x9C,
+ 0x8D,0xD5,0xD5,0x4B,0xA4,0x17,0xA2,0xF4,0x49,0xFC,0xCD,0x89,0xEB,0xA1,0xEA,0x95,
+ 0xBC,0xF6,0x85,0x45,0xF9,0x42,0x56,0x8B,0x4E,0x28,0x55,0xE6,0x3D,0x91,0xC6,0x66,
+ 0x1E,0x1A,0x85,0xF4,0x50,0xEA,0x77,0x28,0x66,0x9D,0x7E,0x20,0xFC,0x6E,0x5D,0x8A,
+ 0xF9,0xA4,0x95,0x52,0x89,0xF9,0x68,0x06,0x65,0x0E,0x37,0xD5,0xB0,0x0C,0x7D,0x6E,
+ 0x73,0x4A,0x6E,0xA0,0xA2,0x96,0xDD,0xE4,0xB2,0xA8,0x2D,0xFE,0xD0,0x55,0xF5,0x06,
+ 0x62,0x60,0x1E,0x0E,0xD7,0x83,0xB7,0xE1,0x36,0xFE,0x2C,0x1E,0x4D,0x84,0x15,0x6F,
+ 0xFC,0x80,0x9A,0x05,0xB9,0x1D,0xF7,0xFC,0x3F,0x2C,0x36,0x78,0x6E,0x62,0x03,0xA1,
+ 0x30,0xF4,0xA8,0xA9,0x79,0x4E,0xB7,0x09,0xC9,0x5E,0xEA,0x77,0x2C,0xFB,0x55,0xB2,
+ 0x2D,0x29,0x8E,0x0C,0x5A,0xF5,0x5C,0x00,0x3B,0x2E,0x89,0x01,0xAA,0xB2,0xE2,0x15,
+ 0x30,0x9B,0x45,0xA3,0x12,0xFA,0x88,0xA5,0x0D,0x61,0xC3,0xBC,0xB8,0xA1,0xC0,0x59,
+ 0x19,0x1B,0xA6,0xA9,0x91,0x5E,0x8D,0xC3,0x49,0x76,0xDE,0x1B,0x51,0x12,0xD2,0xB2,
+ 0x46,0x5B,0x2A,0xE6,0xD4,0x7C,0x9F,0xA1,0x50,0xA9,0xAE,0x92,0x8F,0x0B,0xFC,0xEB,
+ 0x0B,0xCB,0xE5,0xE6,0xAE,0xD4,0x7D,0xAB,0x60,0x2D,0x2A,0xAC,0x71,0x23,0xD1,0x91,
+ 0xB5,0x99,0xCF,0x34,0x2C,0xD3,0xC6,0xF0,0xED,0x38,0xA2,0x70,0x50,0xA3,0xDF,0xCD,
+ 0xA0,0x0F,0x28,0x41,0xB2,0x74,0x43,0x69,0x33,0x42,0xEB,0x43,0x3E,0x46,0x7C,0x1C,
+ 0x24,0xD0,0xCF,0x19,0xAF,0x86,0xB8,0xE4,0x1C,0x96,0x02,0xAF,0xEB,0xD1,0xCC,0x67,
+ 0x74,0x07,0x42,0xF7,0x8D,0x69,0x58,0x42,0x7D,0xDE,0x09,0x65,0x79,0xEE,0x86,0xC2,
+ 0x81,0x3D,0x96,0x3D,0x38,0xF0,0xB2,0x4C,0x29,0xB3,0xAB,0xA5,0x91,0x93,0x4C,0x9A,
+ 0xD7,0x78,0xCD,0xFA,0x7C,0x4E,0x4B,0x58,0x87,0x49,0x1D,0xED,0xC0,0x4E,0x48,0x63,
+ 0x01,0x0A,0xE0,0x68,0x9E,0xFB,0x50,0xCE,0xE4,0x16,0xCF,0xAC,0xAA,0x33,0x4E,0x5C,
+ 0xAC,0x57,0xE6,0xE2,0xFE,0x56,0x8E,0xFD,0xC4,0x5D,0x34,0x2F,0x3E,0x10,0x47,0xC6,
+ 0x47,0xF9,0xA8,0xDA,0xA2,0x13,0xF2,0x20,0x71,0x4C,0x2A,0x24,0x90,0x5D,0xC1,0x00,
+ 0xA4,0xB3,0x87,0x75,0xF2,0xF1,0x8A,0x2A,0x38,0x81,0xC6,0x6B,0x4D,0xEA,0xEE,0xAC,
+ 0x2E,0xEA,0xAE,0xF6,0x73,0x9B,0x59,0xF9,0xD1,0x0F,0x0C,0xF8,0x92,0x95,0xB8,0xAA,
+ 0xC3,0xAE,0x80,0x9A,0xD1,0x32,0x4A,0xC0,0x02,0xCD,0xA3,0xDE,0x4D,0xC5,0x2D,0x0E,
+ 0x9D,0x6C,0xE2,0x24,0x91,0x98,0x9D,0xE2,0x3B,0x8A,0x95,0xC7,0x33,0xC1,0xB1,0x46,
+ 0x62,0x12,0x12,0x64,0xC8,0x1E,0x39,0x01,0x5C,0x10,0x05,0x6F,0x37,0xE3,0xCC,0xC8,
+ 0xA3,0x38,0xD3,0xB9,0xE8,0xAD,0xD4,0x6C,0xCB,0x7A,0x1D,0x5A,0x9B,0x5C,0xB1,0x8F,
+ 0x04,0xAB,0xAE,0x82,0xA7,0xA2,0xC8,0x02,0x5D,0x82,0xF9,0xBC,0x70,0xF1,0x19,0x93,
+ 0x24,0xAD,0x14,0x33,0x92,0x0D,0x7E,0x14,0xDE,0xB1,0x1A,0x7B,0x64,0x85,0x5F,0x11,
+ 0xD0,0x90,0x7F,0xE3,0xB6,0xAE,0x1D,0x41,0xF4,0xC3,0x21,0x92,0x77,0x59,0xE5,0x95,
+ 0xDD,0xD5,0x53,0xB3,0x13,0x67,0x67,0xAC,0x59,0xB3,0x85,0x2A,0x01,0xB7,0xEA,0x21,
+ 0x8D,0x00,0xDB,0x14,0xE2,0x97,0x0B,0xB5,0x53,0x8A,0x9C,0x51,0x10,0x8A,0x11,0xE6,
+ 0xDA,0x78,0x8F,0xCD,0xFF,0x9D,0x4B,0x15,0x4F,0xC7,0x5C,0x6F,0x87,0x3C,0xDE,0x31,
+ 0x86,0xEA,0x21,0x6A,0xB0,0x67,0x19,0xF4,0xFD,0x45,0xF3,0x74,0x8D,0x4C,0x89,0x0E,
+ 0x21,0x24,0x35,0xD0,0x48,0xE8,0xD0,0x18,0x49,0xFC,0x99,0x02,0xB4,0xFC,0x5E,0x81,
+ 0x2E,0x53,0xD7,0xBF,0xD3,0x6A,0x3F,0x96,0x2D,0xB3,0x90,0x7B,0x50,0xAA,0xD6,0x86,
+ 0x1D,0x9D,0x33,0xA6,0x23,0xD6,0xBA,0xDF,0xA7,0x1B,0x12,0x91,0x24,0x29,0x56,0xC0,
+ 0xFD,0x4F,0x1B,0x7B,0xB3,0x81,0x9F,0x08,0x52,0xDC,0x48,0xDE,0x02,0x1E,0xEC,0xD6,
+ 0x3B,0xCC,0xB9,0x19,0x6C,0xC8,0x21,0x26,0x25,0xD1,0x29,0x55,0x4D,0xE1,0xD7,0xA0,
+ 0x6E,0x63,0x4A,0xB9,0xC7,0x71,0x2D,0x25,0xAF,0x8E,0x1E,0x20,0xC7,0xFA,0xA2,0xAE,
+ 0xC5,0x7F,0x84,0x04,0x30,0x9D,0x01,0x46,0xB7,0xAD,0x28,0x49,0x7C,0x75,0x5D,0x2F,
+ 0xAB,0x0F,0xB6,0x02,0x55,0x70,0x0F,0x8D,0xC0,0x84,0x52,0x87,0xDF,0xED,0xE4,0x85,
+ 0xC6,0xED,0x56,0x6E,0x50,0xE3,0xB7,0x95,0xFB,0xAA,0x03,0x4E,0x60,0x8E,0x02,0x2C,
+ 0x8E,0xEC,0x35,0x02,0x77,0xF9,0xCE,0xD1,0x27,0xA2,0x8A,0x00,0x6C,0x97,0xAA,0x7B,
+ 0xAD,0x7E,0x2D,0xBF,0xCB,0x99,0x54,0xCB,0xAD,0x3C,0x76,0xCA,0x01,0xA0,0x7F,0xF8,
+ 0xC1,0x93,0x91,0x1A,0xE7,0x5D,0xF5,0x3D,0x61,0x30,0x24,0x17,0x9B,0x5B,0xC2,0x59,
+ 0x7B,0xA1,0x4A,0x68,0x47,0xC0,0xD0,0x2C,0xDB,0xC1,0x5F,0x61,0x71,0xBE,0xAF,0x6E,
+ 0x8F,0xCB,0x5B,0xD0,0xAE,0xF1,0x75,0xE4,0x94,0x92,0xB0,0x9E,0x43,0xE8,0x1C,0x50,
+ 0xEE,0x31,0xA8,0xA2,0x5E,0xC1,0x44,0xF6,0x85,0x02,0x29,0x07,0x2B,0x9A,0x59,0xEA,
+ 0x94,0x55,0xC5,0xB6,0xB3,0x4F,0xF8,0xE3,0x97,0xF6,0x32,0x09,0x08,0x0D,0x84,0x1B,
+ 0xA6,0x01,0x8E,0xB0,0x66,0xA7,0xB2,0xE8,0x66,0xFA,0x5C,0x05,0x14,0x59,0xB4,0x31,
+ 0xC5,0xB7,0xF4,0xF4,0xFB,0xB1,0x93,0x3E,0xA7,0x81,0x56,0x95,0xD9,0x7D,0xDE,0x3E,
+ 0x04,0x16,0xD2,0x74,0x90,0x77,0x4E,0x79,0x36,0x3D,0x11,0xBE,0x3D,0xBC,0x81,0x1E,
+ 0xD6,0x39,0x05,0x87,0xB6,0x77,0xFD,0x12,0x27,0x47,0x25,0x24,0x78,0xB2,0xC7,0x88,
+ 0xA9,0xB0,0xBE,0x80,0x52,0xCF,0x0E,0x04,0xB7,0x0B,0xC3,0x9F,0x9E,0x4F,0xAC,0x06,
+ 0x16,0x63,0x04,0xD6,0x97,0xEE,0x26,0x94,0x94,0x54,0xB4,0x4B,0xE8,0x8D,0x6F,0x6C,
+ 0x37,0x60,0x45,0x27,0x23,0xF2,0x0E,0x9E,0x82,0x4E,0x7A,0x2A,0x6F,0xE0,0xF9,0xDE,
+ 0x0A,0xDA,0x44,0x39,0x2A,0x89,0x4A,0x14,0x53,0xFC,0xE4,0x3A,0xFD,0x27,0x5E,0x79,
+ 0x04,0x25,0x87,0xC0,0xD5,0x0A,0xBE,0xAC,0x3D,0x98,0xAA,0x90,0x08,0x12,0x39,0xEB,
+ 0x9B,0x88,0x89,0xE9,0xC2,0xB7,0xD4,0x84,0x05,0x73,0x6F,0xA1,0xC7,0x23,0x64,0x9E,
+ 0xD8,0xBA,0xFB,0xBF,0xD7,0xDA,0x2F,0x94,0xEE,0x2C,0xF5,0x16,0x4C,0xF0,0x1A,0xB9,
+ 0x96,0xAE,0xB5,0x52,0xA5,0xF3,0xBB,0x12,0x5E,0x43,0x03,0xC0,0xB8,0x70,0x54,0xDA,
+ 0xAA,0x6D,0x4F,0xDF,0x8B,0x42,0x6D,0xC4,0x3B,0x6E,0x9A,0xFE,0x8A,0x6F,0xE2,0x9D,
+ 0xB7,0x1D,0xFF,0xE5,0x10,0x96,0x0E,0xA9,0x68,0x6A,0xDA,0xAE,0x6C,0x95,0xF0,0xF2,
+ 0xC3,0xC0,0x8B,0x60,0xE4,0xF1,0xCF,0x39,0x2B,0x44,0xE7,0x92,0x08,0x09,0x24,0xD7,
+ 0x98,0x94,0x43,0x59,0x57,0x30,0x75,0xF5,0x10,0x38,0x51,0x7F,0x33,0x2B,0x01,0x97,
+ 0x9A,0x87,0x68,0x57,0x5A,0xB8,0xF6,0x8A,0xC2,0xEB,0xE4,0x6D,0x24,0x61,0x24,0x6B,
+ 0x12,0xEF,0xB6,0x82,0xC1,0x3F,0x5B,0x37,0xFC,0xBC,0x01,0x4D,0x8D,0x8A,0x25,0xA2,
+ 0xBA,0x1B,0x3C,0xD4,0x10,0xEF,0x72,0x5B,0xDD,0xAD,0xAB,0x57,0x50,0x00,0x8D,0x3A,
+ 0x34,0xCC,0xB7,0xF2,0xA6,0xA4,0x75,0x90,0x51,0x91,0xA9,0x28,0xE1,0x0B,0x8C,0xBC,
+ 0x8E,0xA9,0x9C,0x06,0x6E,0xDF,0x56,0xD0,0x25,0x09,0x0C,0x00,0x59,0x89,0xDF,0x56,
+ 0x41,0x09,0x96,0xC7,0xFA,0x1F,0x92,0x39,0x61,0x9C,0x62,0xF9,0x47,0x0E,0x89,0x9E,
+ 0xF4,0x72,0xC6,0x8C,0x8B,0xD5,0x40,0x94,0x32,0x98,0xEC,0xE8,0x52,0xBB,0xE6,0x32,
+ 0xA1,0x74,0xD0,0x2B,0xF1,0x39,0x37,0xF1,0x77,0x97,0x4D,0x1C,0x20,0xD2,0xA5,0x30,
+ 0x7C,0xA9,0x0D,0xD4,0x64,0x47,0xEB,0xD2,0x5D,0x09,0x0D,0x12,0x5D,0xA1,0x37,0xED,
+ 0xCC,0xB1,0x52,0x09,0x2E,0x64,0xED,0x90,0x4D,0xDA,0xCB,0xB7,0x7D,0xEC,0xEB,0xBC,
+ 0x8F,0xDB,0x19,0xA8,0xF0,0x13,0xE2,0x3D,0xE9,0x21,0xA1,0xCD,0x3A,0x80,0x79,0x44,
+ 0xC0,0x18,0x2F,0xC6,0x5C,0x57,0x6E,0x77,0x60,0x7B,0x89,0x71,0xFF,0x2C,0xEB,0x3D,
+ 0x40,0x68,0x9F,0x2E,0xF6,0x70,0xA5,0xD9,0x83,0x05,0x6A,0xF3,0xE3,0x4B,0x80,0x04,
+ 0xA4,0x88,0xCC,0x15,0x10,0x77,0xC9,0x6C,0xF4,0x7A,0x50,0x2C,0xB0,0x3A,0x6D,0x01,
+ 0x04,0x65,0x67,0x24,0x99,0xA5,0x08,0x34,0x5F,0xC1,0x53,0xA2,0x4C,0x5D,0x79,0xF7,
+ 0x62,0x1A,0xC2,0x04,0x28,0x0B,0x6D,0x67,0xD4,0xCF,0xC8,0xED,0xC8,0xCE,0x16,0x12,
+ 0x8E,0x0C,0xBF,0xF0,0x06,0xEE,0xBE,0x38,0xED,0x96,0xF5,0xED,0xC9,0x5D,0xD1,0xBB,
+ 0x8A,0xFC,0x2C,0x3C,0x5B,0xEA,0x80,0x5E,0xDC,0x11,0xA6,0x9A,0x24,0x16,0xB8,0x3E,
+ 0xD2,0x50,0x37,0x15,0xC7,0x68,0xB6,0x53,0xA3,0x31,0xE7,0xD3,0x3A,0x37,0xE9,0x3B,
+ 0x7E,0xAC,0x05,0x03,0x68,0x47,0x30,0x45,0x59,0x5A,0x59,0x2B,0xED,0xB1,0x66,0xE6,
+ 0x34,0x82,0x7D,0xD2,0x2C,0x1C,0x26,0xFB,0x89,0x8B,0x8A,0x31,0x3F,0x5D,0x6B,0x25,
+ 0xE4,0x21,0x5F,0xEB,0xC2,0x51,0x2A,0xD0,0xDF,0x41,0x2E,0x7E,0x42,0x16,0xAD,0x6A,
+ 0x86,0xB6,0x3D,0xC0,0x0D,0xF0,0x83,0x5B,0x17,0xA8,0x00,0x24,0xD7,0xD9,0x04,0x04,
+ 0xA3,0xAE,0x81,0xAA,0x20,0x30,0x2C,0xA3,0x84,0x2D,0x5A,0x1C,0x9D,0xA1,0x81,0x74,
+ 0x5C,0x79,0x3E,0x0B,0xE1,0xA9,0x69,0xE3,0x45,0xF6,0xAE,0x32,0x49,0x18,0xB2,0xCB,
+ 0x73,0x5E,0x27,0xA1,0x31,0x97,0x38,0x49,0xB1,0x7B,0x75,0x91,0xCC,0x92,0xD0,0xB5,
+ 0xA1,0xBB,0xDB,0x7C,0x89,0x51,0x38,0xAA,0xCC,0xCF,0x7F,0xCA,0xE7,0xA0,0x98,0x7B,
+ 0xA8,0xEE,0x58,0x36,0x23,0x2C,0x98,0xC4,0x42,0xAB,0x42,0x0F,0x09,0x42,0xDE,0xB2,
+ 0xFB,0x28,0x1D,0xCA,0x85,0xB6,0x31,0xA2,0xD3,0x19,0x53,0x3A,0xA3,0x0B,0xB6,0x13,
+ 0x64,0x46,0x14,0xD1,0x09,0xB5,0xFC,0x69,0x5B,0xD2,0x16,0x59,0xF0,0xCA,0x8F,0x33,
+ 0x1B,0x2E,0xA5,0xB6,0x2A,0x76,0xAD,0xB5,0x31,0x53,0xAD,0x12,0xF5,0xFE,0x5E,0x5C,
+ 0x58,0x93,0xFE,0x77,0x3B,0x92,0x25,0xF2,0x15,0x8D,0xE5,0xAF,0x21,0xAA,0x56,0x2E,
+ 0xF5,0x1A,0xF9,0x0D,0x49,0x4E,0x24,0xCF,0xD8,0x21,0xC6,0x30,0x96,0xBF,0xD5,0x0B,
+ 0x2D,0xCE,0xC2,0x76,0x35,0xBD,0x5D,0xF2,0x88,0x12,0x8F,0x2A,0xB6,0xDB,0xB1,0x8C,
+ 0x3C,0x07,0x95,0x9C,0x6D,0xA6,0x0E,0xF7,0x29,0x22,0x4A,0x26,0xF7,0x50,0x6A,0x2B,
+ 0x27,0x98,0x49,0xB1,0xED,0x22,0xF3,0x61,0xCE,0x10,0x1C,0x64,0x61,0x1B,0xDE,0x54,
+ 0xF7,0x20,0xAB,0x87,0x01,0x17,0xA4,0x52,0xC7,0xF6,0x8F,0x67,0xFD,0x12,0x51,0x4E,
+ 0x9F,0x6E,0xCD,0x7B,0xB9,0xCB,0x55,0xDC,0xFD,0xAB,0x59,0x96,0xCC,0xB8,0x98,0x3C,
+ 0x48,0xB0,0x47,0x2C,0xF1,0xC4,0xCF,0xC4,0xDC,0xED,0x4E,0x0C,0xF4,0x63,0xA9,0x7F,
+ 0x0B,0x83,0x39,0x50,0xD7,0xAD,0xB6,0x34,0x2F,0x31,0x57,0x93,0xCD,0xCE,0x68,0x4D,
+ 0x9B,0x92,0x12,0x4E,0xF9,0x76,0xB1,0xE7,0x32,0x95,0x66,0x1F,0xAD,0x3D,0x24,0x10,
+ 0x45,0xF7,0x3D,0xFC,0x01,0x66,0x71,0x35,0x43,0xDF,0x60,0xDE,0x57,0xBD,0x77,0x1E,
+ 0xD5,0x81,0x1C,0x6A,0xDE,0xCE,0x27,0xAC,0xCA,0x7F,0xD6,0x70,0x70,0xA5,0x83,0xBD,
+ 0xCF,0x24,0x72,0x99,0xE2,0x78,0x32,0x97,0x1A,0xCA,0x00,0xE3,0x45,0x28,0xC1,0x76,
+ 0xC9,0x65,0xE7,0x5E,0x20,0xC3,0x0B,0xE9,0x88,0x87,0x93,0x90,0x58,0x97,0x2F,0x00,
+ 0x7D,0x7C,0x42,0x45,0xE2,0x25,0xFA,0xAF,0x22,0x34,0x8B,0xBF,0x4E,0x68,0x6C,0x47,
+ 0xC0,0x20,0x00,0x4A,0x84,0xF9,0x6A,0xC0,0x75,0xF9,0x78,0x7A,0x41,0xAC,0x7A,0xFF,
+ 0xF6,0x03,0x4A,0x23,0xA5,0x02,0x9C,0x8F,0x7A,0x31,0xE5,0xC9,0x49,0xB3,0x62,0xCB,
+ 0xBA,0xC4,0x8B,0x57,0x0D,0x83,0xB0,0xA1,0x70,0x5E,0x84,0x44,0x7D,0x0C,0xD6,0x9D,
+ 0x12,0xEF,0x94,0xFF,0x08,0xED,0xFC,0xEF,0xD9,0x4B,0x19,0x4B,0x34,0xC8,0x71,0x34,
+ 0x67,0x73,0xA0,0x96,0xCC,0x8B,0x5D,0x1B,0x2A,0xA6,0x96,0x55,0xAE,0x28,0x18,0x3C,
+ 0x8A,0xCD,0x16,0x63,0xD7,0x4C,0x3E,0xF0,0xEC,0xAE,0x3A,0xFE,0x2C,0x34,0x5E,0xAD,
+ 0x3F,0xDE,0x18,0xAE,0xE2,0xEB,0x2C,0x6E,0xE4,0xCC,0x53,0xD6,0x50,0xD7,0xFE,0xCD,
+ 0x62,0x72,0x4D,0x9E,0x47,0x3B,0x29,0xF2,0x88,0x0E,0x1C,0x5D,0xD5,0xB6,0x9C,0x0F,
+ 0x43,0x27,0x8F,0x46,0x21,0x76,0xAC,0x1E,0x2A,0xE0,0xA5,0x71,0x24,0x91,0x2F,0xD9,
+ 0xD7,0x9B,0x37,0xB3,0x4F,0x92,0xC1,0x66,0x54,0x54,0x3F,0x38,0xD7,0xEE,0x75,0x54,
+ 0x12,0x9B,0x62,0x0D,0xFB,0x7D,0xD3,0x02,0x42,0x47,0x81,0x46,0x91,0x4D,0x8A,0xE5,
+ 0xF7,0xD0,0xFB,0xCC,0x0D,0x9D,0x2D,0xEF,0x6D,0x24,0x5F,0xC5,0x75,0x6C,0xB6,0xD4,
+ 0xF2,0xE1,0x90,0xBB,0xAD,0x90,0xC2,0x63,0xE7,0x93,0x21,0x76,0xFB,0xD5,0x9D,0x78,
+ 0x2F,0xD5,0xC3,0x08,0x9E,0xAE,0xB3,0xE7,0x21,0xCE,0x57,0x6F,0x12,0x57,0x01,0x44,
+ 0xB1,0x44,0x89,0x88,0x89,0x15,0xDB,0x66,0xD7,0x7F,0x8F,0x26,0x4D,0x7C,0x95,0xC3,
+ 0xEE,0xAE,0x79,0xED,0xD9,0xBE,0x82,0xC8,0xFA,0xEE,0x8A,0x9D,0x57,0xFC,0x11,0xCA,
+ 0xF0,0x94,0x95,0x76,0xDF,0x52,0x86,0x05,0xF4,0x6C,0x0E,0x2C,0xA0,0xF2,0xC6,0x72,
+ 0x39,0x2F,0xA9,0xF1,0x69,0x8D,0x2D,0xC9,0xC3,0xE2,0xBC,0x2B,0x36,0xFB,0xCB,0xD6,
+ 0xED,0x8D,0x2D,0xD6,0xFE,0x26,0x98,0xC9,0x87,0x95,0x63,0xDF,0xBE,0xD4,0x8B,0x4A,
+ 0x1F,0x9A,0x51,0x92,0x51,0x57,0xDB,0xFD,0x17,0x73,0xE5,0x6D,0x21,0x62,0x01,0xA2,
+ 0x94,0xEE,0xFF,0xCE,0x15,0xD8,0x68,0x62,0x31,0x56,0xD3,0x74,0x34,0xF1,0xC7,0x75,
+ 0x23,0xAC,0xE7,0x91,0x50,0x15,0x15,0x4E,0xE8,0xA8,0xD8,0xFE,0xE5,0x2A,0xCF,0x84,
+ 0x7E,0xB0,0x48,0x9F,0xF4,0xC0,0x86,0xA2,0x9D,0xD6,0x1F,0x90,0xCC,0x55,0x24,0x1E,
+ 0xDE,0x29,0x1E,0x91,0xCD,0xBF,0x62,0x00,0x86,0xF6,0xDB,0xB6,0x58,0x91,0x26,0x8C,
+ 0xD4,0xAA,0xF5,0xCE,0xC0,0x8B,0xED,0x70,0xF9,0x5F,0x47,0x7B,0x04,0xDE,0x8D,0x2E,
+ 0x3E,0x29,0x9D,0x55,0x8A,0x2A,0x3B,0x3E,0x99,0x51,0xE9,0xF2,0xC1,0xC3,0x77,0x55,
+ 0x36,0xC2,0x8C,0xD6,0x1F,0x58,0xB3,0x64,0xC9,0x83,0x53,0x76,0x20,0xC7,0x5D,0x3B,
+ 0xFA,0xE9,0x3D,0x8A,0xBA,0xDC,0x04,0x15,0x7C,0x21,0x6E,0x43,0x6B,0xD1,0xB9,0xAE,
+ 0xBF,0x6C,0x8B,0xCC,0xBF,0x83,0x2D,0x5F,0xD7,0x04,0x01,0x92,0x37,0xA1,0x09,0xF4,
+ 0xAD,0x11,0x8B,0x26,0x08,0x8D,0x8D,0x7F,0x13,0xA6,0x8E,0xE7,0xD4,0x36,0xB0,0x6A,
+ 0x71,0x92,0x18,0x6B,0x87,0x85,0x02,0x34,0x9B,0x63,0xF9,0xA2,0x65,0x15,0x4E,0xE6,
+ 0x8F,0xBB,0x54,0x22,0x91,0x81,0x0F,0x5C,0xA7,0xCE,0x02,0x26,0xA0,0x8D,0x11,0x1F,
+ 0x83,0x87,0xB3,0xEF,0x6A,0x03,0x49,0x02,0x13,0x32,0x25,0x55,0x43,0x8C,0xED,0x27,
+ 0x8D,0x13,0xD1,0x92,0x4F,0xBD,0x04,0xA2,0x0E,0x07,0x32,0x58,0x6F,0x46,0xC2,0xFA,
+ 0x37,0x1D,0xF1,0xC2,0x7C,0xE7,0x63,0xBC,0x92,0xB0,0x9A,0xCC,0x18,0x6E,0x7C,0xD9,
+ 0x36,0x2F,0x8B,0xF1,0xEB,0x8B,0x4E,0xDA,0x9E,0xC1,0x8D,0xE2,0x94,0xF0,0x7C,0xA4,
+ 0x1D,0x70,0xDB,0x87,0x2A,0xFC,0x0D,0xDE,0xC2,0xFF,0x00,0x3F,0x19,0x80,0xDA,0xFB,
+ 0x66,0xF0,0xB5,0xFD,0x22,0x76,0xE5,0xBD,0x36,0x15,0xBD,0xC7,0xCD,0x90,0xB7,0xC5,
+ 0x1B,0x01,0xCA,0xC8,0x9B,0x8E,0x83,0x4E,0xE6,0xA5,0x25,0xCE,0x56,0x18,0x3E,0xB1,
+ 0x4A,0xC2,0xC6,0x35,0xA1,0x4A,0x91,0x53,0x1E,0x92,0x25,0x6B,0x0E,0xD0,0x97,0x9C,
+ 0xCF,0xAA,0xA4,0x3C,0xAE,0xE8,0x74,0xB0,0xC8,0x43,0xFE,0xFA,0x04,0x11,0xA5,0xBB,
+ 0x23,0x15,0x4F,0x90,0x40,0x90,0xB6,0x67,0x26,0x5B,0x6A,0x4A,0x3A,0x2E,0xA9,0x8C,
+ 0x82,0x51,0x20,0x86,0x00,0x2B,0x61,0x38,0x53,0x35,0x0E,0xFC,0x59,0x3C,0xE1,0xA4,
+ 0x15,0xB6,0x6A,0xFE,0x2F,0x80,0xE6,0x6D,0xBC,0xD4,0xAB,0x34,0xAD,0x2B,0x35,0x99,
+ 0x62,0x66,0x35,0x5A,0xFF,0xE8,0x40,0x34,0xBE,0xDE,0x8A,0xB2,0x78,0x24,0x90,0x46,
+ 0x7F,0x27,0x00,0xE7,0x31,0x30,0x1C,0x5E,0x16,0x1E,0x78,0xE5,0x9F,0x80,0x66,0x97,
+ 0xEE,0xF3,0x49,0x24,0xD8,0x22,0x2C,0x8B,0x68,0xA5,0x38,0x37,0xA4,0x46,0x59,0x3A,
+ 0x51,0x7B,0xB4,0x77,0x91,0x72,0xDA,0x83,0x95,0xF5,0xC9,0xEB,0x40,0x70,0xA1,0xE6,
+ 0x8B,0x92,0xE7,0xEF,0x5E,0x80,0xB4,0x39,0xCC,0x47,0x28,0x98,0x12,0x81,0xEE,0x8E,
+ 0x8F,0xF6,0x76,0x5D,0xB7,0x25,0x4A,0x9C,0xE1,0x4B,0xD1,0xAA,0x0C,0xF0,0xC8,0x2B,
+ 0xE3,0x24,0xAB,0x58,0x7B,0x95,0x71,0x57,0x26,0xC4,0x1C,0x12,0x27,0x75,0x59,0x41,
+ 0xC5,0xF1,0x10,0xDE,0xEC,0x4F,0xE1,0x17,0xCA,0x38,0xB5,0x7D,0x17,0xC4,0x7C,0x0B,
+ 0xDF,0xEB,0x9F,0xF8,0xDB,0x34,0xE4,0xC6,0x6F,0x70,0x68,0xEF,0xA7,0x4B,0x11,0x33,
+ 0xEC,0xF8,0x01,0x91,0x35,0x0A,0x24,0x6F,0xB2,0x5A,0xED,0x67,0x70,0x4B,0x0F,0x11,
+ 0xE9,0x5E,0x66,0x47,0x51,0x2A,0xF6,0xED,0xB5,0xA6,0x7A,0x5E,0x24,0xB3,0xC9,0x18,
+ 0x46,0x1C,0x15,0x6D,0x2C,0x6B,0xE4,0x01,0x21,0x8D,0x36,0xDB,0x0A,0xDB,0x59,0xFB,
+ 0x5F,0x14,0x8B,0x3A,0x3E,0x59,0x8E,0x1D,0x9F,0x3C,0xAA,0x67,0x49,0x44,0xD7,0xA4,
+ 0x32,0x9E,0xE6,0x3D,0xCA,0x5B,0x59,0xEF,0xBB,0x0B,0xB5,0x14,0x97,0x9A,0x49,0x84,
+ 0x3D,0xC5,0xE0,0x3D,0xFB,0xEA,0xD2,0x03,0xC4,0xE7,0xC3,0x26,0x28,0xC5,0xCC,0x5E,
+ 0xAA,0x00,0xB8,0x66,0x38,0xF3,0x23,0xC4,0x00,0xD8,0x39,0x90,0xBF,0x16,0x72,0x85,
+ 0xFA,0xA9,0xEF,0x5C,0xD5,0x02,0x93,0x89,0xC4,0x3B,0x28,0x5A,0x8E,0xFC,0x36,0x32,
+ 0x46,0x2A,0x26,0x74,0x3D,0xD3,0x3D,0x42,0x3A,0x71,0x5D,0x2F,0x63,0x83,0xB6,0x57,
+ 0x4A,0x24,0xB6,0x0C,0x2F,0xFA,0xAD,0x25,0xFF,0x43,0xE4,0x68,0xDD,0x60,0xDF,0x1C,
+ 0x60,0xB1,0xC2,0x00,0xE4,0xD8,0xDC,0x7E,0xDC,0x0E,0x85,0xDA,0x1E,0x94,0xE6,0x8D,
+ 0x9A,0x38,0x35,0xE5,0x3C,0x5C,0x81,0x68,0x66,0x5E,0x6C,0x71,0x36,0xFE,0xD8,0x1B,
+ 0x38,0x96,0x60,0x05,0x5D,0x35,0x27,0x02,0x17,0x03,0x34,0x34,0x9D,0x85,0xB9,0xA0,
+ 0x11,0x9F,0x49,0xF3,0x7A,0xB5,0xF1,0x78,0xAD,0x3A,0xE3,0x58,0x2C,0x08,0x15,0xBD,
+ 0xCE,0xB9,0x54,0xFA,0x84,0xB2,0x25,0xD0,0x6F,0x5F,0x62,0xF7,0xE1,0xD6,0x2A,0x15,
+ 0x14,0x3D,0xFC,0xAF,0xD5,0xFD,0x9F,0x80,0xB8,0xF6,0x37,0x63,0x52,0xB1,0x35,0xAF,
+ 0x00,0x2F,0xE8,0xB2,0x5A,0xAF,0x03,0x4F,0xE4,0x14,0x28,0x94,0xA1,0xE8,0x63,0x7B,
+ 0xA5,0x80,0x9E,0x37,0x10,0x94,0x1C,0x1F,0x77,0x76,0x1C,0x09,0x13,0x87,0x43,0x2F,
+ 0x55,0xDD,0x45,0x24,0x0C,0x58,0x2E,0x38,0x34,0x2F,0x97,0x08,0x17,0xB4,0x79,0xBD,
+ 0x88,0x2A,0x07,0x84,0xEB,0x6E,0x18,0x7A,0x54,0xA3,0xBF,0x65,0x8E,0x3E,0xBE,0xEC,
+ 0x93,0xB7,0xAF,0xCF,0xA8,0x93,0x82,0x30,0x2C,0x62,0xC0,0x68,0xA5,0x8F,0x36,0xA0,
+ 0xB6,0x49,0x4D,0x52,0x7D,0x6E,0xC3,0x60,0x88,0x12,0x9B,0x94,0x46,0x7F,0xFA,0x00,
+ 0xE4,0x45,0x00,0xB8,0x14,0x3C,0x7F,0x54,0xA8,0x71,0x9E,0x01,0xE4,0x67,0x00,0x98,
+ 0xBC,0x86,0xCA,0x58,0x82,0xD5,0xBB,0x35,0x51,0x35,0x4D,0x3B,0xB2,0x43,0xFD,0xBA,
+ 0x7F,0xDA,0x68,0x2C,0x0D,0xDB,0xC9,0xC2,0x79,0x8F,0x43,0xED,0x7B,0x5A,0x45,0xA9,
+ 0x89,0xE3,0xA7,0x5F,0x62,0xD9,0x29,0x48,0x6F,0x97,0x6A,0x2B,0xB6,0x96,0x0E,0x2F,
+ 0x8E,0xB5,0x25,0xBB,0x63,0x1E,0xB1,0x2F,0x6D,0xF5,0x7A,0xE9,0x1A,0x58,0xF7,0xA9,
+ 0xC9,0x98,0x35,0xCB,0xD9,0x98,0x20,0xDB,0x35,0x67,0xD3,0x55,0xF3,0xA9,0x32,0x31,
+ 0xBE,0x69,0x9A,0x4E,0x43,0xD6,0x9E,0x95,0x0F,0xB8,0x66,0x70,0x83,0xD6,0xC7,0x31,
+ 0x86,0x96,0x0D,0xCD,0x09,0x07,0x48,0xAC,0x02,0x6F,0xE1,0x00,0x57,0xBF,0xCD,0x64,
+ 0x71,0x71,0xED,0x3F,0xDC,0x7F,0x0E,0x80,0x08,0x68,0xE3,0xE3,0xAC,0xEC,0x13,0x90,
+ 0x9C,0xEC,0x8D,0x87,0x92,0x37,0xAF,0xC2,0xB6,0xDF,0x45,0xBE,0xA1,0x99,0x1F,0x9F,
+ 0x09,0xF4,0xA9,0x72,0xEB,0x87,0x77,0x7C,0x77,0x0F,0x7A,0xE7,0xFD,0x7C,0xC5,0xEB,
+ 0x83,0xCC,0x1C,0x56,0xA2,0xD3,0x67,0x19,0x80,0xD8,0x22,0xE8,0xC4,0x8A,0x31,0x2C,
+ 0x86,0x15,0xCD,0x9C,0x58,0xED,0x02,0xD8,0x06,0x9B,0x0A,0xEB,0x67,0x66,0x5C,0x28,
+ 0x4F,0xFE,0xC4,0x68,0xCA,0xB5,0x6B,0xDB,0x2D,0x91,0x72,0x6F,0x86,0x66,0x12,0x2F,
+ 0xA5,0xF0,0x16,0x47,0x84,0x0C,0xCC,0x42,0xFA,0xF7,0x9A,0x3B,0x43,0xCC,0x73,0x41,
+ 0x92,0xB4,0xB5,0x6E,0x18,0xDE,0x6F,0x4D,0x37,0x8C,0xCC,0x4C,0x02,0x8B,0x08,0xFC,
+ 0x2A,0x6C,0x9F,0x2C,0x8D,0x3C,0xD4,0x29,0x31,0x53,0xE0,0x24,0x8D,0xD6,0xAC,0x8C,
+ 0xA6,0x6E,0xFE,0xD1,0xFC,0xE4,0x9B,0x7D,0xC6,0x6D,0xD1,0x63,0x61,0xB7,0x30,0xCC,
+ 0xCF,0x33,0xA3,0x6A,0x51,0x6A,0x4A,0x1C,0x98,0x42,0xF1,0x73,0x6D,0xAB,0x4C,0x7C,
+ 0x14,0x62,0x02,0xBC,0x90,0xF8,0x4B,0x9E,0x61,0x64,0x38,0x88,0x2D,0x61,0x76,0x0E,
+ 0xF1,0x9E,0x6A,0x8F,0x37,0xC2,0x5C,0xD4,0xAE,0x54,0x67,0xAD,0x4F,0xF4,0xF8,0x59,
+ 0x26,0xE6,0x58,0xE6,0xEE,0x2D,0x3A,0x83,0x18,0x6D,0xE0,0x0D,0x72,0x42,0x4B,0x6A,
+ 0x59,0xDA,0x25,0xB4,0x8A,0xA9,0xA4,0xA3,0x87,0xDF,0x50,0x8F,0xEF,0x35,0x18,0xC3,
+ 0x12,0xCA,0xFD,0xBE,0x82,0x78,0xA9,0xF6,0x8B,0xA1,0x31,0xF7,0xA9,0x3F,0x26,0x59,
+ 0x4F,0xAF,0x91,0xFB,0x11,0x81,0xDF,0x47,0x3D,0xC8,0xA5,0x12,0x19,0x60,0xEF,0xAA,
+ 0xD5,0xFB,0x93,0xA8,0x4B,0x95,0xD6,0x6A,0xED,0x17,0x57,0x26,0xE2,0x27,0x55,0xAA,
+ 0x33,0x2A,0x92,0x81,0xA0,0x14,0xAB,0x12,0x83,0xA4,0xA1,0xE2,0x85,0x15,0x74,0x38,
+ 0x9D,0x95,0xE6,0x18,0xD5,0xCD,0x5E,0xC0,0xB9,0x66,0x3C,0x62,0x3A,0xF6,0xCC,0xBB,
+ 0xB1,0x88,0x04,0x41,0xAE,0x18,0xCE,0x80,0x61,0xF9,0x5A,0x89,0x8F,0x24,0x0E,0xFC,
+ 0x0A,0xDC,0xC2,0x57,0xEB,0x17,0xAE,0x2F,0x51,0x17,0x1F,0xE0,0x95,0xFE,0x08,0x5C,
+ 0x05,0xE8,0x0A,0x7D,0x15,0x7A,0xED,0x2E,0xD2,0x3C,0x0D,0x9C,0x4C,0xF3,0x79,0x91,
+ 0x86,0x84,0xD3,0x58,0x86,0x9E,0x05,0x16,0x9B,0xA8,0x1B,0x0B,0x2A,0x2F,0x77,0xFC,
+ 0xF2,0x0F,0xA0,0xBF,0x40,0xBF,0x15,0xCE,0x2D,0x70,0xD7,0xA4,0xB2,0x1C,0x76,0x08,
+ 0x7C,0xF6,0x09,0x3B,0xFF,0x3D,0x2F,0x7B,0x67,0x63,0xCC,0x31,0x27,0xBA,0x82,0xBF,
+ 0x59,0xA1,0x57,0x7C,0xBD,0x8F,0x98,0xC5,0x55,0xCA,0xC2,0x0A,0x60,0x7A,0x1D,0x5A,
+ 0xC7,0xA5,0xE0,0xFE,0x08,0xB8,0xED,0xB0,0xAA,0xB8,0x2E,0xB1,0x66,0x3D,0xE4,0x32,
+ 0xCA,0xF8,0x80,0x21,0xB6,0x2F,0x80,0x55,0x61,0x85,0xA9,0x31,0x69,0x69,0x36,0xA8,
+ 0x16,0xE3,0xC5,0xB2,0xA3,0xBB,0x9E,0x16,0x3B,0x3C,0xDE,0xB0,0xE3,0x3D,0x35,0x95,
+ 0x70,0x61,0x55,0x2D,0x97,0x78,0xB3,0xA0,0x59,0x40,0x9A,0x7F,0x0A,0xED,0xB8,0x4F,
+ 0x2D,0xFC,0x77,0xA2,0x9E,0x58,0x53,0x7C,0xA0,0x9A,0x8F,0xAF,0x3E,0x72,0x1E,0x59,
+ 0x31,0xC1,0xF5,0x5D,0x70,0xD8,0xDF,0x7D,0xB2,0x67,0xB0,0x3E,0x5A,0x9B,0xE1,0x67,
+ 0x0B,0xC8,0x32,0xD8,0xDF,0xE2,0x02,0x11,0x65,0x57,0xB9,0x4A,0xE4,0x64,0x69,0x36,
+ 0x95,0xA6,0xE1,0x0B,0x3D,0x14,0x2C,0x4D,0x88,0x3A,0x6A,0x7E,0x01,0x8C,0x08,0x62,
+ 0x0F,0x84,0x0B,0x63,0xC0,0x41,0x0B,0x65,0x17,0x22,0xDE,0x2F,0xFD,0xD6,0xD2,0xFE,
+ 0xBA,0x4E,0x2F,0xAC,0x88,0x2B,0x2E,0x98,0x8E,0xD2,0x71,0x3D,0xB2,0x3C,0x19,0x68,
+ 0x98,0x54,0x6D,0xD9,0x4C,0xD3,0x0D,0x77,0xE4,0x2B,0xBA,0x4E,0xC0,0xB6,0xD5,0x6D,
+ 0x37,0x65,0x7F,0x58,0xF6,0x29,0xDD,0x99,0x35,0x93,0x15,0xBA,0xD1,0x0C,0x31,0x6F,
+ 0xEC,0x2B,0x3B,0xAD,0xA9,0xAD,0xD8,0x7F,0x7D,0x91,0x96,0x2A,0x97,0x43,0xF3,0xC4,
+ 0x74,0xF6,0x5C,0x8E,0x9A,0xC0,0xA4,0x2A,0x20,0xD0,0xF0,0x6C,0x0E,0x25,0xD9,0x41,
+ 0xE2,0x6F,0xA8,0x54,0x65,0xE6,0xF5,0x0E,0xCD,0x8E,0x28,0xB4,0x4B,0x41,0xF5,0x29,
+ 0x9C,0xB5,0x84,0xD5,0x2E,0x33,0x82,0xD3,0x71,0x9F,0x94,0x21,0x65,0x06,0x68,0x68,
+ 0xDC,0xC4,0x0F,0xA7,0x68,0xAC,0x8E,0x3C,0x7C,0xA0,0x0D,0x34,0xB7,0x8B,0xD3,0x5C,
+ 0x05,0x5D,0xC9,0xB9,0x53,0xF8,0x01,0xED,0x9B,0xDC,0x61,0x72,0x38,0xE8,0x4C,0x9A,
+ 0x5A,0x9E,0xF9,0x2B,0x86,0x4B,0xB0,0xE4,0x32,0x16,0xC1,0x28,0xD3,0x7C,0x66,0x4D,
+ 0x7C,0x49,0x7A,0x39,0x08,0xF3,0x97,0x30,0x38,0xDC,0x5F,0x86,0x18,0xBB,0xB7,0x1E,
+ 0xFF,0xB5,0x88,0xF1,0xFF,0x06,0x25,0x8F,0x7C,0xE3,0x27,0xE9,0xF1,0x7C,0x01,0x75,
+ 0xCF,0x3B,0x99,0xE3,0x20,0x95,0x81,0xEA,0x9D,0x5E,0xBF,0x55,0x5B,0x5C,0xEE,0x13,
+ 0x26,0x84,0x45,0xF1,0x85,0x49,0x3F,0x33,0xC5,0xA0,0x6B,0x03,0x0D,0x26,0xE8,0xCB,
+ 0x49,0xF5,0x48,0xF1,0x0A,0x53,0x4C,0x33,0x0D,0x2A,0xAA,0x02,0xB0,0x08,0x38,0xC3,
+ 0x6D,0xD8,0x7E,0x8D,0xC1,0xCC,0xF5,0x3B,0xB6,0x0B,0x7D,0x82,0xF0,0x43,0x17,0xDF,
+ 0x68,0x4E,0xED,0x10,0xC4,0x1D,0x64,0x05,0x40,0x5F,0xC9,0x26,0xDF,0xE9,0xAB,0x49,
+ 0x2E,0x74,0x8E,0x8D,0xF7,0x18,0xD7,0x26,0xEA,0x38,0x28,0x43,0x14,0x35,0x9F,0xCF,
+ 0x72,0x59,0x27,0x4F,0x53,0x5D,0x9A,0xB7,0x96,0x8F,0x40,0xD6,0xC4,0x0C,0xB5,0x87,
+ 0x42,0xEA,0xD1,0x18,0xEB,0x2E,0xD8,0x39,0xEF,0xD4,0xF0,0x3D,0x74,0x83,0x4B,0x44,
+ 0x5E,0xEE,0x2A,0xBC,0x9C,0x73,0x07,0xF2,0xC7,0xEC,0xA5,0xAA,0xBB,0x18,0x92,0xCF,
+ 0x0E,0xF4,0xA9,0xBC,0xC6,0xCC,0x47,0x53,0x09,0x35,0x03,0xC9,0xDE,0x82,0x5C,0xAE,
+ 0x0C,0x5F,0x06,0x08,0x0E,0x6B,0xEE,0xAD,0x94,0xDD,0x65,0x94,0x46,0x56,0xD2,0xEB,
+ 0x39,0xE9,0x71,0x12,0x61,0xE2,0x50,0x64,0x81,0xAF,0xC8,0x16,0x65,0x55,0xF4,0x2C,
+ 0x94,0x9F,0x34,0xCA,0xBD,0x51,0x3C,0x68,0x9B,0x08,0x55,0x77,0x8D,0xEB,0x4E,0x31,
+ 0x81,0x2D,0xAC,0xB9,0x20,0xF7,0x87,0x2E,0x37,0x1C,0xCD,0x57,0x50,0xEB,0x33,0x60,
+ 0xE2,0x03,0x83,0x52,0x47,0xAD,0x0E,0x3F,0xEA,0x3B,0x58,0x11,0x80,0xF4,0x4D,0xCD,
+ 0xA6,0x3E,0x8A,0xF1,0x31,0xDC,0x07,0x97,0x74,0x6C,0xBF,0x8F,0x3A,0x74,0xA3,0xB5,
+ 0xEE,0x1D,0x0E,0xAC,0x4F,0xEB,0x09,0xB3,0x38,0x8B,0xBA,0xE7,0x54,0x0E,0x6F,0xD4,
+ 0xE7,0x9D,0xF3,0x1D,0xB7,0xE1,0x7B,0x46,0x03,0x19,0x16,0x2C,0x4C,0x0D,0x5B,0x98,
+ 0x27,0x6D,0x5D,0xA0,0x72,0x07,0x8F,0x39,0xCB,0x48,0x23,0xA2,0x60,0xD0,0x2B,0xFF,
+ 0x7A,0x0F,0x0A,0xBE,0xE7,0xCB,0xAF,0xCF,0xDB,0x99,0xB8,0x23,0x07,0xB8,0xC8,0xE8,
+ 0xC1,0x08,0xEF,0xD5,0xE8,0xA7,0xC1,0xD0,0x2C,0x48,0x5C,0xEC,0xA7,0x21,0x58,0x01,
+ 0x67,0x48,0xE3,0xF0,0xCE,0x46,0xAF,0x01,0x3F,0x7A,0x81,0xD1,0x38,0x10,0xA3,0xDA,
+ 0xEC,0xCE,0x52,0xFD,0x54,0x75,0x67,0x83,0x5A,0x9B,0xC7,0x4F,0x8B,0x75,0x7B,0x97,
+ 0x47,0x71,0xE3,0x16,0xBC,0x49,0xF7,0x9F,0x4C,0xF2,0xAF,0xE2,0xA6,0x8D,0xBF,0x18,
+ 0xA1,0x2D,0x15,0x07,0xB1,0xD6,0xCF,0x79,0xF1,0x16,0x97,0x1E,0xE0,0x6B,0x49,0xA3,
+ 0x98,0x86,0x30,0x23,0x0B,0xD0,0xAB,0xD0,0x0E,0x69,0xC1,0xCA,0x1C,0x22,0xA1,0x27,
+ 0xB3,0xC3,0x9A,0xC9,0xD5,0xB9,0x27,0x62,0xBD,0xC9,0xB1,0x55,0x66,0xA2,0x3C,0xC1,
+ 0x49,0x65,0x68,0x91,0x87,0xBE,0x77,0x83,0x3B,0x40,0x24,0x6F,0x6F,0xF3,0x29,0x79,
+ 0xEA,0xCE,0x29,0xB7,0x0C,0x51,0xB8,0xB4,0xFF,0x12,0xB9,0x8C,0x38,0x7B,0x07,0xEB,
+ 0x6F,0x96,0xBB,0xC9,0x86,0x25,0x6B,0x07,0x06,0x73,0xDA,0xE8,0x29,0xCD,0xFE,0xD8,
+ 0xDB,0x2D,0xC9,0x6C,0xAE,0x78,0x35,0x30,0x32,0xC6,0x11,0x16,0x19,0xD1,0xF4,0x69,
+ 0x7E,0xFC,0x8C,0xA7,0x26,0x3A,0x2D,0x46,0xD6,0xB8,0x34,0xC4,0x4F,0x68,0x5A,0x8B,
+ 0xAB,0x89,0x3A,0x7A,0x8C,0xED,0xA8,0x54,0x64,0xE6,0x43,0xD0,0xA6,0x2C,0x55,0x82,
+ 0xC8,0xB4,0x78,0xC1,0x65,0x1B,0x8B,0xB4,0x74,0xF6,0x0A,0xCD,0xE0,0x04,0x0B,0x8E,
+ 0xBB,0xB7,0x6A,0x6A,0x10,0x81,0xCC,0xA1,0x50,0x94,0xFE,0xE7,0xF6,0x33,0xC2,0x06,
+ 0x72,0x2C,0x31,0x6A,0x30,0xD6,0x6D,0x15,0x78,0xCD,0xBB,0xAD,0x8E,0x6D,0x18,0xAB,
+ 0xCF,0x33,0x81,0xF6,0xF3,0xB5,0x92,0x5D,0xF9,0x95,0xEF,0x34,0xA3,0x09,0xD1,0x3A,
+ 0x76,0xF6,0x6E,0x41,0x52,0xAB,0x69,0x03,0x84,0xE7,0x6D,0xE5,0x62,0xC9,0xB7,0xD1,
+ 0xB6,0x3F,0xA3,0x82,0x8E,0x37,0x34,0x2C,0xC2,0x6F,0xAD,0x49,0x5C,0xCB,0x3C,0x5B,
+ 0x38,0x30,0x6A,0xBB,0xB6,0x6E,0x12,0x7F,0x13,0x63,0xA0,0x0A,0x1D,0xE3,0xC6,0xD4,
+ 0x77,0x92,0x75,0x28,0x2E,0x73,0xB7,0x02,0x09,0x09,0xFB,0x31,0x10,0x32,0x4E,0x28,
+ 0xDD,0x9B,0x5B,0x22,0x37,0x75,0xB5,0x96,0x66,0x5C,0x33,0xA8,0xF9,0x26,0x2B,0x86,
+ 0x8A,0x79,0x3F,0x56,0x1C,0x5E,0x38,0x5E,0x7E,0xEF,0x48,0xDC,0x0D,0x0A,0x88,0x6C,
+ 0x3F,0xCB,0x91,0x6A,0xE1,0x4F,0xFC,0x6C,0x2F,0x87,0x89,0x7A,0x9C,0xFE,0x1A,0x88,
+ 0xBC,0x12,0x04,0x04,0x35,0x55,0x29,0x99,0xE8,0x0B,0x65,0xD7,0xAE,0x27,0x7C,0x8E,
+ 0x19,0x7F,0xD0,0x82,0x73,0x68,0xCF,0x68,0xF3,0x8B,0xCB,0x52,0xEC,0xFB,0xC4,0xDC,
+ 0x26,0xC6,0xCA,0x7D,0x10,0x46,0x53,0x0F,0xAA,0x92,0xDA,0x72,0x5D,0xBB,0x15,0x5E,
+ 0xF5,0x56,0x7B,0xB8,0xA1,0x34,0xD9,0x65,0xA1,0xC5,0xB0,0x3D,0xD8,0xDA,0x9F,0x81,
+ 0xBF,0x33,0xAB,0x7D,0x16,0x95,0xC3,0xC4,0x70,0x7F,0x82,0xDC,0x6C,0x78,0x08,0xBE,
+ 0x49,0x81,0xAB,0x81,0x78,0x60,0xDD,0xA3,0x75,0x1C,0xDB,0x97,0xBE,0x4B,0xCB,0x54,
+ 0xFD,0xF1,0xB5,0xDD,0xAB,0x81,0x80,0xD0,0x08,0x2D,0x88,0x94,0x07,0x4F,0x3A,0xCB,
+ 0x66,0xD0,0xF6,0x2F,0x87,0xAD,0x25,0x81,0x70,0x29,0x13,0xA0,0x83,0x5F,0x5B,0xD1,
+ 0x9B,0x00,0x00,0x91,0xB2,0xD7,0x33,0xB6,0x10,0x3A,0xF0,0x9C,0x19,0x13,0xC9,0xB1,
+ 0x18,0x1A,0x87,0xF6,0x5A,0xB8,0x80,0x6F,0x48,0x7A,0xC5,0x8D,0x42,0xDD,0x28,0x4B,
+ 0xDA,0x32,0xDF,0xEE,0x8D,0x6D,0xD3,0x18,0x3D,0x8C,0x48,0x90,0x87,0xBC,0x3F,0x37,
+ 0xCD,0x8A,0xDE,0xCD,0x55,0x0C,0x11,0x5E,0x50,0x92,0xB1,0x85,0x1D,0xD0,0x0A,0xF5,
+ 0x20,0xB3,0xC6,0xD1,0xD1,0x26,0xD5,0x8B,0x12,0x3D,0x86,0x0B,0xFA,0x7E,0x4D,0xEF,
+ 0xAD,0x72,0x38,0x5B,0xBD,0x97,0x48,0xD4,0x1E,0xB2,0x00,0x5C,0x90,0xE6,0xCD,0xA7,
+ 0x5A,0xCA,0x77,0x74,0x54,0xD6,0x34,0x47,0x06,0x48,0xE9,0xBC,0x56,0x13,0x4E,0xE7,
+ 0x17,0x6A,0x46,0x38,0xC9,0xDE,0x51,0x4A,0xFB,0x3B,0x73,0xAD,0xCE,0x8E,0x13,0xC9,
+ 0x33,0x26,0x50,0xD6,0x66,0xF3,0xA7,0xA2,0xB8,0x60,0x5E,0x14,0x11,0x99,0x4C,0x4D,
+ 0x66,0x19,0x99,0xFE,0x59,0x77,0x5B,0xE0,0x20,0xAB,0x36,0xCD,0x91,0x6F,0xE9,0xF8,
+ 0x95,0x43,0x41,0x61,0x7D,0xF8,0xFB,0xAD,0x75,0x33,0xA5,0xD2,0xC4,0x67,0x95,0x97,
+ 0x97,0xB6,0x07,0xD4,0xB0,0x1A,0x7E,0x4E,0x6D,0xCD,0xA9,0x05,0x00,0x54,0x83,0x6D,
+ 0x52,0xA3,0x17,0xD6,0x5A,0xA0,0x83,0xC6,0xD9,0x78,0x29,0xEF,0xD2,0x08,0xA1,0x28,
+ 0xCA,0xEA,0x70,0xA1,0x05,0x84,0xB4,0x48,0xF9,0x00
+};
+
diff --git a/ANDROID_3.4.5/drivers/video/wmt/bootanimation/animation.c b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/animation.c
new file mode 100755
index 00000000..de803ccd
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/animation.c
@@ -0,0 +1,448 @@
+/**
+ * Author: Aimar Ma <AimarMa@wondermedia.com.cn>
+ *
+ * Show animation during kernel boot stage
+ *
+ *
+ **/
+
+#include <linux/mm.h>
+#include <linux/timer.h>
+#include <linux/wait.h>
+#include <linux/sched.h>
+#include <linux/delay.h>
+#include <linux/kthread.h>
+#include <linux/version.h>
+#include <linux/module.h>
+#include <asm/io.h>
+#include <linux/proc_fs.h>
+#include <linux/ioport.h>
+#include "animation.h"
+#include "buffer.h"
+#include "LzmaDec.h"
+#include "../memblock.h"
+
+#include "anim_data.h"
+
+
+#define ANIM_STOP_PROC_FILE "kernel_animation"
+
+#define MAX_CLIP_COUNT 6
+
+extern int wmt_getsyspara(char *varname, unsigned char *varval, int *varlen);
+//extern void clear_animation_fb(void * p);
+//extern void flip_animation_fb(int pingpong);
+
+
+
+#define THE_MB_USER "Boot-Animation"
+
+#define DEFAULT_BUF_IMAGES 4 //default buffered image count
+
+#undef THIS_DEBUG
+//#define THIS_DEBUG
+
+
+
+#ifdef THIS_DEBUG
+#define LOG_DBG(fmt,args...) printk(KERN_INFO "[Boot Animation] " fmt , ## args)
+#define LOG_INFO(fmt,args...) printk(KERN_INFO "[Boot Animation] " fmt, ## args)
+#define LOG_ERROR(fmt,args...) printk(KERN_ERR "[Boot Animation] " fmt , ## args)
+#else
+#define LOG_DBG(fmt,args...)
+#define LOG_INFO(fmt,args...) printk(KERN_INFO "[Boot Animation] " fmt, ## args)
+#define LOG_ERROR(fmt,args...) printk(KERN_ERR "[Boot Animation] " fmt , ## args)
+#endif
+
+
+// MUST match Windows PC tool. Don't change it.
+struct animation_clip_header{
+ int xres;
+ int yres;
+ int linesize;
+ unsigned char x_mode;
+ unsigned char y_mode;
+ short x_offset;
+ short y_offset;
+ unsigned char repeat;
+ unsigned char reserved;
+ int interval;
+ int image_count;
+ int data_len;
+};
+
+// MUST match Windows PC tool. Don't change it.
+struct file_header {
+ int maigc;
+ unsigned short version;
+ unsigned char clip_count;
+ unsigned char color_format;
+ unsigned int file_len;
+};
+
+
+
+struct play_context {
+ struct animation_clip_header *clip;
+ int xpos; // top postion
+ int ypos; // left postion
+
+ volatile int play_thread;
+ animation_buffer buf;
+};
+
+
+// globe value to stop the animation loop
+static volatile int g_logo_stop = 0;
+static struct animation_fb_info fb;
+
+static void *SzAlloc(void *p, size_t size)
+{
+ void * add = (void *)mb_alloc(size);
+ LOG_DBG("alloc: size %d, add = %p \n", size, add);
+ return add;
+}
+
+static void SzFree(void *p, void *address) {
+ if (address != 0) {
+ LOG_DBG("free: address = %p \n", address);
+ mb_free((int)address);
+ }
+}
+
+static ISzAlloc g_Alloc = { SzAlloc, SzFree };
+
+
+static int show_frame(struct play_context *ctx, unsigned char *data)
+{
+ unsigned char * dest;
+ int linesize = fb.width * (fb.color_fmt + 1) * 2;
+ int i = 0;
+ struct animation_clip_header *clip = ctx->clip;
+ if (g_logo_stop)
+ return 0;
+
+ dest = fb.addr;
+
+// printk(KERN_INFO "dest = 0x%p src = 0x%p\n", dest, data);
+
+ if(data) {
+ LOG_DBG("dest %p, data %p (%d,%d) (%dx%d) linesize(%d,%d)", dest, data,
+ ctx->xpos, ctx->ypos, clip->xres, clip->yres, clip->linesize, linesize);
+
+ dest += ctx->ypos * linesize;
+ dest += ctx->xpos * (fb.color_fmt + 1) * 2;
+
+ for (i = 0; i < clip->yres; i++) {
+ memcpy(dest, data, clip->xres * (fb.color_fmt + 1) * 2);
+ dest += linesize;
+ data += clip->linesize;
+ }
+ }
+
+ LOG_DBG("show_frame data %p, fb.addr %p\n", data, fb.addr);
+ return 0;
+}
+
+static int decompress(struct play_context * ctx, unsigned char *src, unsigned int src_len)
+{
+ SRes res = 0;
+ CLzmaDec state;
+ size_t inPos = 0;
+ unsigned char * inBuf;
+ SizeT inProcessed;
+
+
+ // 1) read LZMA properties (5 bytes) and uncompressed size (8 bytes, little-endian) to header
+ UInt64 unpackSize = 0;
+ int i;
+
+ unsigned char * header = src;
+ for (i = 0; i < 8; i++)
+ unpackSize += (UInt64)header[LZMA_PROPS_SIZE + i] << (i * 8);
+
+ // 2) Allocate CLzmaDec structures (state + dictionary) using LZMA properties
+
+
+ LzmaDec_Construct(&state);
+ RINOK(LzmaDec_Allocate(&state, header, LZMA_PROPS_SIZE, &g_Alloc));
+ if (res != SZ_OK)
+ return res;
+
+ // 3) Init LzmaDec structure before any new LZMA stream. And call LzmaDec_DecodeToBuf in loop
+ LzmaDec_Init(&state);
+
+
+ inBuf = header + LZMA_PROPS_SIZE + 8;
+
+ for (;;)
+ {
+ unsigned int outSize;
+ unsigned char * outBuf = animation_buffer_get_writable(&ctx->buf, &outSize);
+
+ unsigned int frame_size = outSize;
+ unsigned int decoded = 0;
+ ELzmaFinishMode finishMode = LZMA_FINISH_ANY;
+ ELzmaStatus status;
+ while(1) {
+ inProcessed = src_len - LZMA_PROPS_SIZE - 8 - inPos;
+
+ res = LzmaDec_DecodeToBuf(&state, outBuf + frame_size - outSize, &outSize,
+ inBuf + inPos, &inProcessed, finishMode, &status);
+
+ inPos += inProcessed;
+ decoded += outSize;
+ unpackSize -= outSize;
+ outSize = frame_size - decoded;
+
+ LOG_DBG("Decoded %d bytes, inPos = %d\n", decoded, inPos);
+
+ if(res != SZ_OK)
+ break;
+
+ if (outSize == 0)
+ break;
+ }
+
+ animation_buffer_write_finish(&ctx->buf, outBuf);
+
+ if (res != SZ_OK || unpackSize == 0 || g_logo_stop)
+ break;
+ }
+
+ // 4) decompress finished, do clean job
+ LzmaDec_Free(&state, &g_Alloc);
+ return res;
+}
+
+static int animation_play(void * arg)
+{
+ unsigned char * data;
+ static int not_first_play;
+ struct play_context *ctx = (struct play_context *)arg;
+
+ LOG_DBG( "animation_play thread start...\n");
+
+ if(!not_first_play) {
+ msleep(500); // sleep a while to wait deocde few frames
+// clear_animation_fb(fb.addr);
+ not_first_play = 1;
+ }
+
+
+ // try to get a valid frame and show it
+ while(!g_logo_stop) {
+ data = animation_buffer_get_readable(&ctx->buf);
+ if(data) {
+ show_frame(ctx, data);
+ animation_buffer_read_finish(&ctx->buf, data);
+ }
+ else {
+ if( ctx->buf.eof ) //no data and reach eof
+ break;
+ LOG_DBG("animation_buffer_get_readable return NULL\n");
+ }
+
+ if(g_logo_stop)
+ break;
+
+ //else
+ msleep(ctx->clip->interval);
+ }
+
+ LOG_DBG( "animation_play thread End\n");
+ animation_buffer_stop(&ctx->buf);
+ ctx->play_thread = 0;
+ return 0;
+}
+
+
+static void decode_clip(struct animation_clip_header *clip, unsigned char * data, int index)
+{
+ // start timer for animation playback
+ struct play_context ctx;
+ int buf_images;
+
+ LOG_DBG("Start playing clip %d, %dx%d, linesize %d, image %d, data_len %d\n",
+ index, clip->xres, clip->yres, clip->linesize, clip->image_count, clip->data_len);
+
+ ctx.clip = clip;
+
+ // init the decompress buffer
+ if (clip->repeat == 0) {
+ buf_images = DEFAULT_BUF_IMAGES;
+ if(buf_images > clip->image_count)
+ buf_images = clip->image_count;
+ }
+ else {
+ // for the repeat clip, alloc a big memory to store all the frames
+ buf_images = clip->image_count;
+ }
+
+ if( 0 != animation_buffer_init(&ctx.buf, clip->linesize * clip->yres, buf_images, &g_Alloc)){
+ LOG_ERROR("Can't init animation buffer %dx%d\n", clip->linesize * clip->yres, buf_images);
+ return;
+ }
+
+
+ ctx.xpos = clip->x_mode * (fb.width / 2 - clip->xres / 2) + clip->x_offset;
+ ctx.ypos = clip->y_mode * (fb.height / 2 - clip->yres / 2) + clip->y_offset;
+
+ kthread_run(animation_play, &ctx, "wmt-boot-play");
+ ctx.play_thread = 1;
+
+ LOG_DBG("Start Decompressing ... \n");
+ decompress(&ctx, data, clip->data_len);
+
+ if (clip->repeat) {
+ while (!g_logo_stop) {
+ // Fake decompress for REPEAT mode. (Only decompress the clip once so we can save more CPU)
+ unsigned int outSize;
+ unsigned char * outBuf;
+
+ outBuf = animation_buffer_get_writable(&ctx.buf, &outSize);
+ animation_buffer_write_finish(&ctx.buf, outBuf);
+ }
+ }
+
+ LOG_DBG("Decompress finished!\n");
+ ctx.buf.eof = 1;
+ //wait the play thread exit
+ while(ctx.play_thread) {
+ msleep(10);
+ }
+
+ LOG_DBG("Play clip %d finished\n", index);
+ animation_buffer_release(&ctx.buf, &g_Alloc);
+}
+
+
+static int animation_main(void * arg)
+{
+ unsigned char * clip;
+ int i;
+
+ struct file_header *header = (struct file_header *)arg;
+ int clip_count = header->clip_count;
+ struct animation_clip_header clip_headers[MAX_CLIP_COUNT];
+ unsigned char * clip_datas[MAX_CLIP_COUNT];
+
+ if( clip_count > MAX_CLIP_COUNT)
+ clip_count = MAX_CLIP_COUNT;
+ LOG_DBG( "animation_main thread start, clip_cout = %d\n", clip_count);
+
+
+ clip = (unsigned char *)(header + 1);
+ for (i = 0; i< clip_count; i++){
+ memcpy(&clip_headers[i], clip, sizeof(struct animation_clip_header));
+ clip += sizeof(struct animation_clip_header);
+ clip_datas[i] = clip;
+ clip += clip_headers[i].data_len;
+ }
+
+ LOG_DBG( "Found %d clip(s)\n", clip_count);
+
+ for (i = 0; i < clip_count; i++) {
+ if (!g_logo_stop)
+ decode_clip(&clip_headers[i], clip_datas[i], i);
+ }
+
+
+ g_Alloc.Free(&g_Alloc, arg);
+ LOG_DBG( "animation_main thread finished \n");
+ return 0;
+}
+
+
+static int stop_proc_write( struct file *file,
+ const char *buffer,
+ unsigned long count,
+ void *data )
+{
+ /*
+ char value[20];
+ int len = count;
+ if( len >= sizeof(value))
+ len = sizeof(value) - 1;
+
+ if(copy_from_user(value, buffer, len))
+ return -EFAULT;
+
+ value[len] = '\0';
+
+ LOG_DBG("procfile_write get %s\n", value);
+ */
+
+ //anything will stop the boot animation
+ animation_stop();
+
+ return count; // discard other chars
+}
+
+struct proc_dir_entry *stop_proc_file;
+
+static struct proc_dir_entry * create_stop_proc_file(void)
+{
+ stop_proc_file = create_proc_entry(ANIM_STOP_PROC_FILE, 0644, NULL);
+
+ if( stop_proc_file != NULL )
+ stop_proc_file->write_proc = stop_proc_write;
+ else
+ LOG_ERROR("Can not create /proc/%s file", ANIM_STOP_PROC_FILE);
+ return stop_proc_file;
+}
+
+int animation_start(struct animation_fb_info *info)
+{
+ struct file_header *header;
+ unsigned char * buffer;
+
+ const void * animation_data = anim_data;
+ if (animation_data == NULL)
+ return -1;
+
+ if( !create_stop_proc_file() )
+ return -1;
+
+ header = (struct file_header *)animation_data;
+
+ if (header->maigc != 0x12344321) {
+ LOG_ERROR ("It's not a valid Animation file at 0x%p, first 4 bytes: 0x%x\n", animation_data, header->maigc);
+ return -1;
+ }
+
+ buffer = g_Alloc.Alloc(&g_Alloc, header->file_len);
+ if(!buffer) {
+ LOG_ERROR ("Can't alloc enough memory, length %d\n", header->file_len);
+ return -1;
+ }
+
+ memcpy(&fb, info, sizeof(fb));
+
+ //copy it to the new buffer and start the play thread
+ memcpy(buffer, header, header->file_len);
+ g_logo_stop = 0;
+
+
+ LOG_DBG("Start animation_main thread ...\n");
+ kthread_run(animation_main, buffer, "wmt-boot-anim");
+ return 0;
+}
+
+int animation_stop(void)
+{
+ LOG_INFO("animation_stop\n");
+ g_logo_stop = 1;
+
+ if( stop_proc_file ) {
+ remove_proc_entry(ANIM_STOP_PROC_FILE,stop_proc_file);
+ stop_proc_file = NULL;
+ }
+
+ return 0;
+}
+
+EXPORT_SYMBOL(animation_start);
+EXPORT_SYMBOL(animation_stop);
+
+
diff --git a/ANDROID_3.4.5/drivers/video/wmt/bootanimation/animation.h b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/animation.h
new file mode 100755
index 00000000..e63686ec
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/animation.h
@@ -0,0 +1,15 @@
+#ifndef _BOOTANIMATION_H_
+#define _BOOTANIMATION_H_
+
+
+struct animation_fb_info {
+ unsigned char * addr; // frame buffer start address
+ unsigned int width; // width
+ unsigned int height; // height
+ unsigned int color_fmt; // color format, 0 -- rgb565, 1 -- rgb888
+};
+
+int animation_start(struct animation_fb_info *info);
+int animation_stop(void);
+
+#endif
diff --git a/ANDROID_3.4.5/drivers/video/wmt/bootanimation/buffer.c b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/buffer.c
new file mode 100755
index 00000000..6b6f1b89
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/buffer.c
@@ -0,0 +1,85 @@
+
+#include "buffer.h"
+
+#define assert(int )
+
+int animation_buffer_init(animation_buffer * buf, int size, int count, ISzAlloc *alloc)
+{
+ buf->buffer = buf->w_pos = buf->r_pos = alloc->Alloc(alloc, size * count);
+ if(!buf->buffer)
+ return -1;
+
+ buf->frame_count = count;
+ buf->frame_size = size;
+ buf->eof = 0;
+
+ sema_init(&buf->sem_writable, count);
+ sema_init(&buf->sem_readable, 0);
+
+ return 0;
+}
+
+int animation_buffer_release(animation_buffer * buf, ISzAlloc *alloc)
+{
+ if (buf->buffer)
+ alloc->Free(alloc, buf->buffer);
+ buf->buffer = buf->w_pos = buf->r_pos = NULL;
+ return 0;
+}
+
+unsigned char * animation_buffer_get_writable(animation_buffer * buf, unsigned int * pSize)
+{
+ down_interruptible(&buf->sem_writable);
+ *pSize = buf->frame_size;
+ return buf->w_pos;
+}
+
+int animation_buffer_stop(animation_buffer * buf)
+{
+ up(&buf->sem_readable);
+ /* up twice for safey*/
+ up(&buf->sem_writable);
+ up(&buf->sem_writable);
+ return 0;
+}
+
+void animation_buffer_write_finish(animation_buffer * buf, unsigned char * addr)
+{
+ assert(addr == buf->w_pos);
+
+ // printk(KERN_INFO "add one buffer 0x%p\n", addr);
+
+ buf->w_pos += buf->frame_size;
+ if (buf->w_pos - buf->buffer == buf->frame_size * buf->frame_count)
+ buf->w_pos = buf->buffer;
+
+ up(&buf->sem_readable);
+ // printk(KERN_INFO "write <<<<<<<======\n");
+ return;
+
+}
+
+
+unsigned char * animation_buffer_get_readable(animation_buffer * buf)
+{
+ int ret = down_trylock(&buf->sem_readable);
+ if (ret == 0) {
+ return buf->r_pos;
+ }
+ else {
+ return NULL;
+ }
+}
+
+void animation_buffer_read_finish(animation_buffer * buf, unsigned char * addr)
+{
+ // Integrity check
+ assert(addr == buf->r_pos);
+ // printk(KERN_INFO "read one buffer 0x%p\n", addr);
+ buf->r_pos += buf->frame_size;
+ if (buf->r_pos - buf->buffer == buf->frame_size * buf->frame_count)
+ buf->r_pos = buf->buffer;
+
+ up(&buf->sem_writable);
+}
+
diff --git a/ANDROID_3.4.5/drivers/video/wmt/bootanimation/buffer.h b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/buffer.h
new file mode 100755
index 00000000..3ac79aa5
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/video/wmt/bootanimation/buffer.h
@@ -0,0 +1,34 @@
+#ifndef ANIMATION_BUFFER_H_INCLUDED
+#define ANIMATION_BUFFER_H_INCLUDED
+
+#include "LzmaDec.h"
+#include <linux/semaphore.h>
+
+typedef struct
+{
+ unsigned char *buffer;
+ unsigned char *w_pos;
+ unsigned char *r_pos;
+ int frame_count;
+ int frame_size;
+ struct semaphore sem_writable;
+ struct semaphore sem_readable;
+ int eof;
+}animation_buffer;
+
+
+int animation_buffer_init(animation_buffer * buf, int size, int count, ISzAlloc *alloc);
+
+int animation_buffer_stop(animation_buffer * buf);
+int animation_buffer_release(animation_buffer * buf, ISzAlloc *alloc);
+
+
+unsigned char * animation_buffer_get_writable(animation_buffer * buf, unsigned int * pSize);
+void animation_buffer_write_finish(animation_buffer * buf, unsigned char * addr);
+
+unsigned char * animation_buffer_get_readable(animation_buffer * buf);
+void animation_buffer_read_finish(animation_buffer * buf, unsigned char * addr);
+
+
+#endif /* ANIMATION_BUFFER_H_INCLUDED */
+