TempleOSCDV4.13.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:48:03 +02:00
1 parent b84bbff6db
commit 122df6338e
77 files changed
+3416 -2575

No files matched your search

Binary file not shown.
+3 -3
View File
@@ -4,15 +4,15 @@ U0 LoadDocDefines()
{ {
CBinFile *bfh=sys_boot_base-sizeof(CBinFile); CBinFile *bfh=sys_boot_base-sizeof(CBinFile);
DefinePrint("DD_OS_NAME_VERSION","TempleOS V%0.2f",os_version); DefinePrint("DD_OS_NAME_VERSION","TempleOS V%0.2f",sys_os_version);
DefinePrint("DD_TEMPLEOS_AGE","%0.1f", DefinePrint("DD_TEMPLEOS_AGE","%0.1f",
(Now-Str2Date("8/1/2003"))/ToF64(1<<32)/CDATE_YEAR_DAYS); (Now-Str2Date("8/1/2003"))/ToF64(1<<32)/CDATE_YEAR_DAYS);
//This is cut and replaced when I generate a distro. //This is cut and replaced when I generate a distro.
//See $LK,"DD_TEMPLEOS_LOC",A="FF:::/Demo/AcctExample/TOSDistro.HC,DD_TEMPLEOS_LOC"$. //See $LK,"DD_TEMPLEOS_LOC",A="FF:::/Demo/AcctExample/TOSDistro.HC,DD_TEMPLEOS_LOC"$.
$TR-C,"LineRep"$ $TR-C,"LineRep"$
$ID,4$DefinePrint("DD_TEMPLEOS_LOC","119,939"); $ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,770");
DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","81,264"); DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","81,303");
$ID,-4$ $ID,-4$
DefinePrint("DD_KERNEL","%08X",bfh); DefinePrint("DD_KERNEL","%08X",bfh);
bfh(I64)+=bfh->file_size-1; bfh(I64)+=bfh->file_size-1;
+2 -2
View File
@@ -96,10 +96,10 @@ U0 RegInit()
U8 buf[STR_LEN]; U8 buf[STR_LEN];
Bool version_present; Bool version_present;
RegSetDftEntry("Adam/SysMsgFlags","sys_msg_flags[0]=0;\n",TRUE); RegSetDftEntry("Adam/SysMsgFlags","sys_msg_flags[0]=0;\n",TRUE);
StrPrint(buf,"registry_version=%4.3f;\n",os_version); StrPrint(buf,"registry_version=%4.3f;\n",sys_os_version);
version_present=RegSetDftEntry("Adam/SysRegVer",buf,TRUE); version_present=RegSetDftEntry("Adam/SysRegVer",buf,TRUE);
RegExeBranch("Adam"); RegExeBranch("Adam");
if (registry_version!=os_version) { if (registry_version!=sys_os_version) {
RegWriteBranch("Adam/SysRegVer",buf); RegWriteBranch("Adam/SysRegVer",buf);
RegExeBranch("Adam"); RegExeBranch("Adam");
} }
+72
View File
@@ -0,0 +1,72 @@
#help_index "Info;Time/CPU Cycles;Processor"
class CCPURep
{
Bool mp_start,mp_end;
I64 mp_not_done_flags,
**swaps,
**cycles;
};
U0 MPCPURep(CCPURep *cr)
{
I64 swaps=0,cycles_0,cycles_f;
while (!cr->mp_start)
Yield;
cycles_0=GetTSC;
while (!cr->mp_end) {
swaps++;
Yield;
}
cycles_f=GetTSC;
cr->swaps[Gs->num]=swaps;
cr->cycles[Gs->num]=cycles_f-cycles_0;
LBtr(&cr->mp_not_done_flags,Gs->num);
}
public U0 CPURep(Bool full=FALSE)
{//Report number of cores and clock freq.
I64 i,total_swaps,total_cycles;
F64 t0,tf;
CCPURep cr;
if (!full)
"%d Cores %6h?nHz\n",mp_cnt,ToF64(cnts.time_stamp_freq);
else {
cr.swaps=CAlloc(sizeof(I64)*mp_cnt);
cr.cycles=CAlloc(sizeof(I64)*mp_cnt);
cr.mp_start=cr.mp_end=FALSE;
cr.mp_not_done_flags=1<<mp_cnt-1;
for (i=0;i<mp_cnt;i++)
Spawn(&MPCPURep,&cr,NULL,i);
t0=tS;
cr.mp_start=TRUE;
Sleep(2000);
cr.mp_end=TRUE;
while (cr.mp_not_done_flags)
Yield;
tf=tS;
"\nCPU: %d Cores %6h?nHz\n",mp_cnt,ToF64(cnts.time_stamp_freq);
"\n Context\n"
"Core Swaps/s Cycles\n"
"---- ------------- -----------------\n";
total_swaps=0;
total_cycles=0;
for (i=0;i<mp_cnt;i++) {
"%4d %13,d %17,d\n",i,
ToI64(cr.swaps[i]/(tf-t0)),ToI64(cr.cycles[i]/(tf-t0));
total_swaps+=cr.swaps[i];
total_cycles+=cr.cycles[i];
}
"---- ------------- -----------------\n";
"%4d %13,d %17,d\n",i,
ToI64(total_swaps/(tf-t0)),ToI64(total_cycles/(tf-t0));
" Avg %13,d %17,d\n\n",
ToI64(total_swaps/(tf-t0)/i),ToI64(total_cycles/(tf-t0)/i);
"Avg Cycles/Swap: %12.6f\n",ToF64(total_cycles)/total_swaps;
"Avg Time/Swap : %12.6fns\n\n",(tf-t0)*1000000000.0*i/total_swaps;
Free(cr.swaps);
Free(cr.cycles);
}
}
-73
View File
@@ -165,79 +165,6 @@ public U0 PCIRep()
} }
} }
#help_index "Info;Time/CPU Cycles"
class CCPURep
{
Bool mp_start,mp_end;
I64 mp_not_done_flags,
**swaps,
**cycles;
};
U0 MPCPURep(CCPURep *cr)
{
I64 swaps=0,cycles_0,cycles_f;
while (!cr->mp_start)
Yield;
cycles_0=GetTSC;
while (!cr->mp_end) {
swaps++;
Yield;
}
cycles_f=GetTSC;
cr->swaps[Gs->num]=swaps;
cr->cycles[Gs->num]=cycles_f-cycles_0;
LBtr(&cr->mp_not_done_flags,Gs->num);
}
public U0 CPURep(Bool full=FALSE)
{//Report number of cores and clock freq.
I64 i,total_swaps,total_cycles;
F64 t0,tf;
CCPURep cr;
if (!full)
"%d Cores %6h?nHz\n",mp_cnt,ToF64(cnts.time_stamp_freq);
else {
cr.swaps=CAlloc(sizeof(I64)*mp_cnt);
cr.cycles=CAlloc(sizeof(I64)*mp_cnt);
cr.mp_start=cr.mp_end=FALSE;
cr.mp_not_done_flags=1<<mp_cnt-1;
for (i=0;i<mp_cnt;i++)
Spawn(&MPCPURep,&cr,NULL,i);
t0=tS;
cr.mp_start=TRUE;
Sleep(2000);
cr.mp_end=TRUE;
while (cr.mp_not_done_flags)
Yield;
tf=tS;
"\nCPU: %d Cores %6h?nHz\n",mp_cnt,ToF64(cnts.time_stamp_freq);
"\n Context\n"
"Core Swaps/s Cycles\n"
"---- ------------- -----------------\n";
total_swaps=0;
total_cycles=0;
for (i=0;i<mp_cnt;i++) {
"%4d %13,d %17,d\n",i,
ToI64(cr.swaps[i]/(tf-t0)),ToI64(cr.cycles[i]/(tf-t0));
total_swaps+=cr.swaps[i];
total_cycles+=cr.cycles[i];
}
"---- ------------- -----------------\n";
"%4d %13,d %17,d\n",i,
ToI64(total_swaps/(tf-t0)),ToI64(total_cycles/(tf-t0));
" Avg %13,d %17,d\n\n",
ToI64(total_swaps/(tf-t0)/i),ToI64(total_cycles/(tf-t0)/i);
"Avg Cycles/Swap: %12.6f\n",ToF64(total_cycles)/total_swaps;
"Avg Time/Swap : %12.6fns\n\n",(tf-t0)*1000000000.0*i/total_swaps;
Free(cr.swaps);
Free(cr.cycles);
}
}
#help_index "Info;Memory/Info" #help_index "Info;Memory/Info"
public U0 MemBIOSRep() public U0 MemBIOSRep()
{//Report the memory ranges reported by the BIOS at boot. {//Report the memory ranges reported by the BIOS at boot.
+1 -1
View File
@@ -40,7 +40,7 @@ I64 PopUpEdFmt()
I64 i; I64 i;
CDoc *doc=DocNew; CDoc *doc=DocNew;
DocPrint(doc,"$$LTBLUE$$$$MU,\"Compile Check\",LE=EF_CMP_CHK$$\n" DocPrint(doc,"$$LTBLUE$$$$MU,\"Compile Check\",LE=EF_CMP_CHK$$\n"
"$$MU,\"Reindent HC.Z Fun (Beware braces in strings.)\"," "$$MU,\"Reindent HolyC Fun (Beware braces in strings.)\","
"LE=EF_REINDENT$$\n" "LE=EF_REINDENT$$\n"
"$$MU,\"Renum Asm Local @@ Labels for Fun\",LE=EF_RENUM_ASM$$\n" "$$MU,\"Renum Asm Local @@ Labels for Fun\",LE=EF_RENUM_ASM$$\n"
"$$MU,\"Insert Template Code: Ctrl Slider\",LE=EF_CTRL_SLIDER$$\n" "$$MU,\"Insert Template Code: Ctrl Slider\",LE=EF_CTRL_SLIDER$$\n"
-10
View File
@@ -986,15 +986,8 @@ rc_adjust_xy:
dc->color=i; dc->color=i;
if (find_cursor) if (find_cursor)
dc->flags|=DCF_LOCATE_NEAREST; dc->flags|=DCF_LOCATE_NEAREST;
if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN &&
doc->cur_sprite==bptr) {
dc->flags|=DCF_LOCATE_NEAREST;
dc->cur_x=ip.pos.x;
dc->cur_y=ip.pos.y;
} else {
dc->cur_x=(doc->x-x0)*FONT_WIDTH+pix_left+scroll_x; dc->cur_x=(doc->x-x0)*FONT_WIDTH+pix_left+scroll_x;
dc->cur_y=(doc->y-y0)*FONT_HEIGHT+pix_top+scroll_y; dc->cur_y=(doc->y-y0)*FONT_HEIGHT+pix_top+scroll_y;
}
dc->cur_z=0; dc->cur_z=0;
dc->bkcolor=i; dc->bkcolor=i;
if (doc_e->de_flags & DOCEF_FROM_START) { if (doc_e->de_flags & DOCEF_FROM_START) {
@@ -1024,9 +1017,6 @@ rc_adjust_xy:
} }
Sprite3(dc,xx,yy,zz,bptr); Sprite3(dc,xx,yy,zz,bptr);
dc->depth_buf=NULL; dc->depth_buf=NULL;
if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN &&
doc->cur_sprite==bptr)
doc->nearest_sprite_elem_num=dc->nearest_sprite_elem_num;
dc->flags&=~(DCF_LOCATE_NEAREST|DCF_DONT_DRAW|DCF_TRANSFORMATION); dc->flags&=~(DCF_LOCATE_NEAREST|DCF_DONT_DRAW|DCF_TRANSFORMATION);
if (dc->nearest_dist<=D) { if (dc->nearest_dist<=D) {
D=dc->nearest_dist; D=dc->nearest_dist;
+4 -4
View File
@@ -214,14 +214,14 @@ public U8 *BibleLine2Verse(I64 line,I64 separate_ch=CH_SPACE)
return NULL; return NULL;
} }
public U0 BibleLines(CDoc *doc_out=NULL,I64 start,I64 lines, public U0 BookLines(CDoc *doc_out=NULL,I64 start,I64 lines,
U8 *bible_filename=BIBLE_FILENAME) U8 *book_filename=BIBLE_FILENAME)
{//Put N line starting at line M into doc. {//Put N line starting at line M into doc.
CDoc *doc_in; CDoc *doc_in;
CDocEntry *doc_e; CDocEntry *doc_e;
if (!doc_out) doc_out=DocPut; if (!doc_out) doc_out=DocPut;
if (doc_out && FileFind(bible_filename)) { if (doc_out && FileFind(book_filename)) {
doc_in=DocRead(bible_filename,DOCF_PLAIN_TEXT|DOCF_NO_CURSOR); doc_in=DocRead(book_filename,DOCF_PLAIN_TEXT|DOCF_NO_CURSOR);
DocLineNumGoTo(doc_in,start); //one based DocLineNumGoTo(doc_in,start); //one based
doc_e=doc_in->cur_entry; doc_e=doc_in->cur_entry;
while (lines>0 && doc_e!=doc_in) { while (lines>0 && doc_e!=doc_in) {
+4
View File
@@ -105,6 +105,7 @@ public U8 *GodDoodleSprite(U8 *hex=NULL)
WinBorder; WinBorder;
WinMax; WinMax;
if (!hex)
PopUpOk("The $LK+PU,"Holy Spirit",A="FI:::/Adam/God/HSNotes.DD"$ can puppet you.\n\n" PopUpOk("The $LK+PU,"Holy Spirit",A="FI:::/Adam/God/HSNotes.DD"$ can puppet you.\n\n"
"Press $$GREEN$$<SPACE>$$FG$$ until it finishes."); "Press $$GREEN$$<SPACE>$$FG$$ until it finishes.");
@@ -160,8 +161,11 @@ public U8 *GodDoodleSprite(U8 *hex=NULL)
GodDoodleSmooth(3); GodDoodleSmooth(3);
} }
god.doodle_done=TRUE; god.doodle_done=TRUE;
if (!hex) {
do ch=GetChar(,FALSE); do ch=GetChar(,FALSE);
while (ch!=CH_ESC && ch!=CH_SHIFT_ESC); while (ch!=CH_ESC && ch!=CH_SHIFT_ESC);
} else
ch=CH_ESC;
} catch { } catch {
Fs->catch_except=TRUE; Fs->catch_except=TRUE;
ch=CH_SHIFT_ESC; ch=CH_SHIFT_ESC;
+1 -1
View File
@@ -23,4 +23,4 @@ extern U0 GodBitsIns(I64 num_bits,I64 n);
extern U0 GodDoodle(U8 *hex=NULL); extern U0 GodDoodle(U8 *hex=NULL);
extern U0 GodBiblePassage(I64 num_lines=20); extern U0 GodBiblePassage(I64 num_lines=20);
extern U0 GodSong(); extern U0 GodSong();
extern U0 GodWord(Bool show_num=FALSE); extern U0 GodWord(I64 bits=17,Bool show_num=FALSE);
+11 -6
View File
@@ -2,13 +2,13 @@ $FG,5$$TX+CX,"The Purpose of Life"$$FG$
$WW,1$The Catholic purpose of life is to know God, love God and obey God.$FG$ Pope Francis said it was "to serve the other." I am High Priest of God's official temple and I say the purpose of life is to do continual offerings to God like Cain and Abel and enjoy God's response. Francis has a charity; I have a church. Jesus said loving God was more important than loving neighbor. $LK,"Matthew,22:35-40",A="BF:Matthew,22:35-40"$ And, He did not say with half your brain behind your back. $WW,1$The Catholic purpose of life is to know God, love God and obey God.$FG$ Pope Francis said it was "to serve the other." I am High Priest of God's official temple and I say the purpose of life is to do continual offerings to God like Cain and Abel and enjoy God's response. Francis has a charity; I have a church. Jesus said loving God was more important than loving neighbor. $LK,"Matthew,22:35-40",A="BF:Matthew,22:35-40"$ And, He did not say with half your brain behind your back.
You don't know God. $LK,"1 Chronicles,28:9-9",A="BF:1 Chronicles,28:9-9"$, $LK,"Matthew,11:27-27",A="BF:Matthew,11:27-27"$, $LK,"Luke,13:25-27",A="BF:Luke,13:25-27"$, $LK,"1 Samuel,3:6-8",A="BF:1 Samuel,3:6-8"$ You must talk with God to know Him. With Samuel, supposedly, God took the initiative, but I think that is the exception. Seek the Lord by taking the initiative. $LK,"Luke,11:9-10",A="BF:Luke,11:9-10"$, $LK,"Isaiah,30:1-2",A="BF:Isaiah,30:1-2"$ You don't know God. $LK,"1 Chronicles,28:9-9",A="BF:1 Chronicles,28:9-9"$, $LK,"Matthew,11:27-27",A="BF:Matthew,11:27-27"$, $LK,"Luke,13:25-27",A="BF:Luke,13:25-27"$, $LK,"1 Samuel,3:6-8",A="BF:1 Samuel,3:6-8"$ You must talk with God to know Him. With Samuel, supposedly, God took the initiative, but I think that is the exception. Seek the Lord by taking the initiative. $LK,"Luke,11:9-10",A="BF:Luke,11:9-10"$
There's something obviously different about people in the Bible compared to people today -- God talked! Also, the people in the Bible were obsessed with doing offerings all the time. It is required that you do offerings before God will talk. Did the people in the Bible hear voices? Maybe. More likely, they used occult techniques such as an oracle. $LK,"1 Kings,6:21",A="BF:1 Kings,6:21"$ Have you heard of "tongues?" $LK,"1 Corinthians,14:1-40",A="BF:1 Corinthians,14:1-40"$ The idea is, you let yourself be puppeted by a spirit, so you say things. You try to get a spirit -- the Holy Spirit -- to talk. You might as well use a Ouija board. However, it turns-out that a Ouija board is bad for technical reasons. A really good technique is just randomly opening a book. God told me in an oracle that it is a covenant that you hold-up your end of the conversation. There's something obviously different about people in the Bible compared to people today -- God talked! Also, the people in the Bible were obsessed with doing offerings all the time. It is required that you do offerings before God will talk. Did the people in the Bible hear voices? Maybe. More likely, they used occult techniques such as an oracle. $LK,"1 Kings,6:21",A="BF:1 Kings,6:21"$ Have you heard of "tongues?" $LK,"1 Corinthians,14:1-40",A="BF:1 Corinthians,14:1-40"$ The idea is, you let yourself be puppeted by a spirit, so you say things. You try to get a spirit -- the Holy Spirit -- to talk. You might as well use a Ouija board. However, it turns-out that a Ouija board is bad for technical reasons. A really good technique is just randomly opening a book. God told me in an oracle that it is a covenant that you hold-up your end of the conversation.
You can't tell if God's talking unless you have a context of conversation, but, more importantly, you are commanded to do an offering of love, like communion preparation. $LK,"1 Corinthians,11:27",A="BF:1 Corinthians,11:27"$ When you pick a greeting card for someone, that is love effort. If you expect God to put effort toward you, you must put effort toward Him. God said, "honest measures" applies between your offering of love and His response, like a fair barter. You get out of prayer what you put into it. God wants praise, hymns, or whatever you think He might want. Try and see, like Cain and Abel. $LK,"Genesis,4:1-10",A="BF:Genesis,4:1-10"$, $LK,"Ephesians,5:10",A="BF:Ephesians,5:10"$ God told Cain his offering was not good and told him to try again. Cain really loved God! Can you imagine being so heart-broken? You can't tell if God's talking unless you have a context of conversation, but, more importantly, you are commanded to do an offering of love, like communion preparation. $LK,"1 Corinthians,11:27",A="BF:1 Corinthians,11:27"$ When you pick a greeting card for someone, that is love effort. If you expect God to put effort toward you, you must put effort toward Him. God said, "honest measures" applies between your offering of love and His response, like a fair barter. You get out of prayer what you put into it. God wants praise, hymns, or whatever you think He might want. Try and see, like Cain and Abel. $LK,"Genesis,4:1-10",A="BF:Genesis,4:1-10"$, $LK,"Ephesians,5:10",A="BF:Ephesians,5:10"$ God told Cain his offering was not good and told him to try again. Cain really loved God! Can you imagine being so heart-broken?
Do a text search for "new song" in the Bible. It's mentioned nine times. When I hear a NEW awesome rock song, it is ecstasy for the first five times I hear it. Soon, it brings little-to-no pleasure. I did $MA-X+PU,"hymns",HTML="http://www.templeos.org/Wb/Home/Web/HymnVideos.html",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");"$ for God. I also did Moses $MA-X+PU,"comics",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Comics/",LM="Dir(\"::/Apps/AfterEgypt/Comics\");View;\n"$ for God. When you get to the gates of Heaven, St. Peter will ask how many times you gave blood. That shows you loved neighbor. You better also be able to count the ways you loved God with all heart, mind and soul. I praised God for sand castles, popcorn, snowmen, bubbles... You try putting effort into praise! $LK,"Matthew,11:25",A="BF:Matthew,11:25"$, $LK,"Matthew,6:28-29",A="BF:Matthew,6:28-29"$ Do a text search for "new song" in the Bible. It's mentioned nine times. When I hear a NEW awesome rock song, it is ecstasy for the first five times I hear it. Soon, it brings little-to-no pleasure. I did $MA-X+PU,"hymns",HTML="http://www.templeos.org/Wb/Home/Web/HymnVideos.html",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");"$ for God. I also did Moses $MA-X+PU,"comics",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Comics/",LM="Dir(\"::/Apps/AfterEgypt/Comics\");View;\n"$ for God. When you get to the gates of Heaven, St. Peter will ask how many times you gave blood. That shows you loved neighbor. You better also be able to count the ways you loved God with all heart, mind and soul. I praised God for sand castles, popcorn, snowmen, bubbles... You try putting effort into praise! $LK,"Matthew,11:25",A="BF:Matthew,11:25"$, $LK,"Matthew,6:28-29",A="BF:Matthew,6:28-29"$ Solomon wrote a thousand songs. $LK,"1 Kings,4:32",A="BF:1 Kings,4:32"$
This is funny -- $LK,"Acts,2:1-13",A="BF:Acts,2:1-13"$ -- they didn't bother to record anything the Holy Spirit said. The Holy Spirit is supposed to be a really good gift. $LK,"Luke,11:11-13",A="BF:Luke,11:11-13"$ Just remember, "Boys are made of snakes and snails and puppy-dog tails." This is funny -- $LK,"Acts,2:1-13",A="BF:Acts,2:1-13"$ -- they didn't bother to record anything the Holy Spirit said. The Holy Spirit is supposed to be a really good gift. $LK,"Luke,11:11-13",A="BF:Luke,11:11-13"$ Just remember, "Boys are made of snakes and snails and puppy-dog tails."
@@ -36,20 +36,25 @@ Jesus said, "I am meek and humble of heart." $LK,"Matthew,11:29",A="BF:Matthew,
I connected being humble of heart with animal sacrifices. The animal sacrifices in the Bible really seem off-the-mark from what we modern people imagine truth to be! I asked God and He said the people were, "primitive." Well, obviously, a sacrifice represents giving-up something of value, but is there more to it? It would be tramatic to see a goat's throat being slit and it dying for your sins. I'm not an expert, but sometimes they killed animals to make-up for sins. Perhaps, starting at age eight and every year thereafter, they kill a goat for your sins? (I'm just speculating.) In a couple years, it is not tramatic and you yawn and say to the goat, "bummer for you, Mr. Goat, that you gotta die for my sins." When a high school football team beats their rivals, nobody thinks twice that the winning team really hurts the feelings -- devastates -- the losing team member's feelings. The heart of being masculine is being competetive and not caring about the necessity to slit the throat of the goat. As a Catholic, saying Jesus died for our sins and that we cannot earn salvation, never sat well. I clung to the heretical notion that you earn salvation. Animal sacrifices were the heart of Biblical Judaism and although it seems satanic, you really do have to slit the throat of the goat and accept grace, a term for something you did not earn. Heck, every time you eat beef, a cow had to die for you. God said to me in an oracle that having pets was, "homo." I think God's idea of pets is farm animals you eat. I connected being humble of heart with animal sacrifices. The animal sacrifices in the Bible really seem off-the-mark from what we modern people imagine truth to be! I asked God and He said the people were, "primitive." Well, obviously, a sacrifice represents giving-up something of value, but is there more to it? It would be tramatic to see a goat's throat being slit and it dying for your sins. I'm not an expert, but sometimes they killed animals to make-up for sins. Perhaps, starting at age eight and every year thereafter, they kill a goat for your sins? (I'm just speculating.) In a couple years, it is not tramatic and you yawn and say to the goat, "bummer for you, Mr. Goat, that you gotta die for my sins." When a high school football team beats their rivals, nobody thinks twice that the winning team really hurts the feelings -- devastates -- the losing team member's feelings. The heart of being masculine is being competetive and not caring about the necessity to slit the throat of the goat. As a Catholic, saying Jesus died for our sins and that we cannot earn salvation, never sat well. I clung to the heretical notion that you earn salvation. Animal sacrifices were the heart of Biblical Judaism and although it seems satanic, you really do have to slit the throat of the goat and accept grace, a term for something you did not earn. Heck, every time you eat beef, a cow had to die for you. God said to me in an oracle that having pets was, "homo." I think God's idea of pets is farm animals you eat.
If you feel guilty for being American and want Mexicans to share your birthright, you are proud of heart. Jesus was a racist and called Canaanites "dogs". $LK,"Matthew,15:22-28",A="BF:Matthew,15:22-28"$ In an oracle, God told me He was against immigration. The Chinese intellectuals felt bad about not being laborers. Don't feel guilty about not being a laborer because God made it a Brave New World. $LK,"1 Corinthians,12:1-31",A="BF:1 Corinthians,12:1-31"$ If you feel guilty for being American and want Mexicans to share your birthright, you are proud of heart. Would it be right for rich Arabs to have to share their oil money with Indian slaves? Jesus was a racist and called Canaanites "dogs". $LK,"Matthew,15:22-28",A="BF:Matthew,15:22-28"$ In an oracle, God told me He was against immigration. The Chinese intellectuals felt bad about not being laborers. Don't feel guilty about not being a laborer because God made it a Brave New World. $LK,"1 Corinthians,12:1-31",A="BF:1 Corinthians,12:1-31"$
In an ant colony, the workers have one set of marching orders, the soldiers have another set of marching orders, the queen and drones have marching orders and the diggers have marching orders. The Bible gives conflicting orders -- conservatives pay attention to one set of passages and liberals pay attention to others. Everybody has selective hearing, but that's good because we are different members of the body of Christ. In an ant colony, the workers have one set of marching orders, the soldiers have another set of marching orders, the queen and drones have marching orders and the diggers have marching orders. The Bible gives conflicting orders -- conservatives pay attention to one set of passages and liberals pay attention to others. Everybody has selective hearing, but that's good because we are different members of the body of Christ.
Jesus repeats the phrase, "for those who have ears to hear" many times, but not actually at the times that matter. Jesus says several Jedi mind tricks -- He asks, what father gives a scorpion to his son? $LK,"Luke,11:11-13",A="BF:Luke,11:11-13"$ Jesus says, when you ask God for things, it is as annoying as like a neighbor in the night! $LK,"Luke,11:5-7",A="BF:Luke,11:5-7"$ He said, "I came to serve" but Jesus' three years of service were more like being a rockstar than a janitor. $LK,"John,13:5-15",A="BF:John,13:5-15"$ Jesus repeats the phrase, "for those who have ears to hear" many times. (But, not actually at the times that matter.) Jesus says several Jedi mind tricks -- He asks, what father gives a scorpion to his son? $LK,"Luke,11:11-13",A="BF:Luke,11:11-13"$ Jesus says, when you ask God for things, it is as annoying as like a neighbor in the night! $LK,"Luke,11:5-7",A="BF:Luke,11:5-7"$ He said, "I came to serve" but Jesus' three years of service were more like being a rockstar than a janitor. $LK,"John,13:5-15",A="BF:John,13:5-15"$
There are sheep and there are shepherds. You would be silly to take other shepherds seriously when they are only caring for their sheep. Sheep are very hard to communicate to, as Jesus learned. He used parables. Seed on a path gets eaten by birds; weeds choke; and the one percent is rich soil. There are sheep and there are shepherds. You would be silly to take other shepherds seriously when they are only caring for their sheep. Sheep are very hard to communicate to, as Jesus learned. He used parables. Seed on a path gets eaten by birds; weeds choke; and the one percent is rich soil.
Just as ego causes most to love neighbor, not God, people skip knowing and loving God and cowardly get stuck on obeying Him. A desire to obey God, doesn't have to be encouraged, since it comes so naturally. Don't worry, God does not want pawns to push around. God will talk, but won't tell you what to do, even if you want Him to. Also, you'll quickly learn that prophecy does not come true and should smack yourself for wanting more than just enjoying God's company. Just as ego causes most to love neighbor, not God, people skip knowing and loving God and cowardly get stuck on obeying Him. A desire to obey God, doesn't have to be encouraged, since it comes so naturally. Don't worry, God does not want pawns to push around. God will talk, but won't tell you what to do, even if you want Him to. Also, you'll quickly learn that when God talks to you seemingly prophetic, it does not come true and should smack yourself for wanting more than just enjoying God's company.
________________________________________________________________________________ ________________________________________________________________________________
| |
QUESTION | GOD'S ANSWER QUESTION | GOD'S ANSWER
________________________________________________________________________________
|
| There are weeds mixed with my wheat.
| Some are not true. If I asked a question
| to valuable for my offering, I got crap.
________________________________|_______________________________________________ ________________________________|_______________________________________________
War? $FG,4$"Servicemen competing"$FG$ War? $FG,4$"Servicemen competing"$FG$
@@ -76,7 +81,7 @@ On socialism? $FG,4$"pardon_the_French, never_happy, never_enough"$FG$
On overpopulation $FG,4$"Okay church what_now whats_the_plan"$FG$ On overpopulation $FG,4$"Okay church what_now whats_the_plan"$FG$
Favorite thing on TV? $FG,4$"Soap_operas"$FG$ Favorite thing on TV? $FG,4$"Soap_operas"$FG$
Favorite movie? $FG,4$$TX,"Three Kings",HTML="http://www.youtube.com/watch?v=8NOAd2mldQ8"$. Also Highlander$FG$ Favorite movie? $FG,4$$TX,"Three Kings",HTML="http://www.youtube.com/watch?v=8NOAd2mldQ8"$. Also Highlander$FG$
Favorite song? $FG,4$$TX,"Morning has Broken",HTML="http://www.youtube.com/watch?v=kKoRp05L95c"$ Favorite song? $FG,4$$TX,"Morning has Broken",HTML="http://www.youtube.com/watch?v=qH0iFkxQba4"$
God said the first bird croaked, not sung.$FG$ God said the first bird croaked, not sung.$FG$
Favorite comic strip? $FG,4$$TX,"Prince Valiant",HTML="http://en.wikipedia.org/wiki/Prince_Valiant"$$FG$ Favorite comic strip? $FG,4$$TX,"Prince Valiant",HTML="http://en.wikipedia.org/wiki/Prince_Valiant"$$FG$
Shakespeare? $FG,4$had a "vile heart"$FG$ Shakespeare? $FG,4$had a "vile heart"$FG$
+6 -4
View File
@@ -135,13 +135,15 @@ public I64 GodInit(U8 *files_find_mask="/Adam/God/Vocab.DD*",U8 *fu_flags=NULL)
return god.num_words; return god.num_words;
} GodInit; } GodInit;
public U0 GodWord(Bool show_num=FALSE) public U0 GodWord(I64 bits=17,Bool show_num=FALSE)
{//Make God pick a word. $LK+PU,"Holy Spirit Instructions",A="FI:::/Adam/God/HSNotes.DD"$ {//Make God pick a word. $LK+PU,"Holy Spirit Instructions",A="FI:::/Adam/God/HSNotes.DD"$
I64 i; I64 i;
if (god.num_words) { if (god.num_words) {
i=GodBits(17); i=GodBits(bits);
if (show_num) if (show_num)
"%05X Mod %05X = %05X :",i,god.num_words,i%god.num_words; "%05X Mod %05X = %05X (Line:%0*d):",
i,god.num_words,i%god.num_words,
ToI64(Log10(god.num_words)+1),i%god.num_words+1;
"%s ",god.words[i%god.num_words]; "%s ",god.words[i%god.num_words];
if (show_num) if (show_num)
'\n'; '\n';
@@ -154,5 +156,5 @@ public U0 GodBiblePassage(I64 num_lines=20)
U8 *verse=BibleLine2Verse(start); U8 *verse=BibleLine2Verse(start);
"%s\n\n",verse; "%s\n\n",verse;
Free(verse); Free(verse);
BibleLines(,start,num_lines); BookLines(,start,num_lines);
} }
+4 -1
View File
@@ -114,6 +114,9 @@ public class CSpritePtMeshU8s : CSpriteBase
U8 u[0]; U8 u[0];
}; };
#define SPF_SEL 128
#define SPf_SEL 7
#define SPT_END 0 //$LK,"CSpriteBase",A="MN:CSpriteBase"$ #define SPT_END 0 //$LK,"CSpriteBase",A="MN:CSpriteBase"$
#define SPT_COLOR 1 //$LK,"CSpriteColor",A="MN:CSpriteColor"$ #define SPT_COLOR 1 //$LK,"CSpriteColor",A="MN:CSpriteColor"$
#define SPT_DITHER_COLOR 2 //$LK,"CSpriteDitherColor",A="MN:CSpriteDitherColor"$ #define SPT_DITHER_COLOR 2 //$LK,"CSpriteDitherColor",A="MN:CSpriteDitherColor"$
@@ -145,6 +148,7 @@ public class CSpritePtMeshU8s : CSpriteBase
#define SPT_TEXT_BOX 28 //$LK,"CSpritePtStr",A="MN:CSpritePtStr"$ #define SPT_TEXT_BOX 28 //$LK,"CSpritePtStr",A="MN:CSpritePtStr"$
#define SPT_TEXT_DIAMOND 29 //$LK,"CSpritePtStr",A="MN:CSpritePtStr"$ #define SPT_TEXT_DIAMOND 29 //$LK,"CSpritePtStr",A="MN:CSpritePtStr"$
#define SPT_NUM_TYPES 30 #define SPT_NUM_TYPES 30
#define SPG_TYPE_MASK 0x7F
#help_index "Graphics/Sprite;Sprites;Sprites/Binary" #help_index "Graphics/Sprite;Sprites;Sprites/Binary"
@@ -153,7 +157,6 @@ public class CSpritePtMeshU8s : CSpriteBase
public class CSprite public class CSprite
{ {
CSprite *next,*last; CSprite *next,*last;
Bool sel;
U0 start; U0 start;
union { union {
U8 type; U8 type;
+8 -24
View File
@@ -10,10 +10,8 @@ public Bool GrPlot0(CDC *dc=gr.dc,I64 x,I64 y)
if (dc->flags & DCF_LOCATE_NEAREST) { if (dc->flags & DCF_LOCATE_NEAREST) {
dist=DistSqrI64(x,y,dc->cur_x,dc->cur_y); dist=DistSqrI64(x,y,dc->cur_x,dc->cur_y);
if (dist<=dc->nearest_dist) { if (dist<=dc->nearest_dist)
dc->nearest_dist=dist; dc->nearest_dist=dist;
dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num;
}
} }
if (dc->flags & DCF_RECORD_EXTENTS) { if (dc->flags & DCF_RECORD_EXTENTS) {
if (x<dc->min_x) dc->min_x=x; if (x<dc->min_x) dc->min_x=x;
@@ -104,10 +102,8 @@ public I64 GrBlot(CDC *dc=gr.dc,I64 x,I64 y,CDC *img)
} }
if (dc->flags & DCF_LOCATE_NEAREST) { if (dc->flags & DCF_LOCATE_NEAREST) {
dist=DistSqrI64(x+img->width>>1,y+img->height>>1,dc->cur_x,dc->cur_y); dist=DistSqrI64(x+img->width>>1,y+img->height>>1,dc->cur_x,dc->cur_y);
if (dist<=dc->nearest_dist) { if (dist<=dc->nearest_dist)
dc->nearest_dist=dist; dc->nearest_dist=dist;
dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num;
}
} }
if (dc->flags & DCF_SCRN_BITMAP) { if (dc->flags & DCF_SCRN_BITMAP) {
if (x+w1<0) w1=-x; if (x+w1<0) w1=-x;
@@ -671,10 +667,8 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch)
} }
if (dc->flags & DCF_LOCATE_NEAREST) { if (dc->flags & DCF_LOCATE_NEAREST) {
dist=DistSqrI64(x+w2>>1,y+h2>>1,dc->cur_x,dc->cur_y); dist=DistSqrI64(x+w2>>1,y+h2>>1,dc->cur_x,dc->cur_y);
if (dist<=dc->nearest_dist) { if (dist<=dc->nearest_dist)
dc->nearest_dist=dist; dc->nearest_dist=dist;
dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num;
}
} }
if (dc->flags & DCF_SCRN_BITMAP) { if (dc->flags & DCF_SCRN_BITMAP) {
if (x+w1<0) w1=-x; if (x+w1<0) w1=-x;
@@ -963,10 +957,8 @@ public I64 GrRect(CDC *dc=gr.dc,I64 x,I64 y,I64 w,I64 h)
dist=0; dist=0;
else else
dist=DistSqrI64(x+w>>1,y+h>>1,dc->cur_x,dc->cur_y); dist=DistSqrI64(x+w>>1,y+h>>1,dc->cur_x,dc->cur_y);
if (dist<=dc->nearest_dist) { if (dist<=dc->nearest_dist)
dc->nearest_dist=dist; dc->nearest_dist=dist;
dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num;
}
} }
if (dc->flags & DCF_SCRN_BITMAP) { if (dc->flags & DCF_SCRN_BITMAP) {
if (x+w1<0) w1=-x; if (x+w1<0) w1=-x;
@@ -1517,10 +1509,8 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL)
!not_color && c==dc->color2) && plot) { !not_color && c==dc->color2) && plot) {
if (dc->flags & DCF_LOCATE_NEAREST) { if (dc->flags & DCF_LOCATE_NEAREST) {
dist=DistSqrI64(x3,y3,dc->cur_x,dc->cur_y); dist=DistSqrI64(x3,y3,dc->cur_x,dc->cur_y);
if (dist<=dc->nearest_dist) { if (dist<=dc->nearest_dist)
dc->nearest_dist=dist; dc->nearest_dist=dist;
dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num;
}
} }
if (dc->flags & DCF_RECORD_EXTENTS) { if (dc->flags & DCF_RECORD_EXTENTS) {
if (x3<dc->min_x) dc->min_x=x3; if (x3<dc->min_x) dc->min_x=x3;
@@ -1594,10 +1584,8 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL)
!not_color && c==dc->color2) && plot) { !not_color && c==dc->color2) && plot) {
if (dc->flags & DCF_LOCATE_NEAREST) { if (dc->flags & DCF_LOCATE_NEAREST) {
dist=DistSqrI64(x3,y3,dc->cur_x,dc->cur_y); dist=DistSqrI64(x3,y3,dc->cur_x,dc->cur_y);
if (dist<=dc->nearest_dist) { if (dist<=dc->nearest_dist)
dc->nearest_dist=dist; dc->nearest_dist=dist;
dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num;
}
} }
if (dc->flags & DCF_RECORD_EXTENTS) { if (dc->flags & DCF_RECORD_EXTENTS) {
if (x3<dc->min_x) dc->min_x=x3; if (x3<dc->min_x) dc->min_x=x3;
@@ -1723,10 +1711,8 @@ public I64 GrHLine(CDC *dc=gr.dc,I64 x1,I64 x2,I64 y,I64 z1=0,I64 z2=0)
else else
dist=SqrI64(dc->cur_x-x2); dist=SqrI64(dc->cur_x-x2);
dist+=SqrI64(y-dc->cur_y); dist+=SqrI64(y-dc->cur_y);
if (dist<=dc->nearest_dist) { if (dist<=dc->nearest_dist)
dc->nearest_dist=dist; dc->nearest_dist=dist;
dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num;
}
} }
if (dc->flags & DCF_DONT_DRAW) if (dc->flags & DCF_DONT_DRAW)
goto gr_done; goto gr_done;
@@ -1894,10 +1880,8 @@ public I64 GrVLine(CDC *dc=gr.dc,I64 x,I64 y1,I64 y2,I64 z1=0,I64 z2=0)
else else
dist=SqrI64(dc->cur_y-y2); dist=SqrI64(dc->cur_y-y2);
dist+=SqrI64(x-dc->cur_x); dist+=SqrI64(x-dc->cur_x);
if (dist<=dc->nearest_dist) { if (dist<=dc->nearest_dist)
dc->nearest_dist=dist; dc->nearest_dist=dist;
dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num;
}
} }
if (dc->flags & DCF_DONT_DRAW) if (dc->flags & DCF_DONT_DRAW)
goto gr_done; goto gr_done;
+1 -3
View File
@@ -519,10 +519,8 @@ public Bool GrPlot3(CDC *dc=gr.dc,I64 x,I64 y,I64 z)
} }
if (dc->flags & DCF_LOCATE_NEAREST) { if (dc->flags & DCF_LOCATE_NEAREST) {
dist=DistSqrI64(x,y,dc->cur_x,dc->cur_y); dist=DistSqrI64(x,y,dc->cur_x,dc->cur_y);
if (dist<=dc->nearest_dist) { if (dist<=dc->nearest_dist)
dc->nearest_dist=dist; dc->nearest_dist=dist;
dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num;
}
} }
if (dc->flags & DCF_RECORD_EXTENTS) { if (dc->flags & DCF_RECORD_EXTENTS) {
if (x-w<dc->min_x) dc->min_x=x-w; if (x-w<dc->min_x) dc->min_x=x-w;
+7 -13
View File
@@ -20,22 +20,17 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems,
{//Plot a sprite into a CDC. {//Plot a sprite into a CDC.
CSprite *tmpg=elems-offset(CSprite.start); CSprite *tmpg=elems-offset(CSprite.start);
I64 i,j,k,x1,y1,z1,x2,y2, I64 i,j,k,x1,y1,z1,x2,y2,
cur_sprite_elem_num=0,*old_r,*r2, *old_r,*r2,old_flags=dc->flags,old_pen_width=dc->pen_width;
old_flags=dc->flags,
old_pen_width=dc->pen_width;
I32 *ptr; I32 *ptr;
CColorROPU32 old_color=dc->color; CColorROPU32 old_color=dc->color;
CDC *img; CDC *img;
CD3I32 *p,*p2; CD3I32 *p,*p2;
CGrSym old_sym; CGrSym old_sym;
MemCpy(&old_sym,&dc->sym,sizeof(CGrSym)); MemCpy(&old_sym,&dc->sym,sizeof(CGrSym));
if (dc->flags & DCF_LOCATE_NEAREST) { if (dc->flags & DCF_LOCATE_NEAREST)
dc->nearest_sprite_elem_num=0;
dc->nearest_dist=MAX_I64; dc->nearest_dist=MAX_I64;
} while (tmpg->type&SPG_TYPE_MASK) {
while (tmpg->type) { switch (tmpg->type&SPG_TYPE_MASK) {
dc->cur_sprite_elem_num=cur_sprite_elem_num;
switch (tmpg->type) {
case SPT_COLOR: case SPT_COLOR:
dc->color=dc->color&~(COLORROP_COLORS_MASK|ROPF_DITHER)|tmpg->c.color; dc->color=dc->color&~(COLORROP_COLORS_MASK|ROPF_DITHER)|tmpg->c.color;
break; break;
@@ -237,7 +232,6 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems,
} }
break; break;
} }
cur_sprite_elem_num++;
if (just_one_elem) break; if (just_one_elem) break;
tmpg(U8 *)+=SpriteElemSize(tmpg); tmpg(U8 *)+=SpriteElemSize(tmpg);
} }
@@ -346,10 +340,10 @@ public U8 *SpriteInterpolate(F64 t,U8 *elems0,U8 *elems1)
MemCpy(res,elems1,i); MemCpy(res,elems1,i);
} }
tmpgr=res-offset(CSprite.start); tmpgr=res-offset(CSprite.start);
while (tmpg0->type) { while (tmpg0->type&SPG_TYPE_MASK) {
if (tmpg0->type!=tmpg1->type) if (tmpg0->type&SPG_TYPE_MASK!=tmpg1->type&SPG_TYPE_MASK)
throw('Graphics'); throw('Graphics');
switch (tmpg0->type) { switch (tmpg0->type&SPG_TYPE_MASK) {
case SPT_ROTATED_RECT: case SPT_ROTATED_RECT:
tmpgr->ppa.angle=(tmpg0->ppa.angle*t0+tmpg1->ppa.angle*t1)/GR_SCALE; tmpgr->ppa.angle=(tmpg0->ppa.angle*t0+tmpg1->ppa.angle*t1)/GR_SCALE;
case SPT_RECT: case SPT_RECT:
+5 -4
View File
@@ -8,8 +8,8 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tmpg)
CD3I32 *p; CD3I32 *p;
CMeshTri *tri; CMeshTri *tri;
if (!doc) doc=DocPut; if (!doc) doc=DocPut;
DocPrint(doc,"%Z",tmpg->type,"ST_SPRITE_ELEM_CODES"); DocPrint(doc,"%Z",tmpg->type&SPG_TYPE_MASK,"ST_SPRITE_ELEM_CODES");
switch (tmpg->type) { switch (tmpg->type&SPG_TYPE_MASK) {
case SPT_COLOR: case SPT_COLOR:
DocPrint(doc,"{%s}", DocPrint(doc,"{%s}",
Color2Str(buf1,tmpg->c.color)); Color2Str(buf1,tmpg->c.color));
@@ -92,7 +92,8 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tmpg)
if (i&3==3 && i+1<tmpg->nu.num) if (i&3==3 && i+1<tmpg->nu.num)
DocPrint(doc,"\n"); DocPrint(doc,"\n");
} }
if (tmpg->type==SPT_BSPLINE2||tmpg->type==SPT_BSPLINE3) if (tmpg->type&SPG_TYPE_MASK==SPT_BSPLINE2||
tmpg->type&SPG_TYPE_MASK==SPT_BSPLINE3)
DocPrint(doc,",FALSE}"); DocPrint(doc,",FALSE}");
else else
DocPrint(doc,",TRUE}"); DocPrint(doc,",TRUE}");
@@ -192,7 +193,7 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tmpg)
public U0 Sprite2Code(CDoc *doc=NULL,U8 *elems) public U0 Sprite2Code(CDoc *doc=NULL,U8 *elems)
{//Sprite to text. {//Sprite to text.
CSprite *tmpg=elems-offset(CSprite.start); CSprite *tmpg=elems-offset(CSprite.start);
while (tmpg->type) { while (tmpg->type&SPG_TYPE_MASK) {
SpriteElem2Code(doc,tmpg); SpriteElem2Code(doc,tmpg);
tmpg(U8 *)+=SpriteElemSize(tmpg); tmpg(U8 *)+=SpriteElemSize(tmpg);
} }
+103 -77
View File
@@ -9,7 +9,7 @@ CSprite *SpriteSetSettings(CDC *dc=NULL,CSprite *head,I64 elem_num,
CColorROPU32 color=BLACK; CColorROPU32 color=BLACK;
if (dc) DCRst(dc); if (dc) DCRst(dc);
while (elem_num-->0 && res!=head) { while (elem_num-->0 && res!=head) {
switch (res->type) { switch (res->type&SPG_TYPE_MASK) {
case SPT_COLOR: case SPT_COLOR:
color=res->c.color; color=res->c.color;
if (dc) dc->color=color; if (dc) dc->color=color;
@@ -65,11 +65,10 @@ CSprite *Sprite2SpriteQue(U8 *elems)
CSprite *res=CAlloc(sizeof(CSprite)), CSprite *res=CAlloc(sizeof(CSprite)),
*tmpg=elems-offset(CSprite.start),*tmpg1; *tmpg=elems-offset(CSprite.start),*tmpg1;
QueInit(res); QueInit(res);
while (tmpg->type) { while (tmpg->type&SPG_TYPE_MASK) {
tmpg1=MAlloc(SpriteElemSize(tmpg)+offset(CSprite.start)); tmpg1=MAlloc(SpriteElemSize(tmpg)+offset(CSprite.start));
s=SpriteElemSize(tmpg); s=SpriteElemSize(tmpg);
MemCpy(&tmpg1->start,&tmpg->start,s); MemCpy(&tmpg1->start,&tmpg->start,s);
tmpg1->sel=FALSE;
QueIns(tmpg1,res->last); QueIns(tmpg1,res->last);
tmpg(U8 *)+=s; tmpg(U8 *)+=s;
} }
@@ -117,8 +116,8 @@ U0 SpriteSetOrigin(CSprite *head,I64 dx,I64 dy,I64 dz)
CD3I32 *p; CD3I32 *p;
CSprite *tmpg=head->next; CSprite *tmpg=head->next;
while (tmpg!=head) { while (tmpg!=head) {
if (tmpg->sel) if (Bt(&tmpg->type,SPf_SEL))
switch (tmpg->type) { switch (tmpg->type&SPG_TYPE_MASK) {
case SPT_ARROW: case SPT_ARROW:
case SPT_LINE: case SPT_LINE:
case SPT_PLANAR_SYMMETRY: case SPT_PLANAR_SYMMETRY:
@@ -203,7 +202,7 @@ CSprite *SpriteTransformCircle(I64 *r,CSprite *tmpg)
tmpg1->pwha.height=ToI64(m2)/0x10000; tmpg1->pwha.height=ToI64(m2)/0x10000;
tmpg1->pwha.angle=-a1; tmpg1->pwha.angle=-a1;
tmpg1->sel=tmpg->sel; tmpg1->type|=tmpg->type&SPF_SEL;
return tmpg1; return tmpg1;
} }
@@ -212,9 +211,9 @@ CSprite *SpriteTransformEllipse(I64 *r,CSprite *tmpg)
I64 x,y,z; I64 x,y,z;
F64 m1,a1,m2,a2,s,c,x_radius=tmpg->pwha.width<<16, F64 m1,a1,m2,a2,s,c,x_radius=tmpg->pwha.width<<16,
y_radius=tmpg->pwha.height<<16; y_radius=tmpg->pwha.height<<16;
CSprite *tmpg1=CAlloc(SpriteElemQuedBaseSize(tmpg->type)); CSprite *tmpg1=CAlloc(SpriteElemQuedBaseSize(tmpg->type&SPG_TYPE_MASK));
tmpg1->type=tmpg->type; tmpg1->type=tmpg->type;
if (tmpg->type==SPT_POLYGON) if (tmpg->type&SPG_TYPE_MASK==SPT_POLYGON)
tmpg1->pwhas.sides=tmpg->pwhas.sides; tmpg1->pwhas.sides=tmpg->pwhas.sides;
x=tmpg->pwha.x1; y=tmpg->pwha.y1; z=0; x=tmpg->pwha.x1; y=tmpg->pwha.y1; z=0;
@@ -244,7 +243,7 @@ CSprite *SpriteTransformEllipse(I64 *r,CSprite *tmpg)
if (tmpg1->pwha.height<1) tmpg1->pwha.height=1; if (tmpg1->pwha.height<1) tmpg1->pwha.height=1;
tmpg1->pwha.angle=-a1; tmpg1->pwha.angle=-a1;
tmpg1->sel=tmpg->sel; tmpg1->type|=tmpg->type&SPF_SEL;
return tmpg1; return tmpg1;
} }
@@ -286,7 +285,7 @@ CSprite *SpriteTransformRect(I64 *r,CSprite *tmpg,F64
tmpg1->ppa.y2=tmpg1->ppa.y1+h; tmpg1->ppa.y2=tmpg1->ppa.y1+h;
tmpg1->ppa.angle=-a1; tmpg1->ppa.angle=-a1;
tmpg1->sel=tmpg->sel; tmpg1->type|=tmpg->type&SPF_SEL;
return tmpg1; return tmpg1;
} }
@@ -380,8 +379,8 @@ U0 SpriteTransform(I64 *r,CSprite *head)
CD3I32 *p; CD3I32 *p;
CSprite *tmpg=head->next,head2,*tmpg1,*tmpg2,*tmpg3; CSprite *tmpg=head->next,head2,*tmpg1,*tmpg2,*tmpg3;
while (tmpg!=head) { while (tmpg!=head) {
if (tmpg->sel) if (Bt(&tmpg->type,SPf_SEL))
switch (tmpg->type) { switch (tmpg->type&SPG_TYPE_MASK) {
case SPT_WIDTH: case SPT_WIDTH:
tmpg->w.width*=Sqrt(Mat4x4NormSqr65536(r))/65536; tmpg->w.width*=Sqrt(Mat4x4NormSqr65536(r))/65536;
if (tmpg->w.width<0) tmpg->w.width=0; if (tmpg->w.width<0) tmpg->w.width=0;
@@ -502,11 +501,10 @@ U0 SpriteTransform(I64 *r,CSprite *head)
Free(tmpg1); Free(tmpg1);
tmpg1=tmpg2; tmpg1=tmpg2;
} }
tmpg3->type=SPT_POLYPT; tmpg3->type=SPT_POLYPT|tmpg->type&SPF_SEL;
tmpg3->npu.num=num; tmpg3->npu.num=num;
QueIns(tmpg3,tmpg); QueIns(tmpg3,tmpg);
QueRem(tmpg); QueRem(tmpg);
tmpg3->sel=tmpg->sel;
Free(tmpg); Free(tmpg);
tmpg=tmpg3; tmpg=tmpg3;
break; break;
@@ -559,7 +557,7 @@ I64 SpriteQueSelCnt(CSprite *head,Bool val=TRUE)
CSprite *tmpg=head->next; CSprite *tmpg=head->next;
val=ToBool(val); val=ToBool(val);
while (tmpg!=head) { while (tmpg!=head) {
if (ToBool(tmpg->sel)==val) if (Bt(&tmpg->type,SPf_SEL)==val)
res++; res++;
tmpg=tmpg->next; tmpg=tmpg->next;
} }
@@ -571,7 +569,7 @@ I64 SpriteQueSelAll(CSprite *head,Bool val=TRUE)
I64 res=0; I64 res=0;
CSprite *tmpg=head->next; CSprite *tmpg=head->next;
while (tmpg!=head) { while (tmpg!=head) {
tmpg->sel=val; BEqu(&tmpg->type,SPf_SEL,val);
res++; res++;
tmpg=tmpg->next; tmpg=tmpg->next;
} }
@@ -590,7 +588,7 @@ CSprite *SpriteSideBar2SpriteQue(CDoc *doc,CSprite *head,I64 *_cur_elem_num)
tmpg=SpriteSetSettings(,head,doc_e->left_exp); tmpg=SpriteSetSettings(,head,doc_e->left_exp);
if (tmpg!=head) { if (tmpg!=head) {
tmpg=MAllocIdent(tmpg); tmpg=MAllocIdent(tmpg);
tmpg->sel=Bt(&doc_e->type,DOCEt_SEL); BEqu(&tmpg->type,SPf_SEL,Bt(&doc_e->type,DOCEt_SEL));
if (*_cur_elem_num==doc_e->left_exp) { if (*_cur_elem_num==doc_e->left_exp) {
*_cur_elem_num=num; *_cur_elem_num=num;
found=TRUE; found=TRUE;
@@ -627,8 +625,8 @@ U0 SpriteSideBarPickNew(CDoc *doc,CSprite *head,I64 old_num)
DocPrint(doc,"$$LTBLUE$$"); DocPrint(doc,"$$LTBLUE$$");
doc_e=DocPrint(doc,"$$MU-UL,\"%$$Q\",LE=%d$$\n",st,cur_elem_num++); doc_e=DocPrint(doc,"$$MU-UL,\"%$$Q\",LE=%d$$\n",st,cur_elem_num++);
} }
BEqu(&doc_e->de_flags,DOCEf_SEL,tmpg->sel); BEqu(&doc_e->de_flags,DOCEf_SEL,Bt(&tmpg->type,&SPf_SEL));
BEqu(&doc_e->type,DOCEt_SEL,tmpg->sel); BEqu(&doc_e->type,DOCEt_SEL,Bt(&tmpg->type,SPf_SEL));
Free(st); Free(st);
tmpg=tmpg->next; tmpg=tmpg->next;
} }
@@ -716,25 +714,27 @@ Bool SpriteEdText(CSprite **_head,I64 *_cur_elem_num)
} }
#define SPED_SEL_UNSEL_ALL 0 #define SPED_SEL_UNSEL_ALL 0
#define SPED_SEL 1 #define SPED_SEL 2
#define SPED_UNSEL 2 #define SPED_SEL_RECTS 3
#define SPED_SHIFT_PTS 3 #define SPED_UNSEL 4
#define SPED_SHIFT_RECTS 4 #define SPED_UNSEL_RECTS 5
#define SPED_SHIFT_SEL 5 #define SPED_SHIFT_PTS 6
#define SPED_TRANSFORM_SEL 6 #define SPED_SHIFT_RECTS 7
#define SPED_SET_ORIGIN 7 #define SPED_SHIFT_SEL 8
#define SPED_SHIFT_SUB_ORIGIN 8 #define SPED_TRANSFORM_SEL 9
#define SPED_TEXT_ED 9 #define SPED_SET_ORIGIN 10
#define SPED_INS_CLIPBOARD 10 #define SPED_SHIFT_SUB_ORIGIN 11
#define SPED_MAIN_MENU 11 #define SPED_TEXT_ED 12
#define SPED_EXIT 12 #define SPED_INS_CLIPBOARD 13
#define SPED_MAIN_MENU 14
#define SPED_EXIT 15
U0 GrInit3() U0 GrInit3()
{ {
DefineLstLoad("ST_SPRITE_ED_MENU","Select/Unselect All\0" DefineLstLoad("ST_SPRITE_ED_MENU","Select/Unselect All\0 \0Select\0"
"Select\0Unselect\0Shift Points\0Shift Rects\0Shift Selected\0" "Select Rects\0Unselect\0Unselect Rects\0Shift Points\0Shift Rects\0"
"Transform Selected\0Set Origin\0Insert Shift SubOrigin\0" "Shift Selected\0Transform Selected\0Set Origin\0"
"Edit as Text\0Insert Clipboard\0Main Menu\0"); "Insert Shift SubOrigin\0Edit as Text\0Insert Clipboard\0Main Menu\0");
} }
GrInit3; GrInit3;
@@ -748,7 +748,9 @@ I64 PopUpSpriteEd(CSprite **_head,I64 *_cur_elem_num)
"$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteEd.DD.Z\"$$\n\n" "$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteEd.DD.Z\"$$\n\n"
"$$LTBLUE$$$$MU-UL,\"Select/Unselect All\",LE=SPED_SEL_UNSEL_ALL$$\n" "$$LTBLUE$$$$MU-UL,\"Select/Unselect All\",LE=SPED_SEL_UNSEL_ALL$$\n"
"$$MU-UL,\"Select Elems\",LE=SPED_SEL$$\n" "$$MU-UL,\"Select Elems\",LE=SPED_SEL$$\n"
"$$MU-UL,\"Unsel Elems\",LE=SPED_UNSEL$$\n\n" "$$MU-UL,\"Select Elems with Rects\",LE=SPED_SEL_RECTS$$\n"
"$$MU-UL,\"Unsel Elems\",LE=SPED_UNSEL$$\n"
"$$MU-UL,\"Unsel Elems with Rects\",LE=SPED_UNSEL_RECTS$$\n\n"
"$$MU-UL,\"Shift Points\",LE=SPED_SHIFT_PTS$$\n" "$$MU-UL,\"Shift Points\",LE=SPED_SHIFT_PTS$$\n"
"$$MU-UL,\"Shift Points with Rects\",LE=SPED_SHIFT_RECTS$$\n" "$$MU-UL,\"Shift Points with Rects\",LE=SPED_SHIFT_RECTS$$\n"
"$$MU-UL,\"Shift Selected Elems\",LE=SPED_SHIFT_SEL$$\n" "$$MU-UL,\"Shift Selected Elems\",LE=SPED_SHIFT_SEL$$\n"
@@ -780,10 +782,21 @@ I64 PopUpSpriteEd(CSprite **_head,I64 *_cur_elem_num)
class CEdSprite class CEdSprite
{ {
CEdSprite *next,*last; CEdSprite *next,*last;
CSprite *g;
I32 type,num,flags,xx,yy,zz; I32 type,num,flags,xx,yy,zz;
I32 *x,*y,*z,*w,*h; I32 *x,*y,*z,*w,*h;
}; };
CEdSprite *EdSpriteNew(I64 type,CSprite *tmpg)
{
CEdSprite *res=CAlloc(sizeof(CEdSprite));
res->g=tmpg;
if (tmpg->type&SPF_SEL)
res->flags|=SPEDF_SEL;
res->type=type;
return res;
}
U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head) U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head)
{ {
I64 i,num=0; I64 i,num=0;
@@ -792,12 +805,11 @@ U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head)
CEdSprite *tmpes; CEdSprite *tmpes;
CSprite *tmpg=elems-offset(CSprite.start); CSprite *tmpg=elems-offset(CSprite.start);
QueInit(head); QueInit(head);
while (tmpg->type) { while (tmpg->type&SPG_TYPE_MASK) {
switch (tmpg->type) { switch (tmpg->type&SPG_TYPE_MASK) {
case SPT_ELLIPSE: case SPT_ELLIPSE:
case SPT_POLYGON: case SPT_POLYGON:
tmpes=CAlloc(sizeof(CEdSprite)); tmpes=EdSpriteNew(SPEDT_WIDTH_HEIGHT,tmpg);
tmpes->type=SPEDT_WIDTH_HEIGHT;
tmpes->xx=x; tmpes->xx=x;
tmpes->yy=y; tmpes->yy=y;
tmpes->x=&tmpg->pwha.x1; tmpes->x=&tmpg->pwha.x1;
@@ -812,8 +824,7 @@ U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head)
case SPT_LINE: case SPT_LINE:
case SPT_ARROW: case SPT_ARROW:
case SPT_PLANAR_SYMMETRY: case SPT_PLANAR_SYMMETRY:
tmpes=CAlloc(sizeof(CEdSprite)); tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
tmpes->type=SPEDT_SIMPLE_PT;
tmpes->xx=x; tmpes->xx=x;
tmpes->yy=y; tmpes->yy=y;
tmpes->x=&tmpg->pp.x2; tmpes->x=&tmpg->pp.x2;
@@ -829,8 +840,7 @@ U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head)
case SPT_FLOOD_FILL_NOT: case SPT_FLOOD_FILL_NOT:
case SPT_CIRCLE: case SPT_CIRCLE:
pq_x1_y1: pq_x1_y1:
tmpes=CAlloc(sizeof(CEdSprite)); tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
tmpes->type=SPEDT_SIMPLE_PT;
tmpes->xx=x; tmpes->xx=x;
tmpes->yy=y; tmpes->yy=y;
tmpes->x=&tmpg->p.x1; tmpes->x=&tmpg->p.x1;
@@ -845,8 +855,7 @@ pq_x1_y1:
case SPT_POLYLINE: case SPT_POLYLINE:
ptr=&tmpg->nu.u; ptr=&tmpg->nu.u;
for (i=0;i<tmpg->nu.num;i++) { for (i=0;i<tmpg->nu.num;i++) {
tmpes=CAlloc(sizeof(CEdSprite)); tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
tmpes->type=SPEDT_SIMPLE_PT;
tmpes->xx=x; tmpes->xx=x;
tmpes->yy=y; tmpes->yy=y;
tmpes->x=&ptr[i<<1]; tmpes->x=&ptr[i<<1];
@@ -856,8 +865,7 @@ pq_x1_y1:
} }
break; break;
case SPT_POLYPT: case SPT_POLYPT:
tmpes=CAlloc(sizeof(CEdSprite)); tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
tmpes->type=SPEDT_SIMPLE_PT;
tmpes->xx=x; tmpes->xx=x;
tmpes->yy=y; tmpes->yy=y;
tmpes->x=&tmpg->npu.x; tmpes->x=&tmpg->npu.x;
@@ -871,8 +879,7 @@ pq_x1_y1:
case SPT_BSPLINE3_CLOSED: case SPT_BSPLINE3_CLOSED:
p=&tmpg->nu.u; p=&tmpg->nu.u;
for (i=0;i<tmpg->nu.num;i++) { for (i=0;i<tmpg->nu.num;i++) {
tmpes=CAlloc(sizeof(CEdSprite)); tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
tmpes->type=SPEDT_SIMPLE_PT;
tmpes->xx=x; tmpes->xx=x;
tmpes->yy=y; tmpes->yy=y;
tmpes->x=&p[i].x; tmpes->x=&p[i].x;
@@ -885,8 +892,7 @@ pq_x1_y1:
case SPT_MESH: case SPT_MESH:
break; break;
case SPT_SHIFTABLE_MESH: case SPT_SHIFTABLE_MESH:
tmpes=CAlloc(sizeof(CEdSprite)); tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
tmpes->type=SPEDT_SIMPLE_PT;
tmpes->xx=x; tmpes->xx=x;
tmpes->yy=y; tmpes->yy=y;
tmpes->x=&tmpg->pmu.x; tmpes->x=&tmpg->pmu.x;
@@ -952,7 +958,7 @@ U0 SpriteCtrlPtsMove(CEdSprite *head,I64 dx,I64 dy)
} }
} }
Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode) Bool SpriteSelUnselShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
{ {
I64 msg_code,a1,a2,xx,yy,xx2,yy2,dd,best_dd,cur_elem_num; I64 msg_code,a1,a2,xx,yy,xx2,yy2,dd,best_dd,cur_elem_num;
Bool res=TRUE; Bool res=TRUE;
@@ -968,6 +974,8 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
1<<MSG_IP_R_UP|1<<MSG_IP_L_DOWN|1<<MSG_KEY_DOWN)) { 1<<MSG_IP_R_UP|1<<MSG_IP_L_DOWN|1<<MSG_KEY_DOWN)) {
case MSG_IP_L_DOWN: case MSG_IP_L_DOWN:
switch (mode) { switch (mode) {
case SPED_SEL:
case SPED_UNSEL:
case SPED_SHIFT_PTS: case SPED_SHIFT_PTS:
xx=a1; yy=a2; xx=a1; yy=a2;
best_dd=MAX_I64; best_dd=MAX_I64;
@@ -990,9 +998,15 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
tmpes=tmpes->next; tmpes=tmpes->next;
} }
cur_elem_num=best_es->num; cur_elem_num=best_es->num;
if (mode!=SPED_UNSEL) {
best_es->flags|=SPEDF_SEL; best_es->flags|=SPEDF_SEL;
best_es->g->type|=SPF_SEL;
} else {
best_es->flags&=~SPEDF_SEL;
best_es->g->type&=~SPF_SEL;
}
break; break;
case SPED_SHIFT_RECTS: start:
xx2=xx=a1; yy2=yy=a2; xx2=xx=a1; yy2=yy=a2;
while (TRUE) { while (TRUE) {
SpriteCtrlPtsDraw(dc,&head); SpriteCtrlPtsDraw(dc,&head);
@@ -1012,17 +1026,35 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
switch (tmpes->type) { switch (tmpes->type) {
case SPEDT_SIMPLE_PT: case SPEDT_SIMPLE_PT:
if (xx<=*tmpes->x+tmpes->xx<=xx2 && if (xx<=*tmpes->x+tmpes->xx<=xx2 &&
yy<=*tmpes->y+tmpes->yy<=yy2) yy<=*tmpes->y+tmpes->yy<=yy2) {
if (mode!=SPED_UNSEL_RECTS) {
tmpes->flags|=SPEDF_SEL; tmpes->flags|=SPEDF_SEL;
tmpes->g->type|=SPF_SEL;
} else {
tmpes->flags&=~SPEDF_SEL;
tmpes->g->type&=~SPF_SEL;
}
}
break; break;
case SPEDT_WIDTH_HEIGHT: case SPEDT_WIDTH_HEIGHT:
if (xx<=*tmpes->x+*tmpes->w+tmpes->xx<=xx2 && if (xx<=*tmpes->x+*tmpes->w+tmpes->xx<=xx2 &&
yy<=*tmpes->y+*tmpes->h+tmpes->yy<=yy2) yy<=*tmpes->y+*tmpes->h+tmpes->yy<=yy2) {
if (mode!=SPED_UNSEL_RECTS) {
tmpes->flags|=SPEDF_SEL; tmpes->flags|=SPEDF_SEL;
tmpes->g->type|=SPF_SEL;
} else {
tmpes->flags&=~SPEDF_SEL;
tmpes->g->type&=~SPF_SEL;
}
}
break; break;
} }
tmpes=tmpes->next; tmpes=tmpes->next;
} }
case SPED_SEL_RECTS:
case SPED_UNSEL_RECTS:
break;
case SPED_SHIFT_RECTS:
do { do {
SpriteCtrlPtsDraw(dc,&head); SpriteCtrlPtsDraw(dc,&head);
msg_code=ScanMsg(&a1,&a2,1<<MSG_KEY_DOWN|1<<MSG_IP_L_DOWN); msg_code=ScanMsg(&a1,&a2,1<<MSG_KEY_DOWN|1<<MSG_IP_L_DOWN);
@@ -1030,7 +1062,11 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
} while (msg_code!=MSG_IP_L_DOWN); } while (msg_code!=MSG_IP_L_DOWN);
xx=a1;yy=a2; xx=a1;yy=a2;
break; break;
end:
} }
switch (mode) {
case SPED_SHIFT_PTS:
case SPED_SHIFT_RECTS:
do { do {
SpriteCtrlPtsDraw(dc,&head); SpriteCtrlPtsDraw(dc,&head);
if (msg_code=ScanMsg(&a1,&a2,1<<MSG_IP_MOVE|1<<MSG_IP_L_UP)) { if (msg_code=ScanMsg(&a1,&a2,1<<MSG_IP_MOVE|1<<MSG_IP_L_UP)) {
@@ -1041,9 +1077,12 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
tmpes=head.next; tmpes=head.next;
while (tmpes!=&head) { while (tmpes!=&head) {
tmpes->flags&=~SPEDF_SEL; tmpes->flags&=~SPEDF_SEL;
tmpes->g->type&=~SPF_SEL;
tmpes=tmpes->next; tmpes=tmpes->next;
} }
break; break;
}
break;
case MSG_KEY_DOWN: case MSG_KEY_DOWN:
gs_key: gs_key:
switch (a1.u8[0]) { switch (a1.u8[0]) {
@@ -1054,11 +1093,11 @@ gs_key:
goto gs_done; goto gs_done;
case 'p': case 'p':
case 'P': case 'P':
mode=SPED_SHIFT_PTS; mode&=~1;
break; break;
case 'r': case 'r':
case 'R': case 'R':
mode=SPED_SHIFT_RECTS; mode|=1;
break; break;
} }
break; break;
@@ -1084,7 +1123,7 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y,
Bool unlock; Bool unlock;
I64 i,r[16],msg_code,a1,a2,xx,yy, I64 i,r[16],msg_code,a1,a2,xx,yy,
old_de_flags; old_de_flags;
CSprite *cur_elem,*head2,*next,*last,*tmpg,*insert_pt; CSprite *head2,*next,*last,*tmpg,*insert_pt;
old_de_flags=doc_ce->de_flags; old_de_flags=doc_ce->de_flags;
tmpb=doc_ce->bin_data; tmpb=doc_ce->bin_data;
@@ -1105,23 +1144,6 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y,
else else
SpriteQueSelAll(*_head,FALSE); SpriteQueSelAll(*_head,FALSE);
break; break;
case SPED_SEL:
case SPED_UNSEL:
doc_ce->de_flags=old_de_flags;
doc->cur_sprite=tmpb->data;
do {
doc->nearest_sprite_elem_num=0;
msg_code=GetMsg(&a1,&a2,1<<MSG_IP_L_DOWN|1<<MSG_IP_R_UP);
Refresh(2);
if (msg_code==MSG_IP_L_DOWN) {
*_cur_elem_num=doc->nearest_sprite_elem_num;
cur_elem=SpriteSetSettings(,*_head,*_cur_elem_num);
cur_elem->sel=ToBool(i==SPED_SEL);
GetMsg(,,1<<MSG_IP_L_UP);
}
} while (msg_code!=MSG_IP_R_UP);
doc->cur_sprite=NULL;
break;
case SPED_SET_ORIGIN: case SPED_SET_ORIGIN:
SpriteQueSelAll(*_head); SpriteQueSelAll(*_head);
doc_ce->de_flags=old_de_flags; doc_ce->de_flags=old_de_flags;
@@ -1146,6 +1168,10 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y,
if (!SpriteQueSelCnt(*_head,FALSE)) if (!SpriteQueSelCnt(*_head,FALSE))
SpriteQueSelAll(*_head,FALSE); SpriteQueSelAll(*_head,FALSE);
break; break;
case SPED_SEL:
case SPED_SEL_RECTS:
case SPED_UNSEL:
case SPED_UNSEL_RECTS:
case SPED_SHIFT_PTS: case SPED_SHIFT_PTS:
case SPED_SHIFT_RECTS: case SPED_SHIFT_RECTS:
RegOneTimePopUp(ARf_CSPRITE_PTS_RECTANGLES, RegOneTimePopUp(ARf_CSPRITE_PTS_RECTANGLES,
@@ -1154,7 +1180,7 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y,
"Press '$$GREEN$$r$$FG$$' after one rectangle\n" "Press '$$GREEN$$r$$FG$$' after one rectangle\n"
"to OR another rectangle.\n"); "to OR another rectangle.\n");
doc_ce->de_flags=old_de_flags; doc_ce->de_flags=old_de_flags;
if (SpriteShiftPts(tmpb->data,x,y,_cur_elem_num,i)) { if (SpriteSelUnselShiftPts(tmpb->data,x,y,_cur_elem_num,i)) {
QueDel(*_head); QueDel(*_head);
Free(*_head); Free(*_head);
*_head=Sprite2SpriteQue(tmpb->data); *_head=Sprite2SpriteQue(tmpb->data);
+13 -10
View File
@@ -627,7 +627,7 @@ I64 SMBitMap(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *head,
img->color=bm_bkcolor; img->color=bm_bkcolor;
GrRect(img,0,0,tmpg->pwhu.width,tmpg->pwhu.height); GrRect(img,0,0,tmpg->pwhu.width,tmpg->pwhu.height);
tmpg1=insert_pt; tmpg1=insert_pt;
if (tmpg1==head || tmpg1->type!=SPT_BITMAP) { if (tmpg1==head || tmpg1->type&SPG_TYPE_MASK!=SPT_BITMAP) {
SpriteSetSettings(img,head,0,-(xx1-x),-(yy1-y)); SpriteSetSettings(img,head,0,-(xx1-x),-(yy1-y));
x=xx; y=yy; x=xx; y=yy;
Sprite3(img,-(xx1-x),-(yy1-y),0,doc_ce->bin_data->data); Sprite3(img,-(xx1-x),-(yy1-y),0,doc_ce->bin_data->data);
@@ -671,9 +671,9 @@ U0 SMMesh(CDoc *doc,CDocEntry *doc_ce,CSprite *head,I64 *_cur_elem_num)
CD3I32 *p; CD3I32 *p;
I64 i,size,x1,y1,z1; I64 i,size,x1,y1,z1;
I32 *mesh,*old_mesh; I32 *mesh,*old_mesh;
if (tmpg1!=head && tmpg1->type==SPT_MESH) if (tmpg1!=head && tmpg1->type&SPG_TYPE_MASK==SPT_MESH)
old_mesh=&tmpg1->mu.vertex_cnt; old_mesh=&tmpg1->mu.vertex_cnt;
else if (tmpg1!=head && tmpg1->type==SPT_SHIFTABLE_MESH) { else if (tmpg1!=head && tmpg1->type&SPG_TYPE_MASK==SPT_SHIFTABLE_MESH) {
x1=tmpg1->pmu.x; x1=tmpg1->pmu.x;
y1=tmpg1->pmu.y; y1=tmpg1->pmu.y;
z1=tmpg1->pmu.z; z1=tmpg1->pmu.z;
@@ -700,7 +700,7 @@ U0 SMMesh(CDoc *doc,CDocEntry *doc_ce,CSprite *head,I64 *_cur_elem_num)
SpriteEdUpdate(doc,doc_ce,head); SpriteEdUpdate(doc,doc_ce,head);
} else } else
*_cur_elem_num+=1; *_cur_elem_num+=1;
} else if (old_mesh && tmpg1->type==SPT_SHIFTABLE_MESH) { } else if (old_mesh && tmpg1->type&SPG_TYPE_MASK==SPT_SHIFTABLE_MESH) {
x1=tmpg1->pmu.x; x1=tmpg1->pmu.x;
y1=tmpg1->pmu.y; y1=tmpg1->pmu.y;
z1=tmpg1->pmu.z; z1=tmpg1->pmu.z;
@@ -721,7 +721,7 @@ U0 SMShiftableMesh(CDoc *doc,CDocEntry *doc_ce,CSprite *head,
CD3I32 *p; CD3I32 *p;
I64 i,size,z,x1,y1,z1; I64 i,size,z,x1,y1,z1;
I32 *mesh,*old_mesh; I32 *mesh,*old_mesh;
if (tmpg1!=head && tmpg1->type==SPT_MESH) { if (tmpg1!=head && tmpg1->type&SPG_TYPE_MASK==SPT_MESH) {
z=0; z=0;
x1=-(a1-x); x1=-(a1-x);
y1=-(a2-y); y1=-(a2-y);
@@ -733,7 +733,7 @@ U0 SMShiftableMesh(CDoc *doc,CDocEntry *doc_ce,CSprite *head,
p->z+=z1; p->z+=z1;
} }
old_mesh=&tmpg1->mu.vertex_cnt; old_mesh=&tmpg1->mu.vertex_cnt;
} else if (tmpg1!=head && tmpg1->type==SPT_SHIFTABLE_MESH) { } else if (tmpg1!=head && tmpg1->type&SPG_TYPE_MASK==SPT_SHIFTABLE_MESH) {
z=-tmpg1->pmu.z; z=-tmpg1->pmu.z;
x1=tmpg1->pmu.x-(a1-x); x1=tmpg1->pmu.x-(a1-x);
y1=tmpg1->pmu.y-(a2-y); y1=tmpg1->pmu.y-(a2-y);
@@ -766,7 +766,7 @@ U0 SMShiftableMesh(CDoc *doc,CDocEntry *doc_ce,CSprite *head,
SpriteEdUpdate(doc,doc_ce,head); SpriteEdUpdate(doc,doc_ce,head);
} else } else
*_cur_elem_num+=1; *_cur_elem_num+=1;
} else if (old_mesh && tmpg1->type==SPT_SHIFTABLE_MESH) { } else if (old_mesh && tmpg1->type&SPG_TYPE_MASK==SPT_SHIFTABLE_MESH) {
x1=tmpg1->pmu.x-(a1-x); x1=tmpg1->pmu.x-(a1-x);
y1=tmpg1->pmu.y-(a2-y); y1=tmpg1->pmu.y-(a2-y);
z1=tmpg1->pmu.z+z; z1=tmpg1->pmu.z+z;
@@ -776,7 +776,7 @@ U0 SMShiftableMesh(CDoc *doc,CDocEntry *doc_ce,CSprite *head,
p->y-=y1; p->y-=y1;
p->z-=z1; p->z-=z1;
} }
} else if (old_mesh && tmpg1->type==SPT_MESH) { } else if (old_mesh && tmpg1->type&SPG_TYPE_MASK==SPT_MESH) {
x1=-(a1-x); x1=-(a1-x);
y1=-(a2-y); y1=-(a2-y);
z1= z; z1= z;
@@ -1196,7 +1196,8 @@ U0 EdSpriteIns(CDoc *doc)
if (SpriteMainEd(doc)==SPE_ABORT) { if (SpriteMainEd(doc)==SPE_ABORT) {
DocLock(doc); DocLock(doc);
DocEntryDel(doc,doc_e); DocEntryDel(doc,doc_e);
} } else
SpriteSelAll(tmpb->data,FALSE);
} else } else
DocBinDel(doc,tmpb); DocBinDel(doc,tmpb);
if (unlock) if (unlock)
@@ -1224,8 +1225,10 @@ U0 EdSpriteEd(CDoc *doc)
Free(tmpb->data); Free(tmpb->data);
tmpb->data=old_csprite; tmpb->data=old_csprite;
tmpb->size=old_size; tmpb->size=old_size;
} else } else {
SpriteSelAll(tmpb->data,FALSE);
Free(old_csprite); Free(old_csprite);
}
if (unlock) if (unlock)
DocUnlock(doc); DocUnlock(doc);
} }
+18 -9
View File
@@ -38,13 +38,13 @@ I64 sprite_elem_base_sizes[SPT_NUM_TYPES]={
I64 SpriteElemQuedBaseSize(I64 type) I64 SpriteElemQuedBaseSize(I64 type)
{ {
return sprite_elem_base_sizes[type]+offset(CSprite.start); return sprite_elem_base_sizes[type&SPG_TYPE_MASK]+offset(CSprite.start);
} }
I64 SpriteElemSize(CSprite *tmpg) I64 SpriteElemSize(CSprite *tmpg)
{ {
I64 i=sprite_elem_base_sizes[tmpg->type]; I64 i=sprite_elem_base_sizes[tmpg->type&SPG_TYPE_MASK];
switch (tmpg->type) { switch (tmpg->type&SPG_TYPE_MASK) {
case SPT_POLYLINE: case SPT_POLYLINE:
i+=tmpg->nu.num*sizeof(CD2I32); i+=tmpg->nu.num*sizeof(CD2I32);
break; break;
@@ -80,7 +80,7 @@ I64 SpriteElemSize(CSprite *tmpg)
public I64 SpriteSize(U8 *elems) public I64 SpriteSize(U8 *elems)
{//Walk sprite elements and return size of sprite as binary data. {//Walk sprite elements and return size of sprite as binary data.
CSprite *tmpg=elems-offset(CSprite.start),*tmpg1=tmpg; CSprite *tmpg=elems-offset(CSprite.start),*tmpg1=tmpg;
while (tmpg->type) while (tmpg->type&SPG_TYPE_MASK)
tmpg(U8 *)+=SpriteElemSize(tmpg); tmpg(U8 *)+=SpriteElemSize(tmpg);
return tmpg(U8 *)-tmpg1(U8 *)+sprite_elem_base_sizes[SPT_END]; return tmpg(U8 *)-tmpg1(U8 *)+sprite_elem_base_sizes[SPT_END];
} }
@@ -89,15 +89,24 @@ I64 SpriteTypeMask(U8 *elems)
{ {
I64 res=0; I64 res=0;
CSprite *tmpg=elems-offset(CSprite.start); CSprite *tmpg=elems-offset(CSprite.start);
while (tmpg->type) { while (tmpg->type&SPG_TYPE_MASK) {
if (tmpg->type>=SPT_NUM_TYPES) if (tmpg->type&SPG_TYPE_MASK>=SPT_NUM_TYPES)
return 1<<SPT_NUM_TYPES; return 1<<SPT_NUM_TYPES;
Bts(&res,tmpg->type); Bts(&res,tmpg->type&SPG_TYPE_MASK);
tmpg(U8 *)+=SpriteElemSize(tmpg); tmpg(U8 *)+=SpriteElemSize(tmpg);
} }
return res; return res;
} }
U0 SpriteSelAll(U8 *elems,Bool val)
{
CSprite *tmpg=elems-offset(CSprite.start);
while (tmpg->type&SPG_TYPE_MASK) {
BEqu(&tmpg->type,SPf_SEL,val);
tmpg(U8 *)+=SpriteElemSize(tmpg);
}
}
public U8 *DC2Sprite(CDC *tmpb) public U8 *DC2Sprite(CDC *tmpb)
{//Convert device context to sprite. {//Convert device context to sprite.
CSprite *tmpg; CSprite *tmpg;
@@ -118,8 +127,8 @@ public U8 *SpriteElem2Summary(CSprite *tmpg)
{//Study $LK,"::/Demo/Graphics/SpriteText.HC"$. {//Study $LK,"::/Demo/Graphics/SpriteText.HC"$.
U8 buf[STR_LEN],buf2[STR_LEN]; U8 buf[STR_LEN],buf2[STR_LEN];
I32 *ptr; I32 *ptr;
StrPrint(buf,"%Z",tmpg->type,"ST_SPRITE_ELEM_TYPES"); StrPrint(buf,"%Z",tmpg->type&SPG_TYPE_MASK,"ST_SPRITE_ELEM_TYPES");
switch (tmpg->type) { switch (tmpg->type&SPG_TYPE_MASK) {
case SPT_COLOR: case SPT_COLOR:
CatPrint(buf," %s",Color2Str(buf2,tmpg->c.color)); CatPrint(buf," %s",Color2Str(buf2,tmpg->c.color));
break; break;
+1
View File
@@ -22,6 +22,7 @@ LBts(&sys_run_level,RLf_DOC);
#include "God/MakeGod" #include "God/MakeGod"
#include "AHash" #include "AHash"
#include "TaskSettings" #include "TaskSettings"
#include "CPURep"
#include "DevInfo" #include "DevInfo"
#include "ADefine" #include "ADefine"
#include "WallPaper" #include "WallPaper"
+5 -3
View File
@@ -40,8 +40,7 @@ public CDoc *Doc2TXT(CDoc *doc_in)
CDocEntry *doc_e,*doc_e2; CDocEntry *doc_e,*doc_e2;
I64 y,col; I64 y,col;
CDoc *doc_out=DocNew; CDoc *doc_out=DocNew;
Bool unlock_doc_in=DocLock(doc_in),no_bwd; Bool unlock_doc_in=DocLock(doc_in),no_bwd,line_has_html_code=FALSE;
DocRecalc(doc_in); DocRecalc(doc_in);
doc_out->flags|=DOCF_PLAIN_TEXT|DOCF_NO_CURSOR; doc_out->flags|=DOCF_PLAIN_TEXT|DOCF_NO_CURSOR;
@@ -55,7 +54,10 @@ public CDoc *Doc2TXT(CDoc *doc_in)
TXTPutS(doc_out,"\n",&col); TXTPutS(doc_out,"\n",&col);
y++; y++;
col=0; col=0;
line_has_html_code=FALSE;
} }
if (doc_e->type_u8==DOCT_HTML_CODE)
line_has_html_code=TRUE;
no_bwd=TRUE; no_bwd=TRUE;
doc_e2=doc_e->next; doc_e2=doc_e->next;
@@ -66,7 +68,7 @@ public CDoc *Doc2TXT(CDoc *doc_in)
} }
doc_e2=doc_e2->next; doc_e2=doc_e2->next;
} }
if (no_bwd) if (no_bwd && !(doc_e->type_u8==DOCT_NEW_LINE && line_has_html_code))
while (col<doc_e->x) while (col<doc_e->x)
TXTPutS(doc_out," ",&col); TXTPutS(doc_out," ",&col);
+9 -4
View File
@@ -17,7 +17,7 @@ winmgr.t->last_calc_idle_time=tS;
U0 DrawProgressBars(CDC *dc) U0 DrawProgressBars(CDC *dc)
{ {
I64 i,j,k,n,m; I64 i,j,k,n,m;
U8 *st; U8 *st,*st2;
for (i=0;i<NUM_PROGRESS_BARS;i++) { for (i=0;i<NUM_PROGRESS_BARS;i++) {
if (m=sys_progresses[i].max) { if (m=sys_progresses[i].max) {
dc->color=BLACK; dc->color=BLACK;
@@ -57,10 +57,15 @@ U0 DrawProgressBars(CDC *dc)
st=StrNew(sys_progresses[i].desc); st=StrNew(sys_progresses[i].desc);
else else
st=MStrPrint("%d/%d",n,m); st=MStrPrint("%d/%d",n,m);
GrPrint(dc,(GR_WIDTH-FONT_WIDTH*StrLen(st))/2, if (sys_progresses[i].t0) {
(GR_HEIGHT-FONT_HEIGHT- st2=MStrPrint("%s %5.3f",st,tS-sys_progresses[i].t0);
(NUM_PROGRESS_BARS*2-2-i*4)*PROGRESS_BAR_HEIGHT)/2,"%s",st);
Free(st); Free(st);
} else
st2=st;
GrPrint(dc,(GR_WIDTH-FONT_WIDTH*StrLen(st2))/2,
(GR_HEIGHT-FONT_HEIGHT-
(NUM_PROGRESS_BARS*2-2-i*4)*PROGRESS_BAR_HEIGHT)/2,"%s",st2);
Free(st2);
} }
} }
} }
+12
View File
@@ -7,6 +7,18 @@ U0 BgtEntryDel2(CBgtEntry *tmpb)
} }
} }
CBgtEntry *BgtEntryCopy(CBgtEntry *tmpb,Bool periodic_copy)
{
CBgtEntry *res=MAlloc(sizeof(CBgtEntry));
MemCpy(res,tmpb,sizeof(CBgtEntry));
if (periodic_copy) {
res->credit=StrNew(tmpb->credit);
res->debit =StrNew(tmpb->debit);
res->desc =StrNew(tmpb->desc);
}
return res;
}
U0 BgtEntryDel(CBgtEntry *tmpb) U0 BgtEntryDel(CBgtEntry *tmpb)
{ {
BgtEntryDel2(tmpb); BgtEntryDel2(tmpb);
+13 -3
View File
@@ -38,9 +38,7 @@ Bool BgtPutKey(CDoc *doc,U8 *,I64 ch,I64 sc)
tmpb=doc_ce->user_data; tmpb=doc_ce->user_data;
if (tmpt=tmpb->template) { if (tmpt=tmpb->template) {
QueRem(tmpt); QueRem(tmpt);
BgtTemplatePurge(tmpt); BgtTemplateDel(tmpt);
BgtEntryDel2(&tmpt->b);
Free(tmpt);
} else { } else {
QueRem(tmpb); QueRem(tmpb);
BgtEntryDel(tmpb); BgtEntryDel(tmpb);
@@ -87,6 +85,17 @@ Bool BgtPutKey(CDoc *doc,U8 *,I64 ch,I64 sc)
BgtRegen; BgtRegen;
} }
return TRUE; return TRUE;
case 'p':
if ((doc_ce=doc->cur_entry) && doc_ce!=doc &&
doc_ce->type_u8==DOCT_MENU_VAL) {
tmpb=doc_ce->user_data;
if (tmpt1=BgtTemplatePmt(,tmpb)) {
BgtTemplateExpand(tmpt1,TRUE);
BgtTemplateDel(tmpt1);
BgtRegen;
}
}
return TRUE;
} }
return FALSE; return FALSE;
} }
@@ -176,6 +185,7 @@ U0 Budget()
"Edit {" "Edit {"
" NewEntry(,'n');" " NewEntry(,'n');"
" CopyEntry(,'c');" " CopyEntry(,'c');"
" PeriodicEntry(,'p');"
" EditEntry(,'\n');" " EditEntry(,'\n');"
" DeleteEntry(,CH_CTRLY);" " DeleteEntry(,CH_CTRLY);"
" NewTemplate(,'t');" " NewTemplate(,'t');"
+53 -18
View File
@@ -13,11 +13,19 @@ U0 BgtTemplatePurge(CBgtTemplate *tmpt)
} }
} }
U0 BgtTemplateExpand(CBgtTemplate *tmpt) U0 BgtTemplateDel(CBgtTemplate *tmpt)
{
BgtTemplatePurge(tmpt);
BgtEntryDel2(&tmpt->b);
Free(tmpt);
}
U0 BgtTemplateExpand(CBgtTemplate *tmpt,Bool periodic_copy=FALSE)
{ {
CDate d,start,end; CDate d,start,end;
CDateStruct ds; CDateStruct ds;
CBgtEntry *tmpb; CBgtEntry *tmpb;
Bool first=TRUE;
start=MyStr2Date(tmpt->start_date); start=MyStr2Date(tmpt->start_date);
end =MyStr2Date(tmpt->end_date); end =MyStr2Date(tmpt->end_date);
@@ -26,12 +34,17 @@ U0 BgtTemplateExpand(CBgtTemplate *tmpt)
case BT_INTERVAL: case BT_INTERVAL:
d=start; d=start;
while (d<=end) { while (d<=end) {
tmpb=CAlloc(sizeof(CBgtEntry)); if (!first || !periodic_copy) {
MemCpy(tmpb,&tmpt->b,sizeof(CBgtEntry)); tmpb=BgtEntryCopy(&tmpt->b,periodic_copy);
tmpb->date=d; tmpb->date=d;
if (periodic_copy)
tmpb->template=NULL;
else
tmpb->type=BE_TEMPLATE_COPY; tmpb->type=BE_TEMPLATE_COPY;
BgtIns(tmpb); BgtIns(tmpb);
}
d+=tmpt->period*0x100000000; d+=tmpt->period*0x100000000;
first=FALSE;
} }
break; break;
case BT_MONTHLY: case BT_MONTHLY:
@@ -39,17 +52,22 @@ U0 BgtTemplateExpand(CBgtTemplate *tmpt)
while (TRUE) { while (TRUE) {
d=Struct2Date(&ds); d=Struct2Date(&ds);
if (d<=end) { if (d<=end) {
tmpb=CAlloc(sizeof(CBgtEntry)); if (!first || !periodic_copy) {
MemCpy(tmpb,&tmpt->b,sizeof(CBgtEntry)); tmpb=BgtEntryCopy(&tmpt->b,periodic_copy);
tmpb->date=d; tmpb->date=d;
if (periodic_copy)
tmpb->template=NULL;
else
tmpb->type=BE_TEMPLATE_COPY; tmpb->type=BE_TEMPLATE_COPY;
BgtIns(tmpb); BgtIns(tmpb);
}
} else } else
break; break;
if (++ds.mon>11) { if (++ds.mon>12) {
ds.mon=0; ds.mon=1;
ds.year++; ds.year++;
} }
first=FALSE;
} }
break; break;
case BT_BIMONTHLY: case BT_BIMONTHLY:
@@ -57,18 +75,23 @@ U0 BgtTemplateExpand(CBgtTemplate *tmpt)
while (TRUE) { while (TRUE) {
d=Struct2Date(&ds); d=Struct2Date(&ds);
if (d<=end) { if (d<=end) {
tmpb=CAlloc(sizeof(CBgtEntry)); if (!first || !periodic_copy) {
MemCpy(tmpb,&tmpt->b,sizeof(CBgtEntry)); tmpb=BgtEntryCopy(&tmpt->b,periodic_copy);
tmpb->date=d; tmpb->date=d;
if (periodic_copy)
tmpb->template=NULL;
else
tmpb->type=BE_TEMPLATE_COPY; tmpb->type=BE_TEMPLATE_COPY;
BgtIns(tmpb); BgtIns(tmpb);
}
} else } else
break; break;
ds.mon+=2; ds.mon+=2;
if (ds.mon>11) { if (ds.mon>12) {
ds.mon-=12; ds.mon-=12;
ds.year++; ds.year++;
} }
first=FALSE;
} }
break; break;
case BT_SEMIANNUAL: case BT_SEMIANNUAL:
@@ -76,18 +99,23 @@ U0 BgtTemplateExpand(CBgtTemplate *tmpt)
while (TRUE) { while (TRUE) {
d=Struct2Date(&ds); d=Struct2Date(&ds);
if (d<=end) { if (d<=end) {
tmpb=CAlloc(sizeof(CBgtEntry)); if (!first || !periodic_copy) {
MemCpy(tmpb,&tmpt->b,sizeof(CBgtEntry)); tmpb=BgtEntryCopy(&tmpt->b,periodic_copy);
tmpb->date=d; tmpb->date=d;
if (periodic_copy)
tmpb->template=NULL;
else
tmpb->type=BE_TEMPLATE_COPY; tmpb->type=BE_TEMPLATE_COPY;
BgtIns(tmpb); BgtIns(tmpb);
}
} else } else
break; break;
ds.mon+=6; ds.mon+=6;
if (ds.mon>11) { if (ds.mon>12) {
ds.mon-=12; ds.mon-=12;
ds.year++; ds.year++;
} }
first=FALSE;
} }
break; break;
case BT_ANNUAL: case BT_ANNUAL:
@@ -95,14 +123,19 @@ U0 BgtTemplateExpand(CBgtTemplate *tmpt)
while (TRUE) { while (TRUE) {
d=Struct2Date(&ds); d=Struct2Date(&ds);
if (d<=end) { if (d<=end) {
tmpb=CAlloc(sizeof(CBgtEntry)); if (!first || !periodic_copy) {
MemCpy(tmpb,&tmpt->b,sizeof(CBgtEntry)); tmpb=BgtEntryCopy(&tmpt->b,periodic_copy);
tmpb->date=d; tmpb->date=d;
if (periodic_copy)
tmpb->template=NULL;
else
tmpb->type=BE_TEMPLATE_COPY; tmpb->type=BE_TEMPLATE_COPY;
BgtIns(tmpb); BgtIns(tmpb);
}
} else } else
break; break;
ds.year++; ds.year++;
first=FALSE;
} }
break; break;
} }
@@ -117,19 +150,21 @@ U0 CBgtTemplatesExpand()
} }
} }
CBgtTemplate *BgtTemplatePmt(CBgtTemplate *dft_t=NULL) CBgtTemplate *BgtTemplatePmt(CBgtTemplate *dft_t=NULL,CBgtEntry *dft_b=NULL)
{ {
CBgtTemplate t,*tmpt; CBgtTemplate t,*tmpt;
CBgtEntry *tmpb,*dft_b; CBgtEntry *tmpb;
MemSet(&t,0,sizeof(CBgtTemplate)); MemSet(&t,0,sizeof(CBgtTemplate));
if (dft_t) { if (dft_t) {
MemCpy(&t.start,&dft_t->start,BT_SIZE); MemCpy(&t.start,&dft_t->start,BT_SIZE);
dft_b=&dft_t->b; dft_b=&dft_t->b;
} else { } else {
t.type=BT_INTERVAL; t.type=BT_INTERVAL;
if (dft_b)
StrPrint(&t.start_date,"%D",dft_b->date);
else
StrCpy(&t.start_date,"["); StrCpy(&t.start_date,"[");
StrCpy(&t.end_date,"]"); StrCpy(&t.end_date,"]");
dft_b=NULL;
} }
while (TRUE) while (TRUE)
if (PopUpForm(&t) && ((t.type==BT_INTERVAL && t.period>0) || if (PopUpForm(&t) && ((t.type==BT_INTERVAL && t.period>0) ||
+383 -231
View File
File diff suppressed because it is too large. Load diff
+128 -99
View File
@@ -1,34 +1,3 @@
/* I did not limit myself to real physics. It's a game.
I suppose the gun shoots plazma blobs that have a delayed
explosion due to a chemical reaction timer.
The caliber of the gun is adjustible.
I did a simple anti-spin controller when you press cursor-down.
It's intentionally not very good. It needs to take into
account flexing of the struts. You'll notice when you
try to shoot the laser.
If you are interested in control theory, you might download
SimStructure, a program I wrote.
http://www.templeos.org/files/SimStrSetUp.zip
There's not sound in space and explosions
don't make shock waves, or something like that.
In X-Caliber, ships are destroyed by
causing springs to break due to acceleration
differences on different masses in a ship.
A real game would be dull with guided
missiles that always hit and lasers
that never miss.
Don't be anal. If you aspire to making
games, do like Hollywood. They know the
public isn't interested in realism.
*/
#define XMSGF_ANTISPIN 0 #define XMSGF_ANTISPIN 0
RegSetDftEntry("TempleOS/XCaliber", RegSetDftEntry("TempleOS/XCaliber",
"I64 best_score=0;\n" "I64 best_score=0;\n"
@@ -36,11 +5,16 @@ RegSetDftEntry("TempleOS/XCaliber",
); );
RegExeBranch("TempleOS/XCaliber"); RegExeBranch("TempleOS/XCaliber");
#define MT_HUMAN_SHIP 0
#define MT_ENEMY_SHIP 1
#define MT_SUPER_NAPALM_BALL 2
#define MT_SUPER_NAPALM_SPLAT 3
#define MT_MISSILE 4
class MyMass:CMass class MyMass:CMass
{ {
F64 temperature; F64 temperature,radius,die_timeout;
F64 radius; I64 type;
I64 color;
Bool no_overlap; Bool no_overlap;
}; };
@@ -63,8 +37,7 @@ extern class Ship;
class Missile class Missile
{ {
Missile *next,*last; Missile *next,*last;
F64 explosion_radius; F64 tons,fuse_time,die_timeout;
F64 fuse_time,die_timeout;
MyMass p_front,p_back; MyMass p_front,p_back;
MySpring s[5]; MySpring s[5];
U8 *img; U8 *img;
@@ -93,10 +66,9 @@ F64 human_t_left,human_t_right,human_antispin;
class Shot class Shot
{ {
Shot *next,*last; Shot *next,*last;
F64 radius,explosion_radius; F64 radius,fuse_time;
F64 fuse_time,die_timeout; I64 splats;
MyMass p; MyMass p;
Bool exploding;
} shot_head; } shot_head;
#define MAX_THRUST 200.0 #define MAX_THRUST 200.0
@@ -174,9 +146,11 @@ U0 MissileNew(Ship *tmpsp,I64 n)
else else
StrCpy(tmpmi->label,"R"); StrCpy(tmpmi->label,"R");
tmpmi->owner=tmpsp; tmpmi->owner=tmpsp;
tmpmi->explosion_radius=5; tmpmi->tons=0.5;
tmpmi->p_front.mass=0.1; tmpmi->p_front.mass=0.1;
tmpmi->p_front.type=MT_MISSILE;
tmpmi->p_back.mass =0.1; tmpmi->p_back.mass =0.1;
tmpmi->p_back.type =MT_MISSILE;
tmpmi->p_front.radius=2; tmpmi->p_front.radius=2;
tmpmi->p_back.radius =2; tmpmi->p_back.radius =2;
tmpmi->p_front.no_overlap=TRUE; tmpmi->p_front.no_overlap=TRUE;
@@ -236,6 +210,7 @@ Ship *ShipNew(I64 x,I64 y,I64 type)
for (i=0;i<tmpsp->masses;i++) { for (i=0;i<tmpsp->masses;i++) {
tmpsp->p[i].mass=1; tmpsp->p[i].mass=1;
tmpsp->p[i].type=MT_HUMAN_SHIP;
if (i<3) if (i<3)
tmpsp->p[i].radius=2.5; tmpsp->p[i].radius=2.5;
else else
@@ -290,6 +265,7 @@ Ship *ShipNew(I64 x,I64 y,I64 type)
for (i=0;i<tmpsp->masses;i++) { for (i=0;i<tmpsp->masses;i++) {
tmpsp->p[i].mass=1; tmpsp->p[i].mass=1;
tmpsp->p[i].type=MT_ENEMY_SHIP;
tmpsp->p[i].radius=7; tmpsp->p[i].radius=7;
tmpsp->p[i].drag_profile_factor=3; tmpsp->p[i].drag_profile_factor=3;
QueIns(&tmpsp->p[i],ode->last_mass); QueIns(&tmpsp->p[i],ode->last_mass);
@@ -329,9 +305,9 @@ Ship *ShipNew(I64 x,I64 y,I64 type)
for (i=0;i<tmpsp->masses;i++) { for (i=0;i<tmpsp->masses;i++) {
tmpsp->p[i].mass=1; tmpsp->p[i].mass=1;
tmpsp->p[i].type=MT_ENEMY_SHIP;
tmpsp->p[i].radius=6; tmpsp->p[i].radius=6;
tmpsp->p[i].drag_profile_factor=5; tmpsp->p[i].drag_profile_factor=5;
tmpsp->p[i].color=PURPLE;
QueIns(&tmpsp->p[i],ode->last_mass); QueIns(&tmpsp->p[i],ode->last_mass);
} }
@@ -472,6 +448,7 @@ U0 DrawIt(CTask *task,CDC *dc)
CD3 p,p1,p2; CD3 p,p1,p2;
F64 t_left,t_right,spin,d,x,y; F64 t_left,t_right,spin,d,x,y;
MySpring *tmpsps; MySpring *tmpsps;
MyMass *tmpm;
U8 *img; U8 *img;
Bool draw_laser_line=FALSE; Bool draw_laser_line=FALSE;
@@ -492,6 +469,15 @@ U0 DrawIt(CTask *task,CDC *dc)
for (i=0;i<NUM_STARS;i++) for (i=0;i<NUM_STARS;i++)
GrPlot(dc,stars_x[i],stars_y[i]); GrPlot(dc,stars_x[i],stars_y[i]);
tmpm=ode->next_mass;
while (tmpm!=&ode->next_mass) {
if (tmpm->type==MT_SUPER_NAPALM_SPLAT) {
dc->color=YELLOW;
GrPlot(dc,tmpm->x,tmpm->y);
}
tmpm=tmpm->next;
}
tmpsps=ode->next_spring; tmpsps=ode->next_spring;
while (tmpsps!=&ode->next_spring) { while (tmpsps!=&ode->next_spring) {
if (!(tmpsps->flags&SSF_INACTIVE) && tmpsps->color) { if (!(tmpsps->flags&SSF_INACTIVE) && tmpsps->color) {
@@ -507,7 +493,7 @@ U0 DrawIt(CTask *task,CDC *dc)
if (tmpmi->active) { if (tmpmi->active) {
if (tmpmi->launched && tmpmi->exploding) { if (tmpmi->launched && tmpmi->exploding) {
d=(tS-tmpmi->fuse_time)/(tmpmi->die_timeout-tmpmi->fuse_time); d=(tS-tmpmi->fuse_time)/(tmpmi->die_timeout-tmpmi->fuse_time);
d=7*Sin(ã*d)*tmpmi->explosion_radius+1; d=70*Sin(ã*d)*tmpmi->tons+1;
for (i=1;i<d;i++) { for (i=1;i<d;i++) {
if (i&1) if (i&1)
dc->color=YELLOW; dc->color=YELLOW;
@@ -526,7 +512,7 @@ U0 DrawIt(CTask *task,CDC *dc)
tmpsp=ship_head.next; tmpsp=ship_head.next;
while (tmpsp!=&ship_head) { while (tmpsp!=&ship_head) {
if (!tmpsp->exploding) if (!tmpsp->exploding) {
switch (tmpsp->type) { switch (tmpsp->type) {
case ST_HUMAN1: case ST_HUMAN1:
if (tmpsp->spacewalk_side) { if (tmpsp->spacewalk_side) {
@@ -633,7 +619,7 @@ U0 DrawIt(CTask *task,CDC *dc)
break; break;
case ST_ENEMY2: case ST_ENEMY2:
for (i=3;i<tmpsp->masses;i++) { for (i=3;i<tmpsp->masses;i++) {
dc->color=tmpsp->p[i].color; dc->color=PURPLE;
GrCircle(dc,tmpsp->p[i].x,tmpsp->p[i].y,tmpsp->p[i].radius); GrCircle(dc,tmpsp->p[i].x,tmpsp->p[i].y,tmpsp->p[i].radius);
GrFloodFill(dc,tmpsp->p[i].x,tmpsp->p[i].y+2,TRUE); GrFloodFill(dc,tmpsp->p[i].x,tmpsp->p[i].y+2,TRUE);
dc->color=WHITE; dc->color=WHITE;
@@ -655,13 +641,14 @@ U0 DrawIt(CTask *task,CDC *dc)
arg=Arg(p2.x,p2.y); arg=Arg(p2.x,p2.y);
SpriteZ3B(dc,tmpsp->p[0].x+p2.x,tmpsp->p[0].y+p2.y,0, SpriteZ3B(dc,tmpsp->p[0].x+p2.x,tmpsp->p[0].y+p2.y,0,
$IB,"<EnemySide>",BI=5$,arg); $IB,"<EnemySide>",BI=5$,arg);
break;
}
for (i=0;i<tmpsp->masses;i++) { for (i=0;i<tmpsp->masses;i++) {
dc->color=YELLOW; dc->color=YELLOW;
if (tmpsp->p[i].temperature>=1.0) if (tmpsp->p[i].temperature>=1.0)
GrCircle(dc,tmpsp->p[i].x,tmpsp->p[i].y, GrCircle(dc,tmpsp->p[i].x,tmpsp->p[i].y,
tmpsp->p[i].temperature); tmpsp->p[i].temperature);
} }
break;
} }
else if (tmpsp->die_time<=tS<=tmpsp->die_timeout) else if (tmpsp->die_time<=tS<=tmpsp->die_timeout)
for (j=0;j<tmpsp->masses;j++) { for (j=0;j<tmpsp->masses;j++) {
@@ -680,17 +667,6 @@ U0 DrawIt(CTask *task,CDC *dc)
tmps=shot_head.next; tmps=shot_head.next;
while (tmps!=&shot_head) { while (tmps!=&shot_head) {
if (tmps->exploding) {
d=(tS-tmps->fuse_time)/(tmps->die_timeout-tmps->fuse_time);
d=7*Sin(ã*d)*tmps->explosion_radius+1;
for (i=1;i<d;i++) {
if (i&1)
dc->color=YELLOW;
else
dc->color=LTRED;
GrCircle(dc,tmps->p.x,tmps->p.y,i);
}
} else {
if (tmps->radius<1.0) { if (tmps->radius<1.0) {
dc->color=LTGREEN; dc->color=LTGREEN;
GrPlot(dc,tmps->p.x,tmps->p.y); GrPlot(dc,tmps->p.x,tmps->p.y);
@@ -702,7 +678,6 @@ U0 DrawIt(CTask *task,CDC *dc)
dc->color=LTGREEN; dc->color=LTGREEN;
GrCircle(dc,tmps->p.x,tmps->p.y,tmps->radius); GrCircle(dc,tmps->p.x,tmps->p.y,tmps->radius);
} }
}
tmps=tmps->next; tmps=tmps->next;
} }
@@ -726,7 +701,7 @@ U0 DrawIt(CTask *task,CDC *dc)
} }
} }
U0 Explosion(MyMass *tmpm1,MyMass *tmpm2,F64 r) U0 Explosion(MyMass *tmpm1,MyMass *tmpm2,F64 tons)
{ {
MyMass *tmpm; MyMass *tmpm;
CD3 p1; CD3 p1;
@@ -742,8 +717,7 @@ U0 Explosion(MyMass *tmpm1,MyMass *tmpm2,F64 r)
d=1; d=1;
else else
d=Sqrt(d); d=Sqrt(d);
d=2e8*r`7/d`6; d=250000*tons/d`2;
if (d>1e5) d=1e5;
D3MulEqu(&p1,d); D3MulEqu(&p1,d);
D3AddEqu(&tmpm->DstateDt->DxDt,&p1); D3AddEqu(&tmpm->DstateDt->DxDt,&p1);
} }
@@ -786,7 +760,6 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
CTask *task=ode->win_task; CTask *task=ode->win_task;
CD3 p,p1,p2; CD3 p,p1,p2;
Ship *tmpsp; Ship *tmpsp;
Shot *tmps;
Missile *tmpmi; Missile *tmpmi;
MyMass *tmpm,*tmpm1; MyMass *tmpm,*tmpm1;
@@ -803,9 +776,21 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
tmpm->DstateDt->DyDt+=Sqr(Sqr(Sqr(d-tmpm->radius))); tmpm->DstateDt->DyDt+=Sqr(Sqr(Sqr(d-tmpm->radius)));
if (d+tmpm->radius>task->pix_height) if (d+tmpm->radius>task->pix_height)
tmpm->DstateDt->DyDt-=Sqr(Sqr(Sqr((d+tmpm->radius)-task->pix_height))); tmpm->DstateDt->DyDt-=Sqr(Sqr(Sqr((d+tmpm->radius)-task->pix_height)));
if (tmpm->type!=MT_SUPER_NAPALM_SPLAT) {
tmpm1=ode->next_mass; tmpm1=ode->next_mass;
while (tmpm1!=&ode->next_mass) { while (tmpm1!=&ode->next_mass) {
if (tmpm!=tmpm1) { if (tmpm!=tmpm1) {
if (tmpm1->type==MT_SUPER_NAPALM_SPLAT) {
if (tmpm->type==MT_HUMAN_SHIP || tmpm->type==MT_ENEMY_SHIP) {
D3Sub(&p,&tmpm->state->x,&tmpm1->state->x);
dd=D3NormSqr(&p)+1;
if (dd<100000) {
D3MulEqu(&p,100000/dd);
D3AddEqu(&tmpm1->DstateDt->DxDt,&p);
}
}
} else {
D3Sub(&p,&tmpm->state->x,&tmpm1->state->x); D3Sub(&p,&tmpm->state->x,&tmpm1->state->x);
dd=D3NormSqr(&p); dd=D3NormSqr(&p);
dd2=Sqr(tmpm->radius+tmpm1->radius); dd2=Sqr(tmpm->radius+tmpm1->radius);
@@ -816,8 +801,10 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
D3SubEqu(&tmpm1->DstateDt->DxDt,&p); D3SubEqu(&tmpm1->DstateDt->DxDt,&p);
} }
} }
}
tmpm1=tmpm1->next; tmpm1=tmpm1->next;
} }
}
tmpm=tmpm->next; tmpm=tmpm->next;
} }
@@ -825,7 +812,7 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
while (tmpsp!=&ship_head) { while (tmpsp!=&ship_head) {
if (tmpsp->exploding && tmpsp->die_time<=tS<=tmpsp->die_timeout) if (tmpsp->exploding && tmpsp->die_time<=tS<=tmpsp->die_timeout)
for (i=0;i<tmpsp->masses;i++) for (i=0;i<tmpsp->masses;i++)
Explosion(&tmpsp->p[i],NULL,tmpsp->p[i].radius/3.0); Explosion(&tmpsp->p[i],NULL,tmpsp->p[i].radius/250.0);
switch (tmpsp->type) { switch (tmpsp->type) {
case ST_HUMAN1: case ST_HUMAN1:
if (!tmpsp->exploding) { if (!tmpsp->exploding) {
@@ -886,19 +873,12 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
tmpsp=tmpsp->next; tmpsp=tmpsp->next;
} }
tmps=shot_head.next;
while (tmps!=&shot_head) {
if (tmps->exploding)
Explosion(&tmps->p,NULL,tmps->explosion_radius);
tmps=tmps->next;
}
tmpmi=missile_head.next; tmpmi=missile_head.next;
while (tmpmi!=&missile_head) { while (tmpmi!=&missile_head) {
if (tmpmi->active) { if (tmpmi->active) {
if (tmpmi->launched) { if (tmpmi->launched) {
if (tmpmi->exploding) if (tmpmi->exploding)
Explosion(&tmpmi->p_front,&tmpmi->p_back,tmpmi->explosion_radius); Explosion(&tmpmi->p_front,&tmpmi->p_back,tmpmi->tons);
else { else {
//Guide missile //Guide missile
if (tmpsp=tmpmi->target) { if (tmpsp=tmpmi->target) {
@@ -930,17 +910,29 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
U0 CheckDamage() U0 CheckDamage()
{ {
I64 i,j,k; I64 i,j,death_score;
Ship *tmpsp,*tmpsp1; Ship *tmpsp,*tmpsp1;
MyMass *tmpm,*best_mass; MyMass *tmpm,*tmpm1,*best_mass;
CD3 p,p1,p2; CD3 p,p1,p2;
F64 d,best_distance; F64 d,best_distance;
tmpm=ode->next_mass; tmpm=ode->next_mass;
while (tmpm!=&ode->next_mass) { while (tmpm!=&ode->next_mass) {
if (tmpm->type==MT_SUPER_NAPALM_SPLAT) {
tmpm1=ode->next_mass;
while (tmpm1!=&ode->next_mass) {
if (tmpm1->type!=MT_SUPER_NAPALM_SPLAT) {
D3Sub(&p,&tmpm1->x,&tmpm->x);
if (D3NormSqr(&p)<Sqr(tmpm1->radius))
tmpm1->temperature+=0.4;
}
tmpm1=tmpm1->next;
}
} else
tmpm->temperature*=0.9; tmpm->temperature*=0.9;
tmpm=tmpm->next; tmpm=tmpm->next;
} }
if (human) { if (human) {
human->laser_temperature*=0.975; human->laser_temperature*=0.975;
@@ -984,6 +976,7 @@ U0 CheckDamage()
tmpsp=ship_head.next; tmpsp=ship_head.next;
while (tmpsp!=&ship_head) { while (tmpsp!=&ship_head) {
tmpsp1=tmpsp->next; tmpsp1=tmpsp->next;
death_score=0;
switch (tmpsp->type) { switch (tmpsp->type) {
case ST_HUMAN1: case ST_HUMAN1:
if (tmpsp->exploding) { if (tmpsp->exploding) {
@@ -1000,18 +993,8 @@ U0 CheckDamage()
else if (i==5) else if (i==5)
MissileDel(&tmpsp->missiles[1]); MissileDel(&tmpsp->missiles[1]);
} }
if (tmpsp->s[i].flags&SSF_INACTIVE) { if (tmpsp->s[i].flags&SSF_INACTIVE && i<3)
if (i<3) { death_score++;
if (!tmpsp->exploding) {
tmpsp->exploding=TRUE;
tmpsp->die_time=tS;
tmpsp->die_timeout=tS+0.75;
game_over=TRUE;
Noise(750,1000,2000);
break;
}
}
}
} }
break; break;
default: default:
@@ -1032,17 +1015,21 @@ U0 CheckDamage()
j++; j++;
} }
} }
k=0; if (j>1)
for (i=0;i<tmpsp->masses;i++) { death_score++;
if (tmpsp->p[i].temperature>MASS_MAX_TEMP)
k++;
} }
if (j>1 || k) { }
if (!tmpsp->exploding) {
for (i=0;i<tmpsp->masses;i++)
if (tmpsp->p[i].temperature>MAX_MASS_TEMP)
death_score++;
if (death_score) {
tmpsp->exploding=TRUE; tmpsp->exploding=TRUE;
tmpsp->die_time=tS; tmpsp->die_time=tS;
tmpsp->die_timeout=tS+0.75; tmpsp->die_timeout=tS+0.75;
Noise(750,1000,3000); Noise(750,1000,3000);
} if (tmpsp->type==ST_HUMAN1)
game_over=TRUE;
} }
} }
tmpsp=tmpsp1; tmpsp=tmpsp1;
@@ -1058,10 +1045,11 @@ U0 FireOneGun(Ship *tmpsp,I64 n,F64 r,F64 fuse_time)
tmps=CAlloc(sizeof(Shot)); tmps=CAlloc(sizeof(Shot));
D3Copy(&tmps->p.x,&tmpsp->p[n].x); D3Copy(&tmps->p.x,&tmpsp->p[n].x);
tmps->explosion_radius=tmps->radius=r; tmps->radius=r;
tmps->fuse_time=tS+1.5*fuse_time; tmps->splats=20*r;
tmps->die_timeout=tmps->fuse_time+0.125; tmps->fuse_time=tS+fuse_time;
tmps->p.mass=0.3*r*r*r; tmps->p.mass=0.3*r*r*r;
tmps->p.type=MT_SUPER_NAPALM_BALL;
D3Sub(&p1,&tmpsp->p[0].x,&tmpsp->p[1].x); D3Sub(&p1,&tmpsp->p[0].x,&tmpsp->p[1].x);
D3Sub(&p2,&tmpsp->p[0].x,&tmpsp->p[2].x); D3Sub(&p2,&tmpsp->p[0].x,&tmpsp->p[2].x);
D3Unit(D3Add(&p,&p1,&p2)); D3Unit(D3Add(&p,&p1,&p2));
@@ -1138,13 +1126,27 @@ U0 HumanFireLaserEnd()
U0 ExpireShots() U0 ExpireShots()
{ {
I64 i;
F64 é;
Shot *tmps=shot_head.next,*tmps1; Shot *tmps=shot_head.next,*tmps1;
MyMass *tmpm;
while (tmps!=&shot_head) { while (tmps!=&shot_head) {
tmps1=tmps->next; tmps1=tmps->next;
if (!tmps->exploding && tS>tmps->fuse_time) { if (tS>tmps->fuse_time) {
tmps->exploding=TRUE; é=Arg(tmps->p.DxDt,tmps->p.DyDt);
Noise(50,3000,6000); for (i=0;i<tmps->splats;i++) {
} else if (tS>tmps->die_timeout) { tmpm=CAlloc(sizeof(MyMass));
D3Copy(&tmpm->x,&tmps->p.x);
tmpm->radius=1;
tmpm->mass=1;
tmpm->die_timeout=tS+0.2;
tmpm->type=MT_SUPER_NAPALM_SPLAT;
D3Copy(&tmpm->DxDt,&tmps->p.DxDt);
tmpm->DxDt+=50*Sqr(tmps->radius)*Rand*Sin(é+2*ã*i/tmps->splats);
tmpm->DyDt+=50*Sqr(tmps->radius)*Rand*Cos(é+2*ã*i/tmps->splats);
QueIns(tmpm,ode->last_mass);
}
QueRem(tmps); QueRem(tmps);
QueRem(&tmps->p); QueRem(&tmps->p);
Free(tmps); Free(tmps);
@@ -1153,6 +1155,20 @@ U0 ExpireShots()
} }
} }
U0 ExpireSplats()
{
MyMass *tmpm,*tmpm1;
tmpm=ode->next_mass;
while (tmpm!=&ode->next_mass) {
tmpm1=tmpm->next;
if (tmpm->type==MT_SUPER_NAPALM_SPLAT && tS>tmpm->die_timeout) {
QueRem(tmpm);
Free(tmpm);
}
tmpm=tmpm1;
}
}
U0 ExpireMissiles() U0 ExpireMissiles()
{ {
I64 i; I64 i;
@@ -1205,6 +1221,18 @@ U0 AI()
U0 InitLevel() U0 InitLevel()
{ {
I64 i; I64 i;
MyMass *tmpm,*tmpm1;
tmpm=ode->next_mass;
while (tmpm!=&ode->next_mass) {
tmpm1=tmpm->next;
if (tmpm->type==MT_SUPER_NAPALM_SPLAT) {
QueRem(tmpm);
Free(tmpm);
}
tmpm=tmpm1;
}
if (level==4) if (level==4)
OneTimePopUp(&msg_flags,XMSGF_ANTISPIN, OneTimePopUp(&msg_flags,XMSGF_ANTISPIN,
"Press $$GREEN$$<CURSOR-DOWN>$$FG$$ for anti-spin stabilizer.\n"); "Press $$GREEN$$<CURSOR-DOWN>$$FG$$ for anti-spin stabilizer.\n");
@@ -1300,7 +1328,7 @@ U0 XCaliber()
case SC_CURSOR_RIGHT: case SC_CURSOR_RIGHT:
if (sc&SCF_CTRL) if (sc&SCF_CTRL)
HumanFireMissileBegin(0); HumanFireMissileBegin(0);
if (sc&SCF_SHIFT) else if (sc&SCF_SHIFT)
ctrl_panel.fuse_time+=2; ctrl_panel.fuse_time+=2;
else else
human_t_right=MAX_THRUST; human_t_right=MAX_THRUST;
@@ -1308,7 +1336,7 @@ U0 XCaliber()
case SC_CURSOR_LEFT: case SC_CURSOR_LEFT:
if (sc&SCF_CTRL) if (sc&SCF_CTRL)
HumanFireMissileBegin(1); HumanFireMissileBegin(1);
if (sc&SCF_SHIFT) else if (sc&SCF_SHIFT)
ctrl_panel.fuse_time-=2; ctrl_panel.fuse_time-=2;
else else
human_t_left =MAX_THRUST; human_t_left =MAX_THRUST;
@@ -1379,6 +1407,7 @@ U0 XCaliber()
} }
AI; AI;
ExpireShots; ExpireShots;
ExpireSplats;
ExpireMissiles; ExpireMissiles;
CheckDamage; CheckDamage;
Refresh; //msgs are only qued by winmgr Refresh; //msgs are only qued by winmgr
+1 -1
View File
@@ -1,6 +1,6 @@
#define LASER_MAX_TEMP 30.0 #define LASER_MAX_TEMP 30.0
#define LASER_THRESHOLD_TEMP 10.0 #define LASER_THRESHOLD_TEMP 10.0
#define MASS_MAX_TEMP 5.0 #define MAX_MASS_TEMP 5.0
class CtrlPanelState class CtrlPanelState
{ {
Binary file not shown.
+87 -85
View File
@@ -340,89 +340,91 @@ $LK,"PrsDotDotDot",A="FL:::/Compiler/PrsVar.HC.Z,381",BI=266$
$LK,"ICMulEqu",A="FL:::/Compiler/BackA.HC.Z,322",BI=267$ $LK,"ICMulEqu",A="FL:::/Compiler/BackA.HC.Z,322",BI=267$
$LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.HC.Z,1",BI=268$ $LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.HC.Z,1",BI=268$
$LK,"PrsNoWarn",A="FL:::/Compiler/PrsStmt.HC.Z,799",BI=269$ $LK,"PrsNoWarn",A="FL:::/Compiler/PrsStmt.HC.Z,799",BI=269$
H2@2#2#;#A#\#a#Œ#Ž#Ã#­#Ó#Ú#ë#þ#¨­ÓÇcÇcÝcåcðcücdþc+d1d1d[dbd�d›d›dÈdêdeïde=e*eTe[e†e†e�e±eÇeÇeÇeÑeH>Lÿÿ!ÿ+ÿ/ÿ3ÿ8ÿ:ÿRÿjÿjÿtÿp©ÁACJPVX^dz�œ¡£¨²ÇÝð'(FåFåZå{ååå‡å8åå å$å/å8å?åAåFåd`µþØþØÙ Ù-Ù/Ù<Ù>ÙJÙJÙWÙYÙfÙhÙtÙtÙ�Ù�Ù�٨ٯپÙÉÙÏÙÔÙÖÙâÙéÙøÙÚ ÚÚÚÚLÚrÚ‚Ú’Ú¢Ú¤Ú´ÚÄÚÔÚÔÚÙÚìÚóÚúÚúÚúÚúÚÛÛ#Û)Û/Û5Û9Û9Û9ÛfÛmÛƒÛ�Û•Û›Û¡Û£Û£Û±ÛDÃÛÛÌÛÏÛÒÛßÛåÛòÛõÛøÛþÛÜ H2@2#2#;#A#\#a#Œ#Ž#Ã#­#Ó#Ú#ë#þ#¨­Ó÷c÷c dd d,dLd.d[dadad‹d’d½dËdËdøde2e eAemeZe„e‹eee½eáe÷e÷e÷efH>L7ÿ7ÿQÿ[ÿ_ÿcÿhÿjÿ‚ÿšÿšÿ¤ÿp©ÁGGqsz€†ˆŽ”ª½ÌÑÓØâ÷  EW(NåNåbåƒå‡å‡å�å8åå'å,å7å@åGåIåNåd`µÙÙ$Ù(Ù5Ù7ÙDÙFÙRÙRÙ_ÙaÙnÙpÙ|Ù|Ù—Ù¥Ù¥Ù°Ù·ÙÆÙÑÙ×ÙÜÙÞÙêÙñÙÚ ÚÚÚÚ$ÚTÚzÚŠÚšÚªÚ¬Ú¼ÚÌÚÜÚÜÚáÚôÚûÚÛÛÛÛ Û Û+Û1Û7Û=ÛAÛAÛAÛnÛuÛ‹Û—Û�Û£Û©Û«Û«Û¹ÛDþ۾ÛÔÛ×ÛÚÛçÛíÛúÛýÛÜÜÜÜ ,cj‹‹‹(‹3‹>‹D‹J‹
Ü ,cj‹‹‹ ‹+‹6‹<‹B‹ hl––¤¹¿ P z7z7ˆ7—7³7¹7Ë7Ë7Ö7ß7å7ì7ò7 ”;\�L�L—L›L´LÎLëL MM&MJMaMaM€M�M˜M¥M¬MÞMïMóMûMûMNN"N&N Œ×ö.6:HNTT€–ª¸ÏÕáæô  ) + 2 2 8 8 H |1’"’"¨"±"¼"Ö"Ö"Ù"è"î"÷"ù"ÿ"#
hlfft‰� P z7z7ˆ7—7³7¹7Ë7Ë7Ö7ß7å7ì7ò7 ”;\_L_LgLkL„LžL»LÜLåLöLM1M1MPM_MhMuM|M®M¿MÃMËMËMÞMîMòMöM Œ×öÞÞþ ###!#$#$#.#0 'X‰X‰f‰†‰Œ‰’‰’‰˜‰„“°ø¡ø¡ ¢¢¢¢B¢U¢\¢m¢’¢�¢¨¢ª¢µ¢Ú¢å¢ð¢ò¢ù¢££££@£("ÇáÇáÖáíáâââ gágáváŒá’á ˆ€´€´¥´¬´Ã´Ï´Ú´ì´ý´î´ì´µ8µDµKµQµ]µgµnµuµyµ{µ�µ�µ—µžµ¥µ©µ©µ³µ¸µÃµÕµæµ×µÕµ'¶3¶:¶@¶L¶V¶]¶d¶h¶j¶p¶|¶†¶�”¶˜¶˜¶¥¶³¶Ã¶Õ¶æ¶×¶Õ¶·'·3·:·@·L·V·]·d·h·j·p·|·†·�·”·˜·˜·¢·²·Ä·Õ·Æ·Ä·õ·ü·¸¸¸ ¸&¸*¸,¸2¸>¸H¸O¸V¸Z¸Z¸d¸r¸{¸”¸ ¸¤¸¤¸§¸°¸&¹Ôo„o„Œ„Zª”„£„Ƅфã„ê„û„……
$$PfzˆŸ¥±Äàéùû     |1’"’"¨"±"¼"Ö"Ö"Ù"è"î"÷"ù"ÿ"# ………H…H…]…_…_…k…s…w…„…„…�…˜…œ…©…©…©…Å…Ð…á…á…æ…þ… †††#†(†(†-†E†T†Y†_†j†o†o†}†††’†š†¢†ª†­†³†¸†Á†Ó†܆í†ý†ý†‡
###!#$#$#.#0 'P‰P‰^‰~‰„‰Š‰Š‰�‰„“°ð¡ð¡¢ ¢¢¢:¢M¢T¢e¢Š¢•¢ ¢¢¢­¢Ò¢Ý¢è¢ê¢ñ¢ú¢ü¢££8£("—á—á¦á½áØáØáÞá 7á7áFá\ábá ˆx´x´�´¤´»´Ç´Ò´ä´õ´æ´ä´µ0µ<µCµIµUµ_µfµmµqµsµyµ…µ�µ–µ�µ¡µ¡µ«µ°µ»µÍµÞµÏµÍµþµ+¶2¶8¶D¶N¶U¶\¶`¶b¶h¶t¶~¶…¶Œ¶���«¶»¶Í¶Þ¶Ï¶Í¶þ¶ ·+·2·8·D·N·U·\·`·b·h·t·~·…·Œ·�·�·š·ª·¼·Í·¾·¼·í·ô·ú·¸¸¸¸"¸$¸*¸6¸@¸G¸N¸R¸R¸\¸j¸s¸Œ¸˜¸œ¸œ¸Ÿ¸¨¸¹Ô?„?„\„*ªd„s„–„¡„³„º„˄ӄׄÚ„è„ì„……-…/…/…;…C…G…T…T…`…h…l…y…y…y…•… …±…±…¶…Î…Ý…â…è…ó…ø…ø…ý…†$†)†/†:†?†?†M†V†b†j†r†z†}†ƒ†ˆ†‘†£†¬†½†͆͆Ò†Ú†â†å†ë†ë†ð†ð†ð†ö†ù†‡ ‡ ‡E‡\‡i‡q‡y‡…‡‘‡—‡ž‡§‡«‡®‡º‡À‡LJ̇̇Ú‡ê‡ê‡÷‡÷‡ÿ‡ˆˆ ˆ$ˆ$ˆ+ˆ6ˆ<ˆDˆJˆUˆZˆZˆiˆtˆ†ˆŒˆ”ˆšˆŸˆªˆ¼ˆˆʈЈÕˆÕˆéˆïˆúˆ‰‰‰‰‰=‰d‰i‰i‰}‰ƒ‰™‰ª‰°‰µ‰ΉÔ‰ä‰ì‰ô‰ú‰ÿ‰ÿ‰ŠŠ/Š@ŠFŠKŠdŠjŠzŠ‚ŠŠŠ�ЕЕЫбŠÇŠØŠÞŠãŠòŠøŠ ‹‹‹ ‹&‹+‹+‹A‹G‹]‹n‹t‹v‹…‹‹‹•‹�‹¥‹«‹²‹²‹²‹Ä‹Í‹Þ‹î‹î‹ó‹ó‹Œ ŒŒ-Œ4Œ:ŒBŒHŒXŒ^ŒfŒlŒlŒlŒqŒqŒqŒqŒqŒ�ŒœŒ¡Œ¡Œ°Œ¹ŒÄŒÍŒØŒãŒèŒèŒþŒ��+�1�6�H�N�S�l�Š�Š�����›�£�¦�¬�²�·�·�Û�ã�ë�û�ŽŽŽŽ6Ž6Ž;Ž;ŽGŽOŽRŽYŽ_ŽdŽdŽ„ŽŒŽœŽ¢Ž©ŽÇŽÖŽÞŽöŽþŽ���&�.�F�N�Q�X�^�^�^�}���™�¡�¤�«�±�Á�Ð�Ü�÷�ÿ�� ��'�3�N�V�Y�`�f�f�f�f�k�k�t�„�š� �¸�Ë�Ñ�Ö�è�î�ó�‘‘!‘)‘,‘3‘9‘b‘j‘z‘€‘‡‘‡‘‡‘Œ‘Œ‘•‘­‘ÑÉ‘á‘ô‘ú‘ÿ‘*’0’C’z’Œ’©’±’·’¼’¼’Ö’â’î’ù’ù’þ’þ’“$“0“;“;“@“@“Z“f“r“}“}“‚“‚“˜“ž“ª“°“µ“Ǔ͓ғá“í“ù“ÿ“” ” ”*”3”?”G”J”P”V”[”o”~”†”ž”¦”©”¯”µ”͔Քõ”••• •&•&•7•@•L•T•W•^•d•i•{•Š•’•ª•²•µ•¼••Ú•â•––#–&–-–3–3–C–L–X–`–c–i–o–t–ˆ–—–Ÿ–¹–Á–Ä–Ê–Жè–ð–—.—6—9—?—E—E—V—_—k—s—v—}—ƒ—ˆ—š—©—±—Ì—Ô—×—Þ—ä—ü—˜&˜C˜K˜N˜U˜[˜[˜[˜[˜[˜`˜`˜v˜|˜ˆ˜Ž˜“˜¥˜«˜°˜¾˜ʘÓ˜ߘç˜ê˜ñ˜÷˜ü˜™™%™=™E™H™O™U™m™u™”™®™¶™¹™À™Æ™Æ™Æ™×™à™ì™ô™÷™þ™šš*š6šQšYš\šcšiš�š�š¯šÌšÔšךÞšäšäšäšäšäšéšéšüš››(›-›-›@›V›\›g›i›i›|›Ÿ›¥›°›°››Ë›Ü›á›ó›œœœœœ1œ7œEœTœYœYœlœ‚œˆœ–œ¥œªœªœÀœÆœãœûœûœ%�+�0�<�E�T�T�Y�Y�o�u�’�ª�ª�Ô�Ú�ß�ë�ô�žžžžž$žAžYžYžƒž‰žŽžšž£ž²ž²ž·ž·žÍžÓžðžŸŸ2Ÿ8Ÿ:ŸFŸOŸZŸZŸZŸZŸ_ŸmŸvŸ‡Ÿ‰Ÿ›Ÿ¨Ÿ¨Ÿ¨Ÿ¸ŸÈŸÍŸñŸýŸþŸ  5 E i y    „ ‰ ž ± ï ÿ ¡¡ ¡¡,¡^¡f¡l¡n¡s¡z¡z¡ƒ¡•¡¨¡±¡À¡À¡Å¡Ê¡Ù¡â¡í¡ï¡ø¡¢¢$¢+¢1¢9¢D¢J¢Z¢`¢h¢s¢y¢y¢~¢ƒ¢Š¢‘¢˜¢Ÿ¢¨¢·¢·¢·¢¼¢¼¢¼¢΢Ó¢Ó¢å¢ð¢ø¢££££ £ ££'£*£6£?£K£R£X£]£]£h£y£|£ˆ£‘£�£¤£ª£¯£¯£¯£¯£´£¹£¹£Ä£È£È£Ô£Ý£à£à£ë£í£¤ ‡‡‡‡‡ ‡ ‡ ‡&‡)‡0‡;‡P‡u‡Œ‡™‡¡‡©‡µ‡Á‡LJ·ׇÛ‡Þ‡ê‡ð‡÷‡ü‡ü‡
¤¤ ¤*¤5¤;¤G¤K¤K¤W¤`¤c¤c¤n¤p¤†¤�¤“¤›¤¦¤±¤·¤Á¤ĤȤȤФפÚ¤ܤç¤ë¤ô¤÷¤÷¤¥¥"¥)¥4¥?¥B¥H¥M¥M¥X¥\¥\¥h¥q¥t¥t¥¥�¥—¥ž¥¤¥³¥¾¥É¥Ï¥Û¥ߥߥë¥ô¥÷¥÷¥¦¦¦!¦'¦/¦:¦E¦K¦U¦X¦\¦\¦d¦k¦n¦p¦{¦¦ˆ¦‹¦‹¦–¦˜¦¶¦½¦ȦÓ¦Ö¦ܦá¦á¦ó¦÷¦÷¦§ §§§§§2§9§?§Q§\§g§m§r§r§}§‚§‚§�§’§’§�§ §¤§«§°§µ§º§º§ΧÓ§Ó§à§ä§õ§ý§¨¨¨ ¨ ¨-¨9¨A¨G¨W¨[¨l¨~¨‰¨�¨�¨š¨¢¨ª¨°¨°¨°¨°¨°¨²¨²¨À¨ǨÔ¨à¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨ð¨ð¨©©©©<©K©c©e©q©~©~©¡©®©¹©©Ë©Ö©Ý©Ý©ç©ç©ê©ü©ª&ª&ªS¬xÝ÷R5R5d5f5j5s55‹5 5 5Ï5Ó5Ø5ä5÷566666$6l_v——­¼ÁÖÃåèèõ ˆˆˆ'ˆ'ˆ/ˆ7ˆ@ˆOˆTˆTˆ[ˆfˆlˆtˆzˆ…ˆŠˆŠˆ™ˆ¤ˆ¶ˆ¼ˆĈʈψÚˆìˆòˆúˆ‰‰‰‰ ‰*‰0‰2‰B‰H‰H‰m‰”‰™‰™‰­‰³‰ɉÚ‰à‰å‰þ‰ŠŠŠ$Š*Š/Š/ŠCŠIŠ_ŠpŠvŠ{Š”ŠšŠªŠ²ŠºŠÀŠÅŠÅŠÛŠáŠ÷Š‹‹‹"‹(‹9‹A‹I‹O‹V‹[‹[‹q‹w‹�‹ž‹¤‹¦‹µ‹»‹Å‹Í‹Õ‹Û‹â‹â‹â‹ô‹ý‹ŒŒŒ#Œ#Œ1Œ9ŒJŒ]ŒdŒjŒrŒxŒˆŒŽŒ–ŒœŒœŒœŒ¡Œ¡Œ¡Œ¡Œ¡ŒÀŒÌŒÑŒÑŒàŒéŒôŒýŒ����.�4�J�[�a�f�x�~�ƒ�œ�º�º�¿�¿�Ë�Ó�Ö�Ü�â�ç�ç� ŽŽŽ+Ž1Ž7Ž7ŽHŽfŽfŽkŽkŽwŽŽ‚މŽ�ޔޔ޴޼ŽÌŽÒŽÙŽ÷Ž��&�.�1�8�>�V�^�v�~���ˆ�Ž�Ž�Ž�­�½�É�Ñ�Ô�Û�á�ñ�� �'�/�2�9�?�W�c�~�†�‰���–�–�–�–�›�›�¤�´�Ê�Ð�è�û�‘‘‘‘#‘?‘E‘Q‘Y‘\‘c‘i‘’‘š‘ª‘°‘·‘·‘·‘¼‘¼‘őݑó‘ù‘’$’*’/’Z’`’s’ª’¼’Ù’á’ç’ì’ì’“““)“)“.“.“H“T“`“k“k“p“p“Š“–“¢“­“­“²“²“È“ΓÚ“à“å“÷“ý“”””)”/”5”<”O”Z”c”o”w”z”€”†”‹”Ÿ”®”¶”Δ֔ٔߔå”ý”•%•?•G•J•P•V•V•g•p•|•„•‡•Ž•”•™•«•º••Ú•â•å•ì•ò•
€÷€ €8€Q€j€ƒ€œ€¦€„ž×o×oõoýop ––1–K–S–V–]–c–c–s–|–ˆ–�–“–™–Ÿ–¤–¸–Ç–Ï–é–ñ–ô–ú–—— —B—^—f—i—o—u—u—†—�—›—£—¦—­—³—¸—Ê—Ù—á—ü—˜˜˜˜,˜4˜V˜s˜{˜~˜…˜‹˜‹˜‹˜‹˜‹˜�˜�˜¦˜¬˜¸˜¾˜ØÕ˜Û˜à˜î˜ú˜™™™™!™'™,™>™M™U™m™u™x™™…™�™¥™Ä™Þ™æ™é™ð™ö™ö™ö™ššš$š'š.š4šKšZšfš�š‰šŒš“š™š±š½šßšüš››››››››››,›G›M›X›]›]›p›†›Œ›—›™›™›¬›Ï›Õ›à›à›ò›û› œœ#œ3œ3œ8œ8œKœaœgœuœ„œ‰œ‰œœœ²œ¸œÆœÕœÚœÚœðœöœ�+�+�U�[�`�l�u�„�„�‰�‰�Ÿ�¥�Â�Ú�Ú�ž
ppppp$p$p5p9p?p?pTp^p^pfpp¢pÃpÈpépîpúpq žžž$ž3ž3ž8ž8žNžTžqž‰ž‰ž³ž¹ž¾žÊžÓžâžâžçžçžýžŸ Ÿ8Ÿ8ŸbŸhŸjŸvŸŸŠŸŠŸŠŸŠŸ�Ÿ�Ÿ¦Ÿ·Ÿ¹ŸËŸØŸØŸØŸèŸøŸýŸ! - . 3 H e u ™ © ¯ ¯ ¯ ´ ¹ Πá  ¡/¡5¡7¡<¡M¡\¡Ž¡–¡œ¡ž¡£¡ª¡ª¡³¡Å¡Ø¡á¡ð¡ð¡õ¡ú¡ ¢¢¢ ¢(¢3¢3¢T¢[¢a¢i¢t¢z¢Š¢�¢˜¢£¢©¢©¢®¢³¢º¢Á¢È¢Ï¢Ø¢ç¢ç¢ç¢ì¢ì¢ì¢þ¢£££ £(£0£6£6£6£;£;£F£W£Z£f£o£{£‚£ˆ£�£�£˜£©£¬£¸£Á£Í£Ô£Ú£ߣߣߣߣä£é£é£ô£ø£ø£¤ ¤¤¤¤¤3¤:¤@¤O¤Z¤e¤k¤w¤{¤{¤‡¤�¤“¤“¤ž¤ ¤¶¤½¤äˤÖ¤á¤ç¤ñ¤ô¤ø¤ø¤¥¥
qqq1q7q<qBqDqJqMqSqXq[qcqlq|qŸq­qÅqÊqÎqóqr rr1r6r:r_ror’r¥rªr°rµr¸rºrÀrÆrÌrÑr×rßrßréròrsss!sFsVsysŒs‘s¡sÄsÒsêsïsóst+t+tFtFtFtTtltntntnt|t”t–t–t¤t¼t¼tÎtÎt×tätútu4u<uGuZu^u^u^ueuku…u�u˜u³uµu»uÕuÝuèuöuvvvH…“ † †·†Í†Ý†ä†û†‡(‡,‡o‡L�ž·�·�Ë�Ø�î�Ú�ý�ÿ�‚1‚<‚G‚O‚4IR†Ø†Ø�Ø�ؒؠخرضØì=çüçüýý0ýGýXýXýsýyý~ý~ý™ýŸý¤ý¤ý­ý»ýØýðýõýüýþþ!þ1þ6þ=þCþEþEþXþ^þ^þ^þnþcþþ�þ¡þ¦þ¦þ¦þ­þ´þ»þÐþ×þóþóþÿÌL»°¦°¦Ê¦Õ¦à¦é¦ñ¦ô¦û¦ÿ¦§§ §%§3§P§]§l§q§}§‚§‰§•§š§�§§§Ÿ§·§À§Ñ§Ï§Ç§ß§è§î§î§ü§ÿ§¨¨%¨,¨0¨5¨L¨d¨m¨{¨—¨£¨£¨»¨Ì¨Ì¨Ó¨ì¨ø¨©©©.©7©>©B©M©R©Y©v©£©ª©®©°©»©Ç©Ë©à©â©ó©ý©ªª!ª0ªIªIªLªTªYªÛªPw‡÷N÷NO$O7ONOkO†OŒO•O£O©O¬O¸OŒ  b b°bÔbÔbâbâbâbâbëbëbòb c"c*c*c5c5cCcScScacgcgccc…c«c (kqH‹H‹V‹b‹r‹y‹‹ @KW�ë�ë�ë¥ë¬ëËëØëØëÛëÝëãë!$/4?â?âLâaâfâlâ"$).âââ1â6â<â#$#(ßáßáîáâ ââ$€ïK**4DZbl‡Œœ²ºÄßäú   " , 6 @ J T ^ h r | ’ œ ¦ ° º Ä Î Ø â ø  " , 6 @ J T ^ h r | † � š ¤ ® ¸ Â Ì Ö à ê ô þ !!!&!0!:!D!N!\!%¤Cð�ð�ž ž"ž3žEžGžNžTždžožyž„ž›žžž ž²ž¸žÈžÒžÜžãžîžŸ Ÿ Ÿ!Ÿ!Ÿ!Ÿ5Ÿ&$5:oâoâ}â’â—â�â'¤Di8Ÿ8ŸNŸUŸjŸ{Ÿ�Ÿ�Ÿ–ŸœŸ¬Ÿ·ŸÁŸÌŸãŸæŸèŸúŸ   % , 7 K S S i i i ~ ((&,ò/ò/00000)0]e÷M÷M N N/N5N8N@N*  ß>%>%`%h%n%{%‚%ž%¤%¤%¤%±%³%¾%È%Ï%Þ%é%ï%ù%ÿ%&&&%&%&7&=&M&S&X&_&_&€&†&˜&«&±&´&º&º&¼&Â&È&Ê&Ê&Ê&Û&å&ê&ê&ÿ& ' ''&','2'H'M'U'k'o'o'w'}'ƒ'�'”'›'¤'¶'¶'Û'ß'å'ë'ý'((( (&(,(,(.(2(8(>(D(I(I(I(I(t(…(…(œ(©(­(µ(Ç(ç(ç(í(ð(ô(ú(ú( ))2)F)N)_)c)t)x)~)—)™)Ÿ)¬)®)º)Ø)Þ)é) ***#*)*2*8*J*[*c*g*x*|*‚*›*�*£*°*²*¾*Ü*â*è*î*÷*ý*+ +4+=+C+C+X+]+]+d+n+ƒ+ˆ+ˆ+ˆ+¥+§+Ä+Æ+ã+é+ñ+õ+ü+ ,%,+,7,N,U,[,f,k,k,r,v,€,Ž,�,˜,�,¥,°,¶,Å,Ê,Ð,Õ,Ý,â,ñ,--%-0-L-N-j-j-q-†-‹-”-¡-¦-¬-±-±-¸-¼-Æ-Ô-Ö-Þ-â-æ-ð-ü-.... .1.?.D.P.P.X.X.{.{.‰.�.”.˜.�.�.�.�.£.¥.¥.È.Î.Ô.Û.ñ.ó.ó.ó.þ.þ.þ./,0+4-v^Ê^ÊxÊ|ʔʜʤʮʲʹʿÊÓÊÛÊàÊãÊîÊùÊË ËËË/Ë6Ë=ËHËSËUË`ËkËmËy˂˂˘ˣ˻ËÁËÊËÛËáËêËüËÌÌ ¥ ¥¥¥$¥'¥'¥2¥4¥R¥Y¥d¥o¥r¥x¥}¥}¥ˆ¥Œ¥Œ¥˜¥¡¥¤¥¤¥¯¥±¥Ç¥Î¥Ô¥ã¥î¥ù¥ÿ¥ ¦¦¦¦$¦'¦'¦2¦4¦J¦Q¦W¦_¦j¦u¦{¦…¦ˆ¦Œ¦Œ¦”¦›¦ž¦ ¦«¦¯¦¸¦»¦»¦ƦȦæ¦í¦ø¦§§ §§§#§'§'§3§<§?§?§J§L§b§i§o§�§Œ§—§�§¢§¢§­§²§²§½§§§ͧЧÔ§Û§à§å§ê§ê§þ§¨¨¨¨%¨-¨1¨E¨L¨P¨P¨]¨i¨q¨w¨‡¨‹¨œ¨®¨¹¨½¨½¨ʨÒ¨Ú¨à¨à¨à¨à¨à¨â¨â¨ð¨÷¨©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© © ©7©?©K©K©l©{©“©•©¡©®©®©Ñ©Þ©é©ò©û©ª ª ªªªª,ªJªVªVªƒ¬xÝ÷R5R5d5f5j5s55‹5 5 5Ï5Ó5Ø5ä5÷566666$6l_vÇÇÝìñ€ó€€€%€:€'€I€O€h€�€š€³€Ì€Ö€„žpp%p-p3p:pApCpFpMpTpTpepipopop„pŽpŽp–p¯pÒpópøpqq*q5q:qJqMqaqgqlqrqtqzq}qƒqˆq‹q“qœq¬qÏqÝqõqúqþq#r6r;rIrarfrjr�rŸrÂrÕrÚràrårèrêrðrörürsssss"s0sHsMsQsvs†s©s¼sÁsÑsôstt t#tHt[t[tvtvtvt„tœtžtžtžt¬tÄtÆtÆtÔtìtìtþtþtuu*uJuduluwuŠuŽuŽuŽu•u›uµu½uÈuãuåuëuv vv&v1v1vKvH…“¨†¨†¿†Õ†å†ì†‡‡0‡4‡w‡L�žç�ç�û�‚‚
ÌÌÌÌ0Ì;Ì?ÌMÌOÌSÌbÌbÌbÌsÌsÌxÌŠÌ�ÌþÌ,Ô@޿޿¤æ«æ®æÒæÒæïæçç(ç-ç-çKçYçlçç‡ç‡ç‰ç‰ç‰çœçžçžçžç¥ç¸çËçËçËçÞçéçüçèèè"è7èJèQèQèTèyè-LAP$$$!$-$H$M$m$o$Š$¥$¥$­$´$Û$.P~ŽÐ‹Ð‹Þ‹ë‹ù‹ ŒŒ$Œ1Œ?ŒQŒ\ŒjŒpŒvŒ/4 ‚-‚/‚H‚a‚l‚w‚‚4IRŽØŽØ—ؚؗبضعؾØì=ýý?ýBý`ýwýˆýˆý£ý©ý®ý®ýÉýÏýÔýÔýÝýëýþ þ%þ,þ2þ4þQþaþfþmþsþuþuþˆþŽþŽþŽþžþ“þ¯þ¿þÑþÖþÖþÖþÝþäþëþÿÿ#ÿ#ÿ5ÿÌL»¸¦¸¦Ò¦Ý¦è¦ñ¦ù¦ü¦§§§#§'§-§;§X§e§t§y§…§Š§‘§�§¢§¥§¯§§§¿§È§Ù§×§Ï§ç§ð§ö§ö§¨¨¨$¨-¨4¨8¨=¨T¨l¨u¨ƒ¨Ÿ¨«¨«¨Ã¨Ô¨Ô¨Û¨ô¨©©©"©6©?©F©J©U©Z©a©~©«©²©¶©¸©Ã©Ï©Ó©è©ê©û©ªªª)ª8ªQªQªTª\ªaªãªPw‡'O'OCOTOgO~O›O¶O¼OÅOÓOÙOÜOèOŒ ¨b¨b¸bÜbÜbêbêbêbêbóbóbúbc*c2c2c=c=cKc[c[cicococ‡c‡c�c³c (kqP‹P‹^‹j‹z‹�‹‡‹ @KW¿ë¿ëÍëÕëÜëûëìì ì ìì!$/4oâoâ|â‘â–âœâ"$).?â?âLâaâfâlâ#$#(âââ4â9â?â$€ïK**4DZbl‡Œœ²ºÄßäú   " , 6 @ J T ^ h r | ’ œ ¦ ° º Ä Î Ø â ø  " , 6 @ J T ^ h r | † � š ¤ ® ¸ Â Ì Ö à ê ô þ !!!&!0!:!D!N!\!%¤Cø�ø�žž*ž;žMžOžVž\žlžwž�žŒž£ž¦ž¨žºžÀžÐžÚžäžëžöž ŸŸŸ)Ÿ)Ÿ)Ÿ=Ÿ&$5:ŸâŸâ­âÂâÇâÍâ'¤Di@Ÿ@ŸVŸ]ŸrŸƒŸ•Ÿ—ŸžŸ¤Ÿ´Ÿ¿ŸÉŸÔŸëŸîŸðŸ    # - 4 ? S [ [ q q q † ((&,ò/ò/00000)0]e'N'N=NPN_NeNhNpN*  ßn%n%�%˜%ž%«%²%Î%Ô%Ô%Ô%á%ã%î%ø%ÿ%&& &)&/&@&@&K&U&U&g&m&}&ƒ&ˆ&�&�&°&¶&È&Û&á&ä&ê&ê&ì&ò&ø&ú&ú&ú& ''''/'9'9'M'V'\'b'x'}'…'›'Ÿ'Ÿ'§'­'³'½'Ä'Ë'Ô'æ'æ' ((((-(@(F(J(P(V(\(\(^(b(h(n(t(y(y(y(y(¤(µ(µ(Ì(Ù(Ý(å(÷())) )$)*)*)<)M)b)v)~)�)“)¤)¨)®)Ç)É)Ï)Ü)Þ)ê)***<*G*M*S*Y*b*h*z*‹*“*—*¨*¬*²*Ë*Í*Ó*à*â*î* ++++'+-+J+=+d+m+s+s+ˆ+�+�+”+ž+³+¸+¸+¸+Õ+×+ô+ö+,,!,%,,,O,U,[,g,~,…,‹,–,›,›,¢,¦,°,¾,À,È,Í,Õ,à,æ,õ,ú,-- --!-8-H-U-`-|-~-š-š-¡-¶-»-Ä-Ñ-Ö-Ü-á-á-è-ì-ö-..... .,.3.7.?.G.O.a.o.t.€.€.ˆ.ˆ.«.«.¹.¿.Ä.È.Í.Í.Í.Í.Ó.Õ.Õ.ø.þ./ /!/#/#/#/./././3/\0+4-vfÊfʀʄʜʤʬʶʺÊÁÊÇÊÛÊãÊèÊëÊöÊË ËË Ë!Ë7Ë>ËEËPË[Ë]ËhËsËuË�ËŠËŠË Ë«ËÃËÉËÒËãËéËòËÌ
77(747E7W7`7n7t70|ºU~ ~   § µ À æ æ ï ñ ñ ø  & & 5 D ` k k w  � ™ ·  Ä Ý ã î þ   $ ) / 6 ^ c q z z � � § § ¿ Ó Ú á æ ñ ÷ ÿ %.5:EQ`ty��ŸŸ½ÅÕçíöö  $4CUZj}…™·ÎÒÞõ#)4@P`enn€„�§ÃÕÛæò$**/1166EKQQUÎ1ŒÄãÜÜ*Ü6Ü:Ü>ÜEÜLÜ[ÜfÜlÜqÜsÜ܆܎ܔܚܞܞܭܴܼÜÂÜÈÜÊÜÊÜÖÜ28 */*/8/>/J/U/f/p/w/}/3@t€ïìïìýìíí.í;í;í>í@íFí4ÌS— — ½ Ð × Þ å ë í ô û þ þ  Ì
 ÌÌÌ!Ì&Ì8ÌCÌGÌUÌWÌ[ÌjÌjÌjÌ{Ì{̘̀̒ÌÍ,Ô@–æ–æ¬æ³æ¶æÚæÚæ÷æ
" çç0ç5ç5çSçaçtç‡ç�ç�ç‘ç‘ç‘ç¤ç¦ç¦ç¦ç­çÀçÓçÓçÓçæçñçèè è#è*è?èRèYèYè\è�è-LAP$$$!$-$H$M$m$o$Š$¥$¥$­$´$Û$.P~ŽØ‹Ø‹æ‹ó‹ŒŒŒ,Œ9ŒGŒYŒdŒrŒxŒ~Œ/4
- 77(747E7W7`7n7t70|ºU– – ¸ ¿ Í Ø þ þ     < C C R a } ˆ ˆ • � ® · Õ à â û    . 7 B G M T | � � ˜ ˜ Ÿ ® Å Å Ô Ý ñ ø ÿ CLSXco~’—Ÿ«½½Ùàèø
A (.BGWk}‚’¥­Áßöú9KQ\hxˆŽ——©­¹Ðìþ+;MSSXZZ__ntzz~÷1ŒÄãÜÜ2Ü>ÜBÜFÜMÜTÜcÜnÜtÜyÜ{܇܎ܖܜܢܦܦܼܵÜÄÜÊÜÐÜÒÜÒÜÞÜ28 */*/8/>/J/U/f/p/w/}/3@t€ í í-í8í?í^íkíkínípíví4ÌSÇ Ç í 
I 




$
+
.
.
@
@
R R
Z ]
_ q
e y
{ ‚
‹ Š
  �
¥ •
¾ «
Ö »
Ú Ð
Ú Õ
ß î
è  
ò 
    $ + = M b d } • ™ ™ ­ µ ¾ Æ Ë Ñ ç ÷   * B F Y Y Y ^ € ¢ ­ ³ Ë ã è ó     " ( : J _ a z ’ – – ª ² » à È Ï å õ    " 6 > G O T [ m } ’ ” ­ Å É É Ý å î ö û   ' < A Z r v ‰ ‰ ‰ Ž ° Ò Ý ã û   # 7 ? H P R X j z � ‘ ª  Æ Æ Ú â ë ó ø ÿ %:?Xpt‡‡‡Œ®ÐÛáù#-8JZqˆŸÉäää##,6C]kr…‡¦µ®ÍÝ÷÷5D{ˆ.BKQccgjr6\ObhŠhŠˆŠ—Š Š©Š­Š±Š½ŠÂŠÇŠÇŠØŠÜŠäŠüŠÿŠ ‹70üöäöäÿäå åååå8tÚ‡‡©°·ÂØØêJ$Yp�•™ž³ËÐØÜîá !%%*;ƒ]’°»ÁÕíò $+=Mce~–šš¯ÇÌÔØçÚ----@FPWj……¡±¿¿Óáï;JCbryа¡ÖØMR]cn�ª—¹Ðáü*L�n�®¹¿Óëð ");Kac|”˜˜ºÓçëúúú $7RRRn~ŒŒ ®Ç¼Úíò   8 H Y w w ™ ™   à à à ã 9DmzÆÆÖêóù  :lwŽ×€×€í€ü€���%�(�(�5�J�7�Y�_�x�‘�ª�Ã�Ü�æ�;<‰”vv†— ¦ªµ<”)FïFïNïRï^ïoïqï�ïŒïžï©ï´ïÃïÔïÛïôïøï ð ððð-ð6ðDðXðtðyð–ð=d(=˜‰˜‰¤‰¸‰»‰Ï‰×‰Û‰å‰ï‰÷‰ú‰Š>4u¾8G8G^GaGeGrG{G†G–GžG¨GÐGÐGàGåGåGõGúGúG
(@DWWW\~ «±Éáááíóý*AXo††™´´´Õåóóü-;BUWv…~�­ÇÇà5D{ˆîîþ!337:B6\Ob`Š`Š€Š�Š˜Š¡Š¥Š©ŠµŠºŠ¿Š¿ŠÐŠÔŠÜŠôŠ÷Š‹70üîäîä÷äüäå ååå8tÚWWy€‡’¨¨ºÓÓÞâíô)@Qeinƒ› ¨¬¾±Ýñõõú S-b€‹‘¥½ÂÖÞçïôû 35Nfjj—œ¤¨·ªÖêîýýýý ':UUq���£±¿Ôçì 2BIZ€q¦¨ÔÔÔß"-3>`zg‰ ±ÌàäéúQ>`~‰�£»ÀÔÜåíòù 13LdhhŠ£·»ÊÊÊÝãíô""">N\\p~—Œª½Âáðé  ) G G i i p “ “ “ ³ 9Dmz––¦ºÃÉÛÛßâê:lwާ€§€½€Ì€Ñ€æ€Ó€õ€ø€ø€���)�/�H�a�z�“�¬��;<‰”FFVgpvz…<”)>ï>ïFïJïVïgïiïyï„ï–ï¡ï¬ï»ïÌïÓïìïðïðð ðð%ð.ð<ðPðlðqðŽð=d(=�‰�‰œ‰°‰³‰Ç‰Ï‰Ó‰Ý‰ç‰ï‰ò‰ø‰>4u¾8G8G^GaGeGrG{G†G–GžG¨GÐGÐGàGåGåGõGúGúG HHH H$H$H4H9H9HIHNHNH^HcHcHsHxHxHˆH�H�H�H�H™H²HÀH×HêHìHòHôH÷HI I II#I#I.I>IKIcIkIqIqI…I…IŽI‘IQJ?Ä n‡¬‡¬¤¬¬¬¯¬½¬ˬà¬é¬­­/­:­K­O­a­d­o­x­„­—­È­½­£­Ø­ï­®®®>®S®w®‹®�®®®”®É®Ì®Ñ®Ô®Ô®Û®ñ®ø®¯
HHH H$H$H4H9H9HIHNHNH^HcHcHsHxHxHˆH�H�H�H�H™H²HÀH×HêHìHòHôH÷HI I II#I#I.I>IKIcIkIqIqI…I…IŽI‘IQJ?Ä nW¬W¬t¬|¬¬�¬›¬°¬¹¬Ô¬í¬ÿ¬ ¯¯&¯9¯9¯Q¯U¯‚¯‚¯š¯Ÿ¯Ÿ¯¯¯³¯įί߯é¯ü¯°°°°&°0°A°K°^°j°o°o°o°‘°¢°§°´°ɰɰΰذç°ì°ò°÷°÷°ü°±±± ±%±%±+±1±6±6±>±Q±]±j±v±…±�±•±ž±µ±ɱÚ±ç±ì±²².²;²C²R²\²b²k²t²t²y²y²y²y²y²‰²‰²‰²¡²·²¿²Ú²ë²ø²ú²³ ³ ³ ³³%³*³*³1³?³D³\³h³z³†³Œ³”³š³£³ɳÕ³Û³á³ð³ø³´-´>´K´M´[´[´`´`´g´u´z´�´™´¥´«´±´º´¿´¿´¿´¿´¿´×´Ü´Ü´Ü´Ü´Ü´í´í´í´í´í´í´í´í´í´í´µµ#µ>µOµ\µ^µkµ{µ€µ€µ€µ‰µ£µ¯µ´µÖµâµâµçµçµçµçµçµçµçµçµüµ)¶;¶S¶h¶‰¶ª¶µ¶ƶ˶˶˶Ô¶ú¶···;·T·\·d·r·œ·¥·«·Ì·å·å·å·å·å·¸@¸I¸O¸U¸Z¸c¸l¸q¸q¸q¸q¸€¸”¸²¸¸ȸ͸͸à¸ô¸¹-¹3¹3¹8¹8¹G¹[¹y¹‰¹�¹”¹”¹§¹»¹á¹ô¹ú¹ú¹ÿ¹ÿ¹ÿ¹º-º5ºPºaºnºpºº�º�º�º�º�º•º•º•º•º•º•º•º•º•º•º•º•º•º•º•º•º¤º³º¾ºÀºÀºɺ˺˺ߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺߺáºáºøº» » »»»%»A»Y»h»t»Š»¤»§»±»½»ã»¼#¼G¼I¼\¼мb¼¥¼¥¼¨¼¸¼À¼Û¼ì¼ï¼ ½½#½;½;½f½i½x½Œ½­½Á½ݽɽù½¾,¾a¾_¾T¾I¾:¾o¾o¾o¾r¾w¾z¾”¾¢¾оò¾ò¾¿ ¿/¿C¿d¿x¿”¿€¿°¿°¿οÀÀö¿ë¿Ü¿ÀÀÀÀÀÀ À0ÀQÀ]À°Ã@À„°7È7ÈMÈQÈ\ÈcÈnȂȂÈ�ȞȥȲȾÈËÈÏÈàÈàÈéÈîÈöÈÉÉ#É.ÉAÉAÉYÉYÉtɠɠɴɶɶÉÀÉÈÉÈÉÒÉÚÉÚÉÚÉëÉëÉëÉñÉùÉÿÉÊÊ
­­ ­1­4­?­H­T­g­˜­�­s­¨­¿­Ó­ß­í­®#®G®[®]®~®d®™®œ®¡®¤®¤®«®Á®È®Õ®Ú®é®ö® ¯ ¯!¯%¯R¯R¯j¯o¯o¯¯ƒ¯”¯ž¯¯¯¹¯̯ѯѯá¯å¯ö¯°°°.°:°?°?°?°a°r°w°„°™°™°ž°¨°·°¼°°ǰǰ̰Ö°å°ê°ð°õ°õ°û°±±±±!±-±:±F±U±_±e±n±…±™±ª±·±¼±Ô±ç±þ± ²²"²,²2²;²D²D²I²I²I²I²I²Y²Y²Y²q²‡²�²ª²»²Ȳʲײܲܲܲç²õ²ú²ú²³³³,³8³J³V³\³d³j³s³™³¥³«³±³À³ȳгý³´´´+´+´0´0´7´E´J´]´i´u´{´�´Š´�´�´�´�´�´§´¬´¬´¬´¬´¬´½´½´½´½´½´½´½´½´½´½´Õ´ë´ó´µ µ,µ.µ;µKµPµPµPµYµsµµ„µ¦µ²µ²µ·µ·µ·µ·µ·µ·µ·µ·µ̵ѵѵѵâµéµîµîµùµ #¶8¶Y¶z¶…¶–¶›››¤¶ʶÓ¶ä¶ê¶ ·$·,·4·B·l·u·{·œ·µ·µ·µ·µ·µ·×·¸¸ ¸%¸*¸3¸<¸A¸A¸A¸A¸P¸d¸‚¸’¸˜¸�¸�¸°¸ĸê¸ý¸¹¹¹¹¹+¹I¹Y¹_¹d¹d¹w¹‹¹±¹ĹʹʹϹϹϹç¹ý¹º º1º>º@ºOºQºQºQºQºQºeºeºeºeºeºeºeºeºeºeºeºeºeºeºeºeºtºƒºŽº�º�º™º›º›º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º±º±ºȺкܺܺàºåºõº»)»8»D»Z»t»w»�»�»³»Ó»ó»¼¼,¼Z¼2¼u¼u¼x¼ˆ¼�¼«¼¼¼¿¼Ù¼ç¼ó¼ ½ ½6½9½H½\½}½‘½­½™½ɽÞ½ü½1¾/¾$¾¾ ÊÊÊÊ!Ê!Ê7ÊGÊQÊ`ÊeÊmÊmÊrÊrÊyÊ�ÊŸÊ©Ê±Ê·ÊÆÊËÊÓÊÙÊÙÊÞÊåÊðÊ$Ë3Ë=ËEËKË`ËfËkËkËkËkËkËkËkËkËkËv˄˔˚ˢ˱˶ËÃËËËÐËÐËÐËØËáËêË÷ËÿË ÌÌJÌRÌaÌkÌ…Ì‹Ì�Ì�̗̪̲ÌÇÌÏÌ×ÌìÌîÌùÌÍÍÍÍ/Í7Í>ÍDÍJÍNÍWÍ\Í€ÍŒÍ”Í©ÍµÍºÍÆÍÑÍÖÍÖÍÖÍìÍ ÎÎÎ'Î/Î7ÎLÎQÎ\ÎdÎyÎ~Î~΢ήζÎËÎ×ÎÜÎèÎóÎøÎøÎøÎøÎøÎøÎÏÏÏÏÏÏÏÏÏÏÏÏÏÏ Ï.Ï>ÏDÏLÏ[Ï`ÏhÏpÏrÏzωÏ�Ï—ÏŸÏ¡Ï©ÏÆÏÏÏ×ÏßÏæÏúÏÐ ÐÐÐ(Ð0Ð>ÐCÐHÐZЎЖХЯÐÉÐÑÐÖÐÖÐÖÐßÐèÐëÐõÐÑÑÑ)Ñ;Ñ;Ñ;ÑFÑKÑhÑmÑmÑvÑ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{цђѪѽÑÅÑÔÑÙÑáÑèÑõÑþÑÒÒÒÒÒ#Ò+ÒIÒQÒTÒVÒfÒpÒpÒpÒrÒ‡Ò˜Ò›ÒžÒ¦Ò«Ò«Ò´Ò¹ÒÁÒÈÒÕÒêÒñÒÓÓ+ÓDÓYÓnÓuÓuÓzÓzÓzÓzÓzÓzÓzÓ‚Ó�Ó™Ó¨Ó­Ó­ÓµÓ½ÓÊÓÏÓÏÓÏÓÓÓØÓØÓèÓíÓíÓíÓùÓÔÔÔÔ,Ô;ÔCÔTÔ\ÔԅԌԎԔԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛÔ�Ô�Ô¸ÔÂÔÐÔÐÔÕÔàÔçÔÕÕÕÕÕ Õ=ÕKÕA×Ax[G×G×]×d×k×v×}׎טןש׼×Ä×Ä×ß×ù×ÿ×ØØØØ&Ø-Ø0Ø5Ø@ØJØ\ØbØxØØ‡Ø�ؤؤؤزØÙØâØêØüØÙÙÙÙÙ+Ù1ÙGÙNÙVÙ]Ùrككييي٘ٿÙÌÙÕÙÝÙïÙ÷Ù÷Ù÷ÙÚ Ú ÚÚÚ5ÚAÚ†ÚBt`¹—Ý—Ý¯Ý¿ÝÆÝÍÝØÝëÝîÝöÝýÝÞÞÞ)Þ4Þ7ÞBÞXÞcÞnÞyÞ„Þ‹ÞžÞªÞÇÞÐÞØÞøÞûÞßßßß#ß2ß8ß@ß@ßLßZßißq߀߈߫߱߷߹߿ßÅßÅßÅßêßïß àààà#à'à2àLàXàhà{à—à¬à´à¾àÝàñàñàeáC ?C11‰1‘1–1DÑÒÿZÿZ [+[<[+[V[d[d[t[}[„[ˆ[‘[‘[™[�[½[Ë[×[Ý[è[ \ \\(\.\5\:\:\M\X\i\t\\†\�\�\�\¯\´\´\Â\Ç\Ç\Ø\Ø\ë\ð\]]]%]9]9]>]>]L]Q]Q]V]]]e]l]n]v]}]}]Œ]’]Ÿ]¦]®]Ò]Ò]Ú]é]ô]û]ý]^ ^%^*^*^*^=^B^Q^X^a^v^Š^Š^�^�^—^­^²^Æ^Í^Ò^Ò^Þ^í^ÿ^_)_4_N_`_r_�_ _«_°_¿_Ó_Ú_á_ô_ö_```'`5`E`L`c`j`v`‡`ž` `¬`·`¹`¹`Ä`Ø`å`í`ï`aaa-a;a]adapaŽaŽaŽa–a¡a¥a­a±a¹aÀaÐaÛaùaþabbb#b(b(b7bDbRb]bhbvb|b‚bˆb‘b—b¦b¾bÆbÒbàb÷bùbc ccc9c?cEcKcTcecŒc”cžc¬cÄcËc×cæcûcûcd d d%d%d%d%d/eEDQ^GG[h~j��§¿ÇFœfÉ¿U¿UáUëUV"V-VFVKVOVWV`VoVvVV„V™VªVÉVÑVÓVòVúV WWW!W(W0W6W8WIWNWdWPWsWyWyW�WŠW™W¸W¿WÁWàWçWçWçWþWXXX%X;X0XSXXXiXnX„XpX“X™X X¨X®X°XÁXÆXÜXÈXëXñXñXùXYY Y Y$YTY]YiYmY{Y‘Y†Y©Y©Y»YG ;zÏâÏâîâ÷âúâ ã"ã$ã-ã2ãSãqã€ãžã²ãÊãÑã÷ãä$äAäRäiämämäqävä{ä…äˆä’ä—ä°ä³ä³ä³ä³ä¸ä¾äÚäèäôäýäåå"å>åIåUå^årårå�å†å†å”åHP‡—�C�C°C�CÒC¿CáCðCøCDDDDD=DCDIPÅÕgügü{ü€ü�ü�ü–üÃüÙüÅüöüèüýýJŒ¥Äßúßúû>û>ûQûUûwû‹û�û�û—ûŸû§û¼ûÈûÙûÞûïûüü
¾?¾?¾?¾B¾G¾J¾d¾r¾ ¾¾¾í¾ð¾ÿ¾¿4¿H¿d¿P¿€¿€¿ž¿Ó¿Ñ¿Æ¿»¿¬¿á¿á¿á¿ä¿é¿é¿ð¿À!À-À€Ã@À„°ÈÈÈ!È,È3È>ÈRÈRÈ]ÈnÈuÈ‚ÈŽÈ›ÈŸÈ°È°È¹È¾ÈÆÈÖÈäÈóÈþÈÉÉ)É)ÉDÉpÉpɄɆɆÉ�ɘɘɢɪɪɪɻɻɻÉÁÉÉÉÏÉÔÉÔÉÚÉâÉæÉìÉñÉñÉÊÊ!Ê0Ê5Ê=Ê=ÊBÊBÊIÊ_ÊoÊyÊ�ʇʖʛʣʩʩʮʵÊÀÊôÊË ËËË0Ë6Ë;Ë;Ë;Ë;Ë;Ë;Ë;Ë;Ë;ËFËTËdËjËrË�ˆ˓˛ˠˠˠ˨˱˺ËÇËÏËÛËæËÌ"Ì1Ì;ÌUÌ[Ì`Ì`ÌgÌẑ̧̗̟̼̾ÌÉÌÑÌæÌæÌîÌÿÌÍÍÍÍÍ'Í,ÍPÍ\ÍdÍy͖͊ͦͦͦ͡ͅͼÍÙÍÞÍæÍ÷ÍÿÍÎÎ!Î,Î4ÎIÎNÎNÎrÎ~ΆΛΧάθÎÃÎÈÎÈÎÈÎÈÎÈÎÈÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÞÎíÎðÎþÎÏÏÏ+Ï0Ï8Ï@ÏBÏJÏYÏ_ÏgÏoÏqÏyϖϟϧϯ϶ÏÊÏÓÏÜÏäÏîÏøÏÐÐÐÐ*Ð^ÐfÐuÐЙСЦЦЦЯилÐÅÐÓÐåÐçÐùÐ Ñ Ñ ÑÑÑ8Ñ=Ñ=ÑFÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑVÑbÑzÑ�ѕѤѩѱѸÑÅÑÎÑ×ÑßÑæÑëÑëÑóÑûÑÒ!Ò$Ò&Ò6Ò@Ò@Ò@ÒBÒWÒhÒkÒnÒvÒ{Ò{Ò„Ò‰Ò‘Ò˜Ò¥ÒºÒÁÒÒÒÞÒûÒÓ)Ó>ÓEÓEÓJÓJÓJÓJÓJÓJÓJÓRÓ]ÓiÓxÓ}Ó}Ó…Ó�ÓšÓŸÓŸÓŸÓ£Ó¨Ó¨Ó¸Ó½Ó½Ó½ÓÉÓÐÓÖÓàÓåÓüÓ ÔÔ$Ô,ÔOÔUÔ\Ô^ÔdÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔmÔmÔˆÔ’Ô Ô Ô¥Ô°Ô·ÔÓÔàÔàÔàÔäÔïÔ ÕÕ×Ax[××-×4×;×F×M×^×h×o×y׌ההׯ×É×Ïר×ß×â×í×ö×ý×ØØØØ,Ø2ØHØOØWØmØtØtØt؂ةزغØÌØÔØÔØÔØߨéØûØÙÙÙ&Ù-ÙBÙSÙSÙZÙZÙZÙhÙ�ٜ٥٭ٿÙÇÙÇÙÇÙÕÙÝÙÝÙàÙëÙÚÚVÚBt`¹gÝgÝÝ�Ý–Ý�Ý¨Ý»Ý¾ÝÆÝÍÝÐÝàÝîÝùÝÞÞÞ(Þ3Þ>ÞIÞTÞ[ÞnÞzÞ—Þ Þ¨ÞÈÞËÞÑÞÖÞåÞëÞóÞßßßßß*ß9ßAßPßXß{ß�߇߉ß�ߕߕߕߺ߿ßÜßßßßßæßóß÷ßàà(à8àKàgà|à„àŽà­àÁàÁà5áC ?CO1O1Y1a1f1DÑÒÏZÏZðZûZ [ûZ&[4[4[D[M[T[X[a[a[i[m[�[›[§[­[¸[Ü[Ü[í[ø[þ[\ ü
\ ü
\\(\9\D\O\V\`\m\m\\„\„\’\—\—\¨\¨\»\À\Ñ\×\à\õ\ ] ]]]]!]!]&]-]5]<]>]F]M]M]\]b]o]v]~]¢]¢]ª]¹]Ä]Ë]Í]á]ð]õ]ú]ú]ú] ^^!^(^1^F^Z^Z^_^_^g^}^‚^–^�^¢^¢^®^½^Ï^Þ^ù^__0_B_Q_p_{_€_�_£_ª_±_Ä_Æ_Ô_ç_é_÷_```3`:`F`W`n`p`|`‡`‰`‰`”`¨`µ`½`¿`Ó`å`ì`ý` a-a4a@a^a^a^afaqaua}a�a‰a�a a«aÉaÎa×aâaëaóaøaøabb"b-b8bFbLbRbXbabgbvbŽb–b¢b°bÇbÉbÒbÝbßbëb cccc$c5c\cdcnc|c”c›c§c¶cËcËcØcÝcïcõcõcõcõcÿdEDQ^+8N:]_w�—FœfÉ�U�U±U»UãUòUýUVV V'V0V?VFVOVTViVzV™V¡V£VÂVÊVÙVàVìVñVøVWWWWW4W WCWIWIWQWZWiWˆW�W‘W°W·W·W·WÎW×WãWçWõW XX#X(X9X>XTX@XcXiXpXxX~X€X‘X–X¬X˜X»XÁXÁXÉXÒXÒXÜXÜXôX$Y-Y9Y=YKYaYVYyYyY‹YG ;zŸâŸâ¾âÇâÊâÜâòâôâýâã#ãAãPãnã‚ãšã¡ãÇãåãôãä"ä9ä=ä=äAäFäKäUäXäbägä€äƒäƒäƒäƒäˆäŽäªä¸äÄäÍäáäéäòäåå%å.åBåBåQåVåVådåHP‡—_C_C€CmC¢C�C±CÀCÈCÓCÕCàCëCëC DDIPÅÕ7ü7üKüPü_ü_üfü“ü©ü•üÆü¸üÞüæüJŒ¥Ä¯ú¯úâúûû!û%ûGû[û`û`ûgûoûwûŒû˜û©û®û¿ûÓûØûÚûÚûÚûöûüü1üKP�­‡=‡=°=²=À=Æ=á=ð=ÿ=>>'>*>:>Lè7o0o0š0�0 0¦0«0Â0Ù0ð010131R1l1~1‹1¡1´1¹1Ä1Ì1Ì1Ö1Ö1á1æ1û12 2?2A2V2\2{2š2¢2­2­2·2·2É23 313M$ 7]7]b]K]l]t]NLw†þÌþÌÍ%Í6ÍGÍNÍVÍfÍq͈͂ͺÍOTHYXeXejeleue~eŒe‘eše�e¢e°eºe½eÇeP¨!G°c°cÀcÉcÜcécõcd dd0d0d?dJdSdZdcdzd‘d–d¨d·dÃdÕdÕdÞdeeeee2e>eAeXeQhî„HpHpaplp|pÅpÌpàpçpïp÷pqqqqq"q)q0qOqgqpqpq¥qÏqØqúqr1r[rgr‰r‹r’r™r™r¼rØrÿrsBs^s…s¡sÈsäs t'tNtNt]tjtotot~t‹t�t�t—t¢t´tÌtätütþtþtþtuuuuuu(u6uIu^ušu¡u¡u¡u©uÆuÔuòuûuvv v9vUvUvUvgvuv‘v¯v¯v¯vºv½vìvîvw ww%w'w4w6wCwEwRwRwvwxww�w™w›w©w«w¹w»wÉwÉwéwéwéwéw x=xcxkxoxwx{x‰x—x™x¡x¥x©x±x¿xÍxÍxçxòxyy<yUy`yjyqyŠy–y�y¶y¶yÈyÍyÏyÕyæy÷yz zz'z)z7z9zGzIzWzWzWz{z{zšz¡z¨z«z·zºzÈzÌzÚzÞzìzðzðz {{{#{6{={X{x{‹{š{œ{«{­{¼{Æ{Æ{Ô{Ý{ó{ú{ |$|M|}|‚|�|’| |©|Ã|Å|Ç|Î|ß|è|ê|ø|ú|} ü&üDüDüaüKP�­·=·=à=â=ð=ö=> >/>>>L>W>Z>j>Lè7Ÿ0Ÿ0Ê0Í0Ð0Ö0Û0ò0 1 1D1`1c1‚1œ1®1»1Ñ1ä1é1ô1ü1ü12222+212P2o2q2†2Œ2«2Ê2Ò2Ý2Ý2ç2ç2ù273O3a3M$ g]g]’]{]œ]¤]NLw†ÍÍÍ-Í>ÍOÍVÍ^ÍnÍyÍŠÍ�ÍÂÍOTHY`e`erete}e†e”e™e¢e¥eªe¸eÂeÅeÏeP¨!G¸c¸cÈcÑcäcñcýc dd!d8d8dGdRd[dbdkd‚d™džd°d¿dËdÝdÝdæd e e ee e:eFeIe`eQhî„PpPpiptp„pÍpÔpèpïp÷pÿpqqqq"q*q1q8qWqoqxqxq­q×qàqrr9rcror‘r“ršr¡r¡rÄràrs#sJsfs�s©sÐsìst/tVtVtetrtwtwt†t“t˜t˜tŸtªt¼tÔtìtuuuu u uu u u u0u>uQufu¢u©u©u©u±uÎuÜuúuv vv'vAv]v]v]vov}v™v·v·v·vÂvÅvôvöv ww$w-w/w<w>wKwMwZwZw~w€w‡w˜w¡w£w±w³wÁwÃwÑwÑwñwñwñwñwxExkxsxwxxƒx‘xŸx¡x©x­x±x¹xÇxÕxÕxïxúxy$yDy]yhyryyy’yžy¥y¾y¾yÐyÕy×yÝyîyÿyzz&z/z1z?zAzOzQz_z_z_zƒzƒz¢z©z°z³z¿zÂzÐzÔzâzæzôzøzøz{{{+{>{E{`{€{“{¢{¤{³{µ{Ä{Î{Î{Ü{å{û{|'|,|U|…|Š|˜|š|¨|±|Ë|Í|Ï|Ö|ç|ð|ò|}}}} } }@}@}@}@}@}_}_}_}j}†}«}Ä}É}É}É}ë}ð}ð}ð}~~~~4~9~9~@~B~B~J~L~L~S~S~V~[~z~�~µ~Ñ~å~ê~ê~#,FHHMHnppxs³³³ÒÒÒóøøø€ € € €?€D€D€D€c€h€h€ƒ€‘€“€¢€«€Å€Ç€Ç€Ì€Ç€í€ï€ï€÷€ò€2�2�2�=�=�g�g�‘�©�Á�Ì�â�ö�‚'‚?‚]‚_‚p‚�‚¤‚«‚£†R| $÷è÷èé#é9éSékévé’é’é’éŸéºé¼é¼é¼éÉéäéæéæéôéêêê,ê>êSædÞÜÞÜøÜÝ!Ý!Ý'Ý/Ý7Ý?ÝGÝMÝZÝZÝtÝyÝyÝ݄݄݊Ý�Ý�ݕݚݚݲÝÅÝËÝÐÝÐÝÙÝùÝùÝùÝÞÞÞ Þ Þ ÞÞÞÞÞÞ Þ Þ'Þ)Þ)Þ/Þ/Þ6Þ6Þ>ÞDÞJÞRÞRÞRÞRÞ^ÞfÞnÞvÞ~Þ†ÞŽÞ”Þ¬Þ»ÞÅÞÈÞÈÞÒÞØÞÞÞÞÞâÞêÞñÞõÞýÞß ßßß"ß*ß.ß4ß?ßEßRß^ßdßlßpßwß߇ߋߑߙߠߨ߰ߴߺßÅßÊßàßñßößùßžàTL”£x‡x‡‘‡“‡š‡°‡À‡Æ‡Þ‡ö‡ù‡ ˆSˆUÔ*[–ð–ðªð¿ðÎðÒðàðéðøðøðñññ(ñ/ñ?ñVñmñsñxñ|ñ�ñ�ñ¥ñ§ñ±ñÕñàñâñûñÿñ òòòò(ò0òCò­òV$']']R];]\]d]WPÍÝ·F·FØFÅFúFçF GG G+G-G8GCGCGeGkGX,n×n×w×}ׅ׎חל×Y�בבø‘ ’’(’[’h’z’š’ª’ª’·’·’¾’Ñ’Ï’ß’ß’ê’ô’ú’““““0“7“:“O“T“_“j“„“ž“¯“µ“»““à“È“é“ï“õ“ý“””&”,”2”:”:”A”_”G”h”n”t”|”œ”„”¥”«”±”¹”¹”¹”ϔϔϔϔڔä”í” ••*•/•@•T•Y•Y•d•l•w•€•Œ• •°•ŕڕ÷•ü•ü•–––'–7–F–c–x–�–˜–�–�–¨–¾–Ó–ß–ð–õ–———%——=—B—B—Q—V—V—e—j—j—{—€—€—‘—–—–—©—¸—½—½—Зß—ä—ò—ä—˜ ˜˜ ˜-˜2˜@˜2˜T˜Y˜g˜Y˜{˜€˜€˜�˜¢˜Ęɘטɘë˜ð˜ð˜ ™™4™9™G™9™[™`™`™}™‚™¤™©™·™©™Ë™ЙЙí™ò™šš'šš;š@š@š[š`š`š{š€š€š›š š š»šÀšÀšÛšàšàšûš››› › ›;›@›@›Q›V›V›g›l›l›x›ƒ›˜›�›�›©››Ç›í›ô›þ›œœœ3œ>œCœTœ_œgœlœlœpœtœ{œ…œ�œ�œ¢œ§œ§œ§œ«œÄœÍœÍœóœøœøœ���7�D�O�Z�e�w�ƒ�Œ�‘�‘�‘�¢�¿�Ê�Ô�ß�ä�Line truncated
}}}8}8}8}8}8}W}W}W}b}~}£}¼}Á}Á}Á}ã}è}è}è}~ ~ ~ ~,~1~1~8~:~:~B~D~D~K~K~N~S~r~ˆ~­~É~Ý~â~â~ý~ ¢¢9¢>¢>¢F¢g¢P¢N¢¢„¢˜¢„¢°¢µ¢µ¢¢Ç¢Ç¢Ï¢Ô¢Ô¢æ¢ø¢ý¢ý¢£ý¢)£.£.£6£;£;£N£S£S£f£k£k£…£•£š£š£´£Ä£É£É£ã£ó£ø£ø£¤"¤'¤>¤'¤V¤[¤[¤f¤k¤§¤•¤ƒ¤k¤¿¤Ĥ¥î¤ܤĤ¥¥¥,¥<¥A¥A¥P¥`¥e¥e¥t¥‚¥‡¥¯¥�¥‡¥Ç¥Ì¥ô¥â¥Ì¥ ¦¦9¦'¦¦Q¦V¦V¦s¦]¦�¦­¦²¦²¦ͦ¹¦÷¦§ § §§§§)§.§.§A§Q§V§V§i§y§~§~§‘§¡§¦§¦§¹§ɧΧΧÖ§Û§Û§ã§è§è§ð§õ§õ§ý§¨¨¨¨¨-¨2¨€¨n¨\¨J¨2¨�¨’¨à¨Ψ¼¨ª¨’¨í¨ò¨ò¨©©!©!©2©M©R©R©c©q©v©v©~©ƒ©ƒ©‹©�©�©˜©�©�©Õ©é±©¤©ô©ªªªLª:ª(ªªkª†ª‹ªÀª®ª£ª‹ªتݪ««õªݪ*«/«I«3«/«a«f«ƒ«m«f«›« « «¬«Å«Õ«æ«æ« ¬ ¬#¬)¬)¬F¬S¬„¬µ¬£¬جà¬à¬à¬ì¬ñ¬ñ¬­­­­)­3­8­8­R­W­W­_­d­x­d­‡­’­—­«­—­º­Å­Ê­Ê­Õ­æ­ë­ë­ö­®®®®®®6®A®F®Q®F®`®e®y®e®ˆ®�®˜®�®§®¬®À®¬®Ï®Ô®Ô®è®Ô®÷®÷®÷®ü®¯ü®¯ ¯ ¯,¯ ¯?¯D¯D¯P¯D¯c¯h¯h¯t¯h¯‡¯Œ¯ ¯Œ¯¯¯»¯ƯѯÖ¯ê¯Ö¯ù¯°°° °4° °K°C°T°Y°Y°a°f°f°o°t°t°}°‚°‚°‹°�°�°›° ° °«°°°°°»°À°À°˰ааÛ°à°à°ë°ð°ð°û°±±±#±.±9±D±I±I±S±X±X±b±g±g±q±v±v±€±…±…±�±’±’±Ÿ±¤±¤±±±¶±¶±¶±¶±¶±¾±ññ˱ббرݱݱå±ê±ê±ò±÷± ²÷±²+²0²0²7²B²b²g²}²ˆ²¡²�²°²»²Ʋ˲˲Ò²ݲý²³³#³<³(³K³V³a³f³f³m³x³˜³�³³³¾³׳óæ³ñ³ü³´´´´+´K´P´f´q´Š´v´­´™´¼´Ç´Ì´Ì´ç´Ó´ö´µµ1µ<µUµAµxµdµ‡µ’µ—µ—µ²µžµÁµáµæµüµ C¶/¶R¶]¶b¶b¶q¶v¶v¶…¶жжж�•¶•¶•¶Ÿ¶¡¶¡¶«¶²¶Õ¶×¶×¶á¶á¶á¶á¶á¶ã¶ã¶ú¶· · ···$·/·:·E·?·`·}·r·•·•·£·�·É·¾·á·á·á·ê·ñ·¸ ¸¸*¸*¸I¸T¸k¸‹¸‹¸‹¸¬¸¼¸Ѹã¸ó¸ó¸¹ ¹.¹@¹@¹D¹I¹P¹`¹¹¹ƒ¹š¹¡¹¦¹¦¹ª¹µ¹Á¹Ϲü¹ºº$ºWºcºhº~º–º¢º³º¸ºɺ躻?»B»R»T»T»X»w»‚»‚»…»–»Ç»ê»ê»í»¾Z, ž×ž×¬×²×¶×¿×È×Î×[`BVç‰ç‰ý‰ ŠŠŠ%Š>ŠBŠHŠ^Š{Š}Š}Š®ŠœŠ}ŠÍŠ׊\8
 $>@@E@fhhpk«««ÊÊÊëððð€€€€7€<€<€<€[€`€`€{€‰€‹€š€£€½€¿€¿€Ä€¿€å€ç€ç€ï€ê€*�*�*�5�5�_�_�‰�¡�¹�Ä�Ú�î�‚ ‚7‚U‚W‚h‚…‚œ‚£‚›†R| $ÇèÇèåèóè é#é;éFébébébéoéŠéŒéŒéŒé™é´é¶é¶éÄéÑéìéìéüéêSædÖÜÖÜðÜùÜÝÝ Ý'Ý/Ý7Ý?ÝEÝRÝRÝlÝqÝqÝwÝ|Ý|݂݇݇Ý�ݒݒݪݽÝÃÝÈÝÈÝÑÝñÝñÝñÝøÝúÝúÝÞÞÞ Þ ÞÞÞÞÞÞ Þ!Þ!Þ'Þ'Þ.Þ.Þ6Þ<ÞBÞJÞJÞJÞJÞVÞ^ÞfÞnÞvÞ~ކތޤ޳޽ÞÀÞÀÞÊÞÐÞÖÞÖÞÚÞâÞéÞíÞõÞýÞß ßßß"ß&ß,ß7ß=ßJßVß\ßdßhßoßwß߃߉ߑߘߠߨ߲߽߬ßÂߨßéßîßñß–àTL”£p‡p‡‰‡‹‡’‡¨‡¸‡¾‡Ö‡î‡ñ‡ˆKˆUÔ*[ŽðŽð¢ð·ðÆðÊðØðáðððððÿð ·\·\Ø\Å\ç\ò\ý\]] ]%]]\’@¡@¡N¡P¡[¡c¡n¡y¡„¡†¡œ¡œ¡®¡º¡Ã¡Æ¡õ¡^øª¤çîçî ïïïJïJïUïbï€ïˆïµïºïãïð ð%ð)ðLðrðwð ð½ðãðúðñññ%ñ*ñ;ñCñbñhñlñ…ñ�ñ¬ñ±ñÂñÊñéñîñöñüñòòòò#òAòFòSòXòXòeò}òŒò™ò¹ò¹òÐòÕòÕòìòîòîòóóóóóó4ó6ó6óMóMóbógógóvóvó¯óÈóÈóÛóàóàóàóàóô'ôCôCôCôPôgôiôiôiôvô�ô�ô�ôœô³ô³ôÊôÌôçôõõõõ õ õ õõõõõõ õ$õ$õ@õ@õ@õHõMõMõMõUõZõZõbõbõdõŽõ�õ°õÐõÐõÐõÐõÐõêõíõö ö öö'ö)ö5ö5ö=öOöOö[önö…ö�ö·öÉöåö÷&÷:÷X÷}÷�÷¯÷Õ÷î÷ý÷ø/ø4ø4øhømømø€ø€øŒøžø£ø£ø·øÕøúø ù,ùRùsù‚ù°ùÂùÌùîùðùðùðùüùüùüùúJúLúLú[ú[ú`ú`ú`ú`ú`úwú|ú�úÞú_\
ññ ñ'ñ7ñNñeñkñpñtñ‡ñ‡ñ�ñŸñ©ñÍñØñÚñóñ÷ñò RRR/RKRXRoR‚R�R¢R�R±R¹RÄRÚRÐRòRøR`øA?=?=]=`=g=n=u=y={=‚=‰=�=‘=¤=Ì=ç=Ô=ÿ=>(>(>4><>K>…>Š>·>¿>Ä>Í>Ù>á>è>
ò ??2?4?V?b?„?Š?‘?‘?—?š?ž?¯?Ò?ä?a$—á—á¦áÁáÁáÇáb|Xsìì1ì]ì]ì|ìŒìŽìŽìŽìŽì•ì�ì¸ìÑìÓìÓìÓìÛìöìøìøìíííc”"÷5÷56#6/646D6J6_6s6ƒ6‘6Ÿ6¶6¾6È6×6ß6ì6ô6÷6÷6÷6ù6777#7&787dôÍ':':P:]:`:i:o:†:�:´:¿:õ:;; ;*;D;V;c;y;�;¦;«;½;Â;Å;å;< <<<:<Z<b<j<l<Œ<”<™<ž<©<©<´<´<À<À<Ò<=+=+=;=ed¤¹0�0�@�G�S�Y�a�o�‚�Ž�¨�µ�µ�¸�Æ�Ö�ð�ô�ü�f(¸þr*r*ˆ*�*¡*Ð*à*ç*÷*+
òò ò(ò;ò¥òV$÷\÷\"] ],]4]WPÍ݇F‡F¨F•FÊF·FÙFèFðFûFýFGGG5G;GX,f×f×o×u×}׆×�×”×Y�§‘§‘È‘Ý‘ë‘ø‘+’8’J’j’z’z’‡’‡’Ž’¡’Ÿ’¯’¯’º’Ä’Ê’Ð’Ó’á’è’““ ++8+b+s+�+�+ˆ+˜+¤+´+½+Ô+Ô+ê+ê+,,,,,,,,B,B,X,X,n,n,„,„,›,›,²,²,É,É,à,à,÷,÷,--%-%-<-D-O-`-k-|--�-˜-Ÿ-à.g¬÷N N h n u } … ˆ “ ¥ ¥ ¼ à Æ È Ô å å è ð      $ ( 0 > P c f µ h(ÅË„„>„+„M„_„g„i= R RBRWR\RdRlRtR�R‡R�R–R›RºRÓRØRÞRàRâRïRïRôRýRSSSS S(S0S=SCSNSUSeSpSS S§S²S»SÌSÐSØSØSìSüSTTmTj8-7"0"060:0?0J0U0X0\0d0kˆWõ׊׊ñŠ ‹‹‹‹ ‹E‹J‹U‹s‹]‹‚‹•‹§‹°‹¸‹‹à‹ò‹û‹Œ Œ(ŒŒ7ŒIŒSŒ[ŒsŒ]Œ˜Œ‚Œ§Œ¹ŒÃŒËŒËŒÔŒÜŒòŒ ��,�0�0�7�<�Z�\�a�l�‚�‚�‚�†�’�³�½�Ç�Ð�ñ�û�ŽŽŽ$Ž2Ž@ŽCŽ\Ž`Ž{ŽŽžŽ¢Ž½ŽÁŽÁŽÁŽÇŽÕŽߎøŽþŽ ��� �%�>�I�W�a�z�}�…�‘�“�›�ž�·�¹�Å�Ç�Ï�Õ�î���'�,�A�Q�j�{�{�†�‘�©�µ�Ê�Ï�ä�ô� ‘‘‘$‘/‘7‘E‘L‘^‘leãžàžà¸àÁàáàáàçàïà÷àÿàá ááá(á-á-á3á8á8á>áCáCáIáNáNáfáyáá„á„á�á­á­á­á´á¶á¶á½á¿á¿áÅáÅáÌáÎáÎáÔáÔáÛáÝáÝáãáãáêáêáòáøáþáââââââ"â*â2â:âBâHâ`âoâyâ|â|â†âŒâ’â’â–âžâ¥â­âµâ¹â¿âÇâÎâÖâÞâââèâóâùâããã ã$ã+ã3ã;ã?ãEãMãTã\ãdãhãnãyã~ã”ã¥ãªã­ãRäm`b!b!k!r!†!š!Ÿ!½!Â!à!â!"""-"6"8"L"\"�"n�2Òh•h•~•�• •±••ӕæ•î•ü•–%–+–8–M–M–`–q–w–Œ–§–§–³–»–Öɖޖæ–ê–ò–—— — — —5—<—D—L—R—u—ˆ—”—˜—¢—»—Á—×Зҗä—ä—ë—󗘘6˜D˜W˜[˜e˜i˜u˜y˜…˜‰˜•˜™˜™˜¯˜Â˜È˜Ì˜Ö˜Ú˜é˜í˜ü˜™™™™™™.™<™I™Q™h™x™†™‘™§™´™Ã™Ë™Ø™ó™šššššš%š4š<šBšWšfš{šŒšœš¢š¢š¢š´šºšÆšÌšÙšôš›››#›5›C›e›ïœoÔ¼í`n`nrnƒnŽn™n²nÄnÜnánðn÷no oo o"o%o*o,o2oLofo|o”o™o¨o¯o¼oÓoñoøoúoýop%pCpOpp$hm&& &4&;&U&qxKeÏTÏT÷TãTU!U U0U5U<UDUKUVUaUiUqU|U‡U�U’UµU½UrR�ouou‹u’uªuÂuÌu×u×uÜuçuóuþu vv,v3v9vNvcvcvwvv�vœv«v¸vÉvÚvèvövývww-w-wAwNw_wowxw‰w‰w�w�w®w»wËw-xs8³½ÏQÏQÓQØQÝQîQüQR
“ “$“/“:“T“n““…“‹“’“°“˜“¹“¿“œ͓í“Õ“ö“ü“” RRRt88Bj0j0~0‚0‡0’0œ0Ÿ0£0«0u0ˆ�ïOïOPP%P+P.P6PvÜtØãî÷ %+A0Ubem…Š­ÀÄÊáç÷ý *CQZjlsx€Ÿ­¹Óòù$*@au�˜£²ÀÏÜìú"0L^u~„�”š±¼ÉÐÐÞíïý &ITˆw`-Açˆçˆýˆ‰‰‰)‰H‰L‰R‰h‰…‰‡‰‡‰¸‰¦‰‡‰׉á‰xD‡Ô—å—å©å±å¼åÂåÈåÌåÐåüåüåææ ææ!æHæLæQæQæXæ[æ`ælæ}æ�æ’æ¤æ¨æªæ¼æÀæÜæàæåæåæùæüæ
” çççAçLçPçUç‹ç¤ç¯ç³çÄçÏçÓçÕçàçäçäçøçüçþçþç è è!è%è%è%è)èKèyˆÕóOèOècèyèyèyè{è{è‚è„è„è‹è�è�èšèœèœè©è°è²è²è¿èÆèÈèÈèàèåèåèõèz°0X^^/^7^B^¦^Œ^�^g^P^¬^¾^®^Þ^Þ^õ^é^'_,_8_M_:_\_b_i_�_|_p_¤_¦_Â_Â_É_ó_ó_ó_ÿ_{ÄL¹>ü>ü\ügürü˜ü˜üšü§ü²ü¸üÉüØüçüôüôüúüÿüýý-ý8ý<ýNý[ýcýnýjý…ý“ý“ý“ýžý¹ý¤ýÁýÔýÖýòýÞýúýþþ
””/””8”>”D”L”l”T”u”{”�”‰”‰”‰”Ÿ”Ÿ”Ÿ”Ÿ”ª”´”½”Ý”é”ú”ÿ”•$•)•)•4•<•G•P•\•p•€•••ª•Ǖ̕̕וß•ì•÷•––3–H–]–h–m–m–x–Ž–£–¯–À–Å–Ö–ê–ê–õ–ê– ———!—&—&—5—:—:—K—P—P—a—f—f—y—ˆ—�—�— —¯—´——´—Ö—Û—é—Û—ý—˜˜˜$˜)˜7˜)˜K˜P˜P˜m˜r˜”˜™˜§˜™˜»˜À˜À˜ݘ☙ ™™ ™+™0™0™M™R™t™y™‡™y™›™ ™ ™½™™ä™é™÷™é™ ššš+š0š0šKšPšPškšpšpš‹š�š�š«š°š°šËšККëšðšðš ›››!›&›&›7›<›<›H›S›h›m›m›y›’›—›½›Ä›ΛÓ›ä›î›œœœ$œ/œ7œ<œ<œ@œDœKœUœ_œ_œrœwœwœwœ{œ”œ�œ�œÜȜȜМäœíœ�� �*�5�G�S�\�a�a�a�r���š�¤�¯�´�¿�Ç�Ì�Ì�×�ß�è�ó�žž3žGžLžLžWžjžtžž ž¬ž½žžÓžמܞܞìž÷žÿžŸŸ Ÿ.ŸKŸ`ŸuŸ€Ÿ…Ÿ�Ÿ˜Ÿ�Ÿ¨Ÿ¸ŸÇŸäŸùŸ       $ 5 5 Z \ y y ƒ — ¡ £ ¯ · Ô å ï ú ¡.¡?¡P¡[¡s¡ƒ¡ˆ¡ˆ¡“¡˜¡˜¡ ¡«¡°¡°¡¸¡áȡȡСñ¡Ú¡Ø¡ ¢¢¢¢7¢ ¢¢O¢T¢h¢T¢€¢…¢…¢’¢—¢—¢Ÿ¢¤¢¤¢¶¢È¢Í¢Í¢á¢Í¢ù¢þ¢þ¢£ £ ££#£#£6£;£;£U£e£j£j£„£”£™£™£³£ãȣȣâ£ò£÷£¤÷£&¤+¤+¤6¤;¤w¤e¤S¤;¤�¤”¤Ф¾¤¬¤”¤è¤í¤í¤ü¤ ¥¥¥ ¥0¥5¥5¥D¥R¥W¥¥m¥W¥—¥œ¥Ä¥²¥œ¥Ü¥á¥ ¦÷¥á¥!¦&¦&¦C¦-¦m¦}¦‚¦‚¦�¦‰¦Ǧצܦܦè¦í¦í¦ù¦þ¦þ¦§!§&§&§9§I§N§N§a§q§v§v§‰§™§ž§ž§¦§«§«§³§¸§¸§À§ŧŧͧÒ§Ò§å§ê§ê§ý§¨P¨>¨,¨¨¨]¨b¨°¨ž¨Œ¨z¨b¨½¨¨¨Ѩì¨ñ¨ñ¨©©"©"©3©A©F©F©N©S©S©[©`©`©h©m©m©¥©“©�©t©Ä©ß©ä©ä©ª þ&þ&þ-þ3þ<þCþFþhþ|þoþ„þŠþ“þ“þ“þ¦þ«þ«þ³þ³þ¾þÓþÜþÜþÜþÜþøþÿÿÿÿ/ÿ5ÿ:ÿ:ÿFÿcÿƒÿˆÿ�ÿ�ÿ™ÿ¶ÿÅÿÔÿÜÿáÿçÿìÿìÿóÿúÿ:<Ynntt�ŠŠ¨¾ÉÎÛæï÷..@Fu~~€‡ŒŒ™¤ª³³ÆÓåðþ 6?JOV^q†‹’Ÿ¦¸ÍÔÚããì  0>>DKTTgy||�•�©ÆÍÚÜã÷000==R]o|‡• ¯Ïâäó
ªø©ë©;ªVª[ª�ª~ªsª[ª¨ª­ªâªЪŪ­ªúªÿª««ÿª1«6«S«=«6«k«p«p«|«•«¥«¶«¶«Û«Ý«ó«ù«ù«¬#¬T¬…¬s¬¨¬°¬°¬°¬¼¬Á¬Á¬Ô¬߬é¬î¬ù¬­­­"­'­'­/­4­H­4­W­b­g­{­g­Š­•­š­š­¥­¶­»­»­Æ­Ñ­Ö­Ö­ç­ì­ì­®®®!®®0®5®I®5®X®]®h®]®w®|®�®|®Ÿ®¤®¤®¸®¤®Ç®Ç®Ç®Ì®Ø®Ì®ë®ð®ð®ü®ð®¯¯¯ ¯¯3¯8¯8¯D¯8¯W¯\¯p¯\¯¯‹¯–¯¡¯¦¯º¯¦¯ɯÕ¯à¯ë¯ð¯°ð¯°°$°)°)°1°6°6°?°D°D°M°R°R°[°`°`°k°p°p°{°€°€°‹°�°�°›° ° °«°°°°°»°À°À°˰аä°аó°þ° ±±±±#±(±(±2±7±7±A±F±F±P±U±U±]±b±b±o±t±t±�±†±†±†±†±†±ޱ“±“±›± ± ±¨±­±­±µ±º±º±±DZÛ±DZê±û±²²²²2²7²M²X²q²]²€²‹²–²›²›²¢²­²ͲÒ²è²ó² ³ø²³&³1³6³6³=³H³h³m³ƒ³޳§³“³¶³Á³̳ѳѳì³سû³´ ´6´A´Z´F´}´i´Œ´—´œ´œ´·´£´Æ´æ´ë´µ µ%µµHµ4µWµbµgµgµ‚µnµ‘µ±µ¶µ̵×µðµܵÿµ"¶-¶2¶2¶A¶F¶F¶U¶Z¶Z¶Z¶`¶e¶e¶e¶o¶q¶q¶{¶‚¶¥¶§¶§¶±¶±¶±¶±¶±¶³¶³¶ʶѶܶܶç¶í¶ô¶ÿ¶ --3<<IOaanq|Ž• ¥­´¿ÄÙÛõ
···0·M·B·e·e·s·m·™·Ž·±·±·±·º·Á·Ô·Ù·ç·ú·ú·¸$¸;¸[¸[¸[¸|¸Œ¸¡¸³¸øøè¸ï¸þ¸¹¹¹¹ ¹0¹O¹O¹S¹j¹q¹v¹v¹z¹…¹‘¹Ÿ¹̹Õ¹æ¹ô¹'º3º8ºNºfºrºƒºˆº™º¸ºæº»»"»$»$»(»G»R»R»U»f»—»º»º»½»ä½Z, –זפת׮׷×Àׯ×[`BV·‰·‰͉Û‰â‰æ‰õ‰ŠŠŠ.ŠKŠMŠMŠ~ŠlŠMŠ�ЧŠ\8 
‡\‡\¨\•\·\Â\Í\Ø\ã\ï\õ\]\’8¡8¡F¡H¡S¡[¡f¡q¡|¡~¡”¡”¡¦¡²¡»¡¾¡í¡^øª¤·î·îÜîáîîîïï%ï2ïPïXï…ïŠï³ïÓïïïõïùïðBðGðpð�ð³ðÊðÐðÔðíðõðúð ññ2ñ8ñ<ñUñ]ñ|ñ�ñ’ñšñ¹ñ¾ñÆñÌñÐñÔñæñîñóñòò#ò(ò(ò5òMò\òiò‰ò‰ò ò¥ò¥ò¼ò¾ò¾òÒòÔòÔòëòíòíòóóóóó2ó7ó7óFóFóó˜ó˜ó«ó°ó°ó°ó°óßó÷óôôô ô7ô9ô9ô9ôFô]ô_ô_ôlôƒôƒôšôœô·ôÓôÓôÓô×ôÙôÙôÙôÞôàôàôåôåôïôôôôôõõõõõõõ%õ*õ*õ2õ2õ4õ^õ`õ€õ õ õ õ õ õºõ½õÒõÙõÛõäõ÷õùõöö ö ö ö+ö>öUö_ö‡ö™öµöÕööö 
÷(÷M÷`÷÷¥÷¾÷Í÷ã÷ÿ÷øø8ø=ø=øPøPø\ønøsøsø‡ø¥øÊøÝøüø"ùCùRù€ù’ùœù¾ùÀùÀùÀùÌùÌùÌùêùúúú+ú+ú0ú0ú0ú0ú0úGúLú_ú®ú_\  *8JJPW`e‰’’˜¡¡ÀÀÍÐÙâêõ %(1:BM_epp}€‰’”ÉÞäï“ |t·ÐJ4J4\4e4h4q4z4Œ4Œ4¸4¼4Á4Ä4Í4Ü4â4å4í4ð4õ4ÿ4}`2ÿRÿR'SS6S[SGSjSoSvS~S…S�S˜S£S¹S®SÑSÙS~À-ègèghh h h*h*h4hFhShVhXhahnhnh|h�h�h´hÁhÁhÑhÞhÞhiii#iEiZi|i…i’i’iµi¿i¿iòi%j+j+j+j=jt�R3R3f3‡3™3­3´3À3Ú3ã3é3ü344444 444:4<4<4D4€¸ºäŽŽŽŽ&Ž*Ž7Ž:ŽTŽTŽTŽZŽ^ŽfŽqŽ…Ž‘Ž“Ž“ŽœŽžŽžŽ§Ž©Ž©Ž²Ž´Ž´Ž½Ž½ŽÆŽÌŽÏŽÙŽêŽðŽüŽüŽd��œøO*O*m*~*–*�*¹*®*Ñ*ñ*Ý*+++7+#+O+l+s+�+„+§+Ç+³+Ö+ç+ý+é+,",",:,:,D,‚¨¥44#434>4h4˜4©4º4Ì4Ó4Ú4î4õ4õ455!595H5U5X5q5t5y5�5 5°5´5»5ñ5ƒx± X±X±n±u±|±›±ª±¹±È±×±æ±ð±ð±õ±ü±²²#²>²X²X²n²€²„²’²™²ž²ž²¥²·²À²Â²Ð²â²â²â²ô²ÿ²³³)³.³>³C³S³_³d³q³v³†³‹³›³�³­³¯³¿³Á³Ò³Û³Û³Ý³í³ô³´´ ´1´C´U´e´e´e´h´{´„\åøh�h�ƒ�Š�����²�¹�Ã�Ñ�Ô�Ö�à�ò�ò�ù�/�…0ÎÖ––®îâ¸
×Q×QéQÿQR(R?RRR]RrR_R�R‰R”RªR RÂRÈR`øA==-=0=7=>=E=I=K=R=Y=]=a=t=œ=·=¤=Ï=Ô=ø=ø=> >>U>Z>‡>�>”>�>©>±>¸>Ú>à>??&?2?T?Z?a?a?g?j?n??¢?´?a$gágává‘á‘á—áb|Xsçëçëì-ì-ìLì\ì^ì^ì^ì^ìeìmìˆì¡ì£ì£ì£ì«ìÆìÈìÈìÒìÒìêìc”"Ç5Ç5é5ó5ÿ5666/6C6S6a6o6†6Ž6˜6§6¯6¼6Ä6Ç6Ç6Ç6É6Ø6â6ë6ó6ö67dôÍ÷9÷9 :-:0:9:?:V:m:„:�:Å:å:ê:ï:ú:;&;3;I;_;v;{;�;’;•;µ;Õ;Ý;å;ê; †`,ç‡ç‡ý‡ˆˆ ˆ/ˆHˆLˆRˆhˆ…ˆ‡ˆ‡ˆ¸ˆ¦ˆ‡ˆ׈ሇL[j�2�2�2¯2µ2½2Ï2Õ2Þ2ð2ö2ù253ˆ(–œ"3"303?3C3F3L3‰\k~7373E3W3]3e3w3}3†3˜3ž3§3¹3¿3Â34Š, F×F×T×[×c×h×n׋„ 5GNUdi‹‹�²Ç´Öåç   4*LVŒ`J÷i÷ijj#jHjVjXjfjsjyj„j›jªjµj¹jÄjÐj×jãjújk$k;kEkSkekgkuk‡k‡k�k¡k§k·k·kÏkÏkôkôkùkùklll'l<lSlblmll‹l¢lºlÛlÛlälélélélélùlm
<*<2<:<<<\<d<i<n<y<y<„<„<�<�<¢<â<û<û< =ed¤¹(�(�8�?�K�Q�Y�g�z�†� �­�­�°�¾�Î�è�ì�ô�f(¸þr*r*ˆ*�*¡*Ð*à*ç*÷*+ mmm+m;m@m@mNmNmSmSm]mhmzm€mŒmœm§m±mµm¾m×mÚmêmñmnnn'n7nGnNnTn`nhnsnzn~n‘n—n¤n¯nµnÅnÕnÕno o,o4o?oFoQoaoqoqo�o†o†o�o›o­o³oÁoÎoÛoåoéoòo ppp%p*p*p>p>pCpGpWp`prpxpzpzpˆpŽp—p¨p±p½pÍpÍpÍpÒpêpêpùpüpq.q9qbqtqq‘q•qšq¡q³qÃqÞqåqéqïq÷qrs�8í÷¯)¯)É)Þ)ô)**-*E*E*O*Ž`j~ˆ ˆ ¨ ¯ · Â Ì × ß î ø û  ¡"¡2¡2¡@¡�_ŸÛŸÛÁÛÈÛÏÛÔÛëÛýÛÜ Ü Ü$Ü0Ü8Ü;Ü=ÜGÜQÜQÜUÜ]ÜeÜmÜw܀܈܋ܔܯÜÀÜÇÜÊÜÏÜÞÜäÜìÜìÜóÜöÜûÜ
++8+b+s+�+�+ˆ+˜+¤+´+½+Ô+Ô+ê+ê+,,,,,,,,B,B,X,X,n,n,„,„,›,›,²,²,É,É,à,à,÷,÷,--%-%-<-D-O-`-k-|--�-˜-Ÿ-à.g¬÷  8 > E M U X c u u Œ “ – ˜ ¤ µ µ ¸ À Ö Ù ç ê í ô ø    3 6 … h(ÅËçƒçƒ„ûƒ„/„7„i=ïQïQR'R,R4R<RDRQRWR`RfRkRŠR£R¨R®R°R²R¿R¿RÄRÍRÕRÞRæRèRðRøRS SSS%S5S@SOSpSwS‚S‹SœS S¨S¨S¼SÌSÔS×S=Tj8-7"0"060:0?0J0U0X0\0d0kˆWõ§Š§ŠÁŠÜŠâŠéŠéŠðŠ‹‹%‹C‹-‹R‹e‹w‹€‹ˆ‹’‹°‹‹Ë‹Ó‹Ý‹ø‹â‹ŒŒ#Œ+ŒCŒ-ŒhŒRŒwŒ‰Œ“Œ›Œ›Œ¤Œ¬ŒÂŒÛŒíŒüŒ��� �*�,�1�<�R�R�R�V�b�ƒ���—� �Á�Ë�Õ�×�×�ô�ŽŽŽ,Ž0ŽKŽOŽnŽrŽ�ޑޑޑޗޥޝŽÈŽÎŽÙŽåŽçŽïŽõŽ��'�1�J�M�U�a�c�k�n�‡�‰�•�—�Ÿ�¥�¾�Ö�â�÷�ü��!�:�K�K�V�a�y�…�š�Ÿ�´�Ä�Ý�î�î�ô�ÿ�‘‘‘.‘leã–à–à°à¹àÙàÙàßàçàïà÷àÿàááá á%á%á+á0á0á6á;á;áAáFáFá^áqáwá|á|á…á¥á¥á¥á¬á®á®áµá·á·á½á½áÄáÆáÆáÌáÌáÓáÕáÕáÛáÛáâáâáêáðáöáþáþáþáþá ÝÝÝÝ&Ý)Ý.Ý=ÝHÝPÝPÝ[ÝoÝvÝ}Ý”Ý�83=&Ø&Ø/Ø/Ø=ØAØOØRØWØ‘8>H^Ø^ØgØgØuØy؀؃؈ؒDDQ—1—1±1Ä1Î1Õ1á1ù12222=2“Ä{¨ßß   %++=DZm|‚„‹‘››¯±¸¾ÈÈÈßñø  22D”0RZ?2?2H2n22…2…2�2•„\y®ò®òÀòÕòßòèòêòñòó óóóó!ó2ó5ó5óYódófóó†óŠó™ó¬óÿó– 
âââ"â*â2â:â@âXâgâqâtâtâ~â„âŠâŠâŽâ–â�â¥â­â±â·â¿âÆâÎâÖâÚâàâëâñâþâ Ž0Ž0—0´0¹0—hOgOgegpg{g‰g”g�g®g·gÈgÎgÚgñgñghh!h*h;hAh�h˜„a~§M§M×MÝMæMòMúMNNNNNN2N\NaN…N�N�N§N¿NãNOO™lò  18?ac…š‡¼©ËËÝäš y}¸‹¸‹Á‹Í‹Ò‹›(A†è†è¨è°è¶è¾èÀèÀèÑèÑèÑèÙèáèóèéóèééé3é5é5é@éFé`éeéeéeézé|é‰é‹é˜éšé§é¯é·é¾éÒéßéáéòéÿéÿéÿéêê-ê3ê;ê=êJêJê_ê_ê_êjêtêŒê‘ê‘ê‘êŸê¥êªê²ê½êÏêÚêßêßêæêêêøêüêë ë*ë7ë>ëGëcëhëhëhëhëpë{ë‰ë‰ë©ë©ë©ë°ë¾ëÍëàëóëõëõëõëììììì!ì3ì=ìYìƒì‰ì‰ì�ì¢ìÆìÍìÙì÷ì
ãããã#ã+ã3ã7ã=ãEãLãTã\ã`ãfãqãvãŒã�ã¢ã¥ãJäm`b!b!k!r!†!š!Ÿ!½!Â!à!â!"""-"6"8"L"\"�"n�2Ò`•`•v•‡•˜•©•º•˕ޕæ•ô•––#–0–E–E–X–i–o–„–Ÿ–Ÿ–«–³–»–Á–Ö–Þ–â–ê–ø–þ–———-—4—<—D—J—m—€—Œ—�—š—³—¹—»—È—Ê—Ü—Ü—ã—ë—ý—ý—.˜<˜O˜S˜]˜a˜m˜q˜}˜�˜�˜‘˜‘˜§˜º˜À˜Ä˜Î˜Ò˜á˜å˜ô˜ø˜ ™™™™™&™4™A™I™`™p™~™‰™Ÿ™¬™»™Ã™Ð™ë™û™ šššššš,š4š:šOš^šsš„š”ššššššš¬š²š¾šÄšÑšìšüš›››-›;›]›çœoÔ¼íXnXnjn{n†n‘nªn¼nÔnÙnènïnünooooo"o$o*oDo^otoŒo‘o o§o´oËoéoðoòoõoúop;pGpp$hm&& &4&;&U&qxKeŸTŸTÇT³TÖTñTÝTUU UUU&U1U9UAULUWUmUbU…U�UrR�?u?u[ubuzu’uœu§u§u¬u·uÃuÎuÜuìuüuv vv3v3vGvOv_vlv{vˆv™vªv¸vÆvÍvÓvèvývývww/w?wHwYwYw_wmw~w‹w›wýws8³½ŸQŸQ£Q¨Q­Q¾QÌQÕQÚQßQáQt88Bj0j0~0‚0‡0’0œ0Ÿ0£0«0u0ˆ�¿O¿OÕOèOõOûOþOPvÜt††¨³¾Ç×éïõû%25=OUZ}�”š±·ÇÍÙçìú!*:<CHPo}‰£ÂÉÓâèîôú1EQhs‚�Ÿ¬¼Êáíò.ENT_dj�Œ™  ®½¿ÍÜîîö$Xw`-A·ˆ·ˆ͈߈æˆêˆùˆ‰‰"‰8‰U‰W‰W‰ˆ‰v‰W‰§‰±‰xD‡Ôgågåyå�åŒå’å˜åœå åÌåÌåÓåÖåÛåíåñåææ!æ!æ(æ+æ0æ<æMæQæbætæxæzæŒæ�æ¬æ°æµæµæÉæÌæÚæäæëæçç ç%ç[çtççƒç”çŸç£ç¥ç°ç´ç´çÈçÌçÎçÎçÙçÝçñçõçõçõçùçèyˆÕó è è3èIèIèIèKèKèRèTèTè[è]è]èjèlèlèyè€è‚è‚è�è–è˜è˜è°èµèµèÅèz°0Xç]ç]ÿ]^^v^\^Q^7^ ^|^Ž^~^®^®^Å^¹^÷^ü^__ ííí í í í í+í5íCíeípí�í—í—í¥íÃíóíîî.îAîFîFîFîNîYîkîvî{î{î{î�î·î½î½î½îÈîÒîÞîéîëîëîëîðîüîüîFïœH%‚/‚/�/—/¢/¯/º/Â/Â/Ú/ä/ê/ð/�0 �Q�Q¶Q£QÅQáQ×QùQRžLÝìŸ(Ÿ(¹(Î(ä()ò()")M)n)[)†)ž)ž)¨)Ÿð·OOLOUOaOiOtO“O“O�OŸOºO¢OÉOÉO×OáOèOP
_,_2_9_]_L_@_t_v_’_’_™_Ã_Ã_Ã_Ï_{ÄL¹.ü.üLüWübüˆüˆüŠü—ü¢ü¨ü¹üÈü×üäüäüêüïüôü P$P+P+PGPGPnPsP’P«PÈPËPÓPÚPúPüPQQQ9Q9QVQVQ}Q�Q TVgþþ!'->LZlpv„‡‘¡0
ýý(ý,ý>ýKýSý^ýZýuýƒýƒýƒýŽý©ý”ý±ýÄýÆýâýÎýêýøýøýúýþþþ#þ,þ3þ6þXþlþ_þtþzþƒþƒþƒþ–þ›þ›þ£þ£þ®þÃþÌþÌþÌþÌþèþÿþÿ R>3_K‚n‘�¢®¾ÅÒÝéôü &-1<ALenz“šžž£¼ÁÚï       4 I T ^ i k v ~ ~ Ž ƒ ¦ Æ ¢àZŽÐeÐeêeøeýe
ÿ ff!f<fJfofxfˆf£f®f¾fÀfÂfÌfØfÜféfõfgg'g+g+g+g+g0gNghghgogrgzg†g�gåg£d1G,G,e,},Ž,•,±,¦,É,é,Õ,ø, - - -7-D-D-\-\-f-¤ü!\WWo�Œ¹Ÿ“Èéþë3 B___qŽŽÃÚÎ $L:[|”�¯£×Åæ22SZ||„¥(–å–å¤åÇåÍåÒåÒåØå¦(!'Î×Î×××å×ë×í×ò×§D]j::2:9:B:N:c:k:q:w:y:y:‰:¨„¼Ùèªèª«'«+«3«;«?«J«N«R«V«^«c«g«x«‰«‹«�« «±«À«Ó«Û«æ«æ«æ«ø«©€ðœðœ ����$�4�?�I�T�k�n�p�‹�•�Ÿ�¦�±�Ã�Ë�Ë�á�á�ó�ª Ê ¿Y¿YåYZ
ÿ ÿ%ÿ*ÿ*ÿ6ÿSÿsÿxÿ}ÿ}ÿ‰ÿ¦ÿµÿÄÿÌÿÑÿ×ÿÜÿÜÿãÿêÿ *,I^^ddqzz˜®¹¾ËÖßç÷06_hhjqvvƒŽ”��°½ÏÚèñö )49@H[pu|‰�¢·¾ÄÍÍÖð÷ü ZZ%Z.Z2ZMZcZ|Z‚ZŠZ�Z¢Z§Z¹ZÛZáZéZîZôZ÷Z [[[:[B[W[\[k[�[“[˜[˜[˜[¥[¶[Á[Î[Ú[í[ú[\\2\<\>\U\i\n\y\€\£\£\£\µ\«<ÑÜ55 555$5,545;5K5K5P5¬°)@£@£c£p£u£y£‚£‘£�£¨£³£»£Æ£Î£Ñ£Ý£å£ÿ£%¤ ¤5¤>¤s¤_¤ƒ¤ƒ¤›¤¦¤Â¤É¤í¤&¥&¥&¥&¥‡¥­”‹,.¹.¹K¹R¹Z¹e¹|¹†¹†¹�¹§¹Â¹Ø¹æ¹ê¹
((.5>>Qcffw‡“°·ÄÆÍáððð''<GYfqŠ™  ¹ÌÎÝòô&&39KKX[fxŠ�—ž©®ÃÅßôôôöý"44:AJOs||‚‹‹ªª·ºÃÌÔßñ÷$,7IOZZgjs|~ ³ÈÎÙëñùùùù} |t·ÐJ4J4\4e4h4q4z4Œ4Œ4¸4¼4Á4Ä4Í4Ü4â4å4í4ð4õ4ÿ4}`2ÏRÏR÷RãRS+SS:S?SFSNSUS`ShSsS‰S~S¡S©S~À-àgàgþghhh"h"h,h>hKhNhPhYhfhfhthˆhˆh¬h¹h¹hÉhÖhÖhùhiii=iRiti}iŠiŠi­i·i·iêij#j#j#j5jt�R3R3f3‡3™3­3´3À3Ú3ã3é3ü344444 444:4<4<4D4€¸ºäø�ø�ŽŽŽ"Ž/Ž2ŽLŽLŽLŽRŽVŽ^ŽiŽ}Ž‰Ž‹Ž‹Ž”Ž–Ž–ŽŸŽ¡Ž¡ŽªŽ¬Ž¬ŽµŽµŽ¾ŽÄŽÇŽÑŽâŽèŽôŽôŽ\��œø * *=*N*f*m*‰*~*¡*Á*­*Ð*á*æ*+ó* +<+C+_+T+w+—+ƒ+¦+·+Í+¹+å+ò+ò+ ºº2º9º=ºVº`ºqº~º~º…ºŒº‘º–º›º¢º©ºÃºÊºÚºÞºÞºèºþº»»»&»9»9»?»J»Q»Y»d»k»s»~»…»…»�»®»²»Ê»»»å»å»ë»ò»¼ ¼¼ ¼$¼&¼8¼8¼8¼J¼R¼x¼†¼†¼Š¼Ÿ¼§¼·¼Â¼×¼Ü¼ê¼ù¼½½½ ½%½-½1½@½B½Q½S½b½d½s½z½~½’½œ½ª½±½µ½Å½Ð½Õ½ó½ý½ ¾¾¾ ¾.¾5¾9¾C¾W¾_¾j¾n¾n¾n¾y¾„¾”¾ ¾¶¾¾¾É¾Ø¾à¾ë¾ð¾ø¾¿¿¿¿#¿7¿?¿J¿J¿J¿J¿g¿„¿�¿˜¿¨¿¸¿Ö¿Ú¿ Àþ¿ï¿ÀÀ#À*À9ÀHÀRÀ`ÀgÀkÀmÀ|À†À”À›ÀŸÀŸÀ¡À³À³ÀÅÀÅÀÅÀ×ÀéÀñÀ Á5ÁCÁGÁeÁlÁsÁ~Á”Á™Á Á³Á½ÁËÁÒÁÖÁØÁëÁõÁÂ
, ÂÂÂÂÂÂ'Â6Â@ÂNÂYÂ]Â]ÂbÂjÂnÂ}ÂÂŽÂ�Ÿ¡°·»ÂÏÂÙÂçÂîÂòÂà ÃÃ0Ã:ÃHÃOÃSÃ]ÃkÃrÃvÀÔÜçëëëöýÃËÃåÃõÃÄÄÄ%Ä5ÄAÄWÄ_ÄjÄyÄ�ČđęĤİĴĿÄÄÄØÄàÄëÄëÄëÄëÄÿÄÅ$Å1Å5ÅIÅZÅoÅ|ŀŎţųÅÊÅãÅüÅþÅ ÆÆÆÆ7ÆHÆ_ÆxƆƑÆ�ƥƧƲƺƺƺÆ×ÆåÆóÆ
,,‚¨¥ç3ç3ó34484h4y4Š4œ4£4ª4¾4Å4Å4Ô4â4ñ4 55%5(5A5D5I5`5p5€5„5‹5Á5ƒx± P±P±f±m±t±“±¢±±±À±Ï±Þ±è±è±í±ô±²²²6²P²P²f²x²|²Š²‘²–²–²�²¯²¸²º²È²Ú²Ú²Ú²ì²÷² ³³!³&³6³;³K³W³\³i³n³~³ƒ³“³•³¥³§³·³¹³Ê³Ó³Ó³Õ³å³ì³ü³ü³´)´;´M´]´]´]´`´s´„\åø`�`�{�‚�‡�•�ª�±�»�É�Ì�Î�Ø�ê�ê�ñ�'�…0ÎÖff~¾²ˆ†ÒÚ†`,·‡·‡͇߇æ‡ð‡ÿ‡ˆˆ"ˆ8ˆUˆWˆWˆˆˆvˆWˆ§ˆ±ˆ‡L[j_2_2m22…2�2Ÿ2¥2®2À2Æ2É23ˆ(–œ"3"303?3C3F3L3‰\k~333'3-353G3M3V3h3n3w3‰3�3’3à3Š, >×>×L×S×[×`×f׋„ çç%49[[`‚—„¦µ·ÙÙÙèú&Œ`JÇiÇiäiìióij&j(j6jCjIjTjkjzj…j‰j”j j§j³jÊjájôj kk#k5k7kEkWkWk`kqkwk‡k‡kŸkŸkÄkÄkÉkÉkÒkÞkëk÷k l#l2l=lOl[lrlŠl«l«l´l¹l¹l¹l¹lÉlÒlÚlßlílûl mmmmm#m#m-m8mJmPm\mlmwm�m…mŽm§mªmºmÁmßmèmèm÷mnnn$n0n8nCnJnNnangntnn…n•n¥n¥nÒnðnünooo!o1oAoAoQoVoVo`oko}oƒo‘ožo«oµo¹oÂoÛoÞoîoõoúoúopppp'p0pBpHpJpJpXp^pgpxp�p�p�p�p�p¢pºpºpÉpÌpàpþp q2qDqOqaqeqjqqqƒq“q®qµq¹q¿qÇqÒqár�8í÷))™)®)Ä)å)Ò)ý)** *Ž`j~€ €   § ¯ º Ä Ï × æ ð ó ¡¡*¡*¡8¡�_oÛoÛ‘Û˜ÛŸÛ¤Û»ÛÍÛ×ÛÝÛïÛôÛÜÜ Ü ÜÜ!Ü!Ü%Ü-Ü5Ü=ÜGÜPÜXÜ[ÜdÜÜ�ܗܚܟܮܴܼܼÜÃÜÆÜËÜÚÜàÜèÜèÜöÜùÜþÜ ÝÝ Ý Ý+Ý?ÝFÝMÝdÝ�83=ØØ'Ø'Ø5Ø9ØGØJØOØ‘8>HVØVØ_Ø_ØmØqØxØ{؀ؒDDQg1g1�1”1ž1¥1±1É1Ò1Ö1è1î1 2“Ä{¨¯¯ÙÜãèîðõûû *=LRT[akk�ˆŽ˜˜˜¯ÁÈ×Ùï”0RZ222>2O2U2U2]2•„\y¦ò¦ò¸òÍò×òàòâòéòùòóóóóó*ó-ó-óQó\ó^ówó~ó‚ó‘ó¤ó÷ó–  Ç!Ç0Ç=Ç]ÇdÇdÇtLjǢǢǦǼÇËÇæÇñÇÈÈÈ5È5ÈHÈcÈlȃÈ�ȬȹÈÙÈçÈýÈÉ)ÉAÉAÉYÉYÉeɀɘɡɡɡɭɾÉÖÉßÉßÉæÉïÉõÉÊ`Ê®<ùD0�0�U�a�l�v�|�†�Œ�–�¤�®�À�Ê�Ð�Ú�à�ê�ñ�ý�‘ ‘7‘F‘I‘K‘U‘g‘q‘ƒ‘�‘¢‘¢‘¥‘¯‘đɑّä‘é‘ý‘ÿ‘’3’3’=’R’`’i’q’’�’ ’±’¾’¾’Ë’Ë’Ó’á’(“¯$› ¯P¯PÃPËPÖPÜP°l£:÷F÷FG(G8GXGjG‚G�G�GÇGÏGÓGÖGÚGßGéGìGóGùGHH
^0^0g0„0‰0—h g g5g@gKgYgdgmg~g‡g˜gžgªgÁgÁgÓgägñgúg hh_h˜„a~wMwM§M­M¶MÂMÊMÑMÕMÞMÞMãMêMN,N1NUN]N_NwN�N³NÒNäN™lò ××ï13UjWŒy››­´ÖÖÞš y}°‹°‹¹‹Å‹Ê‹›(A~è~è è¨è®è¶è¸è¸èÉèÉèÉèÑèÙèëèúèëèééé+é-é-é8é=éWé\é\é\éqésé€é‚é�é‘éžé¦é®éµéÄéÑéÓéäéñéñéñéúé ê ê%ê-ê/ê<ê<êQêQêQê\êfê~êƒêƒêƒê‘ê—êœê¤ê¯êÁêÌêÑêÑêØêÜêêêîê÷êþêë)ë0ë9ëUëZëZëZëZëbëmë{ë{ë›ë›ë›ë¢ë°ë¿ëÒëåëçëçëçëúëúëìì ìì%ì/ìKìuì{ì{ì�ì”ì¸ì¿ìËìéìüìííííííí'í5íWíbíí‰í‰í—íµíåíøí î î3î8î8î8î@îKî]îhîmîmîmîî©î¯î¯î¯îºîÄîÐîÛîÝîÝîÝîâîîîîî8ïœH%‚/‚/�/—/¢/¯/º/Â/Â/Ú/ä/ê/ð/�0 _Q_Q†QsQ•Q±Q§QÉQÑQžLÝìo(o(‰(ž(´(Õ(Â(í(ò()>)+)V)n)n)x)Ÿð·çNçNO%O1O9ODOcOcOmOoOŠOrO™O™O§O±O¸OØOÚOôOûOûOPP>PCPbP{P˜P›P£PªPÊPÌPæPíPíP Q Q&Q&QMQ_Q TVgÎÎäñ÷ý*<@FTWa¡0 HHH*H1H8H:H>HGHQHTH_HkHnHHŠH�H—H H¹HÊHÓHÜHäHïHúHII(I4IBIDIKIRIWI[IhIoI’I IªI´I½IÖIçIðIùIJ
Rßß/R>amr~Ž•¢­¹ÄÌÑÝâöý 5>JOcjnnsŒ‘ª¿ÑÖáéééë  $ . 9 ; F N N ^ S v – ¢àZŽÈeÈeâeðeõefff4fBfgfpf€f›f¦f¶f¸fºfÄfÐfÔfáfífÿfg g#g#g#g#g(gFg`g`gggjgrg~g‡gÝg£d1,,5,M,^,e,�,v,™,¹,¥,È,Ù,ï,Û,---,-,-6-¤ü!\''?Q\‰oc˜¹Î»éÝ///A^^“ªžÜáôè JJJJJ*J1J?JIJ^JhJqJŠJ›J¤J­JµJ¾JÄJÈJÍJÓJÝJçJKKK K'K/K7KDKLKkK^K€K‰K¤K¸KËKÒKÛKäKëKôKýKL LL/L3L�L±  °ˆ°ˆ¾ˆàˆæˆ²¸�·z'z'ˆ'�'È'Ê'ÿ'*(*(:(?(?(S(X(X(t(y(y(™(ž(ž(²(·(·(Ô(Ô(â(),)L)^)p)‚)’)’)’)’)™)r*³$bgÊ%Ê%Î%æ%ø%&´ƒ·Ã·ÃÉÃØÃØÃÛÃäÃðÃðÃÄÄ.Ä5Ä9ÄIÄiÄ{Ä�Ä�Ä™Ä�ģĬÄÂÄÆÄãÄÅÅÅ(Å:ÅFÅHÅTÅ\Å`ÅfÅoÅoÅoÅ�ŌŒŨůŷÅÍÅÔÅÔÅÔÅâÅ ÆÆÆ,Æ4Æ=ÆHÆNÆdÆkÆsÆzÆ�ƠƠƧƧƧƵÆÜÆéÆòÆúÆ ÇÇÇÇ(Ç/Ç=ÇAÇMÇeÇmÇsǂNjÇ�ǗǠǠǮǶǼÇÙÇâÇêÇðÇöÇöÇöÇýÇÈÈÈ!È'È'È)È3ȵx‡Ú‡Ú•ÚªÚ±Ú¼ÚÒÚüÚÛ Û7Û=ÛLÛUÛ]ÛeÛgÛmÛsÛ‚ÛŠÛ�Û’Û˜Û¤Ôyff*f2fBfJfnf…f‰f‘f™fŸf¨f´f¼f¼fÄfôf3ggVg[gcgsgug£g©g²g¹gÁgÉgÕgÝgågøghhh/h6h8hBhQhqhxhzhšh¡h¡h¡hªh±hÊhÐhØhØhÝháhíhöhÿh i.i<ijimi‰i–iªiÄiÈiçiõij/j5j7jejhjhj„j‘j¥j¿jÇjËjÖjÞjîjðjk!k)k9k;kikokokykyk„kµk½k½k½k½kÆkÒkèklll'l.l.lAlElElElLlQldlklwl~l~l˜lšlŸl²l¹lÅlÌlÌlÙlãlãlèl m mm·à˜ÌGDGD\DzDgD¯D•D‰D¾DÍDÕDàDâDíDøDøDýD2E7ElE„EqE¦E“EºEµEÖEåEíEøEúEFFFF6F8FYFYF`FeF‡F‰F«F«F«F³F¸\î_f_fuf‡f�f˜f¦f²fÉfÉfÛfáfìfüfgg"gNg¹ÛÜç ç    & - 1 3 : A E E M f p p „ � � ® ² · Ë Ï Ø Ü á ç !!!)!.!G!X!\!\!\!a!l!v!}!�!”!™!­!µ!¾!Â!Ä!Ë!Ý!í!"" "2"6"6"6"J"N"W"["`"f"ƒ"ƒ"‘"¨"­"Æ"×"Û"í"í"í"ò"#%#G#R#X#n##„#�#£#§#°#´#¶#¼#Õ#Õ#ã#ú#ü#$&$*$*$1$D$H$Z$_$s${$„$ˆ$�$”$ª$º$Ñ$Ö$ï$%%%%%%%?%N%r%}%ƒ%™%ª%ª%ª%±%Ä%Ý%Ý%Ý%ì%ì%ÿ%&!&2&7&=&G&I&U&U&\&g&|&~&‰&ž&ª&¬&·&Ã&Ó&Ú&á&ë&ó&÷&û&ý&'
+LdQs§•ÓÓÓå#*LLT¥(ŽåŽåœå¿åÅåÊåÊåÐå¦(!'Æ×Æ×Ï×Ý×ã×å×ê×§D]j::2:9:B:N:c:k:q:w:y:y:‰:¨„¼Ùàªàª« «#«+«3«7«B«F«J«N«V«[«_«p«�«ƒ«‡«˜«©«¸«Ë«Ó«Þ«Þ«Þ«ð«©€èœèœ�����,�7�A�L�c�f�h�ƒ���—�ž�©�»�Ã�Ã�Ù�Ù�ë�ª Ê �Y�YµYÒYÚYåYõYþYZZ3ZLZRZZZ]ZrZwZ‰Z«Z±Z¹Z¾ZÄZÇZÝZæZèZ '' '"'''/'3'5'5'>'K'a'�'›'©'µ'¼'¼'Ï'Ó'Ó'Ó'Ú'ß'ù'((((4(6(;(U(c(o(v(v(ƒ(�(�(Ÿ(º¤ ¿¤XJXJuJ„J„J„J¡J¡J²J²J¸JºJºJÀJÂJÂJÈJÊJÊJÑJÕJÚJÚJÚJÚJÚJÚJâJúJúJKK$K1KIKKKjKlK‹K�K¯K´KºKºKÓKÖKýK
[['[,[;[][c[h[h[h[u[†[‘[ž[ª[½[Ê[×[î[\ \\%\9\>\I\P\s\s\s\…\«<ÑÜ55 555$5,545;5K5K5P5¬°)8£8£[£h£m£q£z£‰£•£ £«£³£¾£Æ£É£Õ£Ý£÷£¤¤-¤6¤k¤W¤{¤{¤“¤ž¤º¤Á¤å¤¥¥¥¥¥­”‹,&¹&¹C¹J¹R¹]¹t¹~¹~¹•¹Ÿ¹º¹Ð¹Þ¹â¹ºº*º1º5ºNºXºiºvºvº}º„º‰ºŽº“ºšº¡º»ºÂºÒºÖºÖºàºöºúºúº »»1»1»7»B»I»Q»\»c»k»v»}»}»ˆ»¦»ª»Â»³»Ý»Ý»ã»ê»ù»¼¼¼¼¼0¼0¼0¼B¼J¼p¼~¼~¼‚¼—¼Ÿ¼¯¼º¼Ï¼Ô¼â¼ñ¼û¼ ½½½½%½)½8½:½I½K½Z½\½k½r½v½Š½”½¢½©½­½½½È½Í½ë½õ½¾ L"LBLBLKLPLnL\LtLƒLˆL�L˜L«L³L»LÀLÀLÀLÉLâLèLèLMM,MEMGMOMUM]MbMbMhMhMqM‚M„M™M›M£M©M±M¶M¶M¶M¶MÄMÛMÝMñMñMùMÿMN NNN&N,N2N4N4N4N<N<NJNaNeNgNsNuN�N–NžN£N¬N·N»NÁNÅNÎNÑNÑNßNðNòNO7O=OEOJOSOXOXO]O_OgOgO‚O”O™O¥O«O®OÅOÇOÊOÚOÞOåOîOýO PPPP&P+P+P7P?PLPdPiPsP›P¦P±P¼PÇPÒPÝPèPóPþPþPþPQQ(Q6QSQlQnQtQvQyQ„Q†Q†QŒQ’Q’QšQ£Q©QµQµQ¼Q¿QÞQéQñQùQþQþQR RR R%R/R9R9RFRmRmRvR„R•R¡R¨R¶RÅRÛRáRæRæRëRS SS%S/S8SFSMSOSXSXSbSpS|S“S©SÀSÆSÈSßSäSäSTTTT%T+T4TBTGTGT^TdTfTqTƒT™T™T­T½TÏTÔTàTæTéTUUUU U"U"U1UHUZU_UkUqUtU‹U�U�U U¤U¬UºU¿UÄUÄUÊUÒU×U×UÝUÝUëUñU÷UV VV.V1V3V=V=V?VGVLVQVVVVV\VdViViVnVyV~VƒVŽV“V¹V»VÀVÅVÊVÏVÔVÙVÞVÞVãVèVWW"W6W<WDWDWRWXW^WhWrW€W•W˜WšW¤W³W¸W¸W¸WÀWÅWÎWÎWÓWÓWÙWáWæWæWëWöWûWXXXX%X+X+X9X?XEXOXYXgX|XX�X‹XšXŸXŸXŸX§X¬XµXºXºXÀXÈXÍXÍXÒXÝXâXçXìXûXûX YYY Y&Y,Y6Y@YNYcYfYhYrY�Y†Y†Y†YŽY“YœY¡Y¡Y§Y¯Y´Y´YÁYÇYÇYÕYÛYáYëYõYZZZZ'Z6Z;Z;Z;ZCZHZQZVZVZ\ZdZiZiZvZ|Z|ZŠZ�Z–Z ZªZ¸ZÍZÐZÒZÜZëZðZðZðZøZýZ[ [ [[["["["[([2[8[L[Q[Q[W[a[g[l[l[u[ƒ[Œ[š[Ÿ[Ÿ[¨[¶[Â[Ó[à[ç[ï[ù[\\ \ \\\\\ \ \'\+\0\8\>\@\I\X\`\e\k\k\s\|\Š\•\š\ \¨\­\­\­\­\­\­\­\­\­\­\Æ\Ì\Õ\Û\ã\è\í\ö\]
¾¾¾&¾-¾1¾;¾O¾W¾b¾f¾f¾f¾q¾|¾Œ¾˜¾®¾¶¾Á¾Ð¾Ø¾ã¾è¾ð¾û¾¿ ¿¿¿/¿7¿B¿B¿B¿B¿_¿|¿ˆ¿�¿ ¿°¿Î¿Ò¿Àö¿ç¿ÀÀÀ"À1À@ÀJÀXÀ_ÀcÀeÀtÀ~ÀŒÀ“À—À—À™À«À«À½À½À½ÀÏÀáÀéÀÁ-Á;Á?Á]ÁdÁkÁvÁŒÁ‘Á˜Á«ÁµÁÃÁÊÁÎÁÐÁãÁíÁûÁ Â.Â8ÂFÂQÂUÂUÂZÂbÂfÂuÂw†ˆ—™¨¯³ÂÇÂÑÂßÂæÂêÂúÂà ]]]]]]%]*]*].]3]3]<]J]V]_]e]e]n]„]„]Š]“]©]©]²]´]º]Ã]Ù]Ù]â]â]â]ë]ð]ð]ø]ý]ý]^(^4^9^?^I^Q^V^V^V^j^s^y^‹^•^•^�^�^¥^§^§^À^Ê^Ó^Õ^Õ^Õ^Û^ß^á^á^á^á^æ^ì^ò^ö^mb»Ìz© m mAmLmbm~m‹m¢mµmÀmÖmÂmåmímímümümnn&n;nJnUnhnnnnnnnsnxn‡n’n¬n®n³nÂnÍnÚnänänòn¼”*Kˆ¥ˆ¥ ¥§¥®¥±¥º¥½¥À¥Ä¥É¥ë¥Ø¥û¥¦ ¦¦¦ ¦)¦2¦8¦;¦L¦j¦{¦†¦¸¦½à.¢CC%C0CACDCHCQCXCfCuC‹CœC­C¿CÑCàCïCDDDD!D%D*D.D;DBDPDdDmDsD�DšDœD DªDªD¯D¯D¯D´D´DÃDÌDÔDêDêDêDïDïDEEE#E#E&E+E+EJEVEcEeEeEiEkEkEŠE–E¢E¤E¤E§E©E©E¶E¸E¸E»E»EÄEÊEÏEëEëEëEëEëEëEëEëEëEëEëEëEíEþEF F.F.F2F2F:FSFWF\F÷F¾,××,×3×;×@×F׿l3JßSßSõSTûSTCT/TRTWT^T^TdTgTkTsT‹T–T¬T¡TÄTÎTÀPQaâ$â$ð$þ$%%&%+%H%N%U%\%j%v%ˆ%Ä%ÁD+ÞåÞåòåææ)æ/æ5æZæ`æfælælætæÂô#œ?7?7G7V7Z7g7t7ˆ7—7´7Á7Ó7õ78+8G8Y8q8ˆ8“8´8Ò8á8ü89"9;9;9V99™9´9Æ9Õ9ä9ä9ï9::&:6:C:O:^:{:{:ƒ:ƒ:ƒ:”:¡:¨:Ç:Ð:á:å:í:ø:;(;1;A;I;N;r;‚;’;�;±;¶;¾;ä;æ;ñ;$<><><V<e<m<|<…<�<Ÿ<Á<É<Ñ<Ü<Þ<î<==6=N=`=w=€=‰=›=©=­=±=à èˆèˆñˆ‰‰Ä\‡ZÆÍÆÍàÍçÍôÍÿÍÎ
Ã(Ã2Ã@ÃGÃKÃUÃcÃjÃnÃxÌÔßãããîõÃÃÃÝÃíÃøÃ ÄÄÄ-Ä9ÄOÄWÄbÄqÄyĄĉđĜĨĬķļÄÐÄØÄãÄãÄãÄãÄ÷ÄÅÅ)Å-ÅAÅRÅgÅtÅxņśūÅÂÅÛÅôÅöÅÆ Æ ÆÆ/Æ@ÆWÆpÆ~ƉƕÆ�ƟƪƲƲƲÆÏÆÝÆëÆÇÇ(Ç5ÇUÇ\Ç\ÇlǀǚǚǞǴÇÃÇÞÇéÇÈÈÈ-È-È@È[ÈdÈ{ȕȤȱÈÑÈßÈõÈÉ!É9É9ÉQÉQÉ]ÉxÉ�əəəɥɶÉÎÉ×É×ÉÞÉçÉíÉùÉXÊ®<ùD(�(�M�Y�d�n�t�~�„�Ž�œ�¦�¸�Â�È�Ò�Ø�â�é�õ�û�‘/‘>‘A‘C‘M‘_‘i‘{‘…‘š‘š‘�‘§‘¼‘Á‘ёܑá‘õ‘÷‘’+’+’5’J’X’a’i’w’ˆ’˜’©’¶’¶’Ã’Ã’Ë’Ù’ “¯$› PP“P›P¦P¬P°l£:ÇFÇFàFøFG(G:GRGmGmG—GŸG£G¦GªG¯G¹G¼GÃGÉGÐGÖGÚGßGéGúGHH ÎÎ"Î:Î@Î^ÎtÎ΅ΧΧηÎÌÎÎÎÑÎÝÎåÎíÎõÎÏ ÏÏÏÏ Ï2Ï8Ï=Ï=ÏTÏTÏrÏrÏ…Ï’Ï—Ï—Ï®Ï·ÏÆÏÜÏçÏõÏÐÐÐ/Ð5Ð?ÐKÐXÐZÐZÐbÐgÐgÐoÐtÐtÐ|Ð�Ð�ЉЎЎДЙЙРХХЬббмÐÁÐÁÐÌÐÑÐÑÐÜÐáÐáÐìÐìÐÑÑÑÑ"Ñ%Ñ9ÑFÑUÑ\Ñ_ÑqÑsÑyÑ�њѩѩѩѩѳÑÍÑâÑôÑÒÒ Ò%Ò*Ò5ÒGÒXÒgÒmÒ~Ò‰Ò“Ò£Ò²Ò¸ÒÃÒÉÒÞÒäÒõÒÓÓÓÓ&Ó9ÓEÓMÓ]ÓdÓjÓ{Ó†Ó‹Ó¨Ó½ÓËÓÛÓçÓùÓÔÔÔ'Ô/Ô4Ô;Ô?ÔMÔWÔ]ÔgÔmÔxÔ~Ô€Ô�ÔšÔ¤Ô½ÔËÔËÔÑÔØÔ×ÅD#°(­(­G­i­q­q­­’­¬­¯­¸­Ô­Ô­Ô­Ü­Þ­Þ­æ­è­è­ð­ò­ò­ú­ú­® ®®®®&®*®/®5®:®:®:®:®B®K®Q®V®V®[®h®�® ®£®¹®Ø®Ø®Ø®à®â®â®â®ê®ì®ì®ì®ô®ö®ö®ö®þ®¯¯ ¯ ¯¯¯¯¯¯¯(¯:¯H¯V¯`¯`¯`¯p¯p¯w¯{¯�¯™¯§¯º¯Ç¯ð¯ó¯ü¯°° °(°3°3°>°D°I°I°I°P°V°k°s°y°„°›°²°¾°Ä°É°É°Ð°Û°Û°à°ò°ø°ø°ø°ø°T±Æd*DD2D<D?D?DID\D^DkDmDxDŒD”D¤D©D¯D·DºDÌDÇLWf11.12171B1B1L1R1R1V1^1È\CV²0²0È0È0Ì0Ñ0ä0ç0ì0ì0ö0ü0ü0
HHH!H$H/H;H>HOHZH`HgHpH‰HšH£H¬H´H¿HÊHÖHçHøHIIII"I'I+I8I?IbIpIzI„I�I¦I·IÀIÉIÑIÚIàIäIéIíIúIJJJ.J8JAJZJkJtJ}J…JŽJ”J˜J�J£J­J·JÖJäJêJïJ÷JÿJKKK;K.KPKYKtKˆK›K¢K«K´K»KÄKÍKÖKïKßKÿKL]L±  ¨ˆ¨ˆ¶ˆØˆÞˆ²¸�·z'z'ˆ'�'È'Ê'ÿ'*(*(:(?(?(S(X(X(t(y(y(™(ž(ž(²(·(·(Ô(Ô(â(),)L)^)p)‚)’)’)’)’)™)r*³$bgÊ%Ê%Î%æ%ø%&´ƒ‡Ã‡Ã™Ã¨Ã¨Ã«Ã´ÃÀÃÀÃÖÃìÃþÃÄ ÄÄ9ÄKÄQÄ`ÄiÄmÄsÄ|ĒĖijÄÑÄãÄéÄøÄ 1 11É8(2ö×ö×ÿ×ÿ× ØØØØ ØÊ¨Yÿ_ÿ_` `*`=`1`o`Ó`¹`®`”`}`Ù`î`Þ`aa0a5aJa7aYa_a_afa�a»ažaÒaðaðaðaüaËlF]‡.‡.¡.Ê.¬.Ù.ù./ /-/E/2/T/m/�/Ÿ/¸/¸/¿/á/á/ë/Ì4Š“×í×íëíðíöíúíþíî%îÍxÌæg„g„’„„¡„«„²„Ȅ̈́҄ք؄ބä„ú„ç„ …"…*…<…_…U…n…z…Δ"ø«ø«¬¬¬$¬,¬7¬B¬J¬U¬`¬e¬{¬‚¬‰¬”¬Ÿ¬¡¬¬¬·¬¹¬Å¬Ð¬Û¬ä¬ì¬ì¬ð¬'­Ï€ø*6*6H6L6P6X6f6i6l6‚6ˆ6Š6œ6 6¤6¬6´6À6Õ6æ6í6ô6ô677ÐÞ`oGoGŸGªGÏG±GéG H$H$H'H1HIHXHZHbH„H¥H·HÄHßHóHøHIII#I:IaIsI€I›I»I±IÕIÛIÛIäIJJJJ0JJ?J?JQJQJ_JiJ”JŠJ®J®J³J¶JÌJØJíJKK!K1KYKHKhKjK|K�K¤KšK¹K¿KÎKöKåKLLL#L7LALJLaLkLmL�L‹L‹LªL°L°L°L¹LÙLMðLMM'M/MZMPMoMoMoM•M•M§MÑ`8Ìg3g3ž3¥3­3¶3Á3È3à3å3è3ë3ô34 4494>4K4w4|4‰4©4®4½4é4ñ4ö4 575?5D5D5W5j5~5‚5¤5µ5º5º5æ5æ5æ5æ5æ5ú566666J6O6X6e6m6ˆ6Ÿ6­6¸6Ô6Ô6Ô6á6ø6ú6ú6ú677 7 7-7D7D7T7Y7€7—7©7Å7Å7Å7Ò7é7ë7ë7ë7ø788885858E8M8R8r8‰8›8·8·8·8Ä8Û8Ý8Ý8ê89999%9G9e9j9x9†9�9’9’9’9¯9·9¹9¹9á9':Ò¤%J?ê?êYê…ê…ê¤ê´ê¹ê¹êÈêÚêôêüêëë#ë+ë+ë+ë-ë-ë-ë-ëIëIëIëIë`ëbëbëbëbë}ëˆë½ëÓÐç……•…¡…¦…¦…²…·…¼…Ç…Ì…Ì…Ì…†î…†7†7†P†i†‚†›† † †¹†Ò†ë†‡ ‡ ‡"‡;‡T‡m‡o‡o‡ˆ‡¡‡º‡Ó‡Ó‡Ó‡å‡Ô0�‰wíwí…í‹í�í®íÏíÏíÕíÕ<:E99#9.9<9H9T9]9f9o9u9z9ÖluŒª&ª&¸&Â&É&à&à&å&ç&ó&ý& '('*':':'?'A'H'z'×ÈŸÍOvOvcv�v‚vnv­vßvÅv¸v
ÅÅÅ$Å,Å0Å6Å?Å?Å?ÅQÅ\ÅbÅxÅŇÅ�ŤŤŤŲÅÙÅâÅêÅüÅÆ ÆÆÆ4Æ;ÆCÆJÆ_ÆpÆpÆwÆwÆwƅƬƹÆÂÆÊÆÜÆäÆíÆíÆøÆÿÆ ÇÇÇ5Ç=ÇCÇRÇ[Ç_ÇgÇpÇpÇ~džnjǩDzǺÇÀÇÆÇÆÇÆÇÍÇÔÇãÇëÇñÇ÷Ç÷ÇùÇȵxWÚWÚeÚzÚ�ڌڢÚÌÚèÚïÚÛ ÛÛ%Û-Û5Û7Û=ÛCÛRÛZÛ`ÛbÛhÛ¤Ôy×e×eúefff>fUfYfafifofxf„fŒfŒf”fÄfgÞf&g+g3gCgEgsgyg‚g‰g‘g™g¥g­gµgÈgÐgÕgßgÿghhh!hAhHhJhjhqhqhqhzh�hšh h¨h¨h­h±h½hÆhÏhÛhþh i:i=iYifizi”i˜i·iÅiÑiÿijj5j8j8jTjajuj�j—j›j¦j®j¾jÀjîjñjùj k k9k?k?kIkIkTk…k�k�k�k�k–k¢k¸kÑkäkëk÷kþkþklllll!l4l;lGlNlNlhljlol‚l‰l•lœlœl©l³l³l¸lÛlÛlíl·à˜ÌDD,DJD7DDeDYDŽD�D¥D°D²D½DÈDÈDÍDEE<ETEAEvEcEŠE…E¦EµE½EÈEÊEÕEàEàEåEFF)F)F0F5FWFYF{F{F{FƒF¸\î/f/fEfWf]fhfvf‚f™f™f«f±f¼fÌf×fåfòfg¹ÛÜ· · Õ è ï ö ý    www(w7wNwkwÄw¬w˜wÊwÕwxxx-x5xZxOx;xmx†xrx©x•xÀxÇxóxóxóxóxûxØL^mï/ï/ 0 0&0H0H0Z0g0w0m0�0™0Ù$qv÷N÷N OOO$OÚÈg•b1b1†1Š1©1Ë1×1Þ1é1÷12 2 22242?2O2[2b2m2~2€2‘2“2•2•2•2�2�2§2§2¯2·2¿2Ç2Ë2Ö2"3Û XˆXˆfˆ}ˆƒˆÜ`FZz9z9Š9‘9“9˜9§9­9Â9Â9Ð9Ð9Ü9å9è9ö9:: :Ý<ö_‘_‘h‘s‘~‘‰‘”‘ž‘¼‘Ç‘בÞ =�h�h§h¹h¿hËhÖhähðhii"i4i:i@iFiYi_ihini€i†i‘i™i§i´iñiß,29111.1G1[1^1d1à4‰‰&‰0‰9‰@‰G‰Q‰Q‰W‰áÄMz§ÿ§ÿÓÿÖÿÛÿèÿíÿÿÿ   8^gry’¸½Öü!GIbˆˆˆ ºÉÛâ �Ï/x/xMxPxVxjxrxƒx�x–x›x›x¨x±x·xÇxÕx×xöx
    6 @ @ T _ m ~ ‚ ‡ › Ÿ ¨ ¬ ± · Ô Ô â ù þ !(!,!,!,!1!<!F!M!`!d!i!}!…!Ž!’!”!›!­!½!Ô!Ö!ï!""""""'"+"0"6"S"S"a"x"}"–"§"«"½"½"½"Â"Ñ"õ"#"#(#>#O#T#_#s#w#€#„#†#Œ#¥#¥#³#Ê#Ì#å#ö#ú#ú#$$$*$/$C$K$T$X$]$d$z$Š$¡$¦$¿$Ò$Ö$è$è$è$è$í$%%B%M%S%i%z%z%z%�%”%­%­%­%¼%¼%Ï%æ%ñ%&& &&&%&%&,&7&L&N&Y&n&z&|&‡&“&£&ª&±&»&Ã&Ç&Ë&Í&Ò&Ú&Þ&ð&ò&÷&ÿ&'''''1'Q'k'y'…'Œ'Œ'Ÿ'£'£'£'ª'¯'É'×'ã'ê'ê'(( (%(3(?(F(F(S(](](o(º  ¿£XJXJuJ„J„J„J¡J¡J²J²J¸JºJºJÀJÂJÂJÈJÊJÊJÑJÕJÚJÚJÚJÚJÚJÚJâJúJúJKK$K1KIKKKjKlK‹K�K¯K´KºKºKÓKÖKýK yyy-y-y;yNyYy]ynynynysysyyŽy¡y§y¬yÀyÆyÎyàyæyèy÷yz
L"LBLBLKLPLnL\LtLƒLˆL�L˜L«L³L»LÀLÀLÀLÉLâLèLèLMM,MEMGMOMUM]MbMbMhMhMqM‚M„M™M›M£M©M±M¶M¶M¶M¶MÄMÛMÝMñMñMùMÿMN NNN&N,N2N4N4N4N<N<NJNaNeNgNsNuN�N–NžN£N¬N·N»NÁNÅNÎNÑNÑNßNðNòNO7O=OEOJOSOXOXO]O_OgOgO‚O”O™O¥O«O®OÅOÇOÊOÚOÞOåOîOýO PPPP&P+P+P3P@PXP]PgP�PšP¥P°P»PÆPÑPÜPçPòPòPòPúPQQ*QGQ`QbQhQjQmQxQzQzQ€Q†Q†QŽQ—Q�Q©Q©Q°Q³QÒQÝQåQíQòQòQùQýQRRR#R-R-R:RaRaRjRxR‰R•RœRªR¹RÏRÕRÚRÚRßRõRS SS#S,S:SASCSLSLSVSdSpS‡S�S´SºS¼SÓSØSØSøSøS zzzz!z(z4z;z=zBzJzLzQz]z_zdzlznzsz{z}z‚zŠzŒz‘z™z™z™z©z©z©zÀzÆzÌz×zÜzõzûz{{{{"{;{F{Q{W{d{i{n{n{ƒ{‹{•{�{¥{Æ{Ñ{Ü{è{â{ñ{ú{ÿ{|| |)|5|;|G|K|P|U|`|k|v|x|~|‹|�|•|®|¹|Ä|Ä|Ê|×|Ù|Þ|ç|} }}})})}-}2}2}C}E}E}X}Z}Z}m}o}o}‚}„}„}—}™}™}«}«}±}¶}¶}Í}á}Ö}î}ö}ý}~ ~~)~ ~9~9~;~S~V~X~g~y~‰~•~¬~Æ~Ë~ß~ï~$6AIQUcinntˆ˜��£©®®®´ÃÖãçììðõõú€€+€A€M€M€S€`€b€o€{€Š€�€�€ª€¶€¶€¶€¶€º€¿€Ѐâ€í€õ€ý€ÿ€��$�3�9�F�F�]�m�m�������˜�¤�»�»�Á�Î�Ð�â�â�í�í�í�í�í�i„ã ŒÐ'W'WEWSWjWoW”WšWŸW¥W³WºWÉWÎWÚWìWìW
TTT T(T6T;T;TRTXTZTeTwT�T�T¡T±TÃTÈTÔTÚTÝTôTöTùT UUUU%U<UNUSU_UeUhUU�U„U”U˜U U®U³U¸U¸U¾UÆUËUËUÑUÑUßUåUëUõUÿU V"V%V'V1V1V3V;V@VEVJVJVPVXV]V]VbVmVrVwV‚V‡V­V¯V´V¹V¾VÃVÈVÍVÒVÒV×VÜVøVWW*W0W8W8WFWLWRW\WfWtW‰WŒWŽW˜W§W¬W¬W¬W´W¹WÂWÂWÇWÇWÍWÕWÚWÚWßWêWïWôWùWXXX X X-X3X9XCXMX[XpXsXuXXŽX“X“X“X›X X©X®X®X´X¼XÁXÁXÆXÑXÖXÛXàXïXïXYYYYY Y*Y4YBYWYZY\YfYuYzYzYzY‚Y‡Y�Y•Y•Y›Y£Y¨Y¨YµY»Y»YÉYÏYÕYßYéY÷Y ZZZZ*Z/Z/Z/Z7Z<ZEZJZJZPZXZ]Z]ZjZpZpZ~Z„ZŠZ”ZžZ¬ZÁZÄZÆZÐZßZäZäZäZìZñZúZÿZÿZ [[[[[[&[,[@[E[E[K[U[[[`[`[i[w[€[Ž[“[“[œ[ª[¶[Ç[Ô[Û[ã[í[û[û[\\ \ \ \\\\\ \$\,\2\4\=\L\T\Y\_\_\g\p\~\‰\Ž\”\œ\¡\¡\¡\¡\¡\¡\¡\¡\¡\¡\º\À\É\Ï\×\Ü\á\ê\õ\þ\] ] ] ]]]]]"]']']0]>]J]S]Y]Y]b]x]x]~]‡]�]�]¦]¨]®]·]Í]Í]Ö]Ö]Ö]ß]ä]ä]ì]ñ]ñ]^^(^-^3^=^E^J^J^J^^^g^m^^‰^‰^‘^‘^™^›^›^´^¾^Ç^É^É^É^Ï^Ó^Õ^Õ^Õ^Õ^Ú^à^æ^ê^ab»Ìz©ïlïlmm2mNm[mrm…m�m¦m’mµm½m½mÌmÌmÔmàmöm nn%n8n>n>n>nCnHnWnbn|n~nƒn’n�nªn´n´nÂn¼”*K€¥€¥˜¥Ÿ¥¦¥©¥²¥µ¥¸¥¼¥Á¥ã¥Ð¥ó¥û¥¦¦¦¦!¦*¦0¦3¦D¦b¦s¦~¦°¦½à.¢×B×BõBCCCC!C(C6CEC[ClC}C�C¡C°C¿CÐCßCßCíCñCõCúCþC DD D4D=DCDQDjDlDpDzDzDDDD„D„D“DœD¤DºDºDºD¿D¿D×DãDîDóDóDöDûDûDE&E3E5E5E9E;E;EZEfErEtEtEwEyEyE†EˆEˆE‹E‹E”EšEŸE»E»E»E»E»E»E»E»E»E»E»E»E½EÎEàEïEþEþEFF XX(X/XIXfXrX�X¥XÁXÊXÙXáXîX÷XüX YY:Y?YGY`YrY‚YˆY“YœY¢YèYÒYÃYøY3ZZZCZFZkZúZä<+6ÐDÐDñD÷DEE+E3EMEYEå„ |Ø ã ê ò õ õ !!!!!!!'!-!3!:!@!Q!Q!S!\!h!n!“!—!š!ª!²!·!·!¾!Ç!Ø!Þ!ç!ò!"" """"")"1"7"9"G"^"a"p"}"Š"Š"Š"Š"�"¢"«"¼"Ý"î"# ## #&#&#/#6#B#R#]#]#]#q#…#•#˜#S$æ„9ò7ò788$8(8>8k8�8’8›8©8»8Ô8Ô8æ899 99çX{ÍŽŽ¹ÃÖáó '=EXm}‡‰™©²¸½ÄÊÐÖáìïö2GTW_cu„‹“®ËÏØßñù !8FLPR___ax~~�è 
F#F'F,FÇF¾,××$×+×3×8×>׿l3J¯S¯SÅSßSËSîSTÿS"T'T.T.T4T7T;TCT[TfT|TqT”TžTÀPQaâ$â$ð$þ$%%&%+%H%N%U%\%j%v%ˆ%Ä%ÁD+ÖåÖåêåøåþå!æ'æ-æRæXæ^ædædælæÂô#œ777&7*777D7X7g7„7‘7£7Å7í7û78)8A8X8c8„8¢8±8Ì8×8ò8 9 9&9O9i9„9–9¥9´9´9¿9Ò9ã9ö9:: :.:K:K:S:S:S:d:q:x:—: :±:µ:½:È:à:ø:;;;;B;R;b;m;�;†;Ž;´;¶;Á;ô;<<&<5<=<L<U<]<o<‘<™<¡<¬<®<¾<Ö<î<==0=G=P=Y=k=y=}=�=à àˆàˆéˆ‰ ‰Ä\‡Z¾Í¾ÍØÍßÍìÍ÷ÍüÍÎÎÎ2Î8ÎVÎlÎwÎ}ΟΟίÎÄÎÆÎÉÎÕÎÝÎåÎíÎûÎÏ ˆˆˆˆ‘ˆ¥ˆªˆé¤ŸÄ‚‚›‚¡‚³‚¸‚¾‚Á‚łłè‚킃ƒ)ƒBƒ.ƒQƒgƒSƒvƒ~ƒƒƒ‰ƒŒƒ�ƒ’ƒ«ƒ—ƒºƒºƒºƒÕƒ„„ê˜Ìîââëææúõ ""11@@OO^^m�|‹‹š©¸#ëxÓí/e/eMe_eeeqeˆeˆeše e«e»eÇeÐeÖeÜeçeõefff+f+f[fìd”©'î'î+î>î>îXî_îkîkî‚î‚î™î™î°î°îÇîÇîÞîàîàîäîíÌÂñWWy€‹¡¡³¾ÒÖÛßáçù5DHHH[pp|‚Œ—¥¬»½ÖððîP7G`E`EvE‚EŠEŽEŸE­E³E¿EÇEÒEØEÛEåEï ®-o>o>‰>”>˜>¡>¨>¯>Å>Ö>ç>ù> ??)?:?I?I?P?T?]?j?q?z?�?…?¥?¥?¥?¥?¥?±?µ?¸?À?Î?Ö?ã?ë?ó?@@@@!@'@6@M@O@Z@g@r@u@{@w@�@¦@¨@¶@¸@Ã@É@É@Ñ@Ñ@ã@ê@AAAAAA+A6A;A;A>ACACAbApA}AAAƒA…A…A¤A²A¾AÀAÀAÃAÅAÅAÒAÔAÔA×A×A×A×A×AàAæAêAöAB#B1B8BCð(rxˆ‹ˆ‹–‹�‹­‹°‹¶‹ñ(ntZ&Z&c&m&~&‰&‰&§&òTzKôô$ô*ô-ô6ô@ôXôhôqôwôzô~ô€ô˜ô¨ôµô»ô¿ôÅôÇôÊôÎôÎôñôõôûôûôõ)õ>õQõdõjõqõ|õ†õŠõ�õ”õšõžõ¤õµõ»õÀõÅõÒõÔõæõèõïõüõþõööööö4ö?öKöböböwöƒö öÄöÞöãöúöÿö ÷$÷)÷/÷@÷U÷[÷k÷x÷Œ÷“÷Ÿ÷·÷Ã÷Ã÷Ã÷É÷Ì÷Ï÷è÷î÷øø øøøø*ø7ø7ø=øKøbøhøkønøuø~ø…ø…øŠø—ø¤ø¤øªø¸øÏøÕøØøÛøâøâøóøúøùùùù%ù,ù2ù9ùDùXùXùrùwù~ù†ù�ù�ù¡ùªùÂùÇùÎùðùûùú ú"ú6ú6úQúQúkúyú€ú‡ú©ú¼úàúâúìúûûû'û3ûDûcûgû<üóÀ€¬ÿaÿabb b/b:bFbgbHbvb{b{b bÑb´b§bôbùb"c'c3cTc5ccchc�cˆc«cÁcÁcçcçcócô ^0^0m0†0Œ0õ4‘š7P7POPrPP…P‹PŽP®Pö8 â.â.ð.÷./
ÏÏÏÏ*Ï0Ï5Ï5ÏLÏLÏjÏjÏ}ÏŠÏ�Ï�ϦϯϾÏÔÏßÏíÏøÏÐÐ'Ð-Ð7ÐCÐPÐRÐRÐZÐ_Ð_ÐgÐlÐlÐtÐyÐyÐ�ІІЌББИÐ�Ð�ФЩЩдййÐÄÐÉÐÉÐÔÐÙÐÙÐäÐäÐÿÐÑ ÑÑÑÑ1Ñ>ÑMÑTÑWÑiÑkÑqхђѡѡѡѡѫÑÅÑÚÑìÑýÑÒÒÒ"Ò-Ò?ÒPÒ_ÒeÒvÒ�Ò‹Ò›ÒªÒ°Ò»ÒÁÒÖÒÜÒíÒøÒþÒÓÓÓ1Ó=ÓEÓUÓ\ÓbÓsÓ~ÓƒÓ ÓµÓÃÓÓÓßÓñÓüÓ Ô Ô Ô'Ô,Ô3Ô7ÔEÔOÔUÔ_ÔeÔpÔvÔxԅԒԜԵÔÃÔÃÔÉÔÐÔ×ÅD#° ­ ­?­a­i­i­w­Š­¤­§­°­Ì­Ì­Ì­Ô­Ö­Ö­Þ­à­à­è­ê­ê­ò­ò­û­®®®®®"®'®-®2®2®2®2®:®C®I®N®N®S®`®y®˜®›®±®Ð®Ð®Ð®Ø®Ú®Ú®Ú®â®ä®ä®ä®ì®î®î®î®ö®ø®ø®¯¯ ¯¯¯¯¯¯ ¯2¯@¯N¯X¯X¯X¯h¯h¯o¯s¯y¯‘¯Ÿ¯²¯¿¯è¯ë¯ô¯û¯°° °+°+°6°<°A°A°A°H°N°c°k°q°|°“°ª°¶°¼°Á°Á°È°Ó°Ó°Ø°ê°ð°ð°ð°ð°L±Æd*DD2D<D?D?DID\D^DkDmDxDŒD”D¤D©D¯D·DºDÌDÇLWf11.12171B1B1L1R1R1V1^1È\CV²0²0È0È0Ì0Ñ0ä0ç0ì0ì0ö0ü0ü0 /////#/÷ :>g1g1q1y1~1øÎPÿxÿxy-y8yNykyzyžyÌyÒyØyàyâyêyÿyz zz/zLz[zz­z³z¹zÁzÆzÎzãzæzñzýz{{{{{&{6{N{\{Š{�{•{�{­{Ó{|| | ||(|3|P|h|t|||Š|Š|�|¢|¹|»|Ø|ð|ü|}}}}*}7}A}X}o}ˆ}š}§}É}à}÷}~~~5~5~>~J~`~y~Œ~—~ª~®~®~®~µ~º~Í~Ø~ò~ô~ù~ $..@ù˜k �:�:¦:²:²:È:Ó:Õ:õ:õ:õ:ü:;
1 11É8(2î×î×÷×÷ר ØØØØÊ¨YÏ_Ï_ç_ï_ú_ ``?`£`‰`~`d`M`©`¾`®`Þ`ã`aaaa)a/a/a6a`a‹ana¢aÀaÀaÀaÌaËlF]W.W.q.š.|.©.É.å.Û.ý.//$/=/]/o/ˆ/ˆ/�/±/±/»/Ì4Š“§í§í»íÀíÆíÊíÎíííõíÍxÌæ7„7„b„O„q„{„‚„˜„�„¢„¦„¨„®„´„Ê„·„Ù„ò„ú„ …/…%…>…J…Δ"ð«ð«þ«¬¬¬$¬/¬:¬B¬M¬X¬]¬s¬z¬�¬Œ¬—¬™¬¤¬¯¬±¬½¬È¬Ó¬Ü¬ä¬ä¬è¬ ­Ï€ø*6*6H6L6P6X6f6i6l6‚6ˆ6Š6œ6 6¤6¬6´6À6Õ6æ6í6ô6ô677ÐÞ`?G?GoGzGŸG�G¹GïGôGôG÷GHH(H*H2HTHuH‡H”H¯HÃHÈHâHìHîHóH ;;;;;;4;4;j;v;ˆ;˜;¯;´;·;¼;¼;¼;Ø;ß;ì;ó;û;<<<(<0<5<5<Q<^<f<k<k<‡<“<œ<¤<¬<¸<Î<Ù<ü<=====7=Q=[=g=o=t=t=“=Ÿ=±=¶=Ò=Þ=í=ò=>>>>>>>>>>:>F>X>Z>]>b>b>b>l>t>{>ƒ>Œ>—>�>ª>¸>¸>Â>Ë>Ó>???$?>?C?C?V?^?^?`?`?`?e?e?l?r?v?}?�?�?�?�?�?�?µ?¾?¾?Â?ÝCú(àCàCîC÷CD Dû�ªÊ÷n÷noo)o?oTobomo|o‚o‚o‚o‡oŒošo¥o¾oÀoÅoÓoÞoëoòopü\2Eg-g-�-¦-ˆ-µ-Ñ-Ç-é-þ-ë- .&.8.Q.Q.X.z.z.„.ý8fpwNwN�NžN²NÁNÇNÍNÐNðNþ0�—€Œ€Œ”Œ Œ®Œ±ŒÉŒÌŒÔŒÿ0S[¾Ø¾ØÒØÚØçØñØÙP>NŠŠ Š Š#Š7Š?ŠCŠMŠWŠ_ŠbŠhŠT¡²ßPßPùP QQQ&Q;Q=QOQYQmQmQsQvQÊQ<˜£ØŒØŒìŒóŒÿŒ �� �#�'�/� 26vævæ„æ�æH!/§]§]»]Ç]Ý]É]ì]î]õ]^ ^^D>‹oToT‘TœT¡T©TÃTÊTÌTÌTèTîTðTûTUUUUU&U/U7U>UEUIUPUXU^UcUkU‚U†UœU¯UµUÉUÎUÛUÛUïUúUV
I1ICIPIkI‹I�I¥I«I«I´IÔIàIãIåIJêIJJ!J!J/J9JdJZJ~J~JƒJ†JœJ¨J½JáJëJñJK)KK8K:KLK`KtKjK‰K�KžKÆKµKÕK×KéKóKLLL1L;L=LQL[L[LzL€L€L€L‰L©LÑLÀLàLåL÷LÿL*M M?M?M?MeMeMwMÑ`8Ì7373n3u3}3†3‘3˜3°3µ3¸3»3Ä3Ò3Ü3á3 444G4L4Y4y4~4�4¹4Á4Æ4Û45555'5:5N5R5t5…5Š5Š5¶5¶5¶5¶5¶5Ê5â5ç5ê5í5í56 6(656=6X6o6}6ˆ6¤6¤6¤6±6È6Ê6Ê6Ê6×6î6ð6ð6ý677$7)7P7g7y7•7•7•7¢7¹7»7»7»7È7ß7á7á7î78888"8B8Y8k8‡8‡8‡8”8«8­8­8º8Ñ8Ñ8å8ç8õ8959:9H9V9`9b9b9b99‡9‰9‰9±9÷9Ò¤%Jêê)êUêUêtê„ê‰ê‰ê˜êªêÄêÌêÓêØêóêûêûêûêýêýêýêýêëëëë0ë2ë2ë2ë2ëMëXë�ëÓÐçO…O…e…q…v…v…‚…‡…Œ…—…œ…œ…œ…Ñ…¾…à…†† †9†R†k†p†p†‰†¢†»†Ô†Ù†Ù†ò† ‡$‡=‡?‡?‡X‡q‡Ї£‡£‡£‡µ‡Ô0�‰GíGíUí[í_í~íŸíŸí¥íÕ<:E99#9.9<9H9T9]9f9o9u9z9ÖluŒª&ª&¸&Â&É&à&à&å&ç&ó&ý& '('*':':'?'A'H'z'×ÈŸÍ v v3v]vRv>v}v¯v•vˆvÚvßvêvøvww;w”w|whwšw¥wÑwÖwÞwýwx*x x x=xVxBxyxex�x—xÃxÃxÃxÃxËxØL^m¿/¿/Ý/ï/ö/00*070G0=0_0i0Ù$qvÇNÇNÛNãNîNôNÚÈg•b1b1†1Š1©1Ë1×1Þ1é1÷12 2 22242?2O2[2b2m2~2€2‘2“2•2•2•2�2�2§2§2¯2·2¿2Ç2Ë2Ö2"3Û PˆPˆ^ˆuˆ{ˆÜ`FZz9z9Š9‘9“9˜9§9­9Â9Â9Ð9Ð9Ü9å9è9ö9:: :Ý<ö/‘/‘8‘C‘N‘Y‘d‘n‘Œ‘—‘§‘Þ =_h_hwh‰h�h›h¦h´hÀh×hâhòhi VV!VDVJVNVSVXV[VeVjVvVV“VšV¬VÀVÇVÇVÎVÑV#WläûVäVäjä€äŽä™ä�ä¤ä¨ä±äÀäÂäÂäÖäØäáäçäçäçäçäïä´KtðEðEF'F,F3F=F=FEFXF\FaFvFxF{FF†FšFžF¦F²F¹F½FÅFÇFÏFÝFåFçFêFG GG!G%G3G -Q¯s¯s¿sËs×sçsÿstt$t,t3tLtyt“t t­t½tÃtÅtÖtøtÿtuuu1u<uBuHuku ôB»@j@jZj]jdjoj~j€j‹jšjšj§jµj¸jºjºj¿jÄjÍjØjÞjçjújÿjk k)k)k?k?klk€k—k�k¢k©k¯k¶k»k»kÁkÇkÌkÌkßkíkl ll$l.l5l5lRlmlslxlxl£l¨l¨lÓlúlÿlÿlÿlm mmmmm!m'm,m,mCmWm]m€m†m–m¢m¨m¶m½m¿mÓmÙmàmàmâmâmâmçmímòmömømûmnnnnnn#n#n1n[n
iii)i/i8i>iPiViaiiiwi„iÁiß,29ß0ß0í0þ01+1.141à4‰‰‰(‰1‰8‰?‰I‰I‰O‰áÄMzwÿwÿ£ÿ¦ÿ«ÿ¸ÿ½ÿÏÿÑÿÕÿÙÿÜÿïÿ.7BIbˆ�¦ÌÑØñ2XXXpŠ™«â �Ïÿwÿwx x&x:xBxSx`xfxkxkxxx�x‡x—x¥x§xÆxÚxáxíxýxýx yy)y-y>y>y>yCyCyOy^yqywy|y�y–yžy°y¶y¸yÇyÔyÚyàyåyëyñyøyz z zzzz!z-z/z4z<z>zCzKzMzRzZz\zazizizizyzyzyz�z–zœz§z¬zÅzËzÖzÞzèzìzòz {{!{'{4{9{>{>{S{[{e{m{u{–{¡{¬{¸{²{Á{Ê{Ï{Ô{é{ð{ù{| ||| |%|0|;|F|H|N|[|`|e|~|‰|”|”|š|§|©|®|·|Ð|Û|æ|ì|ù|ù|ý|}}}}}(}*}*}=}?}?}R}T}T}g}i}i}{}{}�}†}†}�}±}¦}¾}Æ}Í}Ó}Û}î}ù}ð} ~ ~ ~#~&~(~7~I~Y~e~|~–~›~¯~¿~Ò~×~×~à~ô~!%39>>DXhmmsy~~~„“¦³·¼¼ÀÅÅÊÕáû€€€#€0€2€?€K€Z€m€m€z€†€†€†€†€Š€�€ €²€½€Å€Í€Ï€á€æ€ô€� ���-�=�=�Q�]�_�h�t�‹�‹�‘�ž� �²�²�½�½�½�½�½�9„ã ŒÐ÷V÷VW#W:W?WdWjWoWuWƒWŠW™WžWªW¼W¼WÚWåWøWÿWX6XBX]XuX‘XšX©X±X¾XÇXÌXÜXêX ˜}ŸV$V$r$w$~$ˆ$Ž$™$©$±$¹$¾$É$Ó$Ù$ä$ô$ü$ %%%#%+%3%8%C%Q%Q%g%  B†ç?ç?ÿ?@@A@L@Y@g@[@�@�@œ@¤@³@í@ï@A$A$AYAqA^A’A€A¡A§A¶AËAÍAØAàAàABBBB#BAB.BvB\BPB…B¢B�BÂBÚBÇBüBéBC C,C>C4CUCUCUC~C~CŠC Ð1(“(“<“<“b“b“‚“†“‹“‹“‹“—“œ“¬“±“±“±“¶“¶“ϓ֓å“ó“ü“ ”””””””%”,”3”:”A”H”O”O”Q”Q”W”\”c• D ,ss%s/s9sIsNsWscseswswsys©s
YYY0YBYRYXYcYlYrY¸Y¢Y“YÈYZíYÞYZZ;ZÊZä<+6ÐDÐDñD÷DEE+E3EMEYEå„ |† † ¨ ³ º Â Å Å Õ à à ã ê ñ ÷ ý !
!!!!!!#!,!8!>!c!g!j!z!‚!‡!‡!Ž!—!¨!®!·!Â!Ó!Ó!Ü!á!ë!ò!ù!"" ""."1"@"M"Z"Z"Z"Z"`"r"{"Œ"­"¾"Ö"Ý"ç"ï"ö"ö"ÿ"##"#-#-#-#A#U#e#h##$æ„9ò7ò788$8(8>8k8�8’8›8©8»8Ô8Ô8æ899 99çX{Í^^‰“¦±ÃÑ×èï÷ (=MWYiy‚ˆ�”𠦱¼¿Æàè$'/3ET[c~›Ÿ¨¯ÁÉÐÔÝßñ "///1HNN`è 
€ˆ€ˆ‰ˆ�ˆ¢ˆé¤ŸÄO‚O‚k‚q‚ƒ‚ˆ‚Ž‚‘‚•‚•‚¸‚½‚ê‚Ö‚ù‚ƒþ‚!ƒ7ƒ#ƒFƒNƒSƒYƒ\ƒ`ƒbƒ{ƒgƒŠƒŠƒŠƒ¥ƒÔƒàƒê˜Ìîââëææúõ ""11@@OO^^m�|‹‹š©¸#ëxÓíÿdÿde/e5eAeXeXejepe{e‹e—e e¦e¬e·eÅeÒeÞeìeûeûe+fìd”©÷í÷íûíîî(î/î;î;îRîRîiîiî€î€î—î—î®î°î°î´îíÌÂñ''IP[qqƒŽ¢¦«¯±·ÉÕêì+@@LR\gu|‹�¦ÀÀÒîP7G`E`EvE‚EŠEŽEŸE­E³E¿EÇEÒEØEÛEåEï ®-?>?>Y>d>h>q>x>>•>¦>·>É>Û>ê>ù>
??? ?$?-?:?A?J?Q?U?u?u?u?u?u?�?…?ˆ?�?ž?¦?³?»?Ã?Ô?ß?ä?ä?ñ?÷?@@ @*@7@B@E@K@G@_@v@x@†@ˆ@“@™@™@¡@¡@³@º@Ð@Ð@Ð@Õ@Õ@í@û@A A AAAA2A@AMAOAOASAUAUAtA‚AŽA�A�A“A•A•A¢A¤A¤A§A§A§A§A§A°A¶AºAÆAæAóABBÐBð(rx€‹€‹Ž‹•‹¥‹¨‹®‹ñ(ntZ&Z&c&m&~&‰&‰&§&òTzKþóþóô"ô%ô.ô8ôPô`ôiôoôrôvôxô�ô ô­ô³ô·ô½ô¿ôÂôÆôÆôéôíôóôóôúôõ1õDõWõ]õdõoõyõ}õ€õ‡õ�õ‘õ—õ¨õ®õ³õ¸õÅõÇõÙõÛõâõïõñõööööö'ö2ö>öUöUöjövö“ö·öÑöÖöíöòö÷÷÷"÷3÷H÷N÷^÷k÷÷†÷’÷ª÷¶÷¶÷¶÷¼÷¿÷Â÷Û÷á÷õ÷û÷ø ø øøø*ø*ø0ø>øUø[ø^øaøhøqøxøxø}øŠø—ø—ø�ø«øÂøÈøËøÎøÕøÕøæøíøúøùùùù ù%ù,ù7ùKùKùeùjùqùyù€ù�ù”ù�ùµùºùÁùãùîùôùüùú)ú)úDúDú^úlúsúzúœú¯úÓúÕúßúûûûû&û7ûPûTû)üóÀ€¬ÏaÏaçaëaðaÿa
bb7bbFbKbKbpb¡b„bwbÄbÉbòb÷bc$cc3c8cQcXc{c‘c‘c·c·cÃcô .0.0=0V0\0õ4‘šPP PBPOPUP[P^P~Pö8 â.â.ð.÷./
/////#/÷ :>7171A1I1N1øÎPÏxÏxíxýxyy;yJynyœy¢y¨y°y²yºyÏyÒyÝyéyÿyz+zOz}zƒz‰z‘z–zžz³z¶zÁzÍzÒzØzÞzæzîzöz{{,{Z{`{e{m{}{£{Ñ{×{Ü{Ü{í{ø{| |8|D|L|Z|Z|_|r|‰|‹|¨|À|Ì|Ô|â|â|ç|ú|}}(}?}X}j}w}™}°}Ç}Õ}×}î}~~~~0~I~\~g~z~~~~~~~…~Š~�~¨~Â~Ä~É~Ü~ç~ô~þ~þ~ù˜k �:�:¦:²:²:È:Ó:Õ:õ:õ:õ:ü:;
;;;;;;4;4;j;v;ˆ;˜;¯;´;·;¼;¼;¼;Ø;ß;ì;ó;û;<<<(<0<5<5<Q<^<f<k<k<‡<“<œ<¤<¬<¸<Î<Ù<ü<=====7=Q=[=g=o=t=t=“=Ÿ=±=¶=Ò=Þ=í=ò=>>>>>>>>>>:>F>X>Z>]>b>b>b>l>t>{>ƒ>Œ>—>�>ª>¸>¸>Â>Ë>Ó>???$?>?C?C?V?^?^?`?`?`?e?e?l?r?v?}?�?�?�?�?�?�?µ?¾?¾?Â?ÝCú(àCàCîC÷CD Dû�ªÊÇnÇnånínùno$o2o=oLoRoRoRoWo\ojouoŽo�o•o£o®o»oÂoÐoü\2E7-7-Q-v-X-…-¡-—-¹-Î-»-Ý-ö-.!.!.(.J.J.T.ý8fpGNGN_NnN‚N‘N—N�N NÀNþ0�—xŒxŒŒŒ˜Œ¦Œ©ŒÁŒÄŒÌŒÿ0S[¶Ø¶ØÊØÒØßØéØüØP>Nø‰ø‰ŠŠŠ/Š7Š;ŠEŠOŠWŠZŠ`ŠT¡²¯P¯PÉPÜPßPéPöP Q Q Q)Q=Q=QCQFQšQ<˜£ÐŒÐŒäŒëŒ÷Œ���� �'� 26nænæ|æˆæH!/w]w]‹]—]­]™]¼]¾]Å]Ð]Ü]ä]D>‹?T?TaTlTqTyT“TšTœTœT¸T¾TÀTËTÒTÒTÖTåTîTöTÿTUUUU U(U.U3U;URUVUlUU…U™UžU«U«U¿UÊUÑUÚUèUñUVVV#V(V+V5V:VFVOVcVjV|V�V—V—VžV¡VóVläûNäNäbäxä†ä‘ä•äœä ä©ä¸äºäºäÎäÐäÙäßäßäßäßäçä´KtðEðEF'F,F3F=F=FEFXF\FaFvFxF{FF†FšFžF¦F²F¹F½FÅFÇFÏFÝFåFçFêFG GG!G%G3G -Qss�s›s§s·sÏsÕsãsôsüsttItctpt}t�t“t•t¦tÈtÏtÕtãtëtu uuu;u ôB»8j8jRjUj\jgjvjxjƒj’j’jŸj­j°j²j²j·j¼jÅjÐjÖjßjòj÷j kk!k!k7k7kdkxk�k•kšk¡k§k®k³k³k¹k¿kÄkÄk×kåkýklll&l-l-lJlelklplpl›l l lËlòl÷l÷l÷lúlmmmmmm m$m$m;mOmUmxm~mŽmšm m®mµm·mËmÑmØmØmÚmÚmÚmßmåmêmîmðmómþm nnnnnnn)nSn
˜}Ÿ&$&$B$G$N$X$^$i$y$�$‰$Ž$™$£$©$´$Ä$Ì$Ü$ã$ë$ó$û$%%%!%!%7%  B†·?·?Ï?Ö?é?@@)@7@+@`@`@l@t@ƒ@½@¿@ì@ô@ô@)AAA.AbAPAqAwA†A›A�A¨A°A°AÑAÖAßAëAóABþAFB,B BUBrB]B’BªB—BÌB¹BíBÛBüBCC%C%C%CNCNCZC Ð1 “ “4“4“Z“Z“z“~“ƒ“ƒ“ƒ“�“”“¤“©“©“©“®“®“ǓΓݓë“ô“” ”””””””$”+”2”9”@”G”G”I”I”O”T”[• D ,çrçrõrÿr sss's3s5sGsGsIsys
+1
View File
@@ -61,6 +61,7 @@ public extern I64 MemberMetaData(U8 *st,CMemberLst *ml);
public extern CMemberLstMeta *MemberMetaFind(U8 *st,CMemberLst *ml); public extern CMemberLstMeta *MemberMetaFind(U8 *st,CMemberLst *ml);
public extern CHashClass *OptClassFwd(CHashClass *tmpc); public extern CHashClass *OptClassFwd(CHashClass *tmpc);
public extern I64 PrsKeyWord(CCmpCtrl *cc); public extern I64 PrsKeyWord(CCmpCtrl *cc);
#help_index "Compiler;Cmd Line (Typically)" #help_index "Compiler;Cmd Line (Typically)"
extern I64 Cmp(U8 *filename, extern I64 Cmp(U8 *filename,
U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0); U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0);
+2 -1
View File
@@ -638,6 +638,8 @@ lex_float_start:
cc->token=TK_STR; cc->token=TK_STR;
goto lex_end; goto lex_end;
case '\'': case '\'':
if (cc->flags&CCF_NO_CHAR_CONST)
break;
k=0; k=0;
for (j=0;j<8;j++) { for (j=0;j<8;j++) {
if (!(ch=LexGetChar(cc)) || ch=='\'') if (!(ch=LexGetChar(cc)) || ch=='\'')
@@ -1175,7 +1177,6 @@ lex_check_comment:
goto lex_end; goto lex_end;
} }
case TK_NUM_TK: case TK_NUM_TK:
default:
break; break;
} }
} }
+8 -1
View File
@@ -18,7 +18,7 @@ U0 DoOnce()
DocBottom; DocBottom;
if (RunFile("::/Misc/OSInstall",,FALSE)) { if (RunFile("::/Misc/OSInstall",,FALSE)) {
*sys_registry_doc->filename.name='C'; *sys_registry_doc->filename.name='C';
"\n\n1) TAD\n\n"; "\n\n1) TAD\n2) DLC\n\n";
switch (GetI64("Staff Member Number:")) { switch (GetI64("Staff Member Number:")) {
case 1: case 1:
RegWriteBranch("TempleOS/Staff", RegWriteBranch("TempleOS/Staff",
@@ -27,6 +27,11 @@ U0 DoOnce()
GetI64("Machine Cfg Number:") GetI64("Machine Cfg Number:")
); );
break; break;
case 2:
RegWriteBranch("TempleOS/Staff",
"#define PERSONAL_INITIALS \"DLC\"\n"
"#define MACHINE_CFG 0\n");
break;
} }
Del("C:/Home/DoDistro.HC.Z"); Del("C:/Home/DoDistro.HC.Z");
Del("D:/Home/DoDistro.HC.Z"); Del("D:/Home/DoDistro.HC.Z");
@@ -43,6 +48,8 @@ U0 DoOnce()
"D:/Tmp/Logs/*.log","D:/Home/WebLogRep.DD"); "D:/Tmp/Logs/*.log","D:/Home/WebLogRep.DD");
Del("D:/Tmp/Logs/*.log"); Del("D:/Tmp/Logs/*.log");
} }
if (tos_timestamp)
Blog(TRUE);
} }
DoOnce; DoOnce;
+7 -24
View File
@@ -127,22 +127,10 @@ Bool MyPutKey(I64 ch,I64 sc)
} }
return TRUE; return TRUE;
case SC_F5: case SC_F5:
if (sc&SCF_SHIFT) {
if (sc&SCF_KEY_DESC) if (sc&SCF_KEY_DESC)
KeyDescSet("Edit/Collaborative Fiction"); KeyDescSet("Edit/God Offering");
else else
"---- $TX,"Collaborative Fiction",HTML="http://en.wikipedia.org/wiki/Collaborative_fiction"$ ----\n" GodOffer;
"Once upon a time ";
} else {
if (sc&SCF_KEY_DESC)
KeyDescSet("Edit/Moses Comic");
else
"---- Moses Comic ---- "
"(Set in the $TX,"Numbers 11",HTML="http://www.biblegateway.com/passage/?search=Numbers%%%%2011&version=NIV"$ "
"part of the story.)\n"
"Moses says, \"\"\n"
"God says, \"\"\n";
}
return TRUE; return TRUE;
case SC_F6: case SC_F6:
if (sc&SCF_SHIFT) { if (sc&SCF_SHIFT) {
@@ -159,20 +147,15 @@ Bool MyPutKey(I64 ch,I64 sc)
return TRUE; return TRUE;
case SC_F7: case SC_F7:
if (sc&SCF_SHIFT) { if (sc&SCF_SHIFT) {
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /NISTGodMisc2");
else
NISTGodMisc2;
} else {
if (sc&SCF_KEY_DESC) if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /God Misc"); KeyDescSet("Cmd /God Misc");
else else
GodMisc; GodMisc;
} else {
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /God Doodle File");
else {
st1=PopUpPickFile;
st2=FileRead(st1);
GodDoodle(st2);
Free(st2);
Free(st1);
}
} }
return TRUE; return TRUE;
case SC_F8: case SC_F8:
+1 -1
View File
@@ -7,7 +7,7 @@ Option(OPTf_WARN_DUP_TYPES,ON);
KbdTypeMatic(0); KbdTypeMatic(0);
// Las Vegas is -7 during summer, -8 during winter // Las Vegas is -7 during summer, -8 during winter
local_time_offset=-7*60*60*CDATE_FREQ; //Pacific local_time_offset=-8*60*60*CDATE_FREQ; //Pacific
// Remember you can set the time in the BIOS. // Remember you can set the time in the BIOS.
//$AN,"",A="mouse_move_scale"$adjust these to set mouse move scale //$AN,"",A="mouse_move_scale"$adjust these to set mouse move scale
+1 -1
View File
@@ -44,4 +44,4 @@ if (DrvIsWritable(':')) {
StartUpTasks; StartUpTasks;
"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time; "\nTempleOS V%5.3f\t%D %T\n\n",sys_os_version,sys_compile_time,sys_compile_time;
+42 -76
View File
@@ -5,11 +5,11 @@ $MA,"Adam ",LM="Cd(\"/Adam\");Dir;\n"$$MA,"AutoComp",LM="Cd(\"/Adam/AutoCompl
$LK+X,"ChangeLg",A="FI:::/Doc/ChangeLog.DD"$$MA,"Blog ",LM="Blog;\n"$$MA,"EdGod ",LM="Ed(\"D:/Home/God.DD\");\n"$$MA,"BlogDir ",LM="Cd(\"/Home/Web/TAD/BlogDir\");Dir;\n"$$MA,"Partial ",LM="MakeWebSitePartial;\n"$$MA,"CodeWalk",LM="CodeWalkThru;\n"$$MA,"AfterEgp",LM="AfterEgyptInAction;\n"$$MA,"TOSTheme",LM="TempleOSTheme;\n"$$MA,"Videos ",LM="Cd(\"/Home/Sup1/Sup1Videos\");Dir;\n"$ $LK+X,"ChangeLg",A="FI:::/Doc/ChangeLog.DD"$$MA,"Blog ",LM="Blog;\n"$$MA,"EdGod ",LM="Ed(\"D:/Home/God.DD\");\n"$$MA,"BlogDir ",LM="Cd(\"/Home/Web/TAD/BlogDir\");Dir;\n"$$MA,"Partial ",LM="MakeWebSitePartial;\n"$$MA,"CodeWalk",LM="CodeWalkThru;\n"$$MA,"AfterEgp",LM="AfterEgyptInAction;\n"$$MA,"TOSTheme",LM="TempleOSTheme;\n"$$MA,"Videos ",LM="Cd(\"/Home/Sup1/Sup1Videos\");Dir;\n"$
$MA,"Web ",LM="Cd(\"/Home/Web\");Dir;\n"$$MA,"TAD ",LM="Cd(\"/Home/Web/TAD\");Dir;\n"$$MA,"Sup1 ",LM="Cd(\"/Home/Sup1\");Dir;\n"$$MA,"Blog ",LM="Cd(\"/Home/Sup1/Sup1Blog\");Dir;\n"$$MA,"Code ",LM="Cd(\"/Home/Sup1/Sup1CodeScraps\");Dir;\n"$$MA,"Dist ",LM="Cd(\"/Home/Sup1/Sup1Distro\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Home/Sup1/Sup1Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Home/Sup1/Sup1Graphics\");Dir;\n"$$MA,"Psalmody",LM="Cd(\"/Home/Sup1/Sup1Psalmody\");Dir;\n"$$MA,"Utils ",LM="Cd(\"/Home/Sup1/Sup1Utils\");Dir;\n"$ $MA,"Web ",LM="Cd(\"/Home/Web\");Dir;\n"$$MA,"TAD ",LM="Cd(\"/Home/Web/TAD\");Dir;\n"$$MA,"Sup1 ",LM="Cd(\"/Home/Sup1\");Dir;\n"$$MA,"Blog ",LM="Cd(\"/Home/Sup1/Sup1Blog\");Dir;\n"$$MA,"Code ",LM="Cd(\"/Home/Sup1/Sup1CodeScraps\");Dir;\n"$$MA,"Dist ",LM="Cd(\"/Home/Sup1/Sup1Distro\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Home/Sup1/Sup1Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Home/Sup1/Sup1Graphics\");Dir;\n"$$MA,"Psalmody",LM="Cd(\"/Home/Sup1/Sup1Psalmody\");Dir;\n"$$MA,"Utils ",LM="Cd(\"/Home/Sup1/Sup1Utils\");Dir;\n"$
$MA,"Apps ",LM="Cd(\"/Apps\");Dir;\n"$$MA,"AfterEgp",LM="Cd(\"/Apps/AfterEgypt\");Dir;\n"$$MA,"Budget ",LM="Cd(\"/Apps/Budget\");Dir;\n"$$MA,"GrModels",LM="Cd(\"/Apps/GrModels\");Dir;\n"$$MA,"KeepAway",LM="Cd(\"/Apps/KeepAway\");Dir;\n"$$MA,"Logic ",LM="Cd(\"/Apps/Logic\");Dir;\n"$$MA,"Psalmody",LM="Cd(\"/Apps/Psalmody\");Dir;\n"$$MA,"Span ",LM="Cd(\"/Apps/Span\");Dir;\n"$$MA,"Strut ",LM="Cd(\"/Apps/Strut\");Dir;\n"$$MA,"TimeClk ",LM="Cd(\"/Apps/TimeClock\");Dir;\n"$ $MA,"Apps ",LM="Cd(\"/Apps\");Dir;\n"$$MA,"AfterEgp",LM="Cd(\"/Apps/AfterEgypt\");Dir;\n"$$MA,"Budget ",LM="Cd(\"/Apps/Budget\");Dir;\n"$$MA,"GrModels",LM="Cd(\"/Apps/GrModels\");Dir;\n"$$MA,"KeepAway",LM="Cd(\"/Apps/KeepAway\");Dir;\n"$$MA,"Logic ",LM="Cd(\"/Apps/Logic\");Dir;\n"$$MA,"Psalmody",LM="Cd(\"/Apps/Psalmody\");Dir;\n"$$MA,"Span ",LM="Cd(\"/Apps/Span\");Dir;\n"$$MA,"Strut ",LM="Cd(\"/Apps/Strut\");Dir;\n"$$MA,"TimeClk ",LM="Cd(\"/Apps/TimeClock\");Dir;\n"$
$MA,"TimeOut ",LM="Cd(\"/Apps/TimeOut\");Dir;\n"$$MA,"ToTheFrt",LM="Cd(\"/Apps/ToTheFront\");Dir;\n"$$MA,"Vocab ",LM="Cd(\"/Apps/Vocabulary\");Dir;\n"$$MA,"XCaliber",LM="Cd(\"/Apps/X-Caliber\");Dir;\n"$$SP,"",BI=1$ $MA,"TimeOut ",LM="Cd(\"/Apps/TimeOut\");Dir;\n"$$MA,"ToTheFrt",LM="Cd(\"/Apps/ToTheFront\");Dir;\n"$$MA,"Vocab ",LM="Cd(\"/Apps/Vocabulary\");Dir;\n"$$MA,"XCaliber",LM="Cd(\"/Apps/X-Caliber\");Dir;\n"$
$MA,"Demo ",LM="Cd(\"/Demo\");Dir;\n"$$MA,"AcctEmpl",LM="Cd(\"/Demo/AcctExample\");Dir;\n"$$MA,"Asm ",LM="Cd(\"/Demo/Asm\");Dir;\n"$$MA,"DocDoc ",LM="Cd(\"/Demo/DolDoc\");Dir;\n"$$MA,"Dsk ",LM="Cd(\"/Demo/Dsk\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Demo/Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Demo/Graphics\");Dir;\n"$$MA,"InFile ",LM="Cd(\"/Demo/InFile\");Dir;\n"$$MA,"Lectures",LM="Cd(\"/Demo/Lectures\");Dir;\n"$$MA,"MultCore",LM="Cd(\"/Demo/MultiCore\");Dir;\n"$ $MA,"Demo ",LM="Cd(\"/Demo\");Dir;\n"$$MA,"AcctEmpl",LM="Cd(\"/Demo/AcctExample\");Dir;\n"$$MA,"Asm ",LM="Cd(\"/Demo/Asm\");Dir;\n"$$MA,"DocDoc ",LM="Cd(\"/Demo/DolDoc\");Dir;\n"$$MA,"Dsk ",LM="Cd(\"/Demo/Dsk\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Demo/Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Demo/Graphics\");Dir;\n"$$MA,"InFile ",LM="Cd(\"/Demo/InFile\");Dir;\n"$$MA,"Lectures",LM="Cd(\"/Demo/Lectures\");Dir;\n"$$MA,"MultCore",LM="Cd(\"/Demo/MultiCore\");Dir;\n"$
$MA,"RevFile ",LM="Cd(\"/Demo/RevFileDemo\");Dir;\n"$$MA,"Snd ",LM="Cd(\"/Demo/Snd\");Dir;\n"$$MA,"SortFile",LM="Cd(\"/Demo/SortFileDemo\");Dir;\n"$$MA,"Template",LM="Cd(\"/Demo/Templates\");Dir;\n"$$MA,"HtmlTXT ",LM="Cd(\"/Demo/ToHtmlToTXTDemo\");Dir;\n"$$MA,"WebLog ",LM="Cd(\"/Demo/WebLogDemo\");Dir;\n"$$MA,"Stadium ",LM="Cd(\"/Demo/Games/Stadium\");Dir;\n"$ $MA,"RevFile ",LM="Cd(\"/Demo/RevFileDemo\");Dir;\n"$$MA,"Snd ",LM="Cd(\"/Demo/Snd\");Dir;\n"$$MA,"SortFile",LM="Cd(\"/Demo/SortFileDemo\");Dir;\n"$$MA,"Template",LM="Cd(\"/Demo/Templates\");Dir;\n"$$MA,"HtmlTXT ",LM="Cd(\"/Demo/ToHtmlToTXTDemo\");Dir;\n"$$MA,"WebLog ",LM="Cd(\"/Demo/WebLogDemo\");Dir;\n"$$MA,"Stadium ",LM="Cd(\"/Demo/Games/Stadium\");Dir;\n"$
$MA,"Doc ",LM="Cd(\"/Doc\");Dir;\n"$$MA,"Misc ",LM="Cd(\"/Misc\");Dir;\n"$$MA,"Tour ",LM="Cd(\"/Misc/Tour\");Dir;\n"$$MA,"Tmp ",LM="Cd(\"/Tmp\");Dir;\n"$$MA,"ScrnShot",LM="Cd(\"/Tmp/ScrnShots\");Dir;\n"$$MA,"DelScrSt",LM="Del(\"D:/Tmp/*.SND\");DelTree(\"D:/Tmp/ScrnShots\");MkDir(\"D:/Tmp/ScrnShots\");Del(\"C:/Tmp/*.SND\");DelTree(\"C:/Tmp/ScrnShots\");MkDir(\"C:/Tmp/ScrnShots\");\n"$$MA,"0000Boot",LM="Cd(\"/0000Boot\");Dir;\n"$$MA,"Linux ",LM="Cd(\"/Linux\");Dir;\n"$ $MA,"Doc ",LM="Cd(\"/Doc\");Dir;\n"$$MA,"Misc ",LM="Cd(\"/Misc\");Dir;\n"$$MA,"Tour ",LM="Cd(\"/Misc/Tour\");Dir;\n"$$MA,"Tmp ",LM="Cd(\"/Tmp\");Dir;\n"$$MA,"ScrnShot",LM="Cd(\"/Tmp/ScrnShots\");Dir;\n"$$MA,"DelScrSt",LM="Del(\"D:/Tmp/*.SND\");DelTree(\"D:/Tmp/ScrnShots\");MkDir(\"D:/Tmp/ScrnShots\");Del(\"C:/Tmp/*.SND\");DelTree(\"C:/Tmp/ScrnShots\");MkDir(\"C:/Tmp/ScrnShots\");\n"$$MA,"0000Boot",LM="Cd(\"/0000Boot\");Dir;\n"$$MA,"Linux ",LM="Cd(\"/Linux\");Dir;\n"$
$MA,"LinxDict",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/LinuxDict.TXT**\\\");\");\n"$$MA,"August ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/AugustWords.TXT**\\\");\");\n"$$MA,"Happy ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HappyWords.TXT*\\\");\");\n"$$MA,"Bible ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/BibleWords.TXT*\\\");\");\n"$$MA,"Huck ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HuckWords.TXT*\\\");\");\n"$$MA,"Ingreds ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Ingredients.TXT*\\\");\");\n"$$MA,"Chess ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Chess.DD*\\\");\");\n"$$MA,"Texts ",LM="Cd(\"/Home/Sup1/Sup1Texts\");Dir;\n"$$MA,"Words ",LM="Cd(\"/Home/Sup1/Sup1Words\");Dir;\n"$ $MA,"LinxDict",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/LinuxDict.TXT**\\\");\");\n"$$MA,"August ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/AugustWords.TXT**\\\");\");\n"$$MA,"Happy ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HappyWords.TXT*\\\");\");\n"$$MA,"Yiddish ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Yiddish.TXT*\\\");\");\n"$$MA,"Bible ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/BibleWords.TXT*\\\");\");\n"$$MA,"Huck ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HuckWords.TXT*\\\");\");\n"$$MA,"Ingreds ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Ingredients.TXT*\\\");\");\n"$$MA,"Chess ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Chess.DD*\\\");\");\n"$$MA,"Texts ",LM="Cd(\"/Home/Sup1/Sup1Texts\");Dir;\n"$$MA,"Words ",LM="Cd(\"/Home/Sup1/Sup1Words\");Dir;\n"$
$MA,"MakeStd ",LM="MakeStdDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSCD.ISO\");\n"$$MA,"MakeStRS",LM="MakeStdRedSeaDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_C_NAME,\"D:/Wb/TempleOSCDRS.ISO\");\n"$$MA,"MakeUlt ",LM="MakeUltraDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSUltra.ISO\");\n"$$MA,"MakeUtRS",LM="MakeUltraRedSeaDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_C_NAME,\"D:/Wb/TempleOSUltraRS.ISO\");\n"$$MA,"MakeStaf",LM="MakeStaffDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSStaff.ISO\");\n"$$MA,"MakeDbg ",LM="MakeDbgDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSDbg.ISO\");\n"$ $MA,"MakeStd ",LM="MakeStdDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSCD.ISO\");\n"$$MA,"MakeStRS",LM="MakeStdRedSeaDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_C_NAME,\"D:/Wb/TempleOSCDRS.ISO\");\n"$$MA,"MakeUlt ",LM="MakeUltraDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSUltra.ISO\");\n"$$MA,"MakeUtRS",LM="MakeUltraRedSeaDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_C_NAME,\"D:/Wb/TempleOSUltraRS.ISO\");\n"$$MA,"MakeStaf",LM="MakeStaffDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSStaff.ISO\");\n"$$MA,"MakeDbg ",LM="MakeDbgDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSDbg.ISO\");\n"$
$MA,"BurnStd ",LM="MakeStdDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnStRS",LM="MakeStdRedSeaDistro;DVDImageWrite('T',TOS_ISO_C_NAME);\n"$$MA,"BurnUlt ",LM="MakeUltraDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnUtRS",LM="MakeUltraRedSeaDistro;DVDImageWrite('T',TOS_ISO_C_NAME);\n"$$MA,"BurnStaf",LM="MakeStaffDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnDbg ",LM="MakeDbgDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$ $MA,"BurnStd ",LM="MakeStdDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnStRS",LM="MakeStdRedSeaDistro;DVDImageWrite('T',TOS_ISO_C_NAME);\n"$$MA,"BurnUlt ",LM="MakeUltraDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnUtRS",LM="MakeUltraRedSeaDistro;DVDImageWrite('T',TOS_ISO_C_NAME);\n"$$MA,"BurnStaf",LM="MakeStaffDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnDbg ",LM="MakeDbgDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$
@@ -21,7 +21,7 @@ $MA,"BurnStd ",LM="MakeStdDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnSt
$SP+PU," Egypt",LM="#include \"::/Apps/AfterEgypt/Run\"",BI=2$ $SP+PU,"Frankenstein",LM="#include \"::/Demo/Games/CastleFrankenstein\"",BI=3$ $SP+PU,"ZoneOut",LM="#include \"::/Demo/Games/ZoneOut\"",BI=4$ $SP+PU," Egypt",LM="#include \"::/Apps/AfterEgypt/Run\"",BI=1$ $SP+PU,"Frankenstein",LM="#include \"::/Demo/Games/CastleFrankenstein\"",BI=2$ $SP+PU,"ZoneOut",LM="#include \"::/Demo/Games/ZoneOut\"",BI=3$
@@ -30,14 +30,14 @@ $SP+PU," Egypt",LM="#include \"::/Apps/AfterEgypt/Run\"",BI=2$ $SP+PU,"Frankenst
$SP+PU,"Varoom",LM="#include \"::/Demo/Games/Varoom\"",BI=5$ $SP+PU,"Diamond",LM="#include \"::/Demo/Games/BlackDiamond\"",BI=6$ $SP+PU,"Lines",LM="#include \"::/Demo/Games/BattleLines\"",BI=7$ $SP+PU,"TimeOut",LM="#include \"::/Apps/TimeOut/Run\"",BI=8$ $SP+PU," Bat",LM="#include \"::/Demo/Games/FlapBat\"",BI=9$ $SP+PU,"Varoom",LM="#include \"::/Demo/Games/Varoom\"",BI=4$ $SP+PU,"Diamond",LM="#include \"::/Demo/Games/BlackDiamond\"",BI=5$ $SP+PU,"Lines",LM="#include \"::/Demo/Games/BattleLines\"",BI=6$ $SP+PU,"TimeOut",LM="#include \"::/Apps/TimeOut/Run\"",BI=7$ $SP+PU," Bat",LM="#include \"::/Demo/Games/FlapBat\"",BI=8$
$SP+PU,"FlatTops",LM="#include \"::/Demo/Games/FlatTops\"",BI=10$ $SP+PU," Golf ",LM="#include \"::/Demo/Games/BomberGolf\"",BI=11$ $SP+PU,"Strut",LM="#include \"::/Apps/Strut/Run\"",BI=12$ $SP+PU,"TheDead",LM="#include \"::/Demo/Games/TheDead\"",BI=13$ $SP+PU,"DunGen",LM="#include \"::/Demo/Games/DunGen\"",BI=14$ $SP+PU,"FlatTops",LM="#include \"::/Demo/Games/FlatTops\"",BI=9$ $SP+PU," Golf ",LM="#include \"::/Demo/Games/BomberGolf\"",BI=10$ $SP+PU,"Strut",LM="#include \"::/Apps/Strut/Run\"",BI=11$ $SP+PU,"TheDead",LM="#include \"::/Demo/Games/TheDead\"",BI=12$ $SP+PU,"DunGen",LM="#include \"::/Demo/Games/DunGen\"",BI=13$
@@ -45,7 +45,7 @@ $SP+PU,"FlatTops",LM="#include \"::/Demo/Games/FlatTops\"",BI=10$ $SP+PU," Golf
$SP+PU,"EagleDive",LM="#include \"::/Demo/Games/EagleDive\"",BI=15$ $SP+PU," Span ",LM="#include \"::/Apps/Span/Run\"",BI=16$ $SP+PU,"RawHide",LM="#include \"::/Demo/Games/RawHide\"\n",BI=17$ $SP+PU,"KeepAway",LM="#include \"::/Apps/KeepAway/Run\"",BI=18$ $SP+PU," Talons",LM="#include \"::/Demo/Games/Talons\"",BI=14$ $SP+PU," Span ",LM="#include \"::/Apps/Span/Run\"",BI=15$ $SP+PU,"RawHide",LM="#include \"::/Demo/Games/RawHide\"\n",BI=16$ $SP+PU,"KeepAway",LM="#include \"::/Apps/KeepAway/Run\"",BI=17$
@@ -56,7 +56,7 @@ $SP+PU,"EagleDive",LM="#include \"::/Demo/Games/EagleDive\"",BI=15$ $SP+PU," Spa
$SP+PU,"X-Caliber",LM="#include \"::/Apps/X-Caliber/Run\"",BI=19$ $SP+PU,"ToTheFront",LM="#include \"::/Apps/ToTheFront/Run\"",BI=20$ $SP+PU,"Wenceslas",LM="#include \"::/Demo/Games/Wenceslas\"",BI=21$ $SP+PU,"X-Caliber",LM="#include \"::/Apps/X-Caliber/Run\"",BI=18$ $SP+PU,"ToTheFront",LM="#include \"::/Apps/ToTheFront/Run\"",BI=19$ $SP+PU,"Wenceslas",LM="#include \"::/Demo/Games/Wenceslas\"",BI=20$
@@ -66,24 +66,24 @@ $SP+PU,"X-Caliber",LM="#include \"::/Apps/X-Caliber/Run\"",BI=19$ $SP+PU,"ToTheF
$SP+PU,"JukeBox",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");",BI=22$ $SP+PU,"Psalmody",LM="#include \"::/Apps/Psalmody/Run\";",BI=23$ $SP+PU,"Logic",LM="#include \"::/Apps/Logic/Run\"",BI=24$ $SP+PU,"Models",LM="#include \"::/Apps/GrModels/Run\";View;",BI=25$ $SP+PU,"Vocab",LM="#include \"::/Apps/Vocabulary/Run\"",BI=26$ $SP+PU,"JukeBox",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");",BI=21$ $SP+PU,"Psalmody",LM="#include \"::/Apps/Psalmody/Run\";",BI=22$ $SP+PU,"Logic",LM="#include \"::/Apps/Logic/Run\"",BI=23$ $SP+PU,"Models",LM="#include \"::/Apps/GrModels/Run\";View;",BI=24$ $SP+PU,"Vocab",LM="#include \"::/Apps/Vocabulary/Run\"",BI=25$
$SP+PU,"BigGuns",LM="#include \"::/Demo/Games/BigGuns\"",BI=27$ $SP+PU,"Budget",LM="#include \"::/Apps/Budget/Run\"",BI=28$ $SP+PU,"Digits",LM="#include \"::/Demo/Games/Digits\"",BI=29$ $SP+PU,"Checkers",LM="#include \"::/Demo/Games/TreeCheckers.HC.Z\"",BI=30$ $SP+PU,"BigGuns",LM="#include \"::/Demo/Games/BigGuns\"",BI=26$ $SP+PU,"Budget",LM="#include \"::/Apps/Budget/Run\"",BI=27$ $SP+PU,"Digits",LM="#include \"::/Demo/Games/Digits\"",BI=28$ $SP+PU,"Checkers",LM="#include \"::/Demo/Games/TreeCheckers.HC.Z\"",BI=29$
$MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"::/Misc/Tour\");;InFile(\"Tour\");\n"$$MA+PU,"PsalSup1",LM="#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup1/Sup1Psalmody\");"$$MA,"Comics ",LM="Cd(\"/Home/Sup1/Sup1Comics\");Dir;\n"$$MA-X+PU,"SymAlpha",LM="DocMax;Who;View;"$$MA-X+PU,"SymNum ",LM="DocMax;Who(\"+m\");View;"$ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"::/Misc/Tour\");;InFile(\"Tour\");\n"$$MA+PU,"PsalSup1",LM="#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup1/Sup1Psalmody\");"$$MA,"Comics ",LM="Cd(\"/Home/Sup1/Sup1Comics\");Dir;\n"$$MA-X+PU,"SymAlpha",LM="DocMax;Who;View;"$$MA-X+PU,"SymNum ",LM="DocMax;Who(\"+m\");View;"$
yÓÿÿÿÜÿÿÿ<H÷ÿÿÿ'ûÿÿÿ÷ÿÿÿõÿÿÿüÿÿÿ õÿÿÿ'ûÿÿÿ ' yÓÿÿÿÜÿÿÿ<H÷ÿÿÿ'ûÿÿÿ÷ÿÿÿõÿÿÿüÿÿÿ õÿÿÿ'ûÿÿÿ '
č˙˙˙ň˙˙˙č˙˙˙ü˙˙˙č˙˙˙č˙˙˙á˙˙˙ú˙˙˙á˙˙˙ú˙˙˙ č˙˙˙á˙˙˙č˙˙˙ü˙˙˙č˙˙˙ň˙˙˙č˙˙˙ü˙˙˙ú˙˙˙ő˙˙˙÷˙˙˙  $$÷˙˙˙$ő˙˙˙$ č˙˙˙ő˙˙˙č˙˙˙ň˙˙˙ü˙˙˙ő˙˙˙ü˙˙˙ ü˙˙˙é˙˙˙ ü˙˙˙é˙˙˙ ˙˙˙˙é˙˙˙ ˙˙˙˙é˙˙˙ő˙˙˙˙˙˙˙ň˙˙˙˙˙˙˙ű˙˙˙ă˙˙˙ý˙˙˙ĺ˙˙˙ă˙˙˙˙˙˙˙ă˙˙˙ĺ˙˙˙ú˙˙˙á˙˙˙ţ˙˙˙ă˙˙˙ő˙˙˙$÷˙˙˙$÷˙˙˙' $$ő˙˙˙'' č˙˙˙ň˙˙˙č˙˙˙ü˙˙˙č˙˙˙č˙˙˙á˙˙˙ú˙˙˙á˙˙˙ú˙˙˙ č˙˙˙á˙˙˙č˙˙˙ü˙˙˙č˙˙˙ň˙˙˙č˙˙˙ü˙˙˙ú˙˙˙ő˙˙˙÷˙˙˙  $$÷˙˙˙$ő˙˙˙$ č˙˙˙ő˙˙˙č˙˙˙ň˙˙˙ü˙˙˙ő˙˙˙ü˙˙˙ ü˙˙˙é˙˙˙ ü˙˙˙é˙˙˙ ˙˙˙˙é˙˙˙ ˙˙˙˙é˙˙˙ő˙˙˙˙˙˙˙ň˙˙˙˙˙˙˙ű˙˙˙ă˙˙˙ý˙˙˙ĺ˙˙˙ă˙˙˙˙˙˙˙ă˙˙˙ĺ˙˙˙ú˙˙˙á˙˙˙ţ˙˙˙ă˙˙˙ő˙˙˙$÷˙˙˙$÷˙˙˙' $$ő˙˙˙''
' ' ' '
     !!&''"#%$$#       !      !!&''"#%$$#       !
 
 
 $%*$*+'&('()&(( $++  $%*$*+'&('()&(( $++
0/.112-,7 765343! 3 45833!839;:7;766;;1  ¸ÿÿÿøÿÿÿCastle¾éÿÿÿâÿÿÿ6R äÿÿÿ äÿÿÿ îÿÿÿ îÿÿÿ  ôÿÿÿÛÿÿÿ ôÿÿÿÛÿÿÿ äÿÿÿÛÿÿÿÛÿÿÿôÿÿÿäÿÿÿîÿÿÿîÿÿÿôÿÿÿ ÷ÿÿÿ ûÿÿÿ îÿÿÿ éÿÿÿ  óÿÿÿõÿÿÿäÿÿÿõÿÿÿäÿÿÿõÿÿÿîÿÿÿõÿÿÿîÿÿÿõÿÿÿôÿÿÿÛÿÿÿõÿÿÿôÿÿÿÛÿÿÿõÿÿÿñÿÿÿäÿÿÿñÿÿÿÛÿÿÿñÿÿÿÛÿÿÿñÿÿÿôÿÿÿäÿÿÿñÿÿÿîÿÿÿñÿÿÿîÿÿÿñÿÿÿôÿÿÿñÿÿÿõÿÿÿ÷ÿÿÿõÿÿÿûÿÿÿõÿÿÿîÿÿÿõÿÿÿéÿÿÿõÿÿÿéÿÿÿõÿÿÿóÿÿÿõÿÿÿóÿÿÿéÿÿÿ óÿÿÿõÿÿÿÿÿÿÿ 0/.112-,7 765343! 3 45833!839;:7;766;;1  ¸ÿÿÿøÿÿÿCastle¾éÿÿÿâÿÿÿ6R äÿÿÿ äÿÿÿ îÿÿÿ îÿÿÿ  ôÿÿÿÛÿÿÿ ôÿÿÿÛÿÿÿ äÿÿÿÛÿÿÿÛÿÿÿôÿÿÿäÿÿÿîÿÿÿîÿÿÿôÿÿÿ ÷ÿÿÿ ûÿÿÿ îÿÿÿ éÿÿÿ  óÿÿÿõÿÿÿäÿÿÿõÿÿÿäÿÿÿõÿÿÿîÿÿÿõÿÿÿîÿÿÿõÿÿÿôÿÿÿÛÿÿÿõÿÿÿôÿÿÿÛÿÿÿõÿÿÿñÿÿÿäÿÿÿñÿÿÿÛÿÿÿñÿÿÿÛÿÿÿñÿÿÿôÿÿÿäÿÿÿñÿÿÿîÿÿÿñÿÿÿîÿÿÿñÿÿÿôÿÿÿñÿÿÿõÿÿÿ÷ÿÿÿõÿÿÿûÿÿÿõÿÿÿîÿÿÿõÿÿÿéÿÿÿõÿÿÿéÿÿÿõÿÿÿóÿÿÿõÿÿÿóÿÿÿéÿÿÿ óÿÿÿõÿÿÿÿÿÿÿ
 
˙˙˙˙*˙˙˙˙ ˙˙˙˙*˙˙˙˙
* *
@@ -91,9 +91,9 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
             
   
 
    $"$#"!  !"!#"$#! !    "!"%++&%%'&&(''(()),),**,*+-$$-$'()')&3/..232.11523400/3451104-"V ëÿÿÿçÿÿÿ`Œúÿÿÿ úÿÿÿ úÿÿÿúÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿ      ðÿÿÿúÿÿÿöÿÿÿúÿÿÿöÿÿÿúÿÿÿðÿÿÿúÿÿÿóÿÿÿÿÿÿÿóÿÿÿÿÿÿÿ ÿÿÿÿ ÷ÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿóÿÿÿÿÿÿÿóÿÿÿÿÿÿÿÿÿÿÿðÿÿÿöÿÿÿöÿÿÿðÿÿÿóÿÿÿóÿÿÿ ÷ÿÿÿ÷ÿÿÿóÿÿÿóÿÿÿúÿÿÿäÿÿÿ úÿÿÿäÿÿÿ úÿÿÿïÿÿÿúÿÿÿïÿÿÿ ùÿÿÿâÿÿÿ ùÿÿÿßÿÿÿùÿÿÿßÿÿÿùÿÿÿâÿÿÿùÿÿÿñÿÿÿ ùÿÿÿñÿÿÿ ÿÿÿÿÿÿÿÿäÿÿÿ äÿÿÿ ïÿÿÿïÿÿÿ âÿÿÿ ßÿÿÿßÿÿÿâÿÿÿñÿÿÿ ñÿÿÿ ðÿÿÿúÿÿÿäÿÿÿöÿÿÿúÿÿÿäÿÿÿöÿÿÿúÿÿÿïÿÿÿðÿÿÿúÿÿÿïÿÿÿóÿÿÿùÿÿÿâÿÿÿóÿÿÿùÿÿÿßÿÿÿùÿÿÿßÿÿÿ÷ÿÿÿùÿÿÿâÿÿÿ÷ÿÿÿùÿÿÿñÿÿÿóÿÿÿùÿÿÿñÿÿÿóÿÿÿÿÿÿÿÿÿÿÿðÿÿÿäÿÿÿöÿÿÿäÿÿÿöÿÿÿïÿÿÿðÿÿÿïÿÿÿóÿÿÿâÿÿÿóÿÿÿßÿÿÿßÿÿÿ÷ÿÿÿâÿÿÿ÷ÿÿÿñÿÿÿóÿÿÿñÿÿÿóÿÿÿ            $"$#"!  !"!#"$#! !    "!"%++&%%'&&(''(()),),**,*+-$$-$'()')&3/..232.11523400/3451104-"V ëÿÿÿçÿÿÿ`Œúÿÿÿ úÿÿÿ úÿÿÿúÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿ      ðÿÿÿúÿÿÿöÿÿÿúÿÿÿöÿÿÿúÿÿÿðÿÿÿúÿÿÿóÿÿÿÿÿÿÿóÿÿÿÿÿÿÿ ÿÿÿÿ ÷ÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿóÿÿÿÿÿÿÿóÿÿÿÿÿÿÿÿÿÿÿðÿÿÿöÿÿÿöÿÿÿðÿÿÿóÿÿÿóÿÿÿ ÷ÿÿÿ÷ÿÿÿóÿÿÿóÿÿÿúÿÿÿäÿÿÿ úÿÿÿäÿÿÿ úÿÿÿïÿÿÿúÿÿÿïÿÿÿ ùÿÿÿâÿÿÿ ùÿÿÿßÿÿÿùÿÿÿßÿÿÿùÿÿÿâÿÿÿùÿÿÿñÿÿÿ ùÿÿÿñÿÿÿ ÿÿÿÿÿÿÿÿäÿÿÿ äÿÿÿ ïÿÿÿïÿÿÿ âÿÿÿ ßÿÿÿßÿÿÿâÿÿÿñÿÿÿ ñÿÿÿ ðÿÿÿúÿÿÿäÿÿÿöÿÿÿúÿÿÿäÿÿÿöÿÿÿúÿÿÿïÿÿÿðÿÿÿúÿÿÿïÿÿÿóÿÿÿùÿÿÿâÿÿÿóÿÿÿùÿÿÿßÿÿÿùÿÿÿßÿÿÿ÷ÿÿÿùÿÿÿâÿÿÿ÷ÿÿÿùÿÿÿñÿÿÿóÿÿÿùÿÿÿñÿÿÿóÿÿÿÿÿÿÿÿÿÿÿðÿÿÿäÿÿÿöÿÿÿäÿÿÿöÿÿÿïÿÿÿðÿÿÿïÿÿÿóÿÿÿâÿÿÿóÿÿÿßÿÿÿßÿÿÿ÷ÿÿÿâÿÿÿ÷ÿÿÿñÿÿÿóÿÿÿñÿÿÿóÿÿÿ       
         
$%&&'$%$$$'$%%&&'&#!"!# #     /-.-/,/*,,*++)(+*)+(+ + +(!.-.!" + + ,*)*<=>>?<1033211=<<01<?330<1=2=>2>233?>;9:9;8867754765GEFEGDGBDDBCCA@CBA4C@C474C7C4@9FEF9:8C7C8D5BAB56TUVVWTIHKKJIIUTTHITWKKHTIUJUVJVJKKWVSRQQPSPONOLMOMN_^]]\__\Z\[Z[XY[YZLX[[OLLO[[XLQ]^^RQPO[[\PMYZZNM P88P654@@A5LMYYXLC ÐÿÿÿøÿÿÿBlackÒÿÿÿÄÿÿÿ#4ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ      ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôáÿÿÿÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÔÿÿÿøÿÿÿBattleâ ÌÿÿÿÉÿÿÿ66ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated $%&&'$%$$$'$%%&&'&#!"!# #     /-.-/,/*,,*++)(+*)+(+ + +(!.-.!" + + ,*)*<=>>?<1033211=<<01<?330<1=2=>2>233?>;9:9;8867754765GEFEGDGBDDBCCA@CBA4C@C474C7C4@9FEF9:8C7C8D5BAB56TUVVWTIHKKJIIUTTHITWKKHTIUJUVJVJKKWVSRQQPSPONOLMOMN_^]]\__\Z\[Z[XY[YZLX[[OLLO[[XLQ]^^RQPO[[\PMYZZNM P88P654@@A5LMYYXLC ÐÿÿÿøÿÿÿBlackÒÿÿÿÄÿÿÿ#4ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ      ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôáÿÿÿÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÔÿÿÿøÿÿÿBattle¾Úÿÿÿâÿÿÿ6R äÿÿÿ äÿÿÿ îÿÿÿ îÿÿÿ  ôÿÿÿÛÿÿÿ ôÿÿÿÛÿÿÿ äÿÿÿÛÿÿÿÛÿÿÿôÿÿÿäÿÿÿîÿÿÿîÿÿÿôÿÿÿ ÷ÿÿÿ ûÿÿÿ îÿÿÿ éÿÿÿ  óÿÿÿõÿÿÿäÿÿÿõÿÿÿäÿÿÿõÿLine truncated
 
˙˙˙˙*˙˙˙˙ ˙˙˙˙*˙˙˙˙
* *
@@ -101,9 +101,9 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
             
   
 
    $"$#"!  !"!#"$#! !    "!"%++&%%'&&(''(()),),**,*+-$$-$'()')&3/..232.11523400/3451104-"´ÿÿÿ²ÿÿÿMPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated     $"$#"!  !"!#"$#! !    "!"%++&%%'&&(''(()),),**,*+-$$-$'()')&3/..232.11523400/3451104-"´ÿÿÿ²ÿÿÿMPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated
ÔÿÿÿÌÿÿÿ4.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿb ÔÿÿÿÌÿÿÿ4.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿb
ÌÿÿÿÆÿÿÿ-7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ rØÿÿÿÚÿÿÿ#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿ ÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ²ÒÿÿÿÞÿÿÿ'$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated ÌÿÿÿÆÿÿÿ-7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ rØÿÿÿÚÿÿÿ#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿ ÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ²ÒÿÿÿÞÿÿÿ'$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated
Ů˙˙˙ę˙˙˙!˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ Ů˙˙˙ę˙˙˙!˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
@@ -345,7 +345,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÕÿÿÿäÿÿÿ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿ ÿÿÿÿÿ ÿÿÿÿ ÿÿ ÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÕÿÿÿäÿÿÿ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿ ÿÿÿÿÿ ÿÿÿÿ ÿÿ ÿÿ 
@@ -397,18 +397,18 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’ÛÿÿÿÀÿÿÿ<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"ÏÿÿÿÑÿÿÿ)+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’ÔÿÿÿÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’ÛÿÿÿÀÿÿÿ<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"ÏÿÿÿÑÿÿÿ)+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’ÔÿÿÿÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated
ţ˙˙˙ ű˙˙˙ţ˙˙˙ü˙˙˙ ˙˙˙˙ ű˙˙˙ ţ˙˙˙ ü˙˙˙˙˙˙˙˙˙˙˙ ű˙˙˙ ú˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙ů˙˙˙ ř˙˙˙˙˙˙˙ ţ˙˙˙ ű˙˙˙ţ˙˙˙ü˙˙˙ ˙˙˙˙ ű˙˙˙ ţ˙˙˙ ü˙˙˙˙˙˙˙˙˙˙˙ ű˙˙˙ ú˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙ů˙˙˙ ř˙˙˙˙˙˙˙
ü˙˙˙ ű˙˙˙ţ˙˙˙ů˙˙˙ř˙˙˙˙˙˙˙ů˙˙˙ ř˙˙˙ţ˙˙˙ö˙˙˙ő˙˙˙ţ˙˙˙ů˙˙˙ř˙˙˙ý˙˙˙ń˙˙˙đ˙˙˙ţ˙˙˙ú˙˙˙ů˙˙˙ý˙˙˙ň˙˙˙ń˙˙˙  ü˙˙˙ ű˙˙˙ţ˙˙˙ů˙˙˙ř˙˙˙˙˙˙˙ů˙˙˙ ř˙˙˙ţ˙˙˙ö˙˙˙ő˙˙˙ţ˙˙˙ů˙˙˙ř˙˙˙ý˙˙˙ń˙˙˙đ˙˙˙ţ˙˙˙ú˙˙˙ů˙˙˙ý˙˙˙ň˙˙˙ń˙˙˙ 
 
           
   
     
      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok êâÿÿÿÐÿÿÿ%%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿ  ÿÿ  ÿÿ ÿ ÿ        ÿÿ   ÿÿ  ÿÿ  ÿÿ  ÿÿÿ  ÿÿÿÿ  ÿÿÿÿ ÿÿÿ  ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ åÿÿÿøÿÿÿFlap „Õÿÿÿáÿÿÿ*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ      ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ     ÿÿÿÿÿÿÿÿÿÿÿÿ        ÿÿÿÿÿÿÿÿÿ      ÿÿÿÿÿÿ    ÿÿÿ      ÿ  ÿÿ    ÿÿ  ÿ  ÿÿÿÿÿ  ÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÑÿÿÿøÿÿÿBomberÒÒÿÿÿÛÿÿÿ0$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated       ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokêâÿÿÿÐÿÿÿ%%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿ  ÿÿ  ÿÿ ÿ ÿ        ÿÿ   ÿÿ  ÿÿ  ÿÿ  ÿÿÿ  ÿÿÿÿ  ÿÿÿÿ ÿÿÿ  ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ åÿÿÿøÿÿÿFlap
’ ÁÿÿÿÑÿÿÿ>.                                                            B¹ÿÿÿÉÿÿÿF6 ÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  „Õÿÿÿáÿÿÿ*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ      ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ     ÿÿÿÿÿÿÿÿÿÿÿÿ        ÿÿÿÿÿÿÿÿÿ      ÿÿÿÿÿÿ    ÿÿÿ      ÿ  ÿÿ    ÿÿ  ÿ  ÿÿÿÿÿ  ÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÑÿÿÿøÿÿÿBomberÒÒÿÿÿÛÿÿÿ0$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ :ÚÿÿÿÝÿÿÿ%!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ’ ÁÿÿÿÑÿÿÿ>.    Line truncated
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
@@ -418,12 +418,12 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
 
˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
 
 
@@ -440,10 +440,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
@@ -454,8 +451,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
 
 
@@ -478,8 +474,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
 
 
@@ -508,10 +503,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
 
@@ -529,10 +521,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
 
 
@@ -553,10 +542,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
 
 
@@ -592,10 +578,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
 
@@ -633,8 +616,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
 
 
@@ -660,8 +642,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
 
 
@@ -689,10 +670,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
@@ -737,10 +715,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
@@ -780,7 +755,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
  
@@ -820,7 +795,7 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
  
@@ -843,25 +818,16 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
   
ÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿ 
ÿÿÿÿÿÿÿ    ÿÿÿÿÿÿÿ   
ÿÿÿÿ     ÿÿ     ÿÿ        ÿ      ÿ                      ÿg ¹ÿÿÿÉÿÿÿþÿÿÿþÿÿÿÀÿÿÿîÿÿÿÈÿÿÿÖÿÿÿìÿÿÿØÿÿÿÜÿÿÿæÿÿÿèÿÿÿôÿÿÿäÿÿÿìÿÿÿâÿÿÿÞÿÿÿÌÿÿÿÜÿÿÿäÿÿÿ€ÿÿÿ ÿÿÿÿ     ÿÿ     ÿÿ        ÿ      ÿ                    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿg ¹ÿÿÿÉÿÿÿþÿÿÿþÿÿÿÀÿÿÿîÿÿÿÈÿÿÿÖÿÿÿìÿÿÿØÿÿÿÜÿÿÿæÿÿÿèÿÿÿôÿÿÿäÿÿÿìÿÿÿâÿÿÿÞÿÿÿÌÿÿÿÜÿÿÿäÿÿÿ€ÿÿÿ
ûÿÿÿöÿÿÿûÿÿÿöÿÿÿûÿÿÿìÿÿÿçÿÿÿöÿÿÿûÿÿÿöÿÿÿ»ÒÿÿÿÛÿÿÿ6ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ØÿÿÿøÿÿÿAfter£ ûÿÿÿöÿÿÿûÿÿÿöÿÿÿûÿÿÿìÿÿÿçÿÿÿöÿÿÿûÿÿÿöÿÿÿ»ÒÿÿÿÛÿÿÿ6ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ØÿÿÿøÿÿÿAfter’ÆÿÿÿÅÿÿÿ?:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated
AÿÿÿØÿÿÿ¿Øÿÿÿ
Aÿÿÿøÿÿÿ¿øÿÿÿ
Aÿÿÿ¿
Aÿÿÿ(¿(
€ÿÿÿØÿÿÿ€ÿÿÿ(
Øÿÿÿ(
€Øÿÿÿ€(
Aÿÿÿèÿÿÿ¿èÿÿÿ
Aÿÿÿ¿
+31 -8
View File
@@ -1,7 +1,7 @@
$WW,1$$FG,5$$TX+CX,"TODO"$$FG$ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* $LK,"::/Demo/RandDemo.HC"$ Rand is kinda crappy. * $LK,"::/Demo/RandDemo.HC"$ is kinda crappy.
* Cursor in $LK,"::/Home/TOSToHtml.HC"$. * Cursor in $LK,"~/TOSToHtml.HC"$.
* Investigate why packet loss $LK,"Training Sleep(1)",A="FF:::/Adam/Training.HC,Sleep(1)"$. * Investigate why packet loss $LK,"Training Sleep(1)",A="FF:::/Adam/Training.HC,Sleep(1)"$.
@@ -9,12 +9,24 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* $LK,"SpriteEd",A="FI:::/Adam/Gr/SpriteEd.HC"$ shift pts, Ctrl pt for ellipse/polygon w,h is off when rotated. * $LK,"SpriteEd",A="FI:::/Adam/Gr/SpriteEd.HC"$ shift pts, Ctrl pt for ellipse/polygon w,h is off when rotated.
* Get rid of $LK,"JobQue",A="MN:JobQue"$() and use just $LK,"Spawn",A="MN:Spawn"$()? Not sure about this, probably.
* Add missiles to $LK,"::/Apps/TimeOut/TimeOut.HC"$.
* Add asteroid harbor defense to $LK,"::/Apps/X-Caliber/X-Caliber.HC"$.
* God said this is bad. $LK,"FL:::/Adam/DolDoc/DocFind.HC,41"$ * God said this is bad. $LK,"FL:::/Adam/DolDoc/DocFind.HC,41"$
* Backward <SHIFT-F3> is broken? * Backward <SHIFT-F3> is broken?
* Cannot include ':' in $LK,"Document Links",A="FF:::/Adam/DolDoc/DocLink.HC,AD"$ search string. * Cannot include ':' in $LK,"Document Links",A="FF:::/Adam/DolDoc/DocLink.HC,AD"$ search string.
* $$DA fixed width string: <Del> or <BACKSPACE> permanently shortens. * $$DA fixed width string: <Del> or <BACKSPACE> permanently shortens.
* 11/19/16 editor took long time after copying old testament onto clipboard and exiting.
* Nestled switch() start/end?
* Editor filter froze.
* Editor overstrike mode at cmd line with menu macro? Probably, many other overstrike issues. * Editor overstrike mode at cmd line with menu macro? Probably, many other overstrike issues.
* $LK,"DOCT_HEX_ED",A="MN:DOCT_HEX_ED"$ with odd size, ASCII cannot be edited. * $LK,"DOCT_HEX_ED",A="MN:DOCT_HEX_ED"$ with odd size, ASCII cannot be edited.
@@ -66,6 +78,8 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* Get rid of JIFFY and HPET and just use tS. * Get rid of JIFFY and HPET and just use tS.
* Use "Rosetta Stone" in documentaion pointing to this: $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$.
* Change %h*c so the character is not a arg? * Change %h*c so the character is not a arg?
* $LK,"GrLineFat3",A="MN:GrLineFat3"$() needs a little work. * $LK,"GrLineFat3",A="MN:GrLineFat3"$() needs a little work.
@@ -117,6 +131,10 @@ $FG,5$$TX+CX,"TODO: Too Hard, or Not Worth Doing."$$FG$
* Short FAT32 ~ names. * Short FAT32 ~ names.
* $LK,"Find",A="MN:Find"$() search text in sprites.
* Links in text in sprites.
* Compiler: Inline functions? * Compiler: Inline functions?
* Compiler: FunPtr local vars? I forgot if this was hard or not. * Compiler: FunPtr local vars? I forgot if this was hard or not.
@@ -170,8 +188,6 @@ $FG,5$$TX+CX,"Bugs? Not really sure."$$FG$
$FG,5$$TX+CX,"TODO? Not really, just angst."$$FG$ $FG,5$$TX+CX,"TODO? Not really, just angst."$$FG$
* Nontimer $LK,"Rand",A="MN:Rand"$() is really bad!
* Should these be moved into $LK,"CHashClass",A="MN:CHashClass"$ from $LK,"CMemberLst",A="MN:CMemberLst"$ and $LK,"CHashGlblVar",A="MN:CHashGlblVar"$? * Should these be moved into $LK,"CHashClass",A="MN:CHashClass"$ from $LK,"CMemberLst",A="MN:CMemberLst"$ and $LK,"CHashGlblVar",A="MN:CHashGlblVar"$?
$ID,5$CArrayDim dim; $ID,5$CArrayDim dim;
CHashFun *fun_ptr; CHashFun *fun_ptr;
@@ -405,13 +421,15 @@ Abundance of Spirits $TX,"1 Corinthians 14:12",HTML="http://www.usccb.org/bibl
The stone rejected is cornerstone $TX,"Matthew 21:42",HTML="http://www.biblegateway.com/verse/en/Matthew%2021:42"$ The stone rejected is cornerstone $TX,"Matthew 21:42",HTML="http://www.biblegateway.com/verse/en/Matthew%2021:42"$
Egypt rise like flood $TX,"Jeremiah 46:7-8",HTML="http://www.biblegateway.com/passage/?search=Jeremiah%2046:7-8&version=NIV"$ Egypt rise like flood $TX,"Jeremiah 46:7-8",HTML="http://www.biblegateway.com/passage/?search=Jeremiah%2046:7-8&version=NIV"$
New wineskins $TX,"Mark 2:22",HTML="http://www.biblegateway.com/verse/en/Mark%202:22"$ New wineskins $TX,"Mark 2:22",HTML="http://www.biblegateway.com/verse/en/Mark%202:22"$
Thousand songs of Solomon $TX,"1 Kings 4:30-32",HTML="http://www.biblegateway.com/passage/?search=1%20Kings%204:30-32&version=NIV"$ Thousand songs of Solomon $TX,"1 Kings 4:32",HTML="http://www.biblegateway.com/passage/?search=1%20Kings%204:32&version=NIV"$
Not rich, nor poor, but my portion $TX,"Proverbs 30:8",HTML="http://www.biblegateway.com/verse/en/Proverbs%2030:8"$
Be hot or cold. Lukewarm I spit you out $TX,"Revelation 3:16",HTML="http://www.biblegateway.com/verse/en/Revelation%203:16"$
$FG,5$$TX+CX,"Misc Notes"$$FG$ $FG,5$$TX+CX,"Misc Notes"$$FG$
Erik van der Karbargenbok: $LK,"TempleBot",A="PI:::/Home/Sup1/Sup1Bin/TempleBot"$. Erik van der Karbargenbok: $LK,"TempleBot",A="PI:~/Sup1/Sup1Bin/TempleBot"$.
Intel CEO's name: Brian Krzanich Intel CEO's name: Brian Krzanich
>$FG,2$lspci -v$FG$ >$FG,2$lspci -v$FG$
Size:$TX,"17416KB",D="DD_TEMPLEOSCD_K_SIZE"$ Size:$TX,"17426KB",D="DD_TEMPLEOSCD_K_SIZE"$
$FG,5$$TX+CX,"My Web Bookmarks"$$FG$$WW,0$ $FG,5$$TX+CX,"My Web Bookmarks"$$FG$$WW,0$
$TX,"My FireFox Bookmarks",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/Bookmarks"$ $TX,"My FireFox Bookmarks",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/Bookmarks"$
@@ -425,13 +443,16 @@ Iceberg $HC,"<center><img src=\"https://upload.wikimedia.org/wikipedia/commons/
I made dis $HC,"<center><img src=\"http://i.imgur.com/cZKkxTX.jpg\" width=\"640\" height=\"800\" alt=\"\"></center>"$ I made dis $HC,"<center><img src=\"http://i.imgur.com/cZKkxTX.jpg\" width=\"640\" height=\"800\" alt=\"\"></center>"$
NIST Beacon $HC,"<center><img src=\"http://www.nist.gov/itl/csd/ct/images/beacon_architecture_2013.jpg\" width=\"550\" height=\"278\" alt=\"\"></center>"$ NIST Beacon $HC,"<center><img src=\"http://www.nist.gov/itl/csd/ct/images/beacon_architecture_2013.jpg\" width=\"550\" height=\"278\" alt=\"\"></center>"$
Purple Frog $HC,"<center><img src=\"https://s-media-cache-ak0.pinimg.com/736x/fb/08/2a/fb082a53bd798f5957a474ff9095e6d4.jpg\" width=\"640\" height=\"420\" alt=\"\"></center>"$ Purple Frog $HC,"<center><img src=\"https://s-media-cache-ak0.pinimg.com/736x/fb/08/2a/fb082a53bd798f5957a474ff9095e6d4.jpg\" width=\"640\" height=\"420\" alt=\"\"></center>"$
Casino (Dog) $HC,"<center><img src=\"http://www.templeos.org/images/Dog1855x1056.jpg\" width=\"640\" height=\"364\" alt=\"\"></center>"$
$TX,"SimStructure",HTML="http://www.templeos.org/files/SimStrSetUp.zip"$ $TX,"SimStructure",HTML="http://www.templeos.org/files/SimStrSetUp.zip"$
$TX,"ASU_Transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$ $TX,"ASU Course Catalog (See page 261)",HTML="https://catalog.asu.edu/files/shared/archives/1994-1996/general/UG1994-1996.pdf/1994-1996-UG-241-267.pdf"$ $TX,"ASU_Transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$ $TX,"ASU Course Catalog (See page 261)",HTML="https://catalog.asu.edu/files/shared/archives/1994-1996/general/UG1994-1996.pdf/1994-1996-UG-241-267.pdf"$
$TX,"Dr. David Pheanis",HTML="https://webapp4.asu.edu/directory/person/77201"$ $TX,"Dr. Konstantinos S. Tsakalis",HTML="http://ecee.engineering.asu.edu/directory/tenured-and-tenure-track-faculty/kostantinos-s-tsakalis"$ $TX,"Dr. Walter Higgins",HTML="https://webapp4.asu.edu/directory/directorysearch?cn=Walter+Higgins"$ $TX,"Dr. David Pheanis",HTML="https://webapp4.asu.edu/directory/person/77201"$ $TX,"Dr. Konstantinos S. Tsakalis",HTML="http://ecee.engineering.asu.edu/directory/tenured-and-tenure-track-faculty/kostantinos-s-tsakalis"$ $TX,"Dr. Walter Higgins",HTML="https://webapp4.asu.edu/directory/directorysearch?cn=Walter+Higgins"$
$TX,"Peter Gadwa",HTML="http://www.wired.com/magazine/2010/11/mf_ticketmaster/all/1"$ $TX,"Peter Gadwa",HTML="http://www.wired.com/magazine/2010/11/mf_ticketmaster/all/1"$ $TX,"Ticketmaster",HTML="http://www.nytimes.com/1994/11/06/business/ticketmaster-s-mr-tough-guy.html?pagewanted=a"$
$TX,"Tom Foley",HTML="http://web.gccaz.edu/~tfoley/perspage.html"$ $TX,"Tom Foley",HTML="http://web.gccaz.edu/~tfoley/perspage.html"$
$TX,"Graphic Technologies",HTML="https://web.archive.org/web/20020811060541/http://www.graphic-technologies.com/"$ $TX,"Lexmark vs Static Control",HTML="https://en.wikipedia.org/wiki/Lexmark_International,_Inc._v._Static_Control_Components,_Inc."$ $TX,"Graphic Technologies",HTML="https://web.archive.org/web/20020811060541/http://www.graphic-technologies.com/"$ $TX,"Lexmark vs Static Control",HTML="https://en.wikipedia.org/wiki/Lexmark_International,_Inc._v._Static_Control_Components,_Inc."$
$TX,"Stephen Davis",HTML="https://photos.google.com/share/AF1QipM4HI3mb_9qe8wDQ--nRfjIzOKyGG8heqWH-tbGBIIoxChWe4GeBegNzgHRy4Z1Qw?key=eGR0R0tyZG5tenRWd0tDN2RHRFRNTmI4NXdhc25B"$
3qEeEGCAsBABAqFDBeE2G33qEeEGCAsBABAqFDBeE2G33qCsBDBDq2G3s2G3F2G3FqAet2G32G3AEDAqF3qCsBDBDq2G3s2G3F2G3FqAet2G32G3AEDAqF 3qEeEGCAsBABAqFDBeE2G33qEeEGCAsBABAqFDBeE2G33qCsBDBDq2G3s2G3F2G3FqAet2G32G3AEDAqF3qCsBDBDq2G3s2G3F2G3FqAet2G32G3AEDAqF
qFeDAsBDeDqCeF2G3sGGeF2sG3C2G3CBCeF qFeDAsBDeDqCeF2G3sGGeF2sG3C2G3CBCeF
@@ -443,8 +464,10 @@ $TX,"Handford school",HTML="https:/pinterest.com/pin/255368241346360278"$
$TX,"Look at PCI interrupt routing.",HTML="http://forum.osdev.org/viewtopic.php?f=1&t=29558"$ $TX,"Look at PCI interrupt routing.",HTML="http://forum.osdev.org/viewtopic.php?f=1&t=29558"$
$TX,"The sins of Newton",HTML="https://www.brainpickings.org/2012/01/04/isaac-newton-list-of-sins"$ $TX,"The sins of Newton",HTML="https://www.brainpickings.org/2012/01/04/isaac-newton-list-of-sins"$
$TX,"Stalin's Tanks",HTML="https://boardgamegeek.com/boardgame/5198/stalins-tanks"$ $TX,"Stalin's Tanks",HTML="https://boardgamegeek.com/boardgame/5198/stalins-tanks"$
$TX,"Wisdom for the Way",HTML="https://www.amazon.com/Wisdom-Way-Wise-Words-People/dp/1404113258#reader_1404113258"$
$TX,"Lamp shades",HTML="http://www.lampsplus.com/products/lamp-shades"$ $TX,"Lamp shades",HTML="http://www.lampsplus.com/products/lamp-shades"$
$TX,"The Original Jewish Temple",HTML="http://www.jewishvirtuallibrary.org/jsource/Judaism/The_Temple.html"$ $TX,"The Original Jewish Temple",HTML="http://www.jewishvirtuallibrary.org/jsource/Judaism/The_Temple.html"$
$TX,"Top 1000 Movies",HTML="http://www.theyshootpictures.com/gf1000_all1000films.htm"$
$TX,"KingJamesBible with LineNums",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.TXT"$ $TX,"KingJamesBible with LineNums",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.TXT"$
$TX,"Higgs 5-Sigma Proof",HTML="http://understandinguncertainty.org/explaining-5-sigma-higgs-how-well-did-they-do"$ $TX,"Higgs 5-Sigma Proof",HTML="http://understandinguncertainty.org/explaining-5-sigma-higgs-how-well-did-they-do"$
$TX,"The Number Bleem",HTML="http://www.strangehorizons.com/2000/20001120/secret_number.shtml"$ $TX,"The Number Bleem",HTML="http://www.strangehorizons.com/2000/20001120/secret_number.shtml"$
+22 -16
View File
@@ -2,21 +2,25 @@ $TR-UL,"Adam"$
$ID,2$$TR,"SysMsgFlags"$ $ID,2$$TR,"SysMsgFlags"$
$ID,2$sys_msg_flags[0]=0xFF; $ID,2$sys_msg_flags[0]=0xFF;
$ID,-2$$TR,"SysRegVer"$ $ID,-2$$TR,"SysRegVer"$
$ID,2$registry_version=4.120; $ID,2$registry_version=4.130;
$ID,-2$$ID,-2$$TR-UL,"TempleOS"$ $ID,-2$$ID,-2$$TR-C-UL,"TempleOS"$
$ID,2$$TR,"TOS"$ $ID,2$$TR,"CircleTrace"$
$ID,2$I64 tos_code_walk_thru=105,tos_after_egypt_in_action=46;
$ID,-2$$TR,"CircleTrace"$
$ID,2$F64 best_score=4.9425; $ID,2$F64 best_score=4.9425;
$ID,-2$$TR,"DiningStars"$ $ID,-2$$TR,"DiningStars"$
$ID,2$F64 best_score=9999.0000; $ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"Staff"$ $ID,-2$$TR,"Staff"$
$ID,2$#define PERSONAL_INITIALS "TAD" $ID,2$#define PERSONAL_INITIALS "TAD"
#define MACHINE_CFG 0 #define MACHINE_CFG 0
$ID,-2$$TR,"BlackDiamond"$ $ID,-2$$TR,"TOSVideos"$
$ID,2$I64 best_score=1; $ID,2$I64 tos_code_walk_thru=105,tos_after_egypt_in_action=46;
$ID,-2$$TR,"EagleDive"$ $ID,-2$$TR,"EagleDive"$
$ID,2$F64 best_score=147.6932; $ID,2$F64 best_score=147.6932;
$ID,-2$$TR,"TOSGodOffer"$
$ID,2$I64 tos_gus_gwen=22;
$ID,-2$$TR,"TOSGodMisc"$
$ID,2$I64 tos_timestamp=0,tos_type=1;
$ID,-2$$TR,"BlackDiamond"$
$ID,2$I64 best_score=1;
$ID,-2$$TR,"DunGen"$ $ID,-2$$TR,"DunGen"$
$ID,2$F64 best_score=20.5295; $ID,2$F64 best_score=20.5295;
$ID,-2$$TR,"CastleFrankenstein"$ $ID,-2$$TR,"CastleFrankenstein"$
@@ -25,25 +29,27 @@ $ID,-2$$TR,"ZoneOut"$
$ID,2$F64 best_score=8.1373; $ID,2$F64 best_score=8.1373;
$ID,-2$$TR,"Varoom"$ $ID,-2$$TR,"Varoom"$
$ID,2$F64 best_score=46.2643; $ID,2$F64 best_score=46.2643;
$ID,-2$$TR,"FlapBat"$
$ID,2$F64 best_score=16.3077;
$ID,-2$$TR,"TimeOut"$
$ID,2$I64 best_score=28128;
$ID,-2$$TR,"RawHide"$ $ID,-2$$TR,"RawHide"$
$ID,2$F64 best_score=96.1279; $ID,2$F64 best_score=96.1279;
$ID,-2$$TR,"KeepAway"$ $ID,-2$$TR,"KeepAway"$
$ID,2$I64 best_score0=68,best_score1=30; $ID,2$I64 best_score0=68,best_score1=30;
$ID,-2$$TR,"XCaliber"$
$ID,2$I64 best_score=248;
I64 msg_flags=1;
$ID,-2$$TR,"Wenceslas"$ $ID,-2$$TR,"Wenceslas"$
$ID,2$F64 best_score=43.9944; $ID,2$F64 best_score=43.9944;
$ID,-2$$TR,"Talons"$
$ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"FlapBat"$
$ID,2$F64 best_score=16.3077;
$ID,-2$$TR,"XCaliber"$
$ID,2$I64 best_score=20;
I64 msg_flags=1;
$ID,-2$$TR,"BomberGolf"$ $ID,-2$$TR,"BomberGolf"$
$ID,2$I64 best_score=175; $ID,2$I64 best_score=175;
$ID,-2$$TR,"TimeOut"$
$ID,2$I64 best_score=11291;
$ID,-2$$ID,-2$$TR,"DemoCompany"$ $ID,-2$$ID,-2$$TR,"DemoCompany"$
$ID,2$ $ID,2$
$TR,"Game1"$ $TR,"Game1"$
$ID,2$F64 best_score=511.36611; $ID,2$F64 best_score=180.03208;
$TR,"SimpleVal"$ $TR,"SimpleVal"$
$ID,2$1387; $ID,2$1400;
$ID,-2$$ID,-2$ $ID,-2$$ID,-2$
+5 -1
View File
@@ -97,7 +97,7 @@ public U0 MakeWebSitePartial()
Drv('C'); Drv('C');
} }
public U0 Blog() public U0 Blog(Bool god_misc2=FALSE)
{ {
if (!FileFind(BlogLocalFile,,FUF_JUST_FILES)) if (!FileFind(BlogLocalFile,,FUF_JUST_FILES))
Copy("~/Web/" PERSONAL_INITIALS "/DailyBlogHeader.DD.Z", Copy("~/Web/" PERSONAL_INITIALS "/DailyBlogHeader.DD.Z",
@@ -106,8 +106,12 @@ public U0 Blog()
WinBorder; WinBorder;
WinMax; WinMax;
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN|SCF_CTRL); Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN|SCF_CTRL);
if (god_misc2)
Msg(MSG_KEY_DOWN_UP,0,SC_F7|SCF_SHIFT|SCF_ALT);
else {
Msg(MSG_KEY_DOWN_UP,0,SC_F6|SCF_ALT); Msg(MSG_KEY_DOWN_UP,0,SC_F6|SCF_ALT);
Msg(MSG_KEY_DOWN_UP,'\n',0); Msg(MSG_KEY_DOWN_UP,'\n',0);
}
if (Ed(BlogLocalFile,EDF_WAS_WRITE)) { if (Ed(BlogLocalFile,EDF_WAS_WRITE)) {
DocOpt(BlogLocalFile,"-r"); DocOpt(BlogLocalFile,"-r");
Copy(BlogLocalFile,"::" DAILY_BASE ".DD.Z"); Copy(BlogLocalFile,"::" DAILY_BASE ".DD.Z");
+24 -15
View File
@@ -238,7 +238,7 @@ U0 MakeStaffDistro()
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSSTAFF_SIZE", DefinePrint("DD_TEMPLEOSSTAFF_SIZE",
"Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1fMB)", "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C'); Drv('C');
} }
@@ -266,7 +266,7 @@ U0 MakeDbgDistro()
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSDBG_SIZE", DefinePrint("DD_TEMPLEOSDBG_SIZE",
"Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1fMB)", "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C'); Drv('C');
} }
@@ -292,7 +292,7 @@ U0 MakeStdDistro()
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSCD_SIZE", DefinePrint("DD_TEMPLEOSCD_SIZE",
"Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)", "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C'); Drv('C');
} }
@@ -301,7 +301,7 @@ U0 MakeStdRedSeaDistro()
StdDistroPrep; StdDistroPrep;
RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSCD_RS_SIZE", DefinePrint("DD_TEMPLEOSCD_RS_SIZE",
"Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)", "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_C_NAME,"+s")/1024/1024)); 0.1*(10*Size(TOS_ISO_C_NAME,"+s")/1024/1024));
Drv('C'); Drv('C');
} }
@@ -325,7 +325,7 @@ U0 UltraDistroPrep()
Del(TOS_DISTRO_DIR "/Misc/OSTestSuite.HC.Z"); Del(TOS_DISTRO_DIR "/Misc/OSTestSuite.HC.Z");
Copy("C:/Home/Sup1/Sup1Distro/UltraMenu.DD.Z", Copy("C:/Home/Sup1/Sup1Distro/UltraMenu.DD.Z",
TOS_DISTRO_DIR "/PersonalMenu.DD.Z"); TOS_DISTRO_DIR "/PersonalMenu.DD.Z");
Copy("C:/Demo/Games/EagleDive.HC.Z", Copy("C:/Demo/Games/Talons.HC.Z",
TOS_DISTRO_DIR "/Misc"); TOS_DISTRO_DIR "/Misc");
} }
U0 MakeUltraDistro() U0 MakeUltraDistro()
@@ -334,7 +334,7 @@ U0 MakeUltraDistro()
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSULTRA_SIZE", DefinePrint("DD_TEMPLEOSULTRA_SIZE",
"Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)", "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)",
0.01*(100*Size(TOS_ISO_NAME,"+s")/1024/1024)); 0.01*(100*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C'); Drv('C');
} }
@@ -343,14 +343,14 @@ U0 MakeUltraRedSeaDistro()
UltraDistroPrep; UltraDistroPrep;
RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSULTRA_RS_SIZE", DefinePrint("DD_TEMPLEOSULTRA_RS_SIZE",
"Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)", "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024)); 0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024));
Drv('C'); Drv('C');
} }
U0 MakeSup1ISO() U0 MakeSup1ISO()
{ {
RedSeaISO(TOS_ISO_C_NAME,"::/Home/Sup1"); RedSeaISO(TOS_ISO_C_NAME,"~/Sup1");
DefinePrint("DD_TEMPLEOS_SUP1_SIZE","Supplemental ISO #1 (%0.2fMB)", DefinePrint("DD_TEMPLEOS_SUP1_SIZE","Supplemental ISO #1 (%0.2fMB)",
0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024)); 0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024));
Drv('C'); Drv('C');
@@ -360,31 +360,31 @@ U0 UpdateISODocDefines()
{ {
try { try {
DefinePrint("DD_TEMPLEOSCD_SIZE", DefinePrint("DD_TEMPLEOSCD_SIZE",
"Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)", "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
0.1*(10*Size("D:/Wb/TempleOSCD.ISO","+s")/1024/1024)); 0.1*(10*Size("D:/Wb/TempleOSCD.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSCD_K_SIZE", DefinePrint("DD_TEMPLEOSCD_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSCD.ISO","+s")/1024); "%dKB",Size("D:/Wb/TempleOSCD.ISO","+s")/1024);
// DefinePrint("DD_TEMPLEOSCD_RS_SIZE", // DefinePrint("DD_TEMPLEOSCD_RS_SIZE",
// "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)", // "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
// 0.1*(10*Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024/1024)); // 0.1*(10*Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024/1024));
// DefinePrint("DD_TEMPLEOSCD_RS_K_SIZE", // DefinePrint("DD_TEMPLEOSCD_RS_K_SIZE",
// "%dKB",Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024); // "%dKB",Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024);
DefinePrint("DD_TEMPLEOSULTRA_SIZE", DefinePrint("DD_TEMPLEOSULTRA_SIZE",
"Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)", "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)",
0.01*(100*Size("D:/Wb/TempleOSUltra.ISO","+s")/1024/1024)); 0.01*(100*Size("D:/Wb/TempleOSUltra.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSULTRA_K_SIZE", DefinePrint("DD_TEMPLEOSULTRA_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSUltra.ISO","+s")/1024); "%dKB",Size("D:/Wb/TempleOSUltra.ISO","+s")/1024);
// DefinePrint("DD_TEMPLEOSULTRA_RS_SIZE", // DefinePrint("DD_TEMPLEOSULTRA_RS_SIZE",
// "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)", // "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
// 0.01*(100*Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024/1024)); // 0.01*(100*Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024/1024));
// DefinePrint("DD_TEMPLEOSULTRA_RS_K_SIZE", // DefinePrint("DD_TEMPLEOSULTRA_RS_K_SIZE",
// "%dKB",Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024); // "%dKB",Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024);
// DefinePrint("DD_TEMPLEOSDBG_SIZE", // DefinePrint("DD_TEMPLEOSDBG_SIZE",
// "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.2fMB)", // "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.2fMB)",
// 0.01*(100*Size("D:/Wb/TempleOSDbg.ISO","+s")/1024/1024)); // 0.01*(100*Size("D:/Wb/TempleOSDbg.ISO","+s")/1024/1024));
// DefinePrint("DD_TEMPLEOSDBG_K_SIZE", // DefinePrint("DD_TEMPLEOSDBG_K_SIZE",
// "%dKB",Size("D:/Wb/TempleOSDbg.ISO","+s")/1024); // "%dKB",Size("D:/Wb/TempleOSDbg.ISO","+s")/1024);
@@ -403,6 +403,7 @@ public U0 MakeDistrosAndBackUp()
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
progress4=*progress4_desc=0; progress4=*progress4_desc=0;
progress4_max=18; progress4_max=18;
progress4_t0=tS;
AutoComplete; AutoComplete;
WinBorder; WinBorder;
WinMax; WinMax;
@@ -434,7 +435,7 @@ public U0 MakeDistrosAndBackUp()
DocClear; DocClear;
Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSSup1.ISO"); progress4++; Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSSup1.ISO"); progress4++;
// MakeStaffDistro; progress4++; // MakeDbgDistro; progress4++;
// DocClear; // DocClear;
// Move(TOS_ISO_NAME,"D:/Wb/TempleOSDbg.ISO"); progress4++; // Move(TOS_ISO_NAME,"D:/Wb/TempleOSDbg.ISO"); progress4++;
@@ -446,21 +447,29 @@ public U0 MakeDistrosAndBackUp()
Cd("C:/"); Cd("C:/");
DocClear;
"$$PURPLE$$Lines longer than 80 columns:$$FG$$\n";
if (LongLines) if (LongLines)
throw; throw;
progress4++; progress4++;
DocClear;
"$$PURPLE$$Broken DolDoc Links:$$FG$$\n";
if (LinkChk) if (LinkChk)
throw; throw;
progress4++; progress4++;
DocClear;
MakeSymFiles; progress4++; MakeSymFiles; progress4++;
DocClear;
MakeWebSite; progress4++; MakeWebSite; progress4++;
Drv('C'); Drv('C');
ChkAll; progress4++; ChkAll; progress4++;
progress4=progress4_max=0;
SettingsPop; SettingsPop;
"Elapsed Time:%5.3f\n",tS-progress4_t0;
ProgressBarsRst;
} }
public U0 PreBackUp() public U0 PreBackUp()
+438 -107
View File
@@ -5,7 +5,6 @@ U8 *URLPercentSpaces(U8 *src)
U8 buf[2048],*dst=buf; U8 buf[2048],*dst=buf;
while (*src) { while (*src) {
if (*src==CH_SPACE) { if (*src==CH_SPACE) {
*dst++='%';
*dst++='%'; *dst++='%';
*dst++='2'; *dst++='2';
*dst++='0'; *dst++='0';
@@ -45,7 +44,8 @@ I64 ExtDecFromHex(U8 *st,I64 digits)
return res; return res;
} }
U0 TOSBibleLines(U8 *st,I64 num_lines,I64 radix,Bool modulo,Bool plus_one) U0 TOSBookLines(U8 *book_filename,I64 book_lines,U8 *st,I64 num_lines,
I64 radix,Bool modulo,Bool plus_one)
{//Radix<0 means extract N dec digits from hex. {//Radix<0 means extract N dec digits from hex.
CDoc *doc_out,*doc_in; CDoc *doc_out,*doc_in;
CDocEntry *doc_e; CDocEntry *doc_e;
@@ -62,8 +62,8 @@ U0 TOSBibleLines(U8 *st,I64 num_lines,I64 radix,Bool modulo,Bool plus_one)
DocPrint(doc_out,"0x%s-->",st); DocPrint(doc_out,"0x%s-->",st);
if (modulo) { if (modulo) {
DocPrint(doc_out,"(%d remainder when divided by %d)", DocPrint(doc_out,"(%d remainder when divided by %d)",
i,ST_BIBLE_LINES-(num_lines-1)); i,book_lines-(num_lines-1));
start=i%(ST_BIBLE_LINES-(num_lines-1)); start=i%(book_lines-(num_lines-1));
} else { } else {
if (radix>=0 || plus_one) if (radix>=0 || plus_one)
DocPrint(doc_out,"%d",i); DocPrint(doc_out,"%d",i);
@@ -75,12 +75,15 @@ U0 TOSBibleLines(U8 *st,I64 num_lines,I64 radix,Bool modulo,Bool plus_one)
} }
DocPrint(doc_out,"-->Line:%d\n",start); DocPrint(doc_out,"-->Line:%d\n",start);
if (StrMatch("NumBible",book_filename)) {
verse=BibleLine2Verse(start); verse=BibleLine2Verse(start);
DocPrint(doc_out,"$TX,"KingJamesBible",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.TXT"$ (%s)\n\nGod says...\n$$RED$$",verse); DocPrint(doc_out,"$TX,"KingJamesBible",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.TXT"$ (%s)\n\nGod says...\n$$RED$$",verse);
Free(verse); Free(verse);
} else if (StrMatch("Kosher",book_filename))
DocPrint(doc_out,"$TX,"KosherTexts",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/Kosher.TXT"$\n\nGod says...\n$$RED$$");
doc_in=DocNew; doc_in=DocNew;
BibleLines(doc_in,start,num_lines,"::/Home/Sup1/Sup1Blog/NumBible.TXT"); BookLines(doc_in,start,num_lines,book_filename);
while (TRUE) {//Del leading blanks while (TRUE) {//Del leading blanks
doc_e=doc_in->head.next; doc_e=doc_in->head.next;
if (doc_e==doc_in) if (doc_e==doc_in)
@@ -161,7 +164,7 @@ public U0 GodBooksPassage(U8 *files_find_mask,I64 len=512,
DirTreeDel(tmpde1); DirTreeDel(tmpde1);
} }
U8 *GodVideoRead(U8 *filename,I64 line) U8 *FileDblRead(U8 *filename,I64 line)
{ {
U8 *res=NULL; U8 *res=NULL;
CDoc *doc=DocRead(filename,DOCF_PLAIN_TEXT_TABS|DOCF_NO_CURSOR); CDoc *doc=DocRead(filename,DOCF_PLAIN_TEXT_TABS|DOCF_NO_CURSOR);
@@ -171,7 +174,7 @@ U8 *GodVideoRead(U8 *filename,I64 line)
return res; return res;
} }
U8 *GodVideoWrite(U8 *filename,I64 line,U8 *st) U8 *FileDblWrite(U8 *filename,I64 line,U8 *st)
{ {
U8 *res=NULL; U8 *res=NULL;
CDoc *doc=DocRead(filename,DOCF_PLAIN_TEXT_TABS|DOCF_NO_CURSOR); CDoc *doc=DocRead(filename,DOCF_PLAIN_TEXT_TABS|DOCF_NO_CURSOR);
@@ -201,10 +204,11 @@ U0 GodVideo(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename)
U8 *st,*st2; U8 *st,*st2;
CGodVideoForm *gvf=CAlloc(sizeof(CGodVideoForm)); CGodVideoForm *gvf=CAlloc(sizeof(CGodVideoForm));
I64 i=ExtDecFromHex(rnd,digits); I64 i=ExtDecFromHex(rnd,digits);
if (st=GodVideoRead(filename,i*2)) { if (!i) i=Round(10`digits);
if (st=FileDblRead(filename,i*2)) {
StrCpy(gvf->title,st); StrCpy(gvf->title,st);
Free(st); Free(st);
if (!(st=GodVideoRead(filename,i*2+1))||!*st) { if (!(st=FileDblRead(filename,i*2+1))||!*st) {
Free(st); Free(st);
if (DocForm(gvf) && *gvf->serial) { if (DocForm(gvf) && *gvf->serial) {
if (gvf->min || gvf->sec) if (gvf->min || gvf->sec)
@@ -212,10 +216,11 @@ U0 GodVideo(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename)
gvf->serial,gvf->min*60+gvf->sec); gvf->serial,gvf->min*60+gvf->sec);
else else
st=StrNew(gvf->serial); st=StrNew(gvf->serial);
GodVideoWrite(filename,i*2+1,st); FileDblWrite(filename,i*2+1,st);
} else } else
st=NULL; st=NULL;
} }
"'%s'-->(Taking first 2 decimal digits) #%02d\n",rnd,i;
if (StrIMatch("Metallica",filename)) { if (StrIMatch("Metallica",filename)) {
st2=URLPlusSpaces(gvf->title+3); st2=URLPlusSpaces(gvf->title+3);
"God's response:\n" "God's response:\n"
@@ -245,6 +250,21 @@ U0 GodVideo(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename)
Free(gvf); Free(gvf);
} }
U0 GodWebIdx(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename)
{
U8 *st1,*st2;
I64 i=ExtDecFromHex(rnd,digits);
if (!i) i=Round(10`digits);
"'%s'-->(Taking first 2 decimal digits) #%02d\n",rnd,i;
st1=FileDblRead(filename,i*2);
st2=FileDblRead(filename,i*2+1);
"God's response:\n";
"$$TX,\"%s\",HTML=\"%s\"$$\n",title,webpage;
"$$TX,\"%s\",HTML=\"%s\"$$\n",st1,st2;
Free(st1);
Free(st2);
}
class CRandExtDec5Form class CRandExtDec5Form
{ {
I64 timestamp; I64 timestamp;
@@ -252,16 +272,14 @@ class CRandExtDec5Form
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
U8 rnd3[512]; U8 rnd3[512];
I64 cert; U8 rnd4[512];
}; U8 rnd5[512];
U8 rnd6[512];
class CNISTBeaconRandExtDec5Form U8 rnd7[512];
{ U8 rnd8[512];
I64 timestamp fmtstr "$$DA,A=\"TimeStamp:%d\"$$\n"; U8 rnd9[512];
U8 rnd0[512] fmtstr "$$DA-P,A=\"5 Decimal Digits from Hex:%s\"$$\n"; U8 rndA[512];
U8 rnd1[512]; U8 rndB[512];
U8 rnd2[512];
U8 rnd3[512];
I64 cert; I64 cert;
}; };
@@ -272,6 +290,14 @@ class CHexWordForm
U8 rnd1[512] fmtstr "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n"; U8 rnd1[512] fmtstr "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n";
U8 rnd2[512] fmtstr "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n"; U8 rnd2[512] fmtstr "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n";
U8 rnd3[512] fmtstr "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n"; U8 rnd3[512] fmtstr "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n";
U8 rnd4[512] fmtstr "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n";
U8 rnd5[512] fmtstr "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n";
U8 rnd6[512] fmtstr "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n";
U8 rnd7[512] fmtstr "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n";
U8 rnd8[512] fmtstr "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n";
U8 rnd9[512] fmtstr "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n";
U8 rndA[512] fmtstr "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n";
U8 rndB[512] fmtstr "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n";
I64 cert; I64 cert;
}; };
@@ -282,6 +308,14 @@ class CNISTBeaconHexWordForm
U8 rnd1[512] fmtstr "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n"; U8 rnd1[512] fmtstr "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n";
U8 rnd2[512] fmtstr "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n"; U8 rnd2[512] fmtstr "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n";
U8 rnd3[512] fmtstr "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n"; U8 rnd3[512] fmtstr "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n";
U8 rnd4[512] fmtstr "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n";
U8 rnd5[512] fmtstr "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n";
U8 rnd6[512] fmtstr "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n";
U8 rnd7[512] fmtstr "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n";
U8 rnd8[512] fmtstr "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n";
U8 rnd9[512] fmtstr "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n";
U8 rndA[512] fmtstr "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n";
U8 rndB[512] fmtstr "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n";
I64 cert; I64 cert;
}; };
@@ -293,17 +327,14 @@ class CRandHex5Form
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
U8 rnd3[512]; U8 rnd3[512];
I64 cert; U8 rnd4[512];
}; U8 rnd5[512];
U8 rnd6[512];
class CNISTBeaconRandHex5Form U8 rnd7[512];
{ U8 rnd8[512];
I64 timestamp fmtstr "$$DA,A=\"TimeStamp:%d\"$$\n"; U8 rnd9[512];
U8 rnd0[512] fmtstr "$$DA-P-TRM,LEN=5," U8 rndA[512];
"A=\"Line (5-Digit Hex):%5s\"$$\n"; U8 rndB[512];
U8 rnd1[512];
U8 rnd2[512];
U8 rnd3[512];
I64 cert; I64 cert;
}; };
@@ -315,17 +346,14 @@ class CRandHex8Form
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
U8 rnd3[512]; U8 rnd3[512];
I64 cert; U8 rnd4[512];
}; U8 rnd5[512];
U8 rnd6[512];
class CNISTBeaconRandHex8Form U8 rnd7[512];
{ U8 rnd8[512];
I64 timestamp fmtstr "$$DA,A=\"TimeStamp:%d\"$$\n"; U8 rnd9[512];
U8 rnd0[512] fmtstr "$$DA-P-TRM,LEN=8," U8 rndA[512];
"A=\"Line (8-Digit Hex):%8s\"$$\n"; U8 rndB[512];
U8 rnd1[512];
U8 rnd2[512];
U8 rnd3[512];
I64 cert; I64 cert;
}; };
@@ -337,17 +365,33 @@ class CMoviesForm
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
U8 rnd3[512]; U8 rnd3[512];
U8 rnd4[512];
U8 rnd5[512];
U8 rnd6[512];
U8 rnd7[512];
U8 rnd8[512];
U8 rnd9[512];
U8 rndA[512];
U8 rndB[512];
I64 cert; I64 cert;
}; };
class CNISTMoviesForm class CPaintingsForm
{ {
I64 timestamp fmtstr "$$DA,A=\"TimeStamp:%d\"$$\n"; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P," U8 rnd0[512] fmtstr "$$DA-P,"
"A=\"Movie #1-100 (2 Decimal Digits from Hex):%s\"$$\n"; "A=\"Painting #00-99 (2 Decimal Digits from Hex):%s\"$$\n";
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
U8 rnd3[512]; U8 rnd3[512];
U8 rnd4[512];
U8 rnd5[512];
U8 rnd6[512];
U8 rnd7[512];
U8 rnd8[512];
U8 rnd9[512];
U8 rndA[512];
U8 rndB[512];
I64 cert; I64 cert;
}; };
@@ -359,17 +403,14 @@ class CMetallicaForm
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
U8 rnd3[512]; U8 rnd3[512];
I64 cert; U8 rnd4[512];
}; U8 rnd5[512];
U8 rnd6[512];
class CNISTMetallicaForm U8 rnd7[512];
{ U8 rnd8[512];
I64 timestamp fmtstr "$$DA,A=\"TimeStamp:%d\"$$\n"; U8 rnd9[512];
U8 rnd0[512] fmtstr "$$DA-P," U8 rndA[512];
"A=\"Song #1-99 (2 Decimal Digits from Hex):%s\"$$\n"; U8 rndB[512];
U8 rnd1[512];
U8 rnd2[512];
U8 rnd3[512];
I64 cert; I64 cert;
}; };
@@ -380,19 +421,35 @@ class CCertRandDec5Form
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
U8 rnd3[512]; U8 rnd3[512];
U8 rnd4[512];
U8 rnd5[512];
U8 rnd6[512];
U8 rnd7[512];
U8 rnd8[512];
U8 rnd9[512];
U8 rndA[512];
U8 rndB[512];
I64 cert fmtstr "$$DA,A=\"Certificate:%d\"$$\n"; I64 cert fmtstr "$$DA,A=\"Certificate:%d\"$$\n";
}; };
U0 GodWordBatch(CHexWordForm *url) U0 GodWordBatch(CHexWordForm *gm)
{ {
I64 i=0; I64 i=0;
CDirEntry *tmpde,*tmpde1; CDirEntry *tmpde,*tmpde1;
FifoU8Flush(god.fifo); FifoU8Flush(god.fifo);
GodHexIns(url->rnd0); GodHexIns(gm->rnd0);
GodHexIns(url->rnd1); GodHexIns(gm->rnd1);
GodHexIns(url->rnd2); GodHexIns(gm->rnd2);
GodHexIns(url->rnd3); GodHexIns(gm->rnd3);
GodHexIns(gm->rnd4);
GodHexIns(gm->rnd5);
GodHexIns(gm->rnd6);
GodHexIns(gm->rnd7);
GodHexIns(gm->rnd8);
GodHexIns(gm->rnd9);
GodHexIns(gm->rndA);
GodHexIns(gm->rndB);
tmpde=tmpde1=FilesFind(god.word_file_mask,god.word_fuf_flags); tmpde=tmpde1=FilesFind(god.word_file_mask,god.word_fuf_flags);
while (tmpde) { while (tmpde) {
PutFileLink(tmpde->full_name); PutFileLink(tmpde->full_name);
@@ -402,36 +459,61 @@ U0 GodWordBatch(CHexWordForm *url)
DirTreeDel(tmpde1); DirTreeDel(tmpde1);
"\n$$RED$$"; "\n$$RED$$";
if (*url->rnd0) if (*gm->rnd0)
"%s\n",url->rnd0; "%s\n",gm->rnd0;
if (*url->rnd1) if (*gm->rnd1)
"%s\n",url->rnd1; "%s\n",gm->rnd1;
if (*url->rnd2) if (*gm->rnd2)
"%s\n",url->rnd2; "%s\n",gm->rnd2;
if (*url->rnd3) if (*gm->rnd3)
"%s\n",url->rnd3; "%s\n",gm->rnd3;
if (*gm->rnd4)
"%s\n",gm->rnd4;
if (*gm->rnd5)
"%s\n",gm->rnd5;
if (*gm->rnd6)
"%s\n",gm->rnd6;
if (*gm->rnd7)
"%s\n",gm->rnd7;
if (*gm->rnd8)
"%s\n",gm->rnd8;
if (*gm->rnd9)
"%s\n",gm->rnd9;
if (*gm->rndA)
"%s\n",gm->rndA;
if (*gm->rndB)
"%s\n",gm->rndB;
'\n'; '\n';
while (FifoU8Cnt(god.fifo)>20) { while (FifoU8Cnt(god.fifo)>20) {
GodBits(3);
"%02d: ",i++; "%02d: ",i++;
GodWord(TRUE); GodWord(20,TRUE);
} }
FifoU8Flush(god.fifo); FifoU8Flush(god.fifo);
"$$FG$$\n"; "$$FG$$\n";
} }
#define NIST_TIME_OFFSET (-7998-local_time_offset/CDATE_FREQ) #define NIST_TIME_OFFSET (-8015-local_time_offset/CDATE_FREQ)
#define NIST_TIME_TO_SWITCH 3 #define NIST_TIME_TO_SWITCH 3
I64 CDate2Unix(CDate dt)
{
return ToI64((dt-Str2Date("1/1/1970"))/CDATE_FREQ+NIST_TIME_OFFSET);
}
CDate Unix2CDate(I64 timestamp)
{
return (timestamp-NIST_TIME_OFFSET)*CDATE_FREQ+Str2Date("1/1/1970");
}
public U0 NISTSync() public U0 NISTSync()
{ {
I64 i,j; I64 i,j;
CDate d; CDate dt;
CDateStruct ds; CDateStruct ds;
while (!ScanChar) { while (!ScanChar) {
d=Now; dt=Now;
Date2Struct(&ds,d); Date2Struct(&ds,dt);
i=ToI64((d-Str2Date("1/1/1970"))/CDATE_FREQ+NIST_TIME_OFFSET); i=CDate2Unix(dt);
j=FloorI64(i,60); j=FloorI64(i,60);
"%d %d %02d %02d\n",i,j,ds.sec,(60+ds.sec-(i-j))%60; "%d %d %02d %02d\n",i,j,ds.sec,(60+ds.sec-(i-j))%60;
Sleep(100); Sleep(100);
@@ -442,54 +524,164 @@ U0 NISTBeaconURL(I64 timestamp)
{ {
U8 *tag; U8 *tag;
CDateStruct ds; CDateStruct ds;
CDate dt=(timestamp-NIST_TIME_OFFSET)*CDATE_FREQ+Str2Date("1/1/1970"); CDate dt=Unix2CDate(timestamp);
Date2Struct(&ds,dt+local_time_offset+30*CDATE_FREQ); Date2Struct(&ds,dt+local_time_offset+30*CDATE_FREQ);
"$$TX,\"NIST Beacon Date:%D Time:%02d:%02d Unix TimeStamp:%u\"," "$$TX,\"NIST Beacon Date:%D Time:%02d:%02d Unix TimeStamp:%u\","
"HTML=\"https://beacon.nist.gov/home\"$$\n",dt,ds.hour,ds.min,timestamp; "HTML=\"https://beacon.nist.gov/home\"$$\n",dt,ds.hour,ds.min,timestamp;
tag=MStrPrint("https:/beacon.nist.gov/rest/record/%d",timestamp); tag=MStrPrint("https://beacon.nist.gov/rest/record/%d",timestamp);
"$$TX,\"NIST Beacon Record:%$$Q\",HTML=\"%$$Q\"$$\n",tag,tag; "$$TX,\"NIST Beacon Record:%$$Q\",HTML=\"%$$Q\"$$\n",tag,tag;
Free(tag); Free(tag);
} }
U0 TOSGodDoodle(CNISTBeaconHexWordForm *gm,Bool NIST)
U0 GodMisc()
{ {
U8 *st,*tag; CDC *dc;
CRandExtDec5Form *gm=CAlloc(sizeof(CRandExtDec5Form)); Bool old_silent;
I64 i=PopUpPickLst("NISTBeacon\0HotBits\0Random.org\0RandomNumbers.info\0" U8 *elems,*hex=MAlloc(sizeof(CNISTBeaconHexWordForm.rnd0)*12);
"ANU_NIST\0Password\0GenerateData\0VirtualNotary\0Timer\0");
if (i>=0) { StrPrint(hex,"%s%s",gm->rnd0,gm->rnd1);
if (NIST) {
gm->timestamp=FloorI64(CDate2Unix(Now),60);
if (DocForm(gm(CNISTBeaconHexWordForm *)))
NISTBeaconURL(gm->timestamp);
else
goto gd_done;
}
CatPrint(hex,"%s%s",gm->rnd2,gm->rnd3);
if (NIST) {
gm->timestamp=FloorI64(CDate2Unix(Now),60);
if (DocForm(gm(CNISTBeaconHexWordForm *)))
NISTBeaconURL(gm->timestamp);
else
goto gd_done;
}
CatPrint(hex,"%s%s",gm->rnd4,gm->rnd5);
if (NIST) {
gm->timestamp=FloorI64(CDate2Unix(Now),60);
if (DocForm(gm(CNISTBeaconHexWordForm *)))
NISTBeaconURL(gm->timestamp);
else
goto gd_done;
}
CatPrint(hex,"%s%s",gm->rnd6,gm->rnd7);
if (NIST) {
gm->timestamp=FloorI64(CDate2Unix(Now),60);
if (DocForm(gm(CNISTBeaconHexWordForm *)))
NISTBeaconURL(gm->timestamp);
else
goto gd_done;
}
CatPrint(hex,"%s%s",gm->rnd8,gm->rnd9);
if (NIST) {
gm->timestamp=FloorI64(CDate2Unix(Now),60);
if (DocForm(gm(CNISTBeaconHexWordForm *)))
NISTBeaconURL(gm->timestamp);
else
goto gd_done;
}
CatPrint(hex,"%s%s",gm->rndA,gm->rndB);
if (elems=GodDoodleSprite(hex)) {
dc=Sprite2DC(elems);
BlogDCImgWrite(dc);
DCDel(dc);
Free(elems);
old_silent=Silent;
MakeWebSitePartial;
Silent(old_silent);
}
gd_done:
Free(hex);
}
I64 GodMiscHeader(U8 *type=NULL)
{
CDateStruct ds;
I64 res;
if (type) {
res=FloorI64(CDate2Unix(Now+120*CDATE_FREQ),60);
Date2Struct(&ds,Unix2CDate(res)+local_time_offset+30*CDATE_FREQ);
"Response of %s at %02d:%02d Timestamp:%d.\n\n",type,ds.hour,ds.min,res;
In("%c//Response of %s at %02d:%02d Timestamp:%d.\n\n",
CH_ESC,type,ds.hour,ds.min,res);
}
"$$TX,\"Guidelines for Talking with God.\"," "$$TX,\"Guidelines for Talking with God.\","
"HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n";
switch (i) { return res;
}
RegSetDftEntry("TempleOS/TOSGodMisc","I64 tos_timestamp=0,tos_type=0;\n");
RegExeBranch("TempleOS/TOSGodMisc");
U0 NISTGodMisc1()
{
tos_type=PopUpPickLst("ExtDec5Bible\0ExtDec5Kosher\0LinuxWords\0HappyWords\0"
"Hex5Bible\0Hex8Books\0Doodle\0Movie\0Painting\0Metallica\0");
switch (tos_type) {
case: tos_timestamp=GodMiscHeader("Bible"); break;
case: tos_timestamp=GodMiscHeader("Kosher"); break;
case: tos_timestamp=GodMiscHeader("LinuxWords"); break;
case: tos_timestamp=GodMiscHeader("HappyWords"); break;
case: tos_timestamp=GodMiscHeader("Bible"); break;
case: tos_timestamp=GodMiscHeader("BookPick"); break;
case: tos_timestamp=GodMiscHeader("Doodle"); break;
case: tos_timestamp=GodMiscHeader("Movie"); break;
case: tos_timestamp=GodMiscHeader("Painting"); break;
case: tos_timestamp=GodMiscHeader("Metallica"); break;
}
RegWriteBranch("TempleOS/TOSGodMisc","I64 tos_timestamp=%d,tos_type=%d;\n",
tos_timestamp,tos_type);
}
U0 NISTGodMisc2()
{
CRandExtDec5Form *gm=CAlloc(sizeof(CRandExtDec5Form));
gm->timestamp=tos_timestamp;
tos_timestamp=0;
RegWriteBranch("TempleOS/TOSGodMisc","I64 tos_timestamp=%d,tos_type=%d;\n",
tos_timestamp,tos_type);
switch (tos_type) {
case: case:
gm->timestamp=FloorI64((Now-Str2Date("1/1/1970"))/CDATE_FREQ+ if (DocForm(gm(CRandExtDec5Form *))) {
NIST_TIME_OFFSET-NIST_TIME_TO_SWITCH,60);
switch (PopUpPickLst("ExtDec5Bible\0HexWordBatch\0Hex5Bible\0"
"Hex8Books\0Movie\0Metallica\0")) {
case:
if (DocForm(gm(CNISTBeaconRandExtDec5Form *))) {
NISTBeaconURL(gm->timestamp); NISTBeaconURL(gm->timestamp);
TOSBibleLines(gm->rnd0,20,-5,FALSE,FALSE); TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
gm->rnd0,20,-5,FALSE,FALSE);
} }
break; break;
case: case:
if (DocForm(gm(CNISTBeaconHexWordForm *))) { if (DocForm(gm(CRandExtDec5Form *))) {
NISTBeaconURL(gm->timestamp); NISTBeaconURL(gm->timestamp);
TOSBookLines("~/Sup1/Sup1Blog/Kosher.TXT",100000,
gm->rnd0,20,-5,FALSE,FALSE);
}
break;
case:
if (DocForm(gm(CHexWordForm *))) {
NISTBeaconURL(gm->timestamp);
Adam("GodInit(\"~/Sup1/Sup1Words/LinuxDict.TXT*\");");
GodWordBatch(gm); GodWordBatch(gm);
} }
break; break;
case: case:
if (DocForm(gm(CNISTBeaconRandHex5Form *))) { if (DocForm(gm(CHexWordForm *))) {
NISTBeaconURL(gm->timestamp);
Adam("GodInit(\"~/Sup1/Sup1Words/HappyWords.TXT*\");");
GodWordBatch(gm);
}
break;
case:
if (DocForm(gm(CRandHex5Form *))) {
"$$TX,\"How this random Bible passage was chosen.\"," "$$TX,\"How this random Bible passage was chosen.\","
"HTML=\"http://www.templeos.org/Wb" "HTML=\"http://www.templeos.org/Wb"
"/Home/Web/TAD/NISTPassage.html\"$$\n"; "/Home/Web/TAD/NISTPassage.html\"$$\n";
NISTBeaconURL(gm->timestamp); NISTBeaconURL(gm->timestamp);
TOSBibleLines(gm->rnd0,20,16,TRUE,TRUE); TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
gm->rnd0,20,16,TRUE,TRUE);
} }
break; break;
case: case:
if (DocForm(gm(CNISTBeaconRandHex8Form *))) { if (DocForm(gm(CRandHex8Form *))) {
"$$TX,\"How this random book pick was chosen.\"," "$$TX,\"How this random book pick was chosen.\","
"HTML=\"http://www.templeos.org/Wb" "HTML=\"http://www.templeos.org/Wb"
"/Home/Web/TAD/NISTPick001.html\"$$\n"; "/Home/Web/TAD/NISTPick001.html\"$$\n";
@@ -499,7 +691,13 @@ U0 GodMisc()
} }
break; break;
case: case:
if (DocForm(gm(CNISTMoviesForm *))) { if (DocForm(gm(CHexWordForm *))) {
NISTBeaconURL(gm->timestamp);
TOSGodDoodle(gm,TRUE);
}
break;
case:
if (DocForm(gm(CMoviesForm *))) {
NISTBeaconURL(gm->timestamp); NISTBeaconURL(gm->timestamp);
GodVideo("Top 100 Movies", GodVideo("Top 100 Movies",
"http://www.afi.com/100years/movies10.aspx", "http://www.afi.com/100years/movies10.aspx",
@@ -507,7 +705,15 @@ U0 GodMisc()
} }
break; break;
case: case:
if (DocForm(gm(CNISTMetallicaForm *))) { if (DocForm(gm(CPaintingsForm *))) {
NISTBeaconURL(gm->timestamp);
GodWebIdx("Top 100 Paintings",
"http://www.brushwiz.com/most-famous-paintings",
gm->rnd0,2,"C:/Home/Sup1/Sup1Blog/Paintings.DD.Z");
}
break;
case:
if (DocForm(gm(CMetallicaForm *))) {
NISTBeaconURL(gm->timestamp); NISTBeaconURL(gm->timestamp);
GodVideo("Metallica Song", GodVideo("Metallica Song",
"http://home.hccnet.nl/a.r.adams/lyrics/" "http://home.hccnet.nl/a.r.adams/lyrics/"
@@ -516,20 +722,106 @@ U0 GodMisc()
} }
break; break;
} }
Free(gm);
}
U0 GodMisc()
{
U8 *st,*tag;
CRandExtDec5Form *gm=CAlloc(sizeof(CRandExtDec5Form));
I64 i=PopUpPickLst("NISTBeacon\0HotBits\0ANU_NIST\0Random.org\0"
"RandomNumbers.info\0Password\0GenerateData\0VirtualNotary\0Timer\0");
if (i>=0) {
switch (i) {
case:
NISTGodMisc1;
break; break;
start: start:
case: case:
tag="https://www.fourmilab.ch/hotbits/secure_generate.html"; tag="https://www.fourmilab.ch/hotbits/secure_generate.html";
break; break;
case:
tag="http://qrng.anu.edu.au/NIST.php";
break;
end:
GodMiscHeader;
"$$TX,\"%$$Q\",HTML=\"%$$Q\"$$\n",tag,tag;
switch (PopUpPickLst("ExtDec5Bible\0ExtDec5Kosher\0LinuxWords\0"
"HappyWords\0Hex5Bible\0Hex8Books\0Doodle\0Movie\0Painting\0"
"Metallica\0")) {
case:
if (DocForm(gm(CRandExtDec5Form *)))
TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
gm->rnd0,20,-5,FALSE,FALSE);
break;
case:
if (DocForm(gm(CRandExtDec5Form *)))
TOSBookLines("~/Sup1/Sup1Blog/Kosher.TXT",100000,
gm->rnd0,20,-5,FALSE,FALSE);
break;
case:
if (DocForm(gm(CHexWordForm *))) {
Adam("GodInit(\"~/Sup1/Sup1Words/LinuxDict.TXT*\");");
GodWordBatch(gm);
}
break;
case:
if (DocForm(gm(CHexWordForm *))) {
Adam("GodInit(\"~/Sup1/Sup1Words/HappyWords.TXT*\");");
GodWordBatch(gm);
}
break;
case:
if (DocForm(gm(CRandHex5Form *))) {
"$$TX,\"How this random Bible passage was chosen.\","
"HTML=\"http://www.templeos.org/Wb"
"/Home/Web/TAD/Passage.html\"$$\n";
TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
gm->rnd0,20,16,TRUE,TRUE);
}
break;
case:
if (DocForm(gm(CRandHex8Form *))) {
"$$TX,\"How this random book pick was chosen.\","
"HTML=\"http://www.templeos.org/Wb"
"/Home/Web/TAD/Pick001.html\"$$\n";
GodBooksPassage("C:/Home/Sup1/Sup1Texts/*",,
Str2I64(gm->rnd0,16),GBP_MEDIUM);
}
break;
case:
if (DocForm(gm(CHexWordForm *)))
TOSGodDoodle(gm,FALSE);
break;
case:
if (DocForm(gm(CMoviesForm *)))
GodVideo("Top 100 Movies",
"http://www.afi.com/100years/movies10.aspx",
gm->rnd0,2,"C:/Home/Sup1/Sup1Blog/Movies.DD.Z");
break;
case:
if (DocForm(gm(CPaintingsForm *))) {
GodWebIdx("Top 100 Paintings",
"http://www.brushwiz.com/most-famous-paintings",
gm->rnd0,2,"C:/Home/Sup1/Sup1Blog/Paintings.DD.Z");
}
break;
case:
if (DocForm(gm(CMetallicaForm *)))
GodVideo("Metallica Song",
"http://home.hccnet.nl/a.r.adams/lyrics/"
"metallica/songindex.html",
gm->rnd0,2,"C:/Home/Sup1/Sup1Blog/Metallica.DD.Z");
break;
}
break;
start:
case: case:
tag="http://www.random.org"; tag="http://www.random.org";
break; break;
case: case:
tag="http://www.randomnumbers.info"; tag="http://www.randomnumbers.info";
break; break;
case:
tag="http://qrng.anu.edu.au/NIST.php";
break;
case: case:
tag="https://passed.pw"; tag="https://passed.pw";
break; break;
@@ -537,12 +829,19 @@ U0 GodMisc()
tag="http://www.generatedata.com"; tag="http://www.generatedata.com";
break; break;
end: end:
GodMiscHeader;
"$$TX,\"%$$Q\",HTML=\"%$$Q\"$$\n",tag,tag; "$$TX,\"%$$Q\",HTML=\"%$$Q\"$$\n",tag,tag;
switch (PopUpPickLst("ExtDec5Bible\0HexWordBatch\0Hex5Bible\0" switch (PopUpPickLst("ExtDec5Bible\0ExtDec5Kosher\0HexWordBatch\0"
"Hex8Books\0Movie\0Metallica\0")) { "Hex5Bible\0Hex8Books\0Movie\0Metallica\0")) {
case: case:
if (DocForm(gm(CRandExtDec5Form *))) if (DocForm(gm(CRandExtDec5Form *)))
TOSBibleLines(gm->rnd0,20,-5,FALSE,FALSE); TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
gm->rnd0,20,-5,FALSE,FALSE);
break;
case:
if (DocForm(gm(CRandExtDec5Form *)))
TOSBookLines("~/Sup1/Sup1Blog/Kosher.TXT",100000,
gm->rnd0,20,-5,FALSE,FALSE);
break; break;
case: case:
if (DocForm(gm(CHexWordForm *))) if (DocForm(gm(CHexWordForm *)))
@@ -553,7 +852,8 @@ U0 GodMisc()
"$$TX,\"How this random Bible passage was chosen.\"," "$$TX,\"How this random Bible passage was chosen.\","
"HTML=\"http://www.templeos.org/Wb" "HTML=\"http://www.templeos.org/Wb"
"/Home/Web/TAD/Passage.html\"$$\n"; "/Home/Web/TAD/Passage.html\"$$\n";
TOSBibleLines(gm->rnd0,20,16,TRUE,TRUE); TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
gm->rnd0,20,16,TRUE,TRUE);
} }
break; break;
case: case:
@@ -581,6 +881,7 @@ U0 GodMisc()
} }
break; break;
case: case:
GodMiscHeader;
if (DocForm(gm(CCertRandDec5Form *))) { if (DocForm(gm(CCertRandDec5Form *))) {
tag="http://virtual-notary.org"; tag="http://virtual-notary.org";
"$$TX,\"%$$Q\",HTML=\"%$$Q\"$$\n",tag,tag; "$$TX,\"%$$Q\",HTML=\"%$$Q\"$$\n",tag,tag;
@@ -589,10 +890,12 @@ U0 GodMisc()
"-randomnum-%d.p12",gm->cert); "-randomnum-%d.p12",gm->cert);
"\n$$TX,\"%$$Q: %d\",HTML=\"%$$Q\"$$.\n",tag,gm->cert,st; "\n$$TX,\"%$$Q: %d\",HTML=\"%$$Q\"$$.\n",tag,gm->cert,st;
Free(st); Free(st);
TOSBibleLines(gm->rnd0,20,-5,FALSE,FALSE); TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
gm->rnd0,20,-5,FALSE,FALSE);
} }
break; break;
case: case:
GodMiscHeader;
FifoU8Flush(god.fifo); FifoU8Flush(god.fifo);
GodBitsIns(GOD_GOOD_BITS,KbdMouseEvtTime>>GOD_BAD_BITS); GodBitsIns(GOD_GOOD_BITS,KbdMouseEvtTime>>GOD_BAD_BITS);
GodBooksPassage("C:/Home/Sup1/Sup1Texts/*"); GodBooksPassage("C:/Home/Sup1/Sup1Texts/*");
@@ -848,6 +1151,34 @@ U0 GodCodeJmp()
Free(st); Free(st);
} }
RegSetDftEntry("TempleOS/TOSGodOffer","I64 tos_gus_gwen=0;\n");
RegExeBranch("TempleOS/TOSGodOffer");
U0 GodOffer()
{
switch (PopUpPickLst("MosesComic\0GusGwen\0Fiction\0")) {
case:
"---- Moses Comic ---- "
"(Set in the $TX,"Numbers 11",HTML="http://www.biblegateway.com/passage/?search=Numbers%%%%2011&version=NIV"$ "
"part of the story.)\n"
"Moses says, \"\"\n"
"God says, \"\"\n";
break;
case:
"---- Gus and Gwen Soap Opera Episode %d ----\n"
"Gus says, \"\"\n"
"Gwen says, \"\"\n"
"-----------------------------------------\n",tos_gus_gwen++;
RegWriteBranch("TempleOS/TOSGodOffer","I64 tos_gus_gwen=%d;\n",
tos_gus_gwen);
break;
case:
"---- $TX,"Collaborative Fiction",HTML="http://en.wikipedia.org/wiki/Collaborative_fiction"$ ----\n"
"Once upon a time ";
break;
}
}
if (FileFind("~/Sup1/Sup1Words/LinuxDict.TXT")) if (FileFind("~/Sup1/Sup1Words/LinuxDict.TXT"))
GodInit("~/Sup1/Sup1Words/LinuxDict.TXT"); GodInit("~/Sup1/Sup1Words/LinuxDict.TXT");
//if (FileFind("~/Sup1/Sup1Words/HappyWords.TXT")) //if (FileFind("~/Sup1/Sup1Words/HappyWords.TXT"))
+3 -3
View File
@@ -219,9 +219,9 @@ public U0 BMP2TXT(U8 *_in_name,U8 *_out_name=NULL)
Free(out_name); Free(out_name);
} }
RegSetDftEntry("TempleOS/TOS", RegSetDftEntry("TempleOS/TOSVideos",
"I64 tos_code_walk_thru=1,tos_after_egypt_in_action=1;\n"); "I64 tos_code_walk_thru=1,tos_after_egypt_in_action=1;\n");
RegExeBranch("TempleOS/TOS"); RegExeBranch("TempleOS/TOSVideos");
U0 TOSRegInit() U0 TOSRegInit()
{ {
@@ -232,7 +232,7 @@ U0 TOSRegInit()
U0 TOSRegWrite() U0 TOSRegWrite()
{ {
RegWriteBranch("TempleOS/TOS", RegWriteBranch("TempleOS/TOSVideos",
"I64 tos_code_walk_thru=%d,tos_after_egypt_in_action=%d;\n", "I64 tos_code_walk_thru=%d,tos_after_egypt_in_action=%d;\n",
tos_code_walk_thru,tos_after_egypt_in_action); tos_code_walk_thru,tos_after_egypt_in_action);
TOSRegInit; TOSRegInit;
+103 -66
View File
@@ -1,29 +1,46 @@
//This is a customized version of $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$. //This is a customized version of $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$.
//$MA-X+PU,"Diff",LM="WinMax;WinBorder;S2T(\"/*\",\"+r+S\");Diff(\"/Demo/ToHtmlToTXTDemo/ToHtml.HC.Z\",\"/Home/TOSToHtml.HC.Z\");View;"$
#help_index "DolDoc/Conversion" #help_index "DolDoc/Conversion"
//See $LK,"::/Doc/Credits.DD"$. //See $LK,"::/Doc/Credits.DD"$.
U0 HtmlPutS(CDoc *doc,I64 u32_attr,I64 *_old_u32_attr, #define DOCET_UNDEF_COLOR 0x100000000
#define DOCET_LINK_UNDERLINE 0x200000000
U0 HtmlPutS(CDoc *doc,I64 u32_attr,I64 *_old_u32_attr,Bool underline_update,
U8 *st,I64 *_col,U8 *style_bitmap=NULL) U8 *st,I64 *_col,U8 *style_bitmap=NULL)
{ {
U8 *ch,*ptr; U8 *ch,*ptr;
u32_attr&=0xFFFFFF00; u32_attr&=0xFFFFFF00;
if (u32_attr&DOCET_INVERT) if (u32_attr&DOCET_INVERT)
u32_attr.u8[1]=(u32_attr.u8[1]&15)<<4|u32_attr.u8[1]>>4; u32_attr.u8[1]=(u32_attr.u8[1]&15)<<4|u32_attr.u8[1]>>4;
if (u32_attr!=*_old_u32_attr) {
if (!(u32_attr&DOCET_BLINK) && if (underline_update &&
*_old_u32_attr!=-1 && *_old_u32_attr&DOCET_BLINK) !(u32_attr&DOCET_UNDERLINE) && *_old_u32_attr&DOCET_UNDERLINE) {
if (!(*_old_u32_attr&DOCET_LINK_UNDERLINE))
DocPrint(doc,"</u>");
*_old_u32_attr&=~DOCET_LINK_UNDERLINE;
}
if (!(u32_attr&DOCET_BLINK) && *_old_u32_attr&DOCET_BLINK)
DocPrint(doc,"</blink>"); DocPrint(doc,"</blink>");
if (*_old_u32_attr!=-1)
if (u32_attr&0xFF00!=*_old_u32_attr&0xFF00) {
if (!(*_old_u32_attr&DOCET_UNDEF_COLOR))
DocPrint(doc,"</span>"); DocPrint(doc,"</span>");
DocPrint(doc,"<span class=c%02X>",u32_attr.u8[1]); DocPrint(doc,"<span class=c%02X>",u32_attr.u8[1]);
if (u32_attr&DOCET_BLINK &&
(*_old_u32_attr==-1 || !(*_old_u32_attr&DOCET_BLINK)))
DocPrint(doc,"<blink>");
*_old_u32_attr=u32_attr;
if (style_bitmap) if (style_bitmap)
LBts(style_bitmap,u32_attr.u8[1]); LBts(style_bitmap,u32_attr.u8[1]);
} }
if (u32_attr&DOCET_BLINK && !(*_old_u32_attr&DOCET_BLINK))
DocPrint(doc,"<blink>");
if (underline_update) {
if (u32_attr&DOCET_UNDERLINE && !(*_old_u32_attr&DOCET_UNDERLINE))
DocPrint(doc,"<u>");
} else //Keep same underline status.
u32_attr=u32_attr&~DOCET_UNDERLINE | *_old_u32_attr&DOCET_UNDERLINE;
*_old_u32_attr=u32_attr | *_old_u32_attr&DOCET_LINK_UNDERLINE;
while (ch=*st++) { while (ch=*st++) {
switch (ch) { switch (ch) {
case '\t': case '\t':
@@ -143,10 +160,10 @@ U8 *TOSLinkCvt1(U8 *link_st)
public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL, public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
U8 *body_footer=NULL,U8 *html_footer=NULL,Bool line_anchors=TRUE, U8 *body_footer=NULL,U8 *html_footer=NULL,Bool line_anchors=TRUE,
U8 (*link_cvt)(U8 *link_st)=&TOSLinkCvt1) U8 (*link_cvt)(U8 *link_st)=&TOSLinkCvt1,Bool line_nums=FALSE)
{//Cvt $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$doc to HTML file. {//Cvt $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$doc to HTML file.
CDocEntry *doc_e,*style,*doc_e2; CDocEntry *doc_e,*style,*doc_e2;
I64 i,y,old_y=MIN_I64,col,old_u32_attr=-1,old_attr; I64 i,y,old_y=MIN_I64,col,old_u32_attr=DOCET_UNDEF_COLOR,old_attr,digits;
U32 *hl,*src; U32 *hl,*src;
U8 *st,st_2[2],*link_st,*style_bitmap=CAlloc(256/8); U8 *st,st_2[2],*link_st,*style_bitmap=CAlloc(256/8);
CBGR48 p[NUM_COLORS]; CBGR48 p[NUM_COLORS];
@@ -161,6 +178,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
LBts(style_bitmap,i); LBts(style_bitmap,i);
DocRecalc(doc_in,RECALCt_NORMAL|RECALCF_TO_HTML); DocRecalc(doc_in,RECALCt_NORMAL|RECALCF_TO_HTML);
digits=Log10(doc_in->head.last->y+1)+1;
st_2[0]=0; st_2[1]=0; st_2[0]=0; st_2[1]=0;
doc_out->flags|=DOCF_PLAIN_TEXT|DOCF_NO_CURSOR; doc_out->flags|=DOCF_PLAIN_TEXT|DOCF_NO_CURSOR;
@@ -171,7 +189,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
"<head>\n" "<head>\n"
"<meta http-equiv=\"Content-Type\" " "<meta http-equiv=\"Content-Type\" "
"content=\"text/html;charset=US-ASCII\">\n" "content=\"text/html;charset=US-ASCII\">\n"
"<meta name=\"generator\" content=\"$TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$\">\n"; "<meta name=\"generator\" content=\"$TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$\">\n";
if (!body_header) body_header= if (!body_header) body_header=
"<body>\n" "<body>\n"
"<pre style=\"font-family:courier;font-size:10pt\">\n"; "<pre style=\"font-family:courier;font-size:10pt\">\n";
@@ -194,15 +212,21 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
y=doc_e->y; y=doc_e->y;
while (doc_e!=doc_in) { while (doc_e!=doc_in) {
if (!(doc_e->de_flags&DOCEF_SKIP)) { if (!(doc_e->de_flags&DOCEF_SKIP)) {
if (y!=old_y && line_anchors) { if (y!=old_y) {
if (line_anchors)
DocPrint(doc_out,"<a name=\"l%d\"></a>",y+1); DocPrint(doc_out,"<a name=\"l%d\"></a>",y+1);
if (line_nums)
DocPrint(doc_out,"%0*d ",digits,y+1);
old_y=y; old_y=y;
} }
while (y<doc_e->y) { while (y<doc_e->y) {
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,&old_u32_attr,FALSE,
&old_u32_attr,"\n",&col,style_bitmap); "\n",&col,style_bitmap);
if (++y!=old_y && line_anchors) { if (++y!=old_y) {
if (line_anchors)
DocPrint(doc_out,"<a name=\"l%d\"></a>",y+1); DocPrint(doc_out,"<a name=\"l%d\"></a>",y+1);
if (line_nums)
DocPrint(doc_out,"%0*d ",digits,y+1);
old_y=y; old_y=y;
} }
col=0; col=0;
@@ -217,10 +241,11 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
} }
doc_e2=doc_e2->next; doc_e2=doc_e2->next;
} }
if (no_bwd) if (no_bwd)
while (col<doc_e->x) while (col<doc_e->x)
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,&old_u32_attr,FALSE,
&old_u32_attr," ",&col,style_bitmap); " ",&col,style_bitmap);
link_st=NULL; link_st=NULL;
if (doc_e->de_flags&DOCEF_HTML_LINK) if (doc_e->de_flags&DOCEF_HTML_LINK)
@@ -231,10 +256,13 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
} }
if (link_st) { if (link_st) {
if (old_u32_attr!=-1) { if (old_u32_attr&DOCET_UNDERLINE &&!(old_u32_attr&DOCET_LINK_UNDERLINE))
DocPrint(doc_out,"</u>");
if (old_u32_attr&DOCET_BLINK)
DocPrint(doc_out,"</blink>");
if (!(old_u32_attr&DOCET_UNDEF_COLOR))
DocPrint(doc_out,"</span>"); DocPrint(doc_out,"</span>");
old_u32_attr=-1; old_u32_attr=DOCET_UNDEF_COLOR|DOCET_UNDERLINE|DOCET_LINK_UNDERLINE;
}
DocPrint(doc_out,"<a href=\"%s\">",link_st); DocPrint(doc_out,"<a href=\"%s\">",link_st);
} }
@@ -251,7 +279,8 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
doc_e->type&0xFF00); doc_e->type&0xFF00);
while (*src) { while (*src) {
st_2[0]=*src&0xFF; st_2[0]=*src&0xFF;
HtmlPutS(doc_out,*src++,&old_u32_attr,st_2,&col,style_bitmap); HtmlPutS(doc_out,*src++,&old_u32_attr,TRUE,
st_2,&col,style_bitmap);
} }
Free(hl); Free(hl);
} else { } else {
@@ -259,41 +288,48 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
doc_e->settings.final_u32_attr&0xF00==PURPLE<<8) doc_e->settings.final_u32_attr&0xF00==PURPLE<<8)
DocPrint(doc_out,"<h1><center>"); DocPrint(doc_out,"<h1><center>");
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
&old_u32_attr,doc_e->tag,&col,style_bitmap); &old_u32_attr,TRUE,doc_e->tag,&col,style_bitmap);
if (doc_e->de_flags&DOCEF_CENTER_X && //$BK,1$Nonstandard$BK,0$ if (doc_e->de_flags&DOCEF_CENTER_X && //$BK,1$Nonstandard$BK,0$
doc_e->settings.final_u32_attr&0xF00==PURPLE<<8) doc_e->settings.final_u32_attr&0xF00==PURPLE<<8)
DocPrint(doc_out,"</center></h1>"); DocPrint(doc_out,"</center></h1>");
} }
break; break;
case DOCT_TAB: case DOCT_TAB:
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,&old_u32_attr,TRUE,
&old_u32_attr,"\t",&col,style_bitmap); "\t",&col,style_bitmap);
break; break;
case DOCT_HTML_CODE: case DOCT_HTML_CODE:
if (old_u32_attr!=-1) { if (old_u32_attr&DOCET_UNDERLINE &&
!(old_u32_attr&DOCET_LINK_UNDERLINE))
DocPrint(doc_out,"</u>");
if (old_u32_attr&DOCET_BLINK)
DocPrint(doc_out,"</blink>");
if (!(old_u32_attr&DOCET_UNDEF_COLOR))
DocPrint(doc_out,"</span>"); DocPrint(doc_out,"</span>");
old_u32_attr=-1; old_u32_attr=DOCET_UNDEF_COLOR;
}
DocPrint(doc_out,"%s",doc_e->tag); DocPrint(doc_out,"%s",doc_e->tag);
break; break;
case DOCT_SPRITE: case DOCT_SPRITE:
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
&old_u32_attr,doc_e->tag,&col,style_bitmap); &old_u32_attr,TRUE,doc_e->tag,&col,style_bitmap);
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
&old_u32_attr,"/* Graphics Not Rendered in HTML */", &old_u32_attr,TRUE,"/* Graphics Not Rendered in HTML */",
&col,style_bitmap); &col,style_bitmap);
break; break;
default: default:
if (doc_e->de_flags&DOCEF_TAG) if (doc_e->de_flags&DOCEF_TAG)
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
&old_u32_attr,doc_e->tag,&col,style_bitmap); &old_u32_attr,TRUE,doc_e->tag,&col,style_bitmap);
} }
if (link_st) { if (link_st) {
if (old_u32_attr!=-1) { if (old_u32_attr&DOCET_UNDERLINE &&!(old_u32_attr&DOCET_LINK_UNDERLINE))
DocPrint(doc_out,"</u>");
if (old_u32_attr&DOCET_BLINK)
DocPrint(doc_out,"</blink>");
if (!(old_u32_attr&DOCET_UNDEF_COLOR))
DocPrint(doc_out,"</span>"); DocPrint(doc_out,"</span>");
old_u32_attr=-1;
}
DocPrint(doc_out,"</a>"); DocPrint(doc_out,"</a>");
old_u32_attr=DOCET_UNDEF_COLOR|DOCET_UNDERLINE|DOCET_LINK_UNDERLINE;
Free(link_st); Free(link_st);
} }
} }
@@ -301,15 +337,16 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
} }
while (y++<doc_e->y) { while (y++<doc_e->y) {
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
&old_u32_attr,"\n",&col,style_bitmap); &old_u32_attr,TRUE,"\n",&col,style_bitmap);
col=0; col=0;
} }
if (old_u32_attr!=-1) { if (old_u32_attr&DOCET_UNDERLINE && !(old_u32_attr&DOCET_LINK_UNDERLINE))
DocPrint(doc_out,"</u>");
if (old_u32_attr&DOCET_BLINK) if (old_u32_attr&DOCET_BLINK)
DocPrint(doc_out,"</blink>"); DocPrint(doc_out,"</blink>");
if (!(old_u32_attr&DOCET_UNDEF_COLOR))
DocPrint(doc_out,"</span>"); DocPrint(doc_out,"</span>");
old_u32_attr=-1; old_u32_attr=DOCET_UNDEF_COLOR;
}
DocPrint(doc_out,"%s",body_footer); DocPrint(doc_out,"%s",body_footer);
DocPrint(doc_out,"%s",html_footer); DocPrint(doc_out,"%s",html_footer);
@@ -334,7 +371,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
public U0 TOSToHtml(U8 *_in_name,U8 *_out_name=NULL,U8 *html_header=NULL, public U0 TOSToHtml(U8 *_in_name,U8 *_out_name=NULL,U8 *html_header=NULL,
U8 *body_header=NULL,U8 *body_footer=NULL,U8 *html_footer=NULL, U8 *body_header=NULL,U8 *body_footer=NULL,U8 *html_footer=NULL,
I64 width=80,Bool line_anchors=TRUE, I64 width=80,Bool line_anchors=TRUE,
U8 (*link_cvt)(U8 *link_st)=&TOSLinkCvt1) U8 (*link_cvt)(U8 *link_st)=&TOSLinkCvt1,Bool line_nums=FALSE)
{//Convert $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$file to HTML. {//Convert $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$file to HTML.
//Supply your own link_cvt routine. //Supply your own link_cvt routine.
U8 *in_name,*out_name; U8 *in_name,*out_name;
@@ -353,7 +390,7 @@ public U0 TOSToHtml(U8 *_in_name,U8 *_out_name=NULL,U8 *html_header=NULL,
DocTop(doc_in); DocTop(doc_in);
DocPrint(doc_in,"$$BD,LTCYAN$$"); //$BK,1$Nonstandard$BK,0$ DocPrint(doc_in,"$$BD,LTCYAN$$"); //$BK,1$Nonstandard$BK,0$
doc_out=Doc2Html(doc_in,html_header,body_header,body_footer,html_footer, doc_out=Doc2Html(doc_in,html_header,body_header,body_footer,html_footer,
line_anchors,link_cvt); line_anchors,link_cvt,line_nums);
StrCpy(&doc_out->filename.name,out_name); StrCpy(&doc_out->filename.name,out_name);
SettingsPop; SettingsPop;
@@ -366,7 +403,7 @@ public U0 TOSToHtml(U8 *_in_name,U8 *_out_name=NULL,U8 *html_header=NULL,
} }
#help_index "TOS" #help_index "TOS"
U0 TOSWebFile(U8 *name) U0 TOSWebFile(U8 *name,Bool line_nums=FALSE)
{ {
U8 *name2; U8 *name2;
CDirEntry de; CDirEntry de;
@@ -393,7 +430,7 @@ U0 TOSWebFile(U8 *name)
"<meta name=\"keywords\" " "<meta name=\"keywords\" "
"content=\"Operating System,64-Bit,64 Bit," "content=\"Operating System,64-Bit,64 Bit,"
"Temple,OS,TempleOS,Free,Open Source,Public Domain,x86_64\">\n" "Temple,OS,TempleOS,Free,Open Source,Public Domain,x86_64\">\n"
"<meta name=\"generator\" content=\"$TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$\">\n", "<meta name=\"generator\" content=\"$TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$\">\n",
"<body style=\"background-color:#55FFFF; border-style:solid; "<body style=\"background-color:#55FFFF; border-style:solid;
border-width:8px; border-color:#0000AA; border-width:8px; border-color:#0000AA;
@@ -402,34 +439,13 @@ U0 TOSWebFile(U8 *name)
"<div style=\"margin-left:auto; margin-right:auto;" "<div style=\"margin-left:auto; margin-right:auto;"
" width: 640px;\">\n", " width: 640px;\">\n",
"</div></pre></body>\n", "</div></pre></body>\n",
"</html>\n",,line_anchors); "</html>\n",,line_anchors,,line_nums);
Touch(name2,"",,de.datetime); Touch(name2,"",,de.datetime);
Free(name2); Free(name2);
} }
} }
public U0 MakeWebSite() U0 FreshenWebDir(U8 *dirname,Bool line_nums=FALSE)
{
CDirEntry *tmpde,*tmpde1;
DocClear;
Cd("D:/Wb");
DelTree("D:/Wb/Home/Budget");
DelTree("D:/Wb/Home/Private");
Del("D:/Wb/Home/*");
Touch("D:/Wb/Home/Web/index.DD.Z","");
Touch("D:/Wb/Home/Web/DownloadOS.DD.Z","");
Touch("D:/Wb/Home/Web/TempleOS.DD.Z","");
tmpde=tmpde1=FilesFind("*",
FUF_RECURSE|FUF_JUST_FILES|FUF_JUST_TXT|FUF_CLUSTER_ORDER);
while (tmpde) {
TOSWebFile(tmpde->full_name);
tmpde=tmpde->next;
}
DirTreeDel(tmpde1);
Drv('C');
}
U0 FreshenWebDir(U8 *dirname)
{//No recurse {//No recurse
CDirEntry *tmpde,*tmpde1; CDirEntry *tmpde,*tmpde1;
U8 *src,*dst; U8 *src,*dst;
@@ -451,9 +467,30 @@ U0 FreshenWebDir(U8 *dirname)
src=MStrPrint("D:/Wb%s/*",dirname); src=MStrPrint("D:/Wb%s/*",dirname);
tmpde=tmpde1=FilesFind(src,FUF_JUST_FILES|FUF_JUST_TXT|FUF_CLUSTER_ORDER); tmpde=tmpde1=FilesFind(src,FUF_JUST_FILES|FUF_JUST_TXT|FUF_CLUSTER_ORDER);
while (tmpde) { while (tmpde) {
TOSWebFile(tmpde->full_name); TOSWebFile(tmpde->full_name,line_nums);
tmpde=tmpde->next; tmpde=tmpde->next;
} }
DirTreeDel(tmpde1); DirTreeDel(tmpde1);
} }
public U0 MakeWebSite()
{
CDirEntry *tmpde,*tmpde1;
DocClear;
Cd("D:/Wb");
DelTree("D:/Wb/Home/Budget");
DelTree("D:/Wb/Home/Private");
Del("D:/Wb/Home/*");
Touch("D:/Wb/Home/Web/index.DD.Z","");
Touch("D:/Wb/Home/Web/DownloadOS.DD.Z","");
Touch("D:/Wb/Home/Web/TempleOS.DD.Z","");
tmpde=tmpde1=FilesFind("*",
FUF_RECURSE|FUF_JUST_FILES|FUF_JUST_TXT|FUF_CLUSTER_ORDER);
while (tmpde) {
TOSWebFile(tmpde->full_name);
tmpde=tmpde->next;
}
DirTreeDel(tmpde1);
FreshenWebDir("/Home/Sup1/Sup1Words",TRUE);
Drv('C');
}
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$. //Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
RegSetDftEntry("TempleOS/EagleDive","F64 best_score=9999;\n"); RegSetDftEntry("TempleOS/Talons","F64 best_score=9999;\n");
RegExeBranch("TempleOS/EagleDive"); RegExeBranch("TempleOS/Talons");
//Keep these power of two so shift is used instead of multiply //Keep these power of two so shift is used instead of multiply
//to index arrays. //to index arrays.
@@ -738,7 +738,7 @@ U0 MPDrawIt(CTask *task,CDC *dc)
LBtr(&mp.update_not_done_flags,Gs->num); LBtr(&mp.update_not_done_flags,Gs->num);
} }
U0 CoreAPEagleDiveTask(CTask *master_task) U0 CoreAPTalonsTask(CTask *master_task)
{ {
CDC *dc=DCAlias(main_dc,master_task); CDC *dc=DCAlias(main_dc,master_task);
while (!mp.app_done) { while (!mp.app_done) {
@@ -861,7 +861,7 @@ U0 DrawHorizon(CDC *dc)
dc->depth_buf=old_db; dc->depth_buf=old_db;
} }
U0 Core0EagleDive() U0 Core0Talons()
{ {
CDC *dc=DCAlias(main_dc,Fs); CDC *dc=DCAlias(main_dc,Fs);
I64 i,xx,yy,elev,height,cx=Fs->pix_width>>1,cy=Fs->pix_height>>1; I64 i,xx,yy,elev,height,cx=Fs->pix_width>>1,cy=Fs->pix_height>>1;
@@ -1097,7 +1097,7 @@ U0 Init()
z+=elevations[yy][xx]*COORDINATE_SCALE; z+=elevations[yy][xx]*COORDINATE_SCALE;
for (i=1;i<mp_cnt;i++) for (i=1;i<mp_cnt;i++)
Spawn(&CoreAPEagleDiveTask,Fs,"AP EagleDive",i); Spawn(&CoreAPTalonsTask,Fs,"AP Talons",i);
Fs->task_end_cb=&TaskEndCB; Fs->task_end_cb=&TaskEndCB;
game_t0=tS; game_t0=tS;
} }
@@ -1116,7 +1116,7 @@ U0 CleanUp()
DCDel(main_dc); DCDel(main_dc);
} }
U0 EagleDive() U0 Talons()
{ {
I64 ch,sc; I64 ch,sc;
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
@@ -1177,17 +1177,17 @@ U0 EagleDive()
break; break;
} }
} else } else
Core0EagleDive; Core0Talons;
} while (ch!=CH_SHIFT_ESC && ch!=CH_ESC); } while (ch!=CH_SHIFT_ESC && ch!=CH_ESC);
catch catch
PutExcept; PutExcept;
SettingsPop; SettingsPop;
CleanUp; CleanUp;
RegWriteBranch("TempleOS/EagleDive","F64 best_score=%5.4f;\n",best_score); RegWriteBranch("TempleOS/Talons","F64 best_score=%5.4f;\n",best_score);
MenuPop; MenuPop;
} }
EagleDive; Talons;
� �
àÿÿÿýÿÿÿ àÿÿÿýÿÿÿ
ýÿÿÿ" ýÿÿÿ"
Binary file not shown.
Binary file not shown.
File renamed without changes.
+19 -3
View File
@@ -9,8 +9,8 @@ U0 Main1()
"\nWith description.\n"; "\nWith description.\n";
PressAKey; PressAKey;
ProgressBarsRst; ProgressBarsRst;
StrCpy(progress1_desc,"Progress Demo"); //PROGRESS_DESC_LEN is max
progress1_max=200; progress1_max=200;
StrCpy(progress1_desc,"Progress Demo"); //PROGRESS_DESC_LEN is max
while (progress1++!=progress1_max) while (progress1++!=progress1_max)
Sleep(20); Sleep(20);
progress1_max=0; //hide progress1_max=0; //hide
@@ -19,6 +19,21 @@ U0 Main1()
Main1; Main1;
U0 Main2() U0 Main2()
{
"\nWith description and time.\n";
PressAKey;
ProgressBarsRst;
progress1_max=200;
progress1_t0=tS;
StrCpy(progress1_desc,"Progress Demo"); //PROGRESS_DESC_LEN is max
while (progress1++!=progress1_max)
Sleep(20);
progress1_max=0; //hide
}
Main2;
U0 Main3()
{ {
"\nNo description.\n"; "\nNo description.\n";
PressAKey; PressAKey;
@@ -30,7 +45,7 @@ U0 Main2()
progress1_max=0; //hide progress1_max=0; //hide
} }
Main2; Main3;
"\n$$LTRED$$Now, from asm... It's handy for debugging.$$FG$$\n" "\n$$LTRED$$Now, from asm... It's handy for debugging.$$FG$$\n"
"$$LTRED$$Watch the progress on the wallpaper.$$FG$$\n"; "$$LTRED$$Watch the progress on the wallpaper.$$FG$$\n";
@@ -39,8 +54,9 @@ PressAKey;
asm { asm {
_PROGRESS_DEMO:: _PROGRESS_DEMO::
MOV RCX,0x80000000 MOV RCX,12000000
@@05: MOV U64 [&progress1],RCX @@05: MOV U64 [&progress1],RCX
CALL &Yield
LOOP @@05 LOOP @@05
MOV U64 [&progress1],RCX MOV U64 [&progress1],RCX
RET RET
+62
View File
@@ -0,0 +1,62 @@
#define RADIX 256
#define N 16
U8 a[N];
class Lst
{
Lst *next;
U8 *a;
} l[N],*r[RADIX];
U0 DumpIn()
{
I64 i;
"$$RED$$\n\nInput$$FG$$\n";
for (i=0;i<N;i++)
"%d:%d\n",i,a[i];
}
U0 DumpOut()
{
I64 i,j=0;
Lst *tmpl;
"$$RED$$\n\nOutput$$FG$$\n";
for (i=0;i<RADIX;i++) {
tmpl=r[i];
while (tmpl) {
"%d:%d\n",j++,*tmpl->a;
tmpl=tmpl->next;
}
}
}
U0 Init()
{
I64 i;
MemSet(r,0,sizeof(r));
for (i=0;i<N;i++) {
a[i]=RandU16&255;
l[i].next=NULL;
l[i].a=&a[i];
}
}
U0 Sort()
{
I64 i;
for (i=0;i<N;i++) {
l[i].next=r[*l[i].a];
r[*l[i].a]=&l[i];
}
}
U0 RadixSort()
{
Init;
DumpIn;
Sort;
DumpOut;
}
RadixSort;
+6 -6
View File
@@ -1,8 +1,8 @@
$WW,1$$FG,5$$TX+CX,"The Temple Operating System"$$FG,0$ $WW,1$$FG,5$$TX+CX,"The Temple Operating System"$$FG,0$
$FG,4$ $FG,4$
$LK,"Download Operating System",A="FI:::/Home/Web/DownloadOS.DD"$ $LK,"App Store",A="FI:::/Home/Web/AppStore.DD"$ $LK,"Download Operating System",A="FI:~/Web/DownloadOS.DD"$ $LK,"App Store",A="FI:~/Web/AppStore.DD"$
$LK,"Scrn Shots",A="FI:::/Home/Web/ScrnShots.DD"$ $LK,"Instructional Videos",A="FI:::/Home/Web/TOSVideos.DD"$ $LK,"Screen Shots",A="FI:~/Web/ScrnShots.DD"$ $LK,"Instructional Videos",A="FI:~/Web/TOSVideos.DD"$
$LK,"Introduction",A="FI:::/Doc/Welcome.DD"$ $LK,"F.A.Q.",A="FI:::/Doc/FAQ.DD"$ $LK,"Introduction",A="FI:::/Doc/Welcome.DD"$ $LK,"F.A.Q.",A="FI:::/Doc/FAQ.DD"$
@@ -12,9 +12,9 @@ $LK,"Source Code By File",A="FF:~/Web/LineRep.DD,KStart16.HC"$ $TX,"Source Cod
$TX,"Source Code By Sym",HTML="http://www.templeos.org/Wb/Home/Web/SymsAlpha.html"$ $TX,"Source Code By Address",HTML="http://www.templeos.org/Wb/Home/Web/SymsAddress.html"$ $TX,"Source Code By Sym",HTML="http://www.templeos.org/Wb/Home/Web/SymsAlpha.html"$ $TX,"Source Code By Address",HTML="http://www.templeos.org/Wb/Home/Web/SymsAddress.html"$
$LK,"Change Log",A="FI:::/Doc/ChangeLog.DD"$ $LK,"History of TempleOS",A="FI:::/Home/Web/History.DD"$ $LK,"Change Log",A="FI:::/Doc/ChangeLog.DD"$ $LK,"History of TempleOS",A="FI:~/Web/History.DD"$
$LK,"TempleOS Credits",A="FI:::/Doc/Credits.DD"$ $LK,"About Terry Davis",A="FI:::/Home/Web/TAD/TAD.DD"$ $LK,"TempleOS Credits",A="FI:::/Doc/Credits.DD"$ $LK,"Terry Davis",A="FI:~/Web/TAD/TAD.DD"$ $LK,"Dianna Cowern",A="FI:~/Web/DLC/DLC.DD"$
$FG$ $FG$
The Brits are moving to $TX,"ban \"hacking tools\"",HTML="http://www.theregister.co.uk/2008/01/02/hacker_toll_ban_guidance"$. Take my $LK,"unassembler",A="MN:Ui"$ from my cold dead hands. NRA is for guns; IRA is for computers. The Brits are moving to $TX,"ban \"hacking tools\"",HTML="http://www.theregister.co.uk/2008/01/02/hacker_toll_ban_guidance"$. Take my $LK,"unassembler",A="MN:Ui"$ from my cold dead hands. NRA is for guns; IRA is for computers.
@@ -24,7 +24,7 @@ TempleOS is a free, public domain, open source, $FG,4$$TX,"x86_64",HTML="http://
The CIA encourages code obsfucation. They make it more complicated than necessary. TempleOS is, literally, more simple than necessary. It is obnoxiously simple... to the point it hurts. The CIA encourages code obsfucation. They make it more complicated than necessary. TempleOS is, literally, more simple than necessary. It is obnoxiously simple... to the point it hurts.
This $TX,"\"Hello World\" joke",HTML="http://www.infiltec.com/j-h-wrld.htm"$, the $TX,"BMP file format",HTML="http://en.wikipedia.org/wiki/BMP_file_format"$ and the $TX,"WAV file format",HTML="http://en.wikipedia.org/wiki/WAV"$ show that the industry is really screwed-up! That's what TempleOS fixes. I capped the line-of-code count at 100,000 and God said it must be perfect, so it will never be an ugly monstrocity. It is currently $TX,"81,223",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of unblemished code. Backward compatibility is not promised. This $TX,"\"Hello World\" joke",HTML="http://www.infiltec.com/j-h-wrld.htm"$, the $TX,"BMP file format",HTML="http://en.wikipedia.org/wiki/BMP_file_format"$ and the $TX,"WAV file format",HTML="http://en.wikipedia.org/wiki/WAV"$ show that the industry is really screwed-up! That's what TempleOS fixes. I capped the line-of-code count at 100,000 and God said it must be perfect, so it will never be an ugly monstrocity. It is currently $TX,"81,304",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of unblemished code. Backward compatibility is not promised.
Normally, failure is not an option, but since TempleOS accompanies Windows or Linux, we exclude certain uses. There is no reason to duplicate browsing, multimedia, desktop publishing, etc. Linux wants to be a secure, multi-user mainframe. That's why it has file permissions. The vision for TempleOS, however, is a modern, 64-bit Commodore 64. The C64 was a non-networked, home computer mostly used for games. It trained my generation how to program because it was wide open, completely hackable. The games were not multimedia works of art, but generated by non-artist. Normally, failure is not an option, but since TempleOS accompanies Windows or Linux, we exclude certain uses. There is no reason to duplicate browsing, multimedia, desktop publishing, etc. Linux wants to be a secure, multi-user mainframe. That's why it has file permissions. The vision for TempleOS, however, is a modern, 64-bit Commodore 64. The C64 was a non-networked, home computer mostly used for games. It trained my generation how to program because it was wide open, completely hackable. The games were not multimedia works of art, but generated by non-artist.
@@ -40,7 +40,7 @@ $HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://w
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/W_b4zMxfLvA\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/W_b4zMxfLvA\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$ $HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/W_b4zMxfLvA\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/W_b4zMxfLvA\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
I wrote all $LK,"119,996",A="FF:~/Web/LineRep.DD,Kernel.PRJ",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.2",D="DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler. It was called, at various times, "$FG,4$$TX,"Hoppy",HTML="http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX,"The J Operating System",HTML="http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX,"LoseThos",HTML="http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX,"SparrowOS",HTML="http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$". Here are my $FG,4$$TX,"college transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$$FG$. I've been a professional operating system developer since 1990 when I was hired to work on Ticketmaster's VAX OS. I wrote all $LK,"120,646",A="FF:~/Web/LineRep.DD,Kernel.PRJ",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.3",D="DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler. It was called, at various times, "$FG,4$$TX,"Hoppy",HTML="http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX,"The J Operating System",HTML="http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX,"LoseThos",HTML="http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX,"SparrowOS",HTML="http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$". Here are my $FG,4$$TX,"college transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$$FG$. I've been a professional operating system developer since 1990 when I was hired to work on Ticketmaster's VAX OS.
$FG,8$ $FG,8$
* "Commodore 64" is a trademark owned by Polabe Holding NV. * "Commodore 64" is a trademark owned by Polabe Holding NV.
+95 -40
View File
@@ -2,27 +2,40 @@
//See $LK,"::/Doc/Credits.DD"$. //See $LK,"::/Doc/Credits.DD"$.
U0 HtmlPutS(CDoc *doc,I64 u32_attr,I64 *_old_u32_attr, #define DOCET_UNDEF_COLOR 0x100000000
#define DOCET_LINK_UNDERLINE 0x200000000
U0 HtmlPutS(CDoc *doc,I64 u32_attr,I64 *_old_u32_attr,Bool underline_update,
U8 *st,I64 *_col,U8 *style_bitmap=NULL) U8 *st,I64 *_col,U8 *style_bitmap=NULL)
{ {
U8 *ch,*ptr; U8 *ch,*ptr;
u32_attr&=0xFFFFFF00; u32_attr&=0xFFFFFF00;
if (u32_attr&DOCET_INVERT) if (u32_attr&DOCET_INVERT)
u32_attr.u8[1]=(u32_attr.u8[1]&15)<<4|u32_attr.u8[1]>>4; u32_attr.u8[1]=(u32_attr.u8[1]&15)<<4|u32_attr.u8[1]>>4;
if (u32_attr!=*_old_u32_attr) { if (underline_update &&
if (!(u32_attr&DOCET_BLINK) && !(u32_attr&DOCET_UNDERLINE) && *_old_u32_attr&DOCET_UNDERLINE) {
*_old_u32_attr!=-1 && *_old_u32_attr&DOCET_BLINK) if (!(*_old_u32_attr&DOCET_LINK_UNDERLINE))
DocPrint(doc,"</u>");
*_old_u32_attr&=~DOCET_LINK_UNDERLINE;
}
if (!(u32_attr&DOCET_BLINK) && *_old_u32_attr&DOCET_BLINK)
DocPrint(doc,"</blink>"); DocPrint(doc,"</blink>");
if (*_old_u32_attr!=-1) if (u32_attr&0xFF00!=*_old_u32_attr&0xFF00) {
if (!(*_old_u32_attr&DOCET_UNDEF_COLOR))
DocPrint(doc,"</span>"); DocPrint(doc,"</span>");
DocPrint(doc,"<span class=c%02X>",u32_attr.u8[1]); DocPrint(doc,"<span class=c%02X>",u32_attr.u8[1]);
if (u32_attr&DOCET_BLINK &&
(*_old_u32_attr==-1 || !(*_old_u32_attr&DOCET_BLINK)))
DocPrint(doc,"<blink>");
*_old_u32_attr=u32_attr;
if (style_bitmap) if (style_bitmap)
LBts(style_bitmap,u32_attr.u8[1]); LBts(style_bitmap,u32_attr.u8[1]);
} }
if (u32_attr&DOCET_BLINK && !(*_old_u32_attr&DOCET_BLINK))
DocPrint(doc,"<blink>");
if (underline_update) {
if (u32_attr&DOCET_UNDERLINE && !(*_old_u32_attr&DOCET_UNDERLINE))
DocPrint(doc,"<u>");
} else //Keep same underline status.
u32_attr=u32_attr&~DOCET_UNDERLINE | *_old_u32_attr&DOCET_UNDERLINE;
*_old_u32_attr=u32_attr | *_old_u32_attr&DOCET_LINK_UNDERLINE;
while (ch=*st++) { while (ch=*st++) {
switch (ch) { switch (ch) {
case '\t': case '\t':
@@ -78,6 +91,27 @@ U8 *TOSLinkCvt2(U8 *filename,I64 line_num)
return res; return res;
} }
U8 *URLBibleGateway(U8 *src)
{
U8 buf[STR_LEN],*dst=buf;
if (!MemCmp(src,"BF:",3))
src+=3;
while (*src) {
if (*src==CH_SPACE || *src==',')
*dst++='+';
else
*dst++=*src;
src++;
}
*dst=0;
if (StrOcc(buf,'-'))
return MStrPrint(
"http://www.biblegateway.com/passage/?search=%s&version=NIV",buf);
else
return MStrPrint(
"http://www.biblegateway.com/verse/en/%s",buf);
}
U8 *TOSLinkCvt1(U8 *link_st) U8 *TOSLinkCvt1(U8 *link_st)
{ {
static CDoc *bible=NULL; static CDoc *bible=NULL;
@@ -105,7 +139,7 @@ U8 *TOSLinkCvt1(U8 *link_st)
if (!bible) if (!bible)
bible=Adam("DocRead(\"%s\");",filename); bible=Adam("DocRead(\"%s\");",filename);
if (DocFind(bible,num,needle)) if (DocFind(bible,num,needle))
res=TOSLinkCvt2(filename,bible->cur_entry->y+1); res=URLBibleGateway(link_st);
LBtr(&locks,0); LBtr(&locks,0);
break; break;
default: default:
@@ -120,10 +154,10 @@ U8 *TOSLinkCvt1(U8 *link_st)
public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL, public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
U8 *body_footer=NULL,U8 *html_footer=NULL,Bool line_anchors=TRUE, U8 *body_footer=NULL,U8 *html_footer=NULL,Bool line_anchors=TRUE,
U8 (*link_cvt)(U8 *link_st)=&TOSLinkCvt1) U8 (*link_cvt)(U8 *link_st)=&TOSLinkCvt1,Bool line_nums=FALSE)
{//Cvt $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$doc to HTML file. {//Cvt $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$doc to HTML file.
CDocEntry *doc_e,*style,*doc_e2; CDocEntry *doc_e,*style,*doc_e2;
I64 i,y,old_y=MIN_I64,col,old_u32_attr=-1,old_attr; I64 i,y,old_y=MIN_I64,col,old_u32_attr=DOCET_UNDEF_COLOR,old_attr,digits;
U32 *hl,*src; U32 *hl,*src;
U8 *st,st_2[2],*link_st,*style_bitmap=CAlloc(256/8); U8 *st,st_2[2],*link_st,*style_bitmap=CAlloc(256/8);
CBGR48 p[NUM_COLORS]; CBGR48 p[NUM_COLORS];
@@ -139,6 +173,8 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
DocRecalc(doc_in,RECALCt_NORMAL|RECALCF_TO_HTML); DocRecalc(doc_in,RECALCt_NORMAL|RECALCF_TO_HTML);
digits=Log10(doc_in->head.last->y+1)+1;
st_2[0]=0; st_2[1]=0; st_2[0]=0; st_2[1]=0;
doc_out->flags|=DOCF_PLAIN_TEXT|DOCF_NO_CURSOR; doc_out->flags|=DOCF_PLAIN_TEXT|DOCF_NO_CURSOR;
@@ -148,7 +184,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
"<head>\n" "<head>\n"
"<meta http-equiv=\"Content-Type\" " "<meta http-equiv=\"Content-Type\" "
"content=\"text/html;charset=US-ASCII\">\n" "content=\"text/html;charset=US-ASCII\">\n"
"<meta name=\"generator\" content=\"$TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$\">\n"; "<meta name=\"generator\" content=\"$TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$\">\n";
if (!body_header) body_header= if (!body_header) body_header=
"<body>\n" "<body>\n"
"<pre style=\"font-family:courier;font-size:10pt\">\n"; "<pre style=\"font-family:courier;font-size:10pt\">\n";
@@ -171,15 +207,21 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
y=doc_e->y; y=doc_e->y;
while (doc_e!=doc_in) { while (doc_e!=doc_in) {
if (!(doc_e->de_flags&DOCEF_SKIP)) { if (!(doc_e->de_flags&DOCEF_SKIP)) {
if (y!=old_y && line_anchors) { if (y!=old_y) {
if (line_anchors)
DocPrint(doc_out,"<a name=\"l%d\"></a>",y+1); DocPrint(doc_out,"<a name=\"l%d\"></a>",y+1);
if (line_nums)
DocPrint(doc_out,"%0*d ",digits,y+1);
old_y=y; old_y=y;
} }
while (y<doc_e->y) { while (y<doc_e->y) {
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,&old_u32_attr,FALSE,
&old_u32_attr,"\n",&col,style_bitmap); "\n",&col,style_bitmap);
if (++y!=old_y && line_anchors) { if (++y!=old_y) {
if (line_anchors)
DocPrint(doc_out,"<a name=\"l%d\"></a>",y+1); DocPrint(doc_out,"<a name=\"l%d\"></a>",y+1);
if (line_nums)
DocPrint(doc_out,"%0*d ",digits,y+1);
old_y=y; old_y=y;
} }
col=0; col=0;
@@ -194,10 +236,11 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
} }
doc_e2=doc_e2->next; doc_e2=doc_e2->next;
} }
if (no_bwd) if (no_bwd)
while (col<doc_e->x) while (col<doc_e->x)
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,&old_u32_attr,FALSE,
&old_u32_attr," ",&col,style_bitmap); " ",&col,style_bitmap);
link_st=NULL; link_st=NULL;
if (doc_e->de_flags&DOCEF_HTML_LINK) if (doc_e->de_flags&DOCEF_HTML_LINK)
@@ -208,10 +251,13 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
} }
if (link_st) { if (link_st) {
if (old_u32_attr!=-1) { if (old_u32_attr&DOCET_UNDERLINE &&!(old_u32_attr&DOCET_LINK_UNDERLINE))
DocPrint(doc_out,"</u>");
if (old_u32_attr&DOCET_BLINK)
DocPrint(doc_out,"</blink>");
if (!(old_u32_attr&DOCET_UNDEF_COLOR))
DocPrint(doc_out,"</span>"); DocPrint(doc_out,"</span>");
old_u32_attr=-1; old_u32_attr=DOCET_UNDEF_COLOR|DOCET_UNDERLINE|DOCET_LINK_UNDERLINE;
}
DocPrint(doc_out,"<a href=\"%s\">",link_st); DocPrint(doc_out,"<a href=\"%s\">",link_st);
} }
@@ -228,7 +274,8 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
doc_e->type&0xFF00); doc_e->type&0xFF00);
while (*src) { while (*src) {
st_2[0]=*src&0xFF; st_2[0]=*src&0xFF;
HtmlPutS(doc_out,*src++,&old_u32_attr,st_2,&col,style_bitmap); HtmlPutS(doc_out,*src++,&old_u32_attr,TRUE,
st_2,&col,style_bitmap);
} }
Free(hl); Free(hl);
} else } else
@@ -236,34 +283,41 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
&old_u32_attr,doc_e->tag,&col,style_bitmap); &old_u32_attr,doc_e->tag,&col,style_bitmap);
break; break;
case DOCT_TAB: case DOCT_TAB:
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,&old_u32_attr,TRUE,
&old_u32_attr,"\t",&col,style_bitmap); "\t",&col,style_bitmap);
break; break;
case DOCT_HTML_CODE: case DOCT_HTML_CODE:
if (old_u32_attr!=-1) { if (old_u32_attr&DOCET_UNDERLINE &&
!(old_u32_attr&DOCET_LINK_UNDERLINE))
DocPrint(doc_out,"</u>");
if (old_u32_attr&DOCET_BLINK)
DocPrint(doc_out,"</blink>");
if (!(old_u32_attr&DOCET_UNDEF_COLOR))
DocPrint(doc_out,"</span>"); DocPrint(doc_out,"</span>");
old_u32_attr=-1; old_u32_attr=DOCET_UNDEF_COLOR;
}
DocPrint(doc_out,"%s",doc_e->tag); DocPrint(doc_out,"%s",doc_e->tag);
break; break;
case DOCT_SPRITE: case DOCT_SPRITE:
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
&old_u32_attr,doc_e->tag,&col,style_bitmap); &old_u32_attr,TRUE,doc_e->tag,&col,style_bitmap);
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
&old_u32_attr,"/* Graphics Not Rendered in HTML */", &old_u32_attr,TRUE,"/* Graphics Not Rendered in HTML */",
&col,style_bitmap); &col,style_bitmap);
break; break;
default: default:
if (doc_e->de_flags&DOCEF_TAG) if (doc_e->de_flags&DOCEF_TAG)
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
&old_u32_attr,doc_e->tag,&col,style_bitmap); &old_u32_attr,TRUE,doc_e->tag,&col,style_bitmap);
} }
if (link_st) { if (link_st) {
if (old_u32_attr!=-1) { if (old_u32_attr&DOCET_UNDERLINE &&!(old_u32_attr&DOCET_LINK_UNDERLINE))
DocPrint(doc_out,"</u>");
if (old_u32_attr&DOCET_BLINK)
DocPrint(doc_out,"</blink>");
if (!(old_u32_attr&DOCET_UNDEF_COLOR))
DocPrint(doc_out,"</span>"); DocPrint(doc_out,"</span>");
old_u32_attr=-1;
}
DocPrint(doc_out,"</a>"); DocPrint(doc_out,"</a>");
old_u32_attr=DOCET_UNDEF_COLOR|DOCET_UNDERLINE|DOCET_LINK_UNDERLINE;
Free(link_st); Free(link_st);
} }
} }
@@ -271,15 +325,16 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
} }
while (y++<doc_e->y) { while (y++<doc_e->y) {
HtmlPutS(doc_out,doc_e->settings.final_u32_attr, HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
&old_u32_attr,"\n",&col,style_bitmap); &old_u32_attr,TRUE,"\n",&col,style_bitmap);
col=0; col=0;
} }
if (old_u32_attr!=-1) { if (old_u32_attr&DOCET_UNDERLINE && !(old_u32_attr&DOCET_LINK_UNDERLINE))
DocPrint(doc_out,"</u>");
if (old_u32_attr&DOCET_BLINK) if (old_u32_attr&DOCET_BLINK)
DocPrint(doc_out,"</blink>"); DocPrint(doc_out,"</blink>");
if (!(old_u32_attr&DOCET_UNDEF_COLOR))
DocPrint(doc_out,"</span>"); DocPrint(doc_out,"</span>");
old_u32_attr=-1; old_u32_attr=DOCET_UNDEF_COLOR;
}
DocPrint(doc_out,"%s",body_footer); DocPrint(doc_out,"%s",body_footer);
DocPrint(doc_out,"%s",html_footer); DocPrint(doc_out,"%s",html_footer);
@@ -304,7 +359,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
public U0 ToHtml(U8 *_in_name,U8 *_out_name=NULL,U8 *html_header=NULL, public U0 ToHtml(U8 *_in_name,U8 *_out_name=NULL,U8 *html_header=NULL,
U8 *body_header=NULL,U8 *body_footer=NULL,U8 *html_footer=NULL, U8 *body_header=NULL,U8 *body_footer=NULL,U8 *html_footer=NULL,
I64 width=80,Bool line_anchors=TRUE, I64 width=80,Bool line_anchors=TRUE,
U8 (*link_cvt)(U8 *link_st)=&TOSLinkCvt1) U8 (*link_cvt)(U8 *link_st)=&TOSLinkCvt1,Bool line_nums=FALSE)
{//Convert $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$file to HTML. {//Convert $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$file to HTML.
//Supply your own link_cvt routine. //Supply your own link_cvt routine.
U8 *in_name,*out_name; U8 *in_name,*out_name;
@@ -321,7 +376,7 @@ public U0 ToHtml(U8 *_in_name,U8 *_out_name=NULL,U8 *html_header=NULL,
doc_in=DocRead(in_name); doc_in=DocRead(in_name);
doc_out=Doc2Html(doc_in,html_header,body_header,body_footer,html_footer, doc_out=Doc2Html(doc_in,html_header,body_header,body_footer,html_footer,
line_anchors,link_cvt); line_anchors,link_cvt,line_nums);
StrCpy(&doc_out->filename.name,out_name); StrCpy(&doc_out->filename.name,out_name);
SettingsPop; SettingsPop;
BIN
View File
Binary file not shown.
+41 -6
View File
@@ -2,7 +2,42 @@ $WW,1$$FG,5$$TX+CX,"Change Log"$$FG$
Use $LK,"R",A="MN:R"$() to rename if I change a label. Use $LK,"R",A="MN:R"$() to rename if I change a label.
$IV,1$----09/29/16 11:52:04----$IV,0$ $IV,1$----11/21/16 01:46:12----$IV,0$
$IV,1$----11/20/16 19:46:43----$IV,0$
* $BK,1$TempleOS version 4.13 Released$BK,0$
* Improved $LK,"::/Apps/TimeOut/TimeOut.HC"$.
* Improved $LK,"::/Apps/X-Caliber/X-Caliber.HC"$.
$IV,1$----11/19/16 08:19:51----$IV,0$
* Improved Budget application.
$IV,1$----11/17/16 18:49:51----$IV,0$
* $LK,"R",A="MN:R"$("EagleDive","Talons");
* Improved $LK,"::/Demo/Games/RocketScience.HC"$.
* Improved $LK,"::/Demo/Games/Rocket.HC"$.
$IV,1$----10/28/16 05:54:27----$IV,0$
* Added $LK,"::/Demo/RadixSort.HC"$.
$IV,1$----10/26/16 00:21:06----$IV,0$
* Added $LK,"CProgress",A="MN:CProgress"$.t0.
* Improved $LK,"::/Doc/Boot.DD"$.
$IV,1$----10/25/16 18:02:44----$IV,0$
* Improved $LK,"::/Adam/Gr/SpriteEd.HC"$.
* Improved $LK,"::/Demo/AcctExample/TOSHolySpirit.HC"$.
$IV,1$----10/12/16 10:55:26----$IV,0$
* Added $LK,"CCF_NO_CHAR_CONST",A="MN:CCF_NO_CHAR_CONST"$.
* Improved $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$.
$IV,1$----10/03/16 01:09:35----$IV,0$
* Changed $LK,"GodWord",A="MN:GodWord"$().
$IV,1$----09/30/16 18:29:59----$IV,0$
* Improved $LK,"Rand",A="MN:Rand"$()'s.
* Improved $LK,"::/Adam/Opt/Utils/ToTXT.HC"$.
$IV,1$----09/29/16 10:13:14----$IV,0$ $IV,1$----09/29/16 10:13:14----$IV,0$
* $BK,1$TempleOS version 4.12 Released$BK,0$ * $BK,1$TempleOS version 4.12 Released$BK,0$
@@ -83,7 +118,7 @@ $IV,1$----07/17/16 03:23:53----$IV,0$
$IV,1$----07/15/16 10:11:10----$IV,0$ $IV,1$----07/15/16 10:11:10----$IV,0$
* $BK,1$TempleOS version 4.10 Released$BK,0$ * $BK,1$TempleOS version 4.10 Released$BK,0$
* Improved $LK,"::/Demo/Games/EagleDive.HC"$. * Improved $LK,"::/Demo/Games/Talons.HC"$.
$IV,1$----07/15/16 05:17:24----$IV,0$ $IV,1$----07/15/16 05:17:24----$IV,0$
* Created $LK,"CDevGlbls",A="MN:CDevGlbls"$.uncached_alias. * Created $LK,"CDevGlbls",A="MN:CDevGlbls"$.uncached_alias.
@@ -93,7 +128,7 @@ $IV,1$----07/13/16 17:21:19----$IV,0$
* Added multicore report to $LK,"CPURep",A="MN:CPURep"$(). * Added multicore report to $LK,"CPURep",A="MN:CPURep"$().
$IV,1$----07/09/16 08:46:36----$IV,0$ $IV,1$----07/09/16 08:46:36----$IV,0$
* Changed scoring in $LK,"::/Demo/Games/EagleDive.HC"$. * Changed scoring in $LK,"::/Demo/Games/Talons.HC"$.
* Replaced many $FG,2$"%Q"$FG$ with $FG,2$"%$$Q"$FG$. * Replaced many $FG,2$"%Q"$FG$ with $FG,2$"%$$Q"$FG$.
* Fixed $FG,2$'\x24'$FG$. * Fixed $FG,2$'\x24'$FG$.
* Added $FG,2$'\d'$FG$ for $FG,2$'$$'$FG$. * Added $FG,2$'\d'$FG$ for $FG,2$'$$'$FG$.
@@ -108,11 +143,11 @@ $IV,1$----07/07/16 07:21:03----$IV,0$
$IV,1$----07/06/16 23:45:30----$IV,0$ $IV,1$----07/06/16 23:45:30----$IV,0$
* Fixed multicore bug in $LK,"Sprite3",A="MN:Sprite3"$(). * Fixed multicore bug in $LK,"Sprite3",A="MN:Sprite3"$().
* Improved $LK,"::/Demo/Games/EagleDive.HC"$. * Improved $LK,"::/Demo/Games/Talons.HC"$.
$IV,1$----07/05/16 06:03:47----$IV,0$ $IV,1$----07/05/16 06:03:47----$IV,0$
* $BK,1$TempleOS version 4.09 Released$BK,0$ * $BK,1$TempleOS version 4.09 Released$BK,0$
* Improved $LK,"::/Demo/Games/EagleDive.HC"$. * Improved $LK,"::/Demo/Games/Talons.HC"$.
* Improved $LK,"GrFillTri0",A="MN:GrFillTri0"$(). * Improved $LK,"GrFillTri0",A="MN:GrFillTri0"$().
$IV,1$----07/03/16 04:30:05----$IV,0$ $IV,1$----07/03/16 04:30:05----$IV,0$
@@ -165,7 +200,7 @@ $IV,1$----06/16/16 19:49:39----$IV,0$
$IV,1$----06/02/16 03:20:56----$IV,0$ $IV,1$----06/02/16 03:20:56----$IV,0$
* $BK,1$TempleOS version 4.07 Released$BK,0$ * $BK,1$TempleOS version 4.07 Released$BK,0$
* Added claws to $LK,"::/Demo/Games/EagleDive.HC"$. * Added claws to $LK,"::/Demo/Games/Talons.HC"$.
$IV,1$----05/30/16 21:16:44----$IV,0$ $IV,1$----05/30/16 21:16:44----$IV,0$
* Added waterfall to $LK,"::/Demo/Games/RawHide.HC"$. * Added waterfall to $LK,"::/Demo/Games/RawHide.HC"$.
+2 -2
View File
@@ -94,7 +94,7 @@ $LK,"::/Demo/Games/Collision.HC"$
$ID,-2$$TR,"Games: Advanced"$ $ID,-2$$TR,"Games: Advanced"$
$ID,2$$LK,"::/Demo/MultiCore/LoadTest.HC"$ $ID,2$$LK,"::/Demo/MultiCore/LoadTest.HC"$
$LK,"::/Demo/MultiCore/Primes.HC"$ $LK,"::/Demo/MultiCore/Primes.HC"$
$LK,"::/Demo/MultiCore/RadixSort.HC"$ $LK,"::/Demo/MultiCore/MPRadix.HC"$
$LK,"::/Demo/MultiCore/Interrupts.HC"$ $LK,"::/Demo/MultiCore/Interrupts.HC"$
$MA-X+PU,"::/Apps/AfterEgypt",LM="Cd(\"::/Apps/AfterEgypt\");Dir;View;\n"$ $MA-X+PU,"::/Apps/AfterEgypt",LM="Cd(\"::/Apps/AfterEgypt\");Dir;View;\n"$
$LK,"::/Demo/Games/Varoom.HC"$ $LK,"::/Demo/Games/Varoom.HC"$
@@ -117,7 +117,7 @@ $LK,"::/Demo/Games/Squirt.HC"$
$MA-X+PU,"::/Apps/X-Caliber",LM="Cd(\"::/Apps/X-Caliber\");Dir;View;\n"$ $MA-X+PU,"::/Apps/X-Caliber",LM="Cd(\"::/Apps/X-Caliber\");Dir;View;\n"$
$LK,"::/Demo/Games/ZoneOut.HC"$ $LK,"::/Demo/Games/ZoneOut.HC"$
$LK,"::/Demo/Games/CastleFrankenstein.HC"$ $LK,"::/Demo/Games/CastleFrankenstein.HC"$
$LK,"::/Demo/Games/EagleDive.HC"$ $LK,"::/Demo/Games/Talons.HC"$
$MA-X+PU,"::/Apps/Strut",LM="Cd(\"::/Apps/Strut\");Dir;View;\n"$ $MA-X+PU,"::/Apps/Strut",LM="Cd(\"::/Apps/Strut\");Dir;View;\n"$
$MA-X+PU,"::/Apps/Span",LM="Cd(\"::/Apps/Span\");Dir;View;\n"$ $MA-X+PU,"::/Apps/Span",LM="Cd(\"::/Apps/Span\");Dir;View;\n"$
$MA-X+PU,"::/Apps/Psalmody",LM="Cd(\"::/Apps/Psalmody\");Dir;View;\n"$ $MA-X+PU,"::/Apps/Psalmody",LM="Cd(\"::/Apps/Psalmody\");Dir;View;\n"$
+1 -1
View File
@@ -13,7 +13,7 @@ Here is the grammar:
The format of DolDoc cmds is a two character code, +/-flags, a comma and args separated by commas. Some commands have mandatory args. Optional args are indicated with <$LK,"ArgCode",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_FLAGS"$>$FG,2$=$FG$. A $LK,"ColorName",A="MN:ST_COLORS"$ bracked by dollars, will change the foreground color. The format of DolDoc cmds is a two character code, +/-flags, a comma and args separated by commas. Some commands have mandatory args. Optional args are indicated with <$LK,"ArgCode",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_FLAGS"$>$FG,2$=$FG$. A $LK,"ColorName",A="MN:ST_COLORS"$ bracked by dollars, will change the foreground color.
See $LK,"::/Doc/Widget.DD"$ and $LK,"::/Demo/DolDoc/DemoDoc.DD"$. See $LK,"::/Doc/Widget.DD"$, $LK,"::/Demo/DolDoc/DemoDoc.DD"$, and $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$.
<$LK,"TwoLetterCmd",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_CMDS"$> See $LK,"Type Defines",A="MN:DOCT_TEXT"$ and $LK,"PrsDollarCmd",A="MN:PrsDollarCmd"$(). <$LK,"TwoLetterCmd",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_CMDS"$> See $LK,"Type Defines",A="MN:DOCT_TEXT"$ and $LK,"PrsDollarCmd",A="MN:PrsDollarCmd"$().
$TR,"TX Text"$ $TR,"TX Text"$
+1 -1
View File
@@ -1,4 +1,4 @@
$WW+H,1$$FG,5$$TX+CX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$$FG$ $WW+H,1$$FG,5$$TX+CX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$$FG$
$TX+CX,"Public Domain Operating System"$ $TX+CX,"Public Domain Operating System"$
+1 -1
View File
@@ -10,4 +10,4 @@ The 4th dimension allows a neat trick where you can place pos shifts (translatio
Finally, $LK,"CDC",A="MN:CDC"$'s have an $FG,2$x$FG$, $FG,2$y$FG$ and $FG,2$z$FG$ which is an additional shift (translation). Finally, $LK,"CDC",A="MN:CDC"$'s have an $FG,2$x$FG$, $FG,2$y$FG$ and $FG,2$z$FG$ which is an additional shift (translation).
The transformation is implemented as a callback on the $LK,"CDC",A="MN:CDC"$'s $FG,2$transform()$FG$ member. The default $FG,2$transform()$FG$ callback is $LK,"DCTransform",A="MN:DCTransform"$(). See $LK,"::/Demo/Games/EagleDive.HC"$ or $LK,"::/Demo/Games/CastleFrankenstein.HC"$ to see how to change the $FG,2$transform()$FG$ callback for foreshortening. The transformation is implemented as a callback on the $LK,"CDC",A="MN:CDC"$'s $FG,2$transform()$FG$ member. The default $FG,2$transform()$FG$ callback is $LK,"DCTransform",A="MN:DCTransform"$(). See $LK,"::/Demo/Games/Talons.HC"$ or $LK,"::/Demo/Games/CastleFrankenstein.HC"$ to see how to change the $FG,2$transform()$FG$ callback for foreshortening.
+1 -1
View File
@@ -23,7 +23,7 @@ $LK,"/Demo/Games/CircleTrace.HC",A="FI:::/Demo/Games/CircleTrace.HC"$
$LK,"/Demo/Games/Collision.HC",A="FI:::/Demo/Games/Collision.HC"$ $LK,"/Demo/Games/Collision.HC",A="FI:::/Demo/Games/Collision.HC"$
$LK,"/Demo/Games/Digits.HC",A="FI:::/Demo/Games/Digits.HC"$ $LK,"/Demo/Games/Digits.HC",A="FI:::/Demo/Games/Digits.HC"$
$LK,"/Demo/Games/DunGen.HC",A="FI:::/Demo/Games/DunGen.HC"$ $LK,"/Demo/Games/DunGen.HC",A="FI:::/Demo/Games/DunGen.HC"$
$LK,"/Demo/Games/EagleDive.HC",A="FI:::/Demo/Games/EagleDive.HC"$ $LK,"/Demo/Games/Talons.HC",A="FI:::/Demo/Games/Talons.HC"$
$LK,"/Demo/Games/ElephantWalk.HC",A="FI:::/Demo/Games/ElephantWalk.HC"$ $LK,"/Demo/Games/ElephantWalk.HC",A="FI:::/Demo/Games/ElephantWalk.HC"$
$LK,"/Demo/Games/FlapBat.HC",A="FI:::/Demo/Games/FlapBat.HC"$ $LK,"/Demo/Games/FlapBat.HC",A="FI:::/Demo/Games/FlapBat.HC"$
$LK,"/Demo/Games/FlatTops.HC",A="FI:::/Demo/Games/FlatTops.HC"$ $LK,"/Demo/Games/FlatTops.HC",A="FI:::/Demo/Games/FlatTops.HC"$
+1 -1
View File
@@ -35,4 +35,4 @@ U0 StartUpTasks()
StartUpTasks; StartUpTasks;
"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time; "\nTempleOS V%5.3f\t%D %T\n\n",sys_os_version,sys_compile_time,sys_compile_time;
+21 -22
View File
@@ -88,7 +88,7 @@ Bool BootDVDProbeAll(CBlkDev *bd)
} }
} }
U0 ATARepEntry(I64 base0,I64 base1,I64 unit,I64 irq,U8 *msg, U0 ATARepEntry(I64 base0,I64 base1,I64 unit,U8 *msg,
CATARep **_head,I64 *num_hints) CATARep **_head,I64 *num_hints)
{ {
I64 type; I64 type;
@@ -97,13 +97,13 @@ U0 ATARepEntry(I64 base0,I64 base1,I64 unit,I64 irq,U8 *msg,
CATARep *tmpha; CATARep *tmpha;
if (type=ATAProbe(base0,base1,unit)) { if (type=ATAProbe(base0,base1,unit)) {
*num_hints+=1; *num_hints+=1;
"\n\n$$PURPLE$$ $$BT+X,\"%d\",LM=\"%d\\n\"$$$$FG$$$$LM,4$$",*num_hints,*num_hints; "\n$$PURPLE$$ $$BT+X,\"%d\",LM=\"%d\\n\"$$$$FG$$$$LM,4$$",*num_hints,*num_hints;
if (type==BDT_ATA) if (type==BDT_ATA)
"$$RED$$Hard Drive $$LTBLUE$$ATA "; "$$RED$$Hard Drive $$LTBLUE$$ATA ";
else else
"$$RED$$CD/DVD Drive $$LTBLUE$$ATAPI "; "$$RED$$CD/DVD Drive $$LTBLUE$$ATAPI ";
"%s$$FG$$\nBase0:0x%04X Base1:0x%04X\nIrq:0x%02X Unit:%d$$LM,0$$\n", "%s$$FG$$\nBase0:0x%04X Base1:0x%04X Unit:%d$$LM,0$$\n",
msg,base0,base1,irq,unit; msg,base0,base1,unit;
if (_head) { if (_head) {
tmpha=CAlloc(sizeof(CATARep)); tmpha=CAlloc(sizeof(CATARep));
tmpha->next=*_head; tmpha->next=*_head;
@@ -130,7 +130,7 @@ Bool ATARepExitAllApplications()
public I64 ATARep(Bool pmt=TRUE,Bool just_ide=FALSE,CATARep **_head=NULL) public I64 ATARep(Bool pmt=TRUE,Bool just_ide=FALSE,CATARep **_head=NULL)
{//Report possible ATA devices by probing. Hard disks and CD/DVDs. {//Report possible ATA devices by probing. Hard disks and CD/DVDs.
I64 d1,d2,d3,i,j,k,cnt=0,unlock_flags=0,num_hints=0; I64 d1,d2,i,j,k,cnt=0,unlock_flags=0,num_hints=0;
#assert NUM_BLKDEVS<=64 #assert NUM_BLKDEVS<=64
if (_head) *_head=NULL; if (_head) *_head=NULL;
@@ -155,35 +155,34 @@ public I64 ATARep(Bool pmt=TRUE,Bool just_ide=FALSE,CATARep **_head=NULL)
d1=PCIReadU32(j.u8[2],j.u8[1],j.u8[0],0x10); d1=PCIReadU32(j.u8[2],j.u8[1],j.u8[0],0x10);
d2=PCIReadU32(j.u8[2],j.u8[1],j.u8[0],0x14); d2=PCIReadU32(j.u8[2],j.u8[1],j.u8[0],0x14);
d3=PCIReadU8(j.u8[2],j.u8[1],j.u8[0],0x3C);
if (d1&1 && d2&1) { if (d1&1 && d2&1) {
ATARepEntry(d1,d2,0,d3,"Primary IDE",_head,&num_hints); ATARepEntry(d1,d2,0,"Primary IDE",_head,&num_hints);
ATARepEntry(d1,d2,1,d3,"Primary IDE",_head,&num_hints); ATARepEntry(d1,d2,1,"Primary IDE",_head,&num_hints);
} else { } else {
d1=0x1F0; d2=0x3F6; d3=14; d1=0x1F0; d2=0x3F6;
ATARepEntry(d1,d2,0,d3,"Primary IDE",_head,&num_hints); ATARepEntry(d1,d2,0,"Primary IDE",_head,&num_hints);
ATARepEntry(d1,d2,1,d3,"Primary IDE",_head,&num_hints); ATARepEntry(d1,d2,1,"Primary IDE",_head,&num_hints);
} }
d1=PCIReadU32(j.u8[2],j.u8[1],j.u8[0],0x18); d1=PCIReadU32(j.u8[2],j.u8[1],j.u8[0],0x18);
d2=PCIReadU32(j.u8[2],j.u8[1],j.u8[0],0x1C); d2=PCIReadU32(j.u8[2],j.u8[1],j.u8[0],0x1C);
if (d1&1 && d2&1) { if (d1&1 && d2&1) {
ATARepEntry(d1,d2,0,d3,"Secondary IDE",_head,&num_hints); ATARepEntry(d1,d2,0,"Secondary IDE",_head,&num_hints);
ATARepEntry(d1,d2,1,d3,"Secondary IDE",_head,&num_hints); ATARepEntry(d1,d2,1,"Secondary IDE",_head,&num_hints);
} else { } else {
d1=0x170; d2=0x376; d3=15; d1=0x170; d2=0x376;
ATARepEntry(d1,d2,0,d3,"Secondary IDE",_head,&num_hints); ATARepEntry(d1,d2,0,"Secondary IDE",_head,&num_hints);
ATARepEntry(d1,d2,1,d3,"Secondary IDE",_head,&num_hints); ATARepEntry(d1,d2,1,"Secondary IDE",_head,&num_hints);
} }
} }
} }
if (!cnt) { if (!cnt) {
d1=0x1F0; d2=0x3F6; d3=14; d1=0x1F0; d2=0x3F6;
ATARepEntry(d1,d2,0,d3,"Primary IDE",_head,&num_hints); ATARepEntry(d1,d2,0,"Primary IDE",_head,&num_hints);
ATARepEntry(d1,d2,1,d3,"Primary IDE",_head,&num_hints); ATARepEntry(d1,d2,1,"Primary IDE",_head,&num_hints);
d1=0x170; d2=0x376; d3=15; d1=0x170; d2=0x376;
ATARepEntry(d1,d2,0,d3,"Secondary IDE",_head,&num_hints); ATARepEntry(d1,d2,0,"Secondary IDE",_head,&num_hints);
ATARepEntry(d1,d2,1,d3,"Secondary IDE",_head,&num_hints); ATARepEntry(d1,d2,1,"Secondary IDE",_head,&num_hints);
} }
'\n\n'; '\n\n';
for (i=0;i<NUM_BLKDEVS;i++) for (i=0;i<NUM_BLKDEVS;i++)
-2
View File
@@ -177,7 +177,6 @@ Bool GetBaseUnit(CBlkDev *bd)
{ {
I64 ch; I64 ch;
Bool probe; Bool probe;
" TempleOS\n\n\n";
#exe { #exe {
if (kernel_cfg->opts[CFG_DONT_PROBE]) if (kernel_cfg->opts[CFG_DONT_PROBE])
StreamPrint("probe=FALSE;"); StreamPrint("probe=FALSE;");
@@ -221,7 +220,6 @@ U0 BlkDevsInitAll()
blkdev.drvs=CAlloc(sizeof(CDrv)*NUM_DRVS); blkdev.drvs=CAlloc(sizeof(CDrv)*NUM_DRVS);
for (i=0;i<NUM_DRVS;i++) for (i=0;i<NUM_DRVS;i++)
blkdev.let_to_drv[i]=&blkdev.drvs[i]; blkdev.let_to_drv[i]=&blkdev.drvs[i];
text.raw_col=0;
#exe { #exe {
if (kernel_cfg->opts[CFG_AUTO_MOUNT_IDE]) if (kernel_cfg->opts[CFG_AUTO_MOUNT_IDE])
StreamPrint("AutoMountIDE;"); StreamPrint("AutoMountIDE;");
+4 -4
View File
@@ -155,6 +155,9 @@ U0 KernelMain()
//Before this point use $LK,"Snd",A="MN:Snd"$() and $LK,"BusyWait",A="MN:BusyWait"$() //Before this point use $LK,"Snd",A="MN:Snd"$() and $LK,"BusyWait",A="MN:BusyWait"$()
//to debug. After this point, use $LK,"RawPrint",A="MN:RawPrint"$() //to debug. After this point, use $LK,"RawPrint",A="MN:RawPrint"$()
LBts(&sys_run_level,RLf_RAW); LBts(&sys_run_level,RLf_RAW);
"TempleOS V%5.3f\t%D %T\n\n",
sys_os_version,sys_compile_time,sys_compile_time;
TimersInit; TimersInit;
if (BIOSTotalMem<ToI64(0.95*MEM_MIN_MEG*0x100000)) if (BIOSTotalMem<ToI64(0.95*MEM_MIN_MEG*0x100000))
RawPrint(4000,"!!! Requires $TX,"512Meg",D="DD_MEM_MIN_MEG"$ of RAM Memory !!!"); RawPrint(4000,"!!! Requires $TX,"512Meg",D="DD_MEM_MIN_MEG"$ of RAM Memory !!!");
@@ -167,11 +170,8 @@ U0 KernelMain()
LBts(&sys_run_level,RLf_INTERRUPTS); LBts(&sys_run_level,RLf_INTERRUPTS);
TimeStampFreqCal; TimeStampFreqCal;
"Before BlkDevsInitAll\n";
BlkDevsInitAll; BlkDevsInitAll;
"After BlkDevsInitAll\n"; "ChgDsk(':');\n";
ChgDsk(':'); ChgDsk(':');
#exe {StreamPrint("HomeSet(\"%s\");",kernel_cfg->home_dir);} #exe {StreamPrint("HomeSet(\"%s\");",kernel_cfg->home_dir);}
Gs->idle_task->cur_dv=blkdev.let_to_drv[*blkdev.home_dir-'A']; Gs->idle_task->cur_dv=blkdev.let_to_drv[*blkdev.home_dir-'A'];
+2 -1
View File
@@ -12,7 +12,8 @@ CTask *sys_winmgr_task,*sys_task_being_scrn_updated;
U8 *rev_bits_table, //Table with U8 bits revd U8 *rev_bits_table, //Table with U8 bits revd
*set_bits_table; //Table with count of set bits in a U8 *set_bits_table; //Table with count of set bits in a U8
CDate local_time_offset; CDate local_time_offset;
F64 *pow10_I64; F64 *pow10_I64,
sys_os_version=4.130;
CAutoCompleteDictGlbls acd; CAutoCompleteDictGlbls acd;
CAutoCompleteGlbls ac; CAutoCompleteGlbls ac;
+40 -21
View File
@@ -71,58 +71,77 @@ I64 CeilI64(I64 num,I64 to)
} }
//See $LK,"::/Doc/Credits.DD"$. //See $LK,"::/Doc/Credits.DD"$.
#define LIN_CONGRUE_A 6364136223846793005
#define LIN_CONGRUE_C 1442695040888963407
I16 RandI16() I16 RandI16()
{//Random I16. {//Random I16.
Fs->rand_seed=6364136223846793005*Fs->rand_seed+1442695040888963407; I64 res=Fs->rand_seed;
res=LIN_CONGRUE_A*res^(res&0xFFFFFFFF0000)>>16+LIN_CONGRUE_C;
if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND)) if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND))
Fs->rand_seed^=GetTSC>>4; res^=GetTSC;
return Fs->rand_seed.i16[0]; Fs->rand_seed=res;
return res.i16[0];
} }
U16 RandU16() U16 RandU16()
{//Random U16. {//Random U16.
Fs->rand_seed=6364136223846793005*Fs->rand_seed+1442695040888963407; I64 res=Fs->rand_seed;
res=LIN_CONGRUE_A*res^(res&0xFFFFFFFF0000)>>16+LIN_CONGRUE_C;
if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND)) if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND))
Fs->rand_seed^=GetTSC>>4; res^=GetTSC;
return Fs->rand_seed.u16[0]; Fs->rand_seed=res;
return res.u16[0];
} }
I32 RandI32() I32 RandI32()
{//Random I32. {//Random I32.
Fs->rand_seed=6364136223846793005*Fs->rand_seed+1442695040888963407; I64 res=Fs->rand_seed;
res=LIN_CONGRUE_A*res^(res&0xFFFFFFFF0000)>>16+LIN_CONGRUE_C;
if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND)) if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND))
Fs->rand_seed^=GetTSC>>4; res^=GetTSC;
return Fs->rand_seed.i32[0]; Fs->rand_seed=res;
return res.i32[0];
} }
U32 RandU32() U32 RandU32()
{//Random U32. {//Random U32.
Fs->rand_seed=6364136223846793005*Fs->rand_seed+1442695040888963407; I64 res=Fs->rand_seed;
res=LIN_CONGRUE_A*res^(res&0xFFFFFFFF0000)>>16+LIN_CONGRUE_C;
if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND)) if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND))
Fs->rand_seed^=GetTSC>>4; res^=GetTSC;
return Fs->rand_seed.u32[0]; Fs->rand_seed=res;
return res.u32[0];
} }
I64 RandI64() I64 RandI64()
{//Random I64. {//Random I64.
Fs->rand_seed=6364136223846793005*Fs->rand_seed+1442695040888963407; I64 res=Fs->rand_seed;
res=LIN_CONGRUE_A*res^(res&0xFFFFFFFF0000)>>16+LIN_CONGRUE_C;
if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND)) if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND))
Fs->rand_seed^=GetTSC>>4; res^=GetTSC;
return Fs->rand_seed; Fs->rand_seed=res;
return res;
} }
U64 RandU64() U64 RandU64()
{//Random U64. {//Random U64.
Fs->rand_seed=6364136223846793005*Fs->rand_seed+1442695040888963407; I64 res=Fs->rand_seed;
res=LIN_CONGRUE_A*res^(res&0xFFFFFFFF0000)>>16+LIN_CONGRUE_C;
if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND)) if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND))
Fs->rand_seed^=GetTSC>>4; res^=GetTSC;
return Fs->rand_seed; Fs->rand_seed=res;
return res;
} }
F64 Rand() F64 Rand()
{//Random F64. {//Random F64.
I64 res=RandI64&0x3FFFFFFFFFFFFFFF; I64 res=Fs->rand_seed;
return res/ToF64(0x4000000000000000); res=LIN_CONGRUE_A*res^(res&0xFFFFFFFF0000)>>16+LIN_CONGRUE_C;
if (!Bt(&Fs->task_flags,TASKf_NONTIMER_RAND))
res^=GetTSC;
Fs->rand_seed=res;
return (res&0x3FFFFFFFFFFFFFFF)/ToF64(0x4000000000000000);
} }
I64 Seed(I64 seed=0,CTask *task=NULL) I64 Seed(I64 seed=0,CTask *task=NULL)
@@ -133,6 +152,6 @@ I64 Seed(I64 seed=0,CTask *task=NULL)
return task->rand_seed=seed; return task->rand_seed=seed;
} else { } else {
LBtr(&task->task_flags,TASKf_NONTIMER_RAND); LBtr(&task->task_flags,TASKf_NONTIMER_RAND);
return task->rand_seed=GetTSC>>4; return task->rand_seed^=GetTSC;
} }
} }
+4
View File
@@ -30,15 +30,19 @@ SYS_DATA_BP:: DU64 0;
SYS_PROGRESSES:: SYS_PROGRESSES::
SYS_PROGRESS1:: DU64 0; SYS_PROGRESS1:: DU64 0;
SYS_PROGRESS1_MAX:: DU64 0; SYS_PROGRESS1_MAX:: DU64 0;
SYS_PROGRESS1_T0:: DU64 0;
SYS_PROGRESS1_DESC:: DU8 PROGRESS_DESC_LEN DUP(0); SYS_PROGRESS1_DESC:: DU8 PROGRESS_DESC_LEN DUP(0);
SYS_PROGRESS2:: DU64 0; SYS_PROGRESS2:: DU64 0;
SYS_PROGRESS2_MAX:: DU64 0; SYS_PROGRESS2_MAX:: DU64 0;
SYS_PROGRESS2_T0:: DU64 0;
SYS_PROGRESS2_DESC:: DU8 PROGRESS_DESC_LEN DUP(0); SYS_PROGRESS2_DESC:: DU8 PROGRESS_DESC_LEN DUP(0);
SYS_PROGRESS3:: DU64 0; SYS_PROGRESS3:: DU64 0;
SYS_PROGRESS3_MAX:: DU64 0; SYS_PROGRESS3_MAX:: DU64 0;
SYS_PROGRESS3_T0:: DU64 0;
SYS_PROGRESS3_DESC:: DU8 PROGRESS_DESC_LEN DUP(0); SYS_PROGRESS3_DESC:: DU8 PROGRESS_DESC_LEN DUP(0);
SYS_PROGRESS4:: DU64 0; SYS_PROGRESS4:: DU64 0;
SYS_PROGRESS4_MAX:: DU64 0; SYS_PROGRESS4_MAX:: DU64 0;
SYS_PROGRESS4_T0:: DU64 0;
SYS_PROGRESS4_DESC:: DU8 PROGRESS_DESC_LEN DUP(0); SYS_PROGRESS4_DESC:: DU8 PROGRESS_DESC_LEN DUP(0);
#assert $$-SYS_PROGRESSES==sizeof(CProgress)*4 #assert $$-SYS_PROGRESSES==sizeof(CProgress)*4
+1236 -1220
View File
File diff suppressed because it is too large. Load diff
+33 -38
View File
@@ -1375,10 +1375,6 @@ public class CDoc //Linked Text File header
updates_cnt; updates_cnt;
CEdFindText *find_replace; CEdFindText *find_replace;
U8 *cur_sprite;//Set cur_sprite use (ip.pos.x,ip.pos.y) as input.
//Output is nearest. See $LK,"*_cur_elem_num=",A="FF:::/Adam/Gr/SpriteEd.HC,*_cur_elem_num=doc->"$ and $LK,"::/Demo/Graphics/Pick.HC"$.
I64 nearest_sprite_elem_num;
CEdFileName filename; CEdFileName filename;
I64 file_attr; I64 file_attr;
I64 (*left_click_link)(CDoc *doc,CDocEntry *doc_e); I64 (*left_click_link)(CDoc *doc,CDocEntry *doc_e);
@@ -2138,34 +2134,35 @@ class CLexHashTableContext
#define CCF_KEEP_DOT 0x100 #define CCF_KEEP_DOT 0x100
#define CCF_KEEP_NUM_SIGN 0x200 #define CCF_KEEP_NUM_SIGN 0x200
#define CCF_KEEP_AT_SIGN 0x400 #define CCF_KEEP_AT_SIGN 0x400
#define CCf_PASS_TRACE_PRESENT 11 #define CCF_NO_CHAR_CONST 0x800
#define CCF_NOT_CONST 0x0000010000 #define CCf_PASS_TRACE_PRESENT 12
#define CCF_NO_REG_OPT 0x0000020000 #define CCF_NOT_CONST 0x0000020000
#define CCF_IN_QUOTES 0x0000040000 #define CCF_NO_REG_OPT 0x0000040000
#define CCF_EXE_BLK 0x0000080000 #define CCF_IN_QUOTES 0x0000080000
#define CCF_HAS_MISC_DATA 0x0000100000 #define CCF_EXE_BLK 0x0000100000
#define CCF_HAS_RETURN 0x0000200000 #define CCF_HAS_MISC_DATA 0x0000200000
#define CCF_ASM_EXPRESSIONS 0x0000400000 #define CCF_HAS_RETURN 0x0000400000
#define CCF_UNRESOLVED 0x0000800000 #define CCF_ASM_EXPRESSIONS 0x0000800000
#define CCF_LOCAL 0x0001000000 #define CCF_UNRESOLVED 0x0001000000
#define CCF_FUN_EXP 0x0002000000 #define CCF_LOCAL 0x0002000000
#define CCf_FUN_EXP 25 #define CCF_FUN_EXP 0x0004000000
#define CCF_POSTINC 0x0004000000 #define CCf_FUN_EXP 26
#define CCF_POSTDEC 0x0008000000 #define CCF_POSTINC 0x0008000000
#define CCF_PREINC 0x0010000000 #define CCF_POSTDEC 0x0010000000
#define CCF_PREDEC 0x0020000000 #define CCF_PREINC 0x0020000000
#define CCF_ARRAY 0x0040000000 #define CCF_PREDEC 0x0040000000
#define CCF_RAX 0x0080000000 #define CCF_ARRAY 0x0080000000
#define CCF_USE_LAST_U16 0x0100000000 #define CCF_RAX 0x0100000000
#define CCf_USE_LAST_U16 32 #define CCF_USE_LAST_U16 0x0200000000
#define CCF_LAST_WAS_DOT 0x0200000000 #define CCf_USE_LAST_U16 33
#define CCF_AOT_COMPILE 0x0400000000 #define CCF_LAST_WAS_DOT 0x0400000000
#define CCf_AOT_COMPILE 34 #define CCF_AOT_COMPILE 0x0800000000
#define CCF_NO_ABSS 0x0800000000 #define CCf_AOT_COMPILE 35
#define CCF_PAREN 0x1000000000 #define CCF_NO_ABSS 0x1000000000
#define CCf_PAREN 36 #define CCF_PAREN 0x2000000000
#define CCF_CLASS_IP 0x2000000000 #define CCf_PAREN 37
#define CCF_DONT_MAKE_RES 0x4000000000 #define CCF_CLASS_IP 0x4000000000
#define CCF_DONT_MAKE_RES 0x8000000000
public class CCmpCtrl public class CCmpCtrl
{ {
@@ -3295,6 +3292,7 @@ public class CTaskSettings
#define TASKf_PENDING_BREAK 11 #define TASKf_PENDING_BREAK 11
#define TASKf_BREAK_TO_SHIFT_ESC 12 #define TASKf_BREAK_TO_SHIFT_ESC 12
#define TASKf_KILL_AFTER_DBG 13 #define TASKf_KILL_AFTER_DBG 13
#define TASKf_NONTIMER_RAND 14 #define TASKf_NONTIMER_RAND 14
//CTask.display_flags //CTask.display_flags
@@ -3700,15 +3698,11 @@ public class CDC
//Set by $LK,"DCSymmetrySet",A="MN:DCSymmetrySet"$() or $LK,"DCSymmetry3Set",A="MN:DCSymmetry3Set"$() //Set by $LK,"DCSymmetrySet",A="MN:DCSymmetrySet"$() or $LK,"DCSymmetry3Set",A="MN:DCSymmetry3Set"$()
CGrSym sym; CGrSym sym;
I64 nearest_dist,
cur_sprite_elem_num,
nearest_sprite_elem_num; //num in a CSprite elem lst
I32 cur_x,cur_y,cur_z,pad; I32 cur_x,cur_y,cur_z,pad;
I64 collision_cnt; I64 collision_cnt;
//Set by $LK,"DCF_RECORD_EXTENTS",A="MN:DCF_RECORD_EXTENTS"$ I64 nearest_dist,
I64 min_x,max_x,min_y,max_y; //scrn coordinates min_x,max_x,min_y,max_y; //Set by $LK,"DCF_RECORD_EXTENTS",A="MN:DCF_RECORD_EXTENTS"$ (scrn coordinates)
U32 dc_signature,pad; U32 dc_signature,pad;
CTask *mem_task,*win_task; CTask *mem_task,*win_task;
@@ -3912,6 +3906,7 @@ public class CDbgGlbls
class CProgress class CProgress
{ {
I64 val,max; I64 val,max;
F64 t0;
U8 desc[PROGRESS_DESC_LEN]; U8 desc[PROGRESS_DESC_LEN];
}; };
+8 -4
View File
@@ -206,19 +206,23 @@ _extern SYS_CTRL_ALT_FLAGS
public _extern SYS_PROGRESS1 I64 progress1; //Current progress 1. public _extern SYS_PROGRESS1 I64 progress1; //Current progress 1.
public _extern SYS_PROGRESS1_DESC public _extern SYS_PROGRESS1_DESC
U8 progress1_desc[PROGRESS_DESC_LEN]; //Progress 1 desc. U8 progress1_desc[PROGRESS_DESC_LEN]; //Progress 1 desc.
public _extern SYS_PROGRESS1_MAX I64 progress1_max; //Max progress 1. public _extern SYS_PROGRESS1_MAX I64 progress1_max; //Progress 1 max.
public _extern SYS_PROGRESS1_T0 F64 progress1_t0; //Progress 1 start time.
public _extern SYS_PROGRESS2 I64 progress2; //Current progress 2. public _extern SYS_PROGRESS2 I64 progress2; //Current progress 2.
public _extern SYS_PROGRESS2_DESC public _extern SYS_PROGRESS2_DESC
U8 progress2_desc[PROGRESS_DESC_LEN]; //Progress 2 desc. U8 progress2_desc[PROGRESS_DESC_LEN]; //Progress 2 desc.
public _extern SYS_PROGRESS2_MAX I64 progress2_max; //Max progress 2. public _extern SYS_PROGRESS2_MAX I64 progress2_max; //Progress 2 max.
public _extern SYS_PROGRESS2_T0 F64 progress2_t0; //Progress 2 start time.
public _extern SYS_PROGRESS3 I64 progress3; //Current progress 3. public _extern SYS_PROGRESS3 I64 progress3; //Current progress 3.
public _extern SYS_PROGRESS3_DESC public _extern SYS_PROGRESS3_DESC
U8 progress3_desc[PROGRESS_DESC_LEN]; //Progress 3 desc. U8 progress3_desc[PROGRESS_DESC_LEN]; //Progress 3 desc.
public _extern SYS_PROGRESS3_MAX I64 progress3_max; //Max progress 3. public _extern SYS_PROGRESS3_MAX I64 progress3_max; //Progress 3 max.
public _extern SYS_PROGRESS3_T0 F64 progress3_t0; //Progress 3 start time.
public _extern SYS_PROGRESS4 I64 progress4; //Current progress 4. public _extern SYS_PROGRESS4 I64 progress4; //Current progress 4.
public _extern SYS_PROGRESS4_DESC public _extern SYS_PROGRESS4_DESC
U8 progress4_desc[PROGRESS_DESC_LEN]; //Progress 4 desc. U8 progress4_desc[PROGRESS_DESC_LEN]; //Progress 4 desc.
public _extern SYS_PROGRESS4_MAX I64 progress4_max; //Max progress 4. public _extern SYS_PROGRESS4_MAX I64 progress4_max; //Progress 4 max.
public _extern SYS_PROGRESS4_T0 F64 progress4_t0; //Progress 4 start time.
public _extern SYS_PROGRESSES public _extern SYS_PROGRESSES
CProgress sys_progresses[NUM_PROGRESS_BARS]; //All progress bars. CProgress sys_progresses[NUM_PROGRESS_BARS]; //All progress bars.
+2
View File
@@ -394,6 +394,7 @@ extern U0 (*fp_set_std_palette)();
public extern U8 *Color2Str(U8 *buf,CColorROPU32 c); public extern U8 *Color2Str(U8 *buf,CColorROPU32 c);
public extern CColorROPU16 Str2ColorU16(U8 *st); public extern CColorROPU16 Str2ColorU16(U8 *st);
public extern CColorROPU32 Str2ColorU32(U8 *st); public extern CColorROPU32 Str2ColorU32(U8 *st);
#help_index "Hash" #help_index "Hash"
#help_file "::/Doc/Hash" #help_file "::/Doc/Hash"
public _extern _HASH_ADD U0 HashAdd(CHash *tmph,CHashTable *table); public _extern _HASH_ADD U0 HashAdd(CHash *tmph,CHashTable *table);
@@ -573,6 +574,7 @@ public extern U0 QSort(U8 *base,I64 num, I64 width,
I64 (*fp_compare)(U8 *e1,U8 *e2)); I64 (*fp_compare)(U8 *e1,U8 *e2));
public extern U0 QSortI64(I64 *base,I64 num, public extern U0 QSortI64(I64 *base,I64 num,
I64 (*fp_compare)(I64 e1,I64 e2)); I64 (*fp_compare)(I64 e1,I64 e2));
public extern F64 sys_os_version;
#help_index "Misc/Progress Bars" #help_index "Misc/Progress Bars"
public extern U0 ProgressBarsRst(); public extern U0 ProgressBarsRst();
+2 -2
View File
@@ -5,7 +5,7 @@ fp_compare() passes by value instead of ref.
For ascending strings: return StrCmp(e1,e2); For ascending strings: return StrCmp(e1,e2);
For ascending ints : return e1-e2; For ascending ints : return e1-e2;
Maybe, look at $LK,"::/Demo/MultiCore/RadixSort.HC"$. Maybe, look at $LK,"::/Demo/MultiCore/MPRadix.HC"$.
*/ */
I64 i,*left,*right,pivot; I64 i,*left,*right,pivot;
if (num>1) { if (num>1) {
@@ -89,7 +89,7 @@ For ascending strings: return StrCmp(*e1,*e2);
For ascending ints : return *e1-*e2; For ascending ints : return *e1-*e2;
Don't return e1-e2 if numbers can overflow, return -1,0 or 1. Don't return e1-e2 if numbers can overflow, return -1,0 or 1.
Maybe, look at $LK,"::/Demo/MultiCore/RadixSort.HC"$. Maybe, look at $LK,"::/Demo/MultiCore/MPRadix.HC"$.
*/ */
U8 *tmp; U8 *tmp;
if (width && num>1) { if (width && num>1) {
+182 -177
View File
@@ -1,7 +1,8 @@
U0 TS(I64 i) U0 TS(I64 i,F64 t0)
{ {
progress4=i; progress4=i;
progress4_max=171; progress4_max=172;
progress4_t0=t0;
*progress4_desc=0; *progress4_desc=0;
} }
U0 TSFile(U8 *name,I64 ms=750) U0 TSFile(U8 *name,I64 ms=750)
@@ -1287,11 +1288,11 @@ U0 DoFPS()
DeathWait(&task,TRUE); DeathWait(&task,TRUE);
} }
U0 DoEagleDive() U0 DoTalons()
{ {
I64 i; I64 i;
CTask *task=User; CTask *task=User;
XTalkWait(task,"#include \"::/Demo/Games/EagleDive\";\n"); XTalkWait(task,"#include \"::/Demo/Games/Talons\";\n");
Sleep(500); Sleep(500);
for (i=0;i<10;i++) { for (i=0;i<10;i++) {
PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP);
@@ -1388,7 +1389,8 @@ U0 DoSortFile()
U0 DoToHtmlToTXT() U0 DoToHtmlToTXT()
{ {
CTask *task=User("#include \"::/Demo/ToHtmlToTXTDemo/HtmlGen\";" CTask *task=User("#include \"::/Demo/ToHtmlToTXTDemo/HtmlGen\";"
"#include \"::/Demo/ToHtmlToTXTDemo/TXTGen\";Sleep(750);\n"); "#include \"::/Demo/ToHtmlToTXTDemo/TXTGen\";"
"Type(\"/Home/DemoOutPage.TXT\");Sleep(750);\n");
DeathWait(&task,TRUE); DeathWait(&task,TRUE);
} }
@@ -1556,195 +1558,198 @@ U0 DoAsmAndC2()
} }
U0 OSTestSuite() U0 OSTestSuite()
{ //$MA+LIS-X,"RENUM",LM="I64 i;for (i=0;i<171;i++){if(i)Msg(MSG_KEY_DOWN_UP,0,SC_F3);else\"%cTS(%c\",CH_CTRLF,CH_ESC;Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);\"%03d\",i;Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);\"%c%c%c\",CH_BACKSPACE,CH_BACKSPACE,CH_BACKSPACE;}"$ { //$MA+LIS-X,"RENUM",LM="I64 i;for (i=0;i<172;i++){if(i)Msg(MSG_KEY_DOWN_UP,0,SC_F3);else\"%cTS(%c\",CH_CTRLF,CH_ESC;Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);\"%03d\",i;Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);\"%c%c%c\",CH_BACKSPACE,CH_BACKSPACE,CH_BACKSPACE;}"$
F64 t0=tS;
CTask *task; CTask *task;
TS(000); DoBlackDiamond; TS(000,t0); DoBlackDiamond;
TS(001); DoEagleDive; TS(001,t0); DoTalons;
TS(002); DoFlatTops; TS(002,t0); DoFlatTops;
TS(003); DoDunGen; TS(003,t0); DoDunGen;
TS(004); DoFPS; TS(004,t0); DoFPS;
TS(005); DoZoneOut; TS(005,t0); DoZoneOut;
TS(006); DoVaroom; TS(006,t0); DoVaroom;
TS(007); DoRocket; TS(007,t0); DoRocket;
TS(008); DoRocketScience; TS(008,t0); DoRocketScience;
TS(009); DoBattleLines; TS(009,t0); DoBattleLines;
TS(010); DoBigGuns; TS(010,t0); DoBigGuns;
TS(011); DoFlapBat; TS(011,t0); DoFlapBat;
TS(012); DoTimeOut; TS(012,t0); DoTimeOut;
TS(013); DoToTheFront; TS(013,t0); DoToTheFront;
TS(014); DoPsalmody; TS(014,t0); DoPsalmody;
TS(015); DoJukeBox; TS(015,t0); DoJukeBox;
TS(016); if (!sys_heap_init_flag) DoSpan; //Has FloodFill TS(016,t0); if (!sys_heap_init_flag) DoSpan; //Has FloodFill
TS(017); DoStrut; TS(017,t0); DoStrut;
TS(018); DoRawHide; TS(018,t0); DoRawHide;
TS(019); DoKeepAway; TS(019,t0); DoKeepAway;
TS(020); DoAfterEgypt; TS(020,t0); DoAfterEgypt;
TS(021); DoXCaliber; TS(021,t0); DoXCaliber;
TS(022); DoWenceslas; TS(022,t0); DoWenceslas;
TS(023); DoBomberGolf; TS(023,t0); DoBomberGolf;
TS(024); DoTheDead; TS(024,t0); DoTheDead;
TS(025); DoTreeCheckers; TS(025,t0); DoTreeCheckers;
TS(026); DoMPAdd; TS(026,t0); TSFile("::/Demo/RadixSort");
TS(027); TSFile("::/Demo/MultiCore/Primes"); TS(027,t0); DoMPAdd;
TS(028); if (FileFind(BIBLE_FILENAME)) TS(028,t0); TSFile("::/Demo/MultiCore/Primes");
TS(029,t0); if (FileFind(BIBLE_FILENAME))
TSFile("::/Demo/MultiCore/Palindrome"); TSFile("::/Demo/MultiCore/Palindrome");
TS(029); TSFileChar("::/Demo/MultiCore/Clouds"); TS(030,t0); TSFileChar("::/Demo/MultiCore/Clouds");
TS(030); if (mp_cnt>1) TSFile("::/Demo/MultiCore/RadixSort"); TS(031,t0); if (mp_cnt>1) TSFile("::/Demo/MultiCore/MPRadix");
TS(031); if (mp_cnt>1 && DrvIsWritable(':')) TS(032,t0); if (mp_cnt>1 && DrvIsWritable(':'))
TSFileChar("::/Demo/MultiCore/LoadTest"); TSFileChar("::/Demo/MultiCore/LoadTest");
TS(032); if (mp_cnt>1) TSFile("::/Demo/MultiCore/MPPrint"); TS(033,t0); if (mp_cnt>1) TSFile("::/Demo/MultiCore/MPPrint");
TS(033); if (mp_cnt>1) TSFile("::/Demo/MultiCore/Lock"); TS(034,t0); if (mp_cnt>1) TSFile("::/Demo/MultiCore/Lock");
TS(034); if (mp_cnt>1) TSFile("::/Demo/MultiCore/Interrupts"); TS(035,t0); if (mp_cnt>1) TSFile("::/Demo/MultiCore/Interrupts");
TS(035); TSFileChar("::/Demo/Graphics/SpritePlot"); TS(036,t0); TSFileChar("::/Demo/Graphics/SpritePlot");
TS(036); TSFileChar("::/Demo/Graphics/Elephant",,CH_SHIFT_ESC); TS(037,t0); TSFileChar("::/Demo/Graphics/Elephant",,CH_SHIFT_ESC);
TS(037); TSFileChar("::/Demo/Graphics/SpritePlot3D"); TS(038,t0); TSFileChar("::/Demo/Graphics/SpritePlot3D");
TS(038); TSFile("::/Demo/Graphics/SpritePut"); TS(039,t0); TSFile("::/Demo/Graphics/SpritePut");
TS(039); TSFile("::/Demo/Graphics/SpritePutExt"); TS(040,t0); TSFile("::/Demo/Graphics/SpritePutExt");
TS(040); TSFile("::/Demo/Graphics/SpriteText"); TS(041,t0); TSFile("::/Demo/Graphics/SpriteText");
TS(041); TSFile("::/Demo/Graphics/SpriteRaw"); TS(042,t0); TSFile("::/Demo/Graphics/SpriteRaw");
TS(042); TSFile("::/Demo/Graphics/EdSprite"); TS(043,t0); TSFile("::/Demo/Graphics/EdSprite");
TS(043); TSFile("::/Demo/Graphics/Balloon",0); TS(044,t0); TSFile("::/Demo/Graphics/Balloon",0);
TS(044); TSFile("::/Demo/Carry"); TS(045,t0); TSFile("::/Demo/Carry");
TS(045); TSFile("::/Demo/Directives"); TS(046,t0); TSFile("::/Demo/Directives");
TS(046); DoRandDemo; TS(047,t0); DoRandDemo;
TS(047); TSFileChar("::/Demo/Graphics/Extents"); TS(048,t0); TSFileChar("::/Demo/Graphics/Extents");
TS(048); TSFileChar("::/Demo/Graphics/NetOfDots"); TS(049,t0); TSFileChar("::/Demo/Graphics/NetOfDots");
TS(049); TSFileChar("::/Demo/Graphics/SunMoon"); TS(050,t0); TSFileChar("::/Demo/Graphics/SunMoon");
TS(050); DoLowPassFilter; TS(051,t0); DoLowPassFilter;
TS(051); DoMathAudioDemo; TS(052,t0); DoMathAudioDemo;
TS(052); TSFileChar("::/Demo/Graphics/Lines"); TS(053,t0); TSFileChar("::/Demo/Graphics/Lines");
TS(053); TSFileChar("::/Demo/Graphics/Bounce",,CH_SHIFT_ESC,FALSE); TS(054,t0); TSFileChar("::/Demo/Graphics/Bounce",,CH_SHIFT_ESC,FALSE);
TS(054); DoMsgLoop; TS(055,t0); DoMsgLoop;
TS(055); DoASCIIOrgan; TS(056,t0); DoASCIIOrgan;
TS(056); DoMorseCode; TS(057,t0); DoMorseCode;
TS(057); DoPixCollision; TS(058,t0); DoPixCollision;
TS(058); DoDoodle; TS(059,t0); DoDoodle;
TS(059); DoMassSpring; TS(060,t0); DoMassSpring;
TS(060); DoSpeedLine; TS(061,t0); DoSpeedLine;
TS(061); DoKeyBitMap; TS(062,t0); DoKeyBitMap;
TS(062); DoMountain; TS(063,t0); DoMountain;
TS(063); DoBSpline; TS(064,t0); DoBSpline;
TS(064); DoGrModels; TS(065,t0); DoGrModels;
TS(065); TSFileChar("::/Demo/Graphics/Blot",1800); TS(066,t0); TSFileChar("::/Demo/Graphics/Blot",1800);
TS(066); if (DrvIsWritable('~')) DoScrnCapture; TS(067,t0); if (DrvIsWritable('~')) DoScrnCapture;
TS(067); DoGrid; TS(068,t0); DoGrid;
TS(068); DoPick; TS(069,t0); DoPick;
TS(069); DoPick3D; TS(070,t0); DoPick3D;
TS(070); DoWhap; TS(071,t0); DoWhap;
TS(071); DoPalette; TS(072,t0); DoPalette;
TS(072); TSFile("::/Demo/Print"); TS(073,t0); TSFile("::/Demo/Print");
TS(073); TSFileChar("::/Demo/Graphics/Shading",1500); TS(074,t0); TSFileChar("::/Demo/Graphics/Shading",1500);
TS(074); TSFileChar("::/Demo/Graphics/RotateTank",1500); TS(075,t0); TSFileChar("::/Demo/Graphics/RotateTank",1500);
TS(075); TSFileChar("::/Demo/Graphics/3DPoly",1500); TS(076,t0); TSFileChar("::/Demo/Graphics/3DPoly",1500);
TS(076); TSFileChar("::/Demo/Graphics/Box",1500); TS(077,t0); TSFileChar("::/Demo/Graphics/Box",1500);
TS(077); DoSymmetry; TS(078,t0); DoSymmetry;
TS(078); TSFileChar("::/Demo/Graphics/Shadow",1500); TS(079,t0); TSFileChar("::/Demo/Graphics/Shadow",1500);
TS(079); TSFileChar("::/Demo/Graphics/Transform",,CH_SHIFT_ESC); TS(080,t0); TSFileChar("::/Demo/Graphics/Transform",,CH_SHIFT_ESC);
TS(080); DoPredatorPrey; TS(081,t0); DoPredatorPrey;
TS(081); DoPoleZeros; TS(082,t0); DoPoleZeros;
TS(082); DoDigits; TS(083,t0); DoDigits;
TS(083); DoStadium; TS(084,t0); DoStadium;
TS(084); DoElephantWalk; TS(085,t0); DoElephantWalk;
TS(085); DoHalogen; TS(086,t0); DoHalogen;
TS(086); TSFileChar("::/Demo/Games/Maze",,CH_SHIFT_ESC); TS(087,t0); TSFileChar("::/Demo/Games/Maze",,CH_SHIFT_ESC);
TS(087); TSFileChar("::/Demo/Graphics/FontEd",,CH_SHIFT_ESC); TS(088,t0); TSFileChar("::/Demo/Graphics/FontEd",,CH_SHIFT_ESC);
TS(088); DoLattice; TS(089,t0); DoLattice;
TS(089); DoCtrlR1; TS(090,t0); DoCtrlR1;
TS(090); DoF2Macro; TS(091,t0); DoF2Macro;
TS(091); TSFile("::/Demo/SubIntAccess"); TS(092,t0); TSFile("::/Demo/SubIntAccess");
TS(092); DoDemoDoc; TS(093,t0); DoDemoDoc;
TS(093); TSFile("::/Demo/DolDoc/TreeDemo"); TS(094,t0); TSFile("::/Demo/DolDoc/TreeDemo");
TS(094); TSFile("::/Demo/DolDoc/TextDemo"); TS(095,t0); TSFile("::/Demo/DolDoc/TextDemo");
TS(095); TSFile("::/Demo/DolDoc/CursorMove"); TS(096,t0); TSFile("::/Demo/DolDoc/CursorMove");
TS(096); DoMiniCompiler; TS(097,t0); DoMiniCompiler;
TS(097); TSFile("::/Demo/Lectures/MiniGrLib",0); TS(098,t0); TSFile("::/Demo/Lectures/MiniGrLib",0);
TS(098); TSFileChar("::/Demo/TimeIns"); TS(099,t0); TSFileChar("::/Demo/TimeIns");
TS(099); DoPhoneNumWords; TS(100,t0); DoPhoneNumWords;
TS(100); TSFile("::/Demo/Dsk/UnusedSpaceRep"); TS(101,t0); TSFile("::/Demo/Dsk/UnusedSpaceRep");
TS(101); TSFile("::/Demo/Dsk/BlkDevRep"); TS(102,t0); TSFile("::/Demo/Dsk/BlkDevRep");
TS(102); DoLastClass; TS(103,t0); DoLastClass;
TS(103); if (DrvIsWritable('~')) DoFPrintF; TS(104,t0); if (DrvIsWritable('~')) DoFPrintF;
TS(104); TSFile("::/Demo/Dsk/SerializeTree"); TS(105,t0); TSFile("::/Demo/Dsk/SerializeTree");
TS(105); DoExceptions; TS(106,t0); DoExceptions;
TS(106); TSFileChar("::/Demo/ScrnCodes"); TS(107,t0); TSFileChar("::/Demo/ScrnCodes");
TS(107); TSFile("::/Demo/ExtChars"); TS(108,t0); TSFile("::/Demo/ExtChars");
TS(108); TSFile("::/Demo/Graphics/PanText",0); TS(109,t0); TSFile("::/Demo/Graphics/PanText",0);
TS(109); TSFile("::/Demo/Graphics/CharAnimation"); TS(110,t0); TSFile("::/Demo/Graphics/CharAnimation");
TS(110); DoCharDemo; TS(111,t0); DoCharDemo;
TS(111); TSFile("::/Demo/DateTime"); TS(112,t0); TSFile("::/Demo/DateTime");
TS(112); TSFile("::/Demo/SubSwitch"); TS(113,t0); TSFile("::/Demo/SubSwitch");
TS(113); TSFile("::/Demo/NullCase"); TS(114,t0); TSFile("::/Demo/NullCase");
TS(114); TSFile("::/Demo/MagicPairs"); TS(115,t0); TSFile("::/Demo/MagicPairs");
TS(115); TSFileChar("::/Demo/Graphics/Hanoi",3000); TS(116,t0); TSFileChar("::/Demo/Graphics/Hanoi",3000);
TS(116); DoSquirt; TS(117,t0); DoSquirt;
TS(117); TSFileChar("::/Demo/Graphics/CommonAncestor",1500,CH_SHIFT_ESC); TS(118,t0); TSFileChar("::/Demo/Graphics/CommonAncestor",1500,CH_SHIFT_ESC);
TS(118); DoCartesian; TS(119,t0); DoCartesian;
TS(119); TSFileChar("::/Demo/Games/RainDrops",,CH_SHIFT_ESC); TS(120,t0); TSFileChar("::/Demo/Games/RainDrops",,CH_SHIFT_ESC);
TS(120); TSFileChar("::/Demo/Games/Collision",1500); TS(121,t0); TSFileChar("::/Demo/Games/Collision",1500);
TS(121); DoLogic; TS(122,t0); DoLogic;
TS(122); TSFile("::/Demo/CompileDemo"); TS(123,t0); TSFile("::/Demo/CompileDemo");
TS(123); DoPrompt; TS(124,t0); DoPrompt;
TS(124); if (DrvIsWritable('~')) DoWebLog; TS(125,t0); if (DrvIsWritable('~')) DoWebLog;
TS(125); if (DrvIsWritable('~')) DoRevFile; TS(126,t0); if (DrvIsWritable('~')) DoRevFile;
TS(126); if (DrvIsWritable('~')) DoSortFile; TS(127,t0); if (DrvIsWritable('~')) DoSortFile;
TS(127); if (DrvIsWritable('~')) DoToHtmlToTXT; TS(128,t0); if (DrvIsWritable('~')) DoToHtmlToTXT;
TS(128); if (DrvIsWritable('~')) TSFile("::/Demo/RegistryDemo"); TS(129,t0); if (DrvIsWritable('~')) TSFile("::/Demo/RegistryDemo");
TS(129); DoDefine; TS(130,t0); DoDefine;
TS(130); TSFile("::/Demo/GlblVars"); TS(131,t0); TSFile("::/Demo/GlblVars");
TS(131); DoFileRead; TS(132,t0); DoFileRead;
TS(132); TSFile("::/Demo/ParenWarn"); TS(133,t0); TSFile("::/Demo/ParenWarn");
TS(133); TSFile("::/Demo/DolDoc/DefineStr"); TS(134,t0); TSFile("::/Demo/DolDoc/DefineStr");
TS(134); TSFile("::/Demo/DolDoc/Data"); TS(135,t0); TSFile("::/Demo/DolDoc/Data");
TS(135); TSFile("::/Demo/DolDoc/CallBack"); TS(136,t0); TSFile("::/Demo/DolDoc/CallBack");
TS(136); TSFile("::/Demo/ClassMeta"); TS(137,t0); TSFile("::/Demo/ClassMeta");
TS(137); if (DrvIsWritable('~')) DoNumBible; TS(138,t0); if (DrvIsWritable('~')) DoNumBible;
TS(138); DoForm; TS(139,t0); DoForm;
TS(139); DoClickCallBack; TS(140,t0); DoClickCallBack;
TS(140); DoMenuButton; TS(141,t0); DoMenuButton;
TS(141); DoMenuSprite; TS(142,t0); DoMenuSprite;
TS(142); DoSuggestedSpelling; TS(143,t0); DoSuggestedSpelling;
TS(143); TSFileChar("::/Demo/WordSearch"); TS(144,t0); TSFileChar("::/Demo/WordSearch");
TS(144); TSFile("::/Demo/StkGrow"); TS(145,t0); TSFile("::/Demo/StkGrow");
TS(145); TSFile("::/Demo/MemDemo"); TS(146,t0); TSFile("::/Demo/MemDemo");
TS(146); TSFileChar("::/Demo/Snd/WaterFowl"); TS(147,t0); TSFileChar("::/Demo/Snd/WaterFowl");
TS(147); TSFile("::/Demo/Asm/AsmHelloWorld"); TS(148,t0); TSFile("::/Demo/Asm/AsmHelloWorld");
TS(148); DoAsmAndC1; TS(149,t0); DoAsmAndC1;
TS(149); DoAsmAndC2; TS(150,t0); DoAsmAndC2;
TS(150); TSFile("::/Demo/Asm/AsmAndC3"); TS(151,t0); TSFile("::/Demo/Asm/AsmAndC3");
TS(151); TSFile("::/Demo/Asm/MulByHand"); TS(152,t0); TSFile("::/Demo/Asm/MulByHand");
TS(152); TSFile("::/Demo/Asm/DivByHand"); TS(153,t0); TSFile("::/Demo/Asm/DivByHand");
TS(153); TSFile("::/Demo/Asm/BuzzFizz"); TS(154,t0); TSFile("::/Demo/Asm/BuzzFizz");
TS(154); TSFile("::/Demo/Asm/PutDec"); TS(155,t0); TSFile("::/Demo/Asm/PutDec");
task=User; task=User;
TS(155); XTalkWait(task,"DocMax;Prof;HeapLog(ON);\n"); TS(156,t0); XTalkWait(task,"DocMax;Prof;HeapLog(ON);\n");
TS(156); XTalkWait(task,"PCIRep;Sleep(750);\n"); TS(157,t0); XTalkWait(task,"PCIRep;Sleep(750);\n");
TS(157); XTalkWait(task,"MemBIOSRep;Sleep(750);\n"); TS(158,t0); XTalkWait(task,"MemBIOSRep;Sleep(750);\n");
TS(158); XTalkWait(task,"MemRep;Sleep(750);\n"); TS(159,t0); XTalkWait(task,"MemRep;Sleep(750);\n");
TS(159); XTalkWait(task,"ZipRep;Sleep(750);\n"); TS(160,t0); XTalkWait(task,"ZipRep;Sleep(750);\n");
TS(160); XTalkWait(task,"ProfRep;Sleep(750);\n"); TS(161,t0); XTalkWait(task,"ProfRep;Sleep(750);\n");
TS(161); XTalkWait(task,"HeapLogSizeRep;Sleep(750);\n"); TS(162,t0); XTalkWait(task,"HeapLogSizeRep;Sleep(750);\n");
TS(162); if (mp_cnt>1) XTalkWait(task,"CPURep(TRUE);Sleep(750);\n"); TS(163,t0); if (mp_cnt>1) XTalkWait(task,"CPURep(TRUE);Sleep(750);\n");
TS(163); if (DrvIsWritable(':')) XTalkWait(task,"ChkDsk;Sleep(750);\n"); TS(164,t0); if (DrvIsWritable(':')) XTalkWait(task,"ChkDsk;Sleep(750);\n");
TS(164); if (DrvIsWritable(':')) { TS(165,t0); if (DrvIsWritable(':')) {
XTalkWait(task,"DrvView;\n"); XTalkWait(task,"DrvView;\n");
Sleep(750); Sleep(750);
PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0); PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
} }
TS(165); if (DrvIsWritable(':')) { TS(166,t0); if (DrvIsWritable(':')) {
XTalkWait(task,"DskView;\n"); XTalkWait(task,"DskView;\n");
Sleep(250); //Short because ATARep takes time. Sleep(250); //Short because ATARep takes time.
PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0); PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
} }
TS(166); XTalkWait(task,"ATARep;\npSleep(750);\n"); TS(167,t0); XTalkWait(task,"ATARep;\npSleep(750);\n");
TS(167); XTalkWait(task, TS(168,t0); XTalkWait(task,
"HashDepthRep(adam_task->hash_table);Sleep(750);\n"); "HashDepthRep(adam_task->hash_table);Sleep(750);\n");
TS(168); XTalkWait(task,"Who;Sleep(750);\n"); TS(169,t0); XTalkWait(task,"Who;Sleep(750);\n");
TS(169); XTalkWait(task,"DrvRep;Sleep(750);\n"); TS(170,t0); XTalkWait(task,"DrvRep;Sleep(750);\n");
TS(170); XTalkWait(task,"TaskRep;Sleep(750);\n"); TS(171,t0); XTalkWait(task,"TaskRep;Sleep(750);\n");
DeathWait(&task,TRUE); DeathWait(&task,TRUE);
ProgressBarsRst; ProgressBarsRst;
"Elapsed Time:%5.3f\n",tS-t0;
} }
OSTestSuite; OSTestSuite;
BIN
View File
Binary file not shown.
-4
View File
@@ -15,10 +15,6 @@ Option(OPTf_WARN_PAREN,ON);
Option(OPTf_WARN_DUP_TYPES,ON); Option(OPTf_WARN_DUP_TYPES,ON);
HashTablePurge(adam_task->hash_table); HashTablePurge(adam_task->hash_table);
#help_index "Misc"
//Use Dbg("Type 'G;'"); to debug before window mgr is running.
public F64 os_version=4.120;//Operating system version.
#include "/Adam/MakeAdam" #include "/Adam/MakeAdam"
//Dbg("Type 'G;'"); //Dbg("Type 'G;'");