############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 26/May/2009 12:58:52 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\pasha\elf\evil_src\miosdel\miosd elka\main.c # # Command line = "D:\pasha\elf\evil_src\miosdel\miosd elka\main.c" # # -D NEWSGOLD -D ELKA -lC "D:\pasha\elf\evil_src\miosd # # el\miosd elka\Release_ELKA\List\" -lA # # "D:\pasha\elf\evil_src\miosdel\miosd # # elka\Release_ELKA\List\" -o # # "D:\pasha\elf\evil_src\miosdel\miosd # # elka\Release_ELKA\Obj\" -s9 --no_unroll --cpu_mode # # arm --endian little --cpu ARM926EJ-S --stack_align # # 4 --interwork -e --fpu None --dlib_config # # "D:\pasha\Embedded Workbench 4.0 # # Evaluation2\ARM\LIB\dl5tpainl8n.h" -I # # "D:\pasha\Embedded Workbench 4.0 # # Evaluation2\ARM\INC\" --inline_threshold=2 # # List file = D:\pasha\elf\evil_src\miosdel\miosd # # elka\Release_ELKA\List\main.lst # # Object file = D:\pasha\elf\evil_src\miosdel\miosd # # elka\Release_ELKA\Obj\main.r79 # # # # # ############################################################################## D:\pasha\elf\evil_src\miosdel\miosd elka\main.c 1 #include "..\inc\swilib.h" 2 #include "conf_loader.h" 3 #include "gprs_write.h" 4 #include "string_works.h" 5 #include "language.h" 6 7 #define BUFSIZE 10000 8 9 extern unsigned long strtoul (const char *nptr,char **endptr,int base); 10 \ In segment DATA_Z, align 4, align-sorted 11 CSM_DESC icsmd; \ icsmd: \ 00000000 DS8 40 12 int ker_state; 13 14 int r_s=20; 15 int r_m; 16 int r_h; 17 //int r_d; 18 19 \ In segment DATA_Z, align 4, align-sorted 20 int (*old_icsm_onMessage)(CSM_RAM*,GBS_MSG*); \ old_icsm_onMessage: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 21 void (*old_icsm_onClose)(CSM_RAM*); \ old_icsm_onClose: \ 00000000 DS8 4 22 \ In segment DATA_Z, align 4, align-sorted 23 unsigned short maincsm_name_body[140]; \ maincsm_name_body: \ 00000000 DS8 280 \ In segment DATA_C, align 4, align-sorted 24 const int minus11=-11; \ minus11: \ 00000000 F5FFFFFF DC32 -11 25 int MAINCSM_ID; 26 int first_con; 27 int key_mode; 28 29 typedef struct 30 { 31 CSM_RAM csm; 32 int gui_id; 33 }MAIN_CSM; 34 35 typedef struct 36 { 37 GUI gui; 38 WSHDR *ws1; 39 WSHDR *ws2; 40 int i1; 41 }MAIN_GUI; 42 43 int pos; 44 int phase; 45 int pos_main_x; 46 int pos_main_y; 47 int lock_keys; 48 GBSTMR mytmr; 49 int pos_link_x; 50 int pos_link_y; 51 int pos_msg_x; 52 int pos_msg_y; 53 char chinfo[32]; \ In segment DATA_Z, align 4, align-sorted 54 char start_g[32]; \ start_g: \ 00000000 DS8 32 55 char start_g2[32]; 56 57 //=================weather 58 char temp[32]; 59 char temp2[32]; 60 char vejsh2[32]; 61 char weather_time[32]; 62 extern const char city_name[64]; 63 extern const unsigned int TID; 64 char pressure[64]; 65 char pressure2[64]; 66 char wind[64]; 67 int engade_weather; 68 //================weather 69 70 IMGHDR screen={0,0,8,""}; 71 \ In segment CODE, align 4, keep-with-next 72 void DrwImg2(IMGHDR *img, int x, int y, char *pen, char *brush) 73 { \ DrwImg2: \ 00000000 70402DE9 PUSH {R4-R6,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 \ 00000008 3C609DE5 LDR R6,[SP, #+60] \ 0000000C 0040A0E1 MOV R4,R0 74 RECT rc; 75 DRWOBJ drwobj; 76 StoreXYWHtoRECT(&rc,x,y,img->w,img->h); \ 00000010 B200D4E1 LDRH R0,[R4, #+2] \ 00000014 0350A0E1 MOV R5,R3 \ 00000018 01002DE9 PUSH {R0} \ 0000001C B030D4E1 LDRH R3,[R4, #+0] \ 00000020 04008DE2 ADD R0,SP,#+4 \ 00000024 330100EF SWI +307 77 SetPropTo_Obj5(&drwobj,&rc,0,img); \ 00000028 0430A0E1 MOV R3,R4 \ 0000002C 0020A0E3 MOV R2,#+0 \ 00000030 04108DE2 ADD R1,SP,#+4 \ 00000034 0C008DE2 ADD R0,SP,#+12 \ 00000038 510100EF SWI +337 78 SetColor(&drwobj,pen,brush); \ 0000003C 0620A0E1 MOV R2,R6 \ 00000040 0510A0E1 MOV R1,R5 \ 00000044 0C008DE2 ADD R0,SP,#+12 \ 00000048 4B0100EF SWI +331 79 DrawObject(&drwobj); \ 0000004C 0C008DE2 ADD R0,SP,#+12 \ 00000050 2A0100EF SWI +298 80 } \ 00000054 30D08DE2 ADD SP,SP,#+48 \ 00000058 7080BDE8 POP {R4-R6,PC} ;; return 81 \ In segment CODE, align 4, keep-with-next 82 void DoScreen() 83 { \ DoScreen: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 84 int ScrH=ScreenH(); 85 int ScrW=ScreenW(); 86 char *ms=RamScreenBuffer(); 87 screen.w=ScrW; \ 00000004 ........ LDR R7,??DataTable0 ;; screen \ 00000008 898100EF SWI +33161 \ 0000000C 0040A0E1 MOV R4,R0 \ 00000010 888100EF SWI +33160 \ 00000014 0050A0E1 MOV R5,R0 \ 00000018 E08000EF SWI +32992 \ 0000001C 0060A0E1 MOV R6,R0 88 screen.h=ScrH; 89 screen.bitmap=malloc(ScrW*ScrH*2); \ 00000020 940500E0 MUL R0,R4,R5 \ 00000024 B050C7E1 STRH R5,[R7, #+0] \ 00000028 B240C7E1 STRH R4,[R7, #+2] \ 0000002C 8040A0E1 LSL R4,R0,#+1 \ 00000030 0400A0E1 MOV R0,R4 \ 00000034 140000EF SWI +20 \ 00000038 080087E5 STR R0,[R7, #+8] 90 memcpy(screen.bitmap, ms, ScrW*ScrH*2); \ 0000003C 0420A0E1 MOV R2,R4 \ 00000040 0610A0E1 MOV R1,R6 \ 00000044 1E0100EF SWI +286 91 } \ 00000048 F080BDE8 POP {R4-R7,PC} ;; return 92 93 int app_pos=1; 94 int pos_link2_x; 95 int pos_link2_y; 96 \ In segment CODE, align 4, keep-with-next 97 void DoShowIt() 98 { \ DoShowIt: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} 99 switch(phase) \ 00000004 ........ LDR R4,??DataTable8 ;; screen \ 00000008 3C0094E5 LDR R0,[R4, #+60] \ 0000000C 2CA094E5 LDR R10,[R4, #+44] \ 00000010 282094E5 LDR R2,[R4, #+40] \ 00000014 30E094E5 LDR LR,[R4, #+48] \ 00000018 243094E5 LDR R3,[R4, #+36] \ 0000001C 489094E5 LDR R9,[R4, #+72] \ 00000020 58C094E5 LDR R12,[R4, #+88] \ 00000024 54739FE5 LDR R7,??DoShowIt_1 ;; DoShowIt \ 00000028 011040E2 SUB R1,R0,#+1 \ 0000002C 0250A0E3 MOV R5,#+2 \ 00000030 666FA0E3 MOV R6,#+408 \ 00000034 0780A0E3 MOV R8,#+7 \ 00000038 01A04AE2 SUB R10,R10,#+1 \ 0000003C 07005AE3 CMP R10,#+7 \ 00000040 F08FBD88 POPHI {R4-R11,PC} \ 00000044 01BF8FE2 ADR R11,??DoShowIt_0 \ 00000048 0AB0DBE7 LDRB R11,[R11, R10] \ 0000004C 0BF18FE0 ADD PC,PC,R11, LSL #+2 \ ??DoShowIt_0: \ 00000050 011B5760 DC8 +1,+27,+87,+96 \ 00000054 8092B1BF DC8 +128,+146,+177,+191 100 { 101 case 1: 102 { 103 if(key_mode==1) \ ??DoShowIt_2: \ 00000058 010053E3 CMP R3,#+1 \ 0000005C 0800001A BNE ??DoShowIt_3 104 { 105 if(pos_main_x<0) \ 00000060 00005EE3 CMP LR,#+0 106 { 107 pos_main_x++; \ 00000064 01008E42 ADDMI R0,LR,#+1 \ 00000068 30008445 STRMI R0,[R4, #+48] 108 } 109 else 110 phase=2; \ 0000006C 2C508455 STRPL R5,[R4, #+44] 111 DirectRedrawGUI(); \ 00000070 3F0100EF SWI +319 112 GBS_StartTimerProc(&mytmr, 5, DoShowIt); \ 00000074 0720A0E1 MOV R2,R7 \ 00000078 0510A0E3 MOV R1,#+5 \ 0000007C 040086E0 ADD R0,R6,R4 \ 00000080 4D0000EF SWI +77 113 } 114 if(key_mode==2) \ ??DoShowIt_3: \ 00000084 240094E5 LDR R0,[R4, #+36] \ 00000088 020050E3 CMP R0,#+2 \ 0000008C F08FBD18 POPNE {R4-R11,PC} 115 { 116 if(pos_main_x>112) \ 00000090 300094E5 LDR R0,[R4, #+48] \ 00000094 710050E3 CMP R0,#+113 117 { 118 pos_main_x--; \ 00000098 010040A2 SUBGE R0,R0,#+1 \ 0000009C 300084A5 STRGE R0,[R4, #+48] \ 000000A0 000000AA BGE ??DoShowIt_4 119 } 120 else 121 phase=2; \ ??DoShowIt_5: \ 000000A4 2C5084E5 STR R5,[R4, #+44] 122 DirectRedrawGUI(); \ ??DoShowIt_4: \ 000000A8 3F0100EF SWI +319 123 GBS_StartTimerProc(&mytmr, 5, DoShowIt); \ 000000AC 0720A0E1 MOV R2,R7 \ 000000B0 0510A0E3 MOV R1,#+5 \ 000000B4 040086E0 ADD R0,R6,R4 \ 000000B8 4D0000EF SWI +77 124 } 125 } 126 break; 127 case 2: 128 { 129 if(key_mode==1) 130 { 131 if(pos_link_x<20) 132 { 133 pos_link_x++; 134 DirectRedrawGUI(); 135 } 136 else 137 { 138 DirectRedrawGUI(); 139 if(pos==5) 140 { 141 pos_msg_y=pos_link_y-34; //elka 142 pos_link2_y=pos_msg_y+24; 143 pos_link2_x=pos_msg_x-12+(app_pos*20); 144 phase=7; 145 } 146 else 147 phase=3; 148 } 149 GBS_StartTimerProc(&mytmr, 5, DoShowIt); 150 } 151 if(key_mode==2) 152 { 153 if(pos_link_x>102) 154 { 155 pos_link_x--; 156 DirectRedrawGUI(); 157 } 158 else 159 { 160 DirectRedrawGUI(); 161 if(pos==5) 162 { 163 pos_msg_y=pos_link_y-34; //elka 164 pos_link2_y=pos_msg_y+24; 165 pos_link2_x=pos_msg_x-12+(app_pos*20); 166 phase=7; 167 } 168 else 169 phase=3; 170 } 171 GBS_StartTimerProc(&mytmr, 5, DoShowIt); 172 } 173 } 174 break; 175 case 3: 176 { 177 if(pos==5) 178 { 179 pos_msg_y=pos_link_y-34; //elak 180 } 181 else 182 pos_msg_y=pos_link_y-56; //elak 183 lock_keys=1; 184 DirectRedrawGUI(); 185 } 186 break; 187 case 4: 188 { 189 if(key_mode==1) 190 { 191 if(pos_link_x>10) 192 { 193 pos_link_x--; 194 } 195 else 196 { 197 pos_link_y=pos_main_y-12+(pos*20); 198 phase=2; 199 } 200 DirectRedrawGUI(); 201 GBS_StartTimerProc(&mytmr, 5, DoShowIt); 202 } 203 if(key_mode==2) 204 { 205 if(pos_link_x<112) 206 { 207 pos_link_x++; 208 } 209 else 210 { 211 pos_link_y=pos_main_y-12+(pos*20); 212 phase=2; 213 } 214 DirectRedrawGUI(); 215 GBS_StartTimerProc(&mytmr, 5, DoShowIt); 216 } 217 } 218 break; 219 case 5: 220 { 221 if(key_mode==1) 222 { 223 if(pos_link_x>10) 224 pos_link_x--; 225 else 226 phase=6; 227 DirectRedrawGUI(); 228 GBS_StartTimerProc(&mytmr, 5, DoShowIt); 229 } 230 if(key_mode==2) 231 { 232 if(pos_link_x<112) 233 pos_link_x++; 234 else 235 phase=6; 236 DirectRedrawGUI(); 237 GBS_StartTimerProc(&mytmr, 5, DoShowIt); 238 } 239 } 240 break; 241 case 6: 242 { 243 if(key_mode==1) 244 { 245 if(pos_main_x>-20) 246 { 247 pos_main_x--; 248 DirectRedrawGUI(); 249 GBS_StartTimerProc(&mytmr, 5, DoShowIt); 250 } 251 else 252 CloseCSM(MAINCSM_ID); 253 } 254 if(key_mode==2) 255 { 256 if(pos_main_x<132) 257 { 258 pos_main_x++; 259 DirectRedrawGUI(); 260 GBS_StartTimerProc(&mytmr, 5, DoShowIt); 261 } 262 else 263 CloseCSM(MAINCSM_ID); 264 } 265 } 266 break; 267 case 7: 268 { 269 if(pos_link2_y>(pos_msg_y+14)) 270 { 271 pos_link2_y--; 272 } 273 else 274 phase=3; 275 DirectRedrawGUI(); 276 GBS_StartTimerProc(&mytmr, 3, DoShowIt); 277 } 278 break; 279 case 8: 280 { 281 { 282 if(pos_link2_y` \ 00000014 0D00A0E1 MOV R0,SP \ 00000018 B40000EF SWI +180 \ 0000001C 0400DDE5 LDRB R0,[SP, #+4] \ 00000020 9A4FA0E3 MOV R4,#+616 \ 00000024 010050E3 CMP R0,#+1 \ 00000028 0200001A BNE ??get_month_1 \ 0000002C 541086E2 ADD R1,R6,#+84 \ 00000030 050084E0 ADD R0,R4,R5 \ 00000034 1A0000EF SWI +26 354 if(date.month==2) strcpy(month, "Февраль"); \ ??get_month_1: \ 00000038 0400DDE5 LDRB R0,[SP, #+4] \ 0000003C 020050E3 CMP R0,#+2 \ 00000040 0200001A BNE ??get_month_2 \ 00000044 4C1086E2 ADD R1,R6,#+76 \ 00000048 050084E0 ADD R0,R4,R5 \ 0000004C 1A0000EF SWI +26 355 if(date.month==3) strcpy(month, "Март"); \ ??get_month_2: \ 00000050 0400DDE5 LDRB R0,[SP, #+4] \ 00000054 030050E3 CMP R0,#+3 \ 00000058 0200001A BNE ??get_month_3 \ 0000005C 441086E2 ADD R1,R6,#+68 \ 00000060 050084E0 ADD R0,R4,R5 \ 00000064 1A0000EF SWI +26 356 if(date.month==4) strcpy(month, "Апрель"); \ ??get_month_3: \ 00000068 0400DDE5 LDRB R0,[SP, #+4] \ 0000006C 040050E3 CMP R0,#+4 \ 00000070 0200001A BNE ??get_month_4 \ 00000074 3C1086E2 ADD R1,R6,#+60 \ 00000078 050084E0 ADD R0,R4,R5 \ 0000007C 1A0000EF SWI +26 357 if(date.month==5) strcpy(month, "Май"); \ ??get_month_4: \ 00000080 0400DDE5 LDRB R0,[SP, #+4] \ 00000084 050050E3 CMP R0,#+5 \ 00000088 0200001A BNE ??get_month_5 \ 0000008C 2E1F8FE2 ADR R1,??get_month_0 ;; "Май" \ 00000090 050084E0 ADD R0,R4,R5 \ 00000094 1A0000EF SWI +26 358 if(date.month==6) strcpy(month, "Июнь"); \ ??get_month_5: \ 00000098 0400DDE5 LDRB R0,[SP, #+4] \ 0000009C 060050E3 CMP R0,#+6 \ 000000A0 0200001A BNE ??get_month_6 \ 000000A4 341086E2 ADD R1,R6,#+52 \ 000000A8 050084E0 ADD R0,R4,R5 \ 000000AC 1A0000EF SWI +26 359 if(date.month==7) strcpy(month, "Июль"); \ ??get_month_6: \ 000000B0 0400DDE5 LDRB R0,[SP, #+4] \ 000000B4 070050E3 CMP R0,#+7 \ 000000B8 0200001A BNE ??get_month_7 \ 000000BC 2C1086E2 ADD R1,R6,#+44 \ 000000C0 050084E0 ADD R0,R4,R5 \ 000000C4 1A0000EF SWI +26 360 if(date.month==8) strcpy(month, "Август"); \ ??get_month_7: \ 000000C8 0400DDE5 LDRB R0,[SP, #+4] \ 000000CC 080050E3 CMP R0,#+8 \ 000000D0 0200001A BNE ??get_month_8 \ 000000D4 241086E2 ADD R1,R6,#+36 \ 000000D8 050084E0 ADD R0,R4,R5 \ 000000DC 1A0000EF SWI +26 361 if(date.month==9) strcpy(month, "Сентябрь"); \ ??get_month_8: \ 000000E0 0400DDE5 LDRB R0,[SP, #+4] \ 000000E4 090050E3 CMP R0,#+9 \ 000000E8 0200001A BNE ??get_month_9 \ 000000EC 181086E2 ADD R1,R6,#+24 \ 000000F0 050084E0 ADD R0,R4,R5 \ 000000F4 1A0000EF SWI +26 362 if(date.month==10) strcpy(month, "Октябрь"); \ ??get_month_9: \ 000000F8 0400DDE5 LDRB R0,[SP, #+4] \ 000000FC 0A0050E3 CMP R0,#+10 \ 00000100 0200001A BNE ??get_month_10 \ 00000104 101086E2 ADD R1,R6,#+16 \ 00000108 050084E0 ADD R0,R4,R5 \ 0000010C 1A0000EF SWI +26 363 if(date.month==11) strcpy(month, "Ноябрь"); \ ??get_month_10: \ 00000110 0400DDE5 LDRB R0,[SP, #+4] \ 00000114 0B0050E3 CMP R0,#+11 \ 00000118 0200001A BNE ??get_month_11 \ 0000011C 081086E2 ADD R1,R6,#+8 \ 00000120 050084E0 ADD R0,R4,R5 \ 00000124 1A0000EF SWI +26 364 if(date.month==12) strcpy(month, "Декабрь"); \ ??get_month_11: \ 00000128 0400DDE5 LDRB R0,[SP, #+4] \ 0000012C 0C0050E3 CMP R0,#+12 \ 00000130 0200001A BNE ??get_month_12 \ 00000134 0610A0E1 MOV R1,R6 \ 00000138 050084E0 ADD R0,R4,R5 \ 0000013C 1A0000EF SWI +26 365 monthc=date.month; \ ??get_month_12: \ 00000140 0400DDE5 LDRB R0,[SP, #+4] \ 00000144 600085E5 STR R0,[R5, #+96] 366 } \ 00000148 7380BDE8 POP {R0,R1,R4-R6,PC} ;; return \ ??get_month_0: \ 0000014C CCE0E900 DC8 "Май" \ 00000150 ........ DC32 `?` 367 \ In segment CODE, align 4, keep-with-next 368 void DrawSystemLog() 369 { \ DrawSystemLog: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} 370 //ttttttt 371 int ram = GetFreeRamAvail(); 372 ram=ram/1024; 373 WSHDR *ws=AllocWS(64); 374 wsprintf(ws, "[%t]", LG_SYSI); \ 00000004 ........ LDR R6,??DataTable9 ;; `?` \ 0000000C 0100A0E3 MOV R0,#+1 \ 00000010 3B0200EF SWI +571 \ 00000014 0000A0E3 MOV R0,#+0 \ 00000018 01002DE9 PUSH {R0} \ 0000001C 0030A0E3 MOV R3,#+0 \ 00000020 0020A0E1 MOV R2,R0 \ 00000024 0010A0E1 MOV R1,R0 \ 00000028 0400A0E1 MOV R0,R4 \ 0000002C ........ BL DrwImg2 \ 00000030 F18000EF SWI +33009 \ 00000034 2C0094E5 LDR R0,[R4, #+44] \ 00000038 786085E2 ADD R6,R5,#+120 \ 0000003C 602085E2 ADD R2,R5,#+96 \ 00000040 04D08DE2 ADD SP,SP,#+4 \ 00000044 010040E2 SUB R0,R0,#+1 \ 00000048 050050E3 CMP R0,#+5 \ 0000004C 7080BD88 POPHI {R4-R6,PC} \ 00000050 011F8FE2 ADR R1,??OnRedraw_0 \ 00000054 0010D1E7 LDRB R1,[R1, R0] \ 00000058 01F18FE0 ADD PC,PC,R1, LSL #+2 \ ??OnRedraw_0: \ 0000005C 04010901 DC8 +4,+1,+9,+1 \ 00000060 01040000 DC8 +1,+4,+0,+0 509 { 510 case 1: 511 DrawImg(pos_main_x, pos_main_y, (int)"4:\\zbin\\miosd\\img1.png"); 512 break; 513 case 2: 514 DrawImg(pos_link_x, pos_link_y, (int)"4:\\zbin\\miosd\\img2.png"); \ ??OnRedraw_2: \ 00000064 401094E5 LDR R1,[R4, #+64] \ 00000068 3C0094E5 LDR R0,[R4, #+60] \ 0000006C 230000EF SWI +35 515 DrawImg(pos_main_x, pos_main_y, (int)"4:\\zbin\\miosd\\img1.png"); \ ??OnRedraw_3: \ 00000070 341094E5 LDR R1,[R4, #+52] \ 00000074 300094E5 LDR R0,[R4, #+48] \ 00000078 0620A0E1 MOV R2,R6 \ 0000007C 230000EF SWI +35 \ 00000080 7080BDE8 POP {R4-R6,PC} 516 break; 517 case 3: 518 if(pos==5) \ ??OnRedraw_4: \ 00000084 283094E5 LDR R3,[R4, #+40] \ 00000088 3C0094E5 LDR R0,[R4, #+60] \ 0000008C 401094E5 LDR R1,[R4, #+64] \ 00000090 050053E3 CMP R3,#+5 \ 00000094 1500001A BNE ??OnRedraw_5 519 { 520 DrawImg(pos_link_x, pos_link_y, (int)"4:\\zbin\\miosd\\img2.png"); \ 00000098 230000EF SWI +35 521 DrawImg(pos_main_x, pos_main_y, (int)"4:\\zbin\\miosd\\img1.png"); \ 0000009C 341094E5 LDR R1,[R4, #+52] \ 000000A0 300094E5 LDR R0,[R4, #+48] \ 000000A4 0620A0E1 MOV R2,R6 \ 000000A8 230000EF SWI +35 522 DrawImg(pos_link2_x, pos_link2_y, (int)"4:\\zbin\\miosd\\img6.png"); \ 000000AC 581094E5 LDR R1,[R4, #+88] \ 000000B0 540094E5 LDR R0,[R4, #+84] \ 000000B4 482085E2 ADD R2,R5,#+72 \ 000000B8 230000EF SWI +35 523 if(app_pos==1) \ 000000BC 500094E5 LDR R0,[R4, #+80] \ 000000C0 302085E2 ADD R2,R5,#+48 \ 000000C4 010050E3 CMP R0,#+1 \ 000000C8 580094E5 LDR R0,[R4, #+88] \ 000000CC 181040E2 SUB R1,R0,#+24 \ 000000D0 540094E5 LDR R0,[R4, #+84] 524 DrawImg(pos_link2_x-10, pos_link2_y-24, (int)"4:\\zbin\\miosd\\img7.png"); \ 000000D4 0A004002 SUBEQ R0,R0,#+10 525 else 526 DrawImg(pos_link2_x-20, pos_link2_y-24, (int)"4:\\zbin\\miosd\\img7.png"); \ 000000D8 14004012 SUBNE R0,R0,#+20 \ 000000DC 230000EF SWI +35 527 // DrawAppLog(); 528 DrawImg(pos_msg_x, pos_msg_y+24, (int)"4:\\zbin\\miosd\\img4.png"); \ 000000E0 480094E5 LDR R0,[R4, #+72] \ 000000E4 182085E2 ADD R2,R5,#+24 \ 000000E8 181080E2 ADD R1,R0,#+24 \ 000000EC 060000EA B ??OnRedraw_6 529 } 530 else 531 { 532 DrawImg(pos_link_x, pos_link_y, (int)"4:\\zbin\\miosd\\img2.png"); \ ??OnRedraw_5: \ 000000F0 230000EF SWI +35 533 DrawImg(pos_main_x, pos_main_y, (int)"4:\\zbin\\miosd\\img1.png"); \ 000000F4 341094E5 LDR R1,[R4, #+52] \ 000000F8 300094E5 LDR R0,[R4, #+48] \ 000000FC 0620A0E1 MOV R2,R6 \ 00000100 230000EF SWI +35 534 DrawImg(pos_msg_x, pos_msg_y, (int)"4:\\zbin\\miosd\\img3.png"); \ 00000104 481094E5 LDR R1,[R4, #+72] \ 00000108 0520A0E1 MOV R2,R5 \ ??OnRedraw_6: \ 0000010C 440094E5 LDR R0,[R4, #+68] 535 } 536 537 switch(pos) \ 00000110 70609FE5 LDR R6,??OnRedraw_1+0x4 ;; reboot_ref \ 00000114 230000EF SWI +35 \ 00000118 280094E5 LDR R0,[R4, #+40] \ 0000011C 9C5FA0E3 MOV R5,#+624 \ 00000120 010050E2 SUBS R0,R0,#+1 \ 00000124 0600000A BEQ ??OnRedraw_7 \ 00000128 010050E2 SUBS R0,R0,#+1 \ 0000012C 0600000A BEQ ??OnRedraw_8 \ 00000130 010050E2 SUBS R0,R0,#+1 \ 00000134 0A00000A BEQ ??OnRedraw_9 \ 00000138 010050E2 SUBS R0,R0,#+1 \ 0000013C 0A00000A BEQ ??OnRedraw_10 \ 00000140 7080BDE8 POP {R4-R6,PC} 538 { 539 case 1: 540 DrawWeatherLog(); \ ??OnRedraw_7: \ 00000144 ........ BL DrawWeatherLog 541 GBS_StartTimerProc(&mytmr2, 216, reboot_ref); \ 00000148 000000EA B ??OnRedraw_11 542 break; 543 case 2: 544 DrawBatteryLog(); \ ??OnRedraw_8: \ 0000014C ........ BL DrawBatteryLog 545 GBS_StartTimerProc(&mytmr2, 216, reboot_ref); \ ??OnRedraw_11: \ 00000150 0620A0E1 MOV R2,R6 \ 00000154 D810A0E3 MOV R1,#+216 \ 00000158 040085E0 ADD R0,R5,R4 \ 0000015C 4D0000EF SWI +77 \ 00000160 7080BDE8 POP {R4-R6,PC} 546 break; 547 case 3: 548 DrawGPRSLog(); \ ??OnRedraw_9: \ 00000164 ........ BL DrawGPRSLog 549 GBS_StartTimerProc(&mytmr2, 216, reboot_ref); \ 00000168 F8FFFFEA B ??OnRedraw_11 550 break; 551 case 4: 552 DrawSystemLog(); \ ??OnRedraw_10: \ 0000016C ........ BL DrawSystemLog 553 GBS_StartTimerProc(&mytmr2, 216, reboot_ref); \ 00000170 0620A0E1 MOV R2,R6 \ 00000174 D810A0E3 MOV R1,#+216 \ 00000178 040085E0 ADD R0,R5,R4 \ 0000017C 4D0000EF SWI +77 554 break; 555 /* case 5: 556 switch(app_pos) 557 { 558 case 1: 559 DrawImg(pos_msg_x, pos_msg_y+24, (int)"4:\\zbin\\miosd\\img5.png"); 560 DrawImg(pos_msg_x, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app1.png"); 561 DrawImg(pos_msg_x+20, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app2.png"); 562 DrawImg(pos_msg_x+40, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app3.png"); 563 GBS_StartTimerProc(&mytmr2, 216, reboot_ref); 564 break; 565 case 2: 566 DrawImg(pos_msg_x+20, pos_msg_y+24, (int)"4:\\zbin\\miosd\\img5.png"); 567 DrawImg(pos_msg_x, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app1.png"); 568 DrawImg(pos_msg_x+20, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app2.png"); 569 DrawImg(pos_msg_x+40, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app3.png"); 570 GBS_StartTimerProc(&mytmr2, 216, reboot_ref); 571 break; 572 case 3: 573 DrawImg(pos_msg_x+40, pos_msg_y+24, (int)"4:\\zbin\\miosd\\img5.png"); 574 DrawImg(pos_msg_x, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app1.png"); 575 DrawImg(pos_msg_x+20, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app2.png"); 576 DrawImg(pos_msg_x+40, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app3.png"); 577 GBS_StartTimerProc(&mytmr2, 216, reboot_ref); 578 break; 579 } 580 break;*/ 581 } 582 break; 583 case 4: 584 DrawImg(pos_link_x, pos_link_y, (int)"4:\\zbin\\miosd\\img2.png"); 585 DrawImg(pos_main_x, pos_main_y, (int)"4:\\zbin\\miosd\\img1.png"); 586 break; 587 case 5: 588 DrawImg(pos_link_x, pos_link_y, (int)"4:\\zbin\\miosd\\img2.png"); 589 DrawImg(pos_main_x, pos_main_y, (int)"4:\\zbin\\miosd\\img1.png"); 590 break; 591 case 6: 592 DrawImg(pos_main_x, pos_main_y, (int)"4:\\zbin\\miosd\\img1.png"); 593 break; 594 /* case 7: 595 case 8: 596 DrawImg(pos_link_x, pos_link_y, (int)"4:\\zbin\\miosd\\img2.png"); 597 DrawImg(pos_main_x, pos_main_y, (int)"4:\\zbin\\miosd\\img1.png"); 598 DrawImg(pos_link2_x, pos_link2_y, (int)"4:\\zbin\\miosd\\img6.png"); 599 DrawImg(pos_msg_x, pos_msg_y+24, (int)"4:\\zbin\\miosd\\img4.png"); 600 switch(app_pos) 601 { 602 case 1: 603 DrawImg(pos_msg_x, pos_msg_y+24, (int)"4:\\zbin\\miosd\\img5.png"); 604 DrawImg(pos_msg_x, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app1.png"); 605 DrawImg(pos_msg_x+20, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app2.png"); 606 DrawImg(pos_msg_x+40, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app3.png"); 607 break; 608 case 2: 609 DrawImg(pos_msg_x+20, pos_msg_y+24, (int)"4:\\zbin\\miosd\\img5.png"); 610 DrawImg(pos_msg_x, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app1.png"); 611 DrawImg(pos_msg_x+20, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app2.png"); 612 DrawImg(pos_msg_x+40, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app3.png"); 613 break; 614 case 3: 615 DrawImg(pos_msg_x+40, pos_msg_y+24, (int)"4:\\zbin\\miosd\\img5.png"); 616 DrawImg(pos_msg_x, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app1.png"); 617 DrawImg(pos_msg_x+20, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app2.png"); 618 DrawImg(pos_msg_x+40, pos_msg_y+24, (int)"4:\\zbin\\miosd\\app3.png"); 619 break; 620 } 621 break;*/ 622 } 623 } \ ??OnRedraw_12: \ 00000180 7080BDE8 POP {R4-R6,PC} ;; return \ ??OnRedraw_1: \ 00000184 ........ DC32 `?` \ 00000188 ........ DC32 reboot_ref 624 \ In segment CODE, align 4, keep-with-next 625 void onCreate(MAIN_GUI *data, void *(*malloc_adr)(int)) //Create 626 { \ onCreate: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 0040A0E1 MOV R4,R0 627 DisableIconBar(1); \ 00000008 0100A0E3 MOV R0,#+1 \ 0000000C 3B0200EF SWI +571 628 // Тут можно создать переменные 629 data->gui.state=1; \ 00000010 0100A0E3 MOV R0,#+1 \ 00000014 0C00C4E5 STRB R0,[R4, #+12] 630 // pos=1; 631 } \ 00000018 1080BDE8 POP {R4,PC} ;; return 632 \ In segment CODE, align 4, keep-with-next 633 void onClose(MAIN_GUI *data, void (*mfree_adr)(void *)) //Close 634 { \ onClose: \ 00000000 70402DE9 PUSH {R4-R6,LR} 635 ker_state=0; \ 00000004 ........ LDR R5,??DataTable12 ;; screen \ 00000008 0040A0E1 MOV R4,R0 \ 0000000C 0060A0E3 MOV R6,#+0 \ 00000010 0C6085E5 STR R6,[R5, #+12] 636 DisableIconBar(0); \ 00000014 0000A0E3 MOV R0,#+0 \ 00000018 3B0200EF SWI +571 637 mfree(screen.bitmap); \ 0000001C 080095E5 LDR R0,[R5, #+8] \ 00000020 150000EF SWI +21 638 // Тут можно освободить выделяемую память 639 data->gui.state=0; \ 00000024 0C60C4E5 STRB R6,[R4, #+12] 640 } \ 00000028 7080BDE8 POP {R4-R6,PC} ;; return 641 \ In segment CODE, align 4, keep-with-next 642 void onFocus(MAIN_GUI *data, void *(*malloc_adr)(int), void (*mfree_adr)(void *))//Focus 643 { 644 data->gui.state=2; \ onFocus: \ 00000000 0210A0E3 MOV R1,#+2 \ 00000004 0C10C0E5 STRB R1,[R0, #+12] 645 } \ 00000008 1EFF2FE1 BX LR ;; return 646 \ In segment CODE, align 4, keep-with-next 647 void onUnfocus(MAIN_GUI *data, void (*mfree_adr)(void *)) //Unfocus 648 { \ onUnfocus: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 0040A0E1 MOV R4,R0 649 CloseCSM(MAINCSM_ID); \ 00000008 18009FE5 LDR R0,??onUnfocus_0 ;; screen + 28 \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 FC0100EF SWI +508 650 if (data->gui.state!=2) return; \ 00000014 0C00D4E5 LDRB R0,[R4, #+12] \ 00000018 020050E3 CMP R0,#+2 651 data->gui.state=1; \ 0000001C 0100A003 MOVEQ R0,#+1 \ 00000020 0C00C405 STRBEQ R0,[R4, #+12] 652 } \ 00000024 1080BDE8 POP {R4,PC} ;; return \ ??onUnfocus_0: \ 00000028 ........ DC32 screen + 28 653 654 void create_connect(void); 655 \ In segment CODE, align 4, keep-with-next 656 int OnKey(MAIN_GUI *data, GUI_MSG *msg) //OnKey 657 { \ OnKey: \ 00000000 F0412DE9 PUSH {R4-R8,LR} 658 if(lock_keys) \ 00000004 ........ LDR R4,??DataTable24 ;; screen \ 00000008 0150A0E1 MOV R5,R1 \ 0000000C 380094E5 LDR R0,[R4, #+56] \ 00000010 000050E3 CMP R0,#+0 \ 00000014 F081BD08 POPEQ {R4-R8,PC} 659 { 660 DirectRedrawGUI(); \ 00000018 3F0100EF SWI +319 661 if (msg->gbsmsg->msg==KEY_DOWN) \ 0000001C 040095E5 LDR R0,[R5, #+4] \ 00000020 9320A0E3 MOV R2,#+147 \ 00000024 041090E5 LDR R1,[R0, #+4] \ 00000028 402F82E3 ORR R2,R2,#0x100 \ 0000002C 020051E1 CMP R1,R2 \ 00000030 2400001A BNE ??OnKey_1 662 { 663 switch(msg->gbsmsg->submess) \ 00000034 080090E5 LDR R0,[R0, #+8] \ 00000038 501094E5 LDR R1,[R4, #+80] \ 0000003C 282094E5 LDR R2,[R4, #+40] \ 00000040 0330A0E3 MOV R3,#+3 \ 00000044 9CCFA0E3 MOV R12,#+624 \ 00000048 0150A0E3 MOV R5,#+1 \ 0000004C 08E0A0E3 MOV LR,#+8 \ 00000050 0460A0E3 MOV R6,#+4 \ 00000054 0070A0E3 MOV R7,#+0 \ 00000058 040040E2 SUB R0,R0,#+4 \ 0000005C 3A0050E3 CMP R0,#+58 \ 00000060 1800008A BHI ??OnKey_1 \ 00000064 018F8FE2 ADR R8,??OnKey_0 \ 00000068 0080D8E7 LDRB R8,[R8, R0] \ 0000006C 08F18FE0 ADD PC,PC,R8, LSL #+2 \ ??OnKey_0: \ 00000070 29151515 DC8 +41,+21,+21,+21 \ 00000074 15151515 DC8 +21,+21,+21,+21 \ 00000078 15151515 DC8 +21,+21,+21,+21 \ 0000007C 15151515 DC8 +21,+21,+21,+21 \ 00000080 15151515 DC8 +21,+21,+21,+21 \ 00000084 15151515 DC8 +21,+21,+21,+21 \ 00000088 15151515 DC8 +21,+21,+21,+21 \ 0000008C 15151515 DC8 +21,+21,+21,+21 \ 00000090 15151515 DC8 +21,+21,+21,+21 \ 00000094 15151515 DC8 +21,+21,+21,+21 \ 00000098 15151515 DC8 +21,+21,+21,+21 \ 0000009C 150E171A DC8 +21,+14,+23,+26 \ 000000A0 1C1E1515 DC8 +28,+30,+21,+21 \ 000000A4 15151557 DC8 +21,+21,+21,+87 \ 000000A8 4E363F00 DC8 +78,+54,+63,+0 664 { 665 case '1' : 666 pos = 1; \ ??OnKey_2: \ 000000AC 285084E5 STR R5,[R4, #+40] 667 ffq=1; \ ??OnKey_3: \ 000000B0 745084E5 STR R5,[R4, #+116] 668 GBS_DelTimer(&mytmr2); \ 000000B4 04008CE0 ADD R0,R12,R4 \ 000000B8 8C0100EF SWI +396 669 lock_keys=0; \ ??OnKey_4: \ 000000BC 387084E5 STR R7,[R4, #+56] 670 phase=4; \ 000000C0 2C6084E5 STR R6,[R4, #+44] 671 DoShowIt(); \ ??OnKey_5: \ 000000C4 ........ BL DoShowIt 672 break; 673 case '2' : 674 pos = 2; 675 ffq=1; 676 GBS_DelTimer(&mytmr2); 677 lock_keys=0; 678 phase=4; 679 DoShowIt(); 680 break; 681 case '3' : 682 pos = 3; 683 ffq=1; 684 GBS_DelTimer(&mytmr2); 685 lock_keys=0; 686 phase=4; 687 DoShowIt(); 688 break; 689 case '4' : 690 pos = 4; 691 ffq=1; 692 GBS_DelTimer(&mytmr2); 693 lock_keys=0; 694 phase=4; 695 DoShowIt(); 696 break; 697 case 0x35: 698 if(pos==1) 699 { 700 ffq=1; 701 GBS_DelTimer(&mytmr2); 702 engade_weather=0; 703 SUBPROC((void *)create_connect); 704 DirectRedrawGUI(); 705 } 706 break; 707 case RIGHT_SOFT: 708 if(key_mode==1) goto set1; 709 else goto set2; 710 case LEFT_BUTTON: 711 if((pos==5)&&(app_pos>1)) 712 { 713 app_pos--; 714 lock_keys=0; 715 phase=8; 716 DoShowIt(); 717 // DirectRedrawGUI(); 718 } 719 else 720 { 721 set1: 722 ffq=1; 723 GBS_DelTimer(&mytmr2); 724 if(key_mode==1) 725 { 726 lock_keys=0; 727 phase=5; 728 DoShowIt(); 729 } 730 } 731 break; 732 case RIGHT_BUTTON: 733 if(pos==5) 734 { 735 app_pos++; 736 if(app_pos==4) app_pos--; 737 else 738 { 739 lock_keys=0; 740 phase=8; 741 DoShowIt(); 742 // DirectRedrawGUI(); 743 } 744 } 745 else 746 { 747 set2: 748 ffq=1; 749 GBS_DelTimer(&mytmr2); 750 if(key_mode==2) 751 { 752 lock_keys=0; 753 phase=5; 754 DoShowIt(); 755 } 756 } 757 break; 758 case DOWN_BUTTON: 759 { 760 ffq=1; 761 GBS_DelTimer(&mytmr2); 762 pos++; 763 if (pos==5) pos=1; 764 lock_keys=0; 765 phase=4; 766 DoShowIt(); 767 } 768 break; 769 case UP_BUTTON: 770 { 771 ffq=1; 772 GBS_DelTimer(&mytmr2); 773 pos--; 774 if (pos==0) pos=4; 775 lock_keys=0; 776 phase=4; 777 DoShowIt(); 778 } 779 break; 780 } 781 } 782 } 783 return(0); \ ??OnKey_1: \ 000000C8 0000A0E3 MOV R0,#+0 \ 000000CC F081BDE8 POP {R4-R8,PC} ;; return \ ??OnKey_6: \ 000000D0 0200A0E3 MOV R0,#+2 \ 000000D4 280084E5 STR R0,[R4, #+40] \ 000000D8 F4FFFFEA B ??OnKey_3 \ ??OnKey_7: \ 000000DC 283084E5 STR R3,[R4, #+40] \ 000000E0 F2FFFFEA B ??OnKey_3 \ ??OnKey_8: \ 000000E4 286084E5 STR R6,[R4, #+40] \ 000000E8 F0FFFFEA B ??OnKey_3 \ ??OnKey_9: \ 000000EC 010052E3 CMP R2,#+1 \ 000000F0 F4FFFF1A BNE ??OnKey_1 \ 000000F4 745084E5 STR R5,[R4, #+116] \ 000000F8 04008CE0 ADD R0,R12,R4 \ 000000FC 8C0100EF SWI +396 \ 00000100 ........ LDR R0,??DataTable35 ;; create_connect \ 00000104 4C7084E5 STR R7,[R4, #+76] \ 00000108 710100EF SWI +369 \ 0000010C 3F0100EF SWI +319 \ 00000110 0000A0E3 MOV R0,#+0 \ 00000114 F081BDE8 POP {R4-R8,PC} \ ??OnKey_10: \ 00000118 240094E5 LDR R0,[R4, #+36] \ 0000011C 010050E3 CMP R0,#+1 \ 00000120 1A00001A BNE ??OnKey_11 \ ??OnKey_12: \ 00000124 745084E5 STR R5,[R4, #+116] \ 00000128 04008CE0 ADD R0,R12,R4 \ 0000012C 8C0100EF SWI +396 \ 00000130 240094E5 LDR R0,[R4, #+36] \ 00000134 010050E3 CMP R0,#+1 \ 00000138 E2FFFF1A BNE ??OnKey_1 \ ??OnKey_13: \ 0000013C 387084E5 STR R7,[R4, #+56] \ 00000140 0500A0E3 MOV R0,#+5 \ 00000144 2C0084E5 STR R0,[R4, #+44] \ 00000148 DDFFFFEA B ??OnKey_5 \ ??OnKey_14: \ 0000014C 050052E3 CMP R2,#+5 \ 00000150 F3FFFF1A BNE ??OnKey_12 \ 00000154 020051E3 CMP R1,#+2 \ 00000158 F1FFFFBA BLT ??OnKey_12 \ 0000015C 010041E2 SUB R0,R1,#+1 \ 00000160 500084E5 STR R0,[R4, #+80] \ ??OnKey_15: \ 00000164 387084E5 STR R7,[R4, #+56] \ 00000168 2CE084E5 STR LR,[R4, #+44] \ 0000016C D4FFFFEA B ??OnKey_5 \ ??OnKey_16: \ 00000170 050052E3 CMP R2,#+5 \ 00000174 0500001A BNE ??OnKey_11 \ 00000178 010081E2 ADD R0,R1,#+1 \ 0000017C 500084E5 STR R0,[R4, #+80] \ 00000180 040050E3 CMP R0,#+4 \ 00000184 50308405 STREQ R3,[R4, #+80] \ 00000188 CEFFFF0A BEQ ??OnKey_1 \ 0000018C F4FFFFEA B ??OnKey_15 \ ??OnKey_11: \ 00000190 745084E5 STR R5,[R4, #+116] \ 00000194 04008CE0 ADD R0,R12,R4 \ 00000198 8C0100EF SWI +396 \ 0000019C 240094E5 LDR R0,[R4, #+36] \ 000001A0 020050E3 CMP R0,#+2 \ 000001A4 C7FFFF1A BNE ??OnKey_1 \ 000001A8 E3FFFFEA B ??OnKey_13 \ ??OnKey_17: \ 000001AC 745084E5 STR R5,[R4, #+116] \ 000001B0 04008CE0 ADD R0,R12,R4 \ 000001B4 8C0100EF SWI +396 \ 000001B8 280094E5 LDR R0,[R4, #+40] \ 000001BC 010080E2 ADD R0,R0,#+1 \ 000001C0 280084E5 STR R0,[R4, #+40] \ 000001C4 050050E3 CMP R0,#+5 \ 000001C8 28508405 STREQ R5,[R4, #+40] \ ??OnKey_18: \ 000001CC BAFFFFEA B ??OnKey_4 \ ??OnKey_19: \ 000001D0 745084E5 STR R5,[R4, #+116] \ 000001D4 04008CE0 ADD R0,R12,R4 \ 000001D8 8C0100EF SWI +396 \ 000001DC 280094E5 LDR R0,[R4, #+40] \ 000001E0 010050E2 SUBS R0,R0,#+1 \ 000001E4 280084E5 STR R0,[R4, #+40] \ 000001E8 B3FFFF1A BNE ??OnKey_4 \ 000001EC 286084E5 STR R6,[R4, #+40] \ 000001F0 B1FFFFEA B ??OnKey_4 784 } 785 \ In segment CODE, align 4, keep-with-next 786 int method8(void){return(0);} \ method8: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 787 \ In segment CODE, align 4, keep-with-next 788 int method9(void){return(0);} \ method9: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 789 790 extern void kill_data(void *p,void (*func_p)(void *)); \ In segment CODE, align 4, keep-with-next 791 void ElfKiller(void) 792 { \ ElfKiller: \ 00000000 00402DE9 PUSH {LR} 793 extern void *ELF_BEGIN; 794 kill_data(&ELF_BEGIN,(void (*)(void *))mfree_adr()); \ 00000004 158000EF SWI +32789 \ 00000008 0010A0E1 MOV R1,R0 \ 0000000C ........ LDR R0,??DataTable37 ;; ELF_BEGIN \ 00000010 0040BDE8 POP {LR} ;; Pop \ 00000014 ........ _BF kill_data,??kill_data??rA ;; tailcall 795 } 796 797 // Массив с методами, чтобы дать ОС информацию, какие когда вызывать \ In segment DATA_C, align 4, align-sorted 798 const void * const gui_methods[11]={ 799 (void *)OnRedraw, //Redraw 800 (void *)onCreate, //Create 801 (void *)onClose, //Close 802 (void *)onFocus, //Focus 803 (void *)onUnfocus, //Unfocus 804 (void *)OnKey, //OnKey 805 0, 806 (void *)kill_data, //Destroy 807 (void *)method8, 808 (void *)method9, 809 0 810 }; 811 812 // Канвас для основного GUI 813 const RECT Canvas={0,0,0,0}; \ Canvas: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ gui_methods: \ 00000008 ............ DC32 OnRedraw, onCreate, onClose, onFocus, onUnfocus, OnKey, 0H \ ............ \ ............ \ ............ \ 00000000 \ 00000024 ............ DC32 kill_data, method8, method9, 0H \ ............ \ 00000000 814 815 // Вызывается при создании главного CSM. В данном примере 816 // создаётся GUI, его ID записывается в MAINGUI_ID 817 // на всякий случай - вдруг понадобится ;) 818 819 #pragma inline 820 void patch_rect(const RECT*rcc,int x,int y, int x2, int y2) 821 { 822 RECT *rc=(RECT *)rcc; 823 rc->x=x; 824 rc->y=y; 825 rc->x2=x2; 826 rc->y2=y2; 827 } 828 \ In segment CODE, align 4, keep-with-next 829 void maincsm_oncreate(CSM_RAM *data) 830 { \ maincsm_oncreate: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 831 MAIN_GUI *main_gui=malloc(sizeof(MAIN_GUI)); 832 MAIN_CSM*csm=(MAIN_CSM*)data; 833 zeromem(main_gui,sizeof(MAIN_GUI)); 834 main_gui->gui.canvas=(void *)(&Canvas); \ 00000004 6C609FE5 LDR R6,??maincsm_oncreate_0 ;; Canvas \ 00000008 0040A0E1 MOV R4,R0 \ 0000000C 4000A0E3 MOV R0,#+64 \ 00000010 140000EF SWI +20 \ 00000014 0050A0E1 MOV R5,R0 \ 00000018 4010A0E3 MOV R1,#+64 \ 0000001C 1D0100EF SWI +285 \ 00000020 006085E5 STR R6,[R5, #+0] 835 //main_gui->gui.flag30=2; 836 main_gui->gui.methods=(void *)gui_methods; \ 00000024 080086E2 ADD R0,R6,#+8 \ 00000028 040085E5 STR R0,[R5, #+4] 837 main_gui->gui.item_ll.data_mfree=(void (*)(void *))mfree_adr(); \ 0000002C 158000EF SWI +32789 \ 00000030 200085E5 STR R0,[R5, #+32] 838 patch_rect((RECT*)&Canvas,0,YDISP,ScreenW()-1,ScreenH()-1); \ 00000034 898100EF SWI +33161 \ 00000038 0070A0E1 MOV R7,R0 \ 0000003C 888100EF SWI +33160 \ 00000040 011047E2 SUB R1,R7,#+1 \ 00000044 010040E2 SUB R0,R0,#+1 \ 00000048 0020A0E3 MOV R2,#+0 \ 0000004C B020C6E1 STRH R2,[R6, #+0] \ 00000050 1830A0E3 MOV R3,#+24 \ 00000054 B230C6E1 STRH R3,[R6, #+2] \ 00000058 B400C6E1 STRH R0,[R6, #+4] \ 0000005C B610C6E1 STRH R1,[R6, #+6] 839 csm->csm.state=0; \ 00000060 102084E5 STR R2,[R4, #+16] 840 csm->csm.unk1=0; \ 00000064 142084E5 STR R2,[R4, #+20] 841 csm->gui_id=CreateGUI(main_gui); \ 00000068 0500A0E1 MOV R0,R5 \ 0000006C 370100EF SWI +311 \ 00000070 280084E5 STR R0,[R4, #+40] 842 } \ 00000074 F080BDE8 POP {R4-R7,PC} ;; return \ ??maincsm_oncreate_0: \ 00000078 ........ DC32 Canvas 843 844 // Вызывается при закрытии главного CSM. Тут и вызывается киллер \ In segment CODE, align 4, keep-with-next 845 void maincsm_onclose(CSM_RAM *csm) 846 { 847 //SUBPROC((void *)ElfKiller); 848 } \ maincsm_onclose: \ 00000000 1EFF2FE1 BX LR ;; return 849 850 // Обработчик событий главного CSM \ In segment CODE, align 4, keep-with-next 851 int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg) 852 { 853 MAIN_CSM *csm=(MAIN_CSM*)data; 854 if ((msg->msg==MSG_GUI_DESTROYED)&&((int)msg->data0==csm->gui_id)) \ maincsm_onmessage: \ 00000000 042091E5 LDR R2,[R1, #+4] \ 00000004 0E30A0E3 MOV R3,#+14 \ 00000008 643C83E3 ORR R3,R3,#0x6400 \ 0000000C 030052E1 CMP R2,R3 \ 00000010 0400001A BNE ??maincsm_onmessage_0 \ 00000014 0C1091E5 LDR R1,[R1, #+12] \ 00000018 282090E5 LDR R2,[R0, #+40] \ 0000001C 020051E1 CMP R1,R2 855 { 856 csm->csm.state=-3; \ 00000020 0210E003 MVNEQ R1,#+2 \ 00000024 10108005 STREQ R1,[R0, #+16] 857 } 858 return(1); \ ??maincsm_onmessage_0: \ 00000028 0100A0E3 MOV R0,#+1 \ 0000002C 1EFF2FE1 BX LR ;; return 859 } 860 861 // Инициализация структуры MAINCSM 862 const struct 863 { 864 CSM_DESC maincsm; 865 WSHDR maincsm_name; \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4D494F534400 DC8 "MIOSD" \ 00000006 0000 DC8 0, 0 866 }MAINCSM = \ MAINCSM: \ 00000008 ............ DC32 maincsm_onmessage, maincsm_oncreate, 0, 0, 0, 0, maincsm_onclose \ ....00000000 \ 000000000000 \ 000000000000 \ ........ \ 00000024 2C0000000100 DC32 44, 1, minus11, maincsm_name_body, 55AACCCCH, 3333AA55H, 0 \ 0000........ \ ........CCCC \ AA5555AA3333 \ 00000000 \ 00000040 8B00 DC16 139 \ 00000042 0000 DC8 0, 0 867 { 868 { 869 maincsm_onmessage, 870 maincsm_oncreate, 871 #ifdef NEWSGOLD 872 0, 873 0, 874 0, 875 0, 876 #endif 877 maincsm_onclose, 878 sizeof(MAIN_CSM), 879 1, 880 &minus11 881 }, 882 { 883 maincsm_name_body, 884 NAMECSM_MAGIC1, 885 NAMECSM_MAGIC2, 886 0x0, 887 139 888 } 889 }; 890 891 // Функция, которая устанавливает название этого CSM для X-Task. \ In segment CODE, align 4, keep-with-next 892 void UpdateCSMname(void) 893 { 894 wsprintf((WSHDR *)(&MAINCSM.maincsm_name),"MIOSD"); \ UpdateCSMname: \ 00000000 10009FE5 LDR R0,??UpdateCSMname_0 ;; `?` \ 00000004 00402DE9 PUSH {LR} \ 00000008 0010A0E1 MOV R1,R0 \ 0000000C 300080E2 ADD R0,R0,#+48 \ 00000010 240100EF SWI +292 895 } \ 00000014 0080BDE8 POP {PC} ;; return \ ??UpdateCSMname_0: \ 00000018 ........ DC32 `?` 896 897 /* 898 void MyIDLECSM_onClose(CSM_RAM *data) 899 { 900 extern void seqkill(void *data, void(*next_in_seq)(CSM_RAM *), void *data_to_kill, void *seqkiller); 901 extern void *ELF_BEGIN; 902 seqkill(data,old_icsm_onClose,&ELF_BEGIN,SEQKILLER_ADR()); 903 }*/ 904 905 #pragma inline=forced 906 int toupper(int c) 907 { 908 if ((c>='a')&&(c<='z')) c+='A'-'a'; 909 return(c); 910 } 911 #pragma inline 912 int strcmp_nocase(const char *s1,const char *s2) 913 { 914 int i; 915 int c; 916 while(!(i=(c=toupper(*s1++))-toupper(*s2++))) if (!c) break; 917 return(i); 918 } 919 920 int con; 921 922 int sock; 923 int connect_state; 924 char buf[BUFSIZE+1]; 925 int pbuf; \ In segment DATA_Z, align 4, align-sorted 926 int traf; \ traf: \ 00000000 DS8 4 927 GBSTMR mytmr3; 928 929 void start_again(void); 930 \ In segment CODE, align 4, keep-with-next 931 void create_connect(void) 932 { \ create_connect: \ 00000000 F0412DE9 PUSH {R4-R8,LR} 933 SOCK_ADDR sa; 934 connect_state=0; \ 00000004 ........ LDR R4,??DataTable24 ;; screen \ 00000008 10D04DE2 SUB SP,SP,#+16 \ 0000000C 0000A0E3 MOV R0,#+0 \ 00000010 8C0084E5 STR R0,[R4, #+140] 935 pbuf=0; \ 00000014 900084E5 STR R0,[R4, #+144] 936 sock=socket(1,1,0); \ 00000018 0020A0E3 MOV R2,#+0 937 if (sock!=-1) \ 0000001C ........ LDR R6,??DataTable36 ;; start_again \ 00000020 0110A0E3 MOV R1,#+1 \ 00000024 0100A0E1 MOV R0,R1 \ 00000028 730100EF SWI +371 \ 0000002C 880084E5 STR R0,[R4, #+136] \ 00000030 9400A0E3 MOV R0,#+148 \ 00000034 A40D80E3 ORR R0,R0,#0x2900 \ 00000038 045080E0 ADD R5,R0,R4 \ 0000003C 880094E5 LDR R0,[R4, #+136] \ 00000040 0070E0E3 MVN R7,#+0 \ 00000044 070050E1 CMP R0,R7 \ 00000048 1000000A BEQ ??create_connect_0 938 { 939 sa.family=1; \ 0000004C 0180A0E3 MOV R8,#+1 \ 00000050 B080CDE1 STRH R8,[SP, #+0] 940 sa.port=htons(80); \ 00000054 5000A0E3 MOV R0,#+80 \ 00000058 7A0100EF SWI +378 \ 0000005C B200CDE1 STRH R0,[SP, #+2] 941 // sa.ip=htonl(IP_ADDR(212,48,138,20)); 942 sa.ip=htonl(IP_ADDR(212,48,141,129)); \ 00000060 3C009FE5 LDR R0,??create_connect_1 ;; 0xffffffffd4308d81 \ 00000064 7B0100EF SWI +379 \ 00000068 04008DE5 STR R0,[SP, #+4] 943 if (connect(sock,&sa,sizeof(sa))!=-1) \ 0000006C 880094E5 LDR R0,[R4, #+136] \ 00000070 1020A0E3 MOV R2,#+16 \ 00000074 0D10A0E1 MOV R1,SP \ 00000078 740100EF SWI +372 \ 0000007C 070050E1 CMP R0,R7 944 { 945 connect_state=1; \ 00000080 8C808415 STRNE R8,[R4, #+140] \ 00000084 FF81BD18 POPNE {R0-R8,PC} 946 } 947 else 948 { 949 closesocket(sock); \ 00000088 880094E5 LDR R0,[R4, #+136] \ 0000008C 760100EF SWI +374 950 GBS_StartTimerProc(&mytmr3, 2160, start_again); 951 } 952 } 953 else 954 GBS_StartTimerProc(&mytmr3, 2160, start_again); \ ??create_connect_0: \ 00000090 0620A0E1 MOV R2,R6 \ 00000094 871EA0E3 MOV R1,#+2160 \ 00000098 0500A0E1 MOV R0,R5 \ 0000009C 4D0000EF SWI +77 955 } \ 000000A0 FF81BDE8 POP {R0-R8,PC} ;; return \ ??create_connect_1: \ 000000A4 818D30D4 DC32 0xffffffffd4308d81 956 \ In segment CODE, align 4, keep-with-next 957 void start_again() 958 { \ start_again: \ 00000000 00402DE9 PUSH {LR} 959 if(IsGPRSConnected()) \ 00000004 A80000EF SWI +168 \ 00000008 000050E3 CMP R0,#+0 \ 0000000C 0200000A BEQ ??start_again_0 960 { 961 SUBPROC((void *)create_connect); \ 00000010 ........ LDR R0,??DataTable35 ;; create_connect \ 00000014 710100EF SWI +369 \ 00000018 0080BDE8 POP {PC} 962 } 963 else 964 GBS_StartTimerProc(&mytmr3, 2160, start_again); \ ??start_again_0: \ 0000001C ........ LDR R2,??DataTable36 ;; start_again \ 00000020 08009FE5 LDR R0,??start_again_1 ;; screen + 10644 \ 00000024 871EA0E3 MOV R1,#+2160 \ 00000028 4D0000EF SWI +77 965 } \ 0000002C 0080BDE8 POP {PC} ;; return \ ??start_again_1: \ 00000030 ........ DC32 screen + 10644 966 967 char req_buf[256]; 968 969 //http://wap.gismeteo.ru/wap2/towns/99944.wap2 \ In segment CODE, align 4, keep-with-next 970 void send_req(void) 971 { 972 sprintf(req_buf,"GET /wap2/towns/99944.wap2" 973 " HTTP/1.0\r\nHost: wap.gismeteo.ru\r\n\r\n",TID); \ send_req: \ 00000000 48109FE5 LDR R1,??send_req_0 ;; `?` \ 00000004 30402DE9 PUSH {R4,R5,LR} \ 00000008 ........ LDR R4,??DataTable24 ;; screen \ 0000000C A400A0E3 MOV R0,#+164 \ 00000010 A40D80E3 ORR R0,R0,#0x2900 \ 00000014 045080E0 ADD R5,R0,R4 \ 00000018 34009FE5 LDR R0,??send_req_0+0x4 ;; TID \ 0000001C 002090E5 LDR R2,[R0, #+0] \ 00000020 0500A0E1 MOV R0,R5 \ 00000024 160000EF SWI +22 974 975 send(sock,req_buf,strlen(req_buf),0); \ 00000028 0500A0E1 MOV R0,R5 \ 0000002C 1B0000EF SWI +27 \ 00000030 0020A0E1 MOV R2,R0 \ 00000034 880094E5 LDR R0,[R4, #+136] \ 00000038 0030A0E3 MOV R3,#+0 \ 0000003C 0510A0E1 MOV R1,R5 \ 00000040 790100EF SWI +377 976 connect_state=2; \ 00000044 0200A0E3 MOV R0,#+2 \ 00000048 8C0084E5 STR R0,[R4, #+140] 977 } \ 0000004C 3080BDE8 POP {R4,R5,PC} ;; return \ ??send_req_0: \ 00000050 ........ DC32 `?` \ 00000054 ........ DC32 TID 978 \ In segment CODE, align 4, keep-with-next 979 void end_socket(void) 980 { \ end_socket: \ 00000000 10402DE9 PUSH {R4,LR} 981 if (sock>=0) \ 00000004 ........ LDR R4,??DataTable24 ;; screen \ 00000008 880094E5 LDR R0,[R4, #+136] \ 0000000C 000050E3 CMP R0,#+0 \ 00000010 1080BD48 POPMI {R4,PC} 982 { 983 shutdown(sock,2); \ 00000014 0210A0E3 MOV R1,#+2 \ 00000018 770100EF SWI +375 984 closesocket(sock); \ 0000001C 880094E5 LDR R0,[R4, #+136] \ 00000020 760100EF SWI +374 985 } 986 } \ 00000024 1080BDE8 POP {R4,PC} ;; return 987 \ In segment CODE, align 4, keep-with-next 988 void get_answer(void) 989 { \ get_answer: \ 00000000 10402DE9 PUSH {R4,LR} 990 int i=pbuf; \ 00000004 ........ LDR R4,??DataTable24 ;; screen 991 if (i==65535) \ 00000008 FF10A0E3 MOV R1,#+255 \ 0000000C 900094E5 LDR R0,[R4, #+144] \ 00000010 FF1C81E3 ORR R1,R1,#0xFF00 \ 00000014 010050E1 CMP R0,R1 \ 00000018 0B00000A BEQ ??get_answer_0 992 end_socket(); 993 else 994 { 995 i=recv(sock,buf+i,65535-i,0); \ 0000001C 002041E0 SUB R2,R1,R0 \ 00000020 040080E0 ADD R0,R0,R4 \ 00000024 A01F80E2 ADD R1,R0,#+640 \ 00000028 880094E5 LDR R0,[R4, #+136] \ 0000002C 0030A0E3 MOV R3,#+0 \ 00000030 780100EF SWI +376 996 if (i>=0) \ 00000034 000050E3 CMP R0,#+0 \ 00000038 0300004A BMI ??get_answer_0 997 { 998 pbuf+=i; \ 0000003C 901094E5 LDR R1,[R4, #+144] \ 00000040 010080E0 ADD R0,R0,R1 \ 00000044 900084E5 STR R0,[R4, #+144] \ 00000048 1080BDE8 POP {R4,PC} 999 } 1000 else 1001 { 1002 end_socket(); \ ??get_answer_0: \ 0000004C 1040BDE8 POP {R4,LR} ;; Pop \ 00000050 ........ B end_socket ;; tailcall 1003 } 1004 } 1005 } 1006 1007 char tempz[10]; 1008 1009 \ In segment CODE, align 4, keep-with-next 1010 void log(const char *s) 1011 { \ log: \ 00000000 30402DE9 PUSH {R4,R5,LR} 1012 volatile int hFile; 1013 unsigned int io_error = 0; 1014 unsigned int ul; 1015 FSTATS stat; 1016 GetFileStats("4:\\weather.txt",&stat,&ul); \ 00000004 88509FE5 LDR R5,??log_0+0x4 ;; `?` \ 00000008 34D04DE2 SUB SP,SP,#+52 \ 0000000C 0040A0E1 MOV R4,R0 \ 00000010 0010A0E3 MOV R1,#+0 \ 00000014 00108DE5 STR R1,[SP, #+0] \ 00000018 08208DE2 ADD R2,SP,#+8 \ 0000001C 0C108DE2 ADD R1,SP,#+12 \ 00000020 0500A0E1 MOV R0,R5 \ 00000024 840000EF SWI +132 1017 hFile = fopen("4:\\weather.txt",A_ReadWrite+A_Create+A_Append,P_READ+P_WRITE, &io_error); \ 00000028 0D30A0E1 MOV R3,SP \ 0000002C 602FA0E3 MOV R2,#+384 \ 00000030 761042E2 SUB R1,R2,#+118 \ 00000034 0500A0E1 MOV R0,R5 \ 00000038 0A0000EF SWI +10 \ 0000003C 04008DE5 STR R0,[SP, #+4] 1018 if(hFile!=-1) \ 00000040 04009DE5 LDR R0,[SP, #+4] \ 00000044 010070E3 CMN R0,#+1 \ 00000048 0E00000A BEQ ??log_1 1019 { 1020 fwrite(hFile, s, strlen(s), &io_error); \ 0000004C 0400A0E1 MOV R0,R4 \ 00000050 1B0000EF SWI +27 \ 00000054 0D30A0E1 MOV R3,SP \ 00000058 0020A0E1 MOV R2,R0 \ 0000005C 04009DE5 LDR R0,[SP, #+4] \ 00000060 0410A0E1 MOV R1,R4 \ 00000064 0C0000EF SWI +12 1021 fwrite(hFile, "\n", 1, &io_error); \ 00000068 04009DE5 LDR R0,[SP, #+4] \ 0000006C 0D30A0E1 MOV R3,SP \ 00000070 0120A0E3 MOV R2,#+1 \ 00000074 051F8FE2 ADR R1,??log_0 ;; "\n" \ 00000078 0C0000EF SWI +12 1022 fclose(hFile, &io_error); \ 0000007C 04009DE5 LDR R0,[SP, #+4] \ 00000080 0D10A0E1 MOV R1,SP \ 00000084 0D0000EF SWI +13 1023 } 1024 } \ ??log_1: \ 00000088 34D08DE2 ADD SP,SP,#+52 ;; stack cleaning \ 0000008C 3080BDE8 POP {R4,R5,PC} ;; return \ ??log_0: \ 00000090 0A000000 DC8 "\n",+0,+0 \ 00000094 ........ DC32 `?` 1025 \ In segment CODE, align 4, keep-with-next 1026 void Parsing() 1027 { \ Parsing: \ 00000000 F0472DE9 PUSH {R4-R10,LR} 1028 char *fcstr; 1029 int i; 1030 1031 1032 // log(buf); 1033 fcstr=strstr(buf,""); \ 00000004 ........ LDR R4,??DataTable24 ;; screen \ 00000008 40529FE5 LDR R5,??Parsing_0+0x8 ;; `?` \ 0000000C 10D04DE2 SUB SP,SP,#+16 \ 00000010 4C1085E2 ADD R1,R5,#+76 \ 00000014 A00F84E2 ADD R0,R4,#+640 \ 00000018 180100EF SWI +280 1034 1035 //????????kartinka 1036 fcstr=strstr(fcstr,"/images/")+strlen ("/images/"); \ 0000001C 401085E2 ADD R1,R5,#+64 \ 00000020 180100EF SWI +280 \ 00000024 0060A0E1 MOV R6,R0 \ 00000028 400085E2 ADD R0,R5,#+64 \ 0000002C 1B0000EF SWI +27 \ 00000030 060080E0 ADD R0,R0,R6 1037 /* for (i=0;fcstr[i]!='.'&&(i")+strlen (""); \ 00000034 836F8FE2 ADR R6,??Parsing_0 ;; "" \ 00000038 0610A0E1 MOV R1,R6 \ 0000003C 180100EF SWI +280 \ 00000040 0070A0E1 MOV R7,R0 \ 00000044 0600A0E1 MOV R0,R6 \ 00000048 1B0000EF SWI +27 \ 0000004C 077080E0 ADD R7,R0,R7 1044 for (i=0;fcstr[i]!='<'&&(i")+18; \ 00000100 517F8FE2 ADR R7,??Parsing_0+0x4 ;; ">" \ 00000104 0710A0E1 MOV R1,R7 \ 00000108 180100EF SWI +280 \ 0000010C 128080E2 ADD R8,R0,#+18 1059 for (i=0;fcstr[i]!='<'&&(i")+12; \ 00000190 0710A0E1 MOV R1,R7 \ 00000194 180100EF SWI +280 \ 00000198 0C7080E2 ADD R7,R0,#+12 1068 for (i=0;fcstr[i]!='<'&&(i")+20; 1084 for (i=0;fcstr[i]!='<'&&(i" \ 0000024C 3E000000 DC8 ">",+0,+0 \ 00000250 ........ DC32 `?` 1090 //=================================================================weather 1091 1092 int charge_m; 1093 int charge_s; 1094 GBSTMR charger; 1095 \ In segment CODE, align 4, keep-with-next 1096 void charger_c() 1097 { 1098 charge_s++; \ charger_c: \ 00000000 ........ LDR R0,??DataTable24 ;; screen \ 00000004 00402DE9 PUSH {LR} \ 00000008 981090E5 LDR R1,[R0, #+152] \ 0000000C 011081E2 ADD R1,R1,#+1 1099 if (charge_s==60) \ 00000010 3C0051E3 CMP R1,#+60 \ 00000014 0300001A BNE ??charger_c_0 1100 { 1101 charge_s=0; 1102 charge_m++; \ 00000018 942090E5 LDR R2,[R0, #+148] \ 0000001C 0010A0E3 MOV R1,#+0 \ 00000020 012082E2 ADD R2,R2,#+1 \ 00000024 942080E5 STR R2,[R0, #+148] 1103 } 1104 GBS_StartTimerProc(&charger, 216, charger_c); \ ??charger_c_0: \ 00000028 18209FE5 LDR R2,??charger_c_1 ;; charger_c \ 0000002C 981080E5 STR R1,[R0, #+152] \ 00000030 D810A0E3 MOV R1,#+216 \ 00000034 A430A0E3 MOV R3,#+164 \ 00000038 A83D83E3 ORR R3,R3,#0x2A00 \ 0000003C 000083E0 ADD R0,R3,R0 \ 00000040 4D0000EF SWI +77 1105 } \ 00000044 0080BDE8 POP {PC} ;; return \ ??charger_c_1: \ 00000048 ........ DC32 charger_c 1106 1107 int g_min; 1108 int g_sec; 1109 int g_hour; 1110 GBSTMR gipi; 1111 \ In segment CODE, align 4, keep-with-next 1112 void write_log(int zzz) 1113 { \ write_log: \ 00000000 30402DE9 PUSH {R4,R5,LR} 1114 volatile int hFile; 1115 unsigned int io_error = 0; 1116 unsigned int ul; 1117 FSTATS stat; 1118 GetFileStats("4:\\zbin\\miosd\\miosd2.file",&stat,&ul); \ 00000004 ........ LDR R5,??DataTable30 ;; `?` \ 00000008 34D04DE2 SUB SP,SP,#+52 \ 0000000C 0040A0E1 MOV R4,R0 \ 00000010 0010A0E3 MOV R1,#+0 \ 00000014 00108DE5 STR R1,[SP, #+0] \ 00000018 08208DE2 ADD R2,SP,#+8 \ 0000001C 0C108DE2 ADD R1,SP,#+12 \ 00000020 0500A0E1 MOV R0,R5 \ 00000024 840000EF SWI +132 1119 hFile = fopen("4:\\zbin\\miosd\\miosd2.file",A_ReadWrite+A_Create+A_Truncate+ A_BIN,P_READ+P_WRITE, &io_error); \ 00000028 0D30A0E1 MOV R3,SP \ 0000002C 602FA0E3 MOV R2,#+384 \ 00000030 0210A0E3 MOV R1,#+2 \ 00000034 831C81E3 ORR R1,R1,#0x8300 \ 00000038 0500A0E1 MOV R0,R5 \ 0000003C 0A0000EF SWI +10 \ 00000040 04008DE5 STR R0,[SP, #+4] 1120 if(hFile!=-1) \ 00000044 04009DE5 LDR R0,[SP, #+4] \ 00000048 010070E3 CMN R0,#+1 \ 0000004C 0F00000A BEQ ??write_log_0 1121 { 1122 char *writer=malloc(32); \ 00000050 2000A0E3 MOV R0,#+32 \ 00000054 140000EF SWI +20 \ 00000058 0050A0E1 MOV R5,R0 1123 sprintf(writer, "%d", zzz); \ 0000005C 0420A0E1 MOV R2,R4 \ 00000060 0C1F8FE2 ADR R1,??write_log_1 ;; "%d" \ 00000064 160000EF SWI +22 1124 fwrite(hFile, writer, strlen(writer), &io_error); \ 00000068 0500A0E1 MOV R0,R5 \ 0000006C 1B0000EF SWI +27 \ 00000070 0D30A0E1 MOV R3,SP \ 00000074 0020A0E1 MOV R2,R0 \ 00000078 04009DE5 LDR R0,[SP, #+4] \ 0000007C 0510A0E1 MOV R1,R5 \ 00000080 0C0000EF SWI +12 1125 fclose(hFile, &io_error); \ 00000084 04009DE5 LDR R0,[SP, #+4] \ 00000088 0D10A0E1 MOV R1,SP \ 0000008C 0D0000EF SWI +13 1126 } 1127 } \ ??write_log_0: \ 00000090 34D08DE2 ADD SP,SP,#+52 ;; stack cleaning \ 00000094 3080BDE8 POP {R4,R5,PC} ;; return \ ??write_log_1: \ 00000098 25640000 DC8 "%d",+0 1128 1129 int rewriter; 1130 \ In segment CODE, align 4, keep-with-next 1131 void Count_GPRS() 1132 { \ Count_GPRS: \ 00000000 10402DE9 PUSH {R4,LR} 1133 g_sec++; \ 00000004 ........ LDR R4,??DataTable41 ;; screen \ 00000008 A00094E5 LDR R0,[R4, #+160] 1134 if (g_sec==60) \ 0000000C 9C1094E5 LDR R1,[R4, #+156] \ 00000010 010080E2 ADD R0,R0,#+1 \ 00000014 3C0050E3 CMP R0,#+60 1135 { 1136 g_sec=0; \ 00000018 0000A003 MOVEQ R0,#+0 1137 g_min++; \ 0000001C 01108102 ADDEQ R1,R1,#+1 \ 00000020 A00084E5 STR R0,[R4, #+160] 1138 } 1139 if(g_min==60) \ 00000024 3C0051E3 CMP R1,#+60 \ 00000028 0300001A BNE ??Count_GPRS_0 1140 { 1141 g_min=0; 1142 g_hour++; \ 0000002C A40094E5 LDR R0,[R4, #+164] \ 00000030 0010A0E3 MOV R1,#+0 \ 00000034 010080E2 ADD R0,R0,#+1 \ 00000038 A40084E5 STR R0,[R4, #+164] \ ??Count_GPRS_0: \ 0000003C 9C1084E5 STR R1,[R4, #+156] 1143 } 1144 int r=g_min; \ 00000040 010051E3 CMP R1,#+1 \ 00000044 020000BA BLT ??Count_GPRS_1 1145 while(r>0) 1146 r=r-2; \ ??Count_GPRS_2: \ 00000048 021041E2 SUB R1,R1,#+2 \ 0000004C 010051E3 CMP R1,#+1 \ 00000050 FCFFFFAA BGE ??Count_GPRS_2 1147 if((r==0)&&(g_min!=0)&&(rewriter!=g_min)) \ ??Count_GPRS_1: \ 00000054 000051E3 CMP R1,#+0 \ 00000058 0F00001A BNE ??Count_GPRS_3 \ 0000005C 9C0094E5 LDR R0,[R4, #+156] \ 00000060 000050E3 CMP R0,#+0 \ 00000064 A8109415 LDRNE R1,[R4, #+168] \ 00000068 00005111 CMPNE R1,R0 \ 0000006C 0A00000A BEQ ??Count_GPRS_3 1148 { 1149 int *trafik2 = GetGPRSTrafficPointer(); \ 00000070 700000EF SWI +112 1150 int trafiks2=(*trafik2-start_traffic)/1024; 1151 SUBPROC((void *)write_log,trafiks2); //latest fix \ 00000074 000090E5 LDR R0,[R0, #+0] \ 00000078 701094E5 LDR R1,[R4, #+112] \ 0000007C 010040E0 SUB R0,R0,R1 \ 00000080 C014A0E1 ASR R1,R0,#+9 \ 00000084 210B80E0 ADD R0,R0,R1, LSR #+22 \ 00000088 4015A0E1 ASR R1,R0,#+10 \ 0000008C 40009FE5 LDR R0,??Count_GPRS_4 ;; write_log \ 00000090 710100EF SWI +369 1152 // write_log(trafiks2); 1153 rewriter=g_min; \ 00000094 9C0094E5 LDR R0,[R4, #+156] \ 00000098 A80084E5 STR R0,[R4, #+168] 1154 } 1155 // sprintf(start_g2, "%s(%dm)", start_g, g_min); 1156 sprintf(start_g2, "Активен: %02d:%02d:%02d", g_hour, g_min, g_sec); \ ??Count_GPRS_3: \ 0000009C A00094E5 LDR R0,[R4, #+160] \ 000000A0 30109FE5 LDR R1,??Count_GPRS_4+0x4 ;; `?msg == MSG_RECONFIGURE_REQ) // Перечитывание конфига по сообщению 1174 { 1175 extern const char *successed_config_filename; 1176 if (strcmp_nocase(successed_config_filename,(char *)msg->data0)==0) 1177 { 1178 InitConfig(); 1179 ShowMSG(1,(int)"MIOSD 1.5 config updated!"); 1180 } 1181 } 1182 //=========================================weather 1183 if (msg->msg==MSG_HELPER_TRANSLATOR) 1184 { 1185 if ((int)msg->data1==sock) 1186 { 1187 switch((int)msg->data0) 1188 { 1189 case ENIP_SOCK_CONNECTED: 1190 if (connect_state==1) 1191 { 1192 SUBPROC((void *)send_req); 1193 } 1194 else 1195 { 1196 SUBPROC((void *)create_connect); 1197 } 1198 break; 1199 case ENIP_SOCK_DATA_READ: 1200 if (connect_state==2) 1201 { 1202 SUBPROC((void *)get_answer); 1203 } 1204 else 1205 { 1206 SUBPROC((void *)create_connect); 1207 } 1208 break; 1209 case ENIP_SOCK_REMOTE_CLOSED: 1210 if (connect_state) SUBPROC((void *)end_socket); 1211 break; 1212 case ENIP_SOCK_CLOSED: 1213 if (connect_state) SUBPROC((void *)end_socket); 1214 connect_state=3; 1215 Parsing(); 1216 sock=-1; 1217 GBS_StartTimerProc(&mytmr3, 12960*60, start_again); 1218 break; 1219 } 1220 } 1221 } 1222 1223 1224 if((IsGPRSConnected())&&(first_con)) 1225 { 1226 int *trafik = GetGPRSTrafficPointer(); 1227 start_traffic=*trafik; 1228 g_min=0; 1229 g_sec=0; 1230 g_hour=0; 1231 GBS_DelTimer(&gipi); 1232 Count_GPRS(); 1233 first_con=0; 1234 } 1235 if(!IsGPRSConnected()) first_con=1; 1236 if(GetAccessoryType()==13) 1237 { 1238 if(!con) 1239 { 1240 charge_s=0; 1241 charge_m=0; 1242 charger_c(); 1243 con=1; 1244 } 1245 sprintf(chinfo, "Charging(%dmin)", charge_m); 1246 } 1247 else 1248 { 1249 if(con) 1250 { 1251 GBS_DelTimer(&charger); 1252 TTime time; 1253 TDate date; 1254 GetDateTime(&date, &time); 1255 sprintf(chinfo, "%02d:%02d, %02d-%02d", time.hour, time.min, date.month, date.day); 1256 volatile int hFile; 1257 unsigned int io_error = 0; 1258 unsigned int ul; 1259 FSTATS stat; 1260 GetFileStats("4:\\zbin\\miosd\\miosd.file",&stat,&ul); 1261 hFile = fopen("4:\\zbin\\miosd\\miosd.file",A_ReadWrite+A_Create+A_Truncate+ A_BIN,P_READ+P_WRITE, &io_error); 1262 if(hFile!=-1) 1263 { 1264 fwrite(hFile, chinfo, strlen(chinfo), &io_error); 1265 fclose(hFile, &io_error); 1266 } 1267 con=0; 1268 } 1269 } 1270 return(csm_result); 1271 } 1272 */ 1273 \ In segment DATA_Z, align 4, align-sorted 1274 int mode_enter; \ mode_enter: \ 00000000 DS8 4 1275 int mode; \ mode: \ 00000004 DS8 4 1276 extern const unsigned int CALL_BUTTON; 1277 extern const unsigned int CALL_BUTTON2; 1278 \ In segment CODE, align 4, keep-with-next 1279 void Execute() 1280 { \ Execute: \ 00000000 10402DE9 PUSH {R4,LR} 1281 LockSched(); 1282 char dummy[sizeof(MAIN_CSM)]; 1283 UpdateCSMname(); 1284 MAINCSM_ID=CreateCSM(&MAINCSM.maincsm,dummy,2); \ 00000004 ........ LDR R4,??DataTable41 ;; screen \ 00000008 2CD04DE2 SUB SP,SP,#+44 \ 0000000C 460100EF SWI +326 \ 00000010 ........ BL UpdateCSMname \ 00000014 68009FE5 LDR R0,??Execute_0 ;; `?` + 8 \ 00000018 0220A0E3 MOV R2,#+2 \ 0000001C 0D10A0E1 MOV R1,SP \ 00000020 070100EF SWI +263 \ 00000024 1C0084E5 STR R0,[R4, #+28] 1285 UnlockSched(); \ 00000028 470100EF SWI +327 1286 lock_keys=0; \ 0000002C 0000A0E3 MOV R0,#+0 \ 00000030 380084E5 STR R0,[R4, #+56] 1287 phase=1; 1288 ker_state=1; 1289 pos_main_x=-20; 1290 pos_main_y=50; 1291 pos_link_x=0; \ 00000034 3C0084E5 STR R0,[R4, #+60] 1292 pos_link_y=pos_main_y-12+(pos*20); \ 00000038 280094E5 LDR R0,[R4, #+40] \ 0000003C 1320E0E3 MVN R2,#+19 \ 00000040 302084E5 STR R2,[R4, #+48] \ 00000044 3220A0E3 MOV R2,#+50 \ 00000048 342084E5 STR R2,[R4, #+52] \ 0000004C 1420A0E3 MOV R2,#+20 \ 00000050 920000E0 MUL R0,R2,R0 \ 00000054 0110A0E3 MOV R1,#+1 \ 00000058 2C1084E5 STR R1,[R4, #+44] \ 0000005C 0C1084E5 STR R1,[R4, #+12] \ 00000060 260080E2 ADD R0,R0,#+38 \ 00000064 400084E5 STR R0,[R4, #+64] 1293 pos_msg_x=29; \ 00000068 1D00A0E3 MOV R0,#+29 \ 0000006C 440084E5 STR R0,[R4, #+68] 1294 key_mode=1; \ 00000070 241084E5 STR R1,[R4, #+36] 1295 DoScreen(); \ 00000074 ........ BL DoScreen 1296 DoShowIt(); \ 00000078 ........ BL DoShowIt 1297 } \ 0000007C 2CD08DE2 ADD SP,SP,#+44 \ 00000080 1080BDE8 POP {R4,PC} ;; return \ ??Execute_0: \ 00000084 ........ DC32 `?` + 8 1298 1299 //extern int alt_state; 1300 \ In segment CODE, align 4, keep-with-next 1301 int my_keyhook(int submsg, int msg) 1302 { 1303 // if((submsg==62)&&(IsIdleUiOnTop())&&(IsUnlocked())) Execute(); 1304 #ifdef EVILFOX 1305 #else 1306 /*if(submsg==CALL_BUTTON2) { 1307 // DoScreen2(); 1308 alt_state=1; 1309 // process_missed(); 1310 }*/ 1311 #endif 1312 if (submsg!=CALL_BUTTON) return(0); \ my_keyhook: \ 00000000 D0209FE5 LDR R2,??my_keyhook_0 ;; CALL_BUTTON \ 00000004 30402DE9 PUSH {R4,R5,LR} \ 00000008 002092E5 LDR R2,[R2, #+0] \ 0000000C 020050E1 CMP R0,R2 \ 00000010 2400001A BNE ??my_keyhook_1 1313 switch(msg) \ 00000014 C0409FE5 LDR R4,??my_keyhook_0+0x4 ;; mode_enter \ 00000018 0900A0E3 MOV R0,#+9 \ 0000001C 043094E5 LDR R3,[R4, #+4] \ 00000020 00C094E5 LDR R12,[R4, #+0] \ 00000024 420C80E3 ORR R0,R0,#0x4200 \ 00000028 00E0A0E3 MOV LR,#+0 \ 0000002C 9350A0E3 MOV R5,#+147 \ 00000030 405F85E3 ORR R5,R5,#0x100 \ 00000034 050051E1 CMP R1,R5 \ 00000038 0500000A BEQ ??my_keyhook_2 \ 0000003C 650F51E3 CMP R1,#+404 \ 00000040 0B00000A BEQ ??my_keyhook_3 \ 00000044 025085E2 ADD R5,R5,#+2 \ 00000048 050051E1 CMP R1,R5 \ 0000004C 1700000A BEQ ??my_keyhook_4 \ 00000050 050000EA B ??my_keyhook_5 1314 { 1315 case KEY_DOWN: 1316 if (mode_enter==2) \ ??my_keyhook_2: \ 00000054 02005CE3 CMP R12,#+2 \ 00000058 0200001A BNE ??my_keyhook_6 1317 { 1318 GBS_SendMessage(MMI_CEPID,KEY_UP,CALL_BUTTON); \ 0000005C 651FA0E3 MOV R1,#+404 \ 00000060 000100EF SWI +256 1319 return (0); \ ??my_keyhook_7: \ 00000064 0F0000EA B ??my_keyhook_1 1320 } 1321 mode_enter=0; \ ??my_keyhook_6: \ 00000068 00E084E5 STR LR,[R4, #+0] 1322 return (2); \ ??my_keyhook_5: \ 0000006C 0200A0E3 MOV R0,#+2 \ 00000070 3080BDE8 POP {R4,R5,PC} 1323 case KEY_UP: 1324 if (mode==1)mode=0; \ ??my_keyhook_3: \ 00000074 010053E3 CMP R3,#+1 \ 00000078 04E08405 STREQ LR,[R4, #+4] 1325 if (mode_enter==0) \ 0000007C 00005CE3 CMP R12,#+0 \ 00000080 0500001A BNE ??my_keyhook_8 1326 { 1327 mode_enter=2; \ 00000084 0210A0E3 MOV R1,#+2 \ 00000088 001084E5 STR R1,[R4, #+0] 1328 GBS_SendMessage(MMI_CEPID,KEY_DOWN,CALL_BUTTON); \ 0000008C 0510A0E1 MOV R1,R5 \ 00000090 000100EF SWI +256 1329 return (2); \ 00000094 0200A0E3 MOV R0,#+2 \ 00000098 3080BDE8 POP {R4,R5,PC} 1330 } 1331 if (mode_enter==2) \ ??my_keyhook_8: \ 0000009C 02005CE3 CMP R12,#+2 \ 000000A0 F0FFFF1A BNE ??my_keyhook_6 1332 { 1333 mode_enter=0; \ 000000A4 00E084E5 STR LR,[R4, #+0] 1334 return (0); \ ??my_keyhook_1: \ 000000A8 0000A0E3 MOV R0,#+0 \ 000000AC 3080BDE8 POP {R4,R5,PC} 1335 } 1336 mode_enter=0; 1337 return (2); 1338 case LONG_PRESS: 1339 mode_enter=1; \ ??my_keyhook_4: \ 000000B0 0150A0E3 MOV R5,#+1 \ 000000B4 005084E5 STR R5,[R4, #+0] 1340 if(mode==0) \ 000000B8 000053E3 CMP R3,#+0 \ 000000BC 0300001A BNE ??my_keyhook_9 1341 { 1342 if (IsUnlocked()) Execute(); \ 000000C0 430000EF SWI +67 \ 000000C4 000050E3 CMP R0,#+0 \ 000000C8 0000000A BEQ ??my_keyhook_9 \ 000000CC ........ BL Execute 1343 } 1344 mode=1; \ ??my_keyhook_9: \ 000000D0 045084E5 STR R5,[R4, #+4] 1345 break; 1346 } 1347 return(2); \ 000000D4 E4FFFFEA B ??my_keyhook_5 \ ??my_keyhook_0: \ 000000D8 ........ DC32 CALL_BUTTON \ 000000DC ........ DC32 mode_enter 1348 } 1349 \ In segment CODE, align 4, keep-with-next 1350 void check_battery() 1351 { \ check_battery: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 1352 volatile int hFile_ex; 1353 unsigned int io_error_ex = 0; 1354 hFile_ex = fopen("4:\\zbin\\miosd\\miosd.file",A_ReadOnly + A_BIN,P_READ, &io_error_ex); \ 00000004 ........ LDR R5,??DataTable34 ;; `?` \ 00000008 34D04DE2 SUB SP,SP,#+52 \ 0000000C 0010A0E3 MOV R1,#+0 \ 00000010 08108DE5 STR R1,[SP, #+8] \ 00000014 08308DE2 ADD R3,SP,#+8 \ 00000018 8020A0E3 MOV R2,#+128 \ 0000001C 801CA0E3 MOV R1,#+32768 1355 if(hFile_ex!=-1) \ 00000020 ........ LDR R4,??DataTable41 ;; screen \ 00000024 0500A0E1 MOV R0,R5 \ 00000028 0A0000EF SWI +10 \ 0000002C 04008DE5 STR R0,[SP, #+4] \ 00000030 04009DE5 LDR R0,[SP, #+4] \ 00000034 010070E3 CMN R0,#+1 \ 00000038 2500000A BEQ ??check_battery_0 1356 { 1357 fclose(hFile_ex, &io_error_ex); \ 0000003C 04009DE5 LDR R0,[SP, #+4] \ 00000040 08108DE2 ADD R1,SP,#+8 \ 00000044 0D0000EF SWI +13 1358 int f; 1359 int fsize; 1360 FSTATS stat; 1361 unsigned int ul; 1362 GetFileStats("4:\\zbin\\miosd\\miosd.file",&stat,&ul); \ 00000048 0D20A0E1 MOV R2,SP \ 0000004C 0C108DE2 ADD R1,SP,#+12 \ 00000050 0500A0E1 MOV R0,R5 \ 00000054 840000EF SWI +132 1363 if(stat.size>0) \ 00000058 10009DE5 LDR R0,[SP, #+16] \ 0000005C 000050E3 CMP R0,#+0 \ 00000060 1E00000A BEQ ??check_battery_1 1364 { 1365 f=fopen("4:\\zbin\\miosd\\miosd.file",A_ReadOnly+A_BIN,P_READ,&ul); \ 00000064 0D30A0E1 MOV R3,SP \ 00000068 8020A0E3 MOV R2,#+128 \ 0000006C 801CA0E3 MOV R1,#+32768 \ 00000070 0500A0E1 MOV R0,R5 \ 00000074 0A0000EF SWI +10 1366 fsize=stat.size; \ 00000078 10609DE5 LDR R6,[SP, #+16] \ 0000007C 0050A0E1 MOV R5,R0 1367 char *p=malloc(fsize); \ 00000080 0600A0E1 MOV R0,R6 \ 00000084 140000EF SWI +20 \ 00000088 0070A0E1 MOV R7,R0 1368 p[fread(f,p,fsize,&ul)]; \ 0000008C 0D30A0E1 MOV R3,SP \ 00000090 0620A0E1 MOV R2,R6 \ 00000094 0710A0E1 MOV R1,R7 \ 00000098 0500A0E1 MOV R0,R5 \ 0000009C 0B0000EF SWI +11 1369 fclose(f,&ul); \ 000000A0 0D10A0E1 MOV R1,SP \ 000000A4 0500A0E1 MOV R0,R5 \ 000000A8 0D0000EF SWI +13 1370 strcpy(chinfo, p); \ 000000AC 0710A0E1 MOV R1,R7 \ 000000B0 AC0084E2 ADD R0,R4,#+172 \ 000000B4 1A0000EF SWI +26 1371 chinfo[fsize]='\0'; \ 000000B8 040086E0 ADD R0,R6,R4 \ 000000BC 0010A0E3 MOV R1,#+0 \ 000000C0 AC10C0E5 STRB R1,[R0, #+172] 1372 mfree(p); \ 000000C4 0700A0E1 MOV R0,R7 \ 000000C8 150000EF SWI +21 \ 000000CC 34D08DE2 ADD SP,SP,#+52 \ 000000D0 F080BDE8 POP {R4-R7,PC} 1373 } 1374 } 1375 else 1376 sprintf(chinfo, "Еще не заряжали"); \ ??check_battery_0: \ 000000D4 1C1085E2 ADD R1,R5,#+28 \ 000000D8 AC0084E2 ADD R0,R4,#+172 \ 000000DC 160000EF SWI +22 1377 } \ ??check_battery_1: \ 000000E0 34D08DE2 ADD SP,SP,#+52 ;; stack cleaning \ 000000E4 F080BDE8 POP {R4-R7,PC} ;; return 1378 \ In segment CODE, align 4, keep-with-next 1379 void check_gprs() 1380 { \ check_gprs: \ 00000000 F0412DE9 PUSH {R4-R8,LR} 1381 volatile int hFile_ex; 1382 unsigned int io_error_ex = 0; 1383 hFile_ex = fopen("4:\\zbin\\miosd\\miosd2.file",A_ReadOnly + A_BIN,P_READ, &io_error_ex); \ 00000004 ........ LDR R6,??DataTable30 ;; `?` \ 00000008 34D04DE2 SUB SP,SP,#+52 \ 0000000C 0010A0E3 MOV R1,#+0 \ 00000010 08108DE5 STR R1,[SP, #+8] \ 00000014 08308DE2 ADD R3,SP,#+8 \ 00000018 8020A0E3 MOV R2,#+128 \ 0000001C 801CA0E3 MOV R1,#+32768 1384 if(hFile_ex!=-1) \ 00000020 ........ LDR R5,??DataTable41 ;; screen \ 00000024 0600A0E1 MOV R0,R6 \ 00000028 0A0000EF SWI +10 \ 0000002C 04008DE5 STR R0,[SP, #+4] \ 00000030 04009DE5 LDR R0,[SP, #+4] \ 00000034 5B4FA0E3 MOV R4,#+364 \ 00000038 010070E3 CMN R0,#+1 \ 0000003C 2800000A BEQ ??check_gprs_0 1385 { 1386 fclose(hFile_ex, &io_error_ex); \ 00000040 04009DE5 LDR R0,[SP, #+4] \ 00000044 08108DE2 ADD R1,SP,#+8 \ 00000048 0D0000EF SWI +13 1387 int f; 1388 int fsize; 1389 FSTATS stat; 1390 unsigned int ul; 1391 GetFileStats("4:\\zbin\\miosd\\miosd2.file",&stat,&ul); \ 0000004C 0D20A0E1 MOV R2,SP \ 00000050 0C108DE2 ADD R1,SP,#+12 \ 00000054 0600A0E1 MOV R0,R6 \ 00000058 840000EF SWI +132 1392 if(stat.size>0) \ 0000005C 10009DE5 LDR R0,[SP, #+16] \ 00000060 000050E3 CMP R0,#+0 \ 00000064 2100000A BEQ ??check_gprs_1 1393 { 1394 f=fopen("4:\\zbin\\miosd\\miosd2.file",A_ReadOnly+A_BIN,P_READ,&ul); \ 00000068 0D30A0E1 MOV R3,SP \ 0000006C 8020A0E3 MOV R2,#+128 \ 00000070 801CA0E3 MOV R1,#+32768 \ 00000074 0600A0E1 MOV R0,R6 \ 00000078 0A0000EF SWI +10 1395 fsize=stat.size; \ 0000007C 10709DE5 LDR R7,[SP, #+16] \ 00000080 0060A0E1 MOV R6,R0 1396 char *p=malloc(fsize); \ 00000084 0700A0E1 MOV R0,R7 \ 00000088 140000EF SWI +20 \ 0000008C 0080A0E1 MOV R8,R0 1397 p[fread(f,p,fsize,&ul)]; \ 00000090 0D30A0E1 MOV R3,SP \ 00000094 0720A0E1 MOV R2,R7 \ 00000098 0810A0E1 MOV R1,R8 \ 0000009C 0600A0E1 MOV R0,R6 \ 000000A0 0B0000EF SWI +11 1398 fclose(f,&ul); \ 000000A4 0D10A0E1 MOV R1,SP \ 000000A8 0600A0E1 MOV R0,R6 \ 000000AC 0D0000EF SWI +13 1399 strcpy(gpinfo, p); \ 000000B0 0810A0E1 MOV R1,R8 \ 000000B4 050084E0 ADD R0,R4,R5 \ 000000B8 1A0000EF SWI +26 1400 gpinfo[fsize]='\0'; \ 000000BC 050087E0 ADD R0,R7,R5 \ 000000C0 0010A0E3 MOV R1,#+0 \ 000000C4 6C11C0E5 STRB R1,[R0, #+364] 1401 mfree(p); \ 000000C8 0800A0E1 MOV R0,R8 \ 000000CC 150000EF SWI +21 1402 isfile=1; \ 000000D0 0100A0E3 MOV R0,#+1 \ 000000D4 780085E5 STR R0,[R5, #+120] 1403 write_total(); \ 000000D8 ........ _BLF write_total,??write_total??rA \ 000000DC 34D08DE2 ADD SP,SP,#+52 \ 000000E0 F081BDE8 POP {R4-R8,PC} 1404 } 1405 } 1406 else 1407 sprintf(gpinfo, "Unknown"); \ ??check_gprs_0: \ 000000E4 1C1086E2 ADD R1,R6,#+28 \ 000000E8 050084E0 ADD R0,R4,R5 \ 000000EC 160000EF SWI +22 1408 } \ ??check_gprs_1: \ 000000F0 34D08DE2 ADD SP,SP,#+52 ;; stack cleaning \ 000000F4 F081BDE8 POP {R4-R8,PC} ;; return \ In segment DATA_I, align 4, align-sorted \ screen: \ 00000000 DS8 12 \ 0000000C REQUIRE `?` \ ker_state: \ 0000000C DS8 4 \ 00000010 REQUIRE `?` \ r_s: \ 00000010 DS8 4 \ 00000014 REQUIRE `?` \ r_m: \ 00000014 DS8 4 \ 00000018 REQUIRE `?` \ r_h: \ 00000018 DS8 4 \ 0000001C REQUIRE `?` \ MAINCSM_ID: \ 0000001C DS8 4 \ 00000020 REQUIRE `?` \ first_con: \ 00000020 DS8 4 \ 00000024 REQUIRE `?` \ key_mode: \ 00000024 DS8 4 \ 00000028 REQUIRE `?` \ pos: \ 00000028 DS8 4 \ 0000002C REQUIRE `?` \ phase: \ 0000002C DS8 4 \ 00000030 REQUIRE `?` \ pos_main_x: \ 00000030 DS8 4 \ 00000034 REQUIRE `?` \ pos_main_y: \ 00000034 DS8 4 \ 00000038 REQUIRE `?` \ lock_keys: \ 00000038 DS8 4 \ 0000003C REQUIRE `?` \ pos_link_x: \ 0000003C DS8 4 \ 00000040 REQUIRE `?` \ pos_link_y: \ 00000040 DS8 4 \ 00000044 REQUIRE `?` \ pos_msg_x: \ 00000044 DS8 4 \ 00000048 REQUIRE `?` \ pos_msg_y: \ 00000048 DS8 4 \ 0000004C REQUIRE `?` \ engade_weather: \ 0000004C DS8 4 \ 00000050 REQUIRE `?` \ app_pos: \ 00000050 DS8 4 \ 00000054 REQUIRE `?` \ pos_link2_x: \ 00000054 DS8 4 \ 00000058 REQUIRE `?` \ pos_link2_y: \ 00000058 DS8 4 \ 0000005C REQUIRE `?` \ battery: \ 0000005C DS8 4 \ 00000060 REQUIRE `?` \ monthc: \ 00000060 DS8 4 \ 00000064 REQUIRE `?` \ hmm: \ 00000064 DS8 4 \ 00000068 REQUIRE `?` \ ggg: \ 00000068 DS8 4 \ 0000006C REQUIRE `?` \ trafiks: \ 0000006C DS8 4 \ 00000070 REQUIRE `?` \ start_traffic: \ 00000070 DS8 4 \ 00000074 REQUIRE `?` \ ffq: \ 00000074 DS8 4 \ 00000078 REQUIRE `?` \ isfile: \ 00000078 DS8 4 \ 0000007C REQUIRE `?` \ switch_gprs_info: \ 0000007C DS8 4 \ 00000080 REQUIRE `?` \ do_st: \ 00000080 DS8 4 \ 00000084 REQUIRE `?` \ con: \ 00000084 DS8 4 \ 00000088 REQUIRE `?` \ sock: \ 00000088 DS8 4 \ 0000008C REQUIRE `?` \ connect_state: \ 0000008C DS8 4 \ 00000090 REQUIRE `?` \ pbuf: \ 00000090 DS8 4 \ 00000094 REQUIRE `?` \ charge_m: \ 00000094 DS8 4 \ 00000098 REQUIRE `?` \ charge_s: \ 00000098 DS8 4 \ 0000009C REQUIRE `?` \ g_min: \ 0000009C DS8 4 \ 000000A0 REQUIRE `?` \ g_sec: \ 000000A0 DS8 4 \ 000000A4 REQUIRE `?` \ g_hour: \ 000000A4 DS8 4 \ 000000A8 REQUIRE `?` \ rewriter: \ 000000A8 DS8 4 \ 000000AC REQUIRE `?` \ chinfo: \ 000000AC DS8 32 \ 000000CC REQUIRE `?` \ temp: \ 000000CC DS8 32 \ 000000EC REQUIRE `?` \ pressure: \ 000000EC DS8 64 \ 0000012C REQUIRE `?` \ wind: \ 0000012C DS8 64 \ 0000016C REQUIRE `?` \ gpinfo: \ 0000016C DS8 32 \ 0000018C REQUIRE `?` \ tempz: \ 0000018C DS8 12 \ 00000198 REQUIRE `?` \ mytmr: \ 00000198 DS8 16 \ 000001A8 REQUIRE `?` \ start_g2: \ 000001A8 DS8 32 \ 000001C8 REQUIRE `?` \ temp2: \ 000001C8 DS8 32 \ 000001E8 REQUIRE `?` \ vejsh2: \ 000001E8 DS8 32 \ 00000208 REQUIRE `?` \ weather_time: \ 00000208 DS8 32 \ 00000228 REQUIRE `?` \ pressure2: \ 00000228 DS8 64 \ 00000268 REQUIRE `?` \ month: \ 00000268 DS8 8 \ 00000270 REQUIRE `?` \ mytmr2: \ 00000270 DS8 16 \ 00000280 REQUIRE `?` \ buf: \ 00000280 DS8 10004 \ 00002994 REQUIRE `?` \ mytmr3: \ 00002994 DS8 16 \ 000029A4 REQUIRE `?` \ req_buf: \ 000029A4 DS8 256 \ 00002AA4 REQUIRE `?` \ charger: \ 00002AA4 DS8 16 \ 00002AB4 REQUIRE `?` \ gipi: \ 00002AB4 DS8 16 \ 00002AC4 REQUIRE `?` 1409 1410 GBSTMR rs_tmr; \ rs_tmr: \ 00002AC4 DS8 16 \ 00002AD4 REQUIRE `?` 1411 \ In segment CODE, align 4, keep-with-next 1412 void runtime_count() 1413 { 1414 r_s++; \ runtime_count: \ 00000000 ........ LDR R0,??DataTable41 ;; screen \ 00000004 00402DE9 PUSH {LR} \ 00000008 101090E5 LDR R1,[R0, #+16] 1415 if(r_s==60) \ 0000000C 142090E5 LDR R2,[R0, #+20] \ 00000010 011081E2 ADD R1,R1,#+1 \ 00000014 3C0051E3 CMP R1,#+60 1416 { 1417 r_s=0; \ 00000018 0010A003 MOVEQ R1,#+0 1418 r_m++; \ 0000001C 01208202 ADDEQ R2,R2,#+1 \ 00000020 101080E5 STR R1,[R0, #+16] 1419 } 1420 if(r_m==60) \ 00000024 3C0052E3 CMP R2,#+60 \ 00000028 0300001A BNE ??runtime_count_0 1421 { 1422 r_m=0; 1423 r_h++; \ 0000002C 181090E5 LDR R1,[R0, #+24] \ 00000030 0020A0E3 MOV R2,#+0 \ 00000034 011081E2 ADD R1,R1,#+1 \ 00000038 181080E5 STR R1,[R0, #+24] \ ??runtime_count_0: \ 0000003C 142080E5 STR R2,[R0, #+20] 1424 } 1425 /* if(r_h==24) 1426 { 1427 r_h=0; 1428 r_d++; 1429 }*/ 1430 GBS_StartTimerProc(&rs_tmr, 216, runtime_count); \ 00000040 14209FE5 LDR R2,??runtime_count_1 ;; runtime_count \ 00000044 D810A0E3 MOV R1,#+216 \ 00000048 C430A0E3 MOV R3,#+196 \ 0000004C A83D83E3 ORR R3,R3,#0x2A00 \ 00000050 000083E0 ADD R0,R3,R0 \ 00000054 4D0000EF SWI +77 1431 } \ 00000058 0080BDE8 POP {PC} ;; return \ ??runtime_count_1: \ 0000005C ........ DC32 runtime_count 1432 1433 1434 \ In segment CODE, align 4, keep-with-next 1435 int maincsm_onmessage2(CSM_RAM* data,GBS_MSG* msg) 1436 { \ maincsm_onmessage2: \ 00000000 F0412DE9 PUSH {R4-R8,LR} 1437 if(msg->msg == MSG_RECONFIGURE_REQ) \ 00000004 ........ LDR R5,??DataTable41 ;; screen \ 00000008 4CD04DE2 SUB SP,SP,#+76 \ 0000000C ........ LDR R6,??DataTable34 ;; `?` \ 00000010 0170A0E1 MOV R7,R1 \ 00000014 040097E5 LDR R0,[R7, #+4] \ 00000018 0040E0E3 MVN R4,#+0 \ 0000001C AF10A0E3 MOV R1,#+175 \ 00000020 DE1C81E3 ORR R1,R1,#0xDE00 \ 00000024 010050E1 CMP R0,R1 \ 00000028 1600001A BNE ??maincsm_onmessage2_0 1438 { 1439 extern const char *successed_config_filename; 1440 if (strcmp_nocase(successed_config_filename,(char *)msg->data0)==0) \ 0000002C 74129FE5 LDR R1,??maincsm_onmessage2_1 ;; successed_config_filename \ 00000030 0C0097E5 LDR R0,[R7, #+12] \ 00000034 001091E5 LDR R1,[R1, #+0] \ ??maincsm_onmessage2_2: \ 00000038 0020D1E5 LDRB R2,[R1, #+0] \ 0000003C 610052E3 CMP R2,#+97 \ 00000040 010000BA BLT ??maincsm_onmessage2_3 \ 00000044 7B0052E3 CMP R2,#+123 \ 00000048 202042B2 SUBLT R2,R2,#+32 \ ??maincsm_onmessage2_3: \ 0000004C 0030D0E5 LDRB R3,[R0, #+0] \ 00000050 011081E2 ADD R1,R1,#+1 \ 00000054 610053E3 CMP R3,#+97 \ 00000058 010000BA BLT ??maincsm_onmessage2_4 \ 0000005C 7B0053E3 CMP R3,#+123 \ 00000060 203043B2 SUBLT R3,R3,#+32 \ ??maincsm_onmessage2_4: \ 00000064 010080E2 ADD R0,R0,#+1 \ 00000068 033052E0 SUBS R3,R2,R3 \ 0000006C 3600001A BNE ??maincsm_onmessage2_5 \ 00000070 000052E3 CMP R2,#+0 \ 00000074 EFFFFF1A BNE ??maincsm_onmessage2_2 1441 { 1442 ShowMSG(1,(int)"NSD config updated!"); \ 00000078 2C1086E2 ADD R1,R6,#+44 \ 0000007C 0100A0E3 MOV R0,#+1 \ 00000080 480100EF SWI +328 1443 InitConfig(); \ 00000084 ........ _BLF InitConfig,??InitConfig??rA 1444 } 1445 } 1446 if (msg->msg==MSG_HELPER_TRANSLATOR) \ ??maincsm_onmessage2_0: \ 00000088 040097E5 LDR R0,[R7, #+4] \ 0000008C AE10A0E3 MOV R1,#+174 \ 00000090 DE1C81E3 ORR R1,R1,#0xDE00 \ 00000094 010050E1 CMP R0,R1 \ 00000098 2B00001A BNE ??maincsm_onmessage2_5 1447 { 1448 if ((int)msg->data1==sock) \ 0000009C 100097E5 LDR R0,[R7, #+16] \ 000000A0 881095E5 LDR R1,[R5, #+136] \ 000000A4 010050E1 CMP R0,R1 \ 000000A8 2700001A BNE ??maincsm_onmessage2_5 1449 { 1450 switch((int)msg->data0) \ 000000AC 0C3097E5 LDR R3,[R7, #+12] \ 000000B0 8C2095E5 LDR R2,[R5, #+140] \ 000000B4 ........ LDR R0,??DataTable35 ;; create_connect \ 000000B8 EC119FE5 LDR R1,??maincsm_onmessage2_1+0x4 ;; end_socket \ 000000BC 8C3053E2 SUBS R3,R3,#+140 \ 000000C0 0A00000A BEQ ??maincsm_onmessage2_6 \ 000000C4 013053E2 SUBS R3,R3,#+1 \ 000000C8 0400000A BEQ ??maincsm_onmessage2_7 \ 000000CC 013053E2 SUBS R3,R3,#+1 \ 000000D0 0E00000A BEQ ??maincsm_onmessage2_8 \ 000000D4 013053E2 SUBS R3,R3,#+1 \ 000000D8 0800000A BEQ ??maincsm_onmessage2_9 \ 000000DC 1A0000EA B ??maincsm_onmessage2_5 1451 { 1452 case ENIP_SOCK_CONNECTED: 1453 if (connect_state==1) \ ??maincsm_onmessage2_7: \ 000000E0 010052E3 CMP R2,#+1 1454 { 1455 SUBPROC((void *)send_req); \ 000000E4 C4019F05 LDREQ R0,??maincsm_onmessage2_1+0x8 ;; send_req \ ??maincsm_onmessage2_10: \ 000000E8 710100EF SWI +369 \ 000000EC 160000EA B ??maincsm_onmessage2_5 1456 } 1457 else 1458 { 1459 SUBPROC((void *)create_connect); 1460 } 1461 break; 1462 case ENIP_SOCK_DATA_READ: 1463 if (connect_state==2) \ ??maincsm_onmessage2_6: \ 000000F0 020052E3 CMP R2,#+2 \ 000000F4 FBFFFF1A BNE ??maincsm_onmessage2_10 1464 { 1465 SUBPROC((void *)get_answer); \ 000000F8 B4019FE5 LDR R0,??maincsm_onmessage2_1+0xC ;; get_answer \ 000000FC F9FFFFEA B ??maincsm_onmessage2_10 1466 } 1467 else 1468 { 1469 SUBPROC((void *)create_connect); 1470 } 1471 break; 1472 case ENIP_SOCK_REMOTE_CLOSED: 1473 if (connect_state) SUBPROC((void *)end_socket); \ ??maincsm_onmessage2_9: \ 00000100 000052E3 CMP R2,#+0 \ 00000104 1000000A BEQ ??maincsm_onmessage2_5 \ 00000108 0100A0E1 MOV R0,R1 \ 0000010C F5FFFFEA B ??maincsm_onmessage2_10 1474 break; 1475 case ENIP_SOCK_CLOSED: 1476 if (connect_state) SUBPROC((void *)end_socket); \ ??maincsm_onmessage2_8: \ 00000110 000052E3 CMP R2,#+0 \ 00000114 0100000A BEQ ??maincsm_onmessage2_11 \ 00000118 0100A0E1 MOV R0,R1 \ 0000011C 710100EF SWI +369 1477 connect_state=3; \ ??maincsm_onmessage2_11: \ 00000120 0300A0E3 MOV R0,#+3 \ 00000124 8C0085E5 STR R0,[R5, #+140] 1478 Parsing(); \ 00000128 ........ BL Parsing 1479 sock=-1; 1480 GBS_StartTimerProc(&mytmr3, (60*216)*(60*5), start_again); \ 0000012C ........ LDR R2,??DataTable36 ;; start_again \ 00000130 884085E5 STR R4,[R5, #+136] \ 00000134 ED19A0E3 MOV R1,#+3883008 \ 00000138 4E1D81E3 ORR R1,R1,#0x1380 \ 0000013C 9400A0E3 MOV R0,#+148 \ 00000140 A40D80E3 ORR R0,R0,#0x2900 \ 00000144 050080E0 ADD R0,R0,R5 \ 00000148 4D0000EF SWI +77 1481 break; 1482 } 1483 } 1484 } 1485 1486 1487 if((IsGPRSConnected())&&(first_con)) \ ??maincsm_onmessage2_5: \ 0000014C A80000EF SWI +168 \ 00000150 000050E3 CMP R0,#+0 \ 00000154 20009515 LDRNE R0,[R5, #+32] \ 00000158 0070A0E3 MOV R7,#+0 \ 0000015C 00005013 CMPNE R0,#+0 \ 00000160 0B00000A BEQ ??maincsm_onmessage2_12 1488 { 1489 int *trafik = GetGPRSTrafficPointer(); 1490 start_traffic=*trafik; \ 00000164 700000EF SWI +112 \ 00000168 000090E5 LDR R0,[R0, #+0] 1491 /* TTime time; 1492 TDate date; 1493 GetDateTime(&date, &time); 1494 sprintf(start_g, "%02d:%02d %02d-%02d", time.hour, time.min, date.month, date.day);*/ 1495 g_min=0; \ 0000016C 9C7085E5 STR R7,[R5, #+156] \ 00000170 700085E5 STR R0,[R5, #+112] 1496 g_sec=0; \ 00000174 A07085E5 STR R7,[R5, #+160] 1497 g_hour=0; \ 00000178 A47085E5 STR R7,[R5, #+164] 1498 GBS_DelTimer(&gipi); \ 0000017C B400A0E3 MOV R0,#+180 \ 00000180 A80D80E3 ORR R0,R0,#0x2A00 \ 00000184 050080E0 ADD R0,R0,R5 \ 00000188 8C0100EF SWI +396 1499 Count_GPRS(); \ 0000018C ........ BL Count_GPRS 1500 first_con=0; \ 00000190 207085E5 STR R7,[R5, #+32] 1501 } 1502 if(!IsGPRSConnected()) first_con=1; \ ??maincsm_onmessage2_12: \ 00000194 0180A0E3 MOV R8,#+1 \ 00000198 A80000EF SWI +168 \ 0000019C 000050E3 CMP R0,#+0 \ 000001A0 20808505 STREQ R8,[R5, #+32] 1503 if(GetAccessoryType()==13) \ 000001A4 880000EF SWI +136 \ 000001A8 0D0050E3 CMP R0,#+13 \ 000001AC 840095E5 LDR R0,[R5, #+132] \ 000001B0 0C00001A BNE ??maincsm_onmessage2_13 1504 { 1505 if(!con) \ 000001B4 000050E3 CMP R0,#+0 \ 000001B8 0300001A BNE ??maincsm_onmessage2_14 1506 { 1507 charge_s=0; \ 000001BC 987085E5 STR R7,[R5, #+152] 1508 charge_m=0; \ 000001C0 947085E5 STR R7,[R5, #+148] 1509 charger_c(); \ 000001C4 ........ BL charger_c 1510 con=1; \ 000001C8 848085E5 STR R8,[R5, #+132] 1511 } 1512 sprintf(chinfo, "Charging(%d min)", charge_m); \ ??maincsm_onmessage2_14: \ 000001CC 942095E5 LDR R2,[R5, #+148] \ 000001D0 401086E2 ADD R1,R6,#+64 \ 000001D4 AC0085E2 ADD R0,R5,#+172 \ 000001D8 160000EF SWI +22 \ 000001DC 0100A0E3 MOV R0,#+1 \ 000001E0 4CD08DE2 ADD SP,SP,#+76 \ 000001E4 F081BDE8 POP {R4-R8,PC} 1513 } 1514 else 1515 { 1516 if(con) \ ??maincsm_onmessage2_13: \ 000001E8 000050E3 CMP R0,#+0 \ 000001EC 2A00000A BEQ ??maincsm_onmessage2_15 1517 { 1518 GBS_DelTimer(&charger); \ 000001F0 A400A0E3 MOV R0,#+164 \ 000001F4 A80D80E3 ORR R0,R0,#0x2A00 \ 000001F8 050080E0 ADD R0,R0,R5 \ 000001FC 8C0100EF SWI +396 1519 TTime time; 1520 TDate date; 1521 GetDateTime(&date, &time); \ 00000200 08108DE2 ADD R1,SP,#+8 \ 00000204 10008DE2 ADD R0,SP,#+16 \ 00000208 B40000EF SWI +180 1522 sprintf(chinfo, "%02d:%02d, %02d-%02d", time.hour, time.min, date.month, date.day); \ 0000020C 1500DDE5 LDRB R0,[SP, #+21] \ 00000210 541086E2 ADD R1,R6,#+84 \ 00000214 01002DE9 PUSH {R0} \ 00000218 1800DDE5 LDRB R0,[SP, #+24] \ 0000021C 01002DE9 PUSH {R0} \ 00000220 1130DDE5 LDRB R3,[SP, #+17] \ 00000224 1020DDE5 LDRB R2,[SP, #+16] \ 00000228 AC0085E2 ADD R0,R5,#+172 \ 0000022C 160000EF SWI +22 1523 volatile int hFile; 1524 unsigned int io_error = 0; \ 00000230 08708DE5 STR R7,[SP, #+8] 1525 unsigned int ul; 1526 FSTATS stat; 1527 GetFileStats("4:\\zbin\\miosd\\miosd.file",&stat,&ul); \ 00000234 28208DE2 ADD R2,SP,#+40 \ 00000238 2C108DE2 ADD R1,SP,#+44 \ 0000023C 0600A0E1 MOV R0,R6 \ 00000240 840000EF SWI +132 1528 hFile = fopen("4:\\zbin\\miosd\\miosd.file",A_ReadWrite+A_Create+A_Truncate+ A_BIN,P_READ+P_WRITE, &io_error); \ 00000244 08308DE2 ADD R3,SP,#+8 \ 00000248 602FA0E3 MOV R2,#+384 \ 0000024C 0210A0E3 MOV R1,#+2 \ 00000250 831C81E3 ORR R1,R1,#0x8300 \ 00000254 0600A0E1 MOV R0,R6 \ 00000258 0A0000EF SWI +10 \ 0000025C 0C008DE5 STR R0,[SP, #+12] 1529 if(hFile!=-1) \ 00000260 0C009DE5 LDR R0,[SP, #+12] \ 00000264 08D08DE2 ADD SP,SP,#+8 \ 00000268 040050E1 CMP R0,R4 \ 0000026C 0900000A BEQ ??maincsm_onmessage2_16 1530 { 1531 fwrite(hFile, chinfo, strlen(chinfo), &io_error); \ 00000270 AC0085E2 ADD R0,R5,#+172 \ 00000274 1B0000EF SWI +27 \ 00000278 0020A0E1 MOV R2,R0 \ 0000027C 04009DE5 LDR R0,[SP, #+4] \ 00000280 0D30A0E1 MOV R3,SP \ 00000284 AC1085E2 ADD R1,R5,#+172 \ 00000288 0C0000EF SWI +12 1532 fclose(hFile, &io_error); \ 0000028C 04009DE5 LDR R0,[SP, #+4] \ 00000290 0D10A0E1 MOV R1,SP \ 00000294 0D0000EF SWI +13 1533 } 1534 con=0; \ ??maincsm_onmessage2_16: \ 00000298 847085E5 STR R7,[R5, #+132] 1535 } 1536 } 1537 1538 return (1); \ ??maincsm_onmessage2_15: \ 0000029C 0100A0E3 MOV R0,#+1 \ 000002A0 4CD08DE2 ADD SP,SP,#+76 \ 000002A4 F081BDE8 POP {R4-R8,PC} ;; return \ ??maincsm_onmessage2_1: \ 000002A8 ........ DC32 successed_config_filename \ 000002AC ........ DC32 end_socket \ 000002B0 ........ DC32 send_req \ 000002B4 ........ DC32 get_answer 1539 } 1540 \ In segment CODE, align 4, keep-with-next 1541 static void maincsm_oncreate2(CSM_RAM *data) 1542 { 1543 1544 } \ maincsm_oncreate2: \ 00000000 1EFF2FE1 BX LR ;; return 1545 \ In segment CODE, align 4, keep-with-next 1546 static void Killer2(void) 1547 { \ Killer2: \ 00000000 00402DE9 PUSH {LR} 1548 extern void *ELF_BEGIN; 1549 kill_data(&ELF_BEGIN,(void (*)(void *))mfree_adr()); \ 00000004 158000EF SWI +32789 \ 00000008 0010A0E1 MOV R1,R0 \ 0000000C ........ LDR R0,??DataTable37 ;; ELF_BEGIN \ 00000010 0040BDE8 POP {LR} ;; Pop \ 00000014 ........ _BF kill_data,??kill_data??rA ;; tailcall 1550 } 1551 \ In segment CODE, align 4, keep-with-next 1552 static void maincsm_onclose2(CSM_RAM *csm) 1553 { 1554 RemoveKeybMsgHook((void *)my_keyhook); \ maincsm_onclose2: \ 00000000 ........ LDR R0,??DataTable40 ;; my_keyhook \ 00000004 10402DE9 PUSH {R4,LR} 1555 GBS_DelTimer(&mytmr); \ 00000008 ........ LDR R4,??DataTable41 ;; screen \ 0000000C 2D0100EF SWI +301 \ 00000010 660F84E2 ADD R0,R4,#+408 \ 00000014 8C0100EF SWI +396 1556 GBS_DelTimer(&mytmr2); \ 00000018 9C0F84E2 ADD R0,R4,#+624 \ 0000001C 8C0100EF SWI +396 1557 GBS_DelTimer(&mytmr3); \ 00000020 9400A0E3 MOV R0,#+148 \ 00000024 A40D80E3 ORR R0,R0,#0x2900 \ 00000028 040080E0 ADD R0,R0,R4 \ 0000002C 8C0100EF SWI +396 1558 GBS_DelTimer(&charger); \ 00000030 A400A0E3 MOV R0,#+164 \ 00000034 A80D80E3 ORR R0,R0,#0x2A00 \ 00000038 040080E0 ADD R0,R0,R4 \ 0000003C 8C0100EF SWI +396 1559 GBS_DelTimer(&rs_tmr); \ 00000040 C400A0E3 MOV R0,#+196 \ 00000044 A80D80E3 ORR R0,R0,#0x2A00 \ 00000048 040080E0 ADD R0,R0,R4 \ 0000004C 8C0100EF SWI +396 1560 SUBPROC((void *)Killer2); \ 00000050 04009FE5 LDR R0,??maincsm_onclose2_0 ;; Killer2 \ 00000054 710100EF SWI +369 1561 } \ 00000058 1080BDE8 POP {R4,PC} ;; return \ ??maincsm_onclose2_0: \ 0000005C ........ DC32 Killer2 1562 \ In segment DATA_Z, align 4, align-sorted 1563 static unsigned short maincsm_name_body2[140]; \ maincsm_name_body2: \ 00000000 DS8 280 1564 1565 static const struct 1566 { 1567 CSM_DESC maincsm; 1568 WSHDR maincsm_name; \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4D494F534420 DC8 "MIOSD Demon" \ 44656D6F6E00 \ 0000000C ............ DC32 maincsm_onmessage2, maincsm_oncreate2, 0, 0, 0, 0 \ ....00000000 \ 000000000000 \ 000000000000 \ 00000024 ........2C00 DC32 maincsm_onclose2, 44, 1, minus11, maincsm_name_body2, 55AACCCCH \ 000001000000 \ ............ \ ....CCCCAA55 \ 0000003C 55AA33330000 DC32 3333AA55H, 0 \ 0000 \ 00000044 8B00 DC16 139 \ 00000046 0000 DC8 0, 0 1569 }MAINCSM2 = 1570 { 1571 { 1572 maincsm_onmessage2, 1573 maincsm_oncreate2, 1574 #ifdef NEWSGOLD 1575 0, 1576 0, 1577 0, 1578 0, 1579 #endif 1580 maincsm_onclose2, 1581 sizeof(MAIN_CSM), 1582 1, 1583 &minus11 1584 }, 1585 { 1586 maincsm_name_body2, 1587 NAMECSM_MAGIC1, 1588 NAMECSM_MAGIC2, 1589 0x0, 1590 139 1591 } 1592 }; 1593 1594 // Основная процедура. Она первой получает управление при старте эльфа. \ In segment CODE, align 4, keep-with-next 1595 int main(void) 1596 { \ main: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 1597 LockSched(); \ 00000008 460100EF SWI +326 1598 InitConfig(); \ 0000000C ........ _BLF InitConfig,??InitConfig??rA 1599 /* CSM_RAM *icsm=FindCSMbyID(CSM_root()->idle_id); 1600 memcpy(&icsmd,icsm->constr,sizeof(icsmd)); 1601 old_icsm_onMessage=icsmd.onMessage; 1602 icsmd.onMessage=MyIDLECSM_onMessage; 1603 old_icsm_onClose=icsmd.onClose; 1604 icsmd.onClose=MyIDLECSM_onClose; 1605 icsm->constr=&icsmd; */ 1606 1607 CSM_RAM *save_cmpc; 1608 char dummy[sizeof(MAIN_CSM)]; 1609 UpdateCSMname(); \ 00000010 ........ BL UpdateCSMname 1610 1611 save_cmpc=CSM_root()->csm_q->current_msg_processing_csm; \ 00000014 068100EF SWI +33030 \ 00000018 080090E5 LDR R0,[R0, #+8] \ 0000001C 044090E5 LDR R4,[R0, #+4] 1612 CSM_root()->csm_q->current_msg_processing_csm=CSM_root()->csm_q->csm.first; \ 00000020 068100EF SWI +33030 \ 00000024 0050A0E1 MOV R5,R0 \ 00000028 068100EF SWI +33030 \ 0000002C 080090E5 LDR R0,[R0, #+8] \ 00000030 081095E5 LDR R1,[R5, #+8] \ 00000034 080090E5 LDR R0,[R0, #+8] 1613 CreateCSM(&MAINCSM2.maincsm,dummy,0); \ 00000038 60509FE5 LDR R5,??main_0 ;; `?` \ 0000003C 040081E5 STR R0,[R1, #+4] \ 00000040 0020A0E3 MOV R2,#+0 \ 00000044 0D10A0E1 MOV R1,SP \ 00000048 0C0085E2 ADD R0,R5,#+12 \ 0000004C 070100EF SWI +263 1614 CSM_root()->csm_q->current_msg_processing_csm=save_cmpc; \ 00000050 068100EF SWI +33030 \ 00000054 080090E5 LDR R0,[R0, #+8] \ 00000058 044080E5 STR R4,[R0, #+4] 1615 1616 AddKeybMsgHook((void *)my_keyhook); \ 0000005C ........ LDR R0,??DataTable40 ;; my_keyhook \ 00000060 2B0100EF SWI +299 1617 wsprintf((WSHDR *)(&MAINCSM2.maincsm_name),"MIOSD Demon"); \ 00000064 0510A0E1 MOV R1,R5 \ 00000068 340085E2 ADD R0,R5,#+52 \ 0000006C 240100EF SWI +292 1618 1619 UnlockSched(); \ 00000070 470100EF SWI +327 1620 check_battery(); \ 00000074 ........ BL check_battery 1621 check_gprs(); \ 00000078 ........ BL check_gprs 1622 start_again(); \ 0000007C ........ BL start_again 1623 runtime_count(); \ 00000080 ........ BL runtime_count 1624 first_con=1; \ 00000084 ........ LDR R0,??DataTable41 ;; screen \ 00000088 0110A0E3 MOV R1,#+1 \ 0000008C 201080E5 STR R1,[R0, #+32] 1625 pos=1; \ 00000090 281080E5 STR R1,[R0, #+40] 1626 1627 return 0; \ 00000094 0000A0E3 MOV R0,#+0 \ 00000098 2CD08DE2 ADD SP,SP,#+44 \ 0000009C 3080BDE8 POP {R4,R5,PC} ;; return \ ??main_0: \ 000000A0 ........ DC32 `?` 1628 } \ In segment CODE, align 4, keep-with-next \ ??DataTable0: \ 00000000 ........ DC32 screen \ In segment CODE, align 4, keep-with-next \ ??DataTable8: \ 00000000 ........ DC32 screen \ In segment CODE, align 4, keep-with-next \ ??DataTable9: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable34: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable35: \ 00000000 ........ DC32 create_connect \ In segment CODE, align 4, keep-with-next \ ??DataTable36: \ 00000000 ........ DC32 start_again \ In segment CODE, align 4, keep-with-next \ ??DataTable37: \ 00000000 ........ DC32 ELF_BEGIN \ In segment CODE, align 4, keep-with-next \ ??DataTable40: \ 00000000 ........ DC32 my_keyhook \ In segment CODE, align 4, keep-with-next \ ??DataTable41: \ 00000000 ........ DC32 screen \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000000 DC16 0, 0 \ 00000004 08000000.... DC32 8, `?` \ .... \ `?`: \ 0000000C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000010 14000000 DC32 20 \ `?`: \ 00000014 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000018 00000000 DC8 0, 0, 0, 0 \ `?`: \ 0000001C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000020 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000024 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000028 00000000 DC8 0, 0, 0, 0 \ `?`: \ 0000002C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000030 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000034 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000038 00000000 DC8 0, 0, 0, 0 \ `?`: \ 0000003C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000040 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000044 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000048 00000000 DC8 0, 0, 0, 0 \ `?`: \ 0000004C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000050 01000000 DC32 1 \ `?`: \ 00000054 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000058 00000000 DC8 0, 0, 0, 0 \ `?`: \ 0000005C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000060 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000064 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000068 00000000 DC8 0, 0, 0, 0 \ `?`: \ 0000006C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000070 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000074 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000078 00000000 DC8 0, 0, 0, 0 \ `?`: \ 0000007C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000080 03000000 DC32 3 \ `?`: \ 00000084 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000088 00000000 DC8 0, 0, 0, 0 \ `?`: \ 0000008C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000090 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000094 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000098 00000000 DC8 0, 0, 0, 0 \ `?`: \ 0000009C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 000000A0 00000000 DC8 0, 0, 0, 0 \ `?`: \ 000000A4 00000000 DC8 0, 0, 0, 0 \ `?`: \ 000000A8 00000000 DC8 0, 0, 0, 0 \ `?`: \ 000000AC 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000BC 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 000000CC 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000DC 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 000000EC 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000FC 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 0000010C 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 0000011C 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 0000012C 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 0000013C 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 0000014C 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 0000015C 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 0000016C 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 0000017C 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 0000018C 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ `?`: \ 00000198 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 000001A8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000001B8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 000001C8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000001D8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 000001E8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000001F8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 00000208 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000218 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 00000228 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000238 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000248 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000258 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 00000268 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0 \ 0000 \ `?`: \ 00000270 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 00000280 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000290 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000300 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000310 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000320 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000330 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000340 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000350 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000360 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000370 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000380 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000390 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000400 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000410 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000420 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000430 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000440 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000450 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000460 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000470 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000480 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000490 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000500 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000510 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000520 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000530 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000540 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000550 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000560 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000570 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000580 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000590 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000600 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000610 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000620 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000630 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000640 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000650 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000660 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000670 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000680 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000690 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000700 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000710 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000720 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000730 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000740 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000750 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000760 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000770 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000780 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000790 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000800 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000810 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000820 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000830 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000840 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000850 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000860 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000870 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000880 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000890 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000008A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000008B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000008C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000008D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000008E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000008F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000900 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000910 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000920 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000930 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000940 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000950 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000960 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000970 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000980 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000990 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000009A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000009B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000009C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000009D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000009E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000009F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000A00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000A10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000A20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000A30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000A40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000A50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000A60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000A70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000A80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000A90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000AA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000AB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000AC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000AD0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000AE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000AF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000B00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000B10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000B20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000B30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000B40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000B50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000B60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000B70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000B80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000B90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000BA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000BB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000BC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000BD0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000BE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000BF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000C00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000C10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000C20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000C30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000C40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000C50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000C60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000C70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000C80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000C90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000CA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000CB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000CC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000CD0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000CE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000CF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000D00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000D10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000D20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000D30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000D40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000D50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000D60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000D70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000D80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000D90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000DA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000DB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000DC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000DD0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000DE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000DF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000E00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000E10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000E20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000E30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000E40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000E50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000E60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000E70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000E80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000E90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000EA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000EB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000EC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000ED0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000EE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000EF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000F00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000F10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000F20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000F30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000F40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000F50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000F60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000F70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000F80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000F90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000FA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000FB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000FC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000FD0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000FE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000FF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001000 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001010 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001020 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001030 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001040 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001050 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001060 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001070 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001080 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001090 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000010A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000010B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000010C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000010D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000010E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000010F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001100 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001110 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001120 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001130 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001140 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001150 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001160 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001170 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001180 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001190 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000011A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000011B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000011C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000011D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000011E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000011F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001200 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001210 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001220 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001230 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001240 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001250 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001260 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001270 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001280 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001290 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000012A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000012B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000012C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000012D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000012E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000012F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001300 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001310 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001320 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001330 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001340 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001350 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001360 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001370 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001380 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001390 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000013A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000013B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000013C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000013D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000013E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000013F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001400 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001410 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001420 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001430 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001440 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001450 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001460 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001470 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001480 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001490 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000014A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000014B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000014C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000014D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000014E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000014F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001500 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001510 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001520 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001530 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001540 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001550 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001560 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001570 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001580 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001590 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000015A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000015B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000015C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000015D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000015E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000015F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001600 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001610 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001620 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001630 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001640 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001650 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001660 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001670 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001680 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001690 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000016A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000016B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000016C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000016D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000016E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000016F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001700 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001710 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001720 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001730 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001740 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001750 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001760 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001770 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001780 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001790 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000017A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000017B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000017C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000017D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000017E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000017F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001800 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001810 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001820 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001830 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001840 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001850 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001860 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001870 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001880 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001890 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000018A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000018B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000018C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000018D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000018E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000018F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001900 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001910 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001920 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001930 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001940 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001950 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001960 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001970 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001980 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001990 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000019A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000019B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000019C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000019D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000019E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000019F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001A00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001A10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001A20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001A30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001A40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001A50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001A60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001A70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001A80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001A90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001AA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001AB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001AC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001AD0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001AE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001AF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001B00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001B10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001B20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001B30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001B40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001B50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001B60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001B70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001B80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001B90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001BA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001BB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001BC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001BD0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001BE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001BF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001C00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001C10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001C20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001C30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001C40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001C50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001C60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001C70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001C80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001C90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001CA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001CB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001CC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001CD0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001CE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001CF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001D00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001D10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001D20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001D30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001D40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001D50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001D60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001D70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001D80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001D90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001DA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001DB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001DC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001DD0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001DE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001DF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001E00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001E10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001E20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001E30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001E40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001E50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001E60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001E70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001E80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001E90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001EA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001EB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001EC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001ED0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001EE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001EF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001F00 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001F10 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001F20 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001F30 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001F40 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001F50 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001F60 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001F70 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001F80 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001F90 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001FA0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001FB0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001FC0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001FD0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001FE0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00001FF0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002000 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002010 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002020 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002030 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002040 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002050 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002060 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002070 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002080 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002090 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000020A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000020B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000020C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000020D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000020E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000020F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002100 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002110 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002120 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002130 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002140 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002150 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002160 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002170 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002180 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002190 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000021A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000021B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000021C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000021D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000021E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000021F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002200 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002210 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002220 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002230 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002240 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002250 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002260 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002270 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002280 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002290 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000022A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000022B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000022C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000022D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000022E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000022F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002300 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002310 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002320 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002330 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002340 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002350 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002360 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002370 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002380 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002390 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000023A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000023B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000023C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000023D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000023E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000023F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002400 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002410 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002420 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002430 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002440 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002450 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002460 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002470 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002480 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002490 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000024A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000024B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000024C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000024D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000024E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000024F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002500 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002510 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002520 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002530 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002540 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002550 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002560 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002570 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002580 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002590 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000025A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000025B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000025C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000025D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000025E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000025F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002600 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002610 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002620 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002630 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002640 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002650 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002660 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002670 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002680 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002690 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000026A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000026B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000026C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000026D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000026E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000026F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002700 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002710 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002720 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002730 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002740 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002750 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002760 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002770 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002780 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002790 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000027A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000027B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000027C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000027D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000027E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000027F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002800 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002810 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002820 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002830 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002840 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002850 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002860 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002870 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002880 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002890 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000028A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000028B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000028C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000028D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000028E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000028F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002900 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002910 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002920 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002930 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002940 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002950 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002960 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002970 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002980 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 000000000000 \ 0000 \ `?`: \ 00002994 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 000029A4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000029B4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000029C4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000029D4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000029E4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000029F4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002A04 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002A14 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002A24 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002A34 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002A44 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002A54 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002A64 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002A74 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002A84 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00002A94 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 00002AA4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 00002AB4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 00002AC4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 474554202F77 DC8 47H, 45H, 54H, 20H, 2FH, 77H, 61H, 70H \ 6170 \ 00000008 322F746F776E DC8 32H, 2FH, 74H, 6FH, 77H, 6EH, 73H, 2FH \ 732F \ 00000010 39393934342E DC8 39H, 39H, 39H, 34H, 34H, 2EH, 77H, 61H \ 7761 \ 00000018 703220485454 DC8 70H, 32H, 20H, 48H, 54H, 54H, 50H, 2FH \ 502F \ 00000020 312E300D0A48 DC8 31H, 2EH, 30H, 0DH, 0AH, 48H, 6FH, 73H \ 6F73 \ 00000028 743A20776170 DC8 74H, 3AH, 20H, 77H, 61H, 70H, 2EH, 67H \ 2E67 \ 00000030 69736D657465 DC8 69H, 73H, 6DH, 65H, 74H, 65H, 6FH, 2EH \ 6F2E \ 00000038 72750D0A0D0A DC8 72H, 75H, 0DH, 0AH, 0DH, 0AH, 0 \ 00 \ 0000003F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ 00000000 3C623E00 DC8 "" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25733A202573 DC8 "%s: %s" \ 00 \ 00000007 00 DC8 0 \ 00000008 D2E5ECEFE5F0 DC8 "\322\345\354\357\345\360\340\362\363\360\340" \ E0F2F3F0E000 \ 00000014 3C74723E3C74 DC8 "" \ 653E00 \ 00000055 000000 DC8 0, 0, 0 \ 00000058 C2E5F2E5F000 DC8 "\302\345\362\345\360" \ 0000005E 0000 DC8 0, 0 \ In segment DATA_C, align 1, align-sorted \ 00000000 3E00 DC8 ">" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 343A5C7A6269 DC8 "4:\\zbin\\miosd\\miosd2.file" \ 6E5C6D696F73 \ 645C6D696F73 \ 64322E66696C \ 6500 \ 0000001A 0000 DC8 0, 0 \ 0000001C 556E6B6E6F77 DC8 "Unknown" \ 6E00 \ In segment DATA_C, align 1, align-sorted \ 00000000 256400 DC8 "%d" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 343A5C7A6269 DC8 "4:\\zbin\\miosd\\miosd.file" \ 6E5C6D696F73 \ 645C6D696F73 \ 642E66696C65 \ 00 \ 00000019 000000 DC8 0, 0, 0 \ 0000001C C5F9E520EDE5 DC8 "\305\371\345 \355\345 \347\340\360\377\346\340\353\350" \ 20E7E0F0FFE6 \ E0EBE800 \ 0000002C 4E534420636F DC8 "NSD config updated!" \ 6E6669672075 \ 706461746564 \ 2100 \ 00000040 436861726769 DC8 "Charging(%d min)" \ 6E6728256420 \ 6D696E2900 \ 00000051 000000 DC8 0, 0, 0 \ 00000054 253032643A25 DC8 "%02d:%02d, %02d-%02d" \ 3032642C2025 \ 3032642D2530 \ 326400 \ 00000069 000000 DC8 0, 0, 0 \ In segment DATA_C, align 1, align-sorted \ 00000000 0A00 DC8 "\012" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 343A5C776561 DC8 "4:\\weather.txt" \ 746865722E74 \ 787400 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 343A5C7A6269 DC8 "4:\\zbin\\miosd\\img3.png" \ 6E5C6D696F73 \ 645C696D6733 \ 2E706E6700 \ 00000017 00 DC8 0 \ 00000018 343A5C7A6269 DC8 "4:\\zbin\\miosd\\img4.png" \ 6E5C6D696F73 \ 645C696D6734 \ 2E706E6700 \ 0000002F 00 DC8 0 \ 00000030 343A5C7A6269 DC8 "4:\\zbin\\miosd\\img7.png" \ 6E5C6D696F73 \ 645C696D6737 \ 2E706E6700 \ 00000047 00 DC8 0 \ 00000048 343A5C7A6269 DC8 "4:\\zbin\\miosd\\img6.png" \ 6E5C6D696F73 \ 645C696D6736 \ 2E706E6700 \ 0000005F 00 DC8 0 \ 00000060 343A5C7A6269 DC8 "4:\\zbin\\miosd\\img2.png" \ 6E5C6D696F73 \ 645C696D6732 \ 2E706E6700 \ 00000077 00 DC8 0 \ 00000078 343A5C7A6269 DC8 "4:\\zbin\\miosd\\img1.png" \ 6E5C6D696F73 \ 645C696D6731 \ 2E706E6700 \ 0000008F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ 00000000 25742000 DC8 "%t " \ In segment DATA_C, align 1, align-sorted \ 00000000 257400 DC8 "%t" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 C4E5EAE0E1F0 DC8 "\304\345\352\340\341\360\374" \ FC00 \ 00000008 CDEEFFE1F0FC DC8 "\315\356\377\341\360\374" \ 00 \ 0000000F 00 DC8 0 \ 00000010 CEEAF2FFE1F0 DC8 "\316\352\362\377\341\360\374" \ FC00 \ 00000018 D1E5EDF2FFE1 DC8 "\321\345\355\362\377\341\360\374" \ F0FC00 \ 00000021 000000 DC8 0, 0, 0 \ 00000024 C0E2E3F3F1F2 DC8 "\300\342\343\363\361\362" \ 00 \ 0000002B 00 DC8 0 \ 0000002C C8FEEBFC00 DC8 "\310\376\353\374" \ 00000031 000000 DC8 0, 0, 0 \ 00000034 C8FEEDFC00 DC8 "\310\376\355\374" \ 00000039 000000 DC8 0, 0, 0 \ 0000003C C0EFF0E5EBFC DC8 "\300\357\360\345\353\374" \ 00 \ 00000043 00 DC8 0 \ 00000044 CCE0F0F200 DC8 "\314\340\360\362" \ 00000049 000000 DC8 0, 0, 0 \ 0000004C D4E5E2F0E0EB DC8 "\324\345\342\360\340\353\374" \ FC00 \ 00000054 DFEDE2E0F0FC DC8 "\337\355\342\340\360\374" \ 00 \ 0000005B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ 00000000 CCE0E900 DC8 "\314\340\351" \ In segment DATA_C, align 4, align-sorted \ 00000000 25743A00 DC8 "%t:" \ In segment DATA_C, align 1, align-sorted \ `?`: \ 00000000 00 DC8 "" Maximum stack usage in bytes: Function CSTACK -------- ------ Count_GPRS 12 DoScreen 20 DoShowIt 36 DrawBatteryLog 68 DrawGPRSLog 76 DrawSystemLog 104 DrawWeatherLog 68 DrwImg2 64 ElfKiller 4 Execute 52 Killer2 4 OnKey 24 OnRedraw 20 Parsing 56 UpdateCSMname 4 charger_c 4 check_battery 72 check_gprs 76 create_connect 40 end_socket 8 get_answer 8 get_month 24 log 64 main 56 maincsm_onclose 0 maincsm_onclose2 8 maincsm_oncreate 20 maincsm_oncreate2 0 maincsm_onmessage 0 maincsm_onmessage2 108 method8 0 method9 0 my_keyhook 12 onClose 16 onCreate 8 onFocus 0 onUnfocus 8 reboot_ref 4 runtime_count 4 send_req 12 start_again 4 write_log 64 Segment part sizes: Function/Label Bytes -------------- ----- icsmd 40 old_icsm_onMessage 4 old_icsm_onClose 4 maincsm_name_body 280 minus11 4 start_g 32 DrwImg2 92 DoScreen 76 DoShowIt 900 DrawWeatherLog 860 DrawBatteryLog 740 get_month 340 DrawSystemLog 856 reboot_ref 12 DrawGPRSLog 1032 OnRedraw 396 onCreate 28 onClose 44 onFocus 12 onUnfocus 44 OnKey 500 method8 8 method9 8 ElfKiller 24 Canvas 52 maincsm_oncreate 124 maincsm_onclose 4 maincsm_onmessage 48 ? 68 UpdateCSMname 28 traf 4 create_connect 168 start_again 52 send_req 88 end_socket 40 get_answer 84 log 152 Parsing 596 charger_c 76 write_log 156 Count_GPRS 224 rem_mis 4 mode_enter 8 Execute 136 my_keyhook 224 check_battery 232 check_gprs 248 screen 10964 runtime_count 96 maincsm_onmessage2 696 maincsm_oncreate2 4 Killer2 24 maincsm_onclose2 96 maincsm_name_body2 280 ? 72 main 164 ??DataTable0 4 ??DataTable8 4 ??DataTable9 4 ??DataTable12 4 ??DataTable24 4 ??DataTable30 4 ??DataTable34 4 ??DataTable35 4 ??DataTable36 4 ??DataTable37 4 ??DataTable40 4 ??DataTable41 4 ? 10964 ? 64 ?"> 4 ? 96 ?"> 2 ? 36 ? 3 ? 108 ? 2 ? 16 ? 144 ? 4 ? 3 ? 92 ? 4 ? 4 ? 1 Others 252 10 008 bytes in segment CODE 1 171 bytes in segment DATA_C 10 964 bytes in segment DATA_I 10 964 bytes in segment DATA_ID 656 bytes in segment DATA_Z 24 bytes in segment INITTAB 9 780 bytes of CODE memory (+ 252 bytes shared) 12 135 bytes of CONST memory 11 620 bytes of DATA memory Errors: none Warnings: none