/programs/cmm/browser/HTMLv.c |
---|
0,0 → 1,261 |
//HTML Viewer in C-- |
//Copyright 2007-2012 by Veliant & Leency |
//Asper, lev, Lrz, Barsuk, Nable. |
//home icon - rachel fu, GPL licence |
#include "..\lib\kolibri.h" |
#include "..\lib\strings.h" |
#include "..\lib\figures.h" |
#include "..\lib\encoding.h" |
#include "..\lib\file_system.h" |
#include "..\lib\mem.h" |
#include "..\lib\dll.h" |
//áèáëèîòåêè .obj |
#include "..\lib\libio_lib.h" |
#include "..\lib\libimg_lib.h" |
#include "..\lib\edit_box_lib.h" |
#include "..\lib\scroll_lib.h" |
#include "..\lib\truetype.h" |
//êàðòèíêè |
#include "img\toolbar_icons.c" |
#include "img\URLgoto.txt"; |
#define URL param |
int use_truetype = 0; |
char editURL[sizeof(URL)], |
page_links[12000], |
header[300]; |
struct lines{ |
int visible, all, first, column_max; |
}; |
int mouse_dd; |
edit_box edit1= {250,207,16,0xffffff,0x94AECE,0xffffff,0xffffff,0,sizeof(editURL),#editURL,#mouse_dd,2,19,19}; |
scroll_bar scroll1 = { 18,200,398, 44,18,0,115,15,0,0xeeeeee,0xD2CED0,0x555555,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}; //details in scroll_lib.h-- |
proc_info Form; |
#define WIN_W 640 |
#define WIN_H 480 |
dword stak[100]; //ìåíþ ÏÊÌ |
mouse m; |
#include "TWB.h" |
#include "include\menu_rmb.h" |
void tre() |
{ |
char *font_picture; |
char text[20]; |
int width=600; |
int height=20; |
// char palette[256*4]; |
int x; |
text_out stdcall ("hello world\0",#fontlol, 17, 0x0, 10, 10); |
text_out stdcall ("heyeyey!\0",#fontlol, 27, 0x0, 10, 30); |
text_out stdcall ("alarm!\0", #fontlol, 47, 0x00FF0000, 10, 70); |
/* |
strcpy(#text, "hello world\0"); |
debug("get width\n"); |
get_width stdcall (#text, #fontinfo, height); |
width=EAX; |
for (x=0;x<20;x++) { |
init_font(#fontinfo); |
debug("yaya\n"); |
font_picture=mem_Alloc(width*height); |
text[1]=30+x; |
truetype stdcall (#text, #fontinfo, font_picture, width, height); |
debug("blyad'!\n"); |
PutPaletteImage(font_picture,width,height,0,20*x,8,#palette); |
mem_Free(font_picture); }*/ |
} |
char fontlol[64]; |
void main() |
{ |
int btn; |
byte key; |
int half_scroll_size; |
int scroll_used=0; |
mem_Init(); |
if (load_dll2(libio, #libio_init,1)!=0) debug("Íå óäàëîñü ïîäêëþ÷èòü áèáëèîòåêó libio"w); |
if (load_dll2(libimg, #libimg_init,1)!=0) debug("Íå óäàëîñü ïîäêëþ÷èòü áèáëèîòåêó libimg"w); |
if (load_dll2(boxlib, #edit_box_draw,0)!=0) {RunProgram("@notify", "System Error: library doesn't exists /rd/1/lib/box_lib.obj"); ExitProcess();} |
load_dll2(#abox_lib, #boxlib_init,0); |
if (load_dll2(libtruetype, #truetype,0)!=0) {debug("Íå óäàëîñü ïîäêëþ÷èòü áèáëèîòåêó TrueType"w); use_truetype = 2; } |
else init_font(#fontlol); |
if (!URL) strcpy(#URL, "/sys/home.htm"); |
strcpy(#editURL, #URL); |
Form.width=WIN_W; |
Form.height=WIN_H; |
SetElementSizes(); |
WB1.OpenPage(); |
SetEventMask(0x27); |
loop() |
{ |
WaitEventTimeout(2); |
switch(EAX & 0xFF) |
{ |
CASE evMouse: |
/*scrollbar_v_mouse (#scroll1); //êîí÷åíûé ñêðîëë ïðèòîðìàæèìàåò, èä¸ì "ñâîèì ïóò¸ì" |
if (lines.first <> scroll1.position) |
{ |
lines.first = scroll1.position; |
WB1.ParseHTML(buf, filesize); |
//break; |
};*/ |
btn=GetProcessSlot(Form.ID); |
IF (btn<>GetActiveProcess()) break; //åñëè îêíî íå àêòèâíî íà ñîáûòèÿ ìûøè íå ðåàãèðóåì |
edit_box_mouse stdcall (#edit1); |
m.get(); |
if (m.pkm) && (m.y>WB1.top) && (m.y<Form.height) && (filesize) |
{ |
SwitchToAnotherThread(); |
CreateThread(#menu_rmb,#stak); |
} |
IF (m.vert==65535) //ïðîêðóòêà êîë¸ñèêîì |
{ |
IF (lines.first==0) break; |
IF (lines.first>3) lines.first-=2; ELSE lines.first=1; |
WB1.Scan(ID1); |
break; |
} |
IF (m.vert==1) |
{ |
IF(lines.visible+lines.first+3>=lines.all) WB1.Scan(181); |
ELSE { |
lines.first+=2; |
WB1.Scan(ID2); |
} |
break; |
} |
if (!m.lkm) scroll_used=0; |
if (m.x>=WB1.width-14) && (m.x<=WB1.width+6) && (m.y>WB1.top+16) |
&& (m.y<WB1.top+WB1.height-16) && (lines.all>lines.visible) && (m.lkm) |
scroll_used=1; |
if (scroll_used) |
{ |
half_scroll_size = WB1.height - 16 * lines.visible / lines.all - 3 /2; |
IF (half_scroll_size+WB1.top>m.y) || (m.y<0) || (m.y>4000) m.y=half_scroll_size+WB1.top; //åñëè êóðñîð íàä îêíîì |
btn=lines.first; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî |
lines.first = m.y -half_scroll_size -WB1.top * lines.all / WB1.height; |
if (lines.visible+lines.first>lines.all) lines.first=lines.all-lines.visible; |
if (btn<>lines.first) WB1.ParseHTML(buf); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü |
} |
break; |
case evButton: |
btn=GetButtonID(); |
IF (btn==1) |
{ |
KillProcess(downloader_id); |
ExitProcess(); |
} |
ELSE |
{ |
WB1.Scan(btn); |
} |
break; |
case evKey: |
key = GetKey(); |
if (edit1.flags == 66) || (edit1.flags == 98) SWITCH(key) //åñëè àêòèâíà ñòðîêà àäðåñà èãíîðèðóåì íåêîòîðûå êíîïêè |
{ CASE 52: CASE 53: CASE 54: goto _EDIT_MARK; } |
WB1.Scan(key); |
_EDIT_MARK: |
IF (key<>0x0d) && (key<>183) && (key<>184) && (key<>173) {EAX=key<<8; edit_box_key stdcall(#edit1);} //àäðåñíàÿ ñòðîêà |
break; |
case evReDraw: |
Draw_Window(); |
break; |
default: |
if (downloader_id<>0) |
{ |
if (GetProcessSlot(downloader_id)<>0) break; |
downloader_id=0; |
lines.first = lines.all = 0; |
WB1.ReadHtml(_WIN); |
Draw_Window(); |
} |
} |
} |
} |
void SetElementSizes() |
{ |
edit1.width=Form.width-266; |
WB1.top=44; |
WB1.width=Form.width-13; |
WB1.height=onTop(43,5); |
lines.column_max = WB1.width - 30 / 6; |
lines.visible = WB1.height - 3 / 10 - 2; |
} |
void Draw_Window() |
{ |
int j; |
DefineAndDrawWindow(215,100,WIN_W,WIN_H,0x73,0x00E4DFE1,0,0); |
GetProcessInfo(#Form, SelfInfo); |
if (Form.status_window>2) //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì |
{ |
DrawTitle(#header); |
return; |
} |
if (Form.height<120) MoveSize(OLD,OLD,OLD,120); |
if (Form.width<280) MoveSize(OLD,OLD,280,OLD); |
PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal); |
if (GetProcessSlot(downloader_id)<>0) PutImage(#stop_btn,24,24,88,10); |
DrawBar(200,0,onLeft(200,9),43,0xE4DFE1); //çàêðàøèâàåì ôîí ïîä òóëáàðîì |
DrawBar(0,42,onLeft(5,4),1,0xE2DBDC); //âûïóêëîñòü |
DrawBar(0,43,onLeft(5,4),1,0xD2CED0); //âûïóêëîñòü |
for (j=0; j<5; j++) DefineButton(j*37+11, 7, 29, 29, 300+j+BT_HIDE, 0xE4DFE1); |
PutImage(#URLgoto,40,19,onLeft(57,0),14); |
DefineButton(onLeft(37,0),15, 18, 16, GOTOURL+BT_HIDE, 0xE4DFE1); |
DefineButton(onLeft(56,0),15, 17, 16, SEARCHWEB+BT_HIDE, 0xE4DFE1); |
DrawRectangle(205,14,onLeft(58,205),18,0x94AECE); //îáîäîê ïîëîñû àäðåñà |
DrawRectangle(206,15,onLeft(59,205),16,0xE4ECF3); |
SetElementSizes(); |
WB1.ShowPage(); |
//tre(); |
DefineButton(scroll1.start_x+1, scroll1.start_y+1, 16, 16, ID1+BT_HIDE, 0xE4DFE1); |
DefineButton(scroll1.start_x+1, scroll1.start_y+scroll1.size_y-18, 16, 16, ID2+BT_HIDE, 0xE4DFE1); |
} |
int onLeft(dword right,left) {return Form.width-right-left;} |
int onTop(dword down,up) {return Form.height-GetSkinHeight()-down-up;} |
stop: |
/programs/cmm/browser/History.txt |
---|
0,0 → 1,418 |
20.11.12 - 0.98 |
- èíòåëåêòóàëüíàÿ ñèñòåìà êåøèðîâàíèÿ èçîáðàæåíèé. |
18.11.12 - 0.97.7 |
- åñëè èçîáðàæåíèå íå çàãðóçèëîñü, íî ñîäåðæèò ññûëêó îòîáðàæàåòñÿ |
çàìåíÿþùèé åãî òåêñò; |
- ïîëíîñòüþ èñïðàâëåíû ïåðåíîñû ññûëêàõ â òåêñòå; |
- îòîáðàæåíèå â ìåíþ òåêóùåé êîäèðîâêè; |
- SoUrcerer - Ñèíõðîíèçàöèÿ ïðîãðàììû ñ íîâîé îïòèìèçèðîâàííîé |
âåðñèåé áèáëèòåêè TryeType. |
10.11.12 - 0.97.6 |
- íîðìàëüíûé çàïóñê ïðîãðàììû äàæå áåç áèáëèîòåêè lib_img; |
- îïîâåùåíèå åñëè box_lib íå íàéäåíà; |
- èñïðàâëåíà îøèáêà ïðèâîäÿùàÿ ê òîðìîæåíèþ ïðè îòîáðàæåíèè |
TrueType øðèôòîâ; |
- îáíîâëåíèå áèáëèîòåê. |
05.11.12 - 0.97.5 |
Ïåðåêëþ÷àëêà íà øðèôòû TrueType èç ìåíþ ÏÊÌ. |
16.07.12 - 0.97 |
- íåáîëüøèå óëó÷øåíèÿ â îáðàáîòêå ññûëîê è èçîáðàæåíèé; |
- âêëþ÷åíèå îáðàáîòêè ðàçðûâîâ ñòðîê ÷åðåç ìåíþ; |
- ïîääåðæêà öâåòîâ âèäà #abc, óëó÷øåíèÿ â îáðàáîòêå öâåòîâ; |
- ïðîïàäàëè èçîáðàæåíèÿ ïðè íà÷àëå çàãðóçêè ñòðàíèöû; |
- èñïðàâëåí áàã 100% çàãðóçêè ïðîöåññîðà ïðè èñïîëüçîâàíèè |
ñêðîëëà (ñïàñèáî hidnplayer). |
14.07.12 - 0.96 |
- èñïðàâëåí áàã ñî ñòðîêîé àäðåñà |
- èñïðàâëåí áàã ñ íåçàêðûòûìè òåãàìè <a> |
- ÷àñòè÷íî èñïðàâëåí áàã ñ äëèííûìè àäðåñàìè óðëîâ |
- ìåíþ - íîâîå îêíî |
22.06.12 - 0.95 |
22.06.12 - 0.94c |
- èñïðâëåíà ðåãðåññèÿ ñî ññûëêàìè; |
- èñïðàâëåíà ðåãðåññèÿ ñ ïîëçóíêîì; |
- èñïðàâëåíî çàòèðàíèå ïåðâîé ñòðîêè. |
19.06.12 - 0.94 |
- óëó÷øåíèå êîäà. |
14.06.12 -- v0.93 |
- çàðàáîòàëè ÿêîðÿ; |
- óëó÷øåíî ìåíþ. |
13.06.12 -- v0.92 |
- áàçîâîå ìåíþ ÏÊÌ; |
- óáðàíà ïîñòîÿííàÿ çàãðóçêà ñòðàíèöû ïðè ïåðåðèñîâêå îêíà; |
- êîñòûëè âåðñèè 2.0 äëÿ ðàáîòû ñ downloader'îì; |
- ðàçäåëåíèå êîäà çàãðóçêè è îòîáðàæåíèÿ ñòðàíèöû: ÷àñòü 1. |
04.06.12 -- v0.90 |
- íîâûé ñêðîëëáàð èç box_lib (ñïàñèáî lev); |
- íîðìàëüíàÿ çàãðóçêà ñòðàíèö áåç ñêèäûâàíèÿ ôîêóñà ñ îêíà; |
- ãåíèàëüíûé è ãðÿçíûé õàê äëÿ ðàáîòû ñ downloader'îì, êîòîðûé |
ó ìåíÿ íà ìàøèíå äà¸ò 99% çàãðóçêè ñòðàíèö âìåñòî 50% ðàíåå; |
- ìàññà èñïðàâëåíèé â ðàáîòå ñ èñòîðèåé ïîñåùåíèé è íàâèãàöèåé; |
- â òåãå <font> èñïðàâëåíà ðåãðåññèÿ. |
27.05.12 -- v0.83 |
- íîâàÿ èêîíêà êíîïêè "äîìîé"; |
- îïòèìèçàöèÿ òåãà <b>; |
- óëó÷øåíèÿ ïðè ðàáîòå ñ êíèãàìè xml-ïîäîáíîãî ôîðìàòà fb2. |
13.04.12 -- v0.80 |
- ïîääåðæêà <body> "bgcolor=" è "text="; |
- îáðàáîòêà ïåðåõîäà ââåðõ "../"; |
- jpg, gif, png îòêðûâàþòñÿ ÷åðåç kiv. |
- òåïåðü èçîáðàæåíèÿ ëåãêî ìîãóò áûòü ññûëêàìè; |
- 2 íåáîëüøèõ ôèêñà äëÿ èçîáðàæåíèé, êíîïêè BackSpace; |
- ÷óòîê óëó÷øåíà îáðàáîòêà óðëîâ, ñîäåðæàùèõ #; |
- çàðàáîòàëà êíîïêà "Âïåð¸ä". |
29.02.12 -- v0.76 -- 11.3 |
- èñïðàâëåíà ðàáîòà êíîïêè "Íàçàä"; |
- â èñòîðèþ ïîñåù¸ííûõ ñòðàíèö íå ìîæåò áûòü äîáàâëåíî 2 îäèíàêîâûõ àäðåñà ïîäðÿä; |
- èñïðàâëåíî èñ÷åçàíèå çàãîëîâêà ñòðàíèö; |
- èñ÷åçàëà êíîïêà ââåðõ â ïðîêðóòêå - èñïðàâëåíî; |
- íåêîòîðûå äðóãèå èñïðàâëåíèÿ. |
27.02.12 -- v0.75 -- 11.? Êá |
- ïðè çàêðûòèè HTMLv, downloader òîæå çàâåðøàåòñÿ; |
- íåâîçìîæíî çàïóñòèòü áîëüøå îäíîãî downloader'a; |
- îòîáðàæåíèå ïðîöåññà çàãðóçêè ñòðàíèöû èç Èíòåðíåòà ÷åðåç êíîïî÷êó |
"îñòàíîâèòü", íàäïèñü "Loading...", âîçìîæíîñòü ïðåðâàòü ïðîöåññ; |
- îáíîâëåíèå ñòðàíèöû èç Èíòåðíåòà ïðèâîäèò ê å¸ ïîâòîðíîé çàãðóçêå. |
24.02.12 -- v0.71 -- 11.? Êá |
- ïðîñòî ïî÷èíèë ýòè ñàìûå èíòåðíåòû. |
26.09.11 -- v0.70ñ -- 11.4 Êá |
- óíèâåðñàëüíàÿ îáðàáîòêà öâåòîâ; |
- óëó÷øåíèÿ â îáðàáîòêå title; |
- èñïðàâëåíà îáðàáîòêà ñòàíèö â êîäèðîâêå iso-8859-1. |
22.09.11 -- v0.70 -- 11.3 Êá |
- óëó÷øåí è îïòèìèçèðîâàí êîä îáðàáîòêè þíèêîäîâñêèõ òåãîâ (&), èñïðàâëåí |
è äîïîëíåí èõ ñïèñîê; |
- óñòðàí¸í âûëåò ïðîãðàììû ïðè íàæàòèè êëàâèøè CapsLock (ñïàñèáî Mario); |
- çàãëóøêà íà âûëåò ïðîãðàììû ïðè çàãðóçêå ñòðàíèö èç è-íýòà (ñïàñèáî Mario). |
13.09.11 -- v0.69 -- 11.2 Êá |
- íîðìàëüíàÿ ïðîêðóòêà èçîáðàæåíèé; |
- ðàáîòà ñ ôàéëàìè ëþáîãî ðàçìåðà; |
- îïòèìèçàöèÿ ïðîöåäóðû ïàðñèíãà òåãà ñ ïàðàìåòðàìè. |
05.09.11 -- v0.68 -- 11.2 Êá |
- óñòðàí¸í âûëåò ïðîãðàììû ïðè íåïðàâèëüíîì ïàðàìåòðå color òåãà <font> - àëñî |
èíîãäà äåéñòâèòåëüíî ïîëåçíî ÷èòàòü ìàíû; |
- memory.h-- óäàë¸í êàê ñòàðûé äóáëèêàò, âñå ôóíêöèè ðàáîòû ñ ïàìÿòüþ îòíûíå |
èñïîëüçóþò mem.h--, íàïèñàííûé Asper'îì; |
- èçîáðàæåíèÿ òåïåðü âïèñûâàþòñÿ â îêíî ïî øèðèíå; |
- óñòðàí¸í ÷àñòûé âûëåò ïðîãðàììû ïðè ïðîêðóòêå ñòðàíèöû, ñîäåðæàùåé èçîáðàæåíèÿ. |
20.08.11 -- v0.67 -- 11.1 Êá |
- áîëåå àäåêâàòíàÿ ïðîêðóòêà èçîáðàæåíèé; |
- êîððåêòíàÿ îáðàáîòêà òàáîâ â òåêñòå è ñ òåãîì <pre> (ñïàñèáî Nazarus è Jaeger); |
- óëó÷øåíà îòçûâ÷èâîñòü ïðîãðàììû ïðè ïðîêðóòêå áîëüøèõ ñòðàíèö (ôèêñ èçíà÷àëüíî |
áûë íàïèñàí Gluk'îì äëÿ èãðû Êîñèëêà ïî ìîåé ïðîñüáå, ñþäà ïåðåíåñåí ìíîé); |
- íåáîëüøèå èñïðàâëåíèÿ â ðåàêöèè ïîëçóíêà ïðîêðóòêè; |
- èñïðàâëåíî çàëåçàíèå òåêñòà â íàêëîííîì øðèôòå íà ëåâûé îáîäîê îêíà; |
- êíîïêà "Íîâàÿ âêëàäêà" è êîìáèíàöèè Ctrl+N, Ctrl+T áàíàëüíî ñîçäàþò íîâîå îêíî; |
- ïðàâèëüíîå ðàñïîçíàíèå óêðàèíñêîé áóêâû ´; |
- ïîääåðæêà êîäèðîâêè "UTF8" äëÿ óíèâåðñàëüíîñòè (èäåÿ ôè÷è Joaquin). |
20.06.11 -- v0.63 -- 11.32 Êá |
lev |
- íàêëîííûé øðèôò |
- òàáëèöà èìåíîâàííûõ öâåòîâ |
08.06.10 -- v0.62a -- 9.68 Êá |
- â àäðåñíóþ ñòðîêó íåëüçÿ áûëî íîðìàëüíî ââåñòè öèôðû 4 è 6 (ñïàñèáî Nasarus |
çà íàéäåííûå áàãè) |
- ïîääåðæêà DOS-êîäèðîâêè ñòðàíèö (ïî ïðîñüáå Nasarus'a) |
14.02.10 -- v0.62 -- 9.42 Êá |
- ïîèñê â Èíòåðíåòàõ ñ ïîìîùüþ nigma.ru, ïîèñê òîëüêî ïî àíãëèéñêèì ñèìâîëàì, |
ãîðÿ÷àÿ êîìáèíàöèÿ êëàâèø Ctrl+Enter; |
- óëó÷øåíî è îïòèìèçèðîâàíî îïðåäåëåíèå êîäèðîâêè; |
- íåáîëüøîé ôèêñ äëÿ ðàáîòû ñ XHTML-òåãàìè òèïà br/; |
- èñïðàâëåí áàã: íå ðàáîòàë ïðîñìîòð (ïî f3) ñòðàíèö èç èíòåðíåòà; |
- íåìíîãî óëó÷øåíî îòîáðàæåíèå èçîáðàæåíèé, íî, âñ¸ ðàâíî, åù¸ î÷åíü ïëîõî; |
- ïîääåðæêà òåãîâ ñ êàâû÷êàìè ' (êàê íà ãëàâíîé ñòðàíèöå kolibrios.org); |
- ðàáîòà ñ èñòîðèåé âûíåñåíà â îòäåëüíûé ôàéë; |
- èñïðàâëåíà ïîëîìàííàÿ â ïðåäûäóùåé âåðñèè ðàáîòà â Èíòåðíåòàõ. |
31.01.10 -- v0.60 -- 8.94 Êá |
- ïîääåðæêà utf-8 ðåàëèçîâàííàÿ Asper'îì åù¸ â íîÿáðå, óâû íå ïîïàâøàÿ â |
äèñòð 0.7.7.0. Îò ìåíÿ îãðîìíîå ñïàñèáî Asper'ó â ïîìîùè! |
- èñïðàâëåíà îøèáêà ïðè îòêðûòèè ñòðàíèöû ñ /fd è /cd (ñïàñèáî Nasarus è IgorA, |
êîòîðûå ñîîáùèëè ìíå îá îøèáêå); |
- ïîääåðæêà øàéòàíñêîé êîäèðîâêè mht-ñòðàíèö, òî åñòü, ñîõðàí¸ííûõ ñî âñåì |
ñîäåðæèìûì ÷åðåç ÈÅ7 (ñïàñèáî çà ïîìîùü IgorA); |
- óëó÷øåíî îïðåäåëåíèå êîäèðîâêè: íàïðèìåð, òåïåðü ìîæíî íîðìàëüíî ÷èòàòü õàáð; |
- íåáîëüøîå èñïðàâëåíèå â ïàðñèíãå ïàðàìåòðîâ òåãà; |
- óâåëè÷åíà äëèíà URL äî 4096 ñèìâîëîâ. |
08.11.09 -- v0.57 -- 8.69 Êá |
- Asper ðåàëèçîâàë ïîääåðæêó èçîáðàæåíèé, êîòîðóþ â HTMLv åù¸ íàäî ïèëèòü; |
- ïîääåðæêà .mht, ñêîðåå âñåãî ñòàðûõ âåðñèé (ñòðàíèöà Albom'a), â íîâûõ (ÿ |
ñîõðàíèë â .mht ÷åðåç ÈÅ7) âìåñòî áóêîâîê êàêàÿ-òî åðåñü, î÷åíü ïîõîæàÿ íà |
hex-êîäû; |
- èñïðàâëåíî ïîÿâëåíèå êíîïêè "îñòàíîâèòü çàãðóçêó" êîãäà íå íàäî; |
- îïòèìèçàöèè ïîèñêà è çàãðóçêè ôàéëà. |
03.11.09 -- v0.53 -- 7.87 Êá |
- âîññòàíîâëåíà ñîâìåñòèìîñòü ñ áèáëèîòåêîé box_lib.obj; |
- èñïðàâëåíà çàãëóøêà ñ àäðåñàìè ñòðàíèö, ñîäåðæàùèìè çíàê # ; |
- ïðîãðàììà áîëüøå íå âûëåòàåò, åñëè íåñêîëüêî ðàç íàæàòü íà ëîêàëüíóþ ññûëêó; |
- ñåðü¸çíîå óëó÷øåíèå îáðàáîòêè ðàçíûõ ññûëîê; |
- èñïðàâëåíî ïðåâûøåíèå ìàêñèìàëüíîé äëèíû èñòîðèè ññûëîê; |
- êîððåêòíàÿ îáðàáîòêà ññûëîê, ñîäåðæàùèõ çíàê = ; |
- èñïðàâëåíî èñ÷åçàíèå ññûëîê, åñëè òåã íàõîäèòñÿ çà ãðàíèöåé âèäèìîé îáëàñòè; |
- âî âðåìÿ çàãðóçêè ñòðàíèöû, ïèøåò "Loading..."; |
- íåáîëüøèå îáíîâëåíèÿ êîäà. |
05.06.09 -- v0.5 -- 7.91 Êá |
- barsuk ïðèêðóòèë çàãðóçêó ñòðàíèö èç Èíòåðíåòà ÷åðåç downloader çà ÷òî |
åìó îãðîìíåéøèé ðåñïåêò :) |
- èñïðàâëåíèå ïàäåíèÿ ïðîãðàììû â ñëó÷àå, åñëè ñòðàíèöà íåäîêà÷àíà - |
èñïðàâëåí âûõîä çà ãðàíèöû ïàìÿòè ïðè ïàðñèíãå òåãàîâ è îáðàáîòêå <-- -->; |
- èñïðàâëåíà ïåðåäà÷à ïàðàìåòðîâ downloader'y: îáðåçàåòñÿ / â êîíöå; |
- êîððåêòíàÿ îáðàáîòêà íåêîòîðûõ ñèìâîëîâ; |
- íåêîòîðûå îïòèìèçàöèè. |
28.01.08 -- v0.48.5 -- 6.95 Êá |
- åñëè ïðèñóòñòâóåò òîëüêî çàêðûâàþùèé òåã </a>, áåç îòêðûâàþùåãî, ññûëêè |
áîëüøå íå "ñúåçæàþò"; |
- êîððåêòíàÿ îáðàáîòêà ïàðàìåòðîâ, íå âçÿòûõ â ñêîáêè, ïðèìåð: href=1.htm ; |
- èñïðàâëåí áàã ñ öâåòîì ññûëîê è öâåòîì òåêñòà ïîñëå ññûëîê; |
- ìíîãîóðîâíåâûå ñïèñêè; |
- íåìíîãî óëó÷øåí àëãîðèòì ïàðñèíãà òåãîâ; |
- êëàâèøà BackSpace îïÿòü âîçâðàùàåò íàçàä; |
- ïîä÷¸ðêèâàíèå öâåòíûõ ññûëîê òåïåðü öâåòà ñàìèõ ññûëîê; |
- èñïðàâëåí áàã â çàãëóøêå ñ ïåðåõîäîì ïî ññûëêå âíóòðè ñòðàíèöû #. |
28.01.08 -- v0.48.2 -- 6.95 Êá |
- óñòðàí¸í âûëåò ïðîãðàììû ïðè ïðîêðóòêå ñòðàíèöû ñ áîëüøèì êîë-âîì ññûëîê; |
- óñòðàíåíî "ñèíåíèå" òåêñòà â íåêîòîðûõ ñëó÷àÿõ; |
- èñïðàâëåí áàã â ÷òåíèè òåãà ñ ïàðàìåòðàìè; |
- àâòîîïðåäåëåíèå êîäèðîâêè KOI8; |
22.01.08 -- v0.48.1 -- 6,88 Êá |
21.12.08 -- v0.48.0 |
- ïåðåíîñ ïî ñëîâàì; |
- êîîðäèíàòû ñ÷èòàþòñÿ îò êîíöà çàãîëîâêà; |
- èñïðàâëåíà ïåðåðèñîâêà îêíà, êîãäà ñòðàíèöà ìàëåíüêàÿ; |
- èñïðàâèë áàã â òåãå <pre>; |
- èñïðàâëåí áàã ïåðåðèñîâêè ïåðâîé ñòðîêè; |
07.12.08 -- v0.47 -- 7,50 Êá |
- äîáàâëåí ñèìâîë "àïîñòðîô", óêðàèíñêèå áóêâû äëÿ êîäèðîâêè win1251; |
- èíôà âíóòðè <!-- --> ôèëüòðóåòñÿ; |
- ïåðåïèñàíà ïðîöåäóðà ïàðñèíãà ïàðàìåòðîâ òåãà; |
- çà÷àòêè âûâîäà èçîáðàæåíèé (ñïàñèáî Nable è Asper çà ïîìîùü); |
- èñïðàâëåí áàã, èç-çà êîòîðîãî ñòðàíèöû ìîãëè íå îòîáðàæàòüñÿ; |
- èñïðàâëåí áàã ñ òåãîì font, èç-çà êîòîðîãî âåñü òåêñò ìîãëî ïëþùèòü; |
- èñïðàâëåí íåäî÷¸ò â òåãå <pre> (íàø¸ë diamond); |
- íåìíîãî óâåëè÷åíà ñêîðîñòü îáðàáîòêè ñòðàíèö; |
- íåìíîãî óëó÷øåíà ïîëîñà ïðîêðóòêè, èñïðàâëåí îäèí ìåëêèé áàã; |
02.12.08 -- v0.45 -- 6,79 Êá |
- ïîääåðæêà êîäèðîâêè KOI8-R(U) - àêòèâèðóåòñÿ íàæàòèåì Ctrl+R. Ñïàñèáî Velianty |
çà íàïèñàíûé êîä; |
- âûâîä êàêîé-òî win êîäèðîâêè, ãäå âñå ñèìâîëû îòîáðàæàþòñÿ, êàê А è ò.ä. |
(çàðàáîòàë ôàéë, ïðèñëàíûé Albom'îì); |
- èñïðàâëåí î÷åíü ñåðü¸çíûé áàã èç-çà êîòîðîãî ñòðàíèöû ñ áîëüøèì êîëè÷åñòâîì |
ññûëîê ïðèâîäèëè ê âûëåòó ïðîãðàììû; |
- êîäèðîâêà DOS'a (cp866) àêòèâèðóåòñÿ íàæàòèåì Ctrl+D; |
- óëó÷øåí ñêðîëë; |
- èñïðàâëåí áàã êíîïêè "Îáíîâèòü"; |
- èêîíêè òóëáàðà âûâîäèòñÿ îäíèì èçîáðàæåíèåì ñ ïàëèòðîé, êàê ðåçóëüòàò ìåíüøå |
ïåðåðèñîâêà îêíà è ðàçìåð ïðîãðàììû. |
20.10.08 -- v0.40 -- 7,36 Êá |
- îáðàáîòêà íåñêîëüêèõ ïàðàìåòðîâ òåãà äëÿ ññûëêè è òåêñòà; |
- ïåðå÷¸ðêèâàíèå è ïîä÷¸ðêèâàíèå îòîáðàæàåòñÿ òåì æå öâåòîì ÷òî è òåêñò |
- ïðàâèëüíàÿ îáðàáîòêà òàáîâ; |
- óëó÷øåíèå òåãà <li>; |
- êîððåêòíûé ïåðåõîä íà ñòðàíèöó, àäðåñ êîòîðîé ñîäåðæèò çíàê "#"; |
- èñïðàâëåí áàã èç-çà êîòîðîãî ÷àñòü òåêñòà ìîãëà ñòàòü íåâèäèìîé; |
- èñïðàâëåí òåã <q>; |
- íåêîòîðûå ñïåöñèìâîëû çàìåíåíû ñâîèìè "àíàëîãàìè": (ñ), (r), îáû÷íîå òèðå |
âìåñòî òèïîãðàôè÷åñêîãî; |
- ïîääåðæêà òåãîâ <ins> è <del>; |
- ïðî÷èå äîðàáîòêè è õèòðîæîïûå îïòèìèçàöèè îòîáðàæåíèÿ :) |
19.10.08 -- v0.38.1 -- 6,85 Êá |
- ñóðîâûå îïòèìèçàöèè è êàê ðåçóëüòàò óâåëè÷èëàñü ñêîðîñòü çàãðóçêè ñòðàíèö íà |
7-10% (áûëî ïðîâåðåíî ñ èñïîëüçîâàíèåì ñåêóíäîìåðà); |
- ïðàâèëüíîå îòîáðàæåíèå ôàéëîâ ñ ðàñøèðåíèåì ".txt" â îêíå ïðîãðàììû; |
18.10.08 -- v0.38 -- 6,88 Êá |
- äëÿ ïîëîñû àäðåñà òåïåðü èñïîëüçóåòñÿ îòäåëüíàÿ ïåðåìåííàÿ; |
- õîæäåíèå ïî îòíîñèòåëüíûì ññûëêàì, ñ êîñÿêàìè, íî òî ôèãíÿ. Ñäåëàþ; |
- óëó÷øåíèÿ â îáðàáîòêå òåãîâ: êîððåêòíî îáðàáàòûâàþòñÿ òàá è ïåðåõîä íà |
ñëåäóþùóþ ñòðîêó â òåãå. |
- íåìíîãî óëó÷øåíà îáðàáîòêà òåãîâ âîîáùå, äîãàäûâàþñü êàê ñäåëàòü âàùå çàøèáèñü; |
- äîáàâëåíà îáðàáîòêà öâåòà ëèíèé (hr). |
17.10.08 -- v0.37 -- 6,82 Êá |
- ðåàëèçîâàíî ïðåîáðàçîâàíèå òåãîâ âèäà â ñèìâîëû (ïîêà òîëüêî 5 îñíîâíûõ); |
- íåìíîãî óëó÷øåí ñêðîëë, íî, âñ¸ ðàâíî, ýòî íå äåëî; |
- F3 - ïðîñìîòð èñõîäíîãî êîäà ñòðàíèöû; |
- îáíîâëåíû êíîïî÷êè "Âïåð¸ä/Íàçàä". |
Ïðàâêà áàãîâ: |
- èñïðàâëåíà òàáîòà ñî ññûëêàìè; |
- èñïðàâëåí áàã ñ òåì, ÷òî èíîãäà îòîáðàæàëîñü äâà ïðîáåëà â òåêñòå âìåñòî îäíîãî; |
- èñïðàâèë áàã èç-çà êîòîðîãî ÷àñòü òåêñòà ïðè ïðîêðóòêå ìîãëà ñòàòü ñèíåé; |
- èñïðàâëåí áàã, ñâÿçàíûé ñ êëàâèøåé BackSpace; |
Îãðîìíîå ñïàñèáî diamond'y çà òåñòèðîâàíèå. |
16.10.08 -- v0.35.3 -- 6,74 Êá |
- êíîïêè îò ññûëîê íå óäàëÿëèñü â ñëó÷àå, åñëè ñòðàíèöà íå íàéäåíà, fixed; |
- óëó÷øåíû êíîïî÷êè òóëáàðà; |
- ïîôèêñèë ïîñëåäíþþ ñòðàíèöó îò Albom'a, ñî ñêðèïòîì; îêàçàëîñü ïðîñòî íàäî áûëî |
îáíóëèòü ïåðåìåííóþ âî âðåìÿ å¸ îáúÿâëåíèÿ; |
- ïðè ñâîðà÷èâàíèè îêíà â çàãîëîâîê, åãî íàçâàíèå íå èñ÷åçàåò. |
15.10.08 -- v0.35 -- 6,75 Êá |
- èñïðàâëåí áàã - âûëåò ïðîãè èç-çà ïåðåïîëíåíèÿ ïàìÿòè âî âðåìÿ ñîçäàíèÿ ññûëîê |
(ñïàñèáî Albom'ó, êîòîðûé ïðèñëàë ñòðàíèöó, íà êîòîðîé ïðîÿâëÿåòñÿ áàã); |
- ïðè ïåðåìîòêå êîë¸ñèêîì òåïåðü ïðîìàòûâàåòñÿ 3 ñòðî÷êè; |
- èñïðàâëåíà ïåðåìîòêà PgUp/PgDn; |
- èñïðàâëåíà ðàáîòà ïðîãðàììû â ñëó÷àå, åñëè ñòðàíèöà íå íàéäåíà; |
- íîâûå ôèðìåííûå èçîáðàæåíèÿ íà êíîïêàõ; |
- èñïðàâëåí òåã <title> äëÿ äëèííûõ íàçâàíèé; |
- òåïåðü ïåðåõîä Äîìîé çàïèñûâàåòñÿ â õèñòîðè; |
- ïðîãðàììà áîëüøå íå äîëæíà âûëåòàòü :) |
03.10.08 -- v0.30.2 -- 6,56 Êá |
- îáíîâëåíèå ñòðàíèöû íå ïðèâîäèò ê çàïèñè íîâîé ññûëêè â èñòîðèþ ïîñåùåíèé; |
- îïòèìèçàöèÿ ïåðåáîðà ñèìâîëîâ; |
- áîëüøå íå ïîÿâëÿþòñÿ áåëûå ïîëîñû íà îáîäêå íèæíåé ÷àñòè îêíà; |
- óñòàíîâëåíû ìèíèìàëüíûå ðàçìåðû îêíà, óáðàíû àðòåôàêòû ïðè ñâîðà÷èâàíèè îêíà â çàãîëîâîê. |
02.08.08 -- v0.30.1 -- 6,48 Êá |
- ïîïðàâèë áàã ñ èñòîðèåé ïîñåùåíèé ñòðàíèö; |
- óñòðàí¸í áàã, êîãäà ïîä ñàìîé íèæíåé ñòðîêîé ïîÿâëàñü ïðîçðà÷íàÿ ïîëîñà; |
- èãíîðèðóåòñÿ òåêñò ìåæäó <style>; |
- íåìíîãî îïòèìèçèðîâàí ñêðîëë. |
29.07.08 -- v0.30 -- 6,46 Êá |
- êëàâèøà BackSpace, åñëè ïîëîñà àäðåñà íå àêòèâíà, âîçâðàùàåò íà ïðåäûäóùóþ ñòðàíèöó; |
- èãíîðèðóåòñÿ òåêñò ïîñëå òåãà <script>; |
- ñíîñíî ðàáîòàåò ïðîêðóòêà; |
- çàãëóøêà íà PgUp\PgDown, ðàáîòàåò End; |
- èñïðàâëåí áàã ñ çàãîëîâêîì îêíà. |
28.07.08 -- v0.27 -- 6,21 Êá |
- âûâîä öâåòà òåêñòà, ïîääåðæêà äî 10 âëîæåíûõ òåãîâ öâåòà - çà âñ¸ ýòî ñïàñèáî Veliant'y; |
- àäàïòèðîâàí êîä ïîä íîâóþ âåðñèþ áèáëèîòåêè <Lrz>, îòâå÷àþùåé çà ñòðîêó àäðåñà (box_lib); |
- òåïåðü êîððåêòíî îïðåäåëÿåòñÿ êîíåö ôàéëà ïðè îáðàáîòêå (by Veliant); |
- òåïåðü òåêñò äåêîäèðóåòñÿ win -> dos, èñïðàâëåíî îòîáðàæåíèå íåêîòîðûõ ñïåöèàëüíûõ ñèìâîëîâ; |
- ïî÷èùåí êîä, îïòèìèçîâàíà ñòðóêòóðà äîêóìåíòà; |
- îïðåäåíèå äëèíû ñòðàíèöû, çàãëóøêè íà ïðîêðóòêó å¸ ââåðõ è âíèç; |
- ñèëüíî óìåíüøåíà ïåðåðèñîâêà ïåðâûõ äâóõ ñòðîê. |
23.07.08 -- v0.24 -- 6,05 Êá |
- ïîëíîñòüþ èñïðàâëåíà ðàáîòà ññûëîê; |
- Ýíòåð òåïåðü äîáàâëÿåòñÿ êàê ïðîáåë â òåêñòå, â ñëó÷àå åñëè äî íåãî íå áûëî ïðîáåëà; |
- îáðàáîòêà òåãà "hr" - ðèñîâàíèå ëèíèé; |
- èñïðàâëåí áàã ïðè äåàêòèâàöèè îêíà. |
07.07.08 -- v0.23 alpha -- 5.68 Êá |
- èñïðàâëåí áàã êíîïêè "Íàçàä"; |
- íåêîòîðûå ññûëêè ðàáîòàþò :) |
- PageUp, PageDown. |
05.07.08 -- v0.22 -- 5.68 Êá |
- èñïðàâëåí áàã, èç-çà êîòîðîãî ñòðîêà â êîíöå îêíà îòîáðàæàëàñü áåç "ñòèëÿ"; |
- òåïåðü ïðîãðàììà óìååò îòäåëÿòü òåãè îò ïàðàìåòðîâ - óëó÷øåíà ñîâìåñòèìîñòü; |
- ïîääåðæêà ïàðàìåòðîâ â ðåæèìå òåñòèðîâàíèÿ (ïîêà íåäîñòóïíî). |
04.07.08 -- v0.21 -- 5.58 Êá |
- íåáîëüøèå èçìèíåíèÿ â èíòåðôåéñå; |
- ðàáî÷àÿ êëàâèøà "Íàçàä". |
29.06.08 -- v0.2 -- 5.48 Êá |
- óìåíüøåíà ïåðåðèñîâêà ïðè îòêðûòèè ïðîãè, âî âðåìÿ ïåðåõîäà ïî ñòðàíèöàì, |
âî âðåìÿ èõ ïðîêðóòêè - òåêñò âûâîäèòñÿ íå ïîáóêâåííî, à êîðîòêèìè ñòðî÷êàìè; |
- èçìåíåíèÿ â ñòðóêòóðå ïðîãðàììû, îíà ñòàëà åù¸ ÷óòü áîëåå ãèáêîé; |
- òåïåðü çàãîëîâîê íå ïåðåðèñîâûâàåòñÿ ïîñòîÿííî âî âðåìÿ ïåðåìîòêè; |
- òåïåðü íå âûâîäèòñÿ áîëüøå 1 ïðîáåëà; |
- çàïóñê ñ ïàðàìåòðîì - îòêðûâàåòñÿ ñòðàíèöà; |
- íåìíîãî ïîäïðàâëåíî ïîëîæåíèå ñòðîêè àäðåñà ïðè ðàçíîé âûñîòå çàãîëîâêîâ; |
- åñëè ñòðàíèöà íå ñóùåñòâóåò, âûâîäèòñÿ ïðåäóïðåæäåíèå. |
26.06.08 -- v0.1.3 -- 5.59 Êá |
- ïðè ïðîêðóòêå íå ïåðåðèñîâûâàåòñÿ çàãîëîâîê; |
- òåãè îáíóëÿþòñÿ ïåðåä íà÷àëîì ïåðåðèñîâêè; |
- óñòðàí¸í ãëþê èç-çà êîòîðîãî âíèçó ñïèñêà ìîã ïîÿâëÿòüñÿ ëåâûé òåêñò; |
- ïîääåðæêà òåãîâ ul, blockquote, q, íåêîòîðûå äðóãèå ÷àñòè÷íî; |
- òåïåðü âìåñòå îáðàáàòûâàþòñÿ òåãè ñ / è áåç íåãî. |
24.06.08 -- v0.1.1 -- 5.37 Êá |
- èñïðàâëåíèÿ è óëó÷øåíèÿ òåãà <li>; |
- òåïåðü ìîæíî ïðîïèñûâàòü ïóòü ê ñòðàíèöå íå äîáàâëÿÿ â êîíöå ".htm", |
ïðîãðàììà äîáàâèò ðàñøèðåíèå àâòîìàòè÷åñêè; |
- íåìíîãî óìåíüøåíà ïåðåðèñîâêà îêíà; |
- äîáàâëåí òåã "strike", àíàëîã "s"; |
- íà÷àëüíàÿ ïîääåðæêà íåêîòîðûõ äðóãèõ òåãîâ; |
- èñïðàâëåí áàã, èç-çà êîòîðîãî íåëüçÿ áûëî ïåðåìàòûâàòü òåêñò âíèç äî êîíöà. |
22.06.08 -- v0.1 -- 5.11 Êá |
- áîëåå èëè ìåíåå ïîëíàÿ ïîääåðæêà òåãîâ: b, strong, i, u, s, br, pre, title, |
li, p. Ïîääåðæêà çàêðûâàþùèõ òåãîâ ñîîòâåòñòâåííî; |
- ïîääåðæêà âëîæåíûõ òåãîâ; |
- èãíîðèðîâàíèå íåíóæíûõ ïðîáåëîâ â òåãå (ïðèìåð: < b >); |
- óâåëè÷åíà ñêîðîñòü ïðîêðóòêè è ïðîãðàììû; |
- ïîëîñà àäðåñà (EditBox) îò <Lrz>, ñïàñèáî åìó îãðîìíîå; |
- îñòàíîâêà ðèñîâàíèÿ ïîñëå òåãà </html>. |
20.02.08 -- v0.000001 -- 7.32 Êá |
Òèïà íà÷àëî. :) |
Ïåðåïèñàë áðàóçåð Veliant'a ïîä íîâóþ áèáëèîòåêó, íåìíîãî äîäåëàí. |
/programs/cmm/browser/TWB.h |
---|
0,0 → 1,884 |
int downloader_id; |
dword |
buf, |
filesize, |
blink; |
char download_path[]="/rd/1/.download"; |
char search_path[]="http://nigma.ru/index.php?s="; |
char version[]=" Text-based Browser 0.98"; |
struct TWebBrowser { |
int left, top, width, height; |
void Scan(int); |
void GetNewUrl(); |
void OpenPage(); |
void ReadHtml(byte); |
void ShowPage(); |
void ParseHTML(dword); |
void WhatTextStyle(int left1, top1, width1); |
void DrawPage(); |
void DrawScroller(); |
}; |
TWebBrowser WB1; |
byte rez, b_text, i_text, u_text, s_text, pre_text, blq_text, li_text, |
link, ignor_text, li_tab, first_line_drawed, cur_encoding; |
dword text_colors[300], |
text_color_index, |
link_color, |
bg_color; |
int stroka, |
stolbec, |
tab_len; |
char anchor[256]; |
int anchor_line_num; |
char line[500], |
tag[100], |
tagparam[10000], |
parametr[1200], |
options[4096]; |
#include "include\history.h" |
#include "include\colors.h" |
#include "include\unicode_tags.h" |
#include "include\some_code.h" |
#include "include\parce_tag.h" |
void TWebBrowser::Scan(int id) |
{ |
if (id >= 400) |
{ |
GetURLfromPageLinks(id); |
//#1 |
if (URL[0] == '#') |
{ |
strcpy(#anchor, #URL+strrchr(#URL, '#')); |
strcpy(#URL, BrowserHistory.CurrentUrl()); |
lines.first=lines.all-lines.visible; |
ShowPage(); |
return; |
} |
//liner.ru#1 |
if (strrchr(#URL, '#')<>-1) |
{ |
strcpy(#anchor, #URL+strrchr(#URL, '#')); |
URL[strrchr(#URL, '#')-1] = 0x00; //çàãëóøêà |
} |
GetNewUrl(); |
if (!strcmp(#URL + strlen(#URL) - 4, ".gif")) || (!strcmp(#URL + strlen(#URL) - 4, ".png")) || (!strcmp(#URL + strlen(#URL) - 4, ".jpg")) |
{ |
//if (strstr(#URL,"http:")) |
RunProgram("/sys/media/kiv", #URL); |
strcpy(#editURL, BrowserHistory.CurrentUrl()); |
strcpy(#URL, BrowserHistory.CurrentUrl()); |
return; |
} |
if (!strcmpn(#URL,"mailto:", 7)) |
{ |
RunProgram("@notify", #URL); |
strcpy(#editURL, BrowserHistory.CurrentUrl()); |
strcpy(#URL, BrowserHistory.CurrentUrl()); |
return; |
} |
OpenPage(); |
return; |
} |
IF(lines.all < lines.visible) SWITCH(id) //åñëè ìàëî ñòðîê èãíîðèðóåì íåêîòîðûå êíîïêè |
{ CASE 183: CASE 184: CASE 180: CASE 181: return; } |
switch (id) |
{ |
case 011: //Ctrk+K |
ReadHtml(_KOI); |
break; |
case 021: //Ctrl+U |
ReadHtml(_UTF); |
break; |
case 004: //Ctrl+D |
ReadHtml(_DOS); |
break; |
case 001: |
if (!pre_text) pre_text=2; |
else pre_text=0; |
break; |
case 002: //free img cache |
FreeImgCache(); |
break; |
case 005: //truetype |
if (use_truetype == 2) |
{ |
RunProgram("@notify", "Library does not exists /rd/1/lib/truetype.obj"w); |
return; |
} |
if (use_truetype == 1) use_truetype=0; else use_truetype=1; |
break; |
case BACK: |
if (!BrowserHistory.GoBack()) return; |
OpenPage(); |
return; |
case FORWARD: |
if (!BrowserHistory.GoForward()) return; |
OpenPage(); |
return; |
case 052: //Íàæàòà F3 |
if (strcmp(get_URL_part(5),"http:")<>0) RunProgram("/rd/1/tinypad", #URL); else RunProgram("/rd/1/tinypad", #download_path); |
return; |
case 054: //F5 |
IF(edit1.flags == 66) break; |
case REFRESH: |
if (GetProcessSlot(downloader_id)<>0) |
{ |
KillProcess(downloader_id); |
Pause(20); |
Draw_Window(); |
return; |
} |
anchor_line_num=lines.first; //âåñ¸ëûé êîñòûëü :Ð |
anchor[0]='|'; |
OpenPage(); |
return; |
case 014: //Ctrl+N íîâîå îêíî |
case 020: //Ctrl+T íîâàÿ âêëàäêà |
case NEWTAB: |
MoveSize(190,80,OLD,OLD); |
RunProgram(#program_path, #URL); |
return; |
case HOME: |
strcpy(#editURL, "http://kolibri-os.narod.ru"); |
case GOTOURL: |
case 0x0D: //enter |
strcpy(#URL, #editURL); |
OpenPage(); |
return; |
case 173: //ctrl+enter |
case SEARCHWEB: |
strcpy(#URL, #search_path); |
strcat(#URL, #editURL); |
OpenPage(); |
return; |
case ID1: //ìîòàåì ââåðõ |
IF(lines.first <= 0) return; |
lines.first--; |
break; |
case ID2: //ìîòàåì âíèç |
IF(lines.visible + lines.first >= lines.all) return; |
lines.first++; |
break; |
case 183: //PgDown |
IF(lines.first == lines.all - lines.visible) return; |
lines.first += lines.visible + 2; |
IF(lines.visible + lines.first > lines.all) lines.first = lines.all - lines.visible; |
break; |
case 184: //PgUp |
IF(lines.first == 0) return; |
lines.first -= lines.visible - 2; |
IF(lines.first < 0) lines.first = 0; |
break; |
case 180: //home |
IF(lines.first == 0) return; |
lines.first = 0; |
break; |
case 181: //end |
IF (lines.first == lines.all - lines.visible) return; |
lines.first = lines.all - lines.visible; |
break; |
default: |
return; |
} |
ParseHTML(buf); |
} |
char *ABSOLUTE_LINKS[]={ "http:", "mailto:", "ftp:", "/sys/", "/rd/", "/fd/", "/bd/", "/hd/", "/cd/", "/tmp/", 0}; |
//dword TWebBrowser::GetNewUrl(dword CUR_URL, NEW_URL){ |
void TWebBrowser::GetNewUrl(){ |
int i, len; |
for (i=0; ABSOLUTE_LINKS[i]; i++) |
{ |
len=strlen(ABSOLUTE_LINKS[i]); |
if (!strcmpn(#URL, ABSOLUTE_LINKS[i], len)) return; |
} |
IF (!strcmpn(#URL,"./", 2)) strcpy(#URL, #URL+2); //èãíîðèì :) |
if (URL[0] == '/') strcpy(#URL, #URL+1); |
strcpy(#editURL, BrowserHistory.CurrentUrl()); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû |
_CUT_ST_LEVEL_MARK: |
if (editURL[strrchr(#editURL, '/')-2]<>'/') // åñëè íå http:// |
{ |
editURL[strrchr(#editURL, '/')] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî / |
} |
IF (!strcmp(get_URL_part(3),"../")) //íà óðîâåíü ââåðõ |
{ |
strcpy(#URL,#URL+3); |
editURL[strrchr(#editURL, '/')-1] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî / |
goto _CUT_ST_LEVEL_MARK; |
} |
if (editURL[strlen(#editURL)-1]<>'/') strcat(#editURL, "/"); |
strcat(#editURL, #URL); //êëåèì íîâûé àäðåñ |
strcpy(#URL, #editURL); |
} |
void TWebBrowser::ReadHtml(byte encoding) |
{ |
if (!strcmp(get_URL_part(5),"http:"))) |
file_size stdcall (#download_path); |
else |
file_size stdcall (#URL); |
filesize = EBX; |
if (!filesize) return; |
mem_Free(buf); |
buf = mem_Alloc(filesize); |
if (!strcmp(get_URL_part(5),"http:"))) |
ReadFile(0, filesize, buf, #download_path); |
else |
ReadFile(0, filesize, buf, #URL); |
cur_encoding = encoding; |
if (encoding==_WIN) wintodos(buf); |
if (encoding==_UTF) utf8rutodos(buf); |
if (encoding==_KOI) koitodos(buf); |
} |
void TWebBrowser::OpenPage() |
{ |
if (GetProcessSlot(downloader_id)<>0) PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal); |
KillProcess(downloader_id); |
strcpy(#editURL, #URL); |
BrowserHistory.AddUrl(); |
strcpy(#header, #version); |
pre_text =0; |
if (!strcmp(get_URL_part(5),"http:"))) |
{ |
KillProcess(downloader_id); //óáèâàåì ñòàðûé ïðîöåññ |
DeleteFile(#download_path); |
IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]=NULL; |
downloader_id = RunProgram("/sys/network/downloader", #URL); |
//Browser Hack v2.0 |
Pause(60); |
if (GetProcessSlot(downloader_id)<>0) |
{ |
debug("Browser Hack v2.0: Killing downloader and trying to run it one more!"); |
KillProcess(downloader_id); //óáèâàåì ñòàðûé ïðîöåññ |
downloader_id = RunProgram("/sys/network/downloader", #URL); |
} |
// |
IF (downloader_id<0) RunProgram("@notify", "Error running Downloader. Internet unavilable."); |
Draw_Window(); |
return; |
} |
lines.first = lines.all =0; |
ReadHtml(_WIN); |
WB1.ShowPage(); |
} |
void TWebBrowser::ShowPage() |
{ |
edit1.size = edit1.pos = strlen(#editURL); |
edit1.offset=0; |
edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà |
if (!filesize) |
{ |
DrawBar(left, top, width+4, height, 0xFFFFFF); //çàêðàøèâàåì âñ¸ äîíèçó |
if (GetProcessSlot(downloader_id)<>0) WriteText(left + 10, top + 18, 0x80, 0, "Loading...", 0); |
else |
{ |
WriteText(left + 10, top + 18, 0x80, 0, "Page not found. May be, URL contains some errors.", 0); |
if (!strcmp(get_URL_part(5),"http:"))) WriteText(left + 10, top + 32, 0x80, 0, "Or Internet unavilable for your configuration.", 0); |
} |
//return; |
} |
else |
ParseHTML(buf); |
if (!header) strcpy(#header, #version); |
if (!strcmp(#version, #header)) DrawTitle(#header); |
} |
void TWebBrowser::ParseHTML(dword bword){ |
word bukva[2]; |
int j, perenos_num; |
byte ignor_param; |
char temp[768]; |
stroka = -lines.first; |
stolbec = 0; |
for (j = 400; j < blink + 1; j++;) DeleteButton(j); |
blink = 400; |
b_text = i_text = u_text = s_text = blq_text = first_line_drawed = |
li_text = link = ignor_text = text_color_index = text_colors[0] = li_tab = 0; //îáíóëÿåì òåãè |
link_color = 0x0000FF; |
bg_color = 0xFFFFFF; |
line = NULL; |
strcpy(#page_links,"|"); |
strcpy(#header, #version); |
if (pre_text<>2) |
{ |
pre_text=0; |
if (!strcmp(#URL + strlen(#URL) - 4, ".txt")) pre_text = 1; |
if (!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1; |
} |
for ( ; buf+filesize > bword; bword++;) |
{ |
bukva = ESBYTE[bword]; |
if (ignor_text) && (bukva<>'<') continue; |
switch (bukva) |
{ |
case 0x0a: |
if (pre_text) |
{ |
bukva = temp = NULL; |
goto NEXT_MARK; |
} |
case '\9': |
if (pre_text) //èíà÷å èä¸ì íà 0x0d |
{ |
tab_len=strlen(#line)/8; |
tab_len=tab_len*8; |
tab_len=8+tab_len-strlen(#line); |
for (j=0; j<tab_len; j++;) strcat(#line," "); |
break; |
} |
case 0x0d: |
bukva = ' '; |
goto DEFAULT_MARK; |
case '=': //ïîääåðæêà øàéòàíñêîé êîäèðîâêè ñòðàíèö, ñîõðàí¸ííûõ ÷åðåç ÈÅ7 |
if (strcmp(#URL + strlen(#URL) - 4, ".mht")<>0) goto DEFAULT_MARK; |
bword++; |
bukva=ESBYTE[bword]; |
strcpy(#temp,#bukva); |
bword++; |
bukva=ESBYTE[bword]; |
strcat(#temp,#bukva); |
bukva=Hex2Symb(#temp); |
if (bukva) goto DEFAULT_MARK; |
break; |
case '&': // and so on |
bword++; |
tag=0; |
for (j=0; (ESBYTE[bword]<>';') && (j<7); j++, bword++;) |
{ |
bukva = ESBYTE[bword]; |
strcat(#tag, #bukva); |
} |
bukva = GetUnicodeSymbol(); |
if (bukva) goto DEFAULT_MARK; |
break; |
case '<': |
bword++; //ïðîìîòàåì ñèìâîë < |
tag = parametr = tagparam = ignor_param = NULL; |
if (ESBYTE[bword] == '!') //ôèëüòðàöèÿ âíóòðè <!-- -->, äåðçêî |
{ |
bword++; |
if (ESBYTE[bword] == '-') |
{ |
HH_: |
do |
{ |
bword++; |
if (buf + filesize <= bword) break 2; |
} |
while (ESBYTE[bword] <>'-'); |
bword++; |
if (ESBYTE[bword] <>'-') goto HH_; |
} |
} |
while (ESBYTE[bword] !='>') && (bword < buf + filesize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû |
{ |
bukva = ESBYTE[bword]; |
if (bukva == '\9') || (bukva == '\x0a') || (bukva == '\x0d') bukva = ' '; |
if (!ignor_param) && (bukva <>' ') |
{ |
if (strlen(#tag)<sizeof(tag)) strcat(#tag, #bukva); |
} |
else |
{ |
ignor_param = true; |
if (!ignor_text) && (strlen(#tagparam)+1<sizeof(tagparam)) strcat(#tagparam, #bukva); |
} |
bword++; |
} |
strlwr(#tag); |
strlwr(#tagparam); |
if (tag[strlen(#tag)-1]=='/') tag[strlen(#tag)-1]=NULL; //for br/ |
if (tagparam) && (strlen(#tagparam) < 4000) GetNextParam(); |
if (stolbec + strlen(#line) > lines.column_max) |
{ |
perenos_num = strrchr(#line, ' '); |
if (!perenos_num) && (strlen(#line)>lines.column_max) perenos_num=lines.column_max; |
strcpy(#temp, #line + perenos_num); //ïåðåíîñ ïî ñëîâàì |
line[perenos_num] = 0x00; |
if (stroka >= lines.visible) && (lines.first <>0) break 1; //óõîäèì... |
DrawPage(); |
strcpy(#line, #temp); |
TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñëåäóùóþ ñòðîêó |
} |
DrawPage(); |
line=NULL; |
if (tag) WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //îáðàáîòêà òåãîâ |
tag = parametr = tagparam = ignor_param = NULL; |
break; |
default: |
DEFAULT_MARK: |
if (!pre_text) && (bukva == ' ') |
{ |
if (line[strlen(#line)-1]==' ') break; //óáðàòü 2 ïðîáåëà ïîäðÿä |
if (!stolbec) && (!line) break; //ñòðîêà íå ìîæåò íà÷èíàòüñÿ ñ ïðîáåëà |
} |
if (strlen(#line)<sizeof(line)) strcat(#line, #bukva); |
if (stolbec + strlen(#line) > lines.column_max) |
{ |
NEXT_MARK: |
perenos_num = strrchr(#line, ' '); |
if (!perenos_num) && (strlen(#line)>lines.column_max) perenos_num=lines.column_max; |
strcpy(#temp, #line + perenos_num); //ïåðåíîñ ïî ñëîâàì |
line[perenos_num] = 0x00; |
if (stroka >= lines.visible) && (lines.first <>0) break 1; //óõîäèì... |
DrawPage(); |
strcpy(#line, #temp); |
TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñëåäóùóþ ñòðîêó |
} |
} |
} |
DrawPage(); //ðèñóåò ïîñëåäíþþ ñòðîêó, ïîòîì ýòî íàäî óáðàòü, îïòèìèçèðîâàâ êîä |
if (lines.visible * 10 + 25 <= height) |
DrawBar(left, lines.visible * 10 + top + 25, width - 15, -lines.visible * 10 + height - 25, bg_color); |
if (stroka * 10 + 15 <= height) |
DrawBar(left, stroka * 10 + top + 15, width - 15, -stroka * 10 + height - 15, bg_color); //çàêðàøèâàåì âñ¸ äî êîíöà |
if (lines.first == 0) lines.all = stroka; |
if (anchor) //åñëè ïîñðåäè òåêñòà ïîÿâèòñÿ íîâûé ÿêîðü - áóäåò áåñêîíå÷íûé öèêë |
{ |
anchor=NULL; |
lines.first=anchor_line_num; |
ParseHTML(buf); |
} |
DrawScroller(); |
} |
void TWebBrowser::DrawPage() //ðåçàòü çäåñü!!1! |
{ |
int start_x, start_y, line_length; |
char temp[sizeof(line)]; |
if (!header) //&& (tag) |
{ |
if (strlen(#version)+strlen(#line)+2>sizeof(header)) |
{ |
strcpy(#temp, #line); |
temp[sizeof(header)-strlen(#version)-2]=0; |
strcpy(#header, #temp); |
strcpy(#line, #line+strlen(#temp)); |
} |
else |
{ |
strcpy(#header, #line); |
line=0; |
} |
strcat(#header, " -"); |
strcat(#header, #version); |
return; |
} |
if (stroka >= 0) && (stroka - 2 < lines.visible) && (line) && (!anchor) |
{ |
if (!stroka) && (!stolbec) |
{ |
DrawBar(left, top, width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó |
first_line_drawed=1; |
} |
start_x=stolbec * 6 + left+5; |
start_y=stroka * 10 + top + 5; |
line_length=strlen(#line)*6; |
if (use_truetype == 1) |
{ |
//line_length = get_length stdcall (#line,-1,16,line_length); |
text_out stdcall (#line, #fontlol, 17, text_colors[text_color_index], start_x, start_y-3); |
} |
else |
{ |
WriteText(start_x, start_y, 0x80, text_colors[text_color_index], #line, 0); |
IF (b_text) { $add ebx, 1<<16 $int 0x40 } |
} |
IF (i_text) Skew(start_x, start_y, line_length+6, 10); |
IF (s_text) DrawBar(start_x, start_y + 4, line_length, 1, text_colors[text_color_index]); |
IF (u_text) DrawBar(start_x, start_y + 8, line_length, 1, text_colors[text_color_index]); |
IF (link) { |
DefineButton(start_x-2, start_y, line_length + 3, 9, blink + BT_HIDE, 0xB5BFC9); |
DrawBar(start_x, start_y + 8, line_length, 1, text_colors[text_color_index]); |
} |
stolbec += strlen(#line); |
} |
} |
char oldtag[100]; |
void TWebBrowser::WhatTextStyle(int left1, top1, width1) { |
dword hr_color; |
//ïðîâåðÿåì òåã îòêðûâàåòñÿ èëè çàêðûâàåòñÿ |
if (tag[0] == '/') |
{ |
rez = 0; |
strcpy(#tag, #tag+1); |
} |
else rez = 1; |
if (!chTag("html")) |
{ |
IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) IF (rez==0) ignor_text = 1; ELSE ignor_text = 0; |
return; |
} |
if (!chTag("script")) || (!chTag("style")) || (!chTag("binary")) ignor_text = rez; |
if(!chTag("title")) |
{ |
if (rez) header=NULL; |
else if (!stroka) DrawTitle(#header); //òåã çàêðûëñÿ - âûâåëè ñòðîêó |
return; |
} |
if (ignor_text) return; |
IF(!chTag("q")) strcat(#line, "\""); |
if (anchor) && (!strcmp(#parametr, "id=")) //î÷åíü ïëîõî!!! ïîòîìó ÷òî åñëè íå ïîñëåäíèé òåã, ðàáîòàòü íå áóäåò |
{ |
if (!strcmp(#anchor, #options)) anchor_line_num=lines.first+stroka; |
} |
if (!chTag("body")) |
{ |
do{ |
if (!strcmp(#parametr, "link=")) link_color = GetColor(#options); |
if (!strcmp(#parametr, "text=")) text_colors[0]=GetColor(#options); |
if (!strcmp(#parametr, "bgcolor=")) bg_color=GetColor(#options); |
} while(GetNextParam()); |
return; |
} |
if (!chTag("a")) |
{ |
if (rez) |
{ |
if (link) IF(text_color_index > 0) text_color_index--; //åñëè ïðåäûäóùèé òåã à íå áûë çàêðûò |
do{ |
if (!strcmp(#parametr, "href=")) |
{ |
if (stroka - 1 > lines.visible) || (stroka < -2) return; |
text_color_index++; |
text_colors[text_color_index] = text_colors[text_color_index-1]; |
link = 1; |
blink++; |
text_colors[text_color_index] = link_color; |
strcat(#page_links, #options); |
strcat(#page_links, "|"); |
} |
if (anchor) && (!strcmp(#parametr, "name=")) |
{ |
if (!strcmp(#anchor, #options)) |
{ |
anchor_line_num=lines.first+stroka; |
} |
} |
} while(GetNextParam()); |
} |
else { |
link = 0; |
IF(text_color_index > 0) text_color_index--; |
} |
return; |
} |
if (!chTag("font")) |
{ |
if (rez) |
{ |
text_color_index++; |
text_colors[text_color_index] = text_colors[text_color_index-1]; |
do{ |
if (strcmp(#parametr, "color=") == 0) //&& (parametr[1] == '#') |
{ |
text_colors[text_color_index] = GetColor(#options); |
} |
} while(GetNextParam()); |
} |
else |
if (text_color_index > 0) text_color_index--; |
return; |
} |
if(!chTag("tr")) || (!chTag("br")) { |
TextGoDown(left1, top1, width1); |
return; |
} |
if (!chTag("div")) { |
IF(oldtag[0] <>'h') TextGoDown(left1, top1, width1); |
return; |
} |
if (!chTag("p")) { |
IF(oldtag[0] == 'h') return; |
TextGoDown(left1, top1, width1); |
IF(rez) TextGoDown(left1, top1 + 10, width1); |
return; |
} |
if (!chTag("h1")) || (!chTag("h2")) || (!chTag("h3")) || (!chTag("h4")) { |
TextGoDown(left1, top1, width1); |
IF(rez) TextGoDown(left1, top1 + 10, width1); |
b_text = rez; |
strcpy(#oldtag, #tag); |
return; |
} |
else |
oldtag=NULL; |
if (!chTag("b")) || (!chTag("strong")) || (!chTag("big")) { |
b_text = rez; |
return; |
} |
if(!chTag("i")) || (!chTag("em")) || (!chTag("subtitle")) { |
i_text = rez; |
return; |
} |
if (!chTag("dt")) |
{ |
li_text = rez; |
IF(rez == 0) return; |
TextGoDown(left1, top1, width1); |
return; |
} |
if(!chTag("li")) || (!chTag("dt")) //íàäî ñäåëàòü âëîæåííûå ñïèñêè |
{ |
li_text = rez; |
IF(rez == 0) return; |
TextGoDown(left1, top1, width1); |
IF(stroka > -1) && (stroka - 2 < lines.visible) DrawBar(li_tab * 5 * 6 + left1 - 5, top1 + 12, 2, 2, 0); |
return; |
} |
if (!chTag("u")) || (!chTag("ins")) u_text = rez; |
if (!chTag("s")) || (!chTag("strike")) || (!chTag("del")) s_text = rez; |
if (!chTag("ul")) || (!chTag("ol")) IF(!rez) |
{ |
li_text = rez; |
li_tab--; |
TextGoDown(left1, top1, width1); |
} ELSE li_tab++; |
if (!chTag("dd")) stolbec += 5; |
if (!chTag("blockquote")) blq_text = rez; |
if (!chTag("pre")) pre_text = rez; |
if (!chTag("hr")) |
{ |
TextGoDown(left1, top1, width1); |
TextGoDown(left1, top1 + 10, width1); |
IF(strcmp(#parametr, "color=") == 0) hr_color = GetColor(#options); |
ELSE hr_color = 0x999999; |
IF(stroka > 0) DrawBar(left1, top1 + 14, width1 - 8, 1, hr_color); |
} |
if (!chTag("img")) |
{ |
Images( left1, top1, width1); |
return; |
} |
if (!chTag("meta")) || (!chTag("?xml")) |
{ |
do{ |
if (!strcmp(#parametr, "charset=")) || (!strcmp(#parametr, "content=")) || (!strcmp(#parametr, "encoding=")) |
{ |
strcpy(#options, #options[strrchr(#options, '=')]); //ïîèñê â content= |
if (!strcmp(#options,"utf-8")) || (!strcmp(#options,"utf8")) ReadHtml(_UTF); |
if (!strcmp(#options, "koi8-r")) || (!strcmp(#options, "koi8-u")) ReadHtml(_KOI); |
if (!strcmp(#options, "dos")) || (!strcmp(#options, "cp-866")) ReadHtml(_DOS); |
} |
} while(GetNextParam()); |
return; |
} |
} |
void TextGoDown(int left1, top1, width1) |
{ |
if (!stroka) && (!stolbec) && (!first_line_drawed) |
{ |
DrawBar(WB1.left, WB1.top, WB1.width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó |
first_line_drawed=1; |
} |
stroka++; |
if (blq_text) stolbec = 8; |
ELSE stolbec = 0; |
if (li_text) stolbec = li_tab * 5; |
IF(stroka >= 0) && (stroka - 2 < lines.visible) && (!anchor) DrawBar(left1 - 5, top1 + 10, width1 + 5, 10, bg_color); |
} |
struct s_image |
{ |
dword *image; |
char path[4096]; |
}; |
s_image pics[100]; //pics = mem_Alloc( 100*sizeof(s_image) ); |
int num_of_pics; |
int GetOrSetPicNum(dword i_path) |
{ |
int i; |
for (i=0; i<num_of_pics; i++) |
{ |
if (!strcmp(#pics[i].path, i_path)) return i; |
} |
num_of_pics++; |
return num_of_pics; |
} |
void FreeImgCache() |
{ |
int i; |
for (i=0; i<=num_of_pics; i++) |
{ |
mem_Free(pics[num_of_pics].image); |
pics[num_of_pics].path=NULL; |
} |
num_of_pics=0; |
} |
void Images(int left1, top1, width1) |
{ |
dword image; |
char img_path[4096], alt[4096]; |
int w=0, h=0, img_lines_first=0, cur_pic=0; |
if (GetFileInfo(libimg)<>0) return; //åñëè áèáëèîòåêè íåò |
do{ |
if (!strcmp(#parametr,"src=")) //íàäî îáúåäèíèòü ñ GetNewUrl() |
{ |
if (downloader_id) strcpy(#img_path, #history_list[history_current-1].Item); |
else strcpy(#img_path, BrowserHistory.CurrentUrl()); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû |
if (strcmpn(#img_path, "http:", 5)!=0) || (strcmpn(#options, "http:", 5)!=0) |
{ |
img_path[strrchr(#img_path, '/')] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî / |
strcat(#img_path, #options); |
cur_pic=GetOrSetPicNum(#img_path); |
if (!pics[cur_pic].path) |
{ |
pics[cur_pic].image=load_image(#img_path); |
strcpy(#pics[cur_pic].path, #img_path); |
} |
} |
} |
if (!strcmp(#parametr,"alt=")) |
{ |
strcpy(#alt, "["); |
strcat(#alt, #options); |
strcat(#alt, "]"); |
} |
} while(GetNextParam()); |
if (!pics[cur_pic].image) |
{ |
if (alt) && (link) strcat(#line, #alt); |
return; |
} |
w=DSWORD[pics[cur_pic].image+4]; |
h=DSWORD[pics[cur_pic].image+8]; |
if (w>width1) w=width1; |
if (stroka==0) DrawBar(WB1.left, WB1.top, WB1.width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó |
stroka+=h/10; |
if (top1+h<WB1.top) || (top1>WB1.top+WB1.height-10) return; //åñëè ÂѨ èçîáðàæåíèå óøëî ÂÅÐÕ èëè ÂÍÈÇ |
if (top1<WB1.top) //åñëè ÷àñòü èçîáðàæåíèÿ ñâåðõó |
{ |
DrawBar(WB1.left, WB1.top, WB1.width-15, 10, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó |
img_lines_first=WB1.top-top1; |
h=h-img_lines_first; |
top1=WB1.top; |
} |
if (top1>WB1.top+WB1.height-h-15) //åñëè ÷àñòü èçîáðàæåíèÿ ñíèçó |
{ |
h=WB1.top+WB1.height-top1-15; |
} |
if (h<=0) return; |
if (anchor) return; |
img_draw stdcall (pics[cur_pic].image,left1-5,top1+10,w, h,0,img_lines_first); |
DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, bg_color); |
IF (link) DefineButton(left1 - 5, top1+10, w, h, blink + BT_HIDE, 0xB5BFC9); |
} |
//ñêðîëë |
void TWebBrowser::DrawScroller() //íå îïòèìàëüíàÿ îòðèñîâêà, íî çàòî â îäíîì ìåñòå |
{ |
scroll1.max_area = lines.all; |
scroll1.cur_area = lines.visible; |
scroll1.position = lines.first; |
scroll1.all_redraw=1; |
scroll1.start_x=Form.width-28; //left + width - 15 |
scroll1.size_y=WB1.height; |
scrollbar_v_draw(#scroll1); |
} |
/programs/cmm/browser/compile.bat |
---|
0,0 → 1,6 |
..\C--\c-- HTMLv.c /lst |
del HTMLv |
rename HTMLv.com HTMLv |
rem ..\C--\kpack HTMLv |
del warning.txt |
pause |
/programs/cmm/browser/img/URLgoto.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/browser/img/URLgoto.txt |
---|
0,0 → 1,256 |
unsigned char URLgoto[2280] = { |
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, |
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, |
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, |
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, |
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xD3, |
0xB8, 0xA4, 0xDE, 0xD4, 0xD1, 0xE1, 0xDF, 0xE4, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, |
0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, |
0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, |
0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, |
0xF4, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, |
0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, |
0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, |
0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xE5, 0xDA, 0xD5, 0xD1, 0xB3, 0x9C, 0xDE, 0xD4, 0xD1, |
0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, |
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, |
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, |
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, |
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, |
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, |
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, |
0xE9, 0xED, 0xE5, 0xDA, 0xD5, 0xD3, 0xB8, 0xA4, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9, |
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, |
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, |
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8, |
0xDE, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, |
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, |
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, |
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, |
0xE9, 0xED, 0xA3, 0x9E, 0x98, 0x8C, 0x86, 0x7D, 0x81, 0x7A, 0x71, 0x8C, 0x86, 0x7D, 0xA3, 0x9E, |
0x98, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, |
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, |
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0x32, 0xAD, |
0x76, 0x32, 0xAD, 0x76, 0x32, 0xAD, 0x76, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, |
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, |
0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xF1, 0xF0, 0xF2, 0xE9, 0xE8, |
0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0x94, 0x8E, 0x87, 0xA6, 0x9F, 0x99, 0xD0, 0xCA, 0xBE, |
0xEC, 0xE2, 0xC8, 0xCD, 0xC4, 0xB0, 0xA3, 0x9A, 0x8F, 0x94, 0x8E, 0x86, 0xE9, 0xE8, 0xEC, 0xE9, |
0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xD9, 0xD7, |
0xDD, 0xCE, 0xAE, 0x94, 0xF1, 0xF0, 0xF2, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, |
0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x6B, 0xD4, 0xA5, 0x32, |
0xAD, 0x76, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, |
0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE8, 0xE6, 0xEA, 0xD9, 0xD7, 0xDD, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xA3, 0x9E, 0x98, 0xA4, |
0x9D, 0x95, 0xFE, 0xFD, 0xFB, 0xF3, 0xE8, 0xD6, 0xEC, 0xDB, 0xBF, 0xEE, 0xE1, 0xC4, 0xF1, 0xEA, |
0xCE, 0xA1, 0x9A, 0x8F, 0xA3, 0x9E, 0x98, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, |
0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xD9, 0xD6, 0xDD, 0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE9, |
0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0x32, 0xAD, |
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x6B, 0xD4, 0xA5, 0x32, 0xAD, 0x76, 0xE9, 0xE7, 0xEB, |
0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE7, |
0xE5, 0xE9, 0xD9, 0xD6, 0xDD, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE8, 0xE6, |
0xEA, 0xE8, 0xE6, 0xEA, 0x8C, 0x86, 0x7D, 0xCF, 0xCA, 0xB9, 0xF1, 0xE5, 0xCF, 0xEE, 0xE0, 0xC5, |
0xF2, 0xEE, 0xD3, 0xF4, 0xF2, 0xD8, 0xF4, 0xF3, 0xD8, 0xCF, 0xC9, 0xB6, 0x8C, 0x86, 0x7D, 0xE8, |
0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xD8, 0xD6, |
0xDC, 0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, |
0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52, |
0xCD, 0x96, 0x6B, 0xD4, 0xA5, 0x32, 0xAD, 0x76, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, |
0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE6, 0xE4, 0xE8, 0xD8, 0xD6, 0xDC, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xED, 0xED, 0xEF, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0x81, 0x7A, 0x71, 0xEC, |
0xE5, 0xCC, 0xEB, 0xD9, 0xBC, 0xF1, 0xED, 0xD1, 0xF7, 0xF7, 0xE4, 0xF9, 0xF9, 0xEB, 0xF8, 0xF8, |
0xE7, 0xF0, 0xEF, 0xD9, 0x81, 0x7A, 0x71, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, |
0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xD7, 0xD5, 0xDB, 0xCE, 0xAE, 0x94, 0xED, 0xED, 0xEF, 0xE7, |
0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0x32, 0xAD, |
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x6B, 0xD4, 0xA5, |
0x32, 0xAD, 0x76, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE2, |
0xE1, 0xE5, 0xD7, 0xD5, 0xDB, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xEC, 0xEA, 0xED, 0xE6, 0xE4, |
0xE8, 0xE6, 0xE4, 0xE8, 0x8C, 0x86, 0x7D, 0xCB, 0xC3, 0xB2, 0xEE, 0xE3, 0xC6, 0xF3, 0xF1, 0xD6, |
0xF9, 0xF9, 0xEB, 0xFD, 0xFD, 0xF9, 0xFD, 0xFD, 0xF8, 0xCF, 0xCB, 0xBE, 0x8C, 0x86, 0x7D, 0xE6, |
0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xD6, 0xD3, |
0xDA, 0xCE, 0xAE, 0x94, 0xEC, 0xEA, 0xED, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, |
0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52, |
0xCD, 0x96, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x39, 0xC5, 0x86, 0x32, 0xAD, 0x76, 0xE6, 0xE4, |
0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xDF, 0xDD, 0xE2, 0xD6, 0xD3, 0xDA, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xEB, 0xEA, 0xED, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xA3, 0x9E, 0x98, 0xA1, |
0x9A, 0x91, 0xEF, 0xE7, 0xCD, 0xF4, 0xF3, 0xD8, 0xF8, 0xF8, 0xE6, 0xFC, 0xFC, 0xF5, 0xFB, 0xFA, |
0xF9, 0xA2, 0x9C, 0x94, 0xA3, 0x9E, 0x98, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, |
0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xD6, 0xD3, 0xDA, 0xCE, 0xAE, 0x94, 0xEB, 0xEA, 0xED, 0xE2, |
0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0x32, 0xAD, |
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x39, 0xC5, 0x86, |
0x32, 0xAD, 0x76, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xDF, |
0xDC, 0xE2, 0xD6, 0xD3, 0xDA, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xE9, 0xE9, 0xEC, 0xDF, 0xDD, |
0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0x94, 0x8F, 0x87, 0xA2, 0x9B, 0x92, 0xCB, 0xC6, 0xB8, |
0xF1, 0xF2, 0xE0, 0xCE, 0xCA, 0xBF, 0xA2, 0x9D, 0x95, 0x83, 0x7F, 0x7A, 0x80, 0xAD, 0xC8, 0xDF, |
0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xD4, 0xD2, |
0xD9, 0xCE, 0xAE, 0x94, 0xE9, 0xE9, 0xEC, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, |
0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52, |
0xCD, 0x96, 0x39, 0xC5, 0x86, 0x32, 0xAD, 0x76, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, |
0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDC, 0xDB, 0xE1, 0xD4, 0xD2, 0xD9, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, |
0xDC, 0xE2, 0xA3, 0x9E, 0x98, 0x8C, 0x86, 0x7D, 0x81, 0x7A, 0x71, 0x8C, 0x86, 0x7D, 0xA3, 0x9E, |
0x98, 0x6F, 0x77, 0x93, 0x6C, 0x77, 0x9A, 0x80, 0xB7, 0xD9, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, |
0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xD3, 0xD1, 0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDE, |
0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0x32, 0xAD, |
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x39, 0xC5, 0x86, 0x32, 0xAD, 0x76, 0xDE, 0xDC, 0xE2, |
0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xD9, |
0xD7, 0xDB, 0xD3, 0xD1, 0xD7, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDC, 0xDB, |
0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, |
0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0x6C, 0x77, 0x9A, 0x6C, |
0x77, 0x9A, 0x80, 0xB7, 0xD9, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xD3, 0xD1, |
0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, |
0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x39, 0xC5, 0x86, 0x32, |
0xAD, 0x76, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, |
0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xD9, 0xD7, 0xDB, 0xD3, 0xD1, 0xD7, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, |
0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, |
0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0x6C, 0x77, 0x9A, 0x6C, 0x77, 0x9A, 0x80, 0xB7, 0xD9, |
0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xD3, 0xD0, 0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDA, |
0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0x32, 0xAD, |
0x76, 0x32, 0xAD, 0x76, 0x32, 0xAD, 0x76, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, |
0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xD8, |
0xD6, 0xDA, 0xD3, 0xD0, 0xD7, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD9, 0xD8, |
0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, |
0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, |
0xD8, 0xDD, 0x6C, 0x77, 0x9A, 0x6C, 0x77, 0x9A, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD3, 0xD0, |
0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, |
0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, |
0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, |
0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD8, 0xD6, 0xDA, 0xD2, 0xCF, 0xD6, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, |
0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, |
0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, |
0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD3, 0xD0, 0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD8, |
0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, |
0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, |
0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD6, |
0xD4, 0xD8, 0xD8, 0xD2, 0xD5, 0xD3, 0xB8, 0xA4, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD3, 0xD0, |
0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, |
0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, |
0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD1, 0xCE, |
0xD5, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, |
0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, |
0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, |
0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD8, 0xD2, 0xD5, 0xD0, 0xB8, 0xA7, 0xDE, 0xD4, 0xD1, |
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, |
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, |
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, |
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, |
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, |
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xD2, |
0xBC, 0xAE, 0xDE, 0xD4, 0xD1, 0xE1, 0xDF, 0xE4 |
}; |
unsigned char stop_btn[1728] = { |
0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, |
0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, |
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, |
0xEA, 0xE9, 0xED, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, |
0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, |
0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xC2, 0xC5, 0xE5, |
0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, |
0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC6, 0xE5, 0xE7, 0xE6, 0xED, 0xE8, 0xE7, 0xED, 0xEB, 0xEA, |
0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, |
0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, |
0xEA, 0xEE, 0xB3, 0xB8, 0xE3, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, |
0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, |
0x8C, 0x95, 0xDB, 0xE3, 0xE3, 0xEC, 0xE7, 0xE6, 0xED, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, |
0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, |
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xB2, 0xB8, 0xE2, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, |
0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, |
0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x00, 0x19, 0xC1, 0x87, 0x92, 0xDA, 0xE1, 0xE1, |
0xEB, 0xE8, 0xE7, 0xEC, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, |
0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xB1, 0xB5, 0xE0, 0x00, |
0x19, 0xC1, 0x74, 0x85, 0xE7, 0x49, 0x5F, 0xDB, 0x49, 0x5F, 0xDB, 0x4C, 0x65, 0xDD, 0x4C, 0x64, |
0xDD, 0x46, 0x5E, 0xDB, 0x3E, 0x55, 0xDA, 0x34, 0x4D, 0xDA, 0x29, 0x45, 0xD7, 0x2D, 0x47, 0xD8, |
0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x86, 0x90, 0xD8, 0xDF, 0xDE, 0xE8, 0xE7, 0xE5, 0xE9, 0xE8, |
0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, |
0xEA, 0xB1, 0xB5, 0xE0, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x49, 0x5F, 0xDB, 0x4A, 0x61, 0xDC, |
0x50, 0x64, 0xDC, 0x52, 0x67, 0xDD, 0x4D, 0x64, 0xDC, 0x4B, 0x62, 0xDC, 0x46, 0x5E, 0xDB, 0x3C, |
0x53, 0xD9, 0x30, 0x4A, 0xD8, 0x28, 0x44, 0xD6, 0x29, 0x45, 0xD7, 0x48, 0x5F, 0xDB, 0x00, 0x19, |
0xC1, 0x86, 0x90, 0xD8, 0xE3, 0xE2, 0xE9, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, |
0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xB0, 0xB5, 0xDF, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x49, |
0x5F, 0xDB, 0x47, 0x5E, 0xDB, 0x51, 0x65, 0xDD, 0x6C, 0x80, 0xE2, 0x4C, 0x62, 0xDC, 0x47, 0x5F, |
0xDC, 0x48, 0x60, 0xDC, 0x44, 0x5C, 0xDC, 0x3B, 0x55, 0xD9, 0x58, 0x6D, 0xDE, 0x2C, 0x45, 0xD7, |
0x27, 0x43, 0xD2, 0x23, 0x3D, 0xCD, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x86, 0x8F, 0xD8, 0xE5, |
0xE3, 0xE8, 0xE6, 0xE4, 0xE8, 0xE7, 0xE5, 0xE9, 0xE5, 0xE3, 0xE7, 0xBA, 0xBD, 0xDF, 0x00, 0x19, |
0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x49, 0x5F, 0xDB, 0x45, 0x5D, 0xDB, 0x8D, 0x9D, 0xE7, |
0xA8, 0xB6, 0xEF, 0xBC, 0xC9, 0xEE, 0x41, 0x59, 0xDB, 0x45, 0x5D, 0xDB, 0x44, 0x5C, 0xDC, 0x90, |
0xA0, 0xE9, 0xA8, 0xB6, 0xEF, 0x6B, 0x7E, 0xE2, 0x27, 0x41, 0xCF, 0x1A, 0x35, 0xCA, 0x21, 0x3C, |
0xCD, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x9B, 0xA2, 0xDA, 0xE5, 0xE3, 0xE7, 0xE4, 0xE2, 0xE7, |
0xE2, 0xE1, 0xE5, 0xB8, 0xBC, 0xDD, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x46, |
0x5F, 0xDB, 0x67, 0x7B, 0xE1, 0xA8, 0xB6, 0xEF, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xB6, 0xC6, |
0xE9, 0x43, 0x5B, 0xDC, 0x80, 0x93, 0xE3, 0x91, 0xA1, 0xE8, 0xDE, 0xE7, 0xF5, 0xE1, 0xE8, 0xF9, |
0x5C, 0x70, 0xE0, 0x26, 0x41, 0xD0, 0x17, 0x32, 0xC9, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x71, |
0x7E, 0xD3, 0xDF, 0xDE, 0xE4, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xB8, 0xBC, 0xDD, 0x00, 0x19, |
0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x43, 0x5B, 0xDC, 0x3E, 0x57, 0xDD, 0xBC, 0xC9, 0xEE, |
0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xB4, 0xC5, 0xE6, 0x86, 0x99, 0xE4, 0xDE, |
0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xE7, 0xEE, 0xFB, 0x27, 0x43, 0xD5, 0x27, 0x41, 0xD2, 0x22, 0x3B, |
0xCC, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x71, 0x7E, 0xD3, 0xDA, 0xDA, 0xE3, 0xE2, 0xE1, 0xE5, |
0xE1, 0xE0, 0xE4, 0xB7, 0xBB, 0xDC, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x3F, |
0x56, 0xDD, 0x3E, 0x57, 0xDD, 0x3E, 0x57, 0xDA, 0xB6, 0xC6, 0xE9, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, |
0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDD, 0xE7, 0xF5, 0x2D, 0x46, 0xD8, |
0x28, 0x44, 0xD7, 0x28, 0x43, 0xD2, 0x23, 0x3D, 0xCD, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x70, |
0x7D, 0xD2, 0xD4, 0xD5, 0xE2, 0xDC, 0xDC, 0xE3, 0xDF, 0xDE, 0xE3, 0xB5, 0xB9, 0xDC, 0x00, 0x19, |
0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x3F, 0x58, 0xDB, 0x40, 0x59, 0xDD, 0x3E, 0x57, 0xDC, |
0x3E, 0x57, 0xDA, 0xB4, 0xC5, 0xE6, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, |
0xE7, 0xF5, 0x34, 0x4D, 0xD7, 0x30, 0x48, 0xD8, 0x29, 0x44, 0xD7, 0x28, 0x43, 0xD4, 0x22, 0x3D, |
0xCC, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6F, 0x7C, 0xD2, 0xD2, 0xD3, 0xE1, 0xDA, 0xDA, 0xE2, |
0xDC, 0xDB, 0xE1, 0xB3, 0xB7, 0xDA, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x55, 0xD9, 0x41, |
0x5B, 0xDB, 0x41, 0x5B, 0xDD, 0x3F, 0x58, 0xDB, 0x80, 0x93, 0xE3, 0xA4, 0xB4, 0xE8, 0xDE, 0xE7, |
0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xD7, 0xE2, 0xF3, 0x30, 0x49, 0xD8, |
0x28, 0x43, 0xD8, 0x28, 0x43, 0xD4, 0x22, 0x3B, 0xCC, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6E, |
0x7B, 0xD1, 0xCF, 0xD0, 0xDF, 0xD7, 0xD7, 0xE0, 0xDC, 0xDB, 0xE1, 0xB3, 0xB7, 0xDA, 0x00, 0x19, |
0xC1, 0x74, 0x85, 0xE7, 0x34, 0x4F, 0xDA, 0x40, 0x57, 0xDA, 0x3E, 0x57, 0xDD, 0x90, 0xA0, 0xE9, |
0x91, 0xA1, 0xE8, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, |
0xE7, 0xF5, 0xD7, 0xE2, 0xF3, 0xE0, 0xE9, 0xF7, 0x27, 0x43, 0xD8, 0x29, 0x43, 0xD1, 0x21, 0x3B, |
0xCB, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6E, 0x7B, 0xD1, 0xCF, 0xD0, 0xDF, 0xD7, 0xD7, 0xE0, |
0xDB, 0xDA, 0xE0, 0xB2, 0xB6, 0xD9, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x2B, 0x45, 0xD8, 0x3A, |
0x52, 0xD8, 0x5E, 0x74, 0xE1, 0xA8, 0xB6, 0xEF, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDD, 0xE7, |
0xF5, 0x3A, 0x52, 0xD9, 0xD7, 0xE2, 0xF3, 0xD7, 0xE2, 0xF3, 0xDE, 0xE7, 0xF5, 0xE6, 0xED, 0xFB, |
0x5E, 0x71, 0xE1, 0x28, 0x43, 0xD0, 0x1D, 0x38, 0xCB, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6D, |
0x7A, 0xD0, 0xCE, 0xCF, 0xDE, 0xD6, 0xD6, 0xDF, 0xD9, 0xD7, 0xDB, 0xB1, 0xB4, 0xD6, 0x00, 0x19, |
0xC1, 0x74, 0x85, 0xE7, 0x2D, 0x47, 0xD8, 0x2F, 0x49, 0xD8, 0x30, 0x49, 0xD8, 0x73, 0x86, 0xE5, |
0xE1, 0xE8, 0xF9, 0xE7, 0xEE, 0xFB, 0x34, 0x4F, 0xDB, 0x34, 0x4D, 0xDA, 0x34, 0x4D, 0xD9, 0xE0, |
0xE9, 0xF7, 0xE6, 0xED, 0xFB, 0x77, 0x88, 0xE5, 0x27, 0x41, 0xD1, 0x25, 0x3F, 0xCF, 0x24, 0x3D, |
0xCF, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x79, 0xCE, 0xCD, 0xCD, 0xD9, 0xD5, 0xD4, 0xDA, |
0xD9, 0xD7, 0xDB, 0xD6, 0xD4, 0xDA, 0x86, 0x8F, 0xD1, 0x00, 0x19, 0xC1, 0x48, 0x5F, 0xDB, 0x2B, |
0x45, 0xD7, 0x28, 0x44, 0xD7, 0x2C, 0x46, 0xD8, 0x63, 0x78, 0xE2, 0x2D, 0x47, 0xD9, 0x31, 0x4B, |
0xD9, 0x31, 0x4B, 0xD8, 0x30, 0x4A, 0xD8, 0x2D, 0x47, 0xD8, 0x62, 0x78, 0xE2, 0x27, 0x41, 0xD1, |
0x25, 0x3F, 0xCF, 0x25, 0x3E, 0xD0, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x79, 0xCE, 0xB1, |
0xB4, 0xD6, 0xCF, 0xCE, 0xD9, 0xD6, 0xD4, 0xDA, 0xD9, 0xD7, 0xDB, 0xD7, 0xD5, 0xDA, 0xD3, 0xD1, |
0xDA, 0x7E, 0x88, 0xD0, 0x00, 0x19, 0xC1, 0x48, 0x5F, 0xDB, 0x26, 0x43, 0xD6, 0x27, 0x43, 0xD2, |
0x2C, 0x46, 0xD7, 0x2D, 0x47, 0xD7, 0x30, 0x49, 0xD8, 0x31, 0x4B, 0xD8, 0x2E, 0x48, 0xD8, 0x2C, |
0x46, 0xD6, 0x28, 0x43, 0xD4, 0x26, 0x43, 0xD0, 0x25, 0x3F, 0xD1, 0x48, 0x5F, 0xDB, 0x00, 0x19, |
0xC1, 0x6C, 0x78, 0xCD, 0xAD, 0xB1, 0xD6, 0xC4, 0xC5, 0xD8, 0xD3, 0xD1, 0xDA, 0xD7, 0xD5, 0xDA, |
0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD1, 0xD0, 0xDA, 0x7D, 0x87, 0xD0, 0x00, |
0x19, 0xC1, 0x48, 0x5F, 0xDB, 0x28, 0x44, 0xD7, 0x21, 0x3A, 0xCD, 0x25, 0x40, 0xCD, 0x27, 0x43, |
0xD2, 0x28, 0x43, 0xD2, 0x27, 0x43, 0xD2, 0x26, 0x41, 0xD0, 0x25, 0x3E, 0xCE, 0x1A, 0x35, 0xCA, |
0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x78, 0xCD, 0xAC, 0xB0, 0xD6, 0xC2, 0xC3, 0xD8, 0xD1, |
0xD0, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6, |
0xDA, 0xD5, 0xD4, 0xDA, 0xD1, 0xD0, 0xDA, 0x7D, 0x87, 0xD0, 0x00, 0x19, 0xC1, 0x48, 0x5F, 0xDB, |
0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, |
0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x78, 0xCD, 0xAC, 0xB0, |
0xD6, 0xC2, 0xC3, 0xD8, 0xD1, 0xD0, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB, |
0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD1, |
0xD0, 0xDA, 0x7D, 0x87, 0xD0, 0x00, 0x19, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, |
0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, |
0x6C, 0x79, 0xCE, 0xAC, 0xB0, 0xD6, 0xC2, 0xC3, 0xD8, 0xD1, 0xD0, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8, |
0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, |
0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD1, 0xD0, 0xDA, 0x87, 0x8F, 0xD1, |
0x78, 0x83, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77, |
0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0xAF, 0xB2, 0xD6, 0xC3, 0xC4, 0xD8, 0xD1, 0xD0, |
0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, |
0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8, |
0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD2, 0xD1, 0xDA, 0xC6, 0xC6, 0xD8, 0xC3, 0xC4, 0xD8, 0xC2, 0xC3, |
0xD8, 0xC2, 0xC3, 0xD8, 0xC2, 0xC3, 0xD8, 0xC2, 0xC3, 0xD8, 0xC2, 0xC3, 0xD8, 0xC3, 0xC4, 0xD8, |
0xC6, 0xC6, 0xD8, 0xD2, 0xD1, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9, |
0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, |
0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA, |
0xD6, 0xD4, 0xDA, 0xD3, 0xD2, 0xDA, 0xD3, 0xD1, 0xDA, 0xD2, 0xD1, 0xDA, 0xCB, 0xCB, 0xD9, 0xD2, |
0xD1, 0xDA, 0xD2, 0xD1, 0xDA, 0xD3, 0xD1, 0xDA, 0xD3, 0xD2, 0xDA, 0xD6, 0xD4, 0xDA, 0xD8, 0xD6, |
0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB |
}; |
/programs/cmm/browser/img/toolbar_icons.c |
---|
0,0 → 1,529 |
dword toolbar_pal[249]= {0x00E4DFE1,0x00EDE9EA,0x00C2BEC0,0x00D6DFEB,0x00E9E6E8,0x00D4B9E8,0x00C29ADA,0x00B688D7,0x005FA8ED,0x0064ABED,0x00D6D8E2,0x008A9DC3,0x00D5D7E1,0x00DCC5EC,0x00B179D7,0x00C5A4DA,0x00C9A9E2,0x00C097E1,0x00A96AD4,0x00CEB1E5,0x005BA5EB,0x007DC1F2,0x00A4DFF8,0x0060A8EB,0x00CAD9EA,0x00C4C8D8,0x005376B5,0x006482BC,0x00BBC2D4,0x00E8E4E6,0x00E5D5F2,0x00ECEBF1,0x00E1CCF0,0x00DFD0E2,0x00DDE1E9,0x006CACE9,0x0092D5F4,0x0099D6F5,0x0089CDF2,0x009ADCF6,0x005EA5E9,0x00549CE2,0x008DA8D4,0x00E1DDE0,0x00A9B2C9,0x00E4E1E2,0x00E0CDEE,0x00D1B8DC,0x0064ABE5,0x008BD3F4,0x00A9EDFC,0x007FC4F0,0x0075BCEC,0x005CA0E3,0x00C6D5E7,0x0080CBF2,0x00B3BCD2,0x005A7BB9,0x009BB2DC,0x00CFE0F2,0x00A1ADC8,0x00BB95D6,0x00D6DBE4,0x0064A4E3,0x0079C4EE,0x00839CBD,0x008D9DB1,0x0091DAF6,0x00A6B1C8,0x00A5BBE1,0x00C4D6ED,0x00D3E2F3,0x0092A2C4,0x00E1D4E3,0x009FE6F9,0x0085A2C2,0x00F0EFF0,0x0099A8BC,0x005298DC,0x004B982C,0x00ACC2E4,0x00CDDEF1,0x00BCD1EB,0x00DCDDE2,0x00909FC0,0x00AC78D4,0x005A9BDC,0x0097E0F7,0x006CB7E9,0x00F7F7F8,0x00F8F8F9,0x0096A6BA,0x004690D7,0x0083D0F3,0x004B93DA,0x00DCD9DC,0x00AEE594,0x00A2ADC6,0x00A2B8DF,0x00B9CEE9,0x00B2C8E7,0x00AEB8CE,0x00D4D4DA,0x00CCB3D5,0x00D9CCDB,0x0073C1ED,0x0065B3E7,0x00F5F4F4,0x00EDECEE,0x009AAAC1,0x007DCCF2,0x004590D8,0x00D1CED1,0x00C2C2C8,0x00BFC0C6,0x007BD34A,0x00607EB9,0x00B6CBE8,0x00B0C5E6,0x00CDD2DC,0x00E3E1DF,0x00909EBF,0x00DDC3F0,0x00D2D7E0,0x005193D5,0x006BBBEA,0x005FB0E5,0x00EAEAEC,0x00408AD3,0x0079C7F0,0x00BBCADD,0x008A94A7,0x00737D90,0x00428F25,0x00A4DD8E,0x0073CC45,0x0067C833,0x00CED1D6,0x00A9BEE3,0x00D8C5DD,0x004C8FD2,0x005BAAE2,0x00DAD6D8,0x00C3C0C3,0x003B84CE,0x003C86D0,0x00BDBCC2,0x00519D31,0x00B4EB9A,0x0083DA51,0x0073D33C,0x00B9BECE,0x00CCCCD4,0x00E1DBDC,0x00E3D2EF,0x00488BCF,0x0056A5E0,0x006582A4,0x00E9E8EA,0x00B9B8B8,0x00D9EDED,0x00D8F6F6,0x00B3B2B2,0x008696AD,0x003782CD,0x006FC0ED,0x00B8C7DB,0x00E5E8EE,0x0080D74F,0x005578B7,0x00A1B6DE,0x008597BF,0x00D5C4D8,0x004688CC,0x0050A2DE,0x007895B6,0x00AEADAE,0x00317BC7,0x00337DC9,0x006B8AC2,0x0099AFDA,0x00738BBB,0x00C6C8D2,0x00D6CBD8,0x009AB5D4,0x002877C7,0x004D9FDC,0x00D2D0D5,0x00798AA0,0x0073A0CF,0x00E3E5EC,0x008096C1,0x006887BE,0x00BEC1CD,0x0096B1D0,0x009D9CA2,0x00ECEAEC,0x00EDAC35,0x00EBA525,0x00B6C3D6,0x007AA3CF,0x00B4B5BB,0x0096ADD9,0x00D2C4D6,0x00D9D3D4,0x00AF85D2,0x00A3A2A7,0x00F8EE27,0x00E89D1A,0x009A989F,0x00CCCFDD,0x008499C3,0x00C8C3C5,0x007890BF,0x00A09FA5,0x00E6E3E4,0x00E39C28,0x00F8EA2F,0x00F5E22C,0x00E3961A,0x0098969C,0x007591C6,0x00DB9326,0x00F7DE38,0x00F5D435,0x00F7E13A,0x00DC8E19,0x00939298,0x007996C9,0x00B4BBCB,0x007A94C3,0x00D58A24,0x00F4D545,0x00F4C741,0x00BD6516,0x00D68517,0x00929097,0x008DA1C6,0x00C4C5D1,0x00CDCBCE,0x00CE8223,0x00F5CA56,0x00F3C943,0x00CF7D17,0x008F8D94,0x00A8ABB5,0x0089888F,0x009BA9C9,0x0084838A}; |
unsigned char toolbar[8400] = { |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x05, 0x06, 0x07, 0x05, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, |
0x08, 0x09, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x0B, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0B, |
0x0C, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x0D, 0x0E, 0x07, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x14, 0x15, 0x16, 0x17, 0x18, 0x01, 0x01, 0x03, 0x03, |
0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x19, 0x1A, |
0x1B, 0x0C, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1B, 0x1A, 0x1C, 0x1D, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x11, 0x0E, 0x10, 0x1E, 0x1F, 0x1F, 0x1F, 0x20, 0x10, |
0x07, 0x21, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x22, 0x23, 0x24, |
0x25, 0x26, 0x27, 0x28, 0x18, 0x01, 0x17, 0x17, 0x17, 0x29, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, |
0x04, 0x04, 0x04, 0x04, 0x04, 0x1C, 0x1A, 0x2A, 0x1B, 0x1C, 0x2B, 0x04, 0x04, 0x04, 0x04, 0x04, |
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1B, |
0x2A, 0x1A, 0x2C, 0x2D, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x07, |
0x05, 0x1E, 0x1E, 0x1E, 0x2E, 0x05, 0x10, 0x13, 0x13, 0x07, 0x2F, 0x04, 0x04, 0x04, 0x04, 0x04, |
0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, |
0x04, 0x04, 0x04, 0x04, 0x03, 0x30, 0x31, 0x32, 0x33, 0x34, 0x24, 0x27, 0x35, 0x36, 0x17, 0x32, |
0x37, 0x29, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, |
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x38, 0x39, 0x3A, 0x3B, |
0x1B, 0x38, 0x0A, 0x1D, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, |
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1D, 0x1B, 0x3B, 0x3A, 0x39, 0x3C, 0x2D, 0x04, 0x04, 0x04, |
0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, |
0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x0E, 0x13, 0x2E, 0x1E, 0x2E, 0x0F, 0x3D, 0x3D, 0x3D, 0x0F, |
0x06, 0x07, 0x0E, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x3E, 0x3F, 0x26, 0x32, 0x40, |
0x41, 0x42, 0x29, 0x24, 0x43, 0x29, 0x17, 0x32, 0x37, 0x29, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, |
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, |
0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, |
0x1D, 0x1D, 0x1D, 0x44, 0x39, 0x45, 0x46, 0x47, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, |
0x1B, 0x1B, 0x1B, 0x2B, 0x2D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, |
0x47, 0x46, 0x45, 0x39, 0x48, 0x2B, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x21, 0x12, 0x0F, 0x0D, |
0x1E, 0x2E, 0x3D, 0x07, 0x2F, 0x21, 0x49, 0x2B, 0x1D, 0x1D, 0x2B, 0x21, 0x1D, 0x1D, 0x1D, 0x1D, |
0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, |
0x04, 0x04, 0x3E, 0x35, 0x37, 0x4A, 0x34, 0x4B, 0x1D, 0x4C, 0x4D, 0x4E, 0x31, 0x31, 0x4E, 0x32, |
0x37, 0x29, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, |
0x1D, 0x1D, 0x1D, 0x4F, 0x4F, 0x4F, 0x4F, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x3C, 0x39, 0x50, 0x46, 0x46, 0x51, |
0x47, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x52, 0x1B, 0x1C, 0x53, 0x1D, 0x1D, 0x1D, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x1B, 0x52, 0x3B, |
0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x47, 0x51, 0x46, 0x46, 0x50, 0x39, 0x54, 0x53, 0x1D, |
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, |
0x1D, 0x2F, 0x21, 0x2B, 0x12, 0x07, 0x20, 0x20, 0x20, 0x3D, 0x55, 0x2F, 0x21, 0x1D, 0x1D, 0x1D, |
0x1D, 0x1D, 0x1D, 0x07, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x3E, 0x56, 0x40, 0x57, 0x58, 0x4B, 0x2B, |
0x59, 0x5A, 0x4C, 0x5B, 0x5C, 0x5D, 0x5D, 0x5E, 0x37, 0x29, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x5F, 0x5F, 0x5F, 0x5F, |
0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x4F, 0x60, 0x60, 0x4F, 0x5F, |
0x2B, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x2D, |
0x2D, 0x61, 0x39, 0x62, 0x46, 0x52, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, |
0x63, 0x64, 0x1B, 0x65, 0x66, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x2D, 0x2D, 0x2D, 0x2D, 0x1B, 0x64, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, |
0x63, 0x63, 0x52, 0x46, 0x62, 0x39, 0x54, 0x5F, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x0E, 0x07, 0x10, 0x12, 0x05, 0x1E, 0x05, |
0x13, 0x55, 0x67, 0x68, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2F, 0x0E, 0x07, 0x12, 0x2D, 0x2D, 0x2D, |
0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, |
0x0C, 0x4E, 0x69, 0x43, 0x6A, 0x4B, 0x2B, 0x6B, 0x5A, 0x5A, 0x5A, 0x6C, 0x6D, 0x5C, 0x6E, 0x37, |
0x6F, 0x29, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x2D, 0x2D, 0x2D, 0x70, 0x71, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, |
0x72, 0x4F, 0x4F, 0x4F, 0x60, 0x73, 0x4F, 0x4F, 0x4F, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x2D, 0x61, 0x74, 0x45, 0x63, 0x75, 0x64, 0x75, 0x75, |
0x75, 0x63, 0x75, 0x75, 0x63, 0x63, 0x63, 0x63, 0x76, 0x75, 0x1B, 0x2C, 0x77, 0x2D, 0x2D, 0x2D, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x78, 0x1B, 0x75, 0x76, |
0x63, 0x63, 0x63, 0x63, 0x75, 0x75, 0x63, 0x75, 0x75, 0x75, 0x75, 0x75, 0x63, 0x45, 0x74, 0x79, |
0x5F, 0x2D, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, |
0x67, 0x12, 0x3D, 0x0E, 0x0F, 0x1E, 0x7A, 0x05, 0x10, 0x0E, 0x68, 0x2D, 0x2D, 0x2D, 0x2D, 0x2F, |
0x0E, 0x07, 0x06, 0x05, 0x0E, 0x10, 0x2D, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x2D, 0x7B, 0x7C, 0x7D, 0x31, 0x7E, 0x4B, 0x5F, 0x6B, 0x59, |
0x5A, 0x59, 0x59, 0x6B, 0x7F, 0x5B, 0x80, 0x81, 0x81, 0x80, 0x82, 0x2D, 0x2D, 0x2D, 0x2D, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x72, 0x83, 0x84, 0x84, 0x84, |
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x85, 0x86, 0x86, 0x87, 0x87, 0x87, 0x88, |
0x4F, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x61, |
0x1B, 0x45, 0x63, 0x76, 0x76, 0x76, 0x64, 0x64, 0x64, 0x64, 0x76, 0x64, 0x64, 0x75, 0x75, 0x75, |
0x76, 0x75, 0x1B, 0x2C, 0x89, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x2D, 0x2D, 0x2D, 0x2B, 0x1B, 0x75, 0x76, 0x75, 0x75, 0x75, 0x75, 0x64, 0x76, 0x64, 0x64, |
0x64, 0x64, 0x76, 0x76, 0x76, 0x63, 0x8A, 0x1B, 0x79, 0x5F, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2F, 0x07, 0x0D, 0x0D, 0x1E, 0x20, 0x7A, 0x0D, |
0x11, 0x07, 0x8B, 0x2D, 0x2D, 0x8B, 0x0E, 0x07, 0x0F, 0x0D, 0x20, 0x1E, 0x11, 0x55, 0x78, 0x2D, |
0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7B, 0x8C, |
0x58, 0x5D, 0x8D, 0x41, 0x8E, 0x6B, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x4C, 0x04, 0x42, 0x90, |
0x69, 0x69, 0x91, 0x82, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x2D, 0x2D, 0x2D, 0x92, 0x84, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, |
0x59, 0x93, 0x94, 0x95, 0x95, 0x95, 0x96, 0x88, 0x4F, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x97, 0x1A, 0x50, 0x63, 0x45, 0x50, 0x50, 0x50, 0x50, 0x50, |
0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x76, 0x45, 0x75, 0x1B, 0x2C, 0x98, 0x2B, 0x2B, 0x2B, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x2B, 0x99, 0x1B, 0x75, 0x45, |
0x76, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x45, 0x63, 0x50, |
0x1A, 0x3C, 0x5F, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, |
0x5F, 0x0E, 0x11, 0x0D, 0x9A, 0x0D, 0x05, 0x0D, 0x07, 0x0E, 0x07, 0x2B, 0x67, 0x0E, 0x3D, 0x05, |
0x0D, 0x0D, 0x0D, 0x9A, 0x0D, 0x0E, 0x0F, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x2B, 0x2B, 0x77, 0x9B, 0x6A, 0x5D, 0x9C, 0x9D, 0x8E, 0x9E, 0x6B, 0x9F, 0x6B, |
0x89, 0xA0, 0xA1, 0xA2, 0x7F, 0x9E, 0x2D, 0xA3, 0xA4, 0xA5, 0xA5, 0xA4, 0xA6, 0x00, 0x00, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x2B, 0x92, 0x84, 0x59, 0xA7, 0xA7, |
0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0x93, 0x93, 0x93, 0xA8, 0x96, 0x93, 0x85, |
0x4F, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x61, 0xA9, |
0x75, 0x76, 0x62, 0x3A, 0x3A, 0x62, 0x8A, 0x8A, 0xAA, 0x45, 0x3A, 0x62, 0x45, 0x45, 0x45, 0x45, |
0x45, 0x63, 0x1B, 0x44, 0x98, 0x99, 0x99, 0x99, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x99, 0x99, 0x99, 0x5F, 0x1B, 0x63, 0x45, 0x45, 0x8A, 0x45, 0x45, 0x62, 0x3A, 0x45, 0xAA, |
0x8A, 0x8A, 0x62, 0x3A, 0x3A, 0x62, 0x76, 0x75, 0xA9, 0xAB, 0x98, 0x5F, 0x99, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0x67, 0x55, 0x05, 0x2E, 0x05, 0x05, 0x05, |
0x10, 0x0E, 0x12, 0x06, 0x99, 0x3D, 0x07, 0x11, 0x0D, 0x0D, 0x2E, 0x9A, 0x0D, 0x11, 0x55, 0xAC, |
0x99, 0x99, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0xAD, 0x7E, 0x6E, |
0xAE, 0xAF, 0x8E, 0x04, 0x4C, 0x59, 0x9F, 0xA2, 0xA2, 0xA2, 0xA2, 0xB0, 0x2D, 0x2D, 0x1D, 0x2B, |
0xA3, 0xB1, 0x7D, 0x7D, 0xB2, 0x99, 0x99, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x99, 0x99, 0x99, 0x92, 0x84, 0x59, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, |
0xA7, 0xA7, 0xA7, 0x93, 0x96, 0x96, 0x93, 0x84, 0x92, 0x99, 0x99, 0x99, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0xAB, 0xB3, 0x76, 0x76, 0x45, 0xB4, 0x45, 0x8A, 0x45, |
0x3A, 0xAA, 0x3A, 0x62, 0xAA, 0x3A, 0x3A, 0xAA, 0x62, 0x63, 0x1B, 0x44, 0x98, 0x99, 0x99, 0x99, |
0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0x5F, 0x1B, 0x63, 0x62, |
0xAA, 0x3A, 0x3A, 0xAA, 0x62, 0x3A, 0xAA, 0x3A, 0x45, 0x8A, 0x45, 0xB4, 0x45, 0x76, 0x76, 0xB3, |
0xB5, 0x65, 0xB6, 0x5F, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, |
0x99, 0x99, 0x0E, 0x07, 0x20, 0x0D, 0x13, 0x07, 0x55, 0x12, 0x0F, 0xB7, 0x99, 0x99, 0x07, 0x10, |
0x2E, 0x7A, 0x20, 0x1E, 0x0D, 0x0D, 0x07, 0x0F, 0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x99, 0x99, 0xB8, 0xB9, 0xBA, 0x9D, 0xBB, 0x2D, 0x4C, 0x6B, 0x4C, 0x4C, 0x4C, |
0x4C, 0x7F, 0x2D, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2D, 0xBC, 0xB1, 0xAE, 0xBD, 0x99, 0x99, 0x8F, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0x92, 0x84, 0x59, 0xBE, 0xBE, |
0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0x93, 0x93, 0x93, 0x93, 0x84, |
0x92, 0x99, 0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0x8E, |
0xBF, 0xC0, 0x8A, 0x76, 0x45, 0x50, 0x76, 0x50, 0xAA, 0x62, 0xAA, 0x45, 0x45, 0xAA, 0x3A, 0xB4, |
0xAA, 0x52, 0x1B, 0x44, 0x98, 0x99, 0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x99, 0x99, 0x99, 0x5F, 0x1B, 0x52, 0xAA, 0xB4, 0x3A, 0xAA, 0x45, 0x45, 0xAA, 0x62, 0xAA, |
0x50, 0x76, 0x50, 0x45, 0x76, 0x8A, 0xC0, 0xB5, 0x44, 0xC1, 0x66, 0x99, 0x99, 0x8F, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0x99, 0x2F, 0x0E, 0x13, 0x07, 0x55, 0x12, |
0x06, 0xAC, 0xAC, 0x99, 0x99, 0x99, 0x07, 0x13, 0x0D, 0x7A, 0x1E, 0x3D, 0x0E, 0x07, 0x12, 0x06, |
0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0xC2, 0xC2, |
0xC3, 0xC4, 0x6C, 0x6B, 0x4C, 0x4C, 0xC5, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x5F, 0x5F, 0x5F, 0x5F, |
0x04, 0xC3, 0xC7, 0xC8, 0x99, 0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x99, 0x99, 0x99, 0xC9, 0x84, 0x59, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, |
0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x59, 0x84, 0xC9, 0x99, 0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xBF, 0xB3, 0x8A, 0x76, 0x50, 0x64, 0x76, |
0x8A, 0xAA, 0x3A, 0x45, 0x8A, 0x45, 0xAA, 0xCA, 0xCA, 0x52, 0x1B, 0x61, 0xB6, 0x8E, 0x8E, 0x99, |
0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x1B, 0x52, 0xCA, |
0xCA, 0xAA, 0x45, 0x8A, 0x45, 0x3A, 0xAA, 0x8A, 0x76, 0x64, 0x50, 0x76, 0x8A, 0xB3, 0xB5, 0x61, |
0x97, 0xBB, 0x8E, 0x8E, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x12, 0x55, 0x12, 0x3D, 0x67, 0xCB, 0xCC, 0x8E, 0x8E, 0x8E, 0xCB, 0x07, 0x05, |
0x0D, 0x9A, 0x13, 0x55, 0x3D, 0xCD, 0x0E, 0x67, 0x5F, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x8E, 0x99, 0x99, 0x99, 0xCC, 0xCE, 0x6B, 0x4C, 0x6C, 0x6C, 0xC4, 0xC6, 0xCF, |
0xCF, 0xCF, 0xCF, 0xD0, 0x66, 0x66, 0x66, 0x66, 0x1D, 0xD1, 0x99, 0x99, 0x99, 0x99, 0x99, 0x8F, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0xC9, 0x84, 0x59, 0xD2, 0xD2, |
0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0x59, 0x84, |
0xC9, 0x8E, 0x8E, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0xBB, 0xD3, 0xB3, 0x45, 0x76, 0x76, 0x63, 0x63, 0x63, 0x75, 0x75, 0x75, 0x64, 0x64, 0x76, |
0x76, 0x50, 0x1B, 0x61, 0xB6, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x1B, 0x50, 0x76, 0x76, 0x64, 0x64, 0x75, 0x75, 0x75, 0x63, 0x63, |
0x63, 0x76, 0x76, 0x45, 0xB3, 0xD5, 0x61, 0x97, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x55, 0x67, 0xCB, 0xCC, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x07, 0x06, 0x9A, 0x20, 0x0D, 0x3D, 0x55, 0x67, 0x67, 0x06, 0xB7, |
0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, |
0xD6, 0x4C, 0x2D, 0x2D, 0xD7, 0x1D, 0xD8, 0xD9, 0xDA, 0xDA, 0xD9, 0xDB, 0xBB, 0xBB, 0xBB, 0xBB, |
0x2D, 0xDC, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x8E, 0x8E, 0x8E, 0xC9, 0x84, 0x1F, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, |
0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x84, 0xC9, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0x0B, 0xDD, 0xAA, 0x76, 0x64, |
0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x44, 0xB6, 0x8E, 0x8E, 0x8E, |
0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x1B, 0x1B, 0x1B, |
0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x64, 0x76, 0xAA, 0xDD, 0xD5, 0x61, 0x97, 0xBB, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xCC, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xB7, 0x3D, 0x0F, 0x1E, 0x1E, |
0x0D, 0x0F, 0xCD, 0x0F, 0xCB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xC3, 0xC4, 0x2B, 0x2B, 0x2B, 0x2B, 0xDE, 0xDF, |
0xE0, 0xE0, 0xE1, 0xE2, 0xBB, 0xBB, 0xBB, 0xBB, 0x2B, 0xE3, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xD4, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0xC9, 0x84, 0xA7, 0x19, 0x19, |
0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0xA7, 0x84, |
0xC9, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0xBB, 0x0B, 0xE4, 0x3A, 0x76, 0x1B, 0x6D, 0x61, 0x44, 0x2C, 0x2C, 0x2C, 0x2C, |
0x2C, 0x2C, 0x2C, 0x65, 0xBB, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xE5, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, 0x44, 0x1B, |
0x76, 0x3A, 0xE4, 0xE6, 0x61, 0x97, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x07, 0x3D, 0x0F, |
0x67, 0x0F, 0x3D, 0x06, 0x10, 0x1E, 0x1E, 0x0D, 0x10, 0xCD, 0x3D, 0xCB, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, |
0xD1, 0x9E, 0x5F, 0x5F, 0x5F, 0x5F, 0xE7, 0xE8, 0xE9, 0xE9, 0xEA, 0xEB, 0xBB, 0xBB, 0xBB, 0xBB, |
0x5F, 0xEC, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x8E, 0x8E, 0x8E, 0xC9, 0x84, 0xA7, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, |
0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0xA7, 0x84, 0xC9, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xED, 0xE4, 0xB4, |
0x1B, 0x61, 0xEE, 0xB6, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x89, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0x89, |
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x1B, 0xB4, 0xE4, 0xBF, 0x61, 0x97, 0xBB, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x06, 0x07, 0x06, 0x0F, 0x0F, 0x05, 0x0D, 0x9A, 0x1E, 0x2E, 0x13, |
0x07, 0xCD, 0xCB, 0x68, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xEF, 0xDC, 0x1D, 0x66, 0x66, 0x66, 0x66, 0xF0, 0xF1, |
0xF2, 0xF2, 0xF1, 0xF3, 0xBB, 0xBB, 0xBB, 0xBB, 0x5F, 0xF4, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x71, 0xF5, 0x84, 0x19, 0x19, 0x19, |
0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x84, |
0xF5, 0x71, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xED, 0xE4, 0x1B, 0x2C, 0x98, 0x66, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x66, 0x1B, |
0xE4, 0xD3, 0x61, 0x97, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x0F, 0x3D, |
0x0F, 0x05, 0x2E, 0x1E, 0x9A, 0x0D, 0x0F, 0x07, 0x07, 0xCB, 0xB7, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x70, |
0xE3, 0x5F, 0xBB, 0xBB, 0xBB, 0xBB, 0xF0, 0xF2, 0xF2, 0xF2, 0xF2, 0xF0, 0xBB, 0xBB, 0xBB, 0xBB, |
0x5F, 0xF6, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x8E, 0x8E, 0xF5, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, |
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0xF5, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xF7, |
0xBF, 0xE5, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xED, 0x48, 0x2C, 0xC1, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xB7, 0x3D, 0x3D, 0x06, 0x0F, 0x0F, 0x3D, 0xCD, 0x0F, |
0xCB, 0xB7, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xCC, 0xE3, 0x8F, 0x5F, 0x5F, 0x5F, 0x5F, 0xF0, 0xF0, |
0xF0, 0xF0, 0xF0, 0xF0, 0x5F, 0x5F, 0x5F, 0x5F, 0x8F, 0xE3, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xCC, 0xCC, 0xCC, 0xCC, |
0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, |
0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0x97, 0xEE, 0x66, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xB6, |
0xEE, 0xB6, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x0F, 0x07, 0x07, 0x3D, 0x3D, 0x67, 0xCB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0xCE, 0xE3, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, |
0xE3, 0xDC, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x66, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x66, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x68, 0xB7, 0xB7, 0xCC, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, |
0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, |
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, |
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, |
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, |
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, |
0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, |
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, |
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, |
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
}; |
/programs/cmm/browser/img/toolbar_icons.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/browser/img |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/cmm/browser/include/acid_0.1.htm |
---|
0,0 → 1,131 |
<!--doctype html public "-//w3c//dtd html 4.0 transitional//ru"--> |
<html> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> |
<title>Òåñò Acid 0.1</title> |
</head> |
<body bgcolor="#000000" link="#0066FF" text="#FFFFFF"> |
<img src="background.gif" alt="background"> |
<b>Ýòî òåñòîâàÿ ñòðàíèöà äëÿ ïðîâåðêè HTML Viewer</b><br /> |
<br /> |
Ýòà ïðîãðàììà ïîääåðæèâàåò âñå ïîïóëÿðíûå êîäèðîâêè: cp1251, koi-8, cp866, Unicode.<br><br> |
<b> |
<font color="#FF0000">C</font> |
<font color="#FFC005">r</font> |
<font color="#F6F574">e</font> |
<font color="#9EFC36">a</font> |
<font color="#29FDFD">t</font> |
<font color="#36A8FC">e</font> |
<font color="blueviolet">d </font> |
<font color="#C911FF">b</font> |
<font color= #C911FF >y </font> |
<font color="#C911FF">L</font> |
<font color="#36A8FC">e</font> |
<font color="#29FDFD">e</font> |
<font color="#9EFC36">n</font> |
<font color="#FFC005">c</font> |
<font color="red">y</font><br> |
</b> |
Æèòîìèð 2008-2012 |
<p> |
Íåáîëüøîé ñïèñîê:<ol> |
<li><q>Ýòîò òåêñò â êàâû÷êàõ</q></li> |
<li><u>Ýòî ïîä÷åðêíóòûé òåêñò</u></li> |
<li><s>Ýòî ïåðå÷åðêíóòûé òåêñò</s></li> |
<li><i>Ýòî íàêëîííûé òåêñò</i></li> |
<li><strong>Ýòî òåêñò ñ óñèëåííûì âûäåëåíèåì</strong></li> |
<li><b><u><s><font color="#6495ED">Êó÷à òåãîâ</font></s></u></b></ol> |
</p> |
<br> |
<pre> |
Àòü! |
Äâà! |
Òðè! |
Àâòîð ñåãî òâîðåíèÿ íå èçâåñòåí. |
</pre> |
<!--ýòîãî òåêñòà çäåñü <íåò>--> |
<font color=#777777> |
<a href='/SYS/index.htm'>Index.htm</a><br> |
<a href='./index.htm'>Index.htm</a><br> |
<a href='/sys/index.htm'>Íåçàêðûòûé òåã à - Index.htm<br> |
<a href="/sys/kernel.mnt">Kernel.mnt</a><br> |
<a href="index.htm#2.1.4">index.htm#2.1.4</a><br> |
<a href="http://bash.im">http://bash.im</a><br> |
<a href="mailto:leency@mail.ru">Mail to leency</a><br> |
<a href="#2.1.4">#2.1.4</a><br> |
<a href="background.gif">Ôîíîâàÿ êàðòèíêà</a><br> |
</font> |
<a href='1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
1111111111111111111111111111111111111111111111111111111111111111 |
'>Î÷åíü äëèííûé àäðåñ ñòðîêè</a><br> |
<hr color="#758999"> |
 ýòîì òåêñòå åñòü ïåðåõîä íà ñëåäóþùóþ ñòðîêó, íî áðàóçåð |
åãî äîëæåí ïðîèãíîðèðîâàòü. Åùå ìíîãî ïðîáåëîâ. À òóò åñòü |
òàáû. Êîå-êàêèå ñèìâîëû: " & < > • © ® „ “ — ¯æà÷îê ³íøîãî áîêó ð. ªâôðàò ç'¿â ´ðóíò òà ºâðåéñüêèé ´åðáàëàéô. |
<hr color="grey"> |
</body> |
</html> |
/programs/cmm/browser/include/colors.h |
---|
0,0 → 1,193 |
//Íàäî áóäåò ïåðåäåëàòü íà "äåðåâî ïîèñêà" èëè, ÷òî-òî ïîäîáíîå |
//áóäåò íå÷èòàáåëüíî, çàòî ìåíüøå è áûñòåå |
struct color_spec { |
char *name; |
int rgb; |
}; |
struct color_spec color_specs[] = { |
"aliceblue", 0xF0F8FF, |
"antiquewhite", 0xFAEBD7, |
"aqua", 0x00FFFF, |
"aquamarine", 0x7FFFD4, |
"azure", 0xF0FFFF, |
"beige", 0xF5F5DC, |
"bisque", 0xFFE4C4, |
"black", 0x000000, |
"blanchedalmond",0xFFEBCD, |
"blue", 0x0000FF, |
"blueviolet", 0x8A2BE2, |
"brown", 0xA52A2A, |
"burlywood", 0xDEB887, |
"cadetblue", 0x5F9EA0, |
"chartreuse", 0x7FFF00, |
"chocolate", 0xD2691E, |
"coral", 0xFF7F50, |
"cornflowerblue",0x6495ED, |
"cornsilk", 0xFFF8DC, |
"crimson", 0xDC143C, |
"cyan", 0x00FFFF, |
"darkblue", 0x00008B, |
"darkcyan", 0x008B8B, |
"darkgoldenrod", 0xB8860B, |
"darkgray", 0xA9A9A9, |
"darkgreen", 0x006400, |
"darkkhaki", 0xBDB76B, |
"darkmagenta", 0x8B008B, |
"darkolivegreen",0x556B2F, |
"darkorange", 0xFF8C00, |
"darkorchid", 0x9932CC, |
"darkred", 0x8B0000, |
"darksalmon", 0xE9967A, |
"darkseagreen", 0x8FBC8F, |
"darkslateblue", 0x483D8B, |
"darkslategray", 0x2F4F4F, |
"darkturquoise", 0x00CED1, |
"darkviolet", 0x9400D3, |
"deeppink", 0xFF1493, |
"deepskyblue", 0x00BFFF, |
"dimgray", 0x696969, |
"dodgerblue", 0x1E90FF, |
"firebrick", 0xB22222, |
"floralwhite", 0xFFFAF0, |
"forestgreen", 0x228B22, |
"fuchsia", 0xFF00FF, |
"gainsboro", 0xDCDCDC, |
"ghostwhite", 0xF8F8FF, |
"gold", 0xFFD700, |
"goldenrod", 0xDAA520, |
"gray", 0x808080, |
"green", 0x008000, |
"greenyellow", 0xADFF2F, |
"honeydew", 0xF0FFF0, |
"hotpink", 0xFF69B4, |
"indianred", 0xCD5C5C, |
"indigo", 0x4B0082, |
"ivory", 0xFFFFF0, |
"khaki", 0xF0E68C, |
"lavender", 0xE6E6FA, |
"lavenderblush", 0xFFF0F5, |
"lawngreen", 0x7CFC00, |
"lemonchiffon", 0xFFFACD, |
"lightblue", 0xADD8E6, |
"lightcoral", 0xF08080, |
"lightcyan", 0xE0FFFF, |
"lightgoldenrodyellow", 0xFAFAD2, |
"lightgreen", 0x90EE90, |
"lightgrey", 0xD3D3D3, |
"lightpink", 0xFFB6C1, |
"lightsalmon", 0xFFA07A, |
"lightseagreen", 0x20B2AA, |
"lightskyblue", 0x87CEFA, |
"lightslategray",0x778899, |
"lightsteelblue",0xB0C4DE, |
"lightyellow", 0xFFFFE0, |
"lime", 0x00FF00, |
"limegreen", 0x32CD32, |
"linen", 0xFAF0E6, |
"magenta", 0xFF00FF, |
"maroon", 0x800000, |
"mediumaquamarine",0x66CDAA, |
"mediumblue", 0x0000CD, |
"mediumorchid", 0xBA55D3, |
"mediumpurple", 0x9370DB, |
"mediumseagreen",0x3CB371, |
"mediumslateblue",0x7B68EE, |
"mediumspringgreen",0x00FA9A, |
"mediumturquoise",0x48D1CC, |
"mediumvioletred",0xC71585, |
"midnightblue", 0x191970, |
"mintcream", 0xF5FFFA, |
"mistyrose", 0xFFE4E1, |
"moccasin", 0xFFE4B5, |
"navajowhite", 0xFFDEAD, |
"navy", 0x000080, |
"oldlace", 0xFDF5E6, |
"olive", 0x808000, |
"olivedrab", 0x6B8E23, |
"orange", 0xFFA500, |
"orangered", 0xFF4500, |
"orchid", 0xDA70D6, |
"palegoldenrod", 0xEEE8AA, |
"palegreen", 0x98FB98, |
"paleturquoise", 0xAFEEEE, |
"palevioletred", 0xDB7093, |
"papayawhip", 0xFFEFD5, |
"peachpuff", 0xFFDAB9, |
"peru", 0xCD853F, |
"pink", 0xFFC0CB, |
"plum", 0xDDA0DD, |
"powderblue", 0xB0E0E6, |
"purple", 0x800080, |
"red", 0xFF0000, |
"rosybrown", 0xBC8F8F, |
"royalblue", 0x4169E1, |
"saddlebrown", 0x8B4513, |
"salmon", 0xFA8072, |
"sandybrown", 0xF4A460, |
"seagreen", 0x2E8B57, |
"seashell", 0xFFF5EE, |
"sienna", 0xA0522D, |
"silver", 0xC0C0C0, |
"skyblue", 0x87CEEB, |
"slateblue", 0x6A5ACD, |
"slategray", 0x708090, |
"snow", 0xFFFAFA, |
"springgreen", 0x00FF7F, |
"steelblue", 0x4682B4, |
"tan", 0xD2B48C, |
"teal", 0x008080, |
"thistle", 0xD8BFD8, |
"tomato", 0xFF6347, |
"turquoise", 0x40E0D0, |
"violet", 0xEE82EE, |
"wheat", 0xF5DEB3, |
"white", 0xFFFFFF, |
"whitesmoke", 0xF5F5F5, |
"yellow", 0xFFFF00, |
"yellowgreen", 0x9ACD32, |
0}; |
dword StrToCol(char* htmlcolor) |
{ |
dword j=1, |
color=0, |
textlen=0; |
char ch=0x00; |
if (ESBYTE[htmlcolor]<>'#') return text_colors[0]; |
textlen = strlen(htmlcolor); |
if (textlen==7) || (textlen==4) |
{ |
FOR (; j<textlen; j++) |
{ |
ch=ESBYTE[htmlcolor+j]; |
IF ((ch>='0') && (ch<='9')) ch -= '0'; |
IF ((ch>='A') && (ch<='F')) ch -= 'A'-10; |
IF ((ch>='a') && (ch<='f')) ch -= 'a'-10; |
color = color*0x10 + ch; |
if (textlen==4) color = color*0x10 + ch; //#abc ->> #aabbcc (ñëàâà âèêèïåäèè!!1) |
} |
return color; |
} |
return text_colors[0]; |
} |
dword GetColor(char* color_str) |
{ |
int ii; |
if (ESBYTE[color_str] == '#') |
return StrToCol(color_str); |
else |
for (ii=0; color_specs[ii].name!=0; ii++) |
{ |
if (!strcmp(color_str, color_specs[ii].name)) return color_specs[ii].rgb; |
} |
return text_colors[0]; |
} |
/programs/cmm/browser/include/history.h |
---|
0,0 → 1,59 |
struct UrlsHistory { |
dword CurrentUrl(); |
void AddUrl(); |
byte GoBack(); |
byte GoForward(); |
}; |
UrlsHistory BrowserHistory; |
struct path_string { |
char Item[4096]; |
}; |
#define MAX_HISTORY_NUM 40 |
path_string history_list[MAX_HISTORY_NUM]; |
int history_num; |
int history_current; |
dword UrlsHistory::CurrentUrl() |
{ |
return #history_list[history_current].Item; |
} |
void UrlsHistory::AddUrl() //òóò íóæåí ââîäèìûé ýëåìåíò - äëÿ óíèâåðñàëüíîñòè |
{ |
int i; |
if (history_num>0) && (!strcmp(#URL,#history_list[history_current].Item)) return; |
if (history_current>=MAX_HISTORY_NUM-1) |
{ |
history_current/=2; |
for (i=0; i<history_current; i++;) |
{ |
strcpy(#history_list[i].Item, #history_list[MAX_HISTORY_NUM-i].Item); |
} |
} |
history_current++; |
strcpy(#history_list[history_current].Item, #URL); |
history_num=history_current; |
} |
byte UrlsHistory::GoBack() |
{ |
if (history_current<=1) return 0; |
history_current--; |
strcpy(#URL, #history_list[history_current].Item); |
return 1; |
} |
byte UrlsHistory::GoForward() |
{ |
if (history_current==history_num) return 0; |
history_current++; |
strcpy(#URL, #history_list[history_current].Item); |
return 1; |
} |
/programs/cmm/browser/include/menu_rmb.h |
---|
0,0 → 1,99 |
//Leency - 2012 |
#define ITEM_HEIGHT 18 |
#define ITEM_WIDTH 138 |
char *ITEMS_LIST[]={ |
"View in Tinypad F3",52, |
"WIN F5",REFRESH, |
"DOS Ctrl+D",04, |
"KOI Ctrl+K",11, |
"UTF Ctrl+U",21, |
"Line breaks ON" ,01, |
"Free image cache" ,02, |
"TrueType fonts" ,05, |
0}; |
proc_info MenuForm; |
void menu_rmb() |
{ |
mouse mm; |
int items_num, items_cur; |
int id1, key, i; |
SetEventMask(100111b); |
loop() switch(WaitEvent()) |
{ |
case evMouse: |
mm.get(); |
GetProcessInfo(#MenuForm, SelfInfo); |
id1=GetProcessSlot(MenuForm.ID); |
if (id1<>GetActiveProcess()) ExitProcess(); |
id1=mm.y/ITEM_HEIGHT; |
if (id1<0) || (id1+1>items_num) || (mm.x<0) || (mm.x>ITEM_WIDTH) break; |
if (mm.lkm) || (mm.pkm) |
{ |
WB1.Scan(ITEMS_LIST[items_cur*2+1]); |
ExitProcess(); |
} |
if (items_cur<>id1) |
{ |
items_cur=id1; |
goto _ITEMS_DRAW; |
} |
break; |
case evButton: |
id1=GetButtonID()-10; |
WB1.Scan(ITEMS_LIST[id1*2+1]); |
ExitProcess(); |
break; |
case evKey: |
key = GetKey(); |
if (key==27) ExitProcess(); |
if (key==178) && (items_cur) |
{ |
items_cur--; |
goto _ITEMS_DRAW; |
} |
if (key==177) && (items_cur+1<items_num) |
{ |
items_cur++; |
goto _ITEMS_DRAW; |
} |
if (key==13) |
{ |
WB1.Scan(ITEMS_LIST[items_cur*2+1]); |
ExitProcess(); |
} |
break; |
case evReDraw: |
while (ITEMS_LIST[items_num*2]) items_num++; |
DefineAndDrawWindow(Form.left+m.x,Form.top+m.y+GetSkinHeight()+3,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,0x01,0x10FFFFFF,0,0x01fffFFF); |
DrawRectangle(0,0,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,0x777777); //îáîäîê |
_ITEMS_DRAW: |
for (i=0; i<items_num; i++;) |
{ |
if (i<>items_cur) EDX=0xFFFFFF; else EDX=0x94AECE; |
DrawBar(1, i*ITEM_HEIGHT+1, ITEM_WIDTH-1, ITEM_HEIGHT, EDX); |
WriteText(8,i*ITEM_HEIGHT+6,0x80,0x000000,ITEMS_LIST[i*2],0); |
if (ITEMS_LIST[i*2+1]==1) && (pre_text==2) DrawBar(ITEM_WIDTH-18, i*ITEM_HEIGHT+8, 4, 4, 0x444444); |
if (ITEMS_LIST[i*2+1]==5) && (use_truetype==1) DrawBar(ITEM_WIDTH-18, i*ITEM_HEIGHT+8, 4, 4, 0x444444); |
} |
DrawBar(33, cur_encoding+1*ITEM_HEIGHT+8, 4, 4, 0x444444); //ïîêàçûâàåò âûáðàíóþ êîäèðîâêó |
} |
} |
/programs/cmm/browser/include/parce_tag.h |
---|
0,0 → 1,50 |
unsigned int GetNextParam() |
{ |
byte kavichki = false; |
int i = strlen(#tagparam) - 1; |
if (!tagparam) return 0; |
WHILE((i > 0) && ((tagparam[i] == '"') || (tagparam[i] == ' ') || (tagparam[i] == '\'') || (tagparam[i] == '/'))) |
{ |
IF (tagparam[i] == '"') || (tagparam[i] == '\'') kavichki=tagparam[i]; |
tagparam[i] = 0x00; |
i--; |
} |
if (kavichki) |
{ |
i=strrchr(#tagparam, kavichki); |
if (i>sizeof(options)) |
strcpy(#options, #tagparam + sizeof(options)); |
else |
strcpy(#options, #tagparam + i); |
} |
else |
{ |
WHILE((i > 0) && (tagparam[i] <>'=')) i--; //i=strrchr(#tagparam, '=')+1; |
i++; |
if (i>sizeof(options)) |
strcpy(#options, #tagparam + sizeof(options)); |
else |
strcpy(#options, #tagparam + i); |
WHILE (options[0] == ' ') strcpy(#options, #options+1); |
} |
tagparam[i] = 0x00; |
FOR ( ; ((tagparam[i] <>' ') && (i > 0); i--) |
{ |
IF (tagparam[i] == '=') //äåðçêàÿ çàãëóøêà |
tagparam[i + 1] = 0x00; |
} |
if (i>sizeof(parametr)) |
strcpy(#parametr, #tagparam + sizeof(parametr)); |
else |
strcpy(#parametr, #tagparam + i + 1); |
tagparam[i] = 0x00; |
return 1; |
} |
/programs/cmm/browser/include/some_code.h |
---|
0,0 → 1,66 |
//êíîïêè |
#define BACK 300 |
#define FORWARD 301 |
#define REFRESH 302 |
#define HOME 303 |
#define NEWTAB 304 |
#define GOTOURL 305 |
#define SEARCHWEB 306 |
#define ID1 178 |
#define ID2 177 |
#define _WIN 0 |
#define _DOS 1 |
#define _KOI 2 |
#define _UTF 3 |
dword get_URL_part(int len) { |
char temp1[sizeof(URL)]; |
strcpy(#temp1, #URL); |
temp1[len] = 0x00; |
return #temp1; |
} |
inline byte chTag(dword text) {return strcmp(#tag,text);} |
void GetURLfromPageLinks(int id) |
{ |
int i, j = 0; |
for (i = 0; i <= id - 401; i++) |
{ |
do |
{ |
j++; |
if (j>=strlen(#page_links)) return; //íå ñàìîå óäà÷íîå ðåøåíèå |
} |
while (page_links[j] <>'|'); |
} |
page_links[j] = 0x00; |
strcpy(#URL, #page_links+strrchr(#page_links, '|')); |
} |
//Ó íàñ íåò íàêëîííûõ øðèôòîâ, ïîýòîìó äåëàåì êîñòûëü èç |
//ïàëî÷åê äëÿ ìîðîæåíîãî è æåâàòåëüíîé ðåçèíêè: |
//Ñíèìàåì îáëàñòü ýêðàíà è âûâîäèì å¸ îáðàòíî ïîëîñêàìè ñî ñìåùåíèåì, |
//÷òî äà¸ò ïåðåêîñ êàðòèíêè |
//Ïðè íàëè÷èè ôîíà è ò.ï. ïðîÿâèòñÿ âñÿ êîñòûëüíîñòü ðåøåíèÿ :) |
inline void Skew(dword x,y,w,h) |
{ |
dword italic_buf; |
int tile_height=2, //áóäåì âûâîäèòü äâóõïèêñåëüíûìè ïîëîñêàìè |
shift=-2, //ñ äâóõïèêñåëüíûì ñìåùåíèåì |
i, skin_height; |
italic_buf = mem_Alloc(w*h*3); |
skin_height = GetSkinHeight(); |
CopyScreen(italic_buf, x+Form.left+2, y+Form.top+skin_height, w, h); |
FOR (i=0;i*tile_height<h;i++) |
PutImage(w*3*tile_height*i+italic_buf,w,tile_height,x+shift-i+1,i*tile_height+y); |
mem_Free(italic_buf); |
} |
/programs/cmm/browser/include/unicode_tags.h |
---|
0,0 → 1,89 |
char *unicode_tags[]={ |
"nbsp", " ", |
"#38", " ", |
"#160", " ", |
"copy", "(c)", |
"#169", "(c)", |
"trade", "[TM]", |
"reg", "(r)", |
"#174", "(r)", |
"bdquo", ",,", |
"amp", "&", |
"#38", "&", |
"lt", "<", |
"#60", "<", |
"gt", ">", |
"#62", ">", |
"minus", "-", |
"ndash", "-", |
"mdash", "-", //-- |
"#8722", "-", |
"#8211", "-", |
"#151", "-", |
"#149", "-", |
"rsquo", "'", |
"#39", "'", |
"#96", "'", |
"#8217", "'", |
"quot", "\"", |
"#34", "\"", |
"ldquo", "\"", |
"rdquo", "\"", |
"#8222", "\"", |
"#8221", "\"", |
"laquo", "<<", |
"#171", "<<", |
"raquo", ">>", |
"#187", ">>", |
"uarr", "\24", |
"darr", "\25", |
"rarr", "\26", |
"larr", "\27", |
"#1028", "\242", |
"#1030", "I", |
"#1031", "\244", |
"#8470", "N", |
"bull", "-", //âîîáùå çäåñü òî÷êà |
"percnt","%", |
0}; |
byte unicode_chars[] = " ¡¢£¤¥¦§¨©ª«¬®¯àáâãäåæçèéêëìíîïðñh£\243i\105\244\0"; |
unsigned char GetUnicodeSymbol() |
{ |
int j; |
for (j=0; unicode_tags[j]!=0; j+=2;) |
{ |
if (!strcmp(#tag, unicode_tags[j])) |
{ |
strcat(#line, unicode_tags[j+1]); |
return NULL; |
} |
} |
rez = atoi(#tag + 1) - 1040; |
if (tag[1] == '1') && (rez>=0) && (rez<=72) && (strlen(#tag) == 5) |
{ |
return unicode_chars[rez]; |
} |
strcat(#line,#tag); //âûâîäèì íà ýêðàí íåîáðàáîòàííûé òåã, òàê áðàóçåðû çà÷åì-òî äåëàþò |
return NULL; |
} |
/programs/cmm/browser/include |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/cmm/browser |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/cmm/dict/compile.bat |
---|
0,0 → 1,5 |
del dicty |
..\C--\C-- dicty |
rename dicty.com dicty |
del warning.txt |
pause |
/programs/cmm/dict/dicty.c |
---|
0,0 → 1,274 |
#include "..\lib\kolibri.h" |
#include "..\lib\strings.h" |
#include "..\lib\file_system.h" |
#include "..\lib\mem.h" |
#include "..\lib\dll.h" |
#include "..\lib\edit_box_lib.h" |
char title[]= "Dictionary v1.0"; |
char direction[] = "Translate direction:"; |
char translate_caption[] = "Translate"; |
char dict_not_found[] = "Dictionary not found"; |
char dict_opened[] = "Dictionary loaded"; |
char empty_word[] = "Type a word to translate"; |
//char direction[] = "Íàïðàâëåíèå ïåðåâîäà:"w; |
int mouse_dd; |
edit_box edit1= {200,20,16,0xffffff,0x94AECE,0x94AECE,0x94AECE,0,248,#edword,#mouse_dd,100000000000010b}; |
system_colors sc; |
proc_info Form; |
char edword[4096], translate_result[4096], search_word[4096], cur_dict[4096]; |
#define DEFAULT_DICT_DIRECROTY "dictionaries/" |
#define DEFAULT_DICT "eng - rus.dict"; |
dword files_buf; |
dword buff, fsize; |
void main() |
{ |
int id; |
word key; |
mem_Init(); |
load_dll2(boxlib, #edit_box_draw,0); |
program_path[strrchr(#program_path, '/')] = 0; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî / |
strcpy(#program_path+strlen(#program_path), DEFAULT_DICT_DIRECROTY); |
SetCurDir(#program_path); |
strcpy(#cur_dict, DEFAULT_DICT); |
OpenDictionary(#cur_dict); |
if (param) |
{ |
strcpy(#edword, #param); |
edit1.size=edit1.pos=strlen(#edword); |
Translate(); |
} |
SetEventMask(0x27); |
loop() |
{ |
switch(WaitEvent()) |
{ |
case evMouse: |
edit_box_mouse stdcall (#edit1); |
break; |
case evButton: |
id=GetButtonID(); |
if (id==1) ExitProcess(); |
if (id==10) |
{ |
Translate(); |
DrawTranslation(); |
} |
if (id==11) |
{ |
ShowDictList(); |
break; |
} |
if (id==12) |
{ |
Draw_Window(); |
break; |
} |
if (id>=20) |
{ |
strcpy(#cur_dict, id-20*304+files_buf+72); |
OpenDictionary(#cur_dict); |
} |
break; |
case evKey: |
key = GetKey(); |
IF (key==013) //Enter |
{ |
Translate(); |
DrawTranslation(); |
} |
EAX=key<<8; |
edit_box_key stdcall(#edit1); |
break; |
case evReDraw: |
Draw_Window(); |
break; |
} |
} |
} |
void Draw_Window() |
{ |
sc.get(); |
DefineAndDrawWindow(215,120,400,250,0x73,sc.work,#title); |
GetProcessInfo(#Form, SelfInfo); |
if (Form.status_window>2) return; //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì |
if (Form.height<140) MoveSize(OLD,OLD,OLD,140); |
if (Form.width<400) MoveSize(OLD,OLD,400,OLD); |
DrawBar(0, 0, Form.width-9, 69, sc.work); |
edit1.focus_border_color=sc.work_graph; |
edit1.width=Form.width-edit1.left-edit1.left-9; |
edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà |
DefineButton(edit1.left+edit1.width-80,35, 80,20, 10, sc.work_button); |
WriteText(edit1.left+edit1.width-80+14,35+7,0x80,sc.work_button_text,#translate_caption, 0); |
DrawBar(0, 69, Form.width-9, 1, sc.work_graph); |
WriteText(edit1.left,35+7,0x80,sc.work_text,#direction, 0); |
DefineButton(edit1.left+130,35, 120,20, 11, sc.work_button); |
WriteText(edit1.left+130+112,35+7,0x80,sc.work_button_text,"\x19", 0); |
DrawBar(edit1.left+130+1,36, 107,19, 0xFFFFFF); |
WriteText(edit1.left+130+8,35+7,0x80,0x000000,#cur_dict, 0); |
DrawTranslation(); |
} |
void OpenDictionary(dword dict_path) |
{ |
dword j, words_count=0; |
mem_Free(buff); |
buff = mem_Alloc(3500576); |
ReadFile(0, 3500576, buff, dict_path); |
IF (EAX<>6) |
{ |
fsize=0; |
strcpy(#translate_result, #dict_not_found); |
Draw_Window(); |
return; |
} |
fsize=EBX; |
strcpy(#search_word, dict_path); |
strcpy(#translate_result, #dict_opened); |
Draw_Window(); |
} |
void ShowDictList() |
{ |
int j, fcount=10; |
mem_Free(files_buf); |
files_buf= mem_Alloc(32); |
ReadDir(0, files_buf, #program_path); |
fcount=ESDWORD[files_buf+8]; |
mem_Free(files_buf); |
files_buf = mem_Alloc(fcount+1*304+32); |
ReadDir(fcount, files_buf, #program_path); |
fcount-=2; |
mem_Move(files_buf,files_buf+608,fcount*304); |
DefineButton(0,0, Form.width,Form.height, 12+BT_HIDE+BT_NOFRAME, sc.work_button); |
for (j=0; j<fcount; j++;) |
{ |
DefineButton(edit1.left+130,j+1*20+35, 107,20, 20+j, sc.work_button); |
WriteText(edit1.left+130+8,j+1*20+35+7,0x80,sc.work_button_text, j*304+files_buf+72, 0); |
} |
} |
void Translate() |
{ |
dword tj; |
char w_native[100], w_translation[100], bukva[1]; |
byte InfType; |
#define NATIVE_WORD 0 |
#define TRANSLATION 1 |
#define IGNORE 2 |
if (!fsize) return; |
translate_result = 0; |
strcpy(#search_word, #edword); |
strupr(#search_word); |
if (!edword) |
{ |
strcpy(#translate_result, #empty_word); |
return; |
} |
for (tj=0; tj<fsize; tj++;) |
{ |
bukva = ESBYTE[buff+tj]; |
switch (bukva) |
{ |
case '"': |
if (w_translation) |
{ |
if (!strcmp(#w_native, #search_word)) |
{ |
if (translate_result) strcat(#translate_result, ", "); |
strcat(#translate_result, #w_translation); |
} |
else |
if (translate_result) return; |
w_translation = w_native = 0; |
} |
InfType = TRANSLATION; |
break; |
case 0x0a: |
InfType = NATIVE_WORD; |
break; |
default: |
if (InfType==NATIVE_WORD) |
{ |
strcat(#w_native, #bukva); |
//if (w_native<>search_word) InfType = IGNORE; //åñëè ïåðâàÿ áóêâà íå ñîâïàäàåò èãíîðèì âñ¸ ñëîâî |
} |
if (InfType==TRANSLATION) strcat(#w_translation, #bukva); |
} |
} |
if (!translate_result) strcpy(#translate_result, "Word is'nt found in the dictionary"); |
} |
void DrawTranslation() |
{ |
int text_break=0; |
char tt[4096]=''; |
int y_pos=70, skin_height=GetSkinHeight(); |
char draw_buf[4096]; |
strcpy(#draw_buf, #translate_result); |
DrawBar(0, y_pos, Form.width-9, Form.height - y_pos-skin_height-4, 0xFFFFFF); |
strttl(#draw_buf); |
WriteText(10+1, y_pos+8, 0x90, 0x800080, #search_word, 0); |
WriteText(10 , y_pos+8, 0x90, 0x800080, #search_word, 0); |
while (draw_buf) |
{ |
text_break= Form.width/6-6; |
if (text_break>strlen(#draw_buf)) |
{ |
WriteText(10, y_pos+21, 0x80, 0, #draw_buf, 0); |
return; |
} |
while (draw_buf[text_break]<>' ') && (text_break>0) text_break--; |
strcpy(#tt, #draw_buf+text_break+1); |
draw_buf[text_break]=0x0; |
WriteText(10, y_pos+21, 0x80, 0, #draw_buf, 0); |
strcpy(#draw_buf, #tt); |
y_pos+=12; |
if (y_pos+24+skin_height+12>Form.height) return; //÷òîá íå çàëåçàëî íà íèæíèé îáîäîê |
} |
} |
stop: |
/programs/cmm/dict/dicty_.c |
---|
0,0 → 1,306 |
//dict_path > cur_dict |
#include "..\lib\kolibri.h" |
#include "..\lib\strings.h" |
#include "..\lib\file_system.h" |
#include "..\lib\mem.h" |
#include "..\lib\dll.h" |
#include "..\lib\edit_box_lib.h" |
unsigned char title[]= "Dictionary v1.0"; |
unsigned char direction[] = "Translate direction:"; |
unsigned char translate_caption[] = "Translate"; |
unsigned char dict_not_found[] = "Dictionary not found"; |
unsigned char dict_opened[] = "Dictionary loaded"; |
unsigned char empty_word[] = "Type a word to translate"; |
//char direction[] = "Íàïðàâëåíèå ïåðåâîäà:"w; |
int mouse_dd; |
edit_box edit1= {200,20,16,0xffffff,0x94AECE,0x94AECE,0x94AECE,0,248,#edword,#mouse_dd,100000000000010b}; |
system_colors sc; |
proc_info Form; |
unsigned char edword[4096], translate_result[4096], search_word[4096], cur_dict[4096]; |
#define DEFAULT_DICT_DIRECROTY "dictionaries/" |
#define DEFAULT_DICT "eng - rus.dict"; |
dword files_buf; |
dword buff, fsize; |
void main() |
{ |
int id; |
word key; |
mem_Init(); |
load_dll2(boxlib, #edit_box_draw,0); |
program_path[strrchr(#program_path, '/')] = 0; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî / |
strcpy(#program_path+strlen(#program_path), DEFAULT_DICT_DIRECROTY); |
SetCurDir(#program_path); |
strcpy(#cur_dict, DEFAULT_DICT); |
OpenDictionary(#cur_dict); |
if (param) |
{ |
strcpy(#edword, #param); |
edit1.size=edit1.pos=strlen(#edword); |
Translate(); |
} |
SetEventMask(0x27); |
loop() |
{ |
switch(WaitEvent()) |
{ |
case evMouse: |
edit_box_mouse stdcall (#edit1); |
break; |
case evButton: |
id=GetButtonID(); |
if (id==1) ExitProcess(); |
if (id==10) |
{ |
Translate(); |
DrawTranslation(); |
} |
if (id==11) |
{ |
ShowDictList(); |
break; |
} |
if (id==12) |
{ |
Draw_Window(); |
break; |
} |
if (id>=20) |
{ |
strcpy(#cur_dict, id-20*304+files_buf+72); |
OpenDictionary(#cur_dict); |
} |
break; |
case evKey: |
key = GetKey(); |
IF (key==013) //Enter |
{ |
Translate(); |
DrawTranslation(); |
} |
EAX=key<<8; |
edit_box_key stdcall(#edit1); |
//LiveSearch(); |
break; |
case evReDraw: |
Draw_Window(); |
break; |
} |
} |
} |
/*void LiveSearch() |
{ |
dword bj, i; |
byte IsNativeWord=1; |
unsigned char native[256]; |
unsigned char bukovka; |
for (bj=0; bj<fsize; bj++;) |
{ |
bukovka=ESBYTE[buff+bj]; |
if (buff+bj==0x0a) |
{ |
bj++; |
if (buff+bj!='"') IsNativeWord=1; |
} |
else |
{ |
for (i=0; i<strlen(#edword); i++) if (edword[i]<>native[i]) goto __NE_RAVNO; |
debug(#native); |
__NE_RAVNO: |
native = '\0'; |
IsNativeWord = 0; |
} |
if (IsNativeWord==1) native[strlen(#native)] = bukovka; |
} |
}*/ |
void Translate() |
{ |
dword tj; |
char w_native[100], w_translation[100], bukva[1]; |
byte InfType; |
#define NATIVE_WORD 0 |
#define TRANSLATION 1 |
#define IGNORE 2 |
if (!fsize) return; |
translate_result = 0; |
strcpy(#search_word, #edword); |
strupr(#search_word); |
if (!edword) |
{ |
strcpy(#translate_result, #empty_word); |
return; |
} |
for (tj=0; tj<fsize; tj++;) |
{ |
bukva = ESBYTE[buff+tj]; |
switch (bukva) |
{ |
case '"': |
if (w_translation) |
{ |
if (!strcmp(#w_native, #search_word)) |
{ |
if (translate_result) strcat(#translate_result, ", "); |
strcat(#translate_result, #w_translation); |
} |
else |
if (translate_result) return; |
w_translation = w_native = 0; |
} |
InfType = TRANSLATION; |
break; |
case 0x0a: |
InfType = NATIVE_WORD; |
break; |
default: |
if (InfType==NATIVE_WORD) |
{ |
strcat(#w_native, #bukva); |
//if (w_native<>search_word) InfType = IGNORE; //åñëè ïåðâàÿ áóêâà íå ñîâïàäàåò èãíîðèì âñ¸ ñëîâî |
} |
if (InfType==TRANSLATION) strcat(#w_translation, #bukva); |
} |
} |
if (!translate_result) strcpy(#translate_result, "Word is'nt found in the dictionary"); |
} |
void OpenDictionary(dword dict_path) |
{ |
dword j, words_count=0; |
mem_Free(buff); |
buff = mem_Alloc(3500576); |
ReadFile(0, 3500576, buff, dict_path); |
IF (EAX<>6) |
{ |
fsize=0; |
strcpy(#translate_result, #dict_not_found); |
Draw_Window(); |
return; |
} |
fsize=EBX; |
strcpy(#search_word, dict_path); |
strcpy(#translate_result, #dict_opened); |
Draw_Window(); |
} |
void ShowDictList() |
{ |
int j, fcount=10; |
mem_Free(files_buf); |
files_buf= mem_Alloc(32); |
ReadDir(0, files_buf, #program_path); |
fcount=ESDWORD[files_buf+8]; |
mem_Free(files_buf); |
files_buf = mem_Alloc(fcount+1*304+32); |
ReadDir(fcount, files_buf, #program_path); |
fcount-=2; |
mem_Move(files_buf,files_buf+608,fcount*304); |
DefineButton(0,0, Form.width,Form.height, 12+BT_HIDE+BT_NOFRAME, sc.work_button); |
for (j=0; j<fcount; j++;) |
{ |
DefineButton(edit1.left+130,j+1*20+35, 107,20, 20+j, sc.work_button); |
WriteText(edit1.left+130+8,j+1*20+35+7,0x80,sc.work_button_text, j*304+files_buf+72, 0); |
} |
} |
void DrawTranslation() |
{ |
int text_break=0; |
char tt[4096]=''; |
int y_pos=70, skin_height=GetSkinHeight(); |
char draw_buf[4096]; |
strcpy(#draw_buf, #translate_result); |
DrawBar(0, y_pos, Form.width-9, Form.height - y_pos-skin_height-4, 0xFFFFFF); |
strttl(#draw_buf); |
WriteText(10+1, y_pos+8, 0x90, 0x800080, #search_word, 0); |
WriteText(10 , y_pos+8, 0x90, 0x800080, #search_word, 0); |
while (draw_buf) |
{ |
text_break= Form.width/6-6; |
if (text_break>strlen(#draw_buf)) |
{ |
WriteText(10, y_pos+21, 0x80, 0, #draw_buf, 0); |
return; |
} |
while (draw_buf[text_break]<>' ') && (text_break>0) text_break--; |
strcpy(#tt, #draw_buf+text_break+1); |
draw_buf[text_break]=0x0; |
WriteText(10, y_pos+21, 0x80, 0, #draw_buf, 0); |
strcpy(#draw_buf, #tt); |
y_pos+=12; |
if (y_pos+24+skin_height+12>Form.height) return; //÷òîá íå çàëåçàëî íà íèæíèé îáîäîê |
} |
} |
void Draw_Window() |
{ |
sc.get(); |
DefineAndDrawWindow(215,120,400,250,0x73,sc.work,#title); |
GetProcessInfo(#Form, SelfInfo); |
if (Form.status_window>2) return; //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì |
if (Form.height<140) MoveSize(OLD,OLD,OLD,140); |
if (Form.width<400) MoveSize(OLD,OLD,400,OLD); |
DrawBar(0, 0, Form.width-9, 69, sc.work); |
edit1.focus_border_color=sc.work_graph; |
edit1.width=Form.width-edit1.left-edit1.left-9; |
edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà |
DefineButton(edit1.left+edit1.width-80,35, 80,20, 10, sc.work_button); |
WriteText(edit1.left+edit1.width-80+14,35+7,0x80,sc.work_button_text,#translate_caption, 0); |
DrawBar(0, 69, Form.width-9, 1, sc.work_graph); |
WriteText(edit1.left,35+7,0x80,sc.work_text,#direction, 0); |
DefineButton(edit1.left+130,35, 120,20, 11, sc.work_button); |
WriteText(edit1.left+130+112,35+7,0x80,sc.work_button_text,"\x19", 0); |
DrawBar(edit1.left+130+1,36, 107,19, 0xFFFFFF); |
WriteText(edit1.left+130+8,35+7,0x80,0x000000,#cur_dict, 0); |
DrawTranslation(); |
} |
stop: |
/programs/cmm/dict |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/cmm/lib/dll.h |
---|
0,0 → 1,173 |
//Asper |
char a_libdir[43] = "/sys/lib/\0"; |
//proc dll.Load, import_table:dword |
int dll_Load(dword import_table) |
{ |
$mov esi, import_table |
@next_lib: $mov edx, DSDWORD[esi] |
$or edx,edx |
$jz exit_ |
$push esi |
$mov esi,DSDWORD[esi+4] |
$mov edi,#a_libdir |
$push edi |
$push esi |
EAX=strlen(#a_libdir); |
$pop esi |
$pop edi |
$add edi, eax //9 |
@loc01: $lodsb |
$stosb |
$or al,al |
$jnz loc01 |
//IntToStr(EBX); |
//$push edx |
//WriteDebug(#a_libdir); |
//$pop edx |
//mcall 68,19,a_libdir |
$mov eax, 68 |
$mov ebx, 19 |
$mov ecx,#a_libdir |
$int 0x40 |
$or eax,eax |
$jz fail |
//stdcall dll.Link,eax,edx |
dll_Link(EAX, EDX); |
$push eax |
$mov eax, DSDWORD [eax] |
$cmp DSDWORD [eax], 'lib_' |
$pop eax |
//$jnz loc02 |
//IntToStr(EBX); |
//$push eax |
//WriteDebug(DSDWORD[EAX]); |
//$pop eax |
//stdcall dll.Init,[eax+4] |
//dll_Init(DSDWORD[EAX]); //dll_Init(DSDWORD[EAX+4]); |
@loc02: |
$pop esi |
$add esi,8 |
$jmp next_lib |
@exit_: $xor eax,eax |
return 0; |
@fail: $add esp,4 |
$xor eax,eax |
$inc eax |
return -1; |
} |
//proc dll.Link, exp:dword,imp:dword |
void dll_Link(dword exp, imp) |
{ |
$push eax |
$mov esi, imp |
$test esi, esi |
$jz done |
@next: $lodsd |
$test eax,eax |
$jz done |
//stdcall dll.GetProcAddress,[exp],eax |
dll_GetProcAddress(exp,EAX); |
$or eax,eax |
$jz loc03 |
$mov DSDWORD[esi-4],eax |
$jmp next |
@loc03: |
$mov DSDWORD[esp],0 |
@done: $pop eax |
} |
//proc dll.Init, dllentry:dword |
void dll_Init(dword dllentry) |
{ |
$pushad |
EAX=#mem_Alloc; |
EBX=#mem_Free; |
ECX=#mem_ReAlloc; |
EDX=#dll_Load; |
DSDWORD [dllentry+4] stdcall (); |
$popad |
} |
//proc dll.GetProcAddress, exp:dword,sz_name:dword |
dword dll_GetProcAddress(dword exp, sz_name) |
{ |
$push esi |
$mov edx, exp |
$xor eax,eax |
@next: $or edx,edx |
$jz end_ |
$cmp edx,0 |
$jz end_ |
strcmp(DSDWORD[EDX],sz_name); |
$test eax,eax |
$jz ok |
$add edx,8 |
$jmp next |
@ok: |
$mov eax, DSDWORD[edx+4] |
@end_: |
$pop esi |
return EAX; |
} |
int load_dll2(dword dllname, import_table, byte need_init) |
{ |
//dword dllentry=0; |
// load DLL |
$mov eax, 68 |
$mov ebx, 19 |
ECX=dllname; |
$int 0x40 |
$test eax, eax |
$jz exit01 |
// initialize import |
$mov edx,eax |
ESI=import_table; |
@import_loop01: |
$lodsd |
$test eax,eax |
$jz import_done01 |
$push edx |
@import_find01: |
$mov ebx,DSDWORD[EDX] |
$test ebx, ebx |
$jz exit01 |
$push eax |
@nex101: |
$mov cl,DSBYTE[EAX]; |
$cmp cl,DSBYTE[EBX]; |
$jnz import_find_next01 |
$test cl,cl |
$jz import_found01 |
$inc eax |
$inc ebx |
$jmp nex101 |
@import_find_next01: |
$pop eax |
$add edx, 8 |
$jmp import_find01 |
@import_found01: |
$pop eax |
$mov eax,DSDWORD[edx+4] |
$mov DSDWORD[esi-4],eax |
$pop edx |
$jmp import_loop01 |
@import_done01: |
IF (need_init) dll_Init(EDX); |
return 0; |
@exit01: |
return -1; |
} |
/programs/cmm/lib/edit_box_lib.h |
---|
0,0 → 1,49 |
//BOX_LIB |
dword boxlib = #aEdit_box_lib; //Asper |
char aEdit_box_lib[22]="/sys/lib/box_lib.obj\0"; //Asper |
dword edit_box_draw = #aEdit_box_draw; |
dword edit_box_key = #aEdit_box_key; |
dword edit_box_mouse = #aEdit_box_mouse; |
dword version_ed = #aVersion_ed; |
dword am__ = 0x0; |
dword bm__ = 0x0; |
char aEdit_box_draw[9] = "edit_box\0"; |
char aEdit_box_key[13] = "edit_box_key\0"; |
char aEdit_box_mouse[15] = "edit_box_mouse\0"; |
char aVersion_ed[11] = "version_ed\0"; |
char aCheck_box_draw [15] = "check_box_draw\0"; |
char aCheck_box_mouse [16] = "check_box_mouse\0"; |
char aVersion_ch [11] = "version_ch\0"; |
char aOption_box_draw [16] = "option_box_draw\0"; |
char aOption_box_mouse[17] = "option_box_mouse\0"; |
char aVersion_op [11] = "version_op\0" ; |
struct edit_box{ |
dword width, left, top, color, shift_color, focus_border_color, blur_border_color, |
text_color, max, text, mouse_variable, flags, size, pos, offset, cl_curs_x, cl_curs_y, shift, shift_old; |
}; |
//ed_width equ [edi] ;è¨à¨ ª®¬¯®¥â |
//ed_left equ [edi+4] ;¯®«®¦¥¨¥ ¯® ®á¨ å |
//ed_top equ [edi+8] ;¯®«®¦¥¨¥ ¯® ®á¨ ã |
//ed_color equ [edi+12] ;梥â ä® ª®¬¯®¥â |
//shift_color equ [edi+16] ;=0x6a9480 |
//ed_focus_border_color equ [edi+20] ;梥â à ¬ª¨ ª®¬¯®¥â |
//ed_blur_border_color equ [edi+24] ;梥⠥ ªâ¨¢®£® ª®¬¯®¥â |
//ed_text_color equ [edi+28] ;梥â ⥪áâ |
//ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦® ¬ ªá¨¬ «ì® ¢¢¥á⨠|
//ed_text equ [edi+36] ;㪠§ â¥«ì ¡ãä¥à |
//ed_flags equ [edi+40] ;ä« £¨ |
//ed_size equ [edi+42] ;ª®«-¢® ᨬ¢®«®¢ |
//ed_pos equ [edi+46] ;¯®§¨æ¨ï ªãàá®à |
//ed_offset equ [edi+50] ;ᬥ饨¥ |
//cl_curs_x equ [edi+54] ;¯à¥¤ë¤ãé ï ª®®à¤¨ â ªãàá®à ¯® å |
//cl_curs_y equ [edi+58] ;¯à¥¤ë¤ãé ï ª®®à¤¨ â ªãàá®à ¯® ã |
//ed_shift_pos equ [edi+62] ;¯®«®¦¥¨¥ ªãàá®à |
//ed_shift_pos_old equ [edi+66] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à |
/programs/cmm/lib/encoding.h |
---|
0,0 → 1,182 |
inline fastcall void wintodos( ESI) |
{ |
while (BL=ESBYTE[ESI]) |
{ |
IF (BL>=192) |
{ |
IF (BL>=240) ESBYTE[ESI] = BL - 16; |
ELSE ESBYTE[ESI] = BL - 64; |
} |
ELSE |
{ |
IF (BL==178) ESBYTE[ESI] = 73; //I |
IF (BL==179) ESBYTE[ESI] = 105; //i |
IF (BL==175) ESBYTE[ESI] = 244; //J |
IF (BL==191) ESBYTE[ESI] = 245; //j |
IF (BL==170) ESBYTE[ESI] = 242; //E |
IF (BL==186) ESBYTE[ESI] = 243; //e |
IF (BL==168) ESBYTE[ESI] = 240; //ð |
IF (BL==184) ESBYTE[ESI] = 'e'; //e |
IF (BL==180) ESBYTE[ESI] = 254; //ã |
IF ((BL==147) || (BL==148) || (BL==171) || (BL==187)) ESBYTE[ESI] = 34; |
IF ((BL==150) || (BL==151)) ESBYTE[ESI] = 45; |
} |
ESI++; |
} |
} |
byte mas[66] = "î ¡æ¤¥ä£å¨©ª«¬®¯ïàáâ㦢ìë§èíéçê "; |
inline fastcall void koitodos( EDI) |
{ |
WHILE (BL=ESBYTE[EDI]) |
{ |
IF (BL >= 0xC0) |
{ |
BL -= 0xC0; |
ESBYTE[EDI] = mas[BL]; |
} |
//IF (ESBYTE[EDI]=='\244') ESBYTE[EDI]='i'; |
EDI++; |
} |
} |
//Asper, lev |
//uncomplete |
inline fastcall void utf8rutodos( ESI) |
{ |
EDI=ESI; |
while (BL=ESBYTE[ESI]) |
{ |
IF (BL == 0xD0) || (BL == 0xD1) EDI--; |
else IF (BL == 0x81) && (ESBYTE[ESI-1]==0xD0) ESBYTE[EDI] = 0xF0; //ø |
else IF (BL == 0x91) && (ESBYTE[ESI-1]==0xD1) ESBYTE[EDI] = 0xF1; //ì |
//0xE2 0x80 - ñãðóïïèðîâàòü |
else IF (BL == 0xE2) && (ESBYTE[ESI+1]==0x80) |
SWITCH (ESBYTE[ESI+2]) |
{ |
case 0x93: //long defis |
CASE 0x94: |
{ |
ESBYTE[EDI] = '-'; |
ESI+=2; |
BREAK; |
} |
CASE 0xA2: //central point |
{ |
ESBYTE[EDI] = '*'; |
ESI+=2; |
BREAK; |
} |
CASE 0xA6: //ìíîãîòî÷èå |
{ |
ESBYTE[EDI] = ESBYTE[EDI+1] = ESBYTE[EDI+2] = '.'; |
EDI+=2; |
ESI+=2; |
break; |
} |
} |
else IF (BL == 0xC2) //òàáëèöó ïåðåêîäèðîâîê? |
SWITCH(ESBYTE[ESI+1]) { |
case 0xAB: //" |
CASE 0xBB: //" |
{ |
ESBYTE[EDI] = '\"'; |
ESI++; |
BREAK; |
} |
CASE 0xB7: // _ |
{ |
ESBYTE[EDI] = '_'; |
ESI++; |
BREAK; |
} |
CASE 0xA0: // Alt+160 - íåðàçáèâàþùèé ïðîáåë |
{ |
ESBYTE[EDI] = ' '; |
ESI++; |
BREAK; |
} |
CASE 0xB0: // ãðàäóñ |
{ |
ESBYTE[EDI] = '\29'; |
ESI++; |
BREAK; |
} |
CASE 0xA9: // (c) --- âûëåò Î_î |
{ |
ESBYTE[EDI] = 'c'; |
//ESBYTE[EDI] = '('; |
//ESBYTE[EDI+1] = 'c'; |
//ESBYTE[EDI+2] = ')'; |
//EDI+=2; |
ESI++; |
BREAK; |
} |
CASE 0xAE: // (r) |
{ |
ESBYTE[EDI] = 'r'; |
//ESBYTE[EDI] = '('; |
//ESBYTE[EDI+1] = 'r'; |
//ESBYTE[EDI+2] = ')'; |
//EDI+=2; |
ESI++; |
BREAK; |
} |
} |
ELSE IF (BL >= 0x90) && (BL <= 0xAF) |
{ |
BL -= 0x10; |
ESBYTE[EDI] = BL; |
} |
ELSE IF (BL >= 0x80) && (BL <= 0x8F) |
{ |
BL += 0x60; |
ESBYTE[EDI] = BL; |
} |
ELSE IF (BL >= 0xB0) && (BL <= 0xBF) |
{ |
BL -= 0x10; |
ESBYTE[EDI] = BL; |
} |
ELSE ESBYTE[EDI] = BL; |
ESI++; |
EDI++; |
} |
WHILE (EDI<ESI) |
{ |
ESBYTE[EDI] = ' '; |
EDI++; |
} |
} |
//------------------------------------------------------------------------------ |
dword Hex2Symb(char* htmlcolor) |
{ |
dword j=0, symbol=0; |
char ch=0x00; |
FOR (;j<2;j++) |
{ |
ch=ESBYTE[htmlcolor+j]; |
IF (ch==0x0d) || (ch=='\9') RETURN ''; |
IF ((ch>='0') && (ch<='9')) ch -= '0'; |
IF ((ch>='A') && (ch<='F')) ch -= 'A'-10; |
IF ((ch>='a') && (ch<='f')) ch -= 'a'-10; |
symbol = symbol*0x10 + ch; |
} |
wintodos(#symbol); |
AL=symbol; |
} |
/* |
int hex2char(dword c) |
{ |
if (c <=9) |
return (c+48); |
return (c - 10 + 'a'); |
}*/ |
/programs/cmm/lib/figures.h |
---|
0,0 → 1,33 |
void DrawRectangle(dword x,y,width,height,color1) |
{ |
DrawBar(x,y,width,1,color1); |
DrawBar(x,y+height,width,1,color1); |
DrawBar(x,y,1,height,color1); |
DrawBar(x+width,y,1,height+1,color1); |
} |
void DrawRectangle3D(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); |
} |
void DrawCaptButton(dword x,y,width,height,id,color,text,text_len) |
{ |
DefineButton(x,y,width,height,id+BT_HIDE,0xEFEBEF); |
WriteText(-text_len*6+width/2+x+1,height/2-3+y,0x80,0,text,0); |
} |
void DrawCircle(int x, y, r) |
{ |
int i; |
float px=0, py=r, ii = r * 3.1415926 * 2; |
FOR (i = 0; i < ii; i++) |
{ |
PutPixel(px + x, y - py, 0); |
px = py / r + px; |
py = -px / r + py; |
} |
} |
/programs/cmm/lib/file_system.h |
---|
0,0 → 1,208 |
struct f70{ |
dword func; |
dword param1; |
dword param2; |
dword param3; |
dword param4; |
char rezerv; |
dword name; |
}; |
struct BDVK{ |
dword attr; |
byte type_name; |
byte rez1, rez2, rez3; |
dword timecreate; |
dword datecreate; |
dword timelastaccess; |
dword datelastaccess; |
dword timelastedit; |
dword datelastedit; |
dword sizelo; |
dword sizehi; |
char name[518]; |
}; |
/////////////////////////// |
// Çàïóñê ïðîãðàììû // |
/////////////////////////// |
f70 run_file_70; |
:int RunProgram(dword run_path, run_param) |
{ |
run_file_70.func = 7; |
run_file_70.param1 = |
run_file_70.param3 = |
run_file_70.param4 = |
run_file_70.rezerv = 0; |
run_file_70.param2 = run_param; |
run_file_70.name = run_path; |
$mov eax,70 |
$mov ebx,#run_file_70.func |
$int 0x40 |
} |
/////////////////////////// |
// Ñîçäàíèå ïàïêè // |
/////////////////////////// |
f70 create_dir_70; |
:int CreateDir(dword new_folder_path) |
{ |
create_dir_70.func = 9; |
create_dir_70.param1 = |
create_dir_70.param2 = |
create_dir_70.param3 = |
create_dir_70.param4 = |
create_dir_70.rezerv = 0; |
create_dir_70.name = new_folder_path; |
$mov eax,70 |
$mov ebx,#create_dir_70.func |
$int 0x40 |
} |
//////////////////////////// |
// Óäàëåíèå ôàéëà/ïàïêè // |
//////////////////////////// |
f70 del_file_70; |
:int DeleteFile(dword del_file_path) |
{ |
del_file_70.func = 8; |
del_file_70.param1 = |
del_file_70.param2 = |
del_file_70.param3 = |
del_file_70.param4 = |
del_file_70.rezerv = 0; |
del_file_70.name = del_file_path; |
$mov eax,70 |
$mov ebx,#del_file_70.func |
$int 0x40 |
} |
//////////////////////////// |
// Ïðî÷èòàòü ôàéë // |
//////////////////////////// |
f70 read_file_70; |
:int ReadFile(dword read_pos, read_file_size, read_buffer, read_file_path) |
{ |
read_file_70.func = 0; |
read_file_70.param1 = read_pos; |
read_file_70.param2 = 0; |
read_file_70.param3 = read_file_size; |
read_file_70.param4 = read_buffer; |
read_file_70.rezerv = 0; |
read_file_70.name = read_file_path; |
$mov eax,70 |
$mov ebx,#read_file_70.func |
$int 0x40 |
} |
//////////////////////////// |
// Çàïèñàòü ôàéë // |
//////////////////////////// |
f70 write_file_70; |
:int WriteFile(dword write_file_size, write_buffer, write_file_path) |
{ |
write_file_70.func = 2; |
write_file_70.param1 = 0; |
write_file_70.param2 = 0; |
write_file_70.param3 = write_file_size; |
write_file_70.param4 = write_buffer; |
write_file_70.rezerv = 0; |
write_file_70.name = write_file_path; |
$mov eax,70 |
$mov ebx,#write_file_70.func |
$int 0x40 |
} |
/////////////////////////// |
// Ïðî÷èòàòü ïàïêó // |
/////////////////////////// |
f70 read_dir_70; |
:int ReadDir(dword file_count, read_buffer, dir_path) |
{ |
read_dir_70.func = 1; |
read_dir_70.param1 = |
read_dir_70.param2 = |
read_dir_70.rezerv = 0; |
read_dir_70.param3 = file_count; |
read_dir_70.param4 = read_buffer; |
read_dir_70.name = dir_path; |
$mov eax,70 |
$mov ebx,#read_dir_70.func |
$int 0x40 |
} |
/////////////////////////// |
// Ïàðàìåòðû ôàéëà // |
/////////////////////////// |
f70 getinfo_file_70; |
BDVK getinfo_file_info; |
:dword GetFileInfo(dword file_path) |
{ |
getinfo_file_70.func = 5; |
getinfo_file_70.param1 = |
getinfo_file_70.param2 = |
getinfo_file_70.param3 = 0; |
getinfo_file_70.param4 = #getinfo_file_info; |
getinfo_file_70.rezerv = 0; |
getinfo_file_70.name = file_path; |
$mov eax,70 |
$mov ebx,#getinfo_file_70.func |
$int 0x40 |
} |
/////////////////////////// |
// Ñêîïèðîâàòü ôàéë // |
/////////////////////////// |
:int CopyFile(dword copy_from, copy_in) |
{ |
BDVK CopyFile_atr; |
dword cBufer=0; |
if (! GetFileInfo(copy_from)) |
{ |
mem_Init(); |
cBufer = mem_Alloc(CopyFile_atr.sizelo); |
if (! ReadFile(dword 0, CopyFile_atr.sizelo, cBufer, copy_from)) |
if (! WriteFile(CopyFile_atr.sizelo, cBufer, copy_in)) return 1; |
} |
return 0; |
} |
//Asper |
void ReadAttributes(dword read_buffer, file_path) |
{ |
read_file_70.func = 5; |
read_file_70.param1 = 0; |
read_file_70.param2 = 0; |
read_file_70.param3 = 0; |
read_file_70.param4 = read_buffer; |
read_file_70.rezerv = 0; |
read_file_70.name = file_path; |
$mov eax,70 |
$mov ebx,#read_file_70.func |
$int 0x40 |
} |
inline fastcall void SetCurDir( ECX) |
{ |
$mov eax,30 |
$mov ebx,1 |
$int 0x40 |
} |
inline fastcall void GetCurDir( ECX, EDX) |
{ |
$mov eax,30 |
$mov ebx,2 |
$int 0x40 |
} |
void notify(dword notify_param) |
{ |
RunProgram("@notify", notify_param); |
} |
/programs/cmm/lib/kolibri.h |
---|
0,0 → 1,463 |
//CODED by Veliant, Leency, Nable. GNU GPL licence. |
#startaddress 0 |
#code32 TRUE |
char os_name[8] = {'M','E','N','U','E','T','0','1'}; |
dword os_version = 0x00000001; |
dword start_addr = #main; |
dword final_addr = #stop+32; |
dword alloc_mem = #0x00100000; |
dword x86esp_reg = #0x00100000; |
dword I_Param = #param; |
dword I_Path = #program_path; |
char param[4096]; |
char program_path[4096]; |
//Events |
#define evMouse 6 |
#define evButton 3 |
#define evKey 2 |
#define evReDraw 1 |
#define OLD -1 |
#define true 1 |
#define false 0 |
#define NULL 0 |
//Button options |
#define BT_DEL 0x80000000 |
#define BT_HIDE 0x40000000 |
#define BT_NOFRAME 0x20000000 |
//------------------------------------------------------------------------- |
struct mouse |
{ |
int x,y,lkm,pkm,hor,vert; |
void get(); |
}; |
void mouse::get() |
{ |
EAX = 37; |
EBX = 1; |
$int 0x40 |
$mov ebx, eax |
$shr eax, 16 |
$and ebx,0x0000FFFF |
x = EAX; |
y = EBX; |
EAX = 37; |
EBX = 2; |
$int 0x40 |
$mov ebx, eax |
$and eax, 0x00000001 |
$shr ebx, 1 |
$and ebx, 0x00000001 |
lkm = EAX; |
pkm = EBX; |
EAX = 37; //áªà®«« |
EBX = 7; |
$int 0x40 |
$mov ebx, eax |
$shr eax, 16 |
$and ebx,0x0000FFFF |
//hor = EAX; |
vert = EBX; |
} |
struct system_colors |
{ |
dword frame,grab,grab_button,grab_button_text,grab_text, |
work,work_button,work_button_text,work_text,work_graph; |
void get(); |
}; |
void system_colors::get() |
{ |
EAX = 48; |
EBX = 3; |
ECX = #frame; |
EDX = 40; |
$int 0x40 |
} |
//------------------------------------------------------------------------------ |
inline fastcall dword WaitEvent() |
{ |
$mov eax,10 |
$int 0x40 |
} |
inline fastcall dword CheckEvent() |
{ |
$mov eax,11 |
$int 0x40 |
} |
inline fastcall dword WaitEventTimeout( EBX) |
{ |
$mov eax,23 |
$int 0x40 |
} |
inline fastcall SetEventMask( EBX) |
{ |
$mov eax,40 |
$int 0x40 |
} |
inline fastcall ScancodesGeting(){ |
$mov eax,66 |
$mov ebx,1 |
$mov ecx,1 //᪠ª®¤ë |
$int 0x40 |
} |
inline fastcall word GetKey() //+Gluk fix |
{ |
$push edx |
@getkey: |
$mov eax,2 |
$int 0x40 |
$cmp eax,1 |
$jne getkeyi |
$mov ah,dh |
$jmp getkeyii //jz? |
@getkeyi: |
$mov dh,ah |
$jmp getkey |
@getkeyii: |
$pop edx |
$shr eax,8 |
} |
inline fastcall Pause( EBX) |
{ |
$mov eax, 5 |
$int 0x40 |
} |
inline fastcall word GetButtonID() |
{ |
$mov eax,17 |
$int 0x40 |
$shr eax,8 |
} |
//---------------------------------------- |
inline fastcall dword GetFreeRAM() |
{ |
$mov eax, 18 |
$mov ebx, 16 |
$int 0x40 |
//return eax = ðàçìåð ñâîáîäíîé ïàìÿòè â êèëîáàéòàõ |
} |
inline fastcall dword LoadDriver( ECX) //ECX - èìÿ äðàéâåðà |
{ |
$mov eax, 68 |
$mov ebx, 16 |
$int 0x40 |
//return 0 - íåóäà÷à, èíà÷å eax = õýíäë äðàéâåðà |
} |
inline fastcall dword RuleDriver( ECX) //óêàçàòåëü íà óïðàâëÿþùóþ ñòðóêòóðó |
{ |
$mov eax, 68 |
$mov ebx, 17 |
$int 0x40 |
//return eax = îïðåäåëÿåòñÿ äðàéâåðîì |
} |
struct proc_info |
{ |
#define SelfInfo -1 |
dword use_cpu; |
word pos_in_stack,num_slot,rezerv1; |
char name[11]; |
char rezerv2; |
dword adress,use_memory,ID,left,top,width,height; |
word status_slot,rezerv3; |
dword work_left,work_top,work_width,work_height; |
char status_window; |
void GetInfo( ECX); |
byte reserved[1024-71]; |
}; |
inline fastcall void GetProcessInfo( EBX, ECX) |
{ |
$mov eax,9; |
$int 0x40 |
} |
inline fastcall int GetPointOwner( EBX, ECX) //ebx=m.x, ecx=m.y |
{ |
$mov eax,34 |
$int 0x40 |
} |
inline fastcall int GetProcessSlot( ECX) |
{ |
EAX = 18; |
EBX = 21; |
$int 0x40 |
} |
inline fastcall int GetActiveProcess() |
{ |
EAX = 18; |
EBX = 7; |
$int 0x40 |
} |
inline fastcall int CreateThread( ECX,EDX) |
{ |
$mov eax,51 |
$mov ebx,1 |
$int 0x40 |
} |
inline fastcall void SwitchToAnotherThread() |
{ |
$mov eax,68 |
$mov ebx,1 |
$int 0x40 |
} |
inline fastcall int KillProcess( ECX) |
{ |
$mov eax,18; |
$mov ebx,18; |
$int 0x40 |
} |
#define TURN_OFF 2 |
#define REBOOT 3 |
#define KERNEL 4 |
inline fastcall int ExitSystem( ECX) |
{ |
$mov eax, 18 |
$mov ebx, 9 |
$int 0x40 |
} |
inline fastcall ExitProcess() |
{ |
$mov eax,-1; |
$int 0x40 |
} |
//------------------------------------------------------------------------------ |
//eax = ÿçûê ñèñòåìû (1=eng, 2=fi, 3=ger, 4=rus) |
inline fastcall int GetSystemLanguage() |
{ |
EAX = 26; |
EBX = 5; |
$int 0x40 |
} |
inline fastcall GetSkinHeight() |
{ |
$push ebx |
$mov eax,48 |
$mov ebx,4 |
$int 0x40 |
$pop ebx |
} |
inline fastcall void SetSystemSkin( ECX) |
{ |
EAX = 48; |
EBX = 8; |
$int 0x40 |
} |
inline fastcall int GetScreenWidth() |
{ |
$mov eax, 14 |
$int 0x40 |
$shr eax, 16 |
} |
inline fastcall int GetScreenHeight() |
{ |
$mov eax, 14 |
$int 0x40 |
$and eax,0x0000FFFF |
} |
inline fastcall dword LoadLibrary( ECX) |
{ |
$mov eax, 68 |
$mov ebx, 19 |
$int 0x40 |
} |
inline fastcall int TestBit( EAX, CL) |
{ |
$shr eax,cl |
$and eax,1 |
} |
inline fastcall int PlaySpeaker( ESI) |
{ |
$mov eax, 55 |
$mov ebx, 55 |
$int 0x40 |
} |
inline fastcall void debug( EDX) |
{ |
$push ebx |
$push ecx |
$mov eax, 63 |
$mov ebx, 1 |
next_char: |
$mov ecx, DSDWORD[edx] |
$or cl, cl |
$jz done |
$int 0x40 |
$inc edx |
$jmp next_char |
done: |
$mov cl, 13 |
$int 0x40 |
$mov cl, 10 |
$int 0x40 |
$pop ecx |
$pop ebx |
} |
//------------------------------------------------------------------------------ |
void DefineAndDrawWindow(dword x,y, sizeX,sizeY, byte WindowType,dword WindowAreaColor, EDI, ESI) |
{ |
EAX = 12; // function 12:tell os about windowdraw |
EBX = 1; |
$int 0x40 |
EAX = 0; |
EBX = x << 16 + sizeX; |
ECX = y << 16 + sizeY; |
EDX = WindowType << 24 | WindowAreaColor; |
$int 0x40 |
EAX = 12; // function 12:tell os about windowdraw |
EBX = 2; |
$int 0x40 |
} |
inline fastcall DeleteAllButtons() |
{ |
EAX = 12; // function 12:tell os about windowdraw |
EBX = 1; |
$int 0x40 |
EBX = 2; |
$int 0x40 |
} |
inline fastcall MoveSize( EBX,ECX,EDX,ESI) |
{ |
$mov eax, 67 |
$int 0x40 |
} |
inline fastcall void DrawTitle( ECX) |
{ |
EAX = 71; |
EBX = 1; |
$int 0x40; |
} |
void WriteText(dword x,y,byte fontType, dword color, EDX, ESI) |
{ |
EAX = 4; |
EBX = x<<16+y; |
ECX = fontType<<24+color; |
$int 0x40; |
} |
void WriteNumber(dword x,y,byte fontType, dword color, count, ECX) |
{ |
EAX = 47; |
EBX = count<<16; |
EDX = x<<16+y; |
ESI = fontType<<24+color; |
$int 0x40; |
} |
void CopyScreen(dword EBX, x, y, sizeX, sizeY) |
{ |
EAX = 36; |
ECX = sizeX << 16 + sizeY; |
EDX = x << 16 + y; |
$int 0x40; |
} |
dword GetPixelColor(dword x, x_size, y) |
{ |
$mov eax, 35 |
EBX= y*x_size+x; |
$int 0x40 |
} |
void PutImage(dword EBX,w,h,x,y) |
{ |
EAX = 7; |
ECX = w<<16+h; |
EDX = x<<16+y; |
$int 0x40 |
} |
void _PutImage(dword x,y, w,h, EBX) |
{ |
EAX = 7; |
ECX = w<<16+h; |
EDX = x<<16+y; |
$int 0x40 |
} |
void PutPaletteImage(dword EBX,w,h,x,y,ESI,EDI) |
{ |
EAX = 65; |
ECX = w<<16+h; |
EDX = x<<16+y; |
EBP = 0; |
$int 0x40 |
} |
inline fastcall void PutPixel( EBX,ECX,EDX) |
{ |
EAX=1; |
$int 0x40 |
} |
void DrawBar(dword x,y,w,h,EDX) |
{ |
EAX = 13; |
EBX = x<<16+w; |
ECX = y<<16+h; |
$int 0x40 |
} |
void DefineButton(dword x,y,w,h,EDX,ESI) |
{ |
EAX = 8; |
EBX = x<<16+w; |
ECX = y<<16+h; |
$int 0x40 |
} |
inline fastcall void DeleteButton( EDX) |
{ |
EAX = 8; |
EDX += BT_DEL; |
$int 0x40; |
} |
/programs/cmm/lib/libimg_lib.h |
---|
0,0 → 1,104 |
//Asper |
//library |
dword libimg = #alibimg; |
char alibimg[21] = "/sys/lib/libimg.obj\0"; |
dword libimg_init = #alibimg_init; |
dword img_is_img = #aimg_is_img; |
dword img_to_rgb2 = #aimg_to_rgb2; |
dword img_decode = #aimg_decode; |
dword img_destroy = #aimg_destroy; |
dword img_draw = #aimg_draw; |
//dword img_flip = #aimg_flip; |
//dword img_rotate = #aimg_rotate; |
dword am1__ = 0x0; |
dword bm1__ = 0x0; |
//import libimg , \ |
char alibimg_init[9] = "lib_init\0"; |
char aimg_is_img[11] = "img_is_img\0"; |
char aimg_to_rgb2[12] = "img_to_rgb2\0"; |
char aimg_decode[11] = "img_decode\0"; |
char aimg_destroy[12] = "img_destroy\0"; |
char aimg_draw[9] = "img_draw\0"; |
//char aimg_flip[9] = "img_flip\0"; |
//char aimg_rotate[11] = "img_rotate\0 "; |
dword load_image(dword filename) |
{ |
//align 4 |
dword img_data=0; |
dword img_data_len=0; |
dword fh=0; |
dword image=0; |
byte tmp_buf[40]; |
$and img_data, 0 |
//$mov eax, filename |
//$push eax |
//invoke file.open, eax, O_READ |
file_open stdcall (filename, O_READ); |
$or eax, eax |
$jnz loc05 |
$stc |
return 0; |
@loc05: |
$mov fh, eax |
//invoke file.size |
file_size stdcall (filename); |
$mov img_data_len, ebx |
//stdcall mem.Alloc, ebx |
mem_Alloc(EBX); |
$test eax, eax |
$jz error_close |
$mov img_data, eax |
//invoke file.read, [fh], eax, [img_data_len] |
file_read stdcall (fh, EAX, img_data_len); |
$cmp eax, -1 |
$jz error_close |
$cmp eax, img_data_len |
$jnz error_close |
//invoke file.close, [fh] |
file_close stdcall (fh); |
$inc eax |
$jz error_ |
//; img.decode checks for img.is_img |
//; //invoke img.is_img, [img_data], [img_data_len] |
//; $or eax, eax |
//; $jz exit |
//invoke img.decode, [img_data], [img_data_len], 0 |
EAX=img_data; |
img_decode stdcall (EAX, img_data_len,0); |
$or eax, eax |
$jz error_ |
$cmp image, 0 |
$pushf |
$mov image, eax |
//call init_frame |
$popf |
//call update_image_sizes |
mem_Free(img_data);//free_img_data(img_data); |
$clc |
return image; |
@error_free: |
//invoke img.destroy, [image] |
img_destroy stdcall (image); |
$jmp error_ |
@error_pop: |
$pop eax |
$jmp error_ |
@error_close: |
//invoke file.close, [fh] |
file_close stdcall (fh); |
@error_: |
mem_Free(img_data); |
$stc |
return 0; |
} |
/programs/cmm/lib/libio_lib.h |
---|
0,0 → 1,36 |
//Asper |
//library |
dword libio = #alibio; |
char alibio[21] = "/sys/lib/libio.obj\0"; //"libio.obj\0"; |
dword libio_init = #alibio_init; |
dword file_size = #afile_size; |
dword file_open = #afile_open; |
dword file_read = #afile_read; |
dword file_close = #afile_close; |
dword am2__ = 0x0; |
dword bm2__ = 0x0; |
//import libio , \ |
char alibio_init[9] = "lib_init\0"; |
char afile_size[11] = "file_size\0"; |
char afile_open[12] = "file_open\0"; |
char afile_read[11] = "file_read\0"; |
char afile_close[12] = "file_close\0"; |
//align 4 |
//dword fh=0; |
#define O_BINARY 0 |
#define O_READ 1 |
#define O_WRITE 2 |
#define O_CREATE 4 |
#define O_SHARE 8 |
#define O_TEXT 16 |
#define SEEK_SET 0 |
#define SEEK_CUR 1 |
#define SEEK_END 2 |
/programs/cmm/lib/mem.h |
---|
0,0 → 1,203 |
//mem.Init |
dword mem_Init() |
{ |
$push ebx |
$mov eax, 68 |
$mov ebx, 11 |
$int 0x40 |
$pop ebx |
return EAX; |
} |
//mem.Alloc |
dword mem_Alloc(dword size) |
{ |
$push ebx |
$push ecx |
$mov eax, 68 |
$mov ebx, 12 |
$mov ecx, size |
$int 0x40 |
$pop ecx |
$pop ebx |
return EAX; |
} |
//mem.ReAlloc |
stdcall dword mem_ReAlloc(dword mptr, size) |
{ |
$push ebx |
$push ecx |
$push edx |
$mov eax, 68 |
$mov ebx, 20 |
$mov ecx, size |
$mov edx, mptr |
$int 0x40 |
$pop edx |
$pop ecx |
$pop ebx |
return EAX; |
} |
//mem.Free |
void mem_Free(dword mptr) |
{ |
$push eax |
$push ebx |
$push ecx |
$mov eax, 68 |
$mov ebx, 13 |
$mov ecx, mptr |
$test ecx, ecx |
$jz end0 |
$int 0x40 |
@end0: |
$pop ecx |
$pop ebx |
$pop eax |
} |
//stdcall dword ?? |
inline fastcall mem_Move( EDI, ESI, ECX) |
{ |
asm { |
MOV EAX, ECX |
CMP EDI, ESI |
JG L1 |
JE L2 |
SAR ECX, 2 |
JS L2 |
REP MOVSD |
MOV ECX, EAX |
AND ECX, 3 |
REP MOVSB |
JMP SHORT L2 |
L1: LEA ESI, DSDWORD[ ESI+ECX-4] |
LEA EDI, DSDWORD[ EDI+ECX-4] |
SAR ECX, 2 |
JS L2 |
STD |
REP MOVSD |
MOV ECX, EAX |
AND ECX, 3 |
ADD ESI, 3 |
ADD EDI, 3 |
REP MOVSB |
CLD |
L2: |
} |
} |
/*:void fastcall memsetz( EDI, ECX) |
{ |
asm { |
XOR EAX, EAX |
MOV EDX, ECX |
SHR ECX, 2 |
REP STOSD |
MOV ECX, EDX |
AND ECX, 3 |
REP STOSB |
} |
} |
:void fastcall memset( EDI, ECX, AL) |
{ |
asm { |
MOV AH, AL |
MOVZX EDX, AX |
SHL EAX, 16 |
OR EAX, EDX |
MOV EDX, ECX |
SHR ECX, 2 |
REP STOSD |
MOV ECX, EDX |
AND ECX, 3 |
REP STOSB |
} |
} |
:void fastcall memcpy( EDI, ESI, ECX) |
{ |
asm { |
MOV EDX, ECX |
SHR ECX, 2 |
REP MOVSD |
MOV ECX, EDX |
AND ECX, 3 |
REP MOVSB |
} |
} |
:void fastcall memsetd( EDI, ECX, EAX) |
{ |
asm { |
REP STOSD |
} |
} |
:void fastcall memcpyd( EDI, ESI, ECX) |
{ |
asm { |
REP MOVSD |
} |
} |
:void fastcall memmov( EDI, ESI, ECX) |
{ |
asm { |
MOV EAX, ECX |
CMP EDI, ESI |
JG L1 |
JE L2 |
SAR ECX, 2 |
JS L2 |
REP MOVSD |
MOV ECX, EAX |
AND ECX, 3 |
REP MOVSB |
JMP SHORT L2 |
L1: LEA ESI, DSDWORD[ ESI+ECX-4] |
LEA EDI, DSDWORD[ EDI+ECX-4] |
SAR ECX, 2 |
JS L2 |
STD |
REP MOVSD |
MOV ECX, EAX |
AND ECX, 3 |
ADD ESI, 3 |
ADD EDI, 3 |
REP MOVSB |
CLD |
L2: |
} |
} |
:long fastcall memcmp( ESI, EDI, ECX) |
{ |
asm { |
MOV EAX, ECX |
SHR ECX, 2 |
REPE CMPSD |
MOV ECX, EAX |
AND ECX, 3 |
REPE CMPSB |
XOR EAX, EAX |
XOR ECX, ECX |
MOV AL, DSBYTE[ ESI-1] |
MOV CL, DSBYTE[ EDI-1] |
SUB EAX, ECX |
} |
}*/ |
/*#define memzset memsetz |
#define memset0 memsetz |
#define mem0set memsetz |
#define memset32 memsetd |
#define memcpy32 memcpyd*/ |
/programs/cmm/lib/memory.h |
---|
0,0 → 1,66 |
#code32 TRUE |
inline fastcall dword malloc(dword ECX){ |
dword size, heap; |
#speed |
size = ECX; |
EAX = 68; |
EBX = 11; |
$int 0x40; |
heap = EAX; |
IF (size<=heap) |
{ |
EAX = 68; |
EBX = 12; |
ECX = size; |
$int 0x40; |
} |
ELSE EAX=-1; |
#codesize |
} |
inline fastcall dword free(dword ECX){ |
#speed |
EAX = 68; |
EBX = 13; |
$int 0x40; |
#codesize |
} |
inline fastcall dword realloc(dword ECX, EDX){ |
#speed |
EAX = 68; |
EBX = 20; |
$int 0x40; |
#codesize |
} |
inline fastcall memmov( EDI, ESI, ECX) |
{ |
asm { |
MOV EAX, ECX |
CMP EDI, ESI |
JG L1 |
JE L2 |
SAR ECX, 2 |
JS L2 |
REP MOVSD |
MOV ECX, EAX |
AND ECX, 3 |
REP MOVSB |
JMP SHORT L2 |
L1: LEA ESI, DSDWORD[ ESI+ECX-4] |
LEA EDI, DSDWORD[ EDI+ECX-4] |
SAR ECX, 2 |
JS L2 |
STD |
REP MOVSD |
MOV ECX, EAX |
AND ECX, 3 |
ADD ESI, 3 |
ADD EDI, 3 |
REP MOVSB |
CLD |
L2: |
} |
} |
/programs/cmm/lib/random.h |
---|
0,0 → 1,55 |
/******************************************************************************* |
MenuetOS MineSweeper |
Copyright (C) 2003 Ivan Poddubny |
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
*******************************************************************************/ |
dword generator; // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë |
inline fastcall int random( ECX) |
// get pseudo-random number - ïîëó÷èòü ïñåâäîñëó÷àéíîå ÷èñëî |
{ |
$push ebx |
$rdtsc // eax & edx |
$xor eax,edx |
$not eax |
EBX = generator; |
$ror ebx,3 |
$xor ebx,0xdeadbeef |
EBX += EAX; |
generator = EBX; |
EAX += EBX; |
EAX = EAX % ECX; |
$pop ebx |
} |
inline fastcall randomize() |
// initialize random number generator - èíèöèàëèçèðîâàòü ãåíåðàòîð ñëó÷àéíûõ ÷èñåë |
{ |
asm |
{ |
mov eax,3 |
int 0x40 |
ror eax,16 |
} |
generator = EAX; |
} |
/programs/cmm/lib/scroll_lib.h |
---|
0,0 → 1,95 |
//lev |
//:dword boxlib = #abox_lib; |
:char abox_lib[]="/sys/lib/box_lib.obj"; |
:char aboxlib_init[] = "lib_init"; |
:char aScrollbar_v_draw = "scrollbar_v_draw"; |
:char aScrollbar_v_mouse = "scrollbar_v_mouse"; |
:char aScrollbar_h_draw = "scrollbar_h_draw"; |
:char aScrollbar_h_mouse = "scrollbar_h_mouse"; |
:char aVersion_scrollbar = "version_scrollbar"; |
dword boxlib_init = #aboxlib_init; |
dword scrollbar_v_draw = #aScrollbar_v_draw; |
dword scrollbar_v_mouse = #aScrollbar_v_mouse; |
dword scrollbar_h_draw = #aScrollbar_h_draw; |
dword scrollbar_h_mouse = #aScrollbar_h_mouse; |
:dword version_scrollbar = #aVersion_scrollbar; |
dword sc_am__ = 0x0; |
dword sc_bm__ = 0x0; |
struct scroll_bar |
{ |
//scroll_bar: |
word size_x,// equ [edi] |
start_x,// equ [edi+2] |
size_y,// equ [edi+4] |
start_y;// equ [edi+6] |
dword btn_height, // equ [edi+8] |
type,// equ [edi+12] |
max_area,// equ [edi+16] |
cur_area,// equ [edi+20] |
position,// equ [edi+24] |
bckg_col,// equ [edi+28] |
frnt_col,// equ [edi+32] |
line_col,// equ [edi+36] |
redraw;// equ [edi+40] |
word delta,// equ [edi+44] |
delta2,// equ [edi+46] |
r_size_x,// equ [edi+48] |
r_start_x,// equ [edi+50] |
r_size_y,// equ [edi+52] |
r_start_y;// equ [edi+54] |
dword m_pos,// equ [edi+56] |
m_pos_2,// equ [edi+60] |
m_keys,// equ [edi+64] |
run_size,// equ [edi+68] |
position2,// equ [edi+72] |
work_size,// equ [edi+76] |
all_redraw,// equ [edi+80] |
ar_offset;// equ [edi+84] |
}; |
/*scroll_bar scroll1 = { |
18,//word size_x, |
200, //start_x, |
398, //size_y, |
44,//start_y; |
18,//dword btn_height, |
0,//type, |
115,//max_area, (100+cur_area) |
15,//cur_area, |
0,//position, |
0xeeeeee,//bckg_col, |
0xD2CED0,//frnt_col, |
0x555555,//line_col, |
0,//redraw; |
0,//word delta, |
0,//delta2, |
0,//r_size_x, |
0,//r_start_x, |
0,//r_size_y, |
0,//r_start_y; |
0,//dword m_pos, |
0,//m_pos_2, |
0,//m_keys, |
0,//run_size, |
0,//position2, |
0,//work_size, |
1,//all_redraw, |
1//ar_offset; |
};*/ |
//btn_height - ¢ëá®â ¡®ª®¢ëå ª®¯®ª («¥¢ ï ¨ ¯à ¢ ï ¤«ï £®à¨§. ¨ ¢¥àåïï ¨ ¨¦ïï ¤«ï ¢¥àâ.) |
//type - type - 0-1-2, ®áâ «ìë¥ ¢ë£«ï¤ïâ ª ª 0. |
//max_area - ®¡« áâì ¬ ªá¨¬ «ì ï, ªâã «ì® ª®£¤ ¥ ¢« §¨â ¢ ®â®¡à ¦ ¥¬ãî ®¡« áâì, â.¥. á«ãç © ªâ¨¢®á⨠ª®¬¯®¥â (¢¥áì ¬ ªá¨¬ «ìë© à §¬¥à ¤®ªã¬¥â ) |
//cur_area - à §¬¥à ¡¥£ãª //®¡« áâì ®â®¡à ¦ ¥¬ ï (ª ª ï ç áâì ¤®ªã¬¥â ¢« §¨â ¢ íªà ) |
//position - ¯®§¨æ¨ï ¡¥£ãª ¨§¬¥ï¥¬ ï ®â 0 ¤® § 票ï (max_area-cur_area) |
//bckg_col - 梥⠢ãâ२©, ¯à¨¬¥ï¥âáï ¤«ï ®¡« á⥩ ¬¥¦¤ã ¡¥£ãª®¬ ¨ ª®ª ¬¨ |
//frnt_col - 梥â àã¦ë©, ¯à¨¬¥ï¥âáï ¤«ï ®¡« á⥩ ®â«¨çëå ®â ¯à¨¬¥ï¥¬ëå ¢ bckg_col |
//line_col - 梥⠫¨¨© ¨ áâ५®ª ª®¯ª å |
//redraw - ¨¤¨ª â®à ¥®¡å®¤¨¬®á⨠¯¥à¥à¨á®¢ª¨ ã¯à ¢«ï¥¬®© ®¡« á⨠ãç¨âë¢ ï ¨§¬¥¥¨¥ position ¨ cur_area |
//delta2 - ¨¤¨ª â®à § å¢ â 䮪ãá áªà®««¡ ஬ (㤥ঠ¨¥ ¡¥£ãª ) |
//all_redraw - ä« £ ãáâ ¢«¨¢ ¥¬ë© ¢ 1 ¤«ï ¯¥à¥à¨á®¢ª¨ ¢á¥£® ª®¬¯®¥â , ¥á«¨ ¯®áâ ¢¨âì 0, â® ¯¥à¥à¨á®¢ª ¯à®¨á室¨â ⮫쪮 ¤«ï ®¡« á⨠¡¥£ãª . ¢¥¤¥® ¤«ï ãáª®à¥¨ï ®âà¨á®¢ª¨, ¯®áª®«ìªã ¥ ¢® ¢á¥å á«ãç ïå âॡã¥âáï ¯à¨ã¤¨â¥ì® ®âà¨á®¢ë¢ âì ¢á¥ ç á⨠ª®¬¯®¥â . ®£¤ ¢ë§ë¢ ¥âáï ¯® ᮡëâ¨î ¬ëè¨ ¢á¥£¤ ®âà¨á®¢ë¢ ¥âáï á ¬¨¬ ª®¬¯®¥â®¬ á® § 票¥¬ 0. |
//ar_offset - ¢¥«¨ç¨ á¬¥é¥¨ï ¯à¨ ®¤®ªà ⮬ ¦ ⨨ ¡®ª®¢®© ª®¯ª¨. |
/programs/cmm/lib/strings.h |
---|
0,0 → 1,336 |
//------------------------------------------------------------------------------ |
// strcmp( ESI, EDI) |
// strlen( EDI) |
// strcpy( EDI, ESI) |
// strcat( EDI, ESI) |
// strchr( ESI,BL) |
// strrchr( ESI,BL) |
// strstr( EBX, EDX) |
// itoa( ESI) |
// atoi( EAX) |
// strupr( ESI) |
// strlwr( ESI) ----- âîçìîæíî íå ïîääåðæèâàåò êèðèëëèöó |
// strttl( EDX) |
// strtok( ESI) |
//------------------------------------------------------------------------------ |
inline fastcall signed int strcmp( ESI, EDI) |
{ |
loop() |
{ |
IF (DSBYTE[ESI]<DSBYTE[EDI]) RETURN -1; |
IF (DSBYTE[ESI]>DSBYTE[EDI]) RETURN 1; |
IF (DSBYTE[ESI]=='\0') RETURN 0; |
ESI++; |
EDI++; |
} |
} |
inline fastcall signed int strncmp( ESI, EDI, ECX) |
{ |
asm { |
MOV EBX, EDI |
XOR EAX, EAX |
MOV EDX, ECX |
OR ECX, ECX |
JE L1 |
REPNE SCASB |
SUB EDX, ECX |
MOV ECX, EDX |
MOV EDI, EBX |
XOR EBX, EBX |
REPE CMPSB |
MOV AL, DSBYTE[ ESI-1] |
MOV BL, DSBYTE[ EDI-1] |
SUB EAX, EBX |
L1: |
} |
} |
/* |
inline fastcall signed int strcmpi( ESI,EDI) |
uses EBX |
{ |
do{ |
$lodsb |
IF(AL>='a')&&(AL<='z')AL-=0x20; |
BL=DSBYTE[(E)DI]; |
IF(BL>='a')&&(BL<='z')BL-=0x20; |
AL-=BL; |
IF(!ZEROFLAG)BREAK; |
(E)DI++; |
}while(BL!=0); |
} |
inline char STRNCMPI((E)SI,(E)DI,(E)CX) |
{ |
(E)AX=0; |
LOOPNZ((E)CX){ |
$lodsb |
IF(AL>='a')&&(AL<='z')AL-=0x20; |
AH=DSBYTE[EDI]; |
IF(AH>='a')&&(AH<='z')AH-=0x20; |
EDI++; |
IF(AL==0)||(AH==0)||(AL!=AH)BREAK; |
} |
AL=AL-AH; |
}*/ |
inline fastcall unsigned int strlen( EDI) |
{ |
$xor eax, eax |
$mov ecx, -1 |
$REPNE $SCASB |
EAX-=2+ECX; |
} |
inline fastcall strcpy( EDI, ESI) |
{ |
$cld |
l2: |
$lodsb |
$stosb |
$test al,al |
$jnz l2 |
} |
inline fastcall strcat( EDI, ESI) |
{ |
asm { |
mov ebx, edi |
xor ecx, ecx |
xor eax, eax |
dec ecx |
repne scasb |
dec edi |
mov edx, edi |
mov edi, esi |
xor ecx, ecx |
xor eax, eax |
dec ecx |
repne scasb |
xor ecx, 0ffffffffh |
mov edi, edx |
mov edx, ecx |
mov eax, edi |
shr ecx, 2 |
rep movsd |
mov ecx, edx |
and ecx, 3 |
rep movsb |
mov eax, ebx |
} |
} |
dword itoa( ESI) |
{ |
unsigned char buffer[11]; |
EDI = #buffer; |
ECX = 10; |
if (ESI < 0) |
{ |
$mov al, '-' |
$stosb |
$neg esi |
} |
$mov eax, esi |
$push -'0' |
f2: |
$xor edx, edx |
$div ecx |
$push edx |
$test eax, eax |
$jnz f2 |
f3: |
$pop eax |
$add al, '0' |
$stosb |
$jnz f3 |
$mov al, '\0' |
$stosb |
return #buffer; |
} |
inline fastcall dword atoi( EDI) |
{ |
ESI=EDI; |
IF(DSBYTE[ESI]=='-')ESI++; |
EAX=0; |
BH=AL; |
do{ |
BL=DSBYTE[ESI]-'0'; |
EAX=EAX*10+EBX; |
ESI++; |
}while(DSBYTE[ESI]>0); |
IF(DSBYTE[EDI]=='-') -EAX; |
} |
inline fastcall signed int strchr( ESI,BL) |
{ |
int jj=0; |
do{ |
jj++; |
$lodsb |
IF(AL==BL) return jj; |
} while(AL!=0); |
return 0; |
} |
inline fastcall signed int strrchr( ESI,BL) |
{ |
int jj=0, last=0; |
do{ |
jj++; |
$lodsb |
IF(AL==BL) last=jj; |
} while(AL!=0); |
return last; |
} |
inline fastcall strupr( ESI) |
{ |
do{ |
AL=DSBYTE[ESI]; |
IF(AL>='a')IF(AL<='z')DSBYTE[ESI]=AL&0x5f; |
IF (AL>=160) && (AL<=175) DSBYTE[ESI] = AL - 32; //à-ï |
IF (AL>=224) && (AL<=239) DSBYTE[ESI] = AL - 80; //à-ï |
ESI++; |
}while(AL!=0); |
} |
inline fastcall strlwr( ESI) |
{ |
do{ |
$LODSB |
IF(AL>='A')&&(AL<='Z'){ |
AL+=0x20; |
DSBYTE[ESI-1]=AL; |
CONTINUE; |
} |
}while(AL!=0); |
} |
inline fastcall strttl( EDX) |
{ |
AL=DSBYTE[EDX]; |
IF(AL>='a')&&(AL<='z')DSBYTE[EDX]=AL&0x5f; |
IF (AL>=160) && (AL<=175) DSBYTE[EDX] = AL - 32; //à-ï |
IF (AL>=224) && (AL<=239) DSBYTE[EDX] = AL - 80; //à-ï |
do{ |
EDX++; |
AL=DSBYTE[EDX]; |
IF(AL>='A')&&(AL<='Z'){DSBYTE[EDX]=AL|0x20; CONTINUE;} |
IF(AL>='')&&(AL<='')DSBYTE[EDX]=AL|0x20; // -¯ |
IF (AL>=144) && (AL<=159) DSBYTE[EDX] = AL + 80; //à-ï |
}while(AL!=0); |
} |
inline fastcall dword strstr( EBX, EDX) |
{ |
asm { |
MOV EDI, EDX |
XOR ECX, ECX |
XOR EAX, EAX |
DEC ECX |
REPNE SCASB |
NOT ECX |
DEC ECX |
JE LS2 |
MOV ESI, ECX |
XOR ECX, ECX |
MOV EDI, EBX |
DEC ECX |
REPNE SCASB |
NOT ECX |
SUB ECX, ESI |
JBE LS2 |
MOV EDI, EBX |
LEA EBX, DSDWORD[ ESI-1] |
LS1: MOV ESI, EDX |
LODSB |
REPNE SCASB |
JNE LS2 |
MOV EAX, ECX |
PUSH EDI |
MOV ECX, EBX |
REPE CMPSB |
POP EDI |
MOV ECX, EAX |
JNE LS1 |
LEA EAX, DSDWORD[ EDI-1] |
JMP SHORT LS3 |
LS2: XOR EAX, EAX |
LS3: |
} |
} |
/* strtok( LPSTR dest, src, divs); |
src - óêàçàòåëü íà èñõîäíóþ ñòðîêó èëè ðåçóëüòàò ïðåäûäóùåãî âûçîâà |
dest - óêàçàòåëü íà áóôåð, êóäà áóäåò ñêîïèðîâàíî ñëîâî |
divs - óêàçàòåëü íà ñòðîêó, ñîäåðæàùóþ ñèìâîëû-ðàçäåëèòåëè |
Âîçâðàùàåò: 0, åñëè ñëîâ áîëüøå íåò |
íå 0, åñëè ñëîâî ñêîïèðîâàíî â dest (ïåðåäàéòå ýòî çíà÷åíèå |
â êà÷åñòâå src äëÿ ïîñëåäóþùåãî ïîèñêà) */ |
inline fastcall dword strtok( EDX, ESI, EBX) |
{ |
asm { |
XOR ECX, ECX |
MOV EDI, EBX |
XOR EAX, EAX |
DEC ECX |
REPNE SCASB |
XOR ECX, 0FFFFFFFFH |
DEC ECX |
PUSH ECX |
L1: LODSB |
OR AL, AL |
JZ L4 |
MOV EDI, EBX |
MOV ECX, SSDWORD[ ESP] |
REPNE SCASB |
JZ L1 |
DEC ESI |
L2: LODSB |
MOV EDI, EBX |
MOV ECX, SSDWORD[ ESP] |
REPNE SCASB |
JZ L3 |
MOV DSBYTE[ EDX], AL |
INC EDX |
JMP SHORT L2 |
L3: MOV EAX, ESI |
L4: POP ECX |
} DSBYTE[ EDX] = 0; |
} |
#define strncpy strcpyn |
#define strnmov strmovn |
#define stricmp strcmpi |
#define strcmpn strncmp |
#define strncmpi strcmpni |
#define stricmpn strcmpni |
#define strnicmp strcmpni |
#define strincmp strcmpni |
#define strcmpin strcmpni |
/programs/cmm/lib/truetype.h |
---|
0,0 → 1,29 |
//ýòî âñòàâèòü ïîñëå çàãðóçêè îñíîâíûõ áèáëèîòåê |
char fontinfo[28]; |
dword libtruetype = #att; |
char att[] = "/sys/lib/truetype.obj"; //"truetype.obj\0"; |
dword truetype = #att_truetype; |
dword get_length = #att_get_length; |
dword get_width = #att_get_width; |
dword text_out = #att_text_out; |
dword init_font = #att_init_font; |
dword am3__ = 0x0; |
dword bm3__ = 0x0; |
//import libimg , \ |
char att_truetype[] = "truetype"; |
char att_get_length[] = "get_length"; |
char att_get_width[] = "get_width"; |
char att_text_out[] = "text_out"; |
char att_init_font[] = "init_font"; |
//load_dll2(libtruetype, #truetype,0); |
//à ýòî - â ìîìåíò îòðèñîâêè îêíà |
//text_out stdcall (#text, -1, 40, 0xFF0000, 100, 100); |
/programs/cmm/lib |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/cmm/new_end/compile.bat |
---|
0,0 → 1,6 |
..\C--\C-- end.c |
del end |
rename end.com end |
..\C--\kpack end |
pause |
del warning.txt |
/programs/cmm/new_end/end.c |
---|
0,0 → 1,161 |
#include "..\lib\kolibri.h" |
#include "..\lib\figures.h" |
#include "..\lib\strings.h" |
#include "..\lib\random.h" |
#include "..\lib\mem.h" |
#include "..\lib\file_system.h" |
#ifndef ru |
char *BUTTONS_CAPTIONS[]={ |
"Ïåðåçàãðóçêà [Enter]"w, 13, |
"Âûêëþ÷åíèå [End]"w, 181, |
"ßäðî [Home]"w, 180, |
"Îòìåíà [Esc]"w, 27, |
0}; |
#else |
char *BUTTONS_CAPTIONS[]={ |
" Reboot [Enter]",13, |
" Power off [End]",181, |
" Kernel [Home]",180, |
" Close [Esc]",27, |
0}; |
#endif |
system_colors sc; |
unsigned char moon[6*6] = FROM "moon.raw"; |
int WIN_SIZE_X, WIN_SIZE_Y; |
int PANEL_X, PANEL_Y; |
#define NIGHT_PALEL_HEIGHT 45 |
#define STARS_COUNT 30 |
#define PANEL_SIZE_X 260 |
#define PANEL_SIZE_Y 165 |
dword stars_col[4]={0xD2CF19, 0x716900, 0x002041}; //0x005BFF - ãîëóáîé, ðåäêî |
void main() |
{ |
int key; |
Pause(10); |
WIN_SIZE_X=GetScreenWidth()+1; |
WIN_SIZE_Y=GetScreenHeight()+1; |
PANEL_X=WIN_SIZE_X-PANEL_SIZE_X/2; |
PANEL_Y=WIN_SIZE_Y-PANEL_SIZE_Y/2; |
loop() |
{ |
WaitEventTimeout(130); |
switch(EAX & 0xFF) |
{ |
case evButton: |
key=GetButtonID(); |
if (key==1) ExitProcess(); |
GOTO _BUTTON_MARK; |
case evKey: |
key = GetKey(); |
_BUTTON_MARK: |
if (key== 13) ExitSystem(REBOOT); //ENTER |
if (key==180) ExitSystem(KERNEL); //HOME |
if (key==181) ExitSystem(TURN_OFF); //END |
if (key== 27) ExitProcess(); //ESC |
if (key== 19) //CTRL+S |
{ |
RunProgram("rdsave",0); |
ExitProcess(); |
} |
break; |
case evReDraw: |
draw_window(); |
break; |
default: |
draw_stars(); |
} |
} |
} |
void draw_window() |
{ |
int x, y; |
sc.get(); |
DefineAndDrawWindow(0,0,WIN_SIZE_X, WIN_SIZE_Y, 0x01, 0, 0, 0x01fffFFF); |
draw_main_area(PANEL_X, PANEL_Y, PANEL_SIZE_X, PANEL_SIZE_Y); |
//draw grid |
for (y=0; y<WIN_SIZE_Y; y++) |
{ |
for (x=0; x<WIN_SIZE_X; x++) |
{ |
if (y>PANEL_Y) && (y<PANEL_Y+PANEL_SIZE_Y) && (x==PANEL_X) x+=PANEL_SIZE_X; //íà ïàíåëè íå ðèñóåì |
if (! y&1) && (! x&1) {PutPixel(x, y, 0); continue;} |
if ( y&1) && ( x&1) PutPixel(x, y, 0); |
} |
} |
} |
void draw_main_area() |
{ |
int i=0; |
DrawRectangle(PANEL_X, PANEL_Y, PANEL_SIZE_X, PANEL_SIZE_Y, 0); |
DrawBar(PANEL_X+1, PANEL_Y+NIGHT_PALEL_HEIGHT+1, PANEL_SIZE_X-1, PANEL_SIZE_Y-NIGHT_PALEL_HEIGHT-1, sc.work); |
for (i=0; i<4; i++) |
{ |
DefineButton(PANEL_X+33, i*23 + PANEL_Y+NIGHT_PALEL_HEIGHT+16, 190,19, BUTTONS_CAPTIONS[i*2+1],sc.work_button); |
WriteText(PANEL_X+59, i*23 + PANEL_Y+NIGHT_PALEL_HEIGHT+22, 0x80,sc.work_button_text, BUTTONS_CAPTIONS[i*2], 0); |
} |
draw_stars(); |
} |
void draw_stars() |
{ |
int i, x_pic, y_pic, col; |
DrawBar(PANEL_X+1, PANEL_Y+1, PANEL_SIZE_X-1, NIGHT_PALEL_HEIGHT, 0x002041); |
for (i=0; i<STARS_COUNT; i++) |
{ |
x_pic = random(PANEL_SIZE_X-1); |
y_pic = random(NIGHT_PALEL_HEIGHT-1); |
col = random(3); |
PutPixel(PANEL_X+1 +x_pic, PANEL_Y+1 +y_pic, stars_col[col]); |
} |
/*for (i=0; i<3; i++) |
{ |
x_pic = random(PANEL_SIZE_X-8)+4; |
y_pic = random(NIGHT_PALEL_HEIGHT-8)+4; |
PutPixel(PANEL_X +x_pic, PANEL_Y +y_pic, stars_col[0]); |
PutPixel(PANEL_X+1 +x_pic, PANEL_Y +y_pic, stars_col[1]); |
PutPixel(PANEL_X-1 +x_pic, PANEL_Y +y_pic, stars_col[1]); |
PutPixel(PANEL_X +x_pic, PANEL_Y +y_pic+1, stars_col[1]); |
PutPixel(PANEL_X +x_pic, PANEL_Y +y_pic-1, stars_col[1]); |
}*/ |
PutImage(#moon,6,6, PANEL_X+PANEL_SIZE_X-60,PANEL_Y+10); |
} |
stop: |
/programs/cmm/new_end/moon.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/new_end/moon.raw |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/new_end |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/cmm/notify/@notify |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/notify/compile.bat |
---|
0,0 → 1,6 |
..\C--\C-- notify.c |
del @notify |
rename notify.com @notify |
..\C--\kpack notify |
pause |
del warning.txt |
/programs/cmm/notify/notify.c |
---|
0,0 → 1,92 |
//notify 0.5 |
#include "..\lib\kolibri.h" |
#include "..\lib\strings.h" |
int SCREEN_SIZE_X, |
SCREEN_SIZE_Y; |
int WIN_Y=0, |
WIN_SIZE_X=300, |
WIN_SIZE_Y=28; |
void main() |
{ |
int TEXT_X=4, |
TEXT_Y=12; |
if (!param) |
{ |
if (GetSystemLanguage()==4) |
strcpy(#param, "Ýòà ïðîãðàììà ïîêàçûâàåò óâåäîìëåíèÿ."w); |
else |
strcpy(#param, "This program shows notices. Open it with params."); |
} |
SCREEN_SIZE_X=GetScreenWidth()+1; |
if (strlen(#param)*6>WIN_SIZE_X) WIN_SIZE_X=strlen(#param)*6+8; |
TEXT_X=-6*strlen(#param)+WIN_SIZE_X/2; |
TEXT_Y=WIN_SIZE_Y/2-3; |
//èçÿÿÿùíûé êîñòûëü, ðåàëèçóþùèé ìíîãîïîòî÷íîñòü :) |
while (!GetPixelColor(SCREEN_SIZE_X-1, SCREEN_SIZE_X, WIN_Y)) WIN_Y+=45; |
loop() |
{ |
WaitEventTimeout(500); |
switch(EAX & 0xFF) |
{ |
case evButton: |
if (GetButtonID()==1) ExitProcess(); |
break; |
case evKey: |
break; |
case evReDraw: |
DefineAndDrawWindow(SCREEN_SIZE_X-WIN_SIZE_X,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y, 0x01, 0, 0, 0x01fffFFF); |
DefineButton(0,0, WIN_SIZE_X, WIN_SIZE_Y, 1+BT_HIDE+BT_NOFRAME, 0); |
draw_grid(); |
WriteText(TEXT_X-1,TEXT_Y, 0x80, 0,#param,0); //òåíü |
WriteText(TEXT_X+1,TEXT_Y, 0x80, 0,#param,0); |
WriteText(TEXT_X,TEXT_Y-1, 0x80, 0,#param,0); |
WriteText(TEXT_X,TEXT_Y+1, 0x80, 0,#param,0); |
WriteText(TEXT_X-1,TEXT_Y-1, 0x80, 0,#param,0); |
WriteText(TEXT_X+1,TEXT_Y+1, 0x80, 0,#param,0); |
WriteText(TEXT_X-1,TEXT_Y+1, 0x80, 0,#param,0); |
WriteText(TEXT_X+1,TEXT_Y-1, 0x80, 0,#param,0); |
WriteText(TEXT_X,TEXT_Y, 0x80, 0xFFFfff,#param,0); |
break; |
default: |
ExitProcess(); |
} |
} |
} |
void draw_grid() |
{ |
int x, y; |
for (y=0; y<=WIN_SIZE_Y; y++) |
{ |
for (x=0; x<=WIN_SIZE_X; x++) |
{ |
if (! y&1) && (! x&1) PutPixel(x, y, 0); |
if ( y&1) && ( x&1) PutPixel(x, y, 0); |
//PutPixel(x, y, GetPixelColor(SCREEN_SIZE_X-WIN_SIZE_X+x, SCREEN_SIZE_X, y)); |
} |
} |
} |
stop: |
/programs/cmm/notify |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/cmm/rb/@rb |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/rb/compile.bat |
---|
0,0 → 1,7 |
del @rb |
..\C--\C-- rb |
..\C--\kpack rb.com |
rename rb.com @rb |
del warning.txt |
del rb.com |
pause |
/programs/cmm/rb/rb.c |
---|
0,0 → 1,134 |
//@RB - v0.5 |
#include "..\lib\kolibri.h" |
#include "..\lib\figures.h" |
#include "..\lib\file_system.h" |
#define ITEM_HEIGHT 18 |
#define ITEM_WIDTH 138 |
char *ITEMS_LIST[]={ |
"Ñìåíèòü òåìó îêîí "w, "/sys/SKINSEL", 0, |
"Âûáðàòü öâåò ôîíà "w, "/sys/media/palitra", 0, |
"Óïðàâëåíèå èêîíêàìè "w, "/sys/ICON", 0, |
"Íàñòðîéêà óñòðîéñòâ "w, "/sys/SETUP", 0, |
"Îáíîâèòü ñòîë "w, "/sys/REFRSCRN", 0, |
"Ïðîöåññû "w, "/sys/CPU", 0, |
0}; |
dword stak[100]; |
void main() |
{ |
mouse mm; |
byte thread_id; |
SetEventMask(100000b); |
loop() switch(WaitEvent()) |
{ |
case evMouse: |
mm.get(); |
if (GetPointOwner(mm.x, mm.y)==1) && (mm.pkm) |
{ |
SwitchToAnotherThread(); |
CreateThread(#window,#stak); |
} |
} |
} |
void window() |
{ |
proc_info MenuForm; |
system_colors sc; |
mouse m; |
int items_num, items_cur; |
int id1, key, i; |
sc.get(); |
SetEventMask(100111b); |
loop() switch(WaitEvent()) |
{ |
case evMouse: |
m.get(); |
GetProcessInfo(#MenuForm, SelfInfo); |
id1=GetProcessSlot(MenuForm.ID); |
if (id1<>GetActiveProcess()) ExitProcess(); |
id1=m.y-1/ITEM_HEIGHT; |
if (m.y<0) || (id1+1>items_num) || (m.x<0) || (m.x>ITEM_WIDTH) break; |
if (m.lkm) || (m.pkm) |
{ |
//feel clicking |
DrawBar(1, items_cur*ITEM_HEIGHT+2, ITEM_WIDTH-1, ITEM_HEIGHT-2, sc.work_graph); |
WriteText(8,items_cur*ITEM_HEIGHT+6,0x80,sc.work_button_text,ITEMS_LIST[items_cur*3],0); |
Pause(4); |
ItemProcess(items_cur); |
} |
if (items_cur<>id1) |
{ |
items_cur=id1; |
goto _ITEMS_DRAW; |
} |
break; |
case evButton: |
break; |
case evKey: |
key = GetKey(); |
if (key==27) ExitProcess(); |
if (key==178) && (items_cur) |
{ |
items_cur--; |
goto _ITEMS_DRAW; |
} |
if (key==177) && (items_cur+1<items_num) |
{ |
items_cur++; |
goto _ITEMS_DRAW; |
} |
if (key==13) |
{ |
ItemProcess(items_cur); |
} |
break; |
case evReDraw: |
while (ITEMS_LIST[items_num*3]) items_num++; |
m.get(); |
DefineAndDrawWindow(m.x+1,m.y,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,0x01,sc.work,0, 0x01fffFFF); |
DrawRectangle(0,0,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,sc.work_graph); //îáîäîê |
_ITEMS_DRAW: |
for (i=0; i<items_num; i++;) |
{ |
if (i==items_cur) |
{ |
DrawBar(1, i*ITEM_HEIGHT+1, ITEM_WIDTH-1, 1, sc.work_graph); |
DrawBar(1, i+1*ITEM_HEIGHT, ITEM_WIDTH-1, 1, 0xFFFfff); |
DrawBar(1, i*ITEM_HEIGHT+2, ITEM_WIDTH-1, ITEM_HEIGHT-2, sc.work_button); |
WriteText(8,i*ITEM_HEIGHT+6,0x80,sc.work_button_text,ITEMS_LIST[i*3],0); |
} |
else |
{ |
DrawBar(1, i*ITEM_HEIGHT+1, ITEM_WIDTH-1, ITEM_HEIGHT, sc.work); |
WriteText(8,i*ITEM_HEIGHT+6,0x80,sc.work_text,ITEMS_LIST[i*3],0); |
} |
} |
} |
} |
void ItemProcess(int num_id) |
{ |
RunProgram(ITEMS_LIST[num_id*3+1], ITEMS_LIST[num_id*3+2]); |
ExitProcess(); |
} |
stop: |
/programs/cmm/rb |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/cmm/tmpdisk/compile_en.bat |
---|
0,0 → 1,9 |
del lang.h |
echo #define LANG_ENG 1 >lang.h |
..\C--\C-- tmpdisk.c |
del tmpdisk |
rename tmpdisk.com tmpdisk |
rem ..\C--\kpack tmpdisk |
pause |
del warning.txt |
/programs/cmm/tmpdisk/compile_ru.bat |
---|
0,0 → 1,9 |
del lang.h |
echo #define LANG_RUS 1 >lang.h |
..\C--\C-- tmpdisk.c /lst |
del tmpdisk |
rename tmpdisk.com tmpdisk |
rem ..\C--\kpack tmpdisk |
pause |
del warning.txt |
/programs/cmm/tmpdisk/icons.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/tmpdisk/icons.raw |
---|
0,0 → 1,5 |
º;ÔCº;ÔCÔCÔC)æWÔC)æW)æW)æW)æWµ9º;ÔCº;ÔCÔC)æW)æWº;µ9º;º;ÿÿÿÿÿÿº;)æWÔC)æWµ9º;ÔCµ9ÿÿÿÿÿÿº;ÔCÔCÔCµ9ÿÿÿÿÿÿÔCµ9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿº;º;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔCµ9ÿÿÿÿÿÿÔCµ9º;º;º;ÿÿÿÿÿÿÔCº;º;ÔCµ9º;º;º;ÿÿÿÿÿÿÔCº;ÔCº;º;µ9º;º;º;µ9º;ÔC§4´9 2µ9µ9º;µ9µ9µ9º;µ9º;)))))))))))))))@ ßKñ@ ßKñKñKñg7óKñg7óg7óg7óg7ó))> Ù@ ßKñ@ ß@ ß@ ßKñ@ ßKñKñg7óg7ó))@ ß> Ù@ ß@ ß@ ßKñ@ ß@ ßKñg7óKñg7ó))> Ù@ ßKñ> Ù@ ß@ ß@ ßKñ@ ß@ ß@ ßKñ))> Ù2´2´2´2´2´2´2´2´2´2´Kñ))> Ù2´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2´@ ß))@ ß2´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2´Kñ))> Ù2´2´2´2´2´2´2´2´2´2´Kñ))> Ù@ ß@ ß@ ß> Ù@ ß@ ß> ÙKñ@ ß@ ßKñ))> Ù@ ß@ ß@ ß@ ß@ ß@ ß@ ßKñ@ ßKñ@ ß))@ ß> Ù@ ß@ ß@ ß> Ù@ ß@ ß@ ß> Ù@ ßKñ))9Ë> Ù8Ä> Ù> Ù@ ß> Ù> Ù> Ù@ ß> Ù@ ß)))))))))))))))X}X}X}X}X}X}X}X}X}X}X}X}X}X}X}ºë5Ëõ¶è5Ëõ5Ëõ4Êô_àÿ3Êô^ßþ]Þþ\Þþ^âÿX}X}¤ë³ä4Çð²ã²ã±ã3Æð±ã3Çñ1Çñ³ä]ßþX}X}¸é æ³ä³ä³ä5Çð³äµæÚZ |
¿^áÿX}X}¥ëµæ6Êó¢è´å´äµæÛTyÿÿÿY_ãÿX}X}¦íÀZ z°Û·èÛTyÿÿÿr ¶ |
+´å³ä5ËõX}X}¤ë´äµæÀkÿÿÿkÀ"¶ä³ä²ã5ËõX}X}¤ë´ä´åµæ ¯[ ¯ß·æ³ä4Çð¶èX}X}¸é¡æ´ä´å¶æ³ä´ä³ä æ³ä5ËõX}X}àë â¥ë¥ë¹ê©é¥ë¤ë¸é¤ëºëX}X}X}X}X}X}X}X}X}X}X}X}X}X}X}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlggWPPWPPWPPWPPWPPWPPWPPWPPWPPWPPWPPlggÿÿÿWPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWPPÿÿÿWPP×ÒÓåââåââåââåââåââåââåââåââåââ×ÒÓWPPÿÿÿWPP×ÒÓåââåââåââåââåââåââåââåââåââ×ÒÓWPPÿÿÿWPP«¢£«¢£«¢£«¢£«¢£«¢£«¢£«¢£«¢£«¢£«¢£WPPÿÿÿWPPWPPWPPWPPWPPWPPWPPWPPWPPWPPWPPWPPWPPÿÿÿÿÿÿWPPÿÿÿWPPÿÿÿWPPÿÿÿWPPÿÿÿWPPÿÿÿWPPÿÿÿÿÿÿÿÿÿWPPÿÿÿWPPÿÿÿWPPÿÿÿWPPÿÿÿWPPÿÿÿWPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ |
\ No newline at end of file |
/programs/cmm/tmpdisk/t_console.c |
---|
0,0 → 1,87 |
///////////////////////////////////////////////////////////////////////////////////////// |
///////////////////////// êîíñîëü //////////////////// |
///////////////////////////////////////////////////////////////////////////////////////// |
/*#ifdef LANG_RUS |
char *rezult_text[]={ |
"îïåðàöèÿ óñïåøíî çàâåðøåíà"w, |
"íåèçâåñòíûé IOCTL, íåâåðíûé ðàçìåð ïðåäîñòàâëÿåìûõ äàííûõ..."w, |
"íîìåð äèñêà äîëæåí áûòü îò 0 äî 9"w, |
"ðàçìåð ñîçäàâàåìîãî äèñêà ñëèøêîì âåëèê"w, |
"ðàçìåð ñîçäàâàåìîãî äèñêà ñëèøêîì ìàë"w, |
"îøèáêà âûäåëåíèÿ ïàìÿòè"w, |
"íåèçâåñòíàÿ îøèáêà O_o"w, |
0}; |
#else*/ |
char *rezult_text[]={ |
"operation compleated successfully", |
"unknown IOCTL code, wrong input/output size...", |
"DiskId must be from 0 to 9", |
"DiskSize is too large", |
"DiskSize is too small", |
"memory allocation failed", |
"unknown error O_o", |
0}; |
//#endif |
void Console_Work() |
{ |
unsigned int disk_size, driver_rezult; |
char size_t[256]; |
strlwr(#param); |
switch (param[0]) |
{ |
case '?': //ïîìîùü ïî êîììàíäàì |
case 'h': |
debug("tmpdisk command line parameters:"); |
debug("a[number]s[size in MB] - add RAM disk"); |
debug("d[number] - delete RAM disk"); |
ExitProcess(); |
break; |
case 'd': //óäàëèòü äèñê |
debug("trying to delete disk"); |
del_disk.DiskId = param[1]-'0'; |
ioctl.handle = driver_handle; |
ioctl.io_code = DEV_DEL_DISK; |
ioctl.input = #del_disk; |
ioctl.inp_size = sizeof(del_disk); |
ioctl.output = 0; |
ioctl.out_size = 0; |
break; |
case 'a': //äîáàâèòü äèñê |
debug("trying to add disk"); |
disk_size= strchr(#param, 's'); |
if (!disk_size) |
{ |
add_disk.DiskSize = GetFreeRAM() / 5; |
debug("disk size is not specified"); |
strcpy(#size_t, "10% from free RAM will be used, new DiskSize: "); |
driver_rezult=itoa(add_disk.DiskSize/2048); |
strcat(#size_t, driver_rezult); |
//strcat(#size_t, itoa(add_disk.DiskSize/2048)); |
strcat(#size_t, " MB"); |
debug(#size_t); |
} |
else |
add_disk.DiskSize = atoi(#param+disk_size)*2048; |
add_disk.DiskId = param[1]-'0'; |
ioctl.handle = driver_handle; |
ioctl.io_code = DEV_ADD_DISK; |
ioctl.input = #add_disk; |
ioctl.inp_size = sizeof(add_disk); |
ioctl.output = 0; |
ioctl.out_size = 0; |
break; |
default: |
debug("unknown command line parameters"); |
debug("use 'h' or '?' for help"); |
ExitProcess(); |
} |
driver_rezult = RuleDriver(#ioctl); |
if (driver_rezult<7) debug(rezult_text[driver_rezult]); |
} |
/programs/cmm/tmpdisk/t_window.c |
---|
0,0 → 1,266 |
#include "..\lib\figures.h" |
#include "..\lib\mem.h" |
#include "..\lib\dll.h" |
#include "..\lib\edit_box_lib.h" |
#ifdef LANG_RUS |
unsigned char *but_text[]={ |
"Äîáàâèòü äèñê [F2]"w, |
"Óäàëèòü äèñê [Del]"w, |
"Äîáàâèòü [Ctrl+Enter]"w, |
0}; |
?define INTRO_TEXT_1 "Çäåñü áóäåò îòîáðàæàòüñÿ ñïèñîê"w |
?define INTRO_TEXT_2 "âèðòóàëüíûõ äèñêîâ â ñèñòåìå."w |
?define INTRO_TEXT_3 "Ïîïðîáóéòå äîáàâèòü îäèí..."w |
?define NOTIFY_TEXT_NO_DISK "Äëÿ íà÷àëà äîáàâüòå õîòÿ áû îäèí äèñê"w |
?define NOTIFY_TEXT_DISK_LIMIT "Äîñòèãíóò ïðåäåë êîëè÷åñòâà âèðòóàëüíûõ äèñêîâ"w |
#else |
unsigned char *but_text[]={ |
"Add disk [F2]", |
"Delete disk [Del]", |
"Add [Ctrl+Enter]", |
0}; |
?define INTRO_TEXT_1 " There will be list of mounted" |
?define INTRO_TEXT_2 " virtual disks." |
?define INTRO_TEXT_3 " Try to add one..." |
?define NOTIFY_TEXT_NO_DISK "You need to have at least one disk" |
?define NOTIFY_TEXT_DISK_LIMIT "Reached the limit of the number of virtual disks" |
#endif |
struct path_string { unsigned char Item[256]; }; |
path_string disk_list[40]; |
dword devbuf; |
int disk_num; |
int selected; |
system_colors sc; |
proc_info Form; |
int mouse_dd; |
unsigned char dsize[30]; |
edit_box edit1= {40,20,200,0xffffff,0x94AECE,0x94AECE,0x94AECE,0,4,#dsize,#mouse_dd,100000000000010b}; |
unsigned char icons[14*56] = FROM "icons.raw"; |
void Main_Window() |
{ |
unsigned int id; |
unsigned char key; |
mem_Init(); |
if (load_dll2(boxlib, #edit_box_draw,0)!=0) |
{ |
notify("error: library doesn't exists /rd/1/lib/box_lib.obj"); |
ExitProcess(); |
} |
SetEventMask(0x27); |
loop() |
{ |
switch(WaitEvent()) |
{ |
case evMouse: |
//edit_box_mouse stdcall (#edit1); |
break; |
case evButton: |
id=GetButtonID(); |
if (id==1) ExitProcess(); |
if (id==10) AddDisk(); |
if (id==11) //del |
{ |
_DEL_DISK: |
if (disk_num==0) |
{ |
notify(NOTIFY_TEXT_NO_DISK); |
break; |
} |
param[0]='d'; |
param[1]=disk_list[selected].Item[3]; |
Console_Work(); |
Pause(15); |
GetDisks(); |
DrawTmpDisks(); |
} |
if (id>=20) |
{ |
if (selected==id-20) OpenTmpDisk(); |
selected=id-20; |
DrawTmpDisks(); |
} |
break; |
case evKey: |
key = GetKey(); |
if (key==182) if (disk_num<>0) goto _DEL_DISK; |
if (key==51) AddDisk(); |
if (key==13) OpenTmpDisk(); |
if (key==178) |
{ |
if (selected==0) break; |
selected--; |
DrawTmpDisks(); |
} |
if (key==177) |
{ |
if (selected+2>disk_num) break; |
selected++; |
DrawTmpDisks(); |
} |
if (key==176) |
{ |
if (selected<3) break; |
selected-=3; |
DrawTmpDisks(); |
} |
if (key==179) |
{ |
if (selected+4>disk_num) break; |
selected+=3; |
DrawTmpDisks(); |
} |
//EAX=key<<8; |
//edit_box_key stdcall(#edit1); |
break; |
case evReDraw: |
Draw_Window(); |
} |
} |
} |
void OpenTmpDisk() |
{ |
unsigned char eol_param[256]; |
if (!disk_num) return; |
strcpy(#eol_param, "/tmp#/1/"); |
eol_param[4]=disk_list[selected].Item[3]; |
RunProgram("/sys/File managers/Eolite", #eol_param); |
} |
void GetDisks() |
{ |
unsigned int j, fcount=30; |
unsigned char disk_name[256]; |
mem_Free(devbuf); |
devbuf= mem_Alloc(32); |
ReadDir(0, devbuf, "/"); |
fcount=ESDWORD[devbuf+8]; |
mem_Free(devbuf); |
devbuf = mem_Alloc(fcount+1*304+32); |
ReadDir(fcount, devbuf, "/"); |
disk_num=0; |
for (j=0; j<fcount; j++;) |
{ |
strcpy(#disk_name, j*304+devbuf+72); |
if (disk_name[0]!='t') continue; |
strcpy(#disk_list[disk_num].Item, #disk_name); |
disk_num++; |
} |
if (disk_num>12) disk_num=12; |
} |
unsigned int disk_pos_x[]={13,13,13,83,83,83,153,153,153,223,223,223}; |
unsigned int disk_pos_y[]={40,65,90,40,65,90,40,65,90,40,65,90}; |
void DrawTmpDisks() |
{ |
int i; |
DrawBar(0,31, Form.width-9,Form.height-GetSkinHeight()-5-30, 0xFFFFFF); |
if (disk_num==0) |
{ |
WriteText(17,45, 0x90, 0x777777, INTRO_TEXT_1, 0); |
WriteText(17,45+15, 0x90, 0x777777, INTRO_TEXT_2, 0); |
WriteText(17,45+42, 0x90, 0x777777, INTRO_TEXT_3, 0); |
return; |
}; |
if (selected>=disk_num) selected=disk_num-1; //âîññòàíàâëèâàåò âûäåëåíèå - õîðîøàÿ ôè÷à |
for (i=0; i<10; i++) DeleteButton(20+i); |
for (i=0; i<disk_num; i++) |
{ |
DefineButton(disk_pos_x[i], disk_pos_y[i], 60, 20, 20+i, 0xFFFfff); |
WriteText(disk_pos_x[i]+25,disk_pos_y[i]+6, 0x90, 0, #disk_list[i].Item, 0); |
_PutImage(disk_pos_x[i]+5,disk_pos_y[i]+4, 14,14, 3*14*14*3+#icons); |
if (selected==i) DrawRectangle(disk_pos_x[i], disk_pos_y[i], 60-1, 20-1, 0x00459A); |
} |
} |
void AddDisk() |
{ |
unsigned int i, j; |
if (disk_num>=10) |
{ |
notify(NOTIFY_TEXT_DISK_LIMIT); |
return; |
} |
param[0]='a'; |
for (i=0; i<9; i++) |
{ |
for (j=0; j<=disk_num; j++) |
{ |
if (i+48==disk_list[j].Item[3]) continue 1; |
} |
break; |
} |
param[1]=i+48; |
Console_Work(); |
Pause(5); |
GetDisks(); |
DrawTmpDisks(); |
} |
void Draw_Window() |
{ |
int i, x; |
sc.get(); |
DefineAndDrawWindow(170,150,314,250,0x74,sc.work,"Virtual Disk Manager 0.4",0); |
GetProcessInfo(#Form, SelfInfo); |
if (Form.status_window>2) return; //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì |
//ðèñóåì ïàíåëü |
DrawBar(0,0, Form.width-9,30, sc.work); |
DrawBar(0,30, Form.width-9,1, sc.work_graph); |
x=6; |
for (i=0; i<2; i++) |
{ |
DefineButton(x,5, strlen(but_text[i])*6+28,19, 10+i, sc.work_button); |
_PutImage(x+3,8, 14,14, i*14*14*3+#icons); |
WriteText(x+22,11, 0x80, sc.work_button_text, but_text[i], 0); |
x+=strlen(but_text[i])*6+37; |
} |
//ïîëó÷àåì ñïèñîê äîñòóïíûõ äèñêîâ |
GetDisks(); |
//âûâîäèì äîñòóïíûå äèñêè |
DrawTmpDisks(); |
//AddPanel(); |
} |
/*void AddPanel() |
{ |
DrawBar(0,Form.height-GetSkinHeight()-40, Form.width-9,1, sc.work_graph); |
DrawBar(0,Form.height-GetSkinHeight()-39, Form.width-9,35, sc.work); |
strcpy(#dsize, itoa(GetFreeRAM()/10)); |
//strcpy(#dsize, "100"); |
edit1.size=edit1.pos=strlen(#dsize); |
edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà |
//DefineButton(-strlen(but_text[2])+Form.width-9,200, strlen(but_text[2])*6+28,19, 12, sc.work_button); |
//_PutImage(-strlen(but_text[2])+Form.width-9+3,200+3, 14,14, 2*14*14*3+#icons); |
}*/ |
/programs/cmm/tmpdisk/tmpdisk.c |
---|
0,0 → 1,71 |
#include "..\lib\kolibri.h" |
#include "..\lib\strings.h" |
#include "..\lib\file_system.h" |
#include "lang.h" |
///////////////////////////////////////////////////////////////////////////////////////// |
///////////////////////// îáëàñòü äàííûõ //////////////////// |
///////////////////////////////////////////////////////////////////////////////////////// |
struct ioctl_struct |
{ |
dword handle; |
dword io_code; |
dword input; |
dword inp_size; |
dword output; |
dword out_size; |
}; |
#define DEV_ADD_DISK 1 //input = structure add_disk_struc |
#define DEV_DEL_DISK 2 //input = structure del_disk_struc |
struct add_disk_struc |
{ |
dword DiskSize; // in sectors, 1 sector = 512 bytes. Include FAT service data |
unsigned char DiskId; // from 0 to 9 |
}; |
struct del_disk_struc |
{ |
unsigned char DiskId; //from 0 to 9 |
}; |
ioctl_struct ioctl; |
add_disk_struc add_disk; |
del_disk_struc del_disk; |
int driver_handle; |
///////////////////////////////////////////////////////////////////////////////////////// |
///////////////////////// êîä //////////////////// |
///////////////////////////////////////////////////////////////////////////////////////// |
#include "t_console.c" |
#include "t_window.c" |
void main() |
{ |
debug("========= tmpdisk 0.4 ========="); |
driver_handle = LoadDriver("tmpdisk"); |
if (driver_handle==0) |
{ |
notify("error: /rd1/1/lib/tmpdisk.obj driver loading failed"); |
notify("program terminated"); |
ExitProcess(); |
} |
else |
debug("tmpdisk.obj driver loaded successfully"); |
if (param) |
Console_Work(); |
else |
Main_Window(); |
ExitProcess(); |
} |
stop: |
/programs/cmm/tmpdisk |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/cmm |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |