Code for transmitting through adf. Directly give it the physical layer data to be transmitted.a
Fork of ADF_test by
Diff: main.cpp
- Revision:
- 19:a4ce74cca3fa
- Parent:
- 18:25e7644115f2
--- a/main.cpp Fri Jul 08 06:07:14 2016 +0000 +++ b/main.cpp Fri Jul 08 07:30:40 2016 +0000 @@ -1,9 +1,56 @@ -//Working for ISR = 2 28/12/2015 7:02 PM -//working for ISR = 10 29/12/2015 10:43 AM -/*remove me*/ -#define bypass_adf 0 -/**/ +//without reset feature , with state checks. +//Ticker ticker; +#include<iostream> +#include"mbed.h" +#define ADF_IRQ PTA14 +#define SPI_MOSI PTE1 +#define SPI_MISO PTE3 +#define SPI_CLK PTE2 +#define SPI_CS_ADF PTA15 +Serial gPC( USBTX, USBRX ); +SPI spi(PTE1, PTE3, PTE2); +DigitalOut gCS_ADF(SPI_CS_ADF); +DigitalOut led(LED_RED); +InterruptIn IRQ(ADF_IRQ); +bool loop_on; +bool ADF_off; +bool buffer_state; +bool finish_write_data; +uint8_t signal = 0x00; +unsigned char bbram_buffer[66]={0x19,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0xF4,0xC2,0x10,0xC0,0x00,0x30,0x31,0x07,0x00,0x01,0x00,0x7F,0x00,0x0B,0x37,0x00,0x00,0x40,0x0C,0x00,0x05,0x00,0x00,0x18,0x12,0x34,0x56,0x20,0x10,0xC4,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xE0,0x00,0x10,0x04,0x00,0x00,0x00,0x00,0x00}; +bool data_irq_err=0; +bool data_err= false; +unsigned char temp_byte=0x00; +unsigned char data_err1[112]; +unsigned char data_err_cnt=0; +unsigned int byte_count =0; +#define DATA_ERR_THRS 20 +bool rolling_buffer_settings_error=true; +bool bbram_write_success=true; +int bbram_err_cnt=0; +int rbp_err_cnt=0; +bool reset_flag=false; +#define RBP_THRS 4 +bool quit_configuration=false; +bool power_reset_flag=false; +unsigned int power_reset_count=0; +bool Configuration_done=false; +#define HW_THRS 2 + +//int initialise_card(); +//int disk_initialize(); +//------------------------------------------------------------------------ +// state checking functions +//bool assrt_phy_off( int, int, int); +//bool assrt_phy_on( int,int,int); +//bool assrt_phy_tx(int,int,int); + +#define TRANSMIT_LEN_1 0xFF +#define TRANSMIT_LEN_2 0xFF +/***/ +Timer T; + #define START_ADDRESS 0x020; #define MISO_PIN PTE3 /**************Defining Counter Limits**************/ @@ -26,27 +73,6 @@ #define BUSY 0x00 //=================================================== -//without reset feature , with state checks. -#include<iostream> -#include"mbed.h" -#define ADF_IRQ PTA14 -#define SPI_MOSI PTE1 -#define SPI_MISO PTE3 -#define SPI_CLK PTE2 -#define SPI_CS_ADF PTA15 -/*Rolling_Buffer_Parameters*/ - -#define TRANSMIT_LEN_1 0xFF -#define TRANSMIT_LEN_2 0xFF -/***/ -Timer T; -Serial gPC( USBTX, USBRX ); -//gPC.baud(1200); -InterruptIn IRQ(ADF_IRQ); -//Ticker ticker; -SPI spi(PTE1, PTE3, PTE2); -DigitalOut gCS_ADF(SPI_CS_ADF); -DigitalOut led(LED_RED); unsigned int Adf_data_counter=0; unsigned char status =0; unsigned int cmd_err_cnt=0; @@ -60,29 +86,6 @@ bool bbram_flag=0; bool stop_transmission=false; -bool sent_tmfrom_SDcard; -bool loop_on; -bool ADF_off; -bool buffer_state; -uint8_t signal = 0x00; - -//unsigned char bbram_buffer[66]= {0x19,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0xF4,0xC2,0x10,0xC0,0x00,0x30,0x31,0x07,0x00,0x01,0x00,0x7F,0x00,0x0B,0x37,0x00,0x00,0x40,0x0C,0x00,0x05,0x00,0x00,0x18,0x12,0x34,0x56,0x10,0x10,0xC4,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00}; -unsigned char bbram_buffer[66]={0x19,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0xF4,0xC2,0x10,0xC0,0x00,0x30,0x31,0x07,0x00,0x01,0x00,/*PA Level Byte*/0x7F/*PA Parameters*/,0x00,0x0B,0x37,0x00,0x00,0x40,0x0C,0x00,0x05,0x00,0x00,0x18,0x12,0x34,0x56,0x20,0x10,0xC4,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xE0,0x00,0x10,0x04,0x00,0x00,0x00,0x00,0x00}; -//unsigned char Adf_data[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -unsigned char Adf_data[]= {0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; - -unsigned char Segment[] = {0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; -unsigned char EOS[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; -unsigned char max_segment = (65535 - 120)/(48 + 40*134);//12 - - - - - -unsigned char buffer_112[112]; -//int initialise_card(); -//int disk_initialize(); - #define reset_flags {\ finish_write_data = false;\ @@ -90,10 +93,10 @@ last_buffer = false;\ loop_on = true;\ ADF_off = false;\ -buffer_state = true; -loop_on = true; -ADF_off = false; -sent_tmfrom_SDcard = false; +buffer_state = true;\ +loop_on = true;\ +ADF_off = false;\ +sent_tmfrom_SDcard = false;\ Adf_data_counter=0;\ status =0;\ cmd_err_cnt=0;\ @@ -106,25 +109,8 @@ bbram_flag=0;\ stop_transmission=false;\ } -int segment_len=sizeof(Segment); -int EOS_len=sizeof(EOS); -int total_no_of_segments=240; -int no_of_segments=0; -bool EOS_f=false; -bool segment_f=true; -#define restart_adf {\ - gCS_ADF=0;\ - spi.write(CMD_PHY_ON);\ - gCS_ADF=1;\ - wait(2);\ - Adf_data_counter = 0;\ - EOS_f=0;\ - segment_f=1;\ -// printf("seg=%d\n",no_of_segments);\ - gCS_ADF=0;\ - spi.write(CMD_PHY_TX);\ - gCS_ADF=1;\ -} + + int err_arr[64]; bool bbram_err=false; int err_idx=-1; @@ -156,57 +142,10 @@ bool tx_loop=1; -//========================OLD Transmit data========================================================================================= -void transmitdata(){ // copy the data to be transmitted to bufer_112 - for(int i=0;i<112;i++){ - buffer_112[i]=Adf_data[Adf_data_counter]; - Adf_data_counter++; - if(data_length==Adf_data_counter){ - stop_transmission= true; - Adf_data_counter = 0; - break; - } - } -} - - -//======================================================NEW TRANSMIT DATA======================================= -/* -void transmitdata() // copy the data to be transmitted to bufer_112 -{ - tx_loop=true; - for(int i=0; ((i<112)&&(tx_loop==1)); i++) { - if(segment_f) { - buffer_112[i]=Adf_data[Adf_data_counter]; - Adf_data_counter++; - - if(Adf_data_counter==segment_len) { - no_of_segments++; - Adf_data_counter=0; - if(no_of_segments%12==0) { - segment_f=0; - EOS_f=1; - } - } - } - if(EOS_f) { - buffer_112[i]=Adf_data[Adf_data_counter]; - Adf_data_counter++; - if(Adf_data_counter==EOS_len) { - segment_f=1; - EOS_f=0; - Adf_data_counter=0; - restart_adf; - } - } - +#define PRNT_ONCE {\ + gPC.printf("%d %d lol_ what?\r\n",segment_len,EOS_len);\ } -} -*/ -#define PRNT_ONCE {\ - printf("%d %d lol_ what?\r\n",segment_len,EOS_len);\ - }\ #define bbram_write {\ gCS_ADF=0;\ @@ -282,7 +221,7 @@ }\ }\ }\ -}\ +} bool hardware_reset(int bcn_call) @@ -296,7 +235,6 @@ temp_return = 0; while(count<10 && miso_err_cnt<10) { if(MISO_PIN) { -// assrt_phy_off; /*asseert_phyoff Starts**/ {\ int state_err_cnt = 0;\ @@ -346,8 +284,7 @@ bool reg_err; int reg_err_cnt; #define REG_ERR_THRS 5 -#define reg_check(addr1,addr2,reg_val)\ -{\ +#define reg_check(addr1,addr2,reg_val){\ gCS_ADF=0;\ reg_err=false;\ spi.write(addr1);\ @@ -359,7 +296,7 @@ else\ reg_err=true;\ gCS_ADF=1;\ -}\ +} #define initiate {\ gCS_ADF=0;\ @@ -376,9 +313,9 @@ reg_check(0x28,0x14,TRANSMIT_LEN_1);\ }\ if(reg_err)\ - printf("Reg_err_ignored %x \r\n",(int)temp);\ + gPC.printf("Reg_err_ignored %x \r\n",(int)temp);\ else\ - printf("reg written successful %x \r\n",(int)temp);\ + gPC.printf("reg written successful %x \r\n",(int)temp);\ reg_err=true;\ for(reg_err_cnt=0;reg_err_cnt<REG_ERR_THRS && reg_err;reg_err_cnt++){\ gCS_ADF=0;\ @@ -389,67 +326,10 @@ reg_check(0x28,0x15,TRANSMIT_LEN_2);\ }\ if(reg_err)\ - printf("Reg_err_ignored %x \r\n",(int)temp);\ + gPC.printf("Reg_err_ignored %x \r\n",(int)temp);\ else\ - printf("reg written successful %x \r\n",(int)temp);\ + gPC.printf("reg written successful %x \r\n",(int)temp);\ }\ - -bool rolling_buffer_settings_error=true; -bool bbram_write_success=true; -int bbram_err_cnt=0; -int rbp_err_cnt=0; -bool reset_flag=false; -#define RBP_THRS 4 -bool quit_configuration=false; -bool power_reset_flag=false; -unsigned int power_reset_count=0; -bool Configuration_done=false; -#define HW_THRS 2 -//======================================OLD Write Data=================================== -/* -#define write_data {\ - counter++;\ - gCS_ADF=0;\ - spi.write(0x0B);\ - spi.write(0x36);\ - spi.write(0xFF);\ - gCS_ADF=1;\ - gCS_ADF=0;\ - if(buffer_state){\ - spi.write(0x18);\ - spi.write(0x20);\ - for(unsigned char i=0; i<112;i++){\ - spi.write(buffer_112[i]);\ - }\ - }\ - else{\ - spi.write(0x18);\ - spi.write(0x90);\ - for(unsigned char i=0; i<112;i++){\ - spi.write(buffer_112[i]);\ - }\ - }\ - gCS_ADF=1;\ - buffer_state = !buffer_state;\ -}*/ -void send_tm_from_SD_card() -{ -} -//========================================================================== - -//==================NEW_WRITE_DATA_VARs============================================ -//unsigned int counter =0; -bool data_err= false; -unsigned char temp_byte=0x00; -unsigned char data_err1[112]; -unsigned char data_err_cnt=0; -unsigned int byte_count =0; -#define DATA_ERR_THRS 20 - -bool last_buffer = 0; -//#define write_data data_err_cnt=0; -//==================NEW_WRITE_DATA============================================ -bool finish_write_data=0; #define write_data {\ counter++;\ gCS_ADF=0;\ @@ -514,43 +394,36 @@ }\ }\ } -//=============NEW CHECK VAriables=================================================================== -bool data_irq_err=0; -//================================================================================ -void check() -{ - check_status; //remove me - printf("I 0x%X\r\n",(int)status);//Remove me - if(IRQ) { - printf("det\r\n"); - // if(1){ - if(!ADF_off) { - // gCOM_MNG_TMTC_THREAD->signal_set(signal); - if(stop_transmission) { - write_data; - ADF_off=true; - - } else { - write_data; - transmitdata(); - } - } else { - wait_ms(20); -// ticker.detach(); - gCS_ADF=0; - spi.write(0xB1); - gCS_ADF=1; - gPC.puts("transmission done\r\n"); -// cout<<counter<<endl; - loop_on=false; - } - } - else{ +#define check {\ + check_status;\ + gPC.printf("I 0x%X\r\n",(int)status);\ + if(IRQ || bypass_adf){\ + gPC.printf("det\r\n");\ + if(!ADF_off) {\ + if(finish_write_data) {\ + write_data;\ + ADF_off=true;\ + } else {\ + write_data;\ + if(sent_tmfrom_SDcard)\ + send_tm_from_SD_card_fun();\ + else snd_tm.transmit_data(buffer_112,&last_buffer);\ + }\ + } else {\ + wait_ms(20);\ + gCS_ADF=0;\ + spi.write(0xB1);\ + gCS_ADF=1;\ + gPC.puts("transmission done\r\n");\ + loop_on=false;\ + }\ + }\ + else{\ if(T.read_us()>98000){\ data_irq_err=true;\ - CMD(CMD_PHY_ON); - gPC.printf("Data_error_detected"); + CMD(CMD_PHY_ON);\ + gPC.puts("Data_error_detected");\ }\ }\ } @@ -564,19 +437,21 @@ spi.write(0xFF);\ gCS_ADF=1;\ if(sent_tmfrom_SDcard){\ - }\ - else{\ - transmitdata();\ + send_tm_from_SD_card_fun();\ + }else{\ + snd_tm.transmit_data(buffer_112,&last_buffer);\ }\ write_data;\ if(sent_tmfrom_SDcard){\ + send_tm_from_SD_card_fun();\ }else{\ - transmitdata();\ + snd_tm.transmit_data(buffer_112,&last_buffer);\ }\ write_data;\ if(sent_tmfrom_SDcard){\ + send_tm_from_SD_card_fun();\ }else{\ - transmitdata();\ + snd_tm.transmit_data(buffer_112,&last_buffer);\ }\ gCS_ADF=0;\ spi.write(0xB1);\ @@ -595,6 +470,7 @@ spi.write(0xFF);\ gCS_ADF=1;\ } + #define initial_adf_check {\ bool Configuration_Done=false;\ quit_configuration=false;\ @@ -683,34 +559,24 @@ }\ } -void adf_not_SDcard() -{ - initial_adf_check; - gPC.puts("Config_part done\r\n"); +#define configure_adf {\ + reset_flags;\ + initial_adf_check;\ + gPC.puts("Config_part done\r\n");\ } -int main() -{ - while(1) { - reset_flags; - gPC.puts("welcome to adf test\n"); - spi.format(8,0); - spi.frequency(1000000); - data_length = sizeof(Adf_data); -// cout<<data_length<<endl; - adf_not_SDcard(); - send_data; - CMD(CMD_PHY_TX); - wait_us(2000); - while(loop_on){ - led = !led; // toggle led - wait_us(20); - check(); - if(data_irq_err){ - break;\ - } - } - wait(0.1); - gPC.printf("in WHILE\n"); -// wait(1); - } -} \ No newline at end of file + +#define transmit_adf {\ + configure_adf;\ + send_data;\ + CMD(CMD_PHY_TX);\ + wait_us(2000);\ + while(loop_on){\ + wait_us(20);\ + check;\ + if(data_irq_err){\ + break;\ + }\ + }\ + /*gPC.puts("after while loop\r\n");*/\ +} +