单片机:分析HEX
1头文件:HexLexer.h
#ifndef _HEXLEXER_H_ #define _HEXLEXER_H_ #include <cstdio> #include <cstring> #include <cstdlib> /* Intel Hex文件解析器V1.0 Hex文件的格式如下: RecordMark RecordLength LoadOffset RecordType Data Checksum 在Intel Hex文件中,RecordMark规定为“:” */ #pragma warning(disable:4996) #define MAX_BUFFER_SIZE 43 class Hex { public: Hex(char mark); ~Hex(); void ParseHex(char *data);//解析Hex文件 void ParseRecord(char ch);//解析每一条记录 size_t GetRecordLength();//获取记录长度 char GetRecordMark();//获取记录标识 char *GetLoadOffset();//获取内存装载偏移 char *GetRecordType();//获取记录类型 char *GetData();//获取数据 char *GetChecksum();//获取校验和 private: char m_cBuffer[MAX_BUFFER_SIZE];//存储待解析的记录 char m_cRecordMark;//记录标识 size_t m_nRecordLength;//记录长度 char *m_pLoadOffset;//装载偏移 char *m_pRecordType;//记录类型 char *m_pData;//数据字段 char *m_pChecksum;//校验和 bool m_bRecvStatus;//接收状态标识 //size_t m_nIndex;//缓存的字符索引值 }; Hex::Hex(char mark) { this->m_cRecordMark = mark; m_cBuffer[0] = '\0'; //m_pBuffer = NULL; m_nRecordLength = 0; m_pLoadOffset = NULL; m_pRecordType = NULL; m_pData = NULL; m_pChecksum = NULL; m_bRecvStatus = false; //m_nIndex = 0; } Hex::~Hex() { delete m_pLoadOffset, m_pRecordType, m_pData, m_pChecksum; } #endif
2.程序文件:
#include "HexLexer.h" #include <iostream> using namespace std; //获取记录标识 char Hex::GetRecordMark() { return this->m_cRecordMark; } //获取每条记录的长度 size_t Hex::GetRecordLength() { //char *len = (char*)malloc(sizeof(char)* 3); if (strlen(m_cBuffer)>=2) { char len[3]; len[0] = m_cBuffer[0]; len[1] = m_cBuffer[1]; len[2] = '\0'; char *p = NULL; return strtol(len, &p, 16); } else { return 0; } } //获取装载偏移 char* Hex::GetLoadOffset() { if (strlen(m_cBuffer) == (GetRecordLength() + 5) * 2) { char *offset = (char*)malloc(sizeof(char)* 5); for (int i = 0; i < 4; ++i) { offset[i] = m_cBuffer[i + 2]; } offset[4] = '\0'; m_pLoadOffset = offset; offset = NULL; } return m_pLoadOffset; } //获取记录类型 char* Hex::GetRecordType() { if (strlen(m_cBuffer) == (GetRecordLength() + 5) * 2) { char *type=(char*)malloc(sizeof(char)*3); type[0] = m_cBuffer[6]; type[1] = m_cBuffer[7]; type[2] = '\0'; m_pRecordType = type; type = NULL; } return m_pRecordType; } //获取数据 char* Hex::GetData() { if (strlen(m_cBuffer) == (GetRecordLength() + 5) * 2) { int len = GetRecordLength(); char *data = (char*)malloc(sizeof(char)*(len * 2 + 1)); for (int i = 0; i < len * 2;++i) { data[i] = m_cBuffer[i + 8]; } data[len * 2] = '\0'; m_pData = data; data = NULL; } return m_pData; } //获取校验和 char* Hex::GetChecksum() { int len = GetRecordLength(); if (strlen(m_cBuffer) == (len + 5) * 2) { char *checksum=(char*)malloc(sizeof(char)*3); checksum[0] = m_cBuffer[(len + 5) * 2 - 2]; checksum[1] = m_cBuffer[(len + 5) * 2-1]; checksum[2] = '\0'; m_pChecksum = checksum; checksum=NULL; } return m_pChecksum; } //解析Hex文件中的每一条记录 void Hex::ParseRecord(char ch) { size_t buf_len = strlen(m_cBuffer); if (GetRecordMark()==ch) { m_bRecvStatus = true; m_cBuffer[0] = '\0'; //m_nIndex = 0; return; } if ((buf_len==(GetRecordLength()+5)*2-1)) { //接收最后一个字符 m_cBuffer[buf_len] = ch; m_cBuffer[buf_len + 1] = '\0'; //检验接收的数据 char temp[3]; char *p = NULL; long int checksum = 0; for (int i = 0; i < strlen(m_cBuffer);i+=2) { temp[0] = m_cBuffer[i]; temp[1] = m_cBuffer[i + 1]; temp[2] = '\0'; checksum += strtol(temp, &p, 16); temp[0] = '\0'; } checksum &= 0x00ff;//取计算结果的低8位 if (checksum==0)//checksum为0说明接收的数据无误 { cout << "RecordMark " << GetRecordMark() << endl; cout << "RecordLength " << GetRecordLength() << endl; cout << "LoadOffset " << GetLoadOffset() << endl; cout << "RecordType " << GetRecordType() << endl; cout << "Data " << GetData() << endl; cout << "Checksum " << GetChecksum() << endl; } else//否则接收数据有误 { cout << "Error!" << endl; } m_cBuffer[0] = '\0'; m_bRecvStatus = false; m_nRecordLength = 0; m_pLoadOffset = NULL; m_pRecordType = NULL; m_pChecksum = NULL; m_bRecvStatus = false; } else if (m_bRecvStatus) { m_cBuffer[buf_len] = ch; m_cBuffer[buf_len + 1] = '\0'; //m_nIndex++; } } //解析Hex文件 void Hex::ParseHex(char *data) { for (int i = 0; i < strlen(data);++i) { ParseRecord(data[i]); } } int main(int argc, char *argv[]) { freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); Hex hex(':'); char ch; while (cin>>ch) { hex.ParseRecord(ch); } fclose(stdout); fclose(stdin); return 0; }
3.in.txt(将已知的HEX改名为in.txt)
:03000000020612E3
:0C061200787FE4F6D8FD7581410206599E
:1008270025640000C000F900A400B0009900920000
:070837008200F80080009030
:0C0851000238000002280001023A0000FA
:10071D001207ADE53D6414453C7032B290B291F5CF
:10072D003CF53DE5234522701CE5396401453870E3
:10073D0014E529640145287014C2A57F64FE1208D2
:10074D0009D2A58008E5231523700215221205583C
:10075D00E5394538700512069E8007AF23AE22128B
:0B076D00036A7F027E0012080980A8CA
:10077800750DFF750E08750F278E108F117B007A87
:1007880000792C12006AE4F53AF53B053BE53B702D
:1007980002053A14242CF8E670F1E53B24FFFFE546
:0507A8003A34FFFE22BF
:1005580020B224E5394538701EC28C052BE52B7076
:1005680002052A6418452A7004F52AF52B12069EFE
:100578007FC87E0012080920B324E5394538701E6B
:10058800C28C0525E52570020524643C45247004C9
:10059800F524F52512069E7FC87E0012080920B4AE
:1005A80044753800753901752800752901C28CAE6B
:1005B80024AF257C007D3C120463AA06AB07AE2A53
:1005C800AF2B7C0E7D10120463EF2BF523EE3AF56A
:1005D800224523700EF52AF52BF524F52575220101
:1005E80075232CD28C20B521D2A5E4F538F539F540
:1005F80028F529F524F525C28CD290D291F522F55B
:0A06080023F52AF52BF524F5252231
:1007AD00E4F53CF53DF528752901F540F541F522B7
:1007BD00F523F524F525F52AF52BD2A0D2A1D2A249
:1007CD00D2A3D2B2D2B3758901758C4CF58AD2AF52
:0507DD00D2A9C28C222C
:03000B0002083EAA
:10083E00C0E0758C4C758A00053DE53D7002053CA7
:03084E00D0E032C5
:04069E00AF2BAD25AC
:1006A2007580FFE540705BE54114601114602D1404
:1006B20060352403704CD2A3C2A0EF8024D2A0C222
:1006C200A1EF75F00A84E5F025E0242AF582E434EE
:1006D20008F583740193F580C2878026D2A1C2A255
:1006E200ED75F00A84800BD2A2C2A3ED75F00A84E4
:1006F200E5F025E0242AF582E43408F583740193B9
:10070200F5800541E54170020540D39403E540645C
:0B0712008094804005E4F540F5412292
:10036A008E088F097580FFAF09AE081207788E3E96
:10037A008F3FE540600302044AE54114605114606E
:10038A005C1470030204152403600302044AD2A316
:10039A00C2A0AE08AF097C037DE81204757C007D1B
:1003AA000A120475ED25E0FFEC33FE742A2FF5825C
:1003BA0074083EF583740193F580D3E53F9404E510
:1003CA003E648094804004C2878075D2878071D24F
:1003DA00A0C2A1AE08AF097C007D64800CD2A1C284
:1003EA00A2AE08AF097C007D0A1204757C007D0A62
:1003FA00120475ED25E0FFEC33FE742A2FF58274A2
:10040A00083EF583740193F5808035D2A2C2A3AE6B
:10041A0008AF097C007D0A120475ED25E0FFEC3374
:10042A00FE742A2FF58274083EF583740193F580D1
:10043A00C3E53D940AE53C64809480400353807F81
:10044A000541E54170020540D39403E54064809478
:09045A00804005E4F540F5412263
:10080900D3EF9400EE940040147D6E7C00ED1D70D2
:0D081900011CED4C70F7EF1F70E61E80E330
:0108260022AF
:10061E0002071DE493A3F8E493A34003F68001F2CE
:10062E0008DFF48029E493A3F85407240CC8C333DD
:10063E00C4540F4420C8834004F456800146F6DFAC
:10064E00E4800B0102040810204080900851E47EE3
:10065E00019360BCA3FF543F30E509541FFEE493A1
:10066E00A360010ECF54C025E060A840B8E493A368
:10067E00FAE493A3F8E493A3C8C582C8CAC583CA93
:10068E00F0A3C8C582C8CAC583CADFE9DEE780BE4B
:01085D00009A
:10046300EF8DF0A4A8F0CF8CF0A428CE8DF0A42EAD
:02047300FE2267
:10047500BC000BBE0029EF8DF084FFADF022E4CC6B
:10048500F875F008EF2FFFEE33FEEC33FCEE9DEC34
:10049500984005FCEE9DFE0FD5F0E9E4CEFD22ED7A
:1004A500F8F5F0EE8420D21CFEADF075F008EF2FC4
:1004B500FFED33FD4007985006D5F0F222C398FDB5
:0504C5000FD5F0EA2252
:10000E00E519240DF8E6051922780A300702780D55
:10001E00E475F0011205220204CA2000EB7F2ED2F5
:10002E00008018EF540F2490D43440D4FF30040BCA
:10003E00EF24BFB41A0050032461FFE51A600215C5
:10004E001A051DE51D7002051C30070D780AE475B2
:10005E00F001120522EF0205100207E27403D20727
:10006E008003E4C207F5198B0A8A0B890CE4F51A92
:10007E00F51CF51DE51A60077F2012004980F57505
:10008E001BFFC201C200C202C203C205C206C208E1
:10009E00120017FF700D3007057F0012005AAF1DBA
:1000AE00AE1C22B4255FC2D5C204120017FF24D0A5
:1000BE00B40A00501A75F00A781A30D50508B6FF42
:1000CE000106C6A426F620D5047002D20380D924D8
:1000DE00CFB41A00EF5004C2E5D20402025AD20184
:1000EE0080C6D20080C0D20280BCD2D580BAD205E2
:1000FE0080B47F201200492002077401B51A004017
:10010E00F112000EFF120049020082D208D20680C0
:10011E009512000EFB12000EFA12000EF94A4B70E9
:10012E0006792B7A037BFF20022EE51A602A7E00C9
:10013E008E827583001204E360060EEE651B70F06E
:10014E00C2D5EBC0E0EAC0E0E9C0E0EE1202A1D0F9
:10015E00E0F9D0E0FAD0E0FB1204CAFF60AAEBC0CF
:10016E00E0EAC0E0E9C0E0120049D0E02401F9D095
:10017E00E03400FAD0E0FBE51B0460DCD51BD9802F
:10018E00877BFF7A02799DD202809C79108002795A
:10019E0008C206C2088008D2D5790A8004790AC23C
:1001AE00D5E51B047002F51BE4FAFDFEFF12000EEE
:1001BE00FC7B0820011312000EFD7B1030000A128A
:1001CE00000EFE12000EFF7B20EC3382D592D5502E
:1001DE0013C3E43000069FFFE49EFEE42001039D5E
:1001EE00FDE49CFCE4CBF8C201EC700CCFCECDCC80
:1001FE00E824F8F870F38017C3EF33FFEE33FEED0B
:10020E0033FDEC33FCEB33FB994002FB0FD8E9EBEB
:10021E00300105F8D0E0C448B201C0E00AEC4D4E02
:10022E004F78207B0070C2EAB51B0040BCC0E012C4
:10023E0002A3D0F0D0E0200104C4C0E0C4B201C0DB
:10024E00F0120032D0F0D5F0EB020082120532012E
:10025E001F5301995800F04C00EC42019D4F01A52F
:0F026E004401A54901054301AB55018F46018F9E
:10027D0045018F47034B5000F42D00F82E011B2B29
:10028D0000FC2301192003342A00B4480000011397
:10029D003F3F3F00790AA2D5200314300509B9105C
:1002AD00020404B9080104A2D5200602500104205D
:1002BD0002689202B51A005034C0E07F2030031955
:1002CD007F30A20272067205500F1202FAC202C2EC
:1002DD0006C205C2087F30800F300503E9C0E01269
:1002ED000049300503D0E0F9D0E0B51ACC30051740
:1002FD007F30B9100C1200497F583004077F788089
:10030D0003B908031200493002057F2D0200497F11
:10031D00202008F87F2B2006F322920280CF286E32
:10032D00756C6C2900D20112000E3001F8C20178F3
:10033D001A30D50108F60200B42D50434958120069
:10034D000E2403B405004001E49003469312003AD5
:0D035D00743A12003AD203751A0402019995
:1004CA00BB010689828A83E0225002E722BBFE0230
:0904DA00E32289828A83E4932263
:1004E300BB010CE58229F582E5833AF583E02250CE
:1004F30006E92582F8E622BBFE06E92582F8E22218
:0D050300E58229F582E5833AF583E4932231
:10051000BB010689828A83F0225002F722BBFE01CA
:02052000F322C4
:10052200FAE6FB0808E6F925F0F618E6CA3AF622DA
:10053200D083D082F8E4937012740193700DA3A358
:1005420093F8740193F5828883E47374029368606C
:06055200EFA3A3A380DF6C
:1007E200EFB40A07740D1207ED740A309811A89934
:1007F200B8130CC2983098FDA899C298B811F63077
:0708020099FDC299F599224E
:00000001FF
4.程序运行结果:out.txt
RecordMark : RecordLength 3 LoadOffset 0000 RecordType 00 Data 020612 Checksum E3 RecordMark : RecordLength 12 LoadOffset 0612 RecordType 00 Data 787FE4F6D8FD758141020659 Checksum 9E RecordMark : RecordLength 16 LoadOffset 0827 RecordType 00 Data 25640000C000F900A400B00099009200 Checksum 00 RecordMark : RecordLength 7 LoadOffset 0837 RecordType 00 Data 8200F800800090 Checksum 30 RecordMark : RecordLength 12 LoadOffset 0851 RecordType 00 Data 0238000002280001023A0000 Checksum FA RecordMark : RecordLength 16 LoadOffset 071D RecordType 00 Data 1207ADE53D6414453C7032B290B291F5 Checksum CF RecordMark : RecordLength 16 LoadOffset 072D RecordType 00 Data 3CF53DE5234522701CE5396401453870 Checksum E3 RecordMark : RecordLength 16 LoadOffset 073D RecordType 00 Data 14E529640145287014C2A57F64FE1208 Checksum D2 RecordMark : RecordLength 16 LoadOffset 074D RecordType 00 Data 09D2A58008E523152370021522120558 Checksum 3C RecordMark : RecordLength 16 LoadOffset 075D RecordType 00 Data E5394538700512069E8007AF23AE2212 Checksum 8B RecordMark : RecordLength 11 LoadOffset 076D RecordType 00 Data 036A7F027E0012080980A8 Checksum CA RecordMark : RecordLength 16 LoadOffset 0778 RecordType 00 Data 750DFF750E08750F278E108F117B007A Checksum 87 RecordMark : RecordLength 16 LoadOffset 0788 RecordType 00 Data 00792C12006AE4F53AF53B053BE53B70 Checksum 2D RecordMark : RecordLength 16 LoadOffset 0798 RecordType 00 Data 02053A14242CF8E670F1E53B24FFFFE5 Checksum 46 RecordMark : RecordLength 5 LoadOffset 07A8 RecordType 00 Data 3A34FFFE22 Checksum BF RecordMark : RecordLength 16 LoadOffset 0558 RecordType 00 Data 20B224E5394538701EC28C052BE52B70 Checksum 76 RecordMark : RecordLength 16 LoadOffset 0568 RecordType 00 Data 02052A6418452A7004F52AF52B12069E Checksum FE RecordMark : RecordLength 16 LoadOffset 0578 RecordType 00 Data 7FC87E0012080920B324E5394538701E Checksum 6B RecordMark : RecordLength 16 LoadOffset 0588 RecordType 00 Data C28C0525E52570020524643C45247004 Checksum C9 RecordMark : RecordLength 16 LoadOffset 0598 RecordType 00 Data F524F52512069E7FC87E0012080920B4 Checksum AE RecordMark : RecordLength 16 LoadOffset 05A8 RecordType 00 Data 44753800753901752800752901C28CAE Checksum 6B RecordMark : RecordLength 16 LoadOffset 05B8 RecordType 00 Data 24AF257C007D3C120463AA06AB07AE2A Checksum 53 RecordMark : RecordLength 16 LoadOffset 05C8 RecordType 00 Data AF2B7C0E7D10120463EF2BF523EE3AF5 Checksum 6A RecordMark : RecordLength 16 LoadOffset 05D8 RecordType 00 Data 224523700EF52AF52BF524F525752201 Checksum 01 RecordMark : RecordLength 16 LoadOffset 05E8 RecordType 00 Data 75232CD28C20B521D2A5E4F538F539F5 Checksum 40 RecordMark : RecordLength 16 LoadOffset 05F8 RecordType 00 Data 28F529F524F525C28CD290D291F522F5 Checksum 5B RecordMark : RecordLength 10 LoadOffset 0608 RecordType 00 Data 23F52AF52BF524F52522 Checksum 31 RecordMark : RecordLength 16 LoadOffset 07AD RecordType 00 Data E4F53CF53DF528752901F540F541F522 Checksum B7 RecordMark : RecordLength 16 LoadOffset 07BD RecordType 00 Data F523F524F525F52AF52BD2A0D2A1D2A2 Checksum 49 RecordMark : RecordLength 16 LoadOffset 07CD RecordType 00 Data D2A3D2B2D2B3758901758C4CF58AD2AF Checksum 52 RecordMark : RecordLength 5 LoadOffset 07DD RecordType 00 Data D2A9C28C22 Checksum 2C RecordMark : RecordLength 3 LoadOffset 000B RecordType 00 Data 02083E Checksum AA RecordMark : RecordLength 16 LoadOffset 083E RecordType 00 Data C0E0758C4C758A00053DE53D7002053C Checksum A7 RecordMark : RecordLength 3 LoadOffset 084E RecordType 00 Data D0E032 Checksum C5 RecordMark : RecordLength 4 LoadOffset 069E RecordType 00 Data AF2BAD25 Checksum AC RecordMark : RecordLength 16 LoadOffset 06A2 RecordType 00 Data 7580FFE540705BE54114601114602D14 Checksum 04 RecordMark : RecordLength 16 LoadOffset 06B2 RecordType 00 Data 60352403704CD2A3C2A0EF8024D2A0C2 Checksum 22 RecordMark : RecordLength 16 LoadOffset 06C2 RecordType 00 Data A1EF75F00A84E5F025E0242AF582E434 Checksum EE RecordMark : RecordLength 16 LoadOffset 06D2 RecordType 00 Data 08F583740193F580C2878026D2A1C2A2 Checksum 55 RecordMark : RecordLength 16 LoadOffset 06E2 RecordType 00 Data ED75F00A84800BD2A2C2A3ED75F00A84 Checksum E4 RecordMark : RecordLength 16 LoadOffset 06F2 RecordType 00 Data E5F025E0242AF582E43408F583740193 Checksum B9 RecordMark : RecordLength 16 LoadOffset 0702 RecordType 00 Data F5800541E54170020540D39403E54064 Checksum 5C RecordMark : RecordLength 11 LoadOffset 0712 RecordType 00 Data 8094804005E4F540F54122 Checksum 92 RecordMark : RecordLength 16 LoadOffset 036A RecordType 00 Data 8E088F097580FFAF09AE081207788E3E Checksum 96 RecordMark : RecordLength 16 LoadOffset 037A RecordType 00 Data 8F3FE540600302044AE5411460511460 Checksum 6E RecordMark : RecordLength 16 LoadOffset 038A RecordType 00 Data 5C1470030204152403600302044AD2A3 Checksum 16 RecordMark : RecordLength 16 LoadOffset 039A RecordType 00 Data C2A0AE08AF097C037DE81204757C007D Checksum 1B RecordMark : RecordLength 16 LoadOffset 03AA RecordType 00 Data 0A120475ED25E0FFEC33FE742A2FF582 Checksum 5C RecordMark : RecordLength 16 LoadOffset 03BA RecordType 00 Data 74083EF583740193F580D3E53F9404E5 Checksum 10 RecordMark : RecordLength 16 LoadOffset 03CA RecordType 00 Data 3E648094804004C2878075D2878071D2 Checksum 4F RecordMark : RecordLength 16 LoadOffset 03DA RecordType 00 Data A0C2A1AE08AF097C007D64800CD2A1C2 Checksum 84 RecordMark : RecordLength 16 LoadOffset 03EA RecordType 00 Data A2AE08AF097C007D0A1204757C007D0A Checksum 62 RecordMark : RecordLength 16 LoadOffset 03FA RecordType 00 Data 120475ED25E0FFEC33FE742A2FF58274 Checksum A2 RecordMark : RecordLength 16 LoadOffset 040A RecordType 00 Data 083EF583740193F5808035D2A2C2A3AE Checksum 6B RecordMark : RecordLength 16 LoadOffset 041A RecordType 00 Data 08AF097C007D0A120475ED25E0FFEC33 Checksum 74 RecordMark : RecordLength 16 LoadOffset 042A RecordType 00 Data FE742A2FF58274083EF583740193F580 Checksum D1 RecordMark : RecordLength 16 LoadOffset 043A RecordType 00 Data C3E53D940AE53C64809480400353807F Checksum 81 RecordMark : RecordLength 16 LoadOffset 044A RecordType 00 Data 0541E54170020540D39403E540648094 Checksum 78 RecordMark : RecordLength 9 LoadOffset 045A RecordType 00 Data 804005E4F540F54122 Checksum 63 RecordMark : RecordLength 16 LoadOffset 0809 RecordType 00 Data D3EF9400EE940040147D6E7C00ED1D70 Checksum D2 RecordMark : RecordLength 13 LoadOffset 0819 RecordType 00 Data 011CED4C70F7EF1F70E61E80E3 Checksum 30 RecordMark : RecordLength 1 LoadOffset 0826 RecordType 00 Data 22 Checksum AF RecordMark : RecordLength 16 LoadOffset 061E RecordType 00 Data 02071DE493A3F8E493A34003F68001F2 Checksum CE RecordMark : RecordLength 16 LoadOffset 062E RecordType 00 Data 08DFF48029E493A3F85407240CC8C333 Checksum DD RecordMark : RecordLength 16 LoadOffset 063E RecordType 00 Data C4540F4420C8834004F456800146F6DF Checksum AC RecordMark : RecordLength 16 LoadOffset 064E RecordType 00 Data E4800B0102040810204080900851E47E Checksum E3 RecordMark : RecordLength 16 LoadOffset 065E RecordType 00 Data 019360BCA3FF543F30E509541FFEE493 Checksum A1 RecordMark : RecordLength 16 LoadOffset 066E RecordType 00 Data A360010ECF54C025E060A840B8E493A3 Checksum 68 RecordMark : RecordLength 16 LoadOffset 067E RecordType 00 Data FAE493A3F8E493A3C8C582C8CAC583CA Checksum 93 RecordMark : RecordLength 16 LoadOffset 068E RecordType 00 Data F0A3C8C582C8CAC583CADFE9DEE780BE Checksum 4B RecordMark : RecordLength 1 LoadOffset 085D RecordType 00 Data 00 Checksum 9A RecordMark : RecordLength 16 LoadOffset 0463 RecordType 00 Data EF8DF0A4A8F0CF8CF0A428CE8DF0A42E Checksum AD RecordMark : RecordLength 2 LoadOffset 0473 RecordType 00 Data FE22 Checksum 67 RecordMark : RecordLength 16 LoadOffset 0475 RecordType 00 Data BC000BBE0029EF8DF084FFADF022E4CC Checksum 6B RecordMark : RecordLength 16 LoadOffset 0485 RecordType 00 Data F875F008EF2FFFEE33FEEC33FCEE9DEC Checksum 34 RecordMark : RecordLength 16 LoadOffset 0495 RecordType 00 Data 984005FCEE9DFE0FD5F0E9E4CEFD22ED Checksum 7A RecordMark : RecordLength 16 LoadOffset 04A5 RecordType 00 Data F8F5F0EE8420D21CFEADF075F008EF2F Checksum C4 RecordMark : RecordLength 16 LoadOffset 04B5 RecordType 00 Data FFED33FD4007985006D5F0F222C398FD Checksum B5 RecordMark : RecordLength 5 LoadOffset 04C5 RecordType 00 Data 0FD5F0EA22 Checksum 52 RecordMark : RecordLength 16 LoadOffset 000E RecordType 00 Data E519240DF8E6051922780A300702780D Checksum 55 RecordMark : RecordLength 16 LoadOffset 001E RecordType 00 Data E475F0011205220204CA2000EB7F2ED2 Checksum F5 RecordMark : RecordLength 16 LoadOffset 002E RecordType 00 Data 008018EF540F2490D43440D4FF30040B Checksum CA RecordMark : RecordLength 16 LoadOffset 003E RecordType 00 Data EF24BFB41A0050032461FFE51A600215 Checksum C5 RecordMark : RecordLength 16 LoadOffset 004E RecordType 00 Data 1A051DE51D7002051C30070D780AE475 Checksum B2 RecordMark : RecordLength 16 LoadOffset 005E RecordType 00 Data F001120522EF0205100207E27403D207 Checksum 27 RecordMark : RecordLength 16 LoadOffset 006E RecordType 00 Data 8003E4C207F5198B0A8A0B890CE4F51A Checksum 92 RecordMark : RecordLength 16 LoadOffset 007E RecordType 00 Data F51CF51DE51A60077F2012004980F575 Checksum 05 RecordMark : RecordLength 16 LoadOffset 008E RecordType 00 Data 1BFFC201C200C202C203C205C206C208 Checksum E1 RecordMark : RecordLength 16 LoadOffset 009E RecordType 00 Data 120017FF700D3007057F0012005AAF1D Checksum BA RecordMark : RecordLength 16 LoadOffset 00AE RecordType 00 Data AE1C22B4255FC2D5C204120017FF24D0 Checksum A5 RecordMark : RecordLength 16 LoadOffset 00BE RecordType 00 Data B40A00501A75F00A781A30D50508B6FF Checksum 42 RecordMark : RecordLength 16 LoadOffset 00CE RecordType 00 Data 0106C6A426F620D5047002D20380D924 Checksum D8 RecordMark : RecordLength 16 LoadOffset 00DE RecordType 00 Data CFB41A00EF5004C2E5D20402025AD201 Checksum 84 RecordMark : RecordLength 16 LoadOffset 00EE RecordType 00 Data 80C6D20080C0D20280BCD2D580BAD205 Checksum E2 RecordMark : RecordLength 16 LoadOffset 00FE RecordType 00 Data 80B47F201200492002077401B51A0040 Checksum 17 RecordMark : RecordLength 16 LoadOffset 010E RecordType 00 Data F112000EFF120049020082D208D20680 Checksum C0 RecordMark : RecordLength 16 LoadOffset 011E RecordType 00 Data 9512000EFB12000EFA12000EF94A4B70 Checksum E9 RecordMark : RecordLength 16 LoadOffset 012E RecordType 00 Data 06792B7A037BFF20022EE51A602A7E00 Checksum C9 RecordMark : RecordLength 16 LoadOffset 013E RecordType 00 Data 8E827583001204E360060EEE651B70F0 Checksum 6E RecordMark : RecordLength 16 LoadOffset 014E RecordType 00 Data C2D5EBC0E0EAC0E0E9C0E0EE1202A1D0 Checksum F9 RecordMark : RecordLength 16 LoadOffset 015E RecordType 00 Data E0F9D0E0FAD0E0FB1204CAFF60AAEBC0 Checksum CF RecordMark : RecordLength 16 LoadOffset 016E RecordType 00 Data E0EAC0E0E9C0E0120049D0E02401F9D0 Checksum 95 RecordMark : RecordLength 16 LoadOffset 017E RecordType 00 Data E03400FAD0E0FBE51B0460DCD51BD980 Checksum 2F RecordMark : RecordLength 16 LoadOffset 018E RecordType 00 Data 877BFF7A02799DD202809C7910800279 Checksum 5A RecordMark : RecordLength 16 LoadOffset 019E RecordType 00 Data 08C206C2088008D2D5790A8004790AC2 Checksum 3C RecordMark : RecordLength 16 LoadOffset 01AE RecordType 00 Data D5E51B047002F51BE4FAFDFEFF12000E Checksum EE RecordMark : RecordLength 16 LoadOffset 01BE RecordType 00 Data FC7B0820011312000EFD7B1030000A12 Checksum 8A RecordMark : RecordLength 16 LoadOffset 01CE RecordType 00 Data 000EFE12000EFF7B20EC3382D592D550 Checksum 2E RecordMark : RecordLength 16 LoadOffset 01DE RecordType 00 Data 13C3E43000069FFFE49EFEE42001039D Checksum 5E RecordMark : RecordLength 16 LoadOffset 01EE RecordType 00 Data FDE49CFCE4CBF8C201EC700CCFCECDCC Checksum 80 RecordMark : RecordLength 16 LoadOffset 01FE RecordType 00 Data E824F8F870F38017C3EF33FFEE33FEED Checksum 0B RecordMark : RecordLength 16 LoadOffset 020E RecordType 00 Data 33FDEC33FCEB33FB994002FB0FD8E9EB Checksum EB RecordMark : RecordLength 16 LoadOffset 021E RecordType 00 Data 300105F8D0E0C448B201C0E00AEC4D4E Checksum 02 RecordMark : RecordLength 16 LoadOffset 022E RecordType 00 Data 4F78207B0070C2EAB51B0040BCC0E012 Checksum C4 RecordMark : RecordLength 16 LoadOffset 023E RecordType 00 Data 02A3D0F0D0E0200104C4C0E0C4B201C0 Checksum DB RecordMark : RecordLength 16 LoadOffset 024E RecordType 00 Data F0120032D0F0D5F0EB02008212053201 Checksum 2E RecordMark : RecordLength 16 LoadOffset 025E RecordType 00 Data 1F5301995800F04C00EC42019D4F01A5 Checksum 2F RecordMark : RecordLength 15 LoadOffset 026E RecordType 00 Data 4401A54901054301AB55018F46018F Checksum 9E RecordMark : RecordLength 16 LoadOffset 027D RecordType 00 Data 45018F47034B5000F42D00F82E011B2B Checksum 29 RecordMark : RecordLength 16 LoadOffset 028D RecordType 00 Data 00FC2301192003342A00B44800000113 Checksum 97 RecordMark : RecordLength 16 LoadOffset 029D RecordType 00 Data 3F3F3F00790AA2D5200314300509B910 Checksum 5C RecordMark : RecordLength 16 LoadOffset 02AD RecordType 00 Data 020404B9080104A2D520060250010420 Checksum 5D RecordMark : RecordLength 16 LoadOffset 02BD RecordType 00 Data 02689202B51A005034C0E07F20300319 Checksum 55 RecordMark : RecordLength 16 LoadOffset 02CD RecordType 00 Data 7F30A20272067205500F1202FAC202C2 Checksum EC RecordMark : RecordLength 16 LoadOffset 02DD RecordType 00 Data 06C205C2087F30800F300503E9C0E012 Checksum 69 RecordMark : RecordLength 16 LoadOffset 02ED RecordType 00 Data 0049300503D0E0F9D0E0B51ACC300517 Checksum 40 RecordMark : RecordLength 16 LoadOffset 02FD RecordType 00 Data 7F30B9100C1200497F583004077F7880 Checksum 89 RecordMark : RecordLength 16 LoadOffset 030D RecordType 00 Data 03B908031200493002057F2D0200497F Checksum 11 RecordMark : RecordLength 16 LoadOffset 031D RecordType 00 Data 202008F87F2B2006F322920280CF286E Checksum 32 RecordMark : RecordLength 16 LoadOffset 032D RecordType 00 Data 756C6C2900D20112000E3001F8C20178 Checksum F3 RecordMark : RecordLength 16 LoadOffset 033D RecordType 00 Data 1A30D50108F60200B42D504349581200 Checksum 69 RecordMark : RecordLength 16 LoadOffset 034D RecordType 00 Data 0E2403B405004001E49003469312003A Checksum D5 RecordMark : RecordLength 13 LoadOffset 035D RecordType 00 Data 743A12003AD203751A04020199 Checksum 95 RecordMark : RecordLength 16 LoadOffset 04CA RecordType 00 Data BB010689828A83E0225002E722BBFE02 Checksum 30 RecordMark : RecordLength 9 LoadOffset 04DA RecordType 00 Data E32289828A83E49322 Checksum 63 RecordMark : RecordLength 16 LoadOffset 04E3 RecordType 00 Data BB010CE58229F582E5833AF583E02250 Checksum CE RecordMark : RecordLength 16 LoadOffset 04F3 RecordType 00 Data 06E92582F8E622BBFE06E92582F8E222 Checksum 18 RecordMark : RecordLength 13 LoadOffset 0503 RecordType 00 Data E58229F582E5833AF583E49322 Checksum 31 RecordMark : RecordLength 16 LoadOffset 0510 RecordType 00 Data BB010689828A83F0225002F722BBFE01 Checksum CA RecordMark : RecordLength 2 LoadOffset 0520 RecordType 00 Data F322 Checksum C4 RecordMark : RecordLength 16 LoadOffset 0522 RecordType 00 Data FAE6FB0808E6F925F0F618E6CA3AF622 Checksum DA RecordMark : RecordLength 16 LoadOffset 0532 RecordType 00 Data D083D082F8E4937012740193700DA3A3 Checksum 58 RecordMark : RecordLength 16 LoadOffset 0542 RecordType 00 Data 93F8740193F5828883E4737402936860 Checksum 6C RecordMark : RecordLength 6 LoadOffset 0552 RecordType 00 Data EFA3A3A380DF Checksum 6C RecordMark : RecordLength 16 LoadOffset 07E2 RecordType 00 Data EFB40A07740D1207ED740A309811A899 Checksum 34 RecordMark : RecordLength 16 LoadOffset 07F2 RecordType 00 Data B8130CC2983098FDA899C298B811F630 Checksum 77 RecordMark : RecordLength 7 LoadOffset 0802 RecordType 00 Data 99FDC299F59922 Checksum 4E RecordMark : RecordLength 0 LoadOffset 0000 RecordType 01 Data Checksum FF