diff --git a/programs/fs/Eolite/trunk/Eolite.c-- b/programs/fs/Eolite/trunk/Eolite.c-- index 3275792ad3..9a9d5b80dc 100644 --- a/programs/fs/Eolite/trunk/Eolite.c-- +++ b/programs/fs/Eolite/trunk/Eolite.c-- @@ -20,14 +20,13 @@ int BUTTON_HEIGHT=18; #define ONLY_OPEN 2 //переменные -#define title "Eolite File Manager v1.23" +#define title "Eolite File Manager v1.25" dword videlenie=0x94AECE; //цвет выделенного элемента из списка файлов // int but_num, count, za_kadrom, curbtn, - disc_num, scroll_size; byte cut_active, rename_active, @@ -53,7 +52,6 @@ struct path_string { char Item[4096]; }; -path_string disk_list[20]; dword stak[100]; //окно About @@ -92,273 +90,289 @@ int pressed_y; } else copystr("/rd/1/", #path); Open_Dir(#path,ONLY_OPEN); - loop() + loop() switch(WaitEvent()) { - switch(WaitEvent()) - { - case evMouse: - IF (del_active==1) break; - - id=GetSlot(Form.ID); - IF (id<>ActiveProcess()) break; //если окно не активно на события мыши не реагируем - - m.get(); + case evMouse: + IF (del_active==1) break; + + id=GetSlot(Form.ID); + IF (id<>ActiveProcess()) break; //если окно не активно на события мыши не реагируем + + IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2); + + m.get(); - if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>40) && (m.y<57) + if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>40) && (m.y<57) + { + IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),41,14,14,0xC7C7C7,0xFFFFFF); + WHILE (m.lkm==1) && (za_kadrom>0) { - IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),41,14,14,0xC7C7C7,0xFFFFFF); - WHILE (m.lkm==1) && (za_kadrom>0) - { - Pause(10); - za_kadrom--; - List_ReDraw(); - m.get(); - } - DrawRegion_3D(onLeft(26,0),41,14,14,0xFFFFFF,0xC7C7C7); - } - - if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y0) FileList_ReDraw(-1); ELSE - { - FileList_ReDraw(-1); - FileList_ReDraw(-1); - FileList_ReDraw(-1); - } - IF (m.vert==1) IF (curbtn=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) && && (m.y<65000) while (m.lkm) - { - IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //если курсор над окном - id=za_kadrom; //сохраняем старое количество - j= scroll_size/2; - za_kadrom = m.y -j -57 * count; - za_kadrom /= onTop(22,57); - IF (but_num+za_kadrom>count) za_kadrom=count-but_num; - IF (id<>za_kadrom) List_ReDraw(); //чтоб лишний раз не перерисовывать + Pause(10); + za_kadrom--; + List_ReDraw(); m.get(); } - break; + DrawRegion_3D(onLeft(26,0),41,14,14,0xFFFFFF,0xC7C7C7); + } + + if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y0) + { + if (za_kadrom>0) za_kadrom--; + if (curbtn0) za_kadrom--; + if (curbtn0) curbtn--; + List_ReDraw(); + if (za_kadrom0) curbtn--; + List_ReDraw(); + } + //скролл + if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) && && (m.y<65000) while (m.lkm) + { + IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //если курсор над окном + id=za_kadrom; //сохраняем старое количество + j= scroll_size/2; + za_kadrom = m.y -j -57 * count; + za_kadrom /= onTop(22,57); + IF (but_num+za_kadrom>count) za_kadrom=count-but_num; + IF (id<>za_kadrom) List_ReDraw(); //чтоб лишний раз не перерисовывать + m.get(); + } + break; //Button pressed----------------------------------------------------------------------------- - case evButton: - IF (edit1.flags<>64) {edit1.flags=64; edit_box_draw stdcall(#edit1);} //сбрасываем выделение при нажатии на батон - id=GetButtonID(); - IF (id==1) ExitProcess(); - IF (del_active==1) {IF (id==301) || (id==302) Del_File(302-id); break;} - switch(id) - { - case 21: //Back - GoBack(); - break; - case 22: //Forward - HistoryPath(go_forward); - break; - case 23: //up! - IF (strcmp(#path,"/")<>0) Dir_Up(); - break; - case 24: //cut - key=24; - case 25: //copy - goto CTRLC_MARK; - case 26: //paste - Paste(); - break; - case 27: //goto edit_path - Goto_edit_path(); - break; - case 31...33: //sort - IF(sort_num==1) DrawBar(onLeft(192,168)/2+210,45,6,9,0xE4DFE1); - IF(sort_num==2) DrawBar(onLeft(115,0),45,6,9,0xE4DFE1); - IF(sort_num==3) DrawBar(onLeft(44,0),45,6,9,0xE4DFE1); - sort_num=id-30; - Open_Dir(#path,1); - break; - case 30: //about - CreateThread(#about_dialog,#stak); - break; - case 77: - IF (show_actions==1) show_actions=0; ELSE show_actions=1; - Actions(); - break; - case 78: - IF (show_dev_name==1) show_dev_name=0; ELSE show_dev_name=1; - DrawSystemDiscs(); - break; - case 80: //rename - goto REN_MARK; - case 81: //Delete file - Del_Form(); - break; - case 82: //create folder - NEW_FOLDER_MARK: - copystr(#path, #temp); - copystr("New folder", #temp+strlen(#temp)); - CreateFolder(#temp); - IF (EAX==0){ - SelectFile("New folder"); - goto REN_MARK; - } - ELSE ShowMessage("Folder can not be created."); - break; - case 100...120: - DEVICE_MARK: - DrawRegion_3D(17,id-100*16+74,159,16, 0, 0); //выделение - copystr(#disk_list[id-100].Item, #path); - za_kadrom=curbtn=0; - Open_Dir(#path,1); - DrawRegion_3D(17,id-100*16+74,159,16, 0xFFFFFF, 0xFFFFFF); - break; - default: - if (id<200) break; //кнопки из списка файлов - IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} - else OPEN_MARK: - if (!isdir) GetIni(0); else - if (strcmp(#file_name,"..")==0) Dir_Up(); else - { OPEN_DEV: - copystr(#file_path, #path); - IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //если нет, + "/" - za_kadrom=curbtn=0; - Open_Dir(#path,1); - } - } - break; -//Key pressed----------------------------------------------------------------------------- - case evKey: - key = GetKey(); - IF (del_active==1) - { - IF (key==013) Del_File(true); - IF (key==027) Del_File(false); - break; - } - IF (edit1.flags<>64) && (edit1.flags<>0) && (key<>13) - { - EAX=key<<8; - edit_box_key stdcall (#edit1); - break; - } - IF (edit2.flags<>64) && (key<>13) && (key<>27) - { - EAX=key<<8; - edit_box_key stdcall (#edit2); - break; - } - switch (key) - { - case 209...217: - id=key-110; - IF (id-100>=disc_num) break; - GOTO DEVICE_MARK; - case 8: //Назад - GoBack(); - break; - case 004: //Ctrl+D рис на раб стол растянуть - copystr("\\S__", #temp); - copystr(#file_path, #temp+strlen(#temp)); - RunProgram("/sys/media/kiv", #temp); - break; - case 014: //Ctrl+N новое окно - IF (Form.left==98) MoveSize(Form.left-20,Form.top-20,OLD,OLD); - RunProgram("/sys/File Managers/Eolite", #path); - break; - case 024: //Ctrl+X cut - case 003: //Ctrl+C copy - CTRLC_MARK: - IF (isdir) break; //папки пока что копировать не умеем - copystr(#file_path,#copy_file); //вычисляем какой файл копировать - IF (key==24) cut_active=1; ELSE cut_active=0; - break; - case 022: Paste(); break;//Ctrl+V paste - case 027: //Esc - IF (rename_active==1) ReName(false); - break; - case 013: //Enter - IF (rename_active==1) {ReName(true); break;} - IF (strcmp(#path,#edit_path)<>0) Goto_edit_path(); - ELSE GOTO OPEN_MARK; - break; - case 55: //F6 - new folder - goto NEW_FOLDER_MARK; - case 56: //IF (rename_active==1) break;//up - case 178: //up - FileList_ReDraw(-1); - break; - case 177: //down - FileList_ReDraw(1); - break; - case 180: //home - za_kadrom=0; - curbtn=0; - List_ReDraw(); - break; - case 181: //end - za_kadrom=count-but_num; - curbtn=but_num-1; - List_ReDraw(); - break; - case 183: //Page Down - FileList_ReDraw(but_num-1); - break; - case 184: //Page Up - FileList_ReDraw(-but_num+1); - break; - case 051: //Нажата F2 - REN_MARK: - DeleteButton(curbtn+201); //это чтоб можно было выделять мышью - edit2.flags=66; //делаем компонент активным - edit2.width=onLeft(24,217); - edit2.top=curbtn*BUTTON_HEIGHT+59; - edit2.size=edit2.pos=strlen(#file_name); - edit_box_draw stdcall (#edit2); - DrawBar(213,curbtn*BUTTON_HEIGHT+58,edit2.width+1,1,0xFFFFCC); //полоса желтая сверху для одинаковости - rename_active=1; - break; - case 052: //Нажата F3 - IF (isdir==false) RunProgram("/sys/tinypad", #file_path); - break; - case 053: //Нажата F4 - IF (isdir==false) RunProgram("/sys/develop/heed", #file_path); - break; - case 054: //F5 + case evButton: + IF (edit1.flags<>64) {edit1.flags=64; edit_box_draw stdcall(#edit1);} //сбрасываем выделение при нажатии на батон + id=GetButtonID(); + IF (id==1) ExitProcess(); + IF (del_active==1) {IF (id==301) || (id==302) Del_File(302-id); break;} + switch(id) + { + case 21: //Back + GoBack(); + break; + case 22: //Forward + HistoryPath(go_forward); + break; + case 23: //up! + Dir_Up(); + break; + case 24: //cut + key=24; + case 25: //copy + goto CTRLC_MARK; + case 26: //paste + Paste(); + break; + case 27: //goto edit_path + Goto_edit_path(); + break; + case 31...33: //sort + IF(sort_num==1) DrawBar(onLeft(192,168)/2+210,45,6,9,0xE4DFE1); + IF(sort_num==2) DrawBar(onLeft(115,0),45,6,9,0xE4DFE1); + IF(sort_num==3) DrawBar(onLeft(44,0),45,6,9,0xE4DFE1); + sort_num=id-30; + Open_Dir(#path,1); + break; + case 30: //about + CreateThread(#about_dialog,#stak); + break; + case 77: + IF (show_actions==1) show_actions=0; ELSE show_actions=1; + Actions(); + break; + case 78: + IF (show_dev_name==1) show_dev_name=0; ELSE show_dev_name=1; + GetSystemDiscs(); + Open_Dir(#path,WITH_REDRAW); + DrawSystemDiscs(); + Actions(); + break; + case 80: //rename + goto REN_MARK; + case 81: //Delete file + Del_Form(); + break; + case 82: //create folder + NEW_FOLDER_MARK: + copystr(#path, #temp); + copystr("New folder", #temp+strlen(#temp)); + CreateFolder(#temp); + IF (EAX==0){ + SelectFile("New folder"); + goto REN_MARK; + } + ELSE + { + Write_Error(EAX); + ShowMessage("Folder can not be created."); + } + break; + case 100...120: + DEVICE_MARK: + DrawRegion_3D(17,id-100*16+74,159,16, 0, 0); //выделение + copystr(#disk_list[id-100].Item, #path); + za_kadrom=curbtn=0; + Open_Dir(#path,1); + Pause(5); + DrawRegion_3D(17,id-100*16+74,159,16, 0xFFFFFF, 0xFFFFFF); + break; + default: + if (id<200) break; //кнопки из списка файлов + if (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} + else OPEN_MARK: + if (!isdir) GetIni(0); else + if (strcmp(#file_name,"..")==0) Dir_Up(); + else + { + OPEN_DEV: + copystr(#file_path, #path); + IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //если нет, + "/" + za_kadrom=curbtn=0; Open_Dir(#path,1); - break; - case 182: //delete file - Del_Form(); - break; - default: - for (i=curbtn+za_kadrom+1; i64) && (edit1.flags<>0) && (key<>13) + { + EAX=key<<8; + edit_box_key stdcall (#edit1); + break; + } + IF (edit2.flags<>64) && (key<>13) && (key<>27) + { + EAX=key<<8; + edit_box_key stdcall (#edit2); + break; + } + switch (key) + { + case 209...217: + id=key-110; + IF (id-100>=disc_num) break; + GOTO DEVICE_MARK; + case 8: //Назад + //GoBack(); + Dir_Up(); + break; + case 004: //Ctrl+D рис на раб стол растянуть + copystr("\\S__", #temp); + copystr(#file_path, #temp+strlen(#temp)); + RunProgram("/sys/media/kiv", #temp); + break; + case 014: //Ctrl+N новое окно + IF (Form.left==98) MoveSize(Form.left-20,Form.top-20,OLD,OLD); + RunProgram("/sys/File Managers/Eolite", #path); + break; + case 024: //Ctrl+X cut + case 003: //Ctrl+C copy + CTRLC_MARK: + IF (isdir) break; //папки пока что копировать не умеем + copystr(#file_path,#copy_file); //вычисляем какой файл копировать + IF (key==24) cut_active=1; ELSE cut_active=0; + break; + case 022: Paste(); break;//Ctrl+V paste + case 027: //Esc + IF (rename_active==1) ReName(false); + break; + case 013: //Enter + IF (rename_active==1) {ReName(true); break;} + IF (strcmp(#path,#edit_path)<>0) Goto_edit_path(); + ELSE GOTO OPEN_MARK; + break; + case 55: //F6 - new folder + goto NEW_FOLDER_MARK; + case 56: //IF (rename_active==1) break;//up + case 178: //up + FileList_ReDraw(-1); + break; + case 177: //down + FileList_ReDraw(1); + break; + case 180: //home + za_kadrom=0; + curbtn=0; + List_ReDraw(); + break; + case 181: //end + za_kadrom=count-but_num; + curbtn=but_num-1; + List_ReDraw(); + break; + case 183: //Page Down + FileList_ReDraw(but_num-1); + break; + case 184: //Page Up + FileList_ReDraw(-but_num+1); + break; + case 051: //Нажата F2 + REN_MARK: + DeleteButton(curbtn+201); //это чтоб можно было выделять мышью + edit2.flags=66; //делаем компонент активным + edit2.width=onLeft(24,217); + edit2.top=curbtn*BUTTON_HEIGHT+59; + edit2.size=edit2.pos=strlen(#file_name); + edit_box_draw stdcall (#edit2); + DrawBar(213,curbtn*BUTTON_HEIGHT+58,edit2.width+1,1,0xFFFFCC); //полоса желтая сверху для одинаковости + rename_active=1; + break; + case 052: //Нажата F3 + IF (isdir==false) RunProgram("/sys/tinypad", #file_path); + break; + case 053: //Нажата F4 + IF (isdir==false) RunProgram("/sys/develop/heed", #file_path); + break; + case 054: //F5 + Open_Dir(#path,1); + break; + case 182: //delete file + Del_Form(); + break; + default: + for (i=curbtn+za_kadrom+1; i='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20; + IF (temp[0]==key) { - copystr(file_mas[i]*304+buf+72,#temp); - AL=DSBYTE[#temp]; - IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20; - IF (temp[0]==key) - { - FileList_ReDraw(i-curbtn-za_kadrom); - break; - } + FileList_ReDraw(i-curbtn-za_kadrom); + break; } - } - BREAK; - case evReDraw: draw_window(); - } - IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2); + } + } + BREAK; + case evReDraw: + draw_window(); } } @@ -394,8 +408,6 @@ inline fastcall void draw_window() DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size"); //Перерисовываем список Open_Dir(#path,ONLY_SHOW); - //List_ReDraw(); - //KEdit(); //прокрутка DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //линия слева от прокрутки DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //прокрутка вверх @@ -514,10 +526,10 @@ void Line_ReDraw(dword color, filenum){ IF (!strcmp("..",off)) temp_int=Put_icon("..", BUTTON_HEIGHT/2-7+y); ELSE temp_int=Put_icon("", BUTTON_HEIGHT/2-7+y); - if (color==videlenie) + if (color<>0xFFFfff) { isdir=TestBit(ESDWORD[off-40], 4); - IconFairing(temp_int, BUTTON_HEIGHT/2-7+y); //закрашиваем иконку + IconFairing(temp_int, BUTTON_HEIGHT/2-7+y, color); //закрашиваем иконку copystr(off,#file_name); copystr(#path,#file_path); copystr(#file_name,#file_path+strlen(#file_path)); //полный путь к файлу @@ -545,9 +557,9 @@ void Open_Dir(dword temp_, redraw){ errornum=ReadDir(0, buf, #path_); if (errornum<>0) //ошибка при чтении папки { - Write_Debug_Error(errornum); HistoryPath(add_new_path); GoBack(); + Write_Error(errornum); return; } count = ESDWORD[buf+8]; @@ -641,7 +653,7 @@ void Del_File(byte dodel) del_file_rez=DeleleFile(#file_path); IF (del_file_rez<>0) { - Write_Debug_Error(del_file_rez); + Write_Error(del_file_rez); IF (isdir==true) ShowMessage("Error. Folder isn't empty."); IF (isdir==false) ShowMessage("Error. Filesystem read-only."); } @@ -668,7 +680,7 @@ void Paste() copy_rezult=CopyFile(#copy_file,#new_copy_path); IF (copy_rezult<>0) //ошибка { - Write_Debug_Error(copy_rezult); + Write_Error(copy_rezult); DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. You can't paste here."); Pause(150); } @@ -712,7 +724,7 @@ void ReName(byte rename) del_file_rez=DeleleFile(#file_path); IF (del_file_rez<>0) { - Write_Debug_Error(del_file_rez); + Write_Error(del_file_rez); ShowMessage("Error. Folder isn't empty."); return; } @@ -786,6 +798,7 @@ void SelectFile(dword that_file) void Dir_Up() { char cur_folder[4096]; + if (!strcmp(#path,"/")) return; i=strlen(#path)-1; path[i]=0x00; do i--; while (path[i]<>'/'); copystr(#path+i+1,#cur_folder); diff --git a/programs/fs/Eolite/trunk/History.txt b/programs/fs/Eolite/trunk/History.txt index 8b7a3879c7..4ced1f9380 100644 --- a/programs/fs/Eolite/trunk/History.txt +++ b/programs/fs/Eolite/trunk/History.txt @@ -1,3 +1,8 @@ +21.06.12 -- v1.25 +- распознавание виртуального диска; +- изменения в прокрутке колёсиком мыши; +- обновление кода. + 14.06.12 -- v1.23 - исправлен баг, когда окно было схлопнуто в заголовок и свёрнуто; - при нажатие на кнопку закрытия окна ползунок прыгал вверх. diff --git a/programs/fs/Eolite/trunk/compile.bat b/programs/fs/Eolite/trunk/compile.bat index 5bb4d73d95..73249edeed 100644 --- a/programs/fs/Eolite/trunk/compile.bat +++ b/programs/fs/Eolite/trunk/compile.bat @@ -1,5 +1,6 @@ -@..\C--\c-- Eolite.c-- del Eolite +@..\C--\c-- Eolite.c-- rename Eolite.com Eolite -rem @..\C--\kpack Eolite +rem ..\C--\kpack Eolite +del warning.txt pause \ No newline at end of file diff --git a/programs/fs/Eolite/trunk/imgs/dev.png b/programs/fs/Eolite/trunk/imgs/dev.png index b9f57a16d6..9e0256bf1c 100644 Binary files a/programs/fs/Eolite/trunk/imgs/dev.png and b/programs/fs/Eolite/trunk/imgs/dev.png differ diff --git a/programs/fs/Eolite/trunk/imgs/left_p.txt b/programs/fs/Eolite/trunk/imgs/left_p.txt index 1b8a3f6e81..437b9cdbe5 100644 --- a/programs/fs/Eolite/trunk/imgs/left_p.txt +++ b/programs/fs/Eolite/trunk/imgs/left_p.txt @@ -1,147 +1,180 @@ -unsigned char devices[2184] = { +unsigned char devices[2730] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x52, 0x51, 0xFF, 0x5A, 0x65, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x52, 0x59, 0xFF, 0xAD, 0xB2, 0xF7, 0xD6, 0xD3, 0xFF, 0x5A, 0x69, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x42, 0x6D, 0xF7, 0xA5, 0xA6, 0xFF, 0xCE, 0xCB, 0xFF, 0xC6, 0xC3, 0xFF, 0xAD, 0xBA, 0xFF, 0x5A, + 0x42, 0x6D, 0xF7, 0xA5, 0xA6, 0xFF, 0xDA, 0xD8, 0xFF, 0xD4, 0xD2, 0xFF, 0xAD, 0xBA, 0xFF, 0x5A, 0x71, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x86, 0xCE, 0x7B, 0xB2, 0xEF, 0xAD, 0xC3, 0xF7, - 0xAD, 0xBA, 0xFF, 0xAD, 0xBA, 0xFF, 0x9C, 0xB6, 0xFF, 0x73, 0x9E, 0xFF, 0x39, 0x8E, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x86, 0xCE, 0x7B, 0xB2, 0xEF, 0xC2, 0xD2, 0xF9, + 0xAD, 0xBA, 0xFF, 0xAD, 0xBA, 0xFF, 0xB5, 0xC8, 0xFF, 0x73, 0x9E, 0xFF, 0x39, 0x8E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x21, 0xAA, - 0x63, 0x5A, 0xCF, 0xBD, 0x9C, 0xD7, 0xEF, 0x94, 0xD3, 0xE7, 0x9C, 0xB2, 0xF6, 0x94, 0xB2, 0xF6, - 0x8C, 0xAA, 0xFE, 0x7A, 0xAA, 0xFE, 0x62, 0xAE, 0xFE, 0x20, 0x92, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x38, 0xCA, 0x42, 0x5A, 0xDA, 0x62, 0x72, 0xE2, 0x9C, 0x7A, 0xD2, + 0x63, 0x5A, 0xCF, 0xBD, 0xB5, 0xE1, 0xF3, 0x94, 0xD3, 0xE7, 0x9C, 0xB2, 0xF6, 0x94, 0xB2, 0xF6, + 0x8C, 0xAA, 0xFE, 0x9C, 0xC0, 0xFE, 0x62, 0xAE, 0xFE, 0x20, 0x92, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x38, 0xCA, 0x42, 0x5A, 0xDA, 0x62, 0x96, 0xE9, 0xB5, 0x7A, 0xD2, 0xC6, 0x7A, 0xCE, 0xCE, 0x7A, 0xB2, 0xE6, 0x7A, 0xAE, 0xE6, 0x72, 0xAE, 0xEE, 0x5A, 0xB6, 0xFE, - 0x5A, 0xB6, 0xFE, 0x52, 0xB6, 0xFE, 0x20, 0x9A, 0xF6, 0xFF, 0xFF, 0xFF, 0x42, 0xC2, 0x4A, 0x4A, - 0xDA, 0x62, 0x52, 0xE6, 0x72, 0x62, 0xDE, 0x7A, 0x6A, 0xDA, 0x7A, 0x6A, 0xC6, 0x84, 0x6A, 0xBE, - 0x8C, 0x62, 0xAE, 0xCE, 0x5A, 0xAE, 0xD6, 0x4A, 0xB2, 0xEE, 0x30, 0xAE, 0xE6, 0x18, 0xAE, 0xF6, - 0x08, 0xA6, 0xE6, 0x00, 0x82, 0xBC, 0xFF, 0xFF, 0xFF, 0x4A, 0xC6, 0x4A, 0x5A, 0xDE, 0x62, 0x7A, + 0x5A, 0xB6, 0xFE, 0x52, 0xB6, 0xFE, 0x20, 0x9A, 0xF6, 0xFF, 0xFF, 0xFF, 0x58, 0xC9, 0x5F, 0x42, + 0xC2, 0x57, 0x52, 0xE6, 0x72, 0x62, 0xDE, 0x7A, 0x6A, 0xDA, 0x7A, 0x6A, 0xC6, 0x84, 0x6A, 0xBE, + 0x8C, 0x62, 0xAE, 0xCE, 0x5A, 0xAE, 0xD6, 0x4A, 0xB2, 0xEE, 0x30, 0xAE, 0xE6, 0x26, 0xAF, 0xF6, + 0x37, 0xA7, 0xDB, 0x59, 0xAC, 0xD1, 0xE4, 0xE6, 0xEB, 0x43, 0xB5, 0x43, 0x50, 0xC6, 0x57, 0x7A, 0xDE, 0x5A, 0x8C, 0xE2, 0x5A, 0x9C, 0xCA, 0x52, 0xA4, 0xC6, 0x5A, 0x72, 0xC2, 0x7A, 0x62, 0xB6, - 0x9C, 0x4A, 0xAA, 0xCE, 0x30, 0xAE, 0xDE, 0x18, 0xAA, 0xDE, 0x00, 0x7C, 0xB4, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x52, 0xC2, 0x42, 0x8C, 0xDA, 0x4A, 0xBC, 0xDE, 0x38, 0xCE, - 0xCE, 0x30, 0xD6, 0xBE, 0x30, 0xCE, 0xC6, 0x38, 0xA4, 0xC6, 0x52, 0x62, 0xBE, 0x84, 0x42, 0xA6, - 0xA4, 0x18, 0x7C, 0xAC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xA4, 0xBE, 0x20, 0xC6, 0xCE, 0x28, 0xE6, 0xC2, 0x18, 0xDE, 0xA6, 0x18, 0xD6, - 0xB6, 0x20, 0xD6, 0xBA, 0x28, 0x94, 0xBA, 0x42, 0x28, 0x92, 0x5A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x9C, 0x4A, 0xAA, 0xCE, 0x3C, 0xB2, 0xDF, 0x36, 0xA5, 0xDA, 0x43, 0x9D, 0xC6, 0xED, 0xEE, 0xF1, + 0xFF, 0xFF, 0xFF, 0xE4, 0xE1, 0xD9, 0x4B, 0xB2, 0x3C, 0x7D, 0xC2, 0x42, 0xBC, 0xDE, 0x38, 0xCE, + 0xCE, 0x30, 0xD6, 0xBE, 0x30, 0xCE, 0xC6, 0x38, 0xA4, 0xC6, 0x52, 0x62, 0xBE, 0x84, 0x4D, 0xA3, + 0xBB, 0x53, 0x9D, 0xC0, 0xE7, 0xE4, 0xDD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xE1, 0xDE, 0xD4, 0x96, 0xAE, 0x1D, 0xB1, 0xB8, 0x23, 0xE6, 0xC2, 0x18, 0xDE, 0xA6, 0x18, 0xD6, + 0xB6, 0x20, 0xD6, 0xBA, 0x28, 0x8E, 0xAD, 0x4B, 0x41, 0x9E, 0x6D, 0xE4, 0xE1, 0xD9, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xDE, 0xD4, + 0xB5, 0x8D, 0x0E, 0xDB, 0x98, 0x07, 0xDB, 0x98, 0x07, 0xDB, 0x90, 0x07, 0xC4, 0x92, 0x21, 0x99, + 0x97, 0x2C, 0xE4, 0xE1, 0xD9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xDE, 0xD4, 0xC4, 0x7A, 0x00, + 0xE3, 0x90, 0x00, 0xD7, 0x8F, 0x15, 0xB5, 0x84, 0x1E, 0xE4, 0xE1, 0xD9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xC6, 0x9A, 0x10, 0xF6, 0xAA, 0x08, 0xF6, 0xAA, 0x08, 0xF6, 0xA2, 0x08, 0xD6, 0x9A, 0x10, 0x8C, - 0x8A, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x86, 0x00, - 0xFE, 0xA2, 0x00, 0xEE, 0x96, 0x00, 0xAC, 0x74, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x86, 0x00, 0xBC, 0x6C, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xE1, 0xDE, - 0xD4, 0xA5, 0x8F, 0x7D, 0x90, 0x77, 0x63, 0x8F, 0x76, 0x62, 0x8F, 0x76, 0x62, 0xA5, 0x8F, 0x7D, - 0xE1, 0xDE, 0xD4, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, - 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xBE, 0xB8, 0xA2, 0x91, 0x74, 0x62, 0xD3, 0xC8, 0xBE, 0xFA, 0xF7, - 0xF8, 0xFF, 0xFF, 0xFE, 0xFA, 0xF7, 0xF8, 0xD3, 0xC8, 0xBE, 0x91, 0x74, 0x62, 0xBE, 0xB8, 0xA2, - 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xBE, 0xB8, 0xA2, 0x97, - 0x81, 0x67, 0xF4, 0xF3, 0xEF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, - 0xFE, 0xFF, 0xFF, 0xFE, 0xD4, 0xE8, 0xD0, 0x97, 0x81, 0x67, 0xBE, 0xB8, 0xA2, 0xFF, 0xFF, 0xFE, - 0xFF, 0xFF, 0xFE, 0xE1, 0xDE, 0xD4, 0x93, 0x76, 0x64, 0xF4, 0xF3, 0xEF, 0xFF, 0xFF, 0xFE, 0xFF, - 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xD8, 0xED, 0xD9, 0x97, 0xD1, - 0x9A, 0xDC, 0xDB, 0xF0, 0x91, 0x74, 0x62, 0xE1, 0xDE, 0xD4, 0xFF, 0xFF, 0xFE, 0xA5, 0x8F, 0x7D, - 0xD3, 0xC8, 0xBE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xCE, - 0xD1, 0xDC, 0xFB, 0xFB, 0xFC, 0x85, 0xB5, 0xA2, 0xA9, 0xB5, 0xD3, 0xAF, 0xAD, 0xF0, 0xCF, 0xBC, - 0xB2, 0xA5, 0x8F, 0x7D, 0xFF, 0xFF, 0xFE, 0x90, 0x77, 0x63, 0xFA, 0xF7, 0xF8, 0xFF, 0xFF, 0xFE, - 0xFB, 0xF8, 0xF7, 0xF6, 0xEB, 0xEA, 0xBB, 0x9E, 0xA5, 0x8F, 0x7A, 0x62, 0xC2, 0xBD, 0xA9, 0x9E, - 0x9E, 0xD1, 0xBC, 0xAC, 0xD2, 0xD4, 0xB9, 0xC7, 0xE4, 0xC4, 0xC3, 0x89, 0x72, 0x5E, 0xFF, 0xFF, - 0xFE, 0x8F, 0x76, 0x62, 0xF6, 0xEB, 0xEA, 0xF1, 0xDF, 0xDD, 0xEC, 0xD4, 0xD2, 0xBE, 0xA2, 0xB3, - 0x8F, 0x6E, 0x62, 0xE7, 0xE5, 0xDC, 0x9A, 0x79, 0x6C, 0xD9, 0xBB, 0xC6, 0xE1, 0xCA, 0xCA, 0xE7, - 0xD9, 0xD7, 0xF6, 0xEB, 0xEA, 0x93, 0x7E, 0x65, 0xFF, 0xFF, 0xFE, 0x8F, 0x76, 0x62, 0xE4, 0xC4, - 0xC3, 0xDD, 0xC5, 0xD2, 0xCD, 0xBC, 0xDD, 0xAD, 0xAD, 0xDC, 0xAF, 0xB4, 0xC6, 0x90, 0x7B, 0x62, - 0xE6, 0xE4, 0xDB, 0xF1, 0xE7, 0xE7, 0xF1, 0xED, 0xF0, 0xF9, 0xFA, 0xFB, 0xFA, 0xF7, 0xF8, 0x8D, - 0x83, 0x61, 0xFF, 0xFF, 0xFE, 0xA5, 0x8F, 0x7D, 0xCF, 0xBC, 0xB2, 0xBA, 0xB6, 0xF7, 0xB8, 0xC6, - 0xE7, 0x8B, 0xBB, 0xA7, 0xE1, 0xE3, 0xE9, 0xFC, 0xFC, 0xFD, 0xF4, 0xF4, 0xF7, 0xF7, 0xF4, 0xF7, - 0xF7, 0xF8, 0xFA, 0xF4, 0xF4, 0xF7, 0xD3, 0xC8, 0xBE, 0xA5, 0x8F, 0x7D, 0xFF, 0xFF, 0xFE, 0xE1, - 0xDE, 0xD4, 0x93, 0x76, 0x64, 0xDC, 0xDB, 0xF0, 0x8A, 0xC5, 0x91, 0xC4, 0xDA, 0xCB, 0xE5, 0xED, - 0xEB, 0xE9, 0xEA, 0xEF, 0xF7, 0xF4, 0xF7, 0xF8, 0xF9, 0xFA, 0xE1, 0xE3, 0xE9, 0xF4, 0xF3, 0xEF, - 0x8F, 0x68, 0x62, 0xE1, 0xDE, 0xD4, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xBE, 0xB8, 0xA2, 0x97, - 0x81, 0x67, 0xD4, 0xE8, 0xD0, 0xEE, 0xEF, 0xF3, 0xED, 0xEE, 0xF2, 0xED, 0xEE, 0xF3, 0xF9, 0xFA, - 0xFB, 0xE7, 0xE8, 0xEE, 0xF4, 0xF3, 0xEF, 0x97, 0x75, 0x67, 0xBE, 0xB8, 0xA2, 0xFF, 0xFF, 0xFE, - 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xBE, 0xB8, 0xA2, 0x91, 0x74, 0x62, 0xD3, - 0xC8, 0xBE, 0xFA, 0xF7, 0xF8, 0xFF, 0xFF, 0xFE, 0xFA, 0xF7, 0xF8, 0xD3, 0xC8, 0xBE, 0x91, 0x74, - 0x62, 0xD2, 0xCE, 0xBF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, - 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xE1, 0xDE, 0xD4, 0xA5, 0x8F, 0x7D, 0x8F, 0x76, 0x62, 0x8E, - 0x75, 0x62, 0x90, 0x77, 0x63, 0xA5, 0x8F, 0x7D, 0xE1, 0xDE, 0xD4, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, - 0xFE, 0xFF, 0xFF, 0xFE, 0xCE, 0xC1, 0xAF, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, - 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, - 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xCE, 0xC1, 0xAF, 0x87, 0x6F, - 0x66, 0xF0, 0xCA, 0xA4, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0xF0, 0xCA, 0xA4, - 0x87, 0x6F, 0x66, 0xE2, 0xE4, 0xEA, 0xA8, 0x6C, 0x3D, 0xE2, 0xE4, 0xEA, 0x87, 0x6F, 0x66, 0xF0, - 0xCA, 0xA4, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, - 0x7E, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0xD4, 0xD4, 0xD4, - 0xA8, 0x6C, 0x3D, 0xD4, 0xD4, 0xD4, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, - 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, - 0x66, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, - 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, - 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, - 0x66, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, - 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0xD1, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xDE, 0xD4, 0xC4, 0x7A, 0x00, 0xC3, 0x7D, 0x1E, + 0xE4, 0xE1, 0xD9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDB, + 0xCA, 0xAA, 0x88, 0x6D, 0x93, 0x70, 0x55, 0x92, 0x6F, 0x54, 0x92, 0x6F, 0x54, 0xAA, 0x88, 0x6D, + 0xE0, 0xDB, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xB7, 0x95, 0x94, 0x6C, 0x54, 0xD3, 0xC2, 0xB3, 0xF7, 0xEF, + 0xF2, 0xFF, 0xFF, 0xF3, 0xF7, 0xEF, 0xF2, 0xD3, 0xC2, 0xB3, 0x94, 0x6C, 0x54, 0xC0, 0xB7, 0x95, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xB7, 0x95, 0x9A, + 0x7C, 0x59, 0xF1, 0xEF, 0xE7, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, + 0xF3, 0xFF, 0xFF, 0xF3, 0xCB, 0xE7, 0xC5, 0x9A, 0x7C, 0x59, 0xC0, 0xB7, 0x95, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xE0, 0xDB, 0xCA, 0x96, 0x6E, 0x56, 0xF1, 0xEF, 0xE7, 0xFF, 0xFF, 0xF3, 0xFF, + 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xCE, 0xEC, 0xCF, 0x89, 0xD4, + 0x8D, 0xD2, 0xD1, 0xEF, 0x94, 0x6C, 0x54, 0xE0, 0xDB, 0xCA, 0xFF, 0xFF, 0xFF, 0xAA, 0x88, 0x6D, + 0xD3, 0xC2, 0xB3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xC4, + 0xC9, 0xDB, 0xF4, 0xF4, 0xF8, 0x76, 0xB9, 0x9E, 0x9C, 0xAC, 0xD5, 0xA2, 0xA0, 0xF2, 0xD0, 0xB4, + 0xA6, 0xAA, 0x88, 0x6D, 0xFF, 0xFF, 0xFF, 0x93, 0x70, 0x55, 0xF7, 0xEF, 0xF2, 0xFF, 0xFF, 0xF3, + 0xF8, 0xF1, 0xEF, 0xF4, 0xE2, 0xE1, 0xBD, 0x90, 0x9B, 0x92, 0x75, 0x54, 0xC4, 0xBC, 0x9C, 0x90, + 0x90, 0xD3, 0xB5, 0x9F, 0xD3, 0xD5, 0xAD, 0xC2, 0xE4, 0xB9, 0xB8, 0x8B, 0x6C, 0x51, 0xFF, 0xFF, + 0xFF, 0x92, 0x6F, 0x54, 0xF4, 0xE2, 0xE1, 0xF0, 0xD6, 0xD3, 0xEB, 0xCA, 0xC7, 0xC0, 0x95, 0xAF, + 0x92, 0x65, 0x54, 0xE5, 0xE2, 0xD3, 0x9F, 0x6F, 0x5C, 0xD9, 0xAF, 0xBF, 0xE1, 0xBF, 0xBF, 0xE6, + 0xD0, 0xCD, 0xF4, 0xE2, 0xE1, 0x96, 0x79, 0x57, 0xFF, 0xFF, 0xFF, 0x92, 0x6F, 0x54, 0xE4, 0xB9, + 0xB8, 0xDD, 0xBA, 0xCD, 0xC8, 0xB0, 0xDE, 0xA0, 0xA0, 0xDE, 0xA3, 0xAB, 0xC7, 0x93, 0x76, 0x54, + 0xE4, 0xE1, 0xD2, 0xEF, 0xDE, 0xDE, 0xEE, 0xE5, 0xEC, 0xF2, 0xF4, 0xF7, 0xF7, 0xEF, 0xF2, 0x90, + 0x82, 0x53, 0xFF, 0xFF, 0xFF, 0xAA, 0x88, 0x6D, 0xD0, 0xB4, 0xA6, 0xAE, 0xA9, 0xF9, 0xAC, 0xBE, + 0xE8, 0x7C, 0xBE, 0xA3, 0xD8, 0xDC, 0xE7, 0xF5, 0xF5, 0xF9, 0xEC, 0xEC, 0xF3, 0xF3, 0xEC, 0xF3, + 0xEF, 0xF2, 0xF7, 0xEC, 0xEC, 0xF3, 0xD3, 0xC2, 0xB3, 0xAA, 0x88, 0x6D, 0xFF, 0xFF, 0xFF, 0xE0, + 0xDB, 0xCA, 0x96, 0x6E, 0x56, 0xD2, 0xD1, 0xEF, 0x7B, 0xC9, 0x84, 0xB9, 0xDA, 0xC3, 0xDC, 0xEA, + 0xE7, 0xE1, 0xE3, 0xEC, 0xF3, 0xEC, 0xF3, 0xF1, 0xF3, 0xF6, 0xD8, 0xDC, 0xE7, 0xF1, 0xEF, 0xE7, + 0x92, 0x5C, 0x54, 0xE0, 0xDB, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xB7, 0x95, 0x9A, + 0x7C, 0x59, 0xCB, 0xE7, 0xC5, 0xE6, 0xE8, 0xF0, 0xE5, 0xE7, 0xEF, 0xE5, 0xE7, 0xF0, 0xF2, 0xF4, + 0xF7, 0xDE, 0xE0, 0xEB, 0xF1, 0xEF, 0xE7, 0x9A, 0x6C, 0x59, 0xC0, 0xB7, 0x95, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xB7, 0x95, 0x94, 0x6C, 0x54, 0xD3, + 0xC2, 0xB3, 0xF7, 0xEF, 0xF2, 0xFF, 0xFF, 0xF3, 0xF7, 0xEF, 0xF2, 0xD3, 0xC2, 0xB3, 0x94, 0x6C, + 0x54, 0xD2, 0xCC, 0xB4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDB, 0xCA, 0xAA, 0x88, 0x6D, 0x92, 0x6F, 0x54, 0x91, + 0x6E, 0x54, 0x93, 0x70, 0x55, 0xAA, 0x88, 0x6D, 0xE0, 0xDB, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, + 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, + 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, + 0x44, 0xD1, 0xA3, 0x7E, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0xF0, 0xCA, 0xA4, + 0x77, 0x5A, 0x44, 0xE2, 0xE4, 0xEA, 0xA8, 0x6C, 0x3D, 0xE2, 0xE4, 0xEA, 0x77, 0x5A, 0x44, 0xF0, + 0xCA, 0xA4, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, + 0x7E, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0xD4, 0xD4, 0xD4, + 0xA8, 0x6C, 0x3D, 0xD4, 0xD4, 0xD4, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x77, + 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0xD1, 0xA3, + 0x7E, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, + 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, + 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, + 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, + 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, - 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, - 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, + 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, + 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, - 0x66, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, - 0x87, 0x6F, 0x66, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, - 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0x87, 0x6F, 0x66, 0xD1, 0xA3, - 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0x7D, 0x5E, 0xE7, + 0x66, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, + 0x77, 0x5A, 0x44, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, + 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0x77, 0x5A, 0x44, 0xD1, 0xA3, + 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, 0x44, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, - 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, - 0x66, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, - 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0x87, - 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, - 0x66, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, - 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0x87, - 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, + 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, + 0x44, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, 0x44, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, + 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0x77, + 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, + 0x44, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, + 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0x77, + 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, 0x44, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, 0x99, - 0xDB, 0xBA, 0x99, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, - 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, - 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, - 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDB, 0xBA, 0x99, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, + 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, + 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, + 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, - 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, - 0x4A, 0x8E, 0x72, 0x4A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E, 0x72, 0x4A, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, + 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, + 0x48, 0x83, 0x6A, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0x6A, 0x48, 0xEA, 0xE4, 0xE6, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, - 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xEA, 0xE4, 0xE6, 0x8E, 0x72, - 0x4A, 0xFF, 0xFF, 0xFF, 0x8E, 0x72, 0x4A, 0xEC, 0xE8, 0xEA, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, + 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xEA, 0xE4, 0xE6, 0x83, 0x6A, + 0x48, 0xFF, 0xFF, 0xFF, 0x83, 0x6A, 0x48, 0xEC, 0xE8, 0xEA, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, - 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xEC, 0xE8, 0xEA, 0x8E, 0x72, 0x4A, 0x8E, 0x72, - 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, - 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, - 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xEC, 0xE8, 0xEA, 0x83, 0x6A, 0x48, 0x83, 0x6A, + 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, + 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, + 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E, - 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0xFF, 0xFF, 0xFF, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, + 0x6A, 0x48, 0x83, 0x6A, 0x48, 0xFF, 0xFF, 0xFF, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, - 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEC, 0xE6, 0xE8, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0xFF, + 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEC, 0xE6, 0xE8, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0xFF, 0xFF, 0xFF, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0x26, 0xA8, 0x6E, 0x26, 0xAA, 0x6E, - 0xEC, 0xE6, 0xE8, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0xFF, 0xFF, 0xFF, 0xEE, 0xEA, 0xEE, 0xEE, + 0xEC, 0xE6, 0xE8, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0xFF, 0xFF, 0xFF, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, - 0xEE, 0xEE, 0xEA, 0xEE, 0x26, 0xAA, 0x6E, 0x26, 0xAA, 0x70, 0xEC, 0xE6, 0xE8, 0x8E, 0x72, 0x4A, + 0xEE, 0xEE, 0xEA, 0xEE, 0x26, 0xAA, 0x6E, 0x26, 0xAA, 0x70, 0xEC, 0xE6, 0xE8, 0x83, 0x6A, 0x48, 0x96, 0x7C, 0x56, 0xEC, 0xE8, 0xEA, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0x96, 0x7C, 0x56, 0xCA, 0xBC, 0xAA, 0x96, 0x7C, 0x56, - 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, - 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x96, 0x7C, + 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, + 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x96, 0x7C, 0x56, 0xCA, 0xBC, 0xAA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6C, 0x67, 0x67, 0x57, 0x50, 0x50, 0x57, + 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, + 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x6C, 0x67, 0x67, + 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, + 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, + 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, + 0xE2, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, + 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, + 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0x57, 0x50, 0x50, 0xFF, 0xFF, + 0xFF, 0x57, 0x50, 0x50, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, + 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, + 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0x57, 0x50, + 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, + 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, + 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, + 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, + 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, + 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, + 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; - unsigned char factions[2112] = { 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0x00, 0x00, 0x00, 0x8E, 0x8E, 0x8E, 0x00, 0x00, diff --git a/programs/fs/Eolite/trunk/include/about_dialog.h b/programs/fs/Eolite/trunk/include/about_dialog.h index 0e4d1171c9..37b364c0ee 100644 --- a/programs/fs/Eolite/trunk/include/about_dialog.h +++ b/programs/fs/Eolite/trunk/include/about_dialog.h @@ -37,7 +37,7 @@ void about_dialog() DefineAndDrawWindow(600,150,181,256,0x34,0x10EFEBEF,0,0,"About Eolite"); DrawBar(0,0,172,50,0x8494C4); //голубое сзади PutPaletteImage(#logo,85,85,43,7,#logo_pal); - WriteText(46,100,0x90,0xBF40BF,"Eolite v1.22",0); + WriteText(46,100,0x90,0xBF40BF,"Eolite v1.25",0); $add ebx, 1<<16 $int 0x40 WriteText(55,120,0x80,0,"Developers:",0); @@ -47,6 +47,8 @@ void about_dialog() WriteText(12,170,0x80,0,"Visit",0); DrawLink(48,170,23, "kolibri-os.narod.ru"); //ссылкa DrawFlatButton(85,190,70,22,0,0xE4DFE1, "Close"); + + //PutPaletteImage(3*16*15+#ficons,16,15,40,195,#ficons_pal); } } diff --git a/programs/fs/Eolite/trunk/include/devices.h b/programs/fs/Eolite/trunk/include/devices.h index 86d4500f1f..b9ad4e6a9d 100644 --- a/programs/fs/Eolite/trunk/include/devices.h +++ b/programs/fs/Eolite/trunk/include/devices.h @@ -1,11 +1,16 @@ //03.04.2012 +path_string disk_list[20]; +int disc_num; + void GetSystemDiscs() { char dev_name[10], sys_discs[10]; int i1, j1, dev_num, dev_disc_num; dword devbuf; + disc_num=0; + devbuf= malloc(3112); //буфер где-то на 10 девайсов в левой панели ReadDir(10, devbuf, "/"); dev_num = EBX; @@ -26,7 +31,6 @@ void GetSystemDiscs() copystr(#sys_discs,#disk_list[disc_num].Item); disc_num++; } - } } @@ -55,6 +59,7 @@ void DrawSystemDiscs() IF (dev_name[1]=='r') { dev_icon=0; copystr("RAM disk ",#disc_name); } IF (dev_name[1]=='c') { dev_icon=1; copystr("CD-ROM ",#disc_name); } IF (dev_name[1]=='f') { dev_icon=2; copystr("Floppy disk ",#disc_name); } + IF (dev_name[1]=='t') { dev_icon=4; copystr("Virtual disk ",#disc_name); } IF (dev_name[1]=='h') || (dev_name[1]=='b') copystr("Hard disk ",#disc_name); copystr(#dev_name,#disc_name+strlen(#disc_name)); // diff --git a/programs/fs/Eolite/trunk/include/icons_f.h b/programs/fs/Eolite/trunk/include/icons_f.h index 541faaacfd..3fb0bf033f 100644 --- a/programs/fs/Eolite/trunk/include/icons_f.h +++ b/programs/fs/Eolite/trunk/include/icons_f.h @@ -67,180 +67,180 @@ dword Put_icon(dword extension, yy) -void IconFairing(int filenum, y) +void IconFairing(int filenum, y, color) { switch(filenum) { case 0...1: //файлик - DrawBar(195,y,2,15,videlenie); + DrawBar(195,y,2,15,color); RIGHT_PAINT: - DrawBar(209,y,2,15,videlenie); - DrawBar(205,y,4,1,videlenie); - DrawBar(206,y+1,3,1,videlenie); - DrawBar(207,y+2,2,1,videlenie); - PutPixel(208,y+3,videlenie); + DrawBar(209,y,2,15,color); + DrawBar(205,y,4,1,color); + DrawBar(206,y+1,3,1,color); + DrawBar(207,y+2,2,1,color); + PutPixel(208,y+3,color); return; case 2: //html - DrawBar(195,y,1,7,videlenie); - DrawBar(196,y,1,6,videlenie); - DrawBar(195,y+10,1,5,videlenie); - DrawBar(196,y+11,1,4,videlenie); + DrawBar(195,y,1,7,color); + DrawBar(196,y,1,6,color); + DrawBar(195,y+10,1,5,color); + DrawBar(196,y+11,1,4,color); GOTO RIGHT_PAINT; case 3: //настройки - DrawBar(195,y,2,7,videlenie); - DrawBar(195,y+7,1,2,videlenie); - DrawBar(195,y+12,1,3,videlenie); - PutPixel(196,y+14,videlenie); + DrawBar(195,y,2,7,color); + DrawBar(195,y+7,1,2,color); + DrawBar(195,y+12,1,3,color); + PutPixel(196,y+14,color); GOTO RIGHT_PAINT; case 9: //inc - DrawBar(195,y,1,12,videlenie); - DrawBar(196,y,1,11,videlenie); - DrawBar(197,y,1,10,videlenie); - DrawBar(198,y,1,5,videlenie); - DrawBar(199,y,1,4,videlenie); - DrawBar(200,y,1,3,videlenie); - DrawBar(201,y,1,2,videlenie); - DrawBar(202,y,1,3,videlenie); - DrawBar(203,y,1,2,videlenie); - PutPixel(204,y,videlenie); - PutPixel(205,y+4,videlenie); - PutPixel(206,y+3,videlenie); - PutPixel(207,y,videlenie); - PutPixel(207,y+2,videlenie); - DrawBar(208,y,1,3,videlenie); - DrawBar(209,y,2,4,videlenie); - DrawBar(210,y,1,15,videlenie); - PutPixel(198,y+14,videlenie); - DrawBar(199,y+13,1,2,videlenie); - DrawBar(200,y+12,10,3,videlenie); - PutPixel(205,y+11,videlenie); - DrawBar(206,y+10,1,2,videlenie); - DrawBar(207,y+9,1,3,videlenie); - PutPixel(207,y+7,videlenie); - DrawBar(208,y+6,2,7,videlenie); - PutPixel(209,y+5,videlenie); + DrawBar(195,y,1,12,color); + DrawBar(196,y,1,11,color); + DrawBar(197,y,1,10,color); + DrawBar(198,y,1,5,color); + DrawBar(199,y,1,4,color); + DrawBar(200,y,1,3,color); + DrawBar(201,y,1,2,color); + DrawBar(202,y,1,3,color); + DrawBar(203,y,1,2,color); + PutPixel(204,y,color); + PutPixel(205,y+4,color); + PutPixel(206,y+3,color); + PutPixel(207,y,color); + PutPixel(207,y+2,color); + DrawBar(208,y,1,3,color); + DrawBar(209,y,2,4,color); + DrawBar(210,y,1,15,color); + PutPixel(198,y+14,color); + DrawBar(199,y+13,1,2,color); + DrawBar(200,y+12,10,3,color); + PutPixel(205,y+11,color); + DrawBar(206,y+10,1,2,color); + DrawBar(207,y+9,1,3,color); + PutPixel(207,y+7,color); + DrawBar(208,y+6,2,7,color); + PutPixel(209,y+5,color); return; case 10: //font - DrawRegion_3D(195,y,15,14,videlenie,videlenie); - DrawBar(196,y+1,1,13,videlenie); - DrawBar(197,y+1,1,11,videlenie); - DrawBar(198,y+1,1,10,videlenie); - DrawBar(199,y+1,1,9,videlenie); - DrawBar(200,y+1,1,7,videlenie); - DrawBar(201,y+1,1,5,videlenie); - DrawBar(202,y+1,1,4,videlenie); - DrawBar(203,y+1,1,2,videlenie); - DrawBar(209,y+1,1,13,videlenie); - DrawBar(208,y+1,1,11,videlenie); - PutPixel(204,y+6,videlenie); - DrawBar(203,y+10,2,1,videlenie); - DrawBar(202,y+11,2,3,videlenie); + DrawRegion_3D(195,y,15,14,color,color); + DrawBar(196,y+1,1,13,color); + DrawBar(197,y+1,1,11,color); + DrawBar(198,y+1,1,10,color); + DrawBar(199,y+1,1,9,color); + DrawBar(200,y+1,1,7,color); + DrawBar(201,y+1,1,5,color); + DrawBar(202,y+1,1,4,color); + DrawBar(203,y+1,1,2,color); + DrawBar(209,y+1,1,13,color); + DrawBar(208,y+1,1,11,color); + PutPixel(204,y+6,color); + DrawBar(203,y+10,2,1,color); + DrawBar(202,y+11,2,3,color); return; case 11: //asm - DrawBar(195,y,1,15,videlenie); + DrawBar(195,y,1,15,color); return; case 12: //audio - DrawBar(195,y,16,1,videlenie); - DrawBar(195,y,1,15,videlenie); - DrawBar(196,y+1,4,8,videlenie); - DrawBar(196,y+9,1,2,videlenie); - PutPixel(197,y+9,videlenie); - PutPixel(196,y+14,videlenie); - DrawBar(210,y+1,1,14,videlenie); - DrawBar(202,y+4,6,4,videlenie); - DrawBar(202,y+8,4,1,videlenie); - DrawBar(202,y+9,3,1,videlenie); - DrawBar(202,y+10,2,3,videlenie); - DrawBar(201,y+13,4,1,videlenie); - DrawBar(200,y+14,14,1,videlenie); - DrawBar(209,y+12,1,2,videlenie); - PutPixel(208,y+13,videlenie); + DrawBar(195,y,16,1,color); + DrawBar(195,y,1,15,color); + DrawBar(196,y+1,4,8,color); + DrawBar(196,y+9,1,2,color); + PutPixel(197,y+9,color); + PutPixel(196,y+14,color); + DrawBar(210,y+1,1,14,color); + DrawBar(202,y+4,6,4,color); + DrawBar(202,y+8,4,1,color); + DrawBar(202,y+9,3,1,color); + DrawBar(202,y+10,2,3,color); + DrawBar(201,y+13,4,1,color); + DrawBar(200,y+14,14,1,color); + DrawBar(209,y+12,1,2,color); + PutPixel(208,y+13,color); return; case 13: //skin - PutPixel(210,y,videlenie); + PutPixel(210,y,color); return; case 14...15: //video, book - DrawBar(195,y,1,15,videlenie); - DrawBar(210,y,1,15,videlenie); + DrawBar(195,y,1,15,color); + DrawBar(210,y,1,15,color); return; case 16...17: //папка - DrawBar(195,y,1,15,videlenie); - DrawBar(203,y,8,2,videlenie); + DrawBar(195,y,1,15,color); + DrawBar(203,y,8,2,color); IF (filenum==17) PutPixel(206,y+1,0x1A7B17); //зелёная точка стрелки - DrawBar(196,y+13,15,2,videlenie); - PutPixel(196,y,videlenie); //.точки - PutPixel(202,y,videlenie); - PutPixel(210,y+2,videlenie); - PutPixel(196,y+12,videlenie); - PutPixel(210,y+12,videlenie); + DrawBar(196,y+13,15,2,color); + PutPixel(196,y,color); //.точки + PutPixel(202,y,color); + PutPixel(210,y+2,color); + PutPixel(196,y+12,color); + PutPixel(210,y+12,color); return; case 18: //картридж - DrawBar(195,y,16,2,videlenie); - DrawBar(195,y+11,1,2,videlenie); - DrawBar(210,y+11,1,2,videlenie); - DrawBar(195,y+13,16,2,videlenie); + DrawBar(195,y,16,2,color); + DrawBar(195,y+11,1,2,color); + DrawBar(210,y+11,1,2,color); + DrawBar(195,y+13,16,2,color); return; case 19: //изображение case 20: //изображение - DrawBar(195,y+14,16,1,videlenie); + DrawBar(195,y+14,16,1,color); return; case 21: //дискета - PutPixel(195,y,videlenie); - PutPixel(210,y,videlenie); + PutPixel(195,y,color); + PutPixel(210,y,color); return; case 22: //библиотека - DrawBar(195,y,16,1,videlenie); //сверху слева - DrawBar(195,y+1,3,1,videlenie); - DrawBar(195,y+2,2,1,videlenie); - PutPixel(195,y+3,videlenie); - PutPixel(210,y+11,videlenie); //справа справа - DrawBar(209,y+12,2,1,videlenie); - DrawBar(208,y+13,3,1,videlenie); - DrawBar(207,y+14,4,1,videlenie); + DrawBar(195,y,16,1,color); //сверху слева + DrawBar(195,y+1,3,1,color); + DrawBar(195,y+2,2,1,color); + PutPixel(195,y+3,color); + PutPixel(210,y+11,color); //справа справа + DrawBar(209,y+12,2,1,color); + DrawBar(208,y+13,3,1,color); + DrawBar(207,y+14,4,1,color); return; case 23: //архив - PutPixel(195,y+3,videlenie); - PutPixel(195,y+11,videlenie); - PutPixel(210,y+3,videlenie); - PutPixel(210,y+11,videlenie); + PutPixel(195,y+3,color); + PutPixel(195,y+11,color); + PutPixel(210,y+3,color); + PutPixel(210,y+11,color); - DrawBar(195,y,7,1,videlenie); - DrawBar(204,y,7,1,videlenie); - DrawBar(195,y+14,7,1,videlenie); - DrawBar(204,y+14,7,1,videlenie); + DrawBar(195,y,7,1,color); + DrawBar(204,y,7,1,color); + DrawBar(195,y+14,7,1,color); + DrawBar(204,y+14,7,1,color); - DrawBar(195,y+1,5,1,videlenie); - DrawBar(206,y+1,5,1,videlenie); - DrawBar(195,y+13,5,1,videlenie); - DrawBar(206,y+13,5,1,videlenie); + DrawBar(195,y+1,5,1,color); + DrawBar(206,y+1,5,1,color); + DrawBar(195,y+13,5,1,color); + DrawBar(206,y+13,5,1,color); - DrawBar(195,y+2,3,1,videlenie); - DrawBar(208,y+2,3,1,videlenie); - DrawBar(195,y+12,3,1,videlenie); - DrawBar(208,y+12,3,1,videlenie); + DrawBar(195,y+2,3,1,color); + DrawBar(208,y+2,3,1,color); + DrawBar(195,y+12,3,1,color); + DrawBar(208,y+12,3,1,color); return; case 24: //образ - DrawBar(195,y,6,1,videlenie); - DrawBar(195,y+1,4,1,videlenie); - DrawBar(195,y+2,3,1,videlenie); - DrawBar(195,y+3,2,2,videlenie); + DrawBar(195,y,6,1,color); + DrawBar(195,y+1,4,1,color); + DrawBar(195,y+2,3,1,color); + DrawBar(195,y+3,2,2,color); - DrawBar(195,y+5,1,5,videlenie); + DrawBar(195,y+5,1,5,color); - DrawBar(195,y+10,2,2,videlenie); - DrawBar(195,y+12,3,1,videlenie); - DrawBar(195,y+13,4,1,videlenie); - DrawBar(195,y+14,6,1,videlenie); + DrawBar(195,y+10,2,2,color); + DrawBar(195,y+12,3,1,color); + DrawBar(195,y+13,4,1,color); + DrawBar(195,y+14,6,1,color); - DrawBar(195+11,y,5,1,videlenie); - DrawBar(195+13,y+1,3,1,videlenie); - DrawBar(195+14,y+2,2,1,videlenie); - DrawBar(195+15,y+3,1,2,videlenie); + DrawBar(195+11,y,5,1,color); + DrawBar(195+13,y+1,3,1,color); + DrawBar(195+14,y+2,2,1,color); + DrawBar(195+15,y+3,1,2,color); - DrawBar(195+15,y+10,1,2,videlenie); - DrawBar(195+14,y+12,2,1,videlenie); - DrawBar(195+13,y+13,3,1,videlenie); - DrawBar(195+11,y+14,5,1,videlenie); + DrawBar(195+15,y+10,1,2,color); + DrawBar(195+14,y+12,2,1,color); + DrawBar(195+13,y+13,3,1,color); + DrawBar(195+11,y+14,5,1,color); return; } diff --git a/programs/fs/Eolite/trunk/include/ini.h b/programs/fs/Eolite/trunk/include/ini.h index ad2955569f..b70f37f142 100644 --- a/programs/fs/Eolite/trunk/include/ini.h +++ b/programs/fs/Eolite/trunk/include/ini.h @@ -16,7 +16,7 @@ void GetIni(byte onload) dword buff, fsize, tj; //читаем файл buff = malloc(1048576); - IF (onload==1) copystr(".ini", #program_path+strlen(#program_path)); //facepalm + IF (onload==1) copystr(".ini", #program_path+strlen(#program_path)); ReadFile(0, 1048576, buff, #program_path); IF (EAX<>6) //если файла с настройками нет в папке с программой смотрим в папке по-умолчанию ReadFile(0, 1048576, buff, "/sys/File managers/Eolite.ini"); @@ -63,7 +63,7 @@ void GetIni(byte onload) IF (errornum<0) //если ошибочка вышла при запуске { //WriteDebug(#option); - Write_Debug_Error(errornum); + Write_Error(errornum); } return; } @@ -79,8 +79,7 @@ void GetIni(byte onload) IF (file_path) errornum=RunProgram(#file_path,''); IF (errornum<0) //если ошибочка вышла при запуске { - //WriteDebug(#file_path); - Write_Debug_Error(errornum); + Write_Error(errornum); } } @@ -89,39 +88,44 @@ void GetIni(byte onload) /// нужно чтобы просто возвращало текст /// /////////////////////////////////////////// -void Write_Debug_Error(int error_number) +void Write_Error(int error_number) { - char unknown_error[8]; - + char error[256]; if (error_number<0) error_number=-1*error_number; - switch (error_number) //извесная ошибка - пишем какая и уходим + switch (error_number) { - CASE 2: RunProgram(#NOTIFY_PATH, "Eolite: error 2 - Function is not supported for the given file system"); - return; - CASE 3: RunProgram(#NOTIFY_PATH, "Eolite: error 3 - Unknown file system"); - return; - CASE 5: RunProgram(#NOTIFY_PATH, "Eolite: error 5 - File or folder not found"); - return; - CASE 6: RunProgram(#NOTIFY_PATH, "Eolite: error 6 - End of file, EOF"); - return; - CASE 7: RunProgram(#NOTIFY_PATH, "Eolite: error 7 - Pointer lies outside of application memory"); - return; - case 8: RunProgram(#NOTIFY_PATH, "Eolite: error 8 - FAT table is destroyed"); - return; - case 9: RunProgram(#NOTIFY_PATH, "Eolite: error 9 - FAT table is destroyed"); - return; - case 10:RunProgram(#NOTIFY_PATH, "Eolite: error 10 - Access denied"); - RETURN; - case 11:RunProgram(#NOTIFY_PATH, "Eolite: error 11 - Device error"); - RETURN; - case 30:RunProgram(#NOTIFY_PATH, "Eolite: error 30 - Not enough memory"); - RETURN; - case 31:RunProgram(#NOTIFY_PATH, "Eolite: error 31 - File is not executable"); - RETURN; - case 32:RunProgram(#NOTIFY_PATH, "Eolite: error 32 - Too many processes"); - RETURN; - default:copystr(IntToStr(error_number), #unknown_error); - copystr(" - Unknown error number O_o", #unknown_error+strlen(#unknown_error)); - RunProgram(#NOTIFY_PATH, #unknown_error); + case 2: copystr("Error #2 - Function isn't supported for this file system", #error); + break; + case 3: copystr("Error #3 - Unknown file system", #error); + break; + case 5: copystr("Error #5 - File or folder not found", #error); + break; + case 6: copystr("Error #6 - End of file, EOF", #error); + break; + case 7: copystr("Error #7 - Pointer lies outside of application memory", #error); + break; + case 8: copystr("Error #8 - FAT table is destroyed", #error); + break; + case 9: copystr("Error #9 - FAT table is destroyed", #error); + break; + case 10:copystr("Error #10 - Access denied", #error); + break; + case 11:copystr("Error #11 - Device error", #error); + break; + case 30:copystr("Error #30 - Not enough memory", #error); + break; + case 31:copystr("Error #31 - File is not executable", #error); + break; + case 32:copystr("Error #32 - Too many processes", #error); + break; + default:copystr(IntToStr(error_number), #error); + copystr(" - Unknown error number O_o", #error+strlen(#error)); } + if (curbtn>=0) Line_ReDraw(0xFF0000, curbtn); + Pause(5); + RunProgram(#NOTIFY_PATH, #error); + //DrawBar(192,onTop(0, BUTTON_HEIGHT+7),onLeft(27,192),BUTTON_HEIGHT,0xFF0000); + //WriteText(205,onTop(-5, BUTTON_HEIGHT+7),0x80,0xFFFFFF,#error,0); + + } diff --git a/programs/fs/Eolite/trunk/lib/kolibri.h b/programs/fs/Eolite/trunk/lib/kolibri.h index 0c713cf57f..64b9cbea05 100644 --- a/programs/fs/Eolite/trunk/lib/kolibri.h +++ b/programs/fs/Eolite/trunk/lib/kolibri.h @@ -33,7 +33,8 @@ char program_path[4096]; -struct mouse{ +struct mouse +{ unsigned int x,y,lkm,pkm,hor,vert; void get(); }; @@ -76,7 +77,9 @@ void mouse::get() } //--------------------------------------------------------------------------- -struct proc_info{ +struct proc_info +{ + #define SelfInfo -1 dword use_cpu; word pos_in_stack,num_slot,rezerv1; char name[11]; @@ -85,45 +88,44 @@ struct proc_info{ word status_slot,rezerv3; dword work_left,work_top,work_width,work_height; char status_window; - void GetInfo(dword ECX); + void GetInfo( ECX); byte reserved[1024-71]; -#define SelfInfo -1 }; -void proc_info::GetInfo(dword EBX, ECX) +void proc_info::GetInfo( EBX, ECX) { - EAX = 9; - $int 0x40 + $mov eax,9; + $int 0x40 } -inline fastcall int GetSlot(dword ECX) +inline fastcall int GetSlot( ECX) { - EAX = 18; - EBX = 21; + $mov eax,18; + $mov ebx,21; $int 0x40 } inline fastcall int ActiveProcess() { - EAX = 18; - EBX = 7; + $mov eax,18; + $mov ebx,7; $int 0x40 } //------------------------------------------------------------------------------- inline fastcall dword WaitEvent(){ - EAX = 10; // wait here for event + $mov eax,10; $int 0x40 } -inline fastcall void SetEventMask(dword EBX) +inline fastcall void SetEventMask( EBX) { EAX = 40; $int 0x40 } -inline fastcall word GetKey(){ //Gluk fix +inline fastcall word GetKey(){ //+Gluk fix $push edx @getkey: $mov eax,2 @@ -152,7 +154,7 @@ inline fastcall void ExitProcess(){ } inline fastcall void Pause(dword EBX){ - $mov eax, 5 //Џ г§ , ў б®вле ¤®«пе ᥪ㭤л + $mov eax, 5 $int 0x40 } @@ -176,14 +178,14 @@ dword mainAreaColour,byte headerType,dword headerColour,EDI) $int 0x40 } -inline fastcall void CreateThread(dword ECX,EDX) +inline fastcall void CreateThread( ECX,EDX) { EAX = 51; EBX = 1; $int 0x40 } -inline fastcall void DrawTitle(dword ECX){ +inline fastcall void DrawTitle( ECX){ EAX = 71; EBX = 1; $int 0x40; @@ -204,14 +206,15 @@ inline fastcall dword GetScreenHeight() $and eax,0x0000FFFF } -inline fastcall void MoveSize(dword EBX,ECX,EDX,ESI){ - EAX = 67; +inline fastcall void MoveSize( EBX,ECX,EDX,ESI){ + $mov eax,67; $int 0x40 } //------------------------------------------------------------------------------ -inline fastcall dword strlen(EDI){ +inline fastcall dword strlen( EDI) +{ asm { xor ecx, ecx xor eax, eax @@ -223,7 +226,7 @@ inline fastcall dword strlen(EDI){ } -inline fastcall copystr(dword ESI,EDI) +inline fastcall copystr( ESI,EDI) { $cld l1: @@ -234,7 +237,7 @@ l1: } char buffer[11]; -inline fastcall dword IntToStr(dword ESI) +inline fastcall dword IntToStr( ESI) { $mov edi, #buffer $mov ecx, 10 @@ -317,7 +320,7 @@ inline fastcall unsigned int find_symbol(ESI,BL) } -inline fastcall ChangeCase(dword EDX) +inline fastcall ChangeCase( EDX) { AL=DSBYTE[EDX]; IF(AL>='a')&&(AL<='z')DSBYTE[EDX]=AL&0x5f; @@ -334,7 +337,8 @@ inline fastcall ChangeCase(dword EDX) //------------------------------------------------------------------------------ -inline fastcall void PutPixel(dword EBX,ECX,EDX){ +inline fastcall void PutPixel( EBX,ECX,EDX) +{ EAX=1; $int 0x40 } @@ -351,7 +355,7 @@ void DefineButton(dword x,y,w,h,EDX,ESI) $int 0x40 } -inline fastcall void DeleteButton(dword EDX) +inline fastcall void DeleteButton( EDX) { EAX = 8; EDX += BT_DEL; @@ -368,28 +372,26 @@ void WriteText(dword x,y,byte fontType, dword color, EDX, ESI) void DrawBar(dword x,y,w,h,EDX) { - #speed EAX = 13; EBX = x<<16+w; ECX = y<<16+h; $int 0x40 - #codesize } void DrawRegion_3D(dword x,y,width,height,color1,color2) { - DrawBar(x,y,width+1,1,color1); //Ї®«®б  Ј®а ᢥаег - DrawBar(x,y+1,1,height-1,color1); //Ї®«®б  б«Ґў  - DrawBar(x+width,y+1,1,height,color2); //Ї®«®б  бЇа ў  - DrawBar(x,y+height,width,1,color2); //Ї®«®б  Ј®а б­Ё§г + DrawBar(x,y,width+1,1,color1); + DrawBar(x,y+1,1,height-1,color1); + DrawBar(x+width,y+1,1,height,color2); + DrawBar(x,y+height,width,1,color2); } void DrawFlatButton(dword x,y,width,height,id,color,text) { DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE); DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7); - DrawBar(x+2,y+2,width-3,height-3,color); //§ «ЁўЄ  - IF (id<>0) DefineButton(x+1,y+1,width-2,height-2,id+BT_HIDE,0xEFEBEF); //Є­®ЇЄ  + DrawBar(x+2,y+2,width-3,height-3,color); + IF (id<>0) DefineButton(x+1,y+1,width-2,height-2,id+BT_HIDE,0xEFEBEF); WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0); } @@ -412,7 +414,7 @@ void PutImage(dword EBX,w,h,x,y) } //------------------------------------------------------------------------------ -inline fastcall void WriteDebug(dword EDX) +inline fastcall void debug( EDX) { $mov eax, 63 $mov ebx, 1 @@ -430,7 +432,7 @@ done: $int 0x40 } -inline fastcall void WriteFullDebug(dword ESI) +inline fastcall void WriteFullDebug( ESI) { WriteDebug(""); WriteDebug(ESI);