User Tools

Site Tools


netmdocm

netmdocm

Components and functions involved during check-out of a already imported song. (Song that is atrac encoded and encrypted).


+ UI


+ NetMD.dll

  [helpstring("Method CheckOut")]
  HRESULT _stdcall CheckOut(
                  [in] long cMax, 
                  [in] _OPD_CHECKOUTINFO* pCheckOutInfo);

+ OmgNetMD.dll

     IOmgNetMD::{init, AttemptCheckOut, CompleteCheckOut1, CompleteCheckOut2}

+ Omgconv2.dll

     IOmgOmgfToMsa::init([in] OmgfHeaderInfo* headerInfo);

+ pfcom.dll

IOmgPf::GET_KEK_ENCRYPTED_CKEY

+ salwrap.dll

EkbCapabilityTable::EkbCapabilityTable(void)
void salApplyTokens(class std::vector, class OmgString>)
void salApplyTokens(class OmgString const &)
OmgEkb::getImage(unsigned long,void const * &,unsigned int &)
void __cdecl salVerifyMacAndTranscrypt(class OmgString const &,class OmgString const &,class OmgString &)

+ maclist.ocm, querycif.ocm, + icv.ocm, netmd.ocm + nc_omgtomsa.ocm

Note: See below for what procedures used.

OCM Procedures called during check-out of ATRAC song.

  1. Start checkout process.
  2. maclist(1)
  3. maclist(8)
  4. icv(7)
  5. maclist(1)
  6. maclist(4)
  7. nc_omgtomsa(0)
  8. maclist(1)
  9. maclist(4)
  10. querycif(9)
  11. UI: Begin transfer
  12. netmd(0)
  13. netmd(1)
  14. UI: Transfer (90%)
  15. netmd(2)
  16. maclist(1)
  17. maclist(2)
  18. End checkout process.

Checkout process inputs

omglog.txt

2008/09/02 19:22:47 [C:\Program\Sony\Sonicstage\omgjbox.exe] 000001e0:000004c4 omgid generated: 010F500000040000000000C3244C6026

2008/09/02 19:22:47 [C:\Program\Sony\Sonicstage\omgjbox.exe] 000001e0:000004c4 OMGException: (0x106) C:\Program\Delade filer\Sony Shared\OpenMG/procfile/57/010F50000004000000EFF3C3244C602635178457.opf

2008/09/02 19:22:48 [C:\Program\Sony\Sonicstage\omgjbox.exe] 000001e0:000004c4 OMGException: (0x106) C:\Program\Delade filer\Sony Shared\OpenMG/procfile/57/010F50000004000000EFF3C3244C602635178457.opf

2008/09/06 14:27:15 [c:\Program\Sony\Sonicstage\omgjbox.exe] 00000094:00000248 mac-list newly created

0010001.ekb

 unsigned char ekb_0010001[684] = {

0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,

  0x00, 0x0F, 0xF4, 0x7D, 0x45, 0x9C, 0x72, 0xDA, 0x81,
  0x85, 0x16, 0x9D, 0x73, 0x49, 0x00, 0xFF, 0x6C, 0x6A, 0xB9, 0x61, 0x6B, 0x03, 0x04, 0xF9, 0xCE, 
  0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, 0x01, 0x34, 0xA4, 0x92, 0x48, 0x03, 
  0x9E, 0x4D, 0x20, 0x80, 0x40, 0x00, 0x7F, 0xFF, 0xFF, 0x82, 0x40, 0xE0, 0x02, 0x49, 0x24, 0x93, 
  0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x71, 0x4E, 0x87, 0x70, 0xBA, 0x7E, 0xE8, 
  0x1A, 0xFC, 0x79, 0xA7, 0xE2, 0xC0, 0x19, 0xF9, 0x01, 0xCA, 0xBE, 0x07, 0x2C, 0x4D, 0xA7, 0xAE, 
  0xF3, 0x6C, 0x8D, 0x73, 0xFA, 0x60, 0x2B, 0xD1, 0x2C, 0x4B, 0x6E, 0xBD, 0x8B, 0x8A, 0x8D, 0x6C, 
  0x37, 0x6C, 0x2F, 0xF5, 0xAA, 0x36, 0xA0, 0x36, 0xA8, 0xEC, 0xFB, 0x6C, 0x65, 0xC9, 0x49, 0xF7, 
  0xC4, 0x7D, 0xE8, 0xF9, 0x6D, 0xF6, 0xBD, 0x2B, 0x7D, 0x5B, 0x1A, 0x6E, 0xF4, 0x22, 0x53, 0x53, 
  0x8B, 0x6B, 0x1D, 0xFB, 0x81, 0x38, 0x0D, 0x4A, 0xE7, 0x21, 0x5B, 0x57, 0x91, 0x4E, 0xDF, 0xF8, 
  0xA3, 0xD9, 0x93, 0x0B, 0x5A, 0x4F, 0xAA, 0x55, 0x24, 0xAA, 0x87, 0x02, 0x69, 0x00, 0x96, 0x0A, 
  0xB3, 0xDF, 0x6A, 0x20, 0xA9, 0xF1, 0xEA, 0xD4, 0xE6, 0x64, 0x53, 0xA6, 0x45, 0x23, 0xF2, 0x44, 
  0xE2, 0x37, 0x8B, 0x87, 0xD3, 0x51, 0x8D, 0xC1, 0xBE, 0x2D, 0x2A, 0xF5, 0x0C, 0xF2, 0xA2, 0xD9, 
  0xBE, 0x91, 0x76, 0x9E, 0x83, 0x5E, 0x63, 0x00, 0x84, 0x6A, 0x3F, 0x49, 0x3E, 0x6D, 0xD0, 0xFD, 
  0xDA, 0xF8, 0x3B, 0xEB, 0x59, 0xF7, 0xC1, 0xCF, 0x56, 0x95, 0x01, 0x03, 0x5D, 0xBD, 0xC3, 0xE6, 
  0xA5, 0x79, 0x48, 0x2D, 0x76, 0x48, 0x98, 0x00, 0x79, 0x2E, 0x5D, 0x75, 0x7A, 0xCC, 0x07, 0xBA, 
  0xAF, 0x40, 0x8E, 0x4A, 0xFC, 0xC8, 0xFC, 0xE9, 0x06, 0x79, 0x43, 0x73, 0xE7, 0x17, 0x23, 0x3E, 
  0x24, 0x12, 0xE1, 0x1B, 0x9A, 0xB3, 0x67, 0xD0, 0x3E, 0xBE, 0x25, 0x3D, 0xE4, 0x44, 0xA4, 0x66, 
  0x2D, 0xBC, 0x3F, 0x4C, 0x37, 0x36, 0x97, 0x37, 0x56, 0x49, 0xF1, 0x68, 0xB4, 0xE8, 0x64, 0x9A, 
  0x49, 0x74, 0xB9, 0x57, 0xAB, 0x3C, 0xBD, 0xC7, 0x99, 0x13, 0xA4, 0xB6, 0x30, 0xE7, 0x10, 0xA5, 
  0x4C, 0xE5, 0xEA, 0xEF, 0xAD, 0xDA, 0x3A, 0x4D, 0xAC, 0x8C, 0x45, 0x6B, 0x0C, 0x3D, 0xD6, 0xA0, 
  0x9E, 0x2F, 0x9F, 0xAE, 0xD1, 0xB9, 0x62, 0x0B, 0xDD, 0x10, 0xBF, 0xEB, 0x7E, 0x19, 0x54, 0x22, 
  0xC8, 0x9E, 0x24, 0x6D, 0xB1, 0x9A, 0xD3, 0xB7, 0xD0, 0xC9, 0x41, 0x6D, 0xD6, 0x9D, 0x93, 0xF7, 
  0xE2, 0xAA, 0x1A, 0xA6, 0xD2, 0x4B, 0xEE, 0xF6, 0x00, 0x00, 0x00, 0x17, 0x02, 0x00, 0x00, 0x00, 
  0x01, 0x00, 0x00, 0x28, 0x7B, 0x51, 0x4F, 0x70, 0x84, 0x16, 0x4B, 0xC9, 0xE5, 0x06, 0x0E, 0xAF, 
  0x48, 0xBD, 0xCC, 0xD7, 0xC0, 0x0B, 0x26, 0x67, 0xEE, 0x82, 0x69, 0xC9, 0x70, 0xFB, 0x3A, 0xC7, 
  0xEB, 0x8E, 0x44, 0x74, 0x43, 0xC6, 0x78, 0x2D, 0xDD, 0xC1, 0x54, 0xCB, 0x00, 0x00, 0x00, 0xFB, 
  0x3F, 0x59, 0x0A, 0x27, 0x6C, 0x40, 0x01, 0x1E, 0x60, 0x0C, 0x00, 0x1E, 0x6B, 0x1D, 0x3B, 0x4F, 
  0x57, 0x77, 0x7A, 0x45, 0x6B, 0x24, 0x56, 0x6F, 0x7A, 0x5C, 0x53, 0x3E, 0x44, 0x5F, 0x1A, 0x62, 
  0x59, 0x3B, 0x64, 0x4B, 0x1F, 0x21, 0x53, 0x2A, 0x0C, 0x0A, 0x60, 0x30, 0x07, 0x23, 0x7A, 0x62, 
  0x44, 0x6B, 0x65, 0x29, 0x2A, 0x61, 0x48, 0x23, 0x61, 0x66, 0x06, 0x14, 0x6B, 0x5F, 0x6B, 0x41, 
  0x62, 0x03, 0x2D, 0x0E, 0x5C, 0x31, 0x15, 0x3C, 0x12, 0x05, 0x46, 0x47, 0x6E, 0x51, 0x2F, 0x4E, 
  0x02, 0x47, 0x5A, 0x03, 0x1E, 0x7C, 0x7D, 0x24, 0x1E, 0x2D, 0x04, 0x27, 0x66, 0x7A, 0x06, 0x1F, 
  0x44, 0x44, 0x21, 0x03, 0x03, 0x09, 0x5A, 0x03, 0x2A, 0x27, 0x37, 0x03, 0x7D, 0x08, 0x24, 0x20, 
  0x45, 0x0F, 0x07, 0x71, 0x09, 0x68, 0x5A, 0x5C, 0x2B, 0x32, 0x75, 0x38, 0x7A, 0x21, 0x49, 0x07, 
  0x4A, 0x0F, 0x6B, 0x38, 0x7E, 0x3A, 0x63, 0x11, 0x12, 0x18, 0x59, 0x2E, 0x70, 0x37, 0x7B, 0x01, 
  0x2C, 0x09, 0x44, 0x00, 0x09, 0x74, 0x22, 0x59, 0x12, 0x0D, 0x70, 0x2D, 0x41, 0x7A, 0x58, 0x48, 
  0x38, 0x6B, 0x3F, 0x03, 0x69, 0x4B, 0x5C, 0x35, 0x29, 0x7A, 0x38, 0x0E, 0x50, 0x7A, 0x46, 0x09, 
  0x53, 0x0C, 0x39, 0x30, 0x2A, 0x6E, 0x66, 0x1E, 0x7D, 0x6D, 0x6F, 0x23, 0x32, 0x4A, 0x18, 0x58, 
  0x18, 0x36, 0x1B, 0x09, 0x03, 0x03, 0x7D, 0x09, 0x71, 0x7C, 0x3C, 0x48, 0x6C, 0x1E, 0x14, 0x11, 
  0x53, 0x3E, 0x6C, 0x62, 0x68, 0x27, 0x6E, 0x36, 0x26, 0x24, 0x1B, 0x71, 0x27, 0x65, 0x5A, 0x03, 
  0x1C, 0x54, 0x24, 0x3B, 0x30, 0x50, 0x5B, 0x08, 0x0C, 0x3D, 0x0B, 0x14, 0x71, 0x0F, 0x5F, 0x23, 
  0x7F, 0x6B, 0x03, 0x72, 0x7D, 0x47, 0x21, 0x40, 0x7A, 0x62, 0x4A, 0x00 };

SalOmgId

/*

<OpenMG directory>\OMGKEY\omg_Id.dat

*/

unsigned char SalOmgId[22] = {

  0x30, 0x80, 0x04, 0x10, 0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 
  0x24, 0x4C, 0x60, 0x26, 0x00, 0x00, 

} ;

This is an ASN.1 sequence (0x30) with indeterminate length (0x80) that only contains a single blob (0x04) of 16 bytes (0x10). These 16 bytes are in fact the 16 bytes of unknown meaning after the MACLIST\0 header in the maclist.

Process file (OPF)

/* <OpenMG Dirctory>\procfile\57 010F50000004000000EFF3C3244C602635178457.opf

*/

unsigned char ProcessFile[191] = {

  0x30, 0x80, 0x02, 0x02, 0x03, 0xE9, 0x04, 0x14, 0x43, 0xEA, 0x42, 0x8F, 0x71, 0xEE, 0x7B, 0x66, 
  0x5D, 0x10, 0x75, 0x2E, 0x85, 0xAB, 0x16, 0xE5, 0xA5, 0x0C, 0x62, 0x49, 0x04, 0x14, 0x63, 0x81, 
  0x63, 0xB8, 0x2C, 0x4E, 0x31, 0x81, 0x0F, 0xBE, 0xE0, 0x1B, 0x2E, 0x7F, 0xC2, 0x5B, 0x87, 0x95, 
  0x86, 0xE3, 0x30, 0x80, 0x02, 0x01, 0x6B, 0x02, 0x04, 0x48, 0xC2, 0x29, 0x8F, 0x02, 0x01, 0x07, 
  0x02, 0x04, 0x48, 0xC2, 0x29, 0x8F, 0x02, 0x01, 0x6D, 0x02, 0x01, 0x00, 0x02, 0x01, 0x65, 0x04, 
  0x14, 0xC0, 0x4B, 0x51, 0x3E, 0xDE, 0x54, 0x34, 0x2D, 0x70, 0x9D, 0x0C, 0xB8, 0x62, 0x1E, 0x64, 
  0x6F, 0xDD, 0xCB, 0x34, 0x5E, 0x02, 0x01, 0x00, 0x04, 0x14, 0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 
  0x00, 0x00, 0x00, 0xEF, 0xF3, 0xC3, 0x24, 0x4C, 0x60, 0x26, 0x35, 0x17, 0x84, 0x57, 0x02, 0x01, 
  0x68, 0x02, 0x02, 0x1F, 0xD7, 0x02, 0x01, 0x06, 0x04, 0x15, 0x72, 0x61, 0x77, 0x20, 0x63, 0x6F, 
  0x6E, 0x74, 0x65, 0x6E, 0x74, 0x20, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x69, 0x6E, 0x67, 0x02, 
  0x01, 0x67, 0x02, 0x01, 0x02, 0x02, 0x01, 0x01, 0x02, 0x01, 0x03, 0x02, 0x01, 0x08, 0x02, 0x01, 
  0x03, 0x02, 0x01, 0x05, 0x02, 0x01, 0x04, 0x00, 0x00, 0x30, 0x80, 0x00, 0x00, 0x00, 0x00, 

} ;

ASN.1 Sequence with a data structure that is setup and manipulated by functions called through DICT 187 (these functions are in DICT 188).

30 80
      02 02 03E9
      04 14 43EA428F71EE7B665D10752E85AB16E5A50C6249 ; MAC
      04 14 638163B82C4E31810FBEE01B2E7FC25B879586E3 ; Enc(CKEY) ? Offset 0x1E according to Jan (// key is at offset 0x1E! (OMGDecrypter.cpp)
      30 80 02 01 6B ; 17 (some time stamp)
            02 04 48C2298F
            02 01 07 ; 7 == creation time of structure
            02 04 48C2298F
            02 01 6D ; 109
            02 01 00
            02 01 65 ; 101
            04 14 C04B513EDE54342D709D0CB8621E646FDDCB345E
            02 01 00 ; 0 == scrambled form of the maclist id == SalOmgId
            04 14 010F50000004000000EFF3C3244C602635178457
            02 01 68 ; 104
            02 02 1FD7
            02 01 06 ; 6 == source name
            04 15 72617720636F6E74656E7420696D706F7274696E67
                   r a w   c o n t e n t   i m p o r t i n g
            02 01 67 ; 103 == flags?
            02 01 02
            02 01 01 ; 1 == max checkout?
            02 01 03
            02 01 08 ; 8 == checkout count?
            02 01 03
            02 01 05 ; 5 == flags (1|2|4)
            02 01 04
            0000 ; End array
      30 80 0000 ; Empty array
      0000 ; End array

maclist1.dat

unsigned char maclist1_dat[72] = {

  <0x4D, 0x41, 0x43, 0x4C, 0x49, 0x53, 0x54, 0x00>, 
  salomgid <0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x24, 0x4C, 0x60, 0x26>, 
  <0x02>, 
  number-of-mac-ops <0x00, 0x00, 0x00, 0x03>, 
  number-of-macs <0x00, 0x00, 0x00, 0x00>, 
  macs-data <0x00, 0x00, 0x00, 0x00>, 
  extension-type <0x00, 0x00, 0x00, 0x00>, 
  extension-size <0x00, 0x00, 0x00, 0x18>, 
  leaf-id <0x00, 0x00, 0x00, 0x02, 0x00, 0x00>, status-code <0x00, 0x01>, 
  leaf-id <0x00, 0x00, 0x00, 0x01, 0x00, 0x01>, status-code <0x00, 0x03>, 
  leaf-id <0x00, 0x00, 0x00, 0x02, 0x00, 0x01>, status-code <0x00, 0x01>, 
  <0x00, 0x00, 0x00>, 

} ;

There is a 40-byte header (MACLIST\0, followed by 16 bytes of the SalOmgID (omg_id.dat), followed by (DWORD)2, followed by the number of operations done on the maclist (in this case 3), followed by the number of MACs (here: 0), followed by 0 (unknown field). Then come the 8-byte macs, but in this case there are none. Then follow extensions, which have this structure: a DWORD with the type of the extension, and a DWORD with the length (excluding this 8 byte extension header). In this case, there is only an extension of type 0 which contains 0x18 bytes. The extension 0 maps ekb device/leaf IDs to status codes in a yet to be determined manner, in this case: 0x00000002 → 1, 0x00010001 → 3, 0x00010002 → 1.

maclist2.dat

unsigned char maclist2_dat[80] = {

  0x4D, 0x41, 0x43, 0x4C, 0x49, 0x53, 0x54, 0x00, 0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0xC3, 0x24, 0x4C, 0x60, 0x26, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xEA, 0x42, 0x8F, 0x71, 0xEE, 0x7B, 0x66, 
  0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
  0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 

} ;

The update counter is bumped from 3 to 4 here, and the count of macs is 1. Indeed a MAC can be found here, namely 43EA428F71EE7B66. Then the 0-extension follows with unchanged content.

icv.dat

unsigned char icv_dat[20] = {

  0x0C, 0xB0, 0x69, 0x7E, 0xB4, 0x9C, 0x67, 0xA1, 0x95, 0x13, 0xEA, 0x41, 0x38, 0x2D, 0xE4, 0x7F, 
  0x2F, 0x7F, 0x33, 0xC4, 

} ;

OpenMG song

/* Atrac encoded OpenMG file. 2-3 seconds of sinus tone. */

unsigned char sine_400_omg[9270] = {

  0x30, 0x80, 0x30, 0x80, 0x06, 0x07, 0x66, 0x6F, 0x70, 0x65, 0x6E, 0x4D, 0x47, 0x02, 0x02, 0x03, 
  0xEB, 0x04, 0x14, 0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xEF, 0xF3, 0xC3, 0x24, 
  0x4C, 0x60, 0x26, 0x35, 0x17, 0x84, 0x57, 0x06, 0x02, 0x67, 0x01, 0x02, 0x02, 0x3F, 0x00, 0x06, 
  0x02, 0x68, 0x01, 0x02, 0x04, 0x00, 0x00, 0x21, 0xC0, 0x02, 0x01, 0x01, 0x02, 0x03, 0x01, 0x01, 
  0xD0, 0x02, 0x02, 0x00, 0xC0, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x08, 0x1D, 0x89, 0x1A, 0x35, 
  0x25, 0x7C, 0x80, 0x17, 0x04, 0x84, 0x00, 0x00, 0x21, 0xD0, 0x86, 0x62, 0xB7, 0x3C, 0xCD, 0x0D, 
  0x2E, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xCF, 0xD3, 0x83, 0x7F, 0x35, 
  0xD2, 0x3B, 0x80, 0x41, 0x48, 0x8D, 0xE6, 0x53, 0x99, 0x8A, 0x11, 0x31, 0xB0, 0x79, 0x1B, 0x42, 
  0xB8, 0xFF, 0x6A, 0x2E, 0x4C, 0x74, 0x05, 0x1C, 0x69, 0x8E, 0x13, 0x79, 0xCE, 0xBF, 0xBF, 0x56, 
  0x05, 0xFE, 0x27, 0xCB, 0xCA, 0xAE, 0xEA, 0x89, 0xA8, 0x67, 0xB0, 0xFE, 0x32, 0xAC, 0x08, 0x4C, 
  0xEF, 0x6D, 0x1F, 0xFD, 0xA5, 0x2B, 0x5B, 0x05, 0x87, 0x9A, 0xBA, 0xDC, 0x9B, 0xD7, 0x6B, 0x65, 
  0x88, 0xF6, 0x76, 0xE6, 0x97, 0x06, 0x96, 0x78, 0xF3, 0x56, 0x38, 0xC3, 0x5E, 0x4E, 0xA4, 0x83, 
  0xAD, 0xF1, 0xF6, 0x58, 0xD0, 0x03, 0x9D, 0x0C, 0x03, 0xD7, 0x6C, 0x6E, 0xE8, 0x88, 0x83, 0x0B, 
  0xF5, 0x50, 0x28, 0x0E, 0x52, 0x58, 0x63, 0x1C, 0x3D, 0x38, 0xAF, 0x3D, 0x4A, 0x8D, 0xB1, 0x6D, 
  0xBC, 0xEB, 0x55, 0xE9, 0x6C, 0xD6, 0xDF, 0x44, 0xD4, 0x57, 0x74, 0x70, 0x30, 0x79, 0xC5, 0x88, 
  0x33, 0xF1, 0x38, 0x76, 0xE8, 0x94, 0x77, 0x6D, 0x3C, 0xE3, 0x70, 0xD2, 0x6F, 0x0A, 0x57, 0x4D, 
  0x5E, 0xA3, 0xAD, 0x56, 0xDF, 0x69, 0xAB, 0xEF, 0xDC, 0xE9, 0x7F, 0xA7, 0x29, 0xB0, 0x5B, 0x88, 
  0x8A, 0x07, 0x1A, 0x3D, 0x0D, 0x14, 0x1B, 0x99, 0xC6, 0x1F, 0x05, 0x2E, 0x42, 0x30, 0x2B, 0x15, 
  0x63, 0x4A, 0x17, 0xF8, 0x59, 0xE8, 0x80, 0x5A, 0xC4, 0x25, 0x23, 0x0A, 0x81, 0x46, 0x57, 0xC6, 
  0xA1, 0x50, 0x9A, 0xBF, 0xEB, 0xF9, 0x48, 0xEA, 0x0F, 0x02, 0x51, 0x5A, 0xA9, 0x55, 0x2E, 0x27, 
  0x3C, 0x0B, 0xA0, 0x38, 0x9B, 0x7A, 0x7E, 0x0A, 0xFD, 0x77, 0x83, 0x26, 0xDE, 0x1A, 0x74, 0xC1, 
  0xE6, 0x6B, 0x9E, 0xAA, 0xB1, 0xD0, 0x11, 0xF3, 0x82, 0x43, 0x42, 0x37, 0x39, 0xBD, 0x45, 0xFA, 
  0xF7, 0xF7, 0xF0, 0xD1, 0x39, 0xF5, 0xAD, 0x87, 0x74, 0x4E, 0xF1, 0xD9, 0x65, 0x57, 0x62, 0x4E, 
  0x3D, 0x8A, 0xEC, 0x29, 0x97, 0xC2, 0xE1, 0x47, 0x4D, 0xA0, 0xBE, 0x9A, 0x23, 0xC7, 0x59, 0x6F, 
  0x53, 0x67, 0xA6, 0x52, 0x05, 0xFE, 0x2C, 0xAF, 0x17, 0x3C, 0x4A, 0x22, 0x52, 0x5C, 0xC4, 0xFD, 
  0x4F, 0x8C, 0x41, 0xB0, 0x35, 0xDC, 0x2C, 0x8E, 0x61, 0xF4, 0x6D, 0xAA, 0xBF, 0x89, 0x84, 0xBB, 
  0x81, 0x87, 0xEB, 0xB6, 0x11, 0x03, 0x2C, 0x34, 0x19, 0x5D, 0x59, 0x02, 0xED, 0xAC, 0xB7, 0x3F, 
  0xD0, 0x2D, 0x62, 0x12, 0x81, 0x3B, 0x32, 0x8E, 0xC3, 0xE3, 0xE4, 0x21, 0xB9, 0x90, 0x9D, 0x44, 
  0x77, 0x42, 0x8D, 0x1D, 0x0A, 0xCF, 0x76, 0xFB, 0xE0, 0x11, 0x35, 0x38, 0x9C, 0xBE, 0x76, 0x77, 
  0x4E, 0xC8, 0x5C, 0xBC, 0xE8, 0x76, 0x71, 0xBB, 0x12, 0xEC, 0xA5, 0x6D, 0x44, 0x95, 0xA6, 0xE6, 
  0xF2, 0xCA, 0xC1, 0x9A, 0x74, 0x98, 0x66, 0xC4, 0xC5, 0xEA, 0xBF, 0xFF, 0x52, 0x11, 0xA4, 0x47, 
  0x8A, 0xEC, 0x1E, 0x52, 0x4D, 0xB6, 0xF7, 0xEB, 0xD4, 0x1C, 0xB4, 0xA6, 0x1B, 0xA4, 0x13, 0xE5, 
  0x35, 0xC5, 0x61, 0xE4, 0x8B, 0x66, 0x2B, 0x38, 0xB1, 0x9D, 0x17, 0xDE, 0x59, 0xC4, 0x10, 0x0F, 
  0x40, 0x97, 0x7F, 0x59, 0x1C, 0x13, 0xDA, 0x96, 0xE2, 0x68, 0x1E, 0xBE, 0xD7, 0x14, 0x5F, 0xD0, 
  0x74, 0x30, 0x97, 0x82, 0xFD, 0x81, 0x23, 0x06, 0x00, 0xC5, 0x69, 0x1C, 0x50, 0xA1, 0x0C, 0xD8, 
  0xDC, 0x7E, 0x1A, 0x4C, 0x5E, 0x82, 0x87, 0xFA, 0x04, 0xDA, 0x76, 0x45, 0xE0, 0x42, 0x69, 0x91, 
  0x45, 0x6E, 0x5C, 0xAC, 0x3A, 0x22, 0x97, 0x90, 0xAC, 0x37, 0x0B, 0xD6, 0xF6, 0x26, 0x12, 0x99, 
  0x58, 0x5E, 0x2D, 0x79, 0x12, 0xAD, 0xE0, 0x9A, 0x8C, 0x7F, 0x92, 0x09, 0x20, 0xB0, 0x41, 0xC2, 
  0xCC, 0x88, 0x8C, 0x92, 0x94, 0xC5, 0x22, 0x3A, 0x52, 0x68, 0xE9, 0x7C, 0x35, 0xBD, 0x43, 0x73, 
  0xBE, 0x94, 0xDD, 0x60, 0xF6, 0x3E, 0x05, 0xC1, 0xB6, 0x29, 0xC8, 0x42, 0xD9, 0x90, 0xD1, 0xE4, 
  0x58, 0x19, 0x6A, 0xB7, 0x3D, 0xC3, 0x8C, 0x15, 0x11, 0x27, 0xA6, 0xBE, 0xAA, 0x70, 0xA6, 0xA4, 
  0xD9, 0xC3, 0x4E, 0x44, 0x65, 0x7A, 0xFD, 0x01, 0xB1, 0xDE, 0xB6, 0xB9, 0xBD, 0x0F, 0x52, 0x1B, 
  0x03, 0xE5, 0xD0, 0xE0, 0xAA, 0x2B, 0x5C, 0x9E, 0x02, 0xBF, 0xF8, 0x26, 0xA3, 0xF2, 0x67, 0x68, 
  0x1D, 0x37, 0x87, 0x13, 0x10, 0xD1, 0xCB, 0x10, 0x6A, 0x21, 0x7A, 0x79, 0x68, 0xFB, 0x2D, 0xC2, 
  0x75, 0x23, 0xBD, 0x2F, 0x1B, 0x50, 0x40, 0xC5, 0xAB, 0xD7, 0x50, 0xA7, 0xE5, 0x0D, 0x47, 0x31, 
  0xE8, 0x06, 0x1C, 0x76, 0x01, 0x19, 0x99, 0x73, 0x2D, 0x56, 0xC0, 0x1A, 0x86, 0x5F, 0x6B, 0x44, 
  0xAF, 0xBA, 0x52, 0xD7, 0x28, 0x33, 0x83, 0x33, 0x6C, 0xD9, 0x07, 0x94, 0x16, 0x09, 0x64, 0x5F, 
  0x2D, 0xA3, 0x45, 0x8C, 0x42, 0x27, 0xD2, 0x31, 0xCC, 0x29, 0x6F, 0xA9, 0x72, 0x72, 0x63, 0xD9, 
  0x64, 0xA2, 0x01, 0xDB, 0x23, 0x33, 0x5E, 0x32, 0x71, 0x65, 0x28, 0xE9, 0x7E, 0xD5, 0xA2, 0x1F, 
  0xE0, 0x29, 0x3E, 0x50, 0x36, 0x69, 0xA5, 0x5D, 0x3D, 0x8E, 0xCE, 0x39, 0xD1, 0xF8, 0x87, 0x74, 
  0x9D, 0xC1, 0xE9, 0x6B, 0x89, 0x4F, 0x20, 0xE1, 0x81, 0x42, 0x72, 0x85, 0x73, 0x1A, 0xD7, 0xC8, 
  0x22, 0xE9, 0xCD, 0xE9, 0x0B, 0x64, 0xE1, 0x29, 0x68, 0x1A, 0x34, 0x8A, 0x2B, 0x1C, 0x54, 0x92, 
  0xC9, 0x33, 0xDD, 0x77, 0x17, 0x49, 0x0A, 0x6D, 0xC8, 0xE2, 0xFF, 0xE3, 0xAA, 0x28, 0xB7, 0xA2, 
  0x34, 0xCB, 0xE0, 0xD9, 0x38, 0x57, 0x92, 0x5E, 0x4E, 0x63, 0xB8, 0x95, 0xD2, 0x69, 0x88, 0x6F, 
  0x8E, 0x05, 0xEE, 0x7B, 0x8C, 0xA9, 0x6B, 0x4A, 0x78, 0x22, 0x24, 0x40, 0x3A, 0xD3, 0x42, 0xF3, 
  0x0B, 0xA9, 0x56, 0x19, 0xA1, 0x84, 0x82, 0xBD, 0x72, 0xF9, 0xD9, 0xEF, 0x43, 0xC6, 0x1F, 0xDE, 
  0xFE, 0x8A, 0xDD, 0xF4, 0x80, 0x6B, 0xC9, 0xCC, 0x6C, 0x53, 0x0F, 0xB9, 0x80, 0xAD, 0x91, 0x11, 
  0x86, 0xBD, 0x82, 0xDE, 0x2B, 0xF0, 0xF2, 0x1C, 0x91, 0x75, 0xD2, 0xFD, 0xEB, 0xA5, 0xBB, 0x54, 
  0xD2, 0x47, 0x72, 0x20, 0x77, 0xCE, 0x13, 0xC1, 0x43, 0xF5, 0xC1, 0x18, 0x92, 0x3E, 0xAD, 0xF2, 
  0x21, 0x8D, 0x1B, 0x26, 0xB2, 0xBA, 0x2E, 0x9D, 0x70, 0x22, 0xA4, 0x3E, 0xB2, 0x04, 0xB6, 0xC1, 
  0xC3, 0x55, 0x0F, 0xD4, 0xB9, 0xD1, 0x12, 0xB1, 0x56, 0x05, 0xA8, 0xF0, 0x8B, 0x39, 0xFF, 0xC0, 
  0x7B, 0x15, 0xFF, 0xE0, 0x63, 0x4B, 0x2B, 0x2A, 0x40, 0x48, 0xA6, 0x90, 0xAF, 0xB5, 0xA4, 0x53, 
  0x8A, 0xCF, 0xCF, 0xEE, 0x62, 0x86, 0x1D, 0x44, 0xF0, 0x90, 0x0D, 0xAD, 0x8D, 0x5D, 0x46, 0x8F, 
  0x0C, 0x6C, 0x5F, 0x6A, 0x1A, 0xB7, 0x7B, 0x29, 0xCB, 0x09, 0xEF, 0x0F, 0x3F, 0x8B, 0xA8, 0x08, 
  0x2A, 0x66, 0x18, 0x61, 0x4D, 0xCB, 0x71, 0x2E, 0xE5, 0x1C, 0x9B, 0xB4, 0x5B, 0x3A, 0x10, 0xD8, 
  0x05, 0x44, 0x7D, 0x41, 0x80, 0xB4, 0x8E, 0x1B, 0x99, 0x5B, 0x5E, 0xE7, 0xC8, 0x73, 0xCA, 0xAD, 
  0x25, 0x21, 0xB6, 0xF6, 0x3D, 0xB8, 0xDE, 0x07, 0x66, 0x89, 0x68, 0x1F, 0xC2, 0x6E, 0xA9, 0x35, 
  0xB0, 0x15, 0x65, 0x23, 0xDB, 0x9F, 0x8C, 0x59, 0xCF, 0x94, 0x15, 0x15, 0x35, 0x50, 0x65, 0x1E, 
  0x7E, 0xA2, 0x14, 0x3D, 0x94, 0x35, 0x3D, 0x08, 0xD1, 0xCA, 0x65, 0x5D, 0x8C, 0xE6, 0x25, 0xE3, 
  0xEA, 0x87, 0xC7, 0xD2, 0xE7, 0x12, 0xE3, 0x55, 0x03, 0x83, 0xB6, 0x24, 0xAC, 0xE6, 0xB2, 0x0D, 
  0xDA, 0x67, 0x3A, 0x07, 0xC1, 0x8F, 0x8C, 0xB1, 0x99, 0xD0, 0xBF, 0xBD, 0xFB, 0x80, 0x4F, 0x73, 
  0x29, 0xFA, 0x12, 0x1B, 0xE8, 0xE5, 0x55, 0xD5, 0xC4, 0x75, 0x86, 0x59, 0xA4, 0x2C, 0x12, 0xB0, 
  0xEB, 0x4A, 0xDC, 0xBB, 0xDA, 0x5C, 0x55, 0x96, 0xD4, 0x66, 0x8A, 0x3F, 0x77, 0x3B, 0x24, 0x14, 
  0x4D, 0x74, 0xF7, 0x4C, 0x1B, 0xE8, 0x9B, 0x92, 0x99, 0xDF, 0xFE, 0xD5, 0x7E, 0xBA, 0x46, 0xB5, 
  0x13, 0xCC, 0xD6, 0x97, 0xEE, 0xE3, 0xB1, 0x36, 0x4B, 0x31, 0xF7, 0x16, 0x1A, 0xF1, 0x7F, 0x63, 
  0xED, 0xFD, 0x8D, 0x83, 0xA4, 0x89, 0x79, 0x23, 0x97, 0xDA, 0x7D, 0x54, 0x16, 0x15, 0x46, 0xB9, 
  0xA4, 0x30, 0xA9, 0xF6, 0xEE, 0x0E, 0x1D, 0x97, 0xB2, 0xDC, 0x4D, 0x84, 0xB0, 0xFA, 0x47, 0x3B, 
  0x5E, 0xFB, 0xB6, 0xB8, 0xCF, 0x4C, 0xF6, 0xAA, 0x26, 0x4D, 0xCB, 0xB9, 0x78, 0x4D, 0x56, 0xCE, 
  0x9C, 0x0C, 0xD1, 0x3D, 0x45, 0xB4, 0xD6, 0xC0, 0xD5, 0x99, 0xB9, 0x30, 0x5B, 0x1E, 0xF0, 0xDC, 
  0x9A, 0x1B, 0x94, 0x80, 0xAB, 0xAC, 0x86, 0x49, 0x30, 0x74, 0x30, 0xDD, 0x75, 0x1B, 0xAD, 0xDF, 
  0xE4, 0x63, 0xCE, 0x91, 0x90, 0xF4, 0x98, 0xB9, 0xDB, 0x00, 0xAE, 0xAD, 0x85, 0x1B, 0xEE, 0x81, 
  0x9F, 0x95, 0xEA, 0x10, 0xA3, 0x79, 0xDC, 0xEF, 0x45, 0x35, 0x14, 0xF1, 0x73, 0xB0, 0x1A, 0xF4, 
  0x3B, 0x3C, 0xB2, 0x42, 0x51, 0x14, 0x6B, 0x2B, 0xAB, 0xED, 0xAF, 0xA3, 0x24, 0xC0, 0xDB, 0x95, 
  0xBA, 0x40, 0x01, 0xA2, 0xA6, 0xCA, 0x43, 0x0F, 0x45, 0xB8, 0x7D, 0x93, 0xB2, 0x67, 0xA8, 0xDA, 
  0x64, 0xAF, 0xC2, 0x9D, 0xCD, 0xAB, 0x5B, 0xCC, 0x2E, 0x98, 0xDE, 0xF9, 0x28, 0x4A, 0xB4, 0x39, 
  0x41, 0x1C, 0x5A, 0x79, 0xBA, 0xE7, 0x31, 0xEE, 0x0F, 0xF7, 0x5D, 0x62, 0x6C, 0x3A, 0xD3, 0x88, 
  0x2B, 0x8E, 0x9E, 0xB0, 0xD6, 0x49, 0x41, 0x5D, 0x8E, 0x9A, 0xC6, 0xA3, 0x90, 0x10, 0x3F, 0x8A, 
  0xE7, 0x20, 0xD0, 0x4F, 0xC3, 0x71, 0x67, 0x08, 0xD9, 0x42, 0xB6, 0xC1, 0x42, 0x16, 0xF0, 0x40, 
  0x56, 0x77, 0xDB, 0x65, 0xAC, 0x9B, 0x76, 0xC7, 0xDC, 0xFC, 0xF8, 0x5A, 0x89, 0x2B, 0x77, 0xF1, 
  0x2A, 0xEB, 0x27, 0x5C, 0x21, 0xC6, 0x08, 0x2C, 0x6F, 0x2D, 0xC0, 0xE7, 0x3B, 0x1D, 0xCA, 0xF0, 
  0x7B, 0x51, 0x39, 0x29, 0xE7, 0x2E, 0xEB, 0xBD, 0x81, 0xD7, 0x78, 0x27, 0x9D, 0xE7, 0x73, 0x62, 
  0xC4, 0x68, 0x50, 0x08, 0x66, 0x28, 0x89, 0x7F, 0x62, 0x67, 0x4C, 0x3A, 0x65, 0xE7, 0x9B, 0x2E, 
  0x3B, 0x85, 0x61, 0x34, 0x62, 0x02, 0x2C, 0x85, 0x55, 0x8B, 0x80, 0x6C, 0xF1, 0x35, 0xC2, 0x82, 
  0xE9, 0xE0, 0x29, 0x6B, 0x41, 0x42, 0xFF, 0xFF, 0x97, 0xBF, 0x19, 0xA1, 0xAE, 0xB7, 0xA3, 0xE8, 
  0xB5, 0x76, 0x83, 0xB8, 0xB4, 0x44, 0xE5, 0x76, 0x91, 0x60, 0x06, 0x85, 0x43, 0xFC, 0x20, 0x1C, 
  0xC5, 0x03, 0x0A, 0x42, 0x98, 0xF8, 0xC9, 0xD3, 0x59, 0x1D, 0x04, 0x5A, 0x60, 0x4C, 0xC7, 0xAF, 
  0xB3, 0xDA, 0xB4, 0x0E, 0x2A, 0x49, 0x43, 0xFA, 0x1A, 0xD3, 0xB3, 0xE9, 0x67, 0xA9, 0x74, 0xE1, 
  0x60, 0x78, 0xD4, 0x77, 0x13, 0xE1, 0xF9, 0x32, 0xE5, 0x8A, 0x35, 0xC4, 0x0C, 0x46, 0x66, 0x92, 
  0x15, 0xA4, 0x93, 0x30, 0x22, 0x42, 0x55, 0xB4, 0x5A, 0x28, 0x91, 0x7C, 0x58, 0xB9, 0x7A, 0x1F, 
  0xA5, 0x57, 0x8D, 0x2F, 0xF7, 0xAC, 0xE4, 0xC6, 0x65, 0x1A, 0x6D, 0x37, 0x3D, 0xB5, 0x95, 0xE1, 
  0xD5, 0x64, 0xD6, 0x7E, 0x27, 0x0D, 0x68, 0xA3, 0x40, 0x1E, 0x35, 0xBC, 0xC6, 0x65, 0xB1, 0x8B, 
  0xC4, 0x03, 0x37, 0x05, 0xE7, 0xE4, 0x39, 0x5C, 0x1C, 0x0B, 0x8D, 0xF7, 0x22, 0xF3, 0x31, 0x64, 
  0x44, 0x8D, 0x2B, 0x5B, 0x3F, 0x39, 0xE9, 0xEA, 0xF5, 0x15, 0x20, 0xC8, 0x4D, 0x6A, 0xEC, 0x52, 
  0x50, 0xF2, 0xDD, 0x6C, 0xDB, 0x35, 0x7F, 0xB3, 0xBF, 0x70, 0x74, 0x9C, 0x2E, 0xD4, 0xEA, 0x29, 
  0x61, 0x3E, 0xCC, 0xFF, 0xBA, 0xAC, 0x16, 0x63, 0x5F, 0x90, 0xF1, 0xBE, 0xF8, 0xB9, 0xEC, 0xA7, 
  0xB3, 0xF6, 0xE5, 0x33, 0xCA, 0x98, 0x41, 0xF0, 0xD4, 0xEA, 0x7A, 0x38, 0x88, 0x28, 0x74, 0x90, 
  0x3D, 0x6E, 0xA1, 0x11, 0xBA, 0x86, 0x7E, 0xB5, 0xFB, 0xCD, 0x12, 0xCD, 0x13, 0xE5, 0xE4, 0xEF, 
  0x75, 0x22, 0xFC, 0x45, 0x9A, 0x13, 0x04, 0x47, 0xE6, 0x12, 0x0E, 0x2B, 0xD1, 0x1F, 0xD2, 0xC1, 
  0x52, 0x03, 0xBE, 0x1E, 0xA9, 0xA8, 0xB9, 0xDA, 0x5A, 0x85, 0x1B, 0x66, 0x09, 0x1A, 0x14, 0xAD, 
  0xA5, 0x30, 0xCB, 0x74, 0x95, 0x95, 0x75, 0x17, 0xA4, 0xF1, 0x75, 0x69, 0x91, 0x7C, 0x4A, 0x79, 
  0xBF, 0xEB, 0x10, 0x3C, 0xFB, 0x66, 0xF4, 0x28, 0xBE, 0xC1, 0x7E, 0x9A, 0x2F, 0x60, 0x80, 0xC1, 
  0xE2, 0x48, 0x72, 0x9C, 0xEA, 0xEA, 0x93, 0x5E, 0x8B, 0xA8, 0x7F, 0x84, 0x7D, 0xB3, 0x0A, 0x9D, 
  0xC8, 0x21, 0xF4, 0xAF, 0xA2, 0x02, 0x1C, 0xE5, 0x08, 0x66, 0x57, 0x4E, 0xA9, 0xDC, 0x51, 0x16, 
  0xE5, 0x4B, 0x6C, 0xB2, 0x88, 0xF3, 0x8A, 0xDE, 0x2A, 0x0D, 0x0D, 0x06, 0x06, 0xA3, 0xEF, 0x8B, 
  0xDF, 0x6A, 0x4C, 0x96, 0x98, 0x13, 0xA3, 0x4C, 0x59, 0x37, 0xEB, 0x21, 0xFF, 0x1C, 0x75, 0x0C, 
  0x3F, 0xE8, 0x22, 0x0E, 0xD3, 0xE3, 0xAD, 0xA3, 0x6E, 0x7E, 0x67, 0x42, 0x26, 0xF1, 0x6F, 0x57, 
  0x44, 0x7B, 0x1D, 0x1F, 0x7F, 0x0E, 0xEE, 0x06, 0xA0, 0x00, 0x16, 0xA5, 0x10, 0x10, 0x1F, 0x10, 
  0x77, 0x70, 0x40, 0x08, 0x55, 0xCC, 0xA3, 0x07, 0x6E, 0xB5, 0x28, 0xBF, 0x37, 0x68, 0x62, 0x63, 
  0x98, 0x1A, 0x55, 0x99, 0x11, 0x1D, 0x8E, 0xE9, 0xD9, 0x85, 0xC4, 0xB1, 0x2D, 0x98, 0xC1, 0x2E, 
  0x90, 0x22, 0x7C, 0x4B, 0x7C, 0x8F, 0x89, 0x1D, 0x3E, 0x4D, 0x43, 0xF7, 0x47, 0x3E, 0x9A, 0x01, 
  0x23, 0xF1, 0x63, 0x48, 0x4C, 0x27, 0x50, 0x61, 0xBC, 0x7F, 0x82, 0xBE, 0x1D, 0x87, 0xC5, 0xD5, 
  0x25, 0x0A, 0x29, 0x77, 0xCA, 0x6C, 0x63, 0x22, 0x92, 0xF2, 0x16, 0x6C, 0xAA, 0x28, 0x35, 0xC7, 
  0x9A, 0x93, 0xB0, 0x08, 0x96, 0x85, 0x33, 0xBA, 0x49, 0xC1, 0x17, 0x71, 0x59, 0x94, 0xD4, 0x02, 
  0x42, 0x28, 0xB0, 0x2F, 0x39, 0xE5, 0x5D, 0x5B, 0xE4, 0x6C, 0x8F, 0x26, 0x0D, 0x0D, 0xC4, 0xF1, 
  0xB7, 0x14, 0x3D, 0xA8, 0x7B, 0x32, 0xCB, 0x90, 0x28, 0x44, 0xE6, 0x82, 0x0E, 0x07, 0xBB, 0x8F, 
  0xAD, 0x52, 0x79, 0x26, 0x6F, 0xC9, 0x09, 0xCF, 0x26, 0x23, 0xBA, 0x91, 0xAA, 0xFD, 0x09, 0x4E, 
  0xA9, 0x7C, 0xB6, 0xAD, 0xDD, 0xF0, 0x2F, 0x50, 0xDD, 0x10, 0xF5, 0x0B, 0xE0, 0xBE, 0x07, 0x42, 
  0x62, 0x09, 0xFA, 0x15, 0x4D, 0x58, 0x7C, 0xDE, 0xC3, 0xB8, 0x00, 0xF7, 0x24, 0x23, 0x98, 0x4F, 
  0x3A, 0xB0, 0xFC, 0x53, 0xD9, 0xB1, 0x5F, 0xAA, 0x1D, 0xA2, 0x3B, 0xC4, 0xCD, 0x88, 0x9A, 0x49, 
  0x40, 0x66, 0xBA, 0xB1, 0x4D, 0xE0, 0x8B, 0xAF, 0x6C, 0x59, 0x69, 0xC5, 0xAF, 0x42, 0x74, 0xC8, 
  0xB5, 0xB2, 0x6D, 0x65, 0x05, 0x93, 0x9B, 0xA7, 0xDD, 0x23, 0x91, 0x10, 0xD0, 0x2D, 0x04, 0x07, 
  0x3F, 0x64, 0xEA, 0xEA, 0x4C, 0xA5, 0xC1, 0xBC, 0xA4, 0x8C, 0x01, 0xFF, 0x7E, 0x41, 0xA0, 0xE5, 
  0xE7, 0xF0, 0xD8, 0x43, 0xBD, 0x42, 0xAD, 0xE0, 0x13, 0x63, 0xB4, 0x7B, 0xDD, 0x23, 0x18, 0x35, 
  0x1E, 0xBF, 0xE1, 0xD3, 0xFF, 0xBC, 0xB4, 0x4F, 0xDA, 0x53, 0x47, 0xFB, 0x2B, 0xFA, 0x71, 0xEB, 
  0x42, 0x57, 0xB4, 0xF2, 0x98, 0x5F, 0x40, 0xF9, 0xDA, 0xE8, 0x3E, 0xF6, 0xDD, 0x25, 0xA4, 0xAC, 
  0x8D, 0xF5, 0xF1, 0xB5, 0xAD, 0x96, 0xFD, 0x93, 0xD4, 0x45, 0x50, 0x3F, 0x96, 0x88, 0x2A, 0x11, 
  0x61, 0xA8, 0x84, 0xA6, 0x24, 0x2F, 0xE4, 0xBA, 0x4C, 0x5E, 0x3C, 0xDD, 0x5D, 0x75, 0xEF, 0xD5, 
  0x88, 0xFE, 0xFE, 0xCB, 0x5D, 0x91, 0x9C, 0x9A, 0x00, 0x88, 0x8A, 0xB2, 0x91, 0x23, 0x48, 0x0F, 
  0x85, 0xE8, 0xBA, 0xD5, 0x05, 0xF3, 0xCE, 0xCF, 0x92, 0x36, 0x28, 0x66, 0xDF, 0x14, 0x41, 0x88, 
  0xC6, 0x8C, 0x65, 0x58, 0x63, 0x71, 0x62, 0x08, 0x02, 0xD8, 0xC6, 0x03, 0xE5, 0xB6, 0xF1, 0x09, 
  0x45, 0xD8, 0x1A, 0xC5, 0xC8, 0x57, 0x3B, 0xE4, 0x13, 0x1E, 0xD4, 0xB3, 0x78, 0xC1, 0xA9, 0x20, 
  0xBE, 0x8C, 0xD1, 0x1C, 0xC7, 0x8A, 0x93, 0x49, 0x3E, 0x76, 0x08, 0xE2, 0x14, 0x77, 0x18, 0x8A, 
  0x09, 0x59, 0x9C, 0x0C, 0xE2, 0x9D, 0x75, 0xD3, 0xD8, 0x69, 0x8F, 0xC9, 0x15, 0x06, 0x8F, 0x4F, 
  0xD4, 0x9E, 0x1D, 0xB9, 0x63, 0x83, 0xA4, 0xDC, 0xD2, 0x49, 0x63, 0x16, 0x4B, 0xAC, 0x8F, 0x15, 
  0x08, 0xAC, 0xA8, 0x3B, 0xA8, 0x29, 0x67, 0x48, 0x43, 0xF5, 0xF9, 0x5E, 0xFD, 0xFC, 0x72, 0x13, 
  0xBD, 0xF2, 0x44, 0xC1, 0x93, 0x6B, 0x76, 0x72, 0xFE, 0xD0, 0xE0, 0x15, 0x8B, 0xAD, 0xFF, 0xB2, 
  0x09, 0xFB, 0x4C, 0x82, 0x9E, 0xA1, 0x10, 0xDD, 0xA3, 0x43, 0x65, 0x83, 0x91, 0xCF, 0x2E, 0xF6, 
  0x03, 0x07, 0x69, 0x97, 0x55, 0x9E, 0xB1, 0xF9, 0x45, 0x90, 0x7F, 0x4D, 0x87, 0x7E, 0xDE, 0xCB, 
  0xE4, 0x35, 0x97, 0x9C, 0x07, 0xB4, 0x64, 0xC1, 0x7C, 0x32, 0x67, 0x51, 0x90, 0x3C, 0x1C, 0x57, 
  0x63, 0xA2, 0xB0, 0x99, 0x5D, 0x83, 0x8F, 0xFC, 0xCA, 0xDC, 0x20, 0x37, 0x55, 0x67, 0x18, 0xB5, 
  0xDE, 0xBF, 0xF5, 0x60, 0x02, 0xEF, 0x37, 0xA7, 0x56, 0x2E, 0xFD, 0x1A, 0x82, 0xD6, 0x66, 0x86, 
  0x06, 0xFB, 0x41, 0x26, 0xD0, 0xA9, 0xDD, 0x72, 0xAE, 0x7C, 0x52, 0xCC, 0x46, 0x12, 0x57, 0x95, 
  0xD3, 0xB4, 0x12, 0xDE, 0xD2, 0xEC, 0x44, 0xA3, 0xB7, 0x0A, 0x1C, 0xF3, 0x1A, 0xAD, 0xDE, 0x00, 
  0x90, 0x38, 0xB0, 0xE5, 0xE8, 0xAF, 0xCF, 0x42, 0x32, 0x66, 0x75, 0xAA, 0xA9, 0x40, 0x7D, 0x32, 
  0x7F, 0xED, 0x2F, 0x4A, 0xF9, 0x5B, 0xB4, 0xE6, 0x9D, 0x67, 0x16, 0xFC, 0xE3, 0xA9, 0xD2, 0xD0, 
  0x81, 0x4E, 0x44, 0xF9, 0x4B, 0x0C, 0x73, 0xB0, 0x6B, 0x7C, 0xB9, 0xF9, 0x2C, 0xF1, 0x90, 0x27, 
  0xB8, 0x5F, 0xB3, 0x87, 0xAC, 0x57, 0x8E, 0xEA, 0x9C, 0x83, 0xCA, 0xC7, 0x17, 0xFA, 0x29, 0x78, 
  0x7A, 0xAF, 0xAA, 0xFE, 0x69, 0x51, 0xA1, 0x9A, 0xD0, 0x06, 0xD6, 0x81, 0xA8, 0xE0, 0x54, 0x0A, 
  0x53, 0xD1, 0x4F, 0x63, 0x14, 0x02, 0xF5, 0x81, 0xB3, 0x35, 0x99, 0x6E, 0x2B, 0x7D, 0x1A, 0x8F, 
  0x1A, 0xE5, 0x3D, 0x4E, 0x36, 0x2D, 0x0C, 0x27, 0x05, 0x42, 0xD6, 0x36, 0xDE, 0xE1, 0x81, 0x2F, 
  0xA3, 0x73, 0xC8, 0xCB, 0xB3, 0x41, 0xAC, 0x23, 0xB9, 0xD8, 0xF9, 0x24, 0x67, 0x88, 0x9B, 0xEB, 
  0x86, 0x06, 0x24, 0xBD, 0xB9, 0xEE, 0xFB, 0xC2, 0xEC, 0xDF, 0x28, 0x62, 0xD8, 0x77, 0xBA, 0xB7, 
  0x87, 0x50, 0x77, 0x73, 0x70, 0xB5, 0x6F, 0x43, 0x97, 0x2D, 0x51, 0x7B, 0x03, 0x30, 0xCC, 0xCF, 
  0x14, 0xD7, 0xE6, 0xB9, 0xEE, 0x31, 0xA8, 0x56, 0xB9, 0x81, 0x87, 0xB6, 0xC4, 0x98, 0x25, 0x05, 
  0xEE, 0x2C, 0xE9, 0xA6, 0x49, 0xAC, 0x1A, 0xD1, 0x8D, 0x94, 0xD3, 0x24, 0xDB, 0x41, 0x10, 0xFE, 
  0x9A, 0x4E, 0xE0, 0xBC, 0xFF, 0xC0, 0x4C, 0x04, 0x0C, 0x7E, 0x44, 0xA6, 0x2C, 0x3E, 0x3F, 0x14, 
  0x8B, 0x3A, 0xF0, 0x40, 0x85, 0xE3, 0xA3, 0x66, 0xD0, 0x12, 0xB4, 0xB4, 0xB8, 0x48, 0xEF, 0x63, 
  0x9C, 0x44, 0x4A, 0x1C, 0x5D, 0x14, 0xCA, 0x97, 0xAD, 0xDF, 0xFD, 0x4D, 0x4B, 0x07, 0xCF, 0x88, 
  0xD6, 0xB0, 0x8D, 0x77, 0xE3, 0xA8, 0x70, 0x27, 0xF8, 0x2E, 0x7A, 0x77, 0xFD, 0x47, 0x81, 0x5F, 
  0x3B, 0xF1, 0xF9, 0x82, 0xFE, 0xBB, 0x8F, 0xCB, 0x88, 0x91, 0xC6, 0xBA, 0x6D, 0xEC, 0xC1, 0x86, 
  0x84, 0xDC, 0xE2, 0x90, 0xFA, 0xF0, 0x20, 0xBE, 0x57, 0x57, 0x4B, 0x39, 0xF3, 0xD3, 0xCB, 0x2D, 
  0x55, 0x5F, 0xF5, 0xB0, 0x53, 0x50, 0x38, 0x5C, 0x47, 0xD0, 0x40, 0x04, 0xE8, 0xFA, 0x99, 0xEC, 
  0x34, 0x49, 0xEF, 0x64, 0x1B, 0xFC, 0x3C, 0x9C, 0x6C, 0xC9, 0x96, 0xAE, 0x1F, 0x23, 0x3F, 0x52, 
  0x96, 0x9B, 0x94, 0x7C, 0x8B, 0x13, 0xC3, 0xA9, 0x88, 0x05, 0x14, 0x9B, 0x12, 0x67, 0x95, 0x47, 
  0xFB, 0xE2, 0x53, 0x58, 0x6F, 0x20, 0xB0, 0xDA, 0x1F, 0x82, 0x2A, 0x0B, 0x4B, 0x5B, 0xDE, 0x63, 
  0xA2, 0x35, 0x3B, 0x36, 0xB3, 0xBA, 0x11, 0x44, 0x3D, 0xAD, 0xC9, 0x37, 0xBC, 0x35, 0xEE, 0x61, 
  0xA5, 0x83, 0x77, 0xC0, 0x61, 0xBA, 0x1E, 0x0E, 0x82, 0x2D, 0xD1, 0xD4, 0x82, 0x46, 0x56, 0x06, 
  0x4E, 0x0E, 0x0E, 0x6C, 0xAE, 0x4A, 0x5C, 0xDE, 0xDB, 0xFB, 0xA8, 0xE9, 0x06, 0xC2, 0xAD, 0x77, 
  0xAC, 0x89, 0x06, 0xA6, 0xF1, 0xB2, 0x03, 0x7D, 0x1B, 0xFE, 0xCC, 0xA3, 0x35, 0x84, 0x46, 0x92, 
  0xC4, 0xFD, 0xC2, 0x97, 0x0D, 0xDE, 0xAE, 0xC4, 0x51, 0xF7, 0xDB, 0xDE, 0xB7, 0x99, 0x0F, 0xAC, 
  0x47, 0xBF, 0xDE, 0xCA, 0x88, 0x17, 0x86, 0x54, 0x7C, 0xAF, 0x3D, 0xE7, 0x7C, 0xD7, 0xBB, 0x20, 
  0x92, 0x38, 0xDA, 0x5D, 0xC7, 0x68, 0x51, 0x2F, 0x06, 0x53, 0x8E, 0x66, 0x26, 0x75, 0x33, 0x2B, 
  0xF8, 0x4D, 0xA9, 0x36, 0xA0, 0xD6, 0x15, 0x39, 0x3D, 0xC9, 0xC0, 0xAE, 0xD1, 0xA7, 0x8B, 0xA9, 
  0x43, 0x33, 0xA6, 0xF9, 0x6F, 0xB4, 0x0F, 0xD6, 0x80, 0x36, 0xEF, 0xEC, 0xEE, 0xB2, 0x94, 0x24, 
  0xDE, 0xCF, 0x5D, 0x5E, 0xFB, 0x93, 0xC9, 0x4A, 0xBD, 0x1E, 0xD7, 0x8E, 0x51, 0x1E, 0x0D, 0xB1, 
  0x11, 0x4B, 0xC3, 0x27, 0xFF, 0x1C, 0x60, 0x42, 0x1C, 0x9E, 0x0E, 0xE3, 0x4D, 0xBA, 0xB6, 0x70, 
  0xF7, 0xF0, 0xC7, 0xB3, 0x16, 0x97, 0xF8, 0x91, 0x36, 0x23, 0x2F, 0x0A, 0x29, 0xBE, 0x4B, 0x6D, 
  0x10, 0xDC, 0x95, 0x28, 0xB8, 0x41, 0x66, 0x2E, 0x21, 0x61, 0xAE, 0xB2, 0xDC, 0x19, 0xFB, 0x25, 
  0x92, 0xEC, 0x56, 0xB0, 0x30, 0x0C, 0x1B, 0xB3, 0x30, 0xE6, 0xAD, 0xD4, 0x6F, 0xAF, 0xBF, 0x68, 
  0xAE, 0xCC, 0xA0, 0xFA, 0x8F, 0x16, 0x00, 0x0D, 0xE1, 0x89, 0xFA, 0x59, 0x8A, 0x9B, 0xDD, 0x4A, 
  0xBC, 0x12, 0x04, 0xB1, 0xA1, 0x34, 0x6D, 0x70, 0x21, 0xC9, 0x87, 0x3C, 0x00, 0x78, 0xFA, 0x2B, 
  0x3A, 0xBD, 0x4A, 0xFE, 0x0D, 0x88, 0xE8, 0x95, 0xCB, 0x91, 0x1D, 0xEE, 0x7A, 0x76, 0xD1, 0x65, 
  0xF5, 0xCA, 0x07, 0xC7, 0x26, 0x7D, 0x23, 0x6F, 0xCD, 0xE2, 0xAE, 0xB7, 0x1F, 0xFF, 0xE7, 0x2E, 
  0x47, 0x23, 0xB0, 0x39, 0x55, 0x01, 0x9B, 0x25, 0x51, 0x08, 0x6F, 0xB6, 0xB1, 0x65, 0xD7, 0xD6, 
  0x36, 0x60, 0xED, 0x30, 0xD9, 0xD8, 0xDD, 0x0F, 0xF4, 0xFF, 0x31, 0xED, 0x29, 0x4C, 0x5E, 0x71, 
  0x58, 0xF9, 0x36, 0x70, 0x03, 0x57, 0x43, 0x68, 0xA4, 0xF6, 0x5B, 0x0B, 0x79, 0xD3, 0x40, 0xAB, 
  0x55, 0x2B, 0x6D, 0xC2, 0x4B, 0x45, 0xE8, 0xDF, 0x68, 0x68, 0xCE, 0x64, 0x07, 0x6B, 0xF3, 0xF0, 
  0xB0, 0x22, 0x54, 0xB4, 0x71, 0x86, 0xB6, 0x96, 0xA2, 0x1D, 0x88, 0x2E, 0x66, 0xEB, 0x24, 0x1F, 
  0x7A, 0x4D, 0x68, 0x8D, 0xEF, 0x3C, 0x02, 0x8A, 0x31, 0x1A, 0xBF, 0x43, 0xA5, 0x38, 0xEF, 0x4D, 
  0x3E, 0x56, 0xB7, 0x18, 0x92, 0x6D, 0xDA, 0x8E, 0x9B, 0xA4, 0xF4, 0x93, 0xDC, 0xE6, 0x05, 0x97, 
  0x7D, 0x36, 0xCD, 0x02, 0xC5, 0x9C, 0x13, 0x49, 0x3A, 0xD1, 0xD5, 0xE6, 0xAB, 0xC2, 0xC5, 0x64, 
  0x6F, 0x82, 0xE1, 0xCE, 0xDB, 0x49, 0x39, 0x7A, 0x38, 0xCB, 0xF6, 0xD9, 0x2D, 0x69, 0xBA, 0x6A, 
  0x64, 0xF0, 0x32, 0xC4, 0x8C, 0x89, 0x38, 0xF5, 0x29, 0x80, 0x2C, 0x8A, 0x52, 0x72, 0x31, 0x7C, 
  0x48, 0xA4, 0xDE, 0xC3, 0x79, 0x0C, 0x6E, 0xE1, 0x7E, 0x16, 0xF8, 0x0B, 0x45, 0xF3, 0x59, 0x19, 
  0x87, 0x9D, 0x15, 0x35, 0x01, 0xE4, 0x79, 0x80, 0x2B, 0xA7, 0x6F, 0xB7, 0x14, 0xCD, 0x5C, 0xAE, 
  0xE3, 0x4D, 0xB1, 0xCA, 0x19, 0x07, 0xB0, 0x01, 0xCE, 0x26, 0x27, 0x2B, 0xB1, 0x56, 0xAC, 0x65, 
  0xA2, 0xB9, 0xC0, 0xD0, 0x78, 0x5D, 0xAA, 0xFB, 0x2C, 0x5A, 0xB1, 0x0B, 0x07, 0xDB, 0x57, 0xB7, 
  0x9A, 0x0C, 0x20, 0x2B, 0xC1, 0xAC, 0x9F, 0xF6, 0xD3, 0x8A, 0xF0, 0xA1, 0xCD, 0xEF, 0x92, 0x59, 
  0x2D, 0x23, 0x69, 0x41, 0x25, 0x00, 0x46, 0x3D, 0x68, 0x3F, 0x24, 0x74, 0x0D, 0x37, 0x14, 0x0F, 
  0x89, 0x6D, 0xDE, 0x12, 0x68, 0xA7, 0xD4, 0x78, 0x5B, 0x3F, 0x1A, 0xA8, 0xAC, 0x07, 0x39, 0x8D, 
  0x5E, 0xDE, 0xD6, 0xA6, 0x21, 0xCC, 0xFC, 0x88, 0x81, 0xAA, 0x8A, 0x61, 0xCE, 0x3F, 0xA3, 0x6A, 
  0x58, 0x8A, 0xBF, 0x46, 0xCC, 0x49, 0x32, 0xD0, 0x79, 0xFA, 0x7C, 0x4D, 0xFF, 0x19, 0x83, 0x45, 
  0x6E, 0xFA, 0x55, 0xFE, 0x8B, 0x5A, 0xBA, 0xA2, 0x66, 0x65, 0xDC, 0xE0, 0x59, 0x52, 0xE6, 0xDB, 
  0x47, 0x9F, 0xEE, 0x7F, 0xC5, 0x40, 0x0C, 0x99, 0x79, 0x44, 0xC7, 0x85, 0xCC, 0x92, 0xF3, 0x44, 
  0x5B, 0x08, 0x6E, 0xA6, 0x77, 0x08, 0x59, 0x97, 0x8D, 0x3C, 0xEF, 0xCA, 0x3F, 0xED, 0x8D, 0x00, 
  0xFD, 0x75, 0xC0, 0x10, 0xF6, 0x35, 0xA9, 0x3C, 0x59, 0xD7, 0x7F, 0xF7, 0xA1, 0xA3, 0x48, 0xC8, 
  0x8A, 0x0D, 0x22, 0x31, 0xDD, 0x0A, 0x33, 0x96, 0xF4, 0xF8, 0x74, 0x5F, 0x9A, 0x9D, 0x9B, 0xCF, 
  0x8A, 0xCF, 0x26, 0xD9, 0xD8, 0x66, 0xFE, 0x74, 0x3A, 0xAD, 0x33, 0x39, 0xA9, 0xCB, 0x01, 0xFC, 
  0xA4, 0xA8, 0xA3, 0xB4, 0x95, 0x21, 0xDE, 0xDA, 0x1B, 0x3A, 0x78, 0xFA, 0x8C, 0xF6, 0x14, 0x42, 
  0xD0, 0xB4, 0xAA, 0x07, 0xA1, 0x0C, 0xA5, 0xA0, 0x18, 0xFC, 0xB4, 0x32, 0x04, 0xC4, 0x87, 0xC0, 
  0x2D, 0x70, 0xD7, 0x33, 0xC8, 0x5D, 0x70, 0xE5, 0x9F, 0x88, 0x8F, 0x0B, 0xA4, 0x76, 0x3E, 0x1E, 
  0xE7, 0x5C, 0x4E, 0x87, 0xD6, 0xE1, 0x1B, 0x6F, 0xE5, 0x66, 0x30, 0xD0, 0x3B, 0x7E, 0x60, 0x43, 
  0x97, 0x92, 0x14, 0xA4, 0x77, 0x80, 0xF4, 0xBB, 0x8E, 0xB4, 0x49, 0x9F, 0xF5, 0x55, 0xE9, 0x32, 
  0x9B, 0x57, 0x9E, 0x16, 0xC3, 0x81, 0x85, 0xD3, 0xFA, 0x79, 0x63, 0xD4, 0x92, 0xA9, 0xAC, 0x01, 
  0x12, 0xFE, 0xAC, 0xC5, 0x3A, 0xB6, 0x13, 0xB5, 0x7F, 0xEC, 0x82, 0x76, 0xC6, 0x4C, 0x57, 0xBF, 
  0xE7, 0xFB, 0x61, 0x14, 0x97, 0x0A, 0x85, 0x88, 0x8F, 0x81, 0x78, 0x41, 0x89, 0x70, 0x90, 0x89, 
  0x06, 0x83, 0x54, 0xBB, 0x32, 0x66, 0x1C, 0x8D, 0xD2, 0x39, 0x62, 0x2D, 0xB5, 0xF6, 0xBD, 0xD0, 
  0xA0, 0x65, 0xDC, 0x93, 0x44, 0x1A, 0x5F, 0x93, 0xE7, 0x6D, 0xB6, 0x3E, 0x77, 0x15, 0xE1, 0xE2, 
  0xDC, 0x16, 0x33, 0xF9, 0xFC, 0xB0, 0x10, 0x60, 0xB6, 0x6E, 0x1E, 0xD9, 0xEC, 0x26, 0x89, 0x63, 
  0x22, 0x28, 0xE0, 0xAD, 0xC8, 0xB1, 0xB6, 0xBD, 0xBC, 0x86, 0x22, 0x95, 0x72, 0x39, 0x74, 0x03, 
  0xE7, 0xF5, 0xED, 0x17, 0xE1, 0xFD, 0xCA, 0xD5, 0x90, 0xDB, 0x99, 0x08, 0xE9, 0xE9, 0xB7, 0xE1, 
  0x8E, 0x9E, 0x02, 0xD5, 0x4F, 0xB5, 0x45, 0x5C, 0x19, 0x95, 0x9B, 0xC9, 0xA5, 0x92, 0xB8, 0x34, 
  0xCF, 0xF6, 0x40, 0x54, 0xE5, 0x83, 0x49, 0x32, 0xC8, 0xFC, 0x1B, 0x75, 0x38, 0x0C, 0x02, 0x9E, 
  0xD6, 0x52, 0xC5, 0x4C, 0xBC, 0x48, 0xC8, 0x27, 0xC3, 0x7B, 0x39, 0x07, 0x99, 0xA4, 0x0F, 0x8A, 
  0x25, 0x41, 0x29, 0xE4, 0x64, 0xAB, 0xC7, 0xB7, 0xC6, 0x44, 0x5D, 0xDE, 0xDF, 0xCB, 0xE5, 0xD1, 
  0xFE, 0x9D, 0x14, 0xD2, 0x99, 0x75, 0x9C, 0xD7, 0xCA, 0xA3, 0x28, 0x4C, 0x1D, 0x62, 0x9B, 0xD7, 
  0x71, 0x68, 0xDB, 0x2F, 0x70, 0xB2, 0x10, 0x9A, 0x01, 0xD4, 0x35, 0x74, 0xCF, 0x60, 0xE8, 0x77, 
  0x89, 0x6E, 0xBF, 0xC4, 0x5A, 0x79, 0xC6, 0xF4, 0xC6, 0x26, 0xCF, 0x1F, 0xE0, 0x55, 0xB0, 0x05, 
  0x55, 0x6A, 0x15, 0xD5, 0xEB, 0xE7, 0xB2, 0x61, 0xC5, 0x9A, 0x98, 0xB9, 0x77, 0x62, 0xFB, 0x46, 
  0xC4, 0xBC, 0x6B, 0x9F, 0xF9, 0x83, 0x7D, 0x83, 0x52, 0xCB, 0x6D, 0x42, 0x57, 0x87, 0xEB, 0x45, 
  0xEA, 0xA5, 0xAE, 0x1D, 0x16, 0x03, 0xC8, 0x1E, 0xDE, 0xC3, 0x20, 0x76, 0xA9, 0xBF, 0xA7, 0x05, 
  0x20, 0x1A, 0x56, 0xD6, 0xF1, 0x37, 0x74, 0x65, 0x3C, 0xC0, 0xA2, 0x01, 0x34, 0xF4, 0x99, 0xF0, 
  0x65, 0x47, 0x06, 0x9D, 0x0A, 0x07, 0xA3, 0xD4, 0xCA, 0xA5, 0x0A, 0x8F, 0x55, 0x62, 0x04, 0x93, 
  0x7A, 0x1D, 0xA9, 0x45, 0xFE, 0xB4, 0x5C, 0xEF, 0x86, 0x64, 0x70, 0x21, 0x51, 0xB4, 0x54, 0xDC, 
  0xFB, 0x5B, 0x94, 0xD0, 0x3E, 0x4F, 0x7F, 0xB4, 0x4A, 0xD5, 0xA8, 0x84, 0xA0, 0x7F, 0xA5, 0xEF, 
  0x41, 0x3B, 0x78, 0x8B, 0x00, 0x31, 0xA5, 0xDF, 0xE3, 0xDB, 0xF1, 0x0A, 0x90, 0x97, 0xA8, 0xA7, 
  0x62, 0x71, 0xF4, 0xD7, 0x23, 0xC7, 0x03, 0xB0, 0x39, 0x35, 0xDC, 0x66, 0x18, 0x81, 0x4A, 0x73, 
  0x49, 0x2E, 0x78, 0xD1, 0x8A, 0x33, 0x46, 0x59, 0x83, 0x25, 0xA6, 0xDD, 0xFA, 0x9E, 0x08, 0x98, 
  0x79, 0x2D, 0x64, 0x36, 0xFC, 0x5C, 0x4C, 0xE4, 0xAF, 0x55, 0x1D, 0xDD, 0xE1, 0x81, 0x5B, 0x8B, 
  0xB9, 0x13, 0x31, 0xB3, 0x2D, 0x44, 0x0E, 0xD6, 0xB6, 0xD3, 0xED, 0xEE, 0xED, 0x79, 0xFC, 0x93, 
  0x1C, 0x07, 0xAB, 0x67, 0xF9, 0x9E, 0xDC, 0x0A, 0x86, 0x0E, 0x35, 0x59, 0x58, 0xD8, 0x87, 0x32, 
  0x1A, 0x99, 0x67, 0xC8, 0xF8, 0x41, 0x2B, 0x49, 0xEE, 0xC1, 0xA2, 0x9E, 0xD6, 0xD4, 0xED, 0x6E, 
  0x1C, 0x09, 0xFD, 0xC0, 0xE7, 0x11, 0x0B, 0xCF, 0x4E, 0xA9, 0xB3, 0xD5, 0xCE, 0x80, 0x4D, 0x5F, 
  0x4D, 0xF9, 0xF0, 0x6B, 0x2E, 0xE6, 0xAF, 0xD6, 0x94, 0x50, 0x0A, 0xF5, 0x7E, 0x9B, 0x77, 0x6D, 
  0x4E, 0x90, 0x47, 0x3D, 0x62, 0xCD, 0x5F, 0x28, 0xD4, 0xC6, 0xC9, 0xD5, 0x28, 0xCF, 0x1B, 0x51, 
  0xF7, 0x34, 0x93, 0xFE, 0xD8, 0x44, 0xCB, 0xFB, 0x68, 0xA2, 0x72, 0x6D, 0x9D, 0x05, 0x52, 0xDD, 
  0x9A, 0xD3, 0x4B, 0x4A, 0x7A, 0x28, 0xB5, 0x0E, 0x37, 0xE2, 0xE6, 0xFB, 0xF8, 0x58, 0xA4, 0x28, 
  0x19, 0x46, 0xC5, 0x86, 0x12, 0xA8, 0x85, 0x5B, 0xE8, 0x04, 0xBC, 0x8A, 0x82, 0x7C, 0x07, 0xCB, 
  0x54, 0xBF, 0xC2, 0x4D, 0x71, 0x3B, 0x0D, 0x97, 0xCF, 0x78, 0x24, 0x2C, 0x34, 0xA4, 0x10, 0xA3, 
  0x7A, 0x97, 0xBF, 0xFC, 0xFA, 0x4C, 0xFB, 0xDC, 0x35, 0xA7, 0x9D, 0x6F, 0xA1, 0xD7, 0x5B, 0x62, 
  0x1B, 0x08, 0xF5, 0x46, 0x4B, 0x43, 0x8F, 0xFC, 0xC3, 0x6E, 0x62, 0xDC, 0xB0, 0x8A, 0xC4, 0xF8, 
  0xC6, 0x16, 0xBA, 0xD9, 0xF7, 0xED, 0x45, 0xEC, 0xDD, 0x3E, 0xFA, 0xD3, 0x21, 0x40, 0x4F, 0x1A, 
  0xEF, 0x61, 0x88, 0x23, 0x0A, 0x6A, 0x04, 0x17, 0xA5, 0x3C, 0xB1, 0x72, 0x9D, 0x9C, 0x83, 0xF0, 
  0x2E, 0x23, 0xE8, 0x1D, 0x33, 0x75, 0xCA, 0x00, 0xF8, 0xE9, 0x85, 0x62, 0x24, 0xD4, 0xB3, 0xFD, 
  0xF0, 0x5B, 0xBA, 0x74, 0x22, 0xF0, 0x3D, 0x15, 0x15, 0xFE, 0xF9, 0x12, 0x67, 0xDA, 0x16, 0x68, 
  0x9D, 0x2B, 0xD1, 0x6C, 0x53, 0xFC, 0x36, 0xB3, 0x76, 0x8E, 0xF5, 0xC5, 0x61, 0xC5, 0xE3, 0x2B, 
  0xE8, 0x2F, 0xDD, 0x33, 0xB1, 0xA1, 0x08, 0x44, 0x7A, 0x57, 0xC8, 0x51, 0x78, 0x22, 0x13, 0xE0, 
  0x67, 0x27, 0x6F, 0x68, 0x6D, 0x5C, 0x84, 0x5B, 0x13, 0xEA, 0xFD, 0xBE, 0x0D, 0xC2, 0x6D, 0x18, 
  0x6B, 0xE5, 0xB3, 0xA3, 0x15, 0x29, 0xD4, 0x06, 0x62, 0xBA, 0xBD, 0x30, 0x4B, 0x5C, 0x86, 0x3E, 
  0x33, 0xAD, 0x76, 0x18, 0x73, 0xCD, 0x58, 0xD0, 0x4E, 0xA9, 0x16, 0xD9, 0x21, 0x5E, 0x6A, 0xDB, 
  0x86, 0xA0, 0x8F, 0x4E, 0x97, 0x0F, 0xB5, 0x0A, 0x6A, 0xE0, 0xE3, 0x05, 0x21, 0x82, 0x1A, 0xFD, 
  0x2E, 0x21, 0x9C, 0x9A, 0x0A, 0xFD, 0x4E, 0x97, 0x08, 0xF4, 0x58, 0x87, 0x68, 0x88, 0x4F, 0x93, 
  0x2F, 0xE3, 0x4A, 0x86, 0x60, 0xDA, 0x70, 0xC8, 0xDE, 0x11, 0xFF, 0x0C, 0xD1, 0x56, 0xDD, 0xEE, 
  0x6C, 0x43, 0xBE, 0x97, 0x9A, 0xA8, 0x12, 0xD9, 0x10, 0xDC, 0xFC, 0x3D, 0x25, 0x58, 0x69, 0x71, 
  0xD5, 0x48, 0x2D, 0x7B, 0x3C, 0xDE, 0x2B, 0x47, 0x24, 0x6B, 0x5E, 0x6A, 0x06, 0x9E, 0xDA, 0xD6, 
  0xBA, 0x71, 0x3A, 0x92, 0xA8, 0x5C, 0xB7, 0xEF, 0x22, 0xE2, 0xD8, 0xF2, 0xE4, 0xA1, 0xB1, 0x78, 
  0xB7, 0xAF, 0x87, 0xD6, 0xB0, 0xE2, 0xD8, 0x4F, 0x13, 0x0D, 0x0C, 0xCA, 0xB3, 0x5D, 0xA0, 0x1F, 
  0x31, 0xFB, 0x4F, 0xF6, 0x08, 0x57, 0x59, 0xAB, 0xD2, 0x8B, 0x7F, 0xBE, 0x73, 0xD2, 0xDE, 0xE6, 
  0x27, 0x1B, 0x76, 0x52, 0x92, 0x75, 0x99, 0x39, 0xDA, 0x53, 0x28, 0xC0, 0xFF, 0x9D, 0x6F, 0x4E, 
  0xC9, 0xC7, 0x11, 0xCA, 0x74, 0x90, 0x72, 0x47, 0x09, 0xE8, 0xBB, 0x4B, 0x60, 0xEA, 0xA2, 0x98, 
  0x74, 0xDB, 0x65, 0xEF, 0x30, 0xDD, 0xDC, 0x17, 0x44, 0x7A, 0xD7, 0x20, 0x65, 0x6D, 0x43, 0xB3, 
  0xBB, 0xC6, 0x5F, 0x5A, 0x98, 0xC5, 0xD4, 0x9F, 0x7B, 0x5C, 0x1B, 0xAD, 0x0F, 0x9B, 0x18, 0x3A, 
  0x50, 0x27, 0xF3, 0x30, 0xC4, 0xDE, 0x1F, 0xDA, 0xC4, 0x09, 0xB4, 0x60, 0x28, 0xA4, 0x01, 0x35, 
  0x0F, 0x4B, 0xD0, 0xEF, 0x0F, 0x12, 0x70, 0x7B, 0x5F, 0x0F, 0xB4, 0x4C, 0xBD, 0xF3, 0x8A, 0x89, 
  0x2D, 0xB6, 0x91, 0xF7, 0xDB, 0x3A, 0x4E, 0xC8, 0x00, 0xFD, 0xC5, 0x05, 0xA7, 0xD7, 0xCD, 0x49, 
  0x9E, 0x20, 0x3B, 0xBC, 0xE6, 0x77, 0x92, 0x41, 0x67, 0xE1, 0x79, 0x46, 0x7F, 0x66, 0x70, 0xF1, 
  0x96, 0x47, 0x44, 0x42, 0x62, 0xBC, 0x8D, 0x77, 0x44, 0x38, 0x31, 0x88, 0x0D, 0xE2, 0x75, 0xF8, 
  0xCB, 0x27, 0xA4, 0x7C, 0xE0, 0x07, 0x56, 0xB5, 0xED, 0x98, 0x2F, 0x2B, 0x96, 0x9A, 0xAC, 0x48, 
  0x76, 0x00, 0x7C, 0x94, 0xF3, 0x51, 0x7B, 0x51, 0x1C, 0x7B, 0x48, 0x6F, 0x21, 0x7C, 0x29, 0x4F, 
  0xF8, 0x61, 0x14, 0xC1, 0xA0, 0xAD, 0x6A, 0x3A, 0x2C, 0xAF, 0x54, 0x55, 0x0C, 0x7D, 0x6B, 0xD1, 
  0x4A, 0xB6, 0xB3, 0xEC, 0xBE, 0x04, 0xA2, 0x06, 0xC8, 0x36, 0x1F, 0x8F, 0x38, 0xDE, 0x44, 0xED, 
  0xB1, 0xD3, 0x71, 0x09, 0x74, 0xC6, 0xF7, 0x15, 0x17, 0x10, 0xD8, 0xBF, 0x39, 0xCF, 0x0D, 0x85, 
  0xA3, 0x8C, 0x38, 0x60, 0x75, 0x6C, 0xED, 0xFB, 0x36, 0x24, 0x83, 0xD2, 0xB3, 0xA0, 0x3E, 0xB3, 
  0xAA, 0x22, 0x03, 0x1B, 0x86, 0x96, 0x41, 0x8C, 0x3D, 0x13, 0x63, 0x8A, 0x5C, 0xFF, 0xB7, 0x1F, 
  0xA7, 0x3B, 0x8C, 0x15, 0xAF, 0x19, 0x3E, 0x2F, 0x6C, 0xE8, 0x61, 0x7E, 0xF7, 0xF2, 0xF7, 0x2A, 
  0x50, 0xBC, 0x6F, 0x26, 0x52, 0x9D, 0x70, 0x2D, 0xBC, 0xA9, 0x46, 0xBF, 0x85, 0x5C, 0x2D, 0x49, 
  0xB7, 0x30, 0x9B, 0x82, 0x81, 0x55, 0x4E, 0x9C, 0x6E, 0xA1, 0xE3, 0x4E, 0x62, 0xE8, 0x2C, 0x78, 
  0xC4, 0x4C, 0x17, 0x5B, 0x88, 0x49, 0xB1, 0x2C, 0x88, 0xAC, 0xF1, 0xCD, 0x9D, 0xBC, 0x6D, 0xFD, 
  0xE0, 0xC8, 0xAC, 0x5C, 0x15, 0xC7, 0x3B, 0x28, 0x34, 0xA2, 0x32, 0x0C, 0x31, 0xE7, 0x84, 0xE6, 
  0xE7, 0x9F, 0x7F, 0x4B, 0xB0, 0x07, 0x77, 0x4B, 0x6D, 0x30, 0x76, 0x8D, 0x38, 0xF7, 0xFE, 0x3B, 
  0x5C, 0x08, 0xAB, 0x06, 0x53, 0x2F, 0x89, 0x66, 0x09, 0xAC, 0x43, 0x9B, 0xDC, 0x13, 0x33, 0xAF, 
  0x8D, 0xBF, 0xD3, 0x2E, 0xE8, 0x95, 0x0D, 0x60, 0x9F, 0xF8, 0x67, 0x92, 0xEC, 0x85, 0xC4, 0x6D, 
  0x94, 0xE8, 0xD1, 0x22, 0x5B, 0xB5, 0x23, 0x2E, 0x5D, 0x03, 0x73, 0x7B, 0xF4, 0xFF, 0x31, 0x92, 
  0xCA, 0xDA, 0xB1, 0x94, 0xE8, 0x47, 0xFD, 0x1B, 0x2E, 0x74, 0x25, 0xB9, 0x7A, 0x6B, 0xAA, 0x1F, 
  0xDF, 0xDA, 0x9C, 0xE3, 0x07, 0xA1, 0x1D, 0xAA, 0x45, 0x90, 0xB9, 0x02, 0x86, 0xE0, 0x25, 0x3C, 
  0xA8, 0x5C, 0xA1, 0x1C, 0x2C, 0x49, 0xC8, 0x9D, 0x08, 0x5F, 0x11, 0xB9, 0xDD, 0x6C, 0x0F, 0x5D, 
  0x07, 0x28, 0x0F, 0x17, 0x18, 0xAE, 0xD5, 0xEC, 0x07, 0x4E, 0xE3, 0xD9, 0xEC, 0xE9, 0xA5, 0x96, 
  0x5C, 0x4F, 0x5D, 0x3A, 0xF0, 0xA3, 0x20, 0xB6, 0x67, 0xCE, 0xF1, 0x12, 0x04, 0xED, 0x90, 0x04, 
  0xCB, 0x19, 0xF8, 0xE5, 0x62, 0x6C, 0xEB, 0x31, 0x39, 0x9B, 0x03, 0xA7, 0x35, 0x34, 0x33, 0xD2, 
  0xAC, 0x97, 0x0C, 0x53, 0xAE, 0x02, 0x81, 0xD1, 0xE7, 0x22, 0xA8, 0x29, 0x2F, 0xC5, 0x18, 0x8D, 
  0x3C, 0x72, 0x53, 0x4E, 0x58, 0x21, 0x84, 0x10, 0x98, 0xDB, 0xE9, 0x85, 0xCF, 0x9B, 0xC0, 0xA8, 
  0x0B, 0xF3, 0x69, 0x1C, 0x38, 0xE0, 0x5E, 0xED, 0xF4, 0x8C, 0x4F, 0xC2, 0xC8, 0x33, 0x0E, 0xD8, 
  0x7F, 0x36, 0xA3, 0xB4, 0x27, 0xEE, 0xD9, 0x74, 0x0C, 0x4B, 0x33, 0xE1, 0xEB, 0xDB, 0xF9, 0x34, 
  0x37, 0xBD, 0xE7, 0xF2, 0x7A, 0xA3, 0x8D, 0xF1, 0xC0, 0x2F, 0xF3, 0xF7, 0x91, 0x62, 0x0F, 0x48, 
  0x49, 0x7F, 0x08, 0x70, 0xF3, 0xCC, 0xB5, 0xCE, 0x8B, 0x08, 0xC4, 0xC4, 0xD7, 0x16, 0x4A, 0xB7, 
  0xE2, 0x5A, 0x7D, 0xAF, 0x56, 0xB9, 0x72, 0xB3, 0x4A, 0xD0, 0x99, 0x01, 0x53, 0x3D, 0xC2, 0xB2, 
  0x27, 0x8E, 0x5B, 0x7A, 0x72, 0xF9, 0xF3, 0xDE, 0x22, 0x9B, 0x38, 0x35, 0xCF, 0x7E, 0xDA, 0x18, 
  0x20, 0x06, 0x58, 0x29, 0x76, 0xAA, 0x00, 0x32, 0x7F, 0x94, 0x61, 0xF6, 0xC3, 0xC0, 0x2E, 0xD1, 
  0xBD, 0xAA, 0x28, 0x73, 0x53, 0x4F, 0x22, 0xA3, 0x19, 0xF3, 0x68, 0xFC, 0xEC, 0x25, 0x03, 0x7A, 
  0x96, 0xB9, 0x37, 0xEF, 0x58, 0x31, 0x95, 0x41, 0xDF, 0x98, 0x13, 0x6E, 0xA0, 0xB5, 0xBF, 0xD2, 
  0xAA, 0x99, 0x0D, 0xFD, 0xFF, 0xFF, 0xC0, 0x75, 0x08, 0xA0, 0xEC, 0x52, 0xA7, 0x41, 0x01, 0xDA, 
  0x31, 0xD6, 0xD4, 0x34, 0x27, 0xFF, 0xB4, 0x80, 0x8E, 0xE0, 0xCC, 0x75, 0xA6, 0xCB, 0x58, 0xCE, 
  0x4D, 0x5A, 0x89, 0xC9, 0x9E, 0xA2, 0xD4, 0xDE, 0xB0, 0x34, 0xF1, 0x89, 0x6C, 0xEE, 0x1D, 0xA5, 
  0xCF, 0xC5, 0xF2, 0x8B, 0xEF, 0x20, 0x41, 0xE6, 0x22, 0xA6, 0x08, 0x35, 0xD3, 0x48, 0x5B, 0xD1, 
  0x95, 0x6A, 0x6D, 0x71, 0xEF, 0xB6, 0x85, 0x38, 0xE0, 0x30, 0x0E, 0x6F, 0xEF, 0x2D, 0x28, 0xE2, 
  0xE0, 0x48, 0x3C, 0x83, 0x33, 0xCB, 0x80, 0x82, 0x35, 0xEA, 0xB9, 0x06, 0x6F, 0xDB, 0x88, 0x5B, 
  0x00, 0xD0, 0xBA, 0x7B, 0xEC, 0x77, 0x52, 0x92, 0x03, 0x50, 0x80, 0x2A, 0x97, 0x3D, 0x2B, 0x30, 
  0xEA, 0x5E, 0x4B, 0x23, 0x88, 0xE2, 0x4E, 0xA6, 0xF0, 0x34, 0x84, 0xBA, 0x79, 0xCC, 0x08, 0x60, 
  0xF9, 0x4E, 0x2C, 0x2E, 0x9D, 0xAE, 0x6C, 0x05, 0xD9, 0x6D, 0x34, 0x04, 0x38, 0x8A, 0x63, 0xC4, 
  0xD6, 0x6C, 0x0A, 0xB9, 0x6C, 0x5C, 0xFA, 0x16, 0x1E, 0x5E, 0x06, 0x68, 0x2D, 0x55, 0xF7, 0x21, 
  0x68, 0xE2, 0x88, 0x9D, 0xA2, 0xD2, 0x3B, 0xC2, 0xFE, 0x59, 0xBA, 0x6F, 0xFD, 0xB6, 0x47, 0xEE, 
  0x61, 0x57, 0x75, 0x06, 0xE3, 0x7F, 0x94, 0x53, 0x0F, 0x2E, 0x80, 0x32, 0x68, 0xFC, 0x2B, 0x18, 
  0xAC, 0x18, 0x70, 0x9F, 0xB0, 0x80, 0x92, 0x44, 0xA5, 0xBC, 0x6B, 0x86, 0xE6, 0xB1, 0x60, 0x83, 
  0x34, 0xD3, 0x47, 0x98, 0x34, 0x4D, 0xE2, 0x4A, 0x3C, 0x07, 0xEF, 0xD5, 0x63, 0x95, 0x51, 0x9D, 
  0x09, 0xB3, 0xEF, 0xB0, 0xB2, 0x6B, 0x90, 0x67, 0xBF, 0xD5, 0x57, 0xEB, 0x07, 0x21, 0x5C, 0x90, 
  0x3D, 0x3B, 0x8D, 0xF7, 0x58, 0x11, 0x0F, 0x13, 0x95, 0x1B, 0x9B, 0x69, 0x14, 0xA2, 0x75, 0xB3, 
  0x25, 0x34, 0x02, 0x9F, 0x07, 0x73, 0x6A, 0x0B, 0xC3, 0xFA, 0xD9, 0xB1, 0x76, 0x91, 0xE9, 0xE6, 
  0x4C, 0x43, 0x30, 0x04, 0x2B, 0x02, 0x32, 0x88, 0xEC, 0xAD, 0x09, 0x44, 0x5F, 0x1B, 0x28, 0x58, 
  0xEE, 0x2B, 0x5A, 0x7E, 0x9C, 0xB7, 0x82, 0x28, 0x54, 0x05, 0xE7, 0x0F, 0x62, 0x63, 0xE0, 0x16, 
  0x46, 0x42, 0x7B, 0x2B, 0x49, 0x9B, 0x0B, 0x78, 0x70, 0x06, 0xB5, 0x1D, 0xF6, 0x24, 0x3F, 0x30, 
  0xF0, 0x6F, 0x2F, 0x52, 0xF0, 0x65, 0x24, 0x11, 0x4A, 0x6D, 0x44, 0x58, 0x16, 0x3D, 0x75, 0xBF, 
  0xB2, 0xD0, 0x34, 0xB9, 0xA4, 0xF0, 0x9F, 0x44, 0xB8, 0xB6, 0xBE, 0x60, 0x05, 0x7C, 0x32, 0x84, 
  0xD3, 0x83, 0xC9, 0x36, 0xA5, 0x26, 0x31, 0xEB, 0xB0, 0xF1, 0xA5, 0xDB, 0xCC, 0xE8, 0x8D, 0x4F, 
  0xB0, 0x73, 0x0D, 0xFB, 0xEC, 0xD2, 0x55, 0xBA, 0x3E, 0xC6, 0x9F, 0x4F, 0xF0, 0x9E, 0x3B, 0xC5, 
  0x7B, 0xE2, 0x54, 0x40, 0x1F, 0x75, 0xF5, 0x44, 0xDD, 0x03, 0x0C, 0xD9, 0x26, 0xD7, 0xA6, 0x34, 
  0xC4, 0x32, 0x3D, 0xC8, 0x45, 0x27, 0x0B, 0xBB, 0x76, 0x56, 0x9B, 0xC4, 0xBF, 0x48, 0x14, 0x4A, 
  0xA3, 0x1F, 0x5A, 0xBF, 0x4D, 0x39, 0xF1, 0x3C, 0x2C, 0x9D, 0x29, 0x3B, 0x85, 0x83, 0x16, 0xE0, 
  0x02, 0xE5, 0x75, 0x1F, 0xFA, 0xA8, 0x2A, 0x3B, 0x5D, 0x91, 0xC9, 0xBD, 0x55, 0x37, 0xDE, 0x8C, 
  0xBC, 0x3B, 0xF5, 0xA7, 0x88, 0x05, 0x53, 0x60, 0x14, 0x82, 0x19, 0xEA, 0x94, 0x14, 0xA6, 0x21, 
  0x10, 0xAE, 0x75, 0x5E, 0xE4, 0xF2, 0x22, 0x38, 0xE2, 0x8A, 0xB2, 0x8F, 0xEC, 0x53, 0x3B, 0x63, 
  0x06, 0xE0, 0x3C, 0xDF, 0x09, 0xDA, 0xD3, 0xCC, 0x41, 0x08, 0xA7, 0xD8, 0xF2, 0x73, 0xC0, 0x57, 
  0xA2, 0x8C, 0x80, 0xD7, 0x70, 0x3E, 0x2A, 0xF4, 0xA0, 0x9C, 0x40, 0xD8, 0x01, 0x6F, 0x0B, 0x74, 
  0xF7, 0x80, 0x7C, 0xAC, 0xE9, 0xC3, 0x64, 0xCA, 0x23, 0xEA, 0x32, 0xCC, 0x66, 0x8D, 0x04, 0xB0, 
  0xA1, 0x09, 0x78, 0x0A, 0x8D, 0x3B, 0x67, 0x45, 0xEE, 0x3A, 0x16, 0x68, 0x38, 0x73, 0x39, 0xD5, 
  0xC8, 0x1B, 0xA5, 0xDB, 0x4B, 0xCD, 0x88, 0xFB, 0xC2, 0x42, 0x89, 0x1F, 0xEC, 0x34, 0x28, 0xDE, 
  0x69, 0x2A, 0x84, 0xD5, 0x2B, 0xA3, 0xC0, 0x08, 0xEA, 0x7E, 0x8C, 0x05, 0x27, 0x73, 0x7C, 0xC2, 
  0xDE, 0x74, 0x96, 0x31, 0xAA, 0x14, 0x8C, 0xF5, 0x02, 0xF3, 0x36, 0x8E, 0x16, 0xF2, 0xFC, 0xE2, 
  0x8C, 0x16, 0xB0, 0x69, 0x21, 0x29, 0x3E, 0xA3, 0xAB, 0x03, 0x51, 0x70, 0x60, 0x1B, 0xD8, 0x94, 
  0xB8, 0x10, 0xEB, 0x3C, 0x43, 0x27, 0x44, 0x37, 0xD2, 0xE5, 0x97, 0x62, 0x46, 0x8C, 0xD0, 0xD4, 
  0x0B, 0xDF, 0xC0, 0xF0, 0x0E, 0x8C, 0xEB, 0xBF, 0xB0, 0xE2, 0x28, 0xE6, 0xEF, 0x80, 0x4A, 0x8D, 
  0x12, 0x46, 0xC9, 0x7B, 0x1D, 0x88, 0xCC, 0x47, 0x7B, 0x5F, 0xB9, 0xDF, 0x5E, 0x4E, 0x7B, 0x51, 
  0xAD, 0x68, 0x63, 0x75, 0xE4, 0x7F, 0xB1, 0x62, 0x0D, 0x58, 0x71, 0xF1, 0x92, 0x5B, 0xC7, 0xDE, 
  0xA9, 0xB8, 0x4F, 0x4B, 0xC6, 0xFB, 0xF5, 0xC5, 0xE1, 0xA1, 0x89, 0x02, 0x56, 0x6E, 0x2F, 0xC0, 
  0x59, 0x18, 0x60, 0xF4, 0xE5, 0x4C, 0x6D, 0x9A, 0x2B, 0x99, 0xE0, 0x8D, 0x04, 0x6E, 0x28, 0x97, 
  0x20, 0x97, 0x01, 0xFD, 0x6B, 0xE3, 0x68, 0xB4, 0xE9, 0x6F, 0x09, 0x63, 0x8F, 0x64, 0xD6, 0x7D, 
  0xDF, 0x4D, 0x3F, 0x96, 0x6C, 0x7B, 0x09, 0xD4, 0xD2, 0xC3, 0x09, 0x58, 0x7D, 0xED, 0xD8, 0x7C, 
  0xCA, 0x01, 0x44, 0x08, 0x3E, 0x10, 0x11, 0x81, 0xED, 0x38, 0x27, 0xB7, 0x6F, 0xAB, 0x11, 0x93, 
  0x88, 0x31, 0x1F, 0xDE, 0x2E, 0x35, 0xE2, 0x8D, 0x59, 0x6F, 0xBD, 0x78, 0x77, 0x26, 0xC7, 0x8D, 
  0x21, 0xE8, 0x2F, 0x0F, 0xC5, 0x9E, 0xB4, 0x55, 0x4C, 0x37, 0x2D, 0xF2, 0xA8, 0x15, 0x0C, 0x8F, 
  0x8B, 0x0F, 0xC3, 0xFA, 0xA6, 0xFF, 0x7B, 0xB0, 0x09, 0xB7, 0x3A, 0xB7, 0x94, 0x78, 0xDE, 0x99, 
  0xCC, 0x45, 0xBB, 0x5F, 0x42, 0xC4, 0xB9, 0xAF, 0x71, 0x36, 0xE9, 0x1A, 0xC9, 0x90, 0x67, 0xD2, 
  0x79, 0xF2, 0xEC, 0x4C, 0xD9, 0xA5, 0x10, 0x5A, 0x84, 0xF4, 0x04, 0x8C, 0xF6, 0xBC, 0x02, 0xA1, 
  0x90, 0xC3, 0xCE, 0x4B, 0xDB, 0x1F, 0x08, 0xB3, 0x4E, 0x2D, 0xF3, 0xE2, 0x20, 0x42, 0x81, 0xF3, 
  0x43, 0x9B, 0x98, 0x4A, 0x8C, 0x13, 0x1D, 0xAE, 0xD2, 0x76, 0xC3, 0x8F, 0x0D, 0x21, 0x52, 0xC1, 
  0x3B, 0x7F, 0x5A, 0x90, 0x28, 0x42, 0xCB, 0x92, 0xCE, 0x97, 0x9C, 0x9B, 0xAA, 0x26, 0xB6, 0x5F, 
  0x5F, 0x34, 0xDA, 0x9E, 0xD8, 0xBA, 0x4E, 0x7F, 0x7E, 0x6E, 0x29, 0xF1, 0x09, 0xF5, 0x92, 0x6A, 
  0xE4, 0x6D, 0xE6, 0xD8, 0xED, 0x28, 0x6F, 0xBB, 0x14, 0x6F, 0x64, 0x8A, 0x47, 0x4B, 0x61, 0xB6, 
  0x1F, 0x3E, 0x49, 0x4B, 0xC8, 0x3C, 0xD9, 0xEF, 0x08, 0x10, 0x31, 0x6F, 0xCA, 0x4E, 0x60, 0x20, 
  0x22, 0xD3, 0xDF, 0xB2, 0x14, 0x25, 0xBA, 0xD4, 0xD4, 0x82, 0xA0, 0xD2, 0xC7, 0x3E, 0x58, 0xFE, 
  0xBE, 0xAC, 0xEA, 0xC0, 0x80, 0x2F, 0x67, 0x43, 0xD2, 0x70, 0x4F, 0xAE, 0xE7, 0x4C, 0xF1, 0x73, 
  0x47, 0xC6, 0x71, 0x5A, 0xC7, 0x33, 0xCF, 0xC7, 0x27, 0x70, 0x6B, 0x56, 0xD2, 0xE8, 0x97, 0x0A, 
  0x17, 0x7C, 0x8E, 0x62, 0xEC, 0xAB, 0x15, 0x74, 0x9D, 0xF5, 0x91, 0x24, 0x0E, 0x35, 0x41, 0xAC, 
  0x1C, 0x36, 0xB8, 0x21, 0x35, 0xFA, 0xD0, 0x07, 0x16, 0x04, 0xA7, 0x67, 0x18, 0xFA, 0x73, 0xBB, 
  0x26, 0x78, 0xBB, 0x4D, 0xFE, 0x42, 0x45, 0x15, 0x6A, 0x75, 0x1A, 0x44, 0x45, 0x36, 0xFD, 0xB7, 
  0xCB, 0x77, 0x6B, 0xEB, 0x3C, 0xA6, 0x87, 0xD1, 0xD8, 0xE2, 0x1E, 0x48, 0x67, 0x59, 0xAC, 0x4D, 
  0xE6, 0xED, 0x91, 0x42, 0x70, 0xFC, 0x6C, 0x45, 0xD9, 0xFA, 0x34, 0x16, 0x14, 0x36, 0x3F, 0xD1, 
  0xEC, 0xB3, 0x4F, 0x5F, 0xCF, 0x81, 0x4C, 0xAA, 0x07, 0x4D, 0x49, 0x3B, 0x43, 0xA0, 0x9A, 0x48, 
  0x2B, 0xF1, 0x32, 0x93, 0xDE, 0x20, 0xA4, 0x27, 0x27, 0x7D, 0x63, 0xF2, 0x8B, 0x1B, 0xCC, 0x23, 
  0x03, 0xB5, 0x6A, 0x12, 0xF4, 0xA0, 0x16, 0xBE, 0x30, 0xF8, 0x81, 0x24, 0xF0, 0x85, 0x5C, 0x52, 
  0xD3, 0xAD, 0x56, 0x22, 0xCB, 0x6D, 0xD7, 0x22, 0x0A, 0x73, 0x0A, 0xBC, 0x94, 0xC7, 0xCB, 0xEB, 
  0xE8, 0x1E, 0x19, 0x7A, 0xE1, 0x7C, 0x53, 0x9B, 0x75, 0xE7, 0xC5, 0x9A, 0x96, 0x7F, 0x3C, 0x19, 
  0x3D, 0x31, 0x4F, 0x5F, 0xAF, 0x9D, 0xDC, 0x30, 0x6F, 0xEF, 0x69, 0x57, 0x3A, 0x1D, 0xA1, 0x5B, 
  0xFD, 0xED, 0xF0, 0x3B, 0x76, 0x80, 0x26, 0xEA, 0xFC, 0xFF, 0xA6, 0xBF, 0xDF, 0xD4, 0x5A, 0xDF, 
  0xC6, 0xB6, 0xB1, 0xD0, 0xB3, 0x61, 0x99, 0xFC, 0xA4, 0xA2, 0x55, 0x00, 0x9F, 0x85, 0xE0, 0x43, 
  0x23, 0xC5, 0xD6, 0xB6, 0x88, 0x1D, 0x16, 0xFE, 0x74, 0xB4, 0x39, 0x52, 0xD6, 0x56, 0xB7, 0x56, 
  0x0B, 0xBA, 0x76, 0xEB, 0x40, 0xD5, 0xD5, 0xC7, 0x7D, 0x70, 0xD2, 0xC9, 0xE8, 0x98, 0xF8, 0xA9, 
  0xD5, 0x6F, 0x7B, 0x09, 0x4C, 0x70, 0x8B, 0x53, 0x53, 0x97, 0x75, 0x96, 0xD2, 0x7B, 0x9E, 0x57, 
  0xC9, 0x2D, 0x08, 0xDD, 0xF4, 0xA9, 0x77, 0x8D, 0x75, 0x5A, 0x34, 0xEA, 0xF6, 0xD6, 0xC1, 0xF4, 
  0x6F, 0x08, 0xBE, 0xF3, 0x52, 0xEF, 0x45, 0xB1, 0x19, 0xA9, 0x08, 0xE6, 0x97, 0x22, 0x77, 0xE3, 
  0x06, 0x25, 0xF2, 0x03, 0xD2, 0x22, 0xD0, 0xCD, 0x73, 0xFB, 0x01, 0x15, 0x97, 0x60, 0x28, 0x2C, 
  0x31, 0xFC, 0x91, 0xE8, 0x33, 0x1F, 0x45, 0x2A, 0xD6, 0x99, 0x1D, 0xFB, 0x00, 0x22, 0x0F, 0x18, 
  0xEA, 0xB9, 0x80, 0xFE, 0x51, 0x7C, 0x81, 0x01, 0xD7, 0xD0, 0x22, 0xC5, 0x7E, 0xCB, 0x6C, 0x66, 
  0xD7, 0xDE, 0xD4, 0x76, 0x65, 0x2F, 0x30, 0x91, 0x83, 0x0C, 0xB6, 0x15, 0xFD, 0x98, 0x4A, 0x16, 
  0x8F, 0x64, 0x9F, 0x3C, 0x5C, 0x1A, 0x68, 0x19, 0xA6, 0x89, 0xB1, 0x76, 0xA1, 0x5F, 0xDC, 0x63, 
  0xE6, 0x0D, 0x3C, 0x0E, 0x13, 0x01, 0x91, 0x66, 0x30, 0x9B, 0xB7, 0xAC, 0xA4, 0x36, 0x26, 0x0A, 
  0x5C, 0x14, 0x6C, 0xEE, 0x86, 0x77, 0xEA, 0x19, 0xFD, 0x73, 0x87, 0x03, 0x85, 0x76, 0x06, 0x33, 
  0x0F, 0xB2, 0xAB, 0xDD, 0x2F, 0x0C, 0x82, 0x38, 0xDF, 0x43, 0x2E, 0xB6, 0x4C, 0x5C, 0xF5, 0x30, 
  0x6F, 0xF2, 0x88, 0x34, 0xA4, 0xE0, 0xB2, 0xCD, 0x99, 0xF9, 0x74, 0xD9, 0xD0, 0x4C, 0x1F, 0xCB, 
  0xE9, 0x20, 0x7F, 0x87, 0xC5, 0xD9, 0x77, 0x2D, 0x1D, 0xB1, 0x64, 0xDD, 0x65, 0x3C, 0x3C, 0x6C, 
  0xA0, 0xF0, 0x2B, 0x82, 0x5B, 0x9B, 0x5F, 0x09, 0x9C, 0xE4, 0x90, 0x7E, 0x35, 0x56, 0x96, 0xB2, 
  0x50, 0x46, 0xFB, 0xE4, 0xD9, 0x50, 0xAF, 0xE4, 0x34, 0x34, 0x2A, 0xDF, 0x99, 0x21, 0x3F, 0xD0, 
  0x78, 0x71, 0x7E, 0x44, 0x06, 0x19, 0x98, 0x3F, 0xFA, 0xF1, 0xF8, 0xFC, 0xF9, 0x1E, 0x82, 0xB6, 
  0x5D, 0xB6, 0x3B, 0xF2, 0xF1, 0x5A, 0x17, 0xB3, 0x61, 0x79, 0x8B, 0xFD, 0xE3, 0x08, 0x6A, 0x24, 
  0x53, 0x08, 0x74, 0x2A, 0x63, 0xDC, 0xA1, 0xFF, 0x99, 0x63, 0x14, 0x3D, 0x6B, 0x71, 0x82, 0x8A, 
  0x89, 0xAF, 0xA9, 0xD7, 0xD7, 0xD8, 0xC8, 0x86, 0x9B, 0xC7, 0x54, 0x66, 0x76, 0x66, 0xAB, 0x68, 
  0x24, 0x4A, 0x14, 0xA7, 0x30, 0x70, 0xAC, 0xEE, 0x54, 0xAA, 0x35, 0x8B, 0x2C, 0x58, 0x20, 0x51, 
  0x36, 0x9A, 0xAC, 0x06, 0xB2, 0xF2, 0x6B, 0x56, 0xA6, 0x70, 0xAA, 0x31, 0x07, 0x9E, 0x7F, 0xDD, 
  0x89, 0xC8, 0xF4, 0x6F, 0xE2, 0x2F, 0xC8, 0x41, 0x71, 0x6E, 0x72, 0x62, 0x4C, 0xB5, 0x48, 0xB8, 
  0x61, 0x7E, 0xDE, 0x36, 0x9E, 0x0D, 0xF9, 0xF2, 0x34, 0x9E, 0x06, 0x41, 0xA2, 0x98, 0x55, 0x24, 
  0xF7, 0xF5, 0xCA, 0x8A, 0xAD, 0xEC, 0x9F, 0x8B, 0x9E, 0xE7, 0x0F, 0x83, 0x06, 0xFB, 0x44, 0x57, 
  0x54, 0x81, 0xF4, 0xF2, 0xC1, 0x1F, 0x5A, 0x7C, 0x22, 0xDE, 0xF4, 0x9E, 0xF8, 0x4E, 0xD0, 0x67, 
  0x7D, 0xD1, 0x66, 0x81, 0xE3, 0x01, 0x45, 0x21, 0x9D, 0xA0, 0xCE, 0xD4, 0x62, 0x41, 0x2C, 0x35, 
  0xDB, 0xD0, 0x12, 0xC0, 0x6A, 0xD8, 0xD1, 0x4B, 0xA9, 0x62, 0x29, 0x02, 0x8A, 0x43, 0xD4, 0x28, 
  0x6B, 0x9B, 0x51, 0x03, 0xF5, 0x0A, 0x93, 0xC3, 0xB0, 0xB0, 0xCD, 0xA2, 0x35, 0x70, 0x9A, 0x37, 
  0xE6, 0xF1, 0x6D, 0x08, 0x07, 0x80, 0x7C, 0x15, 0xC4, 0xF9, 0x7D, 0xE2, 0x40, 0x5C, 0x4E, 0xF9, 
  0xB7, 0x7B, 0x96, 0x06, 0xDB, 0x7E, 0xF0, 0xDF, 0x1D, 0xC9, 0xF8, 0x7B, 0x67, 0xFA, 0xAE, 0x0B, 
  0x71, 0xE2, 0x97, 0x7F, 0xA2, 0x1E, 0xF3, 0x71, 0x39, 0xCD, 0x26, 0x38, 0x0C, 0x45, 0x7A, 0xCD, 
  0xB9, 0x44, 0x50, 0xC9, 0x83, 0x2C, 0x89, 0x50, 0xDC, 0x8E, 0x7F, 0x6C, 0x1E, 0xB7, 0xB6, 0xF7, 
  0x94, 0x21, 0x64, 0x56, 0xC6, 0x30, 0x3E, 0x89, 0x9C, 0xB9, 0x8E, 0xA1, 0x32, 0x9D, 0xA6, 0xE0, 
  0x0F, 0xCD, 0x48, 0x17, 0xCE, 0xC6, 0xBF, 0xDC, 0x30, 0x3C, 0x04, 0x8F, 0xDE, 0xD5, 0x50, 0xFD, 
  0xB6, 0x13, 0xA0, 0x13, 0x87, 0x93, 0x4C, 0xA0, 0x71, 0x5E, 0x5D, 0x3D, 0x8E, 0xED, 0x36, 0x64, 
  0xD8, 0x60, 0xA8, 0x03, 0xCE, 0x86, 0x97, 0x6E, 0x41, 0x7B, 0x51, 0xD3, 0x21, 0xB2, 0xBC, 0xBF, 
  0x93, 0xD7, 0x9E, 0x0F, 0xB4, 0xA0, 0x29, 0xCE, 0x54, 0xB1, 0xD0, 0xE5, 0x9D, 0x39, 0x35, 0x17, 
  0x3C, 0xCA, 0x35, 0x91, 0xD3, 0xDF, 0x11, 0xF9, 0x3B, 0x72, 0x2D, 0xCD, 0xB1, 0x8E, 0x53, 0xE8, 
  0x4A, 0xB7, 0x19, 0x4B, 0xFF, 0x69, 0x02, 0x6F, 0x55, 0xDC, 0xBD, 0x06, 0x1A, 0x12, 0xFA, 0x0B, 
  0xD2, 0x00, 0x65, 0x5F, 0xBB, 0x63, 0x2E, 0x43, 0x16, 0x60, 0xE3, 0xB8, 0x90, 0x5D, 0x8F, 0x11, 
  0x44, 0x19, 0x11, 0xB2, 0xBA, 0xB4, 0x74, 0x53, 0xB6, 0x7A, 0xA5, 0xC5, 0xD9, 0x51, 0xE6, 0x43, 
  0x20, 0x7D, 0x1C, 0x2D, 0x77, 0xCC, 0x5B, 0x50, 0x72, 0xDB, 0x58, 0x12, 0xFE, 0xB0, 0x12, 0x27, 
  0x3D, 0x8A, 0xE8, 0x1E, 0x40, 0x63, 0x8C, 0x4F, 0x1B, 0xFA, 0x8E, 0x9A, 0x31, 0x48, 0xC2, 0x26, 
  0x34, 0x4A, 0x7B, 0x76, 0x5E, 0x21, 0x42, 0x0E, 0xD9, 0x7D, 0xAF, 0x79, 0xD0, 0x6E, 0xC4, 0x4B, 
  0x74, 0xC0, 0x7D, 0xC3, 0x90, 0x81, 0xB2, 0xE8, 0x82, 0x81, 0x2B, 0xE8, 0x8D, 0x16, 0xD0, 0x16, 
  0x40, 0xD7, 0x66, 0x29, 0x9C, 0xB1, 0x4C, 0xA6, 0xF4, 0xFE, 0x48, 0x19, 0x21, 0x41, 0x74, 0x0A, 
  0x9A, 0x3A, 0x7D, 0xED, 0xE5, 0x6B, 0x6D, 0x44, 0x45, 0xF7, 0x55, 0xED, 0xA5, 0xD5, 0x6D, 0xCA, 
  0xC8, 0x83, 0x46, 0x9E, 0x71, 0x72, 0xAB, 0x3A, 0x4E, 0xA0, 0x43, 0x47, 0x64, 0x91, 0x42, 0x3A, 
  0xA4, 0xA2, 0x40, 0x90, 0x54, 0xD4, 0xB9, 0xBB, 0xE1, 0xEF, 0xDE, 0xF9, 0xA4, 0xE1, 0x3D, 0x48, 
  0x2C, 0xE8, 0xFF, 0xBD, 0x2F, 0x13, 0x1D, 0x45, 0xD2, 0x62, 0x58, 0xA8, 0x5D, 0x4E, 0x3F, 0xC2, 
  0x84, 0x3F, 0x66, 0x6A, 0x28, 0x93, 0x86, 0xF5, 0xE0, 0xC7, 0xC5, 0xB6, 0x04, 0xE8, 0xDB, 0x35, 
  0x36, 0x83, 0x38, 0x52, 0xAF, 0xC2, 0x21, 0xF0, 0x05, 0x8D, 0xCC, 0x1A, 0x8A, 0xF6, 0xA9, 0x59, 
  0x32, 0xC0, 0xBB, 0xE0, 0x48, 0xC0, 0xE0, 0x1C, 0x68, 0xB8, 0xBC, 0x5C, 0x4E, 0xAA, 0xDD, 0x35, 
  0x98, 0xEE, 0xBE, 0x2D, 0x1D, 0xE7, 0xC6, 0xEF, 0x4F, 0x6E, 0x8F, 0xA5, 0xCD, 0x8C, 0x05, 0xFD, 
  0x0C, 0xF1, 0x02, 0x57, 0xA2, 0x91, 0x82, 0x7F, 0xD0, 0x52, 0x52, 0x1B, 0xD7, 0x98, 0x1F, 0xF9, 
  0x86, 0x6A, 0xBB, 0x82, 0xA6, 0xA3, 0x72, 0x0B, 0x88, 0x51, 0x7F, 0x55, 0x5C, 0x95, 0x16, 0x0F, 
  0x59, 0x38, 0xA1, 0xFA, 0xB5, 0x47, 0xF0, 0x14, 0xE3, 0x45, 0x9A, 0xC2, 0x7E, 0x18, 0xEF, 0x1E, 
  0xEE, 0x20, 0xBC, 0x54, 0xD6, 0xC5, 0x42, 0xAE, 0x87, 0xBB, 0xB8, 0x4E, 0x79, 0x72, 0x90, 0xC8, 
  0xE9, 0xCD, 0x2A, 0x84, 0xE3, 0x73, 0x60, 0x22, 0x92, 0x08, 0xDA, 0x28, 0x9E, 0xBC, 0x7B, 0x84, 
  0xBF, 0x8A, 0xBB, 0x3C, 0xC1, 0x28, 0xAC, 0x15, 0x6D, 0x83, 0xE3, 0x2B, 0xA0, 0xA4, 0x66, 0xE1, 
  0x9A, 0x7B, 0xB1, 0xDF, 0x7C, 0xF8, 0x57, 0xA7, 0x02, 0x80, 0xD1, 0x39, 0x24, 0x85, 0xC5, 0x58, 
  0x0C, 0x7E, 0xCF, 0x67, 0xEA, 0xFE, 0x0F, 0x4F, 0xB7, 0x1B, 0x03, 0x87, 0xA1, 0x89, 0x05, 0x28, 
  0xCF, 0xFB, 0x16, 0xA3, 0xF3, 0x87, 0x83, 0x88, 0x8D, 0x87, 0xCC, 0x7F, 0x5B, 0xEC, 0xF6, 0x6C, 
  0x42, 0x34, 0x1C, 0xA4, 0xBE, 0x65, 0xD8, 0xA6, 0x77, 0x0A, 0x06, 0xB1, 0xBA, 0x0B, 0xE0, 0x60, 
  0x42, 0x82, 0x04, 0x52, 0x7C, 0xD4, 0x97, 0xFC, 0x2F, 0x16, 0x3C, 0x92, 0x75, 0x85, 0xCF, 0x42, 
  0x14, 0x1F, 0x57, 0xE9, 0xE7, 0x42, 0x2B, 0x4A, 0x58, 0xEE, 0x5B, 0x3A, 0x86, 0x5C, 0x5E, 0xCC, 
  0x63, 0xB4, 0x29, 0xC3, 0x7E, 0x20, 0x1C, 0x98, 0xEB, 0xA6, 0x29, 0x28, 0xC0, 0x76, 0x79, 0x41, 
  0xDE, 0xB9, 0x81, 0x88, 0x09, 0x2D, 0x04, 0x5A, 0x1C, 0x9D, 0x0A, 0x53, 0xD5, 0x2A, 0x49, 0xBD, 
  0x72, 0x7C, 0xF9, 0x8E, 0x2C, 0x96, 0xA2, 0x66, 0xBB, 0x4B, 0x7E, 0xC3, 0x61, 0x05, 0x1C, 0xF3, 
  0x41, 0xF0, 0x11, 0xD4, 0x08, 0xDE, 0x10, 0xE2, 0x16, 0x98, 0xE9, 0xD8, 0x5D, 0xFE, 0x55, 0x72, 
  0x90, 0x96, 0x6C, 0x07, 0xC4, 0x18, 0x20, 0x4E, 0xAE, 0x04, 0xC8, 0x96, 0x04, 0xEB, 0x21, 0x82, 
  0xCD, 0x23, 0xA0, 0x07, 0x91, 0x6B, 0x2F, 0x1A, 0xD1, 0x76, 0xDA, 0xCD, 0x80, 0xC7, 0x83, 0xE4, 
  0xC0, 0x82, 0x67, 0x03, 0x07, 0x3E, 0x94, 0xE4, 0x65, 0xCD, 0x5E, 0x98, 0x86, 0x67, 0x88, 0xF3, 
  0x89, 0x47, 0xBC, 0xF8, 0xBE, 0xA4, 0x87, 0x36, 0x05, 0xEA, 0x80, 0xDC, 0xC3, 0xAA, 0xE4, 0x40, 
  0x8B, 0x4E, 0xAB, 0xFB, 0x70, 0x51, 0xD9, 0xE0, 0xF5, 0x57, 0xD4, 0x5A, 0x09, 0x17, 0x3F, 0xB9, 
  0x66, 0xBA, 0x7A, 0xEB, 0xF1, 0x76, 0x91, 0x4D, 0x25, 0x76, 0x6F, 0x98, 0x99, 0x87, 0x1D, 0xF3, 
  0x3F, 0x09, 0x4B, 0xAC, 0x4C, 0x0E, 0x89, 0x06, 0x83, 0x60, 0x8D, 0xD2, 0x8E, 0x82, 0xBB, 0xDF, 
  0xC6, 0xBF, 0x9B, 0xDB, 0xA7, 0x0B, 0xC9, 0xB4, 0xAF, 0x26, 0x30, 0x34, 0xF8, 0x98, 0x84, 0xA7, 
  0xDF, 0x5D, 0x60, 0x00, 0x45, 0x0B, 0xC1, 0x7D, 0xB1, 0xF0, 0x76, 0x23, 0x38, 0xF0, 0x47, 0x9C, 
  0xF5, 0x49, 0xD4, 0xF2, 0x0A, 0xCE, 0x9B, 0xEA, 0xBE, 0x13, 0xFF, 0x82, 0x94, 0x1C, 0x82, 0xD4, 
  0xAB, 0x26, 0x39, 0x81, 0xC3, 0x7A, 0x6A, 0x8A, 0x77, 0xC8, 0x00, 0x12, 0xC9, 0xDF, 0x0B, 0xDD, 
  0xB5, 0xE3, 0xBC, 0x97, 0x5D, 0x69, 0x6E, 0x4C, 0x5E, 0x6D, 0x00, 0x97, 0xA4, 0x6D, 0x56, 0x4C, 
  0x9E, 0xA3, 0x9B, 0xF2, 0x6D, 0x63, 0xF2, 0xC1, 0x53, 0x65, 0x70, 0x26, 0x64, 0x32, 0x47, 0x09, 
  0xBD, 0x60, 0x26, 0x1E, 0x28, 0x24, 0x13, 0xBC, 0xE7, 0x2D, 0x29, 0xE1, 0x58, 0xDE, 0x93, 0x15, 
  0x50, 0x4D, 0x7D, 0xF0, 0x5F, 0x7B, 0xF1, 0xB7, 0xE7, 0x11, 0x54, 0xC1, 0x99, 0xBC, 0xC5, 0xCD, 
  0x6F, 0x7F, 0xBF, 0x8B, 0x00, 0x95, 0x6D, 0x97, 0x94, 0x1C, 0x74, 0x83, 0x2E, 0x94, 0x03, 0x2D, 
  0x53, 0xFF, 0x67, 0xBB, 0x68, 0x08, 0x8B, 0xD3, 0xBF, 0x87, 0x51, 0xCC, 0x3A, 0x01, 0x7D, 0xD1, 
  0x46, 0x0D, 0xCA, 0x85, 0xA5, 0x5D, 0x3A, 0x9B, 0xEB, 0x5A, 0x44, 0x41, 0xF3, 0x21, 0xAA, 0x81, 
  0x12, 0x3D, 0xB1, 0x47, 0x6B, 0xA6, 0x10, 0xA4, 0x0B, 0xA9, 0x40, 0xCF, 0xBB, 0x8F, 0x13, 0x1F, 
  0x04, 0xFB, 0x8D, 0x78, 0xBA, 0x82, 0x6C, 0x6F, 0xBA, 0x15, 0xE9, 0x1E, 0x4F, 0x64, 0xFA, 0xF2, 
  0x0A, 0xB0, 0xFF, 0x79, 0x87, 0x80, 0xF2, 0x95, 0xC9, 0x3D, 0xE4, 0xD7, 0x65, 0x30, 0x15, 0xCA, 
  0x7E, 0x00, 0xAC, 0x5B, 0x6C, 0x9B, 0xC4, 0x93, 0xC4, 0x74, 0x34, 0xD4, 0x45, 0x7F, 0x4F, 0x52, 
  0xC2, 0xF9, 0x89, 0xE3, 0xAA, 0xBB, 0x29, 0x9C, 0x9A, 0x5B, 0xAE, 0xDB, 0xD6, 0xC9, 0x5B, 0x13, 
  0xBA, 0x0B, 0x28, 0x5A, 0xD9, 0xBC, 0x80, 0xB8, 0xB9, 0x1D, 0xD8, 0xFB, 0x64, 0xC2, 0x9B, 0xC4, 
  0xA0, 0xF5, 0xBB, 0x05, 0xEB, 0xD1, 0x8F, 0xB9, 0x42, 0x4C, 0xE5, 0x67, 0xBE, 0xE5, 0x7D, 0xC5, 
  0xD5, 0x1A, 0x29, 0x45, 0x08, 0x2A, 0xE3, 0xA2, 0x08, 0x47, 0x5E, 0x8D, 0xF6, 0xD6, 0xDE, 0x4E, 
  0x09, 0xA4, 0x58, 0x4B, 0x62, 0x5C, 0x9E, 0xD4, 0x7E, 0xC4, 0x4F, 0x64, 0x18, 0x2A, 0x76, 0x7F, 
  0x55, 0xC4, 0x48, 0x11, 0x61, 0x87, 0xD9, 0x92, 0x08, 0xE4, 0x1A, 0xED, 0xA7, 0x59, 0xE6, 0xA9, 
  0xB2, 0xD6, 0xE1, 0x17, 0x5D, 0xAE, 0x90, 0xFC, 0x49, 0x30, 0xD3, 0x40, 0xFB, 0x47, 0x9E, 0x46, 
  0x71, 0x30, 0x96, 0x7B, 0x12, 0x47, 0x30, 0x34, 0xC9, 0x53, 0xFD, 0xBC, 0x12, 0x1B, 0xE2, 0x44, 
  0x95, 0x55, 0x26, 0xF5, 0x6A, 0x58, 0x74, 0x2D, 0x59, 0x3C, 0x71, 0x4F, 0x5E, 0xEA, 0x8A, 0x0E, 
  0x8D, 0x68, 0x88, 0x13, 0xA4, 0x68, 0x16, 0x34, 0xAF, 0x2F, 0x35, 0x19, 0x74, 0x7C, 0x18, 0x85, 
  0x27, 0x0A, 0xDF, 0x04, 0xCA, 0x6F, 0x85, 0x4F, 0x1C, 0x60, 0xE0, 0x9C, 0xF8, 0x3F, 0x83, 0xFA, 
  0x62, 0x41, 0x2B, 0x66, 0x13, 0xA4, 0x0F, 0x8C, 0x8A, 0x5D, 0x72, 0xB0, 0x10, 0x10, 0xAF, 0x2C, 
  0x97, 0xFC, 0x24, 0x96, 0xAB, 0x3E, 0x04, 0x0E, 0x08, 0x1B, 0x92, 0xCA, 0x17, 0x56, 0xC2, 0x91, 
  0xC7, 0x89, 0xD1, 0x66, 0xDE, 0xD0, 0x0F, 0xB2, 0xC1, 0x44, 0x1A, 0x68, 0x11, 0x3E, 0x30, 0xC3, 
  0xDC, 0x48, 0x37, 0x89, 0x0C, 0x94, 0x71, 0x00, 0xFD, 0x83, 0x76, 0x12, 0xE9, 0xAB, 0xE8, 0x31, 
  0xDE, 0xA6, 0xC8, 0x6B, 0x2E, 0xAC, 0xCC, 0xE5, 0x59, 0x6E, 0xD7, 0x99, 0xFC, 0x70, 0xCA, 0xF2, 
  0x94, 0x4B, 0x8A, 0xC4, 0x70, 0xE7, 0xD2, 0x6F, 0xAB, 0x62, 0xCB, 0xCA, 0xB2, 0xC2, 0x82, 0xE4, 
  0xBD, 0xBD, 0xCF, 0xB9, 0xE2, 0x0C, 0x6F, 0x49, 0x0F, 0x2A, 0xBF, 0xAA, 0xEE, 0x30, 0x25, 0x43, 
  0x97, 0x00, 0x8E, 0xAE, 0x5B, 0x5B, 0xC6, 0x9B, 0x57, 0xD6, 0xEE, 0xFB, 0xCE, 0xA4, 0x9A, 0x1D, 
  0xB8, 0xD3, 0xE2, 0x6C, 0x1E, 0x5F, 0xE2, 0x39, 0x11, 0xB9, 0x82, 0x2E, 0x97, 0xF4, 0xB1, 0x1E, 
  0x73, 0x72, 0xA2, 0xEA, 0x57, 0xD3, 0x65, 0x5D, 0x47, 0x14, 0x65, 0xFB, 0x35, 0x5B, 0xF1, 0xC3, 
  0xF3, 0x1F, 0xA2, 0x06, 0x76, 0xD6, 0x88, 0x7C, 0xB9, 0x83, 0xE7, 0x16, 0x00, 0x1A, 0x52, 0xD2, 
  0x4B, 0x22, 0x01, 0xBA, 0x2B, 0xAF, 0x85, 0xE7, 0x68, 0xB1, 0xEF, 0x7D, 0xC1, 0x40, 0xE5, 0x9F, 
  0xE2, 0xA3, 0xE1, 0x7C, 0x64, 0x9E, 0xC2, 0x28, 0x4D, 0x68, 0xE3, 0x75, 0xEB, 0xB1, 0x9C, 0xFF, 
  0x1F, 0x62, 0xB3, 0xEE, 0x65, 0xE9, 0x1F, 0x93, 0xE1, 0x04, 0x79, 0x8F, 0xE5, 0x99, 0x34, 0x93, 
  0x6F, 0x54, 0xCD, 0x08, 0x63, 0xC8, 0x4E, 0x5B, 0x35, 0x75, 0xC9, 0xA2, 0xFE, 0x92, 0x02, 0xAB, 
  0x21, 0xDC, 0xB6, 0x0D, 0x16, 0x9B, 0x03, 0x1A, 0x6A, 0xBD, 0x86, 0xD7, 0xA5, 0x03, 0xFF, 0x33, 
  0x9C, 0xB5, 0x5E, 0x47, 0x98, 0xA8, 0x54, 0x66, 0x42, 0xE3, 0xA7, 0xED, 0x8B, 0x8F, 0xAF, 0x06, 
  0xA5, 0xBD, 0xF5, 0xED, 0x77, 0x51, 0x6A, 0xAC, 0x16, 0x5E, 0xBC, 0x69, 0xCB, 0xE7, 0xF0, 0xD0, 
  0x83, 0x8F, 0x17, 0x8E, 0x7D, 0x82, 0xC7, 0x17, 0xAF, 0xF9, 0x59, 0x1A, 0x5A, 0xE0, 0x70, 0xDE, 
  0x22, 0x4A, 0xC1, 0x5F, 0x49, 0x3D, 0x59, 0xF0, 0xD0, 0x89, 0x7E, 0xF2, 0x66, 0x6A, 0x67, 0x7C, 
  0xFA, 0xE8, 0x39, 0x0F, 0x88, 0xC6, 0xF0, 0xCE, 0x13, 0xCB, 0x15, 0x2F, 0x53, 0x23, 0x9C, 0xC5, 
  0x48, 0x12, 0x22, 0x91, 0xC3, 0x3A, 0x9B, 0x1F, 0xCA, 0xEC, 0x90, 0x4F, 0xAF, 0x33, 0xEC, 0xDD, 
  0xC8, 0xEC, 0x96, 0xAD, 0xC1, 0x6B, 0x61, 0x64, 0x52, 0xDA, 0xE6, 0xA9, 0xF2, 0x2E, 0xB4, 0x55, 
  0x86, 0x31, 0xF6, 0xCF, 0xFB, 0xA2, 0x71, 0xC3, 0x93, 0x39, 0xD3, 0x02, 0x42, 0x82, 0x0A, 0x8D, 
  0xC3, 0x57, 0x83, 0xFC, 0xDD, 0x7F, 0xA7, 0xEA, 0x19, 0xBC, 0x6B, 0xBC, 0xA0, 0xE7, 0x53, 0x06, 
  0xC2, 0xF9, 0xAA, 0xF3, 0x20, 0xF8, 0x9D, 0xB7, 0x58, 0xCB, 0x35, 0x99, 0x3E, 0x2B, 0x78, 0x7F, 
  0xE7, 0x08, 0x8F, 0x93, 0x6D, 0x9B, 0x3B, 0xE5, 0xD7, 0x34, 0x9C, 0x0C, 0xDE, 0x7D, 0xA3, 0xF4, 
  0x2D, 0x27, 0x1F, 0xE5, 0xD7, 0xD0, 0xBB, 0xC8, 0x73, 0xDC, 0x0E, 0xAC, 0xBB, 0x8D, 0x6E, 0x11, 
  0xEC, 0x8E, 0x40, 0xA5, 0xAD, 0xAC, 0x71, 0xA9, 0x54, 0xBE, 0xFA, 0x68, 0xCF, 0x6E, 0x98, 0x89, 
  0xE4, 0x85, 0x27, 0x98, 0xDE, 0x8F, 0x74, 0x3B, 0x37, 0x80, 0x88, 0xE0, 0x39, 0xC4, 0x85, 0xD9, 
  0x96, 0x4F, 0x9E, 0x1E, 0xA6, 0xDE, 0x29, 0x4A, 0xAF, 0xDA, 0x1B, 0x61, 0x3F, 0xBA, 0x62, 0x37, 
  0x2F, 0x53, 0xFA, 0xD6, 0x80, 0x9C, 0x59, 0x64, 0xBB, 0x8B, 0xBA, 0x7E, 0xD4, 0x86, 0x4E, 0x22, 
  0x4C, 0x7D, 0xEE, 0x55, 0x2E, 0x76, 0x29, 0x20, 0xCB, 0x73, 0x53, 0x70, 0xE8, 0x5F, 0x3E, 0xE5, 
  0x09, 0xFB, 0x0A, 0x06, 0xFD, 0x5F, 0x76, 0x43, 0x71, 0x5D, 0x7B, 0xE7, 0xA1, 0xB4, 0x8F, 0xBF, 
  0x89, 0x05, 0xE5, 0x30, 0x54, 0x9F, 0x3B, 0x63, 0x8C, 0x92, 0x5E, 0xF5, 0x5B, 0xB2, 0x2B, 0x5F, 
  0x97, 0x86, 0x81, 0x3E, 0x2A, 0x6F, 0x33, 0x8D, 0xF7, 0x65, 0x63, 0x67, 0xD6, 0xB6, 0xC8, 0x44, 
  0x8F, 0x7A, 0x70, 0x93, 0xD8, 0x03, 0x17, 0xFC, 0x67, 0x39, 0xCE, 0xDD, 0x2A, 0xE4, 0x4D, 0x2F, 
  0xFF, 0xB3, 0x30, 0xBE, 0xD7, 0x7B, 0x37, 0x2B, 0xC3, 0x89, 0x37, 0xB0, 0x83, 0x00, 0x9C, 0x59, 
  0xE1, 0xB1, 0xC8, 0xF7, 0x38, 0x9F, 0x5F, 0x4B, 0x54, 0x01, 0x78, 0xC5, 0x9A, 0x9F, 0x4C, 0x7A, 
  0xB3, 0xCF, 0x34, 0xA2, 0x8D, 0x93, 0x4C, 0x6A, 0xEE, 0x8C, 0x9C, 0x17, 0x7B, 0x0D, 0xD2, 0x73, 
  0x52, 0xB3, 0x3B, 0x0F, 0x3E, 0xB1, 0x66, 0xF6, 0xF8, 0xEA, 0xF5, 0x06, 0x3B, 0x89, 0xE9, 0x7C, 
  0xB2, 0x37, 0x24, 0x04, 0x1F, 0x99, 0x22, 0x3B, 0x7B, 0x60, 0x04, 0x89, 0x39, 0x95, 0xF4, 0xC8, 
  0x81, 0x6E, 0xD5, 0x4A, 0xFE, 0xBB, 0x20, 0x32, 0x93, 0xD2, 0xD9, 0xED, 0xD2, 0x9C, 0x69, 0x97, 
  0xB9, 0x25, 0x06, 0xAF, 0x48, 0xE7, 0xBB, 0xCB, 0x66, 0x1E, 0xC6, 0xD2, 0xF2, 0x7B, 0xC4, 0xD3, 
  0xFC, 0x07, 0x21, 0x94, 0x3E, 0xB8, 0x8D, 0xDB, 0xD1, 0x24, 0x2D, 0x19, 0x7F, 0xEC, 0x08, 0x70, 
  0x8A, 0x5C, 0x3E, 0x0A, 0xD6, 0x51, 0x3A, 0x26, 0xF4, 0x70, 0x57, 0xBB, 0x51, 0x0F, 0x64, 0x38, 
  0x0A, 0x77, 0x21, 0x12, 0x5C, 0x04, 0x36, 0xD1, 0x58, 0xF5, 0x80, 0x09, 0x59, 0x20, 0x6C, 0x31, 
  0x27, 0xBF, 0xDD, 0x54, 0x18, 0x34, 0x4F, 0xAE, 0xF7, 0x52, 0x30, 0x80, 0x04, 0x17, 0x4F, 0x4D, 
  0x47, 0x3A, 0x46, 0x52, 0x49, 0x4E, 0x47, 0x45, 0x3A, 0x55, 0x53, 0x52, 0x3A, 0x75, 0x73, 0x65, 
  0x72, 0x2E, 0x78, 0x6D, 0x6C, 0x04, 0x82, 0x01, 0xE9, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 
  0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x3D, 0x20, 0x22, 0x31, 0x2E, 0x30, 0x22, 0x20, 0x65, 
  0x6E, 0x63, 0x6F, 0x64, 0x69, 0x6E, 0x67, 0x20, 0x3D, 0x20, 0x22, 0x55, 0x54, 0x46, 0x2D, 0x38, 
  0x22, 0x20, 0x3F, 0x3E, 0x0A, 0x3C, 0x70, 0x61, 0x63, 0x6B, 0x61, 0x67, 0x65, 0x20, 0x76, 0x65, 
  0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x3D, 0x20, 0x22, 0x32, 0x2E, 0x30, 0x22, 0x3E, 0x0A, 0x3C, 
  0x70, 0x69, 0x64, 0x3E, 0x30, 0x31, 0x30, 0x46, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x34, 
  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x45, 0x46, 0x46, 0x33, 0x43, 0x33, 0x32, 0x34, 0x34, 0x43, 
  0x36, 0x30, 0x32, 0x36, 0x33, 0x35, 0x31, 0x37, 0x38, 0x34, 0x35, 0x37, 0x3C, 0x2F, 0x70, 0x69, 
  0x64, 0x3E, 0x0A, 0x3C, 0x74, 0x72, 0x61, 0x63, 0x6B, 0x6C, 0x69, 0x73, 0x74, 0x3E, 0x0A, 0x3C, 
  0x74, 0x72, 0x61, 0x63, 0x6B, 0x20, 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x20, 0x3D, 0x20, 0x22, 
  0x31, 0x22, 0x3E, 0x0A, 0x3C, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 
  0x3E, 0x0A, 0x3C, 0x67, 0x65, 0x6E, 0x72, 0x65, 0x3E, 0x55, 0x6E, 0x6B, 0x6E, 0x6F, 0x77, 0x6E, 
  0x3C, 0x2F, 0x67, 0x65, 0x6E, 0x72, 0x65, 0x3E, 0x0A, 0x3C, 0x2F, 0x64, 0x65, 0x73, 0x63, 0x72, 
  0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x3C, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6F, 0x6E, 
  0x3E, 0x0A, 0x3C, 0x74, 0x69, 0x74, 0x6C, 0x65, 0x20, 0x68, 0x61, 0x6C, 0x66, 0x2D, 0x77, 0x69, 
  0x64, 0x74, 0x68, 0x20, 0x3D, 0x20, 0x22, 0x73, 0x69, 0x6E, 0x65, 0x5F, 0x34, 0x30, 0x30, 0x22, 
  0x20, 0x3E, 0x73, 0x69, 0x6E, 0x65, 0x5F, 0x34, 0x30, 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x74, 0x6C, 
  0x65, 0x3E, 0x0A, 0x3C, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x20, 0x72, 0x6F, 0x6C, 0x65, 0x20, 
  0x3D, 0x20, 0x22, 0x70, 0x72, 0x69, 0x6E, 0x63, 0x69, 0x70, 0x61, 0x6C, 0x22, 0x20, 0x3E, 0x55, 
  0x6E, 0x6B, 0x6E, 0x6F, 0x77, 0x6E, 0x3C, 0x2F, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x3E, 0x0A, 
  0x3C, 0x2F, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x3C, 0x72, 0x65, 0x6E, 0x64, 
  0x69, 0x74, 0x69, 0x6F, 0x6E, 0x6C, 0x69, 0x73, 0x74, 0x3E, 0x0A, 0x3C, 0x72, 0x65, 0x6E, 0x64, 
  0x69, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x20, 0x3D, 0x20, 0x22, 
  0x61, 0x75, 0x64, 0x69, 0x6F, 0x2F, 0x61, 0x74, 0x72, 0x61, 0x63, 0x33, 0x22, 0x3E, 0x0A, 0x3C, 
  0x63, 0x69, 0x64, 0x3E, 0x30, 0x31, 0x30, 0x46, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x34, 
  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x45, 0x46, 0x46, 0x33, 0x43, 0x33, 0x32, 0x34, 0x34, 0x43, 
  0x36, 0x30, 0x32, 0x36, 0x33, 0x35, 0x31, 0x37, 0x38, 0x34, 0x35, 0x37, 0x3C, 0x2F, 0x63, 0x69, 
  0x64, 0x3E, 0x0A, 0x3C, 0x2F, 0x72, 0x65, 0x6E, 0x64, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 
  0x3C, 0x2F, 0x72, 0x65, 0x6E, 0x64, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x6C, 0x69, 0x73, 0x74, 0x3E, 
  0x0A, 0x3C, 0x2F, 0x74, 0x72, 0x61, 0x63, 0x6B, 0x3E, 0x0A, 0x3C, 0x2F, 0x74, 0x72, 0x61, 0x63, 
  0x6B, 0x6C, 0x69, 0x73, 0x74, 0x3E, 0x0A, 0x3C, 0x2F, 0x70, 0x61, 0x63, 0x6B, 0x61, 0x67, 0x65, 
  0x3E, 0x0A, 0x00, 0x00, 0x00, 0x00, 

} ;

30 80
      30 80
            06 07 666F70656E4D47 ; "fopenMG"
            02 02 03EB
            04 14 010F50000004000000EFF3C3244C602635178457
            06 02 6701
            02 02 3F00
            06 02 6801
            02 04 000021C0
            02 01 01
            02 03 0101D0
            02 02 00C0
            02 01 00
            0000
      04 08 1D891A35257C8017
      04 84000021D0
                    8662B73CCD0D ; 6
2EB500000000000000003FCFD3837F35 ; 22
D23B8041488DE653998A1131B0791B42 ; ...
...
0A7721125C0436D158F5800959206C31
27BFDD5418344FAEF752
      30 80
            04 17 4F4D473A4652494E47453A5553523A757365722E786D6C
                  ; OMG:FRINGE:USR:user.xml
            04 8201E9
                  3C3F786D6C2076
657273696F6E203D2022312E30222065
...
6B6C6973743E0A3C2F7061636B616765
3E0A
; <1.0" encoding = "UTF-8" ?>
; <package version = "2.0">
; <pid>010F50000004000000EFF3C3244C602635178457</pid>
; <tracklist>
; <track number = "1">
; <description>
; <genre>Unknown</genre>
; </description>
; <caption>
; <title half-width = "sine_400" >sine_400</title>
; <artist role = "principal" >Unknown</artist>
; </caption>
; <renditionlist>
; <rendition format = "audio/atrac3">
; <cid>010F50000004000000EFF3C3244C602635178457</cid>
; </rendition>
; </renditionlist>
; </track>
; </tracklist>
; </package>
0000

0000

OMGRIGHT icv values

/* <OpenMG directory>\OMGRIGHT\9E8978DDFDC9B092091806987EC6BD907317BEEAF9E7A6A57185BE112F12375E7766AE382A009197.ICV */

unsigned char ICV_9E89[4] = {

  0x30, 0x7A, 0xC2, 0x48, 

} ;

/* <OpenMG directory>\OMGRIGHT\CF9517018A217F16B90558297B089EA0FB21D58DFAB8643E93F7086EA1B301B7236B96E69248F373.ICV */

unsigned char ICV_CF95[4] = {

  0x61, 0x7A, 0xC2, 0x48, 

} ;

Function declarations

maclist(1)

XOR the SalOmgId with a constant key, expand that to a symmetric key and apply to the SHA-1 hash of MACLIST. Compare the result with param3 and return 1 if they are equal. In other words, param3 is a complicated hash of the MACLIST.

Sample input:

unsigned char param1_SalOmgId[16] = {

  0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x24, 0x4C, 0x60, 0x26, 

} ;

unsigned char param2_MACLIST2[80] = {

  0x4D, 0x41, 0x43, 0x4C, 0x49, 0x53, 0x54, 0x00, 0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0xC3, 0x24, 0x4C, 0x60, 0x26, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xEA, 0x42, 0x8F, 0x71, 0xEE, 0x7B, 0x66, 
  0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
  0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 

} ;

unsigned char param3[20] = {

  0x8F, 0x94, 0xDF, 0x98, 0xF5, 0x48, 0x49, 0x19, 0xF2, 0x92, 0xB7, 0x53, 0xC8, 0x2D, 0x75, 0x13, 
  0x54, 0xB1, 0x2C, 0xC4, 

} ;

maclist(8)

This first does the same integrity check as maclist(1), if that does not succeed, it returns ASN.1 of an array with just the single number "3" (an error code). Otherwise it returns the ASN.1 of [0, blob1, blob2], where blob1 is the 0-extension (a type of mapping) of the provided MACLIST (see above), and blob2 is a SHA-1 hash of blob1 which is DES/ocmmod encrypted using the omgid (in its raw form, *not* xor'ed with a constant).

In other words, this extracts the 0-extension of a MACLIST and an encrypted hash of that.

See pcmaclist(6)

/* Procedure prototype: maclist(08)

Input:

SalOmgId const &, SalPointer const &, SalNonConstPointer const &, long, SalExtrinsicsProg const &,

Output:

SalAsnSeqBegin, long &, OmgString &, OmgString &

*/

/* Parameters: */

char param1_unkownblob[20] = {

  0x8F, 0x94, 0xDF, 0x98, 0xF5, 0x48, 0x49, 0x19, 0xF2, 0x92, 0xB7, 0x53, 0xC8, 0x2D, 0x75, 0x13, 
  0x54, 0xB1, 0x2C, 0xC4, 

} ;

/* Return value */

unsigned char unkown_blob[59] = {

  0x30, 0x80, 0x02, 0x01, 0x00, 0x04, 0x18, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 
  0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 
  0x18, 0x46, 0x73, 0xE4, 0x89, 0x6A, 0xA9, 0x0B, 0x96, 0x69, 0x43, 0xAA, 0x39, 0x99, 0xE2, 0x08, 
  0xC4, 0xF8, 0xCA, 0x19, 0x2E, 0x38, 0xE2, 0x3E, 0x4C, 0x00, 0x00, 

} ; /

icv(7)

/* EKB_00010002 → 0x10001

icv(07)

Input:

SalPointer const &, long, SalExtrinsicsProg const &

Output: long &

*/

maclist(4)

/*Procedure prototype: maclist(04)

Input:

SalOmgId const &, OmgString const &, SalPointer const &, OmgString const &, long, SalExtrinsicsProg const &,

Output:

SalAsnSeqBegin, long &, OmgString & */

unsigned char param1[20] = {

  0x43, 0xEA, 0x42, 0x8F, 0x71, 0xEE, 0x7B, 0x66, 0x5D, 0x10, 0x75, 0x2E, 0x85, 0xAB, 0x16, 0xE5, 
  0xA5, 0x0C, 0x62, 0x49, 

} ;

unsigned char param3[20] = {

  0x63, 0x81, 0x63, 0xB8, 0x2C, 0x4E, 0x31, 0x81, 0x0F, 0xBE, 0xE0, 0x1B, 0x2E, 0x7F, 0xC2, 0x5B, 
  0x87, 0x95, 0x86, 0xE3, 

} ;

/* Return values */

unsigned char return_value[33] = {

  0x30, 0x80, 0x02, 0x01, 0x00, 0x04, 0x18, 0xE3, 0xB5, 0x07, 0x43, 0x19, 0x09, 0x8B, 0x88, 0x6A, 
  0x92, 0x40, 0xF9, 0xC1, 0x1A, 0x82, 0xD8, 0x4A, 0x8F, 0x91, 0x0A, 0xA7, 0x2C, 0x7C, 0x55, 0x00, 
  0x00, 

} ;

nc_omgtomsa(0)

/*

Procedure prototype: nc_omgtomsa(00)

Input:

SalPointer const &, OmgString const &, long, SalExtrinsicsProg const &,

Output:

SalNonConstPointer &

*/

unsigned char param2[24] = {

  0xE3, 0xB5, 0x07, 0x43, 0x19, 0x09, 0x8B, 0x88, 0x6A, 0x92, 0x40, 0xF9, 0xC1, 0x1A, 0x82, 0xD8, 
  0x4A, 0x8F, 0x91, 0x0A, 0xA7, 0x2C, 0x7C, 0x55, 

} ;

unsigned char param3[8] = {

  0x86, 0x62, 0xB7, 0x3C, 0xCD, 0x0D, 0x2E, 0xB5, 

} ;

/* Return values */

unsigned char return_value[8] = {

  0x93, 0x33, 0x23, 0x83, 0xF1, 0x0C, 0xFF, 0xBE, 

} ;

querycif(09) - Get KEK encrypted content key

Array ProcessFile[5] = 
{
	0: short int 1001b;
	1: blob_t key_or_id_20;    // = HMAC(ProcessFile[3], SalEnc(Key)) = HMAC(ProcessFile[3], ProcessFile[2])
                                   //
                                   //              = SHA1( dec_pf2 + SHA1( dec_pf2 + Pf3_serialized ) )
	2: blob_t key_or_id_20;    // Key
                                   //
	3: struct {		   // 26
		     dd 6Bh		const_107
		     dd 4400AFA0h	timestamp
		     dd 7
		     dd 4400AF9Eh
		     dd 6Dh
		     dd 0
		     dd 65h
		     dd 8400C5A0h
                                          10031680
                                          A7 D2 81 AD 4B E1 8B B8  91 67 6D 74 83 6D 8D 0E F8 42 28 41
		     dd 0
		     dd 8400C59Ch

                                          10031670 (CID)
                                          01 0F 50 00 00 04 00 00  00 AC D3 FB 2C 1C B4 2E 0D 5D 95 A7 00
		     dd 68h
		     dd 1F06h
		     dd 6
		     dd 8400C598h         10031660: 'raw content importing'
		     dd 67h
		     dd 2
		     dd 1
		     dd 3
		     dd 8
		     dd 3
		     dd 5
		     dd 4
		     dd 66h
		     dd 0C400AF9Ch       1002be70
                                         1002BE70 word_1002BE70   dw 0BE00h
                                         1002BE72                 dw 0
                                         1002BE74                 dd 0
		     dd 6Ch
		     dd 7
		};
	4: blob_t 	0C400AF9Ah;
	};
};


netmd(0): AttemptCheckout0

/*

netmd(0)

Process file, unknown blob, Ekb capability table, 00010002ekb, unknown blob, Content id, SalOmgId → ASN.1([status,nonce,checkout_context])

status = 0: Success, nonce will be used to authenticate NetMD unit, checkout_context contains all data to continue processing. status != 0: Error, nonce and checkout_context don't exist

Procedure prototype: netmd(01)

Input:

SalOmgId const &, SalPointer const &, SalPointer const &, SalPointer const &, long, SalExtrinsicsProg const &

Output:

SalAsnSeqBegin, long &, SalNonConstPointer &, OmgString &

*/

unsigned char param2[24] = {

  0x46, 0x73, 0xE4, 0x89, 0x6A, 0xA9, 0x0B, 0x96, 0x69, 0x43, 0xAA, 0x39, 0x99, 0xE2, 0x08, 0xC4, 
  0xF8, 0xCA, 0x19, 0x2E, 0x38, 0xE2, 0x3E, 0x4C, 

} ;

unsigned char param3[24] = {

  0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 
  0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 

} ;

unsigned char param5[8] = {

  0x82, 0x19, 0x23, 0xFD, 0xB7, 0xFE, 0xCB, 0x2E, 

} ;

unsigned char param6_CIF[20] = {

  0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xEF, 0xF3, 0xC3, 0x24, 0x4C, 0x60, 0x26, 
  0x35, 0x17, 0x84, 0x57, 

} ;

/* Return values */

unsigned char return_value[67] = {

  0x30, 0x80, 0x02, 0x01, 0x00, 0x04, 0x08, 0xE2, 0xAA, 0x5E, 0x05, 0xAB, 0x2D, 0xDA, 0xB8, 0x04, 
  0x30, 0xFF, 0xFA, 0x5A, 0xA4, 0xC5, 0xDE, 0xDB, 0xB2, 0x0B, 0x18, 0x40, 0x09, 0x9E, 0xD3, 0xC3, 
  0x3F, 0xF7, 0xE1, 0x46, 0x8D, 0x5C, 0x64, 0xFC, 0x35, 0xC9, 0xBC, 0x0D, 0xA4, 0x4F, 0xBD, 0xB2, 
  0x70, 0x3C, 0xEA, 0x97, 0x09, 0x2A, 0x1D, 0xEF, 0xAD, 0xE4, 0x20, 0x56, 0xB4, 0x5D, 0x31, 0x65, 
  0xF2, 0x00, 0x00, 

} ;

netmd(1) - AttemptCheckout1

/* netmd(1)

unkown blob, unknown blob, 00010002ekb, SalOmgId - > unknown blob

Procedure prototype: netmd(01)

Input:

SalOmgId const &, SalPointer const &, SalPointer const &, SalPointer const &, long, SalExtrinsicsProg const &

Output:

SalAsnSeqBegin, long &, SalNonConstPointer &, OmgString &

*/

unsigned char param1[48] = {

  0xFF, 0xFA, 0x5A, 0xA4, 0xC5, 0xDE, 0xDB, 0xB2, 0x0B, 0x18, 0x40, 0x09, 0x9E, 0xD3, 0xC3, 0x3F, 
  0xF7, 0xE1, 0x46, 0x8D, 0x5C, 0x64, 0xFC, 0x35, 0xC9, 0xBC, 0x0D, 0xA4, 0x4F, 0xBD, 0xB2, 0x70, 
  0x3C, 0xEA, 0x97, 0x09, 0x2A, 0x1D, 0xEF, 0xAD, 0xE4, 0x20, 0x56, 0xB4, 0x5D, 0x31, 0x65, 0xF2, 

} ;

unsigned char param2[8] = {

  0xC2, 0xC2, 0xF3, 0xA8, 0xE2, 0xC2, 0x8D, 0x51, 

} ;

/* Return values */

unsigned char return_value[83] = {

  0x30, 0x80, 0x02, 0x01, 0x00, 0x04, 0x20, 0x96, 0x00, 0xE9, 0x56, 0x68, 0x1F, 0xEF, 0xF5, 0x97, 
  0x1B, 0xA1, 0x16, 0x18, 0xB2, 0x49, 0x8E, 0x45, 0xEA, 0x4F, 0x56, 0x95, 0xB9, 0xA0, 0xB0, 0xF1, 
  0xEA, 0xF5, 0x1A, 0xC2, 0x3A, 0xF6, 0x69, 0x04, 0x28, 0x79, 0xC7, 0x59, 0xBF, 0x06, 0xE7, 0xBB, 
  0x71, 0x69, 0x50, 0xE5, 0x7A, 0x2B, 0x7B, 0xCC, 0xEA, 0xFF, 0xD8, 0xE6, 0xB1, 0x6A, 0x74, 0x6F, 
  0x45, 0x95, 0x89, 0x70, 0xB8, 0x86, 0x25, 0x26, 0x58, 0xE6, 0x41, 0xCB, 0xFB, 0x6E, 0x31, 0x95, 
  0x3D, 0x00, 0x00, 

} ;

netmd(2) - CompleteCheckOut

/* netmd(2)

unknown blob, unknown blob, Content Identifier, Process file, SalOmgId -> TODO

Procedure prototype: netmd(02)

Input:

SalOmgId const &, OmgString const &, SalString const &, SalPointer const &, SalPointer const &, long, SalExtrinsicsProg const &,

Output:

SalAsnSeqBegin, long &, OmgString &, OmgString &, SalNonConstPointer &, SalNonConstPointer &

*/

unsigned char param1[40] = {

  0x79, 0xC7, 0x59, 0xBF, 0x06, 0xE7, 0xBB, 0x71, 0x69, 0x50, 0xE5, 0x7A, 0x2B, 0x7B, 0xCC, 0xEA, 
  0xFF, 0xD8, 0xE6, 0xB1, 0x6A, 0x74, 0x6F, 0x45, 0x95, 0x89, 0x70, 0xB8, 0x86, 0x25, 0x26, 0x58, 
  0xE6, 0x41, 0xCB, 0xFB, 0x6E, 0x31, 0x95, 0x3D, 

} ;

unsigned char param2[32] = {

  0x39, 0x22, 0x9C, 0x09, 0x3E, 0xA6, 0x9B, 0x84, 0x98, 0x5D, 0x45, 0x91, 0xBB, 0x96, 0xDB, 0x7A, 
  0x8A, 0x0C, 0x6C, 0x3A, 0x94, 0xB8, 0xE7, 0x6E, 0x2D, 0x05, 0x0A, 0x93, 0x3C, 0x27, 0xC3, 0x88, 

} ;

unsigned char param3_CIF[20] = {

  0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xEF, 0xF3, 0xC3, 0x24, 0x4C, 0x60, 0x26, 
  0x35, 0x17, 0x84, 0x57, 

} ;

/* Return values */

OCM Applications and procedures used in OpenMG modules

salwrap

20 calls to salExec0

OCM procedures used in API functions of salwrap.

* salApplyTokens: maclist(2,3) modify process-file

* salVerifyMacAndTranscrypt: maclist(4)

*salGetRightsNum: icv(9)

*OmgEkb::getOmgDeviceId: icv(5)

*getSalOmgId: icv(12)

OCM procedures used in internal functions of salwrap.

* OmgIcvCache::OmgIcvCache(): maclist(7,0) -create-new-maclist

*OmgIcvCache::OmgIcvCache() maclist(5) Restore ICV icv(4)

*internal: verifyMacListIcv - Oh My God maclist(1,6), icv(10)

*internal func: Xrefs: EkbSetImage, verifyEkbImages maclist(7)

*internal func: Xrefs: EkbSetImage, EkbCapabilityTable, verifyEkbImages maclist(8)

*internal func: icv(7) Xrefs OmgEkb::getImage, OmgEkb::setImage

OmgNetMD

16 calls to salExec0

*OCM procedures used in API functions of OmgNetMD.

*IOmgNetMD::AttemptCheckOut netmd(0,1) *IOmgNetMD::CompleteCheckOut2 netmd(2)

*IOmgNetMD::MultiCheckin netmd(3) Xrefs to: CompleteCheckIn, NextCheckIn

*OCM procedures used in internal functions of OmgNetMD.

NextCheckIn netmd(6)

CompleteCheckIn netmd(7)

netmdocm.txt · Last modified: 2024/05/21 14:50 by nopsled

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki