User Tools

Site Tools


netmdocm

This is an old revision of the document!


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, 0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0xC3, 0x24, 0x4C, 0x60, 0x26, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 

} ;

There is a 40-byte header (MACLIST\0, followed by 4 DWORDs with unknown meaning, 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.

/* 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

/* Procedure prototype: querycif(09)

Input:

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

Output:

SalAsnSeqBegin, long &, OmgString & querycif(09)

Process File, SalOmgId, param3, long (3), long (3), Ekb capability table, 00010001_EKB → Enc(CKEY, KEK)

*/

unsigned char param3[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 param6_EkbCapabilityTable[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, 

} ;

/* Return value. TODO: double check */

unsigned char return_value[11] = {

  0x30, 0x80, 0x02, 0x01, 0x00, 0x04, 0x08, 0x82, 0x19, 0x23, 0xFD, 

} ;

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;
	};
};




function GetKekEncCKEY(blob_t OpfImage (arg_2), blob_t EkbCapTableBody (arg_3))
{
	Array ProcessFile[5];
	
	dict[4] = EkbCapTableBody;
	ProcessFile = decode_asn1(opf_image);
	dict[3] = OpfImage;

	// 
	// Calculate HMAC for the opf[3] usage information. Check if it matches with the HMAC value in opf[1]
        //
        // ProcessFile[1]:  HMAC(opf[3], saldec(opf[2]))

	blob_t dec_pf2 = devicesal_220_decrypt_hook_249(ProcessFile[2],  EkbCapTableBody);
	blob_t serialized_opf3 = BCSerialize(ProcessFile[3]);
	blob_t key = concat ( dec_pf2, serialized_opf3 );
	blob_t hasked_key = inline::SHA-1 ( key, 0);
	blob_t key_pf2 = concat ( dec_pf2, hashed_key );
	blob_t hashed_key_pf2 = inline:SHA-1 (key_pf2);
	
        // if( HMAC(opf[3], saldec(opf[2]) == ProcessFile[1])
        //
        //
	if (compare_blob (hashed_key_pf2, ProcessFile[1])  == 0)	// 0xffff 
									// Test_Small_Int_For_Zero -> 0 (acc)
	{
		... todo
	}
}

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)

netmd.ocm Decompiled

Dict[0xf9] = {0x63, 0x81, 0x63, 0xB8, 0x2C, 0x4E, 0x31, 
              0x81, 0x0F, 0xBE, 0xE0, 0x1B, 0x2E, 0x7F, 
              0xC2, 0x5B, 0x87, 0x95, 0x86, 0xE3};


// CIPHERTEXT must be a serialized and encrypted blob (see dev_0xd8/dev_0xd9).
// The PLAINTEXT is appended to that blob and the serialized and encrypted result is returned.
blob_t
netmd_0x07 (blob_t key, blob_t some_plaintext, blob_t some_ciphertext)
{
  static blob_t pad[16] = { 0x33, 0x4a, 0x18, 0x94, 0xc1, 0xf3, 0x83, 0xf6,
                            0xd3, 0xeb, 0x6a, 0xc2, 0xad, 0x13, 0x07, 0xca };
  blob_t data = dev_0xd8 (some_ciphertext, XOR (key, pad));
  data = CONCAT (data, some_plaintext);
  return dev_0xd9 (data, XOR (key, pad));
}

icv.ocm Decompiled

//
// Generate a SalOmgId
//
//   Example: 30 80 0410010F5000000400000000006E2B2A75BA 00 00
//   
//   <OMG Directory>\OMGKEY\omg_id..dat
//
// Note: When OpenMG is used (trough the UI) for the first time this value is generated, 
//       by calling the salwrap function getSalOmgId.
//
//                   const unsigned __int8 *__cdecl getSalOmgId()
//
blob_t icv(07)
{
 blob_t SalIdPRNG  = BCX_1C_GetPRNGBytes(5);
 static blob_t PrefixSalOmgId[8] = {0x01,0x0F,0x50,0x00,0x00,0x04,0x00,0x00}; 
 data = BCX_01_Concat(PrefixSalOmgId, SalIdPRNG);
 Push 1
 Pack_To_Array
 Create_Array
}

maclist.ocm

maclist(1) work in progress <code> int maclist_0x01(blob_t SalOmgId, blob_t maclist2dat, blob_t OmgIcvCache) { static blob_t pad[16] = {0x20, 0xBE, 0xDE, 0x72, 0xA3, 0xB8, 0x62, 0x60, 0x71, 0x44, 0x3A, 0x33, 0xE9, 0xAC, 0x69, 0xCE}; static SHA1state, hash_maclist, hash_maclist_salomgid, xor_SalOmgId; SHA1state = BCX_19_InitSHA1(); BCX_1A_SHA1AddData(maclist, 0, SHA1state); hash_maclist = BCX_1B_SHA1Finish(SHA1state); xor_SalOmgId = BCX_06_XorBlobs(SalOmgId, pad); hash_maclist_salomgid = salenc_sha1(SalOmgId_xor, hash_maclist); hash_maclist == hash_xorSalOmgId? TRUE: FALSE } </code>

netmdocm.1295097120.txt.gz · Last modified: 2011/01/15 13:12 by nopsled

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki