Interrupt_test

Dependencies:   mbed-rtos mbed

Fork of ADF_test_2 by shubham c

main.cpp

Committer:
ee12b079
Date:
2016-12-16
Revision:
22:eeea8501886c
Parent:
21:bae83ef7ac5f

File content as of revision 22:eeea8501886c:

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

#define START_ADDRESS 0x020;
#define MISO_PIN PTE3
/**************Defining Counter Limits**************/
#define THRS 20
#define STATE_ERR_THRS 20
#define PHY_OFF_EXEC_TIME 300
#define PHY_ON_EXEC_TIME 300
#define PHY_TX_EXEC_TIME 600
/******DEFINING COMMANDS*********/
#define CMD_HW_RESET 0xC8
#define CMD_PHY_ON 0xB1
#define CMD_PHY_OFF 0xB0
#define CMD_PHY_TX 0xB5
#define CMD_CONFIG_DEV 0xBB
/**STATES**/
//=======================
#define PHY_OFF 0xB1
#define PHY_ON 0xB2
#define PHY_TX 0xB4
#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 sys_pwr_rst (PTA16,0);//For eps
DigitalOut gCS_ADF(SPI_CS_ADF);
DigitalOut led(LED_RED);
DigitalOut RF_SW_CNTRL_BCN(PTB17);
DigitalOut RF_SW_CNTRL_TX(PTB7);
unsigned int Adf_data_counter=0;
unsigned char status =0;
unsigned int cmd_err_cnt=0;
unsigned int data_length;
unsigned int state_err_cnt=0;
unsigned int miso_err_cnt=0;
unsigned int hw_reset_err_cnt=0;
unsigned int counter =0;
bool temp_return = 0;
bool bcn_flag=0;
bool bbram_flag=0;
DigitalOut COM_OC_SW(PTB3);
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,0x83,0x96,0x0C,0x2A,0xE6,0xED,0xA8,0x1E,0x58,0x80,0x30,0x60,0xCB,0xD2,0xF5,0x54,0xC9,0xF1,0x37,0x0A,0x24,0x71,0xD0,0xBC,0x51,0x70,0x93,0x12,0x43,0x84,0xE4,0x5E,0x2E,0xAA,0xCE,0x64,0x18,0x82,0x3B,0x1C,0xBB,0x23,0xC9,0x04,0x73,0xDA,0x81,0xFA,0xA1,0xF6,0xDE,0xDA,0x9A,0x7B,0xDA,0x52,0x2D,0x00,0xEB,0xCC,0x3D,0xA3,0xB0,0x42,0xAF,0x4F,0x12,0xF8,0x66,0x4B,0x53,0x6C,0x7F,0x04,0xB2,0xF0,0xAF,0xC9,0xD9,0x68,0xDE,0x11,0xEA,0x04,0x08,0x74,0xFE,0xC6,0x06,0x14,0xEF,0x08,0xD1,0xE9,0xBF,0x1E,0x53,0xCB,0xF9,0xD6,0xED,0x03,0x64,0x26,0xB0,0xD4,0x50,0xF4,0x3D,0xB2,0xD3,0x74,0x8C,0x97,0x96,0x2E,0x68,0x04,0x94,0xD0,0xAF,0x7B,0xC0,0x7E,0xA9,0xC6,0x32,0x94,0x80,0xC8,0x67,0x5E,0x20,0x5E,0x7F,0x8A,0x07,0x6A,0x1F,0x5C,0xCD,0xBB,0xAF,0x2C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x40,0xDF,0x23,0xA8,0x4B,0x37,0x90,0x62,0x9E,0xB2,0x67,0xB4,0xE2,0xEA,0x3B,0xAC,0xFC,0xF2,0x5D,0x84,0x27,0xCB,0x49,0x9A,0x5F,0xCC,0x7D,0x78,0x26,0x3B,0x7D,0xF0,0xC9,0x34,0xB2,0x02,0x83,0x08,0x1A,0x98,0x62,0x61,0xFA,0xC0,0xAF,0x0A,0x20,0x38,0xA2,0x60,0x9A,0x86,0xF4,0x37,0xBB,0xAA,0xE7,0x36,0x78,0xAC,0xDD,0xC8,0x02,0xFA,0x63,0x69,0x93,0x66,0xC3,0x09,0xF9,0xEE,0x7B,0x4B,0x2D,0x30,0xC6,0x48,0xA7,0xA8,0x42,0x26,0x0D,0xFC,0xD1,0x9B,0x90,0x7C,0xB6,0x74,0x61,0x14,0x76,0xEE,0xC2,0x60,0x58,0x36,0x86,0xAC,0xCA,0x4C,0x27,0x64,0x33,0x38,0x3F,0x34,0xB1,0xE2,0xC2,0x68,0xC3,0x1A,0x1D,0x2C,0x4D,0x47,0xFB,0x54,0x46,0xCF,0xFF,0x64,0xBC,0x3B,0x59,0x6C,0x28,0x53,0xAC,0xD8,0x8E,0x1E,0x2D,0x30,0x0D,0xE4,0x74,0x58,0xAC,0xE5,0x21,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x25,0xA2,0xD6,0xC2,0x28,0x99,0x86,0xE0,0xF5,0xE2,0x2E,0x60,0xA1,0x25,0x87,0x22,0xF1,0x93,0x13,0x48,0x5E,0x0E,0xB4,0x9C,0x65,0x0B,0xA9,0x4A,0x32,0x2D,0x50,0x5E,0xA1,0x8B,0xA9,0xB6,0x99,0x0D,0xC4,0xB4,0x47,0x07,0xEE,0x54,0x89,0x4E,0xF3,0x76,0x8B,0x5B,0xF5,0x8A,0xF0,0x67,0x45,0xE2,0xE7,0xA0,0xA4,0xCE,0xE5,0xD7,0x82,0xB0,0xAE,0xCB,0xF9,0x5C,0x73,0xF8,0x36,0x6C,0x92,0x02,0x32,0xC2,0xE5,0x47,0x37,0x90,0x02,0x56,0x16,0xFC,0xA0,0x74,0xEF,0xBA,0x87,0x1C,0x97,0x8E,0x66,0xC7,0xA3,0xA2,0x87,0xB7,0xA3,0x66,0x3A,0x89,0xDA,0xB4,0x82,0xD9,0xF4,0xE8,0x55,0x43,0x2A,0xE8,0xD1,0x4A,0x01,0x14,0x10,0xC1,0x0C,0x7E,0x52,0xEA,0x88,0xF6,0xDA,0x2B,0x93,0x92,0x62,0x2D,0xDF,0x30,0x09,0xF0,0x05,0xE8,0x63,0xFB,0xE1,0x8C,0x94,0x67,0x64,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x96,0xDF,0x8B,0xE0,0x90,0x80,0x3B,0xD8,0xC7,0x29,0xF7,0xE6,0x53,0x45,0x18,0x20,0xF2,0x8C,0x8D,0x6A,0xAA,0xE9,0xCC,0x98,0x4C,0x4B,0x9B,0xAC,0x81,0x7C,0x2D,0x16,0x48,0x6C,0x43,0xA8,0xA3,0xB1,0xFD,0x76,0x74,0xE6,0xD9,0x36,0x4E,0x44,0x22,0x6C,0x33,0x02,0xD5,0xA6,0xD6,0x91,0x23,0xDC,0x31,0x7B,0xCB,0xA6,0x18,0x19,0x8C,0xFA,0xA6,0x35,0xFC,0x2E,0x01,0xD5,0x7E,0x9C,0xC6,0xC6,0xB3,0x02,0xBD,0xBB,0x5C,0x0C,0xCE,0x52,0x56,0xD4,0x53,0x2B,0x63,0x78,0x05,0x40,0x2C,0xAA,0x25,0x63,0xF0,0xBC,0x94,0x2E,0x3C,0xF2,0x45,0x67,0x98,0x32,0xC7,0xFE,0x9C,0x36,0x7E,0xC6,0x00,0x18,0x4D,0x9C,0x69,0x30,0xA6,0x56,0x0C,0xE4,0xE6,0x08,0x92,0x4C,0x09,0x2E,0x23,0x6E,0x29,0x43,0xED,0x5A,0x2D,0x58,0xB2,0xFE,0xC7,0x18,0xCB,0x90,0x17,0x3D,0x24,0x4C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x32,0x56,0x28,0x64,0x22,0x8E,0xEC,0xB0,0xEB,0x21,0xBD,0x5A,0xCD,0x3A,0x7D,0xA8,0xAD,0xA9,0x84,0x92,0x5E,0x0F,0x77,0xA8,0x89,0x42,0xCF,0xC4,0x9D,0xF8,0xA3,0x2E,0xF0,0xF6,0x94,0xC2,0x09,0xFF,0x66,0xE8,0x41,0x8B,0xA6,0xE8,0x40,0x2B,0x4A,0xB4,0x75,0x3E,0xE6,0x92,0xAA,0x1D,0x84,0xAC,0x9C,0x20,0x8E,0xB0,0xB5,0xD0,0xC4,0xC8,0x35,0x95,0x06,0xAA,0x65,0xA9,0xD6,0x16,0x4C,0x94,0x3C,0x0C,0x4E,0x9C,0xDC,0xE6,0xA1,0x59,0x8C,0x60,0xB2,0xAB,0x10,0x30,0x44,0x4E,0x98,0xF8,0xE5,0xDA,0xB4,0xFA,0x6C,0x7E,0xB1,0xCA,0x97,0xC9,0xA9,0x08,0x88,0x66,0xC4,0x76,0x10,0xF5,0x1D,0x9E,0xF0,0x58,0x00,0xCE,0xE2,0x68,0x5D,0xD8,0x49,0xA1,0xD8,0xA6,0x07,0xC2,0x99,0x14,0xD2,0x23,0x2F,0xB2,0x80,0x98,0xF2,0x86,0xE6,0x60,0x62,0x18,0x07,0x19,0x11,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x75,0xB4,0xD8,0xF8,0x02,0x87,0x27,0xBA,0x44,0x67,0x4F,0xB8,0x1C,0x6E,0xEA,0x4A,0xA2,0x9F,0x5C,0x40,0xDC,0x33,0x09,0x54,0x45,0x62,0x2D,0x12,0xE1,0x3A,0x1A,0xC8,0xBF,0x14,0x18,0xDA,0x33,0xB4,0x7C,0x80,0x7A,0xAC,0x98,0x90,0x04,0xE0,0x01,0xFE,0x39,0xB6,0xCE,0xA0,0x63,0x98,0x01,0x36,0x15,0x76,0x78,0x8E,0xC1,0x80,0x65,0xE4,0x7D,0x66,0x58,0xF2,0xD9,0xE6,0x8B,0x78,0x74,0xB2,0x61,0xC4,0x01,0x76,0xD9,0xE0,0xBD,0x1C,0x1A,0x82,0x2F,0x66,0x89,0xC6,0xD8,0x3F,0xA4,0xE0,0x1C,0x81,0x49,0xB4,0x6A,0xCB,0x02,0xE8,0xAA,0x1E,0xB6,0xE0,0xFD,0xF3,0x90,0x6E,0x15,0xA5,0x07,0x84,0x79,0xAE,0xFF,0x6A,0x60,0x6D,0xB7,0x1C,0xA7,0x43,0x6A,0xFA,0x4D,0xBE,0x5E,0x4A,0xAF,0x36,0x4D,0x3C,0xA4,0xAB,0x6B,0x20,0x15,0x2C,0xA5,0x84,0x95,0x62,0xA2,0xB4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0x88,0xEC,0x1E,0xC9,0xE5,0xCC,0x1C,0xED,0x52,0xC0,0x54,0x7F,0xD5,0x0F,0x88,0x1A,0x0C,0x45,0x74,0x76,0xEF,0xD2,0x0C,0x9A,0x88,0x65,0x06,0xB0,0x14,0xE1,0x7A,0x64,0xEA,0xF9,0x82,0xCF,0xD6,0xF6,0x7A,0xE5,0xC8,0xBB,0xB2,0xFF,0xC2,0x3A,0xE6,0x34,0x99,0x01,0x42,0x69,0x4C,0x35,0x70,0xC6,0x0D,0x06,0xB6,0xF2,0x16,0xCE,0x40,0xD7,0x47,0x29,0x80,0x71,0x2D,0x1B,0x6A,0xD5,0xAA,0x16,0x60,0xB7,0xA6,0x8D,0x72,0xB7,0xC7,0x00,0xD0,0x1A,0xE9,0xC5,0x42,0x8F,0x3B,0x65,0x78,0xA8,0x60,0xA0,0x54,0x66,0xCD,0xFC,0xF4,0x4F,0xFD,0x26,0xC4,0x29,0x8B,0xC1,0xE8,0xB8,0x98,0x06,0x34,0x6D,0x64,0x83,0x5E,0x27,0x6C,0xDB,0x84,0xBC,0x5B,0x8C,0xE6,0x90,0x12,0x2D,0xB8,0x22,0x6B,0x0A,0x3E,0x62,0xFC,0xD9,0x82,0x50,0xAB,0x3F,0x58,0x78,0xE4,0xA5,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x5D,0x9D,0x8D,0x0C,0x0C,0x50,0x2C,0x0E,0x4E,0x68,0x0E,0x5A,0x3C,0xA4,0x33,0x94,0x73,0x11,0xC8,0x6A,0x0E,0x11,0xFF,0x58,0x22,0x67,0x95,0x1C,0x33,0x51,0x83,0x14,0xC5,0x28,0xF9,0xAC,0xF9,0x37,0x36,0x4C,0x8B,0x20,0x59,0xCE,0x10,0xB2,0xF7,0xE8,0x59,0x3C,0xD4,0xFC,0x59,0x65,0xC0,0xB8,0x22,0x06,0xEE,0xD2,0x18,0x1B,0x43,0xA4,0x1C,0x91,0xA1,0x98,0x4B,0x06,0xA3,0xBE,0x2B,0x6D,0x1A,0xF0,0xD7,0x0D,0x3B,0x24,0xEA,0x74,0x9D,0x82,0xC5,0xCA,0x71,0x0A,0xB0,0x4B,0xEE,0x1A,0x00,0x49,0x67,0xA0,0x93,0x97,0x66,0x32,0x49,0x32,0x2C,0xA8,0xF9,0xAE,0xA7,0xBE,0xE3,0xD8,0x7F,0x48,0x81,0x8B,0x5C,0xF6,0xC4,0x45,0x16,0x52,0xDC,0x6E,0x99,0xB2,0x5D,0x7B,0xC7,0xE8,0x42,0x62,0xAF,0x7A,0x26,0xFA,0x5F,0xEC,0xF9,0x4C,0x60,0x32,0xB9,0x73,0x98,0x5E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xEE,0x34,0x3B,0xE4,0xEA,0x19,0xB2,0xC0,0xBA,0x24,0x95,0x08,0x7C,0x60,0xFB,0x44,0x66,0x1A,0x98,0x6A,0x1F,0x4E,0xA1,0x9C,0x56,0x50,0x67,0xC8,0x09,0x04,0x89,0xAC,0x43,0x9E,0x9C,0x36,0x0B,0x99,0x11,0xF4,0xAD,0x16,0x0A,0xF0,0x61,0xD2,0x3E,0xDE,0xB0,0x12,0xD0,0xF6,0x2E,0xCA,0xF6,0x6A,0x4B,0x31,0xF3,0xD6,0x02,0xF8,0xD6,0x40,0x80,0xA0,0xED,0x40,0x52,0x56,0x7D,0x7C,0xEE,0xD6,0x5C,0xBC,0xC7,0x49,0x80,0x6E,0xB6,0x1B,0x55,0x4A,0x44,0x4D,0x14,0x6A,0x62,0x6C,0x13,0xB8,0x21,0x3E,0x42,0xA4,0xEF,0x7B,0xF2,0x82,0x2E,0xB3,0xA4,0x22,0x16,0xE1,0xBB,0x9E,0xF6,0x24,0x92,0x1C,0x45,0xA5,0x37,0x3C,0x6F,0x57,0x7D,0xA4,0xBB,0x5E,0xA8,0xDE,0x85,0xFB,0xD1,0x42,0xE6,0x2A,0x5F,0x74,0x2F,0x3D,0x04,0x2A,0x41,0x78,0xD6,0xE6,0x93,0x9E,0x75,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x36,0xAF,0xB0,0x2C,0x4F,0x28,0x9E,0x6A,0x44,0xEC,0xB9,0x42,0x0D,0xEB,0x01,0xE2,0xB4,0x9C,0x1C,0xD6,0x85,0xDE,0x37,0x12,0x92,0x2A,0xB0,0x34,0x5F,0x81,0x2E,0xD8,0x1B,0x7B,0xDA,0x5E,0x49,0xA1,0x59,0x18,0x1F,0xC5,0xE3,0x60,0x5A,0x4D,0x06,0xB8,0xD2,0x03,0x6F,0x74,0xB8,0x7E,0x53,0x56,0xBB,0xC0,0x60,0xD8,0xF2,0x0C,0x2B,0x38,0xE7,0x68,0xA7,0x6A,0x86,0x3C,0x2D,0x38,0x13,0xB0,0xBA,0xF4,0xB2,0xEE,0xCB,0xC8,0x23,0x8C,0x23,0x3E,0x4F,0x25,0x29,0xBA,0xFF,0x65,0xB3,0x16,0x00,0xA9,0x4C,0x04,0x3D,0xB3,0x8A,0xF8,0x32,0xE0,0x5B,0x4A,0x5C,0x79,0xE0,0x66,0x70,0xD4,0x81,0x0E,0x7E,0x13,0x31,0x36,0x73,0xD9,0x1D,0x28,0xC9,0x60,0x5D,0x04,0x26,0x26,0x28,0x0C,0x73,0xF3,0x6B,0x60,0xBB,0x07,0x57,0xEE,0xAB,0x11,0x33,0xFE,0x4E,0xF6,0x79,0xDA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x83,0x96,0x0C,0x2A,0xE6,0xED,0xA8,0x1E,0x58,0x80,0x30,0x60,0xCB,0xD2,0xF5,0x54,0xC9,0xF1,0x37,0x0A,0x24,0x71,0xD0,0xBC,0x51,0x70,0x93,0x12,0x43,0x84,0xE4,0x5E,0x2E,0xAA,0xCE,0x64,0x18,0x82,0x3B,0x1C,0xBB,0x23,0xC9,0x04,0x73,0xDA,0x81,0xFA,0xA1,0xF6,0xDE,0xDA,0x9A,0x7B,0xDA,0x52,0x2D,0x00,0xEB,0xCC,0x3D,0xA3,0xB0,0x42,0xAF,0x4F,0x12,0xF8,0x66,0x4B,0x53,0x6C,0x7F,0x04,0xB2,0xF0,0xAF,0xC9,0xD9,0x68,0xDE,0x11,0xEA,0x04,0x08,0x74,0xFE,0xC6,0x06,0x14,0xEF,0x08,0xD1,0xE9,0xBF,0x1E,0x53,0xCB,0xF9,0xD6,0xED,0x03,0x64,0x26,0xB0,0xD4,0x50,0xF4,0x3D,0xB2,0xD3,0x74,0x8C,0x97,0x96,0x2E,0x68,0x04,0x94,0xD0,0xAF,0x7B,0xC0,0x7E,0xA9,0xC6,0x32,0x94,0x80,0xC8,0x67,0x5E,0x20,0x5E,0x7F,0x8A,0x07,0x6A,0x1F,0x5C,0xCD,0xBB,0xAF,0x2C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x40,0xDF,0x23,0xA8,0x4B,0x37,0x90,0x62,0x9E,0xB2,0x67,0xB4,0xE2,0xEA,0x3B,0xAC,0xFC,0xF2,0x5D,0x84,0x27,0xCB,0x49,0x9A,0x5F,0xCC,0x7D,0x78,0x26,0x3B,0x7D,0xF0,0xC9,0x34,0xB2,0x02,0x83,0x08,0x1A,0x98,0x62,0x61,0xFA,0xC0,0xAF,0x0A,0x20,0x38,0xA2,0x60,0x9A,0x86,0xF4,0x37,0xBB,0xAA,0xE7,0x36,0x78,0xAC,0xDD,0xC8,0x02,0xFA,0x63,0x69,0x93,0x66,0xC3,0x09,0xF9,0xEE,0x7B,0x4B,0x2D,0x30,0xC6,0x48,0xA7,0xA8,0x42,0x26,0x0D,0xFC,0xD1,0x9B,0x90,0x7C,0xB6,0x74,0x61,0x14,0x76,0xEE,0xC2,0x60,0x58,0x36,0x86,0xAC,0xCA,0x4C,0x27,0x64,0x33,0x38,0x3F,0x34,0xB1,0xE2,0xC2,0x68,0xC3,0x1A,0x1D,0x2C,0x4D,0x47,0xFB,0x54,0x46,0xCF,0xFF,0x64,0xBC,0x3B,0x59,0x6C,0x28,0x53,0xAC,0xD8,0x8E,0x1E,0x2D,0x30,0x0D,0xE4,0x74,0x58,0xAC,0xE5,0x21,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x25,0xA2,0xD6,0xC2,0x28,0x99,0x86,0xE0,0xF5,0xE2,0x2E,0x60,0xA1,0x25,0x87,0x22,0xF1,0x93,0x13,0x48,0x5E,0x0E,0xB4,0x9C,0x65,0x0B,0xA9,0x4A,0x32,0x2D,0x50,0x5E,0xA1,0x8B,0xA9,0xB6,0x99,0x0D,0xC4,0xB4,0x47,0x07,0xEE,0x54,0x89,0x4E,0xF3,0x76,0x8B,0x5B,0xF5,0x8A,0xF0,0x67,0x45,0xE2,0xE7,0xA0,0xA4,0xCE,0xE5,0xD7,0x82,0xB0,0xAE,0xCB,0xF9,0x5C,0x73,0xF8,0x36,0x6C,0x92,0x02,0x32,0xC2,0xE5,0x47,0x37,0x90,0x02,0x56,0x16,0xFC,0xA0,0x74,0xEF,0xBA,0x87,0x1C,0x97,0x8E,0x66,0xC7,0xA3,0xA2,0x87,0xB7,0xA3,0x66,0x3A,0x89,0xDA,0xB4,0x82,0xD9,0xF4,0xE8,0x55,0x43,0x2A,0xE8,0xD1,0x4A,0x01,0x14,0x10,0xC1,0x0C,0x7E,0x52,0xEA,0x88,0xF6,0xDA,0x2B,0x93,0x92,0x62,0x2D,0xDF,0x30,0x09,0xF0,0x05,0xE8,0x63,0xFB,0xE1,0x8C,0x94,0x67,0x64,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x96,0xDF,0x8B,0xE0,0x90,0x80,0x3B,0xD8,0xC7,0x29,0xF7,0xE6,0x53,0x45,0x18,0x20,0xF2,0x8C,0x8D,0x6A,0xAA,0xE9,0xCC,0x98,0x4C,0x4B,0x9B,0xAC,0x81,0x7C,0x2D,0x16,0x48,0x6C,0x43,0xA8,0xA3,0xB1,0xFD,0x76,0x74,0xE6,0xD9,0x36,0x4E,0x44,0x22,0x6C,0x33,0x02,0xD5,0xA6,0xD6,0x91,0x23,0xDC,0x31,0x7B,0xCB,0xA6,0x18,0x19,0x8C,0xFA,0xA6,0x35,0xFC,0x2E,0x01,0xD5,0x7E,0x9C,0xC6,0xC6,0xB3,0x02,0xBD,0xBB,0x5C,0x0C,0xCE,0x52,0x56,0xD4,0x53,0x2B,0x63,0x78,0x05,0x40,0x2C,0xAA,0x25,0x63,0xF0,0xBC,0x94,0x2E,0x3C,0xF2,0x45,0x67,0x98,0x32,0xC7,0xFE,0x9C,0x36,0x7E,0xC6,0x00,0x18,0x4D,0x9C,0x69,0x30,0xA6,0x56,0x0C,0xE4,0xE6,0x08,0x92,0x4C,0x09,0x2E,0x23,0x6E,0x29,0x43,0xED,0x5A,0x2D,0x58,0xB2,0xFE,0xC7,0x18,0xCB,0x90,0x17,0x3D,0x24,0x4C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x32,0x56,0x28,0x64,0x22,0x8E,0xEC,0xB0,0xEB,0x21,0xBD,0x5A,0xCD,0x3A,0x7D,0xA8,0xAD,0xA9,0x84,0x92,0x5E,0x0F,0x77,0xA8,0x89,0x42,0xCF,0xC4,0x9D,0xF8,0xA3,0x2E,0xF0,0xF6,0x94,0xC2,0x09,0xFF,0x66,0xE8,0x41,0x8B,0xA6,0xE8,0x40,0x2B,0x4A,0xB4,0x75,0x3E,0xE6,0x92,0xAA,0x1D,0x84,0xAC,0x9C,0x20,0x8E,0xB0,0xB5,0xD0,0xC4,0xC8,0x35,0x95,0x06,0xAA,0x65,0xA9,0xD6,0x16,0x4C,0x94,0x3C,0x0C,0x4E,0x9C,0xDC,0xE6,0xA1,0x59,0x8C,0x60,0xB2,0xAB,0x10,0x30,0x44,0x4E,0x98,0xF8,0xE5,0xDA,0xB4,0xFA,0x6C,0x7E,0xB1,0xCA,0x97,0xC9,0xA9,0x08,0x88,0x66,0xC4,0x76,0x10,0xF5,0x1D,0x9E,0xF0,0x58,0x00,0xCE,0xE2,0x68,0x5D,0xD8,0x49,0xA1,0xD8,0xA6,0x07,0xC2,0x99,0x14,0xD2,0x23,0x2F,0xB2,0x80,0x98,0xF2,0x86,0xE6,0x60,0x62,0x18,0x07,0x19,0x11,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x75,0xB4,0xD8,0xF8,0x02,0x87,0x27,0xBA,0x44,0x67,0x4F,0xB8,0x1C,0x6E,0xEA,0x4A,0xA2,0x9F,0x5C,0x40,0xDC,0x33,0x09,0x54,0x45,0x62,0x2D,0x12,0xE1,0x3A,0x1A,0xC8,0xBF,0x14,0x18,0xDA,0x33,0xB4,0x7C,0x80,0x7A,0xAC,0x98,0x90,0x04,0xE0,0x01,0xFE,0x39,0xB6,0xCE,0xA0,0x63,0x98,0x01,0x36,0x15,0x76,0x78,0x8E,0xC1,0x80,0x65,0xE4,0x7D,0x66,0x58,0xF2,0xD9,0xE6,0x8B,0x78,0x74,0xB2,0x61,0xC4,0x01,0x76,0xD9,0xE0,0xBD,0x1C,0x1A,0x82,0x2F,0x66,0x89,0xC6,0xD8,0x3F,0xA4,0xE0,0x1C,0x81,0x49,0xB4,0x6A,0xCB,0x02,0xE8,0xAA,0x1E,0xB6,0xE0,0xFD,0xF3,0x90,0x6E,0x15,0xA5,0x07,0x84,0x79,0xAE,0xFF,0x6A,0x60,0x6D,0xB7,0x1C,0xA7,0x43,0x6A,0xFA,0x4D,0xBE,0x5E,0x4A,0xAF,0x36,0x4D,0x3C,0xA4,0xAB,0x6B,0x20,0x15,0x2C,0xA5,0x84,0x95,0x62,0xA2,0xB4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0x88,0xEC,0x1E,0xC9,0xE5,0xCC,0x1C,0xED,0x52,0xC0,0x54,0x7F,0xD5,0x0F,0x88,0x1A,0x0C,0x45,0x74,0x76,0xEF,0xD2,0x0C,0x9A,0x88,0x65,0x06,0xB0,0x14,0xE1,0x7A,0x64,0xEA,0xF9,0x82,0xCF,0xD6,0xF6,0x7A,0xE5,0xC8,0xBB,0xB2,0xFF,0xC2,0x3A,0xE6,0x34,0x99,0x01,0x42,0x69,0x4C,0x35,0x70,0xC6,0x0D,0x06,0xB6,0xF2,0x16,0xCE,0x40,0xD7,0x47,0x29,0x80,0x71,0x2D,0x1B,0x6A,0xD5,0xAA,0x16,0x60,0xB7,0xA6,0x8D,0x72,0xB7,0xC7,0x00,0xD0,0x1A,0xE9,0xC5,0x42,0x8F,0x3B,0x65,0x78,0xA8,0x60,0xA0,0x54,0x66,0xCD,0xFC,0xF4,0x4F,0xFD,0x26,0xC4,0x29,0x8B,0xC1,0xE8,0xB8,0x98,0x06,0x34,0x6D,0x64,0x83,0x5E,0x27,0x6C,0xDB,0x84,0xBC,0x5B,0x8C,0xE6,0x90,0x12,0x2D,0xB8,0x22,0x6B,0x0A,0x3E,0x62,0xFC,0xD9,0x82,0x50,0xAB,0x3F,0x58,0x78,0xE4,0xA5,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x5D,0x9D,0x8D,0x0C,0x0C,0x50,0x2C,0x0E,0x4E,0x68,0x0E,0x5A,0x3C,0xA4,0x33,0x94,0x73,0x11,0xC8,0x6A,0x0E,0x11,0xFF,0x58,0x22,0x67,0x95,0x1C,0x33,0x51,0x83,0x14,0xC5,0x28,0xF9,0xAC,0xF9,0x37,0x36,0x4C,0x8B,0x20,0x59,0xCE,0x10,0xB2,0xF7,0xE8,0x59,0x3C,0xD4,0xFC,0x59,0x65,0xC0,0xB8,0x22,0x06,0xEE,0xD2,0x18,0x1B,0x43,0xA4,0x1C,0x91,0xA1,0x98,0x4B,0x06,0xA3,0xBE,0x2B,0x6D,0x1A,0xF0,0xD7,0x0D,0x3B,0x24,0xEA,0x74,0x9D,0x82,0xC5,0xCA,0x71,0x0A,0xB0,0x4B,0xEE,0x1A,0x00,0x49,0x67,0xA0,0x93,0x97,0x66,0x32,0x49,0x32,0x2C,0xA8,0xF9,0xAE,0xA7,0xBE,0xE3,0xD8,0x7F,0x48,0x81,0x8B,0x5C,0xF6,0xC4,0x45,0x16,0x52,0xDC,0x6E,0x99,0xB2,0x5D,0x7B,0xC7,0xE8,0x42,0x62,0xAF,0x7A,0x26,0xFA,0x5F,0xEC,0xF9,0x4C,0x60,0x32,0xB9,0x73,0x98,0x5E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xEE,0x34,0x3B,0xE4,0xEA,0x19,0xB2,0xC0,0xBA,0x24,0x95,0x08,0x7C,0x60,0xFB,0x44,0x66,0x1A,0x98,0x6A,0x1F,0x4E,0xA1,0x9C,0x56,0x50,0x67,0xC8,0x09,0x04,0x89,0xAC,0x43,0x9E,0x9C,0x36,0x0B,0x99,0x11,0xF4,0xAD,0x16,0x0A,0xF0,0x61,0xD2,0x3E,0xDE,0xB0,0x12,0xD0,0xF6,0x2E,0xCA,0xF6,0x6A,0x4B,0x31,0xF3,0xD6,0x02,0xF8,0xD6,0x40,0x80,0xA0,0xED,0x40,0x52,0x56,0x7D,0x7C,0xEE,0xD6,0x5C,0xBC,0xC7,0x49,0x80,0x6E,0xB6,0x1B,0x55,0x4A,0x44,0x4D,0x14,0x6A,0x62,0x6C,0x13,0xB8,0x21,0x3E,0x42,0xA4,0xEF,0x7B,0xF2,0x82,0x2E,0xB3,0xA4,0x22,0x16,0xE1,0xBB,0x9E,0xF6,0x24,0x92,0x1C,0x45,0xA5,0x37,0x3C,0x6F,0x57,0x7D,0xA4,0xBB,0x5E,0xA8,0xDE,0x85,0xFB,0xD1,0x42,0xE6,0x2A,0x5F,0x74,0x2F,0x3D,0x04,0x2A,0x41,0x78,0xD6,0xE6,0x93,0x9E,0x75,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x36,0xAF,0xB0,0x2C,0x4F,0x28,0x9E,0x6A,0x44,0xEC,0xB9,0x42,0x0D,0xEB,0x01,0xE2,0xB4,0x9C,0x1C,0xD6,0x85,0xDE,0x37,0x12,0x92,0x2A,0xB0,0x34,0x5F,0x81,0x2E,0xD8,0x1B,0x7B,0xDA,0x5E,0x49,0xA1,0x59,0x18,0x1F,0xC5,0xE3,0x60,0x5A,0x4D,0x06,0xB8,0xD2,0x03,0x6F,0x74,0xB8,0x7E,0x53,0x56,0xBB,0xC0,0x60,0xD8,0xF2,0x0C,0x2B,0x38,0xE7,0x68,0xA7,0x6A,0x86,0x3C,0x2D,0x38,0x13,0xB0,0xBA,0xF4,0xB2,0xEE,0xCB,0xC8,0x23,0x8C,0x23,0x3E,0x4F,0x25,0x29,0xBA,0xFF,0x65,0xB3,0x16,0x00,0xA9,0x4C,0x04,0x3D,0xB3,0x8A,0xF8,0x32,0xE0,0x5B,0x4A,0x5C,0x79,0xE0,0x66,0x70,0xD4,0x81,0x0E,0x7E,0x13,0x31,0x36,0x73,0xD9,0x1D,0x28,0xC9,0x60,0x5D,0x04,0x26,0x26,0x28,0x0C,0x73,0xF3,0x6B,0x60,0xBB,0x07,0x57,0xEE,0xAB,0x11,0x33,0xFE,0x4E,0xF6,0x79,0xDA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x83,0x96,0x0C,0x2A,0xE6,0xED,0xA8,0x1E,0x58,0x80,0x30,0x60,0xCB,0xD2,0xF5,0x54,0xC9,0xF1,0x37,0x0A,0x24,0x71,0xD0,0xBC,0x51,0x70,0x93,0x12,0x43,0x84,0xE4,0x5E,0x2E,0xAA,0xCE,0x64,0x18,0x82,0x3B,0x1C,0xBB,0x23,0xC9,0x04,0x73,0xDA,0x81,0xFA,0xA1,0xF6,0xDE,0xDA,0x9A,0x7B,0xDA,0x52,0x2D,0x00,0xEB,0xCC,0x3D,0xA3,0xB0,0x42,0xAF,0x4F,0x12,0xF8,0x66,0x4B,0x53,0x6C,0x7F,0x04,0xB2,0xF0,0xAF,0xC9,0xD9,0x68,0xDE,0x11,0xEA,0x04,0x08,0x74,0xFE,0xC6,0x06,0x14,0xEF,0x08,0xD1,0xE9,0xBF,0x1E,0x53,0xCB,0xF9,0xD6,0xED,0x03,0x64,0x26,0xB0,0xD4,0x50,0xF4,0x3D,0xB2,0xD3,0x74,0x8C,0x97,0x96,0x2E,0x68,0x04,0x94,0xD0,0xAF,0x7B,0xC0,0x7E,0xA9,0xC6,0x32,0x94,0x80,0xC8,0x67,0x5E,0x20,0x5E,0x7F,0x8A,0x07,0x6A,0x1F,0x5C,0xCD,0xBB,0xAF,0x2C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x40,0xDF,0x23,0xA8,0x4B,0x37,0x90,0x62,0x9E,0xB2,0x67,0xB4,0xE2,0xEA,0x3B,0xAC,0xFC,0xF2,0x5D,0x84,0x27,0xCB,0x49,0x9A,0x5F,0xCC,0x7D,0x78,0x26,0x3B,0x7D,0xF0,0xC9,0x34,0xB2,0x02,0x83,0x08,0x1A,0x98,0x62,0x61,0xFA,0xC0,0xAF,0x0A,0x20,0x38,0xA2,0x60,0x9A,0x86,0xF4,0x37,0xBB,0xAA,0xE7,0x36,0x78,0xAC,0xDD,0xC8,0x02,0xFA,0x63,0x69,0x93,0x66,0xC3,0x09,0xF9,0xEE,0x7B,0x4B,0x2D,0x30,0xC6,0x48,0xA7,0xA8,0x42,0x26,0x0D,0xFC,0xD1,0x9B,0x90,0x7C,0xB6,0x74,0x61,0x14,0x76,0xEE,0xC2,0x60,0x58,0x36,0x86,0xAC,0xCA,0x4C,0x27,0x64,0x33,0x38,0x3F,0x34,0xB1,0xE2,0xC2,0x68,0xC3,0x1A,0x1D,0x2C,0x4D,0x47,0xFB,0x54,0x46,0xCF,0xFF,0x64,0xBC,0x3B,0x59,0x6C,0x28,0x53,0xAC,0xD8,0x8E,0x1E,0x2D,0x30,0x0D,0xE4,0x74,0x58,0xAC,0xE5,0x21,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x25,0xA2,0xD6,0xC2,0x28,0x99,0x86,0xE0,0xF5,0xE2,0x2E,0x60,0xA1,0x25,0x87,0x22,0xF1,0x93,0x13,0x48,0x5E,0x0E,0xB4,0x9C,0x65,0x0B,0xA9,0x4A,0x32,0x2D,0x50,0x5E,0xA1,0x8B,0xA9,0xB6,0x99,0x0D,0xC4,0xB4,0x47,0x07,0xEE,0x54,0x89,0x4E,0xF3,0x76,0x8B,0x5B,0xF5,0x8A,0xF0,0x67,0x45,0xE2,0xE7,0xA0,0xA4,0xCE,0xE5,0xD7,0x82,0xB0,0xAE,0xCB,0xF9,0x5C,0x73,0xF8,0x36,0x6C,0x92,0x02,0x32,0xC2,0xE5,0x47,0x37,0x90,0x02,0x56,0x16,0xFC,0xA0,0x74,0xEF,0xBA,0x87,0x1C,0x97,0x8E,0x66,0xC7,0xA3,0xA2,0x87,0xB7,0xA3,0x66,0x3A,0x89,0xDA,0xB4,0x82,0xD9,0xF4,0xE8,0x55,0x43,0x2A,0xE8,0xD1,0x4A,0x01,0x14,0x10,0xC1,0x0C,0x7E,0x52,0xEA,0x88,0xF6,0xDA,0x2B,0x93,0x92,0x62,0x2D,0xDF,0x30,0x09,0xF0,0x05,0xE8,0x63,0xFB,0xE1,0x8C,0x94,0x67,0x64,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x96,0xDF,0x8B,0xE0,0x90,0x80,0x3B,0xD8,0xC7,0x29,0xF7,0xE6,0x53,0x45,0x18,0x20,0xF2,0x8C,0x8D,0x6A,0xAA,0xE9,0xCC,0x98,0x4C,0x4B,0x9B,0xAC,0x81,0x7C,0x2D,0x16,0x48,0x6C,0x43,0xA8,0xA3,0xB1,0xFD,0x76,0x74,0xE6,0xD9,0x36,0x4E,0x44,0x22,0x6C,0x33,0x02,0xD5,0xA6,0xD6,0x91,0x23,0xDC,0x31,0x7B,0xCB,0xA6,0x18,0x19,0x8C,0xFA,0xA6,0x35,0xFC,0x2E,0x01,0xD5,0x7E,0x9C,0xC6,0xC6,0xB3,0x02,0xBD,0xBB,0x5C,0x0C,0xCE,0x52,0x56,0xD4,0x53,0x2B,0x63,0x78,0x05,0x40,0x2C,0xAA,0x25,0x63,0xF0,0xBC,0x94,0x2E,0x3C,0xF2,0x45,0x67,0x98,0x32,0xC7,0xFE,0x9C,0x36,0x7E,0xC6,0x00,0x18,0x4D,0x9C,0x69,0x30,0xA6,0x56,0x0C,0xE4,0xE6,0x08,0x92,0x4C,0x09,0x2E,0x23,0x6E,0x29,0x43,0xED,0x5A,0x2D,0x58,0xB2,0xFE,0xC7,0x18,0xCB,0x90,0x17,0x3D,0x24,0x4C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x32,0x56,0x28,0x64,0x22,0x8E,0xEC,0xB0,0xEB,0x21,0xBD,0x5A,0xCD,0x3A,0x7D,0xA8,0xAD,0xA9,0x84,0x92,0x5E,0x0F,0x77,0xA8,0x89,0x42,0xCF,0xC4,0x9D,0xF8,0xA3,0x2E,0xF0,0xF6,0x94,0xC2,0x09,0xFF,0x66,0xE8,0x41,0x8B,0xA6,0xE8,0x40,0x2B,0x4A,0xB4,0x75,0x3E,0xE6,0x92,0xAA,0x1D,0x84,0xAC,0x9C,0x20,0x8E,0xB0,0xB5,0xD0,0xC4,0xC8,0x35,0x95,0x06,0xAA,0x65,0xA9,0xD6,0x16,0x4C,0x94,0x3C,0x0C,0x4E,0x9C,0xDC,0xE6,0xA1,0x59,0x8C,0x60,0xB2,0xAB,0x10,0x30,0x44,0x4E,0x98,0xF8,0xE5,0xDA,0xB4,0xFA,0x6C,0x7E,0xB1,0xCA,0x97,0xC9,0xA9,0x08,0x88,0x66,0xC4,0x76,0x10,0xF5,0x1D,0x9E,0xF0,0x58,0x00,0xCE,0xE2,0x68,0x5D,0xD8,0x49,0xA1,0xD8,0xA6,0x07,0xC2,0x99,0x14,0xD2,0x23,0x2F,0xB2,0x80,0x98,0xF2,0x86,0xE6,0x60,0x62,0x18,0x07,0x19,0x11,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x75,0xB4,0xD8,0xF8,0x02,0x87,0x27,0xBA,0x44,0x67,0x4F,0xB8,0x1C,0x6E,0xEA,0x4A,0xA2,0x9F,0x5C,0x40,0xDC,0x33,0x09,0x54,0x45,0x62,0x2D,0x12,0xE1,0x3A,0x1A,0xC8,0xBF,0x14,0x18,0xDA,0x33,0xB4,0x7C,0x80,0x7A,0xAC,0x98,0x90,0x04,0xE0,0x01,0xFE,0x39,0xB6,0xCE,0xA0,0x63,0x98,0x01,0x36,0x15,0x76,0x78,0x8E,0xC1,0x80,0x65,0xE4,0x7D,0x66,0x58,0xF2,0xD9,0xE6,0x8B,0x78,0x74,0xB2,0x61,0xC4,0x01,0x76,0xD9,0xE0,0xBD,0x1C,0x1A,0x82,0x2F,0x66,0x89,0xC6,0xD8,0x3F,0xA4,0xE0,0x1C,0x81,0x49,0xB4,0x6A,0xCB,0x02,0xE8,0xAA,0x1E,0xB6,0xE0,0xFD,0xF3,0x90,0x6E,0x15,0xA5,0x07,0x84,0x79,0xAE,0xFF,0x6A,0x60,0x6D,0xB7,0x1C,0xA7,0x43,0x6A,0xFA,0x4D,0xBE,0x5E,0x4A,0xAF,0x36,0x4D,0x3C,0xA4,0xAB,0x6B,0x20,0x15,0x2C,0xA5,0x84,0x95,0x62,0xA2,0xB4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0x88,0xEC,0x1E,0xC9,0xE5,0xCC,0x1C,0xED,0x52,0xC0,0x54,0x7F,0xD5,0x0F,0x88,0x1A,0x0C,0x45,0x74,0x76,0xEF,0xD2,0x0C,0x9A,0x88,0x65,0x06,0xB0,0x14,0xE1,0x7A,0x64,0xEA,0xF9,0x82,0xCF,0xD6,0xF6,0x7A,0xE5,0xC8,0xBB,0xB2,0xFF,0xC2,0x3A,0xE6,0x34,0x99,0x01,0x42,0x69,0x4C,0x35,0x70,0xC6,0x0D,0x06,0xB6,0xF2,0x16,0xCE,0x40,0xD7,0x47,0x29,0x80,0x71,0x2D,0x1B,0x6A,0xD5,0xAA,0x16,0x60,0xB7,0xA6,0x8D,0x72,0xB7,0xC7,0x00,0xD0,0x1A,0xE9,0xC5,0x42,0x8F,0x3B,0x65,0x78,0xA8,0x60,0xA0,0x54,0x66,0xCD,0xFC,0xF4,0x4F,0xFD,0x26,0xC4,0x29,0x8B,0xC1,0xE8,0xB8,0x98,0x06,0x34,0x6D,0x64,0x83,0x5E,0x27,0x6C,0xDB,0x84,0xBC,0x5B,0x8C,0xE6,0x90,0x12,0x2D,0xB8,0x22,0x6B,0x0A,0x3E,0x62,0xFC,0xD9,0x82,0x50,0xAB,0x3F,0x58,0x78,0xE4,0xA5,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x5D,0x9D,0x8D,0x0C,0x0C,0x50,0x2C,0x0E,0x4E,0x68,0x0E,0x5A,0x3C,0xA4,0x33,0x94,0x73,0x11,0xC8,0x6A,0x0E,0x11,0xFF,0x58,0x22,0x67,0x95,0x1C,0x33,0x51,0x83,0x14,0xC5,0x28,0xF9,0xAC,0xF9,0x37,0x36,0x4C,0x8B,0x20,0x59,0xCE,0x10,0xB2,0xF7,0xE8,0x59,0x3C,0xD4,0xFC,0x59,0x65,0xC0,0xB8,0x22,0x06,0xEE,0xD2,0x18,0x1B,0x43,0xA4,0x1C,0x91,0xA1,0x98,0x4B,0x06,0xA3,0xBE,0x2B,0x6D,0x1A,0xF0,0xD7,0x0D,0x3B,0x24,0xEA,0x74,0x9D,0x82,0xC5,0xCA,0x71,0x0A,0xB0,0x4B,0xEE,0x1A,0x00,0x49,0x67,0xA0,0x93,0x97,0x66,0x32,0x49,0x32,0x2C,0xA8,0xF9,0xAE,0xA7,0xBE,0xE3,0xD8,0x7F,0x48,0x81,0x8B,0x5C,0xF6,0xC4,0x45,0x16,0x52,0xDC,0x6E,0x99,0xB2,0x5D,0x7B,0xC7,0xE8,0x42,0x62,0xAF,0x7A,0x26,0xFA,0x5F,0xEC,0xF9,0x4C,0x60,0x32,0xB9,0x73,0x98,0x5E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xEE,0x34,0x3B,0xE4,0xEA,0x19,0xB2,0xC0,0xBA,0x24,0x95,0x08,0x7C,0x60,0xFB,0x44,0x66,0x1A,0x98,0x6A,0x1F,0x4E,0xA1,0x9C,0x56,0x50,0x67,0xC8,0x09,0x04,0x89,0xAC,0x43,0x9E,0x9C,0x36,0x0B,0x99,0x11,0xF4,0xAD,0x16,0x0A,0xF0,0x61,0xD2,0x3E,0xDE,0xB0,0x12,0xD0,0xF6,0x2E,0xCA,0xF6,0x6A,0x4B,0x31,0xF3,0xD6,0x02,0xF8,0xD6,0x40,0x80,0xA0,0xED,0x40,0x52,0x56,0x7D,0x7C,0xEE,0xD6,0x5C,0xBC,0xC7,0x49,0x80,0x6E,0xB6,0x1B,0x55,0x4A,0x44,0x4D,0x14,0x6A,0x62,0x6C,0x13,0xB8,0x21,0x3E,0x42,0xA4,0xEF,0x7B,0xF2,0x82,0x2E,0xB3,0xA4,0x22,0x16,0xE1,0xBB,0x9E,0xF6,0x24,0x92,0x1C,0x45,0xA5,0x37,0x3C,0x6F,0x57,0x7D,0xA4,0xBB,0x5E,0xA8,0xDE,0x85,0xFB,0xD1,0x42,0xE6,0x2A,0x5F,0x74,0x2F,0x3D,0x04,0x2A,0x41,0x78,0xD6,0xE6,0x93,0x9E,0x75,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x36,0xAF,0xB0,0x2C,0x4F,0x28,0x9E,0x6A,0x44,0xEC,0xB9,0x42,0x0D,0xEB,0x01,0xE2,0xB4,0x9C,0x1C,0xD6,0x85,0xDE,0x37,0x12,0x92,0x2A,0xB0,0x34,0x5F,0x81,0x2E,0xD8,0x1B,0x7B,0xDA,0x5E,0x49,0xA1,0x59,0x18,0x1F,0xC5,0xE3,0x60,0x5A,0x4D,0x06,0xB8,0xD2,0x03,0x6F,0x74,0xB8,0x7E,0x53,0x56,0xBB,0xC0,0x60,0xD8,0xF2,0x0C,0x2B,0x38,0xE7,0x68,0xA7,0x6A,0x86,0x3C,0x2D,0x38,0x13,0xB0,0xBA,0xF4,0xB2,0xEE,0xCB,0xC8,0x23,0x8C,0x23,0x3E,0x4F,0x25,0x29,0xBA,0xFF,0x65,0xB3,0x16,0x00,0xA9,0x4C,0x04,0x3D,0xB3,0x8A,0xF8,0x32,0xE0,0x5B,0x4A,0x5C,0x79,0xE0,0x66,0x70,0xD4,0x81,0x0E,0x7E,0x13,0x31,0x36,0x73,0xD9,0x1D,0x28,0xC9,0x60,0x5D,0x04,0x26,0x26,0x28,0x0C,0x73,0xF3,0x6B,0x60,0xBB,0x07,0x57,0xEE,0xAB,0x11,0x33,0xFE,0x4E,0xF6,0x79,0xDA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x83,0x96,0x0C,0x2A,0xE6,0xED,0xA8,0x1E,0x58,0x80,0x30,0x60,0xCB,0xD2,0xF5,0x54,0xC9,0xF1,0x37,0x0A,0x24,0x71,0xD0,0xBC,0x51,0x70,0x93,0x12,0x43,0x84,0xE4,0x5E,0x2E,0xAA,0xCE,0x64,0x18,0x82,0x3B,0x1C,0xBB,0x23,0xC9,0x04,0x73,0xDA,0x81,0xFA,0xA1,0xF6,0xDE,0xDA,0x9A,0x7B,0xDA,0x52,0x2D,0x00,0xEB,0xCC,0x3D,0xA3,0xB0,0x42,0xAF,0x4F,0x12,0xF8,0x66,0x4B,0x53,0x6C,0x7F,0x04,0xB2,0xF0,0xAF,0xC9,0xD9,0x68,0xDE,0x11,0xEA,0x04,0x08,0x74,0xFE,0xC6,0x06,0x14,0xEF,0x08,0xD1,0xE9,0xBF,0x1E,0x53,0xCB,0xF9,0xD6,0xED,0x03,0x64,0x26,0xB0,0xD4,0x50,0xF4,0x3D,0xB2,0xD3,0x74,0x8C,0x97,0x96,0x2E,0x68,0x04,0x94,0xD0,0xAF,0x7B,0xC0,0x7E,0xA9,0xC6,0x32,0x94,0x80,0xC8,0x67,0x5E,0x20,0x5E,0x7F,0x8A,0x07,0x6A,0x1F,0x5C,0xCD,0xBB,0xAF,0x2C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x40,0xDF,0x23,0xA8,0x4B,0x37,0x90,0x62,0x9E,0xB2,0x67,0xB4,0xE2,0xEA,0x3B,0xAC,0xFC,0xF2,0x5D,0x84,0x27,0xCB,0x49,0x9A,0x5F,0xCC,0x7D,0x78,0x26,0x3B,0x7D,0xF0,0xC9,0x34,0xB2,0x02,0x83,0x08,0x1A,0x98,0x62,0x61,0xFA,0xC0,0xAF,0x0A,0x20,0x38,0xA2,0x60,0x9A,0x86,0xF4,0x37,0xBB,0xAA,0xE7,0x36,0x78,0xAC,0xDD,0xC8,0x02,0xFA,0x63,0x69,0x93,0x66,0xC3,0x09,0xF9,0xEE,0x7B,0x4B,0x2D,0x30,0xC6,0x48,0xA7,0xA8,0x42,0x26,0x0D,0xFC,0xD1,0x9B,0x90,0x7C,0xB6,0x74,0x61,0x14,0x76,0xEE,0xC2,0x60,0x58,0x36,0x86,0xAC,0xCA,0x4C,0x27,0x64,0x33,0x38,0x3F,0x34,0xB1,0xE2,0xC2,0x68,0xC3,0x1A,0x1D,0x2C,0x4D,0x47,0xFB,0x54,0x46,0xCF,0xFF,0x64,0xBC,0x3B,0x59,0x6C,0x28,0x53,0xAC,0xD8,0x8E,0x1E,0x2D,0x30,0x0D,0xE4,0x74,0x58,0xAC,0xE5,0x21,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x25,0xA2,0xD6,0xC2,0x28,0x99,0x86,0xE0,0xF5,0xE2,0x2E,0x60,0xA1,0x25,0x87,0x22,0xF1,0x93,0x13,0x48,0x5E,0x0E,0xB4,0x9C,0x65,0x0B,0xA9,0x4A,0x32,0x2D,0x50,0x5E,0xA1,0x8B,0xA9,0xB6,0x99,0x0D,0xC4,0xB4,0x47,0x07,0xEE,0x54,0x89,0x4E,0xF3,0x76,0x8B,0x5B,0xF5,0x8A,0xF0,0x67,0x45,0xE2,0xE7,0xA0,0xA4,0xCE,0xE5,0xD7,0x82,0xB0,0xAE,0xCB,0xF9,0x5C,0x73,0xF8,0x36,0x6C,0x92,0x02,0x32,0xC2,0xE5,0x47,0x37,0x90,0x02,0x56,0x16,0xFC,0xA0,0x74,0xEF,0xBA,0x87,0x1C,0x97,0x8E,0x66,0xC7,0xA3,0xA2,0x87,0xB7,0xA3,0x66,0x3A,0x89,0xDA,0xB4,0x82,0xD9,0xF4,0xE8,0x55,0x43,0x2A,0xE8,0xD1,0x4A,0x01,0x14,0x10,0xC1,0x0C,0x7E,0x52,0xEA,0x88,0xF6,0xDA,0x2B,0x93,0x92,0x62,0x2D,0xDF,0x30,0x09,0xF0,0x05,0xE8,0x63,0xFB,0xE1,0x8C,0x94,0x67,0x64,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x96,0xDF,0x8B,0xE0,0x90,0x80,0x3B,0xD8,0xC7,0x29,0xF7,0xE6,0x53,0x45,0x18,0x20,0xF2,0x8C,0x8D,0x6A,0xAA,0xE9,0xCC,0x98,0x4C,0x4B,0x9B,0xAC,0x81,0x7C,0x2D,0x16,0x48,0x6C,0x43,0xA8,0xA3,0xB1,0xFD,0x76,0x74,0xE6,0xD9,0x36,0x4E,0x44,0x22,0x6C,0x33,0x02,0xD5,0xA6,0xD6,0x91,0x23,0xDC,0x31,0x7B,0xCB,0xA6,0x18,0x19,0x8C,0xFA,0xA6,0x35,0xFC,0x2E,0x01,0xD5,0x7E,0x9C,0xC6,0xC6,0xB3,0x02,0xBD,0xBB,0x5C,0x0C,0xCE,0x52,0x56,0xD4,0x53,0x2B,0x63,0x78,0x05,0x40,0x2C,0xAA,0x25,0x63,0xF0,0xBC,0x94,0x2E,0x3C,0xF2,0x45,0x67,0x98,0x32,0xC7,0xFE,0x9C,0x36,0x7E,0xC6,0x00,0x18,0x4D,0x9C,0x69,0x30,0xA6,0x56,0x0C,0xE4,0xE6,0x08,0x92,0x4C,0x09,0x2E,0x23,0x6E,0x29,0x43,0xED,0x5A,0x2D,0x58,0xB2,0xFE,0xC7,0x18,0xCB,0x90,0x17,0x3D,0x24,0x4C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x32,0x56,0x28,0x64,0x22,0x8E,0xEC,0xB0,0xEB,0x21,0xBD,0x5A,0xCD,0x3A,0x7D,0xA8,0xAD,0xA9,0x84,0x92,0x5E,0x0F,0x77,0xA8,0x89,0x42,0xCF,0xC4,0x9D,0xF8,0xA3,0x2E,0xF0,0xF6,0x94,0xC2,0x09,0xFF,0x66,0xE8,0x41,0x8B,0xA6,0xE8,0x40,0x2B,0x4A,0xB4,0x75,0x3E,0xE6,0x92,0xAA,0x1D,0x84,0xAC,0x9C,0x20,0x8E,0xB0,0xB5,0xD0,0xC4,0xC8,0x35,0x95,0x06,0xAA,0x65,0xA9,0xD6,0x16,0x4C,0x94,0x3C,0x0C,0x4E,0x9C,0xDC,0xE6,0xA1,0x59,0x8C,0x60,0xB2,0xAB,0x10,0x30,0x44,0x4E,0x98,0xF8,0xE5,0xDA,0xB4,0xFA,0x6C,0x7E,0xB1,0xCA,0x97,0xC9,0xA9,0x08,0x88,0x66,0xC4,0x76,0x10,0xF5,0x1D,0x9E,0xF0,0x58,0x00,0xCE,0xE2,0x68,0x5D,0xD8,0x49,0xA1,0xD8,0xA6,0x07,0xC2,0x99,0x14,0xD2,0x23,0x2F,0xB2,0x80,0x98,0xF2,0x86,0xE6,0x60,0x62,0x18,0x07,0x19,0x11,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x75,0xB4,0xD8,0xF8,0x02,0x87,0x27,0xBA,0x44,0x67,0x4F,0xB8,0x1C,0x6E,0xEA,0x4A,0xA2,0x9F,0x5C,0x40,0xDC,0x33,0x09,0x54,0x45,0x62,0x2D,0x12,0xE1,0x3A,0x1A,0xC8,0xBF,0x14,0x18,0xDA,0x33,0xB4,0x7C,0x80,0x7A,0xAC,0x98,0x90,0x04,0xE0,0x01,0xFE,0x39,0xB6,0xCE,0xA0,0x63,0x98,0x01,0x36,0x15,0x76,0x78,0x8E,0xC1,0x80,0x65,0xE4,0x7D,0x66,0x58,0xF2,0xD9,0xE6,0x8B,0x78,0x74,0xB2,0x61,0xC4,0x01,0x76,0xD9,0xE0,0xBD,0x1C,0x1A,0x82,0x2F,0x66,0x89,0xC6,0xD8,0x3F,0xA4,0xE0,0x1C,0x81,0x49,0xB4,0x6A,0xCB,0x02,0xE8,0xAA,0x1E,0xB6,0xE0,0xFD,0xF3,0x90,0x6E,0x15,0xA5,0x07,0x84,0x79,0xAE,0xFF,0x6A,0x60,0x6D,0xB7,0x1C,0xA7,0x43,0x6A,0xFA,0x4D,0xBE,0x5E,0x4A,0xAF,0x36,0x4D,0x3C,0xA4,0xAB,0x6B,0x20,0x15,0x2C,0xA5,0x84,0x95,0x62,0xA2,0xB4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0x88,0xEC,0x1E,0xC9,0xE5,0xCC,0x1C,0xED,0x52,0xC0,0x54,0x7F,0xD5,0x0F,0x88,0x1A,0x0C,0x45,0x74,0x76,0xEF,0xD2,0x0C,0x9A,0x88,0x65,0x06,0xB0,0x14,0xE1,0x7A,0x64,0xEA,0xF9,0x82,0xCF,0xD6,0xF6,0x7A,0xE5,0xC8,0xBB,0xB2,0xFF,0xC2,0x3A,0xE6,0x34,0x99,0x01,0x42,0x69,0x4C,0x35,0x70,0xC6,0x0D,0x06,0xB6,0xF2,0x16,0xCE,0x40,0xD7,0x47,0x29,0x80,0x71,0x2D,0x1B,0x6A,0xD5,0xAA,0x16,0x60,0xB7,0xA6,0x8D,0x72,0xB7,0xC7,0x00,0xD0,0x1A,0xE9,0xC5,0x42,0x8F,0x3B,0x65,0x78,0xA8,0x60,0xA0,0x54,0x66,0xCD,0xFC,0xF4,0x4F,0xFD,0x26,0xC4,0x29,0x8B,0xC1,0xE8,0xB8,0x98,0x06,0x34,0x6D,0x64,0x83,0x5E,0x27,0x6C,0xDB,0x84,0xBC,0x5B,0x8C,0xE6,0x90,0x12,0x2D,0xB8,0x22,0x6B,0x0A,0x3E,0x62,0xFC,0xD9,0x82,0x50,0xAB,0x3F,0x58,0x78,0xE4,0xA5,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x5D,0x9D,0x8D,0x0C,0x0C,0x50,0x2C,0x0E,0x4E,0x68,0x0E,0x5A,0x3C,0xA4,0x33,0x94,0x73,0x11,0xC8,0x6A,0x0E,0x11,0xFF,0x58,0x22,0x67,0x95,0x1C,0x33,0x51,0x83,0x14,0xC5,0x28,0xF9,0xAC,0xF9,0x37,0x36,0x4C,0x8B,0x20,0x59,0xCE,0x10,0xB2,0xF7,0xE8,0x59,0x3C,0xD4,0xFC,0x59,0x65,0xC0,0xB8,0x22,0x06,0xEE,0xD2,0x18,0x1B,0x43,0xA4,0x1C,0x91,0xA1,0x98,0x4B,0x06,0xA3,0xBE,0x2B,0x6D,0x1A,0xF0,0xD7,0x0D,0x3B,0x24,0xEA,0x74,0x9D,0x82,0xC5,0xCA,0x71,0x0A,0xB0,0x4B,0xEE,0x1A,0x00,0x49,0x67,0xA0,0x93,0x97,0x66,0x32,0x49,0x32,0x2C,0xA8,0xF9,0xAE,0xA7,0xBE,0xE3,0xD8,0x7F,0x48,0x81,0x8B,0x5C,0xF6,0xC4,0x45,0x16,0x52,0xDC,0x6E,0x99,0xB2,0x5D,0x7B,0xC7,0xE8,0x42,0x62,0xAF,0x7A,0x26,0xFA,0x5F,0xEC,0xF9,0x4C,0x60,0x32,0xB9,0x73,0x98,0x5E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xEE,0x34,0x3B,0xE4,0xEA,0x19,0xB2,0xC0,0xBA,0x24,0x95,0x08,0x7C,0x60,0xFB,0x44,0x66,0x1A,0x98,0x6A,0x1F,0x4E,0xA1,0x9C,0x56,0x50,0x67,0xC8,0x09,0x04,0x89,0xAC,0x43,0x9E,0x9C,0x36,0x0B,0x99,0x11,0xF4,0xAD,0x16,0x0A,0xF0,0x61,0xD2,0x3E,0xDE,0xB0,0x12,0xD0,0xF6,0x2E,0xCA,0xF6,0x6A,0x4B,0x31,0xF3,0xD6,0x02,0xF8,0xD6,0x40,0x80,0xA0,0xED,0x40,0x52,0x56,0x7D,0x7C,0xEE,0xD6,0x5C,0xBC,0xC7,0x49,0x80,0x6E,0xB6,0x1B,0x55,0x4A,0x44,0x4D,0x14,0x6A,0x62,0x6C,0x13,0xB8,0x21,0x3E,0x42,0xA4,0xEF,0x7B,0xF2,0x82,0x2E,0xB3,0xA4,0x22,0x16,0xE1,0xBB,0x9E,0xF6,0x24,0x92,0x1C,0x45,0xA5,0x37,0x3C,0x6F,0x57,0x7D,0xA4,0xBB,0x5E,0xA8,0xDE,0x85,0xFB,0xD1,0x42,0xE6,0x2A,0x5F,0x74,0x2F,0x3D,0x04,0x2A,0x41,0x78,0xD6,0xE6,0x93,0x9E,0x75,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x36,0xAF,0xB0,0x2C,0x4F,0x28,0x9E,0x6A,0x44,0xEC,0xB9,0x42,0x0D,0xEB,0x01,0xE2,0xB4,0x9C,0x1C,0xD6,0x85,0xDE,0x37,0x12,0x92,0x2A,0xB0,0x34,0x5F,0x81,0x2E,0xD8,0x1B,0x7B,0xDA,0x5E,0x49,0xA1,0x59,0x18,0x1F,0xC5,0xE3,0x60,0x5A,0x4D,0x06,0xB8,0xD2,0x03,0x6F,0x74,0xB8,0x7E,0x53,0x56,0xBB,0xC0,0x60,0xD8,0xF2,0x0C,0x2B,0x38,0xE7,0x68,0xA7,0x6A,0x86,0x3C,0x2D,0x38,0x13,0xB0,0xBA,0xF4,0xB2,0xEE,0xCB,0xC8,0x23,0x8C,0x23,0x3E,0x4F,0x25,0x29,0xBA,0xFF,0x65,0xB3,0x16,0x00,0xA9,0x4C,0x04,0x3D,0xB3,0x8A,0xF8,0x32,0xE0,0x5B,0x4A,0x5C,0x79,0xE0,0x66,0x70,0xD4,0x81,0x0E,0x7E,0x13,0x31,0x36,0x73,0xD9,0x1D,0x28,0xC9,0x60,0x5D,0x04,0x26,0x26,0x28,0x0C,0x73,0xF3,0x6B,0x60,0xBB,0x07,0x57,0xEE,0xAB,0x11,0x33,0xFE,0x4E,0xF6,0x79,0xDA,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 {\
Adf_data_counter=0;\
status =0;\
cmd_err_cnt=0;\
data_length;\
state_err_cnt=0;\
miso_err_cnt=0;\
hw_reset_err_cnt=0;\
counter =0;\
bcn_flag=0;\
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;
int err[64];
#define bbram_check gCS_ADF=0;\
    for(int i=0;i<64;i++){\
        err_arr[i]=0;\
        }\
    for(int i=0;i<64;i++){\
        err[i]=0;\
        }\
    bbram_err=false;\
    gCS_ADF=0;\
    spi.write(0x39);\
    spi.write(0x00);\
    spi.write(0xFF);\
    for(int i=0;i<64;i++){\
        err_arr[i]=spi.write(0xFF);\
        if(err_arr[i]!=bbram_buffer[i+2]){\
            err[i]=1;\
            bbram_err=true;\
            }\
    }\
    gCS_ADF=1;\
    if(!bbram_err)\
        gPC.printf("BBRAM verified \r\n");\
    else\
        gPC.printf("BBRAM error \r\n");\
 

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)Adf_data_counter = 0;
        
        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 {\
    printf("%d %d lol_ what?\r\n",segment_len,EOS_len);\
    }\
 
#define bbram_write {\
    gCS_ADF=0;\
    spi.write(0xB0);\
    wait_us(300);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    for(int i=0;i<66;i++){\
        spi.write(bbram_buffer[i]);\
    }\
    gCS_ADF=1;\
}
//------------------------------------------------------------------------
// 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 check_status {\
    unsigned char stat=0;\
    gCS_ADF=0;\
    spi.write(0xFF);\
    stat = spi.write(0xFF);\
    gCS_ADF=1;\
    status = stat;\
}

/*CMD_VAR*/
bool cmd_bit=true;
bool cmd_err_flag=false;
unsigned char command = 0x00;
#define CMD(command) {\
    cmd_err_cnt=0;\
    cmd_err_flag=false;\
    while(cmd_err_cnt<3) {\
        check_status;\
        cmd_bit=status&0x20;\
        if(cmd_bit) {\
            gCS_ADF=0;\
            spi.write(command);\
            gCS_ADF=1;\
            break;\
        } else {\
            wait_us(5);\
            cmd_err_cnt++;\
        }\
    }\
    if(cmd_err_cnt==3) {\
        cmd_err_flag=true;\
    }\
}\
// all three arguments are int\
#define assrt_phy_off {\
    int state_err_cnt = 0;\
    CMD(CMD_PHY_OFF);\
    if(cmd_err_flag){\
        temp_return=1;\
        }\
    else{\
        for(int i = 0 ; i < 40 ;i++){\
            CMD(CMD_PHY_OFF);\
            check_status;\
            if(status == PHY_OFF){\
                temp_return = 0;\
            break;\
            }\
            else if(state_err_cnt>THRS){\
                temp_return = 1;\
            break;\
            }\
            else {\
                wait_ms(1);\
            }\
        }\
    }\
}\


bool hardware_reset(int bcn_call)
{
    for(int i= 0; i < 2 ; i++) {
        gCS_ADF=0;
        spi.write(CMD_HW_RESET);
        gCS_ADF=1;
        wait_ms(2);// Typically 1 ms
        int count=0;
        temp_return = 0;
        while(count<10 && miso_err_cnt<10) {
            if(MISO_PIN) {
//                assrt_phy_off;
/*asseert_phyoff Starts**/
{\
    int state_err_cnt = 0;\
    CMD(CMD_PHY_OFF);\
    if(cmd_err_flag){\
        temp_return=1;\
        }\
    else{\
        for(int i = 0 ; i < 40 ;i++){\
            CMD(CMD_PHY_OFF);\
            check_status;\
            if(status == PHY_OFF){\
                temp_return = 0;\
            break;\
            }\
            else if(state_err_cnt>THRS){\
                temp_return = 1;\
            break;\
            }\
            else {\
                wait_ms(1);\
            }\
        }\
    }\
}\
/*Assert_phy_off_ends*/





                if(!temp_return){
                    return 0;
                }
                count++;
            } else {
                wait_us(50);
                miso_err_cnt++;
            }
        }
    }
    return 1;
}
//for reseting the transmission call assert function after b5 and b1. after b1 assert_phi_on and after b5 assert_phi_tx.
//----------------------------------------------------------------------------
/*
# define initiate {\
    gCS_ADF=0;\
    spi.write(0xFF);\
    spi.write(0xFF);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x08);\
    spi.write(0x14);\
    spi.write(0xFF);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x08);\
    spi.write(0x15);\
    spi.write(0xFF);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x09);\
    spi.write(0x24);\
    spi.write(0x20);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x09);\
    spi.write(0x37);\
    spi.write(0xE0);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x09);\
    spi.write(0x36);\
    spi.write(0x70);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x09);\
    spi.write(0x39);\
    spi.write(0x10);\
    gCS_ADF=1;\
}*/

unsigned char temp;
bool reg_err;
int reg_err_cnt;
#define REG_ERR_THRS 5
#define reg_check(addr1,addr2,reg_val)\
{\
 gCS_ADF=0;\
        reg_err=false;\
        spi.write(addr1);\
        spi.write(addr2);\
        spi.write(0xFF);\
        temp = spi.write(0xFF);\
        if(temp==reg_val)\
            reg_err = false;\
        else\
            reg_err=true;\
    gCS_ADF=1;\
}\
//========================================================
/*# define initiate {\
    gCS_ADF=0;\
    spi.write(0xFF);\
    spi.write(0xFF);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x08);\
    spi.write(0x14);\
    spi.write(0xFF);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x08);\
    spi.write(0x15);\
    spi.write(0xFF);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x09);\
    spi.write(0x24);\
    spi.write(0x20);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x09);\
    spi.write(0x37);\
    spi.write(0xE0);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x09);\
    spi.write(0x36);\
    spi.write(0x70);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0x09);\
    spi.write(0x39);\
    spi.write(0x10);\
    gCS_ADF=1;\
}*/

//========================================================


#define initiate {\
    gCS_ADF=0;\
    spi.write(0xFF);\
    spi.write(0xFF);\
    gCS_ADF=1;\
    reg_err=true;\
    for(reg_err_cnt=0;reg_err_cnt<REG_ERR_THRS && reg_err;reg_err_cnt++){\
        gCS_ADF=0;\
        spi.write(0x08);\
        spi.write(0x14);\
        spi.write(TRANSMIT_LEN_1);\
        gCS_ADF=1;\
        reg_check(0x28,0x14,TRANSMIT_LEN_1);\
    }\
    if(reg_err)\
        printf("Reg_err_ignored %x \r\n",(int)temp);\
    else\
        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;\
        spi.write(0x08);\
        spi.write(0x15);\
        spi.write(TRANSMIT_LEN_2);\
        gCS_ADF=1;\
        reg_check(0x28,0x15,TRANSMIT_LEN_2);\
    }\
    if(reg_err)\
        printf("Reg_err_ignored %x \r\n",(int)temp);\
    else\
        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;\
        spi.write(0x0B);\
        spi.write(0x36);\
        spi.write(0xFF);\
    gCS_ADF=1;\
    data_err_cnt=0;\
    data_err=true;\
    while(data_err && (data_err_cnt<DATA_ERR_THRS)){\
        gCS_ADF=0;\
        if(buffer_state){\
            spi.write(0x18);\
            spi.write(0x20);\
            for(unsigned char i=0; i<112;i++){\
                if(bypass_adf)\
                    gPC.putc(buffer_112[i]);\
                else\
                    spi.write(buffer_112[i]);\
                    /*gPC.printf("0x%X,",spi.write(buffer_112[i]));*/\
            }\
        }\
        else{\
            spi.write(0x18);\
            spi.write(0x90);\
            for(unsigned char i=0; i<112;i++){\
                if(bypass_adf)\
                    gPC.putc(buffer_112[i]);\
                else\
                    spi.write(buffer_112[i]);\
                /*gPC.printf("0x%X,",spi.write(buffer_112[i]));*/\
            }\
        }\
        gCS_ADF=1;\
        wait_us(5);\
        data_err=false;\
        gCS_ADF=0;\
        spi.write(0x38);\
        if(buffer_state){\
            spi.write(0x20);\
            }\
        else{\
            spi.write(0x90);\
            }\
        spi.write(0xFF);\
        for(unsigned char i=0; i<112;i++){\
            temp_byte=spi.write(0xFF);\
            if(buffer_112[i]!=temp_byte){\
                data_err1[i]=1;\
                data_err=true;\
                }\
        }\
    gCS_ADF=1;\
    /*SPI_mutex.unlock();*/\
    if(data_err==false){\
    buffer_state = !buffer_state;\
    }\
    data_err_cnt++;\
    if(last_buffer){\
        finish_write_data = true;\
           /*gPC.puts("adf_off\r\n");*/\
        }\
    }\
}
//==============================================================

/*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;
        }
    }
}*/
//=============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{
        if(T.read_us()>98000){\
                data_irq_err=true;\
                CMD(CMD_PHY_ON);
                gPC.printf("Data_error_detected");
                }\        
        }\
}



//=================================================================================



//bool bypass_adf = false;
//================================================================================
//void check(){
//if(IRQ || bypass_adf){\
//            if(finish_write_data){\
//                if(ADF_off){\
//                    SPI_mutex.lock();\
//                    gCS_ADF=0;\
//                    spi.write(0xB1);\
//                    data_tx_success=true;\
//                    gCS_ADF=1;\
//                    SPI_mutex.unlock();\
//                    loop_on = false;\
//                    gPC.puts("Transmission done\r\n");\
//                    gLEDR = 1;\
//                }\
//                else{\
//                    ADF_off = true;\
//                }\
//            }else{\
//                gLEDR = !gLEDR;\
//                write_data;\
//                if(sent_tmfrom_SDcard)\
//                send_tm_from_SD_card_fun();\
//                else snd_tm.transmit_data(buffer_112,&last_buffer);\
//            }\
//            T.reset();\
//        }\
//        else{\
//            if(T.read_us()>98000){\
//                data_irq_err=true;\
//                CMD(CMD_PHY_ON);\
//                break;\
//                }\
//            }\
//    }
//================================================================================/=
//
//#define send_data {\
//    gCS_ADF=0;\
//    spi.write(0xBB);\
//    gCS_ADF=1;\
//    gCS_ADF=0;\
//    spi.write(0xFF);\
//    spi.write(0xFF);\
//    gCS_ADF=1;\
//    if(sent_tmfrom_SDcard){\
//        send_tm_from_SD_card();\
//    }else{\
//        transmitdata();\
//    }\
//    write_data;\
//    if(sent_tmfrom_SDcard){\
//        send_tm_from_SD_card();\
//    }else{\
//        transmitdata();\
//    }\
//    write_data;\
//    if(sent_tmfrom_SDcard){\
//        send_tm_from_SD_card();\
//    }else{\
//        transmitdata();\
//    }\
//    gCS_ADF=0;\
//    spi.write(0xB1);\
//    gCS_ADF=1;\
//    wait_us(300);\
//    gCS_ADF=0;\
//    spi.write(0xFF);\
//    spi.write(0xFF);\
//    gCS_ADF=1;\
//    gCS_ADF=0;\
//    spi.write(0xB5);\
//    gCS_ADF=1;\
//    wait_us(300);\
//    gCS_ADF=0;\
//    spi.write(0xFF);\
//    spi.write(0xFF);\
//    gCS_ADF=1;\
//    ticker.attach_us(&check,32000);\
//}

#define send_data {\
    gCS_ADF=0;\
    spi.write(0xBB);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0xFF);\
    spi.write(0xFF);\
    gCS_ADF=1;\
    if(sent_tmfrom_SDcard){\
    }\
    else{\
        transmitdata();\
    }\
    write_data;\
    if(sent_tmfrom_SDcard){\
    }else{\
        transmitdata();\
    }\
    write_data;\
    if(sent_tmfrom_SDcard){\
    }else{\
        transmitdata();\
    }\
    gCS_ADF=0;\
    spi.write(0xB1);\
    gCS_ADF=1;\
    wait_us(300);\
    gCS_ADF=0;\
    spi.write(0xFF);\
    spi.write(0xFF);\
    gCS_ADF=1;\
    gCS_ADF=0;\
    spi.write(0xB5);\
    gCS_ADF=1;\
    wait_us(300);\
    gCS_ADF=0;\
    spi.write(0xFF);\
    spi.write(0xFF);\
    gCS_ADF=1;\
}
#define initial_adf_check {\
    bool Configuration_Done=false;\
    quit_configuration=false;\
    bool reset_flag1 = 0;\
    bool flag = false;\
    while((hw_reset_err_cnt<HW_THRS)&&(quit_configuration==false)){\
        while((bbram_err_cnt<2)&&(quit_configuration==false)){\
            /*assrt_phy_off;*/\
            /*Assrt_phy_off Begin*/\
            {\
    int state_err_cnt = 0;\
    CMD(CMD_PHY_OFF);\
    if(cmd_err_flag){\
        temp_return=1;\
        }\
    else{\
        for(int i = 0 ; i < 40 ;i++){\
            CMD(CMD_PHY_OFF);\
            check_status;\
            if(status == PHY_OFF){\
                temp_return = 0;\
            break;\
            }\
            else if(state_err_cnt>THRS){\
                temp_return = 1;\
            break;\
            }\
            else {\
                wait_ms(1);\
            }\
        }\
    }\
}\
            /*Assrt_phy_off end*/\
            reset_flag1=temp_return;\
            if(!reset_flag1){\
                bbram_write;\
                while((rbp_err_cnt<RBP_THRS)&&(quit_configuration==false)){\
                    bbram_check;\
                    if(bbram_err==0){\
                        bbram_write_success=true;\
                        bbram_err_cnt=0;\
                        initiate;\
                        if(reg_err){\
                            rbp_err_cnt++;\
                            }\
                        else{\
                            rbp_err_cnt=0;\
                            gPC.printf("NO Reg err\r\n");\
                            CMD(CMD_CONFIG_DEV);\
                            if(cmd_err_flag){\
                                reset_flag=1;\
                                gPC.printf("CMD ERR\r\n");\
                            }\
                            else{\
                                reset_flag=0;\
                                gPC.printf("NO CMD ERR CONFIG_DONE\r\n");\
                                quit_configuration=true;\
                            }\
                        }\
                    }\
                    else{\
                        bbram_write_success=false;\
                        bbram_err_cnt++;\
                        break;\
                    }\
                }\
            }\
            else{\
                break;\
            }\
        }\
        if(reset_flag1){\
            hardware_reset(0);\
            hw_reset_err_cnt++;\
            gPC.puts("Resetting hardware\r\n");\
        }\
    }\
    if(hw_reset_err_cnt==HW_THRS){\
        power_reset_flag=1;\
        power_reset_count++;\
        }\
    else{\
        Configuration_Done=true;\
        gPC.printf("Configuration_Done\n");\
        }\
}

void adf_not_SDcard()
{
    buffer_state = true;
//   last_buffer = false;
    loop_on = true;
    ADF_off = false;
    sent_tmfrom_SDcard = false;

//   signal = COM_MNG_TMTC_SIGNAL_ADF_NSD;
    initial_adf_check;
   // gPC.puts("initial adf check\r\n");
//   initiate;
    gPC.puts("Config_part done\r\n");
    send_data;
    //  gPC.puts("Inside adf transmission\r\n");
//    ADF_non_responsive_timeout.attach(&ADF_non_responsive_fun, 10);

}
int main()
{
    RF_SW_CNTRL_TX = 1;
    wait_ms(25);
    RF_SW_CNTRL_TX = 0;
    
    COM_OC_SW = 1;
    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();
        //PA MCR level
        //gCS_ADF=0;
        //spi.write(0x1B);//1B0735
        //spi.write(0x07);
        //spi.write(0x3B);//low power = 0x20, high power = 0x3B;
        //gCS_ADF=1;
        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.5);
        gPC.printf("in WHILE\n");
//        wait(1);
    }
}